上位機開發介紹

2021-09-28 21:01:56 字數 1445 閱讀 4923

上位機是指可以直接發出操控命令的計算機,一般是pc,通常用於螢幕上顯示各種訊號變化(液壓,水位,溫度等),並將這些資料儲存下來,供分析。

下位機是直接控制裝置,獲取裝置狀況的計算機,一般是plc(programmable logic controller)/微控制器(考慮一塊板子上微控制器與感測器的關係)。

上位機發出的命令首先傳給下位機,下位機再根據命令解釋成相應時序訊號直接控制相應裝置。下位機不時通過讀取裝置狀態資料(一般為模擬量),轉換成數碼訊號反饋給上位機。

下面舉個上下位機應用的例項場景。我們現在有個房間,我們需要實時監測這個房間的環境狀態,主要是監測房間的溫度、濕度,讓它們維持在一定的值左右,過高過低都不行。

傳統情況下,我們會在房間裡裝上溫濕度計,然後派個工作人員,定期的去檢視房間內溫濕度計的值,針對過高過低的情況,採取一些措施。那麼這種情況,有些不足,一是需要人定時去看,很麻煩,二是實時性非常差,很有可能環境的狀態已經異常了,這個時候工作人員不在場,導致不能及時地採取措施調整環境而引發意外。

若我們使用一套自動化的環境監測裝置,那麼我們可以在房間中,裝上電子遠傳式的溫濕度計(下位機),將溫濕度計的狀態實時遠傳到監測系統(上位機)。工作人員只需要坐在電腦前,檢視遠傳而來房間狀態,若出現異常,可以通過上位機控制室內處理異常的裝置(如溫度過高,遠端開空調),就可以不到現場便能處理異常。甚至如果裝置系統更加自動化,上位機本身便可以根據通過下位機發來的資料是否正常,而做出一些操作,都不需要人來操作。

當然,實際環境可能會有所差異,舉這個土味的例子只是為了形象地介紹上、下位機。

看到這邊你會發現上位機的存在實際上是依賴下位機的(需要硬體支撐)。如果沒有下位機,上位機就沒有資料**,沒有任何作用。而沒有上位機,對下位機來說沒有太大影響,下位機可以在自身的程式中新增一定自動化的功能,很多時候不需要上位機也行。

但實際上大多數情況上下位機是相輔相成的,乙個合理有效的上位機可以節省大量人力物力。甚至很多情況下,如惡劣的環境、複雜的環境監測、精密的裝置控制,上位機是必不可少的。

總的來講,上位機對下位機的操作大類上只有兩種,讀&寫。改變下位機狀態,操控下位機,都是寫操作。獲取裝置資料便是讀操作。兩者的基本關聯非常簡單。因此,或許你會認為上位機是技術含量較低的程式。其實不然,憑我個人理解,下位機的**邏輯通常較單一,但是下位機種類非常多變,每種裝置上的外設都不大一樣。而上位機,通常執行的環境是比較單一的,但是要與多種下位機通訊,還會涉及到ui,儲存,複雜點的還有資料分析,龐大的上位機程式**邏輯還是挺複雜的,涉及的技術也廣。乙個優秀的上位機復用性非常強,對相近裝置的操控,僅僅需要修改協議即可。

上位機開發通常使用c++(qt、mfc)、c#(.net)、vb。其中就目前的情況來看,qt和.net應該是目前應用相對比較廣的。vb和mfc都是比較老舊的工具,做的介面也比較有年代感。其中,新版本的qt還支援用python來編寫,製作的上位機程式也是不錯的。其他,一些組態軟體是專門做上位機軟體的,像組態王、力控,相當於是二次開發,門檻較低一些,操作也比較簡單,但是拓展性差。

c 上位機開發3

從.net framework 2.0開始,c 提供了serialport類用於實現串列埠控制。命名空間 system.io.ports。其中詳細成員介紹參看msdn文件。下面介紹其常用的字段 方法和事件。1.常用字段 名稱說明 portname 獲取或設定通訊埠 baudrate 獲取或設定序列波...

C Winform上位機快速開發

c 開發上位機網上資料五花八門,為了方便自己開發需要,自己動手記錄認為比較重要的關鍵點。首先,粗略規定當前介面的大小,利用tablelayoutpanel控制項,dock屬性fill 填充整個布局介面,這樣保證邊框拉伸最大化保持介面。其次,通過設計需求,放置不同的容器 文字 影象控制項,並設定控制項...

上位機 下位機

上位機是指 人可以直接發出操控命令的計算機,一般是pc,螢幕上顯示各種訊號變化 液壓,水位,溫度等 下位機是直接控制裝置獲取裝置狀況的的計算機,一般是plc 微控制器之類的。上位機發出的命令首先給下位機,下位機再根據此命令解釋成相應時序訊號直接控制相應裝置。下位機不時讀取裝置狀態資料 一般模擬量 轉...