温室控制系统下位机软件设计*

2011-09-11 10:16张洪波李相白李建春
微处理机 2011年4期
关键词:下位上位命令

张洪波,李相白,李建春

(1.云南驰宏锌锗股份有限公司曲靖锌厂,曲靖 655000;2.云南驰宏资源综合利用开发有限公司,曲靖 655000)

1 引言

目前,如何引导温室种植户根据作物的生长要求进行环境因子的调节以获得作物产量和质量的提高,是温室环境因子监控系统的主要目标和研究方向[1]。如何利用自动控制系统对温室环境进行有效的控制,是目前我国温室研究的重要课题之一,对我国温室产业水平的提高有着重大的现实意义[2]。以微机为核心的温室综合环境控制系统获得了长足发展,并逐步迈入网络化、智能化阶段[3]。

在宁夏国家经济林木种苗快繁工程技术研究中心的温室监控系统中,为保证温室控制系统的可靠性,将系统设计为三级主从控制系统。以ARM系列单片机为中间主控制器的模块化下位机数据采集和控制单元以便于系统的扩展。上位机服务器直接面向网络,保存下位机采集的数据。选用主控器自带TCP/IP功能与服务器通信,自带RS485通信功能连接下位机的数据采集与控制单元。具体结构如图1所示。

2 通信协议

数据传输的准确性至关重要。确保主控制器和下位机之间进行及时、准确、可靠的数据通讯是系统可靠运行的关键[4]。

2.1 通信帧格式

系统通信帧分为指令帧和数据帧,其帧组成格式相同,数据校验均采用CRC16校验,校验内容包括地址、指令、数据3个部分,数据部分可根据实际需要使用0~N个字节。数据是固定长度的。接收端只要发出指令就可以了,使用固定长度数据,最大限度的预留数据空间。一个采集器采集的数据包括温度(3个字节)、湿度(3个字节)、土壤湿度、土壤温度、空气湿度、空气温度、光照强度。通信帧由以下部分组成:地址(A) 指令(C) 数据(D) 校验(V)1个字节 1个字节 N个字节 2个字节

图1 系统结构图

采集器上位下发命令(2个字节地址+01+$),采集器返回数据格式:(由下位提供给上位共15字节数据)

控制器下位回发(本机地址+0x66+$),系统主要指令说明见表1。

表1 系统主要指令说明

2.2 下位地址

下位机地址原则上可以自由设置,设置范围为0~255。但是由于采集的数据范围是(0~100),有可能和地址冲突,因此地址一律用128以上的编号。另外可以用一个比特来说明该下位是采集器还是控制器,这样会占用72个地址11000000(控制),10000000(采集)。

下位机起始状态为接收地址信息,控制485的DE端子非通信态一直处在接收态,地址信息通过命令字来设置。设置好的地址保存在ROM里。每个下位机起始地址设置为255,呼唤下位地址如果为255则重新设置自己需要的地址,并做标识,这种只能一个一个安装,不能同时安装2个或以上。

2.3 通信中的超时处理

在系统的通信过程中,由于受外界干扰,可能会出现数据/命令帧丢失或出错的情况,这种情况有时会导致双方都处在等待对方数据/命令的状态,即进入死锁状态。为消除死锁现象的出现,采取了限定时间片的方法来限制上位机与每个下位机的通信时间。针对不同的等待状态,规定了不同的等待时间。

1)上位机等待回应命令帧时间:查询命令帧在总线上传输的时间+下位机接收比较处理的时间+[Ti=t*i]+回应命令帧在总线上的传输时间+弹性时间。

2)下位机等待发送命令帧时间:回应命令帧在总线上传输的时间+上位机接收比较处理的时间+发送命令帧在总线上的传输时间+弹性时间。

3)上位机等待数据帧的时间:发送命令帧在总线上的传输时间+下位机接收比较处理的时间+数据帧在总线上的传输时间+弹性时间。

上位机在当前等待时间内没有收到回应命令,则重发查询命令帧,若重发超过3次,则向系统报告下位机出故障。上位机在等待数据帧限制时间内没有收到数据帧,则把已经收完的数据送到其它模块处理,并且结束本次通信,开始访问下一个下位机。下位机准备发送回应命令帧/数据帧的时间<(上位机等待命令帧/数据帧的时间-回应命令帧/数据帧在总线上传输的时间),一旦准备发送命令的时间≥(上位机等待命令帧/数据帧的时间-回应命令帧/数据帧在总线上传输的时间),下位机就自动放弃发送而重新发送请求,若重发超过3次仍然都是时间过时,则放弃,进入其他工作。

3 温室控制系统软件设计

温室控制系统软件主要包括下位机数据采集模块、下位继电器输出模块、上下位通信模块以及主控制器控制模块的软件设计。依据系统和硬件需求,确保设计功能的完成。

