張宏波
邯鄲宏大化纖機(jī)械有限公司(中國)
在化纖生產(chǎn)過程中,原液經(jīng)紡絲泵通過噴絲板擠壓出,所得纖維經(jīng)酸液等環(huán)境固化后,再通過牽引機(jī)、水洗機(jī)、烘干機(jī)和卷繞機(jī)等設(shè)備,根據(jù)工藝要求進(jìn)行牽伸干燥直至最后成型,這往往需要監(jiān)控很多工藝參數(shù)。本文介紹了安川A1000型變頻器運行情況的監(jiān)控操作過程,采用了西門子S7-1500系列可編程邏輯控制器(PLC),并選擇了廣泛應(yīng)用的Modbus通信協(xié)議進(jìn)行數(shù)據(jù)監(jiān)控。
Modbus是由Modicon(現(xiàn)為施耐德電氣公司的一個品牌)在1979年開發(fā)的,是全球第一個真正用于工業(yè)現(xiàn)場的總線協(xié)議。Modbus網(wǎng)絡(luò)是一個工業(yè)通信系統(tǒng),由帶智能終端的可編程序控制器和計算機(jī)通過公用線路或局部專用線路連接而成。其系統(tǒng)結(jié)構(gòu)既包括硬件,亦包括軟件。它可應(yīng)用于各種數(shù)據(jù)采集和過程監(jiān)控。Modbus網(wǎng)絡(luò)只有一個主機(jī),所有通信都由它發(fā)出。其允許多個設(shè)備連接在同一個網(wǎng)絡(luò)上進(jìn)行通信,例如,它允許添加一個測量溫度和濕度的裝置,并且將結(jié)果發(fā)送給計算機(jī)。在數(shù)據(jù)采集與監(jiān)視控制系統(tǒng)(SCADA)中,Modbus通常用來連接監(jiān)控計算機(jī)和遠(yuǎn)程終端控制系統(tǒng)(RTU)。
Modbus從誕生之日起,比其他通信協(xié)議使用得更廣泛,主要有以下原因:公開發(fā)表并且無版權(quán)要求;易于部署和維護(hù);對供應(yīng)商而言,修改移動本地的比特或字節(jié)沒有很多限制。正是因為這些優(yōu)點,很多廠家都在產(chǎn)品中集成了此通信協(xié)議,安川公司也是其中之一。安川公司集成使用的 MEMOBUS/Modbus通信協(xié)議,可與S7-1500系列等含有Modbus端口的PLC進(jìn)行串行通信。
MEMOBUS/Modbus通信由PLC(1個主站)和最多 31臺從站構(gòu)成。主站和從站的通信(串行通信)通常以主站開始通信、從站響應(yīng)的方式進(jìn)行。主站對各個從站預(yù)先設(shè)定地址編號,并指定該編號進(jìn)行信號通信。接到主站指令的從站執(zhí)行指定的功能,對主站作出響應(yīng)。通信網(wǎng)絡(luò)連接如圖1所示。
圖1 MEMOBUS/Modbus通信網(wǎng)絡(luò)連接示意圖
MEMOBUS/Modbus通信規(guī)格如表1所示。從規(guī)格表中可看出,數(shù)據(jù)長度和停止位是固定的,因此需設(shè)置相關(guān)參數(shù)。波特率為9.6 kbps時,無校驗和變頻器地址的相關(guān)參數(shù)如表2所示。
表1 MEMOBUS/Modbus通信規(guī)格
表2 MEMOBUS/Modbus通信參數(shù)設(shè)置
MEMOBUS通信采取主站對從站發(fā)出指令,從站進(jìn)行響應(yīng)的形式。接收發(fā)送的信息格式按從站地址、功能碼、數(shù)據(jù)和錯誤校驗碼順序構(gòu)成。根據(jù)指令(功能)內(nèi)容的不同,數(shù)據(jù)部的長度也隨之發(fā)生變化,如表3所示。
表3 功能碼數(shù)據(jù)格式
由于只需要監(jiān)控實際運行數(shù)據(jù),因此本文選擇功能碼03H。需要注意的是,使用功能碼03H(讀取)最多只能讀取16個存儲寄存器的內(nèi)容,超過16個寄存器會出現(xiàn)通訊不成功的情況。
S7-1500系列PLC可以在主機(jī)架或分布式輸入/輸出(I/O)站點(如ET 200MP和ET 200SP站)使用點對點通信模塊實現(xiàn)Modbus-RTU通信,如需在分布式I/O站上實現(xiàn)Modbus-RTU通信,推薦通過Profinet或Profibus的方式擴(kuò)展ET 200MP或ET 200SP站,在ET200MP或ET 200SP上配置高性能(HF)的點對點通信模塊。無論是安裝在S7-1500主機(jī)架的模板,還是分布式I/O站的模板,都可作為Modbus-RTU的主站或從站,通過直接調(diào)用Modbus-RTU相關(guān)程序塊即可實現(xiàn)Modbus-RTU通信,而無需硬件狗。
根據(jù)實際使用通信物理接口的不同,S7-1500主機(jī)架和ET 200 MP可使用的模板分CM PtP RS232 HF(通信模塊6ES7 541-1AD00-0AB0)和CM PtP RS 422/485 HF(通信模塊6ES7 541-1AB00-0AB0)兩種。普通的點對點通信模塊(型號BA結(jié)尾)無法通過本文檔實現(xiàn)Modbus-RTU通信,而ET 200SP的點對點通信模塊只有一個,即CM PtP(6ES7 137-6AA00-0BA0),該模塊物理接口支持RS-232/422/485。
S7-1500 Modbus-RTU還具有下述特點:無論點對點通信模塊安裝在S7-1500主機(jī)架還是分布式I/O站中,也無論分布式I/O站是通過ET 200MP還是ET 200SP實現(xiàn)Modbus-RTU通信,其組態(tài)步驟、方法、調(diào)用的程序塊及注意事項等均完全相同。
研究選用了含422/485接口的通信模板6ES7 541-1AB00-0AB0。S7-1500 Modbus-RTU支持的Modbus功能代碼如表4和表5所示。
表4 用于讀取數(shù)據(jù)的功能(讀取分布式I/O)
注:1)表示用于擴(kuò)展尋址。
表5 用于寫入數(shù)據(jù)的功能(更改分布式I/O和程序數(shù)據(jù))
S7-1500系列PLC實現(xiàn)Modbus-RTU通信功能,需要調(diào)用以下指令,如表6所示。
表6 S7-1500系列PLC實現(xiàn)Modbus-RTU通信功能的指令
其中,“Modbus_Comm_Load”指令用于通信模塊的組態(tài);“Modbus_Master”指令和“Modbus_Slave”指令分別實現(xiàn)Modbus 主站通信和Modbus 從站通信。這3條指令是通過“Modbus_Comm_Load”指令的“MB_DB”參數(shù)實現(xiàn)關(guān)聯(lián)的,如圖2所示。
圖2 Modbus通信初始化指令
由于 Modbus 指令讀取或?qū)懭氲臄?shù)據(jù)區(qū)必須為指針尋址,因此必須是有絕對地址的區(qū)域才可訪問,而 S7-1500創(chuàng)建的 DB塊缺省為優(yōu)化的 DB塊,變量沒有絕對地址,無法直接使用。本例中創(chuàng)建 DB塊,并在該 DB塊內(nèi)創(chuàng)建一個名為“data”的數(shù)組,類型為 WORD,長度為 20,即創(chuàng)建了20個字的存儲空間。然后將該 DB 塊的屬性設(shè)置成無“優(yōu)化的塊訪問”,從而重新編譯并生成新的DB 塊。此時可看到每個變量都有偏移地址了,如圖3所示。
圖3 取消DB塊“優(yōu)化的塊訪問”選項
在本項目中,共有8臺變頻器需讀取數(shù)據(jù),因而采用了輪詢訪問的機(jī)制。在“data”數(shù)據(jù)塊中建立了一個“slave_address”的變量用來確定當(dāng)前需訪問的變頻器的地址。在讀取到當(dāng)前變頻器的數(shù)據(jù)后再開始下一個變頻器數(shù)據(jù)的訪問。根據(jù)項目需求,“Modbus_Master”指令應(yīng)按表7所示操作進(jìn)行賦值。實際編程結(jié)果如圖4所示。
表7 “Modbus_Master”指令管腳參數(shù)設(shè)置
圖4 Modbus讀取子站數(shù)據(jù)結(jié)果圖
通過數(shù)據(jù)監(jiān)控表或項目中建立的“data”接收數(shù)據(jù)塊,可以看到通過Modbus通信從從站采集到的數(shù)據(jù),這些數(shù)據(jù)可以顯示在觸摸屏或上位機(jī)軟件上,并且可以進(jìn)行數(shù)據(jù)歸檔和數(shù)據(jù)分析,為工藝改進(jìn)提供幫助。
在使用了Modbus作為通信協(xié)議后,相應(yīng)的參數(shù)設(shè)置和調(diào)試相對簡單,并且這種通信協(xié)議的應(yīng)用相當(dāng)廣泛,可靠性高,可實現(xiàn)大量數(shù)據(jù)的傳輸工作。由PLC讀取的變頻器參數(shù)實時傳輸?shù)缴衔粰C(jī),供工藝人員查詢和參考,從而為工藝改進(jìn)提供幫助。