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

        ?

        連接CNC系統(tǒng)和套料軟件的中間件設計與實現

        2019-05-27 08:23:24
        計算機測量與控制 2019年5期
        關鍵詞:系統(tǒng)

        (華中師范大學 物理科學與技術學院電子信息工程系,武漢 430079)

        0 引言

        在現代工業(yè)生產過程中,過程控制系統(tǒng)占據著重要的地位。近年來,隨著科學技術的發(fā)展,過程控制自動化取得了長足的進步。然而,隨著用戶需求的提高,以及生產規(guī)模的擴大,工控系統(tǒng)的功能在日趨強大的同時,結構也愈發(fā)復雜,目前已形成了多廠商軟硬件產品共存的異構環(huán)境。在市場日趨激烈的競爭驅使下,各自動化系統(tǒng)廠商迫切希望能夠實現應用軟件和工控設備的異構整合,達到提升現場作業(yè)效率和企業(yè)個性化成本優(yōu)化的效果[1]。

        作為一種高效、先進的工藝方法,數控切割在工業(yè)制造領域的應用愈加廣泛。在實際的數控加工中,CNC系統(tǒng)通過解釋并執(zhí)行G代碼文件來實現工業(yè)的自動化加工。然而,由于市場分工的精細化,工業(yè)設計和現場加工往往是獨立分工的,所以G代碼文件往往不是直接在CNC系統(tǒng)中生成的。G代碼的傳輸主要有手動輸入、信息載體傳輸和RS232串口傳輸[2]等方式。但是傳統(tǒng)的傳輸方法存在速度慢、誤差大、傳輸距離短等缺點[3]。隨著加工規(guī)模的擴大、插補精度的提高,傳統(tǒng)的傳輸方法已不能滿足當下數控加工的需求,用戶需要一種更快速、準確的方法傳輸G代碼[4]。

        為滿足市場需求,充分利用異構環(huán)境下CNC系統(tǒng)和套料軟件各自的優(yōu)勢,本文設計并實現了一款中間件系統(tǒng)。該中間件通過PVIServices接口實現上位機與貝加萊CNC系統(tǒng)的通信設計,采用FTP文件傳輸協議將套料軟件生成的G代碼文件傳輸到CNC系統(tǒng)工件程序存儲區(qū),然后通過Windows消息機制實現套料軟件和中間件的進程通信。

        1 中間件整體設計

        中間件的整體功能設計如圖1。首先,中間件作為FTP文件傳輸協議的客戶端,工控設備上的CNC系統(tǒng)作為FTP文件傳輸協議的服務端,在中間件和CNC系統(tǒng)之間建立文件傳輸通道,將套料軟件繪圖、編程生成的G代碼文件傳輸到CNC系統(tǒng),從而實現了數控切割程序的高速遠程雙向傳輸??紤]到數控加工中實際的生產需要,并且為了充分體現中間件設計的實用性、靈活性以及高效性等特點,對于CNC系統(tǒng)中已有的加工文件,中間件還可以提供下載、刪除等操作。

        圖1 中間件整體功能設計

        其次,中間件重寫了PVI客戶端接口,對CNC系統(tǒng)中的底層通信協議和數據類型進行封裝,為應用層軟件系統(tǒng)提供統(tǒng)一的調用接口,方便中間件系統(tǒng)的開發(fā)和維護升級。

        最后,中間件通過封裝的PVI通信協議與CNC系統(tǒng)建立通訊連接,實時獲取和顯示CNC系統(tǒng)的運行狀態(tài),并設計了一種便于普通工程師使用和操作的人機交互界面,從而實現對CNC系統(tǒng)狀態(tài)和運行參數的控制。此外,中間件通過WM _COPYDATA消息與套料軟件實現進程通信,實時傳送CNC系統(tǒng)的切割狀態(tài)到套料軟件,以保證實際加工路徑與規(guī)劃路徑的一致性。

        2 通訊模塊設計

        2.1 PVI通信模塊

        PVI(Process Visualization Interface)是為了接入B&R Automation Net提供給所有Windows平臺上軟件程序包的通用接口[5]。使用PVI,既可以統(tǒng)一、協調的訪問各種媒體和協議,也能在處理所有類型的數據的同時對設備進行控制。在開發(fā)應用程序時,不必花費時間和精力探索底層之間的通信,只需對PVI的對象結構進行簡單配置,就能訪問和操作控制器中的變量。

        針對PC端Windows應用程序,B&R提供了兩類PVI客戶端接口(PVICOM interface和PVIServices components)來實現應用程序與貝加萊CNC系統(tǒng)之間的PVI通信。PVICOM interface基于PviCom.dll,早期多應用于Visual C/C++平臺,且早期的runtime也僅支持PVICOM方式。隨著B&R工控系統(tǒng)的發(fā)展和runtime環(huán)境的升級,且由于PVICOM interface缺乏實時的升級維護,目前在PC端應用程序開發(fā)的過程中已經很少作為客戶端接口。

        PVIServices components客戶端接口基于BR.AN.PVIServices.dll,被所有基于Windows應用的Visual Studio.NET用于控制器的通信和診斷服務上。PVIServices是基于PVICOM接口實現,并在編程環(huán)境中通過面向對象的結構呈現,函數和變量數據都以PVIServices Namespace的形式,被整體分組在易于用戶使用的類中,實現起來更加簡單,并且PVIServices components升級維護良好,支持目前市場上幾乎所有B&R系列的工控系統(tǒng),其對象結構如圖2。因此,本中間件系統(tǒng)采用PVIServices components接口作為PVI Client-interface實現中間件與CNC系統(tǒng)的通訊。

        圖2 PVIServices對象結構

        2.2 G代碼文件的傳輸

        計算機網絡技術的發(fā)展加速了數控系統(tǒng)的網絡化,為了滿足當下數控加工的需求,通過網絡快速高效傳輸數控加工程序,是網絡化加工制造的必然趨勢[6]。FTP是一個8位的客戶端-服務器協議,可以操作任何類型的文件,是計算機網絡中使用最廣泛的文件傳輸協議,它屏蔽了計算機系統(tǒng)的諸多細節(jié),非常適合在異構系統(tǒng)中實現文件的傳輸[7]。因此,本文設計的中間件可以充分利用網絡協議的開放性和通用性,使用基于FTP的文件傳輸協議,將套料軟件生成的G代碼文件傳輸到工控設備的CNC系統(tǒng),實現快速高效的網絡傳輸。

        FTP是一個客戶機/服務器(C/S)系統(tǒng),不同于其他基于C/S架構的系統(tǒng),FTP在客戶端和服務器之間建立兩條TCP連接來完成文件傳輸[8],一條連接負責傳輸控制信息(命令和響應),另外一條負責數據的傳送,其結構模型如圖3。

        圖3 FTP客戶端/服務端模型

        在本文設計的中間件中集成FTP-Client模塊,通過與控制器上的FTP Server建立連接,就能將套料軟件生成的本地G代碼文件傳輸到CNC系統(tǒng)的加工程序存儲區(qū),有效解決了大容量加工程序的傳輸問題,既能滿足當今數控系統(tǒng)的加工生產需求,又提高了數控加工程序傳輸的速度、可靠性。此外,中間件系統(tǒng)設計的客戶端界面可以進行文件的下載、刪除和更新等操作,非常便于工業(yè)現場的操作。

        2.3 中間件與套料軟件的進程通信

        進程通信是指在進程間進行數據的傳輸(交換信息)。根據交換信息量的多少和效率的高低,進程通信可以分為低級通信和高級通信。低級通信只能傳遞狀態(tài)和整數值(控制信息),傳送信息量小,效率低,每次通信傳遞的信息量固定。高級通信提高了信號通信的效率,可以傳遞大量數據,減輕程序編制的復雜度。其中高級進程通信主要分為三種方式:共享內存模式、消息傳遞模式、共享文件模式。消息傳遞模式通過操作系統(tǒng)的相應系統(tǒng)調用進行消息傳遞通訊,分為點到點發(fā)送的直接通訊和以信箱為媒介進行傳遞的間接通訊。消息傳遞的間接通信方式易于建立雙向通訊鏈,通訊安全且實現簡單,因此,中間件與套料軟件之間的進程通信可以通過基于消息傳遞的方式實現。

        本文設計的中間件基于Windows系統(tǒng)平臺,Windows系統(tǒng)是一個由消息驅動的操作系統(tǒng)[9],而Windows消息機制是消息傳遞的間接通信方式中的一種,相比于其他同機進程通信方式,Windows消息機制實現較為簡單、有效[10]。

        WM _COPYDATA是一種功能強大又非常簡單的Windows消息[11],且中間件與套料軟件的通訊滿足使用WM_COPYDATA消息的兩個條件,即知曉接收消息進程的句柄,接收消息進程重載消息映射后可以給出反饋。為了實時回傳CNC系統(tǒng)自動解析并執(zhí)行G代碼時的運行參數,保證CNC系統(tǒng)執(zhí)行路徑與套料軟件規(guī)劃路徑的一致性,本文通過WM_COPYDATA消息機制實現套料軟件與中間件不同進程之間的數據交互,中間件作為消息發(fā)送方,將要發(fā)送的信息打包,并尋找作為接收方的套料軟件的句柄,找到接受窗體的句柄后將消息發(fā)送。當接收方接收到消息時,先判斷接收到的消息是否為WM_COPYDATA消息,確認消息正確后才進行接收,程序設計框圖如圖4。

        圖4 消息的發(fā)送與接收

        3 中間件系統(tǒng)的實現

        3.1 PVIServices接口實現

        中間件重寫的PVIServices接口可以識別的通信對象有:服務對象(Service);CPU對象(CPU);任務對象(Task);變量對象(Variable)和模型對象(Module),每個通信對象都由特性、事件與方法三種屬性構成,如圖5。

        圖5 PVIServices對象屬性

        其中,Service對象負責創(chuàng)建連向PVI Manager的連接,是PVI客戶端中其他對象(CPU,任務,變量等)操作的基礎,當一個新的服務對象創(chuàng)建成功后,即表示一個中間件與控制器系統(tǒng)的遠程連接已經被建立。CPU對象則負責建立PVI Client與控制器的連接。當Service對象和CPU對象創(chuàng)建連接成功后,則代表過程變量的映像已經建立好,即可對控制器CNC系統(tǒng)上的變量對象進行讀寫操作。其函數原型如下,其中cpu_name設定為ARsim或Remote_PLC,相應的ip_adress為默認IP和實際PLC的IP地址。

        private void service_Connected(object sender, PviEventArgs e)

        {

        myCpu = new Cpu(service, cpu_name);

        myCpu.Connected += new PviEventHandler(myCpu _Connected);

        myCpu.Connection.ANSLTcp.DestinationIpAddress = ip_adress;

        }

        Task對象與控制器的任務相對應,管理任務中的全局和本地變量。Module 對象定義一個在控制器上的BR模塊的屬性,可以對模塊進行上傳、下載和刪除等操作。Variable 對象則表現為一個控制器上的變量,可用變量類型有內在變量、全局變量、本地變量,輸入不同的高層次對象作為父類就可以創(chuàng)建不同類型的變量。將Service對象和CPU對象作為父類輸入,就分別創(chuàng)建了一個內在變量和一個全局變量。

        3.2 WM_COPYDATA實現

        中間件使用FindWindow函數獲得套料軟件的句柄,然后調用SendMessage函數向套料軟件發(fā)送WM_COPYDATA消息,其原型如下:

        SendMessage(hwnd, WM_COPYDATA, wParam,IParam);

        hwnd表示接收窗體句柄,發(fā)送消息類型為WM_COPYDATA,wParam表示發(fā)送窗口的句柄,IParam為指向一個COPYDATASTRUCT結構的指針。COPYDATASTRUCT結構聲明如下:

        typedef struct tagCOPYDATASTRUCT{

        DWORD dwData;

        DWORD cbData;

        PVOID lpData;

        } COPYDATASTRUCT,*PCOPYDATASTRUCT;

        dwData指定傳遞給接收方的數據,cbData是要傳遞的數據塊大小,lpData是指向內存塊的指針。中間件發(fā)送WM_COPYDATA消息時,我們對dwData和lpData所傳送的數據進行了自定義設置,并且使用小端模型存儲數據。

        當dwData=1時,設定當前發(fā)送的消息數據為單個變量,IpData所指向的字節(jié)流定義如下:

        變量N 變量數據長度N 變量數據1 變量數據2 變量數據3…變量數據N。

        當dwData=2時,表示消息發(fā)送的是多變量數據,IpData指向的字節(jié)流如下:

        變量1 變量1數據長度N 變量1數據1 變量1數據2 …變量1數據N;

        變量2 變量2數據長度N 變量2數據1 變量2數據2 …變量2數據N;

        變量N 變量N數據長度N 變量N數據1 變量N數據2 …變量N數據N。

        中間件發(fā)出WM_COPYDATA消息后,套料軟件作為接收方在消息映射表中添加ON_WM_COPYDATA()的映射,并定義接收消息的響應函數:

        OnCopyData(CWnd* pWnd, COPYDATASTRUCT* pCopyDataStruct);

        套料軟件通過中間件句柄pWnd向中間件發(fā)送反饋數據,pCopyDataStruct完成對數據塊的接收。

        3.3 FTP客戶端實現

        中間件所實現的FTP客戶端具有易于操作與功能完善的圖形界面,包括用戶登陸與退出、文件及目錄的下載與上傳,方便工程師對CNC系統(tǒng)中的G代碼文件進行下載、刪除和更新等操作。

        FTP接口程序部分函數如下:

        1)連接FTP服務。

        bool ConnectFtpServer(string strIp, UINT nPort, string strUserName, string strPassword, bool bPassive = TRUE, bool bUTF8Mode = TRUE);

        其中:strIp為FTP地址;nPort為FTP服務端口,默認端口為21;strUserName和strPassword為FTP用戶名的密碼;bPassive表示是否為被動模式;bUTF8Mode表示編碼方式是否為UTF8編碼。

        2)上傳FTP文件。

        bool UploadFtpFile(string strRemotePath, string strRemoteFile, string strLocalFilePathName);

        其中: strRemotePath為FTP相對目錄;strRemoteFile為FTP文件名稱;strLocalFilePathName則表示本地文件名稱。

        3)刪除FTP文件。

        bool DeleteFTPFile(string strRemotePath, string strRemoteFile);

        其中:strRemotePath為要刪除的FTP文件相對目錄;strRemoteFile為要刪除的FTP文件名稱。

        3.4 數據交互與界面顯示

        中間件與CNC系統(tǒng)之間通過PVI通信協議、FTP協議連通之后,即可進行CNC系統(tǒng)狀態(tài)等數據的傳輸以及各狀態(tài)參數的顯示與控制。

        為了保證中間件系統(tǒng)的可讀性,便于中間件系統(tǒng)的升級維護,中間件在進行界面變量信息的定義時,遵照CNC系統(tǒng)的變量命名規(guī)則,與CNC系統(tǒng)上的變量名稱、類型保持一致。但是由于CNC系統(tǒng)變量結構復雜,數量龐大,為了保證變量映射關系的一一對應和升級維護的便利性,中間件設計實現中通過交互變量的映射表構建變量配置文件,通過配置文件的索引來關聯變量參數,這樣既可以保證變量關聯的準確性,還可以便于交互變量的增加或減少,設計靈活高效。

        中間件可以接收CNC系統(tǒng)所傳輸的機床運行狀態(tài)及配置參數,并采用了一種簡潔、易于理解和使用的圖形界面來呈現CNC系統(tǒng)的機床狀態(tài)、工藝參數等內容。中間件的操作界面在CNC系統(tǒng)界面顯示的基礎上,充分考慮工程師的使用權限和操作習慣,針對性的顯示了切割控制、激光調整等各類控件,對相應權限范圍下不可操作的參數進行鎖定,可以降低現場因誤操作導致的損失。

        3.5 系統(tǒng)實現

        為了保證中間件系統(tǒng)的兼容性和可擴展性,本文設計的中間件以Microsoft Visual Studio 2013為開發(fā)環(huán)境,采用C++語言基于功能強大的MFC類庫進行開發(fā)。中間件系統(tǒng)功能模塊如圖6,主要由通訊連接模塊、數據交互模塊和測試模塊三個部分組成。

        圖6 中間件功能模塊

        通訊連接模塊包含了中間件與CNC系統(tǒng)的PVI連接和FTP連接設置。圖7是中間件連接界面,用戶可以根據需求配置中間件與CNC系統(tǒng)的通訊連接。PLC類型選擇ARSim時,默認IP地址127.0.0.1,即實現連接虛擬的PLC進行仿真,便于在升級維護的開發(fā)過程中進行調試;在實際的應用現場中,PLC類型統(tǒng)一設定為Remote_PLC,需要輸入實際PLC的IP地址。在FTP服務設置中,IP地址為實際連接的PLC地址,端口默認21,用戶名和密碼分別對應CNC系統(tǒng)設置的FTP賬號密碼,相對路徑為G代碼在CNC系統(tǒng)的存儲路徑,默認為/DATA/Programs,實際操作可以根據具體需求進行設定。

        圖7 CNC連接設置

        中間件的數據交互模塊實現了CNC系統(tǒng)的機床狀態(tài)、標定調整、工藝參數、機床維護等16個界面以及G代碼的傳輸和同步頁面。中間件與CNC系統(tǒng)連接成功后,就可以實現CNC系統(tǒng)運行狀況的實時顯示和控制。本文設計的中間件主要采用的是B&R X20系列控制器進行實驗測試,圖8是中間件與CNC系統(tǒng)連接成功后的激光調整界面,界面上顯示的是CNC系統(tǒng)當前的運行參數,在界面中對相應狀態(tài)參數進行修改,點擊應用保存,就可以控制CNC系統(tǒng)的運行狀況,操作簡單方便。

        圖8 激光調整

        為了方便中間件的升級維護和功能擴展,系統(tǒng)設計了測試模塊,包括通訊連接測試、G代碼同步測試和PVI接口測試。圖9是中間件的PVI接口測試界面,可以對控制器上的全局變量和局部變量進行讀寫操作,測試中間件與CNC系統(tǒng)的連接情況等。

        4 結束語

        本文針對目前工業(yè)自動化用戶的個性化需求,通過整合套料軟件和CNC系統(tǒng)的部分功能,研究并開發(fā)了一種便于普通工程師理解和操作的中間件系統(tǒng)。通過將標準套料軟件生成的G代碼傳輸到并解析到CNC系統(tǒng),實現了CNC系統(tǒng)數據的實時顯示與跟蹤,保證了CNC系統(tǒng)執(zhí)行路徑與套料軟件規(guī)劃路徑的一致性。系統(tǒng)實際應用表明,該系統(tǒng)人機交互良好,且實現了大容量數控程序的網絡化高速傳輸,能有效解決用戶的個性化需求,節(jié)約了企業(yè)生產成本,具有一定的推廣價值。

        圖9 PVI接口調試

        猜你喜歡
        系統(tǒng)
        Smartflower POP 一體式光伏系統(tǒng)
        WJ-700無人機系統(tǒng)
        ZC系列無人機遙感系統(tǒng)
        北京測繪(2020年12期)2020-12-29 01:33:58
        基于PowerPC+FPGA顯示系統(tǒng)
        基于UG的發(fā)射箱自動化虛擬裝配系統(tǒng)開發(fā)
        半沸制皂系統(tǒng)(下)
        FAO系統(tǒng)特有功能分析及互聯互通探討
        連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
        一德系統(tǒng) 德行天下
        PLC在多段調速系統(tǒng)中的應用
        久久久婷婷综合亚洲av| 久久精品人人爽人人爽| 久久中文字幕乱码免费| 中文字幕精品亚洲无线码二区| 视频区一区二在线观看| 久久99国产精品久久| 日本不卡在线视频二区三区| 日韩偷拍一区二区三区视频 | 护士的小嫩嫩好紧好爽| 人妻少妇精品视频一区二区三区 | 欧美日韩综合在线视频免费看| 亚洲av综合av国一区二区三区| 国产爆乳美女娇喘呻吟| 午夜丰满少妇性开放视频| 欧美精品久久久久久三级| 日韩av一区二区蜜桃| 欧美激情一区二区三区 | 日本高清成人一区二区三区| 一区二区三区内射美女毛片 | 久久九九久精品国产| 久久露脸国产精品WWW| 成人国产高清av一区二区三区 | 美女把尿囗扒开让男人添| 国产精品亚洲一区二区无码国产| 精品久久日产国产一区| 蜜桃视频国产一区二区| 成人综合婷婷国产精品久久蜜臀| 人妻丰满av无码中文字幕| 国产丝袜美腿嫩模视频诱惑| 国产精品白浆在线观看免费| 妇女性内射冈站hdwwwooo| 久久精品国产亚洲精品色婷婷| 一本之道久久一区二区三区| 人妻丰满熟妇av无码区hd| 国产精品午夜波多野结衣性色| 在线看亚洲一区二区三区| 国产精品成人免费视频一区 | 国产真实乱XXXⅩ视频| 草逼视频免费观看网站| 四虎国产精品永久在线国在线| 无码之国产精品网址蜜芽|