Siemens 西门子PLC1200的S7通讯(同一项目下)2.PUT写入指令

发布时间 2023-08-08 11:42:49作者: 一杯清酒邀明月
上期主要讲了S7通讯连接的GET读取指令,如下图,用指针制定需要从伙伴PLC哪个位置读取,然后放到本地PLC的哪个位置

本期说一下S7连接的另一个关键写入指令PUT

1.0 接下来我们解读下这个PUT指令块

REQ:控制参数request,当上升沿时,启动写入数据

ID:需要匹配伙伴连接的对象的寻址参数

ADDR_1:指向伙伴PLC上需要写入的目标DB块,起始地址,数据长度,数据类型

RD_1:指向待写入的本地PLC数据的DB块,起始地址,数据长度,数据类型

注解:如上图,你可以看到ADDR_1和RD_1是一样的,但他代表的是不一样的PLC,ADDR_1是指伙伴PLC的DB3数据块0.0地址开始的10个字节,而RD是指本地的DB块,另外这里的设置跟TCP通讯不太一样,指针直接指向伙伴PLC的发送地址,如果TCP的话,只能被动接收,是不知道从哪发出的

NDR:0作业尚未开始或仍在运行,1作业已成功完成

ERROR和STATUS:当ERROR=0,STATUS为0000H表示既无警告也无错误,也可能<>0000H警告,当ERROR=1,则肯定出错了

2.0 另外还要在程序中写两步,如下图,当NDR为1,完成作业时,把STATUS的状态保存到变量中,同理ERROR的时候也需要保存,这样方便你判断调试

3.0 根据前面说的,我们应该得到如下图所示,PLC1下面有读取写入数据的3个DB块,PUT-GET两个程序段

3.1 然后可直接复制PLC-1,做出PLC_2