師錦航
(陜西國(guó)防工業(yè)職業(yè)技術(shù)學(xué)院,陜西西安 710300)
分切機(jī)是一種將寬幅紙張、鋁箔、無(wú)紡布等各種薄膜材料分切成多條窄幅材料的機(jī)械設(shè)備,在本例中分切機(jī)的收放卷由3 臺(tái)電機(jī)完成,分別為:開卷電機(jī)、內(nèi)卷電機(jī)和外卷電機(jī),3 臺(tái)電機(jī)分別受3 臺(tái)變頻器控制,系統(tǒng)構(gòu)成如圖1 所示。
圖1 系統(tǒng)構(gòu)成
FX5U PLC 與3 臺(tái)變頻器之間采用RS-485 串行通信方式,通信協(xié)議選擇Modbus RTU。
Modbus RTU 協(xié)議是一種開放的串行通信協(xié)議,廣泛應(yīng)用于工業(yè)控制設(shè)備中。Modbus RTU 協(xié)議通過RS-232 或RS-485 串行接口,在主站與從站設(shè)備之間進(jìn)行數(shù)據(jù)傳輸。任何使用Modbus RTU 通信協(xié)議的網(wǎng)絡(luò)系統(tǒng)都將有一個(gè)Modbus 主站和至少一個(gè)Modbus 從站。在本項(xiàng)目應(yīng)用中,三菱FX5U 系列PLC 作為Modbus RTU 主站,3 臺(tái)變頻器作為從站。
分切機(jī)設(shè)備運(yùn)行時(shí),F(xiàn)X5U PLC 既要實(shí)時(shí)地讀取3 臺(tái)變頻器的運(yùn)行頻率、輸出電流等運(yùn)行狀態(tài)數(shù)據(jù),也要向3 臺(tái)變頻器寫入頻率、正轉(zhuǎn)運(yùn)行、反轉(zhuǎn)運(yùn)行指令等控制數(shù)據(jù)。
主站PLC 需要讀取的變頻器狀態(tài)數(shù)據(jù)與Modbus地址對(duì)應(yīng)關(guān)系見表1,Modbus 地址7000H~7006H,共7 條數(shù)據(jù),需要從3 臺(tái)變頻器讀取的數(shù)據(jù)都相同,包括變頻器的運(yùn)行頻率、設(shè)定頻率、母線電壓等,這些數(shù)據(jù)會(huì)在監(jiān)控觸摸屏上顯示,以便現(xiàn)場(chǎng)設(shè)備操作人員了解設(shè)備的運(yùn)行狀態(tài),當(dāng)設(shè)備發(fā)生故障時(shí)設(shè)備維護(hù)人員也可通過這些數(shù)據(jù)分析故障原因。
表1 Modbus 讀取地址
對(duì)于開卷變頻器,PLC 向變頻器寫入的數(shù)據(jù)包括控制字和頻率百分比。將變頻器設(shè)置為速度控制模式,通過地址1000H 改變運(yùn)行頻率,通過地址7311H 發(fā)送控制字,寫入數(shù)據(jù)與Modbus地址對(duì)應(yīng)關(guān)系見表2。
表2 開卷變頻器Modbus 寫入地址
對(duì)于內(nèi)卷和外卷變頻器,除了需要寫入頻率百分比和控制字以外,還需要寫入轉(zhuǎn)矩百分比。將變頻器設(shè)置為速度限幅的轉(zhuǎn)矩控制模式,通過地址4003H 改變輸出轉(zhuǎn)矩百分比,寫入數(shù)據(jù)與Modbus 地址對(duì)應(yīng)關(guān)系見表3。
表3 內(nèi)/外卷變頻器Modbus寫入地址
對(duì)于三菱FX5U PLC,在進(jìn)行Modbus RTU 通信時(shí),需要用到ADPRW指令,通過執(zhí)行ADPRW 指令使Modbus 串行通信的主站向從站發(fā)送功能碼,以進(jìn)行數(shù)據(jù)的讀取及寫入。ADPRW 指令格式如圖2 所示,指令共包含6 個(gè)操作數(shù),分別是S1~S6。ADPRW 指令各操作數(shù)含義見表4。
表4 ADPRW 指令各操作數(shù)含義
圖2 ADPRW 指令格式
指令編程示例1 如圖3 所示,當(dāng)位變量M300 接通時(shí)執(zhí)行ADPRW 指令,使用功能碼06,PLC 向變頻器(站地址為1H)的Modbus 地址7311H 寫入控制字01H(控制變頻器正轉(zhuǎn)運(yùn)行)。
圖3 指令編程示例1
從M10 開始的3 個(gè)位地址即M10、M11、M12,用于指示ADPRW 指令的運(yùn)行狀態(tài),指令執(zhí)行時(shí)M10=1(否則M10=0),指令正常結(jié)束時(shí)M11=1(開始執(zhí)行時(shí)M11=0),指令異常結(jié)束時(shí)M12=1(開始執(zhí)行時(shí)M12=0)。
指令編程示例2 如圖4 所示,當(dāng)位變量M300 接通時(shí)執(zhí)行ADPRW 指令,使用功能碼03,PLC 讀取變頻器(站地址為1H)從7000H 開始的連續(xù)7 個(gè)Modbus地址(即7000H~7006H)的數(shù)據(jù),并將讀取到的值存入D210 開始的7 個(gè)寄存器中。同樣的,從M10 開始的3 個(gè)位地址即M10、M11、M12,用于指示ADPRW 指令的運(yùn)行狀態(tài),內(nèi)容同上。
圖4 指令編程示例2
輪詢方式就是PLC 依次循環(huán)執(zhí)行多條通信指令,通過輪詢方式可以保證同一時(shí)刻只有一條指令在執(zhí)行,并可根據(jù)邏輯條件進(jìn)行輪詢跳轉(zhuǎn)。
采用輪詢編程方式的程序結(jié)構(gòu)如圖5 所示,當(dāng)PLC啟動(dòng)時(shí)SM402 接通一個(gè)掃描周期,使位變量M100 置位,首先執(zhí)行第一條ADPRW 指令,當(dāng)該指令結(jié)束時(shí)(正常結(jié)束標(biāo)志M11 或異常結(jié)束標(biāo)志M12 產(chǎn)生上升沿)置位M101、復(fù)位M100。M101 置位后程序再執(zhí)行第二條ADPRW 指令,當(dāng)指令結(jié)束時(shí)(M14 或M15 產(chǎn)生上升沿)再次置位M100 并復(fù)位M101,M100 置位后程序又回到第一條ADPRW 指令繼續(xù)執(zhí)行,如此依次循環(huán)執(zhí)行每一個(gè)ADPRW 指令。
圖5 采用輪詢編程方式的程序結(jié)構(gòu)
分切機(jī)通信程序設(shè)計(jì)采用了輪詢方式,在圖6 程序中SM402 為PLC 運(yùn)行后接通一個(gè)掃描周期的特殊繼電器,利用該繼電器可以進(jìn)行程序初始化,例如本程序中置位M100,開始進(jìn)行與3 臺(tái)變頻器的Modbus RTU 輪詢通信。
圖6 通信程序1
當(dāng)位變量M100 接通后首先依次執(zhí)行3 個(gè)ADPRW指令,使用功能碼03 讀取3 臺(tái)變頻器的運(yùn)行狀態(tài)數(shù)據(jù),分別存入D210、D220、D230 起始的7 個(gè)數(shù)據(jù)寄存器內(nèi)。
當(dāng)?shù)谌龡lADPRW 指令執(zhí)行完成后,根據(jù)位變量M0 的狀態(tài)執(zhí)行輪詢跳轉(zhuǎn),M0=1 表示設(shè)備自動(dòng)啟動(dòng)運(yùn)行信號(hào)被觸發(fā)(置位M200),M0=0 表示設(shè)備停止運(yùn)行信號(hào)被觸發(fā)(置位M300)。
在設(shè)備自動(dòng)運(yùn)行時(shí)位變量M200 接通,程序跳轉(zhuǎn)至如圖7 所示的輪詢程序。程序依次執(zhí)行多個(gè)ADPRW指令,通過功能碼06 向3 臺(tái)變頻器寫入控制字、頻率百分比和轉(zhuǎn)矩百分比數(shù)據(jù),在最后一條ADPRW 指令執(zhí)行完成后置位M100,程序又返回到第一條ADPRW指令繼續(xù)輪詢。
圖7 通信程序2
當(dāng)設(shè)備停止時(shí)位變量M300 置位,程序跳轉(zhuǎn)至如圖8 所示的輪詢程序。程序依次執(zhí)行多個(gè)ADPRW 指令,通過功能碼06 向3 臺(tái)變頻器寫入控制字00H(控制變頻器停止),在最后一條ADPRW 指令執(zhí)行完成后置位M100,程序又返回到第一條ADPRW 指令繼續(xù)輪詢。
圖8 通信程序3
在分切機(jī)設(shè)備控制系統(tǒng)中,通過使用輪詢方式編寫的Modbus RTU 通信程序?qū)崿F(xiàn)了PLC 與多臺(tái)變頻器之間的數(shù)據(jù)傳輸,一臺(tái)FX5U 系列PLC 作為Modbus主站,3 臺(tái)變頻器作為Modbus 從站,PLC 不僅需要實(shí)時(shí)地讀取變頻器的運(yùn)行狀態(tài)數(shù)據(jù),也需要不斷地向變頻器寫入控制數(shù)據(jù)。
采用輪詢方式編寫的通信程序不僅可以提高程序運(yùn)行的穩(wěn)定性,也保證了通信數(shù)據(jù)傳輸?shù)目煽啃?。在?shí)際應(yīng)用編程時(shí),需要注意輪詢程序的啟動(dòng)(本例中使用特殊繼電器SM402 啟動(dòng))和跳轉(zhuǎn)(本例中使用位變量M0 跳轉(zhuǎn)),也要注意輪詢程序的返回,當(dāng)程序執(zhí)行到最后一條ADPRW 指令后使其返回到第一條ADPRW 指令位置繼續(xù)開始循環(huán)。