WinCC OA前言-透視OA軟件架構


背景

在與同事交流WinccOA的時候,發現很多問題都是對於OA的架構體系不太了解導致對一些概念模棱兩可,
本文着重講解OA的軟件架構,至於業務架構,待教程更新一定程度再來詳細說明,相信這樣效果會更好

一張圖

WinccOA 官方文檔里有一張非常重要的圖 這里給大家展示下

按照官方說明WinccOA為一個模塊化系統(由好多模塊組成的系統),
每個模塊都單獨負責一項業務,具體到軟件上每個模塊為一個單獨的管理器
OK,下面我們對這個圖進行詳細的拆解

分層

按上圖示 將這些模塊的歸屬分為四個層級

  • UI層(User Interface/用戶接口)
  • 控制層
  • 消息層
  • 設備層

下面我們由下向上分層講解

設備層

設備層我們工控的小伙伴們應該都好了解,針對現場設備采集數據的一層
具體到WinccOA里面可以映射為各驅動(Modbus S7...)模塊
負責將設備數據采集到OA系統

消息層

消息層是整個OA系統里面最為重要的一層 我們看到架構圖里有三個成員 EV DB CON

EV

EventManager(事件管理器) 我們看到EV位於整個架構的核心位置,它負責整個系統的消息分發,
WinccOA整個系統的運行是基於消息機制的,
比如說設備層采集來一個重要的數據,第一時間他會把數據通知EV,
EV拿到數據之后,首先檢索下誰對這個消息感興趣(感興趣指的是 數據存儲模塊要存儲這個數據,顯示界面要顯示這個數據,報警模塊可能要分析這個數據等)
OA系統根據模塊的優先順序向相應模塊發送數據消息,相應模塊接到消息后處理數據

DB

數據庫管理器 數據的存儲查詢是一個消息接收量比較大的模塊,這個模塊后續會詳細介紹

CON

連接管理器(connect to other system) 根據官方示意 猜測這個模塊為OA向外提供數據交互的模塊

控制層

本層主要兩個成員 CTRL 跟 API

CTRL

ctrl為WinccOA內置的腳本語言,我們在用OA做業務的時候 不是組態的過程就是在寫腳本啦,
OA之所以要實現自己的腳本語言就是要實現在線開發的概念,我們知道WinccOA是基於Qt開發的圖形界面,
而Qt是C++的一個圖形界面庫,正常寫完一個C++程序需要編譯才能跑起來,如果項目很大的話,編譯的時間將會很長.
這樣很不便於修改,尤其是SCADA系統,我們經常要調節一些小的參數,因此WinccOA實現了一個自己的虛擬機,
用於運行自己的腳本語言,這樣不僅能簡化開發OA的難度,還能實現在線開發的效果,我么會在稍后詳細帶大家入門Ctrl腳本語言

API

OA提供了豐富的API接口 如果懂IT的小伙伴可以通過這些接口用C#/C++...寫自己的控制程序

視圖層

這一層的內容 主要是跟我們的視覺打交道的,比如我們能看到的產品界面,組態界面 ,甚至手機App等等 人機交互的的都稱之為UI(user interface)

透視軟件架構

OK, 上面詳細介紹了我認為WinccOA里面重要的一張圖,但是這張圖背后的運作是怎么回事?下面敲黑板 重點來了
首先我們結合某工程項目管理頁面

然后我們打開任務管理器

我們看到一個管理器對應操作系統里的一個進程,沒錯這就是WinccOA系統的進程模型,上圖

  • Process Moniter 為其主進程負責對其余進程的啟停及監控
  • EventManager 各管理器進程通過EV進行消息的交互

進程通訊方式


如圖示 進程與EV 之間的通訊 應該是基於socket

為什么使用多進程模型?
最大的好處之一就是每個進程獨立工作 不會因為一個進程出問題 導致其他進程都宕機

歡迎大家關注我們的公眾號 第一時間獲取文章更新


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM