找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 10135|回复: 3
打印 上一主题 下一主题
收起左侧

迪文串口屏中关于MODBUS的接口配置详解

[复制链接]
跳转到指定楼层
楼主
ID:502741 发表于 2019-4-1 20:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
MODBUS是工业协议中比较欢迎的一种,它简单、通用性强并且使用方便,MODBUS的另一个优点是它可以通过任何传输媒介进行通讯,其中包括双绞线、无线通讯、光导纤维、以太网、电话调制调解器、移动电话以及微波等。它已经成为通用的工业标准,通过它不同厂商生产的控制设备可以连成工业网络,进行集中监控。此协议定义了一个控制器能认识使用的消息结构,支持传统的Rs-232、Rs-485和以太网设备。PLC、DCS、智能仪表都在使用MODBUS协议作为他们之间的通讯标准。迪文作为以提供客户高品质人机交互产品和相关系统集成服务为主的高新技术企业,其产品中也有相关的MODBUS配置操作,以下分别对MINI_DGUS、DGUS、DGUSII产品的MODBUS接口配置进行说明。

  • MINI_DGUSMODBUS接口配置
   (1)用户接口指令集为 Modbus RTU 主机模式和Modbus RTU从机模式,同时支持 DGUS 指令集(同时支持串口图片、字库下载)。通过 22.BIN 字库文件的 0x600~0x7FF 位置(1KB 空间大小,定义如下)。
注:通过UltraEdit打开22号文件,DGUS变量地址与UltraEdit上的地址存在2倍的关系,例如:DGUS 变量地址是:0X7F8,对应到UltraEdit软件上的地址是:0X7F8*2=0XFF0。

DGUS
UltraEdit(22地址)
定义
说明
0X7F8
0XFF0
Modbus启用标记
主机启用:0X5AA5
从机启用:0X5BB5
0x7F9-0X7FF
0XFF2-0XFFE
未定义
全部写0
0X600-0X607
0XC00-0XC0E
第1条 MODBUS 指令(16 字节)
详细说明见表2
0X608-0X60F
0XC10-0XC1E
第2条 MODBUS 指令(16 字节)


.....
......
......
......
0X7F0-0X7F7
0XFE0-0XFEE
第63条 MODBUS 指令(16 字节)










                                    表1


UltraEdit(22地址)
定义
说明
0XC00
第1个字节
0x5A=本条指令有效,其它=本条指令无效
0XC01
第2个字节
读写的 modbus 设备地址
0XC02
第3个字节
读/写使用的 modbus 指令
0XC03
第4个字节
读写数据长度,0x00 表示本条指令无效,最多一次性读取120个字节
0XC04-0XC05
第5字节-第6字节
本条指令处理定时时间,4 位整数,单位为 ms,最大 9999ms
0XC06
第7字节
应答 CRC 校验错误,0xFF 应答 CRC 校验正确。
0XC07
第8字节
modbus 读写指令的发送方式,0x00:**** 所有页面下均执行指令;
0x01:Page_ID 仅在指定的页面下执行指令;
0x02:VP 仅在 VP 指向的变量缓冲区低字节内容为 0x5A 才执行指令;
0XC08-0XC09
第9字节-第10字节
根据第8字节的填写01或者是02,添加页码或者DGUS变量地址
0XC0A-0XC0B
第11字节-第12字节
DGUS 屏变量存储区的起始地址。如果地址高字节为 0xFF,表示读取的数据将写入 DGUS 曲线缓冲区,此时低字节地址表示为曲线数据格式
0XC0C-0XC0D
第13字节-第14字节
本条指令读写的数据在modbus 设备上的数据起始地址。
0XC0E-0XC0F
第15字节-第16字节
保留写0X00
                                     表2

                                         图1
  • MOSBUS操作指令对应表
MODBUS 指令
功能
读写数据长
Modbus 起始地址
0x01
读取输入线圈状态
线圈个数/8
  起始线圈
0x02
读取输入位置量状态
位变量个数/8
起始输出位置
0x03
读取保存寄存器数据
寄存器个数*2
保存寄存器首地址
0x04
读取输入寄存器数据
寄存器个数*2
输入寄存器首地址
0x05
强制单个线圈
0x02
线圈地址
0x06
预制单个寄存器
0x02
寄存器地址
0x07
读取异常状态
0x01
任意值
0x0F
强制多个线圈
线圈数量
起始线圈位置
0x10
预制多个寄存器
寄存器个数*2
  寄存器首地址
0x11
读取从机标识
从机标示字节数
任意值
                                       表3
  • DGUSMODBUS接口配置
  • 基于Modbus主机接口的DGUS软件应用说明
   升级程序名称:DGUS_V71_MODBUS.BIN,对应的DGUS版本是V71,支持K600+或DGUS内核,用户接口指令集为MODBUS RTU主机模式,串口不再支持标准的DGUS指令集(包括DWIN  OS、串口仿真、串口图片、字库下载)。DWIN OS中,以下指令不再支持:

指令
说明
RMODBUS
到COMO_Rx_FIFO读取MODBUS数据帧
COMSET
串口配置
COMTXD
串口数据发送到COM1
CPRTS
串口打印
RDXLEN
检查COMO_Rx_FIFO
RDXDAT
读取COMO_Rx_FIFO
COMTXI
直接串口发送
RD645
到COMO_Rx_FIFO读取DL/T645数据帧
                                      表4
通过22.bin字库文件的20KW-28KW(16KB空间大小,文件字节地址0x0A000--0x0DFFF)来定义Modbus运行参数,DGUS上电会自动把这8KW配置文件解码加载到变量缓冲区的最后8KW。
DGUS
UltraEdit(22地址)
定义
说明
0X5000
0XA000
Modbus启用标记
主机启用:0X5AA5

0X5001:H
0XA002
保存配置文件标记
0X5A:保存DGUS变量缓冲区的MODBUS配置文件到22字库
0X5001:L
0XA002-0XA003
加载配置文件标记
0X5A:从22字库加载MODBUS配置文件到DGUS变量缓冲区
0X5002
0XA004
串口波特率
3.1格式定点小数(115200bps=0X480)
单位为kbps,最大999.9kbps
0X5003:H
0XA006
串口模式
0X00=8N1(无校验)
,0X01=8E1(偶校验EVEN),0X02=801(奇校验ODD),0X03=8N2(无校验,2个停止位)
0X5004:H
0XA008
变量写标记
0X5A表示保存指定DGUS变量空间到22字库
0X5004:L
0XA009
变量读标记
0X5A表示从22字库相应位置读数据到DGUS指定变量空间
0X5005
0XA00A
变量读写起止地址
PS:PE PS、PE是DGUS变量空间开始、结束地址高字节,低字节固定为0
0X5006-0X5007
0XA00C-0XA00E
保留
写0X0000
0X5008-0X500F
0XA010-0XA01F
第一条MODBUS指令
详细说明见表6
.....
......
......
......
0X6FF8-0X6FFF
0XFE0-0XFEE
第1023条 MODBUS 指令(16 字节)
最多支持1023条指令








                                    表5

                                      图2
UltraEdit(22地址)
定义
说明
0XA010
第1个字节
0x5A=本条指令有效,其它=本条指令无效
0XA011
第2个字节
读写的 modbus 设备地址
0XA012
第3个字节
读/写使用的 modbus 指令
0XA013
第4个字节
读写数据长度,0x00 表示本条指令无效,最多一次性读取120个字节
0XA014-0XA015
第5字节-第6字节
本条指令处理定时时间,4 位整数,单位为 ms,最大 9999ms定时时间是从机响应的最长时间
0XA016
第7字节
0X00
0XA017
第8字节
modbus 读写指令的发送方式,0x00:**** 所有页面下均执行指令;
0x01:Page_ID 仅在指定的页面下执行指令;
0x02:VP 仅在 VP 指向的变量缓冲区低字节内容为 0x5A 才执行指令;
0XA018-0XA019
第9字节-第10字节
根据第8字节的填写01或者是02,添加页码或者DGUS变量地址
0XA01A-0XA01B
第11字节-第12字节
DGUS 屏变量存储区的起始地址。如果地址高字节为 0xFF,表示读取的数据将写入 DGUS 曲线缓冲区,此时低字节地址表示为曲线数据格式
0XA01C-0XA01D
第13字节-第14字节
本条指令读写的数据在modbus 设备上的数据起始地址。
0XA01E
第15字节
总线通信状态反馈,写指令始终为0X00,读指令返回0X00(失败)/0XFF(成功)
0XA01F
第16字节
保留写0X00
                                  表6
注:MODBUS的位(线圈)变量是按照LSB定义的,而DGUS是按照MSB定义
  • 基于Modbus从机接口的DGUS软件应用说明
     升级程序名称DGUS_V71_MODBUS_SLAVE.BIN,对应的DGUS版本是V71,支持K600+或DGUS内核,用户接口指令集为MODBUS RTU从机模式,串口不再支持标准的DGUS指令集(包括DWIN OS串口仿真、串口图片、字库下载)。CONFIG.TXT配置文件的R3寄存器设置MODBUS从机地址,RA寄存器设置MODBUS串口格式,0X00=8N1(无校验) 0X01=8E1(偶校验,EVEN),0X02=801(奇校验,ODD),0X03=8N2(无校验,2个停止位)。串口波特率设置R1、R5、R9,当R1的值在00-10时,R5和R9无效,可以选择17档固定波特率之一,如下表7(波特率单位为Kbps)。
