CN115086104B - 一种支持数据断线重传的方法及串口服务器 - Google Patents
一种支持数据断线重传的方法及串口服务器 Download PDFInfo
- Publication number
- CN115086104B CN115086104B CN202210717500.1A CN202210717500A CN115086104B CN 115086104 B CN115086104 B CN 115086104B CN 202210717500 A CN202210717500 A CN 202210717500A CN 115086104 B CN115086104 B CN 115086104B
- Authority
- CN
- China
- Prior art keywords
- data
- upper computer
- serial port
- cache
- processing unit
- 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
- 238000000034 method Methods 0.000 title claims abstract description 34
- 238000012545 processing Methods 0.000 claims abstract description 89
- 230000005540 biological transmission Effects 0.000 claims abstract description 33
- 238000004891 communication Methods 0.000 claims description 39
- 230000000903 blocking effect Effects 0.000 claims description 19
- 239000000872 buffer Substances 0.000 claims description 19
- 230000004044 response Effects 0.000 claims description 8
- 230000007246 mechanism Effects 0.000 claims description 7
- 230000002159 abnormal effect Effects 0.000 claims description 5
- 230000035945 sensitivity Effects 0.000 claims description 3
- 238000004519 manufacturing process Methods 0.000 abstract description 16
- 238000007726 management method Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 12
- 238000004590 computer program Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 230000004622 sleep time Effects 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 210000001503 joint Anatomy 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40006—Architecture of a communication node
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/625—Queue scheduling characterised by scheduling criteria for service slots or service orders
- H04L47/6275—Queue scheduling characterised by scheduling criteria for service slots or service orders based on priority
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
- H04L67/1078—Resource delivery mechanisms
- H04L67/1085—Resource delivery mechanisms involving dynamic management of active down- or uploading connections
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Abstract
本发明提供一种支持数据断线重传的方法和串口服务器,串口服务器包括:串口、网口、串口处理单元和网络处理单元;上述多个串口用于建立多个外部串口设备与串口处理单元之间的连接,上述网络处理单元用于通过上述网口将串口处理单元的数据发送至多个上位机。本发明通过使用串口服务器的串口接入外部串口设备的数据,并通过串口处理单元将数据转发至网络处理单元,再通过网络处理单元将数据发送至多个上位机设备,从而实现了无需更换现场串口设备即可将现场的生产数据发送至生产管理系统中,大大的提高了数据传输的兼容性。
Description
技术领域
本发明涉及通信技术领域,更具体地,涉及一种支持数据断线重传的方法及串口服务器。
背景技术
串口一般也称作为串行接口、串行通信接口或串行通讯接口,是采用串行通信方式的扩展接口。串行接口(Serial Interface)是指数据一位一位地顺序传送。其特点是通信线路简单,只要一对传输线就可以实现双向通信(可以直接利用电话线作为传输线),从而大大降低了成本。
随着物联网技术的快速发展,数字化工厂是实际生产中得到广泛的应用,人们期望现场生产数据能够快速便捷的传输至工厂的生产管理系统中。但是当前在工业现场有很多设备依旧是串口类设备,由于现阶段技术的局限性,串口类通信通常都是短距离通信,无法适用于大园区的设备监控需求,如果直接将这些串口类设备直接替换以太网接口的设备,成本会非常大,因此,如何将现场串口类设备中的生产数据发送至生产管理系统中是亟待解决的问题。
发明内容
本发明针对现有技术中存在的技术问题,提供一种支持数据断线重传的方法及串口服务器,用以解决如何将现场串口类设备中的生产数据发送至生产管理系统中的问题。
根据本发明的第一方面,提供了一种支持数据断线重传的串口服务器,所述支持断线重传的串口服务器包括:串口、网口、串口处理单元和网络处理单元;所述多个串口用于建立多个外部串口设备与串口处理单元之间的连接,所述网络处理单元用于通过所述网口将串口处理单元的数据发送至多个上位机;
所述串口支持任一工业总线通信协议;
所述串口处理单元,用于通过所述串口接收所述外部串口设备发送的数据,和/或,用于将网络处理单元接收到的指令通过所述串口发送至所述外部串口设备;
所述网络处理单元,用于将所述串口处理单元接收到的数据发送至多个上位机设备,和/或,用于将多个上位机发送的指令转发至所述串口处理单元;
所述网口用于通过网线连接网络处理单元和上位机。
在上述技术方案的基础上,本发明还可以作出如下改进。
可选的,所述网络处理单元,还包括:优先级管理模块、缓存管理模块和文件缓存系统;
所述优先级管理模块,用于对多个上位机的数据敏感度进行优先级分类管理;
所述缓冲管理模块,用于根据所述优先级分类为多个上位机分配缓存;
所述文件缓存系统,用于在所述串口设备与对应的上位机网络断开时存储历史数据。
可选的,所述文件缓存系统,包括:外部存储接口;
所述外部存储接口,用于接入外部移动存储模块扩展所述文件缓存系统的存储大小。
可选的,所述外部移动存储模块,包括:TF卡、SD卡和/或U盘设备。
可选的,所述工业总线通信协议,包括:RS485、RS422和RS232。
根据本发明的第二方面,提供一种支持数据断线重传的方法,包括:
接收并解析外部串口设备发送的数据;
将所述数据发送至多个上位机设备,并获取对应的发送状态;
在所述发送状态为失败时,获取对应的上位机设备的预设缓存规则,根据所述预设缓存规则对所述数据进行存储;
获取所述上位机设备的通信状态,在所述通信状态为正常时,将存储的所述数据发送至所述上位机设备。
可选的,所述支持数据断线重传的方法,还包括:
接收并解析上位机设备发送的控制指令;
将所述控制指令发送至所述外部串口设备,以使所述外部串口设备执行所述控制指令;
接收所述外部串口设备的响应信息,将所述响应信息发送至所述上位机设备。
可选的,所述在所述发送状态为失败时,获取对应的上位机设备的预设缓存规则,根据所述预设缓存规则对所述数据进行存储的步骤,包括:
获取所述发送状态为失败的上位机设备;
根据所述上位机设备获取对应的数据优先级分类;
根据所述数据优先级分类获取对应的缓存区;
按照预设存储规则将所述数据存储至所述缓存区。
可选的,所述支持数据断线重传的方法,还包括:
一种数据发送机制:
获取初次连接的上位机设备,将所述上位机设备设定为中度阻塞队列;
在所述上位机设备连续第一预设发送次数为异常时,将所述上位机设备降低为重度阻塞列队;
在所述上位机设备连续第二预设发送次数为正常时,将所述上位机设备提升至正常队列;
根据所述正常队列、所述中度阻塞队列和所述重度阻塞队列构建优先级队列处理线程,进行数据发送。
可选的,所述将存储的数据发送至所述上位机设备的步骤之后,包括:
将存储的所述数据从缓存中删除,释放存储空间。
本发明提供的一种支持数据断线重传的方法及串口服务器,所述串口服务器包括:串口、网口、串口处理单元和网络处理单元;上述多个串口用于建立多个外部串口设备与串口处理单元之间的连接,上述网络处理单元用于通过上述网口将串口处理单元的数据发送至多个上位机;上述串口支持任一工业总线通信协议;上述串口处理单元,用于通过上述串口接收上述外部串口设备发送的数据,和/或,用于将网络处理单元接收到的指令通过上述串口发送至上述外部串口设备;上述网络处理单元,用于将上述串口处理单元接收到的数据发送至多个上位机设备,和/或,用于将多个上位机发送的指令转发至上述串口处理单元;上述网口用于通过网线连接网络处理单元和上位机。本发明通过使用串口接入外部串口设备的数据,并通过串口处理单元将数据转发至网络处理单元,再通过网络处理单元将数据发送至多个上位机设备,从而实现了无需更换现场串口设备即可将现场的生产数据发送至生产管理系统中,大大的提高了数据传输的兼容性。
附图说明
图1为本发明提供的一种支持数据断线重传的串口服务器结构框图;
图2为本发明提供的串口服务器通信的示意图;
图3为本发明提供的一种支持数据断线重传的串口服务器的详细结构框图;
图4为本发明提供的一种支持数据断线重传的方法流程图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
图1为本发明提供的一种支持数据断线重传的串口服务器结构框图,如图1所示,串口服务器包括:串口、网口、串口处理单元和网络处理单元;所述多个串口用于建立多个外部串口设备与串口处理单元之间的连接,所述网络处理单元用于通过所述网口将串口处理单元的数据发送至多个上位机;
所述串口支持任一工业总线通信协议;
所述串口处理单元,用于通过所述串口接收所述外部串口设备发送的数据,和/或,用于将网络处理单元接收到的指令通过所述串口发送至所述外部串口设备;
所述网络处理单元,用于将所述串口处理单元接收到的数据发送至多个上位机设备,和/或,用于将多个上位机发送的指令转发至所述串口处理单元;
所述网口用于通过网线连接网络处理单元和上位机。
参见图2,图2为本发明提供的串口服务器通信的示意图;图中,串口服务器通过串口与工业现场的串口设备对接,串口服务器中的串口处理单元使用工业总线通信协议(RS485/RS422/RS232)通过串口从串口设备中获取串口设备中的数据,然后将上述数据转发至网络处理单元,网络处理单元通过TCP/UDP等方式和多个上位机进行连接,并将上述数据通过TCP/UDP等方式发送给每个有数据需求的上位机,同时各个上位机的网络包也可以通过串口服务器的网口发送至网络处理单元,并由串口处理单元通过串口发送给现场的串口设备。
参见图3,图3为本发明提供的一种支持数据断线重传的串口服务器的详细结构框图,由图3中可知,上述串口服务器中的网络处理单元,还包括:优先级管理模块、缓存管理模块和文件缓存系统;
上述优先级管理模块,用于对多个上位机的数据敏感度进行优先级分类管理;
上述缓冲管理模块,用于根据所述优先级分类为多个上位机分配缓存;
上述文件缓存系统,用于在所述串口设备与对应的上位机网络断开时存储历史数据。
上述文件缓存系统包括:外部存储接口,用于接入外部移动存储模块扩展上述文件缓存系统的存储大小,上述外部移动存储模块包括:TF卡、SD卡和/或U盘设备。
本发明提供的一种支持数据断线重传的方法及串口服务器,所述串口服务器包括:串口、网口、串口处理单元和网络处理单元;上述多个串口用于建立多个外部串口设备与串口处理单元之间的连接,上述网络处理单元用于通过上述网口将串口处理单元的数据发送至多个上位机;上述串口支持任一工业总线通信协议;上述串口处理单元,用于通过上述串口接收上述外部串口设备发送的数据,和/或,用于将网络处理单元接收到的指令通过上述串口发送至上述外部串口设备;上述网络处理单元,用于将上述串口处理单元接收到的数据发送至多个上位机设备,和/或,用于将多个上位机发送的指令转发至上述串口处理单元;上述网口用于通过网线连接网络处理单元和上位机。本发明通过使用串口接入外部串口设备的数据,并通过串口处理单元将数据转发至网络处理单元,再通过网络处理单元将数据发送至多个上位机设备,从而实现了无需更换现场串口设备即可将现场的生产数据发送至生产管理系统中,大大的提高了数据传输的兼容性。
参见图4,图4为本发明提供的一种支持数据断线重传的方法流程图,如图4所示,方法包括:
步骤S100:接收并解析外部串口设备发送的数据;
需要说明的是,本实施例方法的执行主体可以是本发明提供的支持数据断线重传的串口服务器。
可以理解的是,上述外部串口设备可以是工业现场的串口设备,例如:温度传感器、湿度传感器、压力传感器等,上述数据可以是上述串口设备采集到的对应设备的生产数据,也可以是上述串口设备经过内部计算得到对应生产数据,本实施例对此不作限制。
在具体实现中,串口服务器通过接收并解析得到外部的串口设备发送的数据。
步骤S200:将所述数据发送至多个上位机设备,并获取对应的发送状态;
需要说明的是,上述将数据发送至多个上位机设备时,由于可能会出现网络异常的情况,所以发送状态一般分为成功/失败两种情况,还可以包括超时、无响应等其它状态,本实施例对此不作限制。并且针对于每一个上位机设备都会有一个发送状态。
步骤S300:在所述发送状态为失败时,获取对应的上位机设备的预设缓存规则,根据所述预设缓存规则对所述数据进行存储;
需要说明的是,上述预设缓存规则可以是在上述串口设备出厂前烧录到上传串口设备中的,也可以是在上述串口服务器使用过程中根据实际需求进行调整的,本实施例对此不作限制。
可以理解的是,由于存储资源是有限的,因此为每台设备都分配非常充足的资源显然是不现实的,因此本发明实施例中内置了一个预设缓存规则,上述预设缓存规则可以是包含一个数据优先级分类:0级、1级、2级、3级和4级。其中0级为最低级别,4级为最高级别,也可以是包含更细致或者更粗略的分类,本实施例对此不作限制。
步骤S400:获取所述上位机设备的通信状态,在所述通信状态为正常时,将存储的所述数据发送至所述上位机设备。
本发明实施例提出了一种支持数据断线重传的方法。通过接收并解析外部串口设备发送的数据;将上述数据发送至多个上位机设备,并获取对应的发送状态;在上述发送状态为失败时,获取对应的上位机设备的预设缓存规则,根据上述预设缓存规则对上述数据进行存储;获取上述上位机设备的通信状态,在上述通信状态为正常时,将存储的上述数据发送至上述上位机设备。本发明方法通过与串口设备进行数据交互,并串口设备中的数据发送至上位机设备,在数据发送失败时获取对应的预设缓存规则,按规则进行存储,并在通信恢复时,重新发送存储的数据,从而实现了数据断线重传的方法在串口服务器中得到应用,提高了数据传输的稳定性和可靠性。
在一种可能的实施例方式中,所述支持数据断线重传的方法还包括:
步骤S500:接收并解析上位机设备发送的控制指令;
步骤S600:将所述控制指令发送至所述外部串口设备,以使所述外部串口设备执行所述控制指令;
步骤S700:接收所述外部串口设备的响应信息,将所述响应信息发送至所述上位机设备。
在本实施例方式中,通过接收上位机发送的控制指令并转发至外部串口设备中,并通过将串口设备中的响应信息返回至上位机设备,从而实现了上位机设备的数据下发至外部串口设备,实现了上位机设备与外部串口设备之间的数据通信。
在一种可能的实施例方式中,所述在所述发送状态为失败时,获取对应的上位机设备的预设缓存规则,根据所述预设缓存规则对所述数据进行存储的步骤,包括:
步骤S301:获取所述发送状态为失败的上位机设备;
步骤S302:根据所述上位机设备获取对应的数据优先级分类;
需要说明的是,上述数据优先级分类可以是设置在上述串口服务器中的。
其中,0级分类可以表示为上位机认为数据不那么重要,一段时间的数据丢失并不会给数据展示系统带来很大的影响,例如:定期上报温度、湿度、信号质量和/或振动幅度等,由于这些数据会不停更新,有些上位机只需要知道当前的最新值即可,因此这些上位机在出现网络故障并恢复后,允许之前时间未发送过来的旧数据丢失,只需要及时的发送最新数据即可。
1级分类表示为上位机认为该分类中的数据高于0级分类的数据,上述1级分类中的数据重要性属于一般重要,在一次数据发送失败时,进行一定次数的重发,如果连续对应次数的失败后,可以将发送失败的数据进行丢失,也可以为1级分类对应的数据分配一定大小的缓存空间,缓存一定量的数据,超出上述缓存空间时,进行循环覆盖。
2级分类中的数据重要性高于1级分类;
3级分类中的数据重要性高于2级分类;
4级分类中的数据,可以是上位机期望所有数据都必须可靠传送的,包括未成功发送的历史数据。在网络通信异常时,串口服务器为此类数据分配较大的缓存,当缓存满时,可以将这些历史数据保存在文件系统中,待网络通信恢复时,再从文件中按照先进先出的顺序发送给上位机,由于网络速度远大于串口通信速度,因此经过一段时间后,历史数据就会发送完毕,重新恢复最新数据的实时发送。
步骤S303:根据所述数据优先级分类获取对应的缓存区;
需要说明的是,上述优先级分类还有一个对应的缓存区的分配,包括但不限于:
其中,0级数据不分配缓存,对应的socket可以设置为“非阻塞”模式,发送数据失败时可以尝试再调用3次以内send函数,每次重试send之间的sleep间隔逐步缩短;本次sleep时间是上一次sleep时间的一半。例如:第一次send失败时,sleep等待30ms,然后再次调用send,如果第二次send还失败,sleep等待10ms,然后再次调用send,然后不管是否发送成功,直接跳过该步骤,处理后续数据。
其中,为1级数据分配10个缓存区(buffer)。其中缓冲区的大小根据串口服务器存储的大小设定,一般设置为1~10K。
其中,为2级数据分配20个缓存区(buffer)。其中缓冲区的大小根据串口服务器存储的大小设定,一般设置为1~10K。其他级别的分配缓存依次增加。
同时,高优先级数据耗完内存buffer时,可以抢占低优先级数据的缓存,直到所有低优先级空闲缓存被全部占用。
步骤S304:按照预设存储规则将所述数据存储至所述缓存区。
需要说明的是,上述预设存储规则可以是数据存储的一种规则,其中包括:为需要该机制的上位机创建文件夹,文件夹名称可以唯一识别该上位机,例如可以是IP+端口以及其他信息;假设为1721616354_5024;在"1721616354_5024"文件夹中再以“年+月”的方式创建文件夹,保存同一个月内的历史数据,假设为“202203”“1721616354_5024/202203”文件夹中按照从1到N的顺序为文件名创建文件,每个文件最大不能超过一个限定值,例如10K;来自串口的数据按照先后顺序写入该文件中。保存数据超过限制值时,启用新的文件;文件写入时,按照2bytes数据长度+实际数据的方式写入。
在本发明实施例中,通过将文件以数据优先级和对应的数据缓存机制,将未成功发送的数据以不同的级别进行存储,从而有效的保证了关键数据分级处理,提高了数据传输的可靠性。
在一种可能的实施例方式中,所述将存储的数据发送至所述上位机设备的步骤之后,包括:
步骤S401:将存储的所述数据从缓存中删除,释放存储空间。
在具体实现中,在网络恢复时,串口服务器通过以下原则发送历史数据:优先从最老的文件中依次读出文件;“1721616354_5024/202203/0”文件比“1721616354_5024/202203/1”文件的内容早于存储,因此“1721616354_5024/202203/0”优先发送;数据读取完毕,删除文件;文件夹中文件读取完毕,删除文件夹。
本发明实施例中,通过在存储数据被成功发送后,立刻删除缓存中的数据,释放存储空间,从而降低了存储空间的占用率,提高了存储空间的使用效率。
在一种可能的实施例方式中,所述方法还包括一种数据发送机制:
步骤S101:获取初次连接的上位机设备,将所述上位机设备设定为中度阻塞队列;
步骤S102:在所述上位机设备连续第一预设发送次数为异常时,将所述上位机设备降低为重度阻塞列队;
步骤S103:在所述上位机设备连续第二预设发送次数为正常时,将所述上位机设备提升至正常队列;
步骤S104:根据所述正常队列、所述中度阻塞队列和所述重度阻塞队列构建优先级队列处理线程,进行数据发送。
在具体实现中,由于设备资源是有限的,所以对于某一路串口对应的网络连接来说,通常尽量采用select或者epoll多路复用技术或者轮询技术在一个线程中处理该"串口文件描述符和网络文件描述符socket"的数据收发;当某个"串口文件描述符和网络文件描述符socket"对应的网络连接出现异常时,对该"串口文件描述符和网络文件描述符socket"的发送和接收重试,某种程度上会影响到同一个线程中其他"串口文件描述符和网络文件描述符socket"的发送和接收性能,以及数据发送及时性。
如果某一路串口设备的上位机客户端对设备的读写实时性要求比较高的话,可以根据socket或者串口的读写情况,额外增加动态调整该用户的读写发送状态优先级;优先级加权动态变更算法规则如下:
1)将客户分为三个优先级队列;正常/中度阻塞/严重阻塞;每一类客户在一个线程中进行数据收发操作;如果正常/中度阻塞/严重阻塞三个队列对应处理线程的sleep时间会成3倍增加;例如“正常”优先级队列的轮询sleep时间为10ms;“中度阻塞”优先级队列的轮询sleep时间为30ms;
2)正常客户分值为[8,10],中度阻塞客户分值为[4,7],严重阻塞客户分值为[0,3]
3)每个客户初次连接时,均赋值6;属于“中度阻塞客户”队列;
4)当某个客户连续出现2次读写异常时,分值减1,最低不超过0;如果分值低于某一个队列分值范围时,降低层级到下一级队列;相应的串口和网络描述符纳入下级队列处理线程中。
5)当某个客户连续4次读写正常时,分值+1,最高不超过10;如果分值高于某一个队列分值范围时,升级层级到上一级队列;相应的串口和网络描述符纳入上级队列处理线程中。
6)当某个优先级队列中成员为空时,可以暂时删除该优先级队列处理线程或者任务,也可以通过同步机制让线程阻塞,不消耗CPU调度资源。
通过这种机制,将处理能力相当的客户端放入一个处理线程中,相互之间不会拖后腿。
可以根据客户端之间通信情况的好坏对客户端进行动态评分;网络恢复后,加权值获得增加,客户端也会有机会反馈到更高优先级的队列中。
本发明实施例中,通过在串口服务器中添加优先级加权动态变更算法使得在数据发送时可以合理的将统一通信条件的客户端连接放入统一处理线程中,从而使得避免多个上位机设备与上述串口设备之间的通信相互影响导致数据发送不及时的情况,提高了数据发送的及时性。
本发明实施例提出了一种支持数据断线重传的方法和串口服务器。上述方法通过接收并解析外部串口设备发送的数据;将上述数据发送至多个上位机设备,并获取对应的发送状态;在上述发送状态为失败时,获取对应的上位机设备的预设缓存规则,根据上述预设缓存规则对上述数据进行存储;获取上述上位机设备的通信状态,在上述通信状态为正常时,将存储的上述数据发送至上述上位机设备。本发明方法通过与串口设备进行数据交互,并串口设备中的数据发送至上位机设备,在数据发送失败时获取对应的预设缓存规则,按规则进行存储,并在通信恢复时,重新发送存储的数据,从而实现了数据断线重传的方法在串口服务器中得到应用,提高了数据传输的稳定性和可靠性。
需要说明的是,在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其它实施例的相关描述。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式计算机或者其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包括这些改动和变型在内。
Claims (9)
1.一种支持数据断线重传的串口服务器,其特征在于,所述支持断线重传的串口服务器包括:串口、网口、串口处理单元和网络处理单元;所述多个串口用于建立多个外部串口设备与串口处理单元之间的连接,所述网络处理单元用于通过所述网口将串口处理单元的数据发送至多个上位机;
所述串口支持任一工业总线通信协议;
所述串口处理单元,用于通过所述串口接收所述外部串口设备发送的数据,和/或,用于将网络处理单元接收到的指令通过所述串口发送至所述外部串口设备;
所述网络处理单元,用于将所述串口处理单元接收到的数据发送至多个上位机设备,和/或,用于将多个上位机发送的指令转发至所述串口处理单元,其中,将所述数据发送至多个上位机设备时,获取对应的发送状态,在所述发送状态为失败时,获取对应的上位机设备的预设缓存规则,根据所述预设缓存规则对所述数据进行存储,其中,所述根据所述预设缓存规则对所述数据进行存储的步骤包括:获取所述发送状态为失败的上位机设备;根据所述上位机设备获取对应的数据优先级分类;根据所述数据优先级分类获取对应的缓存区;按照预设存储规则将所述数据存储至所述缓存区;所述数据优先级分类包括不重要的数据为0级数据、一般重要的数据为1级数据、重要性高于1级的数据为2级数据、重要性高于2级的为3级数据、数据必须可靠传输的为4级数据;所述预设存储规则包括所述0级数据不分配缓存、所述1级数据分配10个缓存区、所述2级数据分配20个缓存区、所述3级数据分配30个缓存区、所述4级数据分配40个缓存区,且高优先级数据缓存区耗完时可抢占低优先级数据的缓存区直至所有低优先级空闲缓存区被全部占用,获取所述上位机设备的通信状态,在所述通信状态为正常时,将存储的所述数据发送至所述上位机设备;
所述网口用于通过网线连接网络处理单元和上位机。
2.根据权利要求1所述的支持数据断线重传的串口服务器,其特征在于,所述网络处理单元,还包括:优先级管理模块、缓存管理模块和文件缓存系统;
所述优先级管理模块,用于对多个上位机的数据敏感度进行优先级分类管理;
所述缓冲管理模块,用于根据所述优先级分类为多个上位机分配缓存;
所述文件缓存系统,用于在所述串口设备与对应的上位机网络断开时存储历史数据。
3.根据权利要求2 所述的支持数据断线重传的串口服务器,其特征在于,所述文件缓存系统,包括:外部存储接口;
所述外部存储接口,用于接入外部移动存储模块扩展所述文件缓存系统的存储大小。
4.根据权利要求3所述的支持数据断线重传的串口服务器,其特征在于,所述外部移动存储模块,包括:TF卡、SD卡和/或U盘设备。
5.根据权利要求1所述的支持数据断线重传的串口服务器,其特征在于,所述工业总线通信协议,包括:RS485、RS422和RS232。
6.一种支持数据断线重传的方法,其特征在于,应用于所述支持数据断线重传的串口服务器,包括:
接收并解析外部串口设备发送的数据;
将所述数据发送至多个上位机设备,并获取对应的发送状态;
在所述发送状态为失败时,获取对应的上位机设备的预设缓存规则,根据所述预设缓存规则对所述数据进行存储,其中,所述根据所述预设缓存规则对所述数据进行存储的步骤包括:获取所述发送状态为失败的上位机设备;根据所述上位机设备获取对应的数据优先级分类;根据所述数据优先级分类获取对应的缓存区;按照预设存储规则将所述数据存储至所述缓存区;所述数据优先级分类包括不重要的数据为0级数据、一般重要的数据为1级数据、重要性高于1级的数据为2级数据、重要性高于2级的为3级数据、数据必须可靠传输的为4级数据;所述预设存储规则包括所述0级数据不分配缓存、所述1级数据分配10个缓存区、所述2级数据分配20个缓存区、所述3级数据分配30个缓存区、所述4级数据分配40个缓存区,且高优先级数据缓存区耗完时可抢占低优先级数据的缓存区直至所有低优先级空闲缓存区被全部占用;
获取所述上位机设备的通信状态,在所述通信状态为正常时,将存储的所述数据发送至所述上位机设备。
7.根据权利要求6所述的支持数据断线重传的方法,其特征在于,还包括:
接收并解析上位机设备发送的控制指令;
将所述控制指令发送至所述外部串口设备,以使所述外部串口设备执行所述控制指令;
接收所述外部串口设备的响应信息,将所述响应信息发送至所述上位机设备。
8.根据权利要求6所述的支持数据断线重传的方法,其特征在于,所述支持数据断线重传的方法,还包括:
一种数据发送机制:
获取初次连接的上位机设备,将所述上位机设备设定为中度阻塞队列;
在所述上位机设备连续第一预设发送次数为异常时,将所述上位机设备降低为重度阻塞列队;
在所述上位机设备连续第二预设发送次数为正常时,将所述上位机设备提升至正常队列;
根据所述正常队列、所述中度阻塞队列和所述重度阻塞队列构建优先级队列处理线程,进行数据发送。
9.根据权利要求6所述的支持数据断线重传的方法,其特征在于,所述将存储的数据发送至所述上位机设备的步骤之后,包括:
将存储的所述数据从缓存中删除,释放存储空间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210717500.1A CN115086104B (zh) | 2022-06-23 | 2022-06-23 | 一种支持数据断线重传的方法及串口服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210717500.1A CN115086104B (zh) | 2022-06-23 | 2022-06-23 | 一种支持数据断线重传的方法及串口服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115086104A CN115086104A (zh) | 2022-09-20 |
CN115086104B true CN115086104B (zh) | 2023-11-21 |
Family
ID=83254967
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210717500.1A Active CN115086104B (zh) | 2022-06-23 | 2022-06-23 | 一种支持数据断线重传的方法及串口服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115086104B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116501657B (zh) * | 2023-06-19 | 2023-11-10 | 阿里巴巴(中国)有限公司 | 缓存数据的处理方法、设备及系统 |
CN116841936B (zh) * | 2023-08-29 | 2023-11-21 | 深圳市莱仕达电子科技有限公司 | 一种多设备的数据处理方法、装置、系统和计算机设备 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA1198523A (en) * | 1981-04-01 | 1985-12-24 | Philip M. Neches | Multi-processor intercommunication system and method |
KR20140078591A (ko) * | 2014-05-16 | 2014-06-25 | 배재대학교 산학협력단 | 네트워크 인터페이스와 시리얼 인터페이스를 겸한 원격 제어 시스템 및 방법 |
CN104142901A (zh) * | 2013-05-07 | 2014-11-12 | 北京化工大学 | 一种具有传输优先级的串口复用器实现方法 |
CN107241382A (zh) * | 2017-04-24 | 2017-10-10 | 天津瑞能电气有限公司 | 用于串口与以太网间的数据转换方法及其装置 |
CN108667706A (zh) * | 2018-05-21 | 2018-10-16 | 洛阳银杏科技有限公司 | 串口数量动态可调的以太网串口服务器及其数据传输方法 |
CN108966046A (zh) * | 2018-07-17 | 2018-12-07 | 华中科技大学 | 一种基于fpga的两种通信接口融合mac控制器 |
CN109302325A (zh) * | 2018-11-30 | 2019-02-01 | 迈普通信技术股份有限公司 | 串口服务器、设备管理方法及可读存储介质 |
CN110891023A (zh) * | 2019-10-31 | 2020-03-17 | 上海赫千电子科技有限公司 | 一种基于优先级策略的信号路由转换方法及装置 |
CN111666238A (zh) * | 2020-06-04 | 2020-09-15 | 北京星际荣耀空间科技有限公司 | 数据传输装置及方法 |
CN113259268A (zh) * | 2021-07-02 | 2021-08-13 | 北京城建智控科技有限公司 | 一种支持冗余架构的网口与串口数据转发网关及方法 |
CN113419983A (zh) * | 2021-08-24 | 2021-09-21 | 武汉迈威通信股份有限公司 | 一种串口服务器及串口服务器的实现方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7349416B2 (en) * | 2002-11-26 | 2008-03-25 | Cisco Technology, Inc. | Apparatus and method for distributing buffer status information in a switching fabric |
-
2022
- 2022-06-23 CN CN202210717500.1A patent/CN115086104B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA1198523A (en) * | 1981-04-01 | 1985-12-24 | Philip M. Neches | Multi-processor intercommunication system and method |
CN104142901A (zh) * | 2013-05-07 | 2014-11-12 | 北京化工大学 | 一种具有传输优先级的串口复用器实现方法 |
KR20140078591A (ko) * | 2014-05-16 | 2014-06-25 | 배재대학교 산학협력단 | 네트워크 인터페이스와 시리얼 인터페이스를 겸한 원격 제어 시스템 및 방법 |
CN107241382A (zh) * | 2017-04-24 | 2017-10-10 | 天津瑞能电气有限公司 | 用于串口与以太网间的数据转换方法及其装置 |
CN108667706A (zh) * | 2018-05-21 | 2018-10-16 | 洛阳银杏科技有限公司 | 串口数量动态可调的以太网串口服务器及其数据传输方法 |
CN108966046A (zh) * | 2018-07-17 | 2018-12-07 | 华中科技大学 | 一种基于fpga的两种通信接口融合mac控制器 |
CN109302325A (zh) * | 2018-11-30 | 2019-02-01 | 迈普通信技术股份有限公司 | 串口服务器、设备管理方法及可读存储介质 |
CN110891023A (zh) * | 2019-10-31 | 2020-03-17 | 上海赫千电子科技有限公司 | 一种基于优先级策略的信号路由转换方法及装置 |
CN111666238A (zh) * | 2020-06-04 | 2020-09-15 | 北京星际荣耀空间科技有限公司 | 数据传输装置及方法 |
CN113259268A (zh) * | 2021-07-02 | 2021-08-13 | 北京城建智控科技有限公司 | 一种支持冗余架构的网口与串口数据转发网关及方法 |
CN113419983A (zh) * | 2021-08-24 | 2021-09-21 | 武汉迈威通信股份有限公司 | 一种串口服务器及串口服务器的实现方法 |
Non-Patent Citations (3)
Title |
---|
A Buffer-Aware HTTP Live Streaming Approach for SDN-Enabled 5G Wireless Networks;Lai Chin-Feng;《IEEE NETWORK》;全文 * |
基于VxWorks的串口服务器研究与实现;何秋娅;徐学军;;计算机应用与软件(09);全文 * |
基于以太网帧的嵌入式数据传输方案及实现;王长清;张素娟;蒋景红;;计算机工程与设计(06);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN115086104A (zh) | 2022-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115086104B (zh) | 一种支持数据断线重传的方法及串口服务器 | |
US8423688B2 (en) | Multi-thread file input and output system and multi-thread file input and output program | |
JP4160642B2 (ja) | ネットワークデータ転送方法 | |
US7127568B2 (en) | Throttling in storage systems | |
JP4521398B2 (ja) | 前途のリソースの読み取りパスを用いた、読み取り/書き込みコマンドバッファプールリソースの管理 | |
US10484472B2 (en) | Methods and systems for efficiently moving data between nodes in a cluster | |
US8898311B2 (en) | Data communication method and information processing device | |
US6934768B1 (en) | Dynamic modification of fragmentation size cluster communication parameter in clustered computer system | |
EP3722938B1 (en) | Nof based reading control method, device and system | |
US7676610B2 (en) | Device and method for optimization of target host device process handling according to the status and the priority of the target host device process | |
US20060265558A1 (en) | Information processing method and system | |
JPWO2008139521A1 (ja) | リモートファイルシステム、端末装置およびサーバ装置 | |
CN106603692B (zh) | 一种分布式存储系统中的数据存储方法及装置 | |
CN115174490B (zh) | 一种数据传输方法及网络应用终端 | |
CN116233018A (zh) | 报文处理方法、装置、电子设备及存储介质 | |
CN113452591A (zh) | 基于can总线连续数据帧的回路控制方法及装置 | |
CN116886576A (zh) | 一种多控存储集群通信超时控制方法、装置、设备及介质 | |
CN111404842A (zh) | 数据传输方法、装置及计算机存储介质 | |
US6396806B1 (en) | Transmission line duplexing processing method and apparatus thereof, and recording medium for recording its processing procedure | |
JP5772132B2 (ja) | データ転送装置、データ転送方法および情報処理装置 | |
JP6334376B2 (ja) | 通信装置及びディスクリプタオーバーフロー検出方法 | |
US11336592B2 (en) | Flexible link level retry for shared memory switches | |
JPH10154116A (ja) | データ転送方法 | |
CN117692389A (zh) | Rdma报文信息重传方法、装置、电子设备及存储介质 | |
JPH11196097A (ja) | データ通信制御装置、及びデータ通信制御方法 |
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 |