《一种串行MODBUS扩展通信的方法.pdf》由会员分享,可在线阅读,更多相关《一种串行MODBUS扩展通信的方法.pdf(18页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 (43)申请公布日 (21)申请号 201410707374.7(22)申请日 2014.11.27H04L 12/40(2006.01)H04L 1/22(2006.01)(71)申请人 上海华冠电子设备有限责任公司地址 200082 上海市虹口区唐山路 760 号(72)发明人 黄东(74)专利代理机构 上海光华专利事务所 31219代理人 高园园(54) 发明名称一种串行 Modbus 扩展通信的方法(57) 摘要本发明提供一种串行 Modbus 扩展通信的方法,串行Modbus扩展通信支持的物理层与串行Modbus 标准通信相同的物理层 ;设备在进入串行Modbus。
2、 扩展通信模式后,采用 64bit 地址字段进行通信 ;串行 Modbus 扩展通信支持单播、广播无应答、广播有应答三种通信模式;从站进入串行Modbus 扩展通信模式后,在未接收到新指令超时后自动退出串行Modbus扩展通信模式,或通过EXIT 强制退出命令强制退出串行 Modbus 扩展通信模式。本发明的串行Modbus扩展通信的方法能够使得设备在 Modbus 地址未初始化或出现冲突时,还能与 Modbus 设备进行通信,可以枚举出无故障在线的所有从站,方便在线对串行 Modbus 网络进行故障诊断、安装、调试 ;可以方便设备的资产管理和问题跟踪。(51)Int.Cl.(19)中华人民共。
3、和国国家知识产权局(12)发明专利申请权利要求书2页 说明书11页 附图4页(10)申请公布号 CN 104486182 A(43)申请公布日 2015.04.01CN 104486182 A1/2 页21.一种串行 Modbus 扩展通信的方法,其特征在于,包括 :串行 Modbus 扩展通信支持的物理层与串行 Modbus 标准通信相同的物理层 ;设备在进入串行 Modbus 扩展通信模式后,采用 64bit 地址字段进行通信 ;串行 Modbus 扩展通信支持单播、广播无应答、广播有应答三种通信模式 ;从站进入串行Modbus扩展通信模式后,在未接收到新指令超时后自动退出串行Modbus。
4、 扩展通信模式,或通过 EXIT 强制退出命令强制退出串行 Modbus 扩展通信模式。2.根据权利要求1所述的串行Modbus扩展通信的方法,其特征在于:串行链路的Modbus 帧的协议数据单元由地址字段、功能码、数据和校验域组成。3.根据权利要求 1 所述的串行 Modbus 扩展通信的方法,其特征在于 :串行 Modbus 扩展通信的地址字段为 64bit,有效地址为 0 0xFFFF FFFF FFFF FFF0,其中 0 为广播地址,其余为保留地址。4.根据权利要求1所述的串行Modbus扩展通信的方法,其特征在于 :地址字段由8bit的地址长度和不定长度的地址组成 ;所述地址为出厂。
5、设置的全球唯一的地址或产品序列号。5.根据权利要求 1 所述的串行 Modbus 扩展通信的方法,其特征在于 :所述单播模式下,主站寻址单个从站,从站接收并处理完请求之后,向主站返回一个报文;所述广播无应答模式下,主站向所有从站发送写请求,从站不应答 ;所述广播有应答模式下,主站向所有从站发送读请求,每个从站都应答。6.根据权利要求 1 所述的串行 Modbus 扩展通信的方法,其特征在于 :在 Modbus 扩展通信模式下,不响应标准 Modbus 帧。7.根据权利要求1所述的串行Modbus扩展通信的方法,其特征在于 :触发串行Modbus扩展通信模式的方式为 :主站按固定间隔发送两次串行。
6、模式初始化命令,如从站确认收到两次初始化命令,并且中间无其它数据,则进入串行 Modbus 扩展通信模式,其中从站无应答。8.根据权利要求 1 所述的串行 Modbus 扩展通信的方法,其特征在于 :串行 Modbus 扩展通信模式的自动退出方式为 :在从站进入串行 Modbus 扩展通信模式后,从站自动开启一个倒计时定时器 ;从站每次收到串行 Modbus 扩展通信指令时重置倒计时定时器 ;当倒计时定时器的计时到达时,自动退出扩展通信模式,其中从站无应答。9.根据权利要求 1 所述的串行 Modbus 扩展通信的方法,其特征在于 :所述广播有应答模式包括以下内容 :主站向所有从站发送有应答的。
7、广播命令 ;从站在接收到有应答的广播命令后,处于随机等待时间 Trandom ;等待 Trandom 时间后,从站执行检测发言动作,检测总线是否空闲 ;如从站检测到总线空闲则发送一个发言声明帧 ;从站再等待 Tcheck 时间用于确认总线是否空闲 ;如 Tcheck 时间内总线空闲,则从站发送应答帧 ;如 Tcheck 时间内检测到数据,则从站重新随机等待 Trandom 时间 ;如从站未检测到总线空闲,则继续等待Trandom时间 ;如从站在等待Trandom时间后检测到最近 Tidle 时间内总线被占用,则继续等待,直至 Tidle 时间内总线为空闲的,从站再权 利 要 求 书CN 104。
8、486182 A2/2 页3发送一个发言声明帧 ;主站在总线空闲 Ttimeout 后可以发送下一条有应答的广播命令。10.根据权利要求 1 所述的串行 Modbus 扩展通信的方法,其特征在于 :主站自动设置所有从站的地址时,包括以下步骤 :步骤 S71、主站发送进入串行 Modbus 扩展通信模式的初始化命令至从站 ;步骤 S72、主站等待 Tdelay 时间 ;步骤 S73、主站再次发送进入串行 Modbus 扩展通信模式的初始化命令至从站 ;步骤 S74、主站发送读取参数命令功能的枚举地址命令至从站 ;步骤 S75、主站循环读取从站的 64bit 地址 ;步骤 S76、主站等待 Tti。
9、meout 时间,确保主站下次发送数据前,所有从站数据已发送数据完毕,总线空闲 ;步骤 S77、主站按顺序设置从站 Modbus 地址 ;步骤 S78、主站发送 EXIT 强制退出命令退出串行 Modbus 扩展通信模式。权 利 要 求 书CN 104486182 A1/11 页4一种串行 Modbus 扩展通信的方法技术领域0001 本发明涉及通信的技术领域,特别是涉及一种串行 Modbus 扩展通信的方法。背景技术0002 串行 Modbus 协议是国际标准的现场通信总线的一种。当在一 Modbus 网络上通信时,此协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产。
10、生何种行动。如果需要回应,控制器将生成反馈信息并用Modbus协议发出。在其它网络上,包含了 Modbus 协议的消息转换为在此网络上使用的帧或包结构。这种转换也扩展了根据具体的网络解决节地址、路由路径及错误检测的方法。0003 由于具有实现方式简单、实现成本较低、支持的厂商及设备多等优点,串行 Modbus协议在楼宇控制、工业现场控制等领域有着广泛的应用。0004 然而,串行 Modbus 协议本身具有一定的局限性,例如必须采用主从方式、寻址空间只有8bit。这就要求一条总线上的设备具有唯一的8bit地址(实际只能使用0247),否则会造成通信异常。由于地址只有8bit,通常只能在现场设置,。
11、因此,串行Modbus协议具有设置不便、容易冲突等缺陷。0005 现有技术中,地址设置方式通常采用以下方法 :0006 (1) 拨码开关的方法0007 该方法设计简单,但存在拨码开关本身质量不是很可靠的问题 ;同时,由于拨码开关需要占用一定的 PCB 及外壳开窗,对一些小型化的产品不是很适用。0008 (2) 独立编程的方法0009 该方法须采用电脑或专用的编程器,且只连接待设置的一个设备,并对其设置地址。不足之处是需要设备脱离总线进行地址的设置。0010 3) 选中编程的方法0011 该方法通常采用电脑作为主站连接待设置设备所在总线,电脑发送设置地址的广播指令,只有被选中的设备才会响应。因此。
12、,通常采用设备上额外的按键设置设备处于选中状态。0012 综上所述,现有技术虽然已经可以解决初始安装时串行 Modbus 地址的设置问题,但在运维过程中,对于诊断、定位和修复 Modbus 总线地址冲突等异常问题的解决还是比较繁琐和低效的。例如在无法准确定位故障设备前,可能需要采用尝试法逐个将设备脱离总线来进行定位和排除故障,从而导致操作繁琐,效率低下的问题。发明内容0013 鉴于以上所述现有技术的缺点,本发明的目的在于提供一种串行 Modbus 扩展通信的方法,能够实现串行 Modbus 总线出现异常时的故障诊断、定位和修复,也便于串行Modbus 总线安装时的地址等参数的初始化设置工作。0。
13、014 为实现上述目的及其他相关目的,本发明提供一种串行 Modbus 扩展通信的方法,说 明 书CN 104486182 A2/11 页5串行 Modbus 扩展通信支持的物理层与串行 Modbus 标准通信相同的物理层 ;设备在进入串行 Modbus 扩展通信模式后,采用 64bit 地址字段进行通信 ;串行 Modbus 扩展通信支持单播、广播无应答、广播有应答三种通信模式 ;从站进入串行 Modbus 扩展通信模式后,在未接收到新指令超时后自动退出串行 Modbus 扩展通信模式,或通过 EXIT 强制退出命令强制退出串行 Modbus 扩展通信模式。0015 根据上述的串行Modbu。
14、s扩展通信的方法,其中 :串行链路的Modbus帧的协议数据单元由地址字段、功能码、数据和校验域组成。0016 根据上述的串行Modbus扩展通信的方法,其中 :串行Modbus扩展通信的地址字段为 64bit,有效地址为 0 0xFFFF FFFF FFFF FFF0,其中 0 为广播地址,其余为保留地址。0017 根据上述的串行Modbus扩展通信的方法,其中 :地址字段由8bit的地址长度和不定长度的地址组成 ;所述地址为出厂设置的全球唯一的地址或产品序列号。0018 根据上述的串行 Modbus 扩展通信的方法,其中 :0019 所述单播模式下,主站寻址单个从站,从站接收并处理完请求之。
15、后,向主站返回一个报文 ;0020 所述广播无应答模式下,主站向所有从站发送写请求,从站不应答 ;0021 所述广播有应答模式下,主站向所有从站发送读请求,每个从站都应答。0022 根据上述的串行 Modbus 扩展通信的方法,其中 :在 Modbus 扩展通信模式下,不响应标准 Modbus 帧。0023 根据上述的串行Modbus扩展通信的方法,其中 :触发串行Modbus扩展通信模式的方式为 :主站按固定间隔发送两次串行模式初始化命令,如从站确认收到两次初始化命令,并且中间无其它数据,则进入串行 Modbus 扩展通信模式,其中从站无应答。0024 根据上述的串行Modbus扩展通信的方。
16、法,其中 :串行Modbus扩展通信模式的自动退出方式为 :在从站进入串行 Modbus 扩展通信模式后,从站自动开启一个倒计时定时器 ;从站每次收到串行 Modbus 扩展通信指令时重置倒计时定时器 ;当倒计时定时器的计时到达时,自动退出扩展通信模式,其中从站无应答。0025 根据上述的串行 Modbus 扩展通信的方法,其中 :所述广播有应答模式包括以下内容:0026 主站向所有从站发送有应答的广播命令 ;0027 从站在接收到有应答的广播命令后,处于随机等待时间 Trandom ;0028 等待 Trandom 时间后,从站执行检测发言动作,检测总线是否空闲 ;0029 如从站检测到总线。
17、空闲则发送一个发言声明帧 ;从站再等待 Tcheck 时间用于确认总线是否空闲 ;如 Tcheck 时间内总线空闲,则从站发送应答帧 ;如 Tcheck 时间内检测到数据,则从站重新随机等待 Trandom 时间 ;0030 如从站未检测到总线空闲,则继续等待Trandom时间 ;如从站在等待Trandom时间后检测到最近 Tidle 时间内总线被占用,则继续等待,直至 Tidle 时间内总线为空闲的,从站再发送一个发言声明帧 ;0031 主站在总线空闲 Ttimeout 后可以发送下一条有应答的广播命令。0032 根据上述的串行 Modbus 扩展通信的方法,其中 :主站自动设置所有从站的地。
18、址时,包括以下步骤 :说 明 书CN 104486182 A3/11 页60033 步骤 S71、主站发送进入串行 Modbus 扩展通信模式的初始化命令至从站 ;0034 步骤 S72、主站等待 Tdelay 时间 ;0035 步骤 S73、主站再次发送进入串行 Modbus 扩展通信模式的初始化命令至从站 ;0036 步骤 S74、主站发送读取参数命令功能的枚举地址命令至从站 ;0037 步骤 S75、主站循环读取从站的 64bit 地址 ;0038 步骤 S76、主站等待 Ttimeout 时间,确保主站下次发送数据前,所有从站数据已发送数据完毕,总线空闲 ;0039 步骤 S77、主站。
19、按顺序设置从站 Modbus 地址 ;0040 步骤 S78、主站发送 EXIT 强制退出命令退出串行 Modbus 扩展通信模式。0041 如上所述,本发明的串行 Modbus 扩展通信的方法,具有以下有益效果 :0042 (1)能够使得设备在Modbus地址未初始化或出现冲突时,还能与Modbus设备进行通信,方便在线对串行 Modbus 网络进行故障诊断、安装、调试,无需物理上脱离网络 ;0043 (2) 支持串行 Modbus 扩展通信模式的设备可以方便地将 Modbus 地址与设备全球唯一的地址相对应,上层应用程序无需扩展地址 ;0044 (3) 可以方便设备的资产管理和问题跟踪。附。
20、图说明0045 图 1 显示为本发明的串行 Modbus 扩展通信系统的结构示意图 ;0046 图 2 显示为本发明的串行链路的 Modbus 帧中协议数据单元的结构示意图 ;0047 图 3 显示为本发明的串行 Modbus 扩展通信地址字段 ;0048 图 4 显示为本发明的单播模式的主 / 从站通信时序图 ;0049 图 5 显示为本发明的广播无应答模式的主 / 从站通信时序图 ;0050 图 6 显示为本发明的广播有应答模式的主 / 从站通信时序图 ;0051 图 7 显示为本发明的自动设置从站地址流程图。具体实施方式0052 以下通过特定的具体实例说明本发明的实施方式,本领域技术人员。
21、可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。0053 需要说明的是,本实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。0054 本发明的串行 Modbus 扩展通信的方法包括以下内容 :0055 (1) 串 行 Modbus 扩 展 通 信 支 持 的 物 理 层 与。
22、 串 行 Modbus 标 准 通 信 (GB/T 19582.2-2008) 相同的物理层。0056 具体地,串行 Modbus 扩展通信采用与串行 Modbus 标准通信相同的物理层,安装EIA/TIA-485( 也称 RS485 标准 ) 进行电气接口。该 RS485 标准允许标准“两线配置”的点说 明 书CN 104486182 A4/11 页7对点和多点系统,此外一些设备可以实现“四线配置”RS485 接口。0057 与串行Modbus标准系统一样,在串行Modbus扩展通信系统中,同一时间只能有一个主站设备和一个或几个从站设备在一个无源串行链路上进行通信。每台设备可以直接接到干线电。
23、缆上,或经分支电缆连接到一个无源分支器,或经专用电缆连接到一个有源分支器。典型的串行 Modbus 扩展通信系统的拓扑图如图 1 所示。其中,Master 为主站、Slave为从站、Passive Tap 为无源分支器、Active Tap 为有源分支器。ITr 为干线接口,以及级干线之间的接口。IDv 为分支接口,设备和无源分支器间的接口。AUI 为附属单元接口,以及设备和有源分支器间的接口。LT 为终端匹配电阻。0058 串行 Modbus 扩展通信的通信帧格式与串行 Modbus 标准的通信帧格式类似。如图2所示,串行Modbus扩展通信链路的Modbus帧的协议数据单元(PDU)由地址。
24、字段、功能码、数据、校验域组成。0059 (2) 设备在进入串行 Modbus 扩展通信模式后,采用 64bit 地址字段进行通信。0060 具体地,与串行Modbus标准通信只有8bit的地址字段不同,本发明的地址字段由8bit 的地址长度和不定长度的地址组成,如图 3 所示。优选地,串行 Modbus 扩展通信的地址字段为 64bit,有效地址为 0 0xFFFF FFFF FFFF FFF0,其中 0 为广播地址,其余为保留地址。其中,地址为出厂设置的全球唯一的地址或产品序列号0061 (3) 串行 Modbus 扩展通信支持单播、广播无应答、广播有应答三种通信模式。0062 串行 Mo。
25、dbus 扩展通信在串行 Modbus 标准通信的单播模式和广播无应答模式外,还支持广播有应答通信模式。下面详细介绍一下上述三种通信模式 :0063 A、单播模式0064 主站寻址单个从站 ( 地址 1 0xFFFF FFFF FFFF FFF0),从站接收并处理完请求之后,向主站返回一个报文 ( 即一个“应答”)。其中,单播模式的主 / 从站通信时序图如图4 所示。0065 B、广播无应答模式0066 主站向所有从站 ( 地址为 0) 发送写请求,从站不应答。其中,广播无应答模式的主 / 从站通信时序图如图 5 所示。0067 C、广播有应答模式0068 主站向所有从站 ( 地址为 0) 发。
26、送读请求,每个从站都应答。在广播有应答模式下进行通信时,为兼顾效率和解决通信冲突问题,本发明采用了如图 6 所示的载波侦听和冲突检测通信机制发送应答数据。具体地,广播有应答模式包括以下内容 :0069 1) 主站向所有从站发送有应答的广播命令。0070 2) 从站在接收到有应答的广播命令后,处于随机等待时间 Trandom( 例如,10-64个字节的传输时间 )。0071 3) 等待 Trandom 时间后从站执行检测发言动作,检测总线是否空闲。0072 4) 如从站检测到总线空闲则发送一个发言声明帧 ;从站再等待 Tcheck 时间 ( 例如,3 个字节的传输时间 ) 用于确认总线是否空闲 。
27、;如 Tcheck 时间内总线空闲,则从站发送应答帧 ;如 Tcheck 时间内检测到数据,则从站重新随机等待 Trandom 时间。0073 本发明的发言声明帧采用 7 个字节,主站无需回复,发言声明帧格式如表 1 所示。0074 其中,检测总线空闲类似于先进先出 (FIFO) 机制。假设有一个定时器,定时间隔说 明 书CN 104486182 A5/11 页8为当前通信速率下一个字节通信所需花费的时间。假设 Tidle 的时间为 10 个字节传输所需花费的时间,定时器会定时刷新前 10 个时刻的总线状态。因此,Tidle 的结束时间与Trandom 的结束时间相同。检测总线空闲就是查看在从。
28、 Tramdon 结束算起向前倒退 Tidle时间内总线是否空闲,只要查看定时器刷新的 10 个寄存器是否全为空闲即可。0075 表 1、发言声明帧格式0076 内容 字节数 说明或示例地址长度 1 字节 固定为 0x02短地址 2 字节 64 位地址的低 16 位功能码 1 字节 固定为 0x65数据长度 1 字节 固定为 0x00CRC 2 字节 0077 5) 如从站未检测到总线空闲,则继续等待 Trandom 时间 ;如从站在等待 Trandom时间后检测到最近 Tidle 时间内总线被占用,则继续等待,直至 Tidle 时间内总线为空闲的,从站再发送一个发言声明帧。0078 6) 主。
29、站在总线空闲 Ttimeout( 例如,74 字节的传输时间 ) 后可以发送下一条有应答的广播命令。0079 (4) 从站进入串行 Modbus 扩展通信模式后,在未接收到新指令超时后自动退出串行 Modbus 扩展通信模式,或通过 EXIT 强制退出命令强制退出串行 Modbus 扩展通信模式。0080 在串行 Modbus 扩展通信模式下,不响应标准 Modbus 帧。0081 具体地,本发明的串行 Modbus 扩展通信模式是需要特殊指令触发的,从而避免偶然因素触发而导致系统错误。本发明中,触发串行 Modbus 扩展通信模式的方式为 :主站按固定间隔 Tdelay 发送两次串行模式初始。
30、化命令 INIT,如从站确认收到两次 INIT 命令,并且中间无其它数据,则进入串行 Modbus 扩展通信模式,其中从站无应答。为便于现场识别,从站可以用 LED 灯等方式指示进入串行 Modbus 扩展通信模式状态。需要说明的是,初始化命令 INIT 为串行 Modbus 标准通信系统中诊断功能 0x08 的保留子功能码,其格式如表 2 所示。0082 表 2、初始化命令 INIT 的 Modbus 帧格式0083 内容 字节数 说明或示例地址 1 字节 固定为 0x00,广播地址功能码 1 字节 固定为 0x08功能子码 2 字节 固定为 0x30,无需响应说 明 书CN 1044861。
31、82 A6/11 页90084 数据 0 字节 CRC 2 字节 0085 串行Modbus扩展通信模式的退出采用超时自动退出和EXIT强制退出命令强制退出两种方式,以避免系统死锁在串行 Modbus 扩展通信模式,导致常规应用受影响。本发明中,串行 Modbus 扩展通信模式的自动退出方式为 :在从站进入串行 Modbus 扩展通信模式后,从站自动开启一个时间为 Texit 的倒计时定时器 ;当到达 Texit 时,自动退出扩展通信模式,其中从站无应答。在串行 Modbus 扩展通信模式下,从站每次接收到串行 Modbus 扩展通信命令,就会重置该倒计时定时器,以避免在正常调试时需要反复重新。
32、进入串行 Modbus扩展通信模式。0086 在通过EXIT强制退出命令强制退出串行Modbus扩展通信模式时,从站不应答。需要说明的是,EXIT 强制退出命令帧格式如表 3 所示。0087 表 3、强制退出命令 EXIT 帧格式0088 0089 串行 Modbus 扩展通信设计了读取参数功能码 0x66,该功能码支持单播及广播有应答两种通信模式,主站发送的读取参数命令帧格式如下表 4 所示。0090 表 4、读取参数命令的帧格式0091 内容 字节数 说明或示例地址长度 1 字节 固定为 0x04短地址 4 字节 64 位地址 ,0x00 为广播地址功能码 1 字节 固定为 0x66功能子。
33、码 1 字节 数据长度 1 字节 值为 N(0-255)说 明 书CN 104486182 A7/11 页100092 数据 Nx2 字节 请求内容CRC 2 字节 0093 从站采用载波侦听和冲突检测通信机制进行应答,从站发送的读取参数的响应帧格式如下表 5 所示。0094 表 5、读取参数命令的响应帧格式0095 内容 字节数 说明或示例地址长度 1 字节 固定为 0x04短地址 4 字节 64 位地址 , 本机地址功能码 1 字节 固定为 0x66功能子码 1 字节 数据长度 1 字节 值为 N(0-255)数据 Nx2 字节 返回内容CRC 2 字节 0096 从站的读取参数命令的错误响应帧格式格式如下表 6 所示。0097 表 6、读取参数命令的错误响应帧格式0098 内容 字节数 说明或示例地址长度 1 字节 固定为 0x04短地址 4 字节 64 位地址 , 本机地址功能码 1 字节 固定为 0xE6功能子码 1 字节 数据长度 1 字节 固定为 0x01异常码 2 字节 错误码CRC 2 字节 0099 本发明中,读取参数命令的子功能如表 7 所示。0100 表 7、读取参数命令的的子功能说 明 书CN 104486182 A。