亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

用于重新啟動的部件配置機制的制作方法

文檔序號:6596332閱讀:204來源:國知局
專利名稱:用于重新啟動的部件配置機制的制作方法
用于重新啟動的部件配置機制背景工廠自動化系統(tǒng)與通信網(wǎng)絡的結合越來越多。在網(wǎng)絡上實現(xiàn)控制系統(tǒng)以用于設備、流程等的遠程監(jiān)視和控制。包括可以關閉控制系統(tǒng)的主模式控制器的系統(tǒng)故障可以通過使在熱的/激活的備用模式容易使用的備份控制器替換故障的主模式控制器來避免。即使有系統(tǒng)冗余,迅速地修復任何系統(tǒng)故障以減少系統(tǒng)停機的可能性是重要的。在雙工系統(tǒng)配置或備份系統(tǒng)配置中已實現(xiàn)了諸如可編程邏輯控制器(PLC)的控制器,其中在所述系統(tǒng)配置中,系統(tǒng)的停機時間是不能容忍的。這樣的控制系統(tǒng)通過冗余提供高的可靠性。通常,雙工配置包括一對以熱的或激活的備用配置裝配的PLC,其中一個 PLC在主模式下操作,且另一個PLC在從或備用/備份模式運行。主控制器通過掃描用戶程序運行應用以控制并監(jiān)視遠程輸入/輸出(I/O)網(wǎng)絡。另一個(從)控制器作為激活的備用控制器。備用控制器不運行應用且不操作遠程I/O設備。備用控制器在每次掃描時由主控制器更新。如果主控制器操作失敗或從操作中移除,那么備用控制器準備承擔在一次掃描內(nèi)控制系統(tǒng)的控制。主和從控制器是可互換的,且在需要時可以交換或轉換。任一個控制器都可以位于主狀態(tài)。激活的備用配置要求非主控制器位于備用模式以確保系統(tǒng)的冗余??刂破骰ハ噙B續(xù)不斷地通信以確保控制系統(tǒng)的可操作性??刂破髦g的通信用于確定由于系統(tǒng)故障或通過操作員的選擇是否應該發(fā)起控制器的交換。即使使用主/從控制器配置,其中不工作的控制器可以從服務中移除,修復不工作的控制器以提供操作員通常期望的可靠性也是重要的。控制器通常包括許多電路組件, 例如中央處理器單元(CPU)模塊和與外部設備接口的通信模塊。為了修復不工作的控制器,檢測出的故障模塊通常由可操作的模塊替換。然而,控制器在特定的控制環(huán)境中起作用,因此,所插入的電路組件通常根據(jù)控制環(huán)境來配置。概述本發(fā)明的一個方面提供當重新啟動可編程邏輯控制器的通信模塊時,用于支持部件配置機制的裝置、計算機可讀介質以及方法。在通信模塊中的部件(應用)可自多個源進行配置,所述源包括PLC (Unity Pro)、閃存和基于web的配置源。配置機制避免當替換通信模塊時使用無效的配置數(shù)據(jù)。關于本發(fā)明的另一方面,可編程邏輯控制器(PLC)的電路模塊包括配置成存儲所存儲的配置信息的內(nèi)部存儲器、配置成從外部配置源獲得外部配置信息的通信接口、以及配置成確定配置場景并基于配置場景選擇配置源的處理器。配置源可以是內(nèi)部存儲器(例如閃存)或外部配置源。電路模塊可采取不同類型的模塊,其包括與以太網(wǎng)網(wǎng)絡進行連接的通信模塊。關于本發(fā)明的另一方面,通信模塊可支持多個部件。一些部件可與基于web的配置相關聯(lián),而其他部件可與基于CPU的配置相關聯(lián)。如果在通信模塊的閃存中的配置數(shù)據(jù)被確定為無效的,那么對于基于web配置的部件,通信模塊從基于web的配置源獲得配置數(shù)據(jù),對于基于CPU配置的部件,通信模塊從相關聯(lián)的CPU模塊獲得配置數(shù)據(jù)。
關于本發(fā)明的另一方面,通信模塊通過比較循環(huán)校驗和的值和配置時間的值,確定在其內(nèi)部存儲器中的配置數(shù)據(jù)的有效性。附圖的簡要描述通過考慮附圖并參照下述描述可以得到對本發(fā)明及其優(yōu)點的更完全的理解,其中相同的參考數(shù)字表示相同的特征,并且其中

