2011-06-30 67 views
1

Modbus協議數據模型中的寄存器有什麼區別?Modbus協議數據模型中的訪問限制

該協議定義了以下數據模型:

| Discretes Input | Single bit | Read-only | 
| Coils    | Single bit | Read-write | 
| Input Registers | 16-bit  | Read-only | 
| Holding Registers | 16-bit  | Read-write | 

究竟是誰被允許讀取和寫入?它適用於主站(客戶端)還是從站(服務器)。如果訪問限制適用於主設備,則只讀寄存器中的「輸入」一詞對我來說沒有多大意義。如果這是另一種方式,那麼爲什麼奴隸有註冊它不能修改?

官方協議規範文檔在這個問題上不清楚,所以請幫助。

由於

回答

1

的從設備典型地具有多個輸入接口,它是監視一些外部單元。你想知道這些輸入的狀態是什麼,以便你可以根據它們的狀態做出一些決定。這些輸入不能被你修改,所以是隻讀的。從機接受輸入狀態並將它們作爲寄存器中的只讀值傳遞給您。從站根據輸入的物理狀態創建報告。

讀寫元件是允許您將狀態信息發送到將出現在控制器輸出上的從站的寄存器。它們是可寫的,所以你可以控制它們的狀態和可讀性,以便你可以檢查你寫的東西到底在哪裏。

道路上有交通傳感器的示例交通燈控制器。傳感器只能讀取,而燈光控制(紅色,琥珀色,綠色)將被讀取/寫入,因此您可以設置和檢查照明狀態。

+0

所以輸入方向是從從機到主機。這使得它更清楚。 – udushu

+0

此答案不適用於按照Modbus協議規範[位於此鏈接](http://www.modbus.org/docs/Modbus_Application_Protocol_V1_1b.pdf)第7頁上的實例2實現Modbus數據模型的設備, – helioz

0

了Modbus數據模型的權威性解釋是在可用的Modbus應用協議規範第4.3節通過該鏈路發現從modbus.org: http://www.modbus.org/docs/Modbus_Application_Protocol_V1_1b.pdf

重要的是要注意,本說明書中示出的兩個例子是重要Modbus數據模型實施。每個寄存器類型位於不同的存儲器位置,而另一個寄存器位於同一個存儲器中。 在後者的情況下輸入寄存器#1(16位)將包含到#16

0
  1. 的離散輸入#1的狀態離散輸入 - 讀布爾輸入(如0V/5V,0V/24V,與數字傳感器輸出,閉合電路...)
  2. 線圈 - 寫入布爾輸出(強制輸出電壓,打開/關閉繼電器...)
  3. 輸入寄存器 - 讀取模擬輸入(讀取原始溫度,流量,壓力。 ..通常通過電壓或電流)
  4. 保持寄存器 - 寫模擬輸出(強制一些原始輸出值...通常是電壓或電流)

請注意,您可能需要處理原始值,您必須在您的側面進行縮放,或者使用以工程單位表示的已縮放值。由於字類型對此不太好,通常將2個16位寄存器組合起來以獲得一個浮點32位寄存器。