一.s7-200 smart cpu与s7-1200进行s7通信
s7通信是s7系列plc基于mpi、profibus、ethernet网络的一种优化的通信协议,主要用于s7-300/400plc之间的通信。经过测试发现s7-1200与s7-200 smart plc 之间的s7通信也是可以成功的,s7-1200侧编程调用put/get指令或者s7-200 smart侧编程调用put/get指令都是可以的。
注意:1.s7-200 smart cpu 与s7-1200 之间的s7通信未经西门子官方测试,本文档仅供客户测试使用,使用该种通信方式所产生的任何危险需要有客户自己承担!2.s7-200 smartplc v2.0 版本才开始支持put/get通信,v1.0版本的cpu需要升级固件后方可支持put/get。3.本文只介绍了s7-1200侧调用put/get指令编程方式(s7-200 smart cpu作为服务器方,无需编程),未介绍s7-200 smart侧编程调用put/get方式。
二.硬件和软件需求及所完成的通信任务
本文以采用1个cpu1215c(6es7215-1ag40-0ab0),1个s7-200 smart plc为例,介绍它们之间的s7通信。硬件: ① s7-1200 cpu ② s7-200 smart cpu (固件v2.0)③ pc (带以太网卡)④ tp以太网电缆 软件:① step7 v13 sp1 ② step 7 micro/win smart v2.1 所完成的通信任务:① s7-1200 将通信数据区 db1 中的200 个字节发送到 s7-200 smart的vb 数据区。 ② s7-1200 读取 s7-200 smart中的vb数据区存储到s7-1200 的数据区db2 。
三.s7-1200侧硬件组态和网络组态
1. 使用tia v13 软件新建一个项目,添加1个s7-1200站点并为其分配网络和ip地址 ,如图1.所示。
西门子1200plc
图1. tia 软件中添加s7-1200站点
2. tia 软件的网络视图中为s7-1200 cpu 添加一个新连接,如图2.所示。
图2
图2.s7-1200 添加新连接在弹出创建新连接对话框中选择未指定,然后点击添加按钮,添加新连接,如图3.所示。
图3
图3.选择未指定连接
需要为新创建的连接指定连接伙伴方的ip地址和tsap,设置方法如图4.,图5.所示。注意:s7-200 smart 侧的tsap 只能设置为03.00 或者03.01 。
图4
图4. 设置连接伙伴方ip地址
图5
图5. 设置连接伙伴方tsap地址
四.tia软件程序编程
1 .创建发送数据块db1(接收区数据块db2类似),数据块定义为200个字节的数组且数据块的属性中需要取消优化的块访问选项,如图6. 所示。
图26
图6. 创建数据块并取消优化访问
2.发送数据块与接收数据块创建完成后,即可在ob1中调用put/get指令,进行s7通信了,如图7.所示。
图7
图7.调用put/get指令表1.put 指令参数说明
表1
表2.get指令参数说明
表2
综合以上步骤,已经完成了s7-1200 硬件和软件部分的编程,下载只需要将程序下载到s7-1200 plc 即可。
状态监控
1.连接状态监控s7连接成功的建立是调用put/get指令的基础,s7连接成功建立后,方能正确执行put/get指令。在tia 软件的网络视图中,将软件切换到在线模式,可以监控s7连接状态,如图8.所示。
图8
图8.监控s7连接状态
s7连接成功建立后,s7-1200 触发put/get指令,通过tia 软件监控表和step 7 micro/win smart 软件的状态表,可以监控数据通信是否正常。
注意:s7-200 smart中v区对应于db1,即在put指令中使用的通信伙伴数据区addr_1=p#db1.dbx0.0 byte 200在s7-200 smar中对于为vb0~vb199。 本文档中s7-200 smart 做s7通讯的服务器,占用s7-200 smart plc 的服务器连接资源,s7-200 smart plc 本身不需要编写通讯程序。 s7-1200 与s7-200 smart s7 通讯的另外一种方法是s7-200 samrt plc做客服端,s7-1200做服务器。该方式需要s7-200 smart调用put/get指令,s7-1200侧不需要编写通讯程序。该方式比较简单,本文档不做介绍。