在许多工程领域中,对温度进行现场测控时具有一定危险性,而实现温度巡回检测仪与上位机的通信后,上位机就能对下位机进行远程监控,这样不仅提高了系统的安全性、方便性,也使下位机资源不足的问题(如存储容量)得到了解决。
本文设计的温度智能化巡回检测系统采用温度巡回检测仪作为下位机来采集温度数据,经过预处理后通过自带的RS-485串行口将数据传送给上位机,在PC机上运行采用VB的通信控件MSComm编制的实时检测系统软件,接收串行口传送来的数据,并进行相应的数据处理,在用户界面上实时显示和设置,并对已设置的危险温度进行报警。
图1:系统总体框图。
下位机部分
下位机部分通过输入通道将温度传感器DS18B20采集到的被控对象当前温度转变为数字量并输入到单片机中,单片机求出输入的当前温度值与设定值的偏差,并根据该偏差进行PID运算,最后,根据PID运算的结果,通过功率调节电路改变给定周期内加热丝的通电时间以实现对温度的控制。功率调节电路调节功率的实质是利用PWM调节来改变加热丝的平均功率,整个控制系统是一个典型的闭环系统。功率调节电路是控制系统的执行机构,它不仅要求输出功率大,还要求能够根据需要对输出功率进行精确调节,是系统中最关键和昂贵的组成部分,通常也是故障率最高的部分。
1. 硬件电路
基于数字PID算法控制的硬件结构原理框图如图2所示。这是下位机功率控制的核心部分,分别由PC机发送控制信号并接收实时温度信号。
图2:基于数字PID算法控制的硬件结构原理框图。
选用数控可编程电位器DS1867,可使功率调节分辨能力满足很高的精度要求,图3为其原理框图。共采用了三个数字电位器,其中两个作为粗调电位器,两者同步调节,DS1867单臂抽头数为256。微调电位器将粗调电位器的每一档又分为512档,因此分辨能力为最大加热功率的十万分之一。固态继电器选用30A/220V交流过零型。NE555占空比调节电阻R1、R2以决定占空比的最大值和最小值,其中阻值应尽可能地小,以增大功率调节范围,但由于受到数字电位器滑动端所能承受最大电流的限制,因而应根据需要综合考虑。
图3:基于DS1867的功率调节原理框图。
2. 软件设计
本文中的设计以ASTROM提出的极限环法为基础,结合加热丝控制系统无负输入,温度一旦超调就只能依靠自然冷却达到设定工作温度点的特点,提出了一种仅对程序温控仪增加少量程序就能实现PID参数自整定功能的方法。算法原理详见本刊网站。
在线整定PID参数时,对任意设定的工作温度点,都规定了一个内部设定温度点。内部设定温度点的选取应尽量靠近工作温度点,又使温度不超调。先读出设定值,再根据设定值算出内部设定温度值,整个过程均实时采样温度,将采样温度与内部设定温度比较,当采样得到的温度时间曲线以内部设定温度点为对称线,上下等幅振荡的时候,找出一个完整振荡周期内的最高点和最低点,并记录两点的时间差,由算法求出PID参数。
上位机部分
上位机部分与具有强大数据处理能力和丰富软件资源的微机组成分布式系统,由上位机对整个测量过程的温度数据进行统一显示、存储、打印报表、参数设定和数据的进一步处理。整个下位机部分可分别通过单片机的P3.0和P3.1口与上位机实现串行通信。在上位机中采用VB的通信控件MSComm编写实时监测系统软件,接收串行口送来的数据,并进行相应处理,在用户界面上实时显示与设置,并控制下位机部分。
用MSComm控件实现与下位机的通信时,选中标题为“串口取值”的选项按钮控件,读取下位机传来的数据;用VB提供的“Rnd”函数生成随机数,选中标题为“随机数演示”的选项按钮控件,实现读取随机数。读取到的数据用标签框控件“Label1”显示出来,并在图片框控件“picChart”中绘制温度随时间变化的曲线。绘制曲线需要用到计时器控件,以便控制绘图的时间间隔。由于随时都有可能需要读取温度值,可以用一个复选框控件实现停止读取数据,同时停止绘图。用两个组合框控件分别设定正常温度上下限。图形控件用来显示温度的正常或危险状态,本设计采用了两个图形控件,黄色与绿色交替出现为正常,黄色与红色交替出现为危险。当选择读取下位机的哪一路数据时,采用了选项按钮控件,可以选择从第1路到第3路的数据通道。为扩展对更多路数据的采集,还采用了一个组合框控件,其中装载了从第4路到第15路的数据通道。
通信部分
利用MSComm控件,程序实现起来相对简单、结构清晰,并且该控件具有与串行通信密切相关的丰富属性和事件,可以提供对串口的各种操作,使用起来很方便,因此,实时监测系统软件使用这种方式与下位机实现串行通信。MSComm控件提供两种不同的通信处理方式。事件驱动通信是处理串行端口交互作用的一种有效方法。在许多情况下,当事件发生时需要得到通知。此时,可利用MSComm控件的OnComm事件捕获并处理这些通信事件。OnComm事件还可以检查和处理通信错误,将所有通信事件和通信错误进行列表。如果不使用事件方式,那么在程序的每个关键功能之后,可通过检查CommEvent属性值查询事件和错误。如果应用程序较小,这种方法可能具有更高可行性。
检测仪与PC机通过RS-485异步串行通信接口进行通信,波特率为9,600bps,无奇偶校验位,8位数据位,1位停止位。
在识别对下位机的某一路数据进行采集的程序中,采了几个选项按钮控件和一个组合框控件。例如选中标题为“1号”的选项按钮,则由上位机向下位机发送十六进制的“1”。对应单片机编程中也用十六进制的“1”标识第1路数据。当下位机接收到十六进制的“1”后,就把第1路的数据传送到上位机。要读取第6路或更多路数据,则从组合框中选择。