CN103067238B - 一种兼容于modbus总线的数据采集方法 - Google Patents
一种兼容于modbus总线的数据采集方法 Download PDFInfo
- Publication number
- CN103067238B CN103067238B CN201210582499.2A CN201210582499A CN103067238B CN 103067238 B CN103067238 B CN 103067238B CN 201210582499 A CN201210582499 A CN 201210582499A CN 103067238 B CN103067238 B CN 103067238B
- Authority
- CN
- China
- Prior art keywords
- frame
- machine
- main frame
- command
- address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Abstract
本发明提供了一种兼容于MODBUS总线的数据采集方法,包括如下步骤:S1、主机和从机交互过程中,主机和从机进入MODBUS RTU模式;S2、主机向从机发送切换协议模式的命令帧,从机收到命令帧后,主机和从机由MODBUS RTU模式切换到突发数据模式,从机向主机发送一个回应的命令帧;S3、从机在数据采集过程中向主机即时发送数据帧,相邻的数据帧之间没有间隔;S4、从机收到主机发送的命令帧后,主机和从机切换到MODBUS RTU模式,从机向主机发送一个回应的命令帧。当采用突发数据模式时,从机向主机即时发送消除了帧间隔的数据帧,提高了数据传输速度,提高了数据吞吐率。
Description
技术领域
本发明涉及一种数据采集方法,尤其涉及一种兼容于MODBUS总线的数据采集方法。
背景技术
MODBUS RTU协议广泛用于工业现场总线控制,如PLC,组态软硬件和工业现场变送器,执行器的通讯控制。此协议通过设计实时控制软件,代码执行实现协议功能,通常运行于以太网或RS485等介质上。通过现场总线实现控制和数据采集的要求。
MODBUS RTU协议数据传输链路层基于报文,报文由字符组成,由于协议的规定,报文长度固定,报文帧之间的间隔要求不能缩小。已有技术问题:由此协议进行数据采集,必须将数据分为多个数据帧,每个数据帧必须包括地址、CRC16、命令格式以及不少于4个字符的冗余数据,冗余数据的存在和帧之间的间隔,再加上MODBUS RTU的回应协议必须等待对方回应帧,相当于下一帧数据不能传送,又插入了等待时间,导致实际的带宽下降,数据传输速度慢。
发明内容
本发明所要解决的技术问题是通过切换数据采集模式,使得兼容于MODBUS总线的总机和从机能够自由选择数据的传输方式,当采用突发数据模式时,从机向主机即时发送消除帧间隔的数据帧,提高了数据传输速度。
本发明的技术方案是:一种兼容于MODBUS总线的数据采集方法,包括如下步骤:
S1、主机和从机在现场总线上进行互的过程中,主机和从机进入MODBUS RTU模式;
S2、主机向从机发送切换协议模式的命令帧,从机收到主机发送的该切换协议模式的命令帧后,主机和从机由MODBUS RTU模式切换到突发数据模式,从机向主机发送一个回应的命令帧,该回应的命令帧携带采集到的及时数据;
S3、从机在数据采集过程中向主机即时发送数据帧,相邻的数据帧之间没有间隔;所述数据帧结构包括第一地址域、第一命令域、第一数据域以及第一校验域;所述第一地址域中有从机的地址;所述第一命令域中为空;所述第一数据域中填充采集到的数据;所述第一校验域中有2个字节的校验码;
S4、主机向从机发送命令帧,从机收到主机发送的命令帧后,主机和从机由突发数据模式切换到MODBUS RTU模式,从机向主机发送一个回应的命令帧。
本技术方案的实现通过主机、从机两个嵌入系统在现场总线上进行主从交互,运行于ARM处理器前后台操作系统,以软件协议栈的方式实现,通过串口,RS232构成物理的链路层。软件协议栈包括发送、接收数据的缓存接口,处理发送和接收数据的数据帧,即发送时组包,接收时拆包。MODBUS RTU协议帧按MODBUS协议同时按协议内容和收发字符的时间间隔处理数据帧,进入突发数据模式后仅按协议帧的内容定义并不按收发字符的时间间隔处理数据帧,这样无论数据收发的大小都没有如MODBUS RTU帧间隔的要求,提高了速率;从机接收主机的命令帧后回应,主机按回应自动切回MODBUS RTU协议,实现标准MODBUS RTU协议和数据突发协议的无缝切换。当采用突发数据模式时,从机向主机即时发送消了除帧间隔的数据帧,提高了数据传输速度,提高了数据吞吐率。
进一步地,所述步骤S2中,主机向从机发送的命令帧由4部分组成,依次为第二地址域、第二命令域、第二数据域以及第二校验域;所述第二地址域中有从机的地址,便于该命令帧准确地到达对应的从机;所述第二命令域中有消除数据帧间隔的编码;所述第二数据域中为空;所述第二校验域中有2个字节的校验码。
所述从机回应的命令帧与主机发出的命令帧不同的地方在于:第二数据域中有采集到的及时数据。
所述步骤S2中,所述从机接收到主机发送的命令帧后,对命令帧中消除数据帧间隔的编码进行解码,然后调整为没有帧间隔的数据发送方式,即突发数据模式。
进一步地,所述步骤S4中主机向从机发送的命令帧由4部分组成,依次为第二地址域、第二命令域、第二数据域以及第二校验域。所述第二地址域中有从机的地址,便于该命令帧准确地到达对应的从机;所述第二命令域中有恢复数据帧间隔的编码;所述第二数据域中为空;所述第二校验域中有2个字节的校验码。
所述从机回应的命令帧与主机发出的命令结构和内容相同。
所述步骤S4中,所述从机接收到主机发送的命令帧后,对命令帧中恢复数据帧间隔的编码进行解码,然后调整为有帧间隔的数据发送方式,即MODBUS RTU模式。
进一步地,一个主机能同时对应至少1个从机,每个从机的地址都是唯一的。每一组主从交互中,命令帧中第二地址域的地址与从机的地址相同,数据帧中第一地址域的地址与从机的地址相同。
有益效果:通过切换数据采集模式,使得兼容于MODBUS总线的主机和从机能够自由选择数据的传输方式,当采用突发数据模式时,从机向主机即时发送消除帧间隔的数据帧,提高了数据传输速度,提高了数据吞吐率。
附图说明
图1是主机向从机2发送的进入突发数据模式命令帧的结构框图;
图2是数据突发模式下从机2发送的相邻两个数据帧的结构框图;
图3是主机和从机2退回MODBUS RTU模式命令帧的结构框图;
图4是本发明一个实施例中数据采集方法的流程图;
图5是1个主机对应多个从机的结构示意图。
图中标记:1-第一地址域;2-第一命令域;3-第一数据域;4-第一校验域;5-第二地址域;6-第二命令域;7-第二数据域;8-第二校验域。
具体实施方式
下面结合附图,对本发明的较优的实施例作进一步的详细说明:
实施例1,参见图2和图4,一种兼容于MODBUS总线的数据采集方法,包括如下步骤:
S1、主机和从机在现场总线上进行互的过程中,主机和从机进入MODBUS RTU模式;从机向主机发送数据帧,相邻的数据帧之间有帧间隔;
S2、主机向从机发送切换协议模式的命令帧,从机收到主机发送的该切换协议模式的命令帧后,主机和从机由MODBUS RTU模式切换到突发数据模式,从机向主机发送一个回应的命令帧,该回应的命令帧携带采集到的及时数据;
S3、从机在数据采集过程中向主机即时发送数据帧,相邻的数据帧之间没有间隔;所述数据帧结构包括第一地址域1、第一命令域2、第一数据域3以及第一校验域4;所述第一地址域1中有从机的地址2;所述第一命令域2中为空;所述第一数据域3中填充采集到的数据,包括数据长度和数据内容;所述第一校验域4中有2个字节的校验码;
S4、主机向从机发送命令帧,从机收到主机发送的命令帧后,主机和从机由突发数据模式切换到MODBUS RTU模式,从机向主机发送一个回应的命令帧。
本实施例的实现通过主机、从机两个嵌入系统在现场总线上进行主从交互,运行于ARM处理器前后台操作系统,以软件协议栈的方式实现,通过串口,RS232构成物理的链路层。软件协议栈包括发送、接收数据的缓存接口,处理发送和接收数据的数据帧,即发送时组包,接收时拆包。MODBUS RTU协议帧按MODBUS协议同时按协议内容和收发字符的时间间隔处理数据帧,进入突发数据模式后仅按协议帧的内容定义并不按收发字符的时间间隔处理数据帧,这样无论数据收发的大小都没有如MODBUS RTU帧间隔的要求,提高了速率;从机接收主机的命令帧后回应,主机收到从机的回应命令帧后,主机和对应的从机才切换数据采集的模式。实现标准MODBUS RTU协议和数据突发协议的无缝切换。当采用突发数据模式时,从机向主机即时发送消了除帧间隔的数据帧,提高了数据传输速度,提高了数据吞吐率。
实施例2,参见图1,与实施例1不同的是:所述步骤S2中,主机向从机发送的命令帧由4部分组成,依次为第二地址域5、第二命令域6、第二数据域7以及第二校验域8;所述第二地址域5中有从机的地址2,便于该命令帧准确地到达对应的从机;所述第二命令域6中有消除数据帧间隔的编码,该编码自定义为250;所述第二数据域7中为空;所述第二校验域8中有2个字节的校验码。
所述从机回应的命令帧与主机发出的命令帧不同的地方在于:第二数据域7中有采集到的及时数据。
所述步骤S2中,所述从机接收到主机发送的命令帧后,对命令帧中消除数据帧间隔的编码进行解码,然后调整为没有帧间隔的数据发送方式,即突发数据模式。
实施例3,参见图3,与实施例1至2不同的是:所述步骤S4中主机向从机发送的命令帧由4部分组成,依次为第二地址域5、第二命令域6、第二数据域7以及第二校验域8。所述第二地址域5中有从机的地址2,便于该命令帧准确地到达对应的从机;所述第二命令域6中有恢复数据帧间隔的编码,该编码为251;所述第二数据域7中为空;所述第二校验域8中有2个字节的校验码。
所述从机回应的命令帧与主机发出的命令结构和内容相同。
所述步骤S4中,所述从机接收到主机发送的命令帧后,对命令帧中恢复数据帧间隔的编码进行解码,然后调整为有帧间隔的数据发送方式,即MODBUS RTU模式。
实施例4,参见图1至4,与实施例1至3不同的是:一个主机对应2个从机,2个从机的地址依次为1和2。主从交互中,命令帧中第二地址域5的地址与从机的地址相同,数据帧中第一地址域1的地址与从机的地址相同。
实施例5,参见图1至3,与实施例1至4不同的是:一个主机能同时对应10个从机,10个从机的地址依次为1、2、3、4、5、6、7、8、9、10。每一组主从交互中,命令帧中第二地址域5的地址和对应的从机的地址相同,数据帧中第一地址域1的地址与对应的从机的地址也相同。
实施例6,参见图1至3,与实施例1至4不同的是:一个主机能同时对应40个从机,40个从机的地址依次为1至50中的整数。每一组主从交互中,命令帧中第二地址域5的地址和对应的从机的地址相同,数据帧中第一地址域1的地址与对应的从机的地址也相同。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (6)
1.一种兼容于MODBUS总线的数据采集方法,其特征在于,包括如下步骤:
S1、主机和从机交互过程中,主机和从机进入MODBUS RTU模式;
S2、主机向从机发送切换协议模式的命令帧,从机收到主机发送的该切换协议模式的命令帧后,主机和从机由MODBUS RTU模式切换到突发数据模式,从机向主机发送一个回应的命令帧,该回应的命令帧携带采集到的即时数据;
S3、从机在数据采集过程中向主机即时发送数据帧,相邻的数据帧之间没有间隔;
S4、主机向从机发送命令帧,从机收到主机发送的命令帧后,主机和从机由突发数据模式切换到MODBUS RTU模式,从机向主机发送一个回应的命令帧。
2.根据权利要求1所述的兼容于MODBUS总线的数据采集方法,其特征在于:所述步骤S2中主机向从机发送的命令帧由4部分组成,依次为第二地址域、第二命令域、第二数据域以及第二校验域;所述第二地址域中有从机的地址,第二命令域中有消除数据帧间隔的编码。
3.根据权利要求2所述的兼容于MODBUS总线的数据采集方法,其特征在于:所述步骤S2中,所述从机接收到主机发送的命令帧后,对命令帧中消除数据帧间隔的编码进行解码,然后调整为没有帧间隔的数据发送方式。
4.根据权利要求1所述的兼容于MODBUS总线的数据采集方法,其特征在于:所述步骤S4中主机向从机发送的命令帧由4部分组成,依次为第二地址域、第二命令域、第二数据域以及第二校验域;所述第二地址域中有从机的地址,第二命令域中有恢复数据帧间隔的编码。
5.根据权利要求4所述的兼容于MODBUS总线的数据采集方法,其特征在于:所述步骤S4中,所述从机接收到主机发送的命令帧后,对命令帧中恢复数据帧间隔的编码进行解码,然后调整为有帧间隔的数据发送方式。
6.根据权利要求1至5中任意一项所述的兼容于MODBUS总线的数据采集方法,其特征在于:一个主机能同时对应至少1个从机,每个从机的地址都是唯一的,每一组主从交互中,命令帧中的第二地址域的地址与从机的地址相同,数据帧中第一地址域的地址与从机的地址相同。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210582499.2A CN103067238B (zh) | 2012-12-28 | 2012-12-28 | 一种兼容于modbus总线的数据采集方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210582499.2A CN103067238B (zh) | 2012-12-28 | 2012-12-28 | 一种兼容于modbus总线的数据采集方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103067238A CN103067238A (zh) | 2013-04-24 |
CN103067238B true CN103067238B (zh) | 2015-09-30 |
Family
ID=48109706
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210582499.2A Active CN103067238B (zh) | 2012-12-28 | 2012-12-28 | 一种兼容于modbus总线的数据采集方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103067238B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104346316B (zh) * | 2014-10-22 | 2017-09-15 | 四川东方电气自动控制工程有限公司 | 一种高效串口通信协议的设计方法 |
CN107590099B (zh) * | 2017-08-31 | 2021-04-20 | 深圳市共济科技股份有限公司 | 一种多主机访问从机的方法、扩展装置及存储介质 |
CN110048914A (zh) * | 2019-05-08 | 2019-07-23 | 北京海泽时空科技有限公司 | 一种用于slip协议的丢包检测方法 |
CN110505136B (zh) * | 2019-10-15 | 2021-07-27 | 正星科技股份有限公司 | 分层式modbus通讯系统及方法 |
CN111130971B (zh) * | 2019-12-31 | 2021-10-26 | 苏州数言信息技术有限公司 | 在Modbus RTU网络实现动态分组通信的方法 |
CN111200547B (zh) * | 2019-12-31 | 2021-07-27 | 苏州数言信息技术有限公司 | 在Modbus RTU网络中基于设备类型的多节点选择通信方法 |
CN112468382B (zh) * | 2020-12-20 | 2021-12-28 | 佛山市微风科技有限公司 | 一种经济型基于modbus协议rtu通信方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101094110A (zh) * | 2007-07-18 | 2007-12-26 | 哈尔滨工业大学 | Modbus RTU帧内与帧间字符间隔时间设置和检测显示系统及方法 |
CN102521196A (zh) * | 2011-11-30 | 2012-06-27 | 台达电子企业管理(上海)有限公司 | Modbus数据采集器 |
CN102736605A (zh) * | 2012-06-30 | 2012-10-17 | 李钢 | Modbus通信集中器 |
-
2012
- 2012-12-28 CN CN201210582499.2A patent/CN103067238B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101094110A (zh) * | 2007-07-18 | 2007-12-26 | 哈尔滨工业大学 | Modbus RTU帧内与帧间字符间隔时间设置和检测显示系统及方法 |
CN102521196A (zh) * | 2011-11-30 | 2012-06-27 | 台达电子企业管理(上海)有限公司 | Modbus数据采集器 |
CN102736605A (zh) * | 2012-06-30 | 2012-10-17 | 李钢 | Modbus通信集中器 |
Also Published As
Publication number | Publication date |
---|---|
CN103067238A (zh) | 2013-04-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103067238B (zh) | 一种兼容于modbus总线的数据采集方法 | |
CN105072021B (zh) | 一种调度自动化系统跨网段的消息转发方法 | |
CN201146536Y (zh) | 基于arm7 cpu核的mvb-worldfip网关 | |
CN102143458A (zh) | 基于无线通信网络中gsm短消息传输的多协议转换器 | |
CN101729572B (zh) | Modbus工业现场总线与无线zigbee间的协议转换装置及其方法 | |
CN102298375A (zh) | 一种仿人机器人实时控制系统和方法 | |
CN110225557A (zh) | 一种基于物联网的通信方法及装置 | |
CN101650872B (zh) | 用电信息采集系统及方法 | |
CN102420734A (zh) | 一种can总线拓扑结构实现系统 | |
CN101753486A (zh) | 一种工业自动化现场总线网关设备 | |
CN204463106U (zh) | Um-bus总线通道故障检测控制器 | |
CN103353750A (zh) | 一种基于多总线的微波冶金控制系统及方法 | |
CN103777579B (zh) | 一种核电站tg和dcs通讯系统及方法 | |
CN101951351A (zh) | Hdlc-can网关设备 | |
CN205945786U (zh) | 一种串行口‑以太网双向Modbus通信网关 | |
CN202513948U (zh) | 以太网至profibus-dp的主从式协议转换网关 | |
CN104508632B (zh) | 一种数据转发方法、装置及系统 | |
CN104378778A (zh) | 物联网中主从站之间进行通信的方法、系统及转换网关 | |
CN105049432A (zh) | 基于实时数据总线的以太网与2m复接通道的协议转换方法 | |
CN103077152B (zh) | 一种用于智能变电站终端设备芯片间的通信加速方法 | |
CN103064810A (zh) | 一种实现卫星串口通信的方法 | |
CN203430524U (zh) | 一种双网络盾构机控制系统 | |
CN107965343B (zh) | 透明的液压支架电液控制通信系统 | |
CN205384605U (zh) | 一种民用航空气象报文转换器 | |
CN104133447A (zh) | 一种工程机械控制系统及工程机械 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: 518000 1607-1611, block B, building 6, Shenzhen International Innovation Valley, Dashi Road, Xili community, Xili street, Nanshan District, Shenzhen, Guangdong Patentee after: Shenzhen Yankong Automation Technology Co.,Ltd. Address before: 518000 fourth floor, Wanji medical research building, No. 39, kekekezhong Second Road, high tech Central District, Shenzhen, Guangdong Province Patentee before: SHENZHEN YAKO AUTOMATION TECHNOLOGY Co.,Ltd. |
|
CP03 | Change of name, title or address |