Herunterladen Inhalt Inhalt Diese Seite drucken

Fehlernummer Und Status Einer Meldung Abfragen (Rückgabewerte Filtern) - Siemens SIMOTION SCOUT Funktionshandbuch

Vorschau ausblenden Andere Handbücher für SIMOTION SCOUT:
Inhaltsverzeichnis

Werbung

Programmierung allgemeiner Standardfunktionen
7.20 Anwendung einiger Systemfunktionen
7.20.1.6
Fehlernummer und Status einer Meldung abfragen (Rückgabewerte filtern)
Der Rückgabewert der Funktionen
gibt somit Auskunft, ob bei der Ausführung ein Fehler aufgetreten ist. Wie bei den meisten
Systemfunktionen zeigt ein Rückgabewert = 0 eine fehlerfreie Aufführung an.
Der Rückgabewert der Funktion
den Zustand einer Meldung an. Deshalb müssen Sie bei einer Abfrage des Status mit diesen
Funktionen zuerst den Rückgabewert mit der Konstanten ALARMS_ERROR (= 16#8000)
filtern. Damit stellen Sie fest, ob ein Fehler bei der Ausführung der Funktion aufgetreten ist.
Der Filter und die Fehlernummern sind so gewählt, dass sie bei einer UND-Verknüpfung
wahr sind. Wenn kein Fehler aufgetreten ist, können Sie den Status der Meldung auswerten.
Die vollständige Auflistung der Fehlernummern und Meldungszustände finden Sie unter
Funktionen zur Meldungsprogrammierung.
Demzufolge können Sie die Abfrage nach einem Fehler beim Absetzen des Befehls
_alarmScId
Rückgabewert der Funktion):
Tabelle 7- 18 Beispiele für Fehlerabfrage
retVal := _alarmScId (Ev_id := _alarm.SCOUT_alarm_name);
// Hier Fehlerabfrage
//...
Hinweis
Für die Fehlerabfrage können Sie Konstantenwerte und symbolische Konstanten
gleichberechtigt verwenden, siehe Funktionen zur Meldungsprogrammierung.
388
wie folgt gestalten (die Variable
IF (retVal AND ALARMS_ERROR) <> 0 THEN
// Bedingung erfüllt, also ist ein Fehler aufgetreten.
IF retVal = (ALARMS_ERROR OR
DSC_SVS_DEVICE_ALARMS_ILLEGAL_EVENT_ID) THEN
; // Meldungsnummer nicht zulässig.
END_IF;
ELSE
// Bedingung nicht erfüllt, also kein Fehler.
// Abfrage des Meldungs- und Quittierungszustands
IF retVal = 16#0000 THEN
; // Meldung gegangen, nicht quittiert.
ELSIF retVal = ALARMS_STATE THEN
; // Meldung gekommen, nicht quittiert.
ELSIF retVal = 16#0010 THEN
; // Meldung nicht vorhanden.
ELSIF retVal = (ALARMS_QSTATE OR ALARMS_STATE) THEN
; // Meldung gekommen, quittiert.
END_IF;
END_IF;
_alarmSId
alarmSqId
und_
_alarmScId
zeigt jedoch sowohl die Fehlernummer als auch
retVal
vom Datentyp DWORD beinhaltet den
enthält die Fehlernummer und
Basisfunktionen
Funktionshandbuch, 05/2009

Werbung

Inhaltsverzeichnis
loading

Inhaltsverzeichnis