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