工控网首页
>

应用设计

>

基于Delphi7.0的精密温度控制仪数据采集系统的研制

基于Delphi7.0的精密温度控制仪数据采集系统的研制

2006/11/3 9:46:00
1.引 言 WSH_A型精密温度控制仪(以下简称:温控仪)是我们自主研发的一种以微型计算机为核心的智能三点温度控制仪器。温控仪可以与各种型号的热电偶配接,实现高精度的温度检测与控制。其检测精度为0.05%,控制精度可达0.1%,现已成功应用于半导体生产行业的温度控制中。在实际应用过程中,用户往往需要同时观察多台温控仪的运行状态并且记录运行数据供分析使用。 本文介绍的精密温度控制仪数据采集系统在Delphi7.0环境下实现了多台温控仪的监测、数据存储、温度曲线绘制、历史曲线、数据查询、报表等功能,大大方便了用户的管理要求,系统采用RS485通信,最多可同时监测16台温控仪。 2.硬件结构及系统组成 2.1温控仪的硬件结构 温控仪的硬件结构及通信模块原理图如图1所示:
图1图1 温控仪功能原理图
在MAX485后加保护继电器输出,继电器采用系统电源5V供电,系统未上电或异常断电时断开通信模块与网络的连接,从而使整个网络更加稳定可靠[1]。 2.2系统组成 温控仪具有光电隔离的RS485通信接口模块,RS485具有传输距离远、抗干扰性好等特点,是工业现场中应用较多的一种通信方式[4]。输入给温控仪的三点温度模拟量经过温控仪内部功能模块转换后送给上位机的串口。系统的连接图如图2所示:
图2图2 通信系统结构图
上位机和温控仪的通信方式采用广播方式[4]。在运行过程中,上位机处于主动地位,温控仪被动接收到上位机发送的命令后,判断地址是否和本机地址相同,进而决定是否与上位机进行数据传输。上位机按照地址号顺序读完所有连接在总线上的温控仪称为一个读周期[1]。 3.通信协议的制定及通信实现 为了提高上位机的实时性,应尽量减小每个读周期的通信信息量,制定通信协议的重点是合理安排读命令字,使修改频率高的信息在每个读周期都进行传输,而修改频率低的信息只有在修改后才进行传输。 3.1设置命令字 温控仪数据采集系统需要检测的信息按更新频率分为: 〔1〕检测参数:一套设备中三个测点的当前温度值,温控仪当前运行段号、段运行时间、运行总时间,环境温度和设定温度、温控仪当前输出控制量以及部分开关量状态。这些参数修改频率高,应在每个读周期内进行传输。 〔2〕控制参数:PID控制参数、温度修正参数,采样时间,温度报警值,热电偶类型,以及根据工艺要求所设定的20段温度工艺曲线参数。这些参数修改频率低,在修改后才需要进行传输。 上位机和温控仪发送数据采用广播方式,上位机下传命令均为6个字节,其格式为: [#]+[XX](地址)+[XX]+$0D。 其中:第1字节为头字节,第2、3字节为温控仪地址,第4、5字节表示具体读取内容,如[RE]为读取当前温度值及控制量参数;[CT]为读取控制参数;[PI]为读取PID及修正参数;[LT]为读取20段温度工艺曲线参数。 3.2设置命令字优先级 设置[RE]为关键命令字,具有高优先级,在每个读周期中读取各温控仪的检测参数。在温控仪上传数据中设置一个状态标志位[X],监视对应的温控仪有无控制参数修改,同时用来表示其它命令字的优先级。如果用户修改了温控仪的控制参数,则置状态标志位为1,相应读控制参数命令字的优先级变高,上位机发送读控制参数命令字,温控仪接收到上位机发送的读控制参数命令字并确定上传数据后复位状态标志位。 3.3通信过程 本系统在通信协议中设置关键命令字,把通信过程中常用的查询工作方式变为中断工作方式,大大提高了系统工作效率,通信过程的流程图如图3所示:
图3图3 通信流程图
3.4使用MSComm控件实现串口通信 MSComm控件是Visual Basic中提供的一个串口控件,使用简单、性能良好,编程时不需要考虑复杂的API函数,是串口通信中经常使用的控件。 MSComm提供了事件驱动方式和查询方式两种处理通信的方法。通信软件编写中,读命令字的发送比较简单,下位机返回数据的接收部分要谨慎处理,要根据实际情况选择是用事件驱动方式还是查询方式,事件驱动方式必需保证每次下位机返回的存放在接收缓冲区的数据长度等于RThreshold属性的设定值,以便激发OnComm( ) 事件,如果下位机对上位机发送的不同命令返回的数据长度不同就必须选择查询方式接收数据[4]。 注意,用查询方式接收数据时,在向输出缓冲区发送完读命令后,设置适当时间的延时非常重要,一般可以用延时函数Sleep( )延时,并根据返回数据的长度设置合理的延时时间。 发送读命令并延时合适时间后,输入缓冲区就会返回对应此命令的数据,判断数据是否正确的条件有三个:数据头为[#];数据尾为$0D;数据长度等于通信协议规定的长度。 4.系统功能及软件结构设计 4.1系统功能 本系统根据生产中用户的需求设计所要实现的功能。 〔1〕 实现对连接在总线上温控仪的工作状态的监测,温控仪的工作状态有检测状态、控制状态和故障状态。 〔2〕 参数读取:读取每个温控仪的检测参数和控制参数并实现数据库存储及实时三点温度曲线绘制。 〔3〕 实现历史数据查询并显示历史温度曲线功能。 〔4〕 实现报表及数据导出功能。 4.2软件结构设计 本系统的软件实现分为三部分:第一部分实现温控仪数据的读入、处理、传输;第二部分实现数据分类显示、存储、曲线绘制;第三部分实现历史数据及温度曲线查询、报表打印等功能。各部分的重点工作如下: 〔1〕 数据读入:根据对温控仪不同数据的读取频率的不同写成两个子过程ReadTemperature()和ReadPIDQX(),ReadTemperature()过程发送关键命令字,读检测参数,ReadPIDQX()过程用来读取控制参数,子过程的形式参数是温控仪的地址。ReadTemperature()子过程核心代码: procedure ReadTemperature (adress1,adress2:byte); var send_ReadTOrder:variant;//关键命令字用variant变量存储 wendu_inputstring:string;//上传的原始数据放在wendu_inputstring字符串里 InputLen,string_dingwei:integer;//数据长度和wendu_inputstring定位 Begin send_ReadTOrder:= VarArrayCreate([0,5], varByte); send_ ReadTOrder [0]:=$23; send_ ReadTOrder [3]:=$52; send_ ReadTOrder [1]:=adress1; send_ ReadTOrder [4]:=$45; send_ ReadTOrder [2]:=adress2; send_ ReadTOrder [5]:=$0D; if MainForm.MSComm.PortOpen then //如果串口已经打开,则发送读温度命令 begin MainForm.mscomm.InBufferCount:=0; //清空输入缓冲区 MainForm.mscomm.OutBufferCount:=0;//清空输出缓冲区 MainForm.MSComm.Output:= send_ReadTOrder; //向输出缓冲区发送读温度命令 sleep(600);//适当延时 InputLen:=MainForm.MSComm.InBufferCount;//读入输入缓冲区里的返回数据长度 wendu_inputstring:=MainForm.MSComm.Input;//直接以ASCII码形式接收数据 string_dingwei:=pos(*,wendu_inputstring);//定位读入的字符串 state:=copy(string_dingwei,wendu_inputstring) if(InputLen>=50)&&(copy(string_dingwei,wendu_inputstring)=’*’) &&( copy(string_dingwei+50,wendu_inputstring)=’ ’) then//注意入口条件,尤其是(InputLen>50)条件,50是通信协议中规定的返回数据的长度 Begin If (state==’1’)then Begin //发送ReadPIDQX()并做相应数据处理 End else ……//处理数据并传输 End; end; 〔2〕 数据显示及温度曲线绘制:数据显示部分使用专业工业控件Iocomp,曲线绘制采用Teechartpro6版本,数据库为Access2003。绘制温度曲线时,首先将温控仪储存的20段温度工艺曲线以红色画出来,三点检测温度曲线则以蓝、黄、绿三色画出。注意图像的缩放、托动等辅助功能不使用Teechart的自带功能,加两个Scrollbar控件,用Srollbar的postion属性控制时间轴(温度轴)的min属性实现时间轴(温度轴)的拖动,温度和时间轴的步长可以自由设置,实现曲线在时间轴(温度轴)上的缩放。系统的主界面如图4所示:
图4图4 系统主界面
〔3〕数据存取及历史数据查询:每个温控仪的历史数据记录按其运行时间查询,同时画出运行时的20段温度工艺曲线和三点的历史温度曲线。每次系统运行时,用getlocaltime()函数取系统当前时间,格式为xxYxxMxxDxxHxxM作为数据库的表名,此次运行记录的数据都存在这个表里,这样非常方便用户的查询,选择仪表地址,就会在Listbox里显示此仪表的所有历史数据记录,选择要查询的表名显示记录的数据,同时将历史曲线画出,报表用Rave5制作[3],历史数据也可以导出到Excel中编辑打印[2]。 5.结束语 本文所研制的实时数据采集系统配合WSH_A型精密温度控制仪已经应用在半导体芯片生产的温度控制中。在通信协议中设置关键命令字,把通信过程中通常使用的查询工作方式变为中断工作方式,结构的优化使系统运行稳定,实时性强。Teechart,Iocomp等第三方控件的灵活运用使界面显示曲线绘制更加专业,满足了用户需求,并取得了良好的经济效益。 6.参考文献 [1] 王媛婷,杨耿杰,郭谋
投诉建议

提交

查看更多评论