武汉工程大学毕业设计(论文)说明书
void write7279(uchar cmd,uchar dta) {
send_byte(cmd); //写命令字 send_byte(dta); //送数 }
//*******读7279相关数据,读键值********//
uchar read7279(uchar command) {
send_byte(command); return(receive_byte()); }
(3) 串口初始化子程序
void rs232(void) {
TMOD=0x20;
SCON=0xd0; PCON=0x00; TL1=-(FXTL/FSYS/32/FDB); TH1=-(FXTL/FSYS/32/FDB); TR1=1; TI=1; }
实现与上位机进行通信。
3 编程中的特点
(1) 主体程序特点
主体程序是围绕PID运算和调功输出来进行的,其中比例增益、积分增益、微分增益为节约机时是不用经常运算的,只需要在有设定参数改动时才进行运算。在主程序流程图中可以看到,有按键操作时,循环跳转返回点是不同的,用时最多的还是在
37
武汉工程大学毕业设计(论文)说明书
调功输出上,整体程序尽量做到延时准确,以提高控制输出准确性。
(2) 按键处理程序思路
读键值操作在中断程序中完成,在主程序中是用查询方式进入键盘处理子程序的。键盘处理子程序的设计主要思路是:刚开始读取出的键值是与键盘上的标注是不同的,通过查表程序将其转换成自定义键盘值,然后再查看键值范围是不是在功能键范围内,若不在,则当作误操作处理,跳出键操作处理,刚开始是按的数字键,程序就不会继续往下走,不进行有效操作。若为功能键,就进入下一步键盘处理操作。程序中可供操作的键有:P—比例度,I—积分时间,D—微分时间,T—温度设定值。这些参数是全局变量,第一步要做的就是将这些变量的初始值装入到显示存储区中,加上提示符,再显示出来,接下来就是一个按键查询循环,在这个循环里,可以进行参数输入(数字键)和修改(Back键)按Enter 键确认输入数值。在Enter键处理中,根据显示存储区中的提示符进行判断是要对哪个参数进行修改,并将设定值赋给对应的全局变量,完成参数修改。
38
武汉工程大学毕业设计(论文)说明书
五 微机恒温控制系统的上位机软件设计
为了方便对温度数据的记录和PID参数整定,可以想个方法来解决此问题,即设计一套上位机软件,实现对数据的记录和温度变化曲线自动绘图及显示。上位机软件是用Visual Basic .NET编写,由于时间的限制,加上本次的上位机软件的复杂性,本次编写只是做了初步的设计,还要等待进一步的完善。上位机的软件设计界面,代码可采用以有的,程序运行时,先按启动按钮启动串口接收,标示灯会显亮红色,表示开始接收数据。图形窗口中自动绘出温度数据的时间曲线。
在这里对上位机程序的设计介绍只做简单的说明:
串口通迅是用的MSComm控件做的,MSComm控件比较好用,具体使用方法如下: 由于Visual Basic 的串行通信控件并不会主动出现在工具箱中,当我们需要MSComm控件时,让它出现在工具箱中的操作步骤如下:
a)单击【工程】菜单。
b)在工程菜单中选择【部件】命令。
c)打开【部件】对话框,选中Microsoft Comm Control 6.0 复选框。
d)单击【应用】或【确定】按钮,即可在工具箱中见到“电话盒(MSComm 控件)”的图标,我们就可以将MSComm控件加载,进行串行通讯。
Visual Basic窗体设计
首先建立一个工程,在【工程】选中【添加MDI窗口】,要加入子窗口时,可以先添加窗体,再将窗体的MDIChild属性设置为True。本设计中用的上位机软件设定了两个窗体,一个是MDI窗体,命名为ComFrm;一个是子窗口,命名为PicFrm。在MDI窗体ComFrm中加入一些PictureBox控件,构造窗体样式,加入CommonDialog 控件,用来保存接收数据。加入MSComm控件用来通讯,加入一个Timer控件,用来定时读取串口缓冲中的数据。其设计结果如下图5-1所示。
39
武汉工程大学毕业设计(论文)说明书
图5-1 设计结果图
Timer控件Timer1的Interval 值设为50。PicFrm窗体是作为画图的空间,将其Apperance属性设为0-Flat,BackColor设为白色,等一些其他的设置不做介绍。
上位机程序中还有很多数不清的细小的部分设计,例如[文件]菜单中有对数据的保存、清空、退出操作,[设置]中有对串口的选择,波特率设置,[窗口]中有对曲线图隐藏操作和接收数据显示隐藏操作。[显示细化]的功能就是可以放大温度曲线图。
上位机的程序大体上是如上面的思路,这里就不多介绍。我们可以利用固化的VB.NET的程序。
40
武汉工程大学毕业设计(论文)说明书
六 微机恒温控制系统的测试与实验处理
1 系统投运实验
电加热炉上电后,系统进入待机状态,单片机控制系统开始工作后,我们可以从固态继电器输出指示灯看到单片机输出控制信号情况,红灯亮表示固态继电器闭合,炉丝发热工作,红灯灭表示固态继电器断开。在单片机开始工作后,就可以在单片机系统的键盘上操作,调节温度设定值和P、I、D参数,系统开机时都有一个初始设定值,这些初始设定值必须要能使系统正常工作。在单片机面板和上位机上都能看到炉内的水温情况。单片机键盘如下图6-1所示。
7 4 1 1 8 5 2 9 6 3 P I D T End Back
图6-1 单片机键盘图
键盘上的数字键0-9,P、I、D参数设置键和温度设定键及两个功能键Back和Enter。在设置P、I、D参数时,按一下其中一键,如按下T键,数码管上就会显示当前温度的设定值,最前面的两个数码管显示提示符T。要更改设定值可先用Back键擦除原数,再输入设定值,按Enter键确定。
2 PID参数整定
开始时,我们选用阶跃响应曲线法来整定PID参数,刚开始让控制器输出为 100(以10ms为单位)温度稳定后改变控制器的输出为200,看温度曲线变化。经反复实验,只能得到如图6-2结果(横坐标为时间轴,一格是1分钟;纵坐标为温度轴,一格1℃,以下各图相同)。
41