一、準備工具及材料
1.臺式電腦一臺,筆記本電腦一臺;
2.西門子plc S7-200smart PLC一臺,
3.多功能電表DW9L-RC38或DS9L或DS7L一臺,溫控表TE系列一臺,
4.儀表說明書及通訊協議,
5.9針接口通訊線一根,
6.USB轉RS485轉換器一臺,
7.電源線,網線、網絡交換機等。
二、軟件安裝
軟件名稱:STEP 7-MicroWIN SMART,可從西門子網站下載。
三、梯形圖編程
1.主要編程思路
PLC使用自帶的RS485接口與儀表進行通信連接,PLC作為主站,儀表為從站,使用標準Modbus-RTU通訊協議。調用編程軟件自帶的Modbus協議庫,實現與儀表的數據通信。
2.MBUS_CTRL 和 MBUS_MSG 指令介紹
本示例使用單個主站及 MBUS_CTRL 和 MBUS_MSG 指令。同一理念對使用第二個主站及 MB_CTRL2 和 MB_MSG2 指令的示例同樣適用。
3.電力儀表通信協議:
4.梯形圖編程
(1)設置PLC型號
(2)設置庫存儲器的地址分配(系統已分配VB0~VB285用于modbus通信使用,我們就從VB286開始)
(3)編輯符號表
(4)編輯狀態圖表
(5)編制第一、二段:置位標志位及通訊初始化:波特率Baud=9600,Parity=0無校驗,Port=0集成CPU內RS485口,Timeout從站響應超時50ms。Done初始化完成返回"TURE",Error輸出錯誤結果。
(6)程序3-4:當MBUS_CTRL初始化完成后,M0.0 從關閉變為接通時,延時T33=10mS時間后,置位第一條 MBUS_MSG 指令的啟用標志 (M2.0)=1。
(7)程序5:讀第一臺從機設備,地址1,型號DW9L或DS9L或DS7L。當第一個啟用標志 (M2.0) 接通后,調用 MBUS_MSG 指令。只需為啟用該指令的第一次掃描設置 First 參數。該指令會對從站(Slave =1)的 12個保持寄存器執行讀取 (RW = 0) 操作。
Modbus 主站對 Modbus 從站的12個保持寄存器執行讀操作(A、B、C相電壓值)。
PLC 會從儀表地址為 416385 (0x4000)開始的保持寄存器中讀取到CPU內部,并保存在以VB300 開始的12個字節 V 存儲器中。
讀0x4000開始的A相電壓值,需將0x4000轉換為十進制數0x4000→16384,再用400001+16384=416385。
讀取的數據存放在 CPU 中的 VB300-VB311中;VB300,301,302,303對應A相電壓;VB304,305,306,307對應B相電壓;VB308,309,310,311對應C相電壓。因為電壓值是雙字節存放,所以用VD300地址讀取A相電壓,VD304地址讀取B相電壓,VD308地址讀取C相電壓。
M0.4為啟動輪詢,將通信設備進行反復讀寫操作。
(8)程序6:第一條 MBUS_MSG 指令完成后("完成"(Done) 位從 0 變為 1),會清除第一條 MBUS_MSG 指令的啟用標志,然后設置第二條 MBUS_MSG 指令的啟用標志。
(9)程序7:第二次輪詢,讀電能值參數:讀第一臺設備的頻率參數。第二個啟用標志 (M2.1) 接通時,調用第二條 MBUS_MSG 指令。只需為啟用該指令的第一次掃描設置 First 參數。該指令會對從站 1 的 2 個保持寄存器執行讀取 (RW = 0) 操作。數據從 Modbus 從站中的地址 416437(0x4034)讀取,并復制到 CPU 中的 VB400 - VB403(4 個字節VD400)。
(10)程序8-9:第二次讀數據輪詢結束,復位相關參數。
(11)程序10-11:輪詢讀第二臺設備,讀從機地址2的溫控表測量值參數。 MBUS_MSG 指令完成("完成"(Done) 位從 0 變為 1)后,清除 MBUS_MSG 指令的啟用標志。
(12)將VW406中的值寫入溫控表SV設定值中。
四、編譯及程序下載
五、在線測試
六、串口監控:在電腦上用USB轉RS485轉換器連接到RS485接線端上,監控PLC與儀表的通信收發報文: