一、定義
上位機:
上位機指可以直接發送操作指令的計算機或單片機,一般提供用戶操作交互界面並向用戶展示反饋數據。
典型設備類型:電腦,手機,平板,面板,觸摸屏
下位機:
下位機指直接與機器相連接的計算機或單片機,一般用於接收和反饋上位機的指令,並且根據指令控制機器執行動作以及從機器傳感器讀取數據。
典型設備類型:PLC,stm32,51,FPGA,ARM等各類可編程芯片
上位機軟件:
用於完成上位機操作交互的軟件被定義為“上位機軟件”;
二、上位機與下位機之間的關系
過程一:上位機給下位機發送控制命令,下位機收到此命令並執行相應的動作。
過程二:上位機給下位機發送狀態獲取命令,下位機收到此命令后調用傳感器測量,然后轉化為數字信息反饋給上位機。
過程三:下位機主動發送狀態信息或報警信息給上位機。
為了實現以上過程,上位機和下位機都需要單獨編程,都需要專門的開發人員在各自兩個平台編寫代碼。
上位機與下位機關系示意圖:新閣教育上位機開發
三、通信協議與通信API
實現上下位機之間的通信需要了解以下2個概念:
-
通信協議
上位機和下位機之間的通信協議有很多,只要能完成通信的協議都可以用在上位機與下位機之間。比如:
通信協議(通信方式):RS232/RS485串行通信、USB、藍牙、網絡UDP/TCP
這個通信協議(通信方式)是實現上位機與下位機之間數據交換的基本通道。
-
通信API
在通信協議的基礎上,具體發送什么數據即發送什么指令,還需要規定各個功能所對應的指令(上位機發給下位機的指令)。
每個功能所對應的指令叫做API(Application Programming Interface), 在實際工作中常稱這個api為“私有通信協議”。
舉例一條獲取溫度的api:
[包頭 + 獲取溫度對應的命令編碼(編號)+ 校驗位 + 包尾]
api的命令格式,是自定義的一種固定的數據組合格式。不受任何通信方式和通信平台的限制。
這就意味着,只要通信協議(通信方式)可以建立,上位機軟件可以是任意開發語言和任意開發平台,下位機也可以使用任意類型的單片機
四、上位機軟件開發的特點
開發上位機軟件與其他軟件最大的區別就是“上位軟件要連接設備並與之通信”。因此引發了上位機軟件開發的各項技術:通信方式多樣性、私有協議定制、通信框架的產生。
1、應用的場合有:
-
手機連接智能設備
-
電腦軟件連接工業設備
-
電腦軟件連接醫療儀器
-
電腦軟件連接打印機
-
其他需要電腦軟件控制設備的場合
2、PC軟件的沒落與前景
隨着智能手機和平板電腦的普及,現在大家都很少用電腦了,因為手機給用戶提供了很大的使用自由,隨時隨地使用種類繁多的app。不僅方便高效還非常美觀。現在能用手機app代替的軟件,都沒有人用相應電腦軟件了。因此整體上PC軟件在持續走衰,買台式機電腦的人也因此大量流失了。
那么PC和PC軟件就會沒落甚至消失嗎?就現在來看是不會(現在2020年)不僅不會還會持續好一段時間。為什么說暫時不會消失呢?是因為還有好些軟件手機app和平板電腦無法替代。
app無法代替PC軟件的一些原因:
-
操作:
PC比手機多了鍵盤和鼠標,因此操作便捷性吊打手機。 -
性能
從配置名字上看,現在手機的cpu和內存都要超過普通電腦配置了,但是其實際性能還和台式機差好遠。運行密集計算的繪圖和視頻相關的軟件還是得用PC來完成。 -
資源
電腦可以接插大量的外設。比如幾十T的硬盤、打印機、投影儀、攝像頭等一系列外部資源。可以說吊打手機了。 -
屏幕尺寸
電腦都擁有一個大屏幕,操作起來效率非常高,比如excel在大屏幕上編輯起來非常高效。可以開多個軟件窗口,隨時切換操作。平板電腦的存在和普及就是因為大屏幕。(手機端現在有excel,但是人們還是用PC軟件Excel的原因) -
電源
PC一般都接着交流電,雖然不能像手機一樣便攜,但是擁有了持久穩定的電源。對於一些應用場合還是得使用交流電的方便。使用交流電使得電源功率大也是PC性能高的一個原因。 -
專用外設
有些外設必須要用PC電腦操作,比如:網銀盾、加密狗、hifi聲卡、行業專用采集卡等。 -
其它
另一個很奇葩但是有現實存在的原因是,手機相對於PC台式機更容易丟失(這里是指把手機作為專用設備的上位機設備來使用的情況)。
這里列舉一些app無法替代電腦軟件的例子:
視頻剪輯軟件、photoshop、CAD、繪制電路板軟件、繪制機械三維圖軟件,彩超等醫療器械對應的上位機軟件
行業專用設備配的上位機軟件、軍工設備配備的上位機軟件、程序猿編程軟件
除去如上所列的這些特殊軟件需要使用PC的優勢,剩余的軟件均被手機軟件所占領。手機軟最大勝利就是他的便攜性。
當然這也合情合理,出現了新的設備平台瓜分了PC軟件的天下。技術總是要前進嘛。未來發展手機也可能會被拋棄。
因此呢,根據現在的情況來看pc軟件還有好長一段時間會持續存在。
現在遍地是手機app程序猿,對於pc軟件開發者建議是,要么轉行要么在特定行業中開發PC軟件,這樣技術積累才能持久,也能持久發展。
使用PC軟件的行業主要有:醫療器械、實驗室器械、軍工、電力行業。
五、對手機app上位機的一些說明
為了追求便攜性方便用戶使用,其實很多設備專用軟件也嘗試開發了app端上位機軟件。
但是經實際檢驗遇到如下方面的問題:
1、操作不方便,對於操作復雜的設備來說,使用app上位機軟件時,還要騰出一只手或兩只手來操作反而不方便了
2、接外設不方便,遇到最多的是接打印機不方便(雖然能接網絡打印機,但實際體驗差)
3、通信不方便,雖然可以使用藍牙或無線網絡來控制下位機設備,但是不夠穩定,尤其特定行業還使用不了任何無線連接
4、一般工業設備的上位機軟件會有多人交替操作,由於手機太便攜,因此也同意丟失或被盜。
因此對於特殊行業又想用移動設備的便攜性又想獲得相對好的操作體驗,可以使用運行Android系統的平板。
六、特殊行業的上位設備
肯德基店的點餐大屏幕(Android)、公交車上的廣告屏幕(Android)、車站的導航屏幕(PC+win7)、移動手機充電站、自助販賣機。
【dotNet工控上位機:thinger_swj】
【晶晶助教:xiketang777】