S7 400H之间单边通讯实现方法

发布时间:2022-06-21 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了S7 400H之间单边通讯实现方法脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

        现场有两套S7 400Hi同,PLC1先投入使用,PLC2正在调试。前期没有把项目程序做在一个程序中,造成无法做容错链接。今天尝试着在PLC2中做单边通讯,把过程记录下来。

前面的硬件组态等就略过了。PLC1的CPU是412-4H,IP地址是192.168.20.202和192.168.20.203.

PLC2也是412-4H,IP地址是192.168.20.204和12.168.20.205。

step7打开PLC2程序,打开netpro,在每一个CPU下建立一个未知对象的S7 通讯,ID分别为3和4

ID3配置如下:

S7 400H之间单边通讯实现方法

ID4配置如下

S7 400H之间单边通讯实现方法

在PLC2下新建一个FC,用于通讯程序,新建DB9和DB13用于向PLC1写数据,新建DB10和DB14用于接收PLC2传来的数据。FC下插入SFB15,用于向PLC1写数据,REQ需要上升沿,这里使用时钟存储器M0.6,这个是经过逐步测试找到的,速度太快不行,比如尝试过M0.0至M0.5,通讯都不正常。ID就是通讯ID,和前面netpro中设置的ID号码保持一致。P#DB9.DBX0.0表示指针,从DB9.DBX0.0开始,两个字节长度的数据。输出M131.0表示通讯是否完成,M131.1表示通讯是否有错,MW8164存放通讯错误代码。

S7 400H之间单边通讯实现方法

插入一个network,放SFB14,用于接收PLC1传来的数据,各管脚定义参考前面的描述

S7 400H之间单边通讯实现方法

需要判断一下通讯是否正常,插入一个NEtwork,写下面程序,这里通过PLC1传来的DB10.BX0.0来判断,在PLC1中使用时钟存储器M0.5对其赋值,理论上接收端这也是一个脉冲信号,随时变化,如果在S_ODT时间范围内不变化,那么M131.4就会为1,从而判断出两套PLC之间通讯是否正常。

S7 400H之间单边通讯实现方法

同样的思路,把ID4的通讯也使用SFB做读写数据,存放在其他的DB中。

根据两个通讯的状态,来决定程序中具体使用哪个DB里面的元素。

 

S7 400H之间单边通讯实现方法

S7 400H之间单边通讯实现方法

S7 400H之间单边通讯实现方法

 

脚本宝典总结

以上是脚本宝典为你收集整理的S7 400H之间单边通讯实现方法全部内容,希望文章能够帮你解决S7 400H之间单边通讯实现方法所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: