應(yīng)用于數(shù)控機(jī)床的網(wǎng)絡(luò)控制技術(shù)研究
掃描二維碼
隨時(shí)隨地手機(jī)看文章
軟件在運(yùn)行過(guò)程中圖像顯示和參數(shù)更新會(huì)存在一定的滯后性,這與網(wǎng)絡(luò)傳遞的速度以及數(shù)據(jù)量的大小有一定關(guān)系。 引言 隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,網(wǎng)絡(luò)控制技術(shù)越來(lái)越引起大家的重視。網(wǎng)絡(luò)控制系統(tǒng)是將計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)和自動(dòng)化控制技術(shù)結(jié)合起來(lái),從而實(shí)現(xiàn)網(wǎng)絡(luò)控制。 網(wǎng)絡(luò)控制系統(tǒng)集機(jī)床技術(shù)、控制技術(shù)、通信技術(shù)、檢測(cè)技術(shù)、圖像技術(shù)、計(jì)算機(jī)軟件技術(shù)、網(wǎng)絡(luò)技術(shù)等于一體,通過(guò)Internet/Intranet對(duì)機(jī)床進(jìn)行遠(yuǎn)程監(jiān)控,可以使機(jī)床具有更大的柔性和可控性。網(wǎng)絡(luò)控制技術(shù)作為一種新興技術(shù),已經(jīng)引起了許多科研單位的廣泛關(guān)注[1~3],多種類(lèi)型的網(wǎng)絡(luò)控制技術(shù)正在得到研究和開(kāi)發(fā),有的基于Web通訊平臺(tái)[4~6],有的利用Socket技術(shù),還有的基于CORBA中間件技術(shù)等等,這必將給制造業(yè)的發(fā)展帶來(lái)一場(chǎng)有意義的變革。 本文介紹筆者開(kāi)發(fā)的數(shù)控機(jī)床的網(wǎng)絡(luò)控制系統(tǒng)。該系統(tǒng)以Windows2000為開(kāi)發(fā)平臺(tái),用VisualC++工具開(kāi)發(fā),采用WindowsSockets,實(shí)現(xiàn)了在局域網(wǎng)內(nèi)對(duì)機(jī)床的實(shí)時(shí)監(jiān)控功能。 1、TCP/IP網(wǎng)絡(luò)通信的實(shí)現(xiàn) 1.1TCP/IP簡(jiǎn)介 所謂TCP/IP只是一個(gè)簡(jiǎn)稱(chēng),分別指網(wǎng)絡(luò)協(xié)議IP(InternetProtocol)及傳輸控制協(xié)議TCP(TransmissionControlProtocol),是國(guó)際互聯(lián)網(wǎng)技術(shù)中兩個(gè)非常重要的通訊協(xié)議,適用于任何一組互聯(lián)網(wǎng)絡(luò)上的通訊。 TCP/IP的結(jié)構(gòu)將網(wǎng)絡(luò)分成四個(gè)層次,分別是應(yīng)用層、傳輸層、網(wǎng)絡(luò)層和數(shù)據(jù)鏈路層。這將國(guó)際標(biāo)準(zhǔn)組織(ISO)制定的開(kāi)放系統(tǒng)互聯(lián)參考模式(OSI)的七層傳輸參考模式中的一些層面合并,二者之間映射關(guān)系如圖1所示。 圖1 TCP/IP與OSI結(jié)構(gòu)模型的映射關(guān)系 1.2WindowsSockets簡(jiǎn)介 基于TCP/IP的網(wǎng)絡(luò)通信可以通過(guò)WindowsSockets來(lái)實(shí)現(xiàn)。套節(jié)字(socket)是一種通用的網(wǎng)絡(luò)編程接口,它是對(duì)通信端點(diǎn)的一種抽象,提供了一種發(fā)送和接收數(shù)據(jù)的機(jī)制。 套節(jié)字目前有兩種:數(shù)據(jù)報(bào)套節(jié)字(DatagramSockets)和流式套節(jié)字(StreamSockets)。我們采用流式套節(jié)字,因?yàn)榱魇教坠?jié)字可以將數(shù)據(jù)按順序無(wú)重復(fù)地發(fā)送到目的地,它提供的是一種可靠的面向連接的數(shù)據(jù)傳輸方式。 WindowsSockets提供給引用程序開(kāi)發(fā)者一套簡(jiǎn)單的應(yīng)用程序接口,應(yīng)用程序調(diào)用其接口函數(shù)實(shí)現(xiàn)相互之間的通信。此外WindowsSockets又利用下層的網(wǎng)絡(luò)通訊協(xié)議(如TCP/IP)功能和操作系統(tǒng)實(shí)現(xiàn)實(shí)際的通訊工作。它們之間的關(guān)系如圖2所示。 圖2 應(yīng)用程序與Sockets的關(guān)系 1.3流式套節(jié)字的使用方法 流式套節(jié)字的使用方法是基于連接的協(xié)議,在傳輸、接收數(shù)據(jù)之前必須先建立連接,然后才能從數(shù)據(jù)流中讀出數(shù)據(jù)。 首先服務(wù)器要?jiǎng)?chuàng)建一個(gè)用于偵聽(tīng)的套節(jié)字,為該套節(jié)字分配地址之后,調(diào)用listen()函數(shù)使它處于偵聽(tīng)狀態(tài);客戶(hù)機(jī)在創(chuàng)建套節(jié)字完畢后,為套節(jié)字分配地址,然后調(diào)用connect()函數(shù),請(qǐng)求與服務(wù)器套節(jié)字連接;服務(wù)器套節(jié)字在收到客戶(hù)機(jī)的連接請(qǐng)求后,調(diào)用accept()函數(shù),該函數(shù)創(chuàng)建一個(gè)用于連接的套節(jié)字。應(yīng)用該套節(jié)字和客戶(hù)機(jī)上的連接套節(jié)字,就可以在服務(wù)器和客戶(hù)機(jī)之間進(jìn)行數(shù)據(jù)傳輸了。在結(jié)束傳輸之后,雙方調(diào)用closesocket()函數(shù)關(guān)閉套節(jié)字。其使用方法如圖3所示。 圖3 流式套節(jié)字通信流程
網(wǎng)絡(luò)控制系統(tǒng)軟件運(yùn)行在客戶(hù)機(jī)上,客戶(hù)機(jī)通過(guò)局域網(wǎng)和服務(wù)器連接。機(jī)床的數(shù)控系統(tǒng)在服務(wù)器中運(yùn)行,首先啟動(dòng)服務(wù)器的本機(jī)數(shù)控系統(tǒng),進(jìn)行初始設(shè)置后,進(jìn)入網(wǎng)絡(luò)控制狀態(tài),打開(kāi)偵聽(tīng)套節(jié)字,等待客戶(hù)機(jī)的連接請(qǐng)求,待收到客戶(hù)機(jī)的連接請(qǐng)求后,對(duì)聯(lián)機(jī)信息進(jìn)行驗(yàn)證,如果符合聯(lián)機(jī)條件,則和客戶(hù)機(jī)建立連接,雙方可以互相發(fā)送和接收信息或指令。服務(wù)器的數(shù)控系統(tǒng)在網(wǎng)絡(luò)控制狀態(tài)下可以利用CCD實(shí)時(shí)采集機(jī)床加工狀態(tài)圖像和參數(shù),將圖像以位圖格式保存并定時(shí)發(fā)送到客戶(hù)機(jī)顯示加工狀態(tài),將狀態(tài)參數(shù)實(shí)時(shí)發(fā)送到客戶(hù)機(jī)。在客戶(hù)機(jī)的遠(yuǎn)程控制系統(tǒng)軟件中可以編輯數(shù)控加工代碼,然后將數(shù)控代碼傳遞到服務(wù)器中,并下載到PMAC上等待控制指令。從客戶(hù)機(jī)向服務(wù)器發(fā)送機(jī)床加工控制指令,控制機(jī)床運(yùn)轉(zhuǎn),同時(shí)接收服務(wù)器發(fā)送的信息,動(dòng)態(tài)監(jiān)視機(jī)床加工情況。通過(guò)遠(yuǎn)程控制程序,客戶(hù)機(jī)還可在線(xiàn)修改機(jī)床加工參數(shù),并能調(diào)試機(jī)床。 2.2網(wǎng)絡(luò)控制系統(tǒng)硬件結(jié)構(gòu) 數(shù)控機(jī)床的網(wǎng)絡(luò)控制系統(tǒng)采用模塊化的硬件結(jié)構(gòu),數(shù)控系統(tǒng)采用“PC+NC”結(jié)構(gòu),PC機(jī)采用奔4主機(jī),NC部分采用開(kāi)放式多軸運(yùn)動(dòng)控制器PMAC2-PCI;網(wǎng)絡(luò)系統(tǒng)采用“服務(wù)器+客戶(hù)機(jī)”方式,數(shù)控系統(tǒng)運(yùn)行在服務(wù)器上,網(wǎng)絡(luò)控制軟件運(yùn)行在客戶(hù)機(jī)上,服務(wù)器和客戶(hù)機(jī)通過(guò)網(wǎng)卡和通信電纜連接在Intranet/Internet上,數(shù)控機(jī)床上安裝CCD攝像頭,用來(lái)監(jiān)視機(jī)床加工情況,并通過(guò)圖像采集卡,將機(jī)床的運(yùn)轉(zhuǎn)情況實(shí)時(shí)采集保存。該系統(tǒng)硬件結(jié)構(gòu)如圖4所示。 圖4 網(wǎng)絡(luò)控制系統(tǒng)硬件結(jié)構(gòu) 2.3網(wǎng)絡(luò)控制系統(tǒng)軟件設(shè)計(jì) 友好的人機(jī)界面對(duì)于任何控制系統(tǒng)是不可缺少的。本系統(tǒng)界面設(shè)計(jì)采用Windows編程中的分隔視技術(shù),將數(shù)控系統(tǒng)人機(jī)界面分成二個(gè)子窗口。左邊的窗口為圖像顯示窗口,實(shí)現(xiàn)機(jī)床加工過(guò)程的圖像監(jiān)視;右邊的窗口為網(wǎng)絡(luò)控制窗口,實(shí)現(xiàn)網(wǎng)絡(luò)聯(lián)機(jī)與斷開(kāi)、加工代碼編輯及發(fā)送、機(jī)床加工狀態(tài)參數(shù)顯示、機(jī)床在線(xiàn)網(wǎng)絡(luò)調(diào)試等功能。 軟件設(shè)計(jì)的關(guān)鍵是數(shù)據(jù)的網(wǎng)絡(luò)傳遞,為了保證數(shù)據(jù)及時(shí)傳遞,在軟件設(shè)計(jì)中采用了多線(xiàn)程技術(shù),專(zhuān)門(mén)建立一個(gè)線(xiàn)程對(duì)采集的機(jī)床數(shù)據(jù)進(jìn)行網(wǎng)絡(luò)傳遞。該系統(tǒng)的流程圖如圖5所示。數(shù)控代碼在客戶(hù)機(jī)上編輯好之后,可以一次性傳遞給服務(wù)器,服務(wù)器將數(shù)控代碼保存到內(nèi)存中,然后在編譯執(zhí)行數(shù)控代碼??刂浦噶畹膫鬟f可以隨時(shí)從客戶(hù)機(jī)傳遞到服務(wù)器,服務(wù)器接到指令后立即執(zhí)行。對(duì)于機(jī)床加工圖像和狀態(tài)參數(shù)的傳遞則要復(fù)雜一些。在服務(wù)器上,數(shù)控系統(tǒng)通過(guò)CCD攝像頭實(shí)時(shí)采集加工圖像,利用定時(shí)器在每一個(gè)周期內(nèi)將圖像保存為位圖文件,然后將位圖文件通過(guò)網(wǎng)絡(luò)傳遞到客戶(hù)機(jī)上,客戶(hù)機(jī)在接收完每一個(gè)位圖文件后,用定時(shí)器在每一個(gè)周期在圖像顯示窗口進(jìn)行刷新顯示,使加工圖像保持連續(xù)性。同時(shí)服務(wù)器上的數(shù)控系統(tǒng)實(shí)時(shí)采集機(jī)床狀態(tài)參數(shù),利用定時(shí)器每一個(gè)周期將以一定格式的數(shù)據(jù)傳遞到客戶(hù)機(jī),客戶(hù)機(jī)對(duì)數(shù)據(jù)進(jìn)行接收后分析,再用定時(shí)器在一個(gè)周期內(nèi)對(duì)狀態(tài)參數(shù)進(jìn)行更新顯示。為了避免位圖數(shù)據(jù)和參數(shù)數(shù)據(jù)在傳遞時(shí)的混亂現(xiàn)象,在服務(wù)器端采用中斷方法,在傳遞圖像數(shù)據(jù)時(shí)中斷參數(shù)數(shù)據(jù)的傳遞,等圖像數(shù)據(jù)傳遞完之后再傳遞參數(shù)數(shù)據(jù),這樣就很好的解決了在數(shù)據(jù)傳遞過(guò)程中的占用通道的矛盾問(wèn)題。 圖5 網(wǎng)絡(luò)控制系統(tǒng)軟件流程圖
2.1網(wǎng)絡(luò)控制系統(tǒng)原理
3、網(wǎng)絡(luò)控制系統(tǒng)演示
2、網(wǎng)絡(luò)控制系統(tǒng)的實(shí)現(xiàn)
圖6為開(kāi)發(fā)的網(wǎng)絡(luò)控制系統(tǒng)在局域網(wǎng)內(nèi)對(duì)機(jī)床加工進(jìn)行網(wǎng)絡(luò)監(jiān)控的演示情況。通過(guò)試驗(yàn)可以看出,控制命令和狀態(tài)數(shù)據(jù)的傳遞實(shí)時(shí)性較好,可以滿(mǎn)足實(shí)際控制的需要;加工狀態(tài)的圖像顯示刷新速度較慢,實(shí)時(shí)性稍差,圖像顯示具有跳躍性,需要進(jìn)一步提高圖像顯示的流暢性。
圖6 網(wǎng)絡(luò)控制系統(tǒng)遠(yuǎn)程監(jiān)控演示界面
4、結(jié)論
本文具體介紹了一套應(yīng)用于數(shù)控機(jī)床的網(wǎng)絡(luò)控制系統(tǒng),基于TCP/IP通訊協(xié)議,利用Socket(套節(jié)字),建立服務(wù)器/客戶(hù)機(jī)模式,裝有數(shù)控系統(tǒng)的主機(jī)作為服務(wù)器,網(wǎng)絡(luò)控制端作為客戶(hù)機(jī)。通過(guò)客戶(hù)機(jī)對(duì)數(shù)控機(jī)床進(jìn)行網(wǎng)絡(luò)控制和調(diào)試,可以使機(jī)床具有更大的柔性和可控性。該系統(tǒng)可以異地實(shí)時(shí)操作機(jī)床,基本達(dá)到動(dòng)態(tài)調(diào)試和監(jiān)控機(jī)床運(yùn)轉(zhuǎn)情況的目的,為機(jī)床控制和調(diào)試技術(shù)提供了高效的途徑,具有一定的實(shí)用性和價(jià)值。