E-Konst hat geschrieben:
ich bin gerade dabei einen Schichtplan mit Tico zu programmieren , die Einstellungen wie zb. Telefonnummern-,Pin- usw. habe ich mit Tila2 erstellt und dann mit Tico importiert.
Schichtplan habe ich so wie im Tixml Tutorial übernommen. Zurzeit geht nur das, wenn der Eingang I0 von High auf low geht , das eine SMS versendet wird.Aber nicht erst ab der voreigestellten Zeit.
Bitte das gesamte Projekt und eine genaue Beschreibung wer, wann, welche Nachricht bekommen soll posten.
In den angefügten Code-Schnipseln ist das nicht genau ersichtlich.
Die generelle Vorgehensweise ist folgende:
1. Empfänger festlegen, die zu den festgelegten Zeiten den Alarm erhalten sollen.
Code:
[<SetConfig _="TEMPLATE" ver="y">
<AddressBook>
<MySelf Name="MySelf" hidden="1">
<SMS_No _="+49-30-1234567"/>
</MySelf>
<OA hidden="1">
<SMS_No _="®~/OA"/>
<Email _="®~/OA"/>
<SMS_Provider _="GSMSMS"/>
</OA>
<Contact_0 Name="Receiver">
<SMS_No _="+49-30-7654321"/>
<SMS_Provider _="GSMSMS"/>
</Contact_0>
<Contact_1 Name="Shiftworker">
<SMS_No _="+49-30-7651234"/>
<SMS_Provider _="GSMSMS"/>
</Contact_1>
</AddressBook>
</SetConfig>]
2. Prozessvariable definieren, die den Empfänger aufnimmt.
Code:
[<SetConfig _="PROCCFG" ver="y">
<ProcessVars>
<Shiftworker sys="1"/>
</ProcessVars>
</SetConfig>]
3. Kalendereinträge definieren, die Events zum Setzen des Empfängers aufrufen.
Code:
[<SetConfig _="SCHEDULE" ver="y">
<Schedule>
<Schedule_0 _="Switch_0">
<Time _="09:00"/>
</Schedule_0>
<Schedule_1 _="Switch_1">
<Time _="21:00"/>
</Schedule_1>
</Schedule>
</SetConfig>]
4. EventHandler zum Setzen der PV anlegen.
Code:
[<SetConfig _="EVENTS" ver="y">
<EventHandler>
<Alarm_0 Name="SMS-Alarm">
<SendMail _="MessageJobTemplates/Alarm_0"/>
</Alarm_0>
<Switch_0>
<Set _="/Process/PV/Shiftworker" value="Contact_0"/>
</Switch_0>
<Switch_1>
<Set _="/Process/PV/Shiftworker" value="Contact_1"/>
</Switch_1>
</EventHandler>
</SetConfig>]
5. Im MessageJobTemplate den fest eingestellten Empfänger durch eine Referenz auf die PV
ersetzen. Optimalerweise mit einem Alternativwert, wenn die Referenz nicht aufgelöst werden kann.
Code:
[<SetConfig _="TEMPLATE" ver="y">
<MessageJobTemplates>
<Alarm_0 _="GSMSMS">
<Recipient _="/D/AddressBook/®/Process/PV/Shiftworker,Contact_0;"/>
<Sender _="AddressBook/MySelf"/>
<Subject _="" Path="/D/UserTemplates/Message_0/Subject"/>
</Alarm_0>
</MessageJobTemplates>
</SetConfig>]
Jetzt wird 09:00 - 21:00 Uhr Contact_0 und 21:00 - 09:00 Uhr Contact_1 alarmiert.
Sollte aus irgendeinem Grund die Referenz ®/Process/PV/Shiftworker nicht
aufgelöst werden können erhält Contact_0 die Nachricht.
Zitat:
Des weiteren soll der Alarm nur von zb 7-20 Uhr per SMS gesendet werden. Der Schichtplan sollte mir als Vorlage für diese zeitliche Bedingung dienen. Hardware ist
das GSM HG 127.
Diese Aufgabe läßt sich am leichtesten mit einer PV, die in einer If-Anweisung im EventHandeler das Erstellen der
Nachricht steuert realisieren.
1. PV die zeitgesteuert auf 1=True bzw. 0=False gesetzt wird anlegen.
Code:
[<SetConfig _="PROCCFG" ver="y">
<ProcessVars>
<Shiftworker sys="1"/>
<IfPV>
<Value>
<TIME _="07:00:00-20:00:00"/>
</Value>
</IfPV>
</ProcessVars>
</SetConfig>]
2. EventHandler zum Senden der Nachricht um diese Variable erweitern.
Code:
[<SetConfig _="EVENTS" ver="y">
<EventHandler>
<Alarm_0 Name="SMS-Alarm">
<If _="/Process/PV/IfPV">
<SendMail _="MessageJobTemplates/Alarm_0"/>
</If>
</Alarm_0>
<Switch_0>
<Set _="/Process/PV/Shiftworker" value="Contact_0"/>
</Switch_0>
<Switch_1>
<Set _="/Process/PV/Shiftworker" value="Contact_1"/>
</Switch_1>
</EventHandler>
</SetConfig>]
Jetzt wird das Kommando SendMail nur ausgeführt, wenn die PV IfPV in der Zeit von 07:00 - 20:00 auf 1 steht.
_________________
Tixi Support Team
E-Mail-Support, Mo-Fr, 9:00 - 17:00:
Tixi-Support@tixi.com
techn. Hotline, Mo-Fr, 9:00 - 12:00 und 13:00 - 17:00: 0900-100 90 11 für 2€/min