485通訊協(xié)議標(biāo)準(zhǔn)_第1頁
485通訊協(xié)議標(biāo)準(zhǔn)_第2頁
485通訊協(xié)議標(biāo)準(zhǔn)_第3頁
485通訊協(xié)議標(biāo)準(zhǔn)_第4頁
485通訊協(xié)議標(biāo)準(zhǔn)_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、編號: 密級: 內(nèi) 部 頁數(shù):_基于RS485接口的DGL通信協(xié)議修改編寫:_校對:_ _ _北京華美特科貿(mào)二二年十二月六日1. 前言在常見的數(shù)字式磁致伸縮液位計中,多采用RS485通信方式。但RS485標(biāo)準(zhǔn)僅對物理層接口進(jìn)行了明確定義,并沒有制定通信協(xié)議標(biāo)準(zhǔn)。因此,在RS485的基礎(chǔ)上,派生出很多不同的協(xié)議,不同公司均可根據(jù)自身需要設(shè)計符合實際情況的通信協(xié)議。并且,RS485允許單總線多機(jī)通信,如果通信協(xié)議設(shè)計不好,就會造成相互干擾和總線閉鎖等現(xiàn)象。如果在一條總線上掛接不同類型的產(chǎn)品,由于協(xié)議不一樣,很容易造成誤觸發(fā),造成總線阻塞,使得不同產(chǎn)品對總線的兼容性很差。隨著RS485的發(fā)展,Mod

2、icon公司提出的MODBUS協(xié)議逐步得到廣泛認(rèn)可,已在工業(yè)領(lǐng)域得到廣泛應(yīng)用。而MODBUS的協(xié)議標(biāo)準(zhǔn)比較煩瑣,并且每字節(jié)數(shù)據(jù)僅用低4位范圍:015,在信息量相同時,對總線占用時間較長。DGL協(xié)議是根據(jù)以上問題提出的一種通信協(xié)議。在制定該協(xié)議時已充分考慮以下幾點(diǎn)要求:a. 兼容于MODBUS 。也就是說,符合該協(xié)議的從機(jī)均可掛接到同一總線上。b. 要適應(yīng)大數(shù)據(jù)量的通信。如:滿足產(chǎn)品在線程序更新的需要(未來功能)。c. 數(shù)據(jù)傳輸需穩(wěn)定可靠。對不確定因素應(yīng)加入必要的冗錯措施。d. 降低總線的占用率,保證數(shù)據(jù)傳輸?shù)耐〞场?. 協(xié)議描述為了兼容其它協(xié)議,現(xiàn)做以下定義:通信數(shù)據(jù)均用1字節(jié)的16進(jìn)制數(shù)表示

3、。從機(jī)的地址范圍為:0x800xFD,即:MSB=1;命令和數(shù)據(jù)的數(shù)值范圍均應(yīng)控制在00x7F之間。即:MSB=0,以區(qū)別地址和其它數(shù)據(jù)。液位計的編碼地址為:0x820x9F。其初始地址(出廠默認(rèn)值)為:0x81。罐旁表的編織地址為:0xA20xBF。其初始地址(出廠默認(rèn)值)為:0xA1。其它地址用于連接其它類型的設(shè)備,也可用于液位計、罐區(qū)表地址不夠時的擴(kuò)充。液位計的命令范圍為:0x010x2F,共47條,將分別用于參數(shù)設(shè)定、實時測量、診斷測試、在線編程等。通信的基本參數(shù)為:4800波特率,1個起始位,1個結(jié)束位。字節(jié)校驗為奇校驗。本協(xié)議的數(shù)據(jù)包是參照MODBUS RTU 通信格式編寫,并對其

4、進(jìn)行了部分修改,以提高數(shù)據(jù)傳輸?shù)乃俣?。另外,還部分參照了HART協(xié)議。其具體格式如下:ADDRESSCOMMANDByte CountDATACheck SUM地址命令字節(jié)數(shù)數(shù)據(jù)校驗和1 Byte1 Byte=n, 1 Byten Byte1 Byte809F012F001007F07F表中,數(shù)據(jù)的最大字節(jié)數(shù)為16個。也就是說,整個數(shù)據(jù)包最長為20個字節(jié)?!靶r灪汀笔瞧淝懊嫠袛?shù)據(jù)異或得到的數(shù)值,然后將該數(shù)值MSB位清零,使其滿足07F的要求。在驗證接收數(shù)據(jù)包的“校驗和”是否正確時,可將所有接收數(shù)據(jù)(包括“校驗和”)進(jìn)行異或操作,得到的數(shù)據(jù)應(yīng)0x80。這是因為,只有“地址”的MSB=1,所以異

