[MOXA] MGate MB3660 Agent Mode介紹與設定說明
MB3660是MOXA可備援的Modbus Gateway,主要的功能是Modbus TCP和Modbus RTU/ASCII協定轉換,並提供了不同的模式提高傳輸的效能,本文是MB3660介紹的系列文之一,其餘的介紹可參考以下文章:
MGate MB3660 Intelligent Mode介紹與設定說明
[MOXA] MGate MB3660 Transparent Mode介紹與設定說明
[MOXA] MGate MB3660 備援機制介紹與各模式效能比較
代理模式改善了透明模式下獲取資料效率,但需要自行輸入大量的Modbus命令與配置資料儲存的記憶體位置;MGate MB3660每個序列埠口可以設定32個Modbus命令,所以對序列設備最多可以有512個命令;而且MGate MB3660對每個命令分配了1bit的記憶體位置,去儲存每個命令的執行狀況,0表示命令運行成功,1表示命令運行失敗。
在代理模式中,Modbus TCP master可透過命令讀取MGate MB3660 Modbus TCP slave的狀態,以了解Modbus RTU / ASCII slave設備的狀態,透過以下資訊:
同樣的Modbus RTU / ASCII master也可透過命令讀取MGate MB3660 Modbus RTU / ASCII slave的狀態,,以了解Modbus TCP slave設備的狀態,透過以下資訊:
Mode selection(MGate role)
選擇Modbus TCP端的Modbus腳色。
Initial delay(Master)
某些Modbus設備啟動的時間可能較長,若在設備尚未啟動前便開始發送請求可能導致設備異常,可以透過設定Initial Delay設定MGate MB3660在啟動後等待一段時間再開始發送第一個請求。
Max. retry(Master)
設定MGate MB3660嘗試與Modbus slave通訊的最大重試次數。
Response timeout(Master)
設定等待Modbus slave回應的逾時時間。
Modbus Commands(Master)
點擊Add可以新增命令,選擇現有命令再點擊Edit可編輯命令,選擇現有命令再點擊Copy可複製命令,選擇現有命令再點擊Delete可刪除命令。
Enable
啟用或停用該命令。
Name
命令名稱,可以辨識命令用途等。
Slave IP address
遠端TCPslave設備的IP位置。
Port
遠端TCP slave設備的TCP埠口。
Slave ID
遠端TCP slave設備的slave ID。
Function
Modbus命令的function code,支援01、02、03、04、05、06、15、16、23。
Trigger
選擇Disable時,該命令將不會被發送至TCP slave設備;Cyclic會依照poll interval設定的間隔時間循環發送命令;Data change會依照poll interval間隔輪詢數據,並在檢測到數據改變時發送命令。
Poll interval
腳色為Modbus TCP master時的輪詢間隔時間。
Endian swap
數據字節交換,選擇None不啟用交換;Byte會將0x0A, 0x0B, 0x0C, 0x0D變為 0x0B, 0x0A, 0x0D, 0x0C;Word會將0x0A, 0x0B, 0x0C, 0x0D變為0x0C, 0x0D, 0x0A, 0x0B;ByteWord會將0x0A, 0x0B, 0x0C, 0x0D變為0x0D, 0x0C, 0x0B, 0x0A。
Read starting address
讀取數據的起始位置。
Read quantity
讀取數據的數量,讀取單位依照Function選項不同而分為bit與16bits。
Write starting address
寫入數據的起始位置。
Write quantity
寫入數據的數量,寫入單位依照Function選項不同而分為bit與16bits。
Read / Write memory address
設定MGate MB3660讀取或寫入數據的記憶體起始位置,設為空值系統會自動定址。
Opposite side’s(Serial side’s) command fault
當遠端序列master設備斷線時,MGate MB3660的序列端就無法收到master的命令,但是MGate MB3660的TCP端依舊會發送寫入命令給TCP salve設備,為了避免序列端故障所可能造成的問題,當MGate MB3660的序列端失效時,MGate MB3660的TCP端可以有三種處理方式,Keep latest data會持續對TCP slave端寫入與最後一筆數據相同的數據;Clear data to zero會對TCP slave端寫入0;User-define value會對TCP slave端寫入使用者自定義的值。
Timeout for opposite side’s(Serial side’s) data update
設定判斷序列端逾時的時間。
Slave ID(Slave)
當MGate role為Slave,設定MGate MB3660 TCP端的slave ID。
TCP port(Slave)
設定MGate MB3660的Modbus TCP port。
Port Configuration Import
由本地端匯入csv格式的序列埠設定,詳細格式說明請參考設備原廠使用手冊Port Configuration(page 4-27)。
(download link: https://www.moxa.com/doc/man/MGate_MB3660_Series_UM_e2.0.pdf)
Port Configuration Export
將當前各埠口設定匯出為csv檔。
Mode selection(MGate role)
選擇Modbus RTU / ASCII端的Modbus腳色。
Master Settings(Master)
列出MGate MB3660處於RTU / ASCII master時的各埠口設定,選擇序列埠後點選Edit可進入該埠口設定。
Initial delay(Master)
某些Modbus設備啟動的時間可能較長,若在設備尚未啟動前便開始發送請求可能導致設備異常,可以透過設定Initial Delay設定MGate MB3660在啟動後等待一段時間再開始發送第一個請求。
Max. retry(Master)
設定MGate MB3660嘗試與Modbus slave通訊的最大重試次數。
Response timeout(Master)
設定等待Modbus slave回應的逾時時間。
Inter-frame delay(Master)
設定Slave設備在回覆資料時的延遲,如果設定為0,MGate MB3660會自動判斷延遲時間。
Inter-character timeout(Master)
設定Modbus RTU設備在回應時,每個字符的間隔逾時時間,若回應字符間隔時間逾時,此次接收的數據將會被丟棄,如果設定為0,MGate MB3660會自動判斷逾時時間。
Modbus Commands(Master)
點擊Add可以新增命令,選擇現有命令再點擊Edit可編輯命令,選擇現有命令再點擊Copy可複製命令,選擇現有命令再點擊Delete可刪除命令。
Enable
啟用或停用該命令。
Name
命令名稱,可以辨識命令用途等。
Slave ID
遠端TCP slave設備的slave ID。
Function
Modbus命令的function code,支援01、02、03、04、05、06、15、16、23。
Trigger
選擇Disable時,該命令將不會被發送至RTU / ASCII slave設備;Cyclic會依照poll interval設定的間隔時間循環發送命令;Data change會依照poll interval間隔輪詢數據,並在檢測到數據改變時發送命令。
Poll interval
腳色為Modbus RTU / ASCII master時的輪詢間隔時間。
Endian swap
數據字節交換,選擇None不啟用交換;Byte會將0x0A, 0x0B, 0x0C, 0x0D變為 0x0B, 0x0A, 0x0D, 0x0C;Word會將0x0A, 0x0B, 0x0C, 0x0D變為0x0C, 0x0D, 0x0A, 0x0B;ByteWord會將0x0A, 0x0B, 0x0C, 0x0D變為0x0D, 0x0C, 0x0B, 0x0A。
Read starting address
讀取數據的起始位置。
Read quantity
讀取數據的數量,讀取單位依照Function選項不同而分為bit與16bits。
Write starting address
寫入數據的起始位置。
Write quantity
寫入數據的數量,寫入單位依照Function選項不同而分為bit與16bits。
Read / Write memory address
設定MGate MB3660讀取或寫入數據的記憶體起始位置,設為空值系統會自動定址。
Opposite side’s(TCP side’s) command fault
當遠端TCP master設備斷線時,MGate MB3660的TCP 端就無法收到master的命令,但是MGate MB3660的序列端依舊會發送寫入命令給RTU / ASCII salve設備,為了避免TCP端故障所可能造成的問題,當MGate MB3660的TCP端失效時,MGate MB3660的序列端可以有三種處理方式,Keep latest data會持續對RTU / ASCIIslave端寫入與最後一筆數據相同的數據;Clear data to zero會對RTU / ASCIIslave端寫入0;User-define value會對RTU / ASCIIslave端寫入使用者自定義的值。
Timeout for opposite side’s(TCP side’s) data update
設定判斷TCP端逾時的時間。
Slave Settings(Slave)
列出MGate MB3660處於RTU / ASCII slave時的各埠口設定,選擇序列埠後點選Edit可進入該埠口設定。
Slave ID(Slave)
設定MGate MB3660 RTU / ASCII端的slave ID。
Apply the above setting to
除了將以上設定套用到該序列埠口,同時也可以套用到其他勾選的序列埠口或者所有埠口。
範例1,如果兩個命令卻有相同的記憶體位置,如下圖。
你可以按下Re-Arrange自動重新排列記憶體位置,更新後會變為下圖。
範例2,你也可以手動修改記憶體位置,例如兩個命令的記憶體位置重疊時,如下圖。
修改Command2的記憶體起始位置為20,如此便解決了重複記憶體位置的問題,如下圖。
MGate MB3660 Intelligent Mode介紹與設定說明
[MOXA] MGate MB3660 Transparent Mode介紹與設定說明
[MOXA] MGate MB3660 備援機制介紹與各模式效能比較
AGENT MODE
代理模式的設計概念是藉由MGate MB3660分割Modbus輪詢的負載,將要向Modbus終端設備請求的命令事先輸入在MGate MB3660中,由MGate MB3660負責去向Modbus終端設備輪詢,將回應的資料儲存在MGate MB3660的記憶體中;而SCADA對MGate MB3660發出請求時,MGate MB3660就會以記憶體中的資料回應給SCADA。代理模式改善了透明模式下獲取資料效率,但需要自行輸入大量的Modbus命令與配置資料儲存的記憶體位置;MGate MB3660每個序列埠口可以設定32個Modbus命令,所以對序列設備最多可以有512個命令;而且MGate MB3660對每個命令分配了1bit的記憶體位置,去儲存每個命令的執行狀況,0表示命令運行成功,1表示命令運行失敗。
在代理模式中,Modbus TCP master可透過命令讀取MGate MB3660 Modbus TCP slave的狀態,以了解Modbus RTU / ASCII slave設備的狀態,透過以下資訊:
Slave ID | [MB3660’s Modbus TCP slave ID] |
Function | 0x03 or 0x04 |
Address | 40001~ |
Quantity | 32 words for MB3660-16, 16 words for MB3660-8 |
同樣的Modbus RTU / ASCII master也可透過命令讀取MGate MB3660 Modbus RTU / ASCII slave的狀態,,以了解Modbus TCP slave設備的狀態,透過以下資訊:
Slave ID | [MB3660’s Modbus TCP slave ID] |
Function | 0x03 or 0x04 |
Address | 41001~ |
Quantity | 16 words |
Modbus TCP
此分頁中設定Modbus TCP端(乙太網路端)於系統中的Modbus腳色(master / slave)。Mode selection(MGate role)
選擇Modbus TCP端的Modbus腳色。
Initial delay(Master)
某些Modbus設備啟動的時間可能較長,若在設備尚未啟動前便開始發送請求可能導致設備異常,可以透過設定Initial Delay設定MGate MB3660在啟動後等待一段時間再開始發送第一個請求。
Max. retry(Master)
設定MGate MB3660嘗試與Modbus slave通訊的最大重試次數。
Response timeout(Master)
設定等待Modbus slave回應的逾時時間。
Modbus Commands(Master)
點擊Add可以新增命令,選擇現有命令再點擊Edit可編輯命令,選擇現有命令再點擊Copy可複製命令,選擇現有命令再點擊Delete可刪除命令。
Enable
啟用或停用該命令。
Name
命令名稱,可以辨識命令用途等。
Slave IP address
遠端TCPslave設備的IP位置。
Port
遠端TCP slave設備的TCP埠口。
Slave ID
遠端TCP slave設備的slave ID。
Function
Modbus命令的function code,支援01、02、03、04、05、06、15、16、23。
Trigger
選擇Disable時,該命令將不會被發送至TCP slave設備;Cyclic會依照poll interval設定的間隔時間循環發送命令;Data change會依照poll interval間隔輪詢數據,並在檢測到數據改變時發送命令。
Poll interval
腳色為Modbus TCP master時的輪詢間隔時間。
Endian swap
數據字節交換,選擇None不啟用交換;Byte會將0x0A, 0x0B, 0x0C, 0x0D變為 0x0B, 0x0A, 0x0D, 0x0C;Word會將0x0A, 0x0B, 0x0C, 0x0D變為0x0C, 0x0D, 0x0A, 0x0B;ByteWord會將0x0A, 0x0B, 0x0C, 0x0D變為0x0D, 0x0C, 0x0B, 0x0A。
Read starting address
讀取數據的起始位置。
Read quantity
讀取數據的數量,讀取單位依照Function選項不同而分為bit與16bits。
Write starting address
寫入數據的起始位置。
Write quantity
寫入數據的數量,寫入單位依照Function選項不同而分為bit與16bits。
Read / Write memory address
設定MGate MB3660讀取或寫入數據的記憶體起始位置,設為空值系統會自動定址。
Opposite side’s(Serial side’s) command fault
當遠端序列master設備斷線時,MGate MB3660的序列端就無法收到master的命令,但是MGate MB3660的TCP端依舊會發送寫入命令給TCP salve設備,為了避免序列端故障所可能造成的問題,當MGate MB3660的序列端失效時,MGate MB3660的TCP端可以有三種處理方式,Keep latest data會持續對TCP slave端寫入與最後一筆數據相同的數據;Clear data to zero會對TCP slave端寫入0;User-define value會對TCP slave端寫入使用者自定義的值。
Timeout for opposite side’s(Serial side’s) data update
設定判斷序列端逾時的時間。
Slave ID(Slave)
當MGate role為Slave,設定MGate MB3660 TCP端的slave ID。
TCP port(Slave)
設定MGate MB3660的Modbus TCP port。
Modbus RTU/ASCII
此分頁中設定Modbus RTU / ASCII端(乙太網路端)於系統中的Modbus腳色(master / slave)。Port Configuration Import
由本地端匯入csv格式的序列埠設定,詳細格式說明請參考設備原廠使用手冊Port Configuration(page 4-27)。
(download link: https://www.moxa.com/doc/man/MGate_MB3660_Series_UM_e2.0.pdf)
Port Configuration Export
將當前各埠口設定匯出為csv檔。
Mode selection(MGate role)
選擇Modbus RTU / ASCII端的Modbus腳色。
Master Settings(Master)
列出MGate MB3660處於RTU / ASCII master時的各埠口設定,選擇序列埠後點選Edit可進入該埠口設定。
Initial delay(Master)
某些Modbus設備啟動的時間可能較長,若在設備尚未啟動前便開始發送請求可能導致設備異常,可以透過設定Initial Delay設定MGate MB3660在啟動後等待一段時間再開始發送第一個請求。
Max. retry(Master)
設定MGate MB3660嘗試與Modbus slave通訊的最大重試次數。
Response timeout(Master)
設定等待Modbus slave回應的逾時時間。
Inter-frame delay(Master)
設定Slave設備在回覆資料時的延遲,如果設定為0,MGate MB3660會自動判斷延遲時間。
Inter-character timeout(Master)
設定Modbus RTU設備在回應時,每個字符的間隔逾時時間,若回應字符間隔時間逾時,此次接收的數據將會被丟棄,如果設定為0,MGate MB3660會自動判斷逾時時間。
Modbus Commands(Master)
點擊Add可以新增命令,選擇現有命令再點擊Edit可編輯命令,選擇現有命令再點擊Copy可複製命令,選擇現有命令再點擊Delete可刪除命令。
Enable
啟用或停用該命令。
Name
命令名稱,可以辨識命令用途等。
Slave ID
遠端TCP slave設備的slave ID。
Function
Modbus命令的function code,支援01、02、03、04、05、06、15、16、23。
Trigger
選擇Disable時,該命令將不會被發送至RTU / ASCII slave設備;Cyclic會依照poll interval設定的間隔時間循環發送命令;Data change會依照poll interval間隔輪詢數據,並在檢測到數據改變時發送命令。
Poll interval
腳色為Modbus RTU / ASCII master時的輪詢間隔時間。
Endian swap
數據字節交換,選擇None不啟用交換;Byte會將0x0A, 0x0B, 0x0C, 0x0D變為 0x0B, 0x0A, 0x0D, 0x0C;Word會將0x0A, 0x0B, 0x0C, 0x0D變為0x0C, 0x0D, 0x0A, 0x0B;ByteWord會將0x0A, 0x0B, 0x0C, 0x0D變為0x0D, 0x0C, 0x0B, 0x0A。
Read starting address
讀取數據的起始位置。
Read quantity
讀取數據的數量,讀取單位依照Function選項不同而分為bit與16bits。
Write starting address
寫入數據的起始位置。
Write quantity
寫入數據的數量,寫入單位依照Function選項不同而分為bit與16bits。
Read / Write memory address
設定MGate MB3660讀取或寫入數據的記憶體起始位置,設為空值系統會自動定址。
Opposite side’s(TCP side’s) command fault
當遠端TCP master設備斷線時,MGate MB3660的TCP 端就無法收到master的命令,但是MGate MB3660的序列端依舊會發送寫入命令給RTU / ASCII salve設備,為了避免TCP端故障所可能造成的問題,當MGate MB3660的TCP端失效時,MGate MB3660的序列端可以有三種處理方式,Keep latest data會持續對RTU / ASCIIslave端寫入與最後一筆數據相同的數據;Clear data to zero會對RTU / ASCIIslave端寫入0;User-define value會對RTU / ASCIIslave端寫入使用者自定義的值。
Timeout for opposite side’s(TCP side’s) data update
設定判斷TCP端逾時的時間。
Slave Settings(Slave)
列出MGate MB3660處於RTU / ASCII slave時的各埠口設定,選擇序列埠後點選Edit可進入該埠口設定。
Slave ID(Slave)
設定MGate MB3660 RTU / ASCII端的slave ID。
Apply the above setting to
除了將以上設定套用到該序列埠口,同時也可以套用到其他勾選的序列埠口或者所有埠口。
I/O Data Mapping
在代理模式中,你必須手動輸入每個Modbus命令,並且分配一個MGate MB3660的記憶體去儲存資料,I/O Data Mapping就是用於檢察每個命令的記憶體位置。範例1,如果兩個命令卻有相同的記憶體位置,如下圖。
你可以按下Re-Arrange自動重新排列記憶體位置,更新後會變為下圖。
範例2,你也可以手動修改記憶體位置,例如兩個命令的記憶體位置重疊時,如下圖。
修改Command2的記憶體起始位置為20,如此便解決了重複記憶體位置的問題,如下圖。
留言
張貼留言