HART協議命令詳解:輕鬆掌握工業現場的“數位語言”
哈特 操作命令在應用程式層運行,包括通用命令、標準命令和特殊命令。
我通用指令的範圍是 0 到 30。
- 0,11:設備識別(製造商、設備類型、版本)
- 1、2、3:讀取測量值
- 6:寫入HART地址
- 12、13、17、18:讀取和寫入使用者輸入的文字訊息
- 14、15:讀取設備資訊(感測器序號、感測器量程上限/下限、警報操作、量程、傳輸結構)
- 16、19:讀取和寫入最終裝配編號
二、通用指令的範圍是 32 到 126。
標準命令集涵蓋 32 到 126 個代碼,提供設備的大部分功能。但是,代碼 123 和 126 並非公開代碼——它們是製造商特定的代碼,用於在生產過程中輸入唯一的設備標識符,最終用戶通常不會修改這些代碼。這些程式碼也可用於直接記憶體讀取/寫入操作。
- 33、61、110:讀取測量值
- 34-37、44、47:設定運行變數(範圍、時間限制、PV值、傳輸函數)
- 38:重置「結構變更」標誌
- 39:EPROM 控制
- 40-42:對話方塊功能(固定目前模式、自我檢測、重設)
- 43、45、46:類比輸入/輸出整流
- 48:檢查外圍設備狀態
- 49:寫入感測器序號
- 50-56:傳輸變數
- 57、58:單元資訊(標誌、描述、資料)
- 59:填寫所需的序號
- 60、62-70:使用複合類比輸出
- 107-109:連拍模式控制
三、常用重要指令簡介
0,11 命令用於識別現場設備,這些設備可以使用長結構或短結構進行標記。指令 0 的回應包含不同裝置的識別碼。主機隨後產生不同的標誌,為後續的長結構指令做好準備。在 HART 4.0 及更早版本中,傳輸類型代碼由兩個位元組組成:一個位元組用於製造商代碼,另一個位元組用於設備類型代碼,但這兩個位元組可以省略。從 HART 5.0 開始,需要使用擴充代碼來表示設備訊息,ID 號碼取代了最後的管道編號。
主機通常使用命令 0 發起通信,並指派一個可選位址 0,然後掃描位址 1 到 15。對於符合 HART 5.0 及更高標準的設備,主機可以使用命令 11,其中包含一個全零的廣播位址和命令標誌作為有效載荷,等待具有匹配標誌的從設備回應。已確認的指令 11 的功能與指令 0 完全相同。
HART指令分析
例 1:主從關係
| FF | FF | FF | FF | FF | 82 | A6 | 06 | 西元前 | 61 | 4E | 01 | 00 | B0 |
以上顯示的是從主機發送到從設備的一條訊息。現在,讓我們詳細分析一下這則訊息。
①“FF FF FF FF FF”表示前五個字節,用作前導位元組。
② 「82」是起始位元組,表示從主機傳送到從機的長結構訊息。
③ 五字節序列“A6 06 BC 61 4E”是一個位址位元組,它轉換為以下二進位表示:

第一個位元組(A6)的最高有效位元(MSB)設定為 1,表示主機。
第二位(LSB)為 0,表示非突發模式。
序列「100110」包含:38(製造商代碼),來自羅斯蒙特;06(設備型號代碼),對應3051C型號;以及12345678(設備序號),作為唯一識別碼。第四個位元組中的“01”是命令字節,指定執行命令1以讀取PV值。
⑤ “00”表示資料長度。在本例中,沒有數據,因此值為0。
⑥“B0”是校驗位元組
例二:從奴隸到主人
| FF FF FF FF | 86 | A6 06 BC 61 4E | 01 | 07 | 00 00 | 06 | 40 B0 00 00 | 45 |
以上展示了從設備向主設備發送的訊息。此範例與範例 1 基本相同,差異在於資料長度不再為零。現在讓我們詳細解釋一下這則訊息。
①“FF FF FF FF FF”表示前五個字節,用作前導位元組。
② 位元組「86」是起始字節,表示從從裝置傳送到主裝置的長結構訊息。
③ 五字節序列“A6 06 BC 61 4E”是一個位址位元組,它轉換為以下二進位表示:

第一個位元組(A6)的最高有效位元(MSB)設定為 1,表示主機。第二個位元組(LSB)為 0,表示非突發模式。序列「100110」包含:38(製造商代碼),來自羅斯蒙特;06(設備型號代碼),對應 3051C 型號;以及 12345678(設備序號),作為唯一識別碼。第四個位元組中的“01”是命令位元組,指定命令 1 以讀取 PV 值。
⑤“07”表示資料長度,值為7,表示資料由7個位元組組成。
⑥「00 00」是一個狀態位,表示從設備對主設備的回應訊息是正確的。
⑦「06」是資料單位,值為6,表示單位PSI。
⑧ 四位元組值「40 B0 00 00」表示一個浮點數,具體來說是 5.5。
⑨ “45”是校驗位元組。
例 3:突發模式
| FF FF FF FF | 81 | A6 06 BC 61 4E | 01 | 07 | 00 00 | 06 | 40 B0 00 00 | 42 |
以上訊息以突發模式發送。以下是訊息的詳細描述。
①“FF FF FF FF FF”表示前五個字節,用作前導位元組。
②“81”表示長期結構模式的突然出現。
③ 五字節序列“A6 06 BC 61 4E”是一個位址位元組,它轉換為以下二進位表示:

第一個位元組(A6)的最高有效位元(MSB)設定為 1,表示主機。第二個位元組(LSB)為 0,表示非突發模式。序列「100110」包含:38(製造商代碼),來自羅斯蒙特;06(設備型號代碼),對應 3051C 型號;以及 12345678(設備序號),作為唯一識別碼。第四個位元組中的“01”是命令位元組,指定命令 1 以讀取 PV 值。
⑤“07”表示資料長度,值為7,表示資料由7個位元組組成。
⑥「00 00」是一個狀態位,表示從設備對主設備的回應訊息是正確的。
⑦「06」是資料單位,值為6,表示單位PSI。
⑧ 四位元組值「40 B0 00 00」表示一個浮點數,具體來說是 5.5。
⑨ “42”是校驗位元組。
四、標準 HART 協定命令格式
- 讀取設備資訊的命令格式如下:

例如,要傳送讀取裝置序號的命令,請使用序列 FF FF FF FF FF 02 80 00 00 82。命令詳情如下表所示:
| 序言 | FF FF FF FF |
| 分隔符 | 02 |
| 地址 | 80 |
| 命令 | 00 |
| 資料長度 | 00 |
| 校驗位 | 82 |
傳回的命令格式如下:

例如,傳回的資料為 FF FF FF FF FF 06 80 00 0E 00 40 FE 50 7F 06 05 01 01 08 00 6B 73 3A 30。此資料傳回的命令註解如下表所示:
| 序言 | FF FF FF FF |
| 分隔符 | 06 |
| 地址 | 80 |
| 命令 | 00 |
| 資料長度 | 0E |
| 數據 | 00 40 FE 50 7F 06 05 01 01 08 00 6B 73 3A |
| 校驗位 | 30 |
資料 50 是該設備的製造商 ID,7F 是其感測器類型,6B 73 3A 是其序號。
- 讀取設備的動態變數
命令格式如下:

例如,若要傳送指令從裝置讀取動態變量,請使用下列指令序列:FF FF FF FF FF FF FF FF FF 82 50 7F 6B 73 3A 03 00 8C。指令註解如下表所示:
| 序言 | FF FF FF FF |
| 分隔符 | 82 |
| 製造商 ID | 50 |
| 感測器類型 | 7樓 |
| 設備序號 | 6B 73 3A |
| 命令 | 03 |
| 資料長度 | 00 |
| 校驗位 | 8C |
傳回的命令格式如下:

例如,傳回的資料為 FF FF FF FF FF 86 50 7F 6B 73 3A 0 3 1A 00 00 41 40 00 00 49 42 44 CE 10 39 41 47 CE D0 3D 42 44 CE 10 39 41 47 CE D0 3D 44 20F 47 CE D0 41F 447F 47 CE D0 41F 447F 47 CE D0 41F 447F 47 CE D043D 44 201F 47此資料傳回的命令註解如下表所示:
| 序言 | FF FF FF FF |
| 分隔符 | 82 |
| 製造商 ID | 50 |
| 感測器類型 | 7樓 |
| 設備序號 | 6B 73 3A |
| 命令 | 03 |
| 資料長度 | 1A |
| 數據 | 00 00 41 40 00 00 49 42 44 CE 10 39 41 47 CE D0 3D 44 4F CE 10 20 41 9F D7 0A |
| 校驗位 | E8 |
傳回的資料意義和轉換值如下表所示:
| 意義 | 指令碼 | 轉換值 |
| 目前的 | 41 40 00 00 | 12 |
| 即時送達 | 西元42年44月10日 | 49.2 |
| 每百 | 41 47 CE D0 | 12.49 |
| 累積流量 | 44 4F CE 10 | 831.22 |
| 溫度 | 41 9F D7 0A | 19.98 |










