基于RCS庫實現跨平臺遠程通信
2018-4-16 來源:轉載 作者: 桑冠林,王品,胡毅
摘要:數控系統的信息采集存在處理速度較慢、區域限制等問題,不能滿足快速多變的需求,因此文章提出一種利用RCS庫實現安卓終端與數控系統間遠程連接和通信的方法,安卓終端成為數控系統信息顯示的載體。該方法使用Java版RCS庫,先寫配置文件,定義消息結構,然后使用RCS庫提供的方法建立遠程連接,讀取數控系統的消息并顯示在安卓終端。實驗結果表明了方法的可行性,配合安卓終端的優勢,可以提升工作的靈活性。
關鍵詞:數控系統; RCS庫; 安卓終端; 遠程連接和通信
0、引言
數控機床伺服系統的性能不僅直接影響著機床加工精度,也關乎數控加工能力能否充分發揮,但是數控系統的信息采集終端基木停留在處理速度較慢且只能針對特定系統操作的階段。
謝書童等提出基于仿真的數控加工多目標參數優化,獲取機床一次完整工序的位置數據,對此次參數進行整定和優化,并調整至下次生產加工中,因為這種方法依照真實生產數據,故保證了參數優化的精準性,但實時性較差。田軍鋒等提出利用RCS庫實現模塊間的通信,通過網線將數控機床與PC連接,并實現通信,可以使得數據顯示的樣式更多樣化,但這種方式受到距離的限制,且PC的攜帶不便降低了便捷性。
為了解決上述方法存在的弊端,本文提出一種新的信息采集方式,把移動通信技術嵌入到數控機床中。實現可以在手機上看到數控機床相關參數。解決空間局限性,具有通用性好、擴展性強、簡捷便利、處理速度快等特點,符合時代潮流,能更好的滿足用戶需求。
1、實驗條件
PC一臺,Windows 8操作系統,已安裝JDK,并裝有集成ADT的Eclipse。二星Tab平板一臺,安卓程序發布的載體。藍大NC-210數控系統,作為平板遠程連接的對象。
Android是一種基于Linux的自由及開放源代碼的操作系統,顯著的開放性可以使其擁有更多的開發者,并且擁有豐富的軟件資源,一經推出就迅速占領了智能手機的大部分市場份額,受到了廣泛追捧。An-droid平臺提供了一個十分寬泛、自由的開發環境因此實驗選擇安卓終端作為連接端。選用Java版RCS庫。以Java而向對象的方法,將程序抽象,以類封裝代碼,易于理解和使用。
實驗將藍大系列產品“NC-210”作為被連接端,采用傳統編程標準。是在NC-200系統的基礎上的改進型設計,采用了NC-110系統開放性的特點,提高了插件之間的互換性,使系統的結構更加緊湊,便于調試和維護。NC-210系統經過了嚴格的國內外電磁兼容測試和環境試驗、測試。選擇這款可靠性很高的產品作為被連接端無疑能更好的提高實驗的成功率。
2、RCS庫簡介
RCS (Realime control system)庫是由美國國家標準與技術研究院(KIST)研究開發的軟件庫,可以用來輔助構建多模塊的控制系統軟件。 RCS庫是基于RCS方法論和參考模型結構RMA (Reference model ar-chitecture)發展起來的。它代碼開放,可自由的使用、擴展和裁剪,不僅提供了Java版木,還提供了C++版和Ada版的源碼。
利用RCS庫構建的控制系統軟件往往具有多模塊、分層次結構,如圖1所示。每個模塊都有一個命令緩沖區和一個狀態緩沖區。頂層模塊負責接收操作指令,并寫命令到命令緩沖區,經過任務分析、分解,把它轉發為具有內部形式的控制任務信息,傳遞給中間層相關模塊。中間層模塊會將任務細分成更小的任務,分配給下層模塊執行,并協調它們的動作。下層的模塊還要不斷更新自身的狀態,子模塊通過狀態通道將狀態緩沖區里的狀態信息反饋給父模塊。在實際系統中,會有更多的層次關系,但是它們的原理是一樣。

圖1 RCS多模塊分層結構
RCS各模塊(進程)之間是利用RCS庫提供的CMS/NML例程,通過共享內存緩沖區傳遞信息。CMS和NML負責對數據信息進行編發和解碼,實現跨平臺通信。
CMS (Communication Management System)是RCS軟件中的底層通信管理系統,提供了非常全面且統一的通信接口。CMS提供的方法將所有數據類型編碼成與平臺無關的格式,這使得RCS進程可以在不同的操作系統上通信。
NML ( Neutral Message Language,中性消息語言)提供了更高層次封裝,簡化了CMS的編程接口。所以開發人員不必了解底層CMS的工作過程,不必處理與特殊平臺相關的問題圖。NML提供類似“mail-box”,的通信方式,每個通信緩沖區可以看作一個郵箱,可以從緩沖區中讀取消息,或者向某個緩沖區中寫入消息;緩沖區內可以包含一個消息隊列,否則每次寫入信息將覆蓋原有的消息。對于NML通信中的每個消息,被稱為一個NMLmsg。 RCS庫中提供了一個NMLmsg的基類,提供了信息類型定義、信息大小和數據格式轉換等基本功能。編程時通過繼承NMLmsg進而定義實際所需的通信數據,需要注意的是數據必須在編譯時定義而不能在運行時動態生成不同的數據結構。
3、實驗過程
3.1 寫配置文件
NML的配置信息不保存在中心服務器或數據庫中,而保存在文本文件里。要實現安卓終端和數控系統間跨平臺遠程連接,必須保證安卓程序和NC端程序使用相同的配置文件。配置文件主要定義兩類信息,緩沖區和線程。
NML緩沖區用于存儲消息,實現內存共享。在配置文件中,每個緩沖區定義占用一整列,以B開頭,主要包含的參數有,Name(緩沖區名);Type(緩沖區類型),包括 SHMEM(共享內存)、GLOBMEM(全局)、LOCMEM(本地),FILEMEM(文本),Hos“主機地址),標識緩沖區所在主機的IP地址,特別要注意的是遠程訪問時,Host應寫NML Server的地址。
NML進程創建和連接一個或多個NML緩沖區,用于讀寫消息。每個進程定義占用一整列,以P開頭,主要包含的因素有,Name(進程名);Buffer(進程所連接的緩沖區名),匹配緩沖區定義的某列,Type(進程類型)等。
本實驗所使用的配置文件如圖2,圖3所示

