宇電智能溫度儀表在C#/.NET上位機開發(fā)中的應(yīng)用

   2021-02-01 572190
核心提示:近幾年,C#/.NET上位機開發(fā)應(yīng)用越來越廣泛,相對于傳統(tǒng)的組態(tài)軟件的方式,C#開發(fā)上位機具有靈活、易學(xué)、擴展性強的特點。本文使用VS2019作為開發(fā)軟件,SQLite作為數(shù)據(jù)存儲軟件,硬件使用廈門宇電溫度控制器,開發(fā)一套通用的上位機監(jiān)控系統(tǒng)。

付加勁 天津星閣教育科技有限公司 天津 300450 

摘要:組態(tài)軟件作為一種通用軟件,體系結(jié)構(gòu)較為龐大、功能軟件包多、價格也比較昂貴,而且對于一些復(fù)雜的業(yè)務(wù)邏輯或自定義的協(xié)議,實現(xiàn)起來比較麻煩。近幾年,C#/.NET上位機開發(fā)應(yīng)用越來越廣泛,相對于傳統(tǒng)的組態(tài)軟件的方式,C#開發(fā)上位機具有靈活、易學(xué)、擴展性強的特點。本文使用VS2019作為開發(fā)軟件,SQLite作為數(shù)據(jù)存儲軟件,硬件使用廈門宇電溫度控制器,開發(fā)一套通用的上位機監(jiān)控系統(tǒng)。 

關(guān)鍵字:組態(tài)軟件;上位機;宇電溫度控制器;VS2019 

Abstract:As a general-purpose software, configuration software has a relatively large system structure, many functional software packages, and a relatively expensive price. It is also troublesome to implement some complex business logic or custom protocols. In recent years, the development and application of C#/.NET host computer has become more and more extensive. Compared with the traditional configuration software, C# development host computer has the characteristics of flexibility, easy learning, and strong scalability. This article uses VS2019 as the development software, SQLite as the data storage software, and the hardware uses the Xiamen Yudian temperature controller to develop a universal host computer monitoring system.

1 引言

在工業(yè)自動化領(lǐng)域,上位機軟件一直在扮演著一個至關(guān)重要的角色。一般情況下,我們通常會采用組態(tài)軟件來開發(fā)上位機,然而,組態(tài)軟件作為一種通用軟件,體系結(jié)構(gòu)較為龐大、功能軟件包多、價格也比較昂貴,而且對于一些復(fù)雜的業(yè)務(wù)邏輯或自定義的協(xié)議,實現(xiàn)起來比較麻煩。

近幾年來,高級語言開發(fā)上位機應(yīng)用越來越廣泛,相對于傳統(tǒng)的組態(tài)軟件,采用高級語言開發(fā)上位機具有更靈活、擴展性更強、更便宜的特點。在眾多的高級語言當(dāng)中,微軟.NET平臺下的C#顯得尤為突出。C#/.NET開發(fā)上位機相對于其他的語言而言,更加方便快捷,而且可以獲取到的資料也相對比較多。 

2 AIBUS簡介

AIBUS協(xié)議是宇電為AI系列儀表開發(fā)的一個協(xié)議,其指令比Modbus更簡單、更可靠,而且通信速率比Modbus更高,同時也具備組網(wǎng)功能,可以在一個RS485總線上連接多達80臺儀表。 

2.1 AIBUS報文結(jié)構(gòu)

AI儀表采用16進制數(shù)據(jù)格式來表示各種指令代碼及數(shù)據(jù)。AI儀表軟件通訊指令經(jīng)過優(yōu)化設(shè)計,標準的通訊指令只有兩條,一條為讀指令,一條為寫指令,兩條指令使得上位機軟件編寫容易,但能100%完整地對儀表進行操作;標準讀和寫指令分別如下:

讀?。旱刂反?+ 52H(82)+ 要讀的參數(shù)代號 + 00 + 00 + 校驗碼

寫入:地址代號 + 43H(67)+ 要寫的參數(shù)代號 + 寫入低字節(jié) + 寫入高字節(jié) + 校驗碼 

2.2 AIBUS報文說明

?地址代號:AI儀表有效地址為0-80,協(xié)議規(guī)定地址代號為兩個相同的字節(jié),數(shù)值為(儀表地址+80H),如地址為5,那么地址代碼將對應(yīng)85H 85H。

?參數(shù)代號:參數(shù)代號表示各個參數(shù)對應(yīng)的值,這個需要參考協(xié)議說明書,下面列舉部分常用參數(shù):

表1:AI儀表常用參數(shù)
宇電智能溫度儀表在C#/.NET上位機開發(fā)中的應(yīng)用

?校驗碼:校驗碼采用 16 位求和校驗方式。

讀指令校驗碼計算方法為:

要讀的參數(shù)的代號×256+82+ADDR

寫指令校驗碼計算方法為:

要寫的參數(shù)代號×256+67+要寫的參數(shù)值+ADDR

