1. 程式人生 > >開源一個串列埠上位機原始碼

開源一個串列埠上位機原始碼

是傑傑之前做的
一個參賽小作品

其實在做這個恆溫控制系統專案的時候,師弟就問我,什麼是上位機。。。。。可能很多師弟師妹都沒一個大概的概念。

現在,就來看下什麼是上位機:

     上位機是指可以直接發出操控命令的計算機,一般是PC/host computer/master computer/upper computer,螢幕上顯示各種訊號變化(液壓,水位,溫度等)。下位機是直接控制裝置獲取裝置狀況的計算機,一般是PLC/微控制器single chip microcomputer/slave computer/lower computer之類的。上位機發出的命令首先給下位機,下位機再根據此命令解釋成相應時序訊號直接控制相應裝置。下位機不時讀取裝置狀態資料(一般為模擬量),轉換成數字訊號反饋給上位機。簡言之如此,實際情況千差萬別,但萬變不離其宗:上下位機都需要程式設計,都有專門的開發系統。

在概念上,控制者和提供服務者是上位機,被控制者和被服務者是下位機,也可以理解為主機和從機的關係,但上位機和下位機是可以轉換的。

工作原理

  兩機如何通訊,一般取決於下位機,TCP/IP一般是支援的,但是下位機一般具有更可靠的獨有通訊協議。通常上位機和下位機通訊可以採用不同通訊協議,可以有RS232的串列埠通訊或者採用RS485序列通訊。採用封裝好的程式開發工具就可以實現下位機和上位機的通訊,當然可以自己編寫驅動類的介面協議控制上位機和下位機的通訊。

通常工控機,工作站,觸控式螢幕作為上位機,通訊控制PLC,微控制器等作為下位機,從而控制相關裝置元件和驅動裝置。

既然差不多知道什麼是上位機與下位機,那麼,我們做到小喇叭的要求:

就得寫個上位機,我自己也是學了下C#,用來開發上位機還是可以的,開發環境用visual studio 2015,微軟的軟體真的是很簡單,之前看到有人問為什麼微軟的軟體是最多人用的,答:因為那是傻瓜式操作。。。。。我不得不認同。。。  

迴歸正題:先看看我們的上位機有什麼功能:

1)能夠實現與下位機的正常通訊。這必須得有,不然算哪門子上位機啊。

2)能夠控制我們的恆溫系統,通過電腦控制恆溫系統的溫度。這種應用場景很正常,我在機房就能控制我某一個地方的溫度,簡單方便。

3)能夠實時顯示溫度與波形。這種應用的場景也是非常常見,實時顯示溫度我們可以知道溫度是否正常,而波形我們能快速看出恆溫系統空間溫度是否出現異常。

4)資料儲存功能,自動將實時的溫度儲存下來,加入 日期與時間,方便以後排查問題的時候用於檢測某段時間的溫度是否正常,這也是很使用的功能。

      說了那麼多,看看我們的上位機。由於我以前用的別人的上位機都是色調比較單一的,而我,又是那種比較活潑開朗的人,覺得單一的灰色調比較死沉,我不喜歡,當然那是別人做的上位機,即使再不喜歡,要用還是要用,沒辦法,

現在我自己做的就不一樣了,得給他做個五顏六色出來。亮瞎眼。。。。。

當我們的溫度達到目標溫度的時候,下位機就會控制自己的溫度,以保持溫度恆定,同時在上位機顯示看到溫度為一條曲線,由於我設定的溫度為整數,沒有小數,但是我們通過下位機可以看到實時的溫度,精確在0.4範圍左右。

4.jpg

當我們把上位機與下位機通訊協議切斷,可以看到上位機接受不到資料(在軟體右下角粉紅色的視窗,沒有顯示接收到的資料),上位機的波形就會回到預設值(0°),就是上圖的樣子

5.jpg

6.jpg

當我們需要後期的檢測與排除故障的時候,我們可以從我們儲存的溫度來做簡單的排查,上位機自動儲存的溫度資料,精確到某天某時某分某秒,簡單方便。也是一個很實用的功能當沒什麼故障的時候,我們只需要隔一段時間吧資料清一下就OK了。

本次上位機介紹到此結束

原始碼檔案會可以關注公眾號獲得。

本上位機僅為傑傑個人娛樂,不做商業用途。原始碼改自開發快-小白哥的上位機

如需轉載請說明出處。

歡迎關注“創客飛夢空間”

乾貨不間斷

在未來的日子裡

創客飛夢空間與你們同在,放飛我們的夢想