Bereitstellen einer Target Visualisierung
1. Erstellen Sie eine Visualisierung in TwinCAT PLC.
Um die Leistung zur Laufzeit zu verbessern, sollten Sie möglichst viele Elemente, welche in der Darstellung statisch sind (keine Bewegungen, keine Textveränderung, keine Farbveränderung, ...) nach hinten legen.
Tipp: Mit Hilfe von 'Extras' 'Elementliste' können sämtliche Elemente „Nach vorn“ und „Nach hinten“ verschoben werden. Der Hintergrund ist folgender. Alle statischen Elemente werden nur einmal in eine Hintergrundbitmap gezeichnet. Dadurch wird der zyklische Zeichenaufwand stark verringert. Dies macht sich vor allem für komplexe Polygone oder auch Bitmaps bezahlt.
Wenn ein Visualisierungsbaustein mit dem Namen TC_VISU vorhanden ist, wird die Target-Visualisierung später beim Aufruf mit diesem Baustein gestartet. Ansonsten wird der Baustein geladen werden, der an erster Stelle der Objektliste im Register 'Visualisierungen' in TwinCAT PLC Control steht.
Falls in Ihrem Projekt implizite Visualisierungsvariablen als remanente Variablen behandelt werden sollen, nehmen Sie die entsprechenden Deklarationen bei den Globalen Variablen vor.
![]() | Die Bitmaps der Visualisierung werden als Dateien übertragen. |
2. Deaktivieren Sie
für jeden Visualisierungsbaustein, der nicht in der Target-Visualisierung enthalten sein soll, in den Objekt-Eigenschaften ('Projekt' 'Objekt' 'Eigenschaften') im Registerblatt 'Visualisierung' die Option 'Visualisierung':
3. Konfigurieren Sie
in den Zielsystemeinstellungen in der Kategorie "TwinCAT" (die jeweilige Verfügbarkeit der Optionen ist abhängig vom Zielsystem!) dass das Projekt für die Target-Visualisierung vorgesehen ist: Option "Enable CE Target Visualization" aktivieren.
Zusätzlich kann hier gewählt werden, ob die Benutzereingaben und das Neuzeichnen der Target-Visualisierungselemente ...
... mit Hilfe von automatisch angelegten VISU-Tasks oder über individuelle Programmierung gesteuert werden sollen: Option Taskerzeugung deaktivieren
... von einem oder aufgeteilt von zwei Bausteinen bzw. Tasks abgearbeitet werden sollen:
Option VISU_INPUT_TASK verwenden. (Lassen Sie sich in diesem Fall nicht durch den Begriff "..._TASK" irritieren, die Option hat auch Bedeutung, wenn die automatische Task-Erzeugung deaktiviert ist!)
Folgende Konfigurationen sind also, abgesehen von der Option der Deaktivierung der Tastaturbedienung für Tabellen, möglich:
Steuerung über automatisch erzeugte VISU-Tasks, die die Programme MAINTARGETVISU_PAINT _CODE und MAINTTARGETVISU_INPUT_CODE aufrufen:
Fall A:
Taskerzeugung deaktivieren ist ausgeschaltet:
VISU_INPUT_TASK verwenden ist aktiviert:
Es werden automatisch zwei Tasks mit je einem Programmaufruf angelegt:
- VISU_TASK ruft den implizit verfügbaren Programmbaustein MAINTARGETVISU_PAINT_CODE auf, der das Neuzeichnen der Visualisierungselemente übernimmt.
- VISU_INPUT_TASK ruft den implizit verfügbaren Programmbaustein MAINTARGETVISU_INPUT_CODE auf, der die Abarbeitung der Benutzereingaben übernimmt.
Die Default-Einstellungen der Tasks:
VISU_INPUT_TASK: zyklisch, Priorität 2, Intervall t#50ms;
VISU_TASK: zyklisch, Priorität 3, Intervall t#200ms
![]() | Diese Parameter können natürlich modifiziert werden, aber: VISU_INPUT_TASK sollte immer vorrangig vor VISU_TASK abgearbeitet werden, um ein sinnvolles Zusammenspiel von Eingaben und Aktualisieren der Darstellung zu gewährleisten. |
Fall B:
Taskerzeugung deaktivieren ist ausgeschaltet:
VISU_INPUT_TASK verwenden ist deaktiviert:
Nur die Task VISU_TASK wird automatisch angelegt, beinhaltet jedoch zusätzlich die Funktion der VISU_INPUT_TASK.
Das implizite Programm MAINTARGETVISU_ PAINT_CODE enthält in diesem Fall zusätzlich die Funktionalität des Programms MAINTTARGET VISU_ INPUT_CODE.
Diese Konfiguration ist für Systeme geeignet, die kein Multi-Tasking erlauben. Nachteilig ist, dass keine differenzierte Abarbeitungszeiten für die Verarbeitung von Benutzereingaben und dem Neuzeichnen der Elemente eingestellt werden können, s.o.
Steuerung ohne automatisch festgelegte Tasks;
die impliziten Programmbausteine MAINTARGETVISU_PAINT_CODE und MAINTTARGETVISU_INPUT_CODE können individuell im Applikationsprogramm aufgerufen bzw. an Tasks gebunden werden:
Fall C:
Taskerzeugung deaktivieren ist aktiviert:
VISU_INPUT_TASK verwenden ist aktiviert:
Die beiden impliziten Programmbausteine stehen zur Verfügung und können einzeln aufgerufen werden bzw. an eine beliebige Task geknüpft werden. (Beachten Sie hierzu die Tipps in (Fall A).
Beispiel für das Steuern der Target-Visu-Programmbausteine im Applikationsprogramm:
PROGRAM visu_control
VAR
n: INT;
END_VAR
n:=n+1;
IF (n MOD 4) =0 THEN
MAINTARGETVISU_PAINT_CODE();
END_IF;
MAINTARGETVISU_INPUT_CODE();
Hier wird im Programm visu_control der Eingabeverarbeitende Baustein nur nach jedem vierten Aufruf des zeichnenden Bausteins aufgerufen, um die Gefahr zu vermindern, dass das Neuzeichnen durch eine Benutzereingabe unterbrochen wird.
![]() | Achten Sie beim Anlegen Ihres Programms unbedingt darauf, diese Gefahr der unkorrekten Anzeige zu umgehen! |
Fall D:
Taskerzeugung deaktivieren ist aktiviert:
VISU_INPUT_TASK verwenden ist deaktiviert:
Es steht nur der implizite Programmbaustein MAINTARGET VISU_PAINT_CODE zur Verfügung, beinhaltet jedoch zusätzlich die Funktionalität von MAINTARGETVISU_ INPUT_ CODE.
Er kann im Applikationsprogramm aufgerufen bzw. an eine beliebige Task gebunden werden.
4. Laden Sie das Projekt
auf die Steuerung ('Online' 'Einloggen').