资源描述:
《基于vb的实时控制系统软件设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第4卷第1期上海应用技术学院学报Vol.4No.12004年3月JOURNALOFSHANGHAIINSTITUTEOFTECHNOLOGYMar.2004文章编号:1671-7333(2004)01-0061-03基于VB的实时控制系统软件设计江敏,钱平(上海应用技术学院机械与自动化工程学院,上海200235)摘要:以温度控制系统为例,介绍了如何利用VisualBasic构建PID控制器,并利用DLL技术实现输出输入接口的操作。关键词:VisualBasic;BorlandC++Builder;DLL实时控制系统;I/O操作中图分
2、类号:TP311.131文献标识码:AProgrammingfortheRealtimeControlSystemBasedonVisualBasisJIANGMing,QIANPing(SchoolofMechanicalandAutomationEngineering,ShanghaiIntituteofTechnology,Shanghai200235,China)Abstract:Thispaperdetailshowtoprogramthesoftwareofarealtimecontrolsystembasedonvis
3、ualbasic,includinghowtodesignPIDcontrollerandhowtorealizeI/Ooperation.Keywords:visualbasic;BorlandC++Builder;DLL;realtimecontrolsystem;I/O随着工业技术的飞速发展,不仅对控制系统的控制精度的要求越来越严,而且对系统的人机互动的要求也越来越高,利用VB的强大的图形界面功能,开发出一套对温度的实时控制系统,用于标准件制造流程中回火炉的温度控制。1系统结构组成系统由PC机配合数据采集和控制卡,对电加热炉的
4、温度进行控制,数据采集和控制卡可采用研华工控的PCLO818L/LS多功能卡,此卡具有12位A/D分辨率,每秒40K采样速率,16路单端或8路差分模拟量信号输入和1路12位D/A输出。在系统中还包括了温度测量装置(Pt100铂电阻)、可控硅触发电路、双向可控硅等。系统框图见图1。图1系统结构框图收稿日期:2003-09-03作者简介:江敏(1971-),女,讲师,硕士.62上海应用技术学院学报第4卷2系统软件设计温度控制系统的软件设计主要包括PID控制算法的设计和输入输出接口的设计,由于在VB中没有提供对硬件的操作方法,因此,这一部
5、分为设计的主要难点。2.1PID控制器在VB中的实现在控制系统中采用增量式PID控制算法,其控制算法表达式为:Δui=d0ei+d1ei-1+d2ei-2(1)其中:d0=K(1+T/Ti+Td/T);d1=-K(1+2Td/T);d2=K(Td/T)。可按照式(1)方便地设计出数字PID控制器,其程序流程见图2。2.2输入输出接口的设计VisualBasic虽然有较丰富的图形界面设计能力,却没有提供直接的I/O操作功能,要访问I/O接口十分不便。要解决这个问题,可以利用用户控件VBX,动态链接库DLL,动态数据交换DDE及对象连接
6、与嵌入技术OLE实现其功能的扩展。本系统采用动态链接库DLL技术解决这一问题。2.2.1DLL技术简介DLL(DynamicLinkLibraries)是Windows最重要的组成要素,Windows中的许多新功能、新特性都是通过DLL来实现的,其实Windows本身就是由许多的DLL组成的,它最基本的三大组成模块Kernel、GDI和User都是DLL,它所有的库模块也都设计成DLL。2.2.2实现I/O读写开发动态连接库(DLL)应用的方法很多,可以采用VC、BC、BorlandC++、BorlandC++Builder等应用开
7、发软件开发,在本应用中采用BorlandC++Builder6.0做为硬件接口调用动态连接库(DLL)的开发环境。在开发中,首先使用BCBFile
8、NEW建立一个新的DLL工程,生成一个DLL的程图2增量式PID控制算法流程序框架。其中,DLLEntryPoint函数为一个入口方法,如果使用者在DLL被系统初始化或者注销时被调用,用来写入对DLL的初始化程序和卸载程序;参数:hinst用来指示DLL的基地址;reason用来指示DLL的调用方式,用于区别多线程单线程对DLL的调用、创建、卸载DLL;intWINAPIDLLEntry
9、Point(HINSTANCEhinst,unsignedlongreason,void3lpReserved){return1;}然后在程序中加入创建的DLL过程、函数,完成输入输出接口操作功能。从动态链接库中调用过程、函数时有不同