Modbus RTU 和 Modbus TCP 通信
Modbus 功能代碼
● CPU 作為 Modbus RTU 主站(或 Modbus TCP 客戶端)運行時,可在遠程 Modbus RTU 從站(或 Modbus TCP 服務器)中讀/寫數(shù)據(jù)和 I/O 狀態(tài)。可在程序邏輯中讀取并處理遠程數(shù)據(jù)。
● CPU 作為 Modbus RTU 從站(或 Modbus TCP 服務器)運行時,監(jiān)控設(shè)備可在 CPU 存儲器中讀/寫數(shù)據(jù)和 I/O 狀態(tài)。RTU 主站(或 Modbus TCP 客戶端)可以將新值寫入從站/服務器 CPU 存儲器,以供用戶程序邏輯使用。
RTU 站 :標準站地址 1 到 247擴展站地址 1 到 65535
TCP 站 :站地址 IP 地址和端口號
實際可用的 Modbus 存儲區(qū)地址數(shù)取決于 CPU 型號、存在多少工作存儲器以及其他程序數(shù)據(jù)占用多少 CPU 存儲區(qū)。下表給出地址范圍的額定值。
Modbus RTU 通信
Modbus RTU(遠程終端單元)是一個標準的網(wǎng)絡(luò)通信協(xié)議,它使用 RS232 或 RS485 電氣連接在 Modbus 網(wǎng)絡(luò)設(shè)備之間傳輸串行數(shù)據(jù)??稍趲в幸粋€ RS232 或 RS485 CM 或一個 RS485 CB 的 CPU 上添加 PtP(點對點)網(wǎng)絡(luò)端口。Modbus RTU 使用主/從網(wǎng)絡(luò),單個主設(shè)備啟動所有通信,而從設(shè)備只能響應主設(shè)備的請求。主設(shè)備向從一個從設(shè)備地址發(fā)送請求,然后該從設(shè)備地址對命令做出響應。
Modbus TCP 通信
Modbus TCP(傳輸控制協(xié)議)是一個標準的網(wǎng)絡(luò)通信協(xié)議,它使用 CPU 上的 PROFINET 連接器進行 TCP/IP 通信。不需要額外的通信硬件模塊。
我們主要以Modbus TCP為主介紹:
在指令任務卡中,在“通信”(Communication) 組中的“其它”(Others) 下顯示 MODBUS TCP 指令。
要更改 Modbus TCP 指令的版本,請從下拉列表中選擇相應版本。可以選擇一組指令或分別選擇各個指令。
使用指令樹將 Modbus TCP 指令放入程序時,將在項目樹中創(chuàng)建新的 FB 實例。在項目樹的“PLC_x > 程序塊 > 系統(tǒng)塊 > 程序資源”(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 可進行客戶端-服務器連接、發(fā)送 Modbus 功能請求、接收響應,以及控制 Modbus TCP 服務器的斷開。
REQ In Bool
FALSE = 無 Modbus 通信請求TRUE = 請求與 Modbus TCP 服務器通信
DISCONNECT IN Bool
DISCONNECT 參數(shù)允許程序控制與 Modbus 服務器設(shè)備的連接和斷開。如果 DISCONNECT = 0 且不存在連接,則 MB_CLIENT 嘗試連接到分配的 IP 地址和端口號。如果 DISCONNECT = 1 且存在連接,則嘗試斷開連接操作。每當啟用此輸入時,無法嘗試其它操作。
MB_MODE IN USInt
模式選擇:分配請求類型(讀、寫或診斷)。
MB_DATA_ADDR IN UDInt
Modbus 起始地址:分配 MB_CLIENT 訪問的數(shù)據(jù)的起始地址。有效地址的相關(guān)信息,請參見下面的 Modbus 功能表。
MB_DATA_LEN IN UInt
Modbus 數(shù)據(jù)長度:分配此請求中要訪問的位數(shù)或字數(shù)。有效長度的相關(guān)信息,請參見下面的 Modbus 功能表。
MB_DATA_PTR IN_OUT Variant
指向 Modbus 數(shù)據(jù)寄存器的指針:寄存器緩沖進出 Modbus 服務器的數(shù)據(jù)。指針必須分配一個未進行優(yōu)化的全局 DB 或 M 存儲器地址。
CONNECT IN_OUT Variant
引用包含系統(tǒng)數(shù)據(jù)類型為“TCON_IP_v4”的連接參數(shù)的數(shù)據(jù)塊結(jié)構(gòu)。
DONE OUT Bool
上一請求已完成且沒有出錯后,DONE 位將保持為 TRUE 一個掃描周期時間。
BUSY OUT Bool
● 0 - 無 MB_CLIENT 操作正在進行
● 1 - MB_CLIENT 操作正在進行
ERROR OUT Bool
MB_CLIENT 執(zhí)行因錯誤而結(jié)束后,ERROR 位將在一個掃描周期時間內(nèi)保持為 TRUE。STATUS 參數(shù)中的錯誤代碼僅在 ERROR = TRUE 的一個循環(huán)周期內(nèi)有效。
STATUS OUT Word
執(zhí)行條件代碼
審核編輯:郭婷
-
存儲器
+關(guān)注
關(guān)注
38文章
7518瀏覽量
164080 -
cpu
+關(guān)注
關(guān)注
68文章
10889瀏覽量
212386 -
服務器
+關(guān)注
關(guān)注
12文章
9253瀏覽量
85746
原文標題:S 7-1200-Modbus RTU 和 Modbus TCP 通信概
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論