天天看點

上位機那些事兒

很多做電氣的小夥伴還一直迷糊于什麼是上位機,今天這篇文章就來聊聊上位機那些事兒。

上位機那些事兒

首先看上面這張圖,這是一個非常典型的工業控制系統模型,可能大家的工作大多數是處于現場裝置層或者現場控制層,因為這兩塊都是工業控制的基礎。

如果我們往上看,發現還有三層,分别是過程監控層、生産管理層和企業決策層,這三層,就是我們說的上位機。

如果你們的系統并沒有這三層,也是可能的,因為上位機功能主要在于監控管理,并不是最終的執行者。

是以,從廣義上來說,上位機指的就是SCADA/MES/ERP,從狹義上來說,上位機指的就是SCADA。

總而言之,上位機就是基于PC(PC-Based)開發的監控管理系統。

上位機是一種系統概念,與開發語言無關,是以,大部分的程式設計語言都可以開發上位機,隻是适不适合而已。

看語言适不适合,主要看幾個方面:

學習成本,說白了,就是難易程度

資源成本,說白了,就是網上資料多不多

人員基數,說白了,就是使用的人多不多

可持續性,說白了,就是能用多久

應用範圍,說白了,就是應用是否單一化

是以,我們常說的LabView/C++/Java/Python,它們可能在某一方面比較突出,而C#在任一方面都不突出,但是綜合來說,我認為還是C#最合适你們。

并不是因為我們教C#,才說C#合适,而是因為我們認為C#最合适,才選擇教C#,語言沒有好壞之分,隻有适不适合。

從廣義上來說,上位機和下位機是一個相對的概念,比如SCADA對于PLC來說,SCADA是上位機,PLC是下位機,但是如果MES相對于SCADA來說呢,可能SCADA又成了下位機的角色。

從狹義上來說,目前我們做的上位機主要是對接PLC、儀表、運動控制卡、視覺等,通信方式包括通信協定、OPC、API或SDK,如下圖所示:

上位機那些事兒

1、通信協定

上位機和下位機之間的通信協定有很多,隻要能完成通信的協定都可以用在上位機與下位機之間。比如:通信協定(通信方式):RS232/RS485串行通信、USB、藍牙、網絡UDP/TCP 這個通信協定(通信方式)是實作上位機與下位機之間資料交換的基本通道。

上位機那些事兒

2、通信API

很多時候,我們會把資料做好封裝,提供接口給外部應用,這就涉及到API。

API全稱為Application Programming Interface。

API的指令格式,是自定義的一種固定的資料組合格式,不受任何通信方式和通信平台的限制,我們常用的API方式包括WebApi和WebService。

這個問題其實不太好回答,上位機要學好,有兩個階段,第一階段是從0到1的過程,第二階段是從1到∞的過程。

很多人困就困在一直處于零的階段,無法突破,想要快速突破,有這麼幾個點,要逐個突破:

程式設計基礎

通信方式

項目經驗

這個過程,到底要多久,是要看個人的,有的人2個月,有的人可能要2年。

其實學曆、英語、年齡這些都不是問題,問題就在于夠不夠勤奮。

也許我們的資質不夠聰穎,我們的起點沒有别人高,我們的精力已經不再充沛,越是如此,越應該用後天努力去彌補。

上位機那些事兒