《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于.NET平臺的特種電源監(jiān)控系統(tǒng)
基于.NET平臺的特種電源監(jiān)控系統(tǒng)
來源:微型機與應(yīng)用2011年第8期
孫 強, 盧 琳
(西安理工大學(xué) 自動化與信息工程學(xué)院, 陜西 西安710048)
摘要: 設(shè)計了電源監(jiān)控系統(tǒng),利用485總線構(gòu)建上位機PC機與多臺TI公司的DSP TMS320F2812的連接,利用VB.NET編寫了串口通信程序和Modbus通信協(xié)議,并利用多線程技術(shù)實時對多臺DSP數(shù)據(jù)進(jìn)行處理和狀態(tài)顯示。搭建平臺,實驗證明滿足上位機對多臺DSP數(shù)據(jù)傳輸?shù)膶崟r性和準(zhǔn)確性。
Abstract:
Key words :

摘  要: 設(shè)計了電源監(jiān)控系統(tǒng),利用485總線構(gòu)建上位機PC機與多臺TI公司的DSP TMS320F2812的連接,利用VB.NET編寫了串口通信程序和Modbus通信協(xié)議,并利用多線程技術(shù)實時對多臺DSP數(shù)據(jù)進(jìn)行處理和狀態(tài)顯示。搭建平臺,實驗證明滿足上位機對多臺DSP數(shù)據(jù)傳輸?shù)膶崟r性和準(zhǔn)確性。
關(guān)鍵詞: .NET; 電源監(jiān)控; 485總線;多線程

     隨著特種電源用于大規(guī)模的生產(chǎn),對特種電源的集中監(jiān)控成為迫切需要。特種電源參數(shù)多,數(shù)據(jù)傳輸量大。一方面上位機在完成對多臺電源的狀態(tài)詢問的同時要保證控制指令及時傳輸?shù)较挛粰C,另一方面上位機要實時地顯示電源參數(shù)并繪制運行曲線。本設(shè)計采用485總線,下位機電源控制器基于TI公司的DSP TMS320F2812,上位機與下位機通信采用VB.NET的SerialPort串行通信類,軟件的編寫在VS2008環(huán)境下實現(xiàn)。
1 監(jiān)控系統(tǒng)結(jié)構(gòu)
    監(jiān)控系統(tǒng)結(jié)構(gòu)(如圖1)包括:上位PC機、多臺DSP、232/485轉(zhuǎn)換口、并聯(lián)2個120 Ω的終端電阻、屏蔽雙絞線。485總線連接采用半雙工通信方式,以上位PC機為主機、多臺DSP為從機的主從式結(jié)構(gòu)。現(xiàn)場控制單元以DSP為核心,一方面負(fù)責(zé)電源各項數(shù)據(jù)的采集與處理,控制電源的自動運行;另一方面接收上位機的控制命令,對命令進(jìn)行解析判斷后及時調(diào)整電源的運行參數(shù)。上位機通過232/485轉(zhuǎn)換口連接到485總線上,進(jìn)行狀態(tài)數(shù)據(jù)和控制命令的雙向傳輸,通過上位機軟件實時獲取現(xiàn)場電源的運行數(shù)據(jù)和參數(shù),而且可以在線修改工藝參數(shù)和遠(yuǎn)程控制電源運行。

2 監(jiān)控軟件設(shè)計
    監(jiān)控軟件設(shè)計包括通信協(xié)議的制定,上位機軟件的編寫和DSP程序的設(shè)計。通信協(xié)議除了制定上位機和DSP通信的數(shù)據(jù)幀格式,還規(guī)定了數(shù)據(jù)收發(fā)時狀態(tài)的轉(zhuǎn)換機制。上位機程序利用SerialPort類和多線程技術(shù)完成與多臺DSP的通信,同時利用VB.NET中多線程技術(shù)和客戶自定義事件實現(xiàn)通信,同時進(jìn)行數(shù)據(jù)處理、狀態(tài)顯示、曲線繪制等功能。
2.1 通信協(xié)議
    因為系統(tǒng)采用一主多從的結(jié)構(gòu),所以通信采用Modbus協(xié)議實現(xiàn)。Modbus協(xié)議包括ASCII和RTU,考慮到所需傳輸?shù)臄?shù)據(jù)量比較大,本設(shè)計使用RTU協(xié)議。協(xié)議棧的實現(xiàn)是基于狀態(tài)機的操作,狀態(tài)轉(zhuǎn)換如圖2所示。

