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