FP_ETHERNETIP_REFRESH_INPUT

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.

Parámetros

Entrada

s1_NodeNumber (WORD, INT, UINT)

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.

s2_ConnectionNumber (WORD, INT, UINT)

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

d_Result (WORD)

Á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.

Observaciones

  • 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.

Banderas de error

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

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

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
		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

Cuerpo de la POU

Cuando las variables sys_bIsEtherNetIPReady y bEnable pasan a TRUE, se ejecuta la función.

Cuerpo LD

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

Cuerpo en ST

IF (sys_bIsEtherNetIPReady) AND (bEnable) then
    FP_ETHERNETIP_REFRESH_INPUT(s1_NodeNumber := iNodeNumber,
                                s2_ConnectionNumber := iConnectionNumber,
                                d_Result => wResult);
END_IF;

Modificado el: 2024-03-07Comentarios sobre esta páginaLínea directa de Panasonic