机器设备数据采集方法以及采集系统技术方案

技术编号:18021447 阅读:79 留言:0更新日期:2018-05-23 06:33
本发明专利技术涉及数据采集技术领域,其目的是提供一种机器设备数据采集方法和数据采集系统,能够平衡采集速率与发送速率,保证发送操作占用较短的时间,并且在发生网络不顺畅的情况下仍能够保证数据的传输完整,确保不会丢失数据。该方法是使用NodeMCUrrent作为主控制器一边采集数据,并同时通过TCP协议进行数据传输的方法,具体包括:采集数据、WiFi重连和传送数据三个部分。基于所述数据采集方法的数据采集系统包括:配置模块、列队模块、确认移除模块、发送模块、任务模块、初始化模块。

【技术实现步骤摘要】
机器设备数据采集方法以及采集系统
本专利技术涉及机器设备数据的处理
,具体来说,是涉及一种机器设备数据采集方法以及采集系统。
技术介绍
机器设备的数据采集在市场上有多种方法:现在常用的方式是选用Arduino采集数据。Arduino是用来建电子类产品的一个开源的平台,和ESP8266结合就可以把本身采集到的数据发到指定的地方。使用Arduino采集传感器数据然后通过AT指令命令ESP8266发送的架构,如图1所示。这种架构最大的弊端就在于数据采集者与发送者不是同一个设备,于是需要两个MCU(微控制单元)之间进行交互,工作量巨大,还很容易出错。同时,在使用各种MCU进行数据采集与发送时,存在以下三个方面的难点:(1)采样的数据源源不断地产生,属于高频事件,而发送的频率却是很低,如何解决采样速率与发送速率频率不一致的问题,使得数据的采样和发送达到平衡状态;(2)如果发生网络情况不顺畅时,如何保证数据的传输的完整,不丢失数据;(3)采样频率往往比较高,这意味着发送操作占用时间必须足够短,否则会使得下一次采样时间延后。只有解决了以上三个方面的难点,才能保证网络传输的速度与稳定性。
技术实现思路
本专利技术的目的是克服现有技术中的不足之处,提供一种机器设备数据采集方法,能够平衡采集速率与发送速率,保证发送操作占用较短的事件,并且在发生网络情况不顺畅时仍能够保证数据的传输完整,确保不会丢失数据。本专利技术的另一目的是提供一种基于上述机器设备数据采集方法的数据采集系统。为了上述目的,本专利技术把ESP8266刷成NodeMCU,使用NodeMCU做主控制器。NodeMCU是一个32位CPU、1~8MB闪存、80KBRAM与一块WiFi射频芯片的结合体,兼有强大的运算能力、持久化存储能力和WiFi功能。由于其自带WiFi功能而且价格低廉,非常适合作为设备传感器数据无线采集终端。同时,本专利技术采用更为轻量、高效的,也更适用于嵌入式系统的脚本语言Lua来取代传统的嵌入式语言c或c++,用Lua语言给NodeMCU编程。架构如图2所示。本专利技术直接把传感器与NodeMCU相连,那么NodeMCU就可以一边采集数据一边发送数据,NodeMCU同时作为数据采集者和发送者,即使有交互也是在同一个MCU内部,共享同一片内存,线程(协程)的调度也容易得多,不仅节约了硬件也节约了软件。本专利技术一种机器设备数据采集方法,该方法是使用NodeMCUrrent作为主控制器一边采集数据,并同时通过TCP协议进行数据传输的方法,具体包括:(一)采集数据,包括:(1.1)在NodeMCU的内存中建立一个列队,采集线程以固定的频率采集传感器数据并塞入队列的尾部,形成队尾;(1.2)当队尾达到预先设定的大小后,就把当前队尾全部写入文件名为qf_x(x=0,1,2,3,……)的文件中,然后把当前内存中的队尾清空;(二)WiFi重连,设置成每间隔一定时间T1重新连接一下WiFi;(三)传送数据,包括:(3.1)读取待发送数据:在队列内部维护一个cache(缓存文件),当需要获取待发送的数据时,调用peekPacket函数,判断cache是否为空:(3.1.1)当cache不为空时,直接返回cache中的数据;(3.1.2)当cache为空时,确认当前内存中是否有文件名为qf_x的文件:(3.1.2.1)如果有,则把编号最小的qf_x文件的内容读出来赋值给cache,并清除该编号最小的qf_x文件的,然后返回cache中的数据;(3.1.2.2)如果没有,则把内存中的整个队尾赋值给cache,并清除当前队尾,然后返回cache中的数据;(3.2)判断数据是否发送成功:设有一个socket文件用于表示当前的TCP连接,预先设置一个时长为T2的定时器,(3.2.1)如果在T2时间内,TCP送达数据到服务器并收到服务器的确认消息,则取消定时并判断为数据发送成功,进入步骤(3.3);(3.2.2)如在T2时间内,未收到确认消息,则判断为超时发送,断定TCP已断开,清空socket文件并新建一个socket,结束本次数据发送;(3.3)清空cache文件,结束本次数据发送。其中,步骤(3.1.2.1)中,当把编号最小的qf_x文件的内容读出来赋值给cache,并清除该编号最小的qf_x文件后,将剩余的qx_x文件按0,1,2,3,……的顺序重新编号。其中,所述步骤(1.2)中,当队尾达到预先设定的大小是以2KB为上限,优选是设定成1KB。步骤(1.2)中,当队尾达到1KB后,就把当前队尾全部写入文件名为qf_x(x=0,1,2,3,……)的文件中,然后把当前内存中的队尾清空。其中,所述WiFi重连,设置成每间隔60s重新连接一下WiFi。其中,所述T2为一个不大于10000ms的时长,作为一种可选择的时长,T2可以为5000ms。一种基于上述的机器设备数据采集方法的数据采集系统,包括:配置模块、列队模块、确认移除模块、发送模块、任务模块、初始化模块。配置模块,用于测试加速器与传感器是否存在,然后进行基本的配置,最终返回一个对象,配置模块最终返回的对象包含若干个方法用来读取传感器内部的数值,所读取的传感器内部的数据即为原始寄存器数据。列队模块,用于把闪存中所有“qf_”开头的文件删除,然后建立一个依赖于文件系统的队列,最后返回一个对象代表这个队列,列队模块返回的对象中包含了把传感器数据塞入队尾的函数、从队首取出数据包的函数和获取队列长度的函数。例如,maxBufSz表示内存中队列最大长度,达到这个长度后就会写入文件,同时,maxBufSz也决定了每个数据包的长度。确认移除模块,用于在队列内部维护一个缓存文件,将内存中编号最小的“qf_x”文件的内容或整个队尾赋值给该缓存文件,当需要发送数据时,返回该缓存文件中的数据,并在确认数据发送成功后,清空该缓存文件。确认移除模块使得系统实现了可重复读取和确认移除的功能。发送模块,用于创建一个独立的WiFi重连流程,每间隔T1时间重连WiFi,同时根据预先设置的一个时长为T2的定时器进行TCP超时重连工作,发送模块最终返回一个对象,所述发送模块返回的对象提供了一个用于发送数据的函数和获取当前发送状态的函数。任务模块,用于创建所有的任务并返回一个对象,所述任务模块返回的对象包含了启动任务的函数、停止任务的函数和获得当前状态的函数。初始化模块,用于初始化整个系统。其中,所述T1为60s;所述T2为一个不大于10000ms的时长。本专利技术由于采用了上述技术方案,与现有技术相比,具有以下有益效果:本专利技术机器设备数据采集系统,可以利用低成本的开源硬件建成了一个高效的数据采集和发送系统;具有灵活且可延伸的硬件采集系统,可跟据需要扩大采集数据类别;能够保持数据的完整性,数据完整无失地被传输到终点;在网络暂时中断的情况下,数据会最大程度的保存在产品外存模块里,网络恢复时,外存数据会继续发送到终端;解决了单方向数据发送而保证终点接收方收到数据;采用使用产品内存和外存的设计解决了数据采集频率和数据发送频率不一致的问题。附图说明通过以下本专利技术的实施例并结合附图的描述,示出本专利技术的其它优点和特征,该实施例以实例的形式给出,但并不限于此,其中:图1为现有技术中机器本文档来自技高网...
机器设备数据采集方法以及采集系统

【技术保护点】
一种机器设备数据采集方法,其特征在于,该方法是使用NodeMCUrrent作为主控制器一边采集数据,并同时通过TCP协议进行数据传输的方法,具体包括:(一)采集数据,包括:(1.1)在NodeMCU的内存中建立一个列队,采集线程以固定的频率采集传感器数据并塞入队列的尾部,形成队尾;(1.2)当队尾达到预先设定的大小后,就把当前队尾全部写入文件名为qf_x(x=0,1,2,3,……)的文件中,然后把当前内存中的队尾清空;(二)WiFi重连,设置成每间隔一定时间T1重新连接一下WiFi;(三)传送数据,包括:(3.1)读取待发送数据:在队列内部维护一个cache(缓存文件),当需要获取待发送的数据时,调用peekPacket函数,判断cache是否为空:(3.1.1)当cache不为空时,直接返回cache中的数据;(3.1.2)当cache为空时,确认当前内存中是否有文件名为qf_x的文件:(3.1.2.1)如果有,则把编号最小的qf_x文件的内容读出来赋值给cache,并清除该编号最小的qf_x文件的,然后返回cache中的数据;(3.1.2.2)如果没有,则把内存中的整个队尾赋值给cache,并清除当前队尾,然后返回cache中的数据;(3.2)判断数据是否发送成功:设有一个socket文件用于表示当前的TCP连接,预先设置一个时长为T2的定时器,(3.2.1)如果在T2时间内,TCP送达数据到服务器并收到服务器的确认消息,则取消定时并判断为数据发送成功,进入步骤(3.3);(3.2.2)如在T2时间内,未收到确认消息,则判断为超时发送,断定TCP已断开,清空socket文件并新建一个socket,结束本次数据发送;(3.3)清空cache文件,结束本次数据发送。...

