​三菱FX5U和西门子200 Smart实现Modbus TCP以太网通信

原标题:​三菱FX5U和西门子200 Smart实现Modbus TCP以太网通信

一、必备软件和硬件:

1、三菱GX Works3编程软件

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

3、Modbus Poll调试软件

4、Modbus Slave调试软件

5、以太网调试助手

6、三菱FX5U系列PLC

7、西门子200 Smart系列PLC

8、无线路由器

9、网线

二、通信实现目的:

1、三菱FX5U读取西门子200 Smart数字量输入I0.0~I0.7并映射到自己的数字量输出Y0~Y7上,使用Modbus之02功能码实现;

2、三菱FX5U使用自己的数字量输入X0~X7控制西门子200 Smart数字量输出Q0.0~Q0.7,使用Modbus之15功能码实现;

3、三菱FX5U读取西门子200 Smart保持寄存器VW0~VW6并保存到自己的保持寄存器D0~D3里,使用Modbus之03功能码实现;

4、三菱FX5U使用自己的保持寄存器D4~D7控制西门子200 Smart保持寄存器VW8~VW14,使用Modbus之16功能码实现。

三、通信连接说明:

1、三菱FX5U本体自带以太网口通过网线连接至无线路由器LAN接口;

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

四、Modbus TCP服务器通信参数:

1、Modbus TCP服务器:西门子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

五、Modbus TCP客户端通信参数:

1、Modbus TCP客户端:三菱FX5U

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

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

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

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

六、西门子200 Smart通信参数设置:

1、西门子200 Smart通信参数设置如下所示:

2、西门子200 Smart设备编号和Modbus寄存器编号、地址对应表如下所示:

七、西门子200 Smart实现Modbus TCP服务器相关指令:

1、MBS_Connect指令:

MBS_Connect指令各个参数定义如下所示:

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

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

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

(4)、ConnID: TCP 连接标识;

(5)、IPaddr1~IPaddr4: Modbus TCP 客户端的IP地址,IPaddr1 是 IP 地址的最高有效字节,IPaddr4 是 IP 地址的最低有效字节。如果不指定客户端IP地址,则可以设置为0.0.0.0;

(6)、LocPort: 本地设备上端口号;

(7)、MaxHold: 用于设置 Modbus 地址 4xxxx 或 4yyyyy 可访问的 V 存储器中的字保持寄存器数;

(8)、HoldStart: 间接地址指针,指向CPU 中 V 存储器中保持寄存器的起始地址;

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

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

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

(12)、Status:如果指令置位“Error”输出,Status输出会显示错误代码。

2、MBS_Slave指令:

MBS_Slave指令各个参数定义如下所示:

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

(2)、Done:当 MB_Server指令响应Modbus请求时,Done 完成位在当前扫描周期被设置为 1;如果未处理任何请求,Done完成位为0;

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

八、西门子200 Smart实现Modbus TCP服务器编程:

调用MB_Server0指令库编制的程序如下所示:

九、以太网调试助手和西门子200 Smart通信连接:

1、下载程序,并打开程序状态监控、图标状态监控,如下所示:

表明暂未有Modbus TCP客户端去连接。

2、使用以太网调试助手连接西门子200 Smart:

打开以太网调试助手,如下所示:

协议类型选择“TCP Client”、服务器IP地址设置为192.168.1.150、服务器端口号设置为502,点击连接,如下所示:

表明此时以太网调试助手已经成功连接到西门子200 Smart。此时再去监控西门子200 Smart程序,如下所示:

表明已经成功连接。

十、使用以太网调试助手测试西门子200 Smart之Modbus TCP服务器程序:

1、Modbus之01功能码测试,读取西门子200 Smart之Q0.0~Q0.7状态:

以太网调试助手发送:12 34 00 00 00 06 01 01 00 00 00 08

西门子200 Smart返回:12 34 00 00 00 04 01 01 01 00

