999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

HART智能儀表通用組態(tài)軟件開(kāi)發(fā)

2014-03-01 06:13:00孫明革徐松梅
關(guān)鍵詞:結(jié)構(gòu)

孫明革,關(guān) 波,徐松梅

(1.吉林化工學(xué)院信息與控制工程學(xué)院,吉林 吉林132022;2.中國(guó)石油吉林石化公司 化肥廠,吉林 吉林132021;3.吉林中國(guó)石油天然氣集團(tuán)公司染料廠,吉林吉林132021)

HART(Highway Addressable Remote Transducer)協(xié)議,是一項(xiàng)4~20mA信號(hào)與數(shù)字通信技術(shù)兼容的過(guò)渡性標(biāo)準(zhǔn),現(xiàn)已有 Rosemount,ABB,F(xiàn)uji,Moore,E+H,Honeywell,F(xiàn)isher Controls 等 70 多家公司參加了HART協(xié)議基金HCF.由于HART協(xié)議眾多不容置疑的優(yōu)點(diǎn),使它成為全球應(yīng)用最為廣泛的現(xiàn)場(chǎng)通信協(xié)議[1].

目前國(guó)內(nèi)外許多著名的儀表生產(chǎn)廠家都生產(chǎn)支持HART協(xié)議的智能現(xiàn)場(chǎng)儀表,但是不同廠家各自采用自己開(kāi)發(fā)的便攜式編程器組態(tài)各自的儀表,這樣存在操作不方便、通用性差等缺陷.雖然在PC機(jī)上開(kāi)發(fā)了相應(yīng)的組態(tài)軟件,但是也存在通用性差、功能少等缺點(diǎn).本文主要通過(guò)對(duì)HART命令的解析來(lái)闡述HART組態(tài)軟件的工作原理,以及依據(jù)HART協(xié)議,利用C#高級(jí)語(yǔ)言編寫一種支持HART協(xié)議的通用組態(tài)軟件,實(shí)現(xiàn)HART命令對(duì)現(xiàn)場(chǎng)智能設(shè)備的控制,并闡述了基本編程思路[2-3].

1 工作原理

1.1 系統(tǒng)通訊連接示意圖

HART儀表組態(tài)軟件通過(guò)USB-HART轉(zhuǎn)換器與現(xiàn)場(chǎng)智能儀表連接,當(dāng)HART儀表組態(tài)軟件發(fā)送命令至現(xiàn)場(chǎng)設(shè)備時(shí),現(xiàn)場(chǎng)智能儀表會(huì)立即回應(yīng)主機(jī),根據(jù)其應(yīng)答的數(shù)據(jù)信息可以得到當(dāng)前儀表的工作狀態(tài)以及儀表本身存儲(chǔ)的各種信息.系統(tǒng)通訊連接示意圖如圖1所示[4-5].

圖1 系統(tǒng)通訊連接示意圖

1.2 HART 協(xié)議幀

在HART協(xié)議中,實(shí)體間的數(shù)據(jù)傳輸是以幀的形式實(shí)現(xiàn)的.HART協(xié)議幀由用戶數(shù)據(jù)和地址信息封裝而成,它由前導(dǎo)符、定界符、地址域、命令域、字節(jié)長(zhǎng)度域、數(shù)據(jù)域、狀態(tài)域以及校驗(yàn)位組成[4-5].具體如表1 ~2 所示.

表1 請(qǐng)求幀

表2 響應(yīng)幀

(1)前導(dǎo)符一般是5~20個(gè)FF十六進(jìn)制字節(jié).它實(shí)際上是同步信號(hào),各通訊設(shè)備可以據(jù)此略做調(diào)整,保證信息的同步;

(2)定界符可以用來(lái)表示使用的結(jié)構(gòu)是“長(zhǎng)”結(jié)構(gòu)或者“短”結(jié)構(gòu)、消息源是否是“突發(fā)”模式消息.主機(jī)到從機(jī)為短結(jié)構(gòu)時(shí),起始位為02,長(zhǎng)幀時(shí)為82.從機(jī)到主機(jī)的短結(jié)構(gòu)值為06,長(zhǎng)結(jié)構(gòu)值為86.而為“突發(fā)”模式的短結(jié)構(gòu)值為01,長(zhǎng)結(jié)構(gòu)為81;

(3)地址域包含了主機(jī)地址和從機(jī)地址,短結(jié)構(gòu)中占1字節(jié),長(zhǎng)結(jié)構(gòu)中占5字節(jié).無(wú)論長(zhǎng)結(jié)構(gòu)還是短結(jié)構(gòu),HART協(xié)議中允許2個(gè)主機(jī)存在,用首字節(jié)的最高位來(lái)進(jìn)行區(qū)分,值為1表示第一主機(jī)地址,第二主機(jī)用0表示.短結(jié)構(gòu)用首字節(jié)的0~4位表示值為0~15的從機(jī)地址,第5、6位賦0;而長(zhǎng)結(jié)構(gòu)用后6位表示從機(jī)的生產(chǎn)廠商的代碼,第2個(gè)字節(jié)表示從機(jī)設(shè)備型號(hào)代碼,后3~5個(gè)字節(jié)表示從機(jī)的設(shè)備序列號(hào),構(gòu)成“唯一”標(biāo)志碼;

(4)命令域的范圍為253個(gè),用HEX的0~FD表示;

(5)字節(jié)長(zhǎng)度域的值表示自下一個(gè)字節(jié)到最后字節(jié)(不包括校驗(yàn)字節(jié))的字節(jié)數(shù);

(6)響應(yīng)碼只存在于從機(jī)響應(yīng)主機(jī)消息的時(shí)候,用2個(gè)字節(jié)表示.它將報(bào)告通訊中的錯(cuò)誤、接收命令的狀態(tài)(如:設(shè)備忙、無(wú)法識(shí)別命令等)和從機(jī)的操作狀態(tài);

(7)數(shù)據(jù)域表示傳送和接收的數(shù)據(jù),一般不超過(guò)25個(gè)字節(jié);

(8)校驗(yàn)方式采用縱向奇偶校驗(yàn),從起始字節(jié)開(kāi)始到奇偶校驗(yàn)前一個(gè)字節(jié)為止.

通過(guò)對(duì)HART協(xié)議的請(qǐng)求幀和響應(yīng)幀的結(jié)構(gòu)分析,得出正式進(jìn)行儀表通訊之前需進(jìn)行儀表測(cè)試,來(lái)確定制造商的設(shè)備類型、廠商的代碼、設(shè)備的版本號(hào)及標(biāo)識(shí).

2 系統(tǒng)設(shè)計(jì)

2.1 功能結(jié)構(gòu)設(shè)計(jì)

系統(tǒng)功能結(jié)構(gòu)圖包括用戶注冊(cè)模塊、發(fā)送HART命令模塊、接收數(shù)據(jù)顯示模塊、通訊狀態(tài)顯示模塊及接收發(fā)送字節(jié)數(shù).具體如圖2所示[2-3,6].

圖2 系統(tǒng)功能結(jié)構(gòu)圖

用戶注冊(cè)模塊:只有注冊(cè)用戶才能正常使用該軟件;

發(fā)送HART命令:串口打開(kāi)后,用戶可通過(guò)發(fā)送HART命令與智能儀表進(jìn)行通訊,獲取或設(shè)置現(xiàn)場(chǎng)設(shè)備的狀態(tài);

接收數(shù)據(jù)顯示:把接收來(lái)的字節(jié)轉(zhuǎn)化為文字信息或數(shù)字信息顯示在屏幕上,表示用戶所需要的狀態(tài)信息;

傳輸狀態(tài)顯示:反映響應(yīng)碼所對(duì)應(yīng)的通訊信息,只有響應(yīng)碼首字節(jié)為零時(shí)才說(shuō)明通訊正常,其它情況都表示通訊沒(méi)有正確執(zhí)行,根據(jù)響應(yīng)碼的數(shù)值顯示相應(yīng)的出錯(cuò)信息,有助于維護(hù)設(shè)備正常的運(yùn)行;

