MODBUS规约中文说明书资料.pdf
《MODBUS规约中文说明书资料.pdf》由会员分享,可在线阅读,更多相关《MODBUS规约中文说明书资料.pdf(21页珍藏版)》请在三一文库上搜索。
1、MODBUS 规约中文说明书 说明:该文档是产品说明书的一部分,考虑到国内没有看到详细的MODBUS 规约中 文说明书, 所以就把自己产品说明书的一部分内容译出来,作为 MDOBUS 规约中文说明书。 该说明书不是完整的MODBUS 规约,但是却涵盖的几乎所有常用内容。 1 MODBUS 规约 MODBUS 规约是 MODICOM 公司开发的一个为很多厂商支持的开放规约 Modbus 协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制 器经由网络 (例如以太网) 和其它设备之间可以通信。它已经成为一通用工业标准。有了它, 不同厂商生产的控制设备可以连成工业网络,进行集中监
2、控。 此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通 信的。 它描述了控制器请求访问其它设备的过程,如果回应来自其它设备的请求,以及怎样 侦测错误并记录。它制定了消息域格局和内容的公共格式。 当在 Modbus 网络上通信时,此协议决定了每个控制器须要知道它们的设备 地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将 生成反馈信息并用Modbus 协议发出。在其它网络上,包含了Modbus协议的消 息转换为在此网络上使用的帧或包结构。这种转换也扩展了根据具体的网络解决 节地址、路由路径及错误检测的方法。 标准的 Modbus 口是使用RS-232
3、C 兼容串行接口, 它定义了连接口的针脚、电缆、 信号 位、传输波特率、奇偶校验。控制器能直接或经由Modem 组网。 控制器通信使用主从技术,即仅设备 (主设备) 能初始化传输 (查询)。其它设备 (从 设备) 根据主设备查询提供的数据做出相应反应。典型的主设备: 主机和可编程仪表。典型 的从设备:可编程控制器。 主设备可单独和从设备通信,也能以广播方式和所有从设备通信。如果单独通信, 从设 备返回消息作为回应,如果是以广播方式查询的,则不作任何回应。Modbus 协议建立了主 设备查询的格式:设备(或广播)地址、功能代码、所有要发送的数据、错误检测域。 从设备回应消息也由Modbus 协议
4、构成,包括确认要行动的域、任何要返回 的数据、和错误检测域。 如果在消息接收过程中发生错误,或从设备不能执行其 命令,从设备将建立错误消息并把它作为回应发送出去。 在其它网络上,控制器使用对等技术通信,故任何控制都能初始和其它控制器的通信。 这样在单独的通信过程中,控制器既可作为主设备也可作为从设备。提供的多个内部通道可 允许同时发生的传输进程。 在消息位,Modbus 协议仍提供了主从原则, 尽管网络通信方法是 “对等” 。 如果控制器发送消息,它只是作为主设备,并期望从从设备得到回应。同样,当 控制器接收到消息,它将建立一从设备回应格式并返回给发送的控制器。 .主设备查询 查询消息中的功能
5、代码告之被选中的从设备要执行何种功能。数据段包含了从设备要 执行功能的任何附加信息。例如功能代码03 是要求从设备读保持寄存器并返回它们的内容。 数据段必须包含要告之从设备的信息:从何寄存器开始读及要读的寄存器数量。错误检测域 为从设备提供了一种验证消息内容是否正确的方法。 .从设备回应 如果从设备产生正常的回应,在回应消息中的功能代码是在查询消息中的功能代码的 回应。 数据段包括了从设备收集的数据:像寄存器值或状态。如果有错误发生,功能代码将 被修改以用于指出回应消息是错误的,同时数据段包含了描述此错误信息的代码。错误检测 域允许主设备确认消息内容是否可用。 每个 MODBUS 帧都包括 地
6、址域功能域数据域 错误检测域 2 RTU 方式 地址功能代 码 数 据 数量 数据 1 .数 据 n CRC 高字 节 CRC 低 字 节 地址域功能域数据域错误检测域 帧定界 : MODBUS RTU方式下,每两个字符之间发送或者接收的时间间隔不能超 过 1.5 倍 字符传输时间。如果两个字符时间间隔超过了3.5 倍的字符传输时间, 规约就认为一帧数据已经接收,新的一帧数据传输开始。 3 ASCII 方式 ASCII 模式 :地址功能代 码 数据数 量 数 据 1 .数据 n LRC 高 字 节 LRC低 字节 回 车 换行 地址域功能域数据域错误检测域 帧定界: “: ”帧起始“CR LF
7、 ”帧结束 ASCII 方式用两个 ASCII 字符表示一个 8 位数据,比如 16 进制的 3A用字符“3” 和字符“ A” 表示。 4 MODBUS TCP MODBUS TCP 模式下,由于模块的地址由IP 地址确定,所以不再有地址域 内容,考虑到TCP 网络是可靠的数据传输网络,故不再有校验数据。但是考虑 到在 IP 网上数据到达的顺序可能与我们预期的数据不一致,故增加了一个数据 序号,考虑到在 MODBUS TCP 协议上承载 MODBUS 协议,还在头部数据中增 加了一个地址域。 5 MODBUS TCP / MODBUS 桥 STC-511 可以用于MODBUS TCP 到 MO
8、DBUS 的桥设备使用,作为MODBUS 桥设 备时,需要在地址域上加上地址,另外对应的串口需要设置为MODBUS 主设备。 由于存在两个串口设备,地址域的最高位MSB=1 则访问串口2, MSB=0 则访问串 口 1。地址域广播地址是把低7 位全部置为1,在发送到MODBUS 总线时,地址修改为0。 地址域为0 表示不访问MODBUS 串口设备。 6 支持命令 我们目前所支持的功能码非常有限,主要包括: 01READ COIL STATUS 02READ INPUT STATUS 03READ HOLDING REGISTERS 04READ INPUT REGISTERS 05FORCE
9、SINGLE COIL 06PRESET SINGLE REGISTER 15FORCE MULTIPLE COILS 16FORCE MULTIPLE REGISTERS 20READ FILE RECORD 21WRITE FILE RECORD 24 READ FIFO QUEUE 7 读继电器状态 功能码: 01 数据起始地址: 0000100008 数据长度:不大于08 (因为只有 8 个输出继电器) 说明:读取输出继电器的状态。 数据说明: 地址描述说明 00001 第 1 个输出继电器1 吸合0 断开 00002 第 2 个输出继电器1 吸合0 断开 00003 第 3 个输出继
10、电器1 吸合0 断开 00004 第 4 个输出继电器1 吸合0 断开 00005 第 5 个输出继电器1 吸合0 断开 00006 第 6 个输出继电器1 吸合0 断开 00007 第 7 个输出继电器1 吸合0 断开 00008 第 8 个输出继电器1 吸合0 断开 00009 第 9 个输出继电器(虚拟)1 吸合0 断开 00010 第 10 个输出继电器(虚拟)1 吸合0 断开 00011 第 11 个输出继电器(虚拟)1 吸合0 断开 00012 第 12 个输出继电器(虚拟)1 吸合0 断开 00013 第 13 个输出继电器(虚拟)1 吸合0 断开 00014 第 14 个输出继
11、电器(虚拟)1 吸合0 断开 00015 第 15 个输出继电器(虚拟)1 吸合0 断开 00016 第 16 个输出继电器(虚拟)1 吸合0 断开 MODBUS 请求 功能码1 BYTE 0X01 起始地址2 BYTE 0X0000 TO 0XFFFF 读取数量2 BYTE 1 TO 2000(0X7D0) MODBUS 响应 功能码1 BYTE 0X01 字节计数1 BYTE N 线圈状态nBYTE n =N or N+1 N =读取数量 /8 如果余数不为 0 则 N=N+1 错误 响应 功能码1 BYTE 0X01+ 0X80 错误代码1 BYTE 0x1 or 0x2 or 0x3
12、or 0x4 举例 请求响应 域名称数据( hex)域名称数据( hex) 功能码01 功能码01 起始地址高 (字节) 00 字节计数03 起始地址低 (字节) 13 27(h)20 状态CD 读取数量高 (字节) 00 35(h)28 状态6B 读取数量低 (字节) 13 38(h)36 状态05 8 读开关量输入 功能码: 02 数据起始地址: 1000011000016 数据长度:不大于16 (因为只有 16 路输入) 说明: 读取输入开关量的状态。 输入的量改变状态需要经过0.1S滤波抗干扰后才会变化。如果用户想知 道改变的时刻,需要读取系统的 FIFO 中的 SOE事件记录或者读取
13、文件中的SOE 记录。 输入量的每次改变都会累积到该路对应的32位计数器上,对于计数,输 入的最高频率可以是1KHz。 数据说明: 地址描述说明 100001 第 1 路开关量状态0 没有通电1 接通电源 100002 第 2 路开关量状态0 没有通电1 接通电源 100003 第 3 路开关量状态0 没有通电1 接通电源 100004 第 4 路开关量状态0 没有通电1 接通电源 100005 第 5 路开关量状态0 没有通电1 接通电源 100006 第 6 路开关量状态0 没有通电1 接通电源 100007 第 7 路开关量状态0 没有通电1 接通电源 100008 第 8 路开关量状态
14、0 没有通电1 接通电源 100009 第 9 路开关量状态0 没有通电1 接通电源 100010 第 10 路开关量状态0 没有通电1 接通电源 100011 第 11 路开关量状态0 没有通电1 接通电源 100012 第 12 路开关量状态0 没有通电1 接通电源 100013 第 13 路开关量状态0 没有通电1 接通电源 100014 第 14 路开关量状态0 没有通电1 接通电源 100015 第 15 路开关量状态0 没有通电1 接通电源 100016 第 16 路开关量状态0 没有通电1 接通电源 MODBUS 请求 功能码1 BYTE 0X02 起始地址2 BYTE 0X00
15、00 TO 0XFFFF 读取数量2 BYTE 1 TO 2000(0X7D0) MODBUS 响应 功能码1 BYTE 0X02 字节计数1 BYTE N 输入状态nBYTE n =N or N+1 N =读取数量 /8 如果余数不为 0 则 N=N+1 错误 响应 功能码1 BYTE 0X02+ 0X80 错误代码1 BYTE 0x1 or 0x2 or 0x3 or 0x4 举例 请求响应 域名称数据( hex)域名称数据( hex) 功能码02 功能码02 起始地址高 (字节) 00 字节计数03 起始地址低 (字节) C4 204(h)197 状态 AC 读取数量高 (字节) 00
16、212(h)205 状态DB 读取数量低 (字节) 16 218(h)213 状态35 9 读保持寄存器 功能码: 03 数据起始地址: 400001400128 数据长度:不大于125 (因为通信缓冲区的限制) 说明: 读取保持寄存器的值。 读取的是 16位整数或者无符合整数。 地址描述说明 400001 当日时间系统当日毫秒时钟低16 位 400002 当日时间系统当日毫秒时钟高16 位 400003 当日时间系统日期低 16 位 400004 当日时间系统日期高 16 位 400005 第 1 路开关量脉冲计数低 16 位计数 400006 第 1 路开关量脉冲计数高 16 位计数 40
17、0007 第 2 路开关量脉冲计数低 16 位计数 400008 第 2 路开关量脉冲计数高 16 位计数 400009 第 3 路开关量脉冲计数低 16 位计数 400010 第 3 路开关量脉冲计数高 16 位计数 400011 第 4 路开关量脉冲计数低 16 位计数 400012 第 4 路开关量脉冲计数高 16 位计数 400013 第 5 路开关量脉冲计数低 16 位计数 400014 第 5 路开关量脉冲计数高 16 位计数 400015 第 6 路开关量脉冲计数低 16 位计数 400016 第 6 路开关量脉冲计数高 16 位计数 400017 第 7 路开关量脉冲计数低 1
18、6 位计数 400018 第 7 路开关量脉冲计数高 16 位计数 400019 第 8 路开关量脉冲计数低 16 位计数 400020 第 8 路开关量脉冲计数高 16 位计数 400021 第 9 路开关量脉冲计数低 16 位计数 400022 第 9 路开关量脉冲计数高 16 位计数 400023 第 10 路开关量脉冲计数低 16 位计数 400024 第 10 路开关量脉冲计数高 16 位计数 400025 第 11 路开关量脉冲计数低 16 位计数 400026 第 11 路开关量脉冲计数高 16 位计数 400027 第 12 路开关量脉冲计数低 16 位计数 400028 第
19、12 路开关量脉冲计数高 16 位计数 400029 第 13 路开关量脉冲计数低 16 位计数 400030 第 13 路开关量脉冲计数高 16 位计数 400031 第 14 路开关量脉冲计数低 16 位计数 400032 第 14 路开关量脉冲计数高 16 位计数 400033 第 15 路开关量脉冲计数低 16 位计数 400034 第 15 路开关量脉冲计数高 16 位计数 400035 第 16 路开关量脉冲计数低 16 位计数 400036 第 16 路开关量脉冲计数高 16 位计数 400037 直流量 1 系数第 1 路直流系数,系统调校 400038 直流量 2 系数第 2
20、 路直流系数,系统调校 400039 直流量 3 系数第 3 路直流系数,系统调校 400040 直流量 4 系数第 4 路直流系数,系统调校 400041 直流量 5 系数第 5 路直流系数,系统调校 400042 直流量 6 系数第 6 路直流系数,系统调校 400043 直流量 7 系数第 7 路直流系数,系统调校 400044 直流量 8 系数第 8 路直流系数,系统调校 400045 模拟量 1 输出第 1 路直流模拟量输出 10000 对应满量程(10V 或 20mA) 400046 模拟量 1 输出第 1 路直流模拟量输出 10000 对应满量程(10V 或 20mA) 4000
21、47 模拟量 1 输出系数系统调校 400048 模拟量 2 输出系数系统调校 400049 模拟量 1 输出偏移量 400050 模拟量 2 输出偏移量 400051 闸门时间0.05s为单位,用于各路频率测量 40060 脉冲输出 1 的脉冲宽度单位 1ms 0 表示不输出 40061 脉冲输出 2 的脉冲宽度单位 1ms 0 表示不输出 40063 脉冲输出 1 的周期单位 1ms 0 表示单次脉冲输出 40064 脉冲输出 2 的周期单位 1ms 0 表示单次脉冲输出 保留 40071 第 1 路模拟量定值报警 输出继电器设置 最高位( BIT15)表示该功能投入, BIT14 表示继
22、电器动作性质 0 表示报警后一直吸合 1 表示报警后吸合设置时间后释 放 低 6 位为动作继电器编号, 0 表示 第 1 路, 40072 第 1 路模拟量定值报警 设置 模拟量的值 40073 第 2 路模拟量定值报警 输出继电器设置 同 40071 40074 第 2 路模拟量定值报警 设置 模拟量的值 40075 第 3 路模拟量定值报警 输出继电器设置 同 40071 40076 第 3 路模拟量定值报警 设置 模拟量的值 40077 第 4 路模拟量定值报警 输出继电器设置 同 40071 40078 第 4 路模拟量定值报警 设置 模拟量的值 40079 第 5 路模拟量定值报警
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MODBUS 规约 中文说明书 资料
链接地址:https://www.31doc.com/p-5197579.html