温室数据采集系统说明
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
上位机系统:
现在数据采集系统通过VB将数据采集到PC上,经数据整合后由MCGS显示
数据采集系统变量命名规则:
'addr数据命名方法为,XADDRxx下标的第一个数代表区号,第二个数代表NUMBER序号,X代表数据类型,P代表光数据,T代表温度,C 表CO2 , S 表湿度。
温室数据采集系统整体运行调试操作流程:
系统数据采集思想:由于MCGS通讯属于主从通讯,数据采集系统缺乏灵活性,故本系统通过OLE自动化,以VB为中介将MCGS和下位机建立数据通信联系。
系统在实现mcgs和vb交互解决的几个关键问题:
1.mcgs按钮按下后,vb检测mcgs按钮按下的信息后向下位发送启动或停止命令。
解决方法:当mcgs按钮按下后,触发一个开关量的变化,这个变量的值会通过ole将此变量的值送至vb,vb通过定时器定时扫描变量的变化来执行相应命令。
2.系统所采集数据触发式存盘,如果mcgs采用定时存盘的话,数据的冗余度
太大,也没有必要,故现要实现只有当vb收到串口数据后经vb数据提取与处理后,触发相应的存盘命令。同时也存在mcgs和vb数据提取与处理的同步问题
解决方法:在vb中设置信号量FLAG,此变量与MCGS中是同一个变量,然后在数据处理完成后,将FLAG置1通过OLE通知MCGS进行数据存盘。而且在Vb数据处理时要添加延时程序,以实现vb数据处理和mcgs数据存盘显示同步.。
3. 关于MCGS变量设定方式以及节点分布显示过程
只有有数据时才能触发MCGS存盘,存盘扫描周期设为400ms,只有flag 为1才开始存盘。flag扫描周期的设定要与vb数据处理速度匹配!
NUMBER的初始值设为1吧。每次串口数据传送完成后,number量被重新置1。Number的置1由vb发送置1信号量,具体置1由mcgs实现。一个大数据采集周期里将分别进行四个区的数据采集,每个区的number都从1开始,每收到一个数据number会自加1,最终的number值即为此次数据采集节点的个数。
在节点分布显示上,vb根据节点注册的先后顺序,即数据在整个数据包的前后位置,动态的将地址赋给地址变量。当MCGS检测到此变量值非零后,会将该节点的地址在节点分布图上的相应节点上显示出来。
此节点显示方案的优点:节点地址灵活,可以根据用户自己定义节点地址
程序编写较简单,系统运算量较少。同时由于温室数据采集使用轮询方式,节点注册的先后顺序基本固定,故节点地址误差不会很大。
MCGS策略说明
'NUMBER策略主要是进行数据区号判断,then将相应的地址赋给地址变量。
而地址的命名也是根据序号动态命名的。即,根据注册节点先后顺序进行相应地
址命名,如第N个注册节点,会把相应的地址数据存至ADDRxN.串口一次发送
的最大节点个数就等于NUMBER值。下次传送数据时number会自动刷新,重
新计数。这样可以避免同一个地址数据出现在两个点上。
触发式数据存盘策略:用flag标志位实现触发式数据存盘。Flag置1由vb通过OLE传给MCGS.只有FLGA时才能触发MCGS存盘.
下位系统:
帧格式及命令帧说明:
基站地址:sourpan: 0001; souraddr 0X000D
T_SINK--- pan:0x0001 addr:0x0011
photo_sink---pan:0x0001, addr:0x0000
电机控制所用的单片机地址SOURADDR:0X00D1 PANADDR:0X0001
光数据传输帧格式:length FCF16 DSN DESTPAN16 DESTADDR16
SOURADD16 DATA_TYPE SOURPAN16 PAYLOAD[2] CRC
PAYLOAD[5]:----->SOURADD16 data_TYPE DATA16
Souaddr:包括高八位是区号,低八位地址。光和温度数据格式已经统一。
温度传输数据格式:length fcf16 fsn destpan16 destaddr16 souraddr16
data_type data16 CRC_CHECK
湿度和CO2采集用的是温度采集系统,故其数据传输帧格式与温度相同,
base 收到的光数据帧格式即photo_SINK发送的数据帧格式:framelength、FCF
DSN DESTADDR DESTPAN SOUADDR TYPE SOUPAN PAYLOAD CRC
其中PAYLOAD格式: 光的SOUADDR16 TYPE PAN16 DATA16…. 且lowbit
first*/ 但目前DATA16 到基站后,经数据打包datah first
Data_Type:
0x08----> 温度数据
0x07---->光汇聚sink向base发送数据的数据类型
在光采集时用到一个光sink向子节点sensor发送数据采集命令的命令帧也是
0x08,但这个与光的没有任何关系。
0x05 >>>payload内部光数据类型值0x05
0x06==→CO2
0x1B==→湿度
0X0D==→确认帧
0X0A--→路由帧
0XF0-→广播帧(光采集)
在温度采集时广播帧用的是0x01
0X03-→报文帧
0X0B-→停止帧(基站数据采集控制命令)
0X0F →启动帧(基站数据采集控制命令)
0X0E →电机启动帧
0X09——→电机停止帧
信道分类:光采集信道12 ,温度采集信道11 ,电机控制通信信道13
电机控制调试:
电机控制包括cc2430单片机,步进驱动,电机,光耦电路。
电机转动采用步进驱动来实现,单片机只要给驱动脉冲,电机既可以转动,转动速度与单位时间脉冲个数有关。
电机启动:电机启动时应该脉冲个数逐渐增加来实现。
光耦电路主要是为了去除电机转动时对单片机的干扰,同时单片机对行程开关的信号检测采样查询方式,当查询到行程开关闭合后,经延时后继续判断该信号确实闭合,进而响应相关事件。
电机启动和停止受基站控制,当单片机收到基站的命令帧后,根据命令类型做出相应的响应。
温度、光数据采集调试:
数据采集的整体过程:
温度采集与光数据采集受基站控制,数据采集信号由基站发出,而当基站接收到上位机的启动命令后,开始向下发送数据采集命令。基站先通过信道12向光汇聚节点发送光采集命令,汇聚收到命令后,开始向子节点发送光采集命令。