三菱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
来源/中华工控网
往期精彩▼
【建议收藏】手机组态软件+三菱FX5U Modbus TCP以太网通信
满满的喜欢溢了出来,点在看