Hallo,
es geht um Fehlermeldungen in einer Anlage. Ich möchte in einem DB eine Variable mit dem Datentyp WORD erstellen. Für das WORD habe ich somit 16 Bitmeldungen. Im Anwenderprogramm wird also jedem Fehler ein Bit zugewiesen. Im HMI gebe ich dann als Triggervariable dieses WORD an.
Mein Problem ist leider, dass ich nicht weiß wie ich diese Bits des Words im DB erstellen soll, denn wenn ich einfach nur ein Word erstelle, kann ich nicht auf die 16 Bits zugreifen, sondern muss 16 neue Bits separat erstellen, welche aber NICHT im besagten WORD sind.
Hoffe ihr versteht was ich meine .
Grüße
HMI-Triggervariable, TIA Portal
Hallo,
leider wurde nicht gesagt um welches SPS-System es geht (S7-300/400 oder S7-1500).
Bei der S7-300 wäre eine Möglichkeit die DB-Word-Variable absolut im SPS-Programm anzusprechen (DB1.DBX10.3), dies ist aber unvorteilhaft bei Änderungen im DB.
Besser wäre es die DB-Variable zu Beginn des OB1 in ein Merkerwort zu transferieren und dann dessen Bits im weiteren Verlauf des SPS-Programms zu verwenden. Am Ende des OB wird dann das MW wieder zurück in die DB-Variable geschrieben.
Bei der S7-1500 können Byte-, Wort- und Doppelwortvariable auch als Bitoperanden angesprochen werden.
Beispiel:
DB-Variable WORD hat den Namen "DBWordVar"
Auf die einzelnen Bits kann dann über
U DBName.DBWordVar.x0
bis
U DBName.DBWordVar.x15
zugegriffen werden.
Gruss
Gruss
leider wurde nicht gesagt um welches SPS-System es geht (S7-300/400 oder S7-1500).
Bei der S7-300 wäre eine Möglichkeit die DB-Word-Variable absolut im SPS-Programm anzusprechen (DB1.DBX10.3), dies ist aber unvorteilhaft bei Änderungen im DB.
Besser wäre es die DB-Variable zu Beginn des OB1 in ein Merkerwort zu transferieren und dann dessen Bits im weiteren Verlauf des SPS-Programms zu verwenden. Am Ende des OB wird dann das MW wieder zurück in die DB-Variable geschrieben.
Bei der S7-1500 können Byte-, Wort- und Doppelwortvariable auch als Bitoperanden angesprochen werden.
Beispiel:
DB-Variable WORD hat den Namen "DBWordVar"
Auf die einzelnen Bits kann dann über
U DBName.DBWordVar.x0
bis
U DBName.DBWordVar.x15
zugegriffen werden.
Gruss
Gruss