基于VB6的PC机与多台单片机通信的应用 (1)
在库房管理系统中,传统的方法是通过干湿度表、双金属式测量计等检测器材进行人工测量,然后对不符合温度、湿度等要求的库房进行通风、去湿、降温等工作。这种人工方式效率低、误差大,随机事件难以预料,使库房管理质量得不到很好的保证。本文所论述的系统是一个用于制药厂仓库的监控和管理系统,上位机(PC机)除负责对下位机(MCS—51单片机)进行监管和控制外,还用于采集下位机传送的数据进行数据库化管理,另外,上位机还可以对库房药品入库、出库、有效期、交易方式等信息进行管理,并可用实时曲线和报表的形式查询。下位机(MCS-51单片机。MCS-51单片机及其外围设备我们称之为库机)负责收集库房中温度、湿度、烟雾等信息并传给上位机。此系统可使办公人员坐在办公室里对远在几百米之位的库房进行监控和管理,不但使办公人员从繁重的体力劳动中解放出来,而且使库房管理快速准确,提高了企业的管理水平和办公自动化水平。
2 系统构成及工作原理
PC机里安装着用VB6编写的仓库管理系统,作为前台 *** 作系统。系统的数据库格式采用VB数据库格式,也称为本地数据库,这类数据库文件使用与 MicroSoft Access相同的格式,数据的存取利用VB6的ADO控件通过MicroSoft Jet (Joint Engineering Technology) 数据库引擎,速度快工作效率高。此管理系统包括进库药品、进库日期、出库药品、出库日期、经手人等的查询,以及药品过期提示等。另外还把库机传送来的数据实时显示并存放在本地硬盘中,以便查询和打印。后台系统是一个上位机与多台下位机通信的通信系统,多台下位机不断从仓库采集温度、湿度、烟雾等数据传给上位机,PC机进行实时显示,并可以设置温度、湿度、烟雾、等参数,单片机根据设定参数来控制仓库里的去湿、降温和报警系统,从而使库房达到预定的环境。如果库房内环境与设定环境不符,单片机就会唤醒降温、去湿设备,把仓库内参数锁定在预定的范围之内,如发生火灾、被盗等意外事件,单片机就会驱动火灾、防盗报警系统,并把信号传给上位机,使其在屏幕上作出显示。
3 PC机与单片机之间的通信
3.1 通信方式的实现
PC机与单片机之间的通信是通过串行口来实现的(如图2)。由于单片机系统电平是TTL电平,与标注RS-232C不兼容,又考虑到通信距离,我们采用Maxim 公司生产的Max485芯片将TTL电平转化为RS-485标准,然后再进行RS-485与RS-232之间的转换,再与PC机的串口连接。这种转换方式延长了通信的距离,最长可达1200米,提高了系统的可行性。
3.2 通信协议及程序设计思想
本系统由于是一台上位机和多台下位机,所以要给下位机设置一个通信代码,为简单起见,取0~255之间的任意四个即可。当PC机欲与某个单片机通信时,便向所有单片机发出通信代码。单片机在接到代码后与自己的代码进行核对,如果一致则向PC机发出回应,开始通信,其它的单片机继续采集和传输数据。
3.3 上位机程序设计
VB6中有一个专门用来串行通信的控件---MSComm控件。MSComm控件最常用的属性如下:
CommPort属性:设置并返回通信端口号,指定PC机上用于通信的串口
SetTIng属性:以字符串的形式设置并返回波特率,奇偶校验,数据位和停止位
PortOpen属性:设置并返回通信端口的状态,用于打开和关闭端口
Rthreshold 属性:MSComm 控件设置CommEvent 属性为ComEvReceive并产生OnComm之前设置并返回的要接收的字符数
Input属性:从接收缓冲区返回和删除字符,用于接收数据
InputLen 属性:设置并返回Input属性从接收缓冲区读取的字符数
Output属性:向缓冲区写一个字符,用于发送数据
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)