\

 

    為了滿足基本的監(jiān)控目標(biāo),本設(shè)計實現(xiàn)了Modbus-RTU協(xié)議的基本讀寫功能,也就是功能號為03 10的功能,其功能說明如表1所示。

    基本的協(xié)議幀應(yīng)答數(shù)據(jù)如表2、表3所示。

2.2軟件設(shè)計
    上位機軟件結(jié)構(gòu)如圖3所示。
    程序初始化時,從數(shù)據(jù)庫中讀取設(shè)備參數(shù)列表,根據(jù)讀取的設(shè)備個數(shù)實例化設(shè)備類,新建各設(shè)備的對象。每臺設(shè)備對象是在VB2008設(shè)計的自定義控件,每一個控件的數(shù)據(jù)處理和顯示單元是一個獨立的線程。每臺設(shè)備下發(fā)數(shù)據(jù)和接收數(shù)據(jù)都要經(jīng)過先進(jìn)先出集合SendQueue和RecQueue。從發(fā)送集合SendQueue中取出數(shù)據(jù),通過串行通信類SerialPort與下位機進(jìn)行數(shù)據(jù)通信,從接收集合RecQueue中取出數(shù)據(jù)進(jìn)行相應(yīng)設(shè)備的狀態(tài)顯示。
2.2.1 通信程序設(shè)計
    通信部分采用兩個線程。一個是發(fā)送線程,從發(fā)送集合SendQueue中取出數(shù)據(jù),并從串行端口中發(fā)送數(shù)據(jù),在發(fā)送結(jié)束后添加接收數(shù)據(jù)事件(等待數(shù)據(jù)的接收)。另一個是數(shù)據(jù)處理線程,從接收集合RecQueue中取出接收到的數(shù)據(jù),判斷DSP設(shè)備的地址,然后以產(chǎn)生事件的形式通知對相應(yīng)設(shè)備數(shù)據(jù)的處理。
    (1) SerialPort初始化
  SerialPort通信參數(shù)的初始化在主窗體加載中完成,程序如下:
    port = New System.IO.Ports.SerialPort()
    port.PortName =“com1”            //打開串行端口1
    port.BaudRate=9 600          //設(shè)置波特率為9 600 b/s
    port.DataBits=8                               //8位數(shù)據(jù)位
    port.StopBits=System.IO.Ports.StopBits.One  //1位停止位
    port.Parity=System.IO.Ports.Parity.None     //無奇偶校驗
    port.Open()                           //打開串行端口1
    (2)數(shù)據(jù)接收事件DataReceived
    AddHandler port.DataReceived, AddressOf Me.DataRec 
                                         //添加接收事件
                                  //接收事件處理程序
    Private Sub DataRec(ByVal sender As Object,ByVal e As
        System.IO.Ports. SerialDataReceivedEventArgs)
    Dim Bytes As Integer
    Bytes = port.BytesToRead 
                         //獲取數(shù)據(jù)緩沖區(qū)數(shù)據(jù)的字節(jié)數(shù)
    Dim recData as Byte(Bytes-1)               //接收數(shù)據(jù)數(shù)組
    If Bytes > 0 Then
       port.Read(recData, 0, Bytes) 
                         //讀取數(shù)據(jù)緩沖區(qū)的數(shù)據(jù)到數(shù)組
    End If
2.2.2 上位機程序設(shè)計
    (1)多線程技術(shù)
    首先根據(jù)建立的設(shè)備對象數(shù)量,為每個對象建立一個獨立的線程,用于負(fù)責(zé)該設(shè)備的所有實時通信、實時狀態(tài)顯示和數(shù)據(jù)庫讀寫操作,接著啟動各線程。采用多線程平行處理后,程序具有了很好的可定制性,只要根據(jù)實際需求修改線程數(shù)量即可實現(xiàn)對不同設(shè)備數(shù)量系統(tǒng)的監(jiān)控,既簡單又可靠。
    (2) 并發(fā)性問題
    因為上位機通過一個串行端口與多臺DSP通信,每臺設(shè)備發(fā)送數(shù)據(jù)和數(shù)據(jù)處理都需要訪問SendQueue和RecQueue,所以須要避免在同一時刻訪問集合而產(chǎn)生的沖突。本設(shè)計使用VB的SynLock關(guān)鍵字,使用該關(guān)鍵字可以定義必須在線程之間同步的一定范圍的語句。通過執(zhí)行該操作,將鎖住該集合,其他設(shè)備的數(shù)據(jù)要想訪問該集合,必須等待占用此集合的操作結(jié)束并釋放此鎖后才能進(jìn)行,這樣就避免了同時操作集合而引發(fā)的沖突。
    (3) 客戶自定義事件
    因為接收到的數(shù)據(jù)需要顯示、數(shù)據(jù)處理、保存數(shù)據(jù)庫、繪制曲線等工作,如何保證這些工作能夠并行地開展成為要解決的關(guān)鍵問題。本設(shè)計采用VB的客戶自定義事件,把上述工作都放入到事件的集合中,當(dāng)產(chǎn)生事件時,就對集合中的每一項工作進(jìn)行并行處理,這樣即實現(xiàn)了“一主多播”。
2.2.3 DSP程序設(shè)計
    DSP在執(zhí)行其他任務(wù)的同時能及時上傳數(shù)據(jù)和接收上位機數(shù)據(jù),提高工作效率。F2812采用中斷發(fā)送、中斷接收方式。下面僅以發(fā)送為例,流程圖如圖4所示。

    通過對監(jiān)控軟件的設(shè)計,搭建485總線,用PC電腦連接多臺DSP控制器。實驗證明,本系統(tǒng)滿足數(shù)據(jù)傳輸?shù)膶崟r性和準(zhǔn)確性,符合特種電源監(jiān)控系統(tǒng)的實際要求。
參考文獻(xiàn)
[1] 陽憲惠,工業(yè)數(shù)據(jù)通信與控制網(wǎng)絡(luò)[M].北京:清華大學(xué)出版社,2003.
[2] TROELSEN A..NET 3.5與VB 2008高級編程[M].北京:清華大學(xué)出版社, 2009.
[3] 蘇奎峰.TMS320X281xDSP原理及C程序開發(fā)[M]. 北京:北京航空航天大學(xué)出版社, 2008.
[4] Modicon. Modbus Protocol Reference Guide[Z]. 1996.6

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲国产精品va| 宅男精品导航| 国产精品电影网站| 欧美日韩成人在线播放| 欧美成人国产va精品日本一级| 久久成人免费日本黄色| 欧美在线视频一区二区| 欧美在线999| 欧美一区二区免费| 欧美在线一二三四区| 欧美一区二区三区在线免费观看| 午夜老司机精品| 欧美一区三区二区在线观看| 欧美一区二区三区免费大片| 西瓜成人精品人成网站| 欧美一区二区三区免费在线看| 午夜综合激情| 久久久999国产| 久久综合久色欧美综合狠狠| 麻豆精品91| 欧美激情国产精品| 欧美日本在线播放| 欧美日韩精品在线观看| 欧美色图五月天| 国产精品成人aaaaa网站| 国产精品国内视频| 国产精品香蕉在线观看| 国产精品自拍网站| 国产亚洲一区二区三区| 激情另类综合| 亚洲国产精品一区二区第四页av | 亚洲影院免费观看| 亚洲激情国产| 永久免费毛片在线播放不卡| 亚洲国产天堂网精品网站| 亚洲精品一品区二品区三品区| 欧美天天综合网| 亚洲国产欧美一区| 亚洲精品中文字幕有码专区| 99精品久久久| 午夜伦理片一区| 久久免费视频观看| 欧美成人a视频| 欧美日韩免费观看一区三区| 国产精品欧美久久久久无广告| 国产精品免费区二区三区观看| 国产欧美一区二区精品性| 国产一区二区三区无遮挡| 极品av少妇一区二区| 亚洲精品欧美极品| 亚洲午夜女主播在线直播| 亚洲天堂第二页| 久久激情一区| 这里只有精品电影| 欧美在线观看一区二区| 免费观看成人| 欧美偷拍另类| 国产视频久久网| 久久精品国产综合精品| 亚洲欧洲日产国产综合网| 宅男噜噜噜66国产日韩在线观看| 欧美在线精品免播放器视频| 欧美国产高清| 国产伦精品一区二区三区高清版| 怡红院精品视频在线观看极品| 日韩视频不卡中文| 久久国产精品99国产精| 中国亚洲黄色| 久久先锋资源| 国产精品www.| 亚洲高清在线| 性欧美1819sex性高清| 亚洲精品久久久久久下一站| 性久久久久久久| 欧美激情精品久久久久久黑人| 国产精品自拍一区| 亚洲欧洲日韩在线| 欧美一区网站| 亚洲欧美精品一区| 欧美波霸影院| 狠狠色狠狠色综合| 99天天综合性| 亚洲精品一二区| 欧美一区二区三区视频| 欧美国产成人精品| 韩国福利一区| 午夜国产一区| 亚洲永久网站| 欧美精品久久一区| 精品69视频一区二区三区| 一区二区三区 在线观看视| 亚洲国产日韩欧美一区二区三区| 午夜精品成人在线| 欧美色欧美亚洲另类七区| 亚洲大胆在线| 久久精品二区| 亚洲狠狠婷婷| 国产视频欧美视频| 亚洲图片欧美午夜| 一区二区三区精密机械公司| 99国产精品国产精品久久| 久久人91精品久久久久久不卡| 国产精品久久久久久一区二区三区| 亚洲福利视频在线| 亚洲一区二区三区视频播放| 一本色道久久99精品综合| 乱码第一页成人| 国产亚洲毛片在线| 亚洲尤物视频在线| 亚洲一区欧美激情| 欧美婷婷久久| 一区二区三区精品视频在线观看| 亚洲美女在线一区| 欧美国产精品久久| 亚洲国产精品成人一区二区| 亚洲国产日韩美| 免费观看成人鲁鲁鲁鲁鲁视频 | 久久精品国产精品亚洲综合| 欧美在线视频一区二区| 国产农村妇女毛片精品久久莱园子| 亚洲深夜av| 亚洲欧美卡通另类91av| 国产精品久久二区| 亚洲欧美日韩精品久久久| 欧美一级一区| 国产视频欧美| 久久精品一区二区三区不卡牛牛| 久久日韩粉嫩一区二区三区| 韩国女主播一区二区三区| 亚洲国产精品一区| 欧美成人中文字幕在线| 亚洲精品国产精品乱码不99| 一区二区欧美精品| 欧美三级日韩三级国产三级| 一区二区三区四区国产| 午夜亚洲激情| 国内偷自视频区视频综合| 亚洲国语精品自产拍在线观看| 欧美成人精品一区二区| 亚洲精品乱码久久久久久久久 | 国产精品久久久久天堂| 亚洲女人天堂成人av在线| 欧美与黑人午夜性猛交久久久| 国产亚洲精品7777| 亚洲国产精品一区二区第四页av| 免费在线视频一区| 亚洲精品视频在线看| 亚洲欧美日韩精品久久| 国产欧美亚洲视频| 亚洲国产精品久久| 欧美日韩亚洲网| 午夜精品久久久久| 久久综合伊人| 亚洲毛片在线观看| 欧美一区二区视频观看视频| 一区二区三区中文在线观看 | 欧美性理论片在线观看片免费| 亚洲一区视频在线观看视频| 久久久欧美一区二区| 亚洲高清不卡| 亚洲新中文字幕| 国产一区二区日韩精品欧美精品 | 亚洲欧美另类国产| 好看的日韩视频| 夜夜夜久久久| 国产精品专区h在线观看| 亚洲国产精品成人综合色在线婷婷| 欧美二区在线观看| 在线一区二区三区四区| 久久精品国产第一区二区三区最新章节| 一区二区在线观看av| 欧美一级片一区| 欧美精品一区二区精品网| 亚洲女同精品视频| 欧美高清视频一区| 亚洲欧美色婷婷| 欧美激情女人20p| 亚洲欧美制服另类日韩| 欧美国产精品专区| 新片速递亚洲合集欧美合集 | 欧美日韩国产大片| 欧美一区二区三区四区高清| 欧美日本国产| 欧美中文在线免费| 欧美体内she精视频| 亚洲国内在线| 国产视频在线一区二区| 99热精品在线| 国产亚洲欧美一区二区| 国产精品99久久久久久人| 国产专区综合网| 亚洲自拍偷拍福利| 亚洲国产精品视频一区| 久久福利影视| 夜夜爽www精品| 免费亚洲电影| 欧美一区二区三区在线| 国产精品久久久久影院色老大| 亚洲人线精品午夜| 国产亚洲高清视频|