Évaluer le drapeau "Réception terminée"
Cette fonction renvoie la valeur du drapeau "Réception terminée". Il est TRUE si le délimiteur a été reçu au port de communication affecté à Port.
Entrée
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
Sortie
Défini sur TRUE, si le délimiteur a été reçu. Le délimiteur est spécifié dans le registre système correspondant dans les paramètres du port COM.
Évaluation du drapeau "Réception terminée".
Si aucun autre octet n’est reçu ou si l’instruction ClearReceiveBuffer est exécutée pendant le temps indiqué, la sortie IsDone passe à TRUE. La réception d’autres données n’est pas autorisée. Le drapeau "IsDone" devient FALSE lorsque F159_MTRN ou ClearReceiveBuffer est exécutée. Cette fonction peut être utilisée pour FP7 ou MCU également pour le mode temporisation. Le drapeau "réception terminée" peut être évalué à l’aide des instructions ou des variables système suivantes :
IsReceptionDone
IsReceptionDoneByTimeOut
sys_bIsComPort1ReceptionDone, sys_bIsComPort2ReceptionDone, sys_bIsToolPortReceptionDone (selon le port)
La fin de la réception peut être déterminée en contrôlant le contenu du tampon de réception. Le nombre d’octets reçus peut changer pendant l’exécution d’une scrutation. Par exemple, si le nombre d’octets reçus est lu plusieurs fois, il peut y avoir plusieurs états au cours d’une scrutation.
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
iPort: INT:=0;
bIsDone: BOOL:=FALSE;
END_VAR
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_F,IsReceptionDone!,,5,0,14,3,,?DPort?CIsDone);
B(B_VARIN,,iPort,3,1,5,3,);
B(B_VAROUT,,bIsDone,14,1,16,3,);
L(1,0,1,5);
END_NETWORK_BODY
END_NET_WORK
END_BODY
bIsDone:=IsReceptionDone(Port := iPort);