中国西门子代理商-PLC代理
浔之漫智控技术(上海)有限公司
西门子授权代理商 中国西门子一级代理商 西门子PLC模块总代理商 西门子模块代理商
S7-200 SMART CPU之间的以太网通信
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被动连接
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 PUT和GET 指令:
LAD/FBD | STL | 描述 |
PUT TABLE | PUT 指令启动以太网端口上的通信操作,将数据写入远程设备。PUT 指令可向远程设备写入zui多 212 个字节的数据。 | |
GET TABLE | GET 指令启动以太网端口上的通信操作,从远程设备获取数据。GET 指令可从远程设备读取zui多 222 个字节的数据。 |
表 2 PUT和GET 指令的TABLE参数定义:乌鲁木齐西门子代理商|PLC模块总代理
字节偏移量 | Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 |
0 | D1 | A2 | E3 | 0 | 错误代码4 | |||
1 |
远程 CPU的 IP地址 | |||||||
2 | ||||||||
3 | ||||||||
4 | ||||||||
5 | 预留(必须设置为0) | |||||||
6 | ||||||||
7 指向远程 CPU 通信数据区域的地址指针 | ||||||||
8 | ||||||||
9 | ||||||||
10 | ||||||||
11 | 通信数据长度5 | |||||||
12 指向本地 CPU 通信数据区域的地址指针 | ||||||||
13 | ||||||||
14 | ||||||||
15 |
1 D :通信完成标志位,通信已经成功完成或者通信发生错误。
2 A :通信已经激活标志位。
3 E :通信发生错误,错误原因需要查询 错误代码4。
4 错误代码 :见表 3 PUT 和 GET 指令TABLE 参数的错误代码。
5 通信数据长度 :需要访问远程 CPU通信数据的字节个数,PUT 指令可向远程设备写入zui多 212个字节的数据,GET 指令可从远程设备读取zui多 222 个字节的数据。
表 3 PUT 和 GET 指令TABLE 参数的错误代码:
错误代码 | 通信无错误 | PUT/GET TABLE参数表中存在非法参数: 本地CPU通信区域不包括 I、Q、M 或 V。 本地CPU不足以提供请求的数据长度。 对于 GET指令数据长度为零或大于 222 字节;对于 PUT指令数据长度大于 212 字节。 远程CPU通信区域不包括 I、Q、M 或 V。 远程CPU 的IP 地址是非法的 (0.0.0.0)。 远程CPU 的IP 地址为广播地址或组播地址。 远程CPU 的IP 地址与本地 CPU的IP 地址相同 远程CPU 的IP 地址位于不同的子网。 | 同一时刻处于激活状态的 PUT/GET 指令过多(仅允许 16 个) | 无可以连接资源,当前所有的连接都在处理未完成的数据请求(S7-200 SAMRT CPU主动连接资源数为 8 个)。 | 从远程CPU 返回的错误: 请求或发送的数据过多。 STOP 模式下不允许对 Q 存储器执行写入操作。 存储区处于写保护状态 | 与远程CPU 之间无可用连接: 远程 CPU 无可用的被动连接资源(S7-200 SMART CPU被动连接资源数为 8 个)。 与远程 CPU 之间的连接丢失(远程 CPU 断电或者物理断开)。 |
6-9 | 预留 |
通信资源数量
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 占用被动连接资源。
乌鲁木齐西门子代理商|PLC模块总代理
CPU2 的主程序只需包含一条语句用于读取 CPU2 的实时时钟,并存储到 VB100 ~ VB107,如图 6 所示。
图 6 读取 CPU2 实时时钟
PUT/GET例程
为了*好地理解 PUT/GET指令的编程,可参考下面的例程。
PUT_GET_CPU1.smart
PUT_GET_CPU2.smart
注意:此指令库/程序的作者和拥有者对于该软件的功能性和兼容性不负任何责任。使用该软件的风险由用户自行承担。由于它是*的,不提供任何,错误纠正和支持,用户不必为此西门子与服务部门。
网络4:调用 PUT 指令和 GET 指令。
图 5 调用 PUT 指令和 GET 指令
2、CPU2 被动端编程
网络3:定义 GET 指令 TABLE 参数表,用于将远程 CPU2 的VB100 ~ VB107 读取到 CPU1 的 VB0~ VB7。
图 4 定义 GET 指令 TABLE 参数表
a.定义通信状态字节 b.定义 CPU2 IP 地址 c.定义 CPU2 的通信区域 ,从 VB100 地址开始d.定义通信数据长度 e.定义 CPU1 的通信区域,从 VB0 地址开始
指令编程举例
在下面的例子中,CPU1 为主动端,其 IP 地址为192.168.2.100,调用 PUT/GET 指令;CPU2为被动端,其 IP 地址为192.168.2.101,不需调用 PUT/GET 指令,网络配置见图 1 。通信任务是把 CPU1的实时时钟信息写入 CPU2 中,把CPU2 中的实时时钟信息读写到 CPU1 中。
图 1 CPU通信网络配置图
1、CPU1 主动端编程
CPU1 主程序中包含读取 CPU 实时时钟、初始化 PUT/ GET 指令的 TABLE 参数表、调用 PUT 指令和 GET指令等。
网络1:读取 CPU1 实时时钟,存储到 VB100 ~ VB107 。
图 2 读取 CPU1 实时时钟
注:READ_RTC 指令用于读取 CPU 实时时钟指令,并将其存储到从字节地址 T 开始的 8字节时间缓冲区中,数据格式为 BCD 码。
网络2:定义 PUT 指令 TABLE 参数表,用于将 CPU1 的VB100 ~ VB107 传输到远程 CPU2 的VB0~ VB7。
图 3 定义 PUT 指令 TABLE 参数表
a.定义通信状态字节 b.定义 CPU2 IP 地址 c.定义 CPU2 的通信区域 ,从 VB0 地址开始d.定义通信数据长度 e.定义 CPU1 的通信区域,从 VB100 地址开始 3、8 个PUT/GET被动连接资源 S7-200 SMART CPU 调用 PUT/GET 指令,执行主动连接的也可以被动地被其他远程 CPU进行通信读写。 S7-200 SMARTzui多可以与被8个不同 IP 地址的远程 CPU 进行建立被动连接。已经成功建立的连接将被保持,直到远程 CPU断电或者物理断开。 2、8 个PUT/GET主动连接资源 S7-200 SMART CPU 程序中可以包含远多于 8个PUT/GET指令的调用,在同一时刻zui多只能激活 8 个 PUT/GET 连接资源。 同一时刻对同一个远程 CPU 的多个 PUT/GET指令的调用,只会占用本地 CPU的一个主动连接资源和远程 CPU的一个被动连接资源。本地 CPU 与远程CPU之间只会建立一条连接通道,同一时刻触发的多个 PUT/GET 指令将会在这条连接通道上顺序执行。 同一时刻zui多能对8个不同IP 地址的远程 CPU 进行 PUT/GET 指令的调用,*9个 远程CPU的PUT/GET指令调用将报错,无可用连接资源。已经成功建立的连接将被保持,直到远程 CPU断电或者物理断开。
硬件及络组态 本文以采1个315-2PN/DP,1个S7-200 ART PLC为例,介绍它们之间S7通信。
在STEP7中创建一个新项目,项目名称为S7-300-ART。1个S7-300,在硬件组态中CPU 315-2PN/DP。如图4所示。
图4 STEP7 项目中S7-300点
设置CPU 315-2PN/DPIP地址:192.168.0.1,如图5所示。硬件组态完成后,即可下载该组态。
图5 设置CPU PN IP地址
打开“NetPro”设置络参数,选中CPU 315-2PN/DP,在连接列表中建立新连接。步骤如图6所示。
图6 NetPro组态视图中新连接
选择 Unspecified 点,选择通协议 S7 connection,Apply,如图7所示。
图7 组态新连接
在弹S7 connection属性对话框中,勾选 Establish an activeconnection,设置Partner address:192.168.0.2(S7-200 ART PLC IP地址),如图8所示。
图8 设置S7连接参数
"Address Details" ,再弹来对话框设置 Partner Slot 为1,如图9所示。OK即可关闭该对话框。