Die PR200 Kleinsteuerung von akYtec kann die Werte der BOOL-, INT- oder REAL-Variablen sowie konstanten Text auf ihrer LCD-Anzeige darstellen, was auf die STRING-Variablen nicht zutrifft. Der STRING-Datentyp wird von der akYtec ALP Programmierumgebung nicht unterstützt. Was kann man aber tun, wenn man einen variablen Text mittels der LCD-Anzeige der Kleinsteuerung darstellen möchte?

Angenommen, eine PR200 Kleinsteuerung und ein TRM202 Prozessregler sind über die RS485-Schnittstelle via Modbus-Protokoll miteinander verbunden. Das Ziel ist, die Firmware-Version des Reglers auf der Anzeige der PR200 Kleinsteuerung darzustellen.

Laut der TRM202 Bedienungsanleitung wird der ASCII-Code der Firmware-Version des Geräts in 4 aufeinanderfolgenden Registern beginnend mit Adresse 0x1004 (hex) im Binärformat gespeichert.

Es sind drei Stufen erforderlich:

  • - Daten aus diesen Registern extrahieren
  • - Daten dekodieren
  • - ASCII-Zeichen anzeigen.

Die 4 Register können beispielweise in 2 INT-Variablen eingelesen werden.

Modbus Variablen

Diese Netzwerkvariablen können jetzt vom Display-Manager von akYtec ALP verarbeitet werden. Das würde jedoch keinen Sinn machen, da es sich nur um 32-Bit-Ganzzahlen handelt, die nichts mit ASCII-Symbolen zu tun haben. Deswegen sollen die beiden Variablen in einzelne Bytes unterteilt werden. Zu diesem Zweck gibt es das ASCII_CHAR Makro, das man im Komponenten-Manager finden kann (akYtec ALP: Hauptmenu > Gerät > Komponenten-Manager).

Das ASCII_CHAR hat 2 INT-Eingänge und einen INT-Ausgang. Werden eine Variable an einem Eingang und die Nummer eines ihrer Bytes an dem anderen Eingang eingegeben, gibt der Ausgang eine INT-Variable erzeugt aus den 8 Bits dieses Bytes aus. Eine ausführlichere Beschreibung ist auch dem Komponenten-Manager zu entnehmen.

Da jede Netzwerkvariable, Version_TRM202_r1 und Version_TRM202_r2, 4 Byte enthält, muss das ASCII_CHAR Makro auf jedes Byte angewendet werden, um daher 8 INT-Werte zu bekommen.

ASCII_CHAR Makro Modbus

Jeder dieser INT-Werte ist ein Code, der einem Symbol aus dem ASCII-Zeichensatz entspricht. Es bleibt noch, diese ASCII-Codes zu decodieren und die richtigen Zeichen auf dem LCD-Display des PR200s anzuzeigen. An dieser Stelle kommt das Displayelement Dynamische Box zum Einsatz, das der Display-Manager von akYtec ALP bietet:

Display-Element Dynamische Box, akYtec ALP

Das Displayelement Dynamische Box wird verwendet, um eine der Textzeilen aus einer Liste anzuzeigen, abhängig vom Wert der referenzierten Programmvariable vom Typ Integer. Das Displayelement Dynamische Box hat drei Parameter: Variable, Zeilenliste und Länge.

Mit der Variable kann der Verweis auf eine Programmvariable durchgeführt werden. Die Zeilenliste ist eine Tabelle mit Textzeilen. In vorliegenden Fall ist das die ASCII-Zeichentabelle. Der Text in der Zeile wird angezeigt, wenn der Wert der referenzierten Variablen gleich der Zeilen-ID ist. Die Länge ist die Anzahl der Zeichen, die angezeigt werden können.

Um die ganze Zeile der Firmware-Version des TRM202s anzuzeigen, müssen 8 Dynamische Box Displayelemente verwendet werden:

Dynamische Box, 8 Serie, akYtec ALP

‘The firmware version of the TRM202 on the LCD of the PR200’ ‘The firmware version of the TRM202 on the LCD of the PR200’.