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