FP_ETHERNETIP_DATA_EXCHANGE_FB

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.

Parámetros

Entrada

bSend (BOOL)

El intercambio de datos comienza en un flanco ascendente

dutDestination (FP_ETHERNETIP_DATA_DESTINATION_DUT)

Tipo de unidad de datos con información de la unidad EtherNet/IP de destino

dutSendData (FP_ETHERNETIP_DATA_SEND_DUT)

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

bInProgress (BOOL)

Bandera que indica que el intercambio de datos con la unidad EtherNet\IP de destino está en curso.

dutResult (FP_ETHERNETIP_DATA_EXCHANGE_RESULT_DUT)

Tipo de unidad de datos del resultado de la ejecución de la instrucción

dutReceiveData (FP_ETHERNETIP_DATA_RECEIVE_DUT)

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

Banderas de error

sys_bIsOperationErrorHold (pasa a TRUE y permanece TRUE)
  • 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.

sys_bIsOperationErrorNonHold (pasa a TRUE para un ciclo de scan)
  • 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.

Ejemplo

Cabecera de la POU

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

Cuerpo LD

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

Cuerpo en ST

If (sys_bIsEtherNetIPReady) and (bSend) Then
    FP_ETHERNETIP_DATA_EXCHANGE_FB1(bSend := bSend,
                                    dutDestination := dutDestination,
                                    dutSendData := dutSend,
                                    dutResult => dutResult,
                                    dutReceiveData => dutReceive);
End_if;

Modificado el: 2022-04-19Comentarios sobre esta páginaLínea directa de Panasonic