Modbus RTU 和 Modbus TCP 通信概
Modbus 功能代碼
● CPU 作為 Modbus RTU 主站(或 Modbus TCP 客戶端)運行時,可在遠程 Modbus RTU 從站(或 Modbus TCP 服務器)中讀/寫數據和 I/O 狀態。可在程序邏輯中讀取并處理遠程數據。
● CPU 作為 Modbus RTU 從站(或 Modbus TCP 服務器)運行時,監控設備可在 CPU 存儲器中讀/寫數據和 I/O 狀態。RTU 主站(或 Modbus TCP 客戶端)可以將新值寫入從站/服務器 CPU 存儲器,以供用戶程序邏輯使用。
RTU 站 :標準站地址 1 到 247擴展站地址 1 到 65535
TCP 站 :站地址 IP 地址和端口號
實際可用的 Modbus 存儲區地址數取決于 CPU 型號、存在多少工作存儲器以及其他程序數據占用多少 CPU 存儲區。下表給出地址范圍的額定值。
Modbus RTU 通信
Modbus RTU(遠程終端單元)是一個標準的網絡通信協議,它使用 RS232 或 RS485 電氣連接在 Modbus 網絡設備之間傳輸串行數據。可在帶有一個 RS232 或 RS485 CM 或一個 RS485 CB 的 CPU 上添加 PtP(點對點)網絡端口。Modbus RTU 使用主/從網絡,單個主設備啟動所有通信,而從設備只能響應主設備的請求。主設備向從一個從設備地址發送請求,然后該從設備地址對命令做出響應。
Modbus TCP 通信
Modbus TCP(傳輸控制協議)是一個標準的網絡通信協議,它使用 CPU 上的 PROFINET 連接器進行 TCP/IP 通信。不需要額外的通信硬件模塊。
我們主要以Modbus TCP為主介紹:
在指令任務卡中,在“通信”(Communication) 組中的“其它”(Others) 下顯示 MODBUS TCP 指令。
要更改 Modbus TCP 指令的版本,請從下拉列表中選擇相應版本。可以選擇一組指令或分別選擇各個指令。
使用指令樹將 Modbus TCP 指令放入程序時,將在項目樹中創建新的 FB 實例。在項目樹的“PLC_x > 程序塊 > 系統塊 > 程序資源”(PLC_x > Program blocks > System blocks > Program resources) 下可看到新的 FB 實例。
要確認程序中 Modbus TCP 指令的版本,必須檢查項目樹的屬性而不是程序編輯器中顯示的框的屬性。選擇項目樹的 Modbus TCP FB 實例,單擊右鍵,選擇“屬性”(Properties),然后選擇“信息”(Information) 頁查看 Modbus TCP 指令的版本號。
Modbus TCP 指令
MB_CLIENT(作為 Modbus TCP 客戶端使用 PROFINET 進行通信)指令
"MB_CLIENT_DB"(
REQ:=_bool_in_,
DISCONNECT:=_bool_in_,
MB_MODE:=_usint_in_,
MB_DATA_ADDR:=_udint_in_,
MB_DATA_LEN:=_uint_in_,
DONE=>_bool_out_,
BUSY=>_bool_out_,
ERROR=>_bool_out_,
STATUS=>_word_out_,
MB_DATA_PTR:=_variant_inout_,
CONNECT:=_variant_inout_);
MB_CLIENT 作為 Modbus TCP 客戶端,通過 S7-1200 CPU 上的 PROFINET 端口進行通信。不需要額外的通信硬件模塊。MB_CLIENT 可進行客戶端-服務器連接、發送 Modbus 功能請求、接收響應,以及控制 Modbus TCP 服務器的斷開。
REQ In Bool
FALSE = 無 Modbus 通信請求TRUE = 請求與 Modbus TCP 服務器通信
DISCONNECT IN Bool
DISCONNECT 參數允許程序控制與 Modbus 服務器設備的連接和斷開。如果 DISCONNECT = 0 且不存在連接,則 MB_CLIENT 嘗試連接到分配的 IP 地址和端口號。如果 DISCONNECT = 1 且存在連接,則嘗試斷開連接操作。每當啟用此輸入時,無法嘗試其它操作。
MB_MODE IN USInt
模式選擇:分配請求類型(讀、寫或診斷)。
MB_DATA_ADDR IN UDInt
Modbus 起始地址:分配 MB_CLIENT 訪問的數據的起始地址。有效地址的相關信息,請參見下面的 Modbus 功能表。
MB_DATA_LEN IN UInt
Modbus 數據長度:分配此請求中要訪問的位數或字數。有效長度的相關信息,請參見下面的 Modbus 功能表。
MB_DATA_PTR IN_OUT Variant
指向 Modbus 數據寄存器的指針:寄存器緩沖進出 Modbus 服務器的數據。指針必須分配一個未進行優化的全局 DB 或 M 存儲器地址。
CONNECT IN_OUT Variant
引用包含系統數據類型為“TCON_IP_v4”的連接參數的數據塊結構。
DONE OUT Bool
上一請求已完成且沒有出錯后,DONE 位將保持為 TRUE 一個掃描周期時間。
BUSY OUT Bool
● 0 - 無 MB_CLIENT 操作正在進行
● 1 - MB_CLIENT 操作正在進行
ERROR OUT Bool
MB_CLIENT 執行因錯誤而結束后,ERROR 位將在一個掃描周期時間內保持為 TRUE。STATUS 參數中的錯誤代碼僅在 ERROR = TRUE 的一個循環周期內有效。
STATUS OUT Word
編輯:jq
-
MODBUS
+關注
關注
28文章
1762瀏覽量
76840 -
TCP
+關注
關注
8文章
1351瀏覽量
78989 -
RTU
+關注
關注
0文章
404瀏覽量
28626
原文標題:S 7-1200-Modbus RTU 和 Modbus TCP 通信概
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論