本发明提出了一种基于opc ua的农业传感器数据采集方法和系统,属于数据采集。
背景技术:
1、随着农业信息化的需要,种植过程中需要用到的各种传感器,比如温湿度传感器、二氧化碳传感器、光照传感器等,其中涉及到的传感器种类繁多。农场内需要的各个传感器协议都不尽相同,要实现统一把传感器统一管理,将浪费大量时间。
技术实现思路
1、本发明提供了一种基于opc ua的农业传感器数据采集方法和系统,用以解决现有技术中由于协议无法统一管理导致的数据传输效率较低的问题:
2、一种基于opc ua的农业传感器数据采集方法,所述农业传感器数据采集方法包括:
3、通过扫描农业监测管理平台获取的农业传感器采集的农业数据,获取用于采集农业数据的传感器类型和每种类型传感器对应的传感器数量;
4、根据所述农业传感器类型确定每种传感器对应的通信协议,获取农业传感器数据传输过程中的通信协议类型;
5、将所述农业传感器对应的通信协议类型发送至opc ua服务器中,通过所述opc ua服务器建立与所述通信协议类型对应的通信端口。
6、进一步地,通过扫描农业监测管理平台获取的农业传感器采集的农业数据,获取用于采集农业数据的传感器类型和每种类型传感器对应的传感器数量,包括:
7、通过扫描农业监测管理平台获取的农业传感器采集的农业数据;
8、根据所述农业数据获取所述农业数据对应的农业数据类型,其中,所述农业数据类型包括温度数据、湿度数据、光照数据和土壤ph值数据;
9、根据所述农业数据类型提取所述农业数据对应的农业传感器;
10、将所述农业传感器按照所述农业数据类型进行归类,获取以农业数据类型为单位的农业传感器集合;
11、提取每个所述农业传感器集合中所包含的农业传感器数量。
12、进一步地,根据所述农业传感器类型确定每种传感器对应的通信协议,获取农业传感器数据传输过程中的通信协议类型,包括:
13、提取所述农业传感器类型的种类数量和通信协议的种类数量;
14、当所述通信协议的种类数量不低于所述农业传感器类型的种类数量时,按照不同所述农业传感器类型的不同对应不同的通信协议种类的规则获取每个种类的农业传感器对应的通信协议类型;
15、当所述通信协议的种类数量低于所述农业传感器类型的种类数量时,按照所述农业传感器的种类和每个种类的农业传感器对应的数量获取每个种类的农业传感器对应的通信协议类型。
16、进一步地,当所述通信协议的种类数量低于所述农业传感器类型的种类数量时,按照所述农业传感器的种类和每个种类的农业传感器对应的数量获取每个种类的农业传感器对应的通信协议类型,包括:
17、将农业传感器的数量小于第一预设数量阈值的对应农业传感器种类,对应一种通信协议;
18、将农业传感器的数量不低于第一预设数量阈值的对应农业传感器种类,但低于第二预设数量阈值的对应农业传感器种类,按照完整种类为单位完整分配给不同的两种通信协议;
19、将农业传感器的数量不低于第二预设数量阈值的对应农业传感器种类按照完整种类为单位完整分配至剩余未被启用的多种通信协议。
20、进一步地,将所述农业传感器对应的通信协议类型发送至opc ua服务器中,通过所述opc ua服务器建立与所述通信协议类型对应的通信端口后,所述opc ua服务器首先会利用建立的通信端口采集每个传感器的多次数据,根据采集每个传感器的多次数据检测当前建立的通信端口是否准确可靠,其具体步骤包括:
21、步骤a1:所述opc ua服务器利用公式(1)根据采集到的每个传感器的多次数据的数据长度,数据帧头帧尾进行数据一次检验
22、
23、其中y1(a_i)表示采集到的第a个传感器的第i次数据的一次检验值;q16(a_i)表示提取的第a个传感器的第i次数据的帧头数据的16进制形式;p16(a_i)表示提取的第a个传感器的第i次数据的帧尾数据的16进制形式;q16(a)表示第a个传感器的标准数据帧头的16进制形式;p16(a)表示第a个传感器的标准数据帧尾的16进制形式;| |表示求取绝对值;[c(a_i)]16表示采集到的第a个传感器的第i次数据的16进制形式;len{[c(a_i)]16}表示采集到的第a个传感器的第i次数据的16进制形式下的数据长度;>>表示右移;<<表示左移;
24、若y1(a_i)=0,则表示采集到的第a个传感器的第i次数据一次检验成功;
25、若y1(a_i)≠0,则表示采集到的第a个传感器的第i次数据一次检验失败;
26、步骤a2:利用公式(2)根据采集到的每个传感器的多次数据中的数据校验和对数据进行二次检验
27、
28、其中y2(a_i)表示采集到的第a个传感器的第i次数据的二次检验值;j16(a_i)表示提取出的第a个传感器的第i次数据的数据校验和的16进制形式;[c(a_i)]16(k)表示数据[c(a_i)]16中第k位上的数值;
29、若y2(a_i)=0,则表示采集到的第a个传感器的第i次数据二次检验成功;
30、若y2(a_i)≠0,则表示采集到的第a个传感器的第i次数据二次检验失败;
31、步骤a3:利用公式(3)根据每个传感器的多次数据的一次检验和二次检验的校验情况控制建立与所述通信协议类型对应的通信端口是否需要进行重新建立
32、
33、其中e[x(r)]表示所述第r个通信协议类型对应的通信端口进行重新建立的控制值;x(r)表示所述第r个通信协议类型对应的传感器的编号集合;a∈x(r)表示将a属于x(r)的所有a值全部找到;n(a)表示采集到第a个传感器的数据总个数;g[]表示归一函数,若括号内的数值不等于0则函数值为1,若括号内的数值等于0则函数值为0;
34、若e[x(r)]=1,则表示检查不通过,控制所述第r个通信协议类型对应的通信端口进行重新建立;
35、若e[x(r)]=0,则表示检查通过,无需对所述第r个通信协议类型对应的通信端口进行重新建立。
36、一种基于opc ua的农业传感器数据采集系统,所述农业传感器数据采集系统包括:
37、扫描模块,用于通过扫描农业监测管理平台获取的农业传感器采集的农业数据,获取用于采集农业数据的传感器类型和每种类型传感器对应的传感器数量;
38、协议确定模块,用于根据所述农业传感器类型确定每种传感器对应的通信协议,获取农业传感器数据传输过程中的通信协议类型;
39、建立模块,用于将所述农业传感器对应的通信协议类型发送至opc ua服务器中,通过所述opc ua服务器建立与所述通信协议类型对应的通信端口。
40、进一步地,所述扫描模块包括:
41、农业数据采集模块,用于通过扫描农业监测管理平台获取的农业传感器采集的农业数据;
42、数据类型获取模块,用于根据所述农业数据获取所述农业数据对应的农业数据类型,其中,所述农业数据类型包括温度数据、湿度数据、光照数据和土壤ph值数据;
43、传感器提取模块,用于根据所述农业数据类型提取所述农业数据对应的农业传感器;
44、归类模块,用于将所述农业传感器按照所述农业数据类型进行归类,获取以农业数据类型为单位的农业传感器集合;
45、传感器数量提取模块,用于提取每个所述农业传感器集合中所包含的农业传感器数量。
46、进一步地,所述协议确定模块包括:
47、种类数量提取模块,用于提取所述农业传感器类型的种类数量和通信协议的种类数量;
48、第一协议类型获取模块,用于当所述通信协议的种类数量不低于所述农业传感器类型的种类数量时,按照不同所述农业传感器类型的不同对应不同的通信协议种类的规则获取每个种类的农业传感器对应的通信协议类型;
49、第二协议类型获取模块,用于当所述通信协议的种类数量低于所述农业传感器类型的种类数量时,按照所述农业传感器的种类和每个种类的农业传感器对应的数量获取每个种类的农业传感器对应的通信协议类型。
50、进一步地,所述第一协议类型获取模块包括:
51、第一协议分配模块,用于将农业传感器的数量小于第一预设数量阈值的对应农业传感器种类,对应一种通信协议;
52、第二协议分配模块,用于将农业传感器的数量不低于第一预设数量阈值的对应农业传感器种类,但低于第二预设数量阈值的对应农业传感器种类,按照完整种类为单位完整分配给不同的两种通信协议;
53、第三协议分配模块,用于将农业传感器的数量不低于第二预设数量阈值的对应农业传感器种类按照完整种类为单位完整分配至剩余未被启用的多种通信协议。
54、进一步地,将所述农业传感器对应的通信协议类型发送至opc ua服务器中,通过所述opc ua服务器建立与所述通信协议类型对应的通信端口后,所述opc ua服务器首先会利用建立的通信端口采集每个传感器的多次数据,根据采集每个传感器的多次数据检测当前建立的通信端口是否准确可靠,其具体步骤包括:
55、步骤a1:所述opc ua服务器利用公式(1)根据采集到的每个传感器的多次数据的数据长度,数据帧头帧尾进行数据一次检验
56、
57、其中y1(a_i)表示采集到的第a个传感器的第i次数据的一次检验值;q16(a_i)表示提取的第a个传感器的第i次数据的帧头数据的16进制形式;p16(a_i)表示提取的第a个传感器的第i次数据的帧尾数据的16进制形式;q16(a)表示第a个传感器的标准数据帧头的16进制形式;p16(a)表示第a个传感器的标准数据帧尾的16进制形式;| |表示求取绝对值;[c(a_i)]16表示采集到的第a个传感器的第i次数据的16进制形式;len{[c(a_i)]16}表示采集到的第a个传感器的第i次数据的16进制形式下的数据长度;>>表示右移;<<表示左移;
58、若y1(a_i)=0,则表示采集到的第a个传感器的第i次数据一次检验成功;
59、若y1(a_i)≠0,则表示采集到的第a个传感器的第i次数据一次检验失败;
60、步骤a2:利用公式(2)根据采集到的每个传感器的多次数据中的数据校验和对数据进行二次检验
61、
62、其中y2(a_i)表示采集到的第a个传感器的第i次数据的二次检验值;j16(a_i)表示提取出的第a个传感器的第i次数据的数据校验和的16进制形式;[c(a_i)]16(k)表示数据[c(a_i)]16中第k位上的数值;
63、若y2(a_i)=0,则表示采集到的第a个传感器的第i次数据二次检验成功;
64、若y2(a_i)≠0,则表示采集到的第a个传感器的第i次数据二次检验失败;
65、步骤a3:利用公式(3)根据每个传感器的多次数据的一次检验和二次检验的校验情况控制建立与所述通信协议类型对应的通信端口是否需要进行重新建立
66、
67、其中e[x(r)]表示所述第r个通信协议类型对应的通信端口进行重新建立的控制值;x(r)表示所述第r个通信协议类型对应的传感器的编号集合;a∈x(r)表示将a属于x(r)的所有a值全部找到;n(a)表示采集到第a个传感器的数据总个数;g[ ]表示归一函数,若括号内的数值不等于0则函数值为1,若括号内的数值等于0则函数值为0;
68、若e[x(r)]=1,则表示检查不通过,控制所述第r个通信协议类型对应的通信端口进行重新建立;
69、若e[x(r)]=0,则表示检查通过,无需对所述第r个通信协议类型对应的通信端口进行重新建立。
70、本发明有益效果:
71、本发明提出的一种基于opc ua的农业传感器数据采集方法和系统以opc ua为核心技术,利用其数据传输安全性强、可集成地址空间和可跨平台等优势,设计并实现了传感器数据采集系统。同时,利用opc ua架构实现传感器的通信协议之间的通信,设备数据信息的采集有效提高数据采集和数据传输效率。