1. 引言
當使用三菱電機 PLC 進行 Modbus/TCP 通信時,除了使用 Modbus/TCP 單元 (QJ71MT91) 之外,還可以使用 CPU 的內置乙太網埠或乙太網單元。
在本文中,我們將介紹如何使用 「通信協議支援功能」 進行 Modbus 通信。
2. 什麼是「通信協議支援功能」?
SLMP(SeamLess Message Protocol。 相容 MC 協定的 4E/3E 幀)、Modbus/TCP 和 BACnet。
它還允許使用者創建他們選擇的數據包格式。
使用通信協議支援功能,可以只更改每次通信發生變化的部分(例如讀取目標的位址),而無需瞭解數據包中包含的開始/結束字元等固定部分,並自動處理從另一方返回的數據(例如,上下交換位元組)。
此外,當 PLC 成為 Modbus 用戶端(= 主站,接收數據的一側)時,可以處理通信協議支援功能。
要作為Modbus 伺服器(= slave)運行,您需要以下單元:
• Q 系列:Modbus/TCP 單元 (QJ71MT91)
• iQ-R 系列:乙太網單元 (RJ71EN71)
• iQ-R 系列:內置 CPU,帶乙太網/CC-Link IE (RnENCPU)
3. 相容設備
通信協議支援功能可用於以下 CPU 和單元。
• Q 系列乙太網單元 (QJ71E71-100)
• 內置 Q 系列 CPU (QnUDV) 的乙太網埠注意:不支援 QnUDEH。
• iQ-R 系列乙太網單元 (RJ71EN71)[*]
• 內置乙太網埠,用於 iQ-R 系列 CPU (RnCPU/RnENCPU)
• iQ-R 系列 CPU (RnENCPU) 網络單元 (乙太網/CC-Link IE 連接埠)[*]
• iQ-F 系列 (FX5U) 內置以太網埠 [*]
< 補充劑 >
標有 [*] 的設備支援使用“簡單 CPU 通信功能”進行 Modbus/TCP 通信,並且可以通過比通信協議支援功能更簡單的設置來執行 Modbus/TCP 通信。
請注意,QnUDV 和 Rn (EN) 的內置乙太網埠支持簡單的 CPU 通信功能,但不支援將 Modbus/TCP 通信作為通信目的地。
4. 設置流程
要使用通信協議支援功能,需要設置和註冊協定、設置 PLC 參數和創建程式。
4.1 協議設置和註冊
“通信協議支援功能”設置軟體從 GX Works2 或 GX Works3 功能表啟動。
GX Works2
工具 (T) - 通訊協定支援功能 (R) - 乙太網單元 (E) ... 或內置乙太網 (T)...
* 內置乙太網只能在 QnUDV 時選擇。
GX Works3
工具 (T) - 通信協定支援功能 (R)
* 之後,您可以選擇“乙太網單元”或“以太網內置 CPU”。
創建新的設定檔後,您可以通過按兩下 Protocol Number 列中的 「Add」 來註冊和設定協定。
以下是讀取 Modbus Holding Registers 的設置範例。
圖 1. 保留寄存器讀取設置
之後,您將繼續配置協議元素。
有關如何操作的詳細資訊,請參閱以下手冊。
・SH-080901-AC GX Works2 操作手冊(智慧功能單元操作)
→ 第 4 章 通信協定支援功能 - 4.6 編輯協定
我將向協議設置添加一些資訊。
(1) 協定設定檔的存
通信協議支援功能通過將設置寫入乙太網單元或CPU單元來運行。
由於更換本機時設置會消失,因此需要保存協定配置檔 (*.epc) 並在更換后重新寫入。
(2) 協議的重複使用
Modbus/TCP 協定在傳輸時指定模組 ID(從 ID)。
因此,即使有多個設備或設備要通信,也可以使用相同的協定。
(無需為每個通信夥伴創建協定)如果要
通信的數據是不同類型的,例如輸入寄存器和保持寄存器,請單獨創建它們。
(3) 批量設置設備
如果您對協定中要設定的裝置不特別,您可以使用「批量設備設置」(編輯 (E) - 批量設備設定 (I)...)您可以通過在 中指定第一個位址來一次設置所有位址。
圖 2. 批量設備設置
4.2 設置 PLC 參數
在網路參數中添加乙太網單元並配置打開設置。
以下是 Q 系列乙太網單元的範例。
圖 3. 打開配置範例
請注意,開放設置中有 16 幀,但如圖 3 所示,接收/傳輸消耗 2 幀,因此您最多可以與 8 個對手通信。
生存確認可以傳達為 「確認」 或 「未確認」 ,但通常設置為 「確認」 如果由於環境或系統配置而出現問題,則設置為 「不確認」。
通信合作夥伴的標準埠號是Modbus/TCP規範中的“502”(十進位)。
4.3 建立程式
為了執行通信協定,需要創建 “open port”、“execute communication protocol” 和 “close port” 的程式。
發生通信錯誤時執行 「關閉埠」,然後從 「打開埠」 恢復。
以下是使用 Q 系列乙太網單元的程式範例。
(僅包含運行通信處理的最小程式。
圖 4. 示例程式
(1) 設定協定執行條件
在「通信協定支援功能」的設置軟體中指定的傳輸數據包的設備的通信條件。
• 事務 ID
將按接收數據中的原樣返回。
一直保持 1 是可以的,但如果每次發送都將其設為 +1,則更容易理解傳輸數據和接收數據之間的對應關係。
• 模組ID指定
它有時被稱為“從屬ID”或“單元ID”。
• First register number(第一個寄存器號):指定要
讀取的寄存器或輸入 (bit) 的編號。
例如,如果目標是保持寄存器,如果指定了 “0”,則位址 40001 (*) 將成為目標。
根據Modbus設備的不同,“400001”可能表示為六位數,但兩者都是指“保持寄存器的第一個位址”。
• 要讀取的點數: 指定要根據
第一個寄存器號連續讀取的點數。
它是一個Modbus規範,最大數量為125點。
(2) 獲得開放狀態
由於指令的互鎖,埠的打開狀態是從乙太網單元獲得的。
(3) 開放式加工
“執行類型/完成類型” 是允許您選擇指定埠設置的位置的設置。
• H0 (15 位關閉) ... 使用網路參數的 open 設置的內容。
• H8000 (15 位開啟) ... 使用您在程式中設置的內容。 open 指令的第一個參數 (ZP.OPEN) 指定乙太網單元的第一個 I/O 編號(上兩位數位),但只有當使用的 CPU 是高性能型號 QCPU (QnHCPU) 時,才應將其括在雙引號中。
(4) 通信協定執行流程
執行已註冊的通信協定。
在單個指令執行中,最多可以按順序執行八個協定。
(5) 接收數據的處理
正常接收時,接收到的通信協議支援功能的數據包將從設備傳輸到程式中使用的設備。
(6) 成交處理
當發生通信錯誤或不再需要通信時執行它。
它不需要在正常條件下運行。
在示例程式中,open 指令 (ZP. OPEN)、通信協定執行指令 (GP. ECPRTCL)、close instruction (ZP. CLOSE),則假定執行條件設備(M90 到 92)是手動打開和執行的。
如果您想使其成為一個實用的程式,請將其替換為條件,例如使用計時器定期執行或使用 DECO 指令進行步驟處理。
5. 通信確認
如果您手頭沒有設備,您可以在計算機上啟動 Modbus 伺服器(= slave)軟體並檢查通信。
有各種各樣的Modbus軟體,其中之一是“ModRSsim2”。
ModRSsim2 可以從開源軟體/版本控制系統網站“SourceForge.net”下載。
https://sourceforge.net/projects/modrssim2/
5.1 如何使用ModRSsim2
它僅包含應用程式 (ModRSsim2.exe),無需任何安裝操作。
另外,基本不需要設置,啟動時會等待用戶端(= master)的連接。
圖 5. ModRSsim2 外觀
您可以透過按兩下顯示 「0」 的位置來設定寄存器中的值。
5.2 檢查多個通信夥伴
ModRSsim2 接受所有模組 ID (= slave IDs) 的連接。
此規範在某些情況下可能很有用,但是當從 PLC 連接到多個通信目的地,並且您希望單獨輸入和檢查每個通信目的地的模擬數據時,它可能會成為一個問題。
\由於 ModRSsim2 允許您將偵聽埠的埠號從標準的“502”更改為不同的埠號(例如 503)並同時更改 PLC 參數的打開設置中的“通信夥伴埠號”,以將連接分配給多個 ModRSsim2 啟動。
圖 6. ModRSsim2 TCP/IP 設置
6. 總結
如開頭所述,使用“通信協議支援功能”無需在程式上創建數據包(電報)和替換大小下位元組等處理,從而提高了程式的可讀性。
但是,由於 Modbus 是一個相當簡化的協議,數據包中的固定部分很少,並且很難獲得通信協議支援功能的好處,因此通過在程式上創建數據包內容並執行套接字通信來更容易理解。
表 1 顯示了使用和不使用協定輔助之間的比較。
表 1. 使用和不使用協議輔助的比較
不。 | 專案 | 協定使用 | 未使用協定 |
---|---|---|---|
1 | 程序創建 | △ (協議設置 + 梯子) |
是 (僅限梯子) |
2 | 簡化程式 | 是 (無協定固定部分描述) |
△ (帶有固定的協定部分描述) |
3 | 發送/接收數據處理 | 是 (傳輸順序、位元組替換) |
× (全部以程式設計方式處理) |
4 | 傳入數據分析 | 是 (僅儲存必要的資料) |
× (需要資料提取和轉換) |
5 | 可維護性 | × (需要設定檔 + 階梯) |
是 (僅與梯子一起完成) |
此外,“3. “兼容設備”中提到的“簡單 CPU 通信功能”不需要打開/關閉埠等,如果您註冊通信條件,它會自動發送和接收數據,因此如果支援,我覺得最好使用它。
需要瞭解的是,有多種方法可以實現相同的功能,然後正確使用它們。
(S. T.)
Q兼容乙太網介面單元使用者手冊(基礎)(SH-080004-AC)
... 第 11 章 通過通信協議進行數據通
QnUC CPU 使用者手冊(內置以太網埠通信)(SH-080806-Y)
... 第 6 章 通過通信協議進行通信