论文部分内容阅读
【摘 要】 首先,简单介绍了1000MW水轮发电机推力轴承试验中采用的测控系统,然后结合实例,从概念、原理、实现方式等方面对多线程技术的应用进行了分析。
【关键词】 推力轴承试验;测控系统;多线程技术
引言:
随着各方面用电需求的骤增,1000MW水轮发电机研究越来越受重视,作为其中的关键,推力轴承极为重要,在制造试验中,为准确获得各项参数,使其质量及性能有所保证,经常需使用先进的测控系统,多线程技术可提高芯片的处理能力,在测控软件开发中起着重要作用,进而能够为推力轴承试验提供必要的数据信息,以达到提高系统工作效率的目的。
1 微机测控系统
在当前信息化时代,计算机技术应用极为广泛,几乎每一个领域都有涉及,微机测控系统是1000MW水轮发电机推力轴承试验中的重要组成部分,即以计算机技术为核心,将多线程技术应用于软件的开发,从而使硬件资源得到充分利用,以提高测试的可靠性,此处采用LabWindows/CVI作为软件开发平台。系统硬件主要包括传感器、单片机、数据采集卡、信号调理模块、VXI总线数采系统、接口转换装置等,测试对象较为复杂,涉及推力轴承的性能、温度、转速、压力、荷载等,为提高测试结果的准确度,引进了诸多先进设备,并与计算机之间建立了以太网、MXI-2等通讯方式。
2 多线程技术分析
2.1含义及应用原理
在计算机领域,进程指的是系统执行中的某段具有独立性质的程序,是一个有特定地址空间的实体,在进行某项操作时,需依靠相应的线程作为基础,所以,线程指的是系统运行中的程序调度单位,能够独立执行进程地址空间内的代码,在单个程序中,多个线程能够同时运行的技术,即多线程技术。
就Windows系统而言,在实际操作中,可实现多个应用程序的同时运行,关键在于多个线程能否同时执行代码,为避免出现混乱,每个线程都有属于自己的CPU时间,只在此范围内运行,时间结束后,线程随即停止工作;有另外的线程开始执行代码,即为线程切换。使用多线程技术,可将代码任务进行分解,由主线程和其他辅助线程同时执行任务,进行数据采集、存储,网络访问等工作。所以,为提高CPU的运行效率,经常会使用多线程技术。
2.2多线程的实现方式
本文在设计测控系统软件时,选用的是由美国NI公司研发、以ANSIC为核心的LabWindows/CVI平台,能够提供大量的功能函数,关于多线程的实现方式,主要有以下几种:
①线程池方式
即线程的容器,通常使用CmtNewThreadPool()函数创建,线程函数是指利用线程调度函数传至线程池的执行函数,原型不受限制,可做任何命名。当线程结束时,为减少系统资源的消耗,需借助注销函数释放线程池的资源。
②异步定时器方式
即以Windows多媒体定时器为主要工具,在指定时间间隔点调用线程函数的方式,在等时间间隔执行任务中应用较多。异步定时器的创建尤为关键,相关函数为:int CVICALLBACK NewAsyncTimer(double interval, int count, int initialState, void* callbackFunction ,void *callbackDat)。然后将线程函数传至NewAsyncTimer函数,设置间隔时间即可。
③timer定时器方式
Timer定时器是该软件系统中的一个控件,有着和异步定时器相近的执行效果,且具有独立性,可等间隔循环启动其回调函数,其不足之处在于,优先级偏低,加上主线程对其影响较大,一旦遇到有严格要求的时间间隔,便很不适用,所以常被忽略。
④ Windows SDK
在系统中,Windows SDK 也能够提供与多线程相关的函数,常被定义在winbase.h文件中,导入库为kernel.lib文件,多借助CreateThread函数完成新线程的创建,Resume Thread函数表示线程的继续执行,SuspendThread函数及TeminateThread函数则分别表示线程的暂停和终止。须注意的是,某些函数可能在SDK、windows中都有定义,需要正确使用,否则极易出现编译错误。
3 多线程技术在1000MW水轮发电机推力轴承试验中的应用
某地进行1000MW水轮发电机的研制,在2013年8月完成了推力轴承这项关键技术的制造,额定荷载高达50MN,包括两种结构:①钨金瓦结构,单瓦面积为4400cm2;②塑料瓦结构,采用250吨的弹性油箱,单瓦面积为4150cm2。为保证其性能、质量良好,引进了采用多线程技术的测控系统,对其展开了试验。该试验在开发多线程程序时,结合系统任务要求,综合实用性、安全性、准确性等因素考虑,最终选择了线程池方式,通过线程池的创建,对将要执行的线程函数进行调用。
关于测试任务的分配,首先,在主函数中创建线程池,其中仅有一个独立于主函数之外的线程函数,由系统时间显示,有效避免了程序不响应的状况发生。其次,在采集轴承的转速、温度和荷载时,创建包含了两个线程函数的新程池,两个函数分别用于测试转速荷载与温度。因是并行采集形式,设备内部模块不支持,所以设置了硬件的占用和释放标志。接着创建第三个线程池,包含以太网通讯程序、RS-232中断程序,以及数据采集卡等函数,且皆有各自相适应的设备,故而虽在同一个线程池中,彼此并不影响。
任务分配结束后,因多个线程共同运行,可充分利用硬件资源,同时也有一定的风险,主要体现在:不同的线程内,可能出现两个线程同时访问数据的状况,甚至数据会被改写,因此,为确保逻辑的正确性,必须做好各种变量的保护工作,该系统在几种保护机制中,选择了线程队列机制,使得读写数据线程都比较畅通,大大提高了数据传输的安全性。
采用单线程测控系统时,任务大都是按照顺序执行的,要完成所有数据的采集,大约需要6—7分钟,而且如果任务结束前出现无法响应的情况,极易造成安全隐患。而使用多线程技术,多项任务的执行具有独立性,不但安全性有所提升,而且试验速度更快,较以前缩短了4—5分钟,顺利地完成了各项试验。
4 结束语
1000MW水轮发电机的研制成功具有重大现实意义,作为其中的关键部分,推力轴承的作用不言而喻,在对其各项参数进行测试时,多线程技术在利用硬件资源、提高CPU运行效率等方面发挥着重要作用,值得推广应用。
参考文献:
[1]孙凯,李淑钰,祖宇聪.多线程技术在1000MW水轮发电机推力轴承试验上的应用[J].大电机技术,2011,22(6):146-147
【关键词】 推力轴承试验;测控系统;多线程技术
引言:
随着各方面用电需求的骤增,1000MW水轮发电机研究越来越受重视,作为其中的关键,推力轴承极为重要,在制造试验中,为准确获得各项参数,使其质量及性能有所保证,经常需使用先进的测控系统,多线程技术可提高芯片的处理能力,在测控软件开发中起着重要作用,进而能够为推力轴承试验提供必要的数据信息,以达到提高系统工作效率的目的。
1 微机测控系统
在当前信息化时代,计算机技术应用极为广泛,几乎每一个领域都有涉及,微机测控系统是1000MW水轮发电机推力轴承试验中的重要组成部分,即以计算机技术为核心,将多线程技术应用于软件的开发,从而使硬件资源得到充分利用,以提高测试的可靠性,此处采用LabWindows/CVI作为软件开发平台。系统硬件主要包括传感器、单片机、数据采集卡、信号调理模块、VXI总线数采系统、接口转换装置等,测试对象较为复杂,涉及推力轴承的性能、温度、转速、压力、荷载等,为提高测试结果的准确度,引进了诸多先进设备,并与计算机之间建立了以太网、MXI-2等通讯方式。
2 多线程技术分析
2.1含义及应用原理
在计算机领域,进程指的是系统执行中的某段具有独立性质的程序,是一个有特定地址空间的实体,在进行某项操作时,需依靠相应的线程作为基础,所以,线程指的是系统运行中的程序调度单位,能够独立执行进程地址空间内的代码,在单个程序中,多个线程能够同时运行的技术,即多线程技术。
就Windows系统而言,在实际操作中,可实现多个应用程序的同时运行,关键在于多个线程能否同时执行代码,为避免出现混乱,每个线程都有属于自己的CPU时间,只在此范围内运行,时间结束后,线程随即停止工作;有另外的线程开始执行代码,即为线程切换。使用多线程技术,可将代码任务进行分解,由主线程和其他辅助线程同时执行任务,进行数据采集、存储,网络访问等工作。所以,为提高CPU的运行效率,经常会使用多线程技术。
2.2多线程的实现方式
本文在设计测控系统软件时,选用的是由美国NI公司研发、以ANSIC为核心的LabWindows/CVI平台,能够提供大量的功能函数,关于多线程的实现方式,主要有以下几种:
①线程池方式
即线程的容器,通常使用CmtNewThreadPool()函数创建,线程函数是指利用线程调度函数传至线程池的执行函数,原型不受限制,可做任何命名。当线程结束时,为减少系统资源的消耗,需借助注销函数释放线程池的资源。
②异步定时器方式
即以Windows多媒体定时器为主要工具,在指定时间间隔点调用线程函数的方式,在等时间间隔执行任务中应用较多。异步定时器的创建尤为关键,相关函数为:int CVICALLBACK NewAsyncTimer(double interval, int count, int initialState, void* callbackFunction ,void *callbackDat)。然后将线程函数传至NewAsyncTimer函数,设置间隔时间即可。
③timer定时器方式
Timer定时器是该软件系统中的一个控件,有着和异步定时器相近的执行效果,且具有独立性,可等间隔循环启动其回调函数,其不足之处在于,优先级偏低,加上主线程对其影响较大,一旦遇到有严格要求的时间间隔,便很不适用,所以常被忽略。
④ Windows SDK
在系统中,Windows SDK 也能够提供与多线程相关的函数,常被定义在winbase.h文件中,导入库为kernel.lib文件,多借助CreateThread函数完成新线程的创建,Resume Thread函数表示线程的继续执行,SuspendThread函数及TeminateThread函数则分别表示线程的暂停和终止。须注意的是,某些函数可能在SDK、windows中都有定义,需要正确使用,否则极易出现编译错误。
3 多线程技术在1000MW水轮发电机推力轴承试验中的应用
某地进行1000MW水轮发电机的研制,在2013年8月完成了推力轴承这项关键技术的制造,额定荷载高达50MN,包括两种结构:①钨金瓦结构,单瓦面积为4400cm2;②塑料瓦结构,采用250吨的弹性油箱,单瓦面积为4150cm2。为保证其性能、质量良好,引进了采用多线程技术的测控系统,对其展开了试验。该试验在开发多线程程序时,结合系统任务要求,综合实用性、安全性、准确性等因素考虑,最终选择了线程池方式,通过线程池的创建,对将要执行的线程函数进行调用。
关于测试任务的分配,首先,在主函数中创建线程池,其中仅有一个独立于主函数之外的线程函数,由系统时间显示,有效避免了程序不响应的状况发生。其次,在采集轴承的转速、温度和荷载时,创建包含了两个线程函数的新程池,两个函数分别用于测试转速荷载与温度。因是并行采集形式,设备内部模块不支持,所以设置了硬件的占用和释放标志。接着创建第三个线程池,包含以太网通讯程序、RS-232中断程序,以及数据采集卡等函数,且皆有各自相适应的设备,故而虽在同一个线程池中,彼此并不影响。
任务分配结束后,因多个线程共同运行,可充分利用硬件资源,同时也有一定的风险,主要体现在:不同的线程内,可能出现两个线程同时访问数据的状况,甚至数据会被改写,因此,为确保逻辑的正确性,必须做好各种变量的保护工作,该系统在几种保护机制中,选择了线程队列机制,使得读写数据线程都比较畅通,大大提高了数据传输的安全性。
采用单线程测控系统时,任务大都是按照顺序执行的,要完成所有数据的采集,大约需要6—7分钟,而且如果任务结束前出现无法响应的情况,极易造成安全隐患。而使用多线程技术,多项任务的执行具有独立性,不但安全性有所提升,而且试验速度更快,较以前缩短了4—5分钟,顺利地完成了各项试验。
4 结束语
1000MW水轮发电机的研制成功具有重大现实意义,作为其中的关键部分,推力轴承的作用不言而喻,在对其各项参数进行测试时,多线程技术在利用硬件资源、提高CPU运行效率等方面发挥着重要作用,值得推广应用。
参考文献:
[1]孙凯,李淑钰,祖宇聪.多线程技术在1000MW水轮发电机推力轴承试验上的应用[J].大电机技术,2011,22(6):146-147