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