[西门子] S7-1200和SMART S7通信很难?超详细保姆式教程来了!

[复制链接]
查看79748 | 回复0 | 2024-5-9 14:12:05 | 显示全部楼层 |阅读模式
S7通信是西门子S7系列PLC之间通信专用的一种通信协议,在整个S7系列CPU之间都可使用;S7-200 SMART、S7-1200系列PLC之间均可使用S7通信的方式实现数据交换。

S7通信是一种单边编程的通信方式,只需要在本地站(客户端)编写通信程序,在远程站(服务器)中无需编写任何通信程序,一个S7-200SMART系列PLC最多可连接8个远程站CPU(最多16个含8个本地8个远程)

S7-1200 系统预留了8个可组态的S7连接资源,考虑上6个动态连接资源,最多可组态14个客户端的 S7 连接。

下面通过S7-200 SMART和S7-1200之间通过S7通信的方式进行数据交换,其中S7-1200侧做客户端,SMART侧做服务器。

通信任务

(1)读取SMART VW200起始的连续5个地址中的数据存储S7-1200 MW200中

(2)S7-1200中的IB0控制SMART QB0

(3)读取SMART中QB2的数据存储在S7-1200 DB块中

实施步骤:

1.S7-1200侧新建项目添加CPU→在设备组态中的设备视图对话框中的CPU属性里面激活时钟存储器位,如图1所示。



图1:激活时钟存储位

2.在CPU属性的连接机制勾选允许来自远程对象的PUT/GET通信访问,如图2所示。



图2:勾选允许远程对象

3. 在设备组态中的设备视图对话框中点击网口后,在属性中添加IP地址并添加子网,如图3所示。



图3:设置IP地址

4.在项目树选中程序块,展开后点击“添加新块”;添加新块选择数据DB块。如图4所示。





图4:添加DB块

5.创建DB块变量,并取消优化的块访问;如图5图6所示。



图5:添加DB块变量



图6:取消DB块优化的块访问

6.调用PUT/GET指令进行编程;在指令列表中的通信指令选择S7通信,调用get指令;



图7:调用GET指令

第一组数据交换:读取SMART VW200起始的连续5个地址中的数据存储S7-1200 MW200中,调用指令后需要进行伙伴的IP地址,并勾选“主动建立连接”。REQ使用M0.51HZ时钟脉冲触发。其中ADDR_1表示伙伴的地址,在本示例中指S7-200SMART侧的VW200地址,P#DB1.DBX200.0 WORD 5 表示VW200-VW208连续的5个字。指令中管脚RD_1是指本地数据地址,P#M200.0 WORD 5表示MW200-MW208连续的5个字。具体如图8所示。



图8:GET指令编程

第二组数据:S7-1200中的IB0控制SMART QB0 ,调用PUT指令进行编程,如图9所示。



图9:PUT指令编程

第三组通讯数据,读取SMART中QB2的数据存储在S7-1200 DB块中,调用GET指令,如图10所示。



图10:GET指令编程

以上是S7-1200侧的操作,由于S7是单边编程,因此在服务器侧无需编程,准备好通信数据即可。

通信测试

1.读取SMART VW200起始的连续5个地址中的数据存储S7-1200 MW200连续的5个字中,如图11所示,在SMART侧中的VW200-VW208中写入数据,则在1200侧中的监控表中监控MW200-MW208的数据是一致的。



图11:数据交换1

2.S7-1200中的IB0控制SMART QB0。由于示例中没有硬件接线,因此可以使用强制表进行强制给值,接着在SMART侧监控QB0的值,如图12所示。



图12:数据交换2

3. 读取SMART中QB2的数据存储在S7-1200 DB1数据块中,在SMART侧中的监控表向QB2输入5,则在S7-1200中的DB1数据块监控时也会显示5,如图13所示。



图13:数据交换3

至此,程序编写及测试已经完成,需要注意,在进行通信组态时,2台CPU的IP地址需要保证在同一个网段

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则