亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        C++Builder編程實(shí)現(xiàn)IXS系列X射線光機(jī)的控制

        2015-03-16 09:10:18劉龍郝萌吳慶星黃寧
        電腦知識(shí)與技術(shù) 2015年1期
        關(guān)鍵詞:串口通信

        劉龍 郝萌 吳慶星 黃寧

        摘要:針對(duì)VJ Technologies公司IXS系列X射線光機(jī),分析其RS232接口,使用C++ Builder編程實(shí)現(xiàn)了對(duì)光機(jī)的控制。其中,串口通信采用了MSCOMM控件,串口信息讀取則采用了多線程。根據(jù)通信協(xié)議,要求上位機(jī)和X射線光機(jī)每750ms內(nèi)要通信一次,因此采用C++類實(shí)現(xiàn)和封裝了上述內(nèi)容和協(xié)議。通過(guò)類成員函數(shù)可以設(shè)置光機(jī)工作電壓和電流,控制光機(jī)的啟停,讀取和解碼光機(jī)的運(yùn)行狀態(tài)和故障信息,完成每750ms的Watch dog通信。此外,類實(shí)現(xiàn)方式可方便地創(chuàng)建多個(gè)實(shí)例,實(shí)現(xiàn)對(duì)多臺(tái)光機(jī)的控制,從應(yīng)用的結(jié)果看,效果良好。

        關(guān)鍵詞:C++Builder;X射線光機(jī);RS232;串口通信;MSCOMM

        中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2015)01-0060-03

        Software Implementation for Controlling IXS Series X-ray Tube Using C++ Builder

        LIU Long,HAO Meng,WU Qing-xing, HUANG Ning

        (1.Ministry of Education Key Laboratory of Radiation Physics of Institute of Nuclear Science and Technology of Sichuan University,Chengdu 610064, China)

        Abstract: In this paper, C++ Builder platform,MSCOMM ActiveX Control and multithread programming are used, to communicate with IXS series X-ray generator of VJ Technologies company. The wrapped C++ class encapsulates the MSCOMM Control and protocol, can setup the voltage, current, open and close the x-ray generator, read and decode the status and error message from the generator, the watch dog timer per 750ms is implemented too. Furthermore, the computer can control multi x-ray generator easily, according to the result of practice, the effect of this design is good.

        Key words: C++Builder; ray generator; RS232; serial communication; MSCOMM

        X射線的產(chǎn)生相對(duì)簡(jiǎn)單容易,由于其能夠穿透物質(zhì),可以通過(guò)測(cè)量成像的方法得到物質(zhì)內(nèi)部的信息,因此廣泛應(yīng)用在安檢、探傷、醫(yī)療等領(lǐng)域[1]。X射線光機(jī)是產(chǎn)生X射線的常用設(shè)備,目前的商用X射線光機(jī)功能已非常完善,不僅可以控制光機(jī)的開停,還可以在線設(shè)置能量和束流的大小。

        商業(yè)X射線光機(jī)大都帶有操作和控制軟件,其作用一般用于光機(jī)診斷和調(diào)試。由于光機(jī)提供的操作程序是獨(dú)立的執(zhí)行程序和界面,功能單一,不能和主應(yīng)用程序集成,使用起來(lái)很不方便。例如,在安檢應(yīng)用中,當(dāng)用戶按“檢測(cè)”按鈕時(shí)需要同時(shí)啟動(dòng)光機(jī)、皮帶電機(jī)、數(shù)據(jù)采集,而不能讓用戶在三個(gè)程序中分別去操作,那樣很麻煩,而且時(shí)間不統(tǒng)一。因此,在實(shí)際應(yīng)用中,需要開發(fā)光機(jī)的通信接口模塊,在主程序中采用通信接口實(shí)現(xiàn)對(duì)光機(jī)的控制。

        1 IXS系列X射線光機(jī)

        IXS是VJ Technologies公司的X-Ray Generator系列產(chǎn)品,其技術(shù)在國(guó)際上具有領(lǐng)先優(yōu)勢(shì),其光機(jī)運(yùn)行穩(wěn)定、可靠,輸出電流和電壓可以根據(jù)需要進(jìn)行調(diào)節(jié),并且對(duì)過(guò)流、過(guò)壓和溫度過(guò)高等現(xiàn)象具有保護(hù)措施[2]。IXS系列X射線光機(jī)自帶有控制器(Controller),上位機(jī)可以通過(guò)控制器的RS232接口,獲取光機(jī)的狀態(tài),從而控制光機(jī)的運(yùn)行,達(dá)到實(shí)現(xiàn)與應(yīng)用的緊密耦合。 圖1為扇形束束流的光機(jī)實(shí)物圖[2],圖中右下角為光機(jī)控制器。

        IXS光機(jī)的RS232協(xié)議默認(rèn)通信參數(shù)為“9600,N,8,1”,沒有使用硬件握手和軟件握手,硬件連接只需要RXD,TXD,GND三根信號(hào)線,軟件實(shí)現(xiàn)也比較簡(jiǎn)單[3]。

        IXS對(duì)信息包采用了ASCII編碼,進(jìn)行了簡(jiǎn)單的封裝,所有的命令和報(bào)告都以開始,結(jié)束,例如:

        CMDARG

        CMD

        RPT

        其中,為開始符號(hào)(0x02),為結(jié)束符號(hào)(0x0d),CMD、ARG和RPT分別代表ASCII編碼的命令、參數(shù)和報(bào)告。IXS的部分命令見表 1:

        從表1可看出,光機(jī)控制器收到上位機(jī)信息后會(huì)發(fā)生響應(yīng),上位機(jī)讀取響應(yīng)信息,即可知道光機(jī)的運(yùn)行狀態(tài)。例如,發(fā)送‘MON命令,可得到目前的電壓、電流、溫度、燈絲狀態(tài)等編碼信息。

        如果操作不當(dāng),X射線會(huì)造成輻射損傷,為保證安全,IXS光機(jī)采用了看門狗機(jī)制,即控制器在收到上位機(jī)的命令后,會(huì)啟動(dòng)看門狗計(jì)時(shí)器(Watch dog timer),若在接下來(lái)的750ms內(nèi)沒有收到新命令和消息,控制器會(huì)自動(dòng)關(guān)閉電壓和電流。所以,為確保X射線光機(jī)正常安全運(yùn)行,上位機(jī)必須在750ms內(nèi)和光機(jī)通信一次,當(dāng)沒有其他命令時(shí),通常定時(shí)發(fā)送WDTE命令。這樣,當(dāng)通信異常,或上位機(jī)出現(xiàn)故障,甚至上位機(jī)斷電時(shí),光機(jī)也會(huì)在750ms內(nèi)自動(dòng)關(guān)閉,避免事故的發(fā)生。

        圖2為正常使用時(shí),上位機(jī)和光機(jī)的交互圖,上位機(jī)設(shè)置光機(jī)的電壓和電流后,打開光機(jī),并在750ms內(nèi)重復(fù)發(fā)送看門狗信號(hào),維持光機(jī)的開狀態(tài),使用結(jié)束后關(guān)閉光機(jī),使用期間需要讀取和解析光機(jī)的返回信息,也可以發(fā)送“MON”命令主動(dòng)查詢光機(jī)的狀態(tài)。

        2 軟件設(shè)計(jì)實(shí)現(xiàn)

        要實(shí)現(xiàn)與X射線光機(jī)之間的通信,軟件上需要匹配操作的串口硬件,實(shí)現(xiàn)對(duì)串口的雙向讀寫,同時(shí)還要實(shí)現(xiàn)光機(jī)的通信協(xié)議,按協(xié)議要求發(fā)送和解析命令[4]。

        C++ Builder具有豐富的VCL控件庫(kù),可高效開發(fā)界面,對(duì)C++語(yǔ)言和COM技術(shù)的支持也很強(qiáng)大,因此我們選用了C++ Builder作為開發(fā)平臺(tái)[4-10]。在C++Builder中可以安裝MSCOMM ActiveX控件,實(shí)現(xiàn)對(duì)RS232串口的控制,這樣就可以不討論RS232通信的底層實(shí)現(xiàn),而把軟件重點(diǎn)放在協(xié)議的解析和實(shí)現(xiàn)上[5-7]。

        我們?cè)贑++ Builder中定義了TVJXRay類,用于封裝MSCOMM控件和光機(jī)通信協(xié)議。其類設(shè)計(jì)見圖3。

        從圖3可以看出,TVJXRay類中持有MSCOMM控件的指針,因此可以在TVJXRay中對(duì)串口進(jìn)行操作,TVJXRay類對(duì)象在TMainForm的OnCreate()函數(shù)中被創(chuàng)建和初始化,通過(guò)其構(gòu)造函數(shù)把MSCOMM控件指針傳遞給了TVJXRay對(duì)象。

        當(dāng)然,要在TVJXRay類中創(chuàng)建MSCOMM控件的實(shí)例也是可以的,只是單獨(dú)編寫代碼創(chuàng)建COM控件比較麻煩,我們采用了VCL的控件管理方式,在主窗體中自動(dòng)創(chuàng)建控件[6]。

        從圖3還可看到,TVJXRay類派生自TThread類,這是由于程序需要監(jiān)測(cè)串口,為了使串口操作不占用主線程,采用了多線程的方式,需要對(duì)Execute()函數(shù)進(jìn)行重載,主要的任務(wù)是解析控制器發(fā)來(lái)的命令,以及每750ms內(nèi)重置看門狗通信計(jì)時(shí)器。Execute()函數(shù)的部分實(shí)現(xiàn)代碼如下:

        void __fastcall TVJXray::Execute()

        {AnsiString RBuffer,RcvText;

        if(!pcomm→PortOpen) return;

        RBuffer=pcomm→Input;

        RcvText="";

        do

        {if(pcomm→InBufferCount)

        { RBuffer=pcomm→Input;

        RcvText+=RBuffer;

        Response(RcvText); //Response Process

        }

        if(m_RayOn)

        { pcomm→Output=WDTE;

        Sleep(600); //<750ms

        }

        Sleep(10);

        }while(!Terminated);

        }

        雖然也可以使用MSCOMM控件的OnComm()事件,接收和處理串口的信息,但是那樣的話必須在TMainForm中去處理,增加了TVJXRay類和TMainForm類的耦合,對(duì)增加的每個(gè)串口都要分別處理OnComm()消息,不利于多串口的開發(fā)。

        由于采用了C++類實(shí)現(xiàn)方式,封裝了光機(jī)的通信協(xié)議,當(dāng)應(yīng)用中有多個(gè)這樣的光機(jī)時(shí),只需要?jiǎng)?chuàng)建一個(gè)新的TVJXRay()實(shí)例就可以了,圖3中就創(chuàng)建了2個(gè)實(shí)例,即一臺(tái)上位機(jī)可以控制多臺(tái)光機(jī)同時(shí)工作。

        運(yùn)行結(jié)果

        C++ Builder不僅可以快速做出漂亮的界面,而且支持COM控件和多線程機(jī)制,COM控件可以在設(shè)計(jì)時(shí)拖放到主界面上,實(shí)現(xiàn)控件的設(shè)置和初始化;封裝的TThread類也很方便,重載Execute()函數(shù)就實(shí)現(xiàn)了多線程,因此,C++ Builder是一個(gè)不錯(cuò)的基于C++語(yǔ)言的快速開發(fā)平臺(tái)[9-10]。

        通過(guò)MSCOMM控件,實(shí)現(xiàn)了串口的通信,繼承C++ Builder的Thread類,實(shí)現(xiàn)了多線程,同時(shí),采用類封裝了IXS系列光機(jī)控制器的通信協(xié)議,在應(yīng)用程序中實(shí)現(xiàn)了對(duì)IXS系列的射線光機(jī)的控制,可以監(jiān)測(cè)其運(yùn)行狀態(tài),實(shí)現(xiàn)看門狗通信,同時(shí)也支持對(duì)多臺(tái)光機(jī)光機(jī)的控制,從實(shí)際運(yùn)行的結(jié)果看,效果良好。

        參考文獻(xiàn):

        [1] 屠耀元. 射線檢測(cè)技術(shù)[M]. 上海: 上海世界圖書出版社, 1997.

        [2] IXS系列X射線光機(jī)[EB/OL]. [2014-10-24]. www.vjt.com.

        [3] 何小海,嚴(yán)華. 微機(jī)原理與接口技術(shù)[M]. 北京: 科學(xué)出版社, 2006.

        [4] 高迎慧. C++Builder實(shí)現(xiàn)RS-232串口通信的研究[J]. 儀器儀表用戶, 2009(6): 37-38.

        [5] 張志明. MSCOMM ActiveX控件在網(wǎng)絡(luò)監(jiān)測(cè)系統(tǒng)串行通信編程中的應(yīng)用[J]. 電子質(zhì)量, 2002(10): 25-30.

        [6] 李海燕. 基于ActiveX控件的串口通信技術(shù)[J]. 電腦與電信, 2007(12): 58-60.

        [7] Jan Axleson.串行端口大全[M]. 北京:中國(guó)電力出版社,2001.

        [8] Erich Gamma, etc. Design Patterns: Elements of Reusable Object-Oriented Software[M]. Pearson education, Inc. 2002.

        [9] 范逸之. C++ Builder與RS-232串行通信控制[M]. 北京: 清華大學(xué)出版社, 2002.

        [10] 余明興,吳明哲,黃世陽(yáng)等. Borland C++Builder6程序設(shè)計(jì)經(jīng)典[M] . 北京: 科學(xué)出版社, 2004.

        猜你喜歡
        串口通信
        基于Android的電解質(zhì)分析儀設(shè)計(jì)與實(shí)現(xiàn)
        基于Qt和Flash的嵌入式Linux軟件架構(gòu)設(shè)計(jì)
        串口通信在智能家居監(jiān)控系統(tǒng)中的應(yīng)用
        基于Python實(shí)現(xiàn)設(shè)備控制臺(tái)的集中控制和管理
        基于OpenCV的室內(nèi)照明智能控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
        科技視界(2016年13期)2016-06-13 22:01:19
        基于Qt5的MODBUS協(xié)議編程與實(shí)現(xiàn)
        基于MSP430單片機(jī)的窄帶無(wú)線數(shù)據(jù)傳輸模塊的設(shè)計(jì)
        便攜式數(shù)傳電臺(tái)測(cè)試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
        基于MFC的AUV多傳感器數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)及測(cè)試
        基于LabVIEW的溫度測(cè)量系統(tǒng)設(shè)計(jì)
        国产乱妇无乱码大黄aa片| 精品亚洲a∨无码一区二区三区| 久久青青草原国产毛片| 门卫又粗又大又长好爽| 亚洲av纯肉无码精品动漫| 久久精品国产夜色| 骚片av蜜桃精品一区| 男女肉粗暴进来120秒动态图 | 日本高清一区二区三区在线| 成av人片一区二区久久| 少妇被猛烈进入到喷白浆| 日韩aⅴ人妻无码一区二区| 少妇脱了内裤让我添| 热久久亚洲| 久久精品韩国日本国产| 熟女高潮av一区二区| 在线观看国产成人av天堂野外| 朋友的丰满人妻中文字幕| 亚洲日本中文字幕天天更新| 亚洲产国偷v产偷v自拍色戒| 日韩精品首页在线观看| 精品一区二区三区国产av| av网站在线观看入口| 摸进她的内裤里疯狂揉她动图视频 | 天堂中文а√在线| 中国人妻被两个老外三p| 在线中文字幕有码中文| 国产精品日日摸夜夜添夜夜添| 午夜国产在线精彩自拍视频| 中文字幕av长濑麻美| 一本色道久久综合狠狠躁篇| 国产精品麻豆成人av电影艾秋| 免费一区啪啪视频| 精品女同一区二区三区不卡| 黑人玩弄极品人妻系列视频| 999国产精品999久久久久久| 18分钟处破好疼哭视频在线观看 | 日本天堂免费观看| 亚洲国产长腿丝袜av天堂| 亚洲另类欧美综合久久图片区| 在线观看免费人成视频国产|