Actualiser les données de sortie EtherNet/IP
Cette instruction FP actualise les données de sortie pour les numéros de nœud et de connexion spécifiés. Les données sont copiées de la mémoire de travail de l’API vers le tampon d’envoi de l’API.
Entrée
Numéro du nœud des données de sortie à actualiser. Intervalle des listes des paramètres de scrutation : 1–256
Une erreur apparaît lorsque la valeur spécifiée pour la liste des paramètres de scrutation est en dehors de l’intervalle autorisé.
L’affectation des E/S est utilisée pour envoyer des données vers un automate de destination.
Numéro de la connexion des données de sortie à actualiser. Intervalle : 1–256
Une erreur apparaît lorsque la valeur spécifiée pour la liste des paramètres de scrutation est en dehors de l’intervalle autorisé.
Sortie
Zone mémoire de sauvegarde des résultats de l’actualisation. Si cette instruction est exécutée dans des cycles plus courts que RPI, l’actualisation des données de sortie ne peut pas être exécutée.
0 : L’actualisation a été exécutée avec succès.
1 : Aucune donnée reçue. L’actualisation n’a pas été exécutée.
2 : EtherNet/IP n’est pas prêt pour la communication.
Avant d’exécuter l’instruction, vérifiez si une connexion spécifiée fonctionne normalement avec FP_ETHERNETIP_GET_STATE_TABLE_RUN.
Cette instruction ne peut être appelée que lorsque sys_bIsEtherNetIPReady est TRUE. Si elle est appelée avant que sys_bIsEtherNetIPReady soit TRUE, une erreur indiquant que EtherNet/IP n’est pas prêt pour une communication est renvoyée.
Cette instruction ne doit pas être exécutée continuellement pendant une scrutation pour réduire la charge de communication.
Cette instruction ne peut être utilisée que pour une connexion pour laquelle Instruction est sélectionnée en tant que Méthode d’actualisation dans Configurator EtherNet/IP.
Si la fonction EtherNet/IP n’est pas utilisée dans la configuration de l’unité Ethernet.
Si la zone spécifiée à l’aide du modificateur d’adresse est en dehors des limites autorisées.
Si une valeur spécifiée pour un paramètre est en dehors de l’intervalle autorisé.
Si l’affectation des E/S ou le nœud/connexion spécifié par s1_NodeNumber et s2_ConnectionNumber n’existe pas.
Si la méthode d’actualisation sélectionnée pour la connexion est autre que Instruction.
Si le nombre de données de sortie de la connexion spécifiée est 0.
Si le nombre de données actualisées de la connexion spécifiée est 0.
Si la fonction EtherNet/IP n’est pas utilisée dans la configuration de l’unité Ethernet.
Si la zone spécifiée à l’aide du modificateur d’adresse est en dehors des limites autorisées.
Si une valeur spécifiée pour un paramètre est en dehors de l’intervalle autorisé.
Si l’affectation des E/S ou le nœud/connexion spécifié par s1_NodeNumber et s2_ConnectionNumber n’existe pas.
Si la méthode d’actualisation sélectionnée pour la connexion est autre que Instruction.
Si le nombre de données de sortie de la connexion spécifiée est 0.
Si le nombre de données actualisées de la connexion spécifiée est 0.
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
bEnable: BOOL:=FALSE;
iNodeNumber: INT:=0;
iConnectionNumber: INT:=0;
wResult: WORD:=0;
END_VAR
Lorsque les variables sys_bIsEtherNetIPReady et bEnable sont définies sur TRUE, la fonction est exécutée.
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 9 ;
NETWORK_BODY
B(B_VARIN,,iNodeNumber,13,4,15,6,);
B(B_VARIN,,iConnectionNumber,13,5,15,7,);
B(B_VAROUT,,wResult,32,4,34,6,);
B(B_CONTACT,,bEnable,13,1,15,3,);
B(B_CONTACT,,sys_bIsEtherNetIPReady,5,1,7,3,);
B(B_F,FP_ETHERNETIP_REFRESH_OUTPUT!,,15,2,32,7,,?DEN?Ds1_NodeNumber?Ds2_ConnectionNumber?AENO?Cd_Result);
L(1,2,5,2);
L(7,2,13,2);
L(15,2,15,4);
L(1,0,1,9);
END_NETWORK_BODY
END_NET_WORK
END_BODY
IF (sys_bIsEtherNetIPReady) AND (bEnable) then
FP_ETHERNETIP_REFRESH_OUTPUT(s1_NodeNumber := iNodeNumber,
s2_ConnectionNumber := iConnectionNumber,
d_Result => wResult);
END_IF;