西门子S7-200 Smart和欧姆龙CP1H-E实现Modbus TCP以太网通信

蓝字 
'
PLC发烧友
” 

关注我们哦!

必备软件和硬件

1、西门子STEP 7-MicroWIN SMART编程软件

2、欧姆龙CX-Programmer编程软件

3、Modbus Poll调试软件

4、Modbus Slave调试软件

5、以太网调试助手

6、西门子S7-200 Smart系列PLC

7、欧姆龙CP1H-E系列PLC

8、无线路由器

9、网线

通信实现目的

1、西门子S7-200 Smart读取欧姆龙CP1H-E保持寄存器D0~D3并保持到自己的保持寄存器VW0~VW6里,使用Modbus之03功能码实现;

2、西门子S7-200 Smart使用自己的保持寄存器VW8~VW14控制欧姆龙CP1H-E的保持寄存器D4~D7,使用Modbus之16功能码实现。

通信连接说明

1、西门子S7-200 Smart本体自带以太网口通过网线连接至无线路由器LAN接口;

2、欧姆龙CP1H-E本体自带以太网口通过网线连接至无线路由器LAN接口。


Modbus TCP服务器通信参数

1、Modbus TCP服务器:欧姆龙CP1H-E

2、Modbus TCP服务器IP地址:192.168.1.160

3、Modbus TPC服务器子网掩码:255.255.255.0

4、Modbus TCP服务器默认网关:192.168.1.1

5、Modbus TCP服务器端口号:502

Modbus TCP客户端通信参数

1、Modbus TCP客户端:西门子S7-200 Smart

2、Modbus TCP客户端IP地址:192.168.1.150

3、Modbus TPC客户端子网掩码:255.255.255.0

4、Modbus TCP客户端默认网关:192.168.1.1

5、Modbus TCP客户端端口号:502

欧姆龙CP1H-E通信参数设置

1、欧姆龙CP1H-E通信参数设置如下所示:

2、欧姆龙CP1H-E设备编号和Modbus寄存器编号、地址对应表如下所示:

欧姆龙CP1H-E实现Modbus TCP服务器相关指令

1、Modbus TCP Server功能块:

Modbus TCP Server功能块各个参数定义如下所示:

(1) EN使能:必须保证每一扫描周期都被使能;

(2) LocalPort:端口号,一般默认为502;

(3) StartServer:启动TCP建立连接操作;

(4) NoActivityDelay:延迟时间;

(5) ENO:使能输出;

(6) Connected:客户端连接标志;

(7) IP_Client:客户端IP;

(8) Error:错误标志位;

(9) Error_Code:错误代码;

(10) Except_Counter:异常错误计数;

(11) Recv_Counter:接收请求计数。

欧姆龙CP1H-E实现Modbus TCP服务器编程

Modbus TCP Server功能块编制的程序如下所示:

1、初始化时,给保持寄存器D0、D1、D2、D3分别赋值0、1、2、3:

2、初始化时,给保持寄存器D4、D5、D6、D7分别赋值0、0、0、0:

3、每1分钟给保持寄存器D0、D1、D2、D3做加1操作:

4、判断保持寄存器D0、D1、D2、D3的值,如果大于6000,则各自进行清零操作:

5、初始化置位W0.00,延时2000ms后置位W0.01、复位W0.00

6、使用W0.01启动Modbus TCP Server,端口号为502:

使用以太网调试助手测试欧姆龙CP1H-E之Modbus TCP服务器程序

1、Modbus之03功能码测试,读取欧姆龙CP1H-E保持寄存器D0~D3的值:

以太网调试助手发送:33 33 00 00 00 06 01 01 00 00 00 04

欧姆龙CP1H-E返回:33 33 00 00 00 0B 01 03 08 00 13 00 14 00 15 00 16

则此时欧姆龙CP1H-E保持寄存器D0、D1、D2、D3的数据依次为16#0013、16#0014、16#0015、16#0016,以太网调试助手测试截图如下所示:

2、Modbus之16功能码测试,将欧姆龙CP1H-E保持寄存器D4~D7依次设置为1、2、3、4

以太网调试助手发送:EE EE 00 00 00 0F 01 10 00 04 00 04 08 00 01 00 02 00 03 00 04

欧姆龙CP1H-E返回:EE EE 00 00 00 06 01 10 00 04 00 04

欧姆龙CP1H-E返回数据表明其保持寄存器D4、D5、D6、D7数据设置成功,以太网调试助手测试截图如下所示:

3、测试总结:

以上Modbus之03和10功能码测试通过,亦表明欧姆龙CP1H-E之Modbus TCP服务器程序正确无误。此时可以断开以太网调试助手和欧姆龙CP1H-E的通信连接。

西门子S7-200 Smart通信参数设置

西门子S7-200 Smart通信参数设置如下图所示:

十一

西门子S7-200 Smart实现Modbus TCP客户端相关指令

1、MBC_Connect指令:

指令参数说明如下所示:

(1) EN 使能:必须保证每一扫描周期都被使能。

(2) Connect:启动TCP 连接建立操作;

(3) Disconnect: 断开TCP连接操作;

(4) ConnID: TCP 连接标识。注意:Modbus TCP 属于TCP通信,也是开放式用户通信中的一种,所以ConnID参数不能与其他TCP、ISO-on-TCP、UDP通信相同;

(5) IPaddr1~IPaddr4: Modbus TCP 服务器的IP地址,IPaddr1 是 IP 地址的最高有效字节,IPaddr4 是 IP 地址的最低有效字节;

(6) RemPort: Modbus TCP 服务器的端口号;

