文/楊家榮,徐志明,王浩林,程松 上海電氣集團(tuán)股份有限公司中央研究院 (200070)
以數(shù)控機床設(shè)備為主體的生產(chǎn)車間及生產(chǎn)廠的大量出現(xiàn),為我國機械加工技術(shù)的提高提供了良好的基礎(chǔ)條件。但由于數(shù)控機床設(shè)備是集機、電、液、氣、計算機技術(shù)于一體的高技術(shù)含量的設(shè)備,其運行過程中不可避免地存在各種故障,一般多是由操作工發(fā)現(xiàn)故障后上報,再由維修人員到現(xiàn)場檢查機床并排除故障。這種方式對擁有多個車間,大量數(shù)控機床的大型企業(yè)來說,管理效率非常低下。雖然隨著通訊技術(shù)的發(fā)展,部分企業(yè)開始嘗試?yán)眠h(yuǎn)程診斷技術(shù)來統(tǒng)一集中管理所有的數(shù)控機床,但這些診斷裝置都需要添加額外的數(shù)據(jù)采集裝置,如安裝傳感器,監(jiān)測儀等,增加費用的同時,還無法與現(xiàn)有數(shù)控系統(tǒng)實現(xiàn)整合。且一般企業(yè)都有來自不同廠商品牌的機床,所使用的數(shù)控系統(tǒng)也各不相同,這也對診斷裝置的開發(fā)帶來了一定的難度。
針對這一現(xiàn)狀,研究探討了一種基于DDE技術(shù)的數(shù)控機床遠(yuǎn)程診斷方法,可在局域網(wǎng)內(nèi)實現(xiàn)診斷計算機與西門子840D數(shù)控系統(tǒng)的通訊,能遠(yuǎn)程實時讀取來自數(shù)控系統(tǒng)的坐標(biāo)位置信息、參數(shù)、PLC狀態(tài)變量,報警內(nèi)容等信息,且無需增加額外的數(shù)據(jù)采集裝置,節(jié)約了成本,將維護(hù)人員從大量繁瑣的工作中解放出來,增強管理的靈活性和可控性,減少了因故障帶來的各種不良影響。
西門子840D是20世紀(jì)90年代推出的高性能數(shù)控系統(tǒng)。系統(tǒng)基于PC平臺,擁有各類豐富的接口,以及比一般數(shù)控系統(tǒng)更好的人機交互能力和上層應(yīng)用系統(tǒng)集成能力,便于用戶對系統(tǒng)功能進(jìn)行定制和參數(shù)調(diào)節(jié),其硬件框架如圖1所示。
圖1 840D硬件結(jié)構(gòu)
目前為止,對采用西門子840D數(shù)控系統(tǒng)的機床所進(jìn)行的遠(yuǎn)程診斷,主要是采用安裝SINCOM軟件或者ReachOut等遠(yuǎn)程診斷軟件,再通過以太網(wǎng)進(jìn)行通訊。這些軟件都需要額外向西門子購買,且安裝不便,安裝完成后需要進(jìn)行大量配置,如SINCOM軟件還需要修改PLC,編制相應(yīng)的PLC程序來配合實現(xiàn)診斷功能,功能也有限,最重要的是,不能按照用戶的需求進(jìn)行診斷,不夠靈活。
實際上,西門子數(shù)控系統(tǒng)控制器中,包含了一個叫做動態(tài)數(shù)據(jù)交換(DDE)的數(shù)據(jù)通訊接口服務(wù)器程序(NCDDE),通過與用戶編寫的DDE用戶端通訊,可使用戶進(jìn)行存取NCK中的各個變量和數(shù)據(jù),如圖2所示。借助如今發(fā)展成熟的以太網(wǎng)網(wǎng)絡(luò),更可實現(xiàn)機床的遠(yuǎn)程管理。這種通訊方式具有統(tǒng)一的接口規(guī)范,可將車間內(nèi)其他具有相同DDE數(shù)據(jù)接口的設(shè)備全部納入診斷管理的范疇,如上海電氣中央研究院研究開發(fā)的SE300系列數(shù)控系統(tǒng)等。
圖2 西門子840D數(shù)據(jù)通訊方式及其接口
DDE的全稱是動態(tài)數(shù)據(jù)交換(Dynamic data exchange)。自從微軟推出Windows操作系統(tǒng)以來,DDE就已經(jīng)成為Windows的一部分,并且很多Windows應(yīng)用程序都使用了DDE技術(shù)來實現(xiàn)進(jìn)程之間的數(shù)據(jù)交換。DDE是建立在Windows內(nèi)部消息系統(tǒng)、全局和共享全局內(nèi)存基礎(chǔ)上的一種協(xié)議,用來協(xié)調(diào)Windows應(yīng)用程序之間的數(shù)據(jù)交換和命令調(diào)用,它已經(jīng)成為應(yīng)用程序之間通信的一種常用方法。DDE過程可以比喻為兩個人的對話,一方向另一方提出問題,然后等待回答,提問的一方稱為“顧客”(Client,本文中為用戶編制的監(jiān)控應(yīng)用程序),回答一方稱為“服務(wù)器”(Server,本文中為西門子840D數(shù)控系統(tǒng))。一個應(yīng)用程序可以同時是“顧客”和“服務(wù)器”:當(dāng)它向其應(yīng)用程序中請求數(shù)據(jù)時,它充當(dāng)“顧客”,若其他程序需要它提供數(shù)據(jù),它是“服務(wù)器”。如圖3所示。
圖3 DDE鏈接示意
DDE對話的內(nèi)容通過三級樹型命名:應(yīng)用程序名(Application)、主題(Topic)和數(shù)據(jù)項(Item)來標(biāo)識DDE所要傳送的數(shù)據(jù)單元。
(1) 應(yīng)用程序名(Application):DDE對話的雙方名稱,如在本機上運行自己編寫的應(yīng)用程序,則一般是該應(yīng)用程序的名稱。西門子840D提供的應(yīng)用程序名稱為“NCDDE”。
(2) 主題(Topic):主題類似于目錄,是建立會話連接的參數(shù),本例中為"NUC|840D"。報警的獲取則為“MBDDE|ALARME”。
(3) 數(shù)據(jù)項(Item):這是具體通信時要傳送的數(shù)據(jù)內(nèi)容,比如一個數(shù)據(jù)或一個字符串,可以是獲取坐標(biāo)位置的命令,獲取PLC狀態(tài)的命令等,按照實際需要獲取的內(nèi)容編寫。
建立DDE會話后,用戶程序和服務(wù)器程序可以通過三種鏈接方式進(jìn)行數(shù)據(jù)交換,分別是:
1、冷鏈接:用戶程序申請數(shù)據(jù),服務(wù)器程序立即給用戶程序發(fā)送數(shù)據(jù);
2、溫鏈接:服務(wù)器程序通知用戶程序數(shù)據(jù)數(shù)據(jù)項發(fā)生了改變,但是并沒有將已發(fā)生的值發(fā)送給用戶程序。
3、熱鏈接:當(dāng)數(shù)據(jù)項發(fā)生變化時,服務(wù)器程序立即把變化后的值發(fā)送給用戶程序。
基層黨群工作要從基層黨支部建設(shè)、思想政治工作和創(chuàng)新工作機制等方面入手。通過加強思想建設(shè)、組織建設(shè)、作風(fēng)建設(shè)、廉政建設(shè)、班子建設(shè)等方面的建設(shè)統(tǒng)一思想認(rèn)識,從而發(fā)揮出黨支部的戰(zhàn)斗堡壘作用。
本文討論的數(shù)據(jù)交換方法為上述第一種方法。
筆者利用VISUAL BASIC6.0開發(fā)了用戶端測試應(yīng)用程序,由該應(yīng)用程序?qū)⒂脩糨斎氲臄?shù)據(jù)或者需要讀取的內(nèi)容通過DDE方式傳送給作為服務(wù)器的西門子 840D數(shù)控系統(tǒng),再由數(shù)控系統(tǒng)將返回的數(shù)據(jù)通過DDE發(fā)送給用戶端診斷計算機實現(xiàn)診斷,利用該診斷技術(shù)可實現(xiàn)如下幾種功能:
(1) 數(shù)控系統(tǒng)NCU中各種變量的訪問,如刀具信息、刀偏、零偏、軸坐標(biāo)位置值等。
(2) R參數(shù)的訪問。
(3) PLC中各中變量的訪問,如I/O接口,標(biāo)志區(qū)M、數(shù)據(jù)塊DB等,通過訪問這些變量,控制人員可遠(yuǎn)程判斷機床故障點,有利于故障的快速排除和集中管理。
(4) 利用VB設(shè)計應(yīng)用界面,如顯示數(shù)據(jù)、圖形、輸入數(shù)據(jù),文件管理等。
(5) 當(dāng)機床出現(xiàn)報警時,可遠(yuǎn)程實時顯示報警內(nèi)容,便于維修人員迅速掌握報警內(nèi)容,實現(xiàn)集中控制和管理。
在VISUAL BASIC 提供的標(biāo)準(zhǔn)控件中,TextBox、Lable、PictureBox及Form均具有動態(tài)數(shù)據(jù)交換的功能。因此,可利用這些控件實現(xiàn)數(shù)據(jù)的發(fā)送和接收,應(yīng)用程序的實現(xiàn)方式如下:
(1) 新建一個窗體;
(2) 向窗體中加入相應(yīng)的控件并命名;
(3) 設(shè)置相應(yīng)控件的屬性,如果在運行時建立聯(lián)系,則通過語句設(shè)置屬性的值。
(4) 編寫代碼并測試;
(5) 運行所編寫的程序,編譯生成EXE可執(zhí)行文件。
以TextBox為例,在窗體上創(chuàng)建一個TextBox控件,命名為TxtReceive, 另外創(chuàng)建二個Command對象,分別命名為CmdConnect及CmdEnd。分別設(shè)置其屬性,并編寫代碼如下:
(1) 建立DDE連接
(2) 退出連接
(3) 數(shù)據(jù)更新通知,每當(dāng)數(shù)據(jù)變化后,自動顯示新數(shù)據(jù)
以上程序編寫完成后,將其編譯成EXE可執(zhí)行文件,再拷貝到西門子840D數(shù)控系統(tǒng)XP系統(tǒng)硬盤上運行,當(dāng)HMI啟動后,即可獲得當(dāng)前數(shù)控系統(tǒng)的第一個通道的第一根軸的位置信息。TxtReceive.LinkItem 語句中的內(nèi)容即為所要獲取或發(fā)送的數(shù)據(jù)內(nèi)容,將其替換為不同的內(nèi)容,即可獲得不同的信息,圖4所示的診斷測試程序能讀取某840D系統(tǒng)的X/Y/Z/W4根軸的軸位置信息、PLC I/O狀態(tài)數(shù)據(jù)、DB塊數(shù)據(jù)、標(biāo)志區(qū)M值、R參數(shù)值、報警文本等。具體數(shù)據(jù)項內(nèi)容的獲取辦法,可參考相關(guān)資料。
圖4 機床遠(yuǎn)程診斷測試軟件界面
上述程序調(diào)試成功后,還只能在本地計算機即西門子840D數(shù)控系統(tǒng)本機上運行,要想在同一個局域網(wǎng)內(nèi)的遠(yuǎn)程客戶計算機上通過網(wǎng)絡(luò)來運行該程序,實現(xiàn)遠(yuǎn)程數(shù)據(jù)獲取,就要借助微軟的NetDDE技術(shù)了。NetDDE是DDE技術(shù)的擴(kuò)展,它提供了一種代理,用來響應(yīng)網(wǎng)絡(luò)上發(fā)到服務(wù)器計算機DDE的各種請求,并將請求傳遞到上層應(yīng)用程序,NetDDE同時也將本機的NetDDE請求發(fā)送到網(wǎng)絡(luò)。它在DDE鏈接中起到底層通信的橋梁作用,如圖5所示。每臺裝有Windows操作系統(tǒng)的計算機目錄下(2000/XP),都有一個NetDDE.EXE的文件,對其設(shè)置可參考Windows相關(guān)幫助,不再詳述。
另外,為了使所開發(fā)的程序能通過網(wǎng)絡(luò)順利獲取數(shù)據(jù),需要在源程序中對應(yīng)用程序名和主題稍做改動,本地DDE的地址包括3個部分:應(yīng)用程序名、主題、項目。而NetDDE則由如下部分組成:\計算機名稱\NDDE$\DDE共享名。完成上述修改后,診斷程序即可順利運行, 通過分別設(shè)置網(wǎng)絡(luò)上不同計算機的名稱,即可實現(xiàn)多臺機床的遠(yuǎn)程診斷,如圖6所示。
圖5 NetDDE實現(xiàn)遠(yuǎn)程診斷
圖6 機床遠(yuǎn)程診斷網(wǎng)絡(luò)
用動態(tài)數(shù)據(jù)交換(DDE)技術(shù)實現(xiàn)了自己設(shè)計的診斷程序與西門子840D數(shù)控系統(tǒng)之間的通訊,簡化了開發(fā)的難度,提高了效率,可視為開發(fā)數(shù)控系統(tǒng)遠(yuǎn)程診斷系統(tǒng)的一種很好的方法。該方法具有程序?qū)崿F(xiàn)簡單、方便、通用性強等特點,可以說,只要數(shù)控系統(tǒng)基于PC平臺,并提供了DDE的通訊接口,都可以結(jié)合DDE方式,實現(xiàn)數(shù)控系統(tǒng)的遠(yuǎn)程診斷功能開發(fā)。相關(guān)的機床維護(hù)人員,經(jīng)培訓(xùn)后即可開發(fā)出適合自己需求的診斷程序。