Timed4Channel schalted nicht

Hallo,

Ich habe mein T4C angeschlossen uber den 1-wire anschluss modul.
Hab das anschluss modul mit Molex stecker spannung gegeben.
In IPS v2 ist das T4C modul gleich entdeckt.
Ich sehe die 8 Digital Outputs und kann die auch mit <On> und <Off> schalten.
Wenn ich das zurucklese (mit <Read>)sehe ich auch das die werte geandert sind im T4C, aber kein led leuchtet beim schalten und kein relais klickt.
Die spannung vom PC ist 11.8 V und 4.99 V, das sollte also genugend sein.

Was kann hier falsch sein?

Hallo Polleke,

da hast Du schon einmal die halbe Strecke erledigt.

Zum Schalten des Moduls werden aber nicht die Variablen des T4C benutzt sondern diese Funktionnebst den untenstehenden Schaltbefehlen.

Hier nochmal der Quelltext:


<? 
/* 
******************************* 
 IP-SYMCON Event Scripting 
******************************* 
File     : timed4channel.ips.php 
Trigger  :  
Interval :  
*/ 
 // $ins - Instance, 
// $chn - Channel [1:4] 
// $min - Minutes [0:60] 
// $var - Varable auf True / False 
function T4C ($ins, $chn, $min, $var="") { 
   // Instanz pruefen 
   // Channel pruefen 
   // Minuten pruefen 
   // Variable pruefen 
   TMEX_F29_SetStrobe($ins, True); 
   $res = (($chn - 1) * 64 ) + $min; 
   TMEX_F29_SetPort((integer)$ins, (integer)$res); 
   if ( $var<>"") { 
      if ($min==0) { 
         SetValueBoolean($var,FALSE); 
      } else { 
         SetValueBoolean($var,TRUE); 
      } 
   } 
} 
T4C(12345 /*ID anpassen*/,1,10,"T4C_Kanal_1"); //   10 min ein 
T4C(12345 /*ID anpassen*/,2,61,"T4C_Kanal_2"); //     Dauer ein  / 0 = Dauer aus 
T4C(12345 /*ID anpassen*/,3,62,"T4C_Kanal_3"); //         alle aus 
T4C(12345 /*ID anpassen*/,4,63,"T4C_Kanal_4"); //               Testmodus 

?> 

ID anpassen nicht vergessen sowie die Statusvariablen des T4C.

Hallo Polleke,

und ganz wichtig: Die Ports muessen auf OUTPUT gestellt sein und bleiben. Und wie wgreipl bereits richtig anfuehrte, sollten da keine Variablen drin stehen, die haben da nix aber auch gar nix drin zu suchen.

Mit dem Script sollte dann alles klappen.

Das T4C schaltet besser so…danke fur die hilfe, ich hab mich durch die schone <ON> und <OFF> tasten in IPSv2 tauschen lassen.

Ich bekomm jetzt nur noch ein fehlermeldung wenn ich dass script
ausfuhre:

Warning: Variable is marked as read-only and cannot be changed. in [1ET\TechRoom\Vloerverwarming\T4C-IenN] on line 28

Aber es schalted doch.

Wie kann ich das beheben?

Extra frage: Darf ich die andere 4 kanale auch benutzen um zbs noch 4 relais zu schalten (nicht das ich das will, es geht nur um das verstehen :-)?

Und noch eine frage: Die tasten im instance view in IPS v2 setzen die Status variable aber ohne schaltdauer oder so.
So weit ich es ubersehe haben sie so kein function. Stimmt das oder nicht.
Oder ubersehe ich einen funktion vom DS2408.

Hallo,

Falls diese Variable an der Instanz des DS2408 haengt, dann darf diese per Script nicht geaendert werden. Du musst dafuer eine eigene neue Variable anlegen, diese kannst Du dann veraendern.

Extra frage: Darf ich die andere 4 kanale auch benutzen um zbs noch 4 relais zu schalten (nicht das ich das will, es geht nur um das verstehen :-)?

Nein, die Ausgaenge des DS2408 haben bestimmte Aufgaben. Davon wird ein Teil benutzt, um die Timerfunktion des T4C zu realisieren.