圖2 緩沖區配置

圖3 線程配置
需要注意的配置項是,緩沖區所屬主機的地址,即NMLServer的地址,數控系統必須開啟NMLServer進程,否則無法遠程訪問。另外,線程配置中線程類型必須為REMOTE類型,因為RCS庫的官方文檔里提到:Java applicationsmust use REMOTE。
3. 2 消息定義
建立連接前需要定義通信消息結構,先了解Java版RCS庫的幾個重要基類:
通道基類:基類NML是建立NML通道的基礎,通過基類NML派生出RCS_ STAT_ CHANNEL和RCSCMD_ CHANNEL。它們分別用來創建狀態通道和命令通道,從而讓關聯模塊之間可以傳遞狀態消息和命令消息回。
消息基類:RCS_ STAT_ MSG和RCS_ CMD_ MSGo它們都是通過繼承NMLmsg類派生出來的,分別是狀態消息基類和命令消息基類。命令消息通常是由父模塊傳遞給子模塊;而狀態消息則是由子模塊傳遞給父模塊,并帶有子模塊的狀態信息。結合NC-210數控系統內部的消息結構,安卓端消息結構如圖4所示。

圖4 狀態消息類結構圖
3. 3 建立連接及讀取消息
NML隱藏了繁瑣的進程間通信與同步的實現細節,給程序員提供了方便的API。在開發代碼中使用NMLConnection)方法建立遠程連接,獲得NML通道。并提供了4種封裝好的讀消息方法和2種寫消息方法。本實驗使用的是read方法,讀一個NMLmsg的同時更新was_ read,標明為已讀。遠程讀操作流程如圖5所示。

圖5 Remote Read Operation
1遠程訪問者(移動終端)發送讀指定緩沖區的請求到NMLServer,這個動作由NML自動完成。
(2)下級模塊將狀態消息寫入Server的狀態緩沖區。
(3) Server從狀態緩沖區(本地)中讀取狀態消息。
(4) Server通過無線網絡將請求結果發送給讀請求者。完成一次遠程讀操作。
實現安卓終端遠程讀取數控系統數據消息,需要保證:
(1)硬件層而,雙方IP位于同一局域網段內,數控系統通過網線與無線路由器相連,安卓手機連接該無線路由的無線信號。
(2)軟件層面,要保證通信雙方配置文件相同且消息結構定義的一致。
4、實驗結果演示
作者將實驗結果打印在Eclipse控制臺,方便測試和查看。下面將根據打印結果分析不同的情況及原因。
(1)連接失敗,如圖6所示。

圖6 連接失敗
分析原因:配置文件錯誤,如緩沖區所在主機(NMLServer)地址配置錯誤,或協議和端口號配置錯誤。拋出NMLException,顯示連接不到指定主機的指定端口。
解決方法:
①確保通信雙方位于同一局域網網段內。 ②安卓端和數控系統端配置文件必須保持一致。 ③確定數控系統端NMLServer已開啟。
(2)讀取消息為空,如圖7所示。

圖7 讀不到消息
分析原因:①安卓端和數控系統端消息結構定義不一致。② NMLServer的狀態緩沖區中沒有消息。
解決方法:①安卓端消息的結構必須和數控系統端消息結構一致。②檢查NML進程所讀取的緩沖區里是否有消息。③最好通信雙方使用的RCS庫具有相同的版本號。
(3)正確的實驗結果,如圖8所示。

圖8 正確的實驗結果
本次實驗分別打印出了軸編程位置和軸位置實際值。其他位置參數,命令消息,NML錯誤消息的獲得與狀態消息獲得類似。
5、結論
本文提出基于RCS庫實現安卓終端與數控系統間遠程連接和通信,通信過程的處理交給通信管理系統CMS,直接調用中性消息語言NML封裝好的方法實現。實驗結果證實了安卓終端遠程連接并訪問數控系統的可行性,所以配合移動終端具備的通用性好,計算速度快,攜帶方便等優勢,將移動通信技術嵌入到數控機床中,必將成為趨勢。遠程機床監控,遠程機床操控,遠程機電參數優化,遠程故障排除等都將在不遠的未來實現。
來源:1.中國科學院大學 2. 中國科學院沈陽計算技術研究所高檔數控國家土程研究中心 3.沈陽高精數控技術有限公司
投稿箱:
如果您有機床行業、企業相關新聞稿件發表,或進行資訊合作,歡迎聯系本網編輯部, 郵箱:skjcsc@vip.sina.com
如果您有機床行業、企業相關新聞稿件發表,或進行資訊合作,歡迎聯系本網編輯部, 郵箱:skjcsc@vip.sina.com