[摘 要]
介绍了在Windows环境下,用VB开发的染色机温度控制系统的数据采集和分析系统。详细介绍了硬件核心PCL-818L数据采集卡及其原理,讨论了其在VB环境下利用系统提供函数进行软件开发的方式。该系统能够精确实现染色机温度控制系统参数的采集,并可提取动态特性的有关信息。
当前我国的染色生产中,高温高压染色机的应用比较普及,许多生产单位染色过程中加热、保温的操作都是由人工进行的。由于人为因素的介入导致升温、保温等关键步骤不一致,使产品产生严重的机差。个别采用的温度自动控制系统由于造价较高、操作复杂等原因又限制了在中小企业的应用。因此研究和开发一种实用的温度控制系统成为当务之急。
1 染色机温度控制系统总体设计方案
染色机温度控制系统中需要由微机控制的对象为气动阀,检测的信号有染色机温度和压力信号。需要输出的信号有阀门控制信号和气压控制信号。本控制系统可以控制十套染色机,并且可以完成数据的动态显示及工作阶段指示、各路温度、压力的上下限设置、温度压力的超限报警、参数的设置修改、单路调节设置、各个阀门的控制及相应的状态指示和数据的记录、打印、显示功能。
由于系统中的输入、输出信号较多,根据系统设计的要求原则和染色机工艺特点,本系统采用工业控制机为核心的控制系统。该系统结构框见图1。
系统以工业控制机为主控核心,结合外围设备构成整个控统。外围设备主要包括键盘、显示器、打印机、D/A输出、A/D数据采集卡。
1.1 数据采集部分
本系统主要是染色机温度和压力(测量压力还是为了温度的控制)控制。它们的测量好坏在一定程度上影响了控制系统的控制效果。数据采集部分主要处理从传感器采集得到的数据,其组成部分包括传感器,模拟量采集卡和工控机。模拟量采集卡选择研华PCL-818L数据采集卡。为了规范模拟量的输入,在选择温度传感器和压力传感器时,我们要求其具有0~5V的电压变送输出,这样,可以直接将采集的信号进行A/D转换,并送入计算机。数据采集的工作流程如图2所示。
1.2 研华PCL-878L数据采集卡基本特性
PCL-818L是针对IBM-PC/XT/AT以及其他兼容机设计的,机箱中有ASIC插槽的计算机都可以方便的使用。它为用户提供了16个模拟信号输入,可以通过跳线开关和软件选择过程16个单通道信号输入或8个差分信号输入;12位的A/D转换器,用来转换模拟输入;同时提供最大为40KHz采样速率(在直接数据传输模式下)。另外,可以通过跳线或软件两种方式来选择模拟量输人范围。此卡还提供一路12位模拟输出通道和16路数字输入和数字输出通道。所有这些特性使得用户的需求能够得到很好的满足。
2 PCL-818L开发应用软件方法
利用PCL—818L进行Windows应用程序开发,可以有三种方法。①利用“研华”光盘中附带的Geni DAQ Develepment开发环境,这是研华针对PCL系列板提供的标准开发环境,其优点是针对性强,缺点是不是通用的开发环境,程序移植性较差;②由用户自行开发针对底层硬件的驱动程序,这种方法灵活性最大,代码执行效率也高,可以充分发挥硬件的性能,但是要求开发者具有相当的计算机软、硬件水平;③采用通用的开发环境(Visual Studio、Delphi 等),调用研华提供的标准动态链接库文件和第三方制作的ActiveX控件。采用这种方法可以在一定的程序上降低程序开发的难度,在提供较好灵活性地同时,提供相对于第一种方法更好的移植性。因此在实际中,较多采用的是第三种开发方法。
2.1 VB环境下的软件开发
VB本身并不提供对计算机外设进行底层操作的语句或是函数。但PCL-818L提供的一套随机附带软件,其中包括了 DLL(Dynamic Link Library)动态联接库文件,提供了对PCL-818L相关口地址的读写操作函数。这些函数都是标准的 Windows API,可在VB中声明后进行调用。因此在VB环境下的软件开发关键就是正确地完成底层的I/O操作,“Advantech”的动态联接库提供了两种I/O方式;标准方式、快速方式。根据目前一般工作装置的动态特性,采用标准方式已完全可以满足系统的要求。
2.2 数据采集卡的DLL调用
1)在计算机中安装好的硬件,并进行相应的硬件设置。对于PCL-818L数据采集卡,首先进行地址跳线,将其地址设置为300H,在单端或差动输入方面设置为单端输入,其余基本不需要改动,只采用板卡默认设置即可。
2)据所采用的计算机平台,安装相应的驱动程序,并进行软件设置。本系统中,采用的计算机平台为Windows 2000,为此,我们安装了Advantech的For Windows 2000驱动程序。
3)完成驱动程序的安装之后,我们将运行PCL-818数据采集卡的设置软件,设置类型为PCL-818L,地址为300Hex,A/D通道配置为16 Single-ended,输入范围为+/-5V,D/A
参考电压为InternalO-5V,其余皆为默认设置。
4)使用DLL有利于应用程序的模块化,可以简化程序的修改。下面我们将用具体的例子说明如何调用DLL。
假设系统提供名为818L.dII的一个动态链接库,则应有如下声明:
Declare Function W_818_Initial Lib"818L.dll",(ByVal card_number As Long,ByVal base_address As Long)AS Long
Declare Function W_818_Switch_Card_No Lib"818L.dll"(ByVal card_number As Long)AS Long
Declare Function W_818_DI Lib"818L.dll"(ByVal port_number As Long,di_data AS Byte)As Long
Declare Function W_818_Dl_Channel Lib"818L.dll"(ByVal ch_no AS Long,di_data As Long)AS Long
Declare Function W_818_DO Lib"818L.dll"(ByVal port_numberAs Long,ByVal do_data As Byte)As Long
Declare Function W_818_DA Lib"818L.dll"(ByVal ch_no AsLong,ByVal da_data AS Long)As Long
Declare Function W_818_AD_Set_Channel Lib"818L.dll"(ByVal ch_no AS Long)AS Long
一个典型的引入单元可以定义如下:
Unit AVEunit
Interface
Function AverageData(M1%,M2%)AS Integer
Implementation
AverageData
End Function
在其他需要调用该DLL的应用程序中,我们只需要添加上面的AVEunit单元,就可以像使用VB自身的函数一样使用AverageData函数了。
所有相关函数操作如下,调用status=DRV_DeviceOpen(DeviceNum,DriverHandle)函数实现打开PCL-818L设备,以便进一步对设备进行配置和操作。
调用status=DRV_AlConfig(DriverHandle,IpAlConfig)函数,实现对设备模拟量输入的初始化配置,将板卡的输入量程设置到所需要的量程。
调用status=DRV—EnableEvent(DriverHandle,IpEnable-Event)函数开启中断。
调用status=DRV—FAllntScanStart(DriverHandle,IpFAl-lntScanstart)启动中断方式数据采集。
调用status=DRV—FAlCheck(DriverHandle,IpFAlCheck)函数来检测接收缓冲区数据是否已满,如果缓冲区已满,则将数据从接收缓冲取走。
如果数据采集完成,则调用status=DRV—FalStop(DriverHandle)函数来停止数据采集。
最后如果对板卡所有操作都完成,调用status=DRV—DeviceClose(DriveHandle)关闭PCL—818L设备,停止所有操作。在此系统上,对所有硬件设备操作,只需调用简单的几个函数就可以实现,编程难度和工作量大为减少。
3 结束语
利用工控机,辅以数据采集卡PCL-818L,以VB为开发环境,可在较短的时间内,方便有效地开发出功能强大的染色机信号采集和控制系统。特别是利用 VB在生成友好界面方面的优势,对于状态监控尤为适用。这样不仅使整个采集、控制系统的工作可靠性大大提高,并且缩短了系统的开发周期。
声明:本网站所收集的部分公开资料来源于互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。本站部分作品是由网友自主投稿和发布、编辑整理上传,对此类作品本站仅提供交流平台,不为其版权负责。如果您发现网站上所用视频、图片、文字如涉及作品版权问题,请第一时间告知,我们将根据您提供的证明材料确认版权并按国家标准支付稿酬或立即删除内容,以保证您的权益!联系电话:010-58612588 或 Email:editor@mmsonline.com.cn。
- 暂无反馈