FP_ETHERNETIP_REFRESH_OUTPUT

刷新EtherNet/IP输出

该FP指令刷新指定节点和连接编号的输出数据。数据从PLC的操作存储器复制到PLC的发送缓冲区。

参数

输入

s1_NodeNumber (WORD, INT, UINT)

要刷新的输出数据的节点编号。扫描列表范围:1–256

当指定值超出扫描列表范围时,出现错误。

I/O分布图用于将数据发送到目标设备。

s2_ConnectionNumber (WORD, INT, UINT)

要刷新的输出数据的连接编号。范围:1–256

当指定值超出扫描列表范围时,出现错误。

输出

d_Result (WORD)

存储刷新结果的内存区。如果在比RPI快的循环中执行此指令,可能无法执行输出刷新。

  • 0:成功完成刷新操作。

  • 1:未接收到数据。未执行刷新。

  • 2:EtherNet/IP尚未准备好进行通信。

标注

  • 执行指令之前,使用FP_ETHERNETIP_GET_STATE_TABLE_RUN确认指定连接的通信正常运行。

  • sys_bIsEtherNetIPReady变为TRUE后调用此指令。如果在sys_bIsEtherNetIPReady变为TRUE之前调用,则会返回一条指示EtherNet/IP尚未准备好进行通信的错误。

  • 为了减轻通信负载,请勿在一次扫描中连续执行此指令。

  • 此指令仅用于在[EtherNet/IP设置]中将[指令]选择作为[刷新方法]的连接。

错误标志

sys_bIsOperationErrorHold(变为TRUE并保持为TRUE)
  • 如果在以太网单元配置中未使用EtherNet/IP功能。

  • 如果使用索引寄存器指定的区域超出限制。

  • 如果为参数指定的值超出允许的范围。

  • 如果s1_NodeNumbers2_ConnectionNumber指定的I/O分布图或节点/连接不存在。

  • 如果为连接选择的刷新方法不是[指令]

  • 如果指定连接的输出数据量为0。

  • 如果指定连接的刷新数据量为0。

sys_bIsOperationErrorNonHold(对于一次扫描变为TRUE)
  • 如果在以太网单元配置中未使用EtherNet/IP功能。

  • 如果使用索引寄存器指定的区域超出限制。

  • 如果为参数指定的值超出允许的范围。

  • 如果s1_NodeNumbers2_ConnectionNumber指定的I/O分布图或节点/连接不存在。

  • 如果为连接选择的刷新方法不是[指令]

  • 如果指定连接的输出数据量为0。

  • 如果指定连接的刷新数据量为0。

示例

POU头

所有用于编程此函数的输入和输出变量已在POU头中声明。 所有编程语言使用相同的POU头。

	VAR
		bEnable: BOOL:=FALSE;
		iNodeNumber: INT:=0;
		iConnectionNumber: INT:=0;
		wResult: WORD:=0;
	END_VAR

POU本体

当变量sys_bIsEtherNetIPReadybEnable设置为TRUE时,执行此函数。

LD本体

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

ST本体

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

最后更新日期: 2024-03-07此页面上的反馈松下热线