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

台湾建准大陆区域综合服务商    

风扇|冷却模组|散热解决方案

新闻分类
  • 暂无分类
站内搜索
 
友情链接
  • 暂无链接
首页 > 新闻中心 > Q系列用485串口模块来用MODBUS通讯协议进行通讯的程序编写!
新闻中心
Q系列用485串口模块来用MODBUS通讯协议进行通讯的程序编写!
发布时间:2025-10-01        浏览次数:0        返回列表

三菱 Q 系列 PLC 使用 485 串口模块(如 QJ71C24N-R2)通过 MODBUS 协议通讯时,需结合专用指令(如 MC 协议或 MODBUS 库指令)实现数据收发。以下是基于 Q 系列 PLC 作为 MODBUS 主站,与从设备(如仪表、变频器)通讯的程序编写方法:

一、硬件与参数配置

  1. 硬件组成

    • Q 系列 PLC(如 Q03UDVCPU)

    • 485 串口模块(如 QJ71C24N-R2,支持 RS485)

    • 通讯线缆:A/B 线连接模块与从设备(注意极性)

  2. 模块参数设置(通过 GX Works3):

    • 通讯方式:MODBUS RTU(主站模式)

    • 波特率:9600bps(与从设备一致)

    • 数据格式:8 位数据位,1 位停止位,无校验(或按从设备要求)

    • 模块站号:默认 0(主站无需站号,从设备需设置唯一站号)

二、编程思路

Q 系列 PLC 通过专用协议指令自由口通讯实现 MODBUS RTU:

  1. 使用 MODBUS 库指令(推荐):调用三菱提供的 MODBUS 主站指令(如MB_MASTER)。

  2. 自由口通讯:通过SEND/RECV指令手动组帧、发送和解析 MODBUS 报文。

三、程序示例(使用库指令)

假设:

  • PLC 作为主站,读取从站(站号 1)的保持寄存器(地址 40001~40002)。

  • 接收数据存储到 D100~D101,发送 / 接收状态用 M0~M5 监控。

步骤 1:导入 MODBUS 库

在 GX Works3 中,依次点击「工具」→「库管理」→ 导入「MODBUS_MASTER」库。

步骤 2:程序编写

ladderlogic

// 初始化:设置通讯参数
LD     M8002                  // PLC启动脉冲
MOV     K1      D0             // 从站号=1
MOV     K3      D1             // 功能码=3(读取保持寄存器)
MOV     K1      D2             // 起始地址=40001(对应D2=1)
MOV     K2      D3             // 读取寄存器数量=2
MOV     D100    D4             // 接收数据存储首地址=D100
MOV     K100    D5             // 超时时间=100ms

// 触发MODBUS通讯(上升沿触发)
LD     X0                     // 启动按钮
AND     M8000                  // 运行中
PULSE   M1      1              // 上升沿脉冲

// 调用MODBUS主站指令
LD     M1
MC_MASTER D0     D1     D2     D3     D4     D5     M0     M1     M2     M3     M4     M5

// 状态监控
LD     M0                     // 通讯完成标志
OUT     Y0                     // 完成指示灯

LD     M2                     // 通讯错误
OUT     Y1                     // 错误指示灯

LD     M3                     // 超时错误
OUT     Y2                     // 超时指示灯

四、程序示例(自由口通讯)

若不使用库指令,可手动组帧实现(以读取从站 1 的 40001~40002 为例):

1. 发送 MODBUS 报文

ladderlogic

// MODBUS帧格式:[站号][功能码][起始地址高][起始地址低][数量高][数量低][CRC高][CRC低]
// 读取40001~40002:01 03 00 00 00 02 C4 0B

LD     X0                     // 发送触发
MOV     K1      D10            // 站号=1
MOV     K3      D11            // 功能码=3
MOV     K0      D12            // 起始地址=0(40001对应0)
MOV     K2      D13            // 数量=2
// 计算CRC校验(需编写CRC计算子程序)
CALL    P100    D10    D20     // 计算结果存D20(CRC高)、D21(CRC低)

// 组帧发送(QJ71C24N-R2模块使用通道1)
LD     X0
PULSE   M10     1
LD     M10
SEND    K1      D10     K8     D30     M20     // 通道1,发送数据D10开始,8字节

2. 接收并解析报文

ladderlogic

// 接收从站返回的报文(正常响应:01 03 04 [数据1高] [数据1低] [数据2高] [数据2低] [CRC])
LD     M8000
RECV    K1      D40     K10    D50     M30     // 通道1,接收数据存D40开始,最大10字节

// 解析数据(确认站号和功能码正确)
LD     M30                     // 接收完成
CMP     D40     K1      M40     // 站号=1?
CMP     D41     K3      M50     // 功能码=3?
LD     M40 AND M50
MOV     D43     D100           // 数据1→D100(高8位D43,低8位D44→合并为16位)
MOV     D45     D101           // 数据2→D101

五、关键说明

  1. CRC 校验:MODBUS RTU 必须计算 CRC 校验码,可通过子程序实现(循环冗余校验算法)。

  2. 功能码

    • 03:读取保持寄存器(常用)

    • 06:写入单个保持寄存器

    • 16:写入多个保持寄存器

  3. 错误处理

    • 从站返回错误时,功能码最高位为 1(如 03→83),并包含错误码。

    • 增加超时判断(如 T0),避免通讯卡死。

  4. 模块通道:QJ71C24N-R2 有 2 个通道(CH1/CH2),需在程序中指定正确通道号(K1/K2)。

六、调试要点

  1. 用串口调试助手监控报文,确认发送 / 接收的帧格式正确。

  2. 检查接线(A/B 线是否反接)和终端电阻(长距离通讯需接 120Ω 电阻)。

  3. 确保 PLC 与从设备的波特率、校验方式完全一致。

通过以上方法,Q 系列 PLC 可稳定实现 MODBUS RTU 通讯,适用于连接各类支持 MODBUS 协议的设备。

收缩
  • QQ咨询

  • 电话咨询

  • 18576370666
  • 添加微信客服