例程將給大家介紹西門子S7-200SMART如何使用 Modbus 主站指令對 Modbus 從站的四個保持寄存器執(zhí)行讀寫操作。
程序控制要求
當(dāng)I0.0接通的時候,程序?qū)?VW100 開始的四個字寫入 Modbus 從站從地址 40001 開始的保持寄存器。
PLC讀取 Modbus 從站從 40010 到 40013 的四個保持寄存器,并將數(shù)據(jù)存入PLC中從 VW200 開始的 V 存儲器中。數(shù)據(jù)交互地址如下:
西門子PLC進(jìn)行MODBUS通信主要使用單個主站及 MBUS_CTRL 和 MBUS_MSG 指令。
MBUS_CTRL:程序調(diào)用 MBUS_CTRL指令來初始化、監(jiān)視或禁用 Modbus 通信。
MBUS_MSG:程序調(diào)用 MBUS_MSG指令,啟動對 Modbus 從站的請求并處理響應(yīng)。
程序編程及說明
程序段1
通過在每次掃描時調(diào)用 MBUS_CTRL 來初始化和監(jiān)視 Modbus 主站。Modbus 主站設(shè)為 9600 波特,無奇偶校驗。從站設(shè)備允許在 1000 毫秒(1 秒)內(nèi)進(jìn)行響應(yīng)。
程序段2
第一次掃描時,復(fù)位用于兩條 MBUS_MSG 指令的啟用標(biāo)記(M2.0 和 M2.1)。
程序段3
當(dāng) I0.0 從關(guān)閉變?yōu)榻油〞r,設(shè)置第一條 MBUS_MSG 指令的啟用標(biāo)志 (M2.0)。
程序段4
當(dāng)?shù)谝粋啟用標(biāo)志 (M2.0) 接通時,調(diào)用 MBUS_MSG 指令。只需為啟用該指令的第一次掃描設(shè)置 First 參數(shù)。
該指令會對從站 2 的 4 個保持寄存器執(zhí)行寫入 (RW = 1) 操作。從PLC中的 VB100-VB107(4 個字)獲取寫數(shù)據(jù),然后寫入到 Modbus 從站中的地址 40001 - 40004。
程序段5
第一條 MBUS_MSG 指令完成后(“完成”(Done) 位從 0 變?yōu)?1),會清除第一條 MBUS_MSG 指令的啟用標(biāo)志,然后設(shè)置第二條 MBUS_MSG 指令的啟用標(biāo)志。
如果錯誤 (MB1) 不為零,則置位 Q0.1 顯示錯誤。
程序段6
第二個啟用標(biāo)志 (M2.1) 接通時,調(diào)用第二條 MBUS_MSG 指令。只需為啟用該指令的第一次掃描設(shè)置 First 參數(shù)。
該指令會對從站 2 的 4 個保持寄存器執(zhí)行讀取 (RW = 0) 操作。數(shù)據(jù)從 Modbus 從站中的地址 40010 - 40013 讀取,并復(fù)制到PLC中的 VB200 - VB207(4 個字)。
程序段7
第二條 MBUS_MSG 指令完成(“完成”(Done) 位從 0 變?yōu)?1)后,清除第二條 MBUS_MSG 指令的啟用標(biāo)志。
如果錯誤 (MB1) 不為零,則置位 Q0.2 顯示錯誤。
以上,即為西門子PLC進(jìn)行modbus通信的使用示例。