TIA S7-1500 Program_Alarm mittels Get_Alarm auslesen, Begleitwerte kommen nicht mit

maxder2te

Level-3
Beiträge
1.391
Reaktionspunkte
502
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute,

ich hab aktuelle ein Projekt mit S7-1500 ohne Visu am laufen, wo alle Meldungen, die anstehen an einen Logger weitergeschickt werden sollen.
Der Einfachheit halber habe ich das PLC-Meldesystem mittels Program_Alarm umgesetzt. In den Alarmen sind Begleitwerte eingebaut (konventionell mittels @1%u1@ usw.), außerdem ist auf gleichem Weg eine Textliste eingebaut.

Die Alarme werden korrekt produziert und auch am Webserver der CPU korrekt angezeigt (inkl. Begleitwerten und Inhalt der Textliste).

Zur Weiterleitung an den Logger lese ich die Meldungen nun mittels Get_Alarm aus. Als Modus ist 2 gewählt, so dass der Meldetext und der Infotext mit ausgegeben werden. Prinzipiell funktioniert das auch recht schön. In den von Get_Alarm ausgegebenen Meldetexten ist dann aber kein Begleitwert drinnen, sondern der @1%u1@ Platzhalter usw.

Ich verwende TIA Portal V15.1 mit Update 2. Das Phänomen tritt in PLCSim auf, und auch auf der Hardware (CPU 1512F in der SK01-Ausführung, ebenso auf der CPU 1515). Mache ich etwas prinzipiell falsch oder gibts da irgendeine Kombination an Begleitwerten / Textlisten / k.A was noch / Firmware-Versionen die bei Get_Alarm dieses Verhalten zeigen?

Hat wer Erfahrung damit?

Prinzipiell siehts nach einem Bug aus, aber nach meinen letzten Erfahrungen, wie man behandelt wird wenn man dem Support Bugs melden möchte, bin ich nicht grade motiviert dazu...

lg
 
Bin ich auch schon drüber gestolpert. Die Werte werden seit 15.1(?) nicht mehr als Platzhalter definiert, sondern per Rechtsklick in die Alarmmeldungen eingefügt. Dann kommen sie auch korrekt im Get_Alarm mit.
alarm.jpg
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ok, Lösung selbst gefunden, dennoch bleibt ein Bug in der Firmware (2.6.1 und 2.8.1)

1. folgende Ausgangssituation:
- Program_Alarm als lokale Instanz definiert
- Begleitwert SD_1 als DINT deklariert - es kommen nur positive Zahlen vor
- Begleitwert in der Meldung mit dem Schlüssel @1%u@ eingebunden

Die Meldung wird am Webserver mit samt Begleitwert korrekt angezeigt.
Beim Auslesen mittels Get_Alarm wird im Medletext das Kürzel @1%u@ angezeigt.

Baut man nun die gleiche Variable über das Kontextmenü -> "dynamischen Parameter (Variable) einfügen" in die Meldung ein, so funktioniert alles perfekt. Wenn man genau hinschaut, dann wird als Zahlenformat "Dezimalzahl mit Vorzeichen" eingestellt.


2. Datentyp von SD_1 von DINT auf UDINT geändert
Nun tritt genau der umgekehrte Fall ein - die Variable, welche per @1%u@ eingebunden war, wird mittels Get_Alarm korrekt ausgegeben. Die (gleiche) Variable, welche mittels Kontextmenü -> "dynamischen Parameter (Variable) einfügen" eingebettet wurde, wird beim Get_Alarm so ausgegeben: @1%d@.
Am Web-Server werden beide Werte korrekt angezeigt.


3. Zusammenfassung:

  • Ist der Datentyp des Begleitwertes "unsigned" und in die Meldung wird der Begleitwert als "signed" eingebaut, so kann Get_Alarm den Begleitwert nicht liefern
  • Ist der Datentyp des Begleitwertes "signed" und in die Meldung wird der Begleitwert als "unsigned" eingebaut, so kann Get_Alarm den Begleitwert nicht liefern
  • Dem Web-Server ist diese Diskrepanz egal - die Anzeige ist immer korrekt
Sprich: der Web-Server und Get_Alarm werten die Begleitwerte unterschiedlich aus, der Webserver ist toleranter
 
Zuletzt bearbeitet:
Bin ich auch schon drüber gestolpert. Die Werte werden seit 15.1(?) nicht mehr als Platzhalter definiert, sondern per Rechtsklick in die Alarmmeldungen eingefügt. Dann kommen sie auch korrekt im Get_Alarm mit.
Anhang anzeigen 48193

Die Probleme hatte ich auch schon. Ich glaube, das ist aber sagar schon bei V14 bei mir so aufgetreten.

@TE
Achtung bei Verwendung verschiedener Sprachen, da muß man dann die Texte aus der richitgen Sprache weiter versenden, wenn nötig.
 
Hi Zusammen,

ich muss das Thema nochmals aufgreifen.

Ich würde gerne auch die Funktion mit Get_AlarmState umsetzten, aber das Beispiel bei Siemens ist in Tia V15.1, wir arbeiten aber leider noch mit V14

Gibt es eine Möglichkeit, die Bausteine als Quelle oder ähnliches auszuleiten?

Gruß thetrock
 
Zurück
Oben