工控网首页
>

应用设计

>

Windows下工业CT机扫描控制的研究

Windows下工业CT机扫描控制的研究

2010/3/17 16:26:00

摘要:介绍了一种工业CT扫描控制的方法,并给出了其在Windows平台下的实现方法。实验表明:该方法具有良好可靠性。

关键词:工业CT扫描Windows设备驱动

一、引言

工业计算机断层扫描成像技术(IndustrialComputerizedTomography),简称工业CT或ICT,是计算机技术与放射学相结合的一门新的成像技术。工业CT在无损检测(NDT)与无损评价(NDE)领域得到了广泛的应用。CT扫描检测模式已经经历了三代扫描模式。第三代扫描示意图相对旋转一周,完成一个断层扫描检测,获得由N×N个数据组成的数据集。本文将研究Windows下第三代CT扫描检测模式控制系统的开发。

二、系统总体结构

本文以重庆大学ICT研究中心研制的某卧式工业CT机为例阐述工业CT机扫描运动控制。卧式工业CT机主要要求对下列三个运动轴的位置进行控制:1.分度运动(工件转动)M1分度运动的定位精度影响到等效探测器空间分布均匀性,直接影响图象质量。可作正、反方向连续转动。2.插值运动M2通过该方向的运动调整探测器的位移,以获取更多的探测数据,提高分辨率。3.工件分层运动M3分层运动用于选择CT扫描断层位置。选用研华公司的PCL_839三轴运动控制卡控制这三个运动。PCL_839卡自身含有3个脉冲发生器,能够执行同步及独立控制三个轴的运动任务。选用研华公司的三通道正交计数卡PCL_833获取这三个运动位置反馈信号、Window下CT扫描控制软件的开发1.应用程序与驱动程序的交互Windows中提供了以下5个API函数,通过它们可以像访问一个文件那样访问设备。(1)CreateFile()打开一个WDM设备(2)CloseHandle()关闭一个WDM设备(3)ReadFile()从设备读数据(4)WriteFile()向设备写数据(5)DeviceIoControl()设备控制命令,读、写操作可一起完成。应用程序首先必须通过CreateFile()打开和创建到一个WDM设备连接,才能对它进行各种I/O操作。下面将给出研华PCL_839卡驱动程序的DriverEntry例程,设置了驱动程序的入口点和主要回调例程,以后内核会在合适的环境下调用这些例程处理。DriverEntry(INPDRIVER_OBJECTDriverObject,INPUNICODE_STRINGRegistryPath){NTSTATUSstatus=STATUS_SUCCESS;DriverObject->DriverExtension->AddDevice=PCL_839AddDevice;………….Returnstatus;}2.CT扫描过程控制(1)CT扫描控制策略为提高CT扫描效率及减少机器的损耗,采用CT扫描运动匀速方式,CT扫描速度的快慢根据采集的时间要求确定,在运动过程中到达一个采集点时,就给数据采集系统发送一个采集信号,通知采集系统预备读取当前点的采集数据。CT扫描控制流程图如下所示:(2)CT扫描软件的编写首先,用户程序发出初始化电机的命令BYTEInitPCL_839[]=//初始化命令码{…PCL_839IO_WRITE,PARPORT_XX,0xXX,//命令码,操作地址,操作数…};BYTEChaZhiPCL_839[]=//插值运动命令码{…PCL_839IO_WRITE,PARPORT_XX,0xXX,//命令码,操作地址,操作数…};初始化包括电机的操作模式,速度控制,及中断使能等。上面给出初始化、插值运动命令码及在用户态调用初始化命令码的程序,在用户态调用插值运动命令码只需对DeviceIoControl修改即可,如下所示:DeviceIoControl(hWdmIo,IOCTL_PCL_839IO_RUN_CMDS,ChaZhiPCL_839,ChaZhiPCL_839,//Inputrv,sizeof(rv),//Output&BytesReturned,NULL)其它操作如分度运动、分层运动与此类似,鉴于篇幅所限这里不再叙述。CT扫描任务的强实时性要求应用程序与驱动程序能进行实时通信。为保证CT扫描系统的实时性,采用Win32事件对应用程序进行通信。当发生中断时,设置事件的触发状态。驱动程序创建命名的核心态事件,具体步骤如下。①声明核心态事件KEVENTmyEventToSingnal;//在PCL_839设备扩展dx中声明②当核心事件发生时,设置事件为触发态,实现WDM对应用程序的通信state=KeReadStateEvent(dx->myEventToSingnal);设置事件为非触发态KeClearEvent(dx->myEventToSingnal);③最后释放事件句柄ExFreePool((dx->myEventToSingnal);由于在该软件设计中,事件是由中断发出的。在进行上述处理之前,必须有一些中断初始步骤设置。应用程序在等待一个事件发生后,就对相应的事件做出快速反映,以保证CT扫描控制的实时性。

三、结论

在Windows2000平台上对CT扫描控制系统进行开发,不仅能更好的实现工业CT机的扫描控制,缩短开发周期,而且可以提高整个控制系统的可靠性、稳定性。

参考文献[1](美)ChrisCant著.WindowsWDM设备驱动程序开发指南.机械工业出版社.[2]刘丽,刘红霞.工业CT扫描台高加速运动控制研究.郑州航空工业治理学院学报(社会科学版).第23卷第3期2004年6月.[3]刘鸿,王平,俞伟.WDM驱动程序开发疑难分析.计算机应用.第23卷第6期2003年6月.[4]马官营.杨明.吴晓琳Windows2000通用设备驱动程序设计.计算机应用.第23卷2003年6月

投诉建议

提交

查看更多评论
其他资讯

查看更多

助力企业恢复“战斗状态”:MyMRO我的万物集·固安捷升级开工场景方案

车规MOSFET技术确保功率开关管的可靠性和强电流处理能力

未来十年, 化工企业应如何提高资源效率及减少运营中的碳足迹?

2023年制造业“开门红”,抢滩大湾区市场锁定DMP工博会

2023钢铁展洽会4月全新起航 将在日照触发更多商机