既然有組態軟件,為什么還要學C#上位機?(組態軟件好學嗎)
前言
最近在某平臺直播,被問的最多的一個話題就是,已經有組態軟件了,為什么還要學C#來開發上位機?
今天就這個話題跟大家聊一下,組態軟件與C#上位機的區別與聯系。
什么是上位機
百度百科是這么定義上位機的:
上位機是指可以直接發出操控命令的計算機,英文名一般是PC/Host Computer/Master Computer/Upper Computer。
我們可以通過上位機運行一些特定的軟件來顯示各種信號變化(液壓,水位,溫度等),上位機發出的命令首先給下位機,下位機再根據此命令解釋成相應時序信號直接控制相應設備。
通常情況下,工控機,工作站,觸摸屏作為上位機,通信控制PLC,單片機等作為下位機,從而控制相關設備元件和驅動裝置。
因此上位機本質是一臺電腦,實際運行著一個可供用戶操作監控的軟件,這個軟件稱之為上位機軟件,所以我們學習上位機開發,其實是學習怎么開發上位機軟件,更具體的是指如何使用高級語言來開發上位機軟件。
什么是組態軟件
組態軟件,又稱組態監控系統軟件,英文名是Scada(Supervisory Control And Data Acquisition),是指數據采集與過程控制的專用軟件,也是指在自動控制系統監控層一級的軟件平臺和開發環境。這些軟件實際上也是一種通過靈活的組態方式,為用戶提供快速構建工業自動控制系統監控功能的、通用層次的軟件工具。
所以組態軟件本身也是屬于上位機軟件。
為什么選擇C#
能夠開發上位機的語言不止C#一種,比如Java、C /QT、Python、LabVIW等,在工控領域,C#的地位,就像Windows在操作系統中的地位一樣,我們為什么選擇C#,主要是一種綜合考慮,也許C#在各個方面都不突出,但是它的綜合能力是非常強的,主要是以下幾個方面:
? 學習成本,說白了,就是難易程度
? 資源成本,說白了,就是網上資料多不多
? 人員基數,說白了,就是使用的人多不多
? 可持續性,說白了,就是能用多久
? 應用范圍,說白了,就是應用是否單一化
所以并不是我們培訓C#,大家也要跟著學C#,而是因為C#足夠好,我們才選擇培訓C#。
如果哪一天我們發現有更好的語言,我們也會改變賽道。
組態軟件與C#上位機
組態軟件與C#上位機同樣都可以開發上位機軟件,所以很多人會將兩者做對比,其實我覺得兩者不是同一個競品,使用組態軟件,我們只是一個使用者的角色,C#開發上位機,我們更多的是一個開發者的角色。
就拿日常的汽車來打比方,組態軟件就是給駕駛員使用的,我們只管開車就行了,但是C#上位機是給汽車制造工程師使用的,需要去研究汽車,改造汽車。
我們使用組態軟件,看重的是它的穩定及便捷,但是我們選擇C#上位機,無非就是兩個原因:
1、不愿意花組態授權的費用,組態軟件是按照項目和點數收費的,如果公司每年的項目達到幾百上千,這是一筆很大的開支。
2、有很多項目和功能,組態軟件是實現不了的,這是一個客觀事實。
如果排除這兩個原因,組態軟件可以免費使用,而且能夠滿足我們所有的功能需求,那么學習C#上位機將沒有任何意義。
但恰恰有這兩方面的原因,所以越來越多的人開始來學習上位機,能夠解決公司的難題,就是變相地給自己漲薪開道。
C#上位機應用場景
首先可以明確的是,基本上組態軟件可以實現的功能,C#上位機都可以實現。反之,卻不一樣,即使我們排除金錢的因素,也會有一些場景是組態軟件實現不了,必須要高級語言開發的。
- 業務非常復雜的項目,這個一般在特定的行業應用比較多。
- 系統對接復雜的項目,需要同時對接掃碼、相機、機器人、MES等多個系統。
- 涉及到運動控制卡、運動控制器的項目。
- 機器視覺OCR、抓取、識別、測量等的項目。
- 實驗室項目,更側重于數據分析的項目。
- 三維動畫或數字孿生的項目。
- 客戶定制化需要比較多的項目。
C#上位機開發時間
很多人會認為上位機開發成本很高、難度很大、時間很長。
對于新手來說,相對于組態軟件,C#開發上位機確實時間也會更久,甚至會不了了之。
但是隨著項目的增多,開發越來越熟練,項目積累到一定量之后,會形成一個量變到質變,會有很成熟的開發框架,很靈活的開發技巧,很完善的系統架構,而且這種積累會持續存在。
寫在最后
有小伙伴想了解什么是智能工控上位機,可以在下方評論區留言,或者私信我