3.1 数据采集模块软件设计

因系统测量设计使用的传感器都是模拟信号,需要下位采集系统进行A/D变换来控制采集,并通过相应的滤波处理后进行存储或者数据的通信传送。系统对温室环境温度、湿度,土壤温度、湿度,光照强度等参量不停的循环采集,进行简单的滤波处理后,瞬时值放在变量中。采集控制流程图如图2所示。

图2 采集控制流程图

3.2 继电器控制模块软件设计

继电器控制的主要目的是为了使执行机构准确、及时、有效的响应主控制器的控制指令,继电器控制主要是通过时间和控制数目来实现控制作用。其中时间递减是以时间片为单元进行,控制的倍数以及对哪几个端口进行控制由主控制器发送。控制单元软件流程如图3所示。

其中KFlag为控制结束判断指令,GFlag为控制信息更新标志。

3.3 通信软件设计

通信模块主要是为了完成主控制器和下位采集单元及控制单元的信息交换。它包括主控制器向控制单元发送控制指令,控制单元回馈控制信息。主控制器向采集单元发送采集指令,采集单元接收信息上传采集数据几个部分。

主控制器控制指令发送流程如图4所示。该动作由主控制器发起,首先给下位采集、控制单元发送地址信息,采集、控制单元以中断方式进行接收,进行地址解析后判断切合与否,当控制单元做好接收准备后,回发确认信息。主控制器判断后以设定好的数据帧格式编辑控制指令,进行发送。当超过一定次数没有接收时则进行丢弃。

数据采集单元串行通信采用中断方式,485一直处于接收状态,当判断到主控制器发来的地址是自己的地址时,解析指令,将对应变量中的数据发送出去。具体流程如图5所示。

图5 采集单元指令接收流程

3.4 主控制器软件设计

主控制器为多线程工作机制,这里对其控制主线程进行流程说明。温室智能控制系统主要的控制理论依据以专家系统知识存储,在进行相关项目控制之时,获取控制模式信息。依据不同的生物生长特性需求以及生长阶段制定相应的控制目标,从而进行温室参数控制。主控器主要控制流程如图6所示。

图6 主控器主要控制流程

4 系统软件抗干扰设计

软件抗干扰设计就是在软件环节尽可能的消除不正常状态出现的影响。根据干扰进入系统后所造成后果的不同,软件抗干扰所采取的措施也不同[5-7]。

(1)为提高实时数据采集系统检测数据的准确性和检测精度,采用数字滤波技术。因系统测量的温室环境温度、湿度,土壤温度、湿度数据都是属于变化缓慢的信号,系统选择中值平均滤波。

(2)控制输出在本系统中主要为RS485通信和控制单元的继电器控制环节。为避免因干扰而造成的系统控制失常,采取软件冗余、设置当前输出状态寄存单元以及设置自检程序等措施。

(3)在下位单片机的采集单元和控制单元软件编程过程中,通过适当的设置程序陷阱,来强迫程序重新开始运行,以保证程序工作在正常的运行状态。

5 结束语

根据温室控制系统的设计功能需求,详细设计了温室监控系统的下位机RS485通信、数据采集及控制器的软件流程。确定了通信帧格式、地址分配方案以及通信超时处理措施。实现了温室控制系统的下位机软件功能。系统自2010年4月份在宁夏国家经济林木种苗快繁工程技术研究中心E温室投入运行以来,数据通信采集精度都达到了设计要求,效果良好。

[1]张曾科.模糊数学在自动化技术中的应用[M].北京:清华大学出版社,1997:9-26.

[2]龙庆华,智能温室计算机自动监控系统[J].华南师范大学学报(自然科学版),2002(1):5-8.

[3]张智.基于单片机的日光温室控制系统的设计[J].微计算机信息,2006,22(12):77 -78.

[4]辛萌萌.RS-485通信接口芯片的lC设计与实现[D].大连:大连理工大学,2007.

[5]赵明,刘海江.单片机应用系统中的抗干扰措施[J].仪表技术,2002(6):48-49.

[6]顾慧燕.计算机系统的抗干扰技术[J].信息技术,2003,27(6):61 -62.

[7]李雪松,许峰.单片机应用系统抗干扰问题的解决方案[J].信息技术,2002(2):9-12.

猜你喜欢
下位上位命令
只听主人的命令
发射机房监控系统之下位机
特斯拉 风云之老阿姨上位
移防命令下达后
“三扶”齐上位 决战必打赢
基于ZigBee和VC上位机的教室智能监测管理系统
景洪电厂监控系统下位机数据传输网络改造
围观党“下位”,吐槽帝“登基”
这是人民的命令
以新思路促推现代农业上位