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

        ?

        傾斜式平板檢測(cè)儀器運(yùn)動(dòng)控制系統(tǒng)的多線程應(yīng)用

        2020-11-10 07:52:18王紹杰金偉偉
        關(guān)鍵詞:檢測(cè)系統(tǒng)

        馮 方, 王紹杰, 金偉偉

        (合肥工業(yè)大學(xué) 儀器科學(xué)與光電工程學(xué)院, 合肥230009)

        0 引 言

        近年來隨著科學(xué)技術(shù)的飛速發(fā)展,平板顯示技術(shù)也日新月異,顯示屏的應(yīng)用范圍也越來越廣泛。小到智能手表、手機(jī),大到筆記本電腦、液晶電視,平板顯示屏的尺寸越來越大,分辨率也越來越高,因此對(duì)平板檢測(cè)系統(tǒng)的分辨率、掃描定位精度和穩(wěn)定性都提出了更高的要求。 自動(dòng)光學(xué)檢測(cè)(Automatic Optic Inspection,AOI)是指采用光學(xué)成像技術(shù)獲取被測(cè)目標(biāo)的圖像,再通過圖像處理和識(shí)別算法讀取被測(cè)目標(biāo)的缺陷信息[1]。 而在平板檢測(cè)系統(tǒng)中,除了與圖像處理識(shí)別算法單元通信,還要與AOI 系統(tǒng)的控制器端通信。

        在顯控軟件開發(fā)時(shí),一般包含以下幾種功能:界面顯示,通信數(shù)據(jù)收發(fā),數(shù)據(jù)處理與轉(zhuǎn)換以及數(shù)據(jù)提交與分發(fā)。 而實(shí)現(xiàn)這些功能就需要多線程與通信機(jī)制相結(jié)合。 多線程可使編程任務(wù)簡(jiǎn)化和模塊化,可以提高處理器的效率,提高數(shù)據(jù)吞吐量[2]。 在現(xiàn)代計(jì)算機(jī)體系中,應(yīng)用程序通常都是多線程運(yùn)行。

        1 系統(tǒng)設(shè)計(jì)

        傾斜式平板顯示屏自動(dòng)光學(xué)檢測(cè)系統(tǒng)(簡(jiǎn)稱傾斜式平板檢測(cè)系統(tǒng))是集運(yùn)動(dòng)控制、在線檢測(cè)和工業(yè)計(jì)算機(jī)為一體的自動(dòng)化精密儀器。 系統(tǒng)簡(jiǎn)圖如圖1 所示。 首先玻璃基板在上料區(qū)就位,檢測(cè)到玻璃基板到來后,由電機(jī)帶動(dòng)傳動(dòng)輪拖動(dòng)玻璃基板勻速經(jīng)過掃描區(qū)域,圖像處理單元經(jīng)過處理分析后向,系統(tǒng)發(fā)送要進(jìn)行復(fù)檢位置的指令,而后控制玻璃基板到達(dá)指定位置進(jìn)行復(fù)檢后下料。

        圖1 傾斜式平板檢測(cè)系統(tǒng)Fig. 1 Inclined flat panel inspection system

        上位機(jī)部分是工業(yè)平板電腦,負(fù)責(zé)人機(jī)交互,信息轉(zhuǎn)換和整機(jī)控制。 軟件主界面如圖2 所示。 人機(jī)交互界面HMI 需要實(shí)時(shí)顯示系統(tǒng)的運(yùn)行狀態(tài),提供設(shè)備的運(yùn)行接口。 人機(jī)界面要與下位機(jī)、圖像處理單元和遠(yuǎn)程監(jiān)視端3 個(gè)單元進(jìn)行通信。 實(shí)現(xiàn)人機(jī)界面與PLC 運(yùn)動(dòng)控制系統(tǒng)實(shí)時(shí)交互,圖像處理單元(IMP)反饋控制以及遠(yuǎn)程監(jiān)視(RMT)功能。 圖3 為以人機(jī)界面為基礎(chǔ)的軟件架構(gòu)。 通過以太網(wǎng)人機(jī)界面與運(yùn)動(dòng)控制器連接。 人機(jī)界面讀取運(yùn)動(dòng)控制器MP2300S 內(nèi)的數(shù)據(jù),經(jīng)解析和轉(zhuǎn)換后,顯示在人機(jī)界面上;人機(jī)界面同時(shí)還要接收用戶輸入的一些指令,并將這些指令解析為運(yùn)動(dòng)控制器可以識(shí)別的命令。

        圖2 人機(jī)界面Fig. 2 Interactive interface

        傾斜式平板檢測(cè)系統(tǒng)根據(jù)圖像處理單元的處理結(jié)果控制系統(tǒng)進(jìn)行復(fù)檢動(dòng)作。 圖像處理單元不是直接控制運(yùn)動(dòng)控制器,而是通過上位機(jī)即人機(jī)界面作為控制接口。 圖像處理單元與人機(jī)界面使用一套自定義的通信協(xié)議,人機(jī)界面作為控制指令的中轉(zhuǎn)站,將圖像處理單元發(fā)來的指令轉(zhuǎn)換為運(yùn)動(dòng)控制命令,并且將結(jié)果信息反饋給圖像處理單元。

        人機(jī)界面作為儀器設(shè)備的一部分,安裝在工業(yè)現(xiàn)場(chǎng)。 為了能夠遠(yuǎn)程監(jiān)視設(shè)備的運(yùn)行狀態(tài),人機(jī)界面還要提供數(shù)據(jù)轉(zhuǎn)發(fā)功能,為遠(yuǎn)程用戶提供監(jiān)視服務(wù)。

        圖3 軟件架構(gòu)Fig. 3 Software Architecture

        2 多線程

        進(jìn)程和線程是理解程序運(yùn)行的基礎(chǔ),進(jìn)程是系統(tǒng)資源分配的基本單位,而線程是CPU 調(diào)度的基本單位,它以某種規(guī)則輪流享用進(jìn)程資源完成自身任務(wù)[3]。 單核時(shí)對(duì)CPU 的時(shí)間進(jìn)行切片輪換執(zhí)行多個(gè)任務(wù),當(dāng)時(shí)間足夠小的時(shí)候,可以認(rèn)為是多個(gè)任務(wù)在同時(shí)執(zhí)行。 采用多線程技術(shù)可以將程序劃分成多個(gè)獨(dú)立的任務(wù),顯著提高其性能。 在傾斜式平板檢測(cè)系統(tǒng)中使用多線程技術(shù),可以防止阻塞,保證數(shù)據(jù)的收發(fā)互不干擾,還不會(huì)影響到界面的正常使用。

        在傾斜式平板檢測(cè)系統(tǒng)中,人機(jī)界面要與下位機(jī)、圖像處理單元以及遠(yuǎn)程監(jiān)視單元通信。 由于系統(tǒng)狀態(tài)指示等數(shù)據(jù)繁多,所以由人機(jī)交互界面作為主線程創(chuàng)建3 個(gè)子線程IMP,PLC 和RMT 子線程分別負(fù)責(zé)各個(gè)子線程與對(duì)應(yīng)單元的通信。 主線程負(fù)責(zé)界面交互,3 個(gè)子線程則分別負(fù)責(zé)不同的數(shù)據(jù)通信。

        本系統(tǒng)是基于MFC 對(duì)話框模式開發(fā)的人機(jī)界面應(yīng)用程序,主窗口由MFC 類向?qū)ё詣?dòng)生成。 主線程由CWinThread 的派生類創(chuàng)建,CWinThread 支持用戶界面線程和工作者線程兩種類型。 由于本系統(tǒng)需要接收,發(fā)送和處理消息,所以開辟的子線程都是用戶界面線程。 使用CWin Thread 類派生PLC、IMP、 RMT 子 線 程 類 CThreadforPLC、CThreadforImage、CThreadforRemote,并為每個(gè)類增添成員變量和成員函數(shù)。 當(dāng)程序啟動(dòng)開始運(yùn)行時(shí),初始化人機(jī)界面,通過調(diào)用全局函數(shù)AfxBeginThread創(chuàng)建PLC、IMP、RMT 3 個(gè)子線程。

        3 線程間通信

        通信是創(chuàng)建子線程最主要的目標(biāo),包括初始化通信端口、組織數(shù)據(jù)、發(fā)送數(shù)據(jù)、接收數(shù)據(jù)和解析數(shù)據(jù)。 子線程使用MFC 封裝的Socket 類通信,因此子線程需要定義通信Socket 成員變量,同時(shí)開辟發(fā)送緩沖區(qū)和接收緩沖區(qū)。

        子線程采用異步通信的方式,須重寫標(biāo)準(zhǔn)通知函數(shù)。 在客戶端(PLC 子線程)重寫OnConnect、OnReceive、OnClose,在服務(wù)器端(IMP、RMT 子線程)重寫OnAccept、OnReceive、OnClose,在重寫的函數(shù)內(nèi)設(shè)置通信狀態(tài)、建立連接和收發(fā)數(shù)據(jù)。

        TCP/IP 協(xié)議的應(yīng)用開發(fā)接口的事實(shí)標(biāo)準(zhǔn)是Socket(套接口)。 使用Socket 可以隱藏網(wǎng)絡(luò)底層復(fù)雜的結(jié)構(gòu)與協(xié)議,能夠抽象地對(duì)網(wǎng)絡(luò)進(jìn)行操作[4]。本系統(tǒng)使用的是MFC 對(duì)Windows Socket 的封裝類,是對(duì)Socket API 的又一次封裝。 傾斜式平板檢測(cè)系統(tǒng)創(chuàng)建的3 個(gè)子線程都擁有它們自己的通信Socket,Socket 管理數(shù)據(jù)收發(fā),各個(gè)線程負(fù)責(zé)數(shù)據(jù)處理。 套接字有流式套接字、數(shù)據(jù)報(bào)式套接字和原始套接字三種,是通信雙方的一種約定。 數(shù)據(jù)報(bào)套接字使用的是UDP 協(xié)議,流式套接字采用的是TCP協(xié)議[5]。 使用CAsyncSocket 類在MFC 應(yīng)用程序中可以輕松處理多個(gè)網(wǎng)絡(luò)協(xié)議,針對(duì)本系統(tǒng)的通信協(xié)議采用流式套接字編程。 流式套接字通信如圖4 所示。

        圖4 流式套接字通信Fig. 4 Streaming socket communication

        3.1 PLC 子線程

        傾斜式平板檢測(cè)系統(tǒng)采用運(yùn)動(dòng)控制器MP2300S 來實(shí)現(xiàn)系統(tǒng)的底層運(yùn)動(dòng)控制功能。MP2300S 內(nèi)置的218IFA 模塊是10Base-T/100Base-TX 的Ethernet 接口,也是MP2300S 標(biāo)準(zhǔn)配備的通信接口[6]。 本系統(tǒng)采用的是218IF-01 中TCP/IP應(yīng)用層五個(gè)協(xié)議中的MEMMOBUS/TCP 來構(gòu)建通信網(wǎng)絡(luò)。 數(shù)據(jù)由標(biāo)題、218 標(biāo)題和應(yīng)用數(shù)據(jù)三部分構(gòu)成,如圖5 所示。

        圖5 協(xié)議數(shù)據(jù)格式Fig. 5 Protocol data format

        當(dāng)人機(jī)界面與下位機(jī)PLC 通信時(shí),人機(jī)界面為客戶端,下位機(jī)PLC 為服務(wù)器端,使用CAsyncSocket異步通信類派生 PLC 子線程通信類CPLCClientSocket。 在這個(gè)類的構(gòu)造函數(shù)中指定socket 服務(wù)的線程,并在這個(gè)類中重寫OnConnect、OnReceive、OnClose 用于通信服務(wù),調(diào)用子線程CThreadforPLC 中的同名函數(shù)完成相應(yīng)的功能。

        將PLC 的動(dòng)作通過兩個(gè)參數(shù)定義區(qū)別可以作為人機(jī)界面程序與PLC 控制程序的接口協(xié)議。 PLC子線程接收讀命令響應(yīng)數(shù)據(jù)、寫命令響應(yīng)數(shù)據(jù)和錯(cuò)誤響應(yīng)數(shù)據(jù)三種類型數(shù)據(jù)。 讀命令將接收到的響應(yīng)數(shù)據(jù)拷貝到主界面輸入緩存區(qū),主界面根據(jù)接收到的這些數(shù)據(jù)顯示系統(tǒng)運(yùn)行狀態(tài)。 寫命令由人機(jī)界面或者圖像處理單元發(fā)送,寫命令響應(yīng)數(shù)據(jù)的功能查看這個(gè)命令有沒有成功寫入。 錯(cuò)誤響應(yīng)數(shù)據(jù)指下位機(jī)PLC 反饋回來的錯(cuò)誤代碼。

        3.2 IMP 子線程

        圖像處理單元和遠(yuǎn)程監(jiān)視端不直接與下位機(jī)運(yùn)動(dòng)控制器通信。 在和人機(jī)界面通信的時(shí)候,人機(jī)界面作為服務(wù)器端,IMP 和RMT 作為客戶端,創(chuàng)建服務(wù)器端通信Socket,在IMP 子線程通信類的構(gòu)造函數(shù)中指定socket 服務(wù)的線程, 這個(gè)類重寫了OnAccept、OnReceive、OnClose 用 于 通 信 服 務(wù)。 以CAsyncSocket 類作為通信接口,在IMP 子線程的同名函數(shù)中發(fā)送和接收數(shù)據(jù)。

        圖像處理單元需要給運(yùn)動(dòng)控制器發(fā)送復(fù)檢指令,則要保證成功建立圖像處理單元到下位機(jī)PLC的通信信道,IMP 不直接與下位機(jī)PLC 通信,那么就需要保證圖像處理單元到人機(jī)界面以及人機(jī)界面到下位機(jī)PLC 的通信連接成功;而后對(duì)人機(jī)界面至下位機(jī)PLC 的通信信道是否被占用進(jìn)行檢測(cè),假如人機(jī)界面正在占用信道發(fā)送命令,圖像處理單元不能發(fā)送指令到下位機(jī)PLC 的;最后還需要檢測(cè)下位機(jī)PLC 是否正在執(zhí)行命令,如果下位機(jī)PLC 還沒有結(jié)束上一條命令的動(dòng)作,則不會(huì)執(zhí)行當(dāng)前命令的動(dòng)作。 如圖6 所示。

        圖6 IMP 指令流程Fig. 6 IMP instruction flow

        檢測(cè)通信信道是否建立:使用Socket 通信的基礎(chǔ)是保證各個(gè)Socket 已初始化并成功連接。 在主界面類中定義一個(gè)m_iSocketok 成員變量,標(biāo)志PLC、IMP、RMT 子線程通信Socket 有沒有順利初始化,這個(gè)變量的第0 位表示PLC 通信狀態(tài)、第1 位表示IMP 通信狀態(tài)、第2 位表示RMT 通信狀態(tài)。 當(dāng)每個(gè)通信Socket 初始化,連接成功時(shí)置為1,當(dāng)關(guān)閉連接狀態(tài)或者是通信中斷時(shí)置為0。 通過檢測(cè)這個(gè)變量的值,可知通信信道是否成功建立。

        檢測(cè)通信信道是否空閑:在3 種情況下人機(jī)界面會(huì)向下位機(jī)PLC 發(fā)送數(shù)據(jù):定時(shí)查詢狀態(tài)、用戶界面操作和圖像處理單元發(fā)來指令,由于有可能會(huì)存在時(shí)間上的并發(fā)沖突,因此需要考慮同步它們的發(fā)送動(dòng)作。 在主界面類中定義一個(gè)bool 型成員變量m_bPLCsend 記錄PLC 的通信狀態(tài),當(dāng)它的值為true 時(shí)表示正在發(fā)送數(shù)據(jù),當(dāng)它的值為false 時(shí)表示此時(shí)沒有發(fā)送數(shù)據(jù)。 每次向下位機(jī)PLC 發(fā)送命令之前,先查詢m_bPLCsend 的值,這個(gè)變量的值在人機(jī)界面向下位機(jī)發(fā)送命令的過程中會(huì)發(fā)生改變,在準(zhǔn)備發(fā)送命令前將其值置true,在發(fā)送完命令后將其值置false。

        檢測(cè)下位機(jī)PLC:在進(jìn)行復(fù)檢動(dòng)作時(shí),由人機(jī)界面向下位機(jī)PLC 發(fā)送命令,首先檢測(cè)下位機(jī)有沒有完成上一個(gè)指令的動(dòng)作。 在人機(jī)界面主窗口類中定義一個(gè)成員變量m_byteCMDOrder 表示PLC 發(fā)送命令序號(hào),這個(gè)序號(hào)的范圍為1 ~64,當(dāng)人機(jī)界面向下位機(jī)PLC 發(fā)送寫命令時(shí),這個(gè)成員變量的值會(huì)賦到寫命令的數(shù)據(jù)中,之后該成員變量自增,當(dāng)人機(jī)界面接收到下位機(jī)的響應(yīng)命令時(shí),這個(gè)值作為PLC 數(shù)據(jù)結(jié)構(gòu)成員taskfinl 返回,通過查看taskfinl 和成員變量m_byte CMDOrder 的值是否相等,就可以判斷下位機(jī)PLC 有沒有完成上一個(gè)指令動(dòng)作。

        3.3 RMT 子線程

        遠(yuǎn)程監(jiān)視端要顯示傾斜式平板檢測(cè)系統(tǒng)的狀態(tài),則要向人機(jī)界面發(fā)送查詢命令,RMT 子線程定義了一個(gè)臨時(shí)的接收緩沖區(qū),將主界面線程中記錄系統(tǒng)狀態(tài)的成員變量復(fù)制到臨時(shí)緩沖區(qū),經(jīng)過整理后發(fā)送給遠(yuǎn)程端。

        4 結(jié)束語(yǔ)

        通過采用多線程多緩沖區(qū)結(jié)構(gòu)來設(shè)計(jì)傾斜式平板檢測(cè)系統(tǒng)的軟件架構(gòu),保證了上位機(jī)人機(jī)界面與下位機(jī)、圖像處理單元和遠(yuǎn)程監(jiān)視端的高效通信,極大提高了實(shí)時(shí)性,完成了其基本功能要求。

        猜你喜歡
        檢測(cè)系統(tǒng)
        Smartflower POP 一體式光伏系統(tǒng)
        “不等式”檢測(cè)題
        “一元一次不等式”檢測(cè)題
        “一元一次不等式組”檢測(cè)題
        WJ-700無人機(jī)系統(tǒng)
        “幾何圖形”檢測(cè)題
        “角”檢測(cè)題
        ZC系列無人機(jī)遙感系統(tǒng)
        基于PowerPC+FPGA顯示系統(tǒng)
        半沸制皂系統(tǒng)(下)
        亚洲成av人片在线观看| 亚洲AV秘 无套一区二区三区 | 欧美多毛肥胖老妇做爰| 无码中文字幕av免费放| 蓝蓝的天空,白白的云| 99国产精品99久久久久久| 人人狠狠综合久久亚洲| 国产女奸网站在线观看| 亚洲综合一区二区三区久久| 肉色丝袜足j视频国产| 少妇特黄a一区二区三区| 加勒比日本东京热1区| 99久久婷婷国产精品综合网站| 国产精品久免费的黄网站| 18禁高潮出水呻吟娇喘蜜芽| 久久久久成人精品免费播放网站| 日本免费一区二区久久久| 国产综合色在线精品| 在线观看国产精品日韩av| 无码伊人久久大香线蕉| 国产91成人精品高潮综合久久 | 亚洲 自拍 另类小说综合图区| 一本久道久久综合久久| 久久精品国产亚洲av一| 亚洲精品国产一二三区| 国产欧美一区二区精品仙草咪| 99riav精品国产| 亚洲av激情一区二区| 国产日产欧洲系列| 国产人在线成免费视频麻豆| 色妞一区二区三区免费视频| 亚洲gay片在线gv网站| 少妇对白露脸打电话系列| 国产精品国产午夜免费看福利| 中国黄色一区二区三区四区| 国内精品卡一卡二卡三| 337p日本欧洲亚洲大胆色噜噜 | 国产丝袜精品丝袜一区二区| 华人在线视频精品在线| 老妇女性较大毛片| 中文字幕亚洲人妻系列|