Und noch eine frage: Die tasten im instance view in IPS v2 setzen die Status variable aber ohne schaltdauer oder so.
So weit ich es ubersehe haben sie so kein function. Stimmt das oder nicht.
Oder ubersehe ich einen funktion vom DS2408.

das ist korrekt. Die Button im IPS funktionieren nur, wenn man einen DS2408 direkt ansteuern will. Das T4C arbeitet aber etwas anders, hier werden alle Ausgangsports in einem Prozessor verarbeitet und damit dann die 4 Relais gesteuert. Somir wird auch die Timerfunktion realisiert.

Hi Torro,

Es hat ein bishen lang gedauert aber jetzt hab ich wieder ein bishen zeit.
(Es war u.a. Sinterklaas (wie Santa Klaus aber wir feiern das am 5ten December)

Alles geht jetzt.

Die warnung hab ich bekommen weil ich ein „SetValueBoolean“ auf eine der 16 automatisch angelegte variabelen machen wollte, aber das ist ja verboten (read-only) und nicht notwendig.
Ich hab das vorbild script ein bishen angepast.

<?
/*


IP-SYMCON Event Scripting


File : timed4channel.ips.php
Trigger :
Interval :
*/
// $ins - Instance,
// $chn - Channel [1:4]
// $min - Minutes [0:60]
function T4C ($ins, $chn, $min) {
// Instanz pruefen
// Channel pruefen
// Minuten pruefen
// Variable pruefen
TMEX_F29_SetStrobe($ins, True);
$res = (($chn - 1) * 64 ) + $min;
TMEX_F29_SetPort((integer)$ins, (integer)$res);
}
T4C(12345 /ID anpassen/,1,10); // 10 min ein
T4C(12345 /ID anpassen/,2,61); // Dauer ein / 0 = Dauer aus
T4C(12345 /ID anpassen/,3,62); // alle aus
T4C(12345 /ID anpassen/,4,63); // Testmodus

?>

So schaltet es, aber ein status hat man so nicht.
Obwohl IPSv2 2x 8 variabelen anlegt („Latch Status“ und „Status“ pro pin, alle read-only, warum 2x 8??) lassen die nicht die status sehen.
Auch nicht mit ein „read“ im Instanz view. Nur die letzte „Set“ aktion ist sichtbar, (und nur wenn man binair lesen kann :)).
Ich kan naturlich selbst 4 Boolean variabelen machen und setzen wie im alten script, aber dann sind dass mehr „es soll so sein“ variabelen, wenn eine True ist soll das channel geschaltet sein, ging aber etwas falsch dann steht die variabele falsch. Und hat man zbs nur fur eine minute angescaltet dann bleibt die variabele True.

Es gibt auch keine TMEX_F29_GetPort function im functionsliste, also selbst ausleasen ist denk ich auch nicht moglich oder?

Mfg, Paul

Hallo Paul,

ja, aber damit auch die Variablen-Moeglichkeit entfernt.

So schaltet es, aber ein status hat man so nicht.

genau.

Ich kan naturlich selbst 4 Boolean variabelen machen und setzen wie im alten script, aber dann sind dass mehr „es soll so sein“ variabelen, wenn eine True ist soll das channel geschaltet sein, ging aber etwas falsch dann steht die variabele falsch. Und hat man zbs nur fur eine minute angescaltet dann bleibt die variabele True.

genauso musst Du es auch machen. Wenn ein Port per Timer eingeschaltet wird, dann muss man (habe ich noch nicht programmiert) dem Script ein Timerscript vorwerfen, welches dann die Statusvariable nach der eingestellten Zeit wieder zuruecksetzt. Das ist gluecklicherweise mit IPS ueberhaupt kein Problem. Mit Schaltproblemen hatte ich uebrigens noch nie zu kaempfen.

Und nochmal zum DS2408: Die Bits entsprechend nicht einfach den Ports, sondern darin wird auch die Information zum Timer fuer den Port uebergeben.

Hi Torro,

Danke fur alles,
ich glaube das ich jetzt alles richtig (-genug;)) verstehe.

Das T4C ist jetzt eingebaut und steuert 7 heizungsventile uber 2 kanale.
Jetzt geh ich ein schones script basteln um das richtig zu steuern.
Ich benutze 2 FHT80b’s als Raumtemperatur messer, also fur die IST und SOLL temperatur.

Mfg, Paul