• {{item.name}}
{{item.name}}
{{item2.name}}
更多

S7-200 SMART CPU与S7-1500进行S7通信

star star star star star
0 分
  • 通信(通讯)
  • 参数设置
  • 硬件组态与安装
  • 使用操作
  • S7-1500
  • 单边通信
  • PUT/GET
  • S7 通信
发布时间:2024年01月18日
  • 0
  • 70
本章节介绍了S7-1500和S7-200 SMART 之间S7通信的示例(S7-1500为客户端)以及错误代码说明。

S7-200 SMART CPU与S7-1500进行S7通信

S7通信是S7系列PLC基于MPI、PROFIBUS、ETHERNET网络的一种优化的通信协议,主要用于S7-300/400PLC之间的通信。
经过测试发现S7-1500与S7-200 SMART PLC 之间的S7通信也是可以成功的,S7-1500侧编程调用PUT/GET指令或者S7-200 SMART侧编程调用PUT/GET指令都是可以的。

注意:
1).S7-200 SMART CPU 与S7-1500 之间的S7通信未经西门子官方测试,本文档仅供客户测试使用,使用该种通信方式所产生的任何危险需要有客户自己承担!
2).S7-200 SMARTPLC V2.0 版本才开始支持PUT/GET通信,V1.0版本的CPU需要升级固件后方可支持PUT/GET。
3).本文只介绍了S7-1500侧调用PUT/GET指令编程方式(S7-200 SMART CPU作为服务器方,无需编程),未介绍S7-200 SMART侧编程调用PUT/GET方式。

硬件和软件需求及所完成的通信任务

本文以采用1个CPU1518-4 PN/DP(6ES7 518-4AP00-0AB0),1个S7-200 SMART PLC为例,介绍它们之间的S7通信。

硬件:
① S7-1500 CPU
② S7-200 SMART CPU (固件V2.5)
③ PC (带以太网卡)
④ TP以太网电缆

软件:
① TIA STEP7 V16
② STEP 7 Micro/WIN SMART V2.5

所完成的通信任务:
① S7-1500 将通信数据区 DB3 中的200 个字节发送到 S7-200 SMART的VB 数据区。
② S7-1500 读取 S7-200 SMART中的VB数据区存储到S7-1500 的数据区DB4中的200个字节 。

S7-1500侧硬件组态和网络组态

1. 使用TIA V16 软件新建一个项目,添加1个S7-1500站点并为其分配网络和IP地址 ,如图1.所示。


图1. TIA 软件中添加S7-1500站点

2. 在OB1中调用PUT/GET指令块

通过右边指令树的“通信”—“S7通信”,直接将PUT/GET指令块拖入OB1中,

通过点击"PUT/GET"指令块右上角的蓝色图标开始组态连接。

图2.S7-1500 调用指令块并添加新连接

3.在指令块下方的“属性"对话框设置“连接参数”(以PUT指令块为例):

