兴泰科技 · 技术支持中心
首页/ 文档库/ XT3U-PLC 手册/ 4.3 Modbus 协议
第四章 通信

4.3 Modbus 协议

Modbus RTU 主从站配置、寄存器映射与示例。

i 本篇为 XT3U-PLC 系列控制器说明书 的组成部分,可点右上角「导出 PDF」单独保存,或回 手册总目录 查看全部章节。

4.3 Modbus 协议

Modbus 通信的底层为 RS485 信号,采用双绞线进行连接就可以了,因此传输距离较远,可达 1000 米,抗干扰性能比较好,且成本低,在工业控制设备的通信中被广泛使用,现在众多厂家的变频器、控制器都采用了该协议。

Modbus 最主流的传输格式为 Modbus-RTU,采用 HEX 码直接传送数据,无需额外的格式转换,因此通信效率较高,处理简单,是目前工业现场中使用最广泛的 Modbus 通信方式。

4.3.1 Modbus 功能码及数据编址

XT 3U 作为 Modbus 从站时,支持 Modbus 协议功能码 0x01,0x02,0x03,0x04,0x05,0x06,0x0F,0x10, 0x17;

通过这些功能码,可读写的线圈有 M,S,T,C,X(只读),Y 等变量;寄存器有 D,T,C。Modbus通信主机在访问(读取或改写)PLC 从机的内部变量时,必须遵循如下的通信命令帧定义,以及变量地址索引方法,才能进行正常的通信操作。

4.3.2 XT 3U MODBUS 通信地址

  • 位软元件
MODBUS软元件MODBUS软元件FX3U/FX3C软元件
输入(读出专用)线圈(读出/写入)
0x0000-0x1DFF0x0000-0x1DFFM0-M7679
0x1E00-0x1FFF0x1E00-0x1FFFM8000-M8511
0x2000-0x2FFF0x2000-0x2FFFS0-S4095
0x3000-0x31FF0x3000-0x31FFTS0-TS511
0x3200-0x32FF0x3200-0x32FFCS0-CS255
0x3300-0x33FF0x3300-0x33FFY0-Y377
0x3400-0x34FF-X0-X377
  • 字软元件
MODBUS软元件MODBUS软元件FX3U/FX3C软元件
输入(读出专用)线圈(读出/写入)
0x0000-0x1F3F0x0000-0x1F3FD0-D7999
0x1F40-0x213F0x1F40-0x213FD8000-D8511
0x2140-0xA13F0x2140-0xA13FR0-R32767
0xA140-0xA33F0xA140-0xA33FTN0-TN511
0xA340-0xA4070xA340-0xA407CN0-CN199
0xA408-0xA4770xA408-0xA477CN200-CN255*1
0xA478-0xA6570xA478-0xA657M0-M7679
0xA658-0xA6770xA658-0xA677M8000-M8511
0xA678-0xA7770xA678-0xA777S0-S4095
0xA778-0xA7970xA778-0xA797TS0-TS511
0xA798-0xA7A70xA798-0xA7A7CS0-CS255
0xA7A8-0xA7B70xA7A8-0xA7B7Y0-Y377
0xA7B8-0xA7C7-X0-X377

*1:CN200-255是32位计数器

4.3.3 XT 3U Modbus 的指令使用说明

注意:如果超过 2 个站通信的情况下,请自行在 A 端和 B 端并联一个终端匹配电阻(200 Ω ~1000Ω )

一、IVRD 指令

