一种测量设备的数据传输方法及装置与流程

文档序号:20047094发布日期:2020-03-03 03:56阅读:332来源:国知局
一种测量设备的数据传输方法及装置与流程

本发明涉及计算机技术领域,特别地涉及一种测量设备的数据传输方法及装置。



背景技术:

在计算机广泛应用的今天,数据采集的重要性是十分显著的。对于大部分制造业企业或者电子商务企业等,测量设备在自动采集数据后的数据同步上传一直是个令人烦恼的事情,由于传感器和其它待测设备等在接收测量值的时间上的误差,导致无法保证数据的准确性,这对之后的数据管理带来了很大的麻烦。

例如,现在往仓库中存储货物时需要采集包裹的体积,人工采集耗时耗力,所以采用了测量设备(例如,传感器等)来测量包裹的长、宽、高等数据,测量设备以龙门架的方式架设在输送线上进行测量。测量设备的下位机在接收到长、宽、高3个传感器的测量值后,分别将值发送给上位机进行处理。上位机接收到值后将值分别显示在输出终端上。

由于3个传感器在接收测量值的时间是不同的,所以会出现只有1个或2个值先传送到上位机,这时上位机显示的数据是不全的。如果采用下位机等待数据接收全的时候再发送的方法,则可能在下位机等待其中一个数据时,采集另外两个数据的传感器的值又将上一个值覆盖,导致测量不准确。



技术实现要素:

有鉴于此,本发明提供一种测量设备的数据传输方法及装置,解决了测量设备在进行数据传输时等待过程中数据丢失的问题。本发明通过引入数据队列来存储数据,并根据指针位置发送数据,能够使多个队列的数据作为一组数据同时发送至上位机,从而避免了测量过程中出现显示错误的问题。

为实现上述目的,根据本发明的一个方面,提供了一种测量设备的数据传输方法。

本发明的一种测量设备的数据传输方法,包括:在所述测量设备的下位机处保存预先设置的多个数据队列及相应的多个队列指针以及发送数据指针,其中所述数据队列的数目与所述测量设备的传感器的数目相关联;将读取的所述传感器中的数据分别保存在对应的数据队列中,同时相应的队列指针值增加1;当所述多个队列指针值都大于所述发送数据指针值时,将所述发送数据指针所指向位置的多个数据作为一组数据发送给所述测量设备的上位机,并且所述发送数据指针值递增1;以及将所述上位机接收到的数据显示在所述测量设备的输出终端上。

可选地,当所述队列指针到达所述数据队列的尾部时,所述队列指针将跳转指向所述数据队列的头部,并重新从所述数据队列的头部开始存储数据。

可选地,在将读取的所述传感器中的数据分别保存在对应的数据队列中之前,还包括:判断所述队列指针中的一个或多个队列指针所指向的下一位置是否与所述发送数据指针所指向的当前位置相同;如果相同,则所述下位机等待而不进行数据填充,且发出报警信息。

可选地,所述队列指针或所述发送数据指针所指向的位置由所述队列指针值或所述发送数据指针值对所述数据队列的长度取余来确定。

为实现上述目的,根据本发明的另一方面,提供了一种测量设备的数据传输装置。

本发明的一种测量设备的数据传输装置,包括:存储配置模块,用于在所述测量设备的下位机处保存预先设置的多个数据队列及相应的多个队列指针以及发送数据指针,其中所述数据队列的数目与所述测量设备的传感器的数目相关联;数据存储模块,用于将读取的所述传感器中的数据分别保存在对应的数据队列中,同时相应的队列指针值增加1;数据发送模块,用于当所述多个队列指针值都大于所述发送数据指针值时,将所述发送数据指针所指向位置的多个数据作为一组数据发送给所述测量设备的上位机,并且所述发送数据指针值递增1;以及数据显示模块,用于将所述上位机接收到的数据显示在所述测量设备的输出终端上。

可选地,当所述队列指针到达所述数据队列的尾部时,所述队列指针将跳转指向所述数据队列的头部,并重新从所述数据队列的头部开始存储数据。

可选地,所述数据存储模块还用于:判断所述队列指针中的一个或多个队列指针所指向的下一位置是否与所述发送数据指针所指向的当前位置相同;如果相同,则所述下位机等待而不进行数据填充,且发出报警信息。

可选地,所述队列指针或所述发送数据指针所指向的位置由所述队列指针值或所述发送数据指针值对所述数据队列的长度取余来确定。

根据本发明的又一方面,提供了一种测量设备的数据传输设备。

一种测量设备的数据传输设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明所提供的测量设备的数据传输方法。

根据本发明的再一方面,提供了一种计算机可读介质。

一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明所提供的测量设备的数据传输方法。

根据本发明的技术方案,通过引入数据队列来存储数据,并根据指针位置发送数据,解决了测量设备在进行数据传输时等待过程中数据丢失的问题,能够使多个队列的数据作为一组数据同时发送至上位机,且防止了传感器将之前采集的值覆盖,从而避免了测量过程中出现显示错误的问题。

附图说明

附图用于更好地理解本发明,不构成对本发明的不当限定。其中:

图1是根据本发明实施例的一种测量设备的数据传输方法的主要步骤示意图;

图2是根据本发明实施例的一种测量设备的数据传输方法的数据队列示意图;

图3是根据本发明实施例的一种测量设备的数据传输方法的步骤流程图;

图4是根据本发明实施例的一种测量设备的数据传输装置的主要模块示意图。

具体实施方式

以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

图1是根据本发明实施例的一种测量设备的数据传输方法的主要步骤示意图。如图1所示,本发明的一种测量设备的数据传输方法主要包括如下的步骤s11至步骤s14。

步骤s11:在测量设备的下位机处保存预先设置的多个数据队列及相应的多个队列指针以及发送数据指针。其中所述数据队列的数目与所述测量设备的传感器的数目相关联。例如,当包裹入库时,需要测量一个包裹的长、宽、高3个参数,此时,即可通过上位机进行程序编写,在测量设备的下位机中设置3个数据队列,分别用于保存下位机从传感器中读取的长、宽、高3个参数的测量值。同时,分别设置3个队列指针,用于指向每个数据队列中保存数据的位置。另外,单独开启一个线程,并设置1个当前的发送数据指针,用于指向当前应该发送的一组数据所在的位置,该线程在后台不停地轮询。

如图2所示,是根据本发明实施例的一种测量设备的数据传输方法的数据队列示意图。图中的3个数据队列分别对应设置3个队列指针,指向数据存储的位置。该3个数据队列的长度n可根据应用需要进行灵活设置。发送数据指针图中未示出。

步骤s12:将读取的传感器中的数据分别保存在对应的数据队列中,同时相应的队列指针值增加1。当所述队列指针到达所述数据队列的尾部时,所述队列指针将跳转指向所述数据队列的头部,并重新从所述数据队列的头部开始存储数据。在分别保存在对应的数据队列中之前,还需要进行如下判断:首先判断所述队列指针中的一个或多个队列指针所指向的下一位置是否与所述发送数据指针所指向的当前位置相同;如果相同,则所述下位机等待而不进行数据填充,且发出报警信息。其中,所述队列指针或所述发送数据指针所指向的位置由所述队列指针值或所述发送数据指针值对所述数据队列的长度取余来确定。

步骤s13:当所述多个队列指针值都大于所述发送数据指针值时,将所述发送数据指针所指向位置的多个数据作为一组数据发送给所述测量设备的上位机,并且所述发送数据指针值递增1。

下面结合图2详细描述步骤s12和步骤s13。开机初始化后,所有队列指针及发送数据指针都指向0的位置,且所有队列指针值及发送数据指针值都为0。下位机读取传感器中的数据,并分别将3个传感器中的值保存在3个数据队列中,同时队列指针向右移动,队列指针值增加1。当读取传感器中的数据并保存到队列中,3个队列指针值都大于0时,例如假设队列指针1和队列指针2的值都为1,且都指向相应队列的位置1,队列指针3的值为2,且指向队列3的位置2,发送数据指针值为0。此时,设置发送数据指针的线程轮询时判断3个队列指针的值都大于发送数据指针值,则将3个队列位置1的3个数据作为一组数据发送给上位机,并将发送数据指针值增加1,且指向位置1。如此,设置发送数据指针的线程不停地轮询,并判断当3个队列指针的值都大于发送数据指针的值时,进行下一次数据发送,否则等待数据填充。

当队列指针到达数据队列的尾部时,队列指针将跳转指向数据队列的头部,并重新从数据队列的头部开始存储数据。此时,队列指针或发送数据指针所指向的位置即为队列指针值或发送数据指针值对设置的队列长度取余。例如,假设队列长度为100,当队列1的数据指针值大于100,例如为101时,队列指针1所指向的位置由101对100取余所确定,即队列指针1将重新指向位置1,此时会将读取的数据存储在队列1的位置1处。

需要注意的是,在从传感器中读取数据的同时,下位机中读取传感器数据的线程会先进行一系列的判断以排除发生故障的情况。首先,判断队列指针所指向的位置和发送数据指针所指向的位置是否相同,如果不同,则下位机从传感器中读取数据;否则,继续判断队列指针值与发送数据指针值是否相等,如果相等,说明下位机中没有可发送数据,下位机从传感器中读取数据;否则,说明发送数据指针阻塞,未能按时上传数据,也就是发生了故障,此时下位机等待而不进行数据填充,同时发出报警信号。举例来说,假设数据队列长度为100,当前数据发送指针值为55,指向队列中的位置55,3个数据队列的队列指针值都为154,指向数据队列中的位置54。当进行下一组数据的读取时,经判断,队列指针将指向的下一位置为55,此时会与发送数据指针所指向的当前位置相同,说明发送数据指针阻塞,未能按时处理数据,故下位机将等待而不进行数据填充,并发出报警信号。直至故障处理完后,再继续进行数据的存储。

步骤s14:将所述上位机接收到的数据显示在所述测量设备的输出终端上。

由以上的步骤可以看出,下位机利用队列进行数据存储,并根据指针位置将数据发送至上位机的方法,能够使多个队列的数据作为一组数据同时发送至上位机,且防止了传感器将之前采集的值覆盖,从而避免了测量过程中出现显示错误的问题。

图3是根据本发明实施例的一种测量设备的数据传输方法的步骤流程图。下面结合流程图介绍本发明的测量设备的数据传输方法。

如图3所示的流程图,首先是初始化(步骤s31),在测量设备的下位机处保存预先设置的多个数据队列及相应的多个队列指针以及发送数据指针,其中,数据队列的数目与测量设备的传感器的数目相关联。例如本发明实施例中有3个传感器分别测量包裹的长、宽、高信息,则相应的设置3个数据队列及对应的3个队列指针,同时开启一个单独的线程,并设置1个当前的发送数据指针。

初始化完成后,在将读取的传感器中的数据保存在数据队列中(步骤s34)之前,下位机中读取传感器数据的线程会先判断是否存在故障。首先判断某一个或多个队列指针所指向的下一位置是否与发送数据指针所指向的位置相同(步骤s32),如果不同,则说明没有故障,可将读取的传感器中的数据保存在数据队列中(步骤s34);如果相同则说明已发生故障,例如发送数据指针阻塞,未能及时发送数据给上位机,而队列指针到达数据队列的尾部后,又从头开始循环至发送数据指针所指向的位置,此时,下位机等待而不进行数据填充,且发出报警信息(步骤s33),待故障排除后,再进行数据存储。

同时,设置发送数据指针的线程也在后台不停地轮询,判断是否所有队列指针值都大于发送数据指针值(步骤s35),如果是,说明3个数据队列中发送数据指针所指向的下一位置的一组数据均已保存好,则发送数据(步骤s36)到上位机以显示在测量设备的输出终端上;否则,将继续等待数据填充(步骤s37)。

按照上述的流程,即可实现利用数据队列来进行数据存储,并根据指针位置将数据发送至上位机,从而解决了传感器传输数据时等待过程中数据丢失的问题。

图4是根据本发明实施例的一种测量设备的数据传输装置的主要模块示意图。如图4,本发明的一种测量设备的数据传输装置40主要包括存储配置模块41、数据存储模块42、数据发送模块43及数据显示模块44。

存储配置模块41用于在所述测量设备的下位机处保存预先设置的多个数据队列及相应的多个队列指针以及发送数据指针,其中所述数据队列的数目与所述测量设备的传感器的数目相关联。

数据存储模块42用于将读取的所述传感器中的数据分别保存在对应的数据队列中,同时相应的队列指针值增加1。当所述队列指针到达所述数据队列的尾部时,所述队列指针将跳转指向所述数据队列的头部,并重新从所述数据队列的头部开始存储数据。

数据存储模块42还可以用于判断所述队列指针中的一个或多个队列指针所指向的下一位置是否与所述发送数据指针所指向的当前位置相同;如果相同,则所述下位机等待而不进行数据填充,且发出报警信息。其中,所述队列指针或所述发送数据指针所指向的位置由所述队列指针值或所述发送数据指针值对所述数据队列的长度取余来确定。

数据发送模块43用于当所述多个队列指针值都大于所述发送数据指针值时,将所述发送数据指针所指向位置的多个数据作为一组数据发送给所述测量设备的上位机,并且所述发送数据指针值递增1。

数据显示模块44用于将所述上位机接收到的数据显示在所述测量设备的输出终端上。

根据本发明实施例的技术方案,通过引入数据队列来存储数据,并根据指针位置发送数据,解决了测量设备在进行数据传输时等待过程中数据丢失的问题,能够使多个队列的数据作为一组数据同时发送至上位机,且防止了传感器将之前采集的值覆盖,从而避免了测量过程中出现显示错误的问题。

以上所述本发明实施例的技术方案,下位机在读取传感器中的数据后,是先进行数据存储再移动指针,且在将数据发送给上位机时,同样是先进行数据发送再移动指针。在实际应用中,也可先进行指针移动再进行数据存储或发送,同样也可数据存储或发送与指针移动的先后顺序不一致等,这几种方案均可达到本发明的目的。

上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1