欢迎光临散文网 会员登陆 & 注册

西门子S7-200 SMART PLC之间如何通过指令实现S7通讯?

2023-07-18 15:00 作者:电气小百科  | 我要投稿

导读

S7-200 SMART CPU 固件版本V2.0 及以上版本的CPU 可实现CPU、编程设备和HMI(触摸屏)之间的多种通信:

  • CPU与编程设备之间的数据交换。

  • CPU与HMI之间的数据交换。

  • CPU与其他S7-200 SMART CPU之间的PUT/GET通信。


S7-200 SMART CPU 以太网连接资源如下:

  • 1个连接用于与STEP7 Micro/Win SMART软件的通信。

  • 8个连接用于CPU与HMI之间的通信。

  • 8个连接用于CPU与其他S7-200 SMART CPU之间的PUT/GET主动连接

  • 8个连接用于CPU与其他S7-200 SMART CPU之间的PUT/GET被动连接

  • CPU1 (192.168.2.1 ) 把VB100~107数据传输到CPU2 (192.168.2.2 ) VB0~7

  • CPU1 (192.168.2.1 ) 把VB100~107数据读取到CPU2 (192.168.2.2 ) VB0~7



一、PUT/GET 指令格式

S7-200 SMART CPU提供了PUT/GET指令,用于S7-200 SMART CPU之间的以太网通信(PUT/GET指令格式见 表 1)。PUT/GET指令只需要在主动建立连接的CPU 中调用执行,被动建立连接的CPU不需要进行通信编程。PUT/GET指令中TABLE参数用于定义远程CPU的IP地址、本地CPU和远程CPU的数据区域以及通信长度(TABLE参数定义见 表 2)。



1 D :通信完成标志位,通信已经成功完成或者通信发生错误。

2 A :通信已经激活标志位。

3 E :通信发生错误,错误原因需要查询 错误代码4。

4 错误代码 :见表 3 PUT 和GET 指令TABLE参数的错误代码。

5 通信数据长度 :需要访问远程 CPU通信数据的字节个数,PUT指令可向远程设备写入最多212 个字节的数据,GET指令可从远程设备读取最多222 个字节的数据。


粉丝福利

微信扫码免费领取64本西门子PLC电子书

微信扫码,免费领取

二、通信资源数量

S7-200 SMART CPU 以太网端口含有8 个PUT/GET主动连接资源和 8个PUT/GET被动连接资源。例如:CPU1调用 PUT/GET指令与 CPU2 ~ CPU9 建立8主动连接的同时,可以与CPU10 ~ CPU17 建立8被动连接(CPU10 ~ CPU17 调用 PUT/GET指令),这样的话CPU1 可以同时与16台CPU(CPU2 ~ CPU17)建立连接。


关于主动连接资源和被动连接资源的详细解释如下:

1.主动连接资源和被动连接资源

调用 PUT/GET指令的CPU占用主动连接资源数;相应的远程CPU 占用被动连接资源。


2.8 个PUT/GET 主动连接资源

S7-200 SMART CPU 程序中可以包含远多于8个PUT/GET指令的调用,但是在同一时刻最多只能激活8 个PUT/GET 连接资源。

同一时刻对同一个远程CPU 的多个PUT/GET 指令的调用,只会占用本地CPU的一个主动连接资源和远程CPU的一个被动连接资源。本地CPU 与远程CPU之间只会建立一条连接通道,同一时刻触发的多个PUT/GET 指令将会在这条连接通道上顺序执行。

同一时刻最多能对8个不同IP 地址的远程CPU 进行PUT/GET 指令的调用,第9个 远程CPU的PUT/GET指令调用将报错,无可用连接资源。已经成功建立的连接将被保持,直到远程CPU断电或者物理断开。


3.8 个PUT/GET 被动连接资源

S7-200 SMART CPU 调用PUT/GET指令,执行主动连接的同时也可以被动地被其他远程CPU 进行通信读写。


S7-200 SMART最多可以与被8个不同IP 地址的远程CPU 进行 建立被动连接。已经成功建立的连接将被保持,直到远程CPU断电或者物理断开。



三、指令编程举例

在下面的例子中,CPU1为主动端,其 IP地址为192.168.0.110,调用PUT/GET 指令;CPU2为被动端,其 IP地址为192.168.0.101,不需调用PUT/GET 指令,网络配置见图1 。通信任务是把CPU1 的实时时钟信息写入CPU2 中,把CPU2中的实时时钟信息读写到CPU1 中。

图1 CPU通信网络配置图



CPU1 主动端编程

CPU1 主程序中包含读取CPU 实时时钟、初始化PUT/ GET 指令的TABLE 参数表、调用PUT 指令和GET 指令等。


网络1:定义PUT 指令TABLE 参数表,用于将CPU1 的VB2000 ~ VB2003 传输到远程CPU2 的VB0 ~ VB3。

图2 定义PUT 指令TABLE 参数表


  • a.定义通信状态字节

  • b.定义 CPU2 IP 地址

  • c.定义 CPU2 的通信区域 ,从 VB2000 地址开始

  • d.定义通信数据长度

  • e.定义 CPU1 的通信区域,从 VB0 地址开始


网络2:定义GET指令TABLE参数表,用于将远程CPU2的VB2000 ~ VB2003 读取到CPU1的VB0 ~ VB3。

图3定义GET指令TABLE参数表


  • a.定义通信状态字节

  • b.定义 CPU2 IP 地址

  • c.定义 CPU2 的通信区域 ,从 VB0地址开始

  • d.定义通信数据长度

  • e.定义 CPU1 的通信区域,从 VB2000 地址开始


网络3:调用PUT指令和GET指令。

图4调用PUT指令和GET指令




四、程序调试

CPU1 为主动端,其 IP地址为192.168.0.110,调用PUT/GET 指令;CPU2为被动端,其 IP地址为192.168.0.101,不需调用PUT/GET 指令。程序下载到CPU中进行测试,监控状态表,数据发送与接收成功。

图5数据发送与接收




总结

以上就是整个西门子S7-200 SMART PLC之间通过指令实现S7通讯的步骤,文章内容如有错误请联系我们。


文章来源:技成培训网原创,作者:邹志锐;未经授权禁止转载,违者必究!


粉丝福利

微信扫码免费领取64本西门子PLC电子书

微信扫码,免费领取


西门子S7-200 SMART PLC之间如何通过指令实现S7通讯?的评论 (共 条)

分享到微博请遵守国家法律