李偉榮,林尚勇
(1.深圳地鐵集團(tuán)有限公司,廣東 深圳 518060)
(2.深圳智信達(dá)數(shù)控系統(tǒng)有限公司,廣東深圳 518054)
現(xiàn)代信息技術(shù)特別是分布式計(jì)算技術(shù)、通訊技術(shù)和互聯(lián)網(wǎng)及其相關(guān)軟件技術(shù)的飛速發(fā)展,為在網(wǎng)絡(luò)環(huán)境下的制造提供了更加有效的手段。隨著計(jì)算機(jī)技術(shù)以及網(wǎng)絡(luò)技術(shù)的發(fā)展,尤其是Internet的普及,人們對工業(yè)系統(tǒng)的過程控制提出了越來越高的要求,控制應(yīng)當(dāng)不僅僅局限于現(xiàn)場控制,應(yīng)該與網(wǎng)絡(luò)Internet/Intranet技術(shù)相結(jié)合,通過它們對實(shí)際控制系統(tǒng)進(jìn)行遠(yuǎn)程監(jiān)控。本文設(shè)計(jì)并實(shí)現(xiàn)了通過網(wǎng)絡(luò)客戶端對快速成形設(shè)備進(jìn)行控制、監(jiān)測及數(shù)據(jù)采集的網(wǎng)絡(luò)控制系統(tǒng),為進(jìn)一步研究在網(wǎng)絡(luò)環(huán)境下對數(shù)控設(shè)備進(jìn)行遠(yuǎn)程調(diào)試、監(jiān)控和信息集成奠定基礎(chǔ),具有重大現(xiàn)實(shí)意義[1]。
單機(jī)運(yùn)動(dòng)控制系統(tǒng)主要是通過運(yùn)動(dòng)控制器控制電機(jī)來實(shí)現(xiàn)各種控制運(yùn)動(dòng)。運(yùn)動(dòng)控制器的核心是數(shù)字信號(hào)處理器(DSP),它可實(shí)現(xiàn)高性能的控制計(jì)算。運(yùn)動(dòng)控制器提供標(biāo)準(zhǔn)的ISA總線和PCI總線,可以方便地添加到PC機(jī)當(dāng)中。
在動(dòng)態(tài)鏈接庫(DLL)中提供訪問運(yùn)動(dòng)控制器的數(shù)控內(nèi)核API,該DLL由制造商隨運(yùn)動(dòng)控制器一起提供。用戶在構(gòu)建自己的應(yīng)用系統(tǒng)時(shí),通過調(diào)用DLL中的數(shù)控內(nèi)核API訪問運(yùn)動(dòng)控制器,從而將運(yùn)動(dòng)控制器的控制功能與用戶系統(tǒng)的數(shù)據(jù)處理、界面顯示、網(wǎng)絡(luò)訪問等功能集成在一起,靈活構(gòu)建符合特定應(yīng)用要求的控制系統(tǒng)。因此對于不同的加工系統(tǒng),可以使用運(yùn)動(dòng)控制器所提供的數(shù)控內(nèi)核API,開發(fā)出相應(yīng)的應(yīng)用軟件系統(tǒng)。本文所研究的對象為深圳智信達(dá)數(shù)控系統(tǒng)有限公司提供的、采用固高四軸運(yùn)動(dòng)控制卡為本地控制系統(tǒng)的快速成形設(shè)備。圖1為典型的單機(jī)運(yùn)動(dòng)控制系統(tǒng)架構(gòu)。
圖1 單機(jī)運(yùn)動(dòng)控制系統(tǒng)架構(gòu)
隨著Internet技術(shù)的不斷發(fā)展,互聯(lián)網(wǎng)應(yīng)用范圍日益廣泛,并且互聯(lián)網(wǎng)的安全性問題、數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性問題也得到了很好的解決,使得各種不同的信號(hào)都能保質(zhì)保量地在互聯(lián)網(wǎng)上傳送。
再者,現(xiàn)在數(shù)控設(shè)備的可控性、開放性越來越好,可以用不同的方式來控制設(shè)備的運(yùn)作。
本系統(tǒng)的網(wǎng)絡(luò)體系結(jié)構(gòu)如圖2所示。
系統(tǒng)采用B/S(瀏覽器/服務(wù)器)網(wǎng)絡(luò)模式。服務(wù)器采用Windows系統(tǒng)自帶的IIS服務(wù)器。遠(yuǎn)程控制客戶端由瀏覽器組成,它們負(fù)責(zé)與運(yùn)動(dòng)控制卡的數(shù)據(jù)接口,并將參數(shù)按一定的協(xié)議通過網(wǎng)絡(luò)傳遞給后端的服務(wù)器進(jìn)行處理。服務(wù)器端有專門處理控制參數(shù)的服務(wù)程序,服務(wù)程序根據(jù)控制參數(shù)調(diào)用動(dòng)態(tài)鏈接庫驅(qū)動(dòng)設(shè)備運(yùn)動(dòng)[2]。
圖2 遠(yuǎn)程控制系統(tǒng)架構(gòu)
同時(shí)服務(wù)器端根據(jù)服務(wù)程序從運(yùn)動(dòng)控制卡取得設(shè)備的各種狀態(tài)參數(shù)并反饋到客戶端,因此客戶端能很方便地采集數(shù)據(jù)和監(jiān)測設(shè)備。
用戶在瀏覽器中輸入Web服務(wù)器的地址,Web服務(wù)器將用Flash制作的控制臺(tái)用瀏覽器的形式顯示到客戶端,客戶端根據(jù)XML配置文件連接到執(zhí)行服務(wù)器。
用戶設(shè)定好所需參數(shù)后提交給應(yīng)用服務(wù)器,應(yīng)用服務(wù)器直接和客戶端瀏覽器建立連接,將運(yùn)動(dòng)控制器狀態(tài)參數(shù)傳送到瀏覽器中。當(dāng)用戶發(fā)送運(yùn)動(dòng)命令時(shí),執(zhí)行服務(wù)器將加工任務(wù)映射為運(yùn)動(dòng)控制器的數(shù)控內(nèi)核API進(jìn)行調(diào)用,驅(qū)動(dòng)運(yùn)動(dòng)控制器實(shí)現(xiàn)用戶所設(shè)定的運(yùn)動(dòng)。
圖3 基于B/S模式的遠(yuǎn)程控制系統(tǒng)流程
Internet環(huán)境下的“WWW”以“請求-響應(yīng)”的方式進(jìn)行工作??蛻舳藶g覽器只有不斷地向Web服務(wù)器發(fā)送請求,才能進(jìn)行數(shù)據(jù)更新,因而具有被動(dòng)性和滯后性,無法及時(shí)獲取遠(yuǎn)程設(shè)備的實(shí)時(shí)狀態(tài)信息,而且當(dāng)網(wǎng)頁中僅有部分?jǐn)?shù)據(jù)發(fā)生了變化,Web服務(wù)器也必須重新發(fā)送整張網(wǎng)頁,加重了Web服務(wù)器的負(fù)擔(dān),降低了數(shù)據(jù)傳輸?shù)男?。為此,必須引入?shù)據(jù)傳送技術(shù),以實(shí)現(xiàn)客戶端瀏覽器中網(wǎng)頁的自動(dòng)局部更新。
引入數(shù)據(jù)傳送技術(shù)后,當(dāng)遠(yuǎn)程設(shè)備的數(shù)據(jù)發(fā)生變化時(shí)或者按照一定的采樣周期,服務(wù)器可主動(dòng)向客戶端瀏覽器發(fā)送以XML格式封裝的僅包含遠(yuǎn)程設(shè)備狀態(tài)信息的數(shù)據(jù),客戶端瀏覽器根據(jù)所接收到的數(shù)據(jù)對網(wǎng)頁進(jìn)行局部更新。
用戶端程序主要是開發(fā)Web嵌入式數(shù)據(jù)接收程序,采用兼容性、跨平臺(tái)性好的Flash Application嵌入網(wǎng)頁中來實(shí)現(xiàn)數(shù)據(jù)的傳送和接收。
Flash中內(nèi)建的 XML Socket對象允許基于Flash Application的客戶端數(shù)據(jù)接收程序與遠(yuǎn)程設(shè)備上的數(shù)據(jù)推送程序之間建立基于Socket的連接,并通過該連接進(jìn)行雙向的無限制數(shù)據(jù)交換。Flash Application在客戶端瀏覽器中通過XMLSocket向遠(yuǎn)程設(shè)備上的數(shù)據(jù)推送程序發(fā)出連接請求,在與遠(yuǎn)程設(shè)備上的數(shù)據(jù)推送程序建立連接后,F(xiàn)lash Application就能夠自動(dòng)接收來自遠(yuǎn)程設(shè)備以XML格式封裝的數(shù)據(jù),并從中分析出所需信息來刷新瀏覽器中的網(wǎng)頁[3]。
當(dāng)用戶提交控制參數(shù)后,必須對用戶的參數(shù)進(jìn)行XML封裝,再傳到服務(wù)程序中解析。
圖4是軟件的登錄界面,登錄后可以實(shí)現(xiàn)對設(shè)備的簡單控制以及對各軸運(yùn)動(dòng)進(jìn)行監(jiān)測。
圖4 用戶端界面
服務(wù)器端的程序用C#編寫,主要實(shí)現(xiàn)以下功能:
a.建立線程監(jiān)聽和處理用戶端的請求。
b.接收和解析客戶端傳送過來的參數(shù),并根據(jù)參數(shù)調(diào)用動(dòng)態(tài)鏈接庫函數(shù)驅(qū)動(dòng)設(shè)備運(yùn)轉(zhuǎn)。
c.當(dāng)驅(qū)動(dòng)設(shè)備工作后,啟動(dòng)監(jiān)測線程,監(jiān)測機(jī)器各軸的狀態(tài),并把狀態(tài)、限位等狀態(tài)參數(shù)封裝傳送到客戶端。
用戶打開瀏覽器對機(jī)器進(jìn)行遠(yuǎn)程操作時(shí),服務(wù)程序創(chuàng)建一個(gè)緩沖區(qū)用來接收用戶封裝的數(shù)據(jù),然后取得封裝數(shù)據(jù)首節(jié)點(diǎn)的第一個(gè)子級,通過節(jié)點(diǎn)關(guān)系可以一級級地解析出子節(jié)點(diǎn)的內(nèi)容。所有的請求數(shù)據(jù)都采用這種解析的方法處理。
服務(wù)程序不斷地從設(shè)備中取得狀態(tài)參數(shù),并把參數(shù)封裝傳送到用戶瀏覽器端。由于采用了XML數(shù)據(jù)封裝與解析技術(shù),避免了客戶端網(wǎng)頁無休止地刷新。
在深圳地鐵公司運(yùn)營總部綜合監(jiān)控實(shí)驗(yàn)室,運(yùn)行遠(yuǎn)程控制系統(tǒng)的客戶端程序,通過Internet網(wǎng)絡(luò)成功實(shí)現(xiàn)對快速成形機(jī)各軸的移動(dòng)控制及坐標(biāo)位置反饋[4]。
圖5 遠(yuǎn)程控制與反饋
本文所研究的遠(yuǎn)程運(yùn)動(dòng)控制系統(tǒng)主要實(shí)現(xiàn)了以下功能:
a.遠(yuǎn)程設(shè)備控制。通過Internet/Intranet網(wǎng)絡(luò)對設(shè)備進(jìn)行參數(shù)設(shè)置和控制,如PID參數(shù)調(diào)節(jié),電機(jī)運(yùn)動(dòng)位置、速度、加速度參數(shù)設(shè)置,電機(jī)遠(yuǎn)程啟停、正反轉(zhuǎn)控制等等。
b.遠(yuǎn)程設(shè)備監(jiān)測。對運(yùn)動(dòng)控制器位置、限位等狀態(tài)進(jìn)行監(jiān)視并對監(jiān)測數(shù)據(jù)進(jìn)行XML封裝后傳送到客戶端瀏覽器中。
遠(yuǎn)程控制系統(tǒng)只是對快速成形設(shè)備實(shí)現(xiàn)簡單的運(yùn)動(dòng)和監(jiān)視,下一步的研究是實(shí)現(xiàn)在客戶端進(jìn)行CAD模型的數(shù)據(jù)切片分解,并將數(shù)據(jù)封裝傳輸?shù)椒?wù)器,實(shí)現(xiàn)復(fù)雜的運(yùn)動(dòng)控制。
[1] 李健,劉飛.基于網(wǎng)絡(luò)的先進(jìn)制造技術(shù)[J].中國機(jī)械工程,2001,12(2):154 -158.
[2] 段光前,陽道善,李水進(jìn),等.基于網(wǎng)絡(luò)的數(shù)控制造技術(shù)[J].機(jī)械與電子,2001(2):61-63.
[3] 陳樺,何明格.基于Web Service的制造系統(tǒng)信息集成研究[J].制造技術(shù)與機(jī)床,2008(6):133 -136.
[4] 李偉榮,伍曉宇,趙航,等.SLS快速成形機(jī)軟件系統(tǒng)的開發(fā)[J].中國制造業(yè)信息化,2008,37(19):41-42.