# Modbus RTU Protocol

## 通訊格式

<table data-header-hidden><thead><tr><th width="174.68560791015625"></th><th width="190.2718505859375"></th><th></th></tr></thead><tbody><tr><td><strong>名稱</strong></td><td><strong>數值</strong></td><td><strong>描述</strong></td></tr><tr><td><p>位元順序</p><p> (Bit Order)</p></td><td>lsb first</td><td>數據傳輸時，從最低有效位元 (LSB) 開始傳輸。</td></tr><tr><td><p>位元組順序 </p><p>(Byte Order)</p></td><td>big endian</td><td>數據傳輸時，從最高有效位元組 (MSB) 開始傳輸。</td></tr><tr><td><p>數據位</p><p> (Data bits)</p></td><td>8</td><td>每個字元或位元組由 8 個數據位組成。</td></tr><tr><td><p>校驗位 </p><p>(Parity)</p></td><td>None</td><td>傳輸過程中不使用奇偶校驗位進行錯誤檢查。</td></tr><tr><td><p>停止位</p><p> (Stop bits)</p></td><td>1</td><td>每個字元結束後使用 1 個停止位。</td></tr><tr><td>浮點數標準</td><td>IEEE 754-1985</td><td>浮點數（Float32）採用 32 位單精度浮點數格式。</td></tr><tr><td>Register</td><td>2 Byte / 16 bit</td><td>Modbus RTU 記憶體通訊的單位長度。</td></tr><tr><td>Byte</td><td>8 bit</td><td>數據傳輸的基本單位長度。</td></tr></tbody></table>

{% hint style="info" %}
在 Modbus RTU 通訊中，Register（暫存器）是記憶體通訊的基本單位，其長度為 **2 Byte（16 bit）**；而 Byte（位元組）則是資料傳輸的基本單位，長度為 **8 bit**。
{% endhint %}

## 記憶體定義及功能

<table data-header-hidden><thead><tr><th width="123.05078125"></th><th></th><th></th></tr></thead><tbody><tr><td><strong>記憶體類型</strong></td><td><p><strong>唯讀型記憶體</strong></p><p> <strong>(Read-Only Memory)</strong></p></td><td><p><strong>讀寫型記憶體</strong></p><p> <strong>(Read/Write Memory)</strong></p></td></tr><tr><td>主要功能</td><td>讀取設備的即時狀態和結果</td><td>設定設備的運行參數和校正值</td></tr><tr><td>儲存內容</td><td>儲存流量狀態相關的記憶體，例如：瞬時流量、累計流量等</td><td>儲存流量設定參數相關記憶體，例如：管徑外徑、標定係數、流量截止值等</td></tr><tr><td>操作權限</td><td>只能讀取，無法寫入</td><td>可供讀取和寫入</td></tr><tr><td>功能碼</td><td>讀取指令 04</td><td><p>讀取指令 03</p><p>寫入指令 06 / 30 /31</p></td></tr></tbody></table>
