Übersicht TwinCAT 3 Funktionsbausteine

Name

Funktion

FB_CrestronConnections

Dieser Funktionsblock repräsentiert den TCP/IP-Server und verwaltet die TCP-Verbindungen.

FB_CrestronCommunication

Dieser Funktionsblock verwaltet die Kommunikation zu den einzelnen Crestron Steuerungen.

FB_CrestronReadBoolArray

Dieser Funktionsblock erlaubt es mehrere Signale aus einer Crestron Steuerung zu lesen und in ein Bool-Arrary der SPS zu schreiben.

FB_CrestronReadByteArray

Dieser Funktionsblock erlaubt es mehrere Signale aus einer Crestron Steuerung zu lesen und in ein Byte-Arrary der SPS zu schreiben.

FB_CrestronReadUIntArray

Dieser Funktionsblock erlaubt es mehrere Signale aus einer Crestron Steuerung zu lesen und in ein UInt-Arrary der SPS zu schreiben.

FB_CrestronWriteBoolArray

Dieser Funktionsblock erlaubt es ein Bool-Array der SPS in eine Crestron Steuerung zu schreiben.

FB_CrestronWriteByteArray

Dieser Funktionsblock erlaubt es ein Byte-Array der SPS in eine Crestron Steuerung zu schreiben.

FB_CrestronWriteUIntArray

Dieser Funktionsblock erlaubt es ein UInt-Array der SPS in eine Crestron Steuerung zu schreiben.

FB_CrestronPushBoolArray

Dieser Funktionsblock erlaubt es ein Bool-Array der SPS in eine Crestron Steuerung zu schreiben. Die Push-Befehle empfangen keine Bestätigung von der Crestron Steuerung.

FB_CrestronPushByteArray

Dieser Funktionsblock erlaubt es ein Byte-Array der SPS in eine Crestron Steuerung zu schreiben. Die Push-Befehle empfangen keine Bestätigung von der Crestron Steuerung.

FB_CrestronPushUIntArray

Dieser Funktionsblock erlaubt es mehrere Signale aus einer Crestron Steuerung zu lesen und in ein UInt-Arrary der SPS zu schreiben. Die Push-Befehle empfangen keine Bestätigung von der Crestron Steuerung.

Neben den oben genannten FBs werden noch einige Interfaces und eine Basisklasse verwendet. Da diese aber nicht direkt benutzt werden, wurde auf eine genauere Beschreibung verzichtet. Der Zusammenhang der jeweiligen Interfaces und Funktionsblöcke soll aber kurz vorgestellt werden.

Jeder FB, der einen Schreib- oder Lesebefehl darstellt, erbt vom FB_CrestronCommand. Dieser FB enthält einige allgemeine Ein- und Ausgänge (z.B. bStart, bBusy, bError und nErrorId), einige interne Variablen und eine Methode zum Erzeugen der Invoke-Id. Außerdem enthält der FB einen Interface-Pointer vom Typ I_CrestronCommunication. Über diesen Interface-Pointer werden die Methoden zum Senden und Empfangen der Datenpakte bereitgestellt. Beim Deklarieren der einzelnen FBs für die Schreib- oder Lesebefehle wird eine Instanz von FB_CrestronCommunication übergeben. Dieser FB implemetiert das Interface I_CrestronCommunication mit den Methoden SendCommand() und TryGetResponse().

Neben I_CrestronCommunication implementiert FB_CrestronCommunication auch das Interface I_CrestronSocketObserver. Über dieses Interface wird jedesmal die Methode Update() aufgerufen, wenn FB_CrestronConnections einen neuen TCP-Socket erhält. Auch hier wird bei der Deklaration von FB_CrestronCommuncation die Instanz von FB_CrestronConnections übergeben.

Übersicht TwinCAT 3 Funktionsbausteine 1:

Dieser Ansatz bietet den Vorteil, das keine globalen- oder IN_OUT-Variablen zur Kommunikation der einzelnen Instanzen untereinander notwendig sind. Alle Funktionsblöcke sind durch Interfaces voneinander entkoppelt.