5、或結(jié)果的MSB也必然等于1。本協(xié)議不支持MODBUS中所規(guī)定的廣播模式。3. 時序安排在上電后,液位計將先延遲10秒,等待電源穩(wěn)定。然后,用5秒的時間進(jìn)行自檢和測試數(shù)據(jù)。接著產(chǎn)品進(jìn)入待機(jī)狀態(tài)并打開RS485通信接口,等待主機(jī)的請求。因此,主機(jī)應(yīng)在液位計上電20秒后,再將液位計置為工作狀態(tài),進(jìn)行測量操作。液位控制器HMT-900或H-1000主要用于液位計的供電和防爆安全隔離。主機(jī)可通過RTS信號控制HMT-900或H-1000供應(yīng)液位計的電源。當(dāng)RTS有效時,電源將被打開。因此,液位計的電源是可以通過主機(jī)軟件控制的。在現(xiàn)場應(yīng)用中,主機(jī)軟件的工作時序一般應(yīng)遵循以下幾個步驟。1) 在開主機(jī)前,并認(rèn)

6、真檢查各相關(guān)設(shè)備的電源和電纜連接情況。2) 在啟動主機(jī)軟件時,打開相應(yīng)串行端口。使能RTS信號,給液位計上電。3) 軟件初始化操作,延遲20秒。4) 讀液位計的相應(yīng)參數(shù),然后將液位計置為工作狀態(tài)。5) 此時,主機(jī)可進(jìn)入正常的輪訓(xùn)、記錄、顯示、報警等工作。主機(jī)軟件的主要工作是通過RS485總線和各個液位計進(jìn)行DGL格式的數(shù)據(jù)包通信。因此,通信時序安排的好壞顯得很重要。在本協(xié)議中,主機(jī)只能有1個,并完全控制總線,任何從機(jī)在沒有主機(jī)請求時,必需保持接收狀態(tài)。在設(shè)計從機(jī)電路時,應(yīng)保證從機(jī)在上電時不能出現(xiàn)對總線的占用(發(fā)送狀態(tài)),哪怕是很短的時間。以免增加系統(tǒng)功耗,影響其“本質(zhì)安全”性能。雖然主機(jī)控制著

7、總線,但在總線空閑狀態(tài),主機(jī)也應(yīng)處于接收狀態(tài)。只有在向指定的從機(jī)發(fā)送請求數(shù)據(jù)包時,才進(jìn)入發(fā)送狀態(tài)。主機(jī)的發(fā)送接收狀態(tài)切換由其串口的DTR信號控制,可稱為MDTR。同樣,從機(jī)也有一個控制信號,稱為SDTR。當(dāng)主機(jī)DTR無效(轉(zhuǎn)換成TTL電平,MDTR為高電平)時,端口處于發(fā)送狀態(tài)。當(dāng)DTR有效(MDTR為低電平)時,端口處于接收狀態(tài)。據(jù)此,可繪制出數(shù)據(jù)包傳輸?shù)臅r序圖如下:在T1時刻,主機(jī)將MDTR置為高電平(DTR無效),準(zhǔn)備發(fā)送數(shù)據(jù)。T2時刻,主機(jī)發(fā)送“請求數(shù)據(jù)包”。當(dāng)數(shù)據(jù)包發(fā)送完成(T3時刻)后,隨即要將MDTR變?yōu)榈碗娖?T4時刻),釋放總線,等待接收“應(yīng)答數(shù)據(jù)包”。在相應(yīng)從機(jī)(液位計)接

8、收到正確的“請求數(shù)據(jù)包”后,就開始準(zhǔn)備“應(yīng)答數(shù)據(jù)包”。經(jīng)延時,在T5時刻,從機(jī)將SDTR置為高電平,控制總線。然后,在T6時刻發(fā)送數(shù)據(jù)包。發(fā)送完成(T7時刻)后,隨即將SDTR置為低電平,釋放總線。這樣一次數(shù)據(jù)包通信就完成了。對以上各時刻的時序要求可以描述為:T2-T1=1.93.5ms, T3-T2=1060ms, T4-T3=13.5ms, T5-T3=818ms, T6-T5=1.93.5ms, T7-T6=1060ms, T8-T7=13.5ms。一次通信的最長時間將控制在160ms以內(nèi)。兩次數(shù)據(jù)包通信的間隔應(yīng)20ms。根據(jù)以上描述和規(guī)定,我們就可以精確地進(jìn)行主機(jī)和從機(jī)的通信控制。并根