IVRDIVRDModbus H03 功能IVRD16 位
S1站号要读取的 modbus 从站号要读取的 modbus 从站号要读取的 modbus 从站号
S2地址要读取寄存器的首地址要读取寄存器的首地址要读取寄存器的首地址
S3存储地址S3 ·要读取的数量 S3 ·+1 保存读取数据的首地址S3 ·要读取的数量 S3 ·+1 保存读取数据的首地址S3 ·要读取的数量 S3 ·+1 保存读取数据的首地址
nCOM 口选择K1 COM1, K2 COM2K1 COM1, K2 COM2K1 COM1, K2 COM2
操 作 数位软元件位软元件位软元件位软元件位软元件位软元件位软元件字软元件字软元件字软元件字软元件字软元件字软元件字软元件字软元件字软元件字软元件字软元件字软元件字软元件字软元件字软元件字软元件字软元件字软元件
系统 ·用户系统 ·用户系统 ·用户系统 ·用户系统 ·用户系统 ·用户系统 ·用户系统 ·用户系统 ·用户系统 ·用户系统 ·用户系统 ·用户系统 ·用户位数指定位数指定位数指定位数指定位数指定变址变址变址常数常数实 数实 数
S1XYMTCSD.bD.bDRTCSDKnXKnYKnMKnSKnSMVZ修修KHE
S2XYMTCSD.bD.bDRTCSDKnXKnYKnMKnSKnSMVZ修修KHE
S3XYMTCSD.bD.bDRTCSDKnXKnYKnMKnSKnSMVZ修修KHE
S1XYMTCSD.bD.bDRTCSDKnXKnYKnMKnSKnSMVZ修修KHE

1.先配置成 MODBUS 主站模式如果没有配置主站模式接通了指令将报 3824 错误代码

2.直接由 M8000 驱动IVRD ,PLC 将自动读取

程序举例

只需将对应的配置数据传送到 D8400 即可完成配置

动作说明

1.先配置成 MODBUS 主站模式如果没有配置主站模式接通了指令将报 3824 错误代码

2.直接由 M8000 驱动IVRD ,PLC 将自动读取 1 号站的 K100 这个地址起的 D0 个数据,保存在 D0+1 开始的位置 D1.D2.D3… 根据 D0 的设置值而定

注意:

如果不需要一直接通读取的情况下请按照下面格式编写程序触发读取

M0 接通指令进行通信直到 M8029 指令执行完成再把 M0 复位

请求帧格式:从机地址+0x03+寄存器起始地址+寄存器数量+CRC检验

序号数据(字节)意义字节数量说明
1从机地址1个字节取值1~247,由D8121设定
20x03(功能码)1个字节读寄存器
3寄存器起始地址2个字节高位在前,低位在后,见寄存器编号
4寄存器数量2个字节高位在前,低位在后(N)
5CRC校验2个字节高位在前,低位在后
序号数据(字节)意义字节数量说明
1从机地址1个字节取值1~247,由D8121设定
20x03(功能码)1个字节读寄存器
3字节数1个字节值:N*2
4寄存器值N*2个字节每两字节表示一个寄存器值,高位在前低位在后。寄存器地址小的排在前面
5CRC校验2个字节高位在前,低位在后
相关寄存器位元件相关寄存器位元件说明
COM1M8063通信出错锁存标志位
M8120通信完成一次标志
M8121忙碌标志
M8122辅助错误位/第二错误位
M8123通信出错标志位
M8128发生重试标志
M8129超时标志位
D8128当前重试次数
D8129超时时间,以10ms为单位
D8130指令间隔时间
D8132允许总重试次数
D8063通信出错代码
COM2M8438通信出错锁存标志位
M8400通讯完成一次标志
M8401忙碌标志
M8402辅助错误位 / 第二错误位
M8403通信出错标志位
M8408发生重试标志
M8409超时标志位
D8402错误代码
D8406允许总重试次数
D8408当前重试次数
D8409超时时间,以10ms为单位
D8410指令间隔时间
D8402通信出错代码

错误码在代码里对应关系也很清楚:

205:校验错误

211:超时

212:不支持指令

213:站号不一致

217:未设成主机模式

218:数据格式错误

二、ADPRW 指令

ADPRW 是三菱 FX 系列 PLC(FX3U/FX5U)用于 Modbus 通信的专用读写指令,支持Modbus RTU 主站功能,可实现对从站设备的数据读取与写入操作。

