CN110620713B - Modbus协议共享通讯的方法和装置 - Google Patents

Modbus协议共享通讯的方法和装置 Download PDF

Info

Publication number
CN110620713B
CN110620713B CN201910858858.4A CN201910858858A CN110620713B CN 110620713 B CN110620713 B CN 110620713B CN 201910858858 A CN201910858858 A CN 201910858858A CN 110620713 B CN110620713 B CN 110620713B
Authority
CN
China
Prior art keywords
data
communication
application program
modbus protocol
modbusrtu
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
Application number
CN201910858858.4A
Other languages
English (en)
Other versions
CN110620713A (zh
Inventor
吴浩峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Yanneng Technology Co ltd
Guangsheng (Tianjin) Electric Power Intelligent Technology Co.,Ltd.
Original Assignee
Beijing Yanneng Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Yanneng Technology Co ltd filed Critical Beijing Yanneng Technology Co ltd
Priority to CN201910858858.4A priority Critical patent/CN110620713B/zh
Publication of CN110620713A publication Critical patent/CN110620713A/zh
Application granted granted Critical
Publication of CN110620713B publication Critical patent/CN110620713B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40006Architecture of a communication node
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40208Bus networks characterized by the use of a particular bus standard
    • H04L2012/40228Modbus

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Communication Control (AREA)

Abstract

本发明公开了Modbus协议共享通讯的装置,包括:ModbusRTU设备、数据共享设备和应用程序;Modbus协议共享通讯的方法,包括S01:计算读取的数据、S02:缓存通讯数据至缓冲区、S03:判断读取数据的范围和S04:将数据进行反馈回复、S05:应用程序写入数据的控制和S06:写指令数据反馈。本发明中,该Modbus协议共享通讯的方法和装置可以在不更换设备的情况下,通过ModbusRTU协议实现通讯设备同时为多个应用系统进行通讯的效果,并且最大化的达到了数据的快速反应和快速控制作用,满足了多负荷的使用需求,可以对原有的通过串口ModbusRTU协议通讯的设备进行通讯的应用程序实现无缝替换的效果,也不需要对原有的应用程序进行任何修改和配置,满足了多样化的ModbusRTU协议通讯设备的需求。

Description

Modbus协议共享通讯的方法和装置
技术领域
本发明涉及通讯设备通讯控制技术领域,尤其涉及Modbus协议共享通讯的方法和装置。
背景技术
当前很多设备通讯都是采用标准的ModbusRTU通讯协议,采用RS232或者RS485的串口进行数据通讯,串口通讯有个特点是一个串口只能由一个通讯设备与其进行连接,串口设备和一个通讯设备建立连接以后,其他设备即使接上数据线行业无法再次打开串口进行通讯,而在实际的应用中经常会存在一个ModbusRTU的串口设备需要多个系统对设备进行通讯和控制。
目前常用的通讯和控制方式主要有两种,一种是采用串口数据缓存队列形式将多个ModbusRTU协议的报文进行缓存,然后采用队列形式对一个串口设备进行通讯,返回数据返回到对应的原采集端口形式,这种形式在对协议数据量比较大的设备发送的数据分包发送和处理的时候,很容易导致反馈的数据反馈出错,导致数据不完整,并且对于多个客户端同时快速向一个串口发送请求时,因为串口相应速率的影响,不可能做到对多个端口的反馈,导致缓存队列堆积,堆积的结果是多个应用端系统的反应超时,拉低反应速度并且会导致系统提示通讯故障,另一种是采用物理串口分离硬件接入多个应用,多个应用轮训打开串口的方法,这种形式的两个串口应用程序轮询打开串口操作的方法通讯效率很低,对于需要快速通讯的应用场景无法达到要求,并且如果两个应用同时打开串口操作也会导致数据混乱,无法满足多个串口同步打开操作的效果。
发明内容
本发明的目的是为了解决现有技术中存在的缺点,而提出的Modbus协议共享通讯的方法和装置。
为了实现上述目的,本发明采用了如下技术方案:Modbus协议共享通讯的装置,包括:ModbusRTU设备、数据共享设备和应用程序;
所述数据共享设备由上壳体和下壳体对应卡合组装而成;
所述下壳体的外壁开设有网口和串口;
所述下壳体的内部嵌设有逻辑处理芯片;
所述数据共享设备上的串口与ModbusRTU设备上的串口对应连接,所述数据共享设备与应用程序对应连接。
作为上述技术方案的进一步描述:
所述网口的数量至少为一个,其中,网口用于将数据共享设备与通讯网络连接。
作为上述技术方案的进一步描述:
所述串口的数量至少为两个,其中,串口用于将数据共享设备与其他设备进行串口连接。
作为上述技术方案的进一步描述:
所述逻辑处理芯片由通讯数据处理模块、通讯数据缓存模块、通讯数据判断模块和通讯数据反馈模块组成,其中,通讯数据处理模块用于处理读取的通讯数据,通讯数据缓存模块用于将计算后的通讯数据缓存到缓冲区,通讯数据判断模块用于判断读取的通讯数据的数据范围,通讯数据反馈模块用于将通讯数据反馈到其他应用程序上。
Modbus协议共享通讯的方法,包括以下步骤:
S01:计算读取的数据,首先通过应用程序和数据共享设备的通讯需求计算出需要读取的ModbusRTU设备的寄存器地址范围,根据地址范围循环快速读取Modbus协议的数据区数据;
S02:缓存通讯数据至缓冲区,通讯数据采集回来的数据不做数据解析,并通过通讯数据缓存模块将内存块缓存更新到数据共享器的内存中;
S03:判断读取数据的范围,当其他应用程序采用Modbus协议进行数据读取时,通过通讯数据判断模块自动判断读取的通讯数据的寄存器地址是否在已经缓存的数据范围内,如果不在缓冲范围内则自动扩充采集地址区域,缓存更多地址的数据;
S04:将数据进行反馈回复,根据通讯数据的判断结果,通过通讯数据反馈模块将得到的判断结果按照Modbus协议第一时间反馈回复给应用程序;
S05:应用程序写入数据的控制,多个应用程序对于写数据的指令都将写指令发送到数据共享设备,数据共享设备将多个写指令进行判断汇总,根据优先级将写指令写入ModbusRTU设备;
S06:写指令数据反馈,数据共享设备将ModbusRTU设备反馈的写数据成功或者失败的信息转换为应用程序的反馈指令,将指令反馈给应用程序。
作为上述技术方案的进一步描述:
所述步骤S01中,通讯数据的算法采用集合算法进行计算,通过将读取Modbus协议的数据区和读取数据的寄存器地址范围进行同一集合的集合计算,得到满足通讯数据计算的范围集合。
作为上述技术方案的进一步描述:
所述步骤S02中,数据共享设备和其他ModbusRTU设备均采用自己的缓存内容可以进行快速通讯,并及时的更新系统内存中的原有数据,这些数据能够为应用程序提供最新的数据支持。
作为上述技术方案的进一步描述:
所述步骤S03中,当判断读取的通讯数据地址在已有的范围内,则直接采用内存中的缓存数据进行数据反馈;当判断读取的通讯数据地址超过了已有的缓存区,则系统会自动扩充先有的读取缓冲区并及时进行数据更新,更新后将数据反馈给应用程序。
作为上述技术方案的进一步描述:
所述步骤S04中,当应用程序采集的数据已经在数据共享设备的内存中,则直接将内存区的数据按照Modbus协议回复给应用程序。
作为上述技术方案的进一步描述:
所述步骤S05中,当其他应用程序发过来对数据共享设备的写指令,则系统直接将写指令采用和ModbusRTU设备的通讯地址发到ModbusRTU设备中,实现快速控制的效果。
有益效果
本发明提供了Modbus协议共享通讯的方法和装置。具备以下有益效果:
(1):该Modbus协议共享通讯的方法和装置可以在不更换设备的情况下,通过ModbusRTU协议实现通讯设备同时为多个应用系统进行通讯的效果,并且最大化的达到了数据的快速反应和快速控制作用,满足了多负荷的使用需求。
(2):该Modbus协议共享通讯的方法和装置可以对原有的通过串口ModbusRTU协议通讯的设备进行通讯的应用程序实现无缝替换的效果,同时也不需要对原有的应用程序进行任何修改和配置,满足了多样化的ModbusRTU协议通讯设备的运行需求。
附图说明
图1为本发明提出的Modbus协议共享通讯的装置中ModbusRTU设备的结构示意图;
图2为本发明的电路连接结构示意图;
图3为本发明中逻辑处理芯片的电路连接示意图;
图4为本发明中Modbus协议共享通讯的方法的流程示意图。
图例说明:
1、数据共享设备;11、上壳体;12、下壳体;2、网口;3、串口;4、逻辑处理芯片;5、ModbusRTU设备;6、应用程序。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
如图1-4所示,Modbus协议共享通讯的装置,包括:ModbusRTU设备5、数据共享设备1和应用程序6;
数据共享设备1由上壳体11和下壳体12对应卡合组装而成;
下壳体12的外壁开设有网口2和串口3;
下壳体12的内部嵌设有逻辑处理芯片4;
数据共享设备1上的串口3与ModbusRTU设备5上的串口3对应连接,数据共享设备1与应用程序6对应连接。
网口2的数量至少为一个,其中,网口2用于将数据共享设备1与通讯网络连接。
串口3的数量至少为两个,其中,串口3用于将数据共享设备1与其他设备进行串口3连接。
逻辑处理芯片4由通讯数据处理模块、通讯数据缓存模块、通讯数据判断模块和通讯数据反馈模块组成,其中,通讯数据处理模块用于处理读取的通讯数据,通讯数据缓存模块用于将计算后的通讯数据缓存到缓冲区,通讯数据判断模块用于判断读取的通讯数据的数据范围,通讯数据反馈模块用于将通讯数据反馈到其他应用程序6上。
Modbus协议共享通讯的方法,包括以下步骤:
S01:计算读取的数据,首先通过应用程序6和数据共享设备1的通讯需求计算出需要读取的ModbusRTU设备5的寄存器地址范围,根据地址范围循环快速读取Modbus协议的数据区数据;
S02:缓存通讯数据至缓冲区,通讯数据采集回来的数据不做数据解析,并通过通讯数据缓存模块将内存块缓存更新到数据共享器的内存中;
S03:判断读取数据的范围,当其他应用程序6采用Modbus协议进行数据读取时,通过通讯数据判断模块自动判断读取的通讯数据的寄存器地址是否在已经缓存的数据范围内,如果不在缓冲范围内则自动扩充采集地址区域,缓存更多地址的数据;
S04:将数据进行反馈回复,根据通讯数据的判断结果,通过通讯数据反馈模块将得到的判断结果按照Modbus协议第一时间反馈回复给应用程序6;
S05:应用程序6写入数据的控制,多个应用程序6对于写数据的指令都将写指令发送到数据共享设备1,数据共享设备1将多个写指令进行判断汇总,根据优先级将写指令写入ModbusRTU设备5;
S06:写指令数据反馈,数据共享设备1将ModbusRTU设备5反馈的写数据成功或者失败的信息转换为应用程序6的反馈指令,将指令反馈给应用程序6。
步骤S01中,通讯数据的算法采用集合算法进行计算,通过将读取modbus协议的数据区和读取数据的寄存器地址范围进行同一集合的集合计算,得到满足通讯数据计算的范围集合。
步骤S02中,数据共享设备1和其他ModbusRTU设备5均采用自己的缓存内容可以进行快速通讯,并及时的更新系统内存中的原有数据,这些数据能够为应用程序6提供最新的数据支持。
步骤S03中,当判断读取的通讯数据地址在已有的范围内,则直接采用内存中的缓存数据进行数据反馈;当判断读取的通讯数据地址超过了已有的缓存区,则系统会自动扩充先有的读取缓冲区并及时进行数据更新,更新后将数据反馈给应用程序6。
步骤S04中,当应用程序6采集的数据已经在数据共享设备1的内存中,则直接将内存区的数据按照Modbus协议回复给应用程序6。
步骤S05中,当其他应用程序6发过来对数据共享设备1的写指令,则系统直接将写指令采用和ModbusRTU设备5的通讯地址发到ModbusRTU设备5中,实现快速控制的效果。
在需要实施多串口3对一个串口3操作的场景中,将先有的串口3连接线断开,将断开连接线的一个串口3接入到串口设备上,原有的串口采集软件将串口3接入到断开连接线的另一个串口3上,需要增加串口3操作的应用程序6接入到其他串口3上,即可完成设备实施,这种连接的原因是因为串口设备中不对串口3通讯过程进行数据解析,只是将数据包解析出来计算需要读取的数据寄存器地址,并将需要读取的寄存器内容读取到系统内存中缓存。
在本说明书的描述中,参考术语“一个实施例”、“示例”、“具体示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。

Claims (5)

1.一种Modbus协议共享通讯的方法,其特征在于,包括以下步骤:
S01:计算读取的数据,首先通过应用程序(6)和数据共享设备(1)的通讯需求计算出需要读取的ModbusRTU设备(5)的寄存器地址范围,根据地址范围循环快速读取Modbus协议的数据区数据;
S02:缓存通讯数据至缓冲区,对采集回来的数据不做数据解析,并通过通讯数据缓存模块将内存块缓存更新到数据共享器的内存中;
S03:判断读取数据的范围,当其他应用程序(6)采用Modbus协议进行数据读取时,通过通讯数据判断模块自动判断读取的通讯数据的寄存器地址是否在已经缓存的数据范围内,如果不在缓冲范围内则自动扩充采集地址区域,缓存更多地址的数据;
S04:将数据进行反馈回复,根据通讯数据判断模板的判断结果,通过通讯数据反馈模块将得到的判断结果按照Modbus协议第一时间反馈回复给应用程序(6);
S05:应用程序(6)写入数据的控制,多个应用程序(6)对于写数据的指令都将写指令发送到数据共享设备(1),数据共享设备(1)将多个写指令进行判断汇总,根据优先级将写指令写入ModbusRTU设备(5);
S06:写指令数据反馈,数据共享设备(1)将ModbusRTU设备(5)反馈的写数据成功或者失败的信息转换为应用程序(6)的反馈指令,将指令反馈给应用程序(6);
在步骤S01中,采用集合算法进行地址范围的计算,通过将读取modbus协议的数据区和读取数据的寄存器地址范围进行同一集合的集合计算,得到满足通讯数据计算的范围集合。
2.根据权利要求1所述的Modbus协议共享通讯的方法,其特征在于,所述步骤S02中,数据共享设备(1)和其他ModbusRTU设备(5)均采用自己的缓存内容可以进行快速通讯,并及时的更新系统内存中的原有数据,这些数据能够为应用程序(6)提供最新的数据支持。
3.根据权利要求1所述的Modbus协议共享通讯的方法,其特征在于,所述步骤S03中,当判断读取的通讯数据地址在已有的范围内,则直接采用内存中的缓存数据进行数据反馈;当判断读取的通讯数据地址超过了已有的缓存区,则系统会自动扩充先有的读取缓冲区并及时进行数据更新,更新后将数据反馈给应用程序(6)。
4.根据权利要求1所述的Modbus协议共享通讯的方法,其特征在于,所述步骤S04中,当应用程序(6)采集的数据已经在数据共享设备(1)的内存中,则直接将内存区的数据按照Modbus协议回复给应用程序(6)。
5.根据权利要求1所述的Modbus协议共享通讯的方法,其特征在于,所述步骤S05中,当其他应用程序(6)发过来对数据共享设备(1)的写指令,则系统直接将写指令采用和ModbusRTU设备(5)的通讯地址发到ModbusRTU设备(5)中,实现快速控制的效果。
CN201910858858.4A 2019-09-11 2019-09-11 Modbus协议共享通讯的方法和装置 Active CN110620713B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910858858.4A CN110620713B (zh) 2019-09-11 2019-09-11 Modbus协议共享通讯的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910858858.4A CN110620713B (zh) 2019-09-11 2019-09-11 Modbus协议共享通讯的方法和装置

Publications (2)

Publication Number Publication Date
CN110620713A CN110620713A (zh) 2019-12-27
CN110620713B true CN110620713B (zh) 2022-03-25

Family

ID=68923193

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910858858.4A Active CN110620713B (zh) 2019-09-11 2019-09-11 Modbus协议共享通讯的方法和装置

Country Status (1)

Country Link
CN (1) CN110620713B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111131291B (zh) * 2019-12-30 2023-05-26 广东中鹏热能科技有限公司 一种上位机软件作为下位机设备的协议实现方法
CN114257561B (zh) * 2021-12-17 2023-02-07 东土科技(宜昌)有限公司 一种串口网口的数据透传方法及装置、设备、存储介质
CN114691540B (zh) * 2022-03-22 2023-03-31 无锡雪浪数制科技有限公司 一种优化modbus协议读取数据的方法、系统和存储介质
CN117873940B (zh) * 2023-12-05 2024-07-02 江苏云涌电子科技股份有限公司 一种镜像数据传输系统及其方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101699421A (zh) * 2009-10-28 2010-04-28 深圳华为通信技术有限公司 串口共享的方法和服务端
CN101751291A (zh) * 2009-12-30 2010-06-23 广东威创视讯科技股份有限公司 应用程序共享同一串口的方法与装置
CN102346474A (zh) * 2011-09-06 2012-02-08 浙江省电力试验研究院 一种开放式优化控制系统及方法
CN103166971A (zh) * 2013-03-15 2013-06-19 广东盈嘉科技工程发展股份有限公司 一种多路复用串口协议转换器
CN103338141A (zh) * 2013-06-14 2013-10-02 哈尔滨工业大学 基于网间连接器的通信网络系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105867316B (zh) * 2015-01-21 2017-09-22 宝山钢铁股份有限公司 基于Modbus协议的电站汽机电液控制系统的整体监控系统
CN104965808B (zh) * 2015-07-07 2018-07-10 力合科技(湖南)股份有限公司 用于实现串口复用的装置以及串口复用的方法
CN106209843A (zh) * 2016-07-12 2016-12-07 工业和信息化部电子工业标准化研究院 一种面向Modbus协议的数据流异常分析方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101699421A (zh) * 2009-10-28 2010-04-28 深圳华为通信技术有限公司 串口共享的方法和服务端
CN101751291A (zh) * 2009-12-30 2010-06-23 广东威创视讯科技股份有限公司 应用程序共享同一串口的方法与装置
CN102346474A (zh) * 2011-09-06 2012-02-08 浙江省电力试验研究院 一种开放式优化控制系统及方法
CN103166971A (zh) * 2013-03-15 2013-06-19 广东盈嘉科技工程发展股份有限公司 一种多路复用串口协议转换器
CN103338141A (zh) * 2013-06-14 2013-10-02 哈尔滨工业大学 基于网间连接器的通信网络系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
一种嵌入式串口共享服务器的设计;谢国军;《工矿自动化》;20140731;全文 *

Also Published As

Publication number Publication date
CN110620713A (zh) 2019-12-27

Similar Documents

Publication Publication Date Title
CN110620713B (zh) Modbus协议共享通讯的方法和装置
EP3846405B1 (en) Method for processing tcp message, toe assembly, and network device
CN109981435B (zh) 基于CAN-ModBus转MQTT网关及通讯系统
CN108924274B (zh) 域名系统dns处理方法、装置、存储介质及电子设备
EP2461527B1 (en) Route switching device and data cashing method thereof
CN107426113B (zh) 报文接收方法及网络设备
US8539089B2 (en) System and method for vertical perimeter protection
US6947435B1 (en) Radio communication system and apparatus, communication method and program recording medium therefor
CN111274173A (zh) 一种基于zynq的多节点srio通信设计方法及装置
CN112559436A (zh) 一种rdma通信设备的上下文访问方法及系统
CN112437028A (zh) 一种嵌入式系统扩展多个网口的方法及系统
CN108664335B (zh) 通过代理进行队列通信的方法与装置
DE602004010424T2 (de) Verfahren und system zum schutz eines protokollsteuerblocks für die netzwerk-paketverarbeitung
CN105939293A (zh) 一种skb回收方法及装置
CN115514593B (zh) 工业控制环网链路中断快速获取链路节点数据的方法
CN109474525B (zh) 报文的处理方法、装置、设备及可读存储介质
US7290055B2 (en) Multi-threaded accept mechanism in a vertical perimeter communication environment
CN108632898B (zh) 一种通信设备以及封包传送的方法
CN101441661A (zh) 一种在多个嵌入式系统之间共享文件资源的系统及方法
CN111756873A (zh) 用于环保监测的内网穿透方法、装置、设备及存储介质
CN110808909A (zh) 跨虚拟系统的报文处理方法和装置
CN116366544B (zh) 地址解析协议的删除方法及装置
CN116743587B (zh) 一种基于异构计算加速卡的虚拟网络接口实现方法及装置
CN108664333B (zh) 片上系统的消息系统
CN108664334B (zh) 消息代理及其方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20231018

Address after: 102200 room 716, 7th floor, jinyanlong building, Huilongguan town, Changping District, Beijing

Patentee after: Beijing yanneng Technology Co.,Ltd.

Patentee after: Guangsheng (Tianjin) Electric Power Intelligent Technology Co.,Ltd.

Address before: 102200 room 716, 7th floor, jinyanlong building, Huilongguan town, Changping District, Beijing

Patentee before: Beijing yanneng Technology Co.,Ltd.

TR01 Transfer of patent right