返回数据为00,表明此时Q0.0~Q0.7状态全为0

以太网调试收发数据、西门子200 Smart图表监控如下所示,Modbus之01功能码测试完成:

2、Modbus之02功能码测试,读取西门子200 Smart之I0.0~I0.7状态:

以太网调试助手发送:22 55 00 00 00 06 01 02 00 00 00 08

西门子200 Smart返回:22 55 00 00 00 04 01 02 01 00

返回数据为00,表明此时I0.0~I0.7状态全为0

以太网调试收发数据、西门子200 Smart图表监控如下所示,Modbus之02功能码测试完成:

3、Modbus之03功能码测试,读取西门子200 Smart之VW0~VW6状态:

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

西门子200 Smart返回:33 88 00 00 00 0B 01 03 08 00 3C 00 3D 00 3E 00 3F

返回数据为依次为00 3A 00 3B 00 3C 00 3D,表明VW0、VW2、VW4、VW6的值依次为16进制003C、003D、003E、003F

以太网调试收发数据、西门子200 Smart图表监控如下所示,Modbus之03功能码测试完成:

4、Modbus之04功能码测试,读取西门子200 Smart之AIW0状态:

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

西门子200 Smart返回:44 22 00 00 00 05 01 04 02 00 00

返回数据为依次为00 00,表明AIW0为16进制0000

以太网调试收发数据、西门子200 Smart图表监控如下所示,Modbus之04功能码测试完成:

5、Modbus之05功能码测试,将西门子200 Smart之Q0.0置位

以太网调试助手发送:87 65 00 00 00 06 01 05 00 00 FF 00

西门子200 Smart返回:87 65 00 00 00 06 01 05 00 00 FF 00

西门子200 Smart原样返回,Q0.0置位成功

以太网调试收发数据、西门子200 Smart图表监控如下所示,Modbus之05功能码测试完成:

6、Modbus之06功能码测试,将西门子200 Smart之VW8数据设置为8

以太网调试助手发送:66 23 00 00 00 06 01 06 00 04 00 08

西门子200 Smart返回:66 23 00 00 00 06 01 06 00 04 00 08

西门子200 Smart原样返回,VW8数据设置成功

以太网调试收发数据、西门子200 Smart图表监控如下所示,Modbus之06功能码测试完成:

7、Modbus之15功能码测试,将西门子200 Smart之Q0.0~Q0.7全部置位

以太网调试助手发送:11 11 00 00 00 08 01 0F 00 00 00 08 01 FF

西门子200 Smart返回:11 11 00 00 00 06 01 0F 00 00 00 08

西门子200 Smart返回数据表明Q0.0~Q0.7置位操作设置成功

以太网调试收发数据、西门子200 Smart图表监控如下所示,Modbus之15功能码测试完成:

8、Modbus之16功能码测试,将西门子200 Smart之VW8~VW14依次设置为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

西门子200 Smart返回:EE EE 00 00 00 06 01 10 00 04 00 04

西门子200 Smart返回数据表明VW8~VW14数据设置成功

以太网调试收发数据、西门子200 Smart图表监控如下所示,Modbus之16功能码测试完成:

9、测试总结:

以上Modbus共计8个功能码测试通过,亦表明西门子200 Smart之Modbus TCP服务器程序正确无误。此时可以断开以太网调试助手和西门子200 Smart的通信连接。

十一、三菱FX5U通信参数设置:

1、以太网端口自接点设置,需要设置IP地址、子网掩码、默认网关、通信数据代码等诸多选型,如下所示:

2、对象设备连接配置设置,拖入一个Active连接设备,通信手段选择“通信协议”、可编程控制的IP地址设置为192.168.1.140、可编程控制器端口号设置为502;传感器设备IP地址暂时设置为192.168.1.106(此为电脑IP地址,方便测试时使用以太网调试助手测试三菱FX5U程序,待测试OK后再修改为西门子200 Smart的IP地址)、传感器设备端口号设置为502,如下所示:

