Darstellen von Texten auf dem Display

Mit Hilfe von TwinCAT lässt sich das Display auf zwei Arten steuern. Eine Variante ist die Programmierung über den System Manager. Als zweite Möglichkeit kann das Display über einen Funktionsbaustein direkt aus dem SPS-Programm beschrieben werden.

Einstellungen im System Manager

Beim Start des TwinCAT-Systems kann das Display mit dem in der Konfiguration festgelegt Text beschrieben werden. Dieser Text wird im System Manager eingestellt.

Darstellen von Texten auf dem Display 1:

Dazu wird im Hierarchiebrowser das CX10x0-Gerät ausgewählt. Unter dem Karteireiter CX1100 können dann im Bereich "Display Einstellungen" die beiden Zeilen des Displays beschrieben werden. Dazu müssen die Felder an der Stelle für Initialisierung  und Schreiben angewählt sein. Die Änderungen werden nur wirksam, wenn die Konfiguration geschrieben wird. Beim Restart des TwinCATs wird dann der eingestellte Text angezeigt.

Darstellen von Texten auf dem Display 2:

Über den Reiter Display kann das Display direkt angesteuert werden. Über die Schalter werden die entsprechenden Funktionen sofort ausgeführt. Man kann folgende Funktionen ausführen:

In dem Texteingabefeld wird der gewünschte Text eingetragen. Mit dem Schalter "Write Current" wird der Text an die Position der aktuellen Schreibmarke geschrieben.

Darstellen von Texten auf dem Display 3:

Mit dem Schalter "Write At", dem Zahleneingabefeld und der Checkbox "Second Line" kann gezielt an eine Position im Display geschrieben werden. Der sinnvolle Wertebereich für Position geht von 0 bis 15. Der Anwender sollte aber auch die Länge des Textes beachten. (Jede Zeile hat 16 Zeichen!) Im unten dargestellten Beispiel wird der Text "CX1100-000x" an Position 0 (Anfang der Zeile) in Zeile 2 geschrieben.

Einstellungen im SPS-Programm

Zur Ansteuerung des Displays in einem SPS-Programm stellt die Bibliothek für die CX-Familie (TcCX1000System.lib) den Funktionsblock FB_CX1000SetTextDisplay zur Verfügung. Über diesen Funktionsblock können alle Funktionen des Displays aufgerufen werden.  Die Bibliothek muss über den Bibliotheksverwalter eingebunden werden. Ist dies geschehen, steht der Baustein als Funktionsblock zur Verfügung. Er wird als solcher im Deklarationsteil des Programms instanziert.

PROGRAM MAIN
VAR
    Display_0 :  FB_CX1000SetTextDisplay;
END_VAR

Im Programm erfolgt dann der Aufruf mit den Parametern. Es gibt fünf Parameter für diesen Funktionsblock:

Mit "bExecute" wird bei steigender Flanke wird das Kommando ausgeführt. "nDevID" gibt die Device ID des CX1100-Gerätes, auf das geschrieben wird, an. Die ID wird im System Manager angezeigt. (Reiter für Allgemein bei CX1100, oben rechts). Mit dem Parameter "stLine" wird ein Text von maximal 20 Zeichen übergeben. Es werden aber nur die ersten 16 Zeichen davon dargestellt. Mit "nCursorPos" wird die Schreibposition des Textes angegeben. Als sinnvoller Wertebereich kommt hier 0 bis 15 in Frage.  Mit "nMode"  wird der Betriebsmodus des Funktionsblocks gewählt. Die Modi sind im einzelnen:

Der Aufruf sieht dann wie folgt aus:

Display_0(
    bExecute := write_now,      (* write_now ist ein boolscher Wert und fungiert als Schalter)
    nDevID  := 1,           (* DeviceID des CX1100 *)
    nMode   := e_CX1000_WRITELine1, (* Schreiben auf erste Zeile des Displays *)
    stLine  := 'Beckhoff CX1100',   (* Konstanter Text, hier kann aber auch eine Variable stehen *)
    nCursorPos := 0         (* Schreibposition ist 0, also Anfang der Zeile*)
);

Für die Auswertung im Programmumfeld liefert der Baustein einige Statussignale. Diese können als Rückmeldung zum SPS-Programm benutzt werden. Es gibt drei Antwortsignale aus der Funktion: 

"bBusy" signalisiert, dass das Kommando gerade per ADS übertragen wird. Solange "bBusy" auf TRUE ist, wird kein neues Kommando angenommen. "bErr" meldet Fehler bei einem Funktionsblockaufruf. (Signal geht auf TRUE). Über die "nErrorID" kann dann der aufgetretene Fehler über eine Fehlernummer analysiert werden. Die Fehlernummer bezeichnet einen Fehler im ADS-Protokoll.