Réinitialiser un port COM spécifié
Ce bloc fonction envoie une requête de réinitialisation d’un port COM à un numéro de port spécifié. Le mode de communication de l’automate doit être "Contrôle via le programme API". Évaluez les variables de sortie bIsDone et bIsRequested pour vérifier si le port spécifié est réinitialisé et peut être utilisé à nouveau.
Entrée
Si définie sur TRUE, la requête de réinitialisation du port COM est envoyée au numéro de port spécifié.
COM0, COM1, COM2 sur l’unité centrale
16#xx01–16#xx04 (xx = numéro du connecteur 64) sur module de communication série
Sortie
TRUE si le port COM est réinitialisé et peut être utilisé à nouveau.
TRUE si une requête de réinitialisation du port COM est envoyée.
Variables système de sorties correspondantes (définies uniquement si le port COM a été réinitialisé par bReset de la même instance)
Requête de réinitialisation
COM0 : sys_bIsComPort0ResetRequested
COM1 : sys_bIsComPort1ResetRequested
COM2 : sys_bIsComPort2ResetRequested
Réinitialisation terminée
COM0 : sys_bIsComPort0ResetDone
COM1 : sys_bIsComPort1ResetDone
COM2 : sys_bIsComPort2ResetDone
Toutes les variables d’entrée et de sortie utilisées pour programmer cette fonction ont été déclarées dans l’en-tête du POU. Le même en-tête de POU est utilisé pour tous les langages de programmation.
VAR
fbResetComPort: ResetComPort;
bResetComPort: BOOL:=FALSE;
iPort: INT:=0;
bComPortCannotBeUsed: BOOL:=FALSE;
END_VAR
Lorsque la variable bResetComPort est sur TRUE, le bloc fonction est exécuté.
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;