1、西门子 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 由输入参数 “ACT“ 使能。 通讯任务结束由 “DONE” 或 “ERROR”指示。 AG_LSEND 和 AG_
2、LRECV 可以通过一个连接同时通讯。 可以在 SIMATIC_NET_CP 库“CP 300 Blocks“ 里找到通讯功能块 FC5 “AG_SEND“ 和 FC6 “AG_RECV“。首先在 STEP7 中的 NETCONFIG 中进行网络配置,设置好 IP 后,点需要配置连接的PLC,按 添加一个新的网络连接:在选择好伙伴 PLC 后添加 IS0-on-TCP connection 协议然后再对选择好后的协议进行配置,注意下图中标注的地方按默认就可以再在程序中调用 FC5/FC6 块,注意在引脚 ID 和 LADDR 处填入上面标识处的参数如果 FC5 和 FC6 的块在原程序中已经被
3、占用,新调入的 AG_SEND 和 AG_RECEIVE 需重新命名,其中需填入的参数为:ACT激活该块工作直到 ACT 信号消失,BOOL 变量ID网络配置后主机与伙伴机之间的网络地址,特别注意发射、接收块的 ID,主机与伙伴机的 ID 需相同LADDR网络配置后生成的特殊标识,WORD 变量SEND/RECV指针型位变量,表示从该位开始以后的数据数量,以 BYTE 为单位LEN所传送数据长度,10 进制数,以 BYTE 为单位DONE/NDR数据发送/接收成功标志位ERROR块运行错误标识,显示的是 16 进制数,根据代码可以查询故障原因STATUS状态标识字,表示块运行状态二、 对于31
4、5-2PN/DP带以太网口的CPU,仅支持S7连接的通信协议,故只能使用FB8 “USEND“ 和 FB9 “URCV“ 进行数据交换,其特点是: FB8 和 FB9 是异步通信。 必须在 OB1 中调用。 FB8 和 FB9 运行时间可能持续多个 OB1 循环周期。 FB8 和 FB9 通过输入参数(“REQ“ 或 “EN_R“)使能。 运行结果通过 “DONE“ 或 “ERROR“ 指示。 USEND 和 URCV 可以通过一个连接同时进行。 数据传输是不带确认的。以上通信块位于Standard Library Communication Blocks Blocks ,只能在S7-300的
5、S7程序中调用。对于S7-400, 必须在S7程序中从Standard Library System Function Blocks Blocks 中调用通信块SFB8 “USEND“和SFB9 “URCV“首先在 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状态标识字,表示块运行状态