Hart通信在DPV1中的實(shí)現(xiàn)
Hart通信在DPV1中的實(shí)現(xiàn)
PROFIBUS是一種用于工廠自動(dòng)化車間級(jí)監(jiān)控和現(xiàn)場設(shè)備層數(shù)據(jù)通訊與控制的現(xiàn)場總線技術(shù)??蓪?shí)現(xiàn)現(xiàn)場設(shè)備層到車間級(jí)監(jiān)控的分散式數(shù)字控制和現(xiàn)場通信,從而為實(shí)現(xiàn)工廠綜合自動(dòng)化和現(xiàn)場設(shè)備智能化提供了可行的解決方案。PROFIBUS-DP作為PROFIBUS的規(guī)范子集,主要面向工廠現(xiàn)場層應(yīng)用,可完成包括可編程控制器、自動(dòng)控制設(shè)備、傳感器、執(zhí)行器間的快速可靠的循環(huán)通信任務(wù)。
HART是由Rosemount公司開發(fā)的一個(gè)傳輸標(biāo)準(zhǔn),是一種用于現(xiàn)場智能儀表和控制室設(shè)備之間的通信協(xié)議。其特點(diǎn)是在現(xiàn)有的模擬信號(hào)傳輸線上實(shí)現(xiàn)數(shù)字信號(hào)通信。它屬于模擬系統(tǒng)向數(shù)字系統(tǒng)轉(zhuǎn)變過程中的過渡性產(chǎn)品。
通過與HART基金會(huì)的合作,PI專門定義了一個(gè)HART規(guī)范,以用于將HART集成人PROFIBUS系統(tǒng)中,也可為控制器通過PROFIBUS-DP總線控制現(xiàn)場HART設(shè)備提供依據(jù)。本文描述了以此規(guī)范為依據(jù)并通過DPVl實(shí)現(xiàn)控制器對(duì)現(xiàn)場HART設(shè)備進(jìn)行控制的方法。
1 系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)
圖1所示是本系統(tǒng)的總體實(shí)現(xiàn)方案。系統(tǒng)中的通信是由HART管理軟件(Hart Client)首先發(fā)起,并通過通信請(qǐng)求給DP主站(DP Master),DP主站在收到此請(qǐng)求后,再將Hart Client發(fā)送的請(qǐng)求數(shù)據(jù)轉(zhuǎn)換為DPVl報(bào)文格式,并通過DP總線將報(bào)文發(fā)送到DP從站(DP Slave),在此,DP從站同時(shí)又充當(dāng)Hart主站(Hart Master Device HMD),其主要功能就是將DP Master發(fā)送的DP格式報(bào)文轉(zhuǎn)換為Hart格式的報(bào)文并發(fā)送到Hart設(shè)備(Hart Device)。對(duì)于某些來自Hart Client的請(qǐng)求,HMD則不需要將請(qǐng)求發(fā)送給Hart設(shè)備,而是直接回復(fù),如讀取HMD有關(guān)參數(shù)數(shù)據(jù),該類請(qǐng)求的實(shí)現(xiàn)過程如圖2所示。
2 DPVl實(shí)現(xiàn)
DPVl在DPV0的基礎(chǔ)上增加了新服務(wù),對(duì)于1類主站,DPVl新增的服務(wù)主要有:
◇非周期讀服務(wù):MSACl_Read;
◇非周期寫服務(wù):MSACl_Write;
◇非周期報(bào)警:MSACl_Alarm、MSACl_Alarm_Ack、MSACl_Status。
而對(duì)于2類主站,其新增的服務(wù)主要有:
◇非周期讀服務(wù):MSAC2_Read;
◇非周期寫服務(wù):MSAC2_Write;
◇與從站建立通訊服務(wù):MSAC2_IniTIate;
◇中指與從站的通訊:MSAC2_Abort;
◇數(shù)據(jù)傳輸:MSAC2_Data_Transport。
根據(jù)規(guī)范,在為Hart提供通訊中只用到了非周期讀寫兩個(gè)服務(wù),和利時(shí)公司已用軟件實(shí)現(xiàn)了各個(gè)版本的DP主站功能,本文主要介紹在DPV0版本的DP主站程序中添加非周期讀寫服務(wù)來實(shí)現(xiàn)部分DPVl功能。圖3所示是非周期狀態(tài)轉(zhuǎn)換在主站狀態(tài)轉(zhuǎn)換圖中所處的位置。
2.1 從站參數(shù)集的擴(kuò)展
根據(jù)DP協(xié)議,Sl_Flag被擴(kuò)展后,便可提供更多的控制信息給DPVl主站。此字節(jié)與非周期讀寫有關(guān)的是第四位(DPVl_Supported)。如果此位設(shè)置為1,則從站支持DPVl功能,否則工作在DPV0功能下。其它位的詳解請(qǐng)參考相關(guān)文獻(xiàn)。在從站參數(shù)集中擴(kuò)展的其它字節(jié)(如Max_Alarm_Len、Alarm_Mode等)都是與報(bào)警有關(guān)的,在此不予關(guān)注,可參考文獻(xiàn)部分。
2.2 非周期讀服務(wù)的實(shí)現(xiàn)
DPVl設(shè)備是由槽和索引尋址的。所謂槽,不一定就是一個(gè)實(shí)際的物理對(duì)象,槽可以是物理的或邏輯的數(shù)據(jù)塊。槽的內(nèi)部通常由索引來尋址,索引可以標(biāo)識(shí)變量或代表完備數(shù)據(jù)塊。與DPV0的報(bào)文格式不同,非周期讀使用的服務(wù)節(jié)點(diǎn)號(hào)為51,在數(shù)據(jù)域DU中,除了有交換的數(shù)據(jù)外,前四個(gè)字節(jié)分別定義了功能號(hào)(FuncTIon_Num)、槽號(hào)(Slot)、索引號(hào)(Index)和用戶數(shù)據(jù)長度(Data_Length)。其報(bào)文格式如圖4所示。
非周期讀服務(wù)的功能號(hào)通常為0x5E,當(dāng)讀取的數(shù)據(jù)正確返回時(shí),Read.res的功能號(hào)的Bit7為0;而當(dāng)讀操作沒有結(jié)果時(shí),功能號(hào)的Bit7為1(FuncTIon_Num=0xDE),此時(shí),其后的3個(gè)字節(jié)為出錯(cuò)的具體編碼。如:
Error_Decode:
具體的錯(cuò)誤編碼請(qǐng)參考相關(guān)文獻(xiàn)。
非周期讀服務(wù)和周期性循環(huán)數(shù)據(jù)交換的讀數(shù)據(jù)服務(wù)不同,非周期讀服務(wù)一般要等待多個(gè)系統(tǒng)循環(huán)周期后,才能得到響應(yīng)的數(shù)據(jù)。
2.3 非周期寫服務(wù)的實(shí)現(xiàn)
非周期寫服務(wù)的實(shí)現(xiàn)和非周期讀類似,只是功能號(hào)不同,非周期寫服務(wù)的功能號(hào)為:
FuncTIon Num=0x5F。
3 Hart通信的實(shí)現(xiàn)
通過DPVl實(shí)現(xiàn)Hart的通信時(shí),首先要解決協(xié)議的轉(zhuǎn)換問題,即如何將Hart協(xié)議報(bào)文通過DP主站傳輸?shù)紻P從站(即HMD)中,再將報(bào)文轉(zhuǎn)換為Hart報(bào)文傳送到現(xiàn)場Hart設(shè)備中。在應(yīng)答中,也存在同樣的問題。規(guī)范中定義了透明和壓縮兩種傳輸格式。
顧名思義,透明格式就是將Hart報(bào)文簡單的嵌入到PROFIBUS報(bào)文中,當(dāng)然,這種結(jié)構(gòu)會(huì)有冗余的信息,本文就是采用這種格式實(shí)現(xiàn)傳輸。其格式如圖5所示。
壓縮格式一般會(huì)盡可能的精簡嵌入到PROFIBUS報(bào)文的Hart報(bào)文,以便能夠傳輸更大的數(shù)據(jù)長度,那些被省去的報(bào)文信息可由HMD經(jīng)過分析填充到Hart報(bào)文中,比如Hart報(bào)文中的ADDRS就可以由PROFIBUS報(bào)文中的Slot_Num和Index組合得到。
另一個(gè)需要解決的問題是第一次和HMD如何實(shí)現(xiàn)。由于結(jié)構(gòu)的不同,HMD又可分為簡單HMD和模塊化HMD。簡單HMD中僅有一個(gè)HartMaster,在這個(gè)Hart Master中會(huì)有很多用索引標(biāo)識(shí)的數(shù)據(jù)對(duì)象,其中有一個(gè)總目錄(Direetory)的數(shù)據(jù)對(duì)象,其它數(shù)據(jù)對(duì)象的索引在這個(gè)數(shù)據(jù)對(duì)象中可查,而Directory的索引會(huì)在GSD文件中解析得到。其關(guān)鍵字格式如:Subsysy_Dir_Index(1)=Index_Number;因此,在交換Hart數(shù)據(jù)之前,Hart Client應(yīng)先讀取并解析Directory的信息。其流程圖如圖6所示。
4 結(jié)束語
PROFIBUS—DP在工業(yè)自動(dòng)化中占有相當(dāng)?shù)姆蓊~,因此,選擇DP作為Hart Client和Hart設(shè)備的通信方式非常有必要。為此,在國際市場中,DCS和PLC的制造商大部分都提供了DP接口。而本文的實(shí)現(xiàn)方法有助于DCS和PLC在Hart智能設(shè)備、Hart儀表現(xiàn)場的推廣。