MODBUS是工业协议中比较欢迎的一种,它简单、通用性强并且使用方便,MODBUS的另一个优点是它可以通过任何传输媒介进行通讯,其中包括双绞线、无线通讯、光导纤维、以太网、电话调制调解器、移动电话以及微波等。它已经成为通用的工业标准,通过它不同厂商生产的控制设备可以连成工业网络,进行集中监控。此协议定义了一个控制器能认识使用的消息结构,支持传统的Rs-232、Rs-485和以太网设备。PLC、DCS、智能仪表都在使用MODBUS协议作为他们之间的通讯标准。迪文作为以提供客户高品质人机交互产品和相关系统集成服务为主的高新技术企业,其产品中也有相关的MODBUS配置操作,以下分别对MINI_DGUS、DGUS、DGUSII产品的MODBUS接口配置进行说明。
(1)用户接口指令集为 Modbus RTU 主机模式和Modbus RTU从机模式,同时支持 DGUS 指令集(同时支持串口图片、字库下载)。通过 22.BIN 字库文件的 0x600~0x7FF 位置(1KB 空间大小,定义如下)。 注:通过UltraEdit打开22号文件,DGUS变量地址与UltraEdit上的地址存在2倍的关系,例如:DGUS 变量地址是:0X7F8,对应到UltraEdit软件上的地址是:0X7F8*2=0XFF0。
表1
| | | | | | | | | | | | | | 读写数据长度,0x00 表示本条指令无效,最多一次性读取120个字节 | | | 本条指令处理定时时间,4 位整数,单位为 ms,最大 9999ms | | | 应答 CRC 校验错误,0xFF 应答 CRC 校验正确。 | | | modbus 读写指令的发送方式,0x00:**** 所有页面下均执行指令; 0x01:Page_ID 仅在指定的页面下执行指令; 0x02:VP 仅在 VP 指向的变量缓冲区低字节内容为 0x5A 才执行指令; | | | 根据第8字节的填写01或者是02,添加页码或者DGUS变量地址 | | | DGUS 屏变量存储区的起始地址。如果地址高字节为 0xFF,表示读取的数据将写入 DGUS 曲线缓冲区,此时低字节地址表示为曲线数据格式 | | | 本条指令读写的数据在modbus 设备上的数据起始地址。 | | | |
表2
图1 表3 升级程序名称:DGUS_V71_MODBUS.BIN,对应的DGUS版本是V71,支持K600+或DGUS内核,用户接口指令集为MODBUS RTU主机模式,串口不再支持标准的DGUS指令集(包括DWIN OS、串口仿真、串口图片、字库下载)。DWIN OS中,以下指令不再支持:
| | | | | | | | | | | | | | | | | 到COMO_Rx_FIFO读取DL/T645数据帧 |
表4 通过22.bin字库文件的20KW-28KW(16KB空间大小,文件字节地址0x0A000--0x0DFFF)来定义Modbus运行参数,DGUS上电会自动把这8KW配置文件解码加载到变量缓冲区的最后8KW。 | | | | | | | | | | | 0X5A:保存DGUS变量缓冲区的MODBUS配置文件到22字库 | | | | 0X5A:从22字库加载MODBUS配置文件到DGUS变量缓冲区 | | | | 3.1格式定点小数(115200bps=0X480) 单位为kbps,最大999.9kbps | | | | 0X00=8N1(无校验) ,0X01=8E1(偶校验EVEN),0X02=801(奇校验ODD),0X03=8N2(无校验,2个停止位) | | | | | | | | 0X5A表示从22字库相应位置读数据到DGUS指定变量空间 | | | | PS:PE PS、PE是DGUS变量空间开始、结束地址高字节,低字节固定为0 | | | | | | | | | | | | | | | | |
|
|
|
|
表5
图2 | | | | | | | | | | | | | | 读写数据长度,0x00 表示本条指令无效,最多一次性读取120个字节 | | | 本条指令处理定时时间,4 位整数,单位为 ms,最大 9999ms定时时间是从机响应的最长时间 | | | | | | modbus 读写指令的发送方式,0x00:**** 所有页面下均执行指令; 0x01:Page_ID 仅在指定的页面下执行指令; 0x02:VP 仅在 VP 指向的变量缓冲区低字节内容为 0x5A 才执行指令; | | | 根据第8字节的填写01或者是02,添加页码或者DGUS变量地址 | | | DGUS 屏变量存储区的起始地址。如果地址高字节为 0xFF,表示读取的数据将写入 DGUS 曲线缓冲区,此时低字节地址表示为曲线数据格式 | | | 本条指令读写的数据在modbus 设备上的数据起始地址。 | | | 总线通信状态反馈,写指令始终为0X00,读指令返回0X00(失败)/0XFF(成功) | | | |
表6 注:MODBUS的位(线圈)变量是按照LSB定义的,而DGUS是按照MSB定义 升级程序名称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)。 表7
表8 当R1取值为11时,此时波特率由R5和R9决定,并由下式计算,R5:R9=6250000/波特率,R5:R9表示一个双字节参数,R5为高字节,R9为低字节,比如设定10000bps,R5:R9=6250000/10000=625=0X0271,R5为02,R9为71。 主要是T5UID1、T5UID2、T5UID3 平台的MODBUS配置。MODUS主从机写在了DWIN OS程序里面了,串口为UART4,使用T5_MODBUS OS程序,OS内核程序升级到V21或以上版本。 用户可通过 22.BIN 字库文件 0x1C000~0x1FFFF 的 16KB 空间大小来定义 Modbus 运数;也可通过 T5 OS 直接访问 0xE000~0xFFFF 的 8KW 变量空间来定义 Modbus 参数。 | | | | | | | | | | | 0X0000表示ModbusMaster,其它值表示ModbusSlave | | | | 单位是Kbps,1位定点小数,例如:115200=0X480 | | | | 0X00=8N1(无校验) ,0X01=8E1(偶校验EVEN),0X02=801(奇校验ODD),0X03=8N2(无校验,2个停止位) | | | | | | | | | | | | | | | | | | | | | | | | |
|
| | |
表9
| | | | | | | | | | | | | | 读写数据长度,0x00 表示本条指令无效,最多一次性读取90字节 | | | 本条指令处理定时时间,4 位整数,单位为 ms,最大 9999ms等待时间是从机响应的最长时间 | | | | | | modbus 读写指令的发送方式,0x00:**** 所有页面下均执行指令; 0x01:Page_ID 仅在指定的页面下执行指令; 0x02:VP 仅在 VP 指向的变量缓冲区低字节内容为 0x5A 才执行指令,执行完后自动清零VP指向的内容 | | | 根据第8字节的填写01或者是02,添加页码或者DGUS变量地址 | | | DGUS 屏变量存储区的起始地址(0X0000-0XDFFF)。 | | | 本条指令读写的数据在modbus 设备上的数据起始地址。 | | | 总线通信状态反馈,0X0000=失败,0X00FF=成功,OS读取后需要清零 |
表10
图3 在22号文件中配置成从机格式,设备默认地址是0X5A,若设定值为0,则自动恢复默认ID。22号配置如下图4。注:主机可读写数据变量范围为 0x0000-0xDFFF,若超出此范围,程序会将功能码最高位置 1 并返回给主机,表明通信错误;主机可读写数据长度上限为 90 个字,超出范围则通信失败;各个平台的CFG文件,必须设置为上电加载22文件。
图4
完整的Word格式文档51黑下载地址: |