9、據(jù)可能出現(xiàn)的各種通信錯誤和故障,進(jìn)行冗錯設(shè)計。4. 命令定義命令0x01 通信協(xié)議識別碼請求數(shù)據(jù): 0byte 應(yīng)答數(shù)據(jù): 3byte 字符串“DGL” 44,47,4C命令0x02 地址更改請求數(shù)據(jù): 1byte NewAdr-0x80 應(yīng)答數(shù)據(jù): 1byte NewAdr-0x80 注:應(yīng)答數(shù)據(jù)中仍保留為原來地址不變命令0x03, 0x4 保留命令0x05 讀廠家名請求數(shù)據(jù): 0byte 應(yīng)答數(shù)據(jù): 10byte 字符串“ALMRT Ltd.”命令0x06 讀產(chǎn)品類型請求數(shù)據(jù): 0byte 無應(yīng)答數(shù)據(jù): 8byte DT07浮子數(shù) 溫度測點(diǎn) 外管類型 測桿材料 安裝形式 防爆類型 x x

10、命令0x07 讀產(chǎn)品桿長請求數(shù)據(jù): 0byte 無應(yīng)答數(shù)據(jù): 2byte DT0,DT1基數(shù):2mm,范圍:20m,GL= (DT1*128+DT0)*2mm命令0x08 讀溫度測點(diǎn)位置請求數(shù)據(jù): 0byte 應(yīng)答數(shù)據(jù): 5byte DT04 對應(yīng)于VT15位置相對桿長的百分?jǐn)?shù)099。命令0x09 讀產(chǎn)品序列號請求數(shù)據(jù): 0byte 無應(yīng)答數(shù)據(jù): 4byte 具體待定,存于MCU EEPROM中。命令0x0A 讀電路和程序的版本號請求數(shù)據(jù): 0byte應(yīng)答數(shù)據(jù): 2byte DT0 電路版本 , DT1程序版本命令0x0B 讀零點(diǎn)校準(zhǔn)參數(shù)數(shù)據(jù)請求數(shù)據(jù): 0byte應(yīng)答數(shù)據(jù): 8byte DT0

11、7Level1Zero=(DT2*128+DT1)*128+DT0)*0.01mm DT30, 數(shù)據(jù)求反Level2Zero=(DT6*128+DT5)*128+DT4)*0.01mm DT70, 數(shù)據(jù)求反命令0x0F 設(shè)置產(chǎn)品工作狀態(tài)請求數(shù)據(jù): 1byte DT0=0,產(chǎn)品工作; DT00,產(chǎn)品待機(jī);應(yīng)答數(shù)據(jù): 1byte 和請求數(shù)據(jù)相同。命令0x10 讀液位1Level1,油面數(shù)據(jù)請求數(shù)據(jù): 0byte 應(yīng)答數(shù)據(jù): 3byte DT0, DT1, DT2 分辨率:0.01mm,范圍:30mm20m(0x1E8480, DT2=7A, DT1=09, DT0=0)。當(dāng)DT2=DT1=DT=0

12、時,液位下溢出;當(dāng)DT2=DT1=DT=7F時,液位上溢出;Level1=(DT2*128+DT1)*128+DT0)*0.01mm命令0x11 讀液位2Level2,界面數(shù)據(jù)請求數(shù)據(jù): 0byte 應(yīng)答數(shù)據(jù): 3byte DT0, DT1, DT2 Level2=(DT2*128+DT1)*128+DT0)*0.01mm 命令0x12 讀兩個液位數(shù)據(jù)請求數(shù)據(jù): 0byte 應(yīng)答數(shù)據(jù): 6byte DT0, DT1, DT2, DT3, DT4, DT5Level1=(DT2*128+DT1)*128+DT0)*0.01mmLevel2=(DT5*128+DT4)*128+DT3)*0.01m

13、m建議:如需讀液面2的數(shù)據(jù)時,應(yīng)采用該命令。這樣,可同時得到液位1的值,提高了通信速度。命令0x130x14 保留命令0x15 讀各測桿測點(diǎn)溫度(只有一個溫度測點(diǎn))請求數(shù)據(jù): 0byte 應(yīng)答數(shù)據(jù): 10byte DT09分辨率(刻度):KD=0.015625(2-6), 范圍:-56130VT1=(DT1*128+DT0)*KD-56,VT2=(DT3*128+DT2) *KD-56, 命令0x16 保留從以上協(xié)議可知,每個通信數(shù)據(jù)都用1Byte的16進(jìn)制數(shù)表示,數(shù)據(jù)包中的地址ADDRESS字段長度為1Byte,當(dāng)HT-1000(主機(jī))向uPSD3200(從機(jī))發(fā)送數(shù)據(jù)時,數(shù)據(jù)包中的地址AD