选择"未指定",TIA软件会自动创建一个连接(例中:“S7_连接_1”),自动分配连接ID,并自动将该ID号关联至“PUT”功能块的ID管脚(例中:W#16#100);
务必确认该连接1500侧“主动建立连接”勾选;

手动设置伙伴IP地址(例中:192.168.0.20),如图3所示。

图3.选择未指定连接

4.设置TSAP地址

指令块组态完毕,打开“网络视图”-“连接”选项卡,可以看到TIA自动创建的连接,打开连其接属性后,需要为新创建的连接伙伴设置TSAP,设置方法如图4。

注意:S7-200 SMART 侧的TSAP 只能设置为03.00 或者03.01 。


图4. 设置连接伙伴方TSAP地址

TIA软件程序编程

1. 创建通信数据DB块

创建S7-1500 侧发送数据块DB3(接收区数据块DB4类似),数据块的属性中需要取消勾选DB块属性"优化的块访问"。

A.数据块DB3,定义为300个字节的数组

B.选中DB3,右键“属性”取消“优化的块访问”

图5.创建数据块并取消优化访问

2.完善指令块设置

发送数据块与接收数据块创建完成后,即可在OB1中调用PUT/GET指令,进行S7通信.(通过"PUT"指令块,已经组态连接,如果针对同一设备需要使用GET指令,可以直接使用"PUT"指令的连接ID,例中:W#16#100)如图6示。


图6.调用PUT/GET指令
表1.PUT 指令参数说明

CALL “PUT”
, %DB1
//调用 PUT,使用背景DB块:DB1
REQ
:=%M0.0
//上升沿触发程序块的调用
ID
:=W#16#0100
//连接号,要与连接配置中一致,创建连接时的连接号
DONE
:=%M0.1
// 为1时,发送完成
ERROR
:=%M0.2
// 为1时,有故障发生
STATUS
:=%MW2
// 状态代码
ADDR_1
:=P#DB1.DBX0.0 BYTE 200
// 发送到通信伙伴数据区的地址,对应S7-200 SMART VB0-VB199(果要访问S7-200 SMART的V区,该位置只能写DB1)
SD_1
:=P#DB3.DBX0.0 BYTE 200
// 本地(S7-1500)发送数据区 ,可以是任意DB块

表2.GET指令参数说明

CALL “GET”
, %DB2
//调用 GET,使用背景DB块:DB2
REQ
:=%M1.0
//上升沿触发程序块的调用
ID
:=W#16#0100
//连接号,要与连接配置中一致,创建连接时的连接号
NDR
:=%M1.1
//为1时,接收到新数据
ERROR
:=%M1.2
//为1时,有故障发生
STATUS
:=%MW6
//状态代码
ADDR_1
:=P#DB1.DBX200.0 BYTE 200
//从通信伙伴数据区读取数据的地址,对应S7-200 SMART VB200-VB399(如果要访问S7-200 SMART的V区,该位置只能写DB1)
RD_1
:=P#DB4.DBX0.0 BYTE 200
//本地(S7-1500)接收数据区 ,可以是任意DB块

综合以上步骤,已经完成了S7-1500 硬件和软件部分的编程,下载只需要将程序下载到S7-1500 PLC 即可。

状态监控

1.连接状态监控

S7连接成功的建立是调用PUT/GET指令的基础,S7连接成功建立后,方能正确执行PUT/GET指令。
在TIA 软件的网络视图中,将软件切换到在线模式,可以监控S7连接状态,如图7所示。

图7.监控S7连接状态

选择“网络视图”,切换到“在线”模式

如果S7连接图标为绿色,则表示连接建立成功,若图标为红色,则表示连接建立失败

2.通信数据监控

S7连接成功建立后,S7-1500 触发PUT/GET指令,通过TIA 软件监控表和STEP 7 Micro/WIN SMART 软件的状态表,可以监控数据通信是否正常。
上例中,将S7-1500的DB3里 DBB0-DBB199的200个字节传送至S7-200 SMART 的VB0-VB199开始的200个字节。


图8.S7-1500发送数据

上例中,将S7-200 SMART 的VB200-VB399开始的200个字节传送至S7-1500的DB4里 DBB0-DBB199的200个字节。


图9.S7-1500接收数据

注意: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-1500 与S7-200 SMART S7 通讯的另外一种方法是S7-200 SAMRT PLC做客服端,S7-1500做服务器。该方式需要S7-200 SMART调用PUT/GET指令,S7-1500侧不需要编写通讯程序(需要勾选“允许来自远程对象的PUT/GET通信访问”(参数路径:S7-1500 CPU 属性-防护与安全-连接机制,如图10所示。))。 该方式比较简单,本文档不做介绍。


图10.设置连接机制

获取错误代码

用户在实际调试过程中,并非一次成功,通过网络视图在线可以监控连接状态,但是具体的错误原因并不清楚,此时,根据功能块的错误代码分析错误原因就显得十分有效。
如下图所示,当通信不正常时,指令块本身也会故障,可以通过指令块右侧的“ERROR”和“STATUS”两个变量获取最新的错误代码。


图11.监控S7连接状态

具体错误代码如下图所示,或者用户直接选中PUT指令块,按下键盘的F1按键,打开TIA的帮助自行查看。


图12.PUT/GET 错误代码

  • 评论
更多
  • 分享

    扫码分享

扫码进入移动端

信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。