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

        ?

        混合編程在鋼坯號識別中的應(yīng)用?

        2015-08-07 12:11:35尹玉振朱昌平鐘余澤李旭斐
        微處理機 2015年5期
        關(guān)鍵詞:鋼坯自動識別調(diào)用

        尹玉振,朱昌平,鐘余澤,李旭斐

        (河海大學常州市傳感網(wǎng)與環(huán)境感知重點實驗室江蘇省輸配電裝備技術(shù)重點實驗室,常州213022)

        混合編程在鋼坯號識別中的應(yīng)用?

        尹玉振,朱昌平,鐘余澤,李旭斐

        (河海大學常州市傳感網(wǎng)與環(huán)境感知重點實驗室江蘇省輸配電裝備技術(shù)重點實驗室,常州213022)

        針對當前鋼廠鋼坯號自動識別要求,利用MATLAB算法開發(fā)效率高和VS2010編寫界面友好等特點,設(shè)計了一種鋼坯號在線自動識別系統(tǒng)。為了防止系統(tǒng)存儲、讀取圖片時發(fā)生沖突,減少MATLAB與VS2010的交互時間,提出一種基于MEX文件的混合編程方法,實現(xiàn)了MATLAB通過Windows消息響應(yīng)機制向VS2010發(fā)送消息和VS2010通過Socket通信向MATLAB發(fā)送消息等功能,大大提高了系統(tǒng)的工作效率,同時也提高了鋼坯號識別的正確率。

        鋼坯號;在線識別;混合編程;交互時間;Windows消息響應(yīng);Socket通信

        1 引 言

        隨著鋼鐵工業(yè)及其信息化技術(shù)的迅速發(fā)展,對鋼鐵產(chǎn)品從生產(chǎn)到成品投放市場全過程的在線檢測、產(chǎn)品質(zhì)量跟蹤以及永久性質(zhì)量追溯的要求越來越高。鋼鐵廠生產(chǎn)鋼坯的過程中,會在鋼坯的一側(cè)噴上特定的數(shù)字序列等符號以表示特定的批次,根據(jù)不同的批次規(guī)定不同的生產(chǎn)工序,但是生產(chǎn)過程中不可避免會發(fā)生裝料錯誤,使得其他批次的鋼坯混入生產(chǎn)線中,從而造成產(chǎn)品質(zhì)量瑕疵[1]。目前一般通過人工方式校準鋼坯號,但鋼鐵廠環(huán)境復雜,工作環(huán)境惡劣,工人在長時間工作后易疲勞,工作效率底,漏檢誤檢多,難以滿足現(xiàn)代化生產(chǎn)的需要,因此設(shè)計一種鋼坯號在線自動識別系統(tǒng)尤為重要。

        VS2010是Windows系統(tǒng)平臺上較為有效的應(yīng)用程序開發(fā)系統(tǒng),具有開發(fā)程序文件小、界面友好、執(zhí)行速度快、實時性好和容易維護等優(yōu)點,已成為操作系統(tǒng)設(shè)備驅(qū)動程序和系統(tǒng)級平臺類軟件的最佳開發(fā)工具。VS2010開發(fā)的圖像處理軟件,C/C++語言中只包含基本的數(shù)學函數(shù)庫,如果要實現(xiàn)圖像處理中的復雜數(shù)值運算和圖形圖像顯示時,需要編寫大量代碼[2],對一名非專業(yè)的程序員,這將耗費大量的時間和精力。而MATLAB目前已成為國際上公認的最優(yōu)秀的數(shù)值計算和仿真分析軟件,其具有符號計算、數(shù)字和文字統(tǒng)一處理、離線和在線計算等功能,具有較強的繪圖、計算和可視化功能,具有很強的開放性等特點。但它本質(zhì)上是一種解釋性語言,在進行大規(guī)模數(shù)值計算時,執(zhí)行效率較為低下,利用其進行應(yīng)用程序開發(fā)存在局限性。利用MATLAB算法開發(fā)效率高和VS2010編寫界面友好等特點,將MATLAB和VS2010結(jié)合起來,必將大大提高軟件開發(fā)的效率,縮短開發(fā)周期。為了防止MATLAB在讀取圖片時相機正好存儲圖片沖突的發(fā)生,同時提高系統(tǒng)的實時性,減少MATLAB與VS2010的交互時間,下面提出一種基于MEX文件的混合編程方法。

        2 MATLAB與VS2010混合編程

        所設(shè)計的鋼坯號在線自動識別系統(tǒng)框圖如圖1所示,MATLAB向VS2010發(fā)送命令暫停相機進而讀取圖片,讀取完成后再發(fā)送開啟相機命令,即完成一次圖片的讀取。同時VS2010通過TCP通信協(xié)議向服務(wù)器發(fā)送請求命令,將接收到的標準鋼坯號發(fā)送給MATLAB供其與識別鋼坯號進行比對,最后MATLAB將比對結(jié)果反饋給VS2010。

        圖1 鋼坯號在線自動識別系統(tǒng)框圖

        鋼坯號在線自動識別系統(tǒng)在工作過程中相機存儲圖片和MATLAB讀取圖片時會發(fā)生沖突,阻斷系統(tǒng)的正常運行。為了防止MATLAB在讀取圖片時相機正好存儲圖片沖突的發(fā)生,同時為了提高系統(tǒng)的實時性,使用MATLAB下的MEX文件實現(xiàn)MATLAB對C++代碼的調(diào)用,減少MATLAB與VS2010的交互時間。MEX文件是對標準的C++文件進行編譯所得,其可以使用C++中所有的函數(shù),使用MEX文件時,需要在C++文件中加入頭文件“mex.h”。一個MEX程序?qū)嶋H為一個DLL文件,它的輸出函數(shù)是mexFunction(),即為MATLAB與VS2010的接口函數(shù),其格式如表1所示。

        在MATLAB調(diào)用MEX文件過程中,mexFunction()函數(shù)會首先被執(zhí)行,在此函數(shù)中,可以對輸入?yún)?shù)進行處理,并調(diào)用所需的C++函數(shù),mexFunction()函數(shù)沒有返回值,執(zhí)行完成后使用輸出參數(shù)返回給MATLAB[3-4]。通過MEX文件混合編程,可以實現(xiàn)MATLAB對C++語言的調(diào)用,減少MATLAB與VS2010的交互時間。

        表1 mexFunction()函數(shù)定義格式

        3 MATLAB與VS2010交互實現(xiàn)

        MATLAB編譯器使用mex-setup指令可以將VS2010生成的.cpp文件編譯成MEX文件。在Windows中,MEX文件類型為mexw32,MATLAB就可以像調(diào)用M函數(shù)那樣調(diào)用MEX文件,每次修改mexFunction()所在的.cpp文件后,重新編譯生成解決方案前都需要在MATLAB工程下執(zhí)行clear命令一次。基于MEX文件的混合編程為MATLAB和VS2010提供了交互工具,可以使MATLAB對Windows消息編程有良好的支持,本文通過Windows消息響應(yīng)機制和Socket通信實現(xiàn)數(shù)據(jù)發(fā)送。

        3.1 MATLAB向VS2010發(fā)送消息

        因為Windows中的消息不只是硬件產(chǎn)生,也可由系統(tǒng)中的一個進程產(chǎn)生。當一個事件發(fā)生時,Windows先將輸入的消息放入系統(tǒng)消息隊列中,然后再將輸入的消息拷貝到相應(yīng)的應(yīng)用程序隊列中,應(yīng)用程序中的消息循環(huán)從它的消息隊列中檢索每一個消息并發(fā)送到相應(yīng)的窗口函數(shù)中。Windows消息中的WM_COPYDATA消息是所有消息中比較特別的一個,對于Windows消息,其原型如下:

        由于time和pt由系統(tǒng)給出,因此,對于普通的Windows消息來說,可以用來傳遞信息的僅有wParam和lParam 2個32位信息。MATLAB端使用MEX文件調(diào)用基本的WinAPI函數(shù),實現(xiàn)WM_COPYDATA消息的發(fā)送。接收方在數(shù)據(jù)復制完成前不返回,這樣發(fā)送方就不可能刪除和修改數(shù)據(jù),發(fā)送函數(shù)的原型如下:

        SendMessage(WM_COPYDATA,wParam,lParam)

        其中wParam設(shè)置為包含數(shù)據(jù)的窗口句柄,lParam指向一個COPYDATASTRUCT結(jié)構(gòu),其定義為:

        VS2010端在Windows窗口的默認消息處理函數(shù)中增加對WM_COPYDATA消息的響應(yīng)。Windows在處理WM_COPYDATA消息時,會將發(fā)送消息進程中l(wèi)pData所指向內(nèi)存中的數(shù)據(jù)復制到目標進程的內(nèi)存中,使得WM_COPYDATA消息可以在進程之間傳遞大量數(shù)據(jù)[4-5]。

        3.2 VS2010向MATLAB發(fā)送消息

        由于MATLAB所擁有的消息隊列是由MATLAB自行管理的,而且MATLAB并沒有提供可以管理、提取消息隊列中消息的函數(shù),所以從MATLAB的消息隊列中得到所發(fā)送的WM_COPYDATA消息是無法實現(xiàn)的。為了滿足工程需要同時減少系統(tǒng)的復雜度,我們使MATLAB調(diào)用C++代碼編寫的服務(wù)器端MEX文件,實現(xiàn)VS2010通過Socket通信向MATLAB發(fā)送消息。

        TCP網(wǎng)絡(luò)環(huán)境下的應(yīng)用程序通過網(wǎng)絡(luò)應(yīng)用編程界面(Socket,即套接字)實現(xiàn),一個Socket對應(yīng)于通信的一端,工作流程如圖2所示。

        圖2 Socket工作流程

        VS2010作為客戶端在創(chuàng)建工程時,利用APPWIZARD創(chuàng)建MFC EXE。選中Windows Socket項,這樣創(chuàng)建的項目就已經(jīng)支持Socket,并默認初始化。如果要在已有的項目中添加Socket支持,須在stdefx.h文件中包含頭文件WINSOCK.H(#include winsock.h),并在應(yīng)用程序類的成員函數(shù):“::InitInstance()”中添加如下初始化套接字代碼:

        VS2010客戶端與MATLAB服務(wù)器端都首先使用WSAStartup()函數(shù)來檢查處理機系統(tǒng)中是否裝有Windows Socket的實現(xiàn)庫,然后使用socket()函數(shù)來給網(wǎng)絡(luò)程序創(chuàng)建一個套接字。在VS2010客戶端創(chuàng)建好套接字之后,調(diào)用connect()函數(shù)提出一個與服務(wù)器建立連接的請求,在MATLAB服務(wù)器端套接字創(chuàng)建好后,通過bind()函數(shù)把一個套接字口與一個主機地址和端口聯(lián)系起來,然后調(diào)用listen()函數(shù)指示套接字進入監(jiān)聽連接請求的狀態(tài)。服務(wù)器進入監(jiān)聽狀態(tài)后,用accept()函數(shù)接收來自VS2010客戶端connect()函數(shù)發(fā)出的連接請求。最后VS2010客戶端和MATLAB服務(wù)器端都通過send()函數(shù)和recv()函數(shù)分別實現(xiàn)數(shù)據(jù)的發(fā)送和接收。一個套接字不再使用時一定要及時關(guān)閉,以釋放與其關(guān)聯(lián)的所有資源,即使用closesocket()函數(shù)[7-8]。

        4 鋼坯號在線識別應(yīng)用

        將所提出的基于MEX文件的混合編程方法應(yīng)用到所設(shè)計的鋼坯號在線自動識別系統(tǒng),系統(tǒng)現(xiàn)場安裝如圖3所示??紤]到鋼坯溫度高和采集視野等問題,主要設(shè)備和鋼坯保持了一定距離。系統(tǒng)主要由光源、攝像頭和工業(yè)控制計算機等部分組成。其中攝像頭選用的是Manta系列相機,鏡頭前加有透明防護罩和冷卻裝置,以防止灰塵污染等問題。

        圖3 系統(tǒng)現(xiàn)場安裝圖

        對系統(tǒng)正常工作時MATLAB向VS2010發(fā)送消息的交互時間進行測量,為了驗證基于MEX文件混合編程交互的實時性,針對TXT文件交互方法進行了比較,具體實驗測量數(shù)據(jù)如表2所示。通過測量發(fā)現(xiàn)采用混合編程方法MATLAB向VS2010發(fā)送相機暫停、讀取圖片和啟動相機的時間主要由讀取圖片的時間決定,發(fā)送消息的時間幾乎可以忽略不計,且較TXT文件交互方式相比實時性得到大大提高,同時也驗證了基于MEX文件混合編程方法的可行性。

        表2 MATLAB向VS2010發(fā)送消息

        5 結(jié)束語

        提出的基于MEX文件的混合編程方法,有效利用兩種不同語言的優(yōu)點進行混合編程。通過工程實際應(yīng)用,驗證了MATLAB通過Windows消息響應(yīng)機制向VS2010發(fā)送消息和VS2010通過Socket通信向MATLAB發(fā)送消息的可行性和有效性,使鋼坯號在線自動識別系統(tǒng)的工作效率得到大大提高。

        [1] 吳迪,焦東升,張筱,等.基于SVM的鋼坯號自動識別算法[J].開發(fā)應(yīng)用,2011,27(10):49-51.

        WU Di,JIAO Dongsheng,ZHANG Xiao.The steel billet number automatic recognition based on SVM algorithm[J].Microcomputer Application,2011,27(10):49-51.

        [2] 董建婷,王杰.VC++調(diào)用Matlab實現(xiàn)圖像處理的3種常用方法比較[J].現(xiàn)代電子技術(shù),2012,35(16):46-49.

        DONG Jianting,WANG Jie.Comparison of three image processing methods realized by VC++calling Matlab[J].Modern Electronics Technique,2012,35(16):46-49.

        [3] 來爽,慕德俊.基于VC和MATLAB的PID仿真軟件實現(xiàn)[J].計算機工程與應(yīng)用,2009,45(3):81-83.

        LAIShang,MU Dejun.PID simulation software based VC and MATLAB[J].Computer Engineering and Applications,2009,45(3):81-83.

        [4] 陶硯蘊,單鳴雷,徐萃華.MATLAB&VC++混合編程在HIFU聲場仿真中的應(yīng)用[J].計算機工程與應(yīng)用,2007,43(2):224-226.

        TAO Yanyun,SHAN Minglei,XU Cuihua.Application of combined programming with MATLAB and VC++in HIFU sound-field simulation[J].Computer Engineering and Applications,2007,43(2):224-226.

        [5] 陳少成.基于Windows消息的Matlab與C++實時通訊方法[J].工業(yè)控制計算機,2010,23(5):88-89.

        CHEN Shaocheng.Real-Time Communication Between Matlab and C++Based on Windows Message[J].Industrial Control Computer,2010,23(5):88-89.

        [6] Man QingMao.VC++and MATLAB-Based Interactive Filter Design[J].Applied Mechanics and Materials,2011,66:1972-1975.

        [7] 張允剛,劉常春,劉偉,等.基于Socket和多線程的遠程監(jiān)控系統(tǒng)[J].控制工程,2006,13(2):175-177.

        ZHANG Yungang,LIU Changchun,LIU Wei.Remote Monitoring and Control System Based on Socket and Multithread[J].Control Engineering of China,2006,13(2):175-177.

        [8] 鄭阿奇.Visual C++網(wǎng)絡(luò)編程教程(Visual Studio 2010平臺)[M].北京:電子工業(yè)出版社:75-80.

        ZHENG Aqi.Visual C++Network Programming Tutorial(Visual Studio 2010 platform)[M].Electronic Industry Press:75-80.

        Application of Hybrid Programm ing in Billet Number Recognition

        Yin Yuzhen,Zhu Changping,Zhong Yuze,Li Xufei
        (Changzhou Key Laboratory of Sensor Networks and Environmental Sensing,Jiangsu Key Laboratory of Power Transmission and Distribution Equipment Technology,Hohai University,Changzhou 213022,China)

        According to the automation identification requirements of steel billet number in steelmill currently,a system,with high efficiency MATLAB development algorithm and VS2010 friendly writing user features,is designed for steel billetnumbers automatic identification.In order to prevent the conflict caused during system memory and picture reading and reduce the interaction time between MATLAB and VS2010,a hybrid programmingmethod based on MEX file is proposed to realize the functions ofmessage sending such as MATLAB to VS2010 byWindowsmessage responsemechanism and VS2010 to MATLAB by Socket communications.The efficiency of the system and the accuracy of the steel billet number online identification are greatly improved.

        Steel billet number;On-line identification;Hybrid programming;Interaction time;Windowsmessage response;Socket communications

        10.3969/j.issn.1002-2279.2015.05.013

        TP391.7

        B

        1002-2279(2015)05-0050-04

        國家自然科學基金項目(11274092、61401146);江蘇省自然科學基金(BK20130238)

        尹玉振(1989-),男,山東聊城人,碩士研究生,主研方向:通信與信息系統(tǒng)。

        朱昌平(1956-),男,湖北荊門人,教授,博士,博導,江蘇省教學名師,主要從事通信電路與聲學技術(shù)的研究。

        2015-03-09

        猜你喜歡
        鋼坯自動識別調(diào)用
        鋼坯庫行車作業(yè)的輔助駕駛的技術(shù)研發(fā)與應(yīng)用
        重型機械(2020年2期)2020-07-24 08:16:14
        核電項目物項調(diào)用管理的應(yīng)用研究
        LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
        自動識別系統(tǒng)
        特別健康(2018年3期)2018-07-04 00:40:18
        基于系統(tǒng)調(diào)用的惡意軟件檢測技術(shù)研究
        金屬垃圾自動識別回收箱
        基于IEC61850的配網(wǎng)終端自動識別技術(shù)
        電測與儀表(2016年6期)2016-04-11 12:06:38
        蘭姆凹陷穩(wěn)頻工作點自動識別技術(shù)
        基于拉速的鋼坯重量SV M回歸預(yù)測
        機械與電子(2014年3期)2014-02-28 02:07:53
        利用RFC技術(shù)實現(xiàn)SAP系統(tǒng)接口通信
        色大全全免费网站久久| 玩弄放荡人妻少妇系列视频| 国产成人无码a区在线观看视频| 午夜男女爽爽爽在线视频| 国产精品九九九久久九九| 久久亚洲aⅴ精品网站婷婷| 免费人妻精品区一区二区三 | 日韩少妇人妻精品中文字幕| 国产人妖乱国产精品人妖| 亚洲精品久久久久久久久久吃药| 亚洲永久无码7777kkk| 亚洲女同精品一区二区久久| 亚洲色大成网站www在线观看 | 一区二区三区美女免费视频 | 日韩精品一区二区在线天天狠天| 青青草狠吊色在线视频| 国产日韩精品suv| 人人妻人人澡人人爽欧美一区九九| av在线亚洲欧洲日产一区二区| 4444亚洲人成无码网在线观看| 欧美日韩亚洲一区二区精品| 亚洲无码啊啊啊免费体验| 国产精品亚洲av国产| 毛片色片av色在线观看| 亚洲免费一区二区av| 日本免费观看视频一区二区| 成人免费无码大片a毛片| 久久精品国产亚洲av电影网| 日本又黄又爽gif动态图| 无码人妻一区二区三区免费手机| 粉嫩国产白浆在线播放| 国产优质女主播在线观看| 国产精品久久一区二区蜜桃| 久久久精品国产av麻豆樱花| 美女在线一区二区三区视频| 亚洲美女av一区二区在线| 亚洲av色图一区二区三区| 亚洲精品国产精品乱码在线观看| 无码人妻一区二区三区兔费| 在线观看视频播放| 老熟女高潮一区二区三区|