基于Modbus-RTU通信协议的MCGS触摸屏与三菱变频器运行控制、状态监控及参数设置综合方案

张开发
2026/5/25 7:53:39 15 分钟阅读
基于Modbus-RTU通信协议的MCGS触摸屏与三菱变频器运行控制、状态监控及参数设置综合方案
MCGS与三菱变频器基于Modbus-RTU通信控制 使用标准modbus-rtu通信协议 通过MCGS触摸屏直接控制三菱变频器运行 通过MCGS触摸屏监控三菱变频器运行状态 通过MCGS触摸屏设置三菱变频器参数折腾工控这几年的兄弟们都知道以前控制个变频器那端子排线拉得跟盘丝洞似的不仅看着乱排查个故障还得拿着万用表满处戳。现在都讲究个“软连接”既然手里有MCGS触摸屏对面蹲着个三菱变频器那中间那两根线485 A/B如果不利用起来简直是暴殄天物。今天咱们不整那些虚头巴脑的理论直接上手聊聊怎么用Modbus-RTU把这两个串在一起让MCGS发号施令三菱乖乖干活。硬件与前期准备别让变频器“装聋作哑”首先三菱变频器比如FR-E700或者A800系列出厂是等着你接硬线的对串口通信通常是“爱答不理”的状态。所以第一步得把它的“嘴”撬开。最关键的参数是Pr.79这货是运行模式选择。想用通信控制必须把它设成3外部/通信组合模式或者直接0切换模式但上电后还得切。为了省事直接设3或者设成允许通信切换的模式。接下来是通信那一套得跟MCGS对上暗号Pr.117站号别搞太复杂设为1就行。Pr.118波特率MCGS里选多少这儿就得设多少比如96就是9600。Pr.119停止位/校验位建议设0或者1保持跟触摸屏一致。接线方面MCGS的串口一般是9针DB9把脚脚定义好A接AB接BGND接地有时候不接地也能跑但为了稳定还是接上吧。MCGS设备组态找个听话的“翻译官”在MCGS的设备窗口里别傻乎乎地去搜什么“三菱变频器专用驱动”直接上通用Modbus-RTU父设备。这个驱动最稳因为它只认数据不认牌子。添加好设备后双击进去设置基本参数。这里有个坑MCGS里的“本地串口”要选对COM口波特率这些刚才在变频器里设成啥这儿就填啥。核心玩法怎么让它转起来这里才是重头戏。三菱的Modbus地址映射跟标准Modbus有点微妙的区别它用的是“内存映射”的概念。1. 启动/停止控制我们要控制变频器运行实际上是在操作它的运行命令。在三菱变频器里这个寄存器地址通常是H2001对应Modbus地址 2001如果是4区保持寄存器MCGS里通常写 40001 偏移量具体看驱动说明通用ModbusRTU通常直接填对应地址。假设我们要让变频器正转运行看看数据包是怎么发的。MCGS与三菱变频器基于Modbus-RTU通信控制 使用标准modbus-rtu通信协议 通过MCGS触摸屏直接控制三菱变频器运行 通过MCGS触摸屏监控三菱变频器运行状态 通过MCGS触摸屏设置三菱变频器参数代码/数据流分析// 发送报文 (HEX) 01 06 07 D1 00 02 CRC_L CRC_H拆解一下01这是发给站号为1的变频器的刚才Pr.117设的就是1。06功能码Modbus里的“写单个寄存器”。07 D1这是寄存器地址。07D1转成十进制就是2001。这就是三菱定义的“运行命令”寄存器。00 02这是写入的数据。三菱的位操作有点意思0002(Hex) 代表二进制的0010对应正转运行位。如果你想让它反转可能需要写入0004停止就是0000。在MCGS里你可以在用户窗口里做个按钮变量关联一下点击的时候把“2”写入到地址2001里电机就转了。是不是比接继电器爽多了2. 频率设定光转不行还得知道跑多快。频率设定是在H2000这个寄存器里。注意这里有个小坑三菱通常以0.01Hz为单位。也就是说你想让它跑 50Hz你不能写 50你得写5000。代码/数据流分析// 假设我们要设置 25.50Hz // 计算数值25.50 * 100 2550 (十进制) - 0x09F6 (十六进制) // 发送报文 (HEX) 01 06 07 D0 09 F6 CRC_L CRC_H拆解一下07 D0寄存器地址。07D0十进制是2000即频率设定命令。09 F6数据内容。0x09F6转回十进制正好是 2550变频器收到后除以100就是 25.50Hz。在MCGS组态里做一个输入框用户输入“50.0”然后在策略脚本里或者变量关联里做一个简单的乘法处理Input * 100再丢给2000这个地址频率就上去了。3. 状态监控怎么知道它现在是不是真的在转有没有报警这得靠读。监控状态主要看H2100这个寄存器。代码/数据流分析// 读取状态请求 (HEX) 01 03 08 34 00 01 CRC_L CRC_H拆解一下03功能码读保持寄存器。08 34寄存器地址。0834十进制是2100。00 01读取1个寄存器。变频器会返回一串数据比如返回00 10假设。00 10(Hex) 0001 0000(Bin)。三菱手册里会告诉你每一位代表什么。比如第0位可能是运行中第2位可能是正反转第4位可能是故障。拿到这个数据在MCGS里做点位运算操作就能把状态灯点亮了。参数修改随心所欲有时候不想进变频器的小键盘去改参数想在触摸屏上直接改加速时间。比如修改加速时间Pr.7。三菱Modbus支持对Pr参数的读写通常地址映射是从H0000开始对应 Pr.1以此类推。Pr.7 对应的Modbus地址就是6因为从0开始数Pr.1是0Pr.7就是6。代码/数据流分析// 修改 Pr.7 加速时间为 5.0秒 (三菱通常用0.1s单位所以写50) // 寄存器地址Pr.7 - 偏移量6 - 地址 0006 (Hex 00 06) // 数据50 (Hex 00 32) 01 06 00 06 00 32 CRC_L CRC_H这样一发变频器的加速时间就直接改了重启都不用。总结一下这套玩法的核心就是那张“地址映射表”。MCGS只管发通用的Modbus指令三菱那边负责把指令翻译成它内部的寄存器操作。只要把H2000频率、H2001命令、H2100状态这几个核心点吃透剩下的就是MCGS画面怎么画好看的问题了。别把Modbus想得太复杂它就是个最老实的数据搬运工。

更多文章