公式中 ADDR為儀表地址,范圍是 0~80(注意不要加上 80H)。校驗碼為2 個字節(jié),其低字節(jié)在前,高字節(jié)在后。

?返回報文:無論是讀還是寫,儀表都返回以下10個字節(jié)數(shù)據(jù):

返回:測量值 PV + 給定值SV + 輸出值MV及報警狀態(tài) + 所讀/寫參數(shù)值 + 校驗碼

PV、SV 及所讀參數(shù)值各占 2 個字節(jié),低位字節(jié)在前,高位字節(jié)在后,整數(shù)無法表示小數(shù)點,要求用戶在上位機處理;MV 占一個字節(jié),數(shù)值范圍-110~+110,狀態(tài)位占一個字節(jié),校驗碼占 2個字節(jié),共 10個字節(jié)。 

3 儀表接線設(shè)置

在實現(xiàn)上位機通信前,需要搭建儀表通信環(huán)境,這里主要針對儀表的接線及相關(guān)參數(shù)設(shè)置進行說明。

3.1 儀表接線說明

針對AI-500系列儀表,通信接口為485接口,因此需要通過將485總線轉(zhuǎn)換成USB接口,然后再接入上位機,根儀表測試的接線圖,還需要接入220V電源、Pt100鉑熱電阻,具體接線方式如下表所示:

表2:AI儀表接線圖
宇電智能溫度儀表在C#/.NET上位機開發(fā)中的應(yīng)用

3.2 儀表設(shè)置說明

完成上述接線之后,需要設(shè)置一下儀表的相關(guān)參數(shù),根據(jù)儀表的說明書,主要設(shè)置輸入規(guī)格、通信地址、波特率這三個參數(shù),如下表所示:

表3: AI儀表參數(shù)設(shè)置
宇電智能溫度儀表在C#/.NET上位機開發(fā)中的應(yīng)用

參數(shù)設(shè)置完畢,可以看到儀表上已經(jīng)可以顯示室內(nèi)溫度。

為了便于組成網(wǎng)絡(luò),這里選擇3個儀表,將另外2個儀表的輸入規(guī)格和波特率設(shè)置成一樣,但是通信地址分別設(shè)置成3和4,在接線方面,直接將485接口的A和B并接在一起即可,網(wǎng)絡(luò)接線圖如下所示:

宇電智能溫度儀表在C#/.NET上位機開發(fā)中的應(yīng)用
圖1:網(wǎng)絡(luò)結(jié)構(gòu)圖 

4 AIBUS通信協(xié)議開發(fā)

4.1 串口通信

在創(chuàng)建好Windows窗體應(yīng)用后,創(chuàng)建一個類,取名為AIBUS,AIBUS協(xié)議基于串口通信,因此先要實現(xiàn)基本的串口連接與斷開,通過調(diào)用SerialPort組件實現(xiàn),代碼如下圖所示:

宇電智能溫度儀表在C#/.NET上位機開發(fā)中的應(yīng)用
圖2:串口連接

4.2 讀取參數(shù)

每次通信返回結(jié)果可能包含很多參數(shù),這里主要獲取5個重要的參數(shù),分別是實際值、設(shè)定值、參數(shù)值、高限報警、低限報警,并將這5個參數(shù)封裝成一個類,如下圖所示:

3.jpg
圖3:通信對象

參考協(xié)議中的讀取報文,讀取參數(shù)將地址代號與參數(shù)代號作為參數(shù),然后將返回值解析成一個AIBUSParam對象,如下圖所示:

4.jpg
圖4:讀取參數(shù)

讀取報文中涉及到校驗,對于讀取校驗,按照協(xié)議進行校驗和累加,zui終結(jié)果轉(zhuǎn)換2個字節(jié)返回,如下圖所示:

5.jpg
圖5:讀取校驗

4.3 解析報文

解析報文先是判斷返回報文校驗是否正確,然后按照協(xié)議進行解析,返回AIBUSParam對象,驗證報文主要是做校驗判斷,對前面N-2個字節(jié)做校驗,然后與zui后2個字節(jié)對比,這樣就可以知道報文校驗是否正確,如下圖所示:

6.jpg
圖6:驗證報文

驗證報文通過后,需要根據(jù)協(xié)議來對返回的報文進行解析,zui終返回成一個AIBUSParam對象,如下圖所示:

7.jpg
圖7:解析報文

4.4 寫入?yún)?shù)

參考協(xié)議中的寫入報文,寫入?yún)?shù)將地址代號、參數(shù)代號與參數(shù)值作為參數(shù),返回值仍然解析成一個AIBUSParam對象,如下圖所示:

8.jpg
圖8:寫入?yún)?shù)

寫入報文中涉及到校驗,對于寫入校驗,按照協(xié)議進行校驗和累加,zui終結(jié)果轉(zhuǎn)換2個字節(jié)返回,如下圖所示:

9.jpg
圖9:寫入校驗

5 溫度監(jiān)控系統(tǒng)上位機開發(fā)

通信庫編程完成后,就可以進行上位機開發(fā),本上位機主要是實時采集三個不同地點的溫度,通過實時曲線進行顯示并存儲到數(shù)據(jù)庫,便于后續(xù)分析。

5.1 UI界面設(shè)計

監(jiān)控系統(tǒng)UI界面主要包括三部分,分別為實時曲線、系統(tǒng)日志及參數(shù)顯示,設(shè)計布局如下圖所示:

10.jpg
圖10:上位機UI界面設(shè)計

5.2 配置信息管理

配置信息主要包括通信端口號、波特率、儀表1地址代號、儀表2地址代號、儀表3地址代號等,這里采用ini的方式進行存儲,通過調(diào)用底層API的方式讀取配置信息,封裝成對象。ini文件存儲形式如下所示:

11.jpg
圖11:配置信息

5.3 實時日志顯示

系統(tǒng)運行過程中的各種狀態(tài)都將通過日志的形式進行展示,這里采用ListView+委托的方式來實現(xiàn),代碼如下所示:

12.jpg
圖12:實時日志

5.4實時讀取及斷線重連

實時讀取采用的是多線程的方式,直接輪詢讀取各個儀表的參數(shù),讀取完成后進行二次解析并顯示。對于斷線重連,每次如果讀取失敗,則將錯誤次數(shù)加1,當(dāng)讀取錯誤次數(shù)超過max錯誤次數(shù)時,說明讀取異常,當(dāng)出現(xiàn)讀取異常時,需要判斷COM口是否存在,如果仍然存在,則不需要重新連接,直接繼續(xù)讀取即可,如果COM口不存在,則需要重新連接,從而實現(xiàn)自動斷線重連。

5.5實時數(shù)據(jù)存儲

實時數(shù)據(jù)存儲采用SQLite數(shù)據(jù)庫,通過開啟一個線程定時器,按照1秒的頻率定時向數(shù)據(jù)庫中存儲數(shù)據(jù),便于后續(xù)查詢。

5.6運行效果顯示

完成上位機開發(fā)之后,即可運行程序。通過查看系統(tǒng)日志信息及實時曲線顯示,判斷是否正常,實際運行結(jié)果如下圖所示:

13.jpg
圖13:運行顯示

6 總結(jié)

本文通過對AI-500系列儀表進行研究,zui終實現(xiàn)C#開發(fā)出一個溫度監(jiān)控系統(tǒng)。從AIBUS通信協(xié)議剖析入手,結(jié)合實際硬件,對其接線及參數(shù)設(shè)置進行說明,zui終通過C#結(jié)合協(xié)議內(nèi)容開發(fā)出AIBUS對應(yīng)的通信庫,使用開發(fā)好的通信庫,運用多線程技術(shù)及SQLite數(shù)據(jù)庫,實現(xiàn)zui終的宇電智能儀表監(jiān)控系統(tǒng)的開發(fā)。

隨著物聯(lián)網(wǎng)、云計算、人工智能等技術(shù)的發(fā)展,以及國家“工業(yè)4.0”和“中國制造2025”口號的提出,智能制造行業(yè)近幾年得到了迅速發(fā)展,越來越多的電氣工程師意識到上位機開發(fā)的重要性,本文以工業(yè)領(lǐng)域常見的一款智能儀表,結(jié)合C#高級語言,實現(xiàn)與其通信、顯示及存儲,這正是工業(yè)物聯(lián)網(wǎng)發(fā)展的一個基石。因此,相信這篇文章,不管是對電氣工程師還是工業(yè)領(lǐng)域,應(yīng)該都很有實用價值。 

作者簡介:付加勁,杭州電子科技大學(xué)工程碩士,主要從事工業(yè)自動化相關(guān)教學(xué)工作。

 
分享到: 0
收藏 0 評論 0
 
更多>同類方案
免責(zé)申明
推薦方案
點擊排行
最新資訊更多>
最新供應(yīng)更多>
網(wǎng)站首頁  |  聯(lián)系方式  |  關(guān)于我們  |  問題解析  |  版權(quán)隱私  |  使用協(xié)議  |  網(wǎng)站地圖  |  排名推廣  |  廣告服務(wù)  |  積分換禮  |  網(wǎng)站留言  |  RSS訂閱  |  違規(guī)舉報  |  粵ICP備1207862號

中國智能化網(wǎng)(zgznh®)--引領(lǐng)工業(yè)智能化產(chǎn)業(yè)發(fā)展 共享智能化+優(yōu)質(zhì)平臺

版權(quán)所有:深圳市智控網(wǎng)絡(luò)有限公司 學(xué)術(shù)指導(dǎo):深圳市智能化學(xué)會

粵ICP備12078626號

深公網(wǎng)安備案證字第 4403101901094 號 | 粵公網(wǎng)安備 44030702001206號