Anwendung

Sie können folgende Befehle per Parameter an den TcTouchLockCLI übergeben:

TcTouchLockCLI Befehle

Befehl

Funktion

-silent

Optional: Der TcTouchLockCLI gibt keine Ausgabe zurück.

-list

Listet alle angeschlossenen Geräte mit Namen, ID und Touch-Status auf.

-setID

Setzt die eingegebene ID. Ist nur ein Gerät angeschlossen, wird die eingegebene ID automatisch gesetzt. Bei mehreren Geräten muss das gewünschte Gerät durch eine Berührung des Monitors ausgewählt werden.

-setFocus

Setzt den Touch-Fokus auf das mit der ID angegebene Gerät. Alle anderen Geräte werden gesperrt.

-unlockAll

Entsperrt alle Geräte.

-help/-?

Listet die Funktionen des TcTouchLockCLI auf.

Exit Codes

Bedeutung

Code

Kein Fehler

0

Falsche/keine Parametereingabe

1

Falsche/keine Identifikationsnummer

2

Kein Gerät gefunden

3

Sind alle Multitouch-Panel-Geräte an den IPC angeschlossen, können Sie den angeschlossenen Geräten individuelle IDs zuweisen. Mit Hilfe des Befehls –setID können Sie bei einem angeschlossenen Gerät automatisch die ID setzen. Sind mehrere Geräte angeschlossen, müssen Sie nach Eingabe des Befehls –setID den zuzuordnenden Touchscreen berühren.

Sie können nun die Sperrung bestimmter Touchscreens über TwinCAT oder die Kommandozeilenapplikation vornehmen. Für die Anwendung in der SPS steht dazu ein eigener Funktionsbaustein zur Verfügung (siehe unten).

In der Kommandozeilenapplikation können Sie den Fokus mit Hilfe des Befehls –setFocus auf eine ID setzen. In der Folge ist eine Eingabe nur noch über das Gerät mit Fokus möglich. Wenn Sie mit dem Befehlt –setFocus eine nicht verfügbare ID angeben, werden alle angeschlossenen Touchscreens gesperrt. Mit dem Befehl –unlockAll können Sie diesen Fokus wieder aufheben.

FB_TcTouchLock_AquireFocus

Anwendung 1:
FB_TcTouchLock_AquireFocus

Sie können alternativ zur ausführbaren Datei den Fokus auf angeschlossene Panel mit dem Funktionsbaustein FB_TcTouchLock_AcquireFocus anfordern und freigeben. Folgende Voraussetzungen müssen Sie dabei beachten:

Wird der Fokus an einem Panel angefordert, wenn ein anderes Panel ihn derzeit besitzt, so muss der Fokus von diesem zunächst frei gegeben werden. Sobald die Freigabe erfolgt ist, wird der Fokus automatisch auf das im Wartezustand befindliche Gerät gesetzt.

Die Panel, auf die durch den Funktionsblock zugegriffen werden, müssen Sie zuvor durch die Kommandozeilenapplikation TcTouchLockCLI.exe konfigurieren. Dabei müssen Sie jedem Gerät eine spezifische Identifikationsnummer zuweisen (siehe oben).

VAR_INPUT

VAR_INPUT
    bEnable    : BOOL;
    sSetID     : STRING(32);
    tLEDTime   : TIME := 200;
END_VAR

bEnable: TRUE = Fokus anfordern, FALSE = Fokus abgeben

sSetID: ID des Gerätes

tLEDTime: Die Ausgabe-LED blinkt im festgelegten Intervall (100ms – 1s), während der Fokus angefordert wird

VAR_OUTPUT

VAR_OUTPUT
    bAcquired
  : BOOL := FALSE;(* Focus status information *)
    bLED
       : BOOL := FALSE;(* LED control output *)
    bBusy
      : BOOL;(* TRUE => function in progress *)
    bError:
    : BOOL;(* Error flag *)
    nErrID
     : UDINT;(* Error code *)
END_VAR

bAcquired: TRUE, wenn der Client den Fokus besitzt und FALSE, wenn er ihn verliert.

bLED: Dieser Ausgang hat je nach Modus folgende Bedeutung:

Modus

Bedeutung

Konstant TRUE

Das Panel besitzt den Fokus

Konstant FALSE

Das Panel besitzt den Fokus nicht

Toggelt

Das Panel wartet darauf den Fokus zu erhalten

bBusy: TRUE solange der Funktionsbaustein aktiv ist.

bError: TRUE, wenn ein ADS-Fehler bei der Übertragung des Kommandos auftritt. Der bBusy-Ausgang wird zuvor zurückgesetzt.

nErrId: Liefert bei einem gesetzten bError-Ausgang die ADS-Fehlernummer oder einen befehlsspezifischen Fehlercode zurück (Tabelle).

Fehlercodes

Fehlerbeschreibung

0x0000

Kein Fehler

0x0006

Ziel-Port nicht gefunden

Beispiel: Touch-Focus über Sondertaste steuern

Sie können den Fokus beispielweise über eine Sondertaste des Panels setzen. Da der Fokus auch bei gesperrter Eingabe über den Touchscreen angefordert werden soll, müssen Sie eine Eingabemöglichkeit außerhalb des sperrbaren Touchscreens berücksichtigen. Über den TwinCAT System Manager wird die Sondertaste mit der entsprechenden Input-Variable des PLC Programms verknüpft. Pro Panel wird eine FB_TcTouchLock_AquireFocus Instanz erzeugt und mit der ID des Panels konfiguriert. Nach Drücken der Sondertaste an einem Panel, wobei der Baustein R_TRIG die steigende Flanke detektiert, versucht das PLC Programm über die entsprechende FB_TcTouchLock_AquireFocus Instanz den Touch-Fokus zu setzen. Der Funktionsbaustein kann außerdem einen Ausgang ansteuern (z.B. eine LED), der signalisiert, ob der Touch-Fokus erfolgreich gesetzt wurde oder ob noch versucht wird den Fokus zu holen. Erneutes Drücken der Sondertaste setzt den Touch-Fokus wieder zurück und ermöglicht damit ein Setzen des Touch-Fokus auf andere Panel.

Anwendung 2:
Panelbeispiel

Das PLC-Programm sieht für zwei Panel folgendermaßen aus:

PROGRAM MAIN
VAR
    button1 AT%IX0.0 : BOOL;
    button2 AT%IX0.1 : BOOL;

    led1 AT%QX0.0 : BOOL;
    led2 AT%QX0.1 : BOOL;

    fbPanel1 : FB_TcTouchLock_AcquireFocus := ( sSetID := 'A' );
    fbPanel2 : FB_TcTouchLock_AcquireFocus := ( sSetID := 'B' );

    trigger1 : R_TRIG;
    trigger2 : R_TRIG;
END_VAR
(* Panel 1 *)
trigger1( CLK := button1 );
IF trigger1.Q THEN
fbPanel1.bEnable := NOT fbPanel1.bEnable;
END_IF
fbPanel1(bLED=>LED1);

(* Panel 2 *)
trigger2( CLK := button2 );
IF trigger2.Q THEN
fbPanel2.bEnable := NOT fbPanel2.bEnable;
END_IF
fbPanel2(bLED=>LED2 );