R1
00
01
02
03
04
05
06
07
波特率
1.2
2.4
4.8
9.6
19.2
38.4
57.6
115.2
                                  表7

R1
08
09
0A
0B
0C
0D
0E
0F
10
波特率
28.8
76.8
62.5
125
250
230.4
345.6
691.2
921.6

                                  表8
当R1取值为11时,此时波特率由R5和R9决定,并由下式计算,R5:R9=6250000/波特率,R5:R9表示一个双字节参数,R5为高字节,R9为低字节,比如设定10000bps,R5:R9=6250000/10000=625=0X0271,R5为02,R9为71。
  • DGUSIIMODBUS接口配置
   主要是T5UID1、T5UID2、T5UID3 平台的MODBUS配置。MODUS主从机写在了DWIN OS程序里面了,串口为UART4,使用T5_MODBUS OS程序,OS内核程序升级到V21或以上版本。
  • 基于MODBUS的主机接口配置
用户可通过 22.BIN 字库文件 0x1C000~0x1FFFF 的 16KB 空间大小来定义 Modbus 运数;也可通过 T5 OS 直接访问 0xE000~0xFFFF 的 8KW 变量空间来定义 Modbus 参数。
DGUS
UltraEdit(22地址)
定义
说明
0XE000
0X1C000
Modbus启用标记
0X5AA5

0XE001
0X1C002
主从机标记
0X0000表示ModbusMaster,其它值表示ModbusSlave
0XE002
0X1C004
串口波特率
单位是Kbps,1位定点小数,例如:115200=0X480
0XE003
0X1C006
串口模式
0X00=8N1(无校验)
,0X01=8E1(偶校验EVEN),0X02=801(奇校验ODD),0X03=8N2(无校验,2个停止位)
0XE004
0X1C008
从机设备地址
从机下设备地址,默认为0X005A
0XE005:H
0X1C00A
MODBUS输出串口
0X04默认串口4
0XE005:L
0X1C00B
0S版本号
只读
0XE006-0XE007
0X1C00C-0X1C00E
保留
写0X0000
0XE008-0XE00F
0X1C010-0X1C01F
第一条MODBUS指令
详细说明见表9
.....
......
......
......




第1023条 MODBUS 指令(16 字节)
最多支持1023条指令
                                      表9

UltraEdit(22地址)
定义
说明
0X1C010
第1个字节
0x5A=本条指令有效,其它=本条指令无效
0X1C011
第2个字节
读写的 modbus 设备地址
0X1C012
第3个字节
读/写使用的 modbus 指令
0X1C013
第4个字节
读写数据长度,0x00 表示本条指令无效,最多一次性读取90字节
0X1C014-0X1C015
第5字节-第6字节
本条指令处理定时时间,4 位整数,单位为 ms,最大 9999ms等待时间是从机响应的最长时间
0X1C016
第7字节
0X00
0X1C017
第8字节
modbus 读写指令的发送方式,0x00:**** 所有页面下均执行指令;
0x01:Page_ID 仅在指定的页面下执行指令;
0x02:VP 仅在 VP 指向的变量缓冲区低字节内容为 0x5A 才执行指令,执行完后自动清零VP指向的内容
0X1C018-0X1C019
第9字节-第10字节
根据第8字节的填写01或者是02,添加页码或者DGUS变量地址
0X1C01A-0X1C01B
第11字节-第12字节
DGUS 屏变量存储区的起始地址(0X0000-0XDFFF)。
0X1C01C-0X1C01D
第13字节-第14字节
本条指令读写的数据在modbus 设备上的数据起始地址。
0X1C01E-0X1C01F
0
第15字节-第16字节
总线通信状态反馈,0X0000=失败,0X00FF=成功,OS读取后需要清零

                                       表10

                                      图3
  • 基于MODBUS的从机接口配置
在22号文件中配置成从机格式,设备默认地址是0X5A,若设定值为0,则自动恢复默认ID。22号配置如下图4。注:主机可读写数据变量范围为 0x0000-0xDFFF,若超出此范围,程序会将功能码最高位置 1 并返回给主机,表明通信错误;主机可读写数据长度上限为 90 个字,超出范围则通信失败;各个平台的CFG文件,必须设置为上电加载22文件。

                                              图4

完整的Word格式文档51黑下载地址:
迪文屏中关于MODBUS的接口配置 .doc (127.5 KB, 下载次数: 59)


评分

参与人数 1黑币 +100 收起 理由
admin + 100 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:648180 发表于 2019-11-24 01:04 | 只看该作者
感觉很有帮助,谢谢大神
回复

使用道具 举报

板凳
ID:627832 发表于 2019-12-6 20:17 | 只看该作者
很有用的文件,谢谢分享
回复

使用道具 举报

地板
ID:96654 发表于 2020-2-10 17:26 | 只看该作者
感觉很有帮助,很有用的文件,谢谢分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表