李鳳閣,林景波,鄭彥明
(哈爾濱工業(yè)大學(xué) 電氣工程及其自動(dòng)化實(shí)驗(yàn)中心,哈爾濱 150001)
DeviceNet是一種面向?qū)ο蟮拈_放式設(shè)備級(jí)網(wǎng)絡(luò),它將工業(yè)現(xiàn)場(chǎng)的智能設(shè)備與控制器直接連接,集成為分布式控制系統(tǒng),減少了現(xiàn)場(chǎng)I/O接口和布線數(shù)量,并將控制功能直接下放到現(xiàn)場(chǎng)設(shè)備[1-4]。本文結(jié)合羅克韋爾的通用工業(yè)協(xié)議(Common Industrial Protocol,CIP)與ControlLogix控制系統(tǒng)開發(fā)了DeviceNet配置與通信實(shí)驗(yàn)系統(tǒng)[5],并在教學(xué)實(shí)踐中得以應(yīng)用。
DeviceNet網(wǎng)絡(luò)配置與通信實(shí)驗(yàn)系統(tǒng)采用了自動(dòng)化領(lǐng)域最先進(jìn)的CIP網(wǎng)絡(luò)架構(gòu),教室中的局域網(wǎng)計(jì)算機(jī)都可以用EtherNet直接通過1756-ENBT以太網(wǎng)模塊訪問ControlLogix框架上的所有模塊,并可在此基礎(chǔ)上實(shí)現(xiàn)遠(yuǎn)程操作、遠(yuǎn)程編程、遠(yuǎn)程網(wǎng)絡(luò)配置等功能[6]。
系統(tǒng)硬件結(jié)構(gòu)如圖1所示,包括:計(jì)算機(jī)、1756-A10機(jī)架、1756-PA2電源模塊、0號(hào)槽1756-L55控制器、1號(hào)槽1756-ENBT模塊、5號(hào)槽的1756-IB16數(shù)字量輸入模塊、6號(hào)槽1756-OB16數(shù)字量輸出模塊。3號(hào)槽DeviceNet掃描器模塊(1756-DNB)作為主站節(jié)點(diǎn)[7],連接如圖1所示的5個(gè)從站設(shè)備,為DeviceNet供電的24 V直流電源連接到1785分接器上。系統(tǒng)可以進(jìn)行ControlLogix邏輯控制編程和DeviceNet網(wǎng)絡(luò)配置與通信實(shí)驗(yàn)。
圖1 系統(tǒng)硬件結(jié)構(gòu)
本實(shí)驗(yàn)所用軟件:Windows 7操作系統(tǒng);RSLinx V3.60通信工具軟件,用于建立計(jì)算機(jī)與Rockwell硬件的通信驅(qū)動(dòng),以及軟件之間的接口;RSLogix5000 編程軟件用于ControlLogix控制器編程及程序監(jiān)視;RSNetworx For DeviceNet 32位圖形化網(wǎng)絡(luò)組態(tài)工具軟件,提供了網(wǎng)絡(luò)組態(tài)所需要的信息和工具,并具有在線和離線組態(tài)的功能。
PLC是現(xiàn)場(chǎng)總線典型的應(yīng)用場(chǎng)合,要深入了解現(xiàn)場(chǎng)總線技術(shù)及其應(yīng)用,首先應(yīng)當(dāng)掌握PLC及其應(yīng)用技術(shù)[8]。通過編制一個(gè)簡(jiǎn)單的ControlLogix PLC程序,學(xué)習(xí)系統(tǒng)I/O模塊配置及梯形圖程序的編寫方法,掌握PLC基本控制邏輯及應(yīng)用,進(jìn)行程序上/下載和監(jiān)控的操作,為進(jìn)行DeviceNet通信配置實(shí)驗(yàn)打基礎(chǔ)。
本實(shí)驗(yàn)中ControlLogix控制系統(tǒng)通過EtherNet模塊連接到實(shí)驗(yàn)室局域網(wǎng)上,需用RSLinx建立計(jì)算機(jī)和ControlLogix系統(tǒng)之間的通信。在計(jì)算機(jī)RSLinx軟件Configure Drivers界面選擇“Ethernet/IP”驅(qū)動(dòng)程序,在EtherNet配置界面選擇與控制系統(tǒng)相連的網(wǎng)絡(luò)接口模塊,即可實(shí)現(xiàn)計(jì)算機(jī)與ControlLogix系統(tǒng)1756-A10機(jī)架內(nèi)所有模塊的通信,并可通過CIP訪問DeviceNet,[9]如圖2所示,計(jì)算機(jī)可以直接與1756-DNB模塊下的DeviceNet通信。還可以看到所連接設(shè)備的站點(diǎn)號(hào)、連接狀態(tài)、設(shè)備屬性等信息。
圖2 RSLinx通信界面
用RSLogix5000軟件創(chuàng)建一個(gè)新的工程項(xiàng)目,首先要選擇一個(gè)控制器及其駐留的機(jī)架和槽號(hào)。根據(jù)圖1的硬件配置選擇1756-L55控制器,并為控制器命名,選擇固件版本號(hào),駐留在1756-A10機(jī)架,0號(hào)槽,最后選擇所創(chuàng)建的工程項(xiàng)目存儲(chǔ)的位置進(jìn)行保存[10]。
為了實(shí)現(xiàn)控制器對(duì)外部I/O的控制,還要將系統(tǒng)5號(hào)槽的輸入、6號(hào)槽的輸出模塊和3號(hào)槽的DeviceNet掃描器模塊配置給控制器,配置時(shí)需輸入模塊實(shí)際所在的物理槽號(hào)、選擇模塊通信模式和匹配的電子鑰匙,并為模塊命名,然后根據(jù)模塊的作用設(shè)置與控制器通信的請(qǐng)求數(shù)據(jù)包時(shí)間間隔。為了防止信號(hào)干擾,對(duì)于輸入模塊還可以設(shè)置信號(hào)上升沿和下降沿的濾波時(shí)間。輸出模塊可以對(duì)每個(gè)通道單獨(dú)配置其在控制器故障或編輯狀態(tài)時(shí)的輸出狀態(tài),還可以用故障鎖存功能設(shè)置核實(shí)清楚故障信號(hào)[11]。
編寫一個(gè)實(shí)現(xiàn)指示燈和電動(dòng)機(jī)正反轉(zhuǎn)控制的梯形圖程序,這里將與5號(hào)槽輸入模塊的2號(hào)輸入端連接的常閉觸點(diǎn)按鈕定義為電動(dòng)機(jī)停止按鈕,與3號(hào)和4號(hào)輸入端連接的常開觸點(diǎn)按鈕分別用作電動(dòng)機(jī)的正轉(zhuǎn)和反轉(zhuǎn)控制按鈕。用與6號(hào)槽輸出模塊的3號(hào)和4號(hào)輸出端連接的指示燈模擬電動(dòng)機(jī)的正轉(zhuǎn)和反轉(zhuǎn)控制繼電器。由于ControlLogix采用了別名標(biāo)簽(Alias)技術(shù),使得軟件設(shè)計(jì)和硬件設(shè)計(jì)可以同步進(jìn)行,例如在編制電動(dòng)機(jī)控制程序時(shí),可以先定義一個(gè)“Motor_FRW_Start”內(nèi)部變量標(biāo)簽用于電動(dòng)機(jī)正轉(zhuǎn)啟動(dòng)控制,這時(shí)該變量和硬件是沒有關(guān)聯(lián)的,在系統(tǒng)硬件配置完成后,再用別名標(biāo)簽的方式將其與真正控制電動(dòng)機(jī)正轉(zhuǎn)的按鈕local:5:I.Data.3相關(guān)聯(lián)[12]。如圖3所示。
圖3 電動(dòng)機(jī)控制別名標(biāo)簽的定義
編制完成的梯形圖程序如圖4所示,梯級(jí)0用了常開觸點(diǎn)指令(XIC),即輸入信號(hào)有效,則輸出激勵(lì)指令 (OTE)有效,這里是按下與5號(hào)槽0號(hào)輸入端(local:5:I.Data.0)連接的常開按鈕,使與6號(hào)槽0號(hào)輸出端(local:6:O.Data.0)連接的指示燈點(diǎn)亮的操作。梯級(jí)1用了常閉觸點(diǎn)指令(XIO),實(shí)現(xiàn)的功能與梯級(jí)1相反,即按下按鈕時(shí)1號(hào)指示燈熄滅。梯級(jí)2和梯級(jí)3因?yàn)槭褂昧藙e名標(biāo)簽,增加了梯形圖的可讀性,每個(gè)標(biāo)簽對(duì)應(yīng)的實(shí)際物理地址如圖3所示,Motor_Stop標(biāo)簽對(duì)應(yīng)的2號(hào)輸入端連接的常閉按鈕,因此梯級(jí)3和梯級(jí)4的停止控制都用了一個(gè)常開觸點(diǎn)指令(XIO)。
圖4 梯形圖邏輯控制程序
ControlLogix控制器要想與DeviceNet上的設(shè)備通信,首先要用RSNetWorx For DeviceNet軟件對(duì)網(wǎng)絡(luò)上的節(jié)點(diǎn)進(jìn)行參數(shù)配置。
RSNetWorx For DeviceNet軟件通過1756-ENBT 模塊與1756-A10機(jī)架上的1756-DNB模塊通信進(jìn)而訪問DeviceNet上的所有節(jié)點(diǎn)設(shè)備,通信完成后的軟件界面如圖5所示,這時(shí)可以直接點(diǎn)擊設(shè)備,在設(shè)備屬性界面設(shè)置參數(shù),這里將42EF-D1LDAK-F5光電開關(guān)、855T塔燈、871TM-D5ED18-D5接近開關(guān)分別設(shè)置為1、3、5號(hào)節(jié)點(diǎn)。1791D-8B8P開關(guān)量輸入輸出模塊和1792D-4BVT4D 4輸入/4輸出分接器(口2連接872C-DH2NP8D4 接近開關(guān))則由設(shè)備本身的開關(guān)分別設(shè)置為2和4號(hào)節(jié)點(diǎn)。
圖5 實(shí)驗(yàn)系統(tǒng)DeviceNet上的設(shè)備
1756-DNB DeviceNet掃描器作為設(shè)備網(wǎng)上的主設(shè)備與ControlLogix控制器及DeviceNet上的設(shè)備通信,完成管理網(wǎng)絡(luò)通信、保存配置數(shù)據(jù)、與設(shè)備進(jìn)行雙向數(shù)據(jù)傳輸、監(jiān)控設(shè)備的運(yùn)行狀態(tài)等功能[13]。配置時(shí)雙擊圖5中的1756-DNB/A模塊,會(huì)彈出模塊屬性對(duì)話框。常規(guī)屬性(General)顯示模塊的名稱、節(jié)點(diǎn)地址、生產(chǎn)廠家、版本號(hào)等信息;模塊(Module)設(shè)置模塊所在槽號(hào)(Slot),這里根據(jù)圖1設(shè)置為3;掃描列表(Scanlist)對(duì)話框,左側(cè)的有效設(shè)備列表中按設(shè)備節(jié)點(diǎn)號(hào)的順序,列出了與1756-DNB設(shè)備網(wǎng)絡(luò)掃描器模塊連接的所有設(shè)備,與圖5是一致的。
此時(shí)掃描列表對(duì)話框的右側(cè)Scanlist是空的,這時(shí)分別點(diǎn)擊輸入列表(Input)和輸出列表(Output),都是空的,這說明此時(shí)DeviceNet上設(shè)備的I/O數(shù)據(jù)與掃描器的I/O數(shù)據(jù)表沒有關(guān)聯(lián)。可以通過點(diǎn)擊》符號(hào)按鈕,將設(shè)備的I/O數(shù)據(jù)配置到掃描器的I/O數(shù)據(jù)表中,再分別點(diǎn)擊Input和Output菜單可見設(shè)備的I/O數(shù)據(jù)在相應(yīng)的列表中。說明網(wǎng)絡(luò)節(jié)點(diǎn)上的I/O數(shù)據(jù)已經(jīng)映射到1756-DNB掃描器的I/O數(shù)據(jù)表中??傆[(Summary)對(duì)話框可以在一個(gè)界面總覽I/O的全部信息,掃描列表配置前后的總覽對(duì)話框如圖6所示,圖中上部是配置之前的對(duì)話框,只有一個(gè)1756-DNB模塊,而配置完成后能夠看到節(jié)點(diǎn)上的所有設(shè)備及其輸入(I)和輸出(O)數(shù)據(jù)大小。
圖6 配置前后1756-DNB屬性Summary對(duì)話框
DeviceNet的I/O參數(shù)可以選擇位選通(Strobed)、輪詢(Polled)和狀態(tài)改變/周期(COS/Cycle)3種I/O觸發(fā)方式,本實(shí)驗(yàn)中光電開關(guān)01和871TM接近開關(guān)05選擇Strobed方式;1791D-8B8P開關(guān)量I/O模塊02選擇COS方式;塔燈03和1492D-4BVT4D 4輸入4輸出模塊選擇Polled方式。DeviceNet上的設(shè)備數(shù)據(jù)是以字節(jié)為單位的,配置時(shí)要注意每個(gè)設(shè)備的數(shù)據(jù)大小[14]。
為了便于理解程序,設(shè)置01-05號(hào)節(jié)點(diǎn)的I/O數(shù)據(jù)依次映射到掃描器的1-5號(hào)I/O數(shù)據(jù)表。配置結(jié)果如圖7所示,1號(hào)和5號(hào)節(jié)點(diǎn)沒有輸出數(shù)據(jù),所以其輸出數(shù)據(jù)表示空的。
圖7 配置的1756-DNB Input和Output數(shù)據(jù)表
DeviceNet上的所有節(jié)點(diǎn)配置完成后,其I/O數(shù)據(jù)都映射到3號(hào)槽1756-DNB的I/O映像表中,Controllogix梯形圖程序只需訪問3號(hào)槽的I/O數(shù)據(jù)就可以實(shí)現(xiàn)對(duì)DeviceNet上設(shè)備的控制。編制一個(gè)控制程序,要求:光電開關(guān)(01)和872C接近開關(guān)(04)分別控制塔燈(03)2層指示燈,871TM模擬量接近開關(guān)(05)的測(cè)距數(shù)據(jù)通過1791-8B8P(02)的輸出8位指示燈顯示。編程方法與2.3是一樣的,這里只需在I/O配置時(shí)將設(shè)備網(wǎng)絡(luò)掃描器模塊1756-DNB配置到1756-L55控制器本地框架的3號(hào)槽即可。
編制的梯形圖程序如圖8所示。梯級(jí)0是一條無條件指令CommandRegister.RUN,將掃描器模塊的輸出命令寄存器的運(yùn)行位設(shè)置為“1”,使1756-DNB模塊能正常工作。結(jié)合圖7的1756-DNB的 Input和Output數(shù)據(jù)表分析梯形圖指令所訪問的數(shù)據(jù),可知圖8的梯形圖實(shí)現(xiàn)了控制要求。例如梯級(jí)1的輸入指令XIC訪問“Local:3:I.Data[1].0”,它存儲(chǔ)的是1756-DNB模塊讀取的DeviceNet網(wǎng)絡(luò)節(jié)點(diǎn)1的光電開關(guān)狀態(tài),輸出指令OTE訪問“Local:3:O.Data[3].0”,1756-DNB模塊會(huì)將該數(shù)據(jù)傳送給3號(hào)節(jié)點(diǎn)的底層塔燈,由此實(shí)現(xiàn)光電開關(guān)對(duì)塔燈的控制[15]。可見Controllogix控制器的梯形圖程序是通過訪問本地1756-DNB模塊的數(shù)據(jù)實(shí)現(xiàn)對(duì)DeviceNet網(wǎng)絡(luò)上設(shè)備控制的。
圖8 DeviceNet梯形圖控制程序
DeviceNet實(shí)驗(yàn)系統(tǒng)將PLC與現(xiàn)場(chǎng)總線完美結(jié)合,充分體現(xiàn)了設(shè)備網(wǎng)絡(luò)的開放、靈活、可靠性,該系統(tǒng)作為羅克韋爾CIP網(wǎng)絡(luò)架構(gòu)的一部分[16],可以與局域網(wǎng)上的任何一臺(tái)計(jì)算機(jī)通信,學(xué)生可以在計(jì)算機(jī)上進(jìn)行離線配置與編程,操作完成后各組分時(shí)將網(wǎng)絡(luò)配置和程序下載到實(shí)驗(yàn)系統(tǒng),進(jìn)行在線調(diào)試和監(jiān)控,大大提高了實(shí)驗(yàn)系統(tǒng)的利用率,還可以進(jìn)一步開放通過RSLinx的Gateways功能與外部互聯(lián)網(wǎng)連接,進(jìn)行遠(yuǎn)程通信實(shí)驗(yàn)[17-18]。