ADPRWADPRWModbus 读取写入ADPRW16 位
S1 ·通道号+站号通道号+从站站号通道号+从站站号通道号+从站站号
S2 ·功能代码选择对应的功能码 支持 01,02,03,04,05,06,0F,10,16,17选择对应的功能码 支持 01,02,03,04,05,06,0F,10,16,17选择对应的功能码 支持 01,02,03,04,05,06,0F,10,16,17
S3 ·参数 1与功能代码对应的参数与功能代码对应的参数与功能代码对应的参数
S4 ·参数 2与功能代码对应的参数与功能代码对应的参数与功能代码对应的参数
S 5·/ D ·参数 3与功能代码对应的参数与功能代码对应的参数与功能代码对应的参数
操 作 数位软元件位软元件位软元件位软元件位软元件位软元件位软元件字软元件字软元件字软元件字软元件字软元件字软元件字软元件字软元件字软元件字软元件字软元件字软元件字软元件字软元件字软元件字软元件
系统 ·用户系统 ·用户系统 ·用户系统 ·用户系统 ·用户系统 ·用户系统 ·用户系统 ·用户系统 ·用户系统 ·用户系统 ·用户系统 ·用户位数指定位数指定位数指定位数指定位数指定变址变址变址常数常数实 数
S1XYMTCSD.bDRTCSDKnXKnYKnMKnSKnSMVZ修KHE
S2XYMTCSD.bDRTCSDKnXKnYKnMKnSKnSMVZ修KHE
S3XYMTCSD.bDRTCSDKnXKnYKnMKnSKnSMVZ修KHE
S4XYMTCSD.bDRTCSDKnXKnYKnMKnSKnSMVZ修KHE
S5XYMTCSD.bDRTCSDKnXKnYKnMKnSKnSMVZ修KHE

(1)功能概述

在上升沿触发一次 Modbus 主站访问(读/写)。

  • 支持三类通道:
  • 串口1
  • 串口2
  • 以太网(7个SOCKS)

指令自动完成:发送 → 等待应答/重试 → 收尾,跨扫描维持一次“事务”。

(2)操作数格式

第1字: (高8位=通道选择, 低8位=从站号)

第2字: 功能码

第3字: 起始地址

第4字: 数量

第5字: 数据区首地址(读:存放区 / 写:发送数据首地址)

通道选择(第1字高8位):

H00 → 串口2(默认使用串口2)

H01 → 串口1

H04H0B → 对应以太网 socket18

(3) 通道与寄存器/位资源映射

1 串口1 (第1字: 高8位为H01时)如图:

编号名称说明
M8121执行中(忙)通信指令正在执行时为 ON
M8120正常完成通信指令正常执行完成时为 ON
M8122通讯出错通信指令执行出错时为 ON
M8128发生重试通信过程中发生重试时为 ON
M8129应答超时通信应答超时时为 ON
M8063接通 / 链路类错误指示代码里与 M8122 同时置位,通常用作 “醒目灯”类错误指示
M8029本步指令结束位(所有通道通用)指令执行完成(无论成功 / 失败)时为 ON
编号名称说明
D8063错误码通信错误代码,对应含义如下:211 = 超时、218 = 数据格式错误、205 = 校验错误、212 = 不支持指令、213 = 站号不一致、217 = 未处于主站模式
D8128本次累计重试次数运行中重试发生时自动 + 1,通信事务结束后清零
D8132允许的最大重试次数设置的重试次数上限
D8130指令间隔时间(毫秒)事务结束后的 “最小发送间隔”,即两条指令之间的等待时间
D8129超时标志显示用阈值代码里做了 D8129>=9 的下限保护,用于超时判断

2 串口2 (第1字: 高8位为H00时)

