ClearReceiveBuffer

Réinitialiser le tampon de réception

Cette instruction efface le tampon de réception au port de communication spécifié par Port.

Paramètres

Entrée

Port (WORD, INT, UINT)

Indique les ports de communication (selon le type d’API) :

  • Port COM, par ex. SYS_COM0_PORT

  • Port Ethernet, par ex. SYS_ETHERNET_USER_CONNECTION_1

  • MCU/SCU, par ex. 16#xx01 (xx = numéro du connecteur) dans COM01

Remarques

Le tampon de réception est réinitialisé automatiquement lorsqu’une instruction d’envoi est exécutée. Pour réinitialiser le tampon de réception sans transmettre d’autres données, exécutez cette instruction. Alternativement, vous pouvez également utiliser F159_MTRN avec n_Number = 0. La réinitialisation du tampon de réception définit le nombre d’octets reçus dans l’offset 0 sur 0 et déplace le pointeur d’écriture sur l’offset 1. Les données suivantes seront sauvegardées à partir de l’offset 1 et remplaceront les données existantes. Le drapeau "Réception terminée" devient FALSE.

Drapeaux d’erreur

sys_bIsOperationErrorHold (passe à TRUE et reste TRUE)
  • Si le port de communication indiqué par Port n’existe pas.

sys_bIsOperationErrorNonHold (passe à TRUE pendant un cycle)
  • Si le port de communication indiqué par Port n’existe pas.

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
		bClearReceiveBuffer: BOOL:=FALSE;
	END_VAR

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 := 4 ;
        NETWORK_BODY
B(B_CONTACT,,bClearReceiveBuffer,5,1,7,3,R);
B(B_F,E_ClearReceiveBuffer!,,11,0,21,4,,?DEN?DPort?AENO);
B(B_VARIN,,1,9,2,11,4,);
L(1,2,5,2);
L(7,2,11,2);
L(1,0,1,4);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Corps en ST

if (DF(bClearReceiveBuffer)) then
    ClearReceiveBuffer(1);
end_if;

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