返回主站|会员中心|保存桌面

赛巴综合服务商    

隔膜阀|单向阀|压力变送器|流量计|接头连接件|高纯管|扩管器扳手|电磁阀|空气过滤...

新闻分类
  • 暂无分类
站内搜索
 
友情链接
  • 暂无链接
首页 > 新闻中心 > 关于三菱PLC与modbus设备通信的实例!
新闻中心
关于三菱PLC与modbus设备通信的实例!
发布时间:2025-10-05        浏览次数:1        返回列表

三菱 PLC(以 FX5U 为例)与 Modbus 设备(如传感器、变频器、仪表)的通信可通过内置 Modbus RTU 功能扩展模块实现。以下是一个典型实例:用 FX5U PLC 通过 Modbus RTU(RS485)读取温湿度传感器数据,并控制变频器启停,包含硬件接线、参数设置、程序编写及调试方法。

一、硬件准备与接线

1. 设备清单

  • PLC:FX5U-32MT/ES(自带 RS485 接口,或通过 FX5-485-BD 扩展板实现);

  • Modbus 从机 1:温湿度传感器(如 SHT30-Modbus,从机地址 1,温度寄存器 0x0000,湿度寄存器 0x0001);

  • Modbus 从机 2:变频器(如台达 VFD-M,从机地址 2,控制寄存器 0x0000,频率寄存器 0x0001);

  • 其他:RS485 总线(屏蔽双绞线)、终端电阻(120Ω)、24V 电源(给传感器供电)。

2. 接线方式(RS485 总线)

  • PLC 侧:FX5U 的 RS485 接口引脚定义(A:DATA+,B:DATA-,SG:信号地);

  • 从机侧:传感器和变频器的 RS485 接口(A 接 A,B 接 B,SG 共地);

  • 总线终端:在总线两端(PLC 侧和最后一个从机侧)的 A 与 B 之间并联 120Ω 终端电阻,减少信号反射。

接线示意图

plaintext

FX5U PLC        温湿度传感器        变频器
  A ------------ A ------------ A
  B ------------ B ------------ B
  SG ----------- SG ----------- SG
(24V)---------(VCC)          (独立供电)

二、PLC 参数设置(GX Works3)

1. 启用 Modbus RTU 主站功能

  • 新建项目,选择 FX5U PLC,进入 “参数”→“内置 RS485 端口设置”(或扩展模块设置):

    • 通信方式:Modbus RTU 主站

    • 波特率:9600bps(需与所有从机一致);

    • 数据格式:8位数据位,1位停止位,无校验(N,8,1);

    • 响应超时时间:1000ms(根据从机响应速度设置)。

2. 从机参数匹配

  • 温湿度传感器:通过拨码或软件设置(参考手册):

    • 从机地址:1

    • 波特率:9600bps,数据格式:N,8,1

    • 温度寄存器:0x0000(只读,浮点型,单位℃);

    • 湿度寄存器:0x0001(只读,浮点型,单位 % RH)。

  • 变频器:通过面板或软件设置(台达 VFD-M):

    • 从机地址:2

    • 波特率:9600bps,数据格式:N,8,1

    • 控制寄存器:0x0000(读写,16 位整数,0 = 停止,1 = 正转);

    • 频率寄存器:0x0001(读写,16 位整数,单位 0.1Hz)。

三、程序编写(Modbus 通信指令)

FX5U 通过MODBUS_RTU指令库实现通信,需在程序中调用 “读寄存器” 和 “写寄存器” 指令。

1. 读取温湿度传感器数据(从机地址 1)

  • 功能码0x03(读取保持寄存器);

  • 操作:读取传感器的 0x0000(温度)和 0x0001(湿度),各占 2 个字节(16 位),共 4 个字节。

plaintext

