田大海,黃允凱,林鶴云
1 引言
可編程邏輯控制器(PLC)作為工業(yè)自動(dòng)化的核心設備,在港口、環(huán)保、機械加工、冶金和電力等重要工業(yè)領(lǐng)域的應用愈來(lái)愈廣泛,其系統的高可靠性通常通過(guò)冗余控制設計來(lái)實(shí)現。
本文采用Rockwell Automation的新一代控制器ControlLogix5550作為主控制器,設計了一個(gè)冗余控制系統。該系統具有較強的容錯功能,當出現某些故障時(shí),系統仍能執行規定的任務(wù),并且執行結果也不會(huì )因系統中的各種故障而產(chǎn)生差錯。文中詳細介紹了系統結構、冗余設計思路和冗余實(shí)現過(guò)程,對于重要工業(yè)控制場(chǎng)合的冗余控制設計具有一定的指導意義。
2 ControlLogix5550控制器與系統結構
2.1 ControlLogix5550控制簡(jiǎn)介
ControlLogix是新一代PLC產(chǎn)品,其強大的網(wǎng)絡(luò )組態(tài)功能為EtherNet/DeviceNet/DH+/Remote I/O/DF1等多種網(wǎng)絡(luò )的互相連接提供了極大的方便,它把這些網(wǎng)絡(luò )的掃描模塊集中到同一架構的不同插槽上,并由一臺控制器來(lái)統一管理,不同網(wǎng)絡(luò )中的節點(diǎn)地址由不同網(wǎng)絡(luò )的掃描模塊來(lái)決定,可以手動(dòng)設定。ControlLogix控制器模塊1756-L1是一個(gè)32位的控制器。
2.2 系統結構
系統全部采用Rockwell Automation公司的軟硬件,硬件包括兩臺ControlLogix5550控制器、控制開(kāi)關(guān)、1305變頻器以及DeviceNet及ControlNet接口適配器。軟件有組態(tài)軟件RSLinx 和RSNetworx,以及對ControlLogix5550進(jìn)行編程的RSLogix5000。在連接好網(wǎng)絡(luò )之后,使用上述軟件對DeviceNet下的設備網(wǎng)設備進(jìn)行組態(tài),然后進(jìn)行編程調試,即可完成對系統的實(shí)現。
系統采用了CPU冗余的實(shí)現方案,即由兩個(gè)CPU同時(shí)控制被控對象,兩臺控制器分別監視對方的工作狀態(tài),以便在需要的時(shí)候迅速做出切換。系統中的被控對象主要是以三相異步電動(dòng)機為負載的1305變頻調速器。由于程序的不穩定性,CPU運行錯誤造成故障的可能性要遠比由硬件損壞造成故障的可能性要大,因而本例中采用雙PLC單總線(xiàn)的結構,兩臺控制器均為ControlLogix5550,以下簡(jiǎn)稱(chēng)PLC1和PLC2,在編程時(shí)對兩臺控制器分別寫(xiě)入程序,兩臺控制器中的程序是完全對稱(chēng)的。參照圖1,以節點(diǎn)14的控制開(kāi)關(guān)控制終端的起停,節點(diǎn)06、60代表兩臺PLC,節點(diǎn)17是驅動(dòng)三相異步電動(dòng)機的變頻調速器AC Driver 1305。
掃描模塊1756-DNB是設備與控制器ControlLogix5550之間的通信接口。它通過(guò)網(wǎng)絡(luò )與DeviceNet的現場(chǎng)設備進(jìn)行通信,即從設備讀入數據、輸出數據到設備、下載組態(tài)數據和監視設備的運行狀態(tài)。
工作時(shí),1756-DNB以一定的方式依次掃描各個(gè)設備,對其參數進(jìn)行采集,并將采集到的數據映射到掃描器中與掃描方式相對應的數據緩沖區,再轉換成ControlLogix5550能接受的數據格式供控制器讀取,這樣就可以將現場(chǎng)總線(xiàn)中各設備的實(shí)時(shí)信息反饋到控制器,以便根據程序做出相應的反應。數據經(jīng)ControlLogix5550處理之后,送到掃描器的與掃描方式相對應的輸出數據緩沖區,轉換為各設備可以接受的數據格式,輸出到各設備,從而對其工作進(jìn)行控制。由此可見(jiàn),PLC控制器只需要讀入、輸出規定格式的數據,專(zhuān)門(mén)負責數據處理;而數據的采集、發(fā)送、緩沖和格式轉換由掃描器完成,ControlLogix5550和1756-DNB并行工作也使得控制器的輸出對輸入的響應時(shí)間縮短,有利于實(shí)現實(shí)時(shí)閉環(huán)控制。這樣即便是像PID指令這種對實(shí)時(shí)性要求較高的操作也可以收到良好的效果。
3 冗余控制的實(shí)現
3.1 設計思想
系統控制對象是工業(yè)現場(chǎng)的電機,也可以是其它有較高可靠性要求的工業(yè)控制設備,冗余的實(shí)現方式是同時(shí)采用兩臺控制器ControlLogix5550,其中一臺為主機,另一臺作為系統的備份,為副機,正常情況下由主機控制整個(gè)系統,副機保持與主機通訊,監控主機的運行狀態(tài)。當副機監視到主機的運行故障的時(shí)候,立即運行切換程序,將控制權轉到副機,而當主機的故障恢復之后,則控制權重新交還給主機。
3.2 系統監控功能
該功能由一個(gè)脈沖發(fā)生程序,以及一個(gè)脈沖接收程序實(shí)現。脈沖發(fā)生電路產(chǎn)生“心跳線(xiàn)”信號,由ControlLogix5550內部自帶的計時(shí)器構成,周期0.2秒,接收端的I槽負責接收來(lái)自對方機器的“心跳線(xiàn)”信號,故障判斷程序由計數器和計時(shí)器組成,計時(shí)器的設定時(shí)間比接收到規定數目脈沖的時(shí)間要長(cháng),這樣,在脈沖被正常發(fā)送、接收的時(shí)候錯誤信號是不會(huì )被觸發(fā)的,只有當一定時(shí)間內沒(méi)有收到規定數量的脈沖信號時(shí),計時(shí)器的完成位DN信號就觸發(fā)輸出錯誤信號,給對方接收。在程序中可設定當某臺機器接收到來(lái)自對方機器的本機發(fā)生錯誤的信號時(shí),就立即完成一次控制權的更迭。計時(shí)器的各控制位的含義及階梯條件見(jiàn)表1。
'
4 編程和調試
4.1 兩臺ControlLogix5550控制器間的通訊
這一部分由三個(gè)計時(shí)器以及一個(gè)計數器組成,其中兩個(gè)計時(shí)器配合使用可以使PLC2產(chǎn)生該冗余系統中必須的心跳線(xiàn)信號,作為監測PLC1工作狀態(tài)的基準信號。另外的一個(gè)計時(shí)器和一個(gè)計數器配合使用判斷PLC1的工作狀態(tài)。
輸入輸出位:
Local:I.data[2]:接收對方的心跳信號;
Local:O.data[2]:當檢測到對方機器工作狀態(tài)出現問(wèn)題的時(shí)候觸發(fā);
Local:O.data[1]:輸出本機發(fā)生的脈沖信號。
監控原理:
(1) 脈沖發(fā)生部分
首先,當PLC2的Master-ID為1之后,即表示PLC2是從機狀態(tài),計時(shí)器Timer0被啟動(dòng),然后它以0.1s的周期進(jìn)行循環(huán)記時(shí)操作,當計時(shí)到位的時(shí)候,用它的DN信號觸發(fā)b.1,即整數文件b的第一位,作為計時(shí)器Timer1的使能信號,它是一個(gè)計時(shí)周期同樣也是0.1s的計時(shí)器,在這段時(shí)間之內用Timer3/TT信號取非來(lái)鎖住Timer0計時(shí)器,使其停止工作,因為控制器Output模塊1746-OB16的Local:O.data[1]位輸出的是Timer1/TT信號,它總是以0.1s為時(shí)間間隔交替出現高低電平,因此將該信號輸出,即可得到以0.2s為周期的脈沖方波信號。如圖2所示,Timer0和Timer1交替出現高電平。
(2) 脈沖檢測部分
當計時(shí)器Timer1完成第一次計時(shí)操作后,也即在PLC2發(fā)出第一個(gè)脈沖的時(shí)候,Timer1/DN對計時(shí)器Timer2的使能信號b.8進(jìn)行一次置1操作,這時(shí)Timer2開(kāi)始計時(shí),它的預置計時(shí)值設為4秒。同時(shí)計數器Counter0開(kāi)始對它收到的PLC1的脈沖個(gè)數進(jìn)行計數,設它的計數預置值為5,因為它所接收的脈沖周期為0.2秒,即在1秒內它應該完成一次計數操作。計數器的計數到位信號Counter0/DN在其完成一次計數操作之后,自動(dòng)復位計時(shí)器Timer2的使能信號b.8,則在系統正常工作的情況下b.8應該每一秒鐘被置位一次,其計時(shí)到位信號Timer2/DN只有在PLC1出現不正常工作狀態(tài)的時(shí)候才會(huì )出現置位,所以該信號可作為指示對方PLC不正常工作狀態(tài)的信號。
4.2 PLC控制權切換子程序
該程序的主要功能就是將監控中發(fā)現的另一臺PLC運行出錯的信號進(jìn)行輸出,當超過(guò)規定時(shí)間后,PLC2仍然沒(méi)有收到足夠個(gè)數的脈沖。則Timer2/DN信號置位,表明PLC2監測到PLC1工作狀態(tài)出現了問(wèn)題,這時(shí)候Timer2/DN將觸發(fā)另一個(gè)計時(shí)器Timer3的使能信號b.6完成一次0.4s的計時(shí)過(guò)程,并將此次計時(shí)的Timer3/TT信號作為一個(gè)高電平信號輸出,這就是PLC1 收到的Local:I.data[4]信號。
如果一臺PLC控制輸入輸出模塊的掃描周期遠長(cháng)于Timer3/DN信號的高電平狀態(tài)維持時(shí)間,則對方PLC無(wú)法讀入脈沖信號,此時(shí)可以換用Timer3/TT信號進(jìn)行輸出。
5 運行結果
將其中一臺ControlLogix控制器斷電,經(jīng)過(guò)若干脈沖后,另一臺控制器在設定的時(shí)間內啟動(dòng),負載電機順利過(guò)渡到副機控制,通過(guò)波形分析可知,在這個(gè)過(guò)渡過(guò)程中,電機抖動(dòng)在合理的范圍內。