首页 理论教育 PUT/GET指令的使用方法

PUT/GET指令的使用方法

时间:2023-07-01 理论教育 版权反馈
【摘要】:PUT/GET指令在使用不同数量的通信区域下最大通信长度见表7-3。

PUT/GET指令的使用方法

1.PUT指令

S7-1200 CPU可使用“PUT”指令将数据写入到伙伴CPU,伙伴CPU处于STOP运行模式时,S7通信依然可以正常进行。“PUT”指令的调用如图7-5所示。

978-7-111-58391-2-Chapter07-7.jpg

图7-5 调用“PUT”指令

“PUT”指令各个参数定义如下:

1)REQ:用于触发“PUT”指令的执行,每个上升沿触发一次。

2)ID:S7通信连接ID,该连接ID在组态S7连接时生成。

3)ADDR_x:指向伙伴CPU写入区域的指针。如果写入区域为数据块,则该数据块须为标准访问的数据块,不支持优化访问。示例P#DB10.DBX0.0BYTE 100,表示伙伴方被写入数据的区域为从DB10.DBB0开始的连续100个字节区域。

4)SD_x:指向本地CPU发送区域的指针。本地数据区域可支持优化访问或标准访问。示例P#DB11.DBX0.0BYTE100,表示本地发送数据区为从DB11.DBB0开始的连续100个字节区域,数据块DB11为标准访问的数据块。

5)DONE:数据被成功写入到伙伴CPU。

6)ERROR:指令执行出差错误代码需要参考STATUS。

7)STATUS:通信状态字,如果ERROR为TRUE时,可以通过其查看通信错误原因。由于STATUS只在ERROR为TRUE那一个扫描周期时有效,为了有效读取错误代码,可参考图7-5的程序段2。

2.GET指令

S7-1200 CPU可使用“GET”指令从伙伴CPU读取数据,伙伴CPU处于STOP运行模式时,S7通信依然可以正常进行。“GET”指令的调用如图7-6所示。

“GET”指令各个参数定义如下:

1)REQ:用于触发“GET”指令的执行,每个上升沿触发一次。

2)ID:S7通信连接ID,该连接ID在组态S7连接时生成。

3)ADDR_x:指向伙伴CPU待读取区域的指针。如果读取区域为数据块,则该数据块须为标准访问的数据块,不能为优化访问。(www.xing528.com)

978-7-111-58391-2-Chapter07-8.jpg

图7-6 GET指令

4)RD_x:指向本地CPU要写入区域的指针。本地数据区域可支持优化访问或标准访问。

5)NDR:伙伴CPU数据被成功读取。

6)ERROR:指令执行出差,错误代码需要参考STATUS。

7)STATUS:通信状态字,如果ERROR为TRUE时,可以通过其查看通信错误原因。由于STATUS只在ERROR为TRUE那一个扫描周期时有效,为了有效读取错误代码,可参考图7-6中的程序段4。

3.PUT/GET指令使用注意

S7-1200CPU使用PUT/GET指令读写伙伴CPU数据时,需要注意以下几点:

1)如果伙伴CPU为S7-1200/1500CPU系列,则需要在伙伴CPU属性的“防护与安全”设置中激活“允许来自远程对象的PUT/GET通信访问”。

2)伙伴CPU待读写区域不支持优化访问的数据区。

3)确保参数ADDR_i与SD_i/RD_i定义的数据区域在数量、长度和数据类型等方面都是匹配的。

4)PUT/GET指令最大可以传送数据长度为212/222字节,通信数据区域数量的增加并不能增加通信数据长度。PUT/GET指令在使用不同数量的通信区域下最大通信长度见表7-3。

7-3 PUT/GET指令最大通信长度

978-7-111-58391-2-Chapter07-9.jpg

注意:

当PUT/GET指令使用一个数据区域(ADDR_1、SD_1/RD_1)通信时,通信最大数据长度可达212/222字节。当再增加一个通信数据区域(ADDR_2、SD_2/RD_2)时,通信最大数据长度为196/218字节,通信数据量并没有增加,而是相应地减少了。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