Modbus網(wǎng)關(guān)許多技術(shù)方面都超出了我們的想象。但在現(xiàn)場使用 Modbus 時,不需要了解更精細(xì)的技術(shù)細(xì)節(jié),只需要知道Modbus是什么并合理使用它的價值。
集成網(wǎng)絡(luò)在樓宇管理系統(tǒng)中都變得越來越重要,因此,BMS 工程師都要求至少對協(xié)議有一個基本的了解。幸運(yùn)的是,網(wǎng)上有詳細(xì)資料介紹您可能需要了解的有關(guān)Modbus 的所有信息;不幸的是,很多信息相互矛盾,而且通常并不是“所有”信息,有時會讓您束手無策。
這篇文章Modbus中的信息,以便您了解足夠多的信息,并希望應(yīng)用您的項目中。
● 串行網(wǎng)絡(luò) - RS485
● TCP/IP 網(wǎng)絡(luò)
最終結(jié)果是相同的,而且 Modbus 點(diǎn)寄存器通常是相同的,但兩種安裝之間存在差異,如果不僅僅是物理安裝的話。
串行 RS485 Modbus
要建立 RS485 Modbus 網(wǎng)絡(luò),需要將雙絞線電纜從網(wǎng)絡(luò)主設(shè)備安裝到從設(shè)備。
通常,帶有屏幕的單雙絞線電纜就可以完成這項工作,但如今越來越多的制造商推薦使用雙絞線電纜。
推薦兩對電纜線的原因是使一對可用于發(fā)送/接收線,而另一對可用作屏蔽線或排擾線。這樣就可以覆蓋所有的基地。
通過 RS485 網(wǎng)絡(luò)連接 Modbus 設(shè)備時,它們應(yīng)以菊花鏈形式連接在一起,不支持任何其他布線拓?fù)洹?/p>
整個網(wǎng)絡(luò)中的連接應(yīng)該保持不變:正對正,負(fù)對負(fù)。這些有時可能被標(biāo)記為 A 和 B。如果這些被交叉,這可能會導(dǎo)致整個網(wǎng)絡(luò)癱瘓并在主控制器內(nèi)產(chǎn)生通信警報。
還值得一提的是,屏蔽電纜在整個網(wǎng)絡(luò)中應(yīng)保持完好無損,并且僅在控制器端接地。
TCP/IP 網(wǎng)絡(luò)連接
根據(jù) cat5/6 的限制,每個網(wǎng)段的最大長度為 100m,Wi-Fi 可能會根據(jù)安裝的類型和質(zhì)量達(dá)到更長的距離。
當(dāng)通過其他網(wǎng)絡(luò)進(jìn)行通信時,需要在防火墻上打開一個通信端口,默認(rèn)端口是:502,但如果需要,可以更改此端口。
在配置 TCP / IP Modbus 網(wǎng)絡(luò)時,每個設(shè)備都需要使用網(wǎng)絡(luò)上可用的唯一 IP 地址進(jìn)行編程。
上表是一個有用的參考點(diǎn),因為制造商的文獻(xiàn)通常不會說明該點(diǎn)是什么類型的寄存器。根據(jù)您使用的系統(tǒng),您可能無法在您包含的模擬可寫對象上搜索輸入寄存器;這是因為輸入寄存器是只讀的。
將線圈點(diǎn)視為可寫的數(shù)字點(diǎn),例如數(shù)字輸出。
讀取線圈點(diǎn)時,您將看到真或假反饋值。它可以是兩種狀態(tài)之一,僅此而已。這同樣適用于當(dāng)你寫到這一點(diǎn)時,你可以把它設(shè)為真或假。線圈點(diǎn)通常是設(shè)備內(nèi)用于觸發(fā)某些功能的數(shù)字點(diǎn)。
● Modbus 功能代碼 1 = 讀取線圈
● Modbus 功能代碼 5 = 寫入單個線圈
● Modbus 功能代碼 15 = 寫入多個線圈
連接 Modbus 串行設(shè)備時,每個網(wǎng)絡(luò)限制為 32 個;由于主設(shè)備占用了網(wǎng)絡(luò)上的地址,因此上述示例將分類為 4。如有必要,可以通過在網(wǎng)絡(luò)上使用中繼器和助推器來解決此限制。
不論增強(qiáng)器和中繼器,串行網(wǎng)絡(luò)的最大長度不能超過1200m。
在某些情況下,可能需要在通信對上安裝終端電阻。通常,一個 120 歐姆的電阻可以正常工作,但如果需要,可以更準(zhǔn)確地計算出來。越來越多的設(shè)備帶有內(nèi)置的端接跳線,可用于在需要時省去電阻的麻煩。
配置 RS485 串行 Modbus 網(wǎng)絡(luò)時,您需要在每個設(shè)備中設(shè)置以下內(nèi)容:
● 波特率
● 平價
● 停止位
● 數(shù)據(jù)位
這些通常可以通過板載跳線或軟件進(jìn)行配置。在開始此類項目時,需要進(jìn)行板載跳線需要設(shè)置,直接開箱即可完成,而不是安裝在天花板或現(xiàn)場任何地方要容易得多.
要建立 TCP/IP Modbus 網(wǎng)絡(luò),所有設(shè)備必須在本地或通過網(wǎng)關(guān)連接連接到同一網(wǎng)絡(luò)。通常,這些將是使用以太網(wǎng)電纜和 RJ45 端的有線連接,盡管現(xiàn)在更多的設(shè)備通過 Wi-Fi 連接,但兩種解決方案都可以完成這項工作。
TCP / IP Modbus 并不像串行連接那樣每個網(wǎng)絡(luò)限制為 32 個設(shè)備,但是,每個主(客戶端)設(shè)備都有其自身的限制,在開始設(shè)計系統(tǒng)之前應(yīng)進(jìn)行檢查。
與 RS485 Modbus 網(wǎng)絡(luò)的另一個區(qū)別是使用的術(shù)語,當(dāng)談到串行連接時,我們說“主從”,當(dāng)談到 TCP / IP Modbus 時,我們說“客戶端和服務(wù)器”。
這些點(diǎn)類似于線圈點(diǎn),除了它們是只讀的,就像數(shù)字輸入一樣。
讀取離散輸入時,它將反饋兩個值之一,它是真或假,僅此而已。根據(jù)設(shè)備的不同,它可能被標(biāo)記為 1 或 0、開或關(guān)等。這些類型的點(diǎn)通常用于顯示控制器上數(shù)字輸入的狀態(tài)。
Modbus 功能代碼 2 – 讀取輸入狀態(tài)
輸入寄存器是由 16 位信息組成的只讀點(diǎn)。模擬輸入值將被歸類為輸入寄存器。
輸入寄存器可以進(jìn)一步分類為有符號或無符號,由于 16 位限制,無論哪種方式,都存在可以顯示的最大信息量。
簽名寄存器可以從 -32,768 到 32,767。這對溫度傳感器很有用。
無符號寄存器可以從 0 到 65,536。這對于消耗量表很有用,因為不需要負(fù)值。
Modbus 功能代碼 4 – 讀取輸入寄存器
保持寄存器是由 16 位信息組成的可寫點(diǎn)。模擬輸出值將被歸類為保持寄存器。
就像輸入寄存器一樣,保持寄存器也可以有符號或無符號。16 位保持寄存器與上面詳述的輸入寄存器具有相同的范圍限制
Modbus 功能代碼 3 = 讀取保持寄存器
Modbus 功能代碼 6 = 寫入保持寄存器
Modbus 功能代碼 16 = 寫入多個保持寄存器
這是配置 Modbus 網(wǎng)絡(luò)的鮮為人知的部分之一。以我的經(jīng)驗,這樣做的原因是因為字節(jié)順序通常總是 MSB > LSB,這是大多數(shù)控制器默認(rèn)設(shè)置的。
● MSB = 最高有效位
● LSB = 最低有效位
這與控制器讀取組成寄存器的各個位的順序有關(guān)。正如我們前面所討論的,標(biāo)準(zhǔn)輸入或保持寄存器由 16 位組成,通常從位 0 到位 15 開始。
雖然這個設(shè)置經(jīng)常被遺忘,但重要的是您要意識到它,因為它會在讀取寄存器值時產(chǎn)生問題。
所有 16 位寄存器值都是使用二進(jìn)制代碼讀取的,這就是存在最大值 65,535 的原因,即二進(jìn)制的 16 個。
現(xiàn)在讓我們假設(shè)我們正在嘗試使用 Modbus 讀取寄存器值。我們已經(jīng)準(zhǔn)備好網(wǎng)絡(luò)設(shè)置,所有設(shè)備都在線并且工作(嗯,接收值),但我們還沒有意識到這個設(shè)備首先使用 LSB 而不是 MSB。
默認(rèn)情況下,我們將使用 MSB 順序(從左到右)讀取50,401的值
當(dāng)設(shè)置為 LSB 時,我們讀取的值為34,595(從右到左)。
如果您沒有意識到這一點(diǎn),您很容易浪費(fèi)時間在數(shù)據(jù)表中尋找其他可能的寄存器來查找,當(dāng)您一直都可以做到這一點(diǎn)時,只是字節(jié)順序阻止了您獲得正確閱讀。
僅供參考,我只是在上面的示例中使用了一組隨機(jī)的 1 和 0。要將這些轉(zhuǎn)換為讀數(shù),您可以使用計算器上的“程序員”設(shè)置。
如果某些設(shè)備使用 MSB 而其他設(shè)備使用 LSB,則在同一網(wǎng)絡(luò)上混合使用設(shè)備可能會給您帶來問題。一些控制器甚至允許您更改每個設(shè)備或點(diǎn)的字節(jié)順序設(shè)置,其他控制器只允許每個網(wǎng)絡(luò)。
容易吧?
根據(jù)經(jīng)驗,設(shè)置任何集成網(wǎng)絡(luò)最困難的部分是從您嘗試與之通信的設(shè)備中獲取正確的信息。制造商的文獻(xiàn)常常令人困惑并且缺乏關(guān)鍵信息。例如,為什么電表沒有 Modbus 標(biāo)準(zhǔn)?他們都提供相同的信息,但他們都給它貼上了不同的標(biāo)簽?通常正是這種事情阻止了兩個設(shè)備之間的成功集成。
希望本文為您提供了對該主題的一些基本了解,并使您將來能夠成功集成多個設(shè)備。