西门子以太网通讯模块调用 下载本文

西门子S7300/400以太网连接程序数据交换方法

一、对于343-1的专门以太网连接模块做通讯的项目由于模块支持较多通讯协议,故推荐使

用使用通讯功能块 FC5/FC50 和 FC6/FC60 编程 ? TCP 连接

? ISO-on-TCP 连接 (RFC 1006) ? ISO 连接 ? UDP 连接

? FDL 连接

通讯功能块 FC5 “AG_SEND” 和 FC6 “AG_RECV”的特点 ? FC5 和 FC6 是异步通讯功能块。 ? FC5 和 FC6 的运行需要几个 OB1 周期。 ? FC5 由输入参数 \使能。

? 通讯任务结束由 “DONE” 或 “ERROR”指示。

? AG_LSEND 和 AG_LRECV 可以通过一个连接同时通讯。

? 可以在 SIMATIC_NET_CP 库\300 > Blocks\里找到通讯功能块 FC5 \和 FC6 \。

首先在STEP7中的NETCONFIG中进行网络配置,设置好IP后,点需要配置连接的PLC,按

添加一个新的网络连接:在选择好伙伴PLC后添加IS0-on-TCP connection协议

然后再对选择好后的协议进行配置,注意下图中标注的地方按默认就可以

再在程序中调用FC5/FC6块,注意在引脚ID和LADDR处填入上面标识处的参数

如果FC5和FC6的块在原程序中已经被占用,新调入的AG_SEND和AG_RECEIVE需重新命名,其中需填入的参数为:

ACT—激活该块工作直到ACT信号消失,BOOL变量

ID—网络配置后主机与伙伴机之间的网络地址,特别注意发射、接收块的ID,主机与伙伴机的ID需相同

LADDR—网络配置后生成的特殊标识,WORD变量

SEND/RECV—指针型位变量,表示从该位开始以后的数据数量,以BYTE为单位 LEN—所传送数据长度,10进制数,以BYTE为单位

DONE/NDR—数据发送/接收成功标志位

ERROR—块运行错误标识,显示的是16进制数,根据代码可以查询故障原因 STATUS—状态标识字,表示块运行状态

二、 对于315-2PN/DP带以太网口的CPU,仅支持S7连接的通信协议,故只能使用FB8 \ 和 FB9 \ 进行数据交换,其特点是: ? FB8 和 FB9 是异步通信。 ? 必须在 OB1 中调用。

? FB8 和 FB9 运行时间可能持续多个 OB1 循环周期。 ? FB8 和 FB9 通过输入参数(\或 \使能。 ? 运行结果通过 \或 \指示。 ? USEND 和 URCV 可以通过一个连接同时进行。 ? 数据传输是不带确认的。

以上通信块位于Standard Library > Communication Blocks > Blocks ,只能在S7-300的S7程序中调用。对于S7-400, 必须在S7程序中从Standard Library > System Function Blocks > Blocks 中调用通信块SFB8 \和SFB9 \

首先在STEP7中的NETCONFIG中进行网络配置,设置好IP后,点需要配置连接的PLC,按

添加一个新的网络连接:在选择好伙伴PLC后添加s7 connection协议

?

然后再对选择好后的协议进行配置,注意下图中标注的地方按默认就可以

再调入FB8/FB9程序块,注意要给其分配支持数据块,在ID处填入上表ID值

REQ—对于USEND块为使能信号,由时钟脉冲激活

EN_R—对于URCV块为使能信号,由长通点激活

ID/R_ID—对于主机和伙伴机需保持完全一样的数值,USEND块与URCV块需要保持一致 SD_1/RD_1—指针型位变量,表示从该位开始以后的数据数量,以BYTE为单位 DONE/NDR—数据发送/接收成功标志位

ERROR—块运行错误标识,显示的是16进制数,根据代码可以查询故障原因 STATUS—状态标识字,表示块运行状态