(7) LocPort:本地设备(Modbus TCP客户端)上端口号;

(8) ConnectDone:Modbus TCP连接已经成功建立;

(9) Busy: 连接操作正在进行时;

(10) Error: 建立或断开连接时,发生错误;

(11) Status:如果指令置位 “Error” 输出,Status 输出会显示错误代码。该错误代码为参考开放式用户通信库指令错误代码,具体请参考STEP 7-Micro/WIN SMART在线帮助。

2、MBC_MSG指令:

指令参数说明如下所示:

(1) EN 使能:同一时刻只能有一条MB_Client_MSG指令使能,EN 输入参数必须一直接通直到 MB_Client_MSG 指令 Done 位被置 1;

(2) First 读写请求:每一条新的读写请求需要使用信号沿触发;

RW 读写请求:为 0 时,读请求;为 1 时,写请求。开关量输出线圈和保存寄存器支持读请求和写请求,开关量输入触点和模拟量输入通道只支持读请求。

(3) Addr 读写Modbus 服务器的Modbus 地址:00001 至 0XXXX 为开关量输出线圈;10001 至 1XXXX  为开关量输入触点;30001 至 3XXXX 为模拟量输入通道;40001 至 4XXXX  为保持寄存器。

(4) Count 读写数据的个数:对于 Modbus 地址 0XXXX、1XXXX ,Count 按位的个数计算;对于 Modbus 地址 3XXXX、4XXXX ,Count 按字的个数计算;一个 MB_Client_MSG 指令最多读取或写入 120 个字或 1920 个位数据。

(5) DataPtr 数据指针:参数 DataPtr 是间接地址指针,指向 CPU 中与读/写请求相关的数据的 V 存储器地址。对于读请求,DataPtr 应指向用于存储从 Modbus 服务器读取的数据的第一个 CPU 存储单元。对于写请求,DataPtr 应指向要发送到 Modbus 服务器的数据的第一个 CPU 存储单元。

(6) Done 完成位:读写功能完成或者出现错误时,该位会自动置1。多条 MBC_MSG 指令执行时,可以使用该完成位激活下一条 MBC_MSG 指令的执行。

(7) Error:错误代码,只有在 Done 位为1时错误代码有效。

十二

西门子S7-200 Smart实现Modbus TCP客户端编程

1、 初始化标志位清零,如下图所示:

2、初始化给保持寄存器VW0、VW2、VW4、VW6清零,如下图所示:

3、初始化时给保持寄存器VW8、VW10、VW12、VW14分别赋值0、1、2、3,如下图所示:

4、每一分钟给保持寄存器VW8、VW10、VW12、VW14做加1操作,如下图所示:

5、判断保持寄存器VW8、VW10、VW12、VW14的值是否大于6000,如果大于6000,则进行清零操作,如下图所示:

6、Modbus TCP Client连接成功标志位M0.2上升沿将M1.2置位,开始读取Modbus TCP Server共计4路保持寄存器,如下图所示:

7、Modbus TCP Client连接成功标志位M0.2下降沿复位各读写标志位,停止Modbus读写操作,如下图所示:

8、Modbus TCP Client连接Modbus TCP Server初始化,如下图所示:

9、读取Modbus TCP服务器4路保持寄存器部分程序,功能码03,M1.2被置位后开始读取欧姆龙CP1H-E共计4路保持寄存器,成功读取后将读取到的4路保持寄存器数据转存至VW0~VW6里,置位M1.3去执行写多路保持寄存器程序段,如下图所示:

10、写入Modbus TCP服务器4路保持寄存器部分程序,功能码16, 现将保持寄存器VW8~VW14数据转存至发送缓冲区里,M1.3被置位后开始执行写入,成功写入后即会将西门子S7-200 Smart保持寄存器VW8~VW14的数据写入到欧姆龙CP1H-E保持寄存器D4~D7里,之后置位M1.2,循环执行读取保持寄存器命令,如下图所示:

11、为MB_Client指令库分配库存储器地址:

MB_Client指令库需要占用 300个字节 V 存储区用于库存储器地址分配。该库存储器分配地址不能与 MBC_MSG 指令参数DataPtr指向的 V 存储器地址重叠,也不能与其它程序使用的地址有重叠,库存储器地址分配过程如下图所示:

十三

西门子S7-200 Smart之Modbus TCP客户端程序的监视

西门子S7-200 Smart和以太网调试助手建立连接成功后,以太网调试助手即可观察到来自西门子S7-200 Smart发出的Modbus TCP命令,如下所示:

十四

西门子S7-200 Smart和欧姆龙CP1H-E实现Modbus TCP以太网通信测试

1、使用网线将西门子S7-200 Smart连接至无线路由器LAN口、使用网线将欧姆龙CP1H-E连接至无线路由器LAN口,完成硬件连接;

2、下载欧姆龙CP1H-E之Modbus TCP服务器通信程序;

3、下载西门子S7-200 Smart之Modbus TCP客户端通信程序;

4、监控欧姆龙CP1H-E程序中W0.01是否置位,Modbus TCP服务器是否初始化完成;

5、监控西门子S7-200 Smart程序,并置位M0.0,建立与欧姆龙CP1H-E的Modbus连接。

6、按照既定要求观察西门子S7-200 Smart和欧姆龙CP1H-E保持寄存器VW0~VW14、D0~D7,完成Modbus TCP以太网通信。

十五

总结

至此,西门子S7-200 Smart(Modbus TCP客户端)和欧姆龙CP1H-E(Modbus TCP服务器)完美实现了Modbus TCP以太网通信。

来源/中华工控网,作者:关普

(0)

相关推荐