Klaus hat geschrieben:
Unter PV hole ich mir das DeviceState um es im EventState auf dessen Zustand 0 oder 1 zu prüfen.
Der DeviceState kann direkt im EventState geprüft werden, eine PV ist dazu nur notwendig, wenn Sie mehrere Zähler auf einmal prüfen wollen (OR-Verknüpfung).
Klaus hat geschrieben:
Nun war meine Überlegung einen EventHandler zu erstellen welcher via <Get _="/Proccess/Bus1/Device_0/DeviceState" ViewProperties="Name"/> (Name wäre dann die Zählernummer) den Identifikator liefert. Das Ergebnis von Get noch in den MessageText eingebunden und vertig.
Ein EventHandler kann kein "Get" und ViewProperties="Name" liefert zudem den Namen der Variable, und nicht der Station.
Klaus hat geschrieben:
Leider
funktioniert das nicht wie vorgestellt. Der Hacken wenn ein Zähler fehlt kann ich ihn nicht mit Get abfragen.
Jein: Wenn ein Zähler ausfällt bleiben die letzten Werte bis zum Neustart des TIXI erhalten. Sie können die Seriennummer eines Zähler als External-Device-Variable zur Verfügung stellen:
<Seriennummer _="ident" simpleType="meterbus" size="8"/>
Somit könnte man die Zählernummer durchaus noch versenden. Das ist aber keine sichere Methode, da die Werte bei Neustart verschwinden, und bei einem bereits seit Inbetriebnahme gestörten Zähler ebenfalls fehlen.
Klaus hat geschrieben:
Muss ich nun eine Datenbank aller Zählernummern anlegen und diese dann mit dem jeweiligen DeviceState verknüpfen um die Adressen der ausgefallenen Zähler zu erhalten?
Ich würde das wie folgt machen:
In der External bei jedem Zähler eine Konstante anlegen, die als Startwert die Seriennummer (hier 12345678) enthält:
<Seriennummer _="value" simpleType="meterbus" ind="999" size="9" acc="R" def="12345678"/>
Vorteil: Startwerte sind auch dann vorhanden, wenn der Zähler nicht angeschlossen ist.
Dann eine Prozessvariable erzeugen, die alle Zähler überwacht:
<Alarm_0_ProcVar>
<Value>
<LD _="/Process/Bus1/Device_0/DeviceState"/>
<AND _="/Process/Bus1/Device_1/DeviceState"/>
<AND _="/Process/Bus1/Device_2/DeviceState"/>
usw.
</Value>
</Alarm_0_ProcVar>
Passender EventState:
<Alarm_0 Var="Alarm_0_ProcVar">
<Event _="Alarm_0"/>
<ProcessVar _="/Process/PV/Alarm_0_ProcVar" flank="low"/>
<Enabled _="TRUE"/>
</Alarm_0>
Im Nachrichtentext dann für jeden Zähler eine Zeile einfügen:
<E _="®/Process/Bus1/Device_0/Seriennummer,;: ®/Process/Bus1/Device_0/DeviceState,;"/>
<E _="®/Process/Bus1/Device_1/Seriennummer,;: ®/Process/Bus1/Device_1/DeviceState,;"/>
<E _="®/Process/Bus1/Device_2/Seriennummer,;: ®/Process/Bus1/Device_2/DeviceState,;"/>
So bekommen Sie eine Tabelle mit allen Zählerzuständen geschickt:
12345678: 1
87654321: 0
11223344: 1
usw.
_________________
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