Kommunikationskonzept

Hintergrundkommunikation

Wie im Kapitel Unterstützte Hardware ausgeführt, ist die maximale effektive Datenübertragungsrate unter anderem von der Zykluszeit der SPS abhängig. So ist zum Beispiel bei der seriellen Busklemme für eine Kommunikation mit effektiv 9600 bps bereits eine Zykluszeit von 1 ms notwendig. In vielen größeren Anwendungen würde eine solch kurze Zykluszeit für die gesamte SPS den Steuerungsrechner stark belasten.

Da für die meisten Anwendungen längere Zykluszeiten von z. B. 10 ms vollkommen ausreichend sind, ist es mit Hilfe der Bibliothek möglich, den Datenverkehr zwischen SPS und Hardware von der restlichen SPS-Anwendung zu entkoppeln. Dazu werden im SPS-Programm zwei Tasks angelegt. Die Standard-Task läuft in dem gewünschten langsamen SPS-Zyklus von z. B. 10 ms und eine zweite Kommunikations-Task läuft in einem schnelleren Zyklus von z. B. 2 ms.

Kommunikationskonzept 1:

Zur Entkopplung der unterschiedlichen Geschwindigkeiten zwischen der schnellen Kommunikations-Task und der Standard-Task werden Datenpuffer vom Typ ComBuffer verwendet, die asynchron beschrieben und gelesen werden.

Die später beschriebenen Funktionsbausteine zum Empfangen und Senden von Daten (SendByte, SendString, SendData etc.) benutzen nur noch die Datenpuffer zum Datenaustausch und sind damit unabhängig von der verwendeten Hardware. In jedem Fall wird zusätzlich zu den Sende- und Empfangsbausteinen ein Kommunikationsbaustein SerialLineControl in der schnellen Task aufgerufen, der den Datenverkehr zwischen Datenpuffer und Hardware mit maximaler Geschwindigkeit im Hintergrund abwickelt. Immer dann, wenn ein COM-Port oder eine KL60xx mit großem 22 Byte Dateninterface verwendet wird, kann bei kleinen Baudraten evtl. auf die zweite Task verzichtet werden. Der Kommunikationsbaustein SerialLineControl kann dann auch in der Standard-Task aufgerufen werden.

Die Kommunikation mit virtuellen COM Ports mit Hilfe des Funktionsbausteines SerialLineControlADS verwendet einen ADS Server. Über ADS werden die zu sendenden Daten asynchron ausgetauscht und in Zwischenpuffern verwaltet. Der Server seinerseits empfängt die Daten des virtuellen COM Ports unabhängig von der SPS. Somit hängt die maximale effektive Datenübertragungsrate nicht von der Zykluszeit der SPS ab.
Allein die Reaktionszeit auf angekommene Daten wird durch eine schnelle Task reduziert. Unabhängig davon sind die Virtual-Com-Port Treiber sowie der ADS Server nicht echtzeitfähig, wodurch sich die Gesamtverzögerung nicht definieren lässt.
Im Normalfall wird der Kommunikationsbaustein SerialLineControlADS in der Standard-Task aufgerufen und somit auf eine zweite Task verzichtet.