找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 4898|回复: 12

三菱PLC实现modbus通讯方法

  [复制链接]
  • 打卡等级:常驻代表
  • 打卡总天数:34
  • 打卡月天数:6
  • 打卡总奖励:9027
  • 最近打卡:2025-12-17 23:15:51

2823

主题

541

回帖

2万

积分

管理员

积分
22569
发表于 2019-5-30 19:31:44 | 显示全部楼层 |阅读模式
前两天做了一个小的改造项目,需要使三菱Q系列PLC和一块LED显示屏进行数据通讯,LED显示屏经改造后支持RS232和RS485接口的MODBUS协议,PLC侧安装有一块型号为QJ71C24N-R2的通讯模块,查此模块资料可知道此模块提供两个RS232物理接口CH1的CH2,可进行基于串口的无协议通讯,唯独不能支持MODBUS协议。考虑到成本问题,不打算更换硬件,最后经过查询资料和验证后,最终实现MODBUS协议通讯。以下是大概方法,供各位朋友交流参考,不对之处请指正。

首先要了解下什么是无协议通讯和MODBUS协议通讯。根据度娘所说:

所谓无协议通讯就是说通信网络的两个或多个终端通过通信网络实现数据的传输,而不必遵循共同的规定或规则。

Modbus 协议是应用于电子控制器上的一种语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。

说简单点无协议通讯就相当于画图,想表达什么就画什么,基本上全世界都能看懂。而MODBUS协议就是中文,只有中国人能看懂。要想让一个不会中文的人和一个只懂中文的人交流,就只能让这个不懂汉字的人模仿汉字的写法,尽管他不认识这个字。所以咱要做的就是教会PLC按照MODBUS协议的格式来和下位机对话,

接下来看下MODBUS协议的格式内容,以MODBUS-RTU为例。
站地址:MODBUS网络中设备都有一个属于自己的站地址,用来区分是哪个设备来接收这个信息。

功能代码:MODBUS设备所支持的功能代码(需要查询设备手册),比如这次使用的MODBUS协议卡支持的功能码如下:
01 读线圈、
03 读取保持寄存器、
04 读输入寄存器、
05 写单个线圈、
06 写单个寄存器、
15 写多个线圈、
16 写多个寄存器。

数据地址:MODBUS设备对应的寄存器地址,查设备手册可知道。
CRC校验码:CRC16校验码占用1个字节。
PLC侧按照手册上接好线,打开模块设置,配置好CH2通道的参数,如图:
然后创建一个子程序,先把CH2 的错误处理程序写上,防止通讯错误,影响其他设备通讯,然后向指定地址写入数据,确定CH2通讯数据长度单位。具体程序如图所示:
上图只是做演示,具体使用地址要看项目中模块的配置数据,具体查询模块手册。

例如我要往画面编号 1 输入内容 ABCD在屏幕上显示出来,
先配置设备MODBUS参数,必须为RTU模式,从站地址24,字节顺序为1234
字节顺序具体看目标设备指定,
/*********************************************************/
18 从站地址 24
10 功能码 16 写多个寄存器地址
00 00 寄存器起始地址 0
00 02 寄存器个数 8 位(画面编号1对应寄存器地址为0,占用8个寄存器共16字节,超过16字节数据会被丢弃)
41 42 AB 的十六进制 ACSII 码
43 44 CD 的十六进制 ACSII 码
C1 53 CRC16 校验码
要从PLC发送内容,先确定数据存储区,按照前面所示的数据结构,来定义数据存储区数据。本例子中从D200开始,因为数据全部是按16进制传送,要发送数据必须转换为16进制后再写入存储区,PLC发送数据是按照先低八位后高八位的顺序,所以在定义数据发送顺序时必须遵守这个原则,如下面图中程序所示:
这里重点要说一下CRC校验指令应用,
这里这个N是8位数据个数,一个D地址是16位,一定要注意,
CRC指令在三菱FX-2N以上系列中被支持,但在三菱Q系列中,目前只有Q03UDV以上的CPU支持,往下的CPU只能通过梯形图编写CRC校验程序,这种例程在百度上能搜索到很多。
三菱Q系列数据发送使用的是G.OUTPUT指令。
写入控制数据下图为例程:
Un的数值要根据模块配置时起始XY地址确定清除错误状态
程序编写完成后,要使用串行模块线路跟踪工具进行发送数据测试,具体路径在工具-智能功能模块用工具-串行通信模块-线路跟踪
查看此区域发送的数据是不是想要发送的数据,数据发送触发完成之后点停止点开始跟踪再选择通道先选择模块
在实际应用中,可能需要对数据进行整理,以下是几个常用数据处理指令
WTOB指令:字节转换为字,BTOW指令:字转换为字节。SWAP指令:高低位互换。
具体参数编程手册。
工控课堂 www.gkket.com

0

主题

172

回帖

537

积分

中级会员

积分
537
发表于 2019-5-30 20:19:03 | 显示全部楼层
无回帖,不论坛,这才是人道。
工控课堂 www.gkket.com

0

主题

1451

回帖

4571

积分

金牌会员

积分
4571
发表于 2019-5-31 00:12:54 | 显示全部楼层
太生气了,无法HOLD啦 >_<......
工控课堂 www.gkket.com

0

主题

108

回帖

168

积分

新手上路

积分
168
发表于 2025-11-14 07:51:19 | 显示全部楼层
笑不活了,评论区比正文还精彩!
工控课堂 www.gkket.com

0

主题

112

回帖

175

积分

新手上路

积分
175
发表于 2025-11-14 12:54:18 | 显示全部楼层
画面感太强了,仿佛身临其境!
工控课堂 www.gkket.com

0

主题

119

回帖

281

积分

注册会员

积分
281
发表于 2025-11-14 17:05:14 | 显示全部楼层
哈哈哈哈笑不活,楼主这脑洞绝了!
工控课堂 www.gkket.com

0

主题

119

回帖

176

积分

新手上路

积分
176
发表于 2025-11-14 21:02:08 | 显示全部楼层
楼主太会说了,字字句句都在理
工控课堂 www.gkket.com

0

主题

73

回帖

123

积分

新手上路

积分
123
发表于 2025-11-16 00:42:47 | 显示全部楼层
浅蹲一个后续,楼主更新踢我一下
工控课堂 www.gkket.com

0

主题

102

回帖

168

积分

新手上路

积分
168
发表于 2025-11-18 11:35:36 | 显示全部楼层
谁懂啊!这内容我能循环看十遍
工控课堂 www.gkket.com

0

主题

82

回帖

125

积分

新手上路

积分
125
发表于 2025-11-18 11:48:52 | 显示全部楼层
同款经历!简直是世另我
工控课堂 www.gkket.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|手机版|免责声明|本站介绍|工控课堂 ( 沪ICP备20008691号-1 )

GMT+8, 2025-12-22 17:21 , Processed in 0.202852 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表