語言選擇: 中文簡體 ∷  中文繁體

技術文章

Android安卓工業監控控制軟件設計原理(安卓工控一體機)

    Android安卓工業監控控制軟件設計原理(安卓工控一體機)
  傳統控制系統監控上位機軟件一般運行于PC機端,現場監控人員需要固定在中心監控室中進行查看操作,給工作人員帶來了較大的不便。同時在傳統工業現場中設備維護與調試一般需要用對講機實現現場操作人員與中心控制室的通信和信息交換,這提高了設備維護巡檢的難度。而在某些重要的工業現場如燃氣、油站對設備的防火等級都有嚴格的規定,傳統的PC機與筆記本不能被帶入現場,這樣進一步提高了改進維護方式的難度?;谏鲜鰡栴},監控軟件移動化逐漸成為工業控制系統未來發展的方向。以iOS和Android為代表的智能移動終端迅速發展,為工業控制系統監控軟件的革新提供了技術保障。目前,國外已有SPEL公司推出了基于iOS系統開發的相關產品,并在市場中得到極大的反響。但是,在移動智能終端系統占有率最大的Android系統平臺上的相關產品,在國內外一直處于空白狀態。

  另一方面SPEL公司出品的相關軟件僅支持國外部分工業控制系統,其對國產控制系統幾乎不支持,這使得設計一款基于Android設備的用于國產控制系統的監控軟件非常有必要。本文介紹一種基于Android設備開發的監控軟件,該軟件可用于國產iCSG3/G5工業控制系統,能夠獲取遠程測控終端(RemoteTerminalUnit,RTU)控制器或PLC控制器的實時數據,動態更新流程畫面,接收報警推送。
  一種基于Android設備開發用于國產iCSG3/G5工業控制系統[12]控軟件。它能夠獲取RTU(RemoteTerminalUnit,遠程測控終端)控制器或PLC控制器的實時數據,動態更新流程圖畫面,接收報警推送。它填補了國內外Android設備相關產品的空白,有效解決了傳統上位機軟件的諸多不便,具有廣泛的應用市場和前景。Android架構Android系統是新一代移動通信平臺,它擁有更加先進的硬件和軟件架構Google公司于2007年底發布的開源手機操作系統,如今已經發布至4.1版本系統它提供極其豐富的應用層API,支持多種無線通信方式,支持強大的硬件配置。Android系統主要是基于Linux內核、面向移動終端設備的開源操作系統,其架構主要分為4個層次,即應用層、應用框架層、組件庫和虛擬機、Linux內核層。處于最底層的Linux內核層為系統提供諸如進程管理、內存管理、設備驅動等基本功能;組件庫和虛擬機包含重要的C庫文件和JAVA運行時環境,提供對應用框架層的支持;而應用框架層則是開發應用程序所關心的部分,Android應用程序都是基于應用框架層所提供的基本框架和API進行開發。針對大多數Android應用開發,Google發布了AndroidSDK(softwaredevelopingkits)。其中包括了若干開發工具集和一整套基于JAVA開發的API。其后Google公司又針對C/C++開發者提供了NDK(nativedevelopingkits)。NDK開發的程序仍需通過JNI(JAVANativeInterface)方式與JAVA層代碼進行交互才能構成一個完整的應用程序。NDK開發能在一定程度上加快程序運行的速度,但是會增加程序開發的復系統總體結構設計系統總體結構設計充分考慮與傳統工廠控制監控系統之間的兼容性,做到盡量降低系統升級的成本。在不改變傳統控制監控系統網絡拓撲結構的前提下,通過在工廠局域網絡中加入移動終端服務器和鋪設Wifi路由器或VPN服務器來構成整體通訊鏈路。
  傳統控制監控系統的結構圖:工廠中各個控制點的數據經由變送器和IO模塊傳輸至控制器,控制器則通過以太網的方式連接到工廠局域網中,中心服務器負責為傳統PC端監控站等提供報警等服務功能。PC端監控站中心服務器Android設備I/O模塊各種變送器工廠控制監控系統移動終端服務器短信貓Wifi路由設備VPN隧道訪問控制器3GWifi移動控制監控系統工廠局域網工廠局域網I/O模塊各種變送器防火墻系統總體結構圖系統總體結構圖右側顯示了移動控制監控系統的核心結構。移動終端服務器通過工廠局域網與中心服務器相連,從而獲取報警等功能的相關數據。在移動終端服務器獲取到報警信息之后通過一個短信貓將報警信息通過SMS短信息推送到Android設備,發起報警推送。由于移動互聯服務器與中心服務器實際為兩個獨立服務器,即使移動互聯服務器受到了攻擊或自身崩潰,也同樣不影響原有的控制監控系統的運作,這樣提高了整體系統的可靠性和安全性。為了節約流量,在有條件的工廠進行Wifi網絡覆蓋,這樣Android客戶端可以直接通過本地局域網訪問。而在某些惡劣的工廠環境中,則采用3G轉VPN的方式接入到工廠網絡中進行訪問[11],訪問數據通路中加入網絡防火墻,防止來自Internet的攻擊。Android設備能夠與控制器通訊連接,以獲取實時流程圖數據??紤]系統信息安全性的需求,本軟件和移動終端服務器均只配置為只讀權限,僅能夠對工業數據進行讀取,而無法對其修改。通過增加登錄認證環節,來降低受到攻擊的風險。在客戶端中對數據信息文件不進行保存,來減少終端設備遺失所帶來數據泄密后移動監控系統軟件開發3.1流程圖軟件的設計3.1.1流程圖軟件結構流程圖軟件結構層次見圖2所示。位于最頂層的是繪圖邏輯層,主要用來實現各種的圖元的靜態繪制、動態效果、動作響應等邏輯。該層次采用面向對象的流程圖設計方法進行開發[11],主要抽象出Shape、Animation、Action三個基類。
  不同形狀的圖元、動畫效果、動作響應分別繼承自這三個基類。ShapeAnimationAction繪圖邏輯層CanvasPaint基礎繪圖層實時數據獲取流程圖xml文件xml解析JNI調用SDK開發(JAVA)實時數據訂閱接口數據存儲映射管理網絡通訊管理NDK開發(C++)Socket流程圖軟件層次結構圖繪圖邏輯層向下一層分別是基礎繪圖層、XML解析層、實時位號數據獲取等?;A繪圖層中是Android提供的繪圖方法,Canvas類提供一個畫布的抽象,包含多種繪制不同形狀的方法。Paint則提供一個畫筆的抽象,能夠設置畫筆顏色等屬性。XML析層提供對流程圖XML文件和位號點信息解析功能。流程圖XML文件和位號點信息XML文件分別記錄了流程圖中各個圖元對象的信息和位號點的相關信息。文件解析使用XPP(XMLPullParser)方法,相對于傳統的DOM和SAX解析方法,它具有占用內存少、更高效、更輕量的優勢。對在資源受限以及為了提高性能的情況下,是一種理想的選擇。為簡化流程圖顯示部分的開發工作,繪圖邏輯層與xml解析等均采用AndroidSDK開發的方式,有效提高了開發效率。網絡通訊和數據訂閱部分采用了AndroidNDK開發方式,極大提高了位號實時數據通訊的速度和實時性的要求。NDK開發與SDK發之間通過JNI調用的方式進行交互。3.1.2流程圖實時數據獲取實時數據訂閱接口為上層流程圖顯示部分提供了一個實時數據傳輸的通道,接口層內部維護不同位號點的唯一ID識別碼來方便的對數據進行存取。位號點數據的格式和ID識別碼有如下對應關系:TAG=Path+Index+Offset+LenID位號點由Path、Index、Offset、Len一確定,其中Path表示RTU控制器在局域網中的唯一地址,用于唯一標識控制器設備。Index表示位號點數據在RTU控制器存儲器的分區索引號,Offset表示數據在RTU控制器存儲器分區中的偏移地址,Len表示數據的長度,單位是字節。Index、Offset、Len共同決定位號點數據在RTU控制器中的地址和長度。數據區映射RTU數據映射示意圖為使位號點數據的存取速度加快,保證流程圖中數據得到實時更新,引入了一種數據存儲映射機制。軟件為每個位號點開啟一段內存,用于映射到對應RTU控制器中的位號數據存儲區,這樣上層流程圖顯示部分就只需從映射區獲取數據,整個數據傳輸過程變的透明化。數據映射過程如圖3所示。位號數據是由工作人員進行組態,同一張流程圖中的數據能夠緊湊的分布于RTU控制器內,數據擁有良好的空間局部性。因Index2220PN1PN214PO索引(2bit)一級頁表二級頁表頁內偏移(6bit)(8bit)(9bit)nullnull多級頁表映射機制示意圖此數據的映射機制可以考慮采用多級頁表映射方式。這樣既能夠有效降低頁表的存儲空間,同時也能簡化數據的存取,加快尋址速度??紤]到數據傳輸過程需要盡量減少網絡傳輸的負荷量,降低發包次數,同時兼顧UDP傳輸的特性,軟件應盡量將包大小控制在512字節左右,因此軟件設定多級頁表映射的頁內偏移大小定為512字節。由此我們可以得到圖4所示的數據多級頁表映射機制。中假設Index分區索引為2Bit,即個分區。Offset長度為21Bit,即每個分區可尋址8MB空間,對單設備的總尋址空間為32MB。如果索引和頁表所指向的地址沒有被訂閱,則將其置為空,以減少地址空間的占用。
  數據映射區數據幀解析器數據幀構造器接收隊列緩沖接收隊列管理器接收網絡幀子線程發送隊列緩沖發送隊列管理器通知回收相應數據發送網絡幀子線程接收網絡數據寫入數據區進發送隊列發送網絡數據垃圾數據清理子線網絡通訊管理過程網絡通訊管理過程見圖5所示,通訊采用異步發送接收而非阻塞等待的模式來保證每個位號點數據都能得到公平快速的發送。通過定義發送和接收隊列管理器,避免直接對數據區進行操作,還能夠保證數據多線程訪問的同步性。當接收隊列管理器收到應答網絡數據幀(圖中步驟5)后會通知發送管理器回收對應正處于等待狀態的發送數據(圖中步驟6),并將數據寫入數據映射區中(圖中步驟8)。模塊定義三個不同的子線程:發送數據幀子線程定時循環發送隊列緩沖中的數據并更新其時間戳標志,包括重發次數和發送時間;接收子線程一直處于監聽狀態,收到網絡數據幀后將數據通過接收管理器推入接收隊列緩沖;清理子線程負責將超時或重發次數超過最大限制的垃圾數據清理出隊3.2報警和登錄模塊的設計3.2.1報警推送報警推送的整體流程見圖所示。報警推送采用短信方式來發起報警連接請求,服務器端通過一個短信貓來進行報警提示短信的發送,在發生報警時移動終端服務器會給注冊過的客戶端發送一條短信通知??蛻舳顺绦蛲ㄟ^擴展系統提供的BroadcastReceiver類來得到短信接收通知,在程序中過濾特殊號碼的短信及內容。確認收到短信后客戶端對報警服務器發起一次連接,請求獲取實時報警的信息,報警的數據采用JSON的方式來組織。
  JSON是一種常用的輕量級數據交換格式,常被用于網絡數據交換。警報發送短信提示報警TCP連接,獲取詳細報警信息任務欄通知、震動、響鈴確認警報報警服務器短信貓Android設備報警推送流程軟件將接收到的報警數據存儲于SQLite的數據庫并通過Context.NOTIFICATION_SERVICE在系統通知欄中產生一個通知信息,通過Context.VIBRATOR_SERVICE生震動提示并通過AudioManager.STREAM_NOTIFICATION產生一個聲音提示。產生的歷史報警信息都可以在報警功能模塊中進行查看。報警信息以分組列表的形式展示。用戶可以在報警界面中手動確認報警,這時Android客戶端將會給服務器發起一次報警確認連接的請求。3.2.2登錄認證及安全性本軟件需接入至工廠網絡,因此軟件安全變得極其重要。為了降低來自外網的攻擊,在3G訪問通道中,加入了防火墻設計。同時對于移動部分的所有數據,均只有只讀的權限,從根本上杜絕了通過修改控制數據所帶來的安全隱患問題。為了滿足安全性要求,軟件還增加了一個安全認證過程,過程見圖7所示。在初始運行軟件時,會有一個登錄認證過程,軟件將用戶輸入的用戶名和密碼以及本機的手機號碼和設備碼通過密文方式發送至服務器,服務器端維護一個所有用戶信息的數據庫,認證用戶名、密碼、手機號、設備號均一一對應后才能進行后續操作。同時客戶端待機超過15分鐘后,軟件需要重新進行登錄認證才能進行操作。對于意外遺失的設備終端,可在服務器注銷設備訪問權限??紤]到數據的保密性,對于實時工業流程圖數據,采取即看即取得方式,歷史數據在退出程序后即得到刪除,防止意外的數據泄露。登陸界面讀出手機號、設備號輸入用戶名、密碼驗證身份認證信息待機超過15min正常操作正確不正確偵聽設備讀取網絡身份認證信息數據驗證用戶信息數據庫返回認證結果認證是否成功設備加入獲取報警列表發送認證信息Android端移動設備服務器端網絡通訊網絡通訊結論本文介紹了基于Android平臺的控制系統移動監控軟件的設計和開發。相對于傳統的控制系統監控軟件,本軟件創新性地將平臺放在了移動終端領域。它迎合了計算移動化的趨勢經測試,本系統很好的完成了流程圖實時數據展示、報警推送信息等功能。

聯系我們

地址:廣東省廣州市黃埔區永和街田園路84號新莊工業園B座

銷售電話:188-1886-3411

企業QQ: 2850909123

E-mail: qxlcd_gz@163.com

用手機掃描二維碼關閉
二維碼
亚盈体育