FB_PJLink

FB_PJLink 1:

Dieser Funktionsbaustein ermöglicht die Kommunikation zu einem Projektor über TCP/IP und kann zum Steuern und Überwachen verwendet werden. Die Kommunikation zu einem Projektor wird durch den Funktionsbaustein automatisch aufgebaut. Jede Information, die von der Steuerung empfangen wird, wird ausgewertet und in der Struktur ST_PJLink_Projector_Status (Ausgangsparameter stProjStatus) ausgegeben. Darüber hinaus gibt es eine automatische Status-Update Funktionalität, die periodisch ausgeführt wird. Informationen, Warnungen und Errors werden mit Hilfe des TC3 Eventloggers ausgegeben.

Voraussetzungen für FB_PJLink:

FB_PJLink 2:

Projektoreinstellungen beachten

Folgende Einstellungen müssen beim Projektor eingerichtet werden:

  • Aktivierung der PJLink-Funktionalität,
  • Deaktivierung der PJLink-Security-Funktionalität (optional),
  • Aktivierung der Netzwerk-Funktionalität,
  • Deaktivierung der ECO-Funktion (Abschaltung der Netzwerk-Funktionalität im Standby-Modus).

Das Senden von Befehlen und Statusabfragen zum Projektor, wird durch Aufrufen von Methoden und Setzen der jeweiligen Input-Parameter durchgeführt:

FB_PJLink 3:

Lizenz

Für die Verwendung von FB_PJLink wird sowohl eine TwinCAT 3.1-Lizenz, als auch eine TF6310 „TwinCAT TCP/IP"- Lizenz benötigt.

VAR_INPUT

    bEnable             : BOOL;
sProjector          : T_IPv4Addr;
sServerNetID        : T_AmsNetId;
sSecurityPW         : STRING(32);
bKeepAliveSocket    : BOOL := FALSE;
tStatusUpdateTime   : TIME := T#5S;
eTraceLevel         : TcEventSeverity;

bEnable: Ein Setzen auf TRUE aktiviert den Funktionsbaustein. Die Kommunikation zu einem Projektor wird aufgebaut. Bei FALSE wird die Kommunikation beendet und der Funktionsbaustein deaktiviert.

sProjector: Die lokale IP-Adresse (IPv4) des TCP/IP Client/Server-Sockets als String (z.B. '2.168.0.5'). Für den Default-Netzwerkadapter kann auch ein Leerstring angegeben werden.

sServerNetID: String mit der Netzwerkadresse des TwinCAT TCP/IP Connection Servers. Für den lokalen Rechner (default) kann auch ein Leerstring angegeben werden.

sSecurityPW: Passwort für die Security-Authorization-Funktion (optional). Das identische (Case sensitive) Passwort muss in den Einstellungen des Projektors eingegeben werden.

bKeepAliveSocket: Aktiviert bei TRUE einen Keep-Alive-Modus für die Kommunikation zum Projektor. Es wird lediglich ein Socket geöffnet, der dauerhaft offengehalten wird. Im Fehlerfall verbleibt der Funktionsbaustein in einen Error-Modus. Durch FALSE (empfohlen) wird vor dem Senden eines Befehls ein neuer Socket geöffnet und danach wieder geschlossen. Im Fehlerfall wird automatisch ein erneuter Verbindungsvorgang ausgelöst.

tStatusUpdateTime: Updateintervall der Statusinformationsabfrage vom Projektor. (Default=5s; höhere Updatezeit tStatusUpdateTime reduziert den Datenverkehr.)

eTraceLevel: Bestimmt die Eventarten, die über den Eventlogger abgeschickt werden. Events die von einer größeren oder gleich großen Wichtigkeit sind, als der Wert am Eingangsparameter, werden gesendet. (Beispiel: Wert = Warning → Abschicken von Warnings, Errors und Criticals; Wert=Warning → unter Anderem werden PJLink-Nachrichten geloggt)

VAR_OUTPUT

    bBusy             : BOOL;
eStep             : E_PJLink_step;
bError            : BOOL;
ipResultMessage   : I_TcMessage;
nErrID            : UDINT;
sErrBlock         : STRING(20);
stProjStatus      : ST_PJLink_Projector_Status;

bBusy: Dieser Ausgang ist gesetzt, solange die Verbindung zum Socket besteht/aufgebaut wird.

eStep: Dieser Ausgangsparameter gibt den aktuellen Schritt in der FB_PJLink State machine an.

bError: Wenn ein Fehler auftritt, wird dieser Ausgang gesetzt. (z. B.: Verbindung zum Socket ist nicht möglich).

ipResultMessage: Mit dieser Schnittstelle wird das Abschicken von Events über den TC3-Eventlogger realisiert.

nErrID: Dieser Parameter liefert bei einem gesetzten bError-Ausgang die TwinCAT TCP/IP Fehlernummer.

sErrBlock: Liefert weiterführende Informationen zum aufgetretenen Fehler. (Verursachender Funktionsbaustein)

stProjStatus: Struktur mit den Projektorstatus-Informationen. (Nach dem Senden eines Befehls, wird die Antwort des Projektors ausgewertet und in stProjStatus ausgegeben.)
Beispiel: Befehl = "%1POWR 1$R“ → Antwort des Projektors = "%1POWR=ERR3"ProjStatus.POWR.Err_UnavailableTime = TRUE.