Übersicht TwinCAT 3 Funktionsbausteine
Name | Funktion |
---|---|
Dieser Funktionsblock repräsentiert den TCP/IP-Server und verwaltet die TCP-Verbindungen. | |
Dieser Funktionsblock verwaltet die Kommunikation zu den einzelnen Crestron Steuerungen. | |
Dieser Funktionsblock erlaubt es mehrere Signale aus einer Crestron Steuerung zu lesen und in ein Bool-Arrary der SPS zu schreiben. | |
Dieser Funktionsblock erlaubt es mehrere Signale aus einer Crestron Steuerung zu lesen und in ein Byte-Arrary der SPS zu schreiben. | |
Dieser Funktionsblock erlaubt es mehrere Signale aus einer Crestron Steuerung zu lesen und in ein UInt-Arrary der SPS zu schreiben. | |
Dieser Funktionsblock erlaubt es ein Bool-Array der SPS in eine Crestron Steuerung zu schreiben. | |
Dieser Funktionsblock erlaubt es ein Byte-Array der SPS in eine Crestron Steuerung zu schreiben. | |
Dieser Funktionsblock erlaubt es ein UInt-Array der SPS in eine Crestron Steuerung zu schreiben. | |
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. | |
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. | |
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.

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.