TIA OPC UA - Hexa-Meldungen anstelle von Bit-Meldungen ausgeben

G

Gelöschtes Mitglied 117942

Guest
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Tag Zusammen,

Zurzeit beschäftige ich mich intensiv mit OPC UA. Nun bin ich mir ein Konzept am überlegen, Status als Hexa-Wert auszugeben bzw. auf dem Client anzuzeigen.

Im OPC UA ist es gebräuchlich mit Hexa-Werte Status am Client weiterzugeben. Dabei ist es auch möglich benutzerdefinierte Unterkategorien zu definieren. Falls der Client dies nicht erkennt wählt er die bekannte Oberkategorie.

Nun bin ich am Überlegen wie Sinnvoll es ist meine Bausteine und Elemente wie Motoren, Scannern usw. den Statuswert in einem DB, nicht nur als Bit-Wert, sondern auch den genauen Hexawert auszugeben, welches wiederum der Client(z.B. HMI) abfragen kann und es selbst in die gegebene Sprache übersetzen kann?

So hat sich die Sache mit den Sprachen erledigt und für alle Elemente hat es einheitliche spezifizierte und detaillierte Meldungen.

Was haltet ihr davon oder wie würdet ihr es umsetzen? Mein Ziel ist es, auch ohne Programmiergerät den Status abzufragen und dem Benutzer einen ganz genau Meldung anzuzeigen.


TIA16 CPU-1517F PN/DP
(OPC UA Server)
V2.8


Gruss Robin
 
Zuviel Werbung?
-> Hier kostenlos registrieren
HEX ist natürlich immer auch ein Bitmuster. ;)
Ich würde mir eine Funktion basteln (SCL bspw.) und 15 Bit in ein Word Mappen
#wERROR.%X0 := #ERROR1; //Error1 .. 15 sind IN Parameter (Datentype BOOL)
#wERROR.%X1 := #ERROR2;
#wERROR.%X2 := #ERROR3;
.
.
.
#wERROR.%X14 := #ERROR15; //wERROR ist ein OUT Parameter vom Datentyp Word
IF #wERROR >0 THEN //Wenn ein Fehler auftritt würde ich nach alter Siemensmanier,
#wERROR.%X15 := TRUE; //das Vorzeichenbit setzen 0x8001 ... etc.
END_IF;
 
HEX ist natürlich immer auch ein Bitmuster.

Da hast du natürlich absolut recht
:ROFLMAO:


Was du oben beschrieben hast, ist auch ein toller Ansatz fürs umschreiben. Ein weiterer Grundsatz für mich ist, allerdings nur Symbolisch zu Programmieren. Deshalb kommt dieser Ansatz für mich nicht in Frage.

Auch die Hexawerte werden nur über Anwenderkonstanten definiert und sind für alle Elemente gültig.


Gruss Robin
 
Zurück
Oben