接收發(fā)送字節(jié)數(shù):顯示當(dāng)前接收或發(fā)送的字節(jié)數(shù).

2.2 系統(tǒng)流程設(shè)計(jì)

本組態(tài)軟件系統(tǒng)在經(jīng)過(guò)設(shè)備測(cè)試后確定現(xiàn)場(chǎng)智能儀表的地址域,并且等待主機(jī)發(fā)送HART命令,當(dāng)獲取具體的HART命令后,根據(jù)命令的具體含義執(zhí)行相應(yīng)的操作.具體的系統(tǒng)流程圖如圖3 所示[7-15].

圖3 系統(tǒng)流程圖

3 系統(tǒng)實(shí)現(xiàn)

3.1 組態(tài)軟件操作界面

組態(tài)軟件的主操作界面如圖4所示,這里不做說(shuō)明.

圖4 主操作界面

3.2 C#串口驅(qū)動(dòng)程序?qū)崿F(xiàn)

組態(tài)軟件主界面上的每一個(gè)按鈕對(duì)應(yīng)一個(gè)特定的HART發(fā)送命令,每個(gè)命令的發(fā)送字節(jié)數(shù)與接收字節(jié)數(shù)都不一樣,發(fā)送前必須實(shí)現(xiàn)串口連接,本軟件通過(guò)創(chuàng)建SerialPort對(duì)象來(lái)實(shí)現(xiàn)串口通信的全過(guò)程.

程序中用到的SerialPort類的方法[2-3]:

ReadLine():從輸入緩沖區(qū)讀一新行的值,如果沒(méi)有,會(huì)返回NULL;

WriteLine(char

buffer,int offset,int count):寫入輸出緩沖;

Open():打開(kāi)一個(gè)新的串口連接;

Close():關(guān)閉.

具體實(shí)現(xiàn)過(guò)程如下:

(1)添加引用

using System.IO.Ports;//串口類

(2)定義SerialPort類實(shí)例

private SerialPort SpCom = new SerialPort();//建立類實(shí)例

(3)超時(shí)設(shè)置

SpCom.WriteTimeout=2000;//寫入超時(shí)

SpCom.ReadTimeout=2000;//讀取超時(shí)

(4)設(shè)置通訊端口號(hào)及波特率、數(shù)據(jù)位、停止位和校驗(yàn)位

SpCom.PortName=this.comboBox1.SelectedItem.ToString();//獲取通訊端口號(hào)

SpCom.BaudRate=1200;//HART為固定波特率=1200HZ

SpCom.Parity = System.IO.Ports.Parity.Odd;//奇偶校驗(yàn)位,這里是奇校驗(yàn)

SpCom.DataBits=8;//8個(gè)數(shù)據(jù)位

SpCom.StopBits=System.IO.Ports.StopBits.One;//一個(gè)停止位

SpCom.ParityReplace=0;//當(dāng)發(fā)生奇偶校驗(yàn)錯(cuò)誤時(shí),設(shè)置并返回替換數(shù)據(jù)流中一個(gè)非法字符的字符.

(5)打開(kāi)串口

SpCom.Open();

(6)發(fā)送數(shù)據(jù)

SpCom.Write(char

buffer,int offset,int count);

1.2.2 術(shù)中腿部按摩。術(shù)前調(diào)整器械托盤的高度,利于操作,術(shù)中用卵圓鉗夾住手術(shù)蓋單邊緣內(nèi)側(cè),將蓋單掀起并將鉗子尾端掛于預(yù)先準(zhǔn)備好的輸液架上,在不影響手術(shù)操作以及不違反無(wú)菌原則的情況下對(duì)患者進(jìn)行被動(dòng)活動(dòng)。由遠(yuǎn)心端向近心端按摩患者小腿部肌肉,每小時(shí)按摩一次,每次5-10分鐘,直至手術(shù)結(jié)束。

(7)添加接受事件

在運(yùn)行時(shí)將事件與事件處理程序相關(guān)聯(lián)(通過(guò)委托實(shí)現(xiàn)).

+=new SerialData-

EventHandler(this.DataReceived);

函數(shù)程序?qū)崿F(xiàn)及轉(zhuǎn)化如下:

private void DataReceived(object sender,SerialDataReceivedEventArgs e)

{try{this.SpCom.BaseStream.Flush();//清除緩沖區(qū)

int j=this.SpCom.BytesToRead;

byte

Rdata=new byte[j];

count+=j;

for(int i=0;i<j;i++)

{Rcommand[count-j+i]=Rdata[i];}//數(shù)據(jù)轉(zhuǎn)移

this.SpCom.BaseStream.Flush();}

catch(Exception err)//錯(cuò)誤信息提示

{MessageBox.Show(err.Message);}}

(8)關(guān)閉串口

SpCom.Close();

3.3 數(shù)據(jù)類型轉(zhuǎn)換

數(shù)據(jù)顯示需要把接收到的字節(jié)數(shù)組經(jīng)過(guò)轉(zhuǎn)換得到用戶需要的數(shù)據(jù)形式,這種轉(zhuǎn)換包括多種數(shù)據(jù)類型的轉(zhuǎn)換[2-3].

(1)四個(gè)字節(jié)數(shù)組轉(zhuǎn)化單精度浮點(diǎn)數(shù)

byte

word=new byte[4];

word[0]=Rcommand[firstdata+3];//接收字節(jié)數(shù)組的第四個(gè)字節(jié)

word[1]=Rcommand[firstdata+2];//接收字節(jié)數(shù)組的第三個(gè)字節(jié)

word[2]=Rcommand[firstdata+1];//接收字節(jié)數(shù)組的第二個(gè)字節(jié)

word[3]=Rcommand[firstdata];//接收字節(jié)數(shù)組的第一個(gè)字節(jié)

this.textBox5.Text= System.BitConverter.ToSingle(word,0).ToString();

//將四個(gè)字節(jié)數(shù)組轉(zhuǎn)化成單精度浮點(diǎn)數(shù)并顯示在textBox5中

(2)指定字節(jié)數(shù)組序列解碼為字符串

this.textBox18.Text= System.Text.Encoding.ASCII.GetString(data,0,24);

//將data數(shù)組從0到開(kāi)始的24個(gè)字節(jié)轉(zhuǎn)化成字符串

(3)將字符序列編碼為字節(jié)數(shù)組

data=System.Text.Encoding.ASCII.Get-Bytes(str);

//將字符串str轉(zhuǎn)化為字節(jié)存入data數(shù)組中

(4)以字節(jié)數(shù)組形式返回指定的雙精度浮點(diǎn)值

order.data= System.BitConverter.GetBytes(da);//將浮點(diǎn)數(shù)da轉(zhuǎn)化為字節(jié)數(shù)組

(5)將指定區(qū)域的數(shù)值字符串轉(zhuǎn)化為等效的32位數(shù)值整數(shù)

data[0]=(byte)int.Parse(this.textBox32.Text);//將textBox32中的內(nèi)容轉(zhuǎn)化為整數(shù)

(6)壓縮ASCII(6位ASCII)

壓縮ASCII數(shù)據(jù)格式是HART協(xié)議中特別之處.壓縮的ASCII是ASCII的子集,它通過(guò)去掉每個(gè)ASCII字符的高2位而產(chǎn)生.這就允許4個(gè)壓縮的ASCII字符占用3個(gè)ASCII字符的空間.由HART字符集可以看出,HART協(xié)議不允許有小寫英文字母出現(xiàn).由于篇幅,這里就不給出壓縮ASCII數(shù)據(jù)轉(zhuǎn)化非壓縮ASCII數(shù)據(jù)子程序和非壓縮ASCII數(shù)據(jù)轉(zhuǎn)化壓縮ASCII數(shù)據(jù)子程序[2-3].

3.4 HART命令子程序(關(guān)鍵子程序)

所有命令發(fā)送前都要進(jìn)入該程序,用以確定要發(fā)送的字節(jié)數(shù)組,然后再通過(guò) Serialport類的Write屬性將字節(jié)發(fā)送給智能設(shè)備.該命令有兩個(gè)參數(shù):儀表檢測(cè)時(shí)得到的設(shè)備定界符(是長(zhǎng)幀還是短幀)和要發(fā)送的字節(jié)數(shù)組(該字節(jié)由系統(tǒng)根據(jù)用戶提供的數(shù)字或文字信息轉(zhuǎn)化而來(lái))[2-3].

為了方便讀者,這里沒(méi)有給出程序框圖,而是直接給出了實(shí)現(xiàn)代碼.

具體代碼實(shí)現(xiàn)如下:

4 結(jié) 論

本軟件包括了HART協(xié)議中的所有通用命令、普通命令和一些特殊命令,實(shí)現(xiàn)了PC機(jī)與各類支持HART協(xié)議的現(xiàn)場(chǎng)智能設(shè)備的遠(yuǎn)程通訊.具有操作界面友好、狀態(tài)顯示清晰、操作方便、價(jià)格低廉等優(yōu)點(diǎn),并且本軟件增加了自編命令用來(lái)支持某些具有特殊命令的HART儀表,提高了軟件的通用性.

[1] 丁穎,盛惠興.HART協(xié)議解析[J].現(xiàn)代電子技術(shù).2004,27(1):14-17.

[2] 熊輝,馬占德,牛耀林,等.基于HART協(xié)議的PC組態(tài)軟件設(shè)計(jì)[J].石油化工自動(dòng)化,2007(1):59-68.

[3] 張夏,魏文雄,余淼,等.基于Windows的HART組態(tài)軟件設(shè)計(jì)[J].計(jì)算機(jī)系統(tǒng)工程,2012,38(16):241-244.

[4] 郭福田,姜軍,劉賢梅,等.基于HART協(xié)議的通信技術(shù)[J].大慶石油學(xué)院學(xué)報(bào),2000,24(1):55-77.

[5] 孫廣軍.HART現(xiàn)場(chǎng)通訊協(xié)議[J].微計(jì)算機(jī)信息,2002(2):4-12.

[6] 曹慶年,胡欣欣,孟開(kāi)元,等.基于HART協(xié)議的工業(yè)無(wú)線監(jiān)控系統(tǒng)設(shè)計(jì)[J].西安石油大學(xué)學(xué)報(bào),2012,27(1):99-103.

[7] 趙昀,魏祥毓,龐彥斌,等.符合HART協(xié)議的現(xiàn)場(chǎng)儀表通信卡軟件研究開(kāi)發(fā)[J].儀器儀表學(xué)報(bào),2006,22(z2):428-431.

[8] 孔祥偉,周杏鵬.基于HART協(xié)議的智能壓力變送器的設(shè)計(jì)與實(shí)現(xiàn)[J].儀表技術(shù)與傳感器,2010(2):15-17.

[9] 郝靖,李擎,楊磊.基于HART協(xié)議的智能壓力變送器[J].儀表技術(shù)與傳感器,2007(2):17-22.

[10]王忠民,梁玉偉.基于HART協(xié)議的礦用信號(hào)轉(zhuǎn)換器的設(shè)計(jì)[J].工礦自動(dòng)化,2011(8):116-118.

[11]鄭永軍,李文軍,梁國(guó)偉等.基于HART協(xié)議的金屬管浮子流量計(jì)[J].傳感器與微系統(tǒng),2010,25(2):95-97.

[12]陳東宇,施一明,金建祥.基于HART協(xié)議的智能擴(kuò)散硅壓力變送器[J].自動(dòng)化儀表,2001,22(6):17-19.

[13]劉軍華.HART協(xié)議通訊器在智能變送器實(shí)際測(cè)量中的應(yīng)用[J].化工自動(dòng)化及儀表,2010,37(2):93-94.

[14]馬小永,黃玲.傳統(tǒng)變送器的HART改造[J].自動(dòng)化儀表,2005,26(1):22-24.

[15]陳衛(wèi)兵,束慧.基于HART協(xié)議和模糊PID控制的智能氧量分析儀[J].計(jì)算機(jī)測(cè)量與控制,2010,18(11):2671-2674.

猜你喜歡
結(jié)構(gòu)
DNA結(jié)構(gòu)的發(fā)現(xiàn)
《形而上學(xué)》△卷的結(jié)構(gòu)和位置
論結(jié)構(gòu)
新型平衡塊結(jié)構(gòu)的應(yīng)用
模具制造(2019年3期)2019-06-06 02:10:54
循環(huán)結(jié)構(gòu)謹(jǐn)防“死循環(huán)”
論《日出》的結(jié)構(gòu)
縱向結(jié)構(gòu)
縱向結(jié)構(gòu)
我國(guó)社會(huì)結(jié)構(gòu)的重建
人間(2015年21期)2015-03-11 15:23:21
創(chuàng)新治理結(jié)構(gòu)促進(jìn)中小企業(yè)持續(xù)成長(zhǎng)
主站蜘蛛池模板: 国产欧美高清| 亚洲综合久久一本伊一区| 国产99热| 激情网址在线观看| 99久久精品视香蕉蕉| 国产综合另类小说色区色噜噜| 国产精品九九视频| 激情综合网激情综合| 国产精品yjizz视频网一二区| 亚洲欧美日韩综合二区三区| 欧美啪啪一区| 国产av无码日韩av无码网站| 色综合国产| 国产精品视频白浆免费视频| 亚洲精品午夜无码电影网| 国产人成在线视频| 91成人精品视频| 91久久偷偷做嫩草影院电| 一区二区理伦视频| 又爽又大又黄a级毛片在线视频| 色哟哟国产精品| 欧美亚洲日韩不卡在线在线观看| 亚洲精品777| 国产女人18毛片水真多1| 又爽又大又黄a级毛片在线视频 | 日韩午夜片| 亚欧成人无码AV在线播放| 美女内射视频WWW网站午夜| 无码电影在线观看| 无码福利日韩神码福利片| 国产福利在线免费观看| 欧美综合在线观看| 国产乱子伦精品视频| 日韩欧美视频第一区在线观看| 中文字幕日韩视频欧美一区| 久久免费视频6| 欧美精品高清| 亚洲看片网| 午夜少妇精品视频小电影| 国产色爱av资源综合区| 美女国产在线| 一本大道AV人久久综合| 一级黄色片网| 欧美精品啪啪| 色爽网免费视频| 久久国产高清视频| 全部毛片免费看| 国产乱子伦一区二区=| 国产在线精品人成导航| 国产在线无码av完整版在线观看| 久久综合亚洲鲁鲁九月天| 国产成人亚洲无码淙合青草| av一区二区三区在线观看 | 天天爽免费视频| 91成人在线免费观看| 五月天天天色| 亚洲中文字幕日产无码2021| 极品国产在线| 日韩午夜福利在线观看| 亚洲精品在线观看91| 亚洲第一香蕉视频| 国产综合欧美| 日日噜噜夜夜狠狠视频| 欧美日韩午夜视频在线观看| 亚洲黄色成人| 大乳丰满人妻中文字幕日本| 国产成人1024精品| 国产精品护士| 亚洲系列中文字幕一区二区| 亚洲欧美在线看片AI| 国产真实乱人视频| 国产精品人成在线播放| 福利在线免费视频| 日韩性网站| 亚洲欧美不卡视频| 黄色片中文字幕| 中文字幕在线日本| 福利在线不卡| 欧美一区精品| 亚洲大学生视频在线播放| 国产精品久久久久久久久久98| 国产网站免费观看|