Hallo,
ich bastele nun schon seit „einigen“ Stunden an zwei Problemen rum. Zum besseren auseinanderhalten mache ich zwei Themen dafür auf (auch wenn es am Ende im gleichen Skript landen soll.
Ziel:
Ein Ausgang der Wago soll so lange an bleiben wie die Taste auf der IR-Fernbedienung gedrückt ist.
Umfeld:
Es kommen bei gedrückt halten der Taste auf der FB etwa 3 Datenpakete pro Sekunde vom µC über die RS232 rein.
Kommt in der geschätzten 1/3 sek. kein Datenpaket mehr soll der Ausgang auf AUS
<?
$data = GetValueString("TobiInput");
$teile = explode(";", $data);
// Die Sender heißen A, B, C, D usw...
// Das entspricht dann Wohnzimmer, Flur etc...
$sender = $teile[0]{1};
echo "Sender ".$sender."
";
$typ = $teile[0]{2};
if($typ == "i") //i=Infrarot
{
$geraet = rtrim($teile[1]);
$taste = rtrim($teile[2]);
echo "Infrarot ";
echo "Geraetenummer ".$geraet;
echo " Taste *".$taste."*
";
switch($geraet)
{
case "0": // Gerätecode 0
switch($taste)
{
case "32":
echo "rauf";
MBT_WriteCoil(10397 /*[Wago MBT]*/ ,514 /* Ausgang514 = Licht wozi */,true);
break;
IPS_Sleep (500);
MBT_WriteCoil(10397 /*[Wago MBT]*/ ,514 /* Ausgang514 = Licht wozi */,false);
case "02":
echo "02"; // Taste IR Code-02 Gerät-0 mit Toggle-Funktion
$Hilfe02 = GetValueBoolean("HilfVTaste02"); //Hilfsvariable nach $Hilfe02
if ($Hilfe02== False){ //wenn False dann folgendes ausführen
COMPort_SendText(20531 /*[Serial Port 17 / 3-1..4a+b]*/ , "\xffCa\0\1\xfe"); //LCD LED AN
SetValueBoolean("HilfVTaste02",True); //HilfsVariable auf "True" setzen
}
if ($Hilfe02== True){ //wenn True dann folgendes ausführen
COMPort_SendText(20531 /*[Serial Port 17 / 3-1..4a+b]*/ , "\xffCb\0\1\xfe"); //LCD LED AUS
SetValueBoolean("HilfVTaste02",False); //HilfsVariable auf "False" setzen
}
break;
}
}
?>
Gemeint ist der Bereich --> case „32“: … …Licht wozi…
Danke
Jan