冗余控制器主從狀態(tài)確定方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及工業(yè)控制器領(lǐng)域,尤其涉及一種基于1:1模式下的冗余控制器主從狀態(tài)確定方法。
【背景技術(shù)】
[0002]在工業(yè)控制系統(tǒng)中,控制器是系統(tǒng)的核心部件,控制器冗余技術(shù)是提高系統(tǒng)可靠性和穩(wěn)定型的有效手段??刂破魅哂嘀笧榭刂破髋渲脗溆貌考斈骋豢刂破靼l(fā)生故障或失效時,備用控制器立即介入并接管故障控制器的工作,一般的,處于運行狀態(tài)的控制器稱之為主控制器,處于備用狀態(tài)的控制器稱之為從冗余控制器需要準確、及時地確定主從狀
??τ O
[0003]因此,需要提出一種冗余控制器的主從狀態(tài)確定方法,能夠準確確定控制器之間的主從狀態(tài),有效避免出現(xiàn)無主或者多主狀態(tài),確保系統(tǒng)運行的穩(wěn)定性和可靠性。
【發(fā)明內(nèi)容】
[0004]有鑒于此,本發(fā)明的目的是提供一種冗余控制器主從狀態(tài)確定方法,能夠準確確定控制器之間的主從狀態(tài),有效避免出現(xiàn)無主或者多主狀態(tài),確保系統(tǒng)運行的穩(wěn)定性和可靠性。
[0005]本發(fā)明提供的一種冗余控制器主從狀態(tài)確定方法,包括兩個控制器并形成控制器冗余;所述確定方法包括如下步驟:
[0006]若兩個控制器在上電初始化時,當前控制器向?qū)Ψ娇刂破靼l(fā)送握手指令,并判斷是否在設定的時間內(nèi)收到握手應答信息,確定兩個控制器的主從狀態(tài);
[0007]若兩個控制器在運行過程中,根據(jù)如下確定兩個控制器的主從狀態(tài):
[0008]當前執(zhí)行控制邏輯的控制器為主控制器;或
[0009]當前主控制器死機時,從控制器切換為主控制器。
[0010]進一步,所述兩個控制器通過以太網(wǎng)接口分別與以太網(wǎng)1、以太網(wǎng)2以及各1機架連接,兩個控制器之間通過光口和冗余光纖連接;在上電初始化時,通過如下步驟發(fā)送并接收握手指令:
[0011]S1.若當前控制器收到對方控制器的握手指令,則向?qū)Ψ娇刂破鞣答佄帐謶鹦畔?,完成握手過程并執(zhí)行主從狀態(tài)判定邏輯,否則進入步驟S2 ;
[0012]S2.當前控制器向?qū)Ψ娇刂破靼l(fā)送握手命令,若在設定的時間內(nèi)收到握手命令的應答信息,則完成握手過程并執(zhí)行主從狀態(tài)判定邏輯,否則進入步驟S3 ;
[0013]S3.當前控制器向?qū)Ψ娇刂破髦匕l(fā)握手指令,若在設定的時間內(nèi)收到握手指令的應答信息,則完成握手過程并執(zhí)行主狀態(tài)確定判定邏輯,否則握手失敗且當前控制器將自身置為主控制器并執(zhí)行主狀態(tài)控制邏輯。
[0014]進一步,兩個控制器通過以太網(wǎng)1、以太網(wǎng)2或者冗余光纖向?qū)Ψ桨l(fā)送握手指令或者反饋應答信息。
[0015]進一步,握手指令和應答信息至少包括控制器自身的主從狀態(tài)信息、網(wǎng)絡配置信息以及模塊通信狀態(tài)信息。
[0016]進一步,所述兩個控制器通過以太網(wǎng)接口分別與以太網(wǎng)1、以太網(wǎng)2以及各1機架連接,在兩個控制器運行過程中,從控制器通過以太網(wǎng)1、以太網(wǎng)或冗余光纖不能檢測主控制器信息,則判定主控制器進入死機狀態(tài)。
[0017]進一步,主控制器死機狀態(tài)包括真死機狀態(tài)和假死機狀態(tài),其中
[0018]真死機狀態(tài)為主控制器出現(xiàn)故障;
[0019]假死機狀態(tài)為主控制器與所有的1機架通信失敗,且在該狀態(tài)下主控制器不執(zhí)行控制邏輯且不向從控制器發(fā)送任何信息。
[0020]進一步,當主控制器與至少一個1機架通信正常,則該控制器仍為主控制器;
[0021]當主控制器與部分1機架通信失敗但從控制器和與主控制器不能通信的1機架通信正常,則主控制器將授權(quán)給從控制器并由從控制器讀寫該1機架的數(shù)據(jù)并通過冗余光纖發(fā)送給主控制器;
[0022]當主控制器與所有1機架通信都失敗,且備用控制器至少與一個1機架的通信狀態(tài)正常,則主控制器進入假死機狀態(tài)。
[0023]本發(fā)明的有益效果:本發(fā)明提供的冗余控制器主從狀態(tài)確定方法,通過兩個部分確定控制器之間的主從狀態(tài),能夠有避免由于控制器的主從狀態(tài)頻繁切換引起的系統(tǒng)狀態(tài)不穩(wěn)定;能夠有效地是從控制識別主控制的狀態(tài),進一步確??刂葡到y(tǒng)穩(wěn)定可靠地運行;并且能夠?qū)崿F(xiàn)控制器之間的數(shù)據(jù)及時、可靠地同步。
【附圖說明】
[0024]下面結(jié)合附圖和實施例對本發(fā)明作進一步描述:
[0025]圖1為本發(fā)明的握手流程圖。
[0026]圖2為本發(fā)明的主控制器狀態(tài)判定流程圖。
[0027]圖3為本發(fā)明的主控制器假死機狀態(tài)判定流程圖。
[0028]圖4為本發(fā)明的從控制器狀態(tài)判定流程圖。
[0029]圖5為本發(fā)明的冗余控制器連接示意圖。
[0030]圖6為從控制器判定主控制死機流程示意圖。
【具體實施方式】
[0031]圖1為本發(fā)明的握手流程圖,圖2為本發(fā)明的主控制器狀態(tài)判定流程圖,圖3為本發(fā)明的主控制器假死機狀態(tài)判定流程圖,圖4為本發(fā)明的從控制器狀態(tài)判定流程圖,圖5為本發(fā)明的冗余控制器連接示意圖,如圖所示,本發(fā)明提供的一種冗余控制器主從狀態(tài)確定方法,包括兩個控制器并形成控制器冗余;所述確定方法包括如下步驟:
[0032]若兩個控制器在上電初始化時,當前控制器向?qū)Ψ娇刂破靼l(fā)送握手指令,并判斷是否在設定的時間內(nèi)收到握手應答信息,確定兩個控制器的主從狀態(tài);
[0033]若兩個控制器在運行過程中,根據(jù)如下確定兩個控制器的主從狀態(tài):
[0034]當前執(zhí)行控制邏輯的控制器為主控制器;或
[0035]當前主控制器死機時,從控制器切換為主控制器,本發(fā)明提供的冗余控制器主從狀態(tài)確定方法,通過兩個部分確定控制器之間的主從狀態(tài),能夠有避免由于控制器的主從狀態(tài)頻繁切換引起的系統(tǒng)狀態(tài)不穩(wěn)定;能夠有效地是從控制識別主控制的狀態(tài),進一步確??刂葡到y(tǒng)穩(wěn)定可靠地運行;并且能夠?qū)崿F(xiàn)控制器之間的數(shù)據(jù)及時、可靠地同步。
[0036]本實施例中,所述兩個控制器通過以太網(wǎng)接口分別與以太網(wǎng)1、以太網(wǎng)2以及各1機架連接,兩個控制器之間通過光口和冗余光纖連接,其連接關(guān)系如圖5所示;在上電初始化時,通過如下步驟發(fā)送并接收握手指令:
[0037]S1.若當前控制器收到對方控制器的握手指令,則向?qū)Ψ娇刂破鞣答佄帐謶鹦畔?,完成握手過程并執(zhí)行主從狀態(tài)判定邏輯,否則進入步驟S2 ;
[0038]S2.當前控制器向?qū)Ψ娇刂破靼l(fā)送握手命令,若在設定的時間內(nèi)收到握手命令的應答信息,則完成握手過程并執(zhí)行主從狀態(tài)判定邏輯,否則進入步驟S3 ;
[0039]S3.當前控制