设为首页
收藏本站
PLC技术网
开启辅助访问
切换到宽版
登录
注册哦
只需一步,快速开始
微信扫码登录
门户
Portal
论坛
BBS
导读
Guide
排行榜
Ranklist
搜索
搜索
本版
文章
帖子
用户
PLC论坛-全力打造可编程控制器专业技术论坛
»
论坛
›
工控技术交流区
›
『国外:三菱/西门子/欧姆龙/松下』
›
西门子S7-200 SMART PLC之间如何通过指令实现S7通讯? ...
返回列表
发新帖
[西门子]
西门子S7-200 SMART PLC之间如何通过指令实现S7通讯?
[复制链接]
81886
|
0
|
2024-5-2 16:46:22
|
显示全部楼层
|
阅读模式
看完这个,直接搞定电缆、电流、电压、电阻等电气计算(65套)~建议人手一份!
导读
S7-200 SMART CPU 固件版本V2.0 及以上版本的CPU 可实现CPU、编程设备和HMI(触摸屏)之间的多种通信:
CPU与编程设备之间的数据交换。
CPU与HMI之间的数据交换。
CPU与其他S7-200SMART CPU之间的PUT/GET通信。
S7-200 SMART CPU 以太网连接资源如下:
1个连接用于与STEP7Micro/Win SMART软件的通信。
8个连接用于CPU与HMI之间的通信。
8个连接用于CPU与其他S7-200SMART CPU之间的PUT/GET主动连接
8个连接用于CPU与其他S7-200SMART 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-200SMART 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 指令可向远程设备写入最多 212 个字节的数据。
GET TABLE
GET 指令启动以太网端口上的通信操作,从远程设备获取数据。GET 指令可从远程设备读取最多 222 个字节的数据。
表2 PUT和GET指令的TABLE参数定义
字节偏移量
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
预留(必须设置为0)
7
指向远程 CPU 通信数据区域的地址指针
(允许数据区域包括:I、Q、M、V)
8
9
10
11
通信数据长度5
12
指向本地 CPU 通信数据区域的地址指针
(允许数据区域包括:I、Q、M、V)
13
14
15
1 D :通信完成标志位,通信已经成功完成或者通信发生错误。
2 A :通信已经激活标志位。
3 E :通信发生错误,错误原因需要查询错误代码4。
4 错误代码:见表 3 PUT 和GET 指令TABLE参数的错误代码。
5 通信数据长度:需要访问远程 CPU通信数据的字节个数,PUT指令可向远程设备写入最多212 个字节的数据,GET指令可从远程设备读取最多222 个字节的数据。
表3 PUT 和GET指令TABLE参数的错误代码
错误代码
描述
0
通信无错误
1
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 地址位于不同的子网。
2
同一时刻处于激活状态的 PUT/GET 指令过多(仅允许 16 个)
3
无可以连接资源,当前所有的连接都在处理未完成的数据请求(S7-200 SAMRT CPU主动连接资源数为 8 个)。
4
从远程 CPU 返回的错误:
请求或发送的数据过多。
STOP 模式下不允许对 Q 存储器执行写入操作。
存储区处于写保护状态
5
与远程 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 占用被动连接资源。
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 中。
图1CPU通信网络配置图
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-200SMART PLC之间通过指令实现S7通讯的步骤。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
注册哦
x
回复
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册哦
本版积分规则
发表回复
回帖后跳转到最后一页
yulit
回复楼主
返回列表
『国外:三菱/西门子/欧姆龙/松下』
『国产:台达/汇川/信捷产品交流区』