查看原文
其他

组态王和施耐德M218实现Modbus TCP以太网通信

guanyumou 工控论坛 2023-07-10


一、必备软件和硬件:

1、组态王6.55通用版组态软件

2、施耐德SoMachine V4.3编程软件

3、Modbus Poll调试软件

4、Modbus Slave调试软件

5、以太网调试助手

6、施耐德M218系列PLC

7、施耐德M218系列PLC编程用USB电缆

8、无线路由器

9、网线


二、通信实现目的:

1、组态王组态软件对施耐德M218系列PLC共计4路数字量输入%IX0.0~%IX0.3实现只读操作,通过Modbus之02功能码实现;

2、组态王组态软件对施耐德M218系列PLC共计4路数字量输出%QX0.0~%QX0.3实现读写操作,通过Modbus之01\15功能码实现;

3、组态王组态软件对施耐德M218系列PLC共计4路保持寄存器%MW0~%MW3实现只读操作,通过Modbus之03功能码实现;

4、组态王组态软件对施耐德M218系列PLC共计4路保持寄存器%MW4~%MW7实现读写操作,通过Modbus之03\16功能码实现。


三、通信连接说明:

1、组态王组态软件通过电脑无线网口连接至无线路由器;

2、施耐德M218本体自带以太网口通过网线连接至无线路由器LAN接口。


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

1、Modbus TCP服务器:施耐德M218

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

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

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

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


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

1、Modbus TCP客户端:组态王组态软件

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

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

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

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


六、施耐德M218硬件组态:

1、找到施耐德SoMachine V4.3编程软件,如下所示:

2、上图中,鼠标双击打开“SoMachine V4.3”,则会打开如下窗口:

3、在上图中,选择“新建项目—>空项目”,如下所示:

4、在上图中,将项目名称修改为“M218之Modbus TCP Server”,如下所示:

5、在上图中,修改好项目名称后,点击“创建项目”,将会出现如下窗口,如下所示:

6、在上图中,单击“打开配置”按钮,出现如下窗口,如下所示:

7、上图中,右侧控制器中选中M218树状目录,选中“TM218LDAE24DRHN”,如下所示:

8、将选中的“TM218LDAE24DRHN”设备拖入到右侧“设备树”区域,如下所示:

至此,施耐德M218硬件组态完成。


七、施耐德M218通信设置:


1、Ethernet通信口添加设备,如下所示:

2、上图中,在“Ethernet”上点击“添加设备”,将会出现如下窗口:

3、上图中,“行为”选中“添加设备”、“供应商”选择“Schneider Electric”、设备选择“Modbus TCP Slave Device”,如下所示:

4、上图中,点击“添加设备”按钮,然后点击“关闭”按钮回到主窗口,Ethernet设备业已添加完成,如下所示:

5、设置“Ethernet”端口通信参数,双击“Ethernet”,如下所示:

6、上图中,“接口名称”选择默认名称“ether_0”、“网络名称”选择默认名称“my_Device”、选中“固定IP地址”,将IP地址设置为192.168.1.180、子网掩码设置为255.255.255.0、网关地址设置为192.168.1.1,并将安全参数中的“SoMachine协议处于活动状态”和“Modbus服务器处于活动状态”两个选项勾选,如下所示:

7、设置“Modbus TCP Slave Device”参数,双击“Modbus TCP Slave Device”,如下所示:

8、上图中,将单元ID修改为1,其他默认,如下所示:

9、翻阅手册可知施耐德M218相关元件和Modbus寄存器地址对应关系如下表所示:

至此,M218之Ethernet通信口设置完成。


八、施耐德M218编程用变量定义:


(来源/中华工控网 点击图片查看大图)


其中:

MW0~MW3实际地址为%MW0~%MW3,支持03、06、16功能码,组态王欲读取之;

MW4~MW7实际地址为%MW4~%MW7,支持03、06、16功能码,组态王欲读写之;

定义了2个定时器变量;

定义了1个辅助标志位FirstMark。


九、施耐德M218程序编制:


前面已然说明,组态王组态软件对%MW0~%MW3进行只读操作,故而程序中编制一段程序,初始化时,依次对%MW0、%MW1、%MW2、%MW3赋值0、1、2、3,且程序中会实现每1分钟对%MW0~%MW3进行加1操作,当%MW0~%MW3当前值大于6000时,进行清零操作。


其中1分钟脉冲通过2个定时器变量配合加以实现。

对于%MW4~%MW7,组态王组态软件对其实现的是读\写操作,故而程序初始化时对%MW4~%MW7进行清零操作。


基于以上要求,编制的程序如下所示:


十、施耐德M218程序下载:


1、单击“编辑”下拉菜单中的“编辑”,如下所示:

2、编译成功,无有错误、无有警告,如下所示:

3、点击“在线”下拉菜单中的“登录”,如下所示:

将会出现如下窗口:

按上图提示,同时按下Alt和F键,出现如下窗口:

上图中点击“是”按钮,出现如下窗口:

上图中,点击“是”按钮,如下所示:

4、点击“在线”下拉菜单中的“多重下载”,如下所示:

将会出现如下对话窗口:

上图中,将“在线修改选项”选中“通常执行全下载”,如下所示:


上图中,点击“确定”按钮,出现如下对话窗口:

上图中,点击“是”按钮,开始执行多重下载,如下所示:

至此,施耐德M218程序下载完成。


十一、以太网调试助手和施耐德M218之Modbus TCP以太网通信链接:


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

2、将以太网调试助手参数设置如下:

3、上图中,点击“连接”按钮,如下所示:

表明以太网调试助手已经成功连接上施耐德M218系列PLC了!

此时:

以太网调试助手作为Modbus TCP以太网客户端

施耐德M218作为Modbus TCP以太网服务器


十二、以太网调试助手和施耐德M218之Modbus TCP以太网通信测试:


1、Modbus之01功能码测试,读取施耐德M218之%QX0.0~%QX0.7的状态:

以太网调试助手发送:20 14 00 00 00 06 01 01 00 00 00 08

施耐德M218返回:20 14 00 00 00 04 01 01 01 00

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

以太网调试助手发送与接收数据、施耐德M218图表监控如下图所示,则表明Modbus之01功能码测试已然完成:

(来源/中华工控网 点击图片查看大图)


2、Modbus之02功能码测试,读取施耐德M218之%IX0.0~%IX0.7的状态:

以太网调试助手发送:30 14 00 00 00 06 01 02 00 00 00 08

施耐德M218返回:30 14 00 00 00 04 01 02 01 00

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

以太网调试助手发送与接收数据、施耐德M218图表监控如下图所示,则表明Modbus之02功能码测试已然完成:

3、Modbus之03功能码测试,读取施耐德M218之%MW0~%MW3的状态:

以太网调试助手发送:99 14 00 00 00 06 01 03 00 00 00 04

施耐德M218返回:99 14 00 00 00 0B 01 03 08 00 05 00 06 00 07 00 08

表明此时%MW0、%MW1、%MW2、%MW3的值依次为5、6、7、8

以太网调试助手发送与接收数据、施耐德M218图表监控如下图所示,则表明Modbus之03功能码测试已然完成:

4、Modbus之06功能码测试,将施耐德M218之%MW4的值设置为9

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

施耐德M218返回:99 99 00 00 00 06 01 06 00 04 00 09

施耐德M218原样返回以太网调试助手发送的报文,表明%MW4设置成功

以太网调试助手发送与接收数据、施耐德M218图表监控如下图所示,则表明Modbus之06功能码测试已然完成:

5、Modbus之15功能码测试,将施耐德M218之%QX0.0~%QX0.3全部置位

以太网调试助手发送:12 34 00 00 00 08 01 0F 00 00 00 04 01 0F

施耐德M218返回:12 34 00 00 00 06 01 0F 00 00 00 04

施耐德M218返回的报文表明此时%QX0.0~%QX0.3置位成功

以太网调试助手发送与接收数据、施耐德M218图表监控如下图所示,则表明Modbus之15功能码测试已然完成:

6、Modbus之16功能码测试,将施耐德M218之%MW4~%MW7的值依次设置为4、5、6、7

以太网调试助手发送:56 78 00 00 00 0F 01 10 00 04 00 04 08 00 04 00 05 00 06 00 07

施耐德M218返回:56 78 00 00 00 06 01 10 00 04 00 04

施耐德M218返回报文表明%MW4~%MW7设置成功

以太网调试助手发送与接收数据、施耐德M218图表监控如下图所示,则表明Modbus之16功能码测试已然完成:

至此,我们就完成了施耐德M218作为Modbus TCP服务器程序的测试。


十三、组态王组态软件Modbus TCP以太网客户端测试工程的建立:


1、找到组态王组态软件快捷方式,如下所示:

2、上图中,双击组态王组态软件快捷方式,即会打开组态王组态软件工程管理器,如下所示:

3、在上图中,点击组态王组态软件工程管理器上的“新建按钮”,即可打开新建工程向导窗口,如下所示:

4、上图中,在新建工程向导窗口上单击“下一步”按钮,将会出现选择工程保存路径对话窗口,如下所示:

5、上图中,点击“浏览”按钮,将会出现选择保持工程路径具体窗口,如下所示:

6、上图中,我们选择工程保存路径为D盘根目录,如下所示:

7、上图中,选择好工程路径后,点击“打开”按钮,将会返回到新建工程向导对话窗口,如下所示:

8、上图中,继续点击“下一步”按钮,即可进入到输入工程名称和工程描述对话窗口,如下图所示:

9、上图中,工程名称输入“Modbus测试”、工程描述输入“Modbus测试”,如下所示:

10、上图中,点击“完成”按钮,将会出现如下对话窗口,如下所示:

11、上图中,点击“是”按钮,即可将新建“Modbus测试”工程设置为当前工程,如下所示:

12、点击工程管理器上的“开发”按钮,即可进入到工程组态环境,如下所示:

至此,组态王新建工程完毕,下面讲述如何新建IO设备


十四、组态王组态软件Modbus TCP以太网客户端测试工程IO设备的建立:


1、打开工程组态环境界面,如下所示:

2、上图中,左侧树状目录中,选中“设备”目录,然后右侧即可出现新建设备,如下所示:

3、上图中,双击“新建”快捷方式,将会打开设备配置向导对话窗口,如下所示:

4、上图中,我们选择“PLC-莫迪康-Modbus TCP-TCP”这个驱动,如下所示:

5、上图中,选择好驱动后,点击“下一步”按钮,将会出现输入设备名称对话窗口,如下所示:

6、上图中,输入设备名称为“Modbus测试”,如下所示:

7、上图中,输入设备名称后,点击“下一步”按钮,将会出现选择串口号对话窗口,如下所示:

8、上图中,串口号选择COM1,如下所示:

9、上图中,选择串口号后,点击“下一步”按钮,将会出现设置设备地址对话窗口,如下所示:

10、设备地址输入“192.168.1.180:502 1/50”,如下所示:

11、上图中,输入的192.168.1.180即为施耐德M218的IP地址、502即为施耐德M218的端口号、1即为施耐德M218的单元ID、50为网络超时时间,输入完毕后,点击“下一步”按钮,将会出现网络参数设置对话窗口,如下所示:

12、上图中,将“使用动态优化”打勾取掉,如下所示:

13、上图中,网络参数设置完成后,点击“下一步”按钮,将会出现设备信息确认对话窗口,如下所示:

14、上图中,点击“完成”按钮,新建设备完成,返回组态环境,即可看到新建成功设备:


十五、组态王组态软件Modbus TCP以太网客户端测试工程变量的建立:


我们以监控施耐德M218的数字量输入%IX0.0~%IX0.3、数字量输出%QX0.0~%QX0.3、保持寄存器%MW0~%MW7为例。施耐德M218相关元件和Modbus寄存器地址对应关系我们由前面的表格可知。


1、打开工程浏览器,如下窗口所示:

2、上图中,选择左侧树状目录中的数据库-数据词典,如下所示:

3、建立施耐德M218数字量输入类型变量,上图中,双击右侧中的“新建”,将会打开新建变量对话窗口,如下所示:

4、上图中,变量名输入I00、变量类型选择I/O离散、连接设备选择Modbus测试、采集频率输入100毫秒、寄存器选择1区并输入100001、数据类型选择Bit、读写属性选择只读,如下所示:

5、上图中,各个参数输入完毕,点击“确定”按钮,返回到工程浏览器窗口,I00(对应施耐德数字量输入%IX0.0)变量建立完毕,如下所示:

6、同样的方法,再建立I01、I02、I03(分别对应施耐德M218数字量输入%IX0.1、%IX0.2、%IX0.3),如下所示:

7、建立施耐德M218数字量输出类型的变量,双击“新建”,打开建立变量对话窗口,如下所示:

8、上图中,变量名输入Q00、变量类型选择I/O离散、连接设备选择Modbus测试、采集频率输入100毫秒、寄存器选择0区并输入000001、数据类型选择Bit、读写属性选择读写,如下所示:

9、上图中,各个参数输入完毕,点击“确定”按钮,返回到工程浏览器窗口,Q00(对应施耐德M218数字量输出%QX0.0)变量建立完毕,如下所示:

10、同样的方法,再建立Q01、Q02、Q03(分别对应施耐德M218数字量输出%QX0.1、%QX0.2、%QX0.3),如下所示:

11、建立施耐德M218只读类型保持寄存器变量,双击“新建”,打开建立变量对话窗口,如下所示:

12、上图中,变量名输入MW0、变量类型选择I/O整数、连接设备选择Modbus测试、采集频率输入100毫秒、寄存器选择4区并输入400001、数据类型选择USHORT、读写属性选择只读,如下所示:

13、上图中,各个参数输入完毕,点击“确定”按钮,返回到工程浏览器窗口,MW0(对应施耐德M218保持寄存器%MW0)变量建立完毕,如下所示:

14、同样的方法,再建立MW1、MW2、MW3(分别对应施耐德保持寄存器%MW1、%MW2、%MW3),如下所示:

15、建立施耐德M218读写类型保持寄存器变量,双击“新建”,打开建立变量对话窗口,如下所示:

16、上图中,变量名输入MW4、变量类型选择I/O整数、连接设备选择Modbus测试、采集频率输入100毫秒、寄存器选择4区并输入400005、数据类型选择USHORT、读写属性选择读写,如下所示:

17、上图中,各个参数输入完毕,点击“确定”按钮,返回到工程浏览器窗口,MW4(对应施耐德M218保持寄存器%MW4)变量建立完毕,如下所示:

18、同样的方法,再建立MW5、MW6、MW7(分别对应施耐德保持寄存器%MW5、%MW6、%MW7),如下所示:

19、强制多线圈变量的建立,因施耐德M218系列PLC经过刷新固件后,对于数字量输出置位和复位操作只能通过15功能码来实现,所以需要建立此类变量,双击“新建”,打开建立变量对话窗口,如下所示:

20、上图中,变量名输入WQ00、变量类型选择I/O字符串、连接设备选择Modbus测试、采集频率输入0毫秒、寄存器选择FMC区并输入FMC1、数据类型选择String、读写属性选择只写,如下所示:

21、上图中,各个参数输入完毕,点击“确定”按钮,返回到工程浏览器窗口,WQ00(对该变量赋值1或者0即可对施耐德M218数字量输出%QX0.0进行置位或者复位)变量建立完毕,如下所示:

22、同样的方法,再建立WQ01、WQ02、WQ03,至此,所有监控变量建立完毕,如下所示:


十六、组态王组态软件Modbus TCP以太网客户端测试工程监控画面的建立:


1、打开工程浏览器窗口,如下所示:

2、上图中,选择左侧树状目录中的“画面”,如下所示:

3、上图中,右侧选择双击“新建”,即可打开新建画面对话窗口,如下所示:

4、上图中,画面名称输入“Modbus测试”,其他参数默认,如下所示:

5、上图中,输入各个参数之后,单击“确定”按钮,新建画面已然完成,如下所示:

6、施耐德M218数字量输入%IX0.0~%IX0.3的监控,工具箱中选择打开图库,如下所示:

7、上图中,选择“指示灯”,如下所示:

8、上图中,选中第一个指示灯图,双击拖入到组态画面中,如下所示:

9、上图中,双击指示灯,打开指示灯设置向导,如下所示:

10、上图中变量名输入I00(对应施耐德M218数字量输入%IX0.0),如下所示:

11、上图中,点击“确定”按钮,完成变量I00监视组态,并再使用工具箱中文本工具对其加以注释,如下所示:

12、同样的方法,建立施耐德M218数字量输入%IX0.1~%IX0.3的监控,如下所示:

13、按上述方法,再建立施耐德M218数字量输出%QX0.0的监控,如下所示:

14、工具箱中选择控件,在画面中绘出一个合适大小的按钮,如下所示:

15、上图中,双击新建的按钮,打开按钮动画连接对话窗口,如下所示:

16、上图中,勾选中命令语言连接中的“按下时”,打开命令语言对话窗口,如下所示:

17、上图中,写入脚本程序“\\本站点\WQ00="1";”,如下所示:

18、上图中,脚本语言填写完成后,点击“确定”按钮,按钮按下时脚本程序设置完毕,回到组态界面,并将按钮文本修改为“置位”,如下所示:

19、同样的方法,再做一个复位按钮,其按下时的脚本程序为“\\本站点\WQ00="0";”,如下所示:

20、同样的方法,再建立施耐德M218数字量输出%QX0.1、%QX0.2、%QX0.3的监控,如下所示:

21、施耐德M218只读类型保持寄存器变量的建立,选择工具箱中的文本,文本名输入#####,如

下所示:

22、上图中,双击名为“#####”的文本控件,将会打开动画连接窗口,如下所示:

23、上图中,勾选中值输出中的模拟量输出,将会打开模拟量输出连接窗口,如下所示:

24、上图中,表达式输入变量MW0、整数位数选择0、小数位数选择0、显示格式勾选十进制、对齐方式选择居左对齐,如下所示:

25、上图中,输入各参数后,点击“确定”按钮回到动画连接窗口,再次点击“确定”按钮回到组态画面,施耐德M218只读类型保持寄存器%MW0监视建立完毕,如下所示:

26、同样的方法,建立施耐德M218只读类型保持寄存器%MW1、%MW2、%MW3,如下所示:

27、施耐德M218读写类型保持寄存器的监控,选择工具箱中的文本,并输入*****,如下所示:

28、上图中,双击名为“*****”的文本,打开该文本的动画连接对话窗口,如下所示:

29、上图中,首先勾选值输出中的模拟量输出,如下所示:

30、上图中,表达式输入变量MW4、整数位数选择0、小数位数选择0、显示格式勾选十进制、对齐方式选择居左对齐,如下所示:

31、上图中,点击“确定”按钮回到动画连接窗口,如下所示:

32、上图中,勾选中值输入中的模拟量输入,将会打开模拟量输入连接对话窗口,如下所示:

33、上图中,变量名输入MW4、最大值输入65535、最小值输入0,其他默认,如下所示:

34、上图中,点击“确定”按钮回到动画连接窗口,如下所示:

35、上图中,点击“确定”按钮回到组态界面,施耐德读写类型保持寄存器%MW4组态完毕,如下所示:

36、同样的方法,建立施耐德读写类型保持寄存器%MW5、%MW6、%MW7,至此,画面组态完毕,如下所示:


十七、组态王组态软件Modbus TCP以太网客户端测试工程测试运行准备工作:


1、打开工程浏览器窗口,如下所示:

2、上图中,单机“运行”按钮,打开运行系统设置对话窗口,如下所示:

3、上图中,单击选择“主画面配置”选项卡,如下所示:

4、上图中,选中建立的唯一组态画面“Modbus测试”,如下所示:

5、上图中,点击“确定”按钮,运行系统设置完毕,回到工程浏览器窗口,如下所示:


十八、组态王组态软件Modbus TCP以太网客户端测试工程和Modbus Slave调试助手通信测试:


1、Modbus Slave调试助手标签文件的建立,如下所示:

2、建立链接,参数设置如下所示:

3、上图中点击“确定”按钮,等待组态王的连接,如下所示:

4、上图中,并可打开报文监控,如下所示:

5、组态王组态软件测试工程中需要把设备IP地址暂时修改为192.168.1.106,如下所示:

6、组态王工程浏览器对话窗口点击VIEW进入到运行环境,如下所示:

7、此时Modbus Slave调试助手亦可监控到收发报文,通信正常,如下所示:

8、在组态监控界面中对施耐德%QX0.0~%QX0.3全部进行复位、%MW4~MW7依次赋值4~7,监控画面如下所示:

9、对应的Modbus Slave调试助手通信界面如下所示,至此组态王测试工程测试完毕:


十九、组态王组态软件Modbus TCP客户端和施耐德M218之Modbus TCP服务器通信测试:


1、施耐德M218上电运行,并打开编程软件监控,如下所示:

2、将组态王通信测试工程设备IP地址再次修改为施耐德M218的IP地址192.168.1.180,如下所示:

3、运行组态王,运行界面如下所示:

4、控制施耐德M218数字量输出,在组态界面上将4路数字量输出全部置位,如下所示:

5、相应的,监控施耐德M218编程软件,4路数字量输出置位成功,如下所示:

6、组态界面上对4路保持寄存器%MW4~%MW7依次赋值14、15、16、17,如下所示:

7、施耐德M218编程软件监控如下,4路保持寄存器设置成功,如下所示:


二十、总结:


至此,组态王(Modbus TCP客户端)和施耐德M218(Modbus TCP服务器)完美实现了Modbus TCP以太网通信。


PS:作者创作不易,论坛招稿不易,小编上传150+图片不易,喜欢请关注工控论坛公众号,学习工控干货!如有任何疑问,欢迎私信小编哦


来源/中华工控网


往期精彩▼

工控原创投稿征集

【有奖征集活动】工控人在旅途!

【分享】谈PLC与PLC通讯

先进自动化提升设备竞争力,智能制造主题会议“燃爆”鹏城

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

潜心研究单片机Modbus TCP以太网通信

【建议收藏】手机组态软件+三菱FX5U Modbus TCP以太网通信

LOGO!和MCGS通过MODBUS TCP通讯,已完成测试通过!

有奖体验丨Fluke新神器 2500V绝缘表,绝缘测试有多少人掌握了?!

满满的喜欢溢了出来,点在看

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存