3、三菱FX5U以太网端口通信协议支持功能数据包建立:

协议号1,功能码为02,用来读取Modbus TCP服务器多路输入

协议号2,功能码为15,用来写入Modbus TCP服务器多路线圈

协议号3,功能码为03,用来读取Modbus TCP服务器多路保持寄存器

协议号4,功能码为16,用来写入Modbus TCP服务器多路保持寄存器

(1)、协议号1详细设置如下所示:

发送,占用寄存器D1000~D1003,如下所示:

正确返回,占用寄存器D1007~D1010,如下所示:

错误返回,占用寄存器D1004~D1006,如下所示:

(2)、协议号2详细设置如下所示:

发送,占用寄存器D1107~D1112,如下所示:

正确返回,占用寄存器D1100~D1103,如下所示:

错误返回,占用寄存器D1104~D1106,如下所示:

(3)、协议号3详细设置如下所示:

发送,占用寄存器D1200~D1203,如下所示:

正确返回,占用寄存器D1207~D1213,如下所示:

错误返回,占用寄存器D1204~D1206,如下所示:

(4)、协议号4详细设置如下所示:

发送,占用寄存器D1307~D1315,如下所示:

正确返回,占用寄存器D1300~D1303,如下所示:

错误返回,占用寄存器D1304~D1306,如下所示:

十二、三菱FX5U实现Modbus TCP客户端相关指令:

1、SP.SOCOPEN指令:

指令格式如下所示

指令参数说明如下所示

其中操作数S2含义如下所示

编程举例如下所示:

2、SP.SOCCLOSE指令:

指令格式如下所示:

指令参数说明如下所示

其中操作数S2的含义如下所示

编程举例如下所示:

3、SP.ECPRTCL指令:

指令格式如下所示

指令参数说明如下所示

其中操作数S3的含义如下所示

十三、三菱FX5U实现Modbus TCP客户端编程:

1、初始化部分程序,D0~D3初始化清零、D4~D7初始化分别赋值0~3、每1分钟给D4~D7做加1操作、当D4~D7分别大于6000时清零,如下所示:

2、和Modbus TCP服务器建立连接部分程序,当Modbus TCP服务器准备就绪时,置位M100即可和Modbus TCP服务器建立连接,程序随即置位M0,即可开始执行SP.ECPRTCL指令,如下所示:

3、和Modbus TCP服务器断开连接部分程序,当Modbus TCP服务器断开连接或者置位M104时,即可执行断开和Modbus TCP服务器连接的操作,程序随即复位M0~M3,终止执行SP.ECPRTCL指令,如下所示:

4、读取Modbus TPC服务器8路输入部分程序,功能码02,对应协议号1,M0置位后开始执行该段程序,读取的Modbus TCP服务器8路输入映射到三菱FX5U的8路数字量输出Y0~Y7里,该段程序中的SP.ECPRTCL指令执行完成之后复位M0、置位M1,紧接着去执行下一个SP.ECPRTCL指令,如下所示:

5、写入Modbus TCP服务器8路线圈部分程序,功能码15,对应协议号2,M1置位后开始执行该段程序,使用三菱FX5U的X0~X7去控制Modbus TCP服务器8路线圈,该段程序中的SP.ECPRTCL指令执行完成之后复位M1、置位M2,紧接着去执行下一个SP.ECPRTCL指令,如下所示:

6、读取Modbus TCP服务器4路保持寄存器部分程序,功能码03,对应协议号3,M2置位后开始执行该段程序,读取Modbus TCP服务器4路保持寄存器后转存到三菱FX5U的D0~D3寄存器中,该段程序中的SP.ECPRTCL指令执行完成之后复位M2、置位M3,紧接着去执行下一个SP.ECPRTCL指令,如下所示:

