什么是上位機?

首先看上面這張圖,這是一個非常典型的工業控制系統模型,可能大家的工作大多數是處于現場設備層或者現場控制層,因為這兩塊都是工業控制的基礎。
如果我們往上看,發現還有三層,分別是過程監控層、生產管理層和企業決策層,這三層,就是我們說的上位機。
如果你們的系統并沒有這三層,也是可能的,因為上位機功能主要在于監控管理,并不是最終的執行者。
所以,從廣義上來說,上位機指的就是SCADA/MES/ERP,從狹義上來說,上位機指的就是SCADA。
總而言之,上位機就是基于PC(PC-Based)開發的監控管理系統。
上位機用什么語言?
上位機是一種系統概念,與開發語言無關,所以,大部分的編程語言都可以開發上位機,只是適不適合而已。
看語言適不適合,主要看幾個方面:
◆學習成本,說白了,就是難易程度
◆資源成本,說白了,就是網上資料多不多
◆人員基數,說白了,就是使用的人多不多
◆可持續性,說白了,就是能用多久
◆應用范圍,說白了,就是應用是否單一化
所以,我們常說的LabView/C++/Java/Python,它們可能在某一方面比較突出,而C#在任一方面都不突出,但是綜合來說,認為語言沒有好壞之分,只有適不適合,昌暉儀表工程師認為C#最合適,才建議大家學習C#。
上位機與下位機有何關系?
從廣義上來說,上位機和下位機是一個相對的概念,比如SCADA對于PLC來說,SCADA是上位機,PLC是下位機,但是如果MES相對于SCADA來說呢,可能SCADA又成了下位機的角色。
從狹義上來說,目前儀表工程師做的上位機主要是對接PLC、儀表、運動控制卡、視覺等,通信方式包括通信協議、OPC、API或SDK,如下圖所示:

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

2、通信API
很多時候,我們會把數據做好封裝,提供接口給外部應用,這就涉及到API。
API全稱為Application Programming Interface。 API的命令格式,是自定義的一種固定的數據組合格式,不受任何通信方式和通信平臺的限制,我們常用的API方式包括WebApi和WebService。
怎么學上位機?
這個問題其實不太好回答,上位機要學好,有兩個階段,第一階段是從0到1的過程,第二階段是從1到∞的過程。
很多人困就困在一直處于零的階段,無法突破,想要快速突破,有這么幾個點,要逐個突破:
◆編程基礎
◆通信方式
◆項目經驗
這個過程,到底要多久,是要看個人的,有的人2個月,有的人可能要2年。
對于學習上位機知識及其他儀表知識,其實學歷、英語、年齡這些都不是問題,問題就在于夠不夠勤奮。
也許我們的資質不夠聰穎,我們的起點沒有別人高,我們的精力已經不再充沛,越是如此,學習上位機相關知識越應該用后天努力去彌補。世界上最可怕的事就是比你優秀的人,比你還努力。這不是雞湯,這是事實!
相關閱讀
安裝WINCC的上位機應使用規范名字
從簡單案例了解PLC編程與上位機程序開發調試
如何通過HART協議將流量計實時數據讀取到上位機
工控人如何抵御針對PLC、上位機和交換機的網絡攻擊