Refrescar la entrada EtherNet/IP
Esta instrucción FP actualiza los datos de entrada del búfer de recepción del nodo y del número de conexión especificados. Los datos se copian desde el búfer de recepción del PLC a la memoria de trabajo del mismo.
Entrada
Número de nodo de los datos de entrada a actualizar. Rango de la lista de scan: 1–256
Se produce un error cuando el valor especificado está fuera del rango de la lista de scan.
También se produce un error cuando se especifica un nodo reservado.
Número de conexión del nodo de los datos de entrada a actualizar. Rango: 1–256
Se produce un error cuando el valor especificado está fuera del rango de la lista de scan.
Salida
Área de memoria que guarda los resultados del refresco.
0: La operación de refresco se ha completado con éxito.
1: No se reciben datos. El refresco no se lleva a cabo.
2: EtherNet/IP no está listo para la comunicación.
Antes de ejecutar la instrucción, comprobar si la comunicación de una conexión especificada funciona normalmente utilizando FP_ETHERNETIP_GET_STATE_TABLE_RUN.
Invocar esta instrucción después de que sys_bIsEtherNetIPReady pase a TRUE Si se invoca antes de que sys_bIsEtherNetIPReady pase a TRUE, se devuelve un error que indica que EtherNet/IP no está listo para la comunicación.
No ejecutar esta instrucción de forma continua en un único ciclo de scan para reducir la carga de comunicación.
Usar esta instrucción solamente en aquella conexión para la que Instrucción se ha seleccionado como Método de Refresco en Configuración EtherNet/IP.
si no se utiliza la función EtherNet/IP en la configuración de la unidad Ethernet.
si el área especificada utilizando el modificador índice supera el límite.
Si el valor especificado para un parámetro está fuera del rango permitido.
si el nodo o la conexión especificada por s1_NodeNumber y s2_ConnectionNumber no existe.
si el método de refresco seleccionado para la conexión es distinto a Instrucción.
si el número de datos de entrada de la conexión especificada es 0.
si el número de datos refrescados de la conexión especificada es 0.
si no se utiliza la función EtherNet/IP en la configuración de la unidad Ethernet.
si el área especificada utilizando el modificador índice supera el límite.
Si el valor especificado para un parámetro está fuera del rango permitido.
si el nodo o la conexión especificada por s1_NodeNumber y s2_ConnectionNumber no existe.
si el método de refresco seleccionado para la conexión es distinto a Instrucción.
si el número de datos de entrada de la conexión especificada es 0.
si el número de datos refrescados de la conexión especificada es 0.
Todas las variables de entrada y de salida utilizadas para la programación de esta función han sido declaradas en la Cabecera de la POU. Se utiliza la misma cabecera de la POU para todos los lenguajes de programación.
VAR
bEnable: BOOL:=FALSE;
iNodeNumber: INT:=0;
iConnectionNumber: INT:=0;
wResult: WORD:=0;
END_VAR
VAR
bEnable: BOOL:=FALSE;
iNodeNumber: INT:=0;
iConnectionNumber: INT:=0;
wResult: WORD:=0;
END_VAR
Cuando las variables sys_bIsEtherNetIPReady y bEnable pasan a TRUE, se ejecuta la función.
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 7 ;
NETWORK_BODY
B(B_VARIN,,iNodeNumber,13,4,15,6,);
B(B_VARIN,,iConnectionNumber,13,5,15,7,);
B(B_VAROUT,,wResult,31,4,33,6,);
B(B_CONTACT,,bEnable,13,1,15,3,);
B(B_CONTACT,,sys_bIsEtherNetIPReady,5,1,7,3,);
B(B_F,FP_ETHERNETIP_REFRESH_INPUT!,,15,2,31,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,7);
END_NETWORK_BODY
END_NET_WORK
END_BODY
IF (sys_bIsEtherNetIPReady) AND (bEnable) then
FP_ETHERNETIP_REFRESH_INPUT(s1_NodeNumber := iNodeNumber,
s2_ConnectionNumber := iConnectionNumber,
d_Result => wResult);
END_IF;