西门子 400 与 200 SMART S7通信 及 GET/PUT 指令

参考:http://www.ad.siemens.com.cn/productportal/prods/published/Comm/Comm_5.2/Comm_5.2.html

 

在200-SMART侧无需编写收、发程序。只需要将读写的字节连续规划在V区即可。程序由S7-400侧编程调用PUT/GET指令。

首先,是硬件组网。

在程序编写之前,需要先将400与200-SMART之间的通讯线路建立好。

NetPro网络组态里为CPU新插入一条S7连接。

 

站点选择 “未知” ,选择通讯协议 “S7 连接” ,点击应用。

 

 

在弹出的对话框中,先记住 “块参数” 栏里的 “本地ID” ,编程要用到这个ID。

然后勾选 “建立主动连接” ,设置伙伴的 “地址” (200-SMART的 IP 地址),再点开右下角的 “地址详细信息” 。

 

在弹出来的对话框设置 伙伴 的 插槽 为 “1” ,因为200-SMART没有插槽的概念,所以默认为1,确认即可

最后再保存-->编译-->下载后即可完成组网。

 

程序部分

400中使用 SFB14 和 SFB15 实现数据交换。

S7-400

描述

简要描述

SFB 14

读数据

单边编程读访问

SFB 15

写数据

单边编程写访问

 

 

 

 

 

 

GET指令用法:

REQ:上升沿触发的启动信号,BOOL类型。不需要一直给电平信号。

ID:就是刚刚组网时用的 “本地ID” ,WORD类型。

ADDR_1:指向伙伴CPU读取区域的指针,ANY指针类型。开头加上 “P#” ,代表指针。由于200-SMART没有DB块的概念,所以默认DB1为200-SMART的V区,笔者的PLC 400里没有用到DB1块,不知道有没有影响。“BYTE 6” 指从指针位置开始连续读取6字节。

RD_1:指向本地CPU读取区域的指针,用法同上。 “RD_1” 和 “ADDR_1” 的读取长度要一致。

NDR:BOOL类型。为1时,代表接收数据成功。

ERROR:BOOL类型。为1时,代表有故障发生。有问题时看它的值。

STATUS:故障代码,WORD类型。有问题时看它和ERROR的值,然后查手册看代码示意。

PUT指令用法:

 

 

 

 

PUT指令与GET指令基本相似,只不过完成信号NDR换成了DONE,其他的完全相同,这里不再过多赘述。

PUT指令和GET指令的REQ输入信号为脉冲信号,注意不要同时触发,笔者这里使用了400的脉冲位取上升沿和下降沿分别触发。

编译-->下载程序后,如果ERROR和STATUS没有报错,则证明通信成功,已经成功建立通讯了。

posted @ 2021-04-04 11:59  NiGhT_Ray  阅读(6996)  评论(0编辑  收藏  举报