CN106230745A - 具有高实时性和低延时性的上下位机之间的数据传输方法 - Google Patents
具有高实时性和低延时性的上下位机之间的数据传输方法 Download PDFInfo
- Publication number
- CN106230745A CN106230745A CN201610576816.8A CN201610576816A CN106230745A CN 106230745 A CN106230745 A CN 106230745A CN 201610576816 A CN201610576816 A CN 201610576816A CN 106230745 A CN106230745 A CN 106230745A
- Authority
- CN
- China
- Prior art keywords
- task unit
- computer
- host computer
- slave computer
- unit sequence
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 26
- 230000005540 biological transmission Effects 0.000 title claims abstract description 20
- 238000002372 labelling Methods 0.000 claims abstract description 18
- 230000004048 modification Effects 0.000 claims description 3
- 238000012986 modification Methods 0.000 claims description 3
- 230000003139 buffering effect Effects 0.000 claims 1
- 230000004044 response Effects 0.000 abstract description 3
- 230000006854 communication Effects 0.000 description 18
- 238000004891 communication Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
Classifications
-
- 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
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0423—Input/output
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供了一种具有高实时性和低延时性的上下位机之间的数据传输方法,上位机发送至下位机的任务单元序列中带有追加标记或替换标记,如果任务单元序列中带有追加标记则将该任务单元序列追加至正在执行的缓冲队列之后,如果带有替换标记则进一步判断当前的缓冲队列是否可以被替换,如果可以被替换,则使用该带有替换标记的任务单元序列替换缓冲队列中尚未执行的任务单元,如果不可以被替换则向上位机发送一替换不成功信号,以要求上位机重新发送任务单元序列。这种方式既能够提供足够长的缓冲时间,又能够最小化用户操作延时,从而能够满足工业智能控制系统实时性、低延时以及快速响应的要求。
Description
技术领域
本发明涉及一种数据传输方法,具体而言,涉及一种上位机与下位机之间的数据传输方法,该方法具有高实时性以及低延时性。
背景技术
在实时性和易用性要求很高的工业智能控制系统中,必须同时满足实时快速响应和用户操作界面功能丰富且友好的要求,这就需要提供一个能从整体上集中满足以上要求的解决方案。
在已有的实现方案中,主要有一体式实时操作系统和分布式上下位机两种方法。
一体式实时操作系统方法就是通过在单一CPU上运行实时操作系统来同时兼顾控制的实时性和用户操作界面的丰富性两方面的需求。其优点是软件开发相对简单,但是由于实时控制逻辑和上层用户界面混跑在单一CPU上,导致如下缺点:
1、硬件系统选型受限,需选用能同时满足两方面需求的CPU,必须做出妥协牺牲,无法同时达到两方面的最佳性能;
2、上层用户界面逻辑与关键的实时控制逻辑混跑在同一个CPU上,会对实时控制逻辑的稳定性和安全性造成损害。
现有的分布式上下位机方法的主要思想是将整个系统分拆成以通讯链路相连接的两套子系统中运行,一套子系统是下位机,负责实时快速响应的工业控制功能,一套子系统是上位机,负责用户操作界面和流程控制等上层逻辑。两套子系统各司其职,分别将各自的优势最大化。该方法的最大缺陷在于,上下位机之间的通信链路的运作速度通常远低于CPU的运行速度,因此需要某种形式的缓冲队列机制来加以克服,而片面增加缓冲队列的长度,又会增大从用户操作到工业设备执行动作之间的延时,对整套系统的用户操作体验造成不利影响。
现有的上位机和下位机在通信过程中,上位机每发完一段指令,下位机则在规定时间内(若干毫秒)使用DMA(Direct Memory Access,直接内存访问)方式接收,对接收到的指令进行相关处理;并且在经过规定时间后进行DMA清零,即清除接收到的指令。其中,规定时间不可设置的太长,因为那样会影响上位机和下位机之间通信的实时性、通信速度及通信效率等。但是,上位机在进行多任务处理时经常会影响发送指令的实时性,导致发送出来的指令的字节与字节间偶尔出现不确定时间的中断,由此不能在规定时间内将一段指令发送完毕,此时,下位机则对该指令不予以处理或认为该指令是错误指令段而直接进行DMA清零。最终导致上位机和下位机间的通信缺乏稳定性和可靠度。
中国专利CN201510362905中对上位机和下位机的通信方法进行了改进,公开了一种串口通信方法,包括:依次接收上位机发送的组成同一个指令的多个指令字节;每接收一个指令字节,则判断所述指令的多个指令字节是否接收完毕,如果是,则将所述指令发送至主程序以供其对该指令进行处理,如果否,则等待接收该指令的下一个指令字节。该发明对上位机发送的指令的实时性无要求,而是依次接收上位机发送的同一个指令的多个指令字节,并在接收到一个指令字节后,如果接收完毕,则将指令发送至主程序,否则,则继续等待接收该指令的下一个字节,从而解决了指令的字节与字节间可能存在时间间隔的问题,能够有效获取并识别上位机发送的指令,保证了上位机和下位机之间实现可靠和稳定的通信。该发明由于需要等待指令接受完毕,所以无法满足实时性方面的严格要求。
中国专利CN201410203410为了解决二次平台运动控制的上下位机通信方法的实时性差的问题,公开了一种通信方法和装置。该发明的上位机和下位机通信节点通过TCP通信协议进行通信,下位机通信节点与单片机通过串口进行通信。由于通信指令多,故定义了应用层的通信协议和装置。当上位机向下位机单片机发送指令时,上位机通过TCP通道把数据发送给下位机通信节点,通信节点再把应用层的信息通过串口发给单片机,单片机根据指令执行相应的功能。该发明由于下位机要增加通信节点适应TCP通信协议,增加了下位机的负担,同时也没有考虑通信指令的修改替换问题。
发明内容
本发明提供一种具有高实时性和低延时性的上下位机之间的数据传输方法,用以实现上位机与下位机之间高实时性以及低延时性的数据传输。
为达到上述目的,本发明提供了一种具有高实时性和低延时性的上下位机之间的数据传输方法,其包括以下步骤S1:上位机接收用户的输入和下位机的反馈输入;
S2:上位机根据用户的输入和下位机的反馈输入,判断是否需要对下位机中的缓冲队列进行调整,如果是则执行步骤S3,如果否则执行步骤S6;
S3:上位机根据用户的输入和下位机的反馈输入组装一长度为M的任务单元序列,该任务单元序列中设有替换标记;
S4:上位机将该长度为M的任务单元序列发送给下位机;
S5:下位机判断当前的缓冲队列是否可以被替换,如果可以被替换,则使用该带有替换标记的任务单元序列替换缓冲队列中尚未执行的任务单元,如果不可以被替换则向上位机发送一替换不成功信号,以要求上位机重新发送任务单元序列,然后执行步骤S10;
S6:上位机将待发送的任务单元组装成长度为M′的任务单元序列,该任务单元序列中设有追加标记;
S7:下位机向上位机发送一任务请求信号,
S8:上位机接收到下位机发送的任务请求信号后将组装完成的长度为M′的任务单元序列发送给下位机;
S9:下位机将该任务单元序列追加至正在执行的缓冲队列之后;
S10:下位机按照在缓冲队列中的顺序一一执行其中的任务单元;
S11:下位机检查当前缓冲队列中尚未执行的任务单元的个数是否已减少至一预设剩余值,如果是则下位机向上位机发送任务请求信号,如果否则继续执行步骤S10。
在本发明的一实施例中,步骤S1中,用户的输入为改变量和调试量,下位机的反馈输入为环境量和报警量。
在本发明的一实施例中,步骤S4和S8中,上位机通过串口、USB口或CAN总线将任务单元序列发送给下位机。
在本发明的一实施例中,步骤S8中,下位机收到任务单元序列后发送一确收信号至上位机,如果上位机在一预设时间内未收到确收信号,或者上位机收到下位机发送的一传输失败信号,上位机将重新发送任务单元序列至下位机。
在本发明的一实施例中,步骤S8中,若下位机连续X次均正确接收到任务单元序列,则将M′的值增大为M1′,若下位机连续Y次均未正确接收到任务单元序列,则将M′的值减小为M0′。
在本发明的一实施例中,步骤S5中,下位机判断不可以被替换的条件为:替换后下位机执行缓冲队列中剩余的任务单元的时间小于再一次从上位机接收到任务单元序列的时间。
本发明提供的具有高实时性和低延时性的上下位机之间的数据传输方法既能够提供足够长的缓冲时间,又能够最小化用户操作延时,从而能够满足工业智能控制系统实时性、低延时以及快速响应的要求。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的具有高实时性和低延时性的上下位机之间的数据传输方法的流程图;
图2为下位机中的缓冲队列的示意图;
图3为带有追加标记的任务单元序列加入缓冲队列的示意图;
图4为带有替换标记的任务单元序列加入缓冲队列的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明提供的具有高实时性和低延时性的上下位机之间的数据传输方法的流程图,如图所示,本发明提供的具有高实时性和低延时性的上下位机之间的数据传输方法包括以下步骤:
S1:上位机接收用户的输入和下位机的反馈输入;
其中,用户的输入可以为改变量和调试量,下位机的反馈输入可以为环境量和报警量,具体可根据上下位机之间的应用场合而定。
S2:上位机根据用户的输入和下位机的反馈输入,判断是否需要对下位机中的缓冲队列进行调整,如果是则执行步骤S3,如果否则执行步骤S6;
下位机的缓冲队列中依次排列着由上位机发送而来的任务单元序列,任务单元序列中依次排列着多个任务单元,任务单元是由系统根据工业设备的具体工况和上下位机的执行能力设定的最小执行单元,通过任务单元的方式保证了下位机可以控制执行设备正确完成上位机指定的动作,同时也保证了整个工业系统的实时性。图2为下位机中的缓冲队列的示意图,如图所示,在下位机中,执行完成的任务单元会被丢弃,新的任务单元会被加入缓冲队列的队尾以等待执行。
S3:上位机根据用户的输入和下位机的反馈输入组装一长度为M的任务单元序列,该任务单元序列中设有替换标记;
S4:上位机将该长度为M的任务单元序列发送给下位机;
上位机可以通过串口、USB口或CAN总线将任务单元序列发送给下位机。
S5:下位机判断当前的缓冲队列是否可以被替换,如果可以被替换,则使用该带有替换标记的任务单元序列替换缓冲队列中尚未执行的任务单元,如果不可以被替换则向上位机发送一替换不成功信号,以要求上位机重新发送任务单元序列,然后执行步骤S10;
其中,下位机判断不可以被替换的条件为:替换后下位机执行缓冲队列中剩余的任务单元的时间小于再一次从上位机接收到任务单元序列的时间,如果此时进行了替换,则可能导致预留的时间不足,无法及时接收到下一个任务单元序列,造成下位机空转。
S6:上位机将待发送的任务单元组装成长度为M′的任务单元序列,该任务单元序列中设有追加标记;
S7:下位机向上位机发送一任务请求信号,
S8:上位机接收到下位机发送的任务请求信号后将组装完成的长度为M′的任务单元序列发送给下位机;
其中,为了保证任务序列确实能够下发至下位机,可以设置以下机制:下位机收到任务单元序列后发送一确收信号至上位机,如果上位机在一预设时间内未收到确收信号,或者上位机收到下位机发送的一传输失败信号,上位机将重新发送任务单元序列至下位机。
为了使下位机具有足够长的缓冲时间以及最小化用户操作延时,可以将任务单元序列的长度进行动态调整,具体调整方式如下:若下位机连续X次均正确接收到任务单元序列,则将M′的值增大为M1′,若下位机连续Y次均未正确接收到任务单元序列,则将M′的值减小为M0′。
S9:下位机将该任务单元序列追加至正在执行的缓冲队列之后;
S10:下位机按照在缓冲队列中的顺序一一执行其中的任务单元;
S11:下位机检查当前缓冲队列中尚未执行的任务单元的个数是否已减少至一预设剩余值,如果是则下位机向上位机发送任务请求信号,如果否则继续执行步骤S10。
图3为带有追加标记的任务单元序列加入缓冲队列的示意图,图4为带有替换标记的任务单元序列加入缓冲队列的示意图。如图3所示,带有追加标记的任务单元序列中的第一个任务单元直接排列在当前缓冲队列的末尾。图4中,标记为k的任务单元与当前正在执行的标记为i的任务单元为同一任务单元序列(这是由于上位机在组装带有替换标记的任务单元序列时并不知道下位机执行到了哪一步,所以可能出现带有替换标记的任务单元序列中已有部分任务单元被执行的情况),由于标记为i的任务单元正在执行,所以与其等同的标记为k的任务单元被抛弃,其余标记为k+1至k+m+1的任务单元替换掉缓冲序列中其余尚未执行的任务单元。
本发明提供的具有高实时性和低延时性的上下位机之间的数据传输方法既能够提供足够长的缓冲时间,又能够最小化用户操作延时,从而能够满足工业智能控制系统实时性、低延时以及快速响应的要求。
本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域普通技术人员可以理解:实施例中的装置中的模块可以按照实施例描述分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。
Claims (6)
1.一种具有高实时性和低延时性的上下位机之间的数据传输方法,其特征在于,包括以下步骤:
S1:上位机接收用户的输入和下位机的反馈输入;
S2:上位机根据用户的输入和下位机的反馈输入,判断是否需要对下位机中的缓冲队列进行调整,如果是则执行步骤S3,如果否则执行步骤S6;
S3:上位机根据用户的输入和下位机的反馈输入组装一长度为M的任务单元序列,该任务单元序列中设有替换标记;
S4:上位机将该长度为M的任务单元序列发送给下位机;
S5:下位机判断当前的缓冲队列是否可以被替换,如果可以被替换,则使用该带有替换标记的任务单元序列替换缓冲队列中尚未执行的任务单元,如果不可以被替换则向上位机发送一替换不成功信号,以要求上位机重新发送任务单元序列,然后执行步骤S10;
S6:上位机将待发送的任务单元组装成长度为M′的任务单元序列,该任务单元序列中设有追加标记;
S7:下位机向上位机发送一任务请求信号,
S8:上位机接收到下位机发送的任务请求信号后将组装完成的长度为M′的任务单元序列发送给下位机;
S9:下位机将该任务单元序列追加至正在执行的缓冲队列之后;
S10:下位机按照在缓冲队列中的顺序一一执行其中的任务单元;
S11:下位机检查当前缓冲队列中尚未执行的任务单元的个数是否已减少至一预设剩余值,如果是则下位机向上位机发送任务请求信号,如果否则继续执行步骤S10。
2.根据权利要求1所述的具有高实时性和低延时性的上下位机之间的数据传输方法,其特征在于,步骤S1中,用户的输入为改变量和调试量,下位机的反馈输入为环境量和报警量。
3.根据权利要求1所述的具有高实时性和低延时性的上下位机之间的数据传输方法,其特征在于,步骤S4和S8中,上位机通过串口、USB口或CAN总线将任务单元序列发送给下位机。
4.根据权利要求1所述的具有高实时性和低延时性的上下位机之间的数据传输方法,其特征在于,步骤S8中,下位机收到任务单元序列后发送一确收信号至上位机,如果上位机在一预设时间内未收到确收信号,或者上位机收到下位机发送的一传输失败信号,上位机将重新发送任务单元序列至下位机。
5.根据权利要求4所述的具有高实时性和低延时性的上下位机之间的数据传输方法,其特征在于,步骤S8中,若下位机连续X次均正确接收到任务单元序列,则将M′的值增大为M1′,若下位机连续Y次均未正确接收到任务单元序列,则将M′的值减小为M0′。
6.根据权利要求1所述的具有高实时性和低延时性的上下位机之间的数据传输方法,其特征在于,步骤S5中,下位机判断不可以被替换的条件为:替换后下位机执行缓冲队列中剩余的任务单元的时间小于再一次从上位机接收到任务单元序列的时间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610576816.8A CN106230745B (zh) | 2016-07-20 | 2016-07-20 | 具有高实时性和低延时性的上下位机之间的数据传输方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610576816.8A CN106230745B (zh) | 2016-07-20 | 2016-07-20 | 具有高实时性和低延时性的上下位机之间的数据传输方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106230745A true CN106230745A (zh) | 2016-12-14 |
CN106230745B CN106230745B (zh) | 2019-05-14 |
Family
ID=57531056
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610576816.8A Expired - Fee Related CN106230745B (zh) | 2016-07-20 | 2016-07-20 | 具有高实时性和低延时性的上下位机之间的数据传输方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106230745B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010053957A1 (en) * | 2000-06-14 | 2001-12-20 | Blair Douglas M. | Apparatus and method for providing sequence database comparison |
CN103973798A (zh) * | 2014-05-14 | 2014-08-06 | 哈尔滨工业大学 | 二次平台运动控制的上下位机通信方法和装置 |
CN104881379A (zh) * | 2015-06-26 | 2015-09-02 | 力合科技(湖南)股份有限公司 | 一种串口通信方法 |
-
2016
- 2016-07-20 CN CN201610576816.8A patent/CN106230745B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010053957A1 (en) * | 2000-06-14 | 2001-12-20 | Blair Douglas M. | Apparatus and method for providing sequence database comparison |
CN103973798A (zh) * | 2014-05-14 | 2014-08-06 | 哈尔滨工业大学 | 二次平台运动控制的上下位机通信方法和装置 |
CN104881379A (zh) * | 2015-06-26 | 2015-09-02 | 力合科技(湖南)股份有限公司 | 一种串口通信方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106230745B (zh) | 2019-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20160378570A1 (en) | Techniques for Offloading Computational Tasks between Nodes | |
CN107666415B (zh) | Fc-ae-1553协议桥的优化方法和装置 | |
US20190087236A1 (en) | Resource scheduling device, system, and method | |
CN102354165A (zh) | 在线更新数据的方法、控制器和人机交互系统 | |
CN103647759A (zh) | 一种mss的协商方法及装置 | |
CN106487721A (zh) | 网络设备和用于网络设备中的报文转发方法 | |
CN105164980A (zh) | 众核下网络数据的分发方法及系统 | |
CN104391656A (zh) | 一种存储设备的io资源分配方法、装置及存储设备 | |
US20220114132A1 (en) | Data Switch Chip and Server | |
CN104158683A (zh) | 一种跨设备聚合组快速收敛方法及装置 | |
CN106230745A (zh) | 具有高实时性和低延时性的上下位机之间的数据传输方法 | |
CN109840147A (zh) | 一种实现多队列网卡绑定cpu的方法及系统 | |
CN106708761A (zh) | 一种业务报文的处理方法及装置 | |
CN109426643A (zh) | Usb接口请求调度方法、装置及设备 | |
CN110430110B (zh) | 一种现场总线网关及其协议转换方法 | |
CN207780763U (zh) | 多接口cpu模块 | |
US5737626A (en) | Deterministic communication network for industrial control | |
CN207209640U (zh) | 一种电梯远程监控系统 | |
CN106776031B (zh) | 一种数据发送方法及装置 | |
CN102708079A (zh) | 应用于微控制器的控制数据传输的方法及系统 | |
CN101197782B (zh) | 一种基于多核处理器的网络设备的控制方法及系统 | |
CN100493041C (zh) | 基于路由交换机的自适应可变时间片包转发调度方法 | |
CN110958503B (zh) | 一种带宽分配装置及方法 | |
CN103825697B (zh) | 基于PowerLink的多主站同步方法及系统 | |
CN211207102U (zh) | 一种用于尾矿充填泵控制的ControlLogix冗余通讯系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20190514 |