田海波,吳勝華,楊春瑜
(南京國電南自維美德自動化有限公司,南京 210032)
分散控制系統是以控制器為核心的分散控制、集中操作管理的裝置,分散控制系統的硬件設備由工作站、現場控制站和通訊網絡組成。其中,工作站包括工程師站和操作員站。工程師站是分散控制系統進行離線的配置、組態工作和在線系統的監督、控制、維護的網絡節點,其主要功能是提供對分散控制系統進行組態,配置工作,并在分散控制系統在線運行時實時地監視分散控制系統網絡上各個節點的運行情況,使系統工程師可以通過工程師站及時調整系統配置及對一些系統參數進行設定,使分散控制系統隨時處在最佳的工作狀態之下。操作員站是處理一切與運行操作有關的人機界面功能的網絡節點,其主要功能是為系統的運行操作人員提供人機界面,使操作員可以通過操作員站及時了解現場運行狀態、各種運行參數的當前值,以及是否有異常情況發生等,并可通過輸入設備對工藝過程進行控制和調節,以保證生產過程的安全、可靠、高效、高質。分散控制系統主要的控制功能是由現場控制站來完成的,分散控制系統的性能、可靠性等重要指標也都要依靠現場控制站保證,對現場控制站的設計、生產及安裝都有很高的要求,是分散控制系統中的主要任務執行者。通訊網絡負責聯系各個站之間的通訊,由于分散控制系統是由各種不同功能的站組成的,這些站之間必須實現有效的數據傳輸,以實現系統總體的功能。通訊網絡的實時性、可靠性和數據通信能力關系到整個系統的性能,特別是網絡的通信規約,關系到網絡通信的效率和系統功能的實現,所以通訊網絡是連接系統各個站的橋梁,是分散控制系統得以實現的技術關鍵[1]。
分散控制系統用于現場信號的采集與處理、實現控制策略的現場控制站,其包括機柜及配件、電源模件、過程控制器DPU(Distributed Control Unit)模件和I/O 模件等。每個過程控制器及組態的I/O 模件構成一個獨立控制子系統,控制器能夠與組態的I/O 模件進行通訊,從而采集數字量和模擬量信號的數據,再獨立的進行邏輯運算,控制模件進行連續控制,順序控制等功能。分散控制系統一般采用分級遞階結構,I/O 模件按其輸入或輸出、模擬量或數字等功能進行設計,在工程設計階段,I/O 模件按照一定的邏輯或物理順序,安裝在機箱或者背板上,各控制器與其組態的模件之間通過通訊總線進行通訊,實現信息的相互交互,總線內的I/O 模件之間通過地址來進行區分[2]。
電廠一般會將分散控制系統集中安裝在位于主控室后的電子設備室中。I/O 模件接收由現場設備,如傳感器、變送器來的信號(Input),DPU 模件根據預先設定的控制策略進行邏輯運算,并將結果(Output)送回到I/O 模件中去。同時,過程控制站還需要把必要的全局變量與中間變量的變化情況傳送到中央監控層。
分散控制系統是建立在分散結構理念上的,這對系統的可靠性是一個重要保障。由于分散結構不僅是系統功能的分散還有地理位置的分散,應用分散結構可以將系統危險性進行分散,在設備某一部分發生故障時并不會影響其他部分的正常運行。另外,對關鍵設備進行冗余配置是確保系統可靠性的一項有力措施,分散控制系統中還采用了一些模塊化、標準化的軟件,也有助于保證系統的可靠性。
由于分散控制系統構成相對較靈活,硬件高度集成化,I/O 模件設計時接口也進行了模塊化、標準化設計,這些均為分散控制系統提供了較好的擴展性能。I/O 模件中的微處理器也可以有自診斷功能,應用程序執行間隙同時也進行自診斷程序的運行,對硬件的運行狀態進行掃描,發現異常現象會及時報警,亮指示燈提示出現異常的部位和性質,系統維護時間短,可帶電插拔,接插結構,種類少,維護方便。
隨著分散控制系統在火力發電廠、冶金、化工等行業的大量應用,當大量現場信息需要由I/O 模件進入控制器后,存在著I/O 模件數量越來越多的現象,所以對分散控制系統的性能、可靠性及方便性的要求越來越高。I/O 模件出現硬件問題時,更換的便利性也需要在設計時進行考慮,用以提升維護的方便性。控制器與多個I/O 模件連接在同一總線進行通信時,需要將不同的I/O 模件加以區分。在工程設計和現場使用時,會按照組態的需求,將I/O 模件設置成相對應的不同地址[3]。當其中一塊模件出現問題后,也需要使用對應地址的模件進行更換。目前,對I/O 模件的地址更改主要有以下3 種方式:
1)通訊設置方式
在分散控制系統中,控制器作為主機,以廣播形式往下發送指令,I/O 模件作為從機接收到相關指令,將指令中的地址碼與自己的地址碼做對比。若發現是下發給自己的指令,則立即執行相關指令。執行完相關指令之后,發送相應的狀態代碼給控制器,示意其可以繼續下一條指令。否則丟棄該指令,靜默等待控制器的下一條指令。
每塊I/O 模件生產時都預設有一默認地址,該地址可通過通訊方式來進行更改。在設計時需要制定相關的通訊協議,當控制器使用該通訊協議發送報文給I/O 模件鏈時,則對應地址的I/O 模件立刻按照報文給定的修改目的地址來改變自己的地址碼。該方式需要將I/O 模件連接到專用的調試機箱上,并使用專用的調試軟件,通過專用的報文格式進行通訊,從而將I/O 模件設置成所需地址。該方式的優點是通過軟件進設置,不用增加硬件成本,缺點是無法直觀查看I/O 模件的地址[4]。
2)撥碼開關方式
撥碼開關是一款能撥動的微型開關,采用的是0、1 二進制編碼原理,廣泛應用于數據處理、通訊、遙控等需要手動程式編制的產品上。I/O 模件一般選擇安裝一個8 位撥碼開關,分別為1、2、3、4、5、6、7、8 位,每個位代表一個數值,推到OFF 的位置為0,撥到ON 的位置依次代表1、2、4、8、16、32、64、128,撥到ON 的位代表的數值相加,就是該機的地址碼。其二進制從“00000000”至“11111111”,分別代表0 ~255 的地址編碼,工程上可根據組態的需求,將撥碼開關撥至所需的地址。此方式與通訊設置方式相比,優點在于可直接撥碼設置地址,并可以直接查看I/O 模件的地址,無需使用調試機箱和調試軟件[5]。
3)機箱槽位方式
此方式是將分散控制系統機箱中的每個槽位對應為一個固定的地址,機箱按照槽位順序給插在其槽位上的I/O模件輸入不同的地址識別位。當I/O 模件插入到槽位上后,根據不同的地址識別位計算出地址。由于機箱位置有限,此方案僅能設置與機箱位置對應的部分地址,若使用超過一個機箱時,需要使用撥碼等方案將機箱進行地址分配,并需要將機箱的地址接入I/O 模件,以區別不同機箱的同一槽I/O 模件地址。
上述各種方案在工程設計時,需要在每層機箱中預留部分位置,防止后續設計時需要添加I/O 模件。在機箱出現故障時,首先需要拔出所有I/O 模件;若機箱采用撥碼開關設置地址,則還需要調節撥碼開關至正確值。在I/O模件出現問題需要更換時,也需要手動通過撥碼開關或者通訊的方案來設置I/O 模件的地址。這對正在運行的火電廠會增加更換時間,若由于操作步驟的遺漏未進行設置或只進行了部分設置,會給火電廠運行帶來極大的風險。

