Control Unit mit Verbrauchskontrolle

Liegen die angeforderte bzw kommandierten Daten nicht statisch an, sondern soll hier eine einzelne Änderung übertragen werden, so sind die Daten der entsprechenden Controll-Unit mit einer zusätzlichen Verbrauchskontrolle versehen.

TYPE MCControlUnit:
  STRUCT
    X_Request : < DATENTYP A >; (* von GUI kommandierte Daten *)
    X_Enable : HLI_BOOLEAN; (* PLC bedient dieses Kommando *)
    X_Command : < DATENTYP A >; (* von PLC kommandierte Daten *)
    X_RequestSemaphor : HLI_BOOLEAN; (* Request gültig *)
    X_CommandSemaphor : HLI_BOOLEAN; (* Command gültig *)
    X_State : < DATENTYP B >; (* Rückmeldung der CNC *))
  END_STRUCT
END_TYPE

Beispiel:

CNC übernimmt die kommandierten Daten, wenn die Commandsemaphore den Value TRUE besitzt und setzt nach vollständiger Übernahme der Daten dieses Element auf den Value FALSE.

PLC kann Daten zur Kommandierung schreiben, wenn die Commandsemaphore den Value FALSE besitzt. Sind alle zu kommandierenden Daten geschrieben, setzt die PLC dieses Element auf den Value TRUE.

CNC schreibt die von der GUI angeforderten Daten, wenn die Requestsemaphore FALSE ist und setzt anschließend dieses Element auf TRUE.

PLC liest die vom GUI angeforderten Daten, wenn die Requestsemaphore TRUE ist. Nachdem die Daten vollständig in die PLC übernommen worden sind, setzt die PLC dieses Element auf FALSE.