您的当前位置:首页 > 百科 > 三菱q系列modbus tcp入门应用 正文

三菱q系列modbus tcp入门应用

时间:2026-10-17 04:35:06 来源:网络整理 编辑:百科

核心提示

三菱Q系列PLC跑Modbus TCP,比你想的简单,但坑也不少。我见过太多人卡在第一步——以为要写一堆复杂程序,其实只需一条指令。 先看硬件。Q系列里带内置以太网口的型号,比如Q03UDECPU,直

三菱Q系列PLC跑Modbus TCP,系列比你想的系列简单,但坑也不少。系列我见过太多人卡在第一步——以为要写一堆复杂程序,系列其实只需一条指令。系列

先看硬件。系列Q系列里带内置以太网口的系列型号,比如Q03UDECPU,系列直接插网线就能用。系列老型号如Q02CPU就得加块以太网模块,系列常见的系列是QJ71E71-100。别买错,系列带不带-100后缀,系列处理速度差不少。系列接线就普通网线,系列交换机都不用,PLC和上位机直连都行。

软件设置才是关键。打开GX Works2,双击以太网模块,在“打开设置”里新建一个连接。协议选TCP,本地端口随便设个5000,对方IP填上位机地址。这里有个细节——“通信协议”必须选“MC协议”,不是Modbus。三菱的Modbus TCP是用MC协议封装的,很多人在这里找半天“Modbus”选项,结果根本没有。选完MC协议,再在“帧类型”里选“4E帧”,这才是标准Modbus TCP格式。

程序侧就一条指令搞定:MBWR和MBRD。比如要读从站保持寄存器,写MBRD H0 D100 K10,意思是读站号0的10个字,存到D100开始的地方。但注意,这里的“站号0”对应的是远程设备的Unit ID,不是IP地址。IP地址在模块参数里已经绑定了,程序里只认站号。

实际调试中,我遇到最多的故障是超时。现象是MBRD指令的完成标志位一直不亮,错误代码报“7F01”。八成是对方设备没监听你设的端口,或者防火墙拦了。用Wireshark抓包最直观——发出去的TCP包有没有回ACK,一目了然。另一个隐形坑是字节序。三菱默认高字节在前,但很多第三方设备是低字节在前。比如读回来的数据,D100里存的是16进制数据,但高低字节反了。解决办法是加一条SWAP指令,或者干脆在通讯参数里勾选“字节交换”。

顺带提一句,Q系列做Modbus TCP从站也容易。只要在模块参数里把“通信协议”改为“MC协议”,然后写个接收中断程序,用MBRECV指令就能收上位机发来的请求。但说实话,三菱做从站不如做主站顺手,因为数据映射要手动处理。如果你只是把三菱PLC的数据给上位机读,我更建议用SLMP协议,那个更简单——但那是另一个话题了。

最后提醒一点,别用Q系列自带的时间片去轮询多个从站。MBRD指令是阻塞式的,一个没完成,下一个就发不出去。真要带多个从站,得用定时中断或者多CPU,或者干脆上Q系列的通讯协处理器。别问我怎么知道的——我当年用一台Q03UDE带5个温控器,程序里写了5条MBRD,结果扫描周期从5ms涨到200ms,差点把设备搞停机。

先写这些,够你跑通第一个Modbus TCP通讯了。真遇到问题,把错误码贴出来,比看十篇教程都管用。

上一篇:图片网站素材
下一篇:网站制作软件