三菱PLC建立Modbus服务器,核心是把PLC配置成Modbus从站:TCP场景监听502端口,RTU场景设定站号与串口参数,再把PLC软元件映射成线圈和寄存器,最后用调试工具按功能码逐项验证。 这件事在FX5U、iQ-R上多数能靠GX Works3参数完成,老款FX3U、Q系列则要先确认原生支持能力,别一上来就写程序。
先分清服务器角色:三菱PLC做Modbus从站不是“写段程序”那么简单
Modbus里的“服务器”就是常说的从站,它不主动发请求,只等客户端来读或写,PLC做服务器时,客户端可以是上位机、触摸屏、网关,也可以是另一台PLC。
这里最容易混的是TCP和RTU,TCP走以太网,靠IP和端口找设备;RTU走RS-485,靠站号和波特率找设备,业内专家指出,Modbus服务器调试应先确认协议角色和地址模型,再谈程序逻辑,否则很容易把“主站轮询”和“从站响应”配反。
三菱PLC Modbus RTU从站和TCP服务器有什么区别?
| 对比项 | Modbus TCP服务器 | Modbus RTU从站 |
|---|---|---|
| 物理层 | 以太网 | RS-485双绞线 |
| 寻址方式 | IP地址+端口502 | 站号1-247 |
| 典型三菱硬件 | FX5U内置以太网、iQ-R以太网模块 | FX5U串口、FX3U加485ADP、Q系列串口模块 |
| 配置入口 | GX Works3以太网参数、Modbus/TCP设置 | GX Works3串口参数、Modbus RTU设置 |
| 适用场景 | 上位机、SCADA、MES、跨设备联网 | 仪表、变频器、老设备、短距离现场总线 |
TCP适合布线方便、需要多客户端访问的场合,RTU适合现场已有485总线、点位不多、实时性要求稳定的场合,两者都能做服务器,但参数入口和排错方法不一样。
三菱PLC Modbus TCP服务器怎么设置?先把角色和端口想清楚
TCP服务器的第一件事是网络规划,PLC设一个固定IP,客户端在同一网段,端口按Modbus组织公开规范用502,若现场有防火墙或交换机ACL,要放行502端口和PLC的IP,连接数也要看PLC型号和固件限制,别让多个上位机无节制轮询。
三菱FX5U、iQ-R这类机型通常可在GX Works3里启用Modbus/TCP服务器功能,Q系列或FX3U若没有原生Modbus TCP服务器能力,常见做法是加以太网网关,或让上位机走MC协议再做协议转换,选型阶段先查手册,比现场改程序省时间。
三菱FX5U Modbus TCP服务器配置步骤
以下路径以GX Works3常见版本为例,菜单名称会随固件和软件版本略有差异,操作时以三菱电机公开手册为准。
- 新建工程,CPU型号选实际FX5U,确认固件版本支持Modbus/TCP服务器。
- 打开“参数”>“FX5UCPU”>“模块参数”>“以太网端口”>“基本设置”,设置IP地址,例如192.168.1.10,子网掩码255.255.255.0,网关按现场填写。
- 进入“对象设备连接配置设置”,添加Modbus/TCP连接设备,方向选服务器,端口设502,协议选Modbus/TCP。
- 找到“Modbus/TCP设置”或软元件分配入口,设置线圈起始软元件和保持寄存器起始软元件,例如线圈从M100开始,保持寄存器从D100开始,点数按项目需求分配。
- 下载参数到PLC,复位或重新上电,观察ERR灯和以太网指示灯。
- 客户端侧设置PLC的IP、端口502、Unit ID通常填1,用FC03读保持寄存器,地址0对应映射起始的D100;用FC01读线圈,地址0对应M100。
- 用Wireshark过滤“tcp.port==502”,看请求有没有响应、异常码是什么。
映射地址是相对偏移,不是PLC软元件号,D100不一定等于客户端里的40101,具体要看工具的地址基数设置,Modbus Poll里可切换0-based和1-based,调试时先统一口径。
| 功能码 | 数据类型 | PLC软元件示例 | 客户端地址示例 |
|---|---|---|---|
| FC01 | 读线圈 | M100 | 0 |
| FC03 | 读保持寄存器 | D100 | 0 |
| FC04 | 读输入寄存器 | D500 | 0 |
| FC05 | 写单线圈 | M100 | 0 |
| FC06 | 写单寄存器 | D100 | 0 |
三菱PLC Modbus服务器地址映射和字节序怎么核对
地址映射表要提前做,上位机要读哪个D、写哪个M,都列成表,再按功能码分区域,X、Y这类输入输出软元件一般只读,M、D可读写,具体权限看PLC设置。
字节序是第二个坑,Modbus寄存器是16位大端,三菱D寄存器也是16位,遇到32位整数或浮点数,客户端和PLC的字交换设置要一致,否则数值会变成“看似有数但完全不对”,行业共识认为,Modbus通信异常先查地址偏移和字节序,再怀疑网线或模块。
串口场景:三菱PLC Modbus RTU从站怎么落地
RTU从站的关键是串口参数和接线,常用参数是波特率9600、19200或38400,数据位8,停止位1,校验None或Even,站号1到247,所有从站站号不能重复,校验和波特率必须与主站一致。
接线用A/B双绞线,总线两端加120Ω终端电阻,屏蔽层按现场规范单端接地,星型接线、A/B反接、终端电阻缺失,都会让通信时通时断,GX Works3里可在“参数”>“FX5UCPU”>“模块参数”>“485串口”相关设置中启用Modbus RTU从站,设置站号、波特率、校验和软元件分配,FX3U、Q系列则按对应串口模块手册配置。
RTU帧结构是站号、功能码、起始地址、数量、CRC,调试时用串口版Modbus Poll或串口助手发FC03读保持寄存器,先读一个寄存器,再扩到多个,读不到就看站号、校验、A/B线,别直接换模块。
调试与验收:把“能通”变成“稳定能用”
调通一次不算完,验收要看连续读写和异常恢复,可按下面清单逐项过:
- 网络层:ping通PLC,502端口可访问,防火墙未拦截。
- 协议层:Unit ID、功能码、起始地址、寄存器数量正确。
- 数据层:16位、32位、浮点数的字序一致,读写权限正确。
- 稳定性:连续轮询一段时间,观察丢包、超时、异常码。
- 恢复性:断开网线再插回,客户端能自动重连。
- 现场协作:如果是上海三菱PLC Modbus服务器现场调试,提前准备点位表、IP规划、停机窗口和验收标准,工程师到场后能直接按表核对。
常见异常码也要认识:01非法功能、02非法数据地址、03非法数据值、04从站故障、05确认、06从站忙,02多半是地址偏移或功能码区域不对,04要看PLC内部故障或映射配置,把这些信号读明白,比反复重启有效。
把服务器建起来的关键不是背菜单,而是角色、映射、验证三件事对齐,参数下载只是起点,用客户端按功能码读一遍映射表,才算真正把Modbus服务器立住。
三菱PLC Modbus服务器Q&A:端口、地址和调试费用怎么判断?
问:三菱PLC Modbus TCP服务器端口可以不用502吗?
可以改,但客户端必须同步改,防火墙和网关也要放行新端口,标准端口502的兼容性最好,现场没有特殊要求就按502规划,改端口不解决协议问题,地址映射错了换端口也没用。
问:三菱PLC Modbus服务器地址和PLC软元件怎么对应?
看PLC里的软元件分配表,线圈区对应FC01/05,保持寄存器对应FC03/06,输入寄存器对应FC04,客户端地址是相对偏移,0-based和1-based要统一,D100映射到偏移0时,客户端读0;映射到偏移100时,客户端读100,不能拿软元件号直接当Modbus地址。
问:上海三菱PLC Modbus服务器现场调试费用大概多少?
没有统一价,通常按点位数量、协议类型、是否含网关、停机窗口和验收工作量核算,远程指导和现场服务报价不同,上海三菱PLC Modbus服务器现场调试还会受路程和进场时间影响,费用核算的基础是工作量清单,不是一句“包调试”。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/791201.html


