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