圖1示出根據(jù)本發(fā)明的實施方式的控制系統(tǒng)。圖2示出根據(jù)本發(fā)明的實施方式的網(wǎng)絡控制系統(tǒng)的方框圖。圖3示出根據(jù)本發(fā)明的實施方式的可編程邏輯控制器的通信模塊和CPU模塊。圖4示出根據(jù)本發(fā)明的實施方式的通信模塊的方框圖。圖5示出根據(jù)本發(fā)明的實施方式的帶有不同配置場景的表格。圖6示出根據(jù)本發(fā)明的實施方式的選擇配置源的流程圖。圖7示出根據(jù)本發(fā)明的實施方式的配置web配置的部件的流程圖。圖8示出根據(jù)本發(fā)明的實施方式的配置CPU配置的部件的流程圖。詳細描述在下述多種實施方式的描述中,對于形成本文的一部分的附圖做出參考,并且其中通過示例示出本發(fā)明可被實踐的多種實施方式。要理解的是可利用其他實施方式且可作出結構和功能修改而不偏離本發(fā)明的范圍。在通信模塊中的一些固件部件通過可編程邏輯控制器(PLC)由例如Unity Pro的工程工具來配置,PLC存儲來自工程工具的配置數(shù)據(jù)。在通信模塊中的其他固件部件可通過以太網(wǎng)例如網(wǎng)頁和FTP客戶端由“TOB”來配置。所有的配置數(shù)據(jù),無論來自PLC或來自 “WEB”,均被存儲在通信模塊的本地閃存中。在通信模塊被復位的情況下,通常期望從本地閃存讀取配置數(shù)據(jù)而不是從PLC和 /或從“WEB”讀取,從而提高系統(tǒng)的啟動性能。在通信模塊被帶有用于另一控制系統(tǒng)而不是當前控制系統(tǒng)的正確的配置數(shù)據(jù)的已用模塊替換的情況下,通信模塊不應使用在其本地閃存中的配置數(shù)據(jù)來配置其部件。需要一種機制來確保通信模塊在以上兩種情況下被正確配置。圖1示出根據(jù)本發(fā)明的實施方式的控制系統(tǒng)。兩個相同配置的可編程邏輯控制器 (PLC) 101和103經(jīng)由位于每個可編程邏輯控制器中的備用選項處理器通過光纖鏈路157彼此通信。光纖鏈路157可支持不同的協(xié)議中的一個,包括以太網(wǎng)和在OSI模型的層2的高級數(shù)據(jù)鏈路控制(HDLC)。可編程邏輯控制器中的一個通常作為主控制器,而另一個可編程邏輯控制器處于備用模式(對應于從控制器)。備用控制器能夠控制遠程I/O鏈路159和 161,遠程I/O鏈路159和161與遠程I/O設備105和107通信。PLC 101和103通常包括許多插入底板框架中的電路模塊(電路組件)(例如,電路模塊113和115)。如果PLC 101和103不工作,那么用戶可用好的電路模塊替換確定有故障的電路模塊,該好的電路模塊可以是新的或舊的備用品。如果電路模塊是舊的備用品, 其通常在先已經(jīng)為可與不同的控制環(huán)境相關聯(lián)的不同的PLC進行了配置。作為一個實例, 用戶可以確定通信模塊是壞的,并用來自離線的PLC的另一通信模塊替換。用戶從計算機109和111通過鏈路151、153和155與可編程邏輯控制器101和 103進行通信并控制可編程邏輯控制器101和103。關于一實施方式,鏈路151、153和155依照以太網(wǎng)網(wǎng)絡上的傳輸控制協(xié)議/互聯(lián)網(wǎng)協(xié)議(TCP/IP)操作。圖2示出根據(jù)本發(fā)明的實施方式的網(wǎng)絡控制系統(tǒng)的方框圖。例如,網(wǎng)絡控制系統(tǒng)由可編程邏輯控制器(PLC或CPU模塊20 、通信模塊201、web瀏覽器203、I/O設備 204-206以及用于配置和診斷的工程工具(未示出)組成。通信模塊201可包含許多固件部件(應用,例如部件207-210),其中一些部件由基于web的配置源(“TOB”)來配置(例如部件207和208),并且一些部件由CPU模塊202通常結合配置工具來配置(例如部件209 和210)。當認為通信模塊201損壞了時,用戶可以用另一通信模塊來替換它,另一通信模塊可包含來自WEB的配置數(shù)據(jù)但配置數(shù)據(jù)用于不同的控制系統(tǒng)。這可能導致用其他系統(tǒng)的配置數(shù)據(jù)來配置該系統(tǒng)的問題?;趙eb配置的部件的例子包括IO掃描器、全局數(shù)據(jù)部件和開關部件。基于CPU配置的部件的例子包括DHCP服務器和SNMP代理部件。對于一些實施方式,當通信模塊201確定配置數(shù)據(jù)必須從WEB獲得時,通信模塊201被動地等待配置數(shù)據(jù)并且用戶輸入配置數(shù)據(jù)。數(shù)據(jù)通過web瀏覽器或FTP客戶端被發(fā)送到通信模塊201。對于其他的實施方式,模塊201向遠程服務器設備發(fā)出下載配置的請求,在該情況下,基于web 的配置源是用于基于web的部件的當前數(shù)據(jù)的儲存庫,并通常位于互聯(lián)網(wǎng)或公司內(nèi)部網(wǎng)絡的安全服務器上。圖3示出根據(jù)本發(fā)明的實施方式的可編程邏輯控制器的通信模塊201和CPU模塊 202。CPU模塊202可支持不同類型的通信模塊,其包括通過電纜159和161將PLC接口到遠程I/O設備105和107的網(wǎng)絡選項以太網(wǎng)(NOE)模塊。通信模塊201通常支持多個不同的部件(應用)。如果通信模塊201需要重新配置(例如,在重新啟動期間),模塊201使用來自閃存304的配置數(shù)據(jù),如果模塊201確定該數(shù)據(jù)對于操作環(huán)境是正確的。(閃存是可以被電擦除并重新編程的非易失性計算機存儲器。)當重新配置(重新啟動)通信模塊201時有幾個考慮問題。例如,包括I/O掃描器配置、全局數(shù)據(jù)、簡單網(wǎng)絡管理協(xié)議(SNMP)和動態(tài)主機配置協(xié)議(DHCP)的部件可以被配置并更新。對于傳統(tǒng)的系統(tǒng),如果用閃存中的配置數(shù)據(jù)來配置部件,那么用無效數(shù)據(jù)來配置部件是可能的,從而導致系統(tǒng)崩潰。這可能在將配置數(shù)據(jù)從CPU模塊或從基于web的配置源(未示出)寫入/更新至閃存期間、在斷電之后由于上電,模塊重新啟動時發(fā)生。同樣地,對于傳統(tǒng)的系統(tǒng),如果部件用閃存中的配置數(shù)據(jù)來配置,用與不同模塊或不同系統(tǒng)相關聯(lián)的配置數(shù)據(jù)來配置部件也是可能的,從而導致系統(tǒng)崩潰。當通信模塊故障并用具有用于不同的模塊或系統(tǒng)的閃存中的配置數(shù)據(jù)的其他模塊來替換時,錯誤的操作可能發(fā)生。例如,NOE模塊可用用于掃描不同的I/O設備的設備掃描表格來配置。如果NOE模塊從不同的插槽取出,那么模塊可為不同的機架配置從而將不具有存儲在模塊的閃存中的正確的I/O掃描表格。當啟動時,NOE模塊因此將使用用于不同的機架的現(xiàn)有的IO掃描表格來配置并起動IO掃描器,從而導致系統(tǒng)100崩潰。為了避免傳統(tǒng)的系統(tǒng)中的這種情況,用戶可以在每次NOE模塊復位或CPU模塊復位時通過“TOB”重新配置I/O掃描器。然而,該動作需要用戶花費時間和努力。同樣地,對于傳統(tǒng)的系統(tǒng),如果僅CPU模塊被替換,通信模塊不能用閃存中的配置數(shù)據(jù)來配置其自身或某些部件,而代替地指示其正等待來自網(wǎng)絡源的配置數(shù)據(jù)。這種情況因為模塊的啟動固件通常不能區(qū)分新的CPU模塊+舊的通信模塊、舊的CPU模塊+新的通信模塊及與傳統(tǒng)的系統(tǒng)相結合的新的CPU模塊+新的通信模塊的組合而發(fā)生。本發(fā)明的實施方式支持在混合來自TOB和PC工具的部件配置并使用閃存配置數(shù)據(jù)備份的情況下通信模塊201啟動期間的部件配置機制。該配置機制通常避免由于在更新閃存并替換通信模塊期間斷電使用來自閃存304的無效的配置數(shù)據(jù)。該機制被用于不同的通信模塊產(chǎn)品,例如,NOE (網(wǎng)絡選項以太網(wǎng))、ETY、NOC(網(wǎng)絡選項CIP)及ETC。此外,除通信模塊之外,本發(fā)明的實施方式支持控制系統(tǒng)100中的其他類型的電路模塊,例如,包含用于其他設備的配置數(shù)據(jù)和/或設備參數(shù)的任何模塊。系統(tǒng)100通常包括CPU (控制器)模塊202、通信模塊201及許多其他設備。CPU模塊202的配置可通過配置工具303(在PC,例如計算機109或111中執(zhí)行的Unity Pro)進行。一旦完成配置CPU模塊202,用戶通常斷開配置工具303 (Unity 與CPU模塊202 的連接。正如由通信模塊201所支持的,一些部件通過CPU模塊202配置,而另一些部件通過基于web的配置源配置。關于本發(fā)明的一個方面,當將配置數(shù)據(jù)寫入閃存期間通信模塊201在斷電發(fā)生后就重啟(上電)時,部件配置機制通常避免用無效的配置數(shù)據(jù)來配置部件的配置。該功能是可選擇的。如果用戶希望較高的系統(tǒng)性能,用戶可以選擇不使用該特征。部件配置機制通常避免當新的模塊啟動時用與不同的模塊或不同的系統(tǒng)相關聯(lián)的不適當?shù)默F(xiàn)有的配置數(shù)據(jù)配置部件的配置。啟動固件可以確定重新啟動是由于現(xiàn)有的通信模塊的復位或是由于新替換的通信模塊的首次上電。為了減少啟動時間并實現(xiàn)實時自動控制,通信模塊201使用存儲在閃存304中的配置數(shù)據(jù)316、317和318c的本地副本以配置其部件。因此,在重新啟動期間通信模塊的部件的配置不僅要考慮啟動場景(情況)(如圖5所示)還要考慮在本地閃存304中的配置數(shù)據(jù)的有效性。關于一些實施方式,確定啟動場景和配置數(shù)據(jù)的本地副本的有效性,其中配置信息僅在CPU模塊202和通信模塊201中。可以替換任一個或兩個模塊,其導致備份配置信息的損失。本發(fā)明的實施方式解決在不同的啟動條件(配置場景)下的配置不確定性。關于本發(fā)明的實施方式,Unity Pro配置工具303提供標記為“CPU被替換并且第一次配置”307和“Ν0Ε被替換并且第一次配置”308的復選框。當用戶用另一個CPU模塊替換有故障的CPU模塊并且第一次配置CPU模塊時,用戶選中“CPU被替換并且第一次配置” 復選框307。當用戶用另一個NOE模塊替換有故障的NOE模塊并且第一次配置NOE模塊時, 用戶選中“Ν0Ε被替換并且第一次配置”復選框308。對于每個替換模塊,僅當?shù)谝淮芜M行配置時選中對應的復選框。每次用戶建立配置數(shù)據(jù)時,Unity Pro配置工具303彈出一個彈出窗口以提醒用戶正確地設置復選框307和308。Unity Pro配置工具303下載配置數(shù)據(jù)到CPU模塊202。因此,CPU模塊202獲得 CPU_Config_CRC 309a,309b, CPU_Config_Time 310a、310b 以及復選框值 CPU_new 312a、 312b和N0E_new 311a、311b。配置數(shù)據(jù)被存儲在CPU閃存305和系統(tǒng)RAM 306中,用于CPU 模塊202的隨后的訪問。在閃存305和RAM 306中的配置值應該是一致的。因此,每次CPU 模塊202重新啟動,在RAM 306中的這些值都根據(jù)閃存305來更新;每次CPU模塊202接收來自Unity Pro配置工具303的新的配置數(shù)據(jù),這些配置值都被寫入閃存305中。每當從“TOB”配置/更新配置數(shù)據(jù)316和317時,計算用于每個web配置的部件的配置數(shù)據(jù)316和317的循環(huán)冗余碼(CRC)。(在圖2和3中示出的示例性實施方式描述了部件A和部件B。)對應的CRC值和模塊配置時間被保存在閃存304(通信模塊201的313c、 314c和315c)、閃存305與系統(tǒng)配置表格306中。每當配置發(fā)生時,不管它是來自CPU模塊 202或是來自TOB,模塊配置時間(N0E_Config_Time 315a,315b,315c)被更新,并且其應該總是比來自 Unity Pro 配置工具 303 的 CPU_Conf ig_Time (310a、310b、310c)大。在配置時,通信模塊201從CPU模塊202的系統(tǒng)RAM 306讀取CPU_Config_CRC 309b、CPU_Config_Time 310b、CPU_new 312b 以及 N0E_new 311b。模塊 201 將它們保存在本地閃存304中并讀取每個部件CRC(313c、3Hc)到CPU模塊202 (對應于部件ACRC 313b 和部件 B CRC314b)。在通信模塊(N0E)201 讀取 CPU_new 312b、3Ua*N0E_new 311a, 311b 之后,CPU模塊202將它們設置為“0”以指示CPU模塊202和NOE模塊201 二者都不是新的。關于一些實施方式,如果CPU模塊不能設置CPU_new 312b和N0E_new 311b,那么通信模塊201設置這些值。CPU模塊202和NOE模塊201通過底板總線319連接到彼此并互相通信。配置工具303在PC中運行并通過在PLC板上的Modbus plus端口或USB端口直接地連接到PLC或通過在NOE模塊201板上的以太網(wǎng)端口間接地連接到PLC。在前兩種情況中,配置工具303 直接地配置PLC而不論NOE模塊201是否運行。在第二種情況中,配置工具303通過NOE 模塊板201配置PLC,其應具有有效的配置并正在運行。最后一種情況主要用于當系統(tǒng)100 已經(jīng)在運行時改變配置。當?shù)谝淮闻渲肞LC(新的或另一系統(tǒng)中的已使用過的一個)到系統(tǒng)100中時,用戶應該首先重新配置PLC并且系統(tǒng)100應重新啟動。NOE模塊201的配置取決于CPU模塊202,CPU模塊202應正在運行并具有用于NOE 模塊201的有效的配置數(shù)據(jù)。NOE模塊201從CPU模塊202讀取配置信息,以使NOE模塊 201知道哪個部件是由CPU模塊202來配置的以及哪個部件是由TOB (未示出)來配置的。Unity Pro配置工具303支持分別標記為“CPU被替換并且第一次配置”和“Ν0Ε 被替換并且第一次配置”的復選框307、308。當用戶用另一 CPU模塊替換有故障的CPU模塊并且第一次配置該CPU模塊時,用戶選中“CPU被替換并且第一次配置”復選框307。當用戶用另一 NOE模塊替換有故障的NOE模塊并且第一次配置該NOE模塊時,用戶選中“Ν0Ε 被替換并且第一次配置”復選框308。對于每個替換模塊,當?shù)谝淮芜M行配置時僅需要選中一次對應的復選框。每次當用戶建立配置數(shù)據(jù)時,Unity Pro配置工具303彈出一個彈出窗口以提醒用戶正確設置復選框307和308。CPU_Config_CRC (309a、309b)是 CPU 配置數(shù)據(jù)的 CRC,并且 CPU_Config_ Time(310a、310b)是CPU配置數(shù)據(jù)的建立時間。當Unity Pro配置工具303下載配置數(shù)據(jù)到CPU模塊202時,在配置期間它還將這兩個變量加載到CPU模塊202。同樣地,Unity Pro 配置工具303加載復選框值CPU_new 311a、311b和N0E_new 312a、312b到CPU模塊。這四個值被存儲在CPU閃存305和系統(tǒng)RAM 306中的模塊的配置區(qū)域中,用于CPU模塊202訪問。每次CPU重新啟動或從Unity Pro配置工具303進行新的配置時,這些值在閃存305 和系統(tǒng)RAM 306中應該是一致的。在系統(tǒng)RAM306中的這四個配置值通常從閃存305更新。通信模塊201存儲配置數(shù)據(jù)A316 (對應于web配置的部件Α)、配置數(shù)據(jù)B 317 (對應于web配置的部件B)以及Copy_CPU_Config_Data 318c (對應于CPU配置的部件209和 210,如圖2所示)。Copy_CPU_Config_Data 318c是來自CPU的配置數(shù)據(jù)的本地副本(對應于配置數(shù)據(jù)318a、318b)。這些配置數(shù)據(jù)最初被存儲在CPU模塊202中并由NOE模塊201讀取,NOE模塊201保存配置數(shù)據(jù)的副本。關于隨后的重新啟動,如果本地副本是有效的且沒有被破壞,NOE模塊201使用本地副本來配置CPU配置的部件。圖4顯示根據(jù)本發(fā)明的實施方式的通信模塊201的方框圖。處理器402可執(zhí)行來自計算機可讀介質如存儲器406的計算機可執(zhí)行指令。計算機存儲介質可包括以任何方法或技術實現(xiàn)的用于存儲信息諸如計算機可讀指令、數(shù)據(jù)結構、程序模塊或其他數(shù)據(jù)的易失性和非易失性、可移除和不可移除的介質。計算機存儲介質包括但不限于,隨機存取存儲器(RAM)、只讀存儲器(ROM)、電可擦除可編程只讀存儲器(EEPROM)、閃存或其他存儲技術、 CD-ROM、數(shù)字多功能光盤(DVD)或其他光盤存儲、磁帶盒、磁帶、磁盤存儲或其它磁性存儲設備、或任何其他可被用于存儲期望的信息并可由處理器402訪問的介質。通信模塊201通常執(zhí)行多個對應于部件的功能。例如,通信模塊201通過I/O接口 407掃描并控制遠程設備105和107,并且因此將表格保存在閃存304中(例如,圖3中示出的配置數(shù)據(jù)B 317)。當處理器402確定在閃存304中的配置數(shù)據(jù)有效時,處理器402從閃存304 (也在圖3中示出)獲得配置數(shù)據(jù)用于被支持的部件。然而,處理器402通過網(wǎng)絡接口 404從基于web的工具401獲得配置數(shù)據(jù)用于web可配置的部件,并且通過PLC接口 405從CPU模塊202獲得配置數(shù)據(jù)用于CPU可配置的部件。圖5示出根據(jù)本發(fā)明的實施方式的具有不同配置場景的表格500。關于啟動場景 501 (情況1),控制系統(tǒng)100 (CPU、通信模塊以及設備)正在運行并且沒有新的配置數(shù)據(jù)來自 Unity Pro配置工具303。相同的通信模塊在從軟件或硬件錯誤自動重新啟動恢復,在由用戶執(zhí)行的手動重新啟動,在由遠程命令強制的自動重新啟動,及在由開發(fā)者或測試者為了開發(fā)、測試、調試、檢驗及驗證而執(zhí)行的手動重新啟動等情況下被重新啟動。關于啟動場景502(情況2),控制系統(tǒng)100正在運行并且用戶通過Unity Pro配置工具303改變系統(tǒng)的配置。沒有來自CPU、通信模塊和設備的重新啟動。關于啟動場景503(情況3),控制系統(tǒng)100停止并且然后用戶給整個系統(tǒng)上電。沒有新的配置。關于啟動場景504(情況4),控制系統(tǒng)100正在運行并且沒有新的配置數(shù)據(jù)來自 Unity Pro配置工具303。隨后,通信模塊出現(xiàn)故障,并且用戶用另一通信模塊替換它,其自動重新啟動。替換通信模塊可以是全新的或已使用過的一個。如果它是已使用過的模塊, 它可能包含用于另一控制系統(tǒng)而不是該控制系統(tǒng)的一些web配置的部件的web配置的配置數(shù)據(jù)。關于本發(fā)明的一個方面,先前的配置數(shù)據(jù)(不是用于這個系統(tǒng)的)不用來配置通信模塊的相關聯(lián)的部件。關于啟動場景505 (情況幻,控制系統(tǒng)100停止。用戶用另一個通信模塊替換該通信模塊,并且然后重新啟動整個系統(tǒng)。這種情況下,通信模塊可包含用于另一控制系統(tǒng)而不是該控制系統(tǒng)的相關聯(lián)的web配置的部件的web配置的配置數(shù)據(jù)。通信模塊不應用在先的配置數(shù)據(jù)來配置,而代替地應該等待來自WEB的配置數(shù)據(jù)。關于啟動場景506(情況6),控制系統(tǒng)100停止。用戶用一個新的CPU模塊替換該CPU模塊,并且然后重新啟動并配置系統(tǒng)100。這種情況下,相同的通信模塊在其閃存中仍包含有效的Web配置數(shù)據(jù),并且應用有效的配置數(shù)據(jù)來配置,而不等待來自WEB的配置數(shù)據(jù)。
關于啟動場景507 (情況7),控制系統(tǒng)100停止。用戶用新的CPU模塊和通信模塊來替換該CPU模塊和通信模塊,并且然后重新啟動并配置整個系統(tǒng)。這種情況下,通信模塊可包含用于其他控制系統(tǒng)而不是這個控制系統(tǒng)的相關聯(lián)的web配置的部件的web配置的配置數(shù)據(jù)。通信模塊不應使用在先的配置數(shù)據(jù)進行配置,而代替地應該等待來自WEB的配置數(shù)據(jù)。圖6示出根據(jù)本發(fā)明的實施方式的用于選擇配置源的流程圖600。關于本發(fā)明的實施方式,過程600由如圖4中所示的處理器402來配置。當配置通信模塊201所支持的部件時,流程圖600對應于下面的偽代碼。流程圖600處理以下的配置數(shù)據(jù)CPU_Config_CRC (對應于 309a、309b、309c)從 Unity Pro配置工具303下載的配置數(shù)據(jù)的CRC。CPU_config_time (對應于 310a、310b、310c) unity 從 UnityPro配置工具303下載配置數(shù)據(jù)到CPU的時間。CPU_new (對應于 3Ua、3l2b)對應于復選框 “CPU被替換并且第一次配置” 307的值。N0E_new (對應于 311a、311b)對應于復選框 “N0E被替換并且第一次配置” 308的值。N0E_Config_Time (對應于 315a、315b、315c)在配置中 NOE改變的時間。CRC (對應于 313a、313b、313c 以及 314a、314b、314c)用于每個web配置的部件的CRC。Copy_CPU_Config Data (對應于 318c)來自 CPU 模塊 202 的配置數(shù)據(jù)的本地副本。Configuration data A (對應于316)來自TOB的用于部件A的配置數(shù)據(jù)的本地副本。在步驟601,過程600開始配置過程以配置通信模塊202的部件。雖然本發(fā)明的 實施方式可以支持其他類型的通信模塊,但模塊202表示為N0E。通信模塊202通常從系 統(tǒng) RAM 306 讀取 CPU_Config_CRC 309、CPU_config_ime 310、CPU_new 312、N0E_new 311、 N0E_Config_Time 315以及用于每個web配置的部件的CRC(例如313和314)。同樣地,在 通信模塊202讀取它們之后,如果CPU模塊202沒有設置的話,步驟601設置CPU模塊202 中的CPU_new 312和N0E_new 311為“0”。這使得當有新的配置信息而當通信模塊201和 /或CPU模塊202重新啟動吋,通信模塊202便于獲得正確的配置信息。下面列出的偽代碼表示流程圖600中的對應步驟以及圖5中所示的對應的配置場景(情況)。步驟603 If(" N0E_new" )/*必定有來自Unity Pro配置工具的新的配置*/{用于所有web配置的部件的每一個,步驟605
If (在CPU模塊202中的每個部件CRC ==在NOE模塊201 中的每個部件CRC) &&
if (在CPU模塊中的NOE_Config_Time ==在NOE模塊中的
NOEConfigTime) {
/*這是情況2, Unity Pro配置工具中的復選框“NOE模塊
被替換并且第一次配置”被用戶錯誤地選中。*/步驟607(情況 2)
Configure—WEB—Component—from—Flash (); /* 功能
定義如下*/
}
else {
/*現(xiàn)在如果用戶錯誤地選中在Unity Pro中的復選框 "NOE模塊被替換并且第一次配置”,那么在這里區(qū)分情況6和情況 是不可能的。在Unity Pro中的復選框“NOE 模塊被替換并且第一次配置”的設計作用正是在于區(qū)分情
況6和情況7。*/步驟609 (情況6和7)
不用閃存中的數(shù)椐而用來自WEB的數(shù)椐配置部件;
}
/*不管其他情況如何,模塊必須讀取在新的配置情形下(要從CPU
配置的)用于那些部件的配置數(shù)椐。*/步驟627 從CPU讀取配置數(shù)椐;
更新本地閃存中的Copy_CPU_Config_Data;
配置(要從CPU配置的)那些部件;
}步驟611:else If(" CPU_new" )/*N0E_new = 0 以及來自 Unity 的新的配置 */{用于所有web配置的部件的每一個,步驟613:
If (在CPU中的每個部件CRC ==在NOE中的每個部件CRC)
&&
if (在 CPU 中的 NOE Config Time ==在 NOE 中的
NOEConfigTime) {
/*這是情況2,在Unity Pro中的復選框“CPU被替換并
且第一次配置”被用戶錯誤地選中。*/步驟607 Configure_WEB_Componenent_from_Flash();}步驟615:
else if (在 CPU 中的 CPU Config Time <=在 NOE 中的
CPU—Config—Time)) {
/*N0E必定是新的,并且用戶忘記選中在Unity Pro中的
復選框“N0E被替換并且第一次配置”。情況7*/步驟609(情況6和7)不用閃存中的數(shù)椐而用來自WEB的數(shù)椐配置部件;
/*這避免NOE模塊201用對應于一個不同的模塊或系統(tǒng)的不適合的配置數(shù)椐來配置。*/
else
/*現(xiàn)在在情況7,如果用戶忘記選中Unity Pro中的復選框“N0E被替換并且第一次配置”,沒有正確的 NOE new這里不可能區(qū)分情況6和情況7。如果存在用于web配置的部件的現(xiàn)有的配置數(shù)椐,將會出現(xiàn)問題。
這里的代碼基于NOE-new的值。*/步驟607(情況6和7)
Configure—WEB—Component—from—FlashQ;
}
/*不管其他情況如何,模塊必須讀取在新的配置情形下(要從CPU
配置的)用于那些部件的配置數(shù)椐。*/步驟627:
從CPU讀取配置數(shù)椐;
更新本地閃存中的Copy_CPU_Config_Data;
配置(要從CPU配置的)那些部件;
else /* CPU new = O && NOE new = O */
/*情況1、情況2、情況3、情況4以及情況5 */
用于所有web配置的部件的每一個,步驟617(情況 1、2、3、4 以及 5)If (在CPU中的每個部件CRC ==在NOE中的每個部件CRC)
&&
If (在 CPU 中的"NOE Config Time"==在 NOE 中的"NOE Config
Time")
{
/*這必定是情況1或情況2或情況3 */步驟621:
if ((在 CPU 中的"CPU Config CRC"==在 NOE 中的"CPU Config CRC") &&
(在 CPU 中的"CPU Config Time"==在 NOE 中的"CPU
Config Time"))
{步驟619和623(情況1和3)
/*這必定是情況1或情況3 */
Configure—WEB—Component—from—Flash ();
Configure—CPU—Component—from—Flash (); /*功能定義
如下*/
else
/*這是情況2 */步驟619 和 627(情況 2)Configure—WEB—Component—from—FlashQ; 從CPU讀取配置數(shù)椐; 更新本地閃存中的Copy_CPU_Config_Data; 配置(要從CPU配置的)那些部件;
else /*必定是新的CPU、或新的NOE、或兩個都是新的*/ {
If ( ! Exit Dim flag) {
/*當UnityPro重新配置CPU時,設置Exit_Dim_fkg。因為fkg沒有被設置,所以不存在CPU重新啟動,并且沒有來自unity的新的配置。因此,必定是NOE替換,圖5
中的情況4 */步驟619 和 627 (情況 4)
從CPU讀取配置數(shù)椐;
更新本地閃存中的Copy_CPU_Config_Data;
配置(要從CPU配置的)那些部件;
不用閃存中的數(shù)椐而用來自WEB的數(shù)椐配置(要從 WEB配置的)那些部件;
}
else {
/* CPU重新啟動或來自unity的新的配置*/
/*情況5 */步驟 619 和 627 (情況 4)
從CPU讀取配置數(shù)椐;
更新本地閃存中的Copy_CPU_Config_Data;
配置(要從CPU配置的)那些部件;
不用閃存中的數(shù)椐而用來自WEB的數(shù)椐配置(要從 WEB配置的)那些部件;
清除 Exit Dim flag當過程600完成了配置時,通信模塊201在步驟625開始以操作模式工作。當過程600確定需要來自TOB的配置數(shù)據(jù)以便配置web可配置的部件(對應于步驟609)時,過程600可通知用戶從基于web的配置源下載數(shù)據(jù)。在本發(fā)明的一些實施方式中,配置過程可自動連接到基于web的配置源并配置對應的部件。圖7示出根據(jù)本發(fā)明的實施方式的用于配置web配置的部件的流程圖607 (對應于圖6中所示的步驟607)。如步驟701所示,用戶可選擇不計算每個部件的配置數(shù)據(jù)(例如,圖3中示出的配置數(shù)據(jù)316和317)的校驗和,并且可以選擇不比較計算出的CRC與存儲的CRC(例如,存儲在閃存304中的313c和314c)。流程圖607的對應的步驟以下面的偽代碼示出。/*該功能根據(jù)閃存中的配置數(shù)據(jù)來配置web配置的部件*/Configure_WEB_Component_from_Flash(){步驟701:
If (compute checksum selected) /*用于啟動時間因素的可選擇的
特征*/ {
用于要從WEB配置的每個部件,步驟703 和 705計算在本地閃存中的其配置數(shù)椐的CRC;
比較CRC與存儲在閃存中的CRC的Component—Config—CRC;
If ( equal)
{步驟709:
用在本地閃存中的web可配置的部件的對應的配置數(shù)椐配置web可
配置的部件; }
else /*不相等*/步驟707:
不用閃存中的數(shù)椐而用來自WEB的數(shù)椐配置web可配置的部件; /*避免使用由于更新閃存期間斷電產(chǎn)生的無效數(shù)椐*/
else /* 未選擇 compute—checksum—selected */ {步驟709:
用在本地閃存中的web可配置的部件的對應的配置數(shù)椐配置web 可配置的部件;圖8示出根據(jù)本發(fā)明的實施方式的用于配置CPU配置的部件的流程圖623 (對應于步驟623)。如步驟801所示,用戶可選擇不計算CPU可配置的部件的配置數(shù)據(jù)(例如,圖 3中示出的配置數(shù)據(jù)318)的校驗和,并且可以不比較計算出的CRC與存儲的CRC(例如,存儲在閃存304中的309c)。流程圖623的對應的步驟以下面的偽代碼示出。/*該功能根據(jù)閃存中的配置數(shù)據(jù)配置CPU配置的部件*/
Configure_CPU_Component_from_Flash(){步驟801:If (compute_checksum_selected) 用于啟動時間因素的可選擇的特征*/{步驟803 和 805
計算在本地閃存中的Copy—CPU—Config_Data的CRC; 比較 CRC 與 CPU—Config—CRC;
If ( equal)
{步驟815:
用在本地閃存中的Copy—CPU—Config—Data的數(shù)椐配置(要從
CPU配置的)那些部件; }
else /*不相等*/ {步驟807:從CPU讀取配置數(shù)據(jù);步驟809、811 和 813
更新本地閃存中的Copy_CPU_Config_Data;
配置(要從CPU配置的)那些部件;
/*避免使用由于更新閃存期間斷電產(chǎn)生的無效數(shù)椐*/
}
else /* 未選擇 compute—checksum—selected */ {步驟815:用在本地閃存中的Copy_CPU_Config_Data的數(shù)椐配置(要從CPU
配置的)那些部件; }
}正如可以被本領域技術人員意識到的,帶有包含用于控制計算機系統(tǒng)的指令的相關聯(lián)的計算機可讀介質的計算機系統(tǒng)可以用于實現(xiàn)本文所公開的示例性實施方式。計算機系統(tǒng)可包括至少一個計算機,諸如微處理器、數(shù)字信號處理器以及相關聯(lián)的外圍電子電路。雖然關于包括實現(xiàn)本發(fā)明的當前優(yōu)選方式的具體實施例描述了本發(fā)明,但本領域那些技術人員將意識到存在許多上述描述的系統(tǒng)和技術的變化和置換,其都落入如所附的權利要求提出的本發(fā)明的精神和范圍內(nèi)。
權利要求
1.一種可編程邏輯控制器(PLC)的電路模塊,包括 內(nèi)部存儲器,其配置成存儲所存儲的配置信息;通信接口,其配置成從外部配置源獲得外部配置信息;以及處理器,其配置成確定配置場景并基于所述配置場景選擇配置源,其中所述配置源是所述內(nèi)部存儲器或所述外部配置源。
2.如權利要求1所述的電路模塊,其中所述內(nèi)部存儲器包括閃存。
3.如權利要求1所述的電路模塊,其中所述電路模塊包括通信模塊。
4.如權利要求1所述的電路模塊,其中所述通信接口包括配置成通過通信網(wǎng)絡進行通信的網(wǎng)絡接口。
5.如權利要求4所述的電路模塊,其中所述通信接口包括配置成與所述PLC的控制器模塊進行通信的PLC接口。
6.如權利要求5所述的電路模塊,其中所述處理器支持與基于web的配置相關聯(lián)的第一部件。
7.如權利要求6所述的電路模塊,其中所述控制器模塊包括中央處理單元(CPU),并且其中所述處理器支持與基于CPU的配置相關聯(lián)的第二部件。
8.如權利要求6所述的電路模塊,其中所述處理器還配置成將存儲在所述電路模塊中的第一冗余校驗與存儲在所述控制器模塊中的第二冗余校驗相比較,其中所述第一冗余校驗和所述第二冗余校驗與所述第一部件相關聯(lián);以及將存儲在所述電路模塊中的第一電路模塊(CM)配置時間與存儲在所述控制器模塊中的第二 CM配置時間相比較。
9.如權利要求8所述的電路模塊,其中所述處理器還配置成基于對所述冗余校驗和對所述CM配置時間的比較,從基于web的配置源或所述內(nèi)部存儲器選擇所述配置源。
10.如權利要求9所述的電路模塊,其中所述處理器還配置成 還基于新的模塊指示器選擇所述配置源。
11.如權利要求7所述的電路模塊,其中所述處理器還配置成將存儲在所述電路模塊中的第一冗余校驗與存儲在所述控制器模塊中的第二冗余校驗相比較,其中所述第一冗余校驗和所述第二冗余校驗與所述第二部件相關聯(lián);以及將存儲在所述電路模塊中的第一 CPU配置時間與存儲在所述控制器模塊中的第二 CPU 配置時間相比較。
12.如權利要求11所述的電路模塊,其中所述處理器還配置成基于對所述冗余校驗和對所述CPU配置時間的比較,從基于CPU的配置源或所述內(nèi)部存儲器選擇所述配置源。
13.如權利要求12所述的電路模塊,其中所述處理器還配置成 還基于新的模塊指示器選擇所述配置源。
14.一種用于配置電路模塊的方法,所述方法包括從可能的配置場景的集合確定一配置場景,所述集合包括第一配置場景和第二配置場旦足;當所確定的配置場景是所述第一配置場景時,選擇內(nèi)部配置源;當所確定的配置場景是所述第二配置場景時,選擇外部配置源;以及使用來自所選擇的配置源的配置數(shù)據(jù)配置所述電路模塊的部件。
15.如權利要求14所述的方法,其中所述內(nèi)部配置源包括閃存。
16.如權利要求14所述的方法,其中所述部件與基于web的配置相關聯(lián)。
17.如權利要求16所述的方法,還包括將存儲在所述電路模塊中的第一冗余校驗與存儲在相關聯(lián)的控制器模塊中的第二冗余校驗相比較,其中所述第一冗余校驗和所述第二冗余校驗與所述部件相關聯(lián);以及將第一電路模塊(CM)配置時間與存儲在所述相關聯(lián)的控制器模塊中的第二 CM配置時間相比較。
18.如權利要求17所述的方法,還包括基于對所述冗余校驗和對所述CM配置時間的比較,從基于web的配置源或所述內(nèi)部配置源確定所選擇的配置源。
19.如權利要求14所述的方法,其中所述部件與基于CPU的配置相關聯(lián)。
20.如權利要求19所述的方法,還包括將存儲在所述電路模塊中的第一冗余校驗與存儲在相關聯(lián)的控制器模塊中的第二冗余校驗相比較,其中所述第一冗余校驗和所述第二冗余校驗與所述部件相關聯(lián);以及將存儲在所述電路模塊中的第一 CPU配置時間與存儲在所述相關聯(lián)的控制器模塊中的第二 CPU配置時間相比較。
21.如權利要求20所述的方法,還包括基于對所述冗余校驗和對所述CPU配置時間的比較,從基于CPU的配置源或所述內(nèi)部配置源確定所選擇的配置源。
22.—種存儲計算機可執(zhí)行指令的計算機可讀存儲介質,當執(zhí)行所述計算機可執(zhí)行指令時,使處理器執(zhí)行一種方法,所述方法包括從可能的配置場景的集合確定一配置場景,所述集合包括第一配置場景和第二配置場旦足;當所確定的配置場景是所述第一配置場景時,選擇內(nèi)部配置源; 當所確定的配置場景是所述第二配置場景時,選擇外部配置源;以及使用來自所選擇的配置源的配置數(shù)據(jù)配置所述電路模塊。
23.如權利要求22所述的計算機可讀存儲介質,其中所述部件與基于web的配置相關聯(lián),并且所述方法還包括將存儲在所述電路模塊中的第一冗余校驗與存儲在相關聯(lián)的控制器模塊中的第二冗余校驗相比較,其中所述第一冗余校驗和所述第二冗余校驗與所述部件相關聯(lián);以及將第一電路模塊(CM)配置時間與存儲在所述相關聯(lián)的控制器模塊中的第二 CM配置時間相比較。
24.如權利要求23所述的計算機可讀存儲介質,所述方法還包括基于對所述冗余校驗和對所述CM配置時間的比較,從基于web的配置源或所述內(nèi)部配置源確定所選擇的配置源。
25.如權利要求22所述的計算機可讀存儲介質,其中所述部件與基于CPU的配置相關聯(lián),并且所述方法還包括將存儲在所述電路模塊中的第一冗余校驗與存儲在相關聯(lián)的控制器模塊中的第二冗余校驗相比較,其中所述第一冗余校驗和所述第二冗余校驗與所述部件相關聯(lián);以及將存儲在所述電路模塊中的第一 CPU配置時間與存儲在所述相關聯(lián)的控制器模塊中的第二 CPU配置時間相比較。
26.如權利要求25所述的計算機可讀存儲介質,所述方法還包括基于對所述冗余校驗和對所述CPU配置時間的比較,從基于CPU的配置源或所述內(nèi)部配置源確定所選擇的配置源。
27.一種可編程邏輯控制器,包括控制模塊,其配置成獲得CPU配置數(shù)據(jù);以及電路模塊,其包括內(nèi)部存儲器并且配置成獲得電路模塊(CM)配置數(shù)據(jù);將所述CPU配置數(shù)據(jù)與所述CM配置數(shù)據(jù)相比較;根據(jù)所述比較確定配置場景;以及基于所述配置場景選擇配置源,其中所述配置源是所述內(nèi)部存儲器或外部配置源。
28.如權利要求27所述的可編程邏輯控制器,其中所述電路模塊支持與基于web的配置相關聯(lián)的第一部件,以及其中所述外部配置源是基于web的配置源。
29.如權利要求觀所述的可編程邏輯控制器,其中所述電路模塊支持與基于CPU的配置相關聯(lián)的第二部件,以及其中所述外部配置源是所述控制器模塊。
30.如權利要求1所述的電路模塊,其中所述通信接口支持從由通用串行總線(USB)、 Modbus Plus、以太網(wǎng)和底板總線組成的組中選擇的兼容接口。
全文摘要
本發(fā)明的方面支持當重新啟動可編程邏輯控制器(101)的電路模塊(201)時的部件配置機制。部件(應用)可自多個源來配置,所述源包括閃存(204)和基于web的配置源。配置機制避免當替換通信模塊時使用無效的配置數(shù)據(jù)。電路模塊可支持多個部件,其中一些部件可與基于web的配置相關聯(lián)而其他部件可與基于CPU的配置相關聯(lián)。如果在通信模塊的閃存中的配置數(shù)據(jù)被確定是無效的,對于基于web配置的部件,通信模塊從基于web的配置源獲得配置數(shù)據(jù),并且對于基于CPU配置的部件,通信模塊從相關聯(lián)的CPU模塊(202)獲得配置數(shù)據(jù)。在內(nèi)部存儲器中的配置數(shù)據(jù)的有效性通過比較循環(huán)校驗和的值和配置時間的值獲得。
文檔編號G06F11/14GK102405464SQ200980156990
公開日2012年4月4日 申請日期2009年12月30日 優(yōu)先權日2008年12月31日
發(fā)明者大衛(wèi)·多格特, 孫恩希 申請人:施耐德電氣美國股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1