Hey Leute,
ich kämpfe seit mehreren Tagen mit einem Problem und könnte echt eure Hilfe gebrauchen.
Ich habe ein Wago PFC200 750-8212 in der Applikation.
Hier ist, was ich erreichen möchte:
Ich will eine Nachricht aus der Alarmtabelle in WebVisu (zum Beispiel „Einheit 001: Modbus-Kommunikationsfehler“) auslesen und in einer String-Variablen speichern. Mein Ziel ist es, diese Meldung anzupassen und sie erneut für einen anderen Fehler in der Alarmtabelle anzuzeigen. Die Meldung sollte abhängig von der Benutzereingabe.
Ich habe herausgefunden, dass das mit der "AlarmManager 4.6.0.0 Bibliothek (intern)" möglich ist.
Ich habe den folgenden Code in ST geschrieben:
//declaration
arritfAlarmsFromAll : ARRAY [0 … 20] OF IAlarm2;
sMessage:STRING;
parritfAlarms
OINTER TO ARRAY[0…15] OF IAlarm;
itfAlarmGroup : IAlarmGroup;
//code
parritfAlarms:= ADR(arritfAlarmsFromAll);
IF parritfAlarms <> 0 THEN
psMessage := parritfAlarms.GetMessage(stringType := __SYSTEM.TYPE_CLASS.TYPE_STRING);
sMessage := psMessage^;
END_IF
Allerdings bekomme ich einen Ausnahmefehler (Zugriffsverletzung) auf der SPS. Wenn ich auf den Fehler klicke, werde ich zu der Zeile weitergeleitet, in der der Zeiger verwendet wird (psMessage := parritfAlarms.GetMessage(stringType := __SYSTEM.TYPE_CLASS.TYPE_STRING)
. Ich weiß nicht, was schief läuft.
Jede Hilfe wäre super. Danke
!
ich kämpfe seit mehreren Tagen mit einem Problem und könnte echt eure Hilfe gebrauchen.
Ich habe ein Wago PFC200 750-8212 in der Applikation.
Hier ist, was ich erreichen möchte:
Ich will eine Nachricht aus der Alarmtabelle in WebVisu (zum Beispiel „Einheit 001: Modbus-Kommunikationsfehler“) auslesen und in einer String-Variablen speichern. Mein Ziel ist es, diese Meldung anzupassen und sie erneut für einen anderen Fehler in der Alarmtabelle anzuzeigen. Die Meldung sollte abhängig von der Benutzereingabe.
Ich habe herausgefunden, dass das mit der "AlarmManager 4.6.0.0 Bibliothek (intern)" möglich ist.
Ich habe den folgenden Code in ST geschrieben:
//declaration
arritfAlarmsFromAll : ARRAY [0 … 20] OF IAlarm2;
sMessage:STRING;
parritfAlarms

itfAlarmGroup : IAlarmGroup;
//code
parritfAlarms:= ADR(arritfAlarmsFromAll);
IF parritfAlarms <> 0 THEN
psMessage := parritfAlarms.GetMessage(stringType := __SYSTEM.TYPE_CLASS.TYPE_STRING);
sMessage := psMessage^;
END_IF
Allerdings bekomme ich einen Ausnahmefehler (Zugriffsverletzung) auf der SPS. Wenn ich auf den Fehler klicke, werde ich zu der Zeile weitergeleitet, in der der Zeiger verwendet wird (psMessage := parritfAlarms.GetMessage(stringType := __SYSTEM.TYPE_CLASS.TYPE_STRING)

Jede Hilfe wäre super. Danke


