SIAMATIC S7-1200/S7-1500 中通過(guò)Modbus RTU如何讀取地址范圍9999
STEP 7 V14 (TIA Portal)及以上版本中的"Modbus_Master"指令版本V2.4及以上,開(kāi)始為SIMATIC S7-1200/S7-1500提供了讀取Modbus從站輸入字(功能代碼04)擴(kuò)展地址范圍(9999-65535)的選項(xiàng)。
要求
下表列出了讀取擴(kuò)展輸入地址范圍的最低要求:
S7-1200 S7-1500 / ET 200SP CPU
CPU 固件版本 V4.1.1 及以上 V1.7 及以上
通信板 CB 1241 RS485 -
通信模塊 CM 1241 RS422/485 (V2.1 及以上) CM PtP RS422/485 HF (V1.0 及以上)
CM 1241 RS232 (V2.1 及以上) CM PtP RS232 HF (V1.0及以上)
ET 200SP CM PtP (V1.0 及以上)
STEP 7 (TIA Portal) V13 SP1 及以上 V14 及以上
MODBUS ( RTU )指令 V3.0 及以上 V3.1 及以上
Modbus_Master指令 V2.2 及以上 V2.4 及以上
表01
指令
除了"Modbus_Master"指令以外,還需要"Modbus_Comm_Load"指令才能建立通訊。
兩個(gè)程序塊都在STEP 7 (TIA Portal)中,"Instructions>Communication>Communication processor>MODBUS ( RTU )"。

圖. 01
Modbus_Comm_Load
Modbus_Comm_Load程序塊是用來(lái)選擇通訊模塊的,設(shè)置通訊參數(shù)并用主站(或從站)的參數(shù)將連接參數(shù)化。
圖. 02
在第一次調(diào)用Modbus_Master (or Modbus_Slave)之前, Modbus_Comm_Load 必須運(yùn)行一次(僅觸發(fā)一次即可)并且運(yùn)行完成(DONE為1)。 Modbus_Comm_Load 可以在程序的第一個(gè)循環(huán)中(通過(guò)在硬件組態(tài)中啟用系統(tǒng)存儲(chǔ)器位M1.0)調(diào)用。
在硬件組態(tài)中插入通訊模塊之后,就可以在PORT參數(shù)傳輸通訊模塊的硬件標(biāo)識(shí)符或則其符號(hào)名。通訊參數(shù)BAUD (波特率)和PARITY (奇偶校驗(yàn)) 必須要與從站地址相匹配。
在參數(shù)MB_DB傳輸Modbus_Master (或者 Modbus_Slave)背景數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)MB_DB,這樣就可以定義通訊模塊(通過(guò)PORT參數(shù)識(shí)別) 為MODBUS主站(或從站)。
除此之外,必須改變 Modbus_Comm_Load的背景數(shù)據(jù)塊中的靜態(tài)參數(shù)以便進(jìn)行雙工操作模式,通過(guò)初始值設(shè)定(0 = 全雙工(RS232), 1 = 全雙工(RS422)四線制模式,4 = 半雙工(RS485) 兩線制模式)。

圖. 03
Modbus_Master
使用Modbus_Master功能塊來(lái)定義通訊模塊,并將Modbus_Comm_Load組態(tài)塊選擇為MODBUS主站。
圖. 04
Modbus_Master塊用來(lái)選擇需要與之通訊相匹配的MODBUS從站,指定功能代碼并定義本地?cái)?shù)據(jù)的存儲(chǔ)區(qū)。下面表格介紹了參數(shù)。
參數(shù) 描述
REQ 使能通訊。
MB_ADDR MODBUS-RTU從站地址。
MODE
請(qǐng)求的類(lèi)型:
"0" = 讀
"1" = 寫(xiě)
"104" = 讀取從站的輸入字(寄存器地址到65535)
DATA_ADDR 定義MODBUS起始地址( =偏移量 + 從站寄存器地址):MODE = 104:Offest =0
DATA_LEN 定義MODBUS數(shù)據(jù)長(zhǎng)度(位或者字節(jié)形式):當(dāng)MODE = 104長(zhǎng)度單位為 Words
DATA_PTR 定義主站本地?cái)?shù)據(jù)接收區(qū)和發(fā)送區(qū)。DATA_PTR參數(shù)必須引用一個(gè)數(shù)據(jù)塊,這個(gè)數(shù)據(jù)塊的“優(yōu)化的塊訪問(wèn)”屬性必須已被禁用。
表 02
下載
項(xiàng)目包含了通過(guò)Modbus RTU讀取擴(kuò)展輸入地址的例程。
S7-1200 CPU使用CM 1241 RS422/485
S7-1200 CPU 使用CB 1241 RS485
地址為1的Modbus從站,從地址53248開(kāi)始 (16#D000)規(guī)定的9個(gè)輸入字可以通過(guò)RS485通訊使用監(jiān)控表讀取 (比如ebm-papst公司的Motor VarioDrive C)。
版權(quán)聲明:工控網(wǎng)轉(zhuǎn)載作品均注明出處,本網(wǎng)未注明出處和轉(zhuǎn)載的,是出于傳遞更多信息之目的,并不意味 著贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性。如轉(zhuǎn)載作品侵犯作者署名權(quán),或有其他諸如版權(quán)、肖像權(quán)、知識(shí)產(chǎn)權(quán)等方面的傷害,并非本網(wǎng)故意為之,在接到相關(guān)權(quán)利人通知后將立即加以更正。聯(lián)系電話:0571-87774297。