HART協議數據格式和消息結構的舉例分析
前面的文章中,我們對HART協議的消息格式的具體內容進行了分析。那么很多朋友還沒有完全掌握,為了讓大家對這部分知識有一個清晰的思路。下面我們來對HART協議的數據格式以及消息結構的內容進行一下舉例分析。
HART協議數據格式
如果傳送的命令不成功,那么響應中就不包含數據。然而響應值是從現場設備內存中取出的,是一個近似值。數據所占的字節和格式視不同的命令而定,具體的規則可以查詢相關的資料。
看實例了解HART協議消息結構
例1:主機到從機
FF
|
FF
|
FF
|
FF
|
FF
|
82
|
A6
|
06
|
BC
|
61
|
4E
|
01
|
00
|
B0
|
上面是主機到從機發送的一條消息。前5個字節值都為FF,顯然他是導言字節。接著的82起始字節,表示主機到從機發出的長結構的消息。后5個字節 “A6,06,BC,61,4E”是地址字節化為二進制表示如下:
A6 |
06 |
BC |
61 |
4E |
1010 0110 |
0000 0110 |
1011 1100 |
0110 0001 |
0100 1110 |
可見首字節A6的***位為1表示主機,次高位為0表示非突發模式,后面的38 b表示設備的惟一標號:“100110”是生產廠家代碼,值為38,是Rosemount公司的代碼;后一字節06是設備型號代碼,06代表的型號是3051C;后面的3個字節是設備識別號,本例中的值為12345678;再接下來的01是命令字節,表示1號命令,即讀取PV值后面的00是表示數據的長度;本例中無數據,值為0;***是校驗字節B0。
例2:從機到主機
FF FF FF FF FF | 86 | A6 06 BC 61 4E | 01 | 07 | 00 00 | 06 40 B0 00 00 | 45 |
HART協議的從機到主機的例子,表示的是從機到主機的一條消息。本例大部分與例1相似,不同的是數據字節不再為0,其中的06表示單位PSI;后面的4個字節是用浮點數表示的值, 為5.5。并且由于本例是由從機到主機的應答消息,所以存在著狀態位,即本例中的00 00表示OK。
例3:突發模式
FF FF FF FF FF | 81 | 53 03 04 E6 D7 | 03 | 1A | 00 60 | 41 3F A0 00 | 27 | 41 3F A0 00 | 39 | 42 47 60 00 | 06 | BF 06 60 00 | 39 | 41 95 00 | 00 | D4 |
上面是突發模式HART協議發出的一條消息。
第1個字節81表示突發的長結構模式,與前例中相似的地方我們不再介紹。注意到狀態字節“00 60”后的字節“41 3FA000”,他表示的是當前的電流值,計算后是11.976 6;后面的27表示單位mA,像后面的39表示“%”一樣。數據字節中的“42 47 60 00”,“BF06 60 00”,“41 95 0000”分別表示“SV”,“TV”,“FV”表示方法與PV相同。經過解釋后的消息可以表示為:“LBTXS/RdAllPv/026/0060/11.9766/mA/11.9766/%/49.8438/psi/-0.524902/%/18.625/D4”。