ResetComPort

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.

Paramètres

Entrée

bReset (BOOL)

Si définie sur TRUE, la requête de réinitialisation du port COM est envoyée au numéro de port spécifié.

Port (WORD, INT, UINT)
N° de port
  • COM0, COM1, COM2 sur l’unité centrale

  • 16#xx01–16#xx04 (xx = numéro du connecteur 64) sur module de communication série

Sortie

bIsDone (BOOL)

TRUE si le port COM est réinitialisé et peut être utilisé à nouveau.

bIsRequested (BOOL)

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

Exemple

En-tête du POU

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

Corps du POU

Lorsque la variable bResetComPort est sur TRUE, le bloc fonction est exécuté.

Corps en LD

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

Corps en ST

fbResetComPort(bReset := bResetComPort,
               Port := iPort);
               IF (fbResetComPort.bIsRequested) then
                   bComPortCannotBeUsed := TRUE;
               ELSIF (fbResetComPort.bIsDone) then
                   bComPortCannotBeUsed := FALSE;
               END_IF;

Modifié le : 2022-01-17Commentaires sur cette pageAssistance téléphonique