WinCC - Rohdatenvariable für Alarmmeldungen

Ralle

Super-Moderator , User des Jahres 2006-2007
Teammitglied
Beiträge
15.416
Reaktionspunkte
4.044
Zuviel Werbung?
-> Hier kostenlos registrieren
1. Kann ich eine Rohdatenvariable (Byte 0-63 eines DB) eigentlich direkt Bitweise beim Alarmlogging verwenden oder mußich die Rohdaten erst auf interne Variablen umverteilen?

2. Wenn Rohdaten genutzt werden, die sowohl im WinCC, als auch in der SPS verändert werden können, wie löst ihr das in WinCC? Gibt es in Wincc eine möglichkeit, am anfang Daten einzulesen (Rohdaten auf interne Variablen schreiben) und am Ende die Daten wieder zurückzuschreiben (interne Variablen wieder auf die Rohdaten schreiben)
 
Ich weiß zwar nicht genau was du da machen willst? Ich halte meine Störmeldungen ausschliesslich in der HMI.
Aber du kannst natürlich in nem Skript Variable Texte zuweisen. Das mache ich auch. Die kannst du dann auch jederzeit in die Steuerung schieben. Ich habe so eine Art Initialisierungsskript das nach dem Verbindungsaufbau ausgeführt wird.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@xhsx
Nein, ich möchte meine Bitmeldungen aus der Steuerung per Rohdatenvariable nach WinCC bringen. 512 Meldungen sind dann 64 Byte, die ich mit einem Rutsch in WinCC haber (auch nur ein Powertag verbraten ;)). Aber wenn ich die Rohdatenvariable und bit 0 z.bsp. als Störmeldebit in WinCC prametriere, dann kommt die Meldung nicht. Bei einer 16 Bit Variablen als Störmeldevariable und Bit 0 für Meldung 1 funktioniert das ganz normal.
 
Ah, jetzt hab ich's.
Wird aber eher schwieriger - bzw nicht schwierig sondern Performancelastig. Du musst dir nämlich das Array ständig in die Temporären Variablen umkopieren. Störmeldungen mittels Trmporärer Var's zu triggern und quittieren sollte funktionieren. Beides (triggern und quittieren) sollte dann aber aus der Steuerung geschehen. Das umkopieren der Variablen solltest du halt auf Wertänderung machen (das haut aber bei Arrays nicht immer so glatt hin).
So wie ich verstanden habe möchtest du aber in der Hmi quitttieren... Da wird's noch mehr tricky. Müsste aber analog laufen. Bei Änderung deiner Internen Variable ebenfalls ein Skript ausführen.
Aber wie gesagt - versuchen macht schlau. Würd mich sehr über positive Nachricht von dir freuen!
 
Ich probiere gerade die Varianten aus. Auf jeden Fall geht nicht, die Rohdatenvariable direkt als Alarmvariable einzusetzen, mit einer internen Variable geht es, aber irgendwie gefällt mit das noch nicht so ganz :rolleyes:. Ich meld mich wieder.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Nochmal zu Nachfrage! Ist nämlich wirklich interessant - könnte ich evtl. auch gebrauchen.

Wie sieht's mit der Quittierung aus - Steuerung oder Hmi?

Wenn beides aus der Steuerung kommt brauchst du 16 Bit für 8 Meldungen. So ist's bei mir. Ich hab Sps-seitig ne Funktion die mir die Quittiervariable direkt hinter die Triggervariable hängt. Im Grunde ist es dann egal ob ein ByteArray oder WordArray -> ist ja nur ein Tag. Dafür braucht man aber ein Skript dass das Array wieder in die Temporären Wörter zerlegt...
 
Ich will eigentlich, daß mit WinCC quittiert wird. Meine SPS hab ich schon immer so, daß ein Quitt vom OP die Störmeldung zurücksetzt, das würde also gehen. Bei einem Quit aus der SPS heraus, bin ich noch am Testen. In Protool bringe ich einfach das SPS-Quitt-Bit, danach setze ich sowohl die Quittbits, als auch das Störbit auf 0. Bei WinCC scheint es ja zu reichen, das Störbit auf 0 zu setzen. Aber im moment bekomm ich es einfach nicht gebacken, WinCC-Variable in die Rohdatenvariable zurückzuschreiben.

PS: Wenn man sie Scripte wenigstens ordentlich debuggen könnte, das ist ja grausam.
 
Zuletzt bearbeitet:
Also im Skrip über ne Zuweisung. Das funktioniert 100%
Das eine ist SetBit das andere ResetBit...

Debug: Du kannst dir ne WCF globale Variable deklarieren, der du in deinem Skript an verschiedenen Positionen entsprechende Debugwerte zuweist. Oder du gibt eine Systemmeldung an entsprechender Stelle aus...
 
Zurück
Oben