【技术特征摘要】
1.一种机器设备数据采集方法,其特征在于,该方法是使用NodeMCUrrent作为主控制器一边采集数据,并同时通过TCP协议进行数据传输的方法,具体包括:(一)采集数据,包括:(1.1)在NodeMCU的内存中建立一个列队,采集线程以固定的频率采集传感器数据并塞入队列的尾部,形成队尾;(1.2)当队尾达到预先设定的大小后,就把当前队尾全部写入文件名为qf_x(x=0,1,2,3,……)的文件中,然后把当前内存中的队尾清空;(二)WiFi重连,设置成每间隔一定时间T1重新连接一下WiFi;(三)传送数据,包括:(3.1)读取待发送数据:在队列内部维护一个cache(缓存文件),当需要获取待发送的数据时,调用peekPacket函数,判断cache是否为空:(3.1.1)当cache不为空时,直接返回cache中的数据;(3.1.2)当cache为空时,确认当前内存中是否有文件名为qf_x的文件:(3.1.2.1)如果有,则把编号最小的qf_x文件的内容读出来赋值给cache,并清除该编号最小的qf_x文件的,然后返回cache中的数据;(3.1.2.2)如果没有,则把内存中的整个队尾赋值给cache,并清除当前队尾,然后返回cache中的数据;(3.2)判断数据是否发送成功:设有一个socket文件用于表示当前的TCP连接,预先设置一个时长为T2的定时器,(3.2.1)如果在T2时间内,TCP送达数据到服务器并收到服务器的确认消息,则取消定时并判断为数据发送成功,进入步骤(3.3);(3.2.2)如在T2时间内,未收到确认消息,则判断为超时发送,断定TCP已断开,清空socket文件并新建一个socket,结束本次数据发送;(3.3)清空cache文件,结束本次数据发送。2.如权利要求1所述的机器设备数据采集方法,其特征在于:步骤(3.1.2.1)中,当把编号最小的qf_x文件的内容读出来赋值给cache,并清除该编号最小的qf_x文件后,将剩余的qx_x文件按0,1,2,3,……的顺...

【专利技术属性】
技术研发人员:梁兴伟
申请(专利权)人:深圳盛达伟科技有限公司
类型:发明
国别省市:广东,44

相关技术
    暂无相关专利
网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1