Rücksetzen einer angegebenen COM-Schnittstelle
Dieser Funktionsblock sendet einen COM-Schnittstellen-Rücksetzungsauftrag an eine bestimmte Schnittstellennummer. Die SPS muss auf "programmgesteuerte" Kommunikation eingestellt sein. Werten Sie die Ausgangsvariablen bIsDone und bIsRequested aus, um zu prüfen, ob die angegebene Schnittstelle zurückgesetzt wurde und wieder verwendet werden kann.
Eingang
Wenn eingestellt auf TRUE, wird der COM-Schnittstellen-Rücksetzungsauftrag an die angegebene Schnittstellennummer gesendet
COM0, COM1, COM2 an CPU
16#xx01–16#xx04 (xx = Steckplatznummer 1–64) auf dem SCU-Modul
Ausgang
Wird auf TRUE gesetzt, wenn die COM-Schnittstelle zurückgesetzt ist und wiederverwendet werden kann.
Wird auf TRUE gesetzt, wenn die COM-Schnittstellen-Rücksetzung beauftragt ist.
Entsprechende Systemvariablen der Ausgänge (nur gesetzt, wenn die COM-Schnittstelle durch bReset derselbe Instanz zurückgesetzt wurde)
Auftrag zum Rücksetzen
COM0: sys_bIsComPort0ResetRequested
COM1: sys_bIsComPort1ResetRequested
COM2: sys_bIsComPort2ResetRequested
Rücksetzen ausgeführt
COM0: sys_bIsComPort0ResetDone
COM1: sys_bIsComPort1ResetDone
COM2: sys_bIsComPort2ResetDone
Im POE-Kopf werden alle Ein- und Ausgangsvariablen deklariert, die für die Programmierung dieser Funktion verwendet werden. Für alle Programmiersprachen wird der gleiche POE-Kopf verwendet.
VAR
fbResetComPort: ResetComPort;
bResetComPort: BOOL:=FALSE;
iPort: INT:=0;
bComPortCannotBeUsed: BOOL:=FALSE;
END_VAR
Wenn die Variable bResetComPort auf TRUE gesetzt wird, wird der Funktionsbaustein ausgeführt.
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 5 ;
NETWORK_BODY
B(B_VARIN,,iPort,19,3,21,5,);
B(B_CONTACT,,bResetComPort,6,2,8,4,);
B(B_FB,ResetComPort!,fbResetComPort,21,1,30,5,,?BbReset?BPort?AbIsDone?AbIsRequested);
L(1,3,6,3);
L(8,3,21,3);
L(1,0,1,5);
END_NETWORK_BODY
END_NET_WORK
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 3 ;
NETWORK_BODY
B(B_COIL,,bComPortCannotBeUsed,39,1,41,3,S);
B(B_CONTACT,,fbResetComPort.bIsRequested,6,1,8,3,);
L(1,2,6,2);
L(8,2,39,2);
L(1,0,1,3);
END_NETWORK_BODY
END_NET_WORK
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 3 ;
NETWORK_BODY
B(B_COIL,,bComPortCannotBeUsed,39,1,41,3,E);
B(B_CONTACT,,fbResetComPort.bIsDone,6,1,8,3,);
L(1,2,6,2);
L(8,2,39,2);
L(1,0,1,3);
END_NETWORK_BODY
END_NET_WORK
END_BODY
fbResetComPort(bReset := bResetComPort,
Port := iPort);
IF (fbResetComPort.bIsRequested) then
bComPortCannotBeUsed := TRUE;
ELSIF (fbResetComPort.bIsDone) then
bComPortCannotBeUsed := FALSE;
END_IF;