圖1 單列安裝地址識別示意圖Fig.1 Address recognition diagram for single row installed
不同于現有的地址自識別方案,本方案設計的系統具有以下益處:
1)在工程設計時,相對于傳統的使用通訊設置方式、撥碼開關方式或每個槽位對應為一個固定的地址的按機箱槽位的方式,本設計方案可以根據工程需求,靈活地加減模件背板來增加配置的I/O 模件數量,無需在工程設計時就預留足夠多的槽位。
2)由于現場環境比較復雜,會造成I/O 模件或模件背板的損壞,在更換出現故障的I/O 模件或模件背板時,無需再次進行手動設置。當I/O 模件插入相應的位置后,可以直觀地從距離通訊口位置知曉I/O 模件地址等,操作簡單,準確可靠。
如以設計示意圖1 為例,展示本設計的具體方案。控制器使用通訊總線與I/O 模件進行通訊,基本模式為一個控制器接出多路總線,每路總線均可連接多塊I/O 模件。模件背板用于安裝、固定I/O 模件,并將外部信號量、地址選擇位和與控制器連接的總線接入I/O 模件內部,模件背板上下兩側有連接器,兩塊模件背板之間連接器可將總線和地址線連接,多個相同的模件背板可連接成一塊長背板。

圖2 雙列安裝、左右接線地址識別示意圖Fig.2 Address recognition diagram for double row installed,left and right connection
每塊模件背板的總線采用直接連接,多條地址線的輸入端與輸出端之間采用按位右移一位的方案進行連接,與控制器連接的總線接口電路將與其連接的第一塊模件背板的輸入部分地址線的每一位均上拉至高電平,輸入地址線接入I/O 模件內部進行地址識別,I/O 模件識別的2 進制地址為0b1111(16 進制地址0xF)。由于I/O 模件的地址線采用按位右移移位的方案進行布線,第一塊模件背板輸出端的地址線的最高位將變成低電平,其余位還保持高電平。
當有第二塊模件背板接入時,輸入部分的地址線電平為第一塊模件背板輸出的電平,輸入地址線接入I/O 模件內部進行地址識別,I/O 模件識別的2 進制地址為0b0111(16 進制地址0x7),輸出部分的地址線的最高兩位將變成低電平,其余位保持高電平,所以下一塊的輸入地址線2進制地址為0b0011(16 進制地址0x3)。在有多列的情況下,由于控制器輸出多路總線,可將每路總線下的起始位地址設置成不同地址,控制器尋址時只需總線號,即可換算成相應的地址。
在工程應用時,為了提高每個機柜的接口數量,提升機柜接線的方便性,一般會將分散控制系統的機柜接線口分在左右兩側,分別進行接線。此時需要將模件背板旋轉180°進行安裝,若分散控制系統I/O 模件采用雙列安裝、左右接線的模式,本設計方案還提供了一種能自動識別左右地址的方案。圖2 是本設計方案在該情況下的地址識別示意圖,其中通訊口COM1 為左側接線,通訊口COM2 為右側接線,每一列有4 塊I/O 模件。
控制器通訊口接出的多路總線中地址識別電路部分,其中與地址識別電路有關的每位均需要拉高成高電平。與控制器連接的第一塊模件背板,左側為雙列安裝模式下左側地址的狀態,右側為雙列安裝模式下右側地址的狀態。由于模件背板相同,左側模件背板的上半部分連接器的地址狀態接入I/O 模件內部進行地址識別,右側模件背板的下半部分連接器的地址狀態接入I/O 模件內部進行地址識別,左側I/O 模件識別的2 進制地址為0b1111(16 進制地址0xF),右側I/O 模件識別的2 進制地址為0b1110(16 進制地址0xE)。
與控制器連接的第二塊模件背板,左側I/O 模件識別的2 進制地址為0b0111(16 進制地址0x7),右側I/O 模件識別的2 進制地址為0b1100(16 進制地址0xC)。與控制器連接的第3 塊模件背板,左側I/O 模件識別的2 進制地址為0b0011(16 進制地址0x3),右側I/O 模件識別的2 進制地址為0b1000(16 進制地址0x8)。與控制器連接的第4塊模件背板左側I/O 模件識別的2 進制地址為0b0001(16進制地址0x1),右側I/O 模件識別的2 進制地址為0b0000(16 進制地址0x0)。
由于左右兩側I/O 模件識別的所有地址均無重復現象,可在I/O 模件的軟件部分將16 進制識別地址為0xF 和0xE的定義為I/O 模件通訊地址為1,將16 進制識別地址為0x7和0xC 的定義為I/O 模件通訊地址為2,將16 進制識別地址為0x3 和0x8 的定義為I/O 模件通訊地址為3,將16 進制識別地址為0x1 和0x0 的定義為I/O 模件通訊地址為4,此地址定義為DPU 識別地址中的I/O 模件地址低四位,將通訊口的基地址定義為I/O 模件地址的高四位,如通訊口COM1 定義地址高四位為16 進制0x0,通訊口COM2 定位地址高四位為16 進制0x1,則通訊口COM1 接出的第1 塊I/O 模件至第4 塊I/O 模件地址分別為0x01、0x02、0x03、0x04,通訊口COM2 接出的第1 塊I/O 模件至第4 塊I/O 模件地址分別為0x11、0x12、0x13、0x14。
若需要增加I/O 模件的低四位地址,只需要定義每條通訊總線上最大I/O 模件數量,再增加相應的地址識別電路位數即可;若需要增加I/O 模件的高四位地址,則只需要在DPU 中增加相應的通訊口數量即可。
不同于現有的地址自識別方案,本方案設計的系統具有以下益處:
在地址識別位數量滿足的情況下,可以靈活地增減模件背板的數量。當出現I/O 模件損壞或模件背板損壞時,操作人員無需做任何的設置或修改,只需要更換相應位置的I/O 模件或模件背板。更換后,I/O 模件可以直接識別地址的低位,控制器通過通訊口識別相應的地址高位。
與目前各廠家所設計的傳統I/O 模件地址設置的方案相比,本設計方案在工程實施時,可靈活地增減需要配置的I/O 模件數量,無需預留足夠多的備用槽位,或在更換由于現場環境比較復雜而造成的故障I/O 模件或故模件背板時,無需再次進行手動設置I/O 模件或故障模件背板的地址。當I/O 模件插入相應的位置后,工程人員可以直觀地從距離通訊口位置知曉I/O 模件地址等。當故障發生時,也可直接找到故障I/O 模件具體位置,操作簡單,準確可靠。該方案已應用到工程中,運行狀況良好。