ADSLOGEVENT
Der Funktionsbaustein erlaubt das Absenden und Quittieren von Meldungen zum TwinCAT Eventlogger.
VAR_INPUT
VAR_INPUT
NETID : STRING(23);
PORT : UINT;
Event : BOOL;
EventQuit : BOOL;
EventConfigData : TcEvent;
EventDataAddress : UDINT;
EventDataLength : UDINT;
FbCleanup : BOOL;
TMOUT : TIME;
END_VAR
NETID : Ist ein String, der die AMS-Netzwerkkennung des Zielgerätes enthält, an das der ADS-Befehl gerichtet wird.
PORT : Enthält die Portnummer des ADS-Gerätes. Der TwinCAT Eventlogger hat die Portnummer 110.
Event : Mit der steigenden Flanke wird das 'Kommen' des Events signalisiert. Mit der fallenden Flanke das 'Gehen' des Events.
EventQuit : Mit der steigenden Flanke wird das Event quittiert.
EventConfigData : Datenstruktur mit den Event-Parametern.
EventDataAddress : Adresse mit den Daten, die mit dem Event geschickt werden sollen.
EventDataLength : Länge der Daten, die mit dem Event geschickt werden sollen.
FbCleanup : Bei TRUE wird der Baustein komplett initialisiert.
TMOUT : Gibt die Zeit bis zum Abbruch der Funktion an.
VAR_OUTPUT
VAR_OUTPUT
EventState : UDINT;
Err : BOOL;
ErrId : UDINT;
Quit : BOOL;
END_VAR
EventState : Zustand des Events.
ERR : Dieser Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung eines Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in 'ErrorId' enthalten. Wenn der Baustein ein Timeout-Fehler hat, so ist 'Error' = TRUE und 'ErrorId' = 1861 (Hexadezimal 0x745). Wird durch das Ausführen eines Befehls an den Eingängen auf FALSE zurückgesetzt.
ERRID : Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das Ausführen eines Befehls an den Eingängen auf 0 zurückgesetzt.
Quit : Quittiert das Event.
Das obere Bild stellt den prinzipiellen Ablauf dar.
Bei nicht quittierungspflichtigen Meldungen wird mit der steigenden Flanke am Event Eingang des Bausteins das Event gemeldet und damit aktiv im Eventlogger. Die fallende Flanke am Event Eingang löst den Reset aus. Mit diesem Signal wird das Event im Eventlogger wieder abgemeldet
Bei quittierungspflichtigen Meldungen wird das Event wieder mit der steigenden Flanke am Event Eingang aktiviert. Deaktiviert wird das Event entweder
* durch die fallende Flanke am Event Eingang (wenn vorher ein Quittierungssignal aus der SPS mit dem Quit Eingang oder von der Visualisierung gekommen ist) oder
* durch die steigende Flanke am Quit Eingang (wenn vorher ein Reset durch eine fallende Flanke am Event Eingang ausgelöst wurde).
Wenn zwischen Eventaktivierung und Kommen der Quittierung ein Reset des Event kommt, heißt das nächste Kommen des Event Eingangs 'Signal'. Damit wird ein Request bei bereits aktiven Event gemeldet.
Schrittweiser Ablauf:
- Konfigurieren eines Events:
- Struktur EventConfigData parametrieren
- Übergeben von Parametern
Adresse auf eine Struktur, ein Array oder eine Einzelvariable mit ADR Operator an EventDataAddress anlegen. Länge der Struktur, des Array oder der Einzelvariablen mit SIZEOF Operator ermitteln und an Eingang EventDataLength anlegen. Soll z. B. eine Struktur mit einer INT und einer LREAL Variablen mit dem Event übergeben werden, so ist eine Struktur mit diesen beiden Komponenten zu erstellen und zu instanziieren. Die Adresse und die Länge dieser Instanz muss übergeben werden. - Setzen eines Events:
Steigende Flanke am Event Eingang - Rücksetzen eines Events:
Fallende Flanke am Event Eingang - Quittieren eines Events:
Steigende Flanke am Quit Eingang - Komplettes Löschen der Instanz:
Mit der steigenden Flanke am Eingang FbCleanup wird der Inhalt der Instanz komplett gelöscht. Damit wird nicht unmittelbar ein bestehendes Event aus dem Eventlogger gelöscht.
Nachdem ein Event an den Eventlogger verschickt wurde, ändert sich der Status des Event sichtbar am Eventstate Ausgang.
Beispiel:
Konfiguration des Events:
Aufruf des FBs ADSLOGEVENT:
Dieses Sample enthält
- Eine 'Event Configuration.ecp' Datei, welche mit dem TcEventConfigurator geöffnet und aktiviert werden kann.
- Ein SPS Beispiel Programm
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken |
---|---|---|
TwinCAT v2.7.0 | PC or CX (x86) | PLCEvent.Lib |
TwinCAT v2.8.0 | PC or CX (x86) | TcSystem.Lib |
TwinCAT v2.10.0 Build >= 1301 | CX (ARM) | TcSystem.Lib |