编号类型名称说明
M8401过程位 (M)执行中(忙)通信指令正在执行时为 ON
M8400过程位 (M)正常完成通信指令正常执行完成时为 ON
M8402过程位 (M)通讯出错通信指令执行出错时为 ON
M8408过程位 (M)发生重试通信过程中发生重试时为 ON
M8409过程位 (M)应答超时通信应答超时时为 ON
M8403过程位 (M)接通 / 链路类错误指示(显示灯)用于链路错误的指示灯指示
M8029过程位 (M)指令结束指令执行完成(无论成功 / 失败)时为 ON
D8402数据寄存器错误码(编码同上)通信错误代码,与之前的错误码含义一致(211 = 超时、218 = 数据格式错误等)
D8408数据寄存器本次累计重试次数运行中重试发生时自动 + 1,通信事务结束后清零
D8406数据寄存器允许的最大重试次数设定的重试次数上限
D8410数据寄存器指令间隔时间(毫秒)事务结束后的 “最小发送间隔”,即两条指令之间的等待时间
D8409数据寄存器超时标志显示用阈值代码中做了 D8409>=9 的下限保护,用于超时判断

3 以太网(第1字: 高8位为H04H0B 对于socket18)

编号类型名称说明
M8421过程位 (M)执行中(忙)通信指令正在执行时为 ON
M8420过程位 (M)正常完成通信指令正常执行完成时为 ON
M8422过程位 (M)通讯出错通信指令执行出错时为 ON
M8428过程位 (M)发生重试通信过程中发生重试时为 ON
M8429过程位 (M)应答超时通信应答超时时为 ON
M8423过程位 (M)接通 / 链路类错误指示用于链路错误的指示灯指示
M8029过程位 (M)指令结束指令执行完成(无论成功 / 失败)时为 ON
D8422数据寄存器错误码(编码同上)通信错误代码,含义与前面的错误码一致(211 = 超时、218 = 数据格式错误等)
D8428数据寄存器本次累计重试次数运行中重试发生时自动 + 1,通信事务结束后清零
D8426数据寄存器允许的最大重试次数设定的重试次数上限
D8430数据寄存器指令间隔时间(毫秒)事务结束后的 “最小发送间隔”,两条指令之间的等待时间,需大于响应超时时间
D8425数据寄存器响应超时(毫秒)通信响应超时的设定时间(注意:指令间隔时间必须大于响应超时)

4.3.4 MODBUS RTU 主从配置说明

一、主站配置

通过软件进行串口配置,根据通讯地址表进行配置主站,可以新增多条轮询,也可以轮询不同站号,具体情况根据自身需求配置,我这里配置的是写1号站的从机H0地址,主机M0映射从机H0地址开始10位,第二个为读寄存器,从从机H0地址读到主机D0地址开始10个寄存器,第三个为写寄存器,从主机地址D10开始10个寄存器写入从机地址H000F地址。

根据通讯地址表可以得出线圈H0地址为从机M0,寄存器H0地址为从机D0,写寄存器H000F地址为从机D10地址

打开GX Works2 新建工程,配置如下:

使用PLC串口连接电脑,端口为COM19

测试通讯

编写如下,写入常开M8000保存始终导通,在右上角点击ST

在ST表格中把刚刚在软件上配置好的程序复制到里面来,如图

进行程序编译,编译好即可

下载程序

主从站485接线如图

主站配置完成。

二、从站配置操作

从站配置,其他操作跟主站一样,新建一个程序并把生成好的程序复制到ST中,再写入到做从站的PLC中,这里就不繁琐的去做同一个操作了。

之前设置的配置:主站M0-M9写线圈到从站为M0-M9,主站D0-D9读从站寄存器为D0-D9,主站D10-D19写寄存器到从站为D10-D19。

先测试第一个写线圈

改变主站M0状态再看从站M0状态是否同步

打开从站程序也是一样的监视M0

相关文档

XT3U-PLC 手册 · 总目录XingTai PLC Studio 软件说明书

相关下载

XT3U-PLC 系列控制器说明书(完整版 PDF)
整册下载 · A4 · 含全部章节
下载