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