基于can总线的温度测控系统的设计本科本科毕业论文

发布时间 : 星期二 文章基于can总线的温度测控系统的设计本科本科毕业论文更新完毕开始阅读

烟台南山学院毕业设计(论文) 第 28 页

3、使用动态链接库DLL。动态链接库是一些函数的集合,开发人员编制端口驱动程序或使用第三方提供的DLL例程。在函数工作是会链接到应用程序,而不是在编译期间静态的连接可执行文件。Windows应用程序大量使用DLL,其中包括系统应用程序的大量过程。

在本论文中考虑到温度传输的数据量小,串口通信不是很复杂,且开发方便,节省时间故而采用第一种方法MSComm控件。

MSComm控件作用就是用ActiveX控件简化Windows下串口编程,可以提供标准通信接口,方便用户通过串口接口到其他设备中,MSComm控件串口编程的基本流程如图5.7所示:

图5.7 MSComm控件开发串口流程图

MSComm提供两种处理通信问题的方法[11]:

1、事件驱动法:MSComm中的OnComm事件可以处理缓冲区里有字符的情况,还可以检查处理错误,程序编写时可以在事件处理函数中添加自己的程序,好处就是响应迅速,稳定性好。

2、查询方式:它实际上也属于事件驱动,根据CommEvent属性值来查询事件、错误,这在某种时候会比较简捷。

本文在温控系统的PC机上研究串口通信,并应用MFC开发可视化界面,用于温度的实时控制及其结果的呈现。在串口通信方面,采用Microsoft公司提供的

烟台南山学院毕业设计(论文) 第 29 页

ActiveX控件MSComm来实现编程。在整个软件设计过程中,作为MSComm控件所嵌入的对话框,动态温度曲线是采用窗口的View类实现的,在这里创建MFC应用程序[12]来实现温度曲线的显示。对话框上的图标不可以加载到视图(View)中,但是MSComm控件能够加载到单文档的ABOUT中(在本文的界面里没有显示),这样就可以完成实现,具体步骤如图5.8所示:

图5.8 本系统MSComm控件加载图 5.9 MFC开发流程图

5.2.2 界面通信软件实现

该软件主要包括串口的初始化,读取串口数据并显示,绘制曲线并保存,温度实时监控和坐标轴的移动几部分,具体流程图如图5.9所示。

1、初始化串口。

利用ClassWizard为CTemCurve类添加消息处理函数WM_CREATE,利用该函数来实现串口的初始化。在串口初始化中,选择PC上面的端口COM1,设置波特率为9600,无校验,8个数据位,1个停止位,另外通过实际的需要来设定输入、输出缓冲区大小(本文中都采用1024),最后调用SetTimer时会生成一个定时器,来完成对温度数据的实时监控。

2、读取保存串口发送过来的数据并进行数据形式转化。

本论文采用的是事件驱动法实现串口通信的,就是有事件产生时执行OnComm里定义的函数,如接收事件,发送事件等,特点是对程序的响应及时,可靠性高。代码见附录,主要用于接收保存串口的数据,由于PC机从单片机中接收到的是16进制的数据,而在VC++中没有直接将16进制转变10进制的函数,所以自定义并调用

烟台南山学院毕业设计(论文) 第 30 页

TransDec()函数来完成数据的转换。

3、在OnPaint()函数中实现坐标轴的绘制及温度动态曲线图的保存。

为了便于操作人员观察温度跟时间的关系,在坐标区域内绘制了平行于坐标轴的等距线,它主要由Draw()函数实现的,该函数包括的几个子函数具有基本框架设计、坐标轴绘制、曲线绘制等功能,其具体函数由于实现代码很多,顾不在此详述。

4、实现温度的实时监控和坐标轴的移动。

为了更好的显示温度曲线,要不间断的对它进行数据采集。在程序中,通常是定义一个定时器来完成此操作。定时器代码见附录,最后运行后的程序曲线会随时间一秒一秒的向左移动。 5.2.3 PC界面

PC的界面设计上应用MFC库.它作为c++类的一个集合和应用程序框架,主要用于创建Microsoft Windows应用程序。这个类的集合将c++语言扩展为包括创建基于Windows的应用程序所需的大部分基本结构单元,一些重要的MFC类包括:应用程序体系结构类、用户界面类、数据库类、Internet类[13]等。它的优势在于可以减少开发周期,使代码更加简结,在保证了编程的随意性和方便性的情况下,在用户界面的设计上提供了大量的技术,主要优点是:

1、应用程序的开发平台,在上面建立自己需要的应用程序; 2、兼容了以前版本的MFC和新的c++类; 3、兼容性很好的c++源代码库; 4、与Visual c++集成。

本论文就是基于VC++的MFC编制可视化界面来进行通信显示的[14]。其中,系统总界面的功能设置为三个大部分:系统设置、选择智能节点、控制方法,右边的View框里主要显示温度的动态曲线。详细设计如下:

1、系统设置一栏包括开始显示、停止显示和报警设置三部分,其中的报警设置可以根据实际需要设定报警的上限和下限温度值。

2、选择智能节点一栏包括所需要显示的温度节点的具体曲线。

3、控制方法一栏里设置积分分离的PID控制法,点击会出现初始参数输入对话框,用来设定比例系数、微分系数、积分系数的值。输入参数后即可显示最终曲线。

烟台南山学院毕业设计(论文) 第 31 页

5.2.4 实验的调试方法

PID控制算法所采用的积分分离PID,其中最重要的就是进行参数的整定,本系统中应用的是可靠性高的“经验法”,即根据实际情况来进行尝试参数,直到达到理想的控制效果,这个步骤虽然繁琐但是不缺有效性,因为实验出真知,这比模糊控制里需要设置复杂的控制规律要显得简单易行。具体的步骤为:

1、首先设定设定比例作用,保证其稳定性,即使积分时间无穷,微分作用为零,这时调整比例系数Kp,调高Kp的值来防止曲线波动过频,降低Kp值来减少超调量。

2、调节Ti,逐渐增大Ti,的值来调节曲线的形状,如果曲线在理想值两边变化过大,则应该增大Ti的值,如果偏离理想值一直回归不了,则要减小Ti值。

3、调节Td值,将它的值设定为0.25倍的Ti值,逐渐调大Td值,如果偏离理想温度多大且缓慢回位,则要增大Td,如果偏离理想值过大,则要减小Td。

通过理论和实际的调试经验发现总的规律就是如果系统响应在控制作用后很缓慢的变化,且大幅度震荡的话那么就是积分作用大,如果系统反应过于灵敏,波动性很大的话那么就可能是微分作用过大,这时调节Td的值,如果存在中频的震荡,可能是比例设置的问题,这样经过反复调整直至达到理想标准。 5.3 小结

本章给出了温控系统各个部分的软件设计,实现了PC界面显示,并最终利用经验法调试系统得到比较好的实验效果。

联系合同范文客服:xxxxx#qq.com(#替换为@)