可編程控制器冗余控制方法和系統的制作方法
【專利摘要】本發明公開了一種可編程控制器冗余控制方法和系統。其中,該方法包括:判斷主處理器和/或主總線是否出現故障,其中,主處理器對應有備處理器,主總線對應有備總線;若主處理器出現故障,則將主處理器切換至備處理器;若主總線出現故障,則將主總線切換至備總線;若主處理器和主總線均出現故障,則將主處理器切換至備處理器,并將主總線切換至備總線。本發明解決了現有技術中所采用的冗余方式可靠性較低的技術問題,達到了提高系統可靠性的技術效果。
【專利說明】可編程控制器冗余控制方法和系統
【技術領域】
[0001]本發明涉及工業控制領域,具體而言,涉及一種可編程控制器冗余控制方法和系統。
【背景技術】
[0002]隨著每年對具有更高可靠性系統產品的需求的逐年增加,可編程控制器(PLC,Programmable logic controller)作為工控領域的主要控制產品之一,發展具有冗余功能的PLC已成為其中一個重要的發展方向。
[0003]現有的可編程控制器PLC所采用的冗余方式主要包括以下方式:
[0004]I)單獨針對處理器的冗余,傳統的處理器冗余,通常采用兩個處理器,通過專用冗余熱備模塊來實現切換后的數據同步,這種方式僅針對處理器,對于PLC中的其他部件并沒有做出合理的冗余配置;
[0005]2)單獨針對I/O板卡的冗余,通常采用機籠式冗余,其中,機籠是用于放置各個PLC板卡的基板,各板卡按一定的順序放置在機架的不同的安裝槽中,板卡之間用總線連接器連接。當安裝槽中的某一板卡出現故障,需要使用備份冗余時,必須同時切換整個機籠。假設當前機籠A中包含了 Al、D1、AO三種類型板卡,機籠B中是其冗余板卡,含有與機籠A中完全相同類型板卡。當機籠A中板卡為運行板卡時,機籠B中的板卡即為備用板卡,當機籠A中的Al卡故障時,則會立刻整體切換到機籠B中的備用板卡,切換后機籠B中的備用板卡將作為運行板卡;而機籠B中的DI卡故障時,則無法切回到機籠A利用機籠A中的DI卡,使得整個I/O板卡不得不停止工作。這種采用機籠的主/備切換控制方式,本身存在擴展不方便的缺點,而且這種方式還存在主/備切換相互干擾的缺點,使得主/備切換的可靠性降低。
[0006]針對上述的問題,目前尚未提出有效的解決方案。
【發明內容】
[0007]本發明實施例提供了一種可編程控制器冗余控制方法和系統,以至少解決現有技術中所采用的冗余方式可靠性較低的技術問題。
[0008]根據本發明實施例的一個方面,提供了一種可編程控制器冗余控制方法,包括:判斷主處理器和/或主總線是否出現故障,其中,上述主處理器對應有備處理器,上述主總線對應有備總線;若上述主處理器出現故障,則將上述主處理器切換至上述備處理器,使得切換前通過上述主總線與上述主處理器通信的I/o設備在切換后通過上述主總線與上述備處理器通信;若上述主總線出現故障,則將上述主總線切換至上述備總線,使得切換前通過上述主總線相互通信的上述主處理器和上述I/o設備在切換后通過上述備總線進行通信;若上述主處理器和上述主總線均出現故障,則將上述主處理器切換至上述備處理器,并將上述主總線切換至上述備總線,使得切換前通過上述主總線與上述主處理器通信的上述I/O設備在切換后通過上述備總線與上述備處理器通信。[0009]可選地,上述I/O設備包括主I/O設備和備I/O設備,其中,在判斷主處理器和/或主總線是否出現故障時,還包括:判斷上述主I/o設備是否出現故障;若上述主I/O設備出現故障,則將上述主I/o設備切換至上述備I/O設備,使得切換前通過上述主總線與上述主I/o設備通信的上述主處理器在切換后通過上述主總線與上述備I/O設備通信。
[0010]可選地,在判斷上述主I/O設備是否出現故障之后,還包括:若上述主處理器和上述主I/O設備出現故障,則將上述主處理器切換至上述備處理器,并將上述主I/O設備切換至上述備I/O設備,使得切換前用于使上述主處理器和上述主I/O設備進行通信的上述主總線在切換后使上述備處理器和上述備I/o設備進行通信;若上述主總線和上述主I/O設備出現故障,則將上述主總線切換至上述備總線,將上述主I/o設備切換至上述備I/O設備,使得切換前通過上述主總線與上述主I/O設備通信的上述主處理器在切換后通過上述備總線與上述備I/o設備通信;若上述主處理器、上述主總線和上述主I/O設備均出現故障,則將上述主處理器切換至上述備處理器,將上述主總線切換至上述備總線,將上述主I/O設備切換至上述備I/O設備,使得在切換后中斷上述主處理器通過上述主總線與上述主I/o設備的通信,并在切換后使得上述備處理器通過上述備總線與上述備I/O設備進行通信。
[0011]可選地,上述判斷上述主I/O設備是否出現故障包括:上述備I/O設備檢測用于指示上述主I/o設備的運行狀態的指示信號是否出現異常;若檢測到上述指示信號出現異常,則控制上述主I/o設備切換至上述備I/O設備。
[0012]可選地,將上述主總線切換至上述備總線包括:判斷上述主處理器或上述備處理器所接收的數據中是包含上述主總線的標識還是上述備總線的標識;若判斷出是包含上述備總線的標識,則將上述主總線切換至上述備總線。
[0013]可選地,上述將上述主處理器切換至上述備處理器包括:上述備處理器檢測用于指示上述主處理器的運行狀態的指示信號是否出現異常;若檢測到上述指示信號出現異常,則控制上述主處理器切換至上述備處理器。
[0014]根據本發明實施例的另一個方面,還提供了一種可編程控制器冗余控制系統,包括:主處理器,被設置為與主總線及備總線分別連接;備處理器,被設置為與上述主總線及上述備總線分別連接,并與上述主處理器連接;主總線,被設置為與I/o設備連接;備總線,被設置為與上述I/o設備連接;其中,上述主處理器與上述備處理器互為備份,上述主總線與上述備總線互為備份。
[0015]可選地,上述系統還包括:上述I/O設備,其中,上述I/O設備包括:主I/O設備,被設置為與上述主總線及上述備總線分別連接;和/或,備I/o設備,被設置為與上述主總線及上述備總線分別連接,并與上述主I/o設備連接;其中,上述主I/O設備與上述備I/O設備互為備份。
[0016]可選地,上述主處理器包括:第一中央控制處理器,被設置為與第一 I/o連接控制電路連接;上述第一 I/o連接控制電路,被設置為與上述主總線及上述備總線連接,用于控制選擇上述主總線或上述備總線與上述I/o設備進行通信;上述備處理器包括:第二中央控制處理器,被設置為與第二 I/o連接控制電路連接;上述第二 I/O連接控制電路,被設置為與上述主總線及上述備總線連接,用于控制選擇上述主總線或上述備總線與上述I/O設備進行通信。[0017]可選地,上述主處理器中包括:第一通信接口,被設置為與上述備處理器連接,用于向上述備處理器發送指示上述主處理器的運行狀態的指示信號;上述備處理器中包括:第二通信接口,被設置為與上述主處理器連接,用于接收指示上述主處理器的運行狀態的指示信號;第一檢測裝置,被設置為與上述第二通信接口連接,用于檢測上述指示上述主處理器的運行狀態的指示信號是否出現異常。
[0018]可選地,上述主I/O設備包括:第三通信接口,被設置為與上述備I/o設備連接,用于向上述備I/o設備發送指示上述主I/O設備的運行狀態的指示信號;上述備I/O設備包括:第四通信接口,被設置為與上述主I/o設備連接,用于接收指示上述主I/O設備的運行狀態的指示信號;第二檢測裝置,被設置為與上述第四通信接口連接,用于檢測上述指示上述主I/o設備的運行狀態的指示信號是否出現異常。
[0019]可選地,上述主I/O設備與上述備I/O設備位于同一基板。
[0020]在本發明實施例中,通過將可編程控制器中的處理器、總線、I/o設備均設置主/備兩個設備,克服了現有技術中只針對特定的單獨的模塊或整個系統進行冗余設置所導致的可靠性較低的技術問題,使得整個系統在單獨的模塊出現故障,或者任意模塊組合出現故障時,均可實現在不影響其他類型的模塊前提下,進行無擾切換,達到了基于模塊靈活切換的目的,從而實現了提高系統可靠性的技術效果,進而解決了現有技術中所采用的冗余方式可靠性較低的技術問題。
【專利附圖】
【附圖說明】
[0021]此處所說明的附圖用來提供對本發明的進一步理解,構成本申請的一部分,本發明的示意性實施例及其說明用于解釋本發明,并不構成對本發明的不當限定。在附圖中:
[0022]圖1是根據本發明實施例的一種可選的可編程控制器冗余切換的示意圖;
[0023]圖2是根據本發明實施例的另一種可選的可編程控制器冗余切換的示意圖;
[0024]圖3是根據本發明實施例的又一種可選的可編程控制器冗余切換的示意圖;
[0025]圖4是根據本發明實施例的又一種可選的可編程控制器冗余切換的示意圖;
[0026]圖5是根據本發明實施例的又一種可選的可編程控制器冗余切換的示意圖;
[0027]圖6是根據本發明實施例的一種可選的可編程控制器冗余切換系統的示意圖;以及
[0028]圖7是根據本發明實施例的另一種可選的可編程控制器冗余切換系統的示意圖。【具體實施方式】
[0029]下文中將參考附圖并結合實施例來詳細說明本發明。需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。
[0030]實施例1
[0031 ] 根據本發明實施例,提供了 一種可編程控制器冗余控制方法,該方法包括:
[0032]SI,判斷主處理器和/或主總線是否出現故障;
[0033]可選地,在本實施例中上述可編程控制器冗余控制方法可以但不限于應用于中型混合可編程控制器(PLC, Programmable logic controller)。可選地,在本實施例中的主處理器對應有備處理器,主總線對應有備總線,主I/O設備對應有備I/O設備。結合圖1所示,在本實施例中用于實施上述可編程控制器冗余控制方法的系統中包括主處理器CPUModule_l、備處理器 CPU Module_2,交換機 Switchl、Switch2,主總線 SYS_NET1、備總線SYS_NET2,以及主 I/O 設備 I/O Modulel、備 I/O 設備 I/O Module2。
[0034]可選地,在本實施例中的主處理器和備處理器可以但不限于通過RS232總線或以太網與第三方設備通信,將數據傳輸給數據中心站。可選地,在本實施例中的主處理器或備處理器可以包括但不限于:中央控制處理器(CPU),和I/O連接控制電路。其中,CPU可以但不限于執行以下至少一種操作:數據處理、數據運算、外設通信,I/o連接控制電路(I/OLink)可以但不限于選擇相應的總線與I/O設備進行數據通信。可選地,在本實施例中的CPU處理器具有自檢功能,能夠將系統運行狀態通過八段數碼管顯示。
[0035]可選地,在本實施例中的主處理器和備處理器可以包括但不限于:多個通信接口。例如,如圖1所示,主處理器CPU Module_l包括:第一通信接口 Tl,用于向備處理器CPUModule_2發送主處理器CPU ModuleJ的運行狀態的指示信號互為備份的兩個以太網接口El和E2,用于與人機交互界面HMI進行數據通信;備處理器CPU Module_2包括:第二通信接口 Tl’,用于接收主處理器CPU ModuleJ的運行狀態的指示信號互為備份的兩個以太網接口 Ε1’和E2’,用于與人機交互界面HMI進行數據通信。 [0036]可選地,在本實施例中與主處理器或備處理器進行數據通信的主I/O設備和備I/O設備可以但不限于位于同一基板,其中上述I/O設備主要是用來與現場進行交互,實現信號的輸入輸出。
[0037]可選地,在本實施例中對主處理器是否出現故障的判斷方式包括但不限于:心跳檢測、狀態檢測。其中,檢測的方式可以包括但不限于以下方式:主處理器實時向備處理器發送用于指示主處理器的運行狀態的指示信號。可選地,在本實施例中檢測主總線是否出現故障的判斷方式可以包括但不限于:通過處理器中的I/o連接控制電路(I/O link)通過接收的數據中的標識判斷主總線是否處于正常的運行狀態。
[0038]例如,結合圖1所示,假設當前主處理器CPU Module_l通過主總線SYS_NET1與主I/o設備正在進行正常的通信。主處理器CPU Module_l通過第一通信接口 Tl實時向備處理器CPU Module_2發送用于指示主處理器CPU ModuleJ的運行狀態的指示信號,則備處理器CPU Module_2通過第二通信接口 Tl’檢測判斷在預定時間內是否聽到對方的“心跳”或接收到的“心跳”是否出現異常。若假設主處理器CPU ModuleJ未出現故障,則進一步檢測判斷主處理器CPU Module_l中的I/O連接控制電路(I/O link)所接收的數據中的標識是否為主總線SYS_NET I。
[0039]S2,若主處理器出現故障,則將主處理器切換至備處理器,使得切換前通過主總線與主處理器通信的I/o設備在切換后通過主總線與備處理器通信;
[0040]可選地,在本實施例中備處理器檢測到的主處理器出現的故障包括以下至少之一:未在預定時間內接收到用于指示主處理器的運行狀態的指示信號、接收到的用于指示主處理器的運行狀態的指示信號指示異常。
[0041]例如,結合圖1所示,若判斷出主處理器CPU ModuleJ出現故障(例如,備處理器CPU Module_2在預定的時間內沒有接收到用于指示主處理器CPU Module_l的運行狀態的指示信號),則將主處理器CPU Module_l切換至備處理器CPU Module_2,使得切換前通過主總線SYS_NET1與主處理器CPU Module_l通信的I/O設備在切換后通過主總線SYS_NET1與備處理器CPU Module_2通信。
[0042]可選地,在本實施例中在主處理器和備處理器在切換之前可以但不限于進行同步數據傳輸。進一步說明,備處理器CPU Module_2要隨時準備著,一旦需要進行切換,就立刻獲取主控權切換成為當前運行的處理器。因此,主處理器CPU ModuleJ必須將自己的狀態信息通過運行狀態的指示信號實時傳送給備處理器CPU Module_2,使備處理器CPUModule_2與主處理器CPU ModuleJ保持狀態、數據同步,這樣當要進行切換時,才可以實現無擾動的切換。
[0043]可選地,在本實施例中PLC之間的數據同步可以包括但不限于采用硬件同步和軟件同步兩種方法,其中,硬件同步提供了同步數據的總線,也就是數據同步所需要的數據通道,實時的將數據傳送給備處理器;軟件同步則是將同步數據通過通信線路傳送給備處理器 CPU Module_2。
[0044]可選地,在本實施例中主處理器CPU Module_l及備處理器CPU Module_2可以但不限于具備2個互為備份的兩個以太網接口,具體示例結合圖1所示,主處理器CPUModule_l中包括互為備份的兩個以太網接口 El和E2,備處理器CPU Module_2中包括互為備份的兩個以太網接口 Ε1‘和E2’,在上述各處理器的兩個以太網接口上設置不同網段的IP地址,通過在人機交互界面HMI上設置2個相應的IP地址,做到PLC系統與HMI的通信冗余。
[0045]例如,如圖2所示,假設當前主處理器CPU Module_l及備處理器CPU Module_2通過以太網與第三方設備(例如,人機交互界面HMI)通信。主處理器CPU ModuleJ與備處理器CPU Module_2各自的兩個以太網口分別設置為不同網段的2個IP地址,比如CPUModule_l 的 El 口設置為 192.168.1.101,E2 口設置為 10.10.1.18,CPU Module_2 的設置與前者相同。HMI具備2個網口,分別設為192.168.1.100和10.10.1.10。
[0046]可選地,在本實施例中人機交互界面HMI與上述系統通信有主/備兩個通信鏈路,例如,如圖2所示的HMI與交換機Switcnl和Switcn2之間分別通過鏈路a、鏈路d進行通信,兩條鏈路可以同時工作,通常以一條為主,另一條為輔,主鏈路故障時HMI將自動切換到另一條通信鏈路。
[0047]進一步說明,上述系統中控制器所控制的主處理器CPU ModuleJ與備處理器CPUModule_2的網口是否工作是通過自身判斷來實現的,當主處理器CPU Module_l為主工作時,其El 口,E2 口始終處于激活狀態,兩個端口均可以與HMI實現數據通信,備處理器CPUModule_2的E1’ 口,E2’ 口處于禁止狀態,并呈現為高阻態。
[0048]當主處理器CPU Module_l工作時,人機交互界面HMI與CPU A共有兩條通信鏈路a—b和d— f,兩條鏈路可以同時工作。假設當前a—b為主工作鏈路,則d— f鏈路則為備工作鏈路(但可以接收人機交互界面HMI下發的通信指令并回應);若通信鏈路a— b出現異常,人機交互界面HMI自動切換d — f通信鏈路來工作。主處理器CPU Module_l工作時,備處理器CPU Module_2的El’ 口,E2’處于禁止狀態,并呈現為高阻態。如果主處理器CPUModule_l出現故障,控制器會自動裁決切換到備處理器CPU Module_2繼續進行通信。
[0049]當備處理器CPU Module_2工作時,人機交互界面HMI與備處理器CPU Module_2共有兩條通信鏈路a— c和d— e,兩條鏈路可以同時工作。假設當前a— c為主工作鏈路,則d— e鏈路備工作鏈路(但可以接收人機交互界面HM下發的通信指令并回應);若通信鏈路a— c出現異常,人機交互界面HMI將自動切換d— e通信鏈路來工作。備處理器CPUModule_2工作時主處理器CPU Module_l的El 口,E2處于禁止狀態,并呈現為高阻態。
[0050]S3,若主總線出現故障,則將主總線切換至備總線,使得切換前通過主總線相互通信的主處理器和I/o設備在切換后通過備總線進行通信;
[0051]可選地,在本實施例中檢測主總線是否出現故障的判斷方式可以包括但不限于:通過處理器中的I/O連接控制電路(I/O link)通過接收的數據中的標識判斷主總線是否處于正常的運行狀態。
[0052]例如,結合圖3所示,假設當前主處理器CPU Module_l通過主總線SYS_NET1與主I/o設備正在進行正常的通信。由主處理器CPU Module_l中的I/O連接控制電路(I/O link)所接收的數據中的標識得出主總線SYS_NET1的通信出現故障時,則將主總線SYS_NETl切換至備總線SYS_NET2,使得切換前通過主總線SYS_NET1相互通信的主處理器CPUModule_l和I/O設備在切換后通過備總線SYS_NET2進行通信,這樣就保證了無I/O冗余的情況下也能保證系統的可靠運行。
[0053]S4,若主處理器和主總線均出現故障,則將主處理器切換至備處理器,并將主總線切換至備總線,使得切換前通過主總線與主處理器通信的I/o設備在切換后通過備總線與備處理器通信。
[0054]例如,結合圖1所示,假設當前主處理器CPU Module_l通過主總線SYS_NET1與主I/o設備正在進行正常的通信。當備處理器CPU Module_2在預定時間內沒有接收到用于指示主處理器CPU ModuleJ的運行狀態的指示信號,則將主處理器CPU ModuleJ切換至備處理器CPU Module_2,又當備處理器CPU Module_2由I/O連接控制電路(I/O link)接收的數據中的標識得知主總線SYS_NET1也出現故障,則將主總線SYS_NET1切換至備總線SYS_NET2,使得切換前通過主總線SYS_NET1與主處理器CPU Module_l通信的I/O設備在切換后通過備總線SYS_NET2與備處理器CPU Module_2通信。
[0055]通過本申請提供的實施例,通過判斷得出主處理器和/或主總線出現故障,控制上述主處理器切換至備處理器和/或控制上述主總線切換至備總線,克服了傳統技術所采用的冗余方式可靠性較低的問題,實現了提高可編程控制器PLC的可靠性的效果;此外,主/備處理器中還設置多個通信接口,可以通過控制一些通信接口的開啟或禁止,實現了節省IP資源的效果,擴大了冗余數量;還可通過一些通信接口實現對主處理器實時的狀態檢測,以使出現故障時,可以將主處理器及時切換至備處理器。
[0056]作為一種可選的方案,I/O設備包括主I/O設備和備I/O設備,其中,在判斷主處理器和/或主總線是否出現故障時,還包括:
[0057]SI,判斷主I/O設備是否出現故障;
[0058]可選地,在本實施例中的主I/O設備和備I/O設備可以但不限于位于同一基板,其中,上述I/o設備主要是用來與現場進行交互,實現信號的輸入輸出。可選地,在本實施例中的主I/O設備可以包括但不限于A0、A1、D0、DI四種卡件,相應的,在本實施例中的備I/O設備可以包括但不限于A0’、Al’、DO’、DI’。可選地,在本實施例中主/備I/O設備可以但不限于為單獨的板卡,例如,Al板卡。
[0059]可選地,在本實施例中的主I/O設備和備I/O設備還可以包括用于傳輸主I/O設備的運行狀態的指示信號的通信接口。例如,如圖4所示,主I/O設備中包括Al板卡,DI板卡,上述板卡的通信接口分別為P1、P2,備I/O設備中包括Al’板卡,DI’板卡,上述板卡的通信接口分別為PI’、P2’。
[0060]可選地,在本實施例中的I/O設備能夠通過LED指示燈顯示當前輸入輸出的信號狀態。
[0061]可選地,在本實施例中對主I/O設備是否出現故障的判斷方式包括但不限于:心跳檢測、狀態檢測。其中,檢測的方式可以包括但不限于以下方式:主I/o設備實時向備I/O設備發送用于指示主I/O設備的運行狀態的指示信號。
[0062]例如,如圖4所示,假設當前主處理器CPU Module_l通過主總線SYS_NET1與主I/O設備正在進行正常的通信。主I/O設備(例如,Al板卡)通過第三通信接口(例如,Pl口)實時向備I/O設備(例如,Al’板卡)的第四通信接口(例如,Ρ1口)發送用于指示主I/O設備(例如,Al板卡)的運行狀態的指示信號,則備I/O設備通過第四通信接口 Ρ1檢測判斷在預定時間內是否聽到對方的“心跳”或接收到的“心跳”是否出現異常。
[0063]S2,若主I/O設備出現故障,則將主I/O設備切換至備I/O設備,使得切換前通過主總線與主I/o設備通信的主處理器在切換后通過主總線與備I/O設備通信。
[0064]例如,如圖4所示,假設當前主處理器CPU Module_l通過主總線SYS_NET1與主I/O設備正在進行正常的通信,其中,將Al、DI卡作為主I/O設備,AI’、DI’作為Al、DI的備I/O設備。若判 斷出主I/O設備(例如,Al板卡)出現故障(例如,備I/O設備(例如,Al’板卡)在預定的時間內沒有接收到用于指示主I/O設備(例如,Al板卡)的運行狀態的指示信號),則將主I/O設備切換至備I/O設備,使得切換前通過主總線SYS_NET1與主I/O設備通信的主處理器CPU Module_l在切換后通過主總線SYS_NET1與備I/O設備通信。
[0065]進一步說明,兩個I/O設備之間通過同一基板上的系統總線進行數據交互,根據各自采集的信號進行裁決,使其中一個I/o設備處于運行狀態(即主I/O設備),另一個I/O設備處于準備狀態(即備I/O設備);處于準備狀態的備I/O設備與系統中有效的I/O連接控制電路(Ι/Olink)之間的總線是被鎖死的,即該路系統總線處于高阻態。
[0066]可選地,在本實施例中對I/O設備的檢測可以但不限于:周期性查詢。例如,I/O連接控制電路(I/o link)周期性(例如,周期T約為1.5ms)查詢可編程控制器PLC的主I/O設備運行狀態是否正常,并將狀態返回給CPU(例如,每IOOms返回給CPU處理器一次)。這樣在運行過程中CPU通過定期檢測I/O連接控制電路(I/O link)返回的主I/O設備的運行狀態,并且通過在系統中啟動一個定期的任務,定期對主I/O設備進行輪詢,以確定主I/O設備的運行狀態,進而確定主I/O設備是否在正常工作。
[0067]通過本申請提供的實施例,通過位于同一基板的備I/O設備判斷主I/O設備是否出現故障,則可在判斷出現故障后,直接控制主/備I/o設備的切換,克服了現有的系統級主/備切換的不方便性,實現了基于模塊的切換,達到了提高I/o設備主/備切換的靈活性以及可靠性的目的。
[0068]作為一種可選的方案,在判斷主I/O設備是否出現故障之后,還包括:
[0069]SI,若主處理器和主I/O設備出現故障,則將主處理器切換至備處理器,并將主I/O設備切換至備I/O設備,使得切換前用于使主處理器和主I/O設備進行通信的主總線在切換后使備處理器和備I/o設備進行通信;
[0070]例如,結合圖1所示,假設當前主處理器CPU Module_l通過主總線SYS_NET1與主I/O設備正在進行正常的通信。當備處理器CPU Module_2在預定的時間內沒有接收到用于指示主處理器CPU ModuleJ的運行狀態的指示信號,則將主處理器CPU ModuleJ切換至備處理器CPU Module_2,則將主處理器CPU Module_l切換至備處理器CPU Module_2,進一步備I/O設備也接收到用于指示主I/O設備的運行狀態的指示信號,由指示信號判斷得出出現異常,則將主I/O設備切換至備I/O設備,使得切換前用于使主處理器CPU Module_l和主I/O設備進行通信的主總線SYS_NET1在切換后使備處理器CPU Module_2和備I/O設備進行通信。
[0071]S2,若主總線和主I/O設備出現故障,則將主總線切換至備總線,將主I/O設備切換至備I/o設備,使得切換前通過主總線與主I/O設備通信的主處理器在切換后通過備總線與備I/o設備通信;
[0072]例如,結合圖1所示,假設當前主處理器CPU Module_l通過主總線SYS_NET1與主I/o設備正在進行正常的通信。由主處理器CPU Module_l中的I/O連接控制電路(I/O link)所接收的數據中的標識得出主總線SYS_NET1的通信出現故障時,則將主總線SYS_NETl切換至備總線SYS_NET2,進一步備I/O設備又接收到用于指示主I/O設備的運行狀態的指示信號,指示信號指示出現異常,則將主I/O設備切換至備I/O設備,使得切換前通過主總線SYS_NET1與主I/O設備通信的主處理器CPU Module_l在切換后通過備總線SYS_NET2與備I/O設備通信。
[0073]S3,若主處理器、主總線和主I/O設備均出現故障,則將主處理器切換至備處理器,將主總線切換至備總線,將主I/o設備切換至備I/O設備,使得在切換后中斷主處理器通過主總線與主I/o設備的通信,并在切換后使得備處理器通過備總線與備I/O設備進行通信。
[0074]例如,結合圖1所示,假設當前主處理器CPU Module_l通過主總線SYS_NET1與主I/o設備正在進行正常的通信。當備處理器CPU Module_2在預定的時間內沒有接收到用于指示主處理器CPU ModuleJ的運行狀態的指示信號,則將主處理器CPU ModuleJ切換至備處理器CPU Module_2,進一步切換后由備處理器CPU Module_2中的I/O連接控制電路(I/O link)所接收的數據中的標識得出主總線SYS_NET1的通信出現故障時,則將主總線SYS_NET1切換至備總線SYS_NET2,備I/O設備又接收到用于指示主I/O設備的運行狀態的指示信號,指示信號指示出現異常,則將主I/O設備切換至備I/O設備,使得在切換后中斷主處理器CPU Module_l通過主總線SYS_NET1與主I/O設備的通信,并在切換后使得備處理器CPU Module_2通過備總線SYS_NET2與備I/O設備進行通信。
[0075]通過本申請提供的實施例,通過對主處理器、主總線及主I/O設備分別進行判斷,進而得出在主處理器和主I/O設備出現故障時,在主總線和主I/O設備出現故障時,在主處理器、主總線和主I/o設備均出現故障的三種情況下的切換方法,實現了基于模塊的主/備切換,達到了提高系統的靈活性以及可靠性的目的。
[0076]作為一種可選的方案,判斷主I/O設備是否出現故障包括:
[0077]SI,備I/O設備檢測用于指示主I/O設備的運行狀態的指示信號是否出現異常;
[0078]可選地,在本實施例中對主I/O設備的運行狀態的指示信號是否出現異常包括但不限于:未按時接收到用于指示主I/o設備的運行狀態的指示信號、指示信號指示出現異常,其中,指示信號出現的異常可以包括但不限于信號波形異常。[0079]可選地,在本實施例中主I/O設備或備I/O設備可以但不限于為單獨的板卡,例如,Al板卡。
[0080]S2,若檢測到指示信號出現異常,則控制主I/O設備切換至備I/O設備。
[0081]例如,結合圖4所示,假設當前主處理器CPU Module_l通過主總線SYS_NET1與主I/o設備正在進行正常的通信。主I/O設備中包括Al板卡,DI板卡,上述板卡的通信接口分別為P1、P2,備I/O設備中包括Al’板卡,DI’板卡,上述板卡的通信接口分別為P1’、P2’。當備I/O設備(例如,Al’板卡)通過通信接口 Ρ接收到用于指示主I/O設備(例如,Al板卡)的運行狀態的指示信號指示主I/O設備(例如,Al板卡)出現異常,則可單獨控制Al板卡切換至備用的Al’板卡,而不會影響其他類型的板卡的正常工作,例如,主I/O設備DI板卡并未出現故障,則可以不用切換至備用的DI’板卡。這樣,基于模塊的切換不僅更加靈活,也提高了系統的可靠性。
[0082]通過本申請提供的實施例,通過對主I/O設備基于模塊是否出現故障的判斷,克服了現有技術中基于系統的機籠式的主/備切換導致的擴展不方便的問題,使得可編程控制器PLC的冗余控制系統更加靈活,可靠性也有所提高。
[0083]作為一種可選的方案,將主總線切換至備總線包括:
[0084]SI,判斷主 處理器或備處理器所接收的數據中是包含主總線的標識還是備總線的標識;
[0085]可選地,在本實施例中判斷主處理器或備處理器所接收的數據中是包含主總線的標識還是備總線的標識的方式可以包括但不限于:通過處理器中的I/o連接控制電路(I/Olink)通過接收的數據中的標識判斷主總線是否處于正常的運行狀態。
[0086]S2,若判斷出是包含備總線的標識,則將主總線切換至備總線。
[0087]例如,結合圖3所示,假設當前主處理器CPU Module_l通過主總線SYS_NET1與主I/o設備正在進行正常的通信。由主處理器CPU Module_l中的I/O連接控制電路(I/O link)所接收的數據中的標識得出主總線SYS_NET1的通信出現故障時,則將主總線SYS_NETl切換至備總線SYS_NET2,使得切換前通過主總線SYS_NET1相互通信的主處理器CPUModule_l和I/O設備在切換后通過備總線SYS_NET2進行通信,這樣就保證了無I/O冗余的情況下也能保證系統的可靠運行。
[0088]通過本申請提供的實施例,采用雙總線的方式,使得在I/O設備切換時不會影響其他類型的I/o設備,同時這種冗余方式也保證了運行的可靠性。
[0089]作為一種可選地方案,將主處理器切換至備處理器包括:
[0090]SI,備處理器檢測用于指示主處理器的運行狀態的指示信號是否出現異常;
[0091]可選地,在本實施例中對主處理器的運行狀態的指示信號是否出現異常包括但不限于:未按時接收到用于指示主處理器的運行狀態的指示信號、指示信號指示出現異常,其中,指示信號出現的異常可以包括但不限于信號波形異常。
[0092]S2,若檢測到指示信號出現異常,則控制主處理器切換至備處理器。
[0093]例如,結合圖1所示,假設當前主處理器CPU Module_l通過主總線SYS_NET1與主I/o設備正在進行正常的通信。當備處理器CPU Module_2在預定時間內沒有接收到用于指示主處理器CPU ModuleJ的運行狀態的指示信號,又或者,備處理器CPU Module_2接收到用于指示主處理器CPU ModuleJ的運行狀態的指示信號,但指示信號指示出現異常,則將主處理器CPU Module_l切換至備處理器CPU Module_2。
[0094]通過本申請提供的實施例,通過判斷得出主處理器出現故障,控制上述主處理器切換至備處理器,克服了傳統技術所采用的冗余方式可靠性較低的問題,實現了提高可編程控制器PLC的可靠性的效果。
[0095]本發明提供了一種優選的實施例來進一步對本發明進行解釋,但是值得注意的是,該優選實施例只是為了更好的描述本發明,并不構成對本發明不當的限定。
[0096]實施例2
[0097]根據本發明實施例,還提供了一種可編程控制器冗余控制系統,如圖6所示,在本實施例該系統包括:
[0098](I)主處理器602,被設置為與主總線及備總線分別連接;
[0099](2)備處理器604,被設置為與主總線及備總線分別連接,并與主處理器連接;
[0100]可選地,在本實施例中的主處理器 與備處理器互為備份,主總線與備總線互為備份。
[0101 ] 可選地,在本實施例中上述可編程控制器冗余控制方法可以但不限于應用于中型混合可編程控制器(PLC, Programmable logic controller)。可選地,在本實施例中的主處理器對應有備處理器,主總線對應有備總線,主I/O設備對應有備I/O設備。結合圖1所示,在本實施例中用于實施上述可編程控制器冗余控制方法的系統中包括主處理器CPUModule_l、備處理器 CPU Module_2,交換機 Switchl、Switch2,主總線 SYS_NET1、備總線SYS_NET2,以及主 I/O 設備 1/0 Modulel、備 1/0 設備 1/0 Module2。
[0102]可選地,在本實施例中的主處理器和備處理器可以但不限于通過RS232總線或以太網與第三方設備通信,將數據傳輸給數據中心站。可選地,在本實施例中的主處理器或備處理器可以包括但不限于:中央控制處理器(CPU),和1/0連接控制電路。其中,CPU可以但不限于執行以下至少一種操作:數據處理、數據運算、外設通信,I/o連接控制電路(1/0Link)可以但不限于選擇相應的總線與1/0設備進行數據通信。可選地,在本實施例中的CPU處理器具有自檢功能,能夠將系統運行狀態通過八段數碼管顯示。
[0103]可選地,在本實施例中的主處理器和備處理器可以包括但不限于:多個通信接口。例如,如圖1所示,主處理器CPU Module_l包括:第一通信接口 Tl,用于向備處理器CPUModule_2發送主處理器CPU Module」的運行狀態的指示信號;互為備份的兩個以太網接口 El和E2,用于與人機交互界面HMI進行數據通信;備處理器CPU Module_2包括:第二通信接口 Tl’,用于接收主處理器CPU ModuleJ的運行狀態的指示信號,互為備份的兩個以太網接口 Ε1'和E2’,用于與人機交互界面HMI進行數據通信。
[0104]可選地,在本實施例中與主處理器或備處理器進行數據通信的主1/0設備和備I/O設備可以但不限于位于同一基板,其中上述1/0設備主要是用來與現場進行交互,實現信號的輸入輸出。
[0105]可選地,在本實施例中對主處理器是否出現故障的判斷方式包括但不限于:心跳檢測、狀態檢測。其中,檢測的方式可以包括但不限于以下方式:主處理器實時向備處理器發送用于指示主處理器的運行狀態的指示信號。
[0106]可選地,在本實施例中備處理器檢測到的主處理器出現的故障包括以下至少之一:未在預定時間內接收到用于指示主處理器的運行狀態的指示信號、接收到的用于指示主處理器的運行狀態的指示信號指示異常。
[0107]可選地,在本實施例中對主處理器的運行狀態的指示信號是否出現異常包括但不限于:未按時接收到用于指示主處理器的運行狀態的指示信號、指示信號指示出現異常,其中,指示信號出現的異常可以包括但不限于信號波形異常。
[0108]例如,結合圖1所示,假設當前主處理器CPU Module_l通過主總線SYS_NET1與主I/o設備正在進行正常的通信。主處理器CPU Module_l通過第一通信接口 Tl實時向備處理器CPU Module_2發送用于指示主處理器CPU ModuleJ的運行狀態的指示信號,則備處理器CPU Module_2通過第二通信接口 Tl’檢測判斷在預定時間內是否聽到對方的“心跳”或接收到的“心跳”是否出現異常。若判斷出主處理器CPU ModuleJ出現故障(例如,備處理器CPU Module_2在預定的時間內沒有接收到用于指示主處理器CPU Module_l的運行狀態的指示信號),則將主處理器CPU Module_l切換至備處理器CPU Module_2,使得切換前通過主總線SYS_NET1與主處理器CPU Module_l通信的I/O設備在切換后通過主總線SYS_NETl與備處理器CPU Module_2通信。
[0109]可選地,在本實施例中在主處理器和備處理器在切換之前可以但不限于進行同步數據傳輸。進一步說明,備處理器CPU Module_2要隨時準備著,一旦需要進行切換,就立刻獲取主控權切換成為當前運行的處理器。因此,主處理器CPU ModuleJ必須將自己的狀態信息通過運行狀態的指示信號實時傳送給備處理器CPU Module_2,使備處理器CPUModule_2與主處理器CPU ModuleJ保持狀態、數據同步,這樣當要進行切換時,才可以實現無擾動的切換。
[0110]可選地,在本實施例中PLC之間的數據同步可以包括但不限于采用硬件同步和軟件同步兩種方法,其中,硬件同步提供了同步數據的總線,也就是數據同步所需要的數據通道,實時的將數據傳送給備處理器;軟件同步則是將同步數據通過通信線路傳送給備處理器 CPU Module_2。
[0111](3)主總線606,被設置為與I/O設備連接;
[0112](4)備總線608,被設置為與I/O設備連接;
[0113]可選地,在本實施例中檢測主總線是否出現故障的判斷方式可以包括但不限于:通過處理器中的I/O連接控制電路(I/O link)通過接收的數據中的標識判斷主總線是否處于正常的運行狀態。
[0114]例如,結合圖3所示,假設當前主處理器CPU Module_l通過主總線SYS_NET1與主I/o設備正在進行正常的通信。由主處理器CPU Module_l中的I/O連接控制電路(I/O link)所接收的數據中的標識得出主總線SYS_NET1的通信出現故障時,則將主總線SYS_NETl切換至備總線SYS_NET2,使得切換前通過主總線SYS_NET1相互通信的主處理器CPUModule_l和I/O設備在切換后通過備總線SYS_NET2進行通信,這樣就保證了無I/O冗余的情況下也能保證系統的可靠運行。
[0115]通過本申請提供的實施例,通過本申請提供的實施例,通過判斷得出主處理器和/或主總線出現故障,控制上述主處理器切換至備處理器和/或控制上述主總線切換至備總線,克服了傳統技術所采用的冗余方式可靠性較低的問題,實現了提高可編程控制器PLC的可靠性的效果。
[0116]作為一種可選的方案,如圖7所示,在本實施例中的系統還包括:1/0設備,其中,I/O設備包括:
[0117](I)主I/O設備702,被設置為與主總線及備總線分別連接;和/或
[0118](2)備I/O設備704,被設置為與主總線及備總線分別連接,并與主I/O設備連接;
[0119]可選地,在本實施例中的主I/O設備與備I/O設備互為備份。
[0120]可選地,在本實施例中的主I/O設備和備I/O設備可以但不限于位于同一基板,其中,上述I/o設備主要是用來與現場進行交互,實現信號的輸入輸出。可選地,在本實施例中的主I/O設備可以包括但不限于A0、A1、D0、DI四種卡件,相應的,在本實施例中的備I/O設備可以包括但不限于A0’、Al’、DO’、DI’。可選地,在本實施例中主/備I/O設備可以但不限于為單獨的板卡,例如,Al板卡。
[0121]可選地,在本實施例中的主I/O設備和備I/O設備還可以包括用于傳輸主I/O設備的運行狀態的指示信號的通信接口。例如,如圖4所示,主I/O設備中包括Al板卡,DI板卡,上述板卡的通信接口分別為P1、P2,備I/O設備中包括Al’板卡,DI’板卡,上述板卡的通信接口分別為PI’、P2’。可選地,在本實施例中的I/O設備能夠通過LED指示燈顯示當前輸入輸出的信號狀態。
[0122]可選地,在本實施例中對主I/O設備是否出現故障的判斷方式包括但不限于:心跳檢測、狀態檢測。其中,檢測的方式可以包括但不限于以下方式:主I/o設備實時向備I/O設備發送用于指示主I/O設備的運行狀態的指示信號。
[0123]可選地,在本實施例中對主I/O設備的運行狀態的指示信號是否出現異常包括但不限于:未按時接收到用于指示主I/o設備的運行狀態的指示信號、指示信號指示出現異常,其中,指示信號出現的異常可以包括但不限于信號波形異常。
[0124]例如,如圖4所示,假設當前主處理器CPU Module_l通過主總線SYS_NET1與主I/O設備正在進行正常的通信,其中,將Al、DI卡作為主I/O設備,AI’、DI’作為Al、DI的備I/O設備。若判斷出主I/O設備(例如,Al板卡)出現故障(例如,備I/O設備(例如,Al’板卡)在預定的時間內沒有接收到用于指示主I/O設備(例如,Al板卡)的運行狀態的指示信號),則將主I/O設備切換至備I/O設備,使得切換前通過主總線SYS_NET1與主I/O設備通信的主處理器CPU Module_l在切換后通過主總線SYS_NET1與備I/O設備通信。
[0125]進一步說明,兩個I/O設備之間通過同一基板上的系統總線進行數據交互,根據各自采集的信號進行裁決,使其中一個I/o設備處于運行狀態(即主I/O設備),另一個I/O設備處于準備狀態(即備I/O設備);處于準備狀態的備I/O設備與系統中有效的I/O連接控制電路(I/o link)之間的總線是被鎖死的,即該路系統總線處于高阻態。
[0126]可選地,在本實施例中對I/O設備的檢測可以但不限于:周期性查詢。例如,I/O連接控制電路(I/o link)周期性(例如,周期T約為1.5ms)查詢可編程控制器PLC的主I/O設備運行狀態是否正常,并將狀態返回給CPU(例如,每IOOms返回給CPU處理器一次)。這樣在運行過程中CPU通過定期檢測I/O連接控制電路(I/O link)返回的主I/O設備的運行狀態,并且通過在系統中啟動一個定期的任務,定期對主I/O設備進行輪詢,以確定主I/O設備的運行狀態,進而確定主I/O設備是否在正常工作。
[0127]通過本申請提供的實施例,通過位于同一基板的備I/O設備判斷主I/O設備是否出現故障,則可在判斷出現故障后,直接控制主/備I/o設備的切換,克服了現有的系統級主/備切換的不方便性,實現了基于模塊的切換,達到了提高I/o設備主/備切換的靈活性以及可靠性的目的。
[0128]作為一種可選的方案,在本實施例中的主處理器602包括:
[0129](I)第一中央控制處理器,被設置為與第一 I/O連接控制電路連接;
[0130]可選地,在本實施例中的CPU可以但不限于執行以下至少一種操作:數據處理、數據運算、外設通信,I/o連接控制電路(I/O Link)可以但不限于選擇相應的總線與I/O設備進行數據通信。可選地,在本實施例中的CPU處理器具有自檢功能,能夠將系統運行狀態通過八段數碼管顯示。
[0131](2)第一 I/O連接控制電路,被設置為與主總線及備總線連接,用于控制選擇主總線或備總線與I/o設備進行通信。
[0132]可選地,在本實施例中檢測主總線是否出現故障的判斷方式可以包括但不限于:通過處理器中的I/O連接控制電路(I/O link)通過接收的數據中的標識判斷主總線是否處于正常的運行狀態。
[0133]可選地,在本實施例中,上述可編程控制器冗余控制系統中還可以但不限于包括通信模塊502,如圖5所示,該通信模塊502不僅可以作為處理器與總線(SYS_NET)的交互接口,同時也可以但不限于為處理器、I/O設備提供24V電源。可選地,在本實施例中,上述通信模塊502可以但不限于通過RJ45頭,與處理器中的I/O連接控制電路(I/O link)或者I/O設備進行通信。
[0134]通過本申請提供的實施例,通過處理器中的中央控制處理器以及I/O連接控制電路兩個結構組合,共同控制主處理器、以及主總線的切換,實現了靈活控制系統中模塊的主/備切換,同時也提高了系統的可靠性。
[0135]作為一種可選的方案,在本實施例中的備處理器604包括:
[0136](I)第二中央控制處理器,被設置為與第二 I/O連接控制電路連接;
[0137]可選地,在本實施例中的CPU可以但不限于執行以下至少一種操作:數據處理、數據運算、外設通信,I/o連接控制電路(I/O Link)可以但不限于選擇相應的總線與I/O設備進行數據通信。可選地,在本實施例中的CPU處理器具有自檢功能,能夠將系統運行狀態通過八段數碼管顯示。
[0138](2)第二 I/O連接控制電路,被設置為與主總線及備總線連接,用于選擇主總線或備總線與I/o設備進行通信。
[0139]可選地,在本實施例中檢測主總線是否出現故障的判斷方式可以包括但不限于:通過處理器中的I/O連接控制電路(I/O link)通過接收的數據中的標識判斷主總線是否處于正常的運行狀態。
[0140]可選地,在本實施例中,上述可編程控制器冗余控制系統中還可以但不限于包括通信模塊502,如圖5所示,該通信模塊502不僅可以作為處理器與總線(SYS_NET)的交互接口,同時也可以但不限于為處理器、I/O設備提供24V電源。可選地,在本實施例中,上述通信模塊502可以但不限于通過RJ45頭,與處理器中的I/O連接控制電路(I/O link)或者I/O設備進行通信。
[0141]通過本申請提供的實施例,通過處理器中的中央控制處理器以及I/O連接控制電路兩個結構組合,共同控制備處理器、以及備總線的切換,實現了靈活控制系統中模塊的主/備切換,同時也提高了系統的可靠性。[0142]作為一種可選的方案,在本實施例中的主處理器602中包括:
[0143](I)第一通信接口,被設置為與備處理器連接,用于向備處理器發送指示主處理器的運行狀態的指示信號;
[0144]可選地,在本實施例中備處理器中包括:
[0145](I)第二通信接口,被設置為與主處理器連接,用于接收指示主處理器的運行狀態的指示信號;
[0146](2)第一檢測裝置,被設置為與第二通信接口連接,用于檢測指示主處理器的運行狀態的指示信號是否出現異常。
[0147]可選地,在本實施例中的主處理器和備處理器可以包括但不限于:多個通信接口。例如,如圖1所示,主處理器CPU Module_l包括:第一通信接口 Tl,用于向備處理器CPUModule_2發送主處理器CPU Module_l的運行狀態的指示信號;備處理器CPU Module_2包括:第二通信接口 Tl’,用于接收主處理器CPU ModuleJ的運行狀態的指示信號。
[0148]可選地,在本實施例中備處理器檢測到的主處理器出現的故障包括以下至少之一:未在預定時間內接收到用于指示主處理器的運行狀態的指示信號、接收到的用于指示主處理器的運行狀態的指示信號指示異常。
[0149]可選地,在本實施例中對主處理器的運行狀態的指示信號是否出現異常包括但不限于:未按時接收到用于指示主處理器的運行狀態的指示信號、指示信號指示出現異常,其中,指示信號出現的異常可以包括但不限于信號波形異常。
[0150]例如,結合圖1所示,假設當前主處理器CPU Module_l通過主總線SYS_NET1與主I/o設備正在進行正常的通信。主處理器CPU Module_l通過第一通信接口 Tl實時向備處理器CPU Module_2發送用于指示主處理器CPU ModuleJ的運行狀態的指示信號,則備處理器CPU Module_2通過第二通信接口 Tl’檢測判斷在預定時間內是否聽到對方的“心跳”或接收到的“心跳”是否出現異常。
[0151]通過本申請提供的實施例,通過判斷得出主處理器出現故障,控制上述主處理器切換至備處理器,克服了傳統技術所采用的冗余方式可靠性較低的問題,實現了提高可編程控制器PLC的可靠性的效果。
[0152]作為一種可選的方案,在本實施例中的主I/O設備702包括:
[0153](I)第三通信接口,被設置為與備I/O設備連接,用于向備I/O設備發送指示主I/O設備的運行狀態的指示信號;
[0154]可選地,在本實施例中備I/O設備包括:
[0155](I)第四通信接口,被設置為與主I/O設備連接,用于接收指示主I/O設備的運行狀態的指示信號;
[0156](2)第二檢測裝置,被設置為與第四通信接口連接,用于檢測指示主I/O設備的運行狀態的指示信號是否出現異常。
[0157]可選地,在本實施例中的主I/O設備和備I/O設備可以但不限于位于同一基板,其中,上述I/o設備主要是用來與現場進行交互,實現信號的輸入輸出。可選地,在本實施例中的主I/O設備可以包括但不限于A0、A1、D0、DI四種卡件,相應的,在本實施例中的備I/O設備可以包括但不限于A0’、Al’、DO’、DI’。可選地,在本實施例中主/備I/O設備可以但不限于為單獨的板卡,例如,Al板卡。[0158]可選地,在本實施例中的主I/O設備和備I/O設備還可以包括用于傳輸主I/O設備的運行狀態的指示信號的通信接口。例如,如圖4所示,主I/O設備中包括Al板卡,DI板卡,上述板卡的通信接口分別為P1、P2,備I/O設備中包括Al’板卡,DI’板卡,上述板卡的通信接口分別為PI’、P2’。
[0159]可選地,在本實施例中對主I/O設備是否出現故障的判斷方式包括但不限于:心跳檢測、狀態檢測。其中,檢測的方式可以包括但不限于以下方式:主I/o設備實時向備I/O設備發送用于指示主I/O設備的運行狀態的指示信號。
[0160]可選地,在本實施例中對主I/O設備的運行狀態的指示信號是否出現異常包括但不限于:未按時接收到用于指示主I/o設備的運行狀態的指示信號、指示信號指示出現異常,其中,指示信號出現的異常可以包括但不限于信號波形異常。
[0161]例如,如圖4所示,假設當前主處理器CPU Module_l通過主總線SYS_NET1與主I/O設備正在進行正常的通信。主I/O設備(例如,Al板卡)通過第三通信接口(例如,Pl口)實時向備I/O設備(例如,Al’板卡)的第四通信接口(例如,Ρ1' 口)發送用于指示主I/O設備(例如,Al板卡)的運行狀態的指示信號,則備I/O設備通過第四通信接口 Ρ1'檢測判斷在預定時間內是否聽到對方的“心跳”或接收到的“心跳”是否出現異常。
[0162]作為一種可選的方案,該系統還包括:主I/O設備與備I/O設備位于同一基板。
[0163]可選地,在本實施例中主處理器CPU Module_l及備處理器CPU Module_2可以但不限于具備2個互為備份的兩個以太網接口,具體示例結合圖1所示,主處理器CPUModule_l中包括互為備份的兩個以太網接口 El和E2,備處理器CPU Module_2中包括互為備份的兩個以太網接口 Ε 1'和E2’,在上述各處理器的兩個以太網接口上設置不同網段的IP地址,通過在人機交互界面HMI上設置2個相應的IP地址,做到PLC系統與HMI的通信冗余。
[0164]例如,如圖2所示,假設當前主處理器CPU Module_l及備處理器CPU Module_2通過以太網與第三方設備(例如,人機交互界面HMI)通信。主處理器CPU ModuleJ與備處理器CPU Module_2各自的兩個以太網口分別設置為不同網段的2個IP地址,比如CPUModule_l 的 El 口設置為 192.168.1.101,E2 口設置為 10.10.1.18,CPU Module_2 的設置與前者相同。HMI具備2個網口,分別設為192.168.1.100和10.10.1.10。
[0165]可選地,在本實施例中人機交互界面HMI與上述系統通信有主/備兩個通信鏈路,例如,如圖2所示的HMI與交換機Switcnl和Switcn2之間分別通過鏈路a、鏈路d進行通信,兩條鏈路可以同時工作,通常以一條為主,另一條為輔,主鏈路故障時HMI將自動切換到另一條通信鏈路。
[0166]進一步說明,上述系統中控制器所控制的主處理器CPU ModuleJ與備處理器CPUModule_2的網口是否工作是通過自身判斷來實現的,當主處理器CPU Module_l為主工作時,其El 口,E2 口始終處于激活狀態,兩個端口均可以與HMI實現數據通信,備處理器CPUModule_2的E1’ 口,E2’ 口處于禁止狀態,并呈現為高阻態。
[0167]當主處理器CPU Module_l工作時,人機交互界面HMI與CPU A共有兩條通信鏈路a—b和d— f,兩條鏈路可以同時工作。假設當前a—b為主工作鏈路,則d— f鏈路則為備工作鏈路(但可以接收人機交互界面HMI下發的通信指令并回應);若通信鏈路a— b出現異常,人機交互界面HMI自動切換d — f通信鏈路來工作。主處理器CPU Module_l工作時,備處理器CPU Module_2的El’ 口,E2’處于禁止狀態,并呈現為高阻態。如果主處理器CPUModule_l出現故障,控制器會自動裁決切換到備處理器CPU Module_2繼續進行通信。
[0168]當備處理器CPU Module_2工作時,人機交互界面HMI與備處理器CPU Module_2共有兩條通信鏈路a— c和d— e,兩條鏈路可以同時工作。假設當前a— c為主工作鏈路,則d— e鏈路備工作鏈路(但可以接收人機交互界面HM下發的通信指令并回應);若通信鏈路a— c出現異常,人機交互界面HMI將自動切換d— e通信鏈路來工作。備處理器CPUModule_2工作時主處理器CPU Module_l的El 口,E2處于禁止狀態,并呈現為高阻態。
[0169]通過本申請提供的實施例,主/備處理器中還設置多個通信接口,可以通過控制一些通信接口的開啟或禁止,實現了節省IP資源的效果,擴大了冗余數量;還可通過一些通信接口實現對主處理器實時的狀態檢測,以使出現故障時,可以將主處理器及時切換至備處理器。
[0170]本發明提供了一種優選的實施例來進一步對本發明進行解釋,但是值得注意的是,該優選實施例只是為了更好的描述本發明,并不構成對本發明不當的限定。
[0171]從以上的描述中,可以看出,在本發明實施例中,通過將可編程控制器中的處理器、總線、I/O設備均設置主/備兩個設備,克服了現有技術中只針對特定的單獨的模塊或整個系統進行冗余設置所導致的可靠性較低的技術問題,使得整個系統在單獨的模塊出現故障,或者任意模塊組合出現故障時,均可實現在不影響其他類型的模塊前提下,進行無擾切換,達到了基于模塊靈活切換的目的,從而實現了提高系統可靠性的技術效果,進而解決了現有技術中所采用的冗余方式可靠性較低的技術問題。
[0172]以上所述僅為本發明的優選實施例而已,并不用于限制本發明,對于本領域的技術人員來說,本發明可以有各種更改和變化。凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。
【權利要求】
1.一種可編程控制器冗余控制方法,其特征在于,包括: 判斷主處理器和/或主總線是否出現故障,其中,所述主處理器對應有備處理器,所述主總線對應有備總線; 若所述主處理器出現故障,則將所述主處理器切換至所述備處理器,使得切換前通過所述主總線與所述主處理器通信的I/o設備在切換后通過所述主總線與所述備處理器通?目; 若所述主總線出現故障,則將所述主總線切換至所述備總線,使得切換前通過所述主總線相互通信的所述主處理器和所述I/o設備在切換后通過所述備總線進行通信; 若所述主處理器和所述主總線均出現故障,則將所述主處理器切換至所述備處理器,并將所述主總線切換至所述備總線,使得切換前通過所述主總線與所述主處理器通信的所述I/o設備在切換后通過所述備總線與所述備處理器通信。
2.根據權利要求1所述的方法,其特征在于,所述I/O設備包括主I/O設備和備I/O設備,其中,在判斷主處理器和/或主總線是否出現故障時,還包括: 判斷所述主I/o設備是否出現故障; 若所述主I/o設備出現故障,則將所述主I/O設備切換至所述備I/O設備,使得切換前通過所述主總線與所述主I/o設備通信的所述主處理器在切換后通過所述主總線與所述備I/o設備通信。
3.根據權利要求2所述的方法,其特征在于,在判斷所述主I/O設備是否出現故障之后,還包括: 若所述主處理器和所述主I/o設備出現故障,則將所述主處理器切換至所述備處理器,并將所述主I/o設備切換至所述備I/O設備,使得切換前用于使所述主處理器和所述主I/o設備進行通信的所述主總線在切換后使所述備處理器和所述備I/O設備進行通信; 若所述主總線和所述主I/o設備出現故障,則將所述主總線切換至所述備總線,將所述主I/o設備切換至所述備I/O設備,使得切換前通過所述主總線與所述主I/O設備通信的所述主處理器在切換后通過所述備總線與所述備I/o設備通信; 若所述主處理器、所述主總線和所述主I/o設備均出現故障,則將所述主處理器切換至所述備處理器,將所述主總線切換至所述備總線,將所述主I/o設備切換至所述備I/O設備,使得在切換后中斷所述主處理器通過所述主總線與所述主I/o設備的通信,并在切換后使得所述備處理器通過所述備總線與所述備I/o設備進行通信。
4.根據權利要求2或3所述的方法,其特征在于,所述判斷所述主I/O設備是否出現故障包括: 所述備I/o設備檢測用于指示所述主I/O設備的運行狀態的指示信號是否出現異常; 若檢測到所述指示信號出現異常,則控制所述主I/o設備切換至所述備I/O設備。
5.根據權利要求1至3中任一項所述的方法,其特征在于,將所述主總線切換至所述備總線包括: 判斷所述主處理器或所述備處理器所接收的數據中是包含所述主總線的標識還是所述備總線的標識; 若判斷出是包含所述備總線的標識,則將所述主總線切換至所述備總線。
6.根據權利要求1至3中任一項所述的方法,其特征在于,所述將所述主處理器切換至所述備處理器包括: 所述備處理器檢測用于指示所述主處理器的運行狀態的指示信號是否出現異常; 若檢測到所述指示信號出現異常,則控制所述主處理器切換至所述備處理器。
7.一種可編程控制器冗余控制系統,其特征在于,包括: 主處理器,被設置為與主總線及備總線分別連接; 備處理器,被設置為與所述主總線及所述備總線分別連接,并與所述主處理器連接; 主總線,被設置為與I/O設備連接; 備總線,被設置為與所述I/o設備連接; 其中,所述主處理器與所述備處理器互為備份,所述主總線與所述備總線互為備份。
8.根據權利要求7所述的系統,其特征在于,還包括:所述I/O設備,其中,所述I/O設備包括: 主I/o設備,被設置為與所述主總線及所述備總線分別連接;和/或 備I/o設備,被設置為與所述主總線及所述備總線分別連接,并與所述主I/O設備連 接; 其中,所述主I/o設備與所述備I/O設備互為備份。
9.根據權利要求7所述的系統,其特征在于, 所述主處理器包括: 第一中央控制處理器,被設置為與第一 I/o連接控制電路連接; 所述第一 I/o連接控制電路,被設置為與所述主總線及所述備總線連接,用于控制選擇所述主總線或所述備總線與所述I/o設備進行通信; 所述備處理器包括: 第二中央控制處理器,被設置為與第二 I/o連接控制電路連接; 所述第二 I/o連接控制電路,被設置為與所述主總線及所述備總線連接,用于控制選擇所述主總線或所述備總線與所述I/o設備進行通信。
10.根據權利要求7所述的系統,其特征在于, 所述主處理器中包括:第一通信接口,被設置為與所述備處理器連接,用于向所述備處理器發送指示所述主處理器的運行狀態的指示信號; 所述備處理器中包括:第二通信接口,被設置為與所述主處理器連接,用于接收指示所述主處理器的運行狀態的指示信號;第一檢測裝置,被設置為與所述第二通信接口連接,用于檢測所述指示所述主處理器的運行狀態的指示信號是否出現異常。
11.根據權利要求7至10中任一項所述的系統,其特征在于, 所述主I/o設備包括:第三通信接口,被設置為與所述備I/O設備連接,用于向所述備I/o設備發送指示所述主I/O設備的運行狀態的指示信號; 所述備I/o設備包括:第四通信接口,被設置為與所述主I/o設備連接,用于接收指示所述主I/o設備的運行狀態的指示信號;第二檢測裝置,被設置為與所述第四通信接口連接,用于檢測所述指示所述主I/o設備的運行狀態的指示信號是否出現異常。
12.根據權利要求7-10中任一項所述的系統,其特征在于,所述主I/O設備與所述備I/o設備位于同一基板。
【文檔編號】G05B9/03GK103941633SQ201410178314
【公開日】2014年7月23日 申請日期:2014年4月29日 優先權日:2014年4月29日
【發明者】徐仁佐, 闞偉 申請人:北京依雷特科技有限公司