14、DRESS字段中MSB應(yīng)為1,因為此時數(shù)據(jù)包要到達(dá)的地址是從機(jī), 從機(jī)的地址范圍為:0x800xFD,即:MSB=1。主機(jī)(HT-1000)沒有地址也許理論上應(yīng)該有,主從機(jī)通信過程是這樣的:主機(jī)不斷發(fā)出4個字節(jié)的數(shù)據(jù)包地址,命令,字節(jié)數(shù),校驗和去查詢從機(jī)的測量情況,其中字節(jié)數(shù)為0,則沒有數(shù)據(jù)字節(jié),只需4個字節(jié)就可構(gòu)成一個數(shù)據(jù)包。如下:81 16 00 1788 16 00 1E84 16 00 1287 16 00 118F 16 00 19以上5個數(shù)據(jù)包就是主機(jī)發(fā)往從機(jī)的數(shù)據(jù)包,第一個字節(jié)是地址,共有5個地址,即發(fā)往5個從機(jī),每發(fā)一個數(shù)據(jù)包,主時機(jī)等待從機(jī)的回應(yīng),然后再發(fā)下一個數(shù)據(jù)包,如果等

15、待超時,則認(rèn)為通信錯誤HT-1000上會顯示XX號罐通信錯誤。假設(shè)有回應(yīng),則主機(jī)進(jìn)行數(shù)據(jù)處理,在友好的人機(jī)界面上顯示相關(guān)測量信息。第二個字節(jié)16是命令字,16的具體含義可查詢具體命令字信息。第三個00代表數(shù)據(jù)位是零個,第四個字節(jié)是校驗和。這里設(shè)計協(xié)議的原則是盡可能是通信的字節(jié)數(shù)變少,減少信息在傳輸過程中的喪失,當(dāng)然也要考慮擴(kuò)展性一個回應(yīng)的數(shù)據(jù)包如下:88 16 08 69 7F 05 7A 3A 02 23 27 43共12個字節(jié),再根據(jù)字段分一下:88 16 08 69 7F 05 7A 3A 02 23 27 43第一個字節(jié)88是從機(jī)的地址,由于主機(jī)采用“發(fā)送-等待回應(yīng)”方式來和從機(jī)通信,

16、并且目前只有一個主機(jī),因此,從機(jī)發(fā)送的數(shù)據(jù)包中的地址不必是主機(jī)地址除非有多個主機(jī),在理解協(xié)議數(shù)據(jù)包時,數(shù)據(jù)包中的地址字段應(yīng)當(dāng)是發(fā)往目的地的地址,但事實上從機(jī)回應(yīng)數(shù)據(jù)包中的地址是本身的地址,不是目的地主機(jī)的地址,只需標(biāo)明自身的地址即可,相當(dāng)于“這里是XX號從機(jī)在答復(fù)-”。第二個字節(jié)16是命令字。第三個字節(jié)08表示數(shù)據(jù)段有8個字節(jié),接下來的8個字節(jié)是數(shù)據(jù)信息,前三個字節(jié)69 7F 05是油位測量值(69是數(shù)據(jù)的最低數(shù)值,7F是次低的數(shù)值,05是數(shù)據(jù)的高位數(shù)值),接著三個字節(jié)7A 3A 02是水位測量值,數(shù)據(jù)信息最后兩個字節(jié)23 27 是溫度測量值,最后一個字節(jié)43是校驗和。0x16是DGL協(xié)議里的

17、一條命令,表示取得探棒的油位,水位和溫度。在DGL協(xié)議里是這么定義的: P其中:START:起始字節(jié),長度為1COMM:命令字節(jié):長度為1NUM:數(shù)據(jù)字節(jié)數(shù)DATA:數(shù)據(jù),具體含義在每個命令中都有詳細(xì)定義P:校驗位命令0x17 讀實時電路參數(shù) (保留)請求數(shù)據(jù): 1byte ; 0 電子倉溫度,1 VCC電壓,2 工作狀態(tài)應(yīng)答數(shù)據(jù): 2byte 命令0x180x1F 保留命令0x200x2F 對外保留,用于參數(shù)設(shè)置、產(chǎn)品測試、程序更新等功能。5. 補(bǔ)充說明上述關(guān)于DGL協(xié)議的規(guī)定可保證它和MODBUS協(xié)議的兼容性。但不保證當(dāng)這兩種協(xié)議的設(shè)備掛接到同一總線上時,采用MODBUS協(xié)議的設(shè)備之間不會發(fā)生沖突。也不保證和以下設(shè)備的兼容

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論