一种测控系统的下位机缓存数据更新方法与流程

文档序号:16900570发布日期:2019-02-19 17:56阅读:368来源:国知局
本发明涉及一种测控系统的局部方法,尤其涉及一种测控系统的下位机缓存数据更新方法。
背景技术
:测控系统由主控单元和测控单元两部分组成,两者之间通过以太网即udp协议进行通信。实时测控系统分为上位机即主控单元和下位机即测控单元,用于提供被测系统工作所需的电源、激励信号和控制信号等输入信号,接收被测系统的输出信号,并根据预设条件判定被测系统工作状态的正确性。上位机即主控单元的主要功能为:1、测试数据的接收、存储与处理;测试波形显示;2、测试流程选择与控制;3、时间片编排;4、测试流程执行。主控单元的硬件平台为笔记本电脑或货架pc,操作系统为win7或中标麒麟v4.0版,软件为自研桌面软件。下位机即测控单元的主要功能为:1、缓存时间片序列;2、按序执行时间片内的操作(在每个时间片中执行数据通信(can、rs422)、继电器操作和数字io操作);3、收集测试数据并打包传给主控单元;测控单元的硬件平台为自研芯片,软件为自研嵌入式软件。测试流程中的时间片编排过程如下:1、将测试流程以2毫秒为周期进行时间分片;2、每个时间片内填充操作数据后打包为时间片帧,并按照时间升序排序;3、再将时间片帧封为udp下载帧。测试流程的执行过程如下:1、上位机软件将udp下载帧发送到下位机;2、下位机软件缓存udp下载帧,然后解包,按序执行时间片中的操作,与被测系统通信;3、被测系统返回被测数据;4、下位机软件将当前时间片内收到的测试数据打包,发给上位机。由于下位机硬件限制,udp下载帧缓存队列只有30k~100k的存储空间(下位机型号差异),同时为了尽量减少udp分包,每个下传的udp下载帧大小为1k左右。即下位机只能保存几十帧udp数据。时间片帧包含的操作数据大小是不均匀的,比如有些帧包含几个字节的数据,有些帧包含几百字节的数据。因此,每个udp下载帧中的时间片帧的数量是不定的。表现为,有些udp下载帧可以包含几秒钟的操作,有些udp下载帧只包含不足1毫秒的操作。如果缓存的udp下载帧被消耗完,下位机将被迫终止测试流程。解决上述问题的传统方法是,下位机在缓存数据还剩10k左右时,向上位机发出一个饥饿帧,表示数据将要用完。上位机收到饥饿帧后,下发20k左右的udp下载帧。上述传统方法的缺点是:1、下位机计算能力有限,加入周期性任务后,可能导致实时性降低。比如,在每2毫秒周期内,统计剩余可用内存量的使用信息,并单独打包为一帧上传到上位机,会挤占硬件资源和时间资源,可能使其它任务无法在2毫秒周期中完成,丧失实时性。2、鲁棒性较差,高数据吞吐量时,测试流程可能因数据缓存消耗过快而意外终止;原因如下:(1)如果数据过快消耗,如每1k的udp数据只能维持2毫秒,10k的数据只能维持20毫秒左右,而上位机系统的线程调度时间(反应时间)通常在50毫秒左右,待上位机收到饥饿帧后再作出反应,会出现偶发性数据下传不及时,导致下位机缓存数据消耗完,测试流程终止;(2)上位机每次发送大量数据(如1毫秒发20帧),对下位机的负担过大,处理能力跟不上,会影响系统实时性;如果降速定间隔(如每2毫秒发一帧)发送,有可能跟不上高数据吞吐量时的数据消耗;(3)如果饥饿帧在链路上丢失,上位机就不会下发新的数据,而缓存数据又正在快速消耗,会导致下位机停机,测试流程终止。3、为保证可靠性,有时会牺牲数据采样精度;原因如下:高吞吐量时,为避免缓存数据消耗过快,会对原始操作数据进行裁剪,降低数据的发送频率;例如,将周期数据由每毫秒发送改为每隔4毫秒发送,这样每个udp下载帧的维持时间增加至4倍;在保证系统稳定工作的同时,这种方法也降低了数据采样精度。技术实现要素:本发明的目的就在于为了解决上述问题而提供一种不依赖饥饿帧的测控系统的下位机缓存数据更新方法,该方法在下位机计算能力和存储能力均有限的情况下,通过上位机模拟计算下位机缓存用量,主动发送更新的缓存数据,减少了下位机的周期性交互工作,间接提高了下位机的实时性能。本发明通过以下技术方案来实现上述目的:一种测控系统的下位机缓存数据更新方法,包括以下步骤:步骤(1):上位机建立一张表:缓存使用状态记录表,下称表m,模拟下位机的缓存使用状态,最大表项数量和缓存空间大小一致,即ak缓存空间对应a个表项;表m的格式如下:表m序号起始时间结束时间1xx毫秒xx毫秒2xx毫秒xx毫秒3xx毫秒xx毫秒…xx毫秒xx毫秒缓存最大值xx毫秒xx毫秒步骤(2):上位机在时间片帧打包为udp下载帧的过程中,记录每个udp下载帧,包含操作的时间范围,即起始时间和结束时间;步骤(3):上位机设置一个用于预计结束时间的变量a;步骤(4):开始下传udp下载帧,填充至最大表项数量的90%,每次发送udp下载帧到到下位机时,将变量a更新为本次发送的udp下载帧的结束时间,并将该帧的时间范围信息写入表m中,添加一条表项;步骤(5):测试流程开始,缓存数据开始消耗;步骤(6):上位机接到下位机发来的udp测试数据帧,根据该帧中的时间字段获得当前测试时间,记为变量b;步骤(7):计算剩余维持时间即变量c=变量a-变量b;步骤(8):当变量c小于预设警戒阈值时,下传剩余的udp下载帧;步骤(9):当变量c不足4秒时,按照每4毫秒1帧的速率下传udp下载帧;当变量c不足2秒时,按照每2毫秒1帧的速率下传udp下载帧;当变量c不足1秒时,按照每1毫秒1帧的速率下传udp下载帧;以此类推,当变量c不足前值一半时,下传udp下载帧的速率加倍,直到系统规定的传输速率上限;步骤(10):每次下载udp下载帧时,更新表m,更新方法如下:先删除变量a小于当变量b的表项,再将新下传的udp下载帧信息添加至表m;按照步骤(9)的速率反复下传udp下载帧,直到填充至最大表项数量的90%;步骤(11):重复步骤(6)至步骤(10),直到测试流程结束,完成下位机缓存数据的更新。本发明的有益效果在于:本发明在不依赖饥饿帧的情况下,上位机主动计算下位机缓存剩余情况,动态决定udp下载帧的发送频率和数量,具备较强的鲁棒性,不依赖饥饿帧和特殊协议,通过模拟计算下位机缓存状态,动态制定缓存更新策略,主动下传udp下载帧,有效避免下位机缓存消耗过快、更新不及时的问题;上位机动态决定udp下载帧的发送频率和数量,尽量减少下传udp下载帧对下位机的影响,降低下位机负载,提高下位机实时性;不必对高吞吐量的测试流程做数据裁剪,增强了该情况下测试系统的易用性和采样精度。具体实施方式下面结合实施例对本发明作进一步说明:实施例:一种测控系统的下位机缓存数据更新方法,包括以下步骤:步骤(1):上位机建立一张表:缓存使用状态记录表,下称表m,模拟下位机的缓存使用状态,最大表项数量和缓存空间大小一致,即ak缓存空间对应a个表项;表m的格式如下:表m序号起始时间结束时间1xx毫秒xx毫秒2xx毫秒xx毫秒3xx毫秒xx毫秒…xx毫秒xx毫秒缓存最大值xx毫秒xx毫秒步骤(2):上位机在时间片帧打包为udp下载帧的过程中,记录每个udp下载帧,包含操作的时间范围,即起始时间和结束时间;步骤(3):上位机设置一个用于预计结束时间的变量a;步骤(4):开始下传udp下载帧,填充至最大表项数量的90%,每次发送udp下载帧到到下位机时,将变量a更新为本次发送的udp下载帧的结束时间,并将该帧的时间范围信息写入表m中,添加一条表项;步骤(5):测试流程开始,缓存数据开始消耗;步骤(6):上位机接到下位机发来的udp测试数据帧,根据该帧中的时间字段获得当前测试时间,记为变量b;步骤(7):计算剩余维持时间即变量c=变量a-变量b;步骤(8):当变量c小于预设警戒阈值时,下传剩余的udp下载帧;步骤(9):当变量c不足4秒时,按照每4毫秒1帧的速率下传udp下载帧;当变量c不足2秒时,按照每2毫秒1帧的速率下传udp下载帧;当变量c不足1秒时,按照每1毫秒1帧的速率下传udp下载帧;以此类推,当变量c不足前值一半时,下传udp下载帧的速率加倍,直到系统规定的传输速率上限;步骤(10):每次下载udp下载帧时,更新表m,更新方法如下:先删除变量a小于当变量b的表项,再将新下传的udp下载帧信息添加至表m;按照步骤(9)的速率反复下传udp下载帧,直到填充至最大表项数量的90%;步骤(11):重复步骤(6)至步骤(10),直到测试流程结束,完成下位机缓存数据的更新。上述实施例只是本发明的较佳实施例,并不是对本发明技术方案的限制,只要是不经过创造性劳动即可在上述实施例的基础上实现的技术方案,均应视为落入本发明专利的权利保护范围内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1