Freigabeeingang EN und Freigabeausgang ENO

In Codebausteinen wie Funktionen, Funktionsbausteinen sowie bei vielen Standardbausteinen wie z.B. für Umwandlungsfunktionen, befinden sich der Freigabeeingang EN und der Freigabeausgang ENO. EN steht für enable und ENO steht für enable output.

Der Freigabeeingang EN kann, muss aber nicht, mit einem Freigabesignal verknüpft werden. Beispielsweise könnte man angeben, dass ein Baustein nur aufgerufen und abgearbeitet wird, wenn am Eingangsoperanden E0.1 das Signal eine 1 ist. Ist EN nicht an ein Freigabesignal verknüpft, erfolgt ebenfalls der Bausteinaufruf und die Abarbeitung des Bausteins.

EN und ENO in KOP

Ist der Bausteinaufruf erfolgt, führt der Baustein am Freigabeausgang ENO während der Abarbeitung das Signal 1. Es kann durchaus der Fall eintreten, dass während der Abarbeitung eines Bausteins ein Fehler auftritt, z.B. wenn die übergebenen Zahlen nicht das richtige Format haben. Im Falle eines Fehlers, führt der Baustein am ENO das Signal 0.

Ist der Baustein über EN an ein Freigabesignal geknüpft und das Freigabesignal ist nicht vorhanden, wird der Baustein nicht abgearbeitet und der Freigabeausgang ENO führt ebenfalls eine 0.

Die Freigabeeingang EN und der Freigabeausgang ENO kann auch dafür genutzt werden, um mehrere Bausteine, Funktionen oder Funktionsbausteine zu einer Kette zusammen zu schließen. Dabei führt man den Freigabeausgang ENO zum Freigabeeingang EN eines anderen Bausteins. Das würde zur Folge haben, dass die nachgelagerten Bausteine nur abgearbeitet werden können, wenn die vorgelagerten Bausteine fehlerfrei abgearbeitet worden sind.

Man kann eine fehlerhafte Bearbeitung des Bausteins auch selbst programmieren, um z.B. das Verhalten des Programms im Fehlerfall zu beobachten. Hierfür benutzt man die Operation SAVE. Mit dem Befehl SAVE speichert man den aktuellen Status des VKE ins BIE-Bit (Bit Nummer 8) des Statuswortes.

Erfolgt während der Bausteinabarbeitung ein Fehler, wird dies im BIE-Bit mit 0 angezeigt. Über das BIE-Bit wird der ENO-Ausgang festgelegt. Ist kein Fehler vorhanden (BIE-Bit=1), führt ENO eine 1. Ist ein Fehler vorhanden (BIE-Bit=0), führt ENO ebenfalls 0.

Durch den Umstand, dass das BIE-Bit den ENO-Ausgang steuert und mit der Operation SAVE das VKE ins BIE-Bit geschrieben wird, kann man den Fehlerfall im Programm selbst produzieren, indem man mit dem CLR-Befehl das VKE auf 0 setzt und danach den SAVE-Befehl ausführt und so das BIE-Bit auf 0 setzt.

Man könnte natürlich auch den umgekehrten Fall programmieren. Nämlich dass man mit dem SET-Befehl das VKE auf 1 setzt und danach den SAVE-Befehl ausführt. In dem Fall würde der Aufruf des nachgelagerten Bausteins auf jeden Fall erfolgen, da im BIE-Bit kein Fehler (1) angezeigt werden würde.

Mit dem SAVE-Befehl wird das Erstabfragebit /ER im Statuswort nicht zurückgesetzt. Das würde bedeuten, die nächste Abfrageoperation würde mit dem VKE verknüpft werden. Das BIE-Bit wird auch dafür benutzt, den Zustand des VKE im BIE-Bit zwischenzuspeichern und im Programm wiederherzustellen. Dieser Vorgang wird jedoch nicht empfohlen, da das BIE-Bit durch andere Operationen überschrieben worden sein kann.