参考: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没有报错,则证明通信成功,已经成功建立通讯了。