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