国产成人福利免费视频,精品国产97在线观看,91久久国产成人免费观看资源,久久综合丁香激情久久,99国产视频,另类欧美视频二区,在线视频精品一区

銷(xiāo)售電話(huà) 技術(shù)微信
首頁(yè) > 應用案例 > 綜合控制 > 宇電智能溫度儀表在C#/.NET上位機開(kāi)發(fā)中的應用

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

發(fā)布日期:2021-01-21

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


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


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

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


2 AIBUS簡(jiǎn)介

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


2.1 AIBUS報文結構

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

讀取:地址代號 + 52H(82)+ 要讀的參數代號 + 00 + 00 + 校驗碼

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


2.2 AIBUS報文說(shuō)明

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

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

表1:AI儀表常用參數

表1.jpg

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

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

要讀的參數的代號×256+82+ADDR

寫(xiě)指令校驗碼計算方法為:

要寫(xiě)的參數代號×256+67+要寫(xiě)的參數值+ADDR

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

?返回報文:無(wú)論是讀還是寫(xiě),儀表都返回以下10個(gè)字節數據:

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

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


3 儀表接線(xiàn)設置

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

3.1 儀表接線(xiàn)說(shuō)明

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

表2:AI儀表接線(xiàn)圖

表2.jpg

3.2 儀表設置說(shuō)明

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

表3: AI儀表參數設置

表3.jpg

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

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

1.jpg

圖1:網(wǎng)絡(luò )結構圖


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

4.1 串口通信

   在創(chuàng )建好Windows窗體應用后,創(chuàng )建一個(gè)類(lèi),取名為AIBUS,AIBUS協(xié)議基于串口通信,因此先要實(shí)現基本的串口連接與斷開(kāi),通過(guò)調用SerialPort組件實(shí)現,代碼如下圖所示:

2.jpg

圖2:串口連接

4.2 讀取參數

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

3.jpg

圖3:通信對象

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

4.jpg

圖4:讀取參數

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

5.jpg

圖5:讀取校驗

4.3 解析報文

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

6.jpg

圖6:驗證報文

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

7.jpg

圖7:解析報文

4.4 寫(xiě)入參數

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

8.jpg

圖8:寫(xiě)入參數

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

9.jpg

圖9:寫(xiě)入校驗

5 溫度監控系統上位機開(kāi)發(fā)

   通信庫編程完成后,就可以進(jìn)行上位機開(kāi)發(fā),本上位機主要是實(shí)時(shí)采集三個(gè)不同地點(diǎn)的溫度,通過(guò)實(shí)時(shí)曲線(xiàn)進(jìn)行顯示并存儲到數據庫,便于后續分析。

5.1 UI界面設計

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

10.jpg

圖10:上位機UI界面設計

5.2 配置信息管理

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

11.jpg

圖11:配置信息

5.3 實(shí)時(shí)日志顯示

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

12.jpg

圖12:實(shí)時(shí)日志

5.4實(shí)時(shí)讀取及斷線(xiàn)重連

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

5.5實(shí)時(shí)數據存儲

   實(shí)時(shí)數據存儲采用SQLite數據庫,通過(guò)開(kāi)啟一個(gè)線(xiàn)程定時(shí)器,按照1秒的頻率定時(shí)向數據庫中存儲數據,便于后續查詢(xún)。

5.6運行效果顯示

   完成上位機開(kāi)發(fā)之后,即可運行程序。通過(guò)查看系統日志信息及實(shí)時(shí)曲線(xiàn)顯示,判斷是否正常,實(shí)際運行結果如下圖所示:

13.jpg

圖13:運行顯示

6 總結

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

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


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


双峰县| 江门市| 顺义区| 电白县| 桂平市| 池州市| 博客| 孟津县| 巴彦淖尔市| 孝感市| 扬中市| 乾安县| 建阳市| 浮山县| 定日县| 天水市| 海门市| 繁峙县| 浦江县| 和政县| 景洪市| 同江市| 祁门县| 革吉县| 敖汉旗| 揭东县| 呼图壁县| 怀化市| 达孜县| 娱乐| 图木舒克市| 丰台区| 栾城县| 静乐县| 苍梧县| 教育| 内丘县| 武功县| 加查县| 长垣县| 扎赉特旗|