库房温湿度监控系统设计与仿真过程
2016-10-18邹树泉
邹树泉
国家新闻出版广电总局641台,福建泉州 362000
库房温湿度监控系统设计与仿真过程
邹树泉
国家新闻出版广电总局641台,福建泉州362000
通过软件进行设计和仿真,可以节省成本并提高开发效率。本文介绍了库房温湿度监控系统的整个设计与仿真过程,对用到的各个软件进行了分析。
温湿度;单片机;DDE;组态王
仓库的日常管理直接影响到备件的使用寿命和工作的可靠性,其管理的首要问题是要使器件储存在一个合适的环境中。我库房现配备有一台抽湿机、一个电子温湿度计。工作人员每天到库房记录一次库房的湿度,当湿度大于60%RH时,手动开启抽湿机。待除湿一段时间后,再手动关闭抽湿机。这样手动操作实时性差。本文就是在无硬件的条件下,根据软件的仿真,设计库房温湿度监控系统,降低设计的成本,减少开发的周期。下面具体介绍整个系统设计与仿真过程。
1 设计思想
如图1所示,采用SHT10温湿传感器检测库房的温度和湿度,并把数据传递给AT89C52单片机。单片机通过数码管显示温度和湿度的值,根据设定的湿度上下限值自动开启和关闭抽湿机。同时单片机还把温度、湿度、抽湿机的状态通过串口传递给上位机。上位机采用VB编写程序。VB程序既能实现在上位机上实时的显示温湿度值和抽湿机的状态,同时可以通过VB设计的界面输入湿度的上下限值,并通过串口传递给单片机。组态软件“组态王”具有设计简便、操作简单、易学易用的优点,可大大缩短开发上位机所需时间,增强界面的功能。因此,可以采用组态王软件进行监控系统界面和数据库的设计。单片机的数据通过串口通信传递给VB编写的界面,而VB与组态王的通信采用DDE技术,这样通过VB程序这个“中介”,实现了单片机中的数据与组态王程序的交换。
2 仿真过程
2.1单片机的功能仿真
单片机的仿真需要用到两个软件,分别是Keil、Proteus。Keil软件提供了丰富的库函数,在Keil软件中可用C语言来编写单片机程序,同时也可以用来烧录程序到单片机中;Proteus用来绘制和仿真电路,其最出色的地方就是实现了单片机仿真中与Keil编写程序的方便结合。
1)在proteus中绘制监控系统电路图,如图2所示。
开关SW1用来切换数码管温度和湿度显示;发光二极管D1用来指示抽湿机的工作状态。串口COMPIM P1用来模拟上位机的串口,本身强合了MAX232的功能,因此在仿真时不需要加MAX232来转换单片机与上位机串口的电平。虚拟终端VIRTUAL TERMIANL可以在仿真时用来观察串口和单片机发送与接收的数据。
2)在KEIL软件中编写单片机程序
设计程序时,先要根据SHT10温湿传感器工作时序图,编写SHT10的测量程序,并存为.h文件,如SHT10.h。再根据Proteus中绘制的电路图和电路要实现的功能编写主程序,并在主程序中引用SHT10.h头文件,读取温度和湿度值。在KEIL中把AT89C52的晶振频率设为11.0592MHz,编译生成.hex可执行文件。
3)Proteus单片机仿真
在Proteus中,把单片机的晶振设为11.0592MHz,程序选择KEIL编译生成的.hex文件。通过器件SHT10的加减和选择按钮,模拟温度和湿度的改变,观察发光二极管和数码管显示是否正确。
2.2单片机的通信仿真
1)在KEIL中继续编写单片机的通信程序,设置单片机串口为工作方式1,简写为9600-N-8-1,代表波特率是9600,每个字节是8位数据位,无校验,1位停止位。在Proteus中重新加载编译过.hex文件,把虚拟终端Virtual Terminal的RXD脚与单片机P3_1 TXD脚连接,此时就可以从Virtual Terminal中观察单片机发送的数据与数码管显示、抽湿机的工作状态是否一致。
2)在实际硬件连接过程中,单片机通过串口线连接到上位机串口。在无硬件的仿真中,要模拟上位机的串口已连接,这就要用到虚拟串口软件,建立一对串口的虚拟连接。在这里采用了Virtual Serial Port Driver 软件。假设把COM1和COM2进行虚拟连接,即使COM1和COM2是实际存在的物理端口,已经连接了外围电路,软件也可以把这些端口虚拟化,不受实际电路的限制。利用串口调试助手软件,把COM1和COM2的通信方式都设为9600-N-8-1,打开串口,可以验证COM1和COM2是否是一对连接,通信是否正常。
3)在Proteus中把仿真串口COMPIM P1设置为COM1,通信方式设为9600-N-8-1。运行Proteus进行仿真,用串口调试助手观察COM2接收数据是否与Proteus中Virtual Terminal接收的是否一致。
把Virtual Terminal的RXD脚改为与单片机的P3_0 RXD脚连接,观察单片机接收数据情况。
2.3VB程序仿真
利用VB编写界面,读取单片机采集到的温度、湿度和抽湿机的状态,且能够通过界面设置湿度的高限、低限传递给单片机。VB编写程序中,使用了串口通信组件MSCOmm,由于在前面已设置COM1和COM2是一对虚拟连接,在VB中应使用COM2串口,通信方式定义为9600-N-8-1。
在仿真时,可以先利用串口调试助手试验VB编写的界面能否正确的进行发送与接收数据。待成功后,再和Proteus进行联调。单片机中的数据需能正确的显示在VB界面,VB界面输入的湿度上下限值,Proteus中Virtual Terminal可以正常接收,并可以根据上下限值控制抽湿机的开启与关闭。
2.4组态王与VB的DDE通信连接
AT89C52单片机与监控软件组态王之间的通信,可以按照组态王提供的AT89C52通讯协议,此时单片机的通信程序要严格按照通信协议来编写,增加了程序编写的复杂性。因此,本系统中采用通用数据交换DDE方式实现单片机与组态王之间的通信。设计时,先用组态王制作监控系统的画面,如图3。再分别在组态王和VB程序中定义DDE内容。其中,组态王的DDE对话的内容是通过3个标识名来约定的:应用程序名、主题、项目。VB中的DDE是通过控件的属性和方法来实现的。当VB担任客户端时,需要设置LinkTopic、LinkItem、LinkMode三个属性;当VB担任服务器端时,只需设置LinkTopic、LinkMode属性。
2.5组态王与单片机的联合仿真
完成了单片机作为下位机从SHT10温湿传感器采集数据、根据湿度上下限值控制抽湿机的开启与关闭,单片机与VB的串口通信,VB与组态王的DDE通信程序后,就可以进行最终的组态王与单片机的联合仿真,检验整个系统的功能。先运行Proteus文件,再运行组态王画面,最后运行VB生成的程序。在组态王中可以正确显示温湿度值,输入湿度的上下限值,单片机可以按照上下限值开启关闭抽湿机,这样便完成了整个系统的功能设计。
通过软件的仿真,验证了编写程序和设计的正确性,降低了开发的成本和开发的周期。以上是本人在设计库房监控系统时一些实践总结,有不当之处恳请指正。
[1]徐爱钧.单片机高级语言C51 Windows环境编程与应用[M].北京:电子工业出版社,2001.
[2]北京亚控科技发展有限公司.组态王KingView6.5中文手册[Z],2003.
TP27
A
1674-6708(2016)166-0164-02
邹树泉,国家新闻出版广电总局641台。