Intercambiar mensajes con la unidad EtherNet/IP
Este bloque de función intercambia un mensaje explícito con una unidad EtherNet/IP en el destino especificado.
Entrada
El intercambio de datos comienza en un flanco ascendente
Tipo de unidad de datos con información de la unidad EtherNet/IP de destino
Tipo de unidad de datos del buffer de datos de envío.
Los datos se pueden escribir en el buffer de datos de envío utilizando la instrucción FP_ETHERNETIP_DATA_SET
Salida
Bandera que indica que el intercambio de datos con la unidad EtherNet\IP de destino está en curso.
Tipo de unidad de datos del resultado de la ejecución de la instrucción
Tipo de unidad de datos del buffer de recepción de datos.
Los datos se pueden leer del buffer de recepción de datos utilizando las instrucciones FP_ETHERNETIP_DATA_GET y FP_ETHERNETIP_DATA_GET_BYTES
si el área especificada utilizando el modificador índice supera el límite.
si no se utiliza la función EtherNet/IP en la configuración de la unidad Ethernet.
si la instrucción se ejecuta en un programa de interrupción
si el tamaño del buffer de recepción de datos para dutReceiveData está fuera del rango permitido (3-253 palabras).
si el tamaño del buffer de recepción de datos para dutResult es inferior a 3 palabras.
si el área especificada utilizando el modificador índice supera el límite.
si no se utiliza la función EtherNet/IP en la configuración de la unidad Ethernet.
si la instrucción se ejecuta en un programa de interrupción
si el tamaño del buffer de recepción de datos para dutReceiveData está fuera del rango permitido (3-253 palabras).
si el tamaño del buffer de recepción de datos para dutResult es inferior a 3 palabras.
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
dutSend: FP_ETHERNETIP_DATA_SEND_DUT;
FP_ETHERNETIP_DATA_EXCHANGE_FB1: FP_ETHERNETIP_DATA_EXCHANGE_FB;
bSend: BOOL:=FALSE;
dutDestination: FP_ETHERNETIP_DATA_DESTINATION_DUT;
dutReceive: FP_ETHERNETIP_DATA_RECEIVE_DUT;
dutResult: FP_ETHERNETIP_DATA_EXCHANGE_RESULT_DUT;
END_VAR
Cuando las variables sys_bIsEtherNetIPReady y bSend pasan a TRUE, se ejecuta la función.
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 6 ;
NETWORK_BODY
B(B_CONTACT,,sys_bIsEtherNetIPReady,5,2,7,4,);
B(B_CONTACT,,bSend,13,2,15,4,);
B(B_FB,FP_ETHERNETIP_DATA_EXCHANGE_FB!,FP_ETHERNETIP_DATA_EXCHANGE_FB1,21,1,39,6,,?BbSend?BdutDestination?BdutSendData?AbInProgress?AdutReceiveData?AdutResult);
B(B_VARIN,,dutDestination,19,3,21,5,);
B(B_VAROUT,,dutResult,39,3,41,5,);
B(B_VARIN,,dutSend,19,4,21,6,);
B(B_VAROUT,,dutReceive,39,4,41,6,);
L(1,0,1,6);
L(1,3,5,3);
L(7,3,13,3);
L(15,3,21,3);
END_NETWORK_BODY
END_NET_WORK
END_BODY
If (sys_bIsEtherNetIPReady) and (bSend) Then
FP_ETHERNETIP_DATA_EXCHANGE_FB1(bSend := bSend,
dutDestination := dutDestination,
dutSendData := dutSend,
dutResult => dutResult,
dutReceiveData => dutReceive);
End_if;