许昌市西门子6es7214-2bd23-0xb8
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 。
1. 使用tia v13 软件新建一个项目,添加1个s7-1200站点并为其分配网络和ip地址 ,如图1.所示。
图1. tia 软件中添加s7-1200站点
2. tia 软件的网络视图中为s7-1200 cpu 添加一个新连接,如图2.所示。
图2.s7-1200 添加新连接
在弹出"创建新连接"对话框中选择"未指定",然后点击"添加"按钮,添加新连接,如图3.所示。
图3.选择未指定连接
需要为新创建的连接指定连接伙伴方的ip地址和tsap,设置方法如图4.,图5.所示。
注意:s7-200 smart 侧的tsap 只能设置为03.00 或者03.01 。
图4. 设置连接伙伴方ip地址
图5. 设置连接伙伴方tsap地址
1 .创建发送数据块db1(接收区数据块db2类似),数据块定义为200个字节的数组且数据块的属性中需要取消"优化的块访问"选项,如图6. 所示。
图6. 创建数据块并取消优化访问
2.发送数据块与接收数据块创建完成后,即可在ob1中调用put/get指令,进行s7通信了,如图7.所示。
图7.调用put/get指令
表1.put 指令参数说明
call “put” |
, �3 |
//调用 put,使用背景db块:db3 |
req |
:=%m0.0 |
//上升沿触发程序块的调用 |
id |
:=w#16#0100 |
//连接号,要与连接配置中一致,创建连接时的连接号,见图1.标记7 |
done |
:=%m2.0 |
// 为1时,发送完成 |
error |
:=%m2.1 |
// 为1时,有故障发生 |
status |
:=%mw4 |
// 状态代码 |
addr_1 |
:=p#db1.dbx0.0 byte 200 |
// 发送到通信伙伴数据区的地址,对应s7-200 smart vb0-vb199 |
sd_1 |
:=p#db1.dbx0.0 byte 200 |
// 本地发送数据区 |
表2.get指令参数说明
call “get” |
, �4 |
//调用 get,使用背景db块:db4 |
req |
:=%m0.1 |
//系统时钟 2秒脉冲 |
id |
:=w#16#0100 |
//连接号,要与连接配置中一致,创建连接时的连接号,见图1.标记7 |
ndr |
:=%m2.2 |
//为1时,接收到新数据 |
error |
:=%m2.3 |
//为1时,有故障发生 |
status |
:=%mw6 |
//状态代码 |
addr_1 |
:=p#db1.dbx200.0 byte 200 |
//从通信伙伴数据区读取数据的地址,对应s7-200 smart vb200-vb399 |
rd_1 |
:=p#db2.dbx0.0 byte 200 |
//本地接收数据地址 |
综合以上步骤,已经完成了s7-1200 硬件和软件部分的编程,下载只需要将程序下载到s7-1200 plc 即可。
1.连接状态监控
s7连接成功的建立是调用put/get指令的基础,s7连接成功建立后,方能正确执行put/get指令。
在tia 软件的网络视图中,将软件切换到在线模式,可以监控s7连接状态,如图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侧不需要编写通讯程序。
该方式比较简单,本文档不做介绍。
许昌市西门子6es7214-2bd23-0xb8