2012-11-08 63 views
2

有誰知道MODBUS地址可以自動設置的方案嗎?在我的情況下,我會有一些奴隸上電,需要一些自動分配地址的方法。MODBUS自動分配地址

+0

MODBUS協議中沒有這種東西。您必須實現自己的機制,但只有修改MODBUS從站纔可能。一種可能的解決方案:如果每個從站都有唯一的序列號,則可以實施類似bootp的協議。或者,您可以決定序列號的最後兩位數字定義從機地址。 –

+0

正如亞歷山大建議使用跳線設置來選擇相應的從站。隨着您在訪問這些從站時需要在您的代碼中提及相同的從站ID。 – kapilddit

回答

0

你在說SLAVE ID嗎?如果是這樣,那就不會發生了...... SlaveID對於客戶端能夠在串行網絡中尋址所述從站非常重要。 (RS485串行網絡,據推測...)。

因此,甚至無法發送Modbus消息並將其發送到SlaveID 1,然後以某種方式將該設備設置爲SlaveID 1,因爲在這種情況下,所有設備都會嘗試響應。更何況,在Modbus中有NO方法來分配一個從站ID ...在這另一端...

您是否正在討論執行某種類型的查詢以詢問從站設備哪個Modbus 註冊他們有嗎?同樣,沒有Modbus方法可以做到這一點,但是對於某些代碼,您可以查詢40001,並且如果返回錯誤2,那麼您知道該寄存器不可用。如果你循環遍歷所有的寄存器,記錄哪些返回了非錯誤,那麼你可以做一種「自動配置」的形式,但是......誠實地說呢?我不會推薦這一點,而且即使做到這一點,我也沒有看到什麼價值,因爲您不僅需要知道註冊號碼,您必須知道註冊表中的數據實際上意味着什麼!

你到底在做什麼?也許有另一種方法來實現這一目標?