组态王和施耐德M218实现Modbus TCP以太网通信
一、必备软件和硬件:
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+图片不易,喜欢请关注工控论坛公众号,学习工控干货!如有任何疑问,欢迎私信小编哦
来源/中华工控网
往期精彩▼
三菱FX5U和西门子200 Smart实现Modbus TCP以太网通信
【建议收藏】手机组态软件+三菱FX5U Modbus TCP以太网通信
LOGO!和MCGS通过MODBUS TCP通讯,已完成测试通过!
有奖体验丨Fluke新神器 2500V绝缘表,绝缘测试有多少人掌握了?!
满满的喜欢溢了出来,点在看