7、写入Modbus TCP服务器4路保持寄存器部分程序,功能码16,对应协议号4,M3置位后开始执行该段程序,使用三菱FX5U的D4~D7去控制Modbus TCP服务器4路保持寄存器,该段程序中的SP.ECPRTCL指令执行完成之后复位M3、置位M0,紧接着又去执行第一个SP.ECPRTCL指令,如下所示:

十四、三菱FX5U和以太网调试助手通信连接:

1、以太网调试助手做以太网服务器的设置

打开以太网调试助手,如下所示:

协议类型选择TCP Server、本地IP地址按电脑实际IP地址设置为192.168.1.106、本地端口号设置为502,点击开始监听,如下所示:

2、下载三菱FX5U以太网口通信协议支持功能数据包

3、下载三菱FX5U程序

4、监视三菱FX5U程序,如下所示

建立连接程序段;断开连接程序段:

以上可以看出连接1开放结束信号SD10680.0、连接1开发请求信号SD10681.0均为0,符合建立和Modbus TCP服务器连接条件,此时可置位M100建立和以太网调试助手的连接,如下所示:

5、以太网调试助手连接建立,如下所示:

十五、三菱FX5U之Modbus TCP客户端程序的监视:

三菱FX5U和以太网调试助手建立连接成功后,以太网调试助手即可观察到来自三菱FX5U发出的Modbus TCP命令,如下所示:

十六、三菱FX5U和西门子200 Smart通信测试步骤:

1、使用网线将西门子200 Smart连接至无线路由器LAN口、使用网线将三菱FX5U连接至无线路由器LAN口,完成硬件连接,如下所示:

2、下载西门子200 Smart之Modbus TCP服务器程序,并打开监控,如下所示:

3、将三菱对象设备连接配置设置中连接设备的IP地址修改为西门子200 Smart的IP地址,如下所示:

4、重新下载三菱FX5U之Modbus TCP客户端程序,并打开监控,如下所示:

5、在三菱编程软件中置位M100,即可建立三菱FX5U和西门子200 Smart的TCP连接,连接建立成功后,三菱FX5U随即会发送有关02、15、03、16功能码命令,如下所示:

6、Modbus之02功能码的测试,系统实现功能是西门子200 Smart的I0.0~I0.7控制三菱FX5U的Y0~Y7,在西门子编程软件中强制I0.0为1,同时观察三菱编程软件中Y0的状态,如下所示:

7、Modbus之15功能码的测试,系统实现功能是三菱FX5U的X0~X7控制西门子200 Smart的Q0.0~Q0.7,在三菱编程软件中强制X1为1,同时观察西门子编程软件中Q0.1的状态,如下所示:

8、Modbus之03功能码的测试,系统实现功能是三菱FX5U读取西门子200 Smart的VW0`VW6保存到自己的D0~D3里,监视西门子编程软件中VW0~VW6的值,并监视三菱编程软件中D0~D3的值,如下所示:

9、Modbus之16功能码的测试,系统实现功能是三菱FX5U的D4~D7去控制西门子200 Smart的VW8~VW14,监视三菱编程软件中D4~D7的值,并监视西门子编程软件VW8~VW14的值,如下所示:

十七、总结:

至此,三菱FX5U(Modbus TCP客户端)和西门子200 Smart(Modbus TCP服务器)完美实现了Modbus TCP以太网通信。

作者简介:

guanyumou:关普,中华工控网串口通信板块版主。就职于西安棋影工作室,专注各种组态软件、触摸屏、PLC、单片机、变频器、伺服控制器、智能仪表等Modbus TCP以太网通信、Modbus RTU串口通信、Modbus ASCII串口通信和其他协议通信等!联系方式QQ149034219、微信guanyumou

来源/中华工控网

满满的喜欢溢了出来,点在看返回搜狐,查看更多

责任编辑:

声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。
阅读 ()
免费获取
今日搜狐热点
今日推荐