通訊協(xié)議標(biāo)準(zhǔn)_第1頁
通訊協(xié)議標(biāo)準(zhǔn)_第2頁
通訊協(xié)議標(biāo)準(zhǔn)_第3頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

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

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

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

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

8、,就開始準(zhǔn)備“應(yīng)答數(shù)據(jù)包 。經(jīng) 延時(shí),在T5時(shí)刻,從機(jī)將SDTRS為高電平,控制總線。然后,在 T6時(shí)刻發(fā)送數(shù)據(jù)包。發(fā) 送完成T7時(shí)刻后,隨即將SDTRS為低電平,釋放總線。這樣一次數(shù)據(jù)包通信就完成了。對(duì)以上各時(shí)刻 的時(shí)序要求可以描述為:T2-T仁, T3-T2=1060ms, T4-T3=1, T5-T3=818ms, T6-T5=, T7-T6=1060ms, T8-T7=1 。一次通信的最長(zhǎng)時(shí)間將控制在 160ms 以內(nèi)。兩次數(shù)據(jù)包通信的間隔應(yīng)?20ms根據(jù)以上描述和規(guī)定, 我們就可以精確地進(jìn)行主機(jī)和從機(jī)的通信控制。 并根據(jù)可能出現(xiàn) 的各種通信錯(cuò)誤和故障,進(jìn)行冗錯(cuò)設(shè)計(jì)。4. 命令定義命令

9、 0x01 通信協(xié)議識(shí)別碼請(qǐng)求數(shù)據(jù): 0byte應(yīng)答數(shù)據(jù): 3byte字符串“ DGL 44,47,4C命令 0x02 地址更改請(qǐng)求數(shù)據(jù): 1byte NewAdr-0x80應(yīng)答數(shù)據(jù): 1byte NewAdr-0x80 注:應(yīng)答數(shù)據(jù)中仍保存為原來地址不變命令 0x03, 0x4 保存命令 0x05 讀廠家名請(qǐng)求數(shù)據(jù): 0byte應(yīng)答數(shù)據(jù): 10byte 字符串“ ALMRT Ltd.命令 0x06 讀產(chǎn)品類型請(qǐng)求數(shù)據(jù): 0byte 無應(yīng)答數(shù)據(jù): 8byte DT07 浮子數(shù) 溫度測(cè)點(diǎn) 外管類型 測(cè)桿材料 安裝形式 防爆類型 x x命令 0x07 讀產(chǎn)品桿長(zhǎng)請(qǐng)求數(shù)據(jù): 0byte 無應(yīng)答數(shù)據(jù):

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

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

12、當(dāng) DT2=DT1=DT=7時(shí),液位上溢出;Level1=(DT2*128+DT1)*128+DT0)*命令 0x11 讀液位 2(Level2 ,界面)數(shù)據(jù)請(qǐng)求數(shù)據(jù): 0byte 應(yīng)答數(shù)據(jù): 3byte DT0, DT1, DT2Level2=(DT2*128+DT1)*128+DT0)*命令 0x12 讀兩個(gè)液位數(shù)據(jù)請(qǐng)求數(shù)據(jù): 0byte 應(yīng)答數(shù)據(jù): 6byte DT0, DT1, DT2, DT3, DT4, DT5Level1=(DT2*128+DT1)*128+DT0)*Level2=(DT5*128+DT4)*128+DT3)*建議:如需讀液面 2 的數(shù)據(jù)時(shí),應(yīng)采用該命令。這樣,可

13、同時(shí)得到液位 1 的值,提 高了通信速度。命令 0x130x14 保存命令 0x15 讀各測(cè)桿測(cè)點(diǎn)溫度 只有一個(gè)溫度測(cè)點(diǎn) 請(qǐng)求數(shù)據(jù): 0byte 應(yīng)答數(shù)據(jù): 10byte DT09分辨率刻度:KD=C 2人-6, 范圍:-56130 °CVT1=DT1*128+DT0*KD-56 , VT2=DT3*128+DT2 *KD-56 ,命令 0x16 保存從以上協(xié)議可知,每個(gè)通信數(shù)據(jù)都用IByte的16進(jìn)制數(shù)表示,數(shù)據(jù)包中的地址ADDRESS 字段長(zhǎng)度為 1Byte,當(dāng)HT-1000主機(jī)向uPSD3200從機(jī)發(fā)送數(shù)據(jù)時(shí),數(shù)據(jù)包中的地址 ADDRESS字段中MS腕為1,因?yàn)榇藭r(shí)數(shù)據(jù)包要到達(dá)

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

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

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

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

溫馨提示

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

評(píng)論

0/150

提交評(píng)論