專利名稱:基于多處理器的可編程邏輯控制器及其操作方法
技術(shù)領(lǐng)域:
一般地說,本發(fā)明涉及可編程邏輯控制器(PLC),并且更具體來說,涉及基于多處理器的PLC和用于操作該基于多處理器的PLC的方法。
背景技術(shù):
可編程邏輯控制器廣泛應(yīng)用在多種エ業(yè)中用于邏輯控制、順序控制、運動控制、過程控制、分布式系統(tǒng)控制等等??删幊踢壿嬁刂破?PLC) —般具有一個或多個處理器、存儲器、以及耦合到設(shè)備的多個輸入/輸出(IO)模塊。處理器是PLC的核心并且為許多PLC功能負(fù)責(zé),PLC功能例如輸入掃描、邏輯解決、以及輸出掃描。還應(yīng)注意到可有與每個PLC功 能關(guān)聯(lián)的多個處理器。因此,選擇合適的處理器幫助PLC獲得高性能。掃頻循環(huán)的持續(xù)時間和邏輯解決的速度是典型地用于測量PLC的效率的兩個參數(shù)。圖I示意性地示出常規(guī)的PLC 100的掃頻循環(huán)。PLC 100典型地包括多個PLC功能例如輸入掃描、邏輯解決、以及輸出掃描。除了輸入掃描、邏輯解決、以及輸出掃描以外,取決于應(yīng)用可包括其它PLC功能。所有PLC功能都典型地以串行序列實現(xiàn),在其中,在繼續(xù)另一個功能前每個功能整個地處理。隨后的未處理PLC功能從而保持在等待期或隊列中,直到在前的功能完成。因此,總掃頻循環(huán)6的持續(xù)時間是PLC功能的所有單獨循環(huán)時間1、2、3、
4、和5的持續(xù)時間和在各個循環(huán)時間中間的任何時間7的總和。単獨PLC功能的串行處理導(dǎo)致了 PLC的較低效率。因此,需要具有高效率的改進(jìn)PLC來滿足實際需求和應(yīng)用。
發(fā)明內(nèi)容
在本發(fā)明的一方面中,提供了一種能夠具有多個PLC功能的可編程邏輯處理器(PLC)。該PLC包括指配給每個PLC功能的一個或多個處理器、以及耦合到處理器并且存儲多個程序或數(shù)據(jù)的至少ー個的至少ー個存儲器。至少兩個PLC功能并行運行。在本發(fā)明的另一方面中,提供了ー種操作具有多個PLC功能的PLC的方法。該PLC包括指配給每個PLC功能并且耦合到存儲器的一個或多個處理器、以及存儲多個程序或數(shù)據(jù)的至少ー個的至少ー個存儲器。該方法包括(a)同時初始化對應(yīng)于每個PLC功能的處理器;(b)在當(dāng)前掃頻循環(huán)中,通過使用處理器執(zhí)行對應(yīng)程序來并行運行PLC功能;(c)在當(dāng)前掃頻循環(huán)中,通過使用處理器來并行交換數(shù)據(jù);以及(d)將處理器轉(zhuǎn)換到下ー掃頻循環(huán)中的步驟(b)以周期性地執(zhí)行步驟(b)、(c)和(d),直到處理器分別完成所有要求的程序。在本發(fā)明的另一方面中,提供了ー種PLC系統(tǒng)。該PLC系統(tǒng)包括多個可編程邏輯控制器(PLC),其中每個可編程邏輯控制器能夠具有多個PLC功能;連接PLC的多個系統(tǒng)鏈路;以及連接PLC與一個或多個設(shè)備的多個IO接ロ。每個PLC包括指配給每個PLC功能的一個或多個處理器、以及耦合到處理器并且存儲多個程序或數(shù)據(jù)的至少ー個的至少ー個存儲器。至少兩個PLC功能并行運行。從下面結(jié)合附圖提供的本發(fā)明的優(yōu)選實施例的詳細(xì)描述中,會更好地理解這些和其它優(yōu)點和特征。
圖I是示出常規(guī)的可編程邏輯控制器(PLC)的掃頻循環(huán)的示意框 圖2是依照本發(fā)明的一個實施例的PLC的示意框 圖3是說明圖2中PLC的硬件架構(gòu)的示意框 圖4是說明圖3中數(shù)據(jù)流存儲器(DFM)的結(jié)構(gòu)的示意框 圖5A是圖2中PLC應(yīng)用第一運行(run) -同步(synch)階段轉(zhuǎn)換格式的示意時序圖; 圖5B是圖2中PLC應(yīng)用第二運行-同步階段轉(zhuǎn)換格式的示意時序 圖5C是圖2中PLC應(yīng)用第三運行-同步階段轉(zhuǎn)換格式的示意時序 圖6是說明依照本發(fā)明的另ー個實施例中的PLC中的數(shù)據(jù)流的示意框 圖7是說明依照本發(fā)明的另ー個實施例中的PLC中的數(shù)據(jù)流的示意框 圖8是說明依照本發(fā)明的另ー個實施例的操作PLC的方法的流程 圖9是說明依照本發(fā)明的另ー個實施例的PLC的硬件架構(gòu)的示意框 圖IOA是說明在階段A中PLC的一種數(shù)據(jù)流的示意框 圖IOB是說明在階段B中PLC的一種數(shù)據(jù)流的示意框圖;以及 圖11是依照本發(fā)明的另ー個實施例的PLC系統(tǒng)的示意框圖。
具體實施例方式在下文將參照附圖描述本公開的實施例。在下面的描述中,不會詳細(xì)描述眾所周知的功能和構(gòu)造以避免用不必要的細(xì)節(jié)模糊本公開。眾所周知,可編程邏輯控制器(PLC)、可編程自動化控制器(PAC)、以及分布式控制系統(tǒng)(DCS)在功能上重疊。它們之間的界限越來越模糊。因此,本文提及的術(shù)語PLC不限于它的本義,并且意為具有相似能力和功能性的所有設(shè)施,例如PAC和DCS。附圖中所用的后綴(“s”)通常意圖為包括術(shù)語變化的単數(shù)和復(fù)數(shù),因此包括該術(shù)語的ー個或多個。圖2示出了依照本發(fā)明的一個實施例的可編程邏輯控制器(PLC) 200。PLC 200與設(shè)備70 (例如傳感器或驅(qū)動促動器)交換數(shù)據(jù),用來采集數(shù)據(jù)、控制運動等等。PLC 200典型地具有一個或多個處理器以及耦合到處理器的至少ー個存儲器10。存儲器10典型地存儲多個程序、中間結(jié)果以及相關(guān)數(shù)據(jù)。在此實施例中的處理器包括IO掃描處理器20、邏輯解決處理器30、通信處理器40以及診斷處理器50,其中每個實現(xiàn)ー個PLC功能。在每個處理器20、30、40、50中,可有同樣可并行運行的一個或多個處理器。處理器20、30、40、50可以是包含多個處理器的一個或多個處理器組裝件的部分。應(yīng)當(dāng)注意到本發(fā)明不限于任何具體的處理器。術(shù)語“處理器”,當(dāng)此術(shù)語用于本文中,意圖為表示能夠執(zhí)行程序的任何単元、模塊、機(jī)器和其它形式。術(shù)語“處理器”意圖為表示任何単元、模塊、機(jī)器和其它形式,其能夠接收輸入和依照規(guī)定的規(guī)則處理輸入以產(chǎn)生輸出,如本領(lǐng)域技術(shù)人員所能理解的。PLC 200還包括多個信道,其將處理器連在一起以允許它們彼此通信。在一些實施例中,可不使用信道。處理器20、30、40、50并行運行以履行對應(yīng)的PLC功能,這樣高度地改進(jìn)了 PLC的效率。再參照圖2, IO掃描處理器20通過具有輸入模塊和輸出模塊的一個或多個輸入/輸出(IO)模塊60與一個或多個設(shè)備70相連接。IO掃描處理器20掃描設(shè)備70或關(guān)聯(lián)的處理器,以米集輸入數(shù)據(jù)或傳輸輸出數(shù)據(jù)。在一些實施例中,用輸入掃描處理器和輸出掃描處理器替代IO掃描處理器20。邏輯解決處理器30執(zhí)行邏輯計算,其結(jié)果去到IO掃描處理器20、診斷處理器50或通信處理器40。通信處理器40通過系統(tǒng)鏈路例如低壓差分信號(LVDS)與人機(jī)接ロ(HMI) 80相連接。通信處理器40與其它處理器交換數(shù)據(jù)并且從HMI 80接收請求。HMI 80還指的是主計算機(jī)、MMI (人機(jī)接ロ)以及⑶I (圖形用戶接ロ)。通信處理器40還通過其它PLC、經(jīng)由系統(tǒng)鏈路與HMI 80通信。診斷處理器50執(zhí)行PLC硬件的例行檢查并且維護(hù)存儲器10中的故障表。圖3說明圖2中依照一個實施例的PLC 200的硬件架構(gòu)。存儲器10具有存儲器的多個部分,其分別由程序和本地數(shù)據(jù)存儲器(PDM) 101和數(shù)據(jù)流存儲器(DFM) 102實現(xiàn)。每個處理器20、30、40以及50具有關(guān)聯(lián)PDM 101、直接關(guān)聯(lián)DFM 102(本地DFM)和三個間接關(guān)聯(lián)DFM(外部DFM)。PDM 101分成用于存儲系統(tǒng)程序及用戶程序的程序存儲器和用于存儲中間結(jié)果的本地數(shù)據(jù)存儲器。DFM 102是數(shù)據(jù)流變量的池。數(shù)據(jù)流變量具有數(shù)據(jù)值和指示數(shù)據(jù)值的存在或不存在的關(guān)聯(lián)標(biāo)志。圖3還示出四個處理器20、30、40及50、PDM 101和DFM 102之間的關(guān)系,沒有示出四個處理器20、30、40及50以及它們的外部DFM 102之間的全部連接。處理器20、30、40及50的每個可以完全訪問它的關(guān)聯(lián)PDM 101和它的本地DFM 102。當(dāng)需要存儲在它的外部DFM 102中的數(shù)據(jù)流變量吋,處理器20、30、40及50通過遵照預(yù)定義的處理器間通信協(xié)議的信道75間接接近(take approach),如45度角箭頭所示。信道75可由某些信號或共享存儲器實現(xiàn),例如多端ロ存儲器、乒乓緩存或先進(jìn)先出(FIFO)。在此實施例中,采用FIFO來鏈接處理器。參照圖4連同圖2和圖3,根據(jù)存儲的數(shù)據(jù)值的不同類型,用于為數(shù)據(jù)流變量提供空間的DFM 102分成數(shù)個域,例如輸入域103、輸出域104、中間域105、系統(tǒng)輸入域106以及系統(tǒng)輸出域107。輸入域103用于存儲通過輸入模塊、來自設(shè)備70的輸入數(shù)據(jù)。輸出域104用于存儲輸出數(shù)據(jù)。中間域105用于存儲它的本地PLC的本地或中間數(shù)據(jù)。系統(tǒng)輸入域106用于存儲通過系統(tǒng)鏈路、來自其它PLC或HMI 80來的輸入數(shù)據(jù)。系統(tǒng)輸出域107用于存儲通過系統(tǒng)鏈路到其它PLC的輸出數(shù)據(jù)。至少ー個DFM還包括用于存儲數(shù)據(jù)的ー個域(未示出)。例如,IO掃描處理器20的本地DFM 102具有輸入域103和輸出域104 ;并且通信處理器40的本地DFM 102具有系統(tǒng)輸入域106和系統(tǒng)輸出域107。在一些實施例中,一個域是分布在處理器20、30、40及50中的ー組小域。在此實施例中,PLC 200的所有處理器20、30、40及50并行運行,這樣掃頻循環(huán)比常規(guī)PLC短。掃頻循環(huán)典型地由同步階段和運行階段組成。在同步階段中,所有處理器20、30,40及50發(fā)送數(shù)據(jù)到它們的目的地并且從其它處理器接收數(shù)據(jù)。在PLC中的程序是典型的周期性的和預(yù)先確定的,這樣數(shù)據(jù)流方向和數(shù)據(jù)包大小根據(jù)應(yīng)用要求在系統(tǒng)配置中確 定。在運行階段中,所有處理器20、30、40及50執(zhí)行對應(yīng)的程序以履行它們的PLC功能。在運行階段期間,生成一些中間結(jié)果并放置在關(guān)聯(lián)PDM 101中;同時,更新DFM 102。在此實施例中,一個掃頻循環(huán)的持續(xù)時間由最大的PLC功能確定,最大的PLC功能典型地由邏輯解決處理器30執(zhí)行。在一個實施例中,處理器20、30、40及50遵照同步-運行轉(zhuǎn)換格式和本文描述的三種運行-同步轉(zhuǎn)換格式中的任何一種在同步階段和運行階段之間轉(zhuǎn)換。同步-運行轉(zhuǎn)換格式是指當(dāng)所有數(shù)據(jù)已發(fā)送并且它們要求的數(shù)據(jù)已接收時,處理器20、30、40及50各自地從同步階段轉(zhuǎn)換成運行階段。對第一運行-同步轉(zhuǎn)換格式,當(dāng)它們完成它們的對應(yīng)程序吋,處理器20、30、40及50各自地從運行階段轉(zhuǎn)換成同步階段。對第二運行-同步轉(zhuǎn)換格式,當(dāng)達(dá)到執(zhí)行的預(yù)定義最大周期(T_max)時,處理器20、30、40及50同時從運行階段轉(zhuǎn)換成同步階段。對第三運行-同步轉(zhuǎn)換格式,當(dāng)所有處理器20、30、40及50完成它們的對應(yīng)程序吋,處理器20、30、40及50同時從運行階段轉(zhuǎn)換成同步階段。 圖5A示出采用第一運行-同步階段轉(zhuǎn)換格式的、圖3中PLC 200的掃頻循環(huán)。因為處理器20、30、40及50的處理速度或從/到處理器的數(shù)據(jù)包的數(shù)量可不同,所以從同步階段到運行階段的轉(zhuǎn)換點可能不能完美地定位。所有處理器20、30、40及50以它們的各自的掃頻循環(huán)并行運行,并且各自的轉(zhuǎn)換發(fā)生在相應(yīng)的PLC功能的完成處。在此例子中的循環(huán)時間可以被視為最長處理器功能的単獨的循環(huán)時間的完成的時間。第一運行-同步階段轉(zhuǎn)換格式易于實現(xiàn),從而獲得最有效率的PLC。圖5B示出采用第二運行-同步階段轉(zhuǎn)換格式的、圖3中PLC 200的掃頻循環(huán)。在此情形中,在預(yù)定義時間周期T_max或在當(dāng)前循環(huán)中的所有任務(wù)的完成之后,處理器20、30、40及50執(zhí)行處理和下一循環(huán)的開始。預(yù)定義時間周期T_max可以由仿真確定或憑經(jīng)驗獲得,這樣下一循環(huán)之前所有的PLC處理已完成。在単獨的PLC功能的循環(huán)時間和預(yù)定義時間周期T_max之間典型地存在小延遲。小延遲典型地計算為在最長的単獨的PLC功能處理時間的典型或平均時間的緊湊余量之內(nèi)。在多數(shù)應(yīng)用中,放置邏輯解決功能在最高優(yōu)先級。有時這樣指示T_max :最大掃描時間至多是T_max,這樣可以避免其它功能的無窮盡的執(zhí)行。例如,當(dāng)通信處理器40要求大量數(shù)據(jù)時,運行階段可能會很長。在這種情況下,當(dāng)任何功能違反T_max時,會產(chǎn)生警告或錯誤。圖5C示出采用第三運行-同步階段轉(zhuǎn)換格式的、圖3中PLC 200的掃頻循環(huán)。在此實施例中,當(dāng)最長的単獨的PLC處理時間完成吋,處理器20、30、40及50同時從運行階段轉(zhuǎn)換成同步階段。在此例子中,邏輯解決處理器20是最長的循環(huán)時間。在此實施例中,一個掃頻循環(huán)的持續(xù)時間是處理器20、30、40及50中最大的執(zhí)行周期。相比之下,常規(guī)PLC的ー個掃頻循環(huán)的持續(xù)時間是所有處理器的總和,因此本發(fā)明獲得了高效率。通過增加或者減少PLC功能的數(shù)量,還具有實施例的許多備選。如本文所描述,在多數(shù)應(yīng)用中放置邏輯解決功能在最高優(yōu)先級。當(dāng)邏輯解決功能的處理時間預(yù)估計為不短于其它PLC功能時,通常使用第三運行-同步階段轉(zhuǎn)換格式。為了更好地理解本系統(tǒng)的并行性能,本文描述了數(shù)據(jù)流模型的幾個例子。參照圖6,舉個例子,PLC 300具有兩個處理器,即IO掃描處理器和邏輯解決處理器。PLC 300具有IO掃描處理器301、邏輯解決處理器302、以及存儲器。在此實施例中的存儲器包括PDM303及304和DFM 305及306,其每個分別關(guān)聯(lián)IO掃描處理器301和邏輯解決處理器302。IO掃描處理器301和邏輯解決處理器302由多個信道(例如,多個FIFO 310)連接起來。在一些實施例中,F(xiàn)IFO 310由其它類型的信道替代。符號“ in_io”和“out-logic”是由IO掃描處理器301和邏輯解決處理器302分別生成的中間結(jié)果的指示。多種箭頭表示數(shù)據(jù)流的方向。本文描述了五種路線,其表示為R1、R2、R3、R4 以及 R5。Rl指示IO掃描處理器301通過輸入模塊307從設(shè)備接收數(shù)據(jù)并且生成中間結(jié)果in_io。R2指示以數(shù)據(jù)流變量的形式傳送中間結(jié)果in_io并將其放置在DFM 306中。數(shù)據(jù)流變量具有標(biāo)志和數(shù)據(jù)值。標(biāo)志通常以整數(shù)的形式出現(xiàn)。如果標(biāo)志示為零,邏輯解決處理器302不能訪問在對應(yīng)DFM 306中的數(shù)據(jù)流變量。一旦有數(shù)據(jù)傳送進(jìn)DFM 306,標(biāo)志變成大于零的整數(shù),這樣允許邏輯解決處理器302訪問數(shù)據(jù)流變量。R3指示邏輯解決處理器302執(zhí)行用戶程序使用在DFM306中的數(shù)據(jù)流變量生成中間結(jié)果out_logic然后放置它們在對應(yīng)的PDM 304中。R4指示發(fā)送中間結(jié)果out_logic到IO掃描處理器301然后通過FIFO 310將其放置在DFM 305中。R5指示IO掃描處理器301發(fā)送在DFM 305中的數(shù)據(jù)流變量到輸出模塊308。 在此實施例中,用FIFO 310來連接IO掃描處理器301與邏輯解決處理器302。在一些實施例中,用信道(例如,F(xiàn)IFO 310)來連接處理器與它們的外部DFM。以圖6的PLC300中的R2為例,在此實施例中,IO掃描處理器301從FIFO 310采集中間結(jié)果in_io,然后放置中間結(jié)果in_io到DFM 305。在一些實施例中,F(xiàn)IFO 310連接邏輯解決處理器302與DFM 305而不是10掃描處理器301。結(jié)果,中間結(jié)果in_io通過FIFO 310直接被放置DFM305,從而跳過10掃描處理器301。還應(yīng)注意到可應(yīng)用與R2相似的方式來實現(xiàn)R4。布置五種路線在兩個階段中。根據(jù)上面提到的兩個階段的定義,路線R2和R4在同步階段中并行執(zhí)行,并且路線R1、R3和R5在運行階段中并行執(zhí)行。圖6中的數(shù)據(jù)流模型高效地幫助PLC功能10掃描和邏輯解決由10掃描處理器301和邏輯解決處理器302并行運行。參照圖7,PLC 400具有與圖6的PLC 300相似的布置,但還具有通信處理器401,其通過系統(tǒng)鏈路411連接PLC 400與HMI 407。圖7說明在它的同步階段期間通信處理器401如何在處理器301和302之間交換數(shù)據(jù)。為了圖7中的簡明,忽略了圖6中示出的ー些路線和通信處理器401與10掃描處理器301之間的連接。在PLC 400中,存儲器包括與通信處理401關(guān)聯(lián)的PDM 403和DFM404。符號“in_comm”是對應(yīng)于通信處理器401的中間結(jié)果的指示。路線R2’、R4’和R6’表示同步階段中的數(shù)據(jù)流。R2’指示以數(shù)據(jù)流變量的形式傳送中間結(jié)果in_io并將其放置在DFM 306和404中。R4’指示發(fā)送中間結(jié)果out_logic到10掃描處理器301和通信處理器401然后放置中間結(jié)果out_logiC在DFM 305和404中。R6’指示發(fā)送中間結(jié)果到10掃描處理器301然后放置中間結(jié)果在DFM 306中。在運行階段中,通信處理器401通過系統(tǒng)鏈路411 (例如,LVDS)從HMI 407接收請求并且解碼請求。與此同時,打包在DFM 404中的、來自10掃描處理301或/和邏輯解決處理302的數(shù)據(jù),并通過系統(tǒng)鏈路411發(fā)送出去到HMI 407。結(jié)果,通信處理器401通過10掃描處理器301與邏輯解決處理器302周期性地傳送設(shè)備的更新數(shù)據(jù)。而且,通信處理器401不斷地從HMI 407接收請求以更新設(shè)備的狀態(tài)。如上面提到的,在一些實施例中,F(xiàn)IFO 310連接邏輯解決處理器302與DFM 305而不是10掃描處理器301(圖6和圖7中示出),從而直接地發(fā)送中間結(jié)果in_io到DFM 305。應(yīng)當(dāng)理解本文中R2’、R4’和R6’可以以相同的方式實現(xiàn)。
DFM 404具有其空間通常受限的系統(tǒng)輸入域和系統(tǒng)輸出域。當(dāng)必須上載大量數(shù)據(jù)超過預(yù)定義的閾值時,可能發(fā)生數(shù)據(jù)阻塞。因此,在一些實施例中,在通信處理器中提供調(diào)度器。當(dāng)上載大量數(shù)據(jù)超過預(yù)先確定的閾值時,觸發(fā)調(diào)度器以分派上載請求并且使它能在連續(xù)的循環(huán)中上載數(shù)據(jù)。邏輯解決處理器執(zhí)行的程序被定義為用戶程序,典型地,其可是巨大和計算高強度的。掃頻循環(huán)由邏輯解決處理器的執(zhí)行確定。為了減少邏輯解決處理器的處理持續(xù)時間,在一些實施例中,將PLC配置成帶有共同執(zhí)行用戶程序的多個邏輯解決處理器。在這些實施例中,將用戶程序分成一組小塊,其在邏輯解決處理器上并行執(zhí)行。這組小塊可具有不同的優(yōu)先級??商峁┲概淦饔脕砀鶕?jù)優(yōu)先級或其它合適的標(biāo)準(zhǔn)將用戶程序分成小塊。在ー些實施例中,指配器布置在PLC中的存儲器中,或配置為PLC中的單獨成員。雖然在此沒有描述其中PLC具有四個或更多PLC功能的一些實施例中的數(shù)據(jù)流,但其可以被本領(lǐng)域技術(shù)人 員參照圖6及圖7和對應(yīng)的詳細(xì)介紹而理解。在一些實施例中,為了改進(jìn)效率,在兩個或更多處理器上執(zhí)行每個IO掃描、邏輯解決和通信。圖8示出用于依照另ー個實施例操作PLC的方法。在此實施例中,PLC具有四個并行運行的PLC功能810、820、830、840。正如注意到的,可以有關(guān)聯(lián)每個PLC功能的ー個或多個處理器。根據(jù)不同的應(yīng)用要求,可以增加或減少PLC功能的數(shù)量。為了簡明,PLC功能之間的部分連接(傳送器和接收器)未示出。在此實施例中,一旦PLC啟動,四個PLC功能810、820、830、840的并行處理起動,并且在一個實施例中,硬件代表來自圖2的IO掃描處理器20、邏輯解決處理器30、診斷處理器50和通信處理器40。根據(jù)本文詳細(xì)描述的轉(zhuǎn)換格式執(zhí)行隨后的處理步驟。在PLC功能中的步驟的數(shù)量和PLC功能的循環(huán)時間可以變化,但是PLC功能的處理是并行執(zhí)行的。再參照圖8和圖2中所示配置,首先,啟動PLC并且同時初始化用于每個PLC功能的相應(yīng)處理器。其次,處理器20、30、40及50進(jìn)入當(dāng)前掃頻循環(huán)中的運行階段以實現(xiàn)它們的對應(yīng)PLC功能10掃描、邏輯解決、通信和診斷。在運行階段中,IO掃描處理器20運行系統(tǒng)程序以訪問IO模塊60 ;邏輯解決處理器30運行用戶程序;通信處理器40運行系統(tǒng)程序以訪問系統(tǒng)鏈路,從而與其它PLC或HMI80通信;以及診斷處理器50運行系統(tǒng)程序以實現(xiàn)診斷路線檢查和輸出診斷信息。如本文所描述,有多種轉(zhuǎn)換格式。如果在此PLC中應(yīng)用第一同歩-運行轉(zhuǎn)化格式,當(dāng)處理器20、30、40及50完成它們的各自的程序吋,它們分別轉(zhuǎn)換成同步階段。如果在此PLC中應(yīng)用第二運行-同步轉(zhuǎn)化格式,當(dāng)達(dá)到預(yù)定義的T-max吋,處理器20、30、40及50同時轉(zhuǎn)換成同步階段。如果在此PLC中應(yīng)用第三運行-同步階段轉(zhuǎn)化格式,當(dāng)處理器20、30、40及50完成它們的各自的程序時,所有處理器同時轉(zhuǎn)換成同步階段。處理繼續(xù),并且在一個實施例中,處理器進(jìn)入同步階段。在同步階段中,所有的處理器發(fā)送數(shù)據(jù)到其它并從其它接收數(shù)據(jù)。PLC周期性地檢查是否每個處理器已經(jīng)接收它要求的,以及是否每個處理器已經(jīng)發(fā)送出去其它處理器要求的數(shù)據(jù)(檢查數(shù)據(jù)完成?)。如果響應(yīng)為是,處理器20、30、40及50分別返回運行階段以在下一掃頻循環(huán)中執(zhí)行它們的各自的程序,否則,它們保持在處理器20、30、40及50之間交換數(shù)據(jù)。在一些實施例中,PLC可具有多個PLC功能,并且具有共享存儲器和通過多個信道耦合到共享存儲器的多個處理器。根據(jù)不同的應(yīng)用要求,可以增加或減少PLC功能的數(shù)量。ー個PLC功能可在一個或多個處理器上執(zhí)行。共享存儲器具有用于存儲程序(包括系統(tǒng)程序和用戶程序)的多個程序存儲器(PM)和乒乓緩存(PPB)。每個處理器與ー個PM關(guān)聯(lián)。PPB具有第一存儲器和具有與第一存儲器相似的用于存儲輸入數(shù)據(jù)、輸出數(shù)據(jù)或中間數(shù)據(jù)的空間的第二存儲器。在一些實施例中,第一存儲器包括仲裁器和乒緩存;而第二存儲器包括仲裁器和乓緩存。當(dāng)兩個或更多處理器同時訪問在相同存儲器中的一 個相同區(qū)域時,仲裁器測試并且確定訪問結(jié)果,并且使PLC功能能夠并行運行。在一些實施例中,共享存儲器為第一存儲器和第二存儲器的使用布置公用仲裁器。圖9示出依照另ー個實施例的具有IO掃描處理器901和邏輯解決處理器902的PLC 900。在每個處理器901或902中,可有也可并行運行的一個或多個處理器。處理器901或902可以是包含許多處理器的一個或多個處理器組裝件的一部分。PLC 900具有包括分別關(guān)聯(lián)IO掃描處理器901和邏輯解決處理器902的兩個PM903和904的共享存儲器,第一存儲器905和第二存儲器906。在此實施例中,第一存儲器905具有用于存儲輸入數(shù)據(jù)、輸出數(shù)據(jù)和中間結(jié)果的乒緩存907和用于控制訪問乒緩存907的仲裁器909。第一存儲器906具有乓緩存908和仲裁器910。乓緩存908具有與乒緩存907相似的用于存儲輸入數(shù)據(jù)、輸出數(shù)據(jù)和中間數(shù)據(jù)的空間。當(dāng)被訪問的數(shù)據(jù)雖然位于相同的區(qū)域但位于不同的地址時,仲裁器909和910允許訪問數(shù)據(jù)。圖IOA和IOB示出分別在階段A和階段B中的PLC 900中的一種數(shù)據(jù)流。PLC 900在階段A和階段B中周期性地執(zhí)行程序。在ー個掃頻循環(huán)中,(見圖IOA中階段A),IO掃描處理器901和邏輯解決處理器902并行執(zhí)行它們的對應(yīng)程序。在階段A中說明了四種數(shù)據(jù)流路線L1、L2、L3和L4。IO掃描處理器901執(zhí)行路線LI和L4 ;同時,邏輯解決處理器902執(zhí)行路線L2和L3。根據(jù)預(yù)先確定的分類將通過路線LI存儲在乒緩存907的輸入?yún)^(qū)域中的輸入數(shù)據(jù)指配到不同的地址。當(dāng)IO掃描處理器901和邏輯解決處理器902完成它們的當(dāng)前對應(yīng)的程序或者達(dá)到了預(yù)先確定的最大周期時,它們轉(zhuǎn)換到下ー掃頻循環(huán)(見圖IOB中階段B)。IO掃描處理器901執(zhí)行路線LI’和L4’ ;同時,邏輯解決處理器902執(zhí)行路線L2’和L3’。顯然IO掃描處理器901和邏輯解決處理器902并行運行它們各自的程序。在ー些特別應(yīng)用中,IO掃描處理器901和邏輯解決處理器902可訪問ー個相同區(qū)域。再次觸發(fā)在PLC 900中的仲裁器909和910,以測試被訪問的目的地是否在相同的地址。如果響應(yīng)為是,仲裁器隨機(jī)地首先選擇ー個訪問并掛起另ー個。否則,IO掃描處理器901和邏輯解決處理器902可并行訪問,其意味著兩個PLC功能10掃描和邏輯解決并行運行。為了改進(jìn)數(shù)據(jù)完整性,在PLC 900中提供了保護(hù)系統(tǒng)(未示出)。從軟件角度,保護(hù)機(jī)制由在第一存儲器或第二存儲器905和906中的互斥體(mutex)實現(xiàn)。互斥體提供測試-設(shè)置操作并且根據(jù)預(yù)定義標(biāo)準(zhǔn)對同時引發(fā)的訪問設(shè)置優(yōu)先級。當(dāng)兩個或更多處理器同時訪問在乒緩存907或乓緩存908中的相同區(qū)域中的相同地址時。仲裁器909和910允許具有最高優(yōu)先級的訪問并且掛起其它。圖11示出依照本發(fā)明的另ー個實施例的分布式PLC系統(tǒng)1100。在圖11中,“P. ”是處理器的縮寫。分布式PLC系統(tǒng)1100用于耦合HMI 1104到多種設(shè)備1105、1106和1107,這樣用戶通過HMI 1104自動地控制設(shè)備1105、1106和1107的運動、處理或其它動作。在此實施例中,分布式PLC系統(tǒng)1100具有三個可編程邏輯控制器(PLC) 1101、1102和1103 ;將PLC 1101、1102及1103彼此連接或?qū)⑺鼈兣cHMI 1104連接的多個系統(tǒng)鏈路1108 ;以及連接PLC 1101、1102及1103與對應(yīng)的設(shè)備1105、1106及1107的多個IO模塊。PLC 1101、1102和1103被指配來控制不同的設(shè)備,并且在備選實施例中,它們被指配來來控制ー個設(shè)備中的不同部分。每個PLC 1102、1102或1103可具有多個PLC功能,并且具有用于存儲系統(tǒng)程序及用戶程序的存儲器和多個處理器。每個PLC功能指配給ー個或多個處理器。在一些實施例中,根據(jù)應(yīng)用,用上面提到的實施例的任何PLC替代PLC 1102、1102和1103。在此實施例中,每個PLC包括IO掃描處理器、邏輯解決處理器、通信處理器和診斷處理器。在每個處理器中,可有也可并行運行的一個或多個處理器。處理器可以是包含許多處理器的一個或多個處理器組裝件的部分。IO掃描處理器執(zhí)行對應(yīng)的系統(tǒng)程序以掃描f禹合的設(shè)備1105、1106或1107。邏輯解決處理器執(zhí)行對應(yīng)的用戶程序以處理器邏輯計算。通信處理器執(zhí)行對應(yīng)的系統(tǒng)程序并與系統(tǒng)鏈路1108協(xié)作在兩個PLC或ー個PLC與HMI 1104之間建立通信。在操作中,診斷處理器執(zhí)行對應(yīng)的系統(tǒng)程序并執(zhí)行診斷路線檢查以生成診斷結(jié)果,并發(fā)送它們到其它處理器。在每個PLC 1102、1102或1103中,PLC功能并行運行。每個PLC的配置的細(xì)節(jié)參照上面提到的PLC的實施例。在此也使用圖9、圖IOA和圖IOB所示的PLC,這樣PLC功能并行運行。在每個PLC中的通信處理器負(fù)責(zé)在任意兩個PLC之間或ー個PLC與HMI 1104之間建立通信。有時ー個PLC的操作依賴其它PLC要求的數(shù)據(jù)。通信處理器與系統(tǒng)鏈路1108不斷地從其它處理器發(fā)送和接受更新的數(shù)據(jù)或請求。在一些實施例中,存儲器具有專門用于放置通過系統(tǒng)鏈路1108接收/發(fā)送的數(shù)據(jù)的系統(tǒng)輸入域和系統(tǒng)輸出域。在此實施例中,系統(tǒng)鏈路1108由低壓差分信號(LVDS)實現(xiàn)。如果PLC系統(tǒng)傳輸大量的數(shù)據(jù),在此可應(yīng)用エ業(yè)以太網(wǎng)協(xié)議。在編程中,通過HMI或其它計算機(jī)1104使用一個編譯器(未示出)在分布式PLC系統(tǒng)600中編程所有程序。編譯器記錄每個PLC 1102、1102或1103的所有信息,包括硬件和軟件信息。編譯器指定在每個PLC 1102、1102或1103中的處理器并自動地創(chuàng)立系統(tǒng)鏈路。與常規(guī)的編程方法相比,其首先編程每個PLC然后將它們連接起來,本發(fā)明的配置使得編程更容易。并且,它使用戶能夠根據(jù)應(yīng)用通過插入額外的PLC容易地按比例増大PLC系統(tǒng)。上面提到的在PLC中或在PLC系統(tǒng)的ー個PLC中的多處理器可放置在多個芯片上。例如,具有多個處理器的PLC可包括兩個芯片,并且一個芯片放置一個處理器或更多處理器。并且,假如集成度性能滿足應(yīng)用,則所有處理器放置在一個芯片上。雖然本公開已經(jīng)在典型實施例中說明和描述,但無意于限制到所示的細(xì)節(jié)上,因為在不以任何方式背離本公開的精神的情況下,可以做出多種改變和替換。這樣,本領(lǐng)域技術(shù)人員可使用僅僅是慣常的實驗方法而想到在此公開的本公開的進(jìn)一歩的改變和等同,并且所有這些改變和等同被認(rèn)為在由所附權(quán)利要求限定的本公開的精神和范圍內(nèi)。權(quán)利要求
1.一種能夠具有多個PLC功能的可編程邏輯控制器(PLC),包括 指配給每個所述PLC功能的一個或多個處理器;以及 耦合到所述處理器并且存儲多個程序或數(shù)據(jù)的至少ー個的至少ー個存儲器; 其中,至少兩個所述PLC功能并行運行。
2.如權(quán)利要求I所述的PLC,還包括連接對應(yīng)于每個所述PLC功能的所述處理器而使它們能夠彼此通信的多個信道。
3.如權(quán)利要求I所述的PLC,其中,所述存儲器包括每個直接與ー個PLC功能關(guān)聯(lián)的多個第一存儲器和第二存儲器;以及其中,在通信期間在所述處理器之間所述第一存儲器放置所述程序及中間結(jié)果并且所述第二存儲器放置數(shù)據(jù)流變量。
4.如權(quán)利要求3所述的PLC,還包括分別連接所述第二存儲器與對應(yīng)于它們的間接關(guān)聯(lián)的PLC功能的所述處理器的多個信道。
5.如權(quán)利要求I所述的PLC,其中,所述處理器通過同步階段和運行階段周期性地循環(huán);以及其中,對應(yīng)于每個所述PLC功能的所述處理器在所述同步階段中彼此交換數(shù)據(jù),并且在所述運行階段中執(zhí)行存儲在所述存儲器中的所述程序。
6.如權(quán)利要求5所述的PLC,其中,當(dāng)所有處理器完成對應(yīng)的程序時,所述處理器同時從所述運行階段轉(zhuǎn)換到所述同步階段。
7.如權(quán)利要求5所述的PLC,其中,當(dāng)達(dá)到預(yù)定義的最大時間周期時,所述處理器同時從所述運行階段轉(zhuǎn)換到所述同步階段。
8.如權(quán)利要求I所述的PLC,其中,所述存儲器包括每個與ー個PLC功能關(guān)聯(lián)的多個程序存儲器,以及包括第一存儲器和第二存儲器的乒乓緩存。
9.如權(quán)利要求8所述的PLC,其中,所述處理器包括IO掃描處理器器和邏輯解決處理器,它們交替地訪問所述第一存儲器和所述第二存儲器。
10.如權(quán)利要求8所述的PLC,還包括分別連接所述第一存儲器及所述第二存儲器與所述處理器并且控制所述處理器訪問所述第一存儲器或所述第二存儲器的兩個仲裁器。
11.如權(quán)利要求10所述的PLC,還包括與所述仲裁器相連接的保護(hù)機(jī)制;其中,當(dāng)兩個或更多處理器訪問所述第一存儲器或所述第二存儲器的一個相同區(qū)域時,所述保護(hù)機(jī)制設(shè)置優(yōu)先級到所述處理器。
12.如權(quán)利要求8所述的PLC,其中,所述第一存儲器是乒緩存并且所述第二存儲器是乓緩存;以及其中,所述乒緩和所述乓緩存具有用于存儲輸入數(shù)據(jù)和輸出數(shù)據(jù)的類似空間。
13.ー種操作能夠具有多個PLC功能的可編程邏輯控制器(PLC)的方法,所述PLC包括存儲多個程序或數(shù)據(jù)的至少ー個的至少ー個存儲器;以及指配給每個所述PLC功能并且耦合到所述存儲器的一個或多個處理器,所述方法包括 (a)同時初始化對應(yīng)于每個所述PLC功能的所述處理器; (b)在當(dāng)前掃頻循環(huán)中,通過使用所述處理器執(zhí)行對應(yīng)程序來并行運行所述PLC功倉泛; (C)在當(dāng)前掃頻循環(huán)中,通過使用所述處理器來并行交換數(shù)據(jù); (d)將所述處理器轉(zhuǎn)換到下ー掃頻循環(huán)中的步驟(b)以周期性地執(zhí)行步驟(b)、(c)和(d),直到所述處理器分別完成所有要求的程序。
14.如權(quán)利要求13所述的方法,其中,所述存儲器包括每個與ー個PLC功能關(guān)聯(lián)的多個第一存儲器和第二存儲器;以及其中,所述方法還包括在所述第一存儲器中放置在步驟(b)期間生成的中間結(jié)果并且在步驟(C)期間在所述第二存儲器中放置來自其它存儲器的數(shù)據(jù)流變量。
15.如權(quán)利要求13所述的方法,其中,當(dāng)達(dá)到預(yù)定義的最大周期吋,在步驟(d)期間將所有處理器同時轉(zhuǎn)換到所述下ー掃頻循環(huán)中的步驟(b)。
16.如權(quán)利要求13所述的方法,其中,當(dāng)在當(dāng)前掃頻循環(huán)中所有處理器完成對應(yīng)程序吋,在步驟(d)期間將所有處理器同時轉(zhuǎn)換到所述下ー掃頻循環(huán)中的步驟(b)。
17.一種可編程邏輯控制器(PLC)系統(tǒng),包括 多個可編程邏輯控制器(PLC),每個能夠具有多個PLC功能; 連接所述PLC的多個系統(tǒng)鏈路;以及 連接所述PLC與一個或多個設(shè)備的多個IO模塊; 姆個PLC包括 指配到每個所述PLC功能的一個或多個處理器;以及 耦合到所述處理器并且存儲多個程序或數(shù)據(jù)的至少ー個的至少ー個存儲器; 其中,至少兩個所述PLC功能并行運行。
18.如權(quán)利要求17所述的PLC系統(tǒng),其中,所述系統(tǒng)鏈路是低壓差分信號(LVDS)。
19.如權(quán)利要求17所述的PLC系統(tǒng),其中,每個PLC包括連接對應(yīng)于每個所述PLC功能的所述處理器而使它們能夠彼此通信的多個信道。
20.如權(quán)利要求17所述的PLC系統(tǒng),其中,所述處理器包括多個邏輯解決處理器。
21.如權(quán)利要求17所述的PLC系統(tǒng),其中,所述存儲器包括每個與ー個PLC功能關(guān)聯(lián)的多個第一存儲器和第二存儲器;以及其中,在通信期間在所述處理器之間所述第一存儲器放置所述程序及中間結(jié)果并且所述第二存儲器放置數(shù)據(jù)流變量。
22.如權(quán)利要求21所述的PLC系統(tǒng),其中,所述第二存儲器還包括專門用來分別存儲通過所述系統(tǒng)鏈路傳送的數(shù)據(jù)的系統(tǒng)輸入域和系統(tǒng)輸出域。
23.如權(quán)利要求17所述的PLC系統(tǒng),其中,所述存儲器包括每個與ー個PLC功能關(guān)聯(lián)的多個系統(tǒng)程序存儲器以及乒乓緩存,所述乒乓緩存包括第一存儲器和具有用于存儲輸入數(shù)據(jù)和輸出數(shù)據(jù)的、與所述第一存儲器相同的空間的第二存儲器。
24.如權(quán)利要求23所述的PLC系統(tǒng),其中,所述乒乓緩存包括分別連接所述第一存儲器及所述第二存儲器與所述處理器的兩個仲裁器;以及其中,所述仲裁器控制所述處理器以訪問所述第一存儲器或所述第二存儲器。
全文摘要
公開了具有多個PLC功能的可編程邏輯處理器(PLC)。此PLC包括存儲多個程序或數(shù)據(jù)的至少一個的至少一個存儲器,以及指配給每個PLC功能并且耦合到存儲器的一個或多個處理器。PLC功能并行運行。還公開了操作PLC的方法和具有多個處理器的PLC系統(tǒng)。
文檔編號G05B19/042GK102667649SQ201080053027
公開日2012年9月12日 申請日期2010年9月20日 優(yōu)先權(quán)日2009年9月30日
發(fā)明者L.劉, W.H.呂肯巴赫, W.尚, Y.劉, 張 育 申請人:通用電氣公司