威纶通与三菱变频器通讯程序 ~ 可以通过触摸屏控制变频器正反转运行停止还能监视变频器的运行频率输出频率输出电压输出电流以及转速。 有做笔记详细内容见笔记。 EB8000、EB Pro软件均适用。最近在项目里搞定了威纶通触摸屏和三菱E700变频器的Modbus通讯顺手把核心逻辑整理成笔记。这玩意儿说难不难但寄存器地址和协议细节真能折腾死人别问我怎么知道的先上硬货——通讯参数配置部分 EBPro中的设备类型选择 Device MELSEC_FX_MODBUS BaudRate 9600 DataBit 8 StopBit 1 Parity None Timeout 1000这里最容易翻车的是校验位设置三菱默认是None而不是常见的Even。有次调试死活连不上最后发现是这个参数在搞鬼差点砸了触摸屏...控制逻辑部分用宏指令实现正反转切换-- 正转按钮按下时执行 if GetBit(LS_Bit_0) 1 then SetData(1, LS, 0x0002) -- 写入运行命令寄存器 SetData(50, LS, 0x0001) -- 设定频率50Hz end -- 反转同理 if GetBit(LS_Bit_1) 1 then SetData(2, LS, 0x0002) SetData(30, LS, 0x0001) end注意LS寄存器的地址偏移量这里0x0002对应Modbus的0002H地址。曾经因为地址偏移算错导致控制命令发到电流寄存器变频器直接报过流故障场面一度非常刺激威纶通与三菱变频器通讯程序 ~ 可以通过触摸屏控制变频器正反转运行停止还能监视变频器的运行频率输出频率输出电压输出电流以及转速。 有做笔记详细内容见笔记。 EB8000、EB Pro软件均适用。监视功能需要定时读取数据块// 每500ms读取一次状态 void OnTimer_500ms() { GetData(CurrentFreq, LS, 0x0003, 1); // 输出频率 GetData(OutputVolt, LS, 0x0004, 1); // 输出电压 GetData(OutputCurrent, LS, 0x0005, 1);// 输出电流 GetData(RotateSpeed, LS, 0x000C, 1); // 转速 }重点说下转速计算三菱E700的转速寄存器(000CH)存储的是十进制数值不需要像某些品牌那样做倍频处理。但要注意单位转换有的型号是0.1rpm单位具体得看手册版本。调试时必备的排错技巧用串口监听工具抓包确认数据帧结构检查变频器参数Pr.79操作模式必须设为5网络模式威纶通的LS寄存器对应Modbus的4x地址记得地址要1换算遇到通讯超时先查终端电阻RS485两端120Ω电阻没接会出灵异事件最后放个实用函数——频率限制保护function LimitFrequency(input) if input 60 then ShowMessage(超频警告) return 60 elseif input 5 then EnableStopButton() -- 低于5Hz自动切停止 return 0 else return input end end这个函数绑定在频率输入框的OnChange事件里防止手滑输错数值。实测能避免90%的操作事故特别是夜班工人迷糊的时候...完整工程文件已打包需要源码的老铁评论区吱声实际跑起来效果比想象中稳定连续72小时压力测试没掉过线。下次准备试试用脚本实现S曲线加减速那才是真正考验通讯稳定性的玩法。