欢迎来到天天文库
浏览记录
ID:38115453
大小:105.21 KB
页数:5页
时间:2019-05-25
《基于vb的多线程实时测控系统的设计与实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第30卷第1期河海大学学报VoI.30No.12002年1月JOURNALOFHOHAIUNIVERSITYJan.2002基于VB的多线程实时测控系统的设计与实现高春雷,高新陵(河海大学水利水电工程学院,江苏南京210098)摘要:介绍在VB环境下基于多线程的压力机床测控系统的设计与实现过程,对该测控系统的技术特点、软件设计方法进行了具体论述,并给出在VB中用ActiveX技术实现多线程实时测控的系统框架.该系统已成功地应用于一大型汽车制造企业的生产过程.关键词:VisuaIBasic;多线程;实时
2、测控中图分类号:TH122文献标识码:A文章编号:1000!198(02002)01!0049!05发动机镶缸套压力机床是汽车发动机生产线的重要设备之一,对该压力机床工作过程的压力信号实时检测,是控制发动机镶缸套质量的重要手段,检测信号的分析结果可控制压力机床的运动,同时可为调整生产线前部相关工序提供参考.该数据测量系统需要对4路压力信号和对应的高度信号进行持续的在线实时测量,数据范围是压力值0~+65kN、高度值-100~180mm,测量误差允许范围小于或等于0.8%,测量频率为4s之内完成一路信号
3、的检测和处理.系统必须对290多个采样数据或基于采样数据的统计参数实现实时超界报警.由于在采集界面下需要在较短的时间内完成数据采集、去噪声、数据整理与修复、压力数据实时图表显示、数据分析计算、超界实时报警以及数据存储与管理等任务,如果仅使用单线程模型来设计系统,就不能很好地完成数据采集和监控的任务,因此考虑采用多线程模型,利用多个线程分别完成各项任务.在多种可视化编程语言中,VB因可以让开发者快速创建强大的应用程序而免除不必要的细节,已经在测控系统中得到了广泛的应用.但如何用VB开发基于多线程的测控系
4、统尚有一定的难度.本文就VB如何用于多线程测控系统的软件设计作了较为系统的阐述,并给出了实现该系统的框架.1多线程VisualBasic应用程序的设计1.1线程概述应用程序的一个运行实例称作进程,每个进程可以包括一个或多个线程.所有属于该进程的线程都共享进程的资源,如CPU、地址空间以及对象句柄等.利用多线程机制可以实现进程内的各个子任务并行执行,从而提高系统的实时性能.1.2VB中多线程应用程序的实现VB中的线程模型有两种主要形式:自由线程模型(FreeThreadModeI)和单元线程模型(Apa
5、rtmentThreadModeI).在自由线程模型中,每一线程可访问全部进程的数据区域,而且所有线程共享应用程序的全局变量.这样的线程模型,优点是各线程之间通讯比较方便,缺点是不利于实现各线程之间的同步.在单元线程模型中,一个单元中可以有一个或多个线程,同一单元中的线程可以互相通讯,而不同单元之间的线程则不可以.这种线程模型有利于实现线程之间的同步,而不利于线程之间的通讯(主要是指不同的单元中封装的线程之间的通讯).总的来说,单元线程模型比自由线程模型能更安全些,因此在实际系统设计中运用较广泛.VB
6、6可以创建多线程ActiveX组件,包括多线程ActiveXEXE组件和多线程ActiveXDLL组件.此外,VB6也可以很方便地创建多线程普通应用程序,程序中可以选择不同的线程模型,但必须具备以下3个条件:a.应用程序必须是用ThreadPerObject设置编译的ActiveXEXE服务器;收稿日期:2000!12!29作者简介:高春雷(1973—),男,江苏武进人,硕士研究生,机械设计及理论专业,主要从事计算机网络及应用研究.50河海大学学报2002年l月b.在不同的线程中运行的任务代码必须嵌在
7、某个使用MuitiUse的类中;c.创建新对象时,必须用Createobject函数而不是new操作创建新对象(.有关本限制条件的说明:(a)这一点是保证由同一个运行组件提供对象,在执行时就不会产生组件的其他副本(.b)由于使用new操作时,vB会用更有效的但不含任何限制的结构来创建对象,从而绕过CoM,这样就不能保证对象是可创建的(MuitiUse)[l].)2系统线程的设计与实现通过分析系统需求,为了实现高速采集和处理数据并完成实时显示及监控实际压力数据,本系统主界面创建为ActiveXEXE服务
8、器类型,采用单元线程模型,共使用了3个线程:(a)主线程,负责管理通常的前台界面处理,并接收和处理来自控制机柜面板上的按钮信号;(b)数据采集线程,负责数据的采集、平滑和去噪,并送入数据缓冲区供其他线程使用;(c)数据处理线程,负责对数据缓冲区中的最新数据进行显示实时压力曲线,并负责实时超界报警.下面对3个线程作进一步的介绍.2.1主线程的设计主线程设计的主要任务是创建窗口,管理主界面上的键盘和鼠标输入,创建两个工作子线程,并控制子线程的存活.在多线程A
此文档下载收益归作者所有