// 读取温湿度(上升沿触发,M0为启动信号)
LD  PLS M0          // 触发读指令
MOV K1 D100         // D100=从机地址1
MOV H03 D101        // D101=功能码03(读寄存器)
MOV H0000 D102      // D102=起始地址0x0000
MOV K2 D103         // D103=读取寄存器数量2(温度+湿度)
MOV D200 D104       // D104=接收数据存储首地址(D200=温度高8位,D201=温度低8位,D202=湿度高8位,D203=湿度低8位)
CALL "MODBUS_RTU"   // 调用Modbus指令
// 指令参数:D100=从机地址,D101=功能码,D102=起始地址,D103=数量,D104=接收区,D105=状态码(0=成功)
LD  D105=K0         // 通信成功
MOV D200 D300       // 存储温度数据(D300=温度,浮点型转换)
MOV D202 D302       // 存储湿度数据(D302=湿度,浮点型转换)

2. 控制变频器(从机地址 2)

  • 功能码0x06(写入单个寄存器)、0x10(写入多个寄存器);

  • 操作 1:写入控制寄存器 0x0000,实现启停(1 = 启动,0 = 停止);

  • 操作 2:写入频率寄存器 0x0001,设置运行频率(如 50.0Hz=500→0x01F4)。

plaintext

// 变频器启动(M1为启动按钮)
LD  M1
MOV K2 D110         // D110=从机地址2
MOV H06 D111        // D111=功能码06(写单个寄存器)
MOV H0000 D112      // D112=控制寄存器地址0x0000
MOV K1 D113         // D113=写入值1(启动)
CALL "MODBUS_RTU"
LD  D115=K0         // 写入成功
SET M10             // 启动成功标志

// 设置频率为50Hz(M2为频率设置按钮)
LD  M2
MOV K2 D120         // D120=从机地址2
MOV H06 D121        // D121=功能码06
MOV H0001 D122      // D122=频率寄存器地址0x0001
MOV K500 D123       // D123=500(对应50.0Hz)
CALL "MODBUS_RTU"
LD  D125=K0         // 写入成功
SET M11             // 频率设置成功标志

3. 数据转换(浮点型处理)

温湿度传感器返回的是 32 位浮点型数据(如温度 25.5℃对应十六进制41C80000),需通过FLT指令转换:

plaintex

// 温度转换(D200=高16位,D201=低16位 → D300=浮点型温度)
FLT D200 D300       // 将32位整数转换为浮点数(FX5U支持32位操作)
// 湿度转换同理
FLT D202 D302

四、调试与故障排查

1. 通信状态监控

  • 在 GX Works3 中通过 “监视” 功能查看状态码(如 D105、D115):

    • 0:通信成功;

    • 1:超时(检查接线、从机地址或波特率);

    • 2:校验错误(检查数据格式或干扰);

    • 3:从机无响应(检查从机是否上电或参数错误)。

2. 常见问题解决

  • 通信超时

    • 确认从机地址是否正确(如传感器拨码是否为 1);

    • 用万用表测量 RS485 总线 A/B 之间电压(空闲时约 2-5V,通信时波动),无电压则接线错误。

  • 数据错误

    • 检查寄存器地址是否正确(如传感器温度是否真的在 0x0000);

    • 浮点型转换错误时,确认寄存器高低位是否反序(部分设备是低字节在前,需用SWAP指令交换)。

  • 干扰导致通信不稳定

    • 增加总线屏蔽层接地(单端接 PLC 侧接地端);

    • 降低波特率(如从 9600bps 改为 4800bps),提高抗干扰能力。

五、总结

三菱 PLC 与 Modbus 设备通信的核心是:参数匹配(波特率、地址、格式)+ 正确调用指令(读 / 写寄存器)+ 抗干扰设计。本例通过 FX5U 读取传感器数据并控制变频器,可扩展到其他 Modbus 设备(如阀门、仪表),只需修改从机地址、寄存器地址和数据处理逻辑即可。实际应用中,建议先通过 Modbus 调试工具(如 “Modbus Poll”)验证从机通信正常,再编写 PLC 程序,提高调试效率。

收缩
  • QQ咨询

  • 电话咨询

  • 18576370666
  • 添加微信客服