專利名稱:可編程邏輯控制器的擴展模塊尋址方法和裝置的制作方法
技術領域:
本發(fā)明涉及可編程邏輯控制器以及可編程邏輯控制器的I/O擴展模塊的尋址方法和裝置。
迄今為止,可編程邏輯控制器已經(jīng)有些趨于專門化或適于具體類型或類別的設備。然而,用于越來越小型設備的可編程邏輯控制器有增長的趨勢。而且,還有一種趨勢是使用適合于不同工藝流程、系統(tǒng)和設備的可編程邏輯控制器。其結(jié)果是需要可編程邏輯控制器制造商生產(chǎn)更小更廉價的但提供更強適應性和性能的控制器。而且,競爭也迫使制造商生產(chǎn)從小型裝置-如積木式PLC到高度復雜裝置的可編程邏輯控制器。但是,不論尺寸或復雜度如何,都需要制造商在繼續(xù)提供其它性能的同時生產(chǎn)低成本的PLC。
因此,提供具有模塊化方式的PLC變得越來越重要。即能夠通過提供其它性能和/或其它輸入/輸出模擬和/或數(shù)字I/O接口來擴大系統(tǒng)。模塊化系統(tǒng)允許適用于簡單和復雜情況,同時可管理程度越高成本也越高。而且,由于可編程邏輯控制器的使用增多,事實上現(xiàn)在需要這種控制器能夠通過各種裝置在網(wǎng)絡環(huán)境中互連以及被編程和重復編程。
典型的可編程邏輯控制器,包括具有多個I/O接口以用于數(shù)字和/或模擬相互作用的主控制器。然而,經(jīng)常有具體應用所需要的I/O接口與其提供的接口不同或要選用的I/O接口數(shù)目大于通常PLC提供的接口數(shù)。其結(jié)果是到目前為止的可擴展的可編程邏輯控制器具有任選的附加模塊的系統(tǒng)。這些模塊需要一種用于主控制器的裝置以選擇訪問的各個擴展模塊。以前進行這種選擇方法包括使用具有激活每個模塊位置用的各個選擇線的固定底板(fixed back planes)。因此,主控制器激活一特定選擇線來訪問一特定模塊?;蛘?,固定底板與在每一模塊位置處提供的識別地址碼一起使用。所以主控制器經(jīng)一地址總線提供一個地址,該地址由接收模塊與它預先編程的位置地址相匹配。
第三種方法是利用在安裝時變更的每個模塊的地址開關或跨接線(jumper)從而提供一個唯一地址。第四種方法是采用固定序列訪問的方式,其中在某一狀態(tài)改變序列完成之前,每個模塊禁止訪問一鏈中的后續(xù)模塊。在訪問該特定模塊完成之后,它將事務處理轉(zhuǎn)到后續(xù)模塊直到某一主信號表示開始一新訪問序列為止。
第五種方法使用了位置相關數(shù)據(jù),其數(shù)據(jù)報文(data telegrams)從一個模塊傳到另一模塊,其中每一模塊將數(shù)據(jù)元素提取或加到報文中對應于鏈中各模塊位置的報文中地址處。然而,上述方法使用起來越來越有困難且越來越不方便,尤其是在積木式PLC中,由于該種PLC存儲量和處理能力受到限制而且其容納這些功能的尺寸小,所以愈加困難。
而且,PLC的最主要的或許是最重要的一個性能是能夠在需要盡管可快時間內(nèi)運行特定的序列或程序。已經(jīng)認識到實際處理過程經(jīng)常不是高速“處理過程”,測量的各種參數(shù)需要運算,進行這種運算必須以高速方式從而使整個過程不被干擾。這些高速運算一般利用中斷例程。然而至今,這種中斷例程需要用戶使用專門的預置程序段,PLC將對感興趣事件的控制轉(zhuǎn)移到該預定程序段。因此,在用戶能指定何時發(fā)生中斷的同時,用戶也被限制在一個特定的可被執(zhí)行的中斷例程中。所以這限制了處理器的使用或需要非常長的中斷,即,可能感興趣的每種情況都必須編入相同的中斷例程中使得考慮到所有偶然情況的發(fā)生。
而且,越來越需要使用一種通常稱作高速計數(shù)器或功能元件的部件。使用這些計數(shù)器或功能元件來區(qū)分時間、事件頻率等以便啟動后續(xù)事件。一旦預定數(shù)目的事件發(fā)生就需要停止高速計數(shù)器的操作和/或擾亂高速計數(shù)器當前值-即清零以對下一個預定值進行重新編程。因此,在此復位和重新編程期間這會產(chǎn)生時間延遲或中斷。尤其成問題的是當需要一連串高速計數(shù)時,隨后的對計數(shù)器的復位會引起在總的時間期間中累積誤差或偏移。
現(xiàn)有可編程邏輯控制器存在的進一步問題是涉及它們的通信端口??删幊踢壿嬁刂破饕话闾峁┯糜诳刂撇僮飨到y(tǒng)軟件的通信端口。需要這種通信端口以使PLC可以進行編程。然而,這些與PLC通信的接口使用生產(chǎn)商專用通信協(xié)議或生產(chǎn)商庫設置或指定協(xié)議。而且,通信功能是PLC的必不可少部分且使用越來越頻繁,但終端用戶通常不能從用戶程序以一般途徑訪問該端口。至多,有些PLC可以使用戶能將消息發(fā)送給一設備一如打印機,但是不允許收到消息。因此,使用不同的PLC來適用于超出原先設計的或指定的協(xié)議的新的或不同的協(xié)議要困難、昂貴而且有時實際上是不可能的。至多,這些附加協(xié)議不能經(jīng)普通接口或通信端口編程。
另外,現(xiàn)有PLC存在的問題是處理可去除程序存儲(removable programmemory)。可去除程序存儲器是將PLC適用于新設備、不同處理過程、不同參數(shù)等必要的一項功能。至今,這種可去除程序存儲器裝置采用并行存取裝置—如EPROM、帶有電池的RAM或快閃式EPROM。這些可去除盒式存儲器通常必須被插入到另一個器件中—如手持編程器。因此這表明將新程序下載到各個PLC是很麻煩的并且需要外部設備。而且,通常將特定PLC程序在系統(tǒng)中其它PLC或全工廠中類似PLC中傳播是一件很困難的事。
為了改進現(xiàn)有PLC的缺點和滿足對PLC的要求和需要,本發(fā)明將提供一種可編程邏輯控制器,其具有模塊擴展單元,其不需要固定的底板或不需要任意底板是其優(yōu)點。而且還期望生產(chǎn)模塊化、可擴展的PLC,該PLC不需要開關或跨接線的成本和空間,也不需要在安裝時正確設置開關或跨接線。另一個優(yōu)點是可以使用簡單的、低成本的異步邏輯以提供PLC的模塊擴展。還有一個優(yōu)點是所提供的模塊化的可擴展的PLC,該PLC不需要時鐘信號或狀態(tài)機來實現(xiàn)順序操作或通過序列計數(shù)或定時鑒別的數(shù)據(jù)。
本發(fā)明還有一個優(yōu)點是提供一用戶中斷例程,該程序可以動態(tài)地分配(assign)以在可編程控制器中使用。還有一個優(yōu)點是PLC指令和系統(tǒng)允許PLC系統(tǒng)轉(zhuǎn)移對一個或多個感興趣事件—如輸入點的上升沿、高速計數(shù)器當前值等于預置值、特定時間期滿等的控制。還有一個優(yōu)點是除分配一程序段外,PLC還可以從一特定事件中解除分配(De-assign)一程序段,即指定一具體事件不再是由用戶程序作專門處理所感興趣的,以及還根據(jù)特定工作條件對一個事件分配不同程序段。尤其有益的是,它能在程序執(zhí)行期間而不是程序編譯期間動態(tài)地再分配那些中斷例程,并且它可以由PLC系統(tǒng)自動地執(zhí)行以完成控制轉(zhuǎn)移。
還有,其進一步的優(yōu)點是在PLC和系統(tǒng)中用戶定義的可動態(tài)分配的中斷例程,其允許用戶PLC程序在不停止高速計數(shù)器工作和不影響計數(shù)器當前值的情況下動態(tài)地修改指定的高速計數(shù)器的預定值。還期望有一具有高速計數(shù)器的PLC,該高速計數(shù)器設置有預定值,該預定值在感興趣事件,即當前值等于預定值的中斷事件發(fā)生的各個點上是可更新的,從而在不影響計數(shù)器當前狀態(tài)的情況下動態(tài)地對于下一個感興趣事件的預定值重新編程。
另一個所期望特性是具有高速計數(shù)器的PLC,其中該高速計數(shù)器的當前值不用復位為零就可以繼續(xù)計數(shù)同時可以對下一個感興趣的預定值重新編程。還期望一個特性是具有高速脈沖串輸出的PLC,其中高速脈沖串輸出用于形成流水線或排除從而使用戶PLC程序在一操作序列步驟之間沒有“死時間”地完成多步脈沖串輸出操作。
另一個優(yōu)點是能夠有效地消除級聯(lián)誤差,該級聯(lián)誤差是在高速計數(shù)期間進行多次復位計數(shù)器操作時產(chǎn)生的。按照本發(fā)明所述的PLC還有一個優(yōu)點是能夠在一操作序列中提供一附加步驟,該附加步驟可以使所述序列與程序步驟的執(zhí)行并行形成流水線,由此PLC系統(tǒng)在完成正在進行中的一個步驟時自動地開始排隊步驟。
PLC的另一個所期望的優(yōu)點是使用戶獲得PLC所固有的通信功能,從而使用戶對來自用戶程序的功能進行完全的控制。本發(fā)明還有一個優(yōu)點是用戶能產(chǎn)生一個程序且該程序?qū)⒃赑LC管理下執(zhí)行,這種能力可以支持用戶想要實現(xiàn)的任何通信協(xié)議(當然在用于實現(xiàn)這種通信功能的器件的能力范圍之內(nèi))。
本發(fā)明的另一個優(yōu)點是通過利用通用異步接收/發(fā)送器(UART)裝置提供協(xié)議改變方案,從而向系統(tǒng)發(fā)出中斷以表示一個字符與狀態(tài)指示一起被接收到或發(fā)送出去。本發(fā)明還有一個優(yōu)點是使用了可在用戶數(shù)據(jù)空間中獲得的虛擬UART或反射UART。
本發(fā)明的還有一個優(yōu)點是提供虛擬UART,虛擬UART能使用戶發(fā)送和接收中斷、訪問數(shù)據(jù)寄存器的發(fā)送和接收、訪問控制和狀態(tài)信息,即發(fā)送緩沖器空、波特率、奇偶性選擇、成幀誤差指示等。
本發(fā)明還有一個優(yōu)點是提供一PLC,該PLC具有通信端口可互換性,使其允許用戶PLC程序經(jīng)標準通信端口接收信號字符從而該PLC系統(tǒng)將控制轉(zhuǎn)到一用戶指定程序以處理收到的字符,由此提供用戶所期望的和定義的“在空中”(“on the fly”)協(xié)議。本發(fā)明的進一步優(yōu)點是在不使用或不需要附加或增加智能I/O模塊的情況下提供通信協(xié)議變化。
本發(fā)明的另一個優(yōu)點是在于PLC指令和系統(tǒng)功能,該功能使用戶PLC程序啟動接收操作以接收多字符消息從而PLC系統(tǒng)向用戶指定程序轉(zhuǎn)移控制以處理收到的消息。本發(fā)明的還有一個優(yōu)點是提供一種PLC指令和系統(tǒng)功能,該功能允許用戶PLC程序啟動對單個字符、多個字符或二者的結(jié)合進行接收操作從而向用戶指定程序轉(zhuǎn)移PLC系統(tǒng)控制。本發(fā)明還有一個優(yōu)點是提供一種協(xié)議功能,這種協(xié)議功能有效地與現(xiàn)有硬件技術—如條形碼掃描儀、通信尋呼機間的通信。
本發(fā)明的另一個優(yōu)點是提供一種串行訪問的電可擦除的可重編程的只讀存儲器(EEPROM),該EEPROM可用于存儲用戶編程數(shù)據(jù)。另一個優(yōu)點和期望的性能是盒式存儲器(memory cartridge),其可以由用戶命令適當?shù)刂匦戮幊?,然后將用戶程序和?shù)據(jù)傳送到另一個PLC。本發(fā)明還有一個優(yōu)點是提供一種盒式存儲器,其可以完成迄今未知的不尋常的小型盒式存儲器的功能且只需要四路電連接。
本發(fā)明的又一個優(yōu)點是提供一種可編程控制器中的擴展模塊尋址的方法,包括步驟A、從主PLC向至少一個I/O擴展模塊發(fā)送地址號碼;B、在第一I/O擴展模塊接收地址號碼,該擴展模塊利用該號碼為其地址號碼;C、對于不是零(0)的地址號碼,第一I/O擴展模塊將收到的地址號碼減1;D、第一I/O擴展模塊將減1后的號碼發(fā)送給后續(xù)的I/O擴展模塊;E、對后續(xù)的擴展模塊重復步驟C和D。
本發(fā)明的另一個優(yōu)點是提供一種與可編程邏輯控制器(PLC)一起使用的I/O擴展模塊尋址裝置,包括具有至少一條地址控制線的至少一個I/O模塊,這些地址控制線可被連接到PLC,該模塊具有至少一個輸入或輸出;地址控制邏輯,其串行地連接到地址控制線,該控制邏輯適于接收和存貯提供給它的地址號碼以便為每個至少一個I/O模塊定義一個模塊號碼;并且由此該地址控制邏輯減小該地址號碼。
以下結(jié)合附圖對本發(fā)明實施例進行描述。
圖1是本發(fā)明的PLC系統(tǒng)的立體圖,具有一個基本單元、一個擴展I/O模塊和一個總線連接器;圖2是一張類似圖1的立體圖,表示圖1中安裝的各部件之間的互相連接;圖3是關于本發(fā)明基本單元的本發(fā)明盒式存儲器的使用示意圖;圖4是按照本發(fā)明的PLC系統(tǒng)的各種功能和部件的框圖5是根據(jù)本發(fā)明組成和使用多個I/O模塊的示意圖;圖6是根據(jù)本發(fā)明的多個基本單元與多個類似基本單元互相連接的連接圖;圖7是根據(jù)本發(fā)明的基本單元的框圖;圖8是根據(jù)本發(fā)明的I/O模塊框圖;圖9是本發(fā)明基本單元使用的環(huán)狀掃描周期;圖10是類似于圖9的示意圖,表示用戶如何使本發(fā)明的基本單元在掃描周期上任意或所有輸入和輸出點操作;圖11是根據(jù)本發(fā)明由PLC系統(tǒng)處理的應用實例的示意圖;圖12是根據(jù)本發(fā)明表示事件的高速流水線的時序圖;在描述本發(fā)明的操作系統(tǒng)和硬件之前,先總覽一下本發(fā)明的適用范圍以便幫助理解本發(fā)明。而且,應指出在下文描述中,本發(fā)明中遇到的實際書寫編程指令和用戶程序代碼的技術類似于本領域技術人員目前已知的技術,并且某種程度上取決于使用的硬件或操作系統(tǒng)。因此,下文除了充分描述示例程序之外,將不提供實際代碼的更詳細描述。
參照圖1,PLC系統(tǒng)總的由20表示。一個PLC系統(tǒng)包括一個CPU或基本單元22,該基本單元22可以與擴展或輸入-輸出(I/O)模塊24協(xié)作使用。應指出擴展模塊24是多個擴展模塊中的一個。而且,可以認為使用基本的基本模塊22在其本身內(nèi)和對其本身不需要擴展模塊24。由總線連接器26實現(xiàn)基本單元22分別和I/O模塊24間的相互連接,其中總線連接器26與I/O擴展端口32協(xié)調(diào)工作。在本發(fā)明的優(yōu)選實施例中,基本22單元是電連接到I/O模塊24,并且后續(xù)各I/O模塊利用設在I/O模塊24任意一側(cè)的總線連接器和擴展端口32連接到相鄰的I/O模塊(未示出)上。
在本發(fā)明的優(yōu)選實施例中,總線連接器是邊沿卡(edge card)到邊沿卡的連接器,其與基本單元22和擴展模塊24內(nèi)包含的電路協(xié)調(diào)工作。然而,應指出在不脫離本發(fā)明精神和范圍的情況下還可使用其他連接器?;締卧?2和擴展模塊24一起被可滑動地安裝在DIN軌道28上,且基本單元22和擴展模塊24通過保持/DIN夾子30“掛在”DIN軌道28上并維持在適當位置。由于DIN軌道及其與各部件間的操作對于本領域的技術人員易于理解,因此省略了更詳細的描述。
參照圖2,圖2所示為本發(fā)明的PLC系統(tǒng)20的更詳細的立體圖,該圖示出基本單元22與擴展模塊24的連接??梢钥吹交締卧?2有一個輸出開口蓋34和一個輸入開口蓋36。這些蓋子是樞軸鉸接的并且使其與外部器件以與可編程邏輯控制器常用方式相同的方式相互連接,且這種連接方式對本領域的技術人員是容易理解和獲得的。擴展模塊24類似地有I/O模塊上開口蓋38和I/O模塊下開口蓋40,這些蓋子用于適當?shù)妮斎牒洼敵鼍€。關于這點,下文會更充分地描述,在本發(fā)明的最佳實施例中,I/O模塊24按照用戶需要可以有不同的I/O配置—如數(shù)字輸入、模擬輸入或二者適當?shù)亟Y(jié)合。
沿著基本單元22的邊緣安置有通信端口42,通信端口42由連接器構成用于與多個基本單元22相互連接,不僅用于通信目的而且還可作為不同協(xié)議方案的端口,這些及其類似的將在下文更充分地描述。在基本單元22與通信端口42相同的一側(cè)與輸入開口蓋36相鄰部位安置有連接電線用的輸入連接器44。雖然圖中未示出,但是一類似連接器—如連接器46以類似方式安置在鄰近開口蓋34的部位,且I/O模塊連接器50安置在鄰近I/O模塊上開口蓋38的位置。
在基本單元22和I/O模塊24的表面安置有多個狀態(tài)LED(發(fā)光二極管)48。這些LED表示如下文將要充分描述的各個寄存器的狀態(tài)和裝置本身內(nèi)部的運行操作狀況,應指出在PLC上使用狀態(tài)指示器等對于本領域的技術人員是易于了解的并且可以獲得的。而且,可以理解在不脫離本發(fā)明的精神和范圍的情況下,可以使用其它布局的連接器、狀態(tài)指示器、端口開口等,而且還可使用除DIN軌道以外的安裝裝置。
參照圖3,圖3所示為由下文將要充分描述的EEPROM構成的存儲器模塊52沿箭頭53方向如何插入盒式存儲器插座54中。鄰接插座54的區(qū)域位于基本單元22的開口蓋下部。在插座54的任一側(cè)放置有模塊開關56和模擬調(diào)節(jié)器58。模擬調(diào)節(jié)器58用于保持表示模擬調(diào)節(jié)位置的數(shù)字值,且在本發(fā)明的優(yōu)選實施例中,這個值是由模擬調(diào)節(jié)器產(chǎn)生并且由程序適當?shù)匦薷亩〞r器、計數(shù)器當前值、預置值或設定值或限定值。
在本發(fā)明的優(yōu)選實施例中,模塊開關56是三位置開關。當這個開關置于STOP(停止)模式時,盡管此時不允許執(zhí)行用戶程序,但是用戶可以生成/編輯用戶程序。當開關處于RUN(運行)模式時,執(zhí)行駐留在基本單元22中的用戶程序,同時禁止用戶生成或編輯用戶程序。然而,由于改變用戶數(shù)據(jù)值不編輯程序本身,所以在RUN模式下可修改用戶數(shù)據(jù)值。當開關處于第三種或最后一個位置-TERM,基本單元22使得可以通過通信端口或從智能模塊得到模式改變從而確定PLC的操作模式以及經(jīng)通信端口來自正在進行編程或操作的接口裝置的模式改變命令,下文將作詳細描述。
參考圖4,圖4為本發(fā)明的功能模型或簡圖。在本發(fā)明的優(yōu)選實施例中,電源產(chǎn)生24伏和5伏DC輸出作為DC或AC輸入電壓的結(jié)果。電源23給基本單元或CPU22供電。在本發(fā)明的優(yōu)選實施例中,存儲器模塊52連接CPU22并且是邊沿卡連接器的一部分。模塊52是一個只需要在存儲器模塊52和CPU22之間有四根電線的串行裝置(以下將充分描述)。輸入和輸出44、46與CPU22協(xié)調(diào)工作以便如有關可編程邏輯控制器領域的技術人員易知道的那樣接收數(shù)據(jù)或執(zhí)行功能和命令。因此,雖然圖中未示出,但在PLC通電期間,與一般可編程邏輯控制器一樣,執(zhí)行多個診斷檢查—包括確定存儲器模塊52是否存在。而且,通電期間當存在存儲器模塊時也進行診斷測試。
圖5是本發(fā)明的I/O總線擴展特性。圖中所示有存儲器模塊24a、24b-24n,其中n表示總模塊數(shù)。應指出雖然能夠和可以根據(jù)需要的各種模塊的性能和需要的整個系統(tǒng)的運行速度以及CPU基本單元22的性能使用較低或較高編號的模塊,但是本發(fā)明的優(yōu)選實施例可以使用七個模塊。
圖6所示為以20a、20b、20c表示的鄰近PLC系統(tǒng)20的部分的相互連接。不同的PLC系統(tǒng)20通過互連電纜64彼此連接在一起。被連接到至少一個PLC系統(tǒng)20的電纜是編程電纜62(programming cable),該電纜連接正處于編程的裝置60。應指出互連電纜64和處于編程的裝置60可以保持與系統(tǒng)連接,也可以當完成編程、不再需要在不同PLC系統(tǒng)20a、20b、20c之間通信時取消這種連接?;ミB電纜64與每個基本單元22中安置的通信端口連接器42協(xié)調(diào)工作。雖然未示出,但是在不脫離本發(fā)明要旨和范圍的情況下一個或多個I/O模塊22可以連接到一個或多個PLC基本單元22從而連到PLC系統(tǒng)20。在這種方式中,通過在網(wǎng)絡模式或方式中運行,所有PLC可以同時完成編程,且PLC系統(tǒng)之間或編程裝置60之間的通信也可以完成。
存儲器利用與I/O模塊擴展圖7是本發(fā)明的CPU或基本單元22的框圖?;締卧?2的核心是中央處理器,本發(fā)明優(yōu)選實施例中是80C32。在不脫離本發(fā)明要旨和范圍的情況下,能夠和可以使用其它類型的處理器。連接80C32處理器是提供PLC裝置固有的多種功能的ASIC(專用集成電路)。這些特性和“服務”包括
1、處理器總線支持邏輯,包括地址/數(shù)據(jù)解復用器和本地片選(chipselect);2、分頁邏輯,從而將外部存儲器空間映射到80C32處理器程序和數(shù)據(jù)存儲區(qū)域中;3、本地I/O緩沖和過濾;4、直接中斷,轉(zhuǎn)到軟件計數(shù)輸入和轉(zhuǎn)到用戶中斷例程,下文將更充分描述;5、高速輸入計數(shù)器和高速脈沖輸出功能;6、用于擴展模塊24的I/O總線接口;7、監(jiān)視時鐘(watchdog timer);以及8、電位器輸入58的定時器。
還能看到數(shù)據(jù)和地址線連接到80C32處理器并與ASIC、RAM和快閃EPROM協(xié)調(diào)工作。在本發(fā)明的優(yōu)選實施例中,RAM是8×32k字節(jié)的RAM,其具有一電容器以用于提供備份電源從而在間歇斷電期間保持RAM的內(nèi)容。這個32k×8 RAM提供所有易失數(shù)據(jù)的空間—如操作系統(tǒng)暫存填充數(shù)據(jù)、消息緩沖器、非駐留用戶數(shù)據(jù)以及用戶編譯代碼。在不脫離本發(fā)明范圍的情況下還可以采用其他功能元件和/或其他型號的RAM。
在本發(fā)明的一優(yōu)選實施例中,快閃EPROM是128k×8的EPROM,在不脫離本發(fā)明精神和范圍的情況也也可采用其他型號的EPROM。這個快閃EPROM存儲系統(tǒng)代碼且其中有多個扇區(qū)-其中每個扇區(qū)都可單獨擦除和重列編程。但是應指出在不脫離本發(fā)明精神范圍的情況下可使用標準EPROM。還可看到連接到ASIC的有各種管腳輸出,這是一般數(shù)字電路設計常遇到的—如片選、中斷零(INT 0)、中斷(INT 1)以及存儲單元選擇(bankselects)。連接到ASIC的還有隔離的輸出電路,其在本發(fā)明優(yōu)選實施例中是光耦合的并具有用于上述狀態(tài)指示器等的LED指示器。
一個30MHz的主振蕩器提供系統(tǒng)定時,且80C32連接到其復位管腳,從而有利于正在進行中的掉電,因此能有效地關閉。連接80C32處理器的還有RS-485驅(qū)動器,該驅(qū)動器連接通信端口連接器42。雖然在不脫離本發(fā)明要旨和范圍的情況下也可以采用其他驅(qū)動器,但本發(fā)明優(yōu)選實施例中使用的是485驅(qū)動器。在這種情況情況下使用了一個RS-232轉(zhuǎn)換器如圖中所示。該RS-485驅(qū)動器還與動態(tài)可變中斷方案(dynamically changeableinterrupt scheme)協(xié)調(diào)工作,下文中將詳細予以描述。
連接80C32處理器的還有一串行時間的時鐘以提供實時信息。如圖所示,設有一個連接80C32處理器的一個8×8k的串行EEPROM來存儲用戶代碼和用戶及系統(tǒng)數(shù)據(jù),這些代碼和數(shù)據(jù)在沒有電的擴展期間必須要保持住。這樣提供的一個好處是在電源中斷、變化等之后不需用戶將代碼下載到PLC上。這個串行EEPROM位于CPU或基本單元22中。如圖3所示第二個具有8×8k存儲量的串行EEPROM構成盒式存儲器52的核心并且按需要間歇性地在需要時與PLC基本單元22連接。因為只需四個電連接線就可以用非常小的盒式存儲器,所以使用一串行存取EEPROM。另外由于這個存儲器的存取是串行的,因此將其做成連接器就更小更便宜并且更容易防止靜電等干擾。這與以前使用的并行存取方法相比尤其明顯。并行存取方法一般需要20或更多個連接線且并行存取方法極易受到靜電釋放干擾,將其連接器化和防止靜電干擾也昂貴。另外,當與存儲器模塊如模塊52進行接口操作時一般對速度無要求,所以可以不考慮讀寫的串行存取的時間損失。
該EEPROM盒式存儲器52經(jīng)傳統(tǒng)的電連接器,最好以邊沿卡形式連接到80C32。應指出盡管本發(fā)明優(yōu)選實施例中使用了一個EEPROM,但是盒式存儲器52可以簡單地由一個ROM構成,該ROM使用戶程序可經(jīng)80C32直接下載到駐留的串行EEPROM。以這種方式,ROM形式的盒式存儲器能用于更新多個PLC基本單元。然而,使用串行EEPROM是為了將用戶碼能從駐留串行EEPROM上載到存儲器模塊以便將來傳播到其他PLC,由用戶等進行使用或?qū)W習從而使PLC成為一種“編程器”。
如圖所示的指示器LED-如狀態(tài)指示器48表示基本單元22是否處于FAULT(故障)、STOP或RUN模式。因此,如圖1和圖2所示的這些指示器,若表示SF-即表示系統(tǒng)故障(System Fault),SF最好用紅燈表示,當燈亮時表示基本單元22出現(xiàn)致命錯誤。類似地,RUNLED最好用綠色表示PLC處于運行模式并且正在執(zhí)行用戶程序,而STOPLED最好用黃色表示該可編程邏輯控制器處于STOP模式且停止運行程序。
其余的指示器,當標記為I時,最好為綠色,向PLC系統(tǒng)表示各輸入點的當前狀態(tài),從而作為邏輯側(cè)狀態(tài)指示器(logic side-status indicators);而基本單元22上的指示器標記為Q時,最好用綠色表示各輸出點的當前狀態(tài),因此是邏輯側(cè)狀態(tài)指示器。而且,雖然未在圖中示出,但是擴展模塊24也可以利用Q指示器,如果各輸出點是位于該模塊上。
如所示出的,盒式存儲器52不使用編程裝置60即向基本單元如PLC系統(tǒng)20提供現(xiàn)場(field)升級能力。盒式存儲器52有效地復制基本單元22中提供的內(nèi)部不易失的存儲器,并且在安裝時更換(Supercede)在駐留串行EEPROM中包含的信息。
安裝或使用盒式存儲器52是相對簡單的。為了從盒式存儲器向基本單元22的內(nèi)部存儲器復制程序,所需做的全部工作只是安裝盒式存儲器52并且給基本單元22周期性地供電(斷電然后供電)。因此,盒式存儲器52可以按照需要被去掉或保留在原位。當從盒式存儲器52下載程序時,首先利用與串行EEPROM相同的總線將信息加載到駐留串行EEPROM中。然后,程序被加載到執(zhí)行和數(shù)檢驗的RAM中以確定下載的完整性并隨后再次加載到駐留EEPROM中。以這種方式,使用RAM來保持輸入值(如測量的加侖數(shù),稱量磅數(shù)等)而駐留串行EEPROM保持實際用戶程序。
一個大電容用來保持存儲所述用戶值的RAM部分區(qū)域中的數(shù)據(jù)。為將程序復制到盒式存儲器52需要做的全部工作是如先前所述的那樣安裝盒式存儲器52。然后,必須使用編程裝置如60來命令80C32處理器將存儲信息拷貝到盒式存儲器52,然后該盒式存儲器可按照需要被去掉或留在原位。當向盒式存儲器52寫用戶程序時,首先將該程序從駐留串行EEPROM發(fā)送到執(zhí)行和數(shù)檢驗的RAM中,然后,如前所述用戶程序與和數(shù)檢驗值一起被發(fā)送到盒式存儲器。當基本單元22接收命令從而將程序拷貝到盒式存儲器時,RAM數(shù)據(jù)如用戶程序用戶數(shù)據(jù)的第一128/512字節(jié)、站地址、駐留范圍確定(如果存在)、固定(freeze)/拷貝狀態(tài)和RUN到STOP變化的輸出表值、口令和限定類別以及所有增強操作數(shù)和他們的值都自動拷貝。
圖8為按照本發(fā)明的一擴展I/O模塊24的功能框圖。如前所述,多個模塊利用邊沿卡連接器端對端的相互連接。在本發(fā)明的優(yōu)選實施例中,對于一個基本單元22,最大可有7個模塊。然而,在不脫離本發(fā)明的范圍的情況下,其他數(shù)目的模塊也可以被使用,這要取決于基本單元22的性能和環(huán)境。由于模塊24不使用公用底板并且他們實際上是自己識別,所以大多數(shù)但不是全部的連接是菊花鏈。關于這點,從基本單元22到全部模塊24的電源(未示出)和邏輯連接都是菊花鏈。信號線IODB用作I/O數(shù)據(jù)總線;IORA用作I/O寄存器地址;IOWRT-N用作I/O寫選通;IORD-N用作I/O讀選通以及I/O DATEN用作I/O使能輸出;所有這些信號均是經(jīng)這些模塊的菊花鏈。然而,可以看到用作I/O模塊地址的邏輯引線IOA在每一模塊被邏輯地中斷和再產(chǎn)生。
在本發(fā)明的優(yōu)選實施例中,IOA模塊選擇地址在它經(jīng)過每一模塊時在數(shù)值上遞減。當一個模塊在其IOA線上接收到例如零(0)的地址時,該模塊被識別。因此,當CPU22將“0”的地址給到鏈的開始處時,第一個模塊被選中。當CPU22給出1的地址時,第二個模塊看到0的地址被選中,如此進行下去。
所以,當開始工作時,CPU22將7的地址給第一模塊。然后,這個模塊檢查是否給出的地址是0,如果不是,則該地址減1并傳送到下一個模塊并且進行同樣操作直到一個模塊收到0的地址,由此讓模塊知道它的地址是0。照此,如果一個模塊沒有收到0地址,則該模塊知道給它的編號不是它自己的模塊號。因此,任意混合的I/O模塊類型可以被聯(lián)接而不用地址開關和固定底板。不需要從每個模塊向CPU給出地址,原因在于設計的用戶程序知道連接的是哪個模塊及其模塊地址。因此CPU22本來就知道應有多少模塊是PLC系統(tǒng)20的一部分。對于每個模塊唯一重要的是要知道自己的模塊號。照此,當CPU22從一個模塊請求信息時,只是那些特定模塊響應而且因此甚至不需要模塊將自己的地址號給出到信號線IOA上。然而,應指出在不脫離本發(fā)明要旨和范圍的情況下,擴展模塊24實際可以包括給CPU的地址。類似地,模塊IOA地址可以在它們的地址號被傳播時被遞增以便讓CPU確定或知道有多少個模塊在該線上。
模塊24本身的控制邏輯是本領域技術人員容易知道和獲得的數(shù)字電路。每一模塊中的相互連接是ID寄存器,該ID寄存器連接控制邏輯和信號線IODB。這個識別寄存器與I/O和模塊邏輯84相互作用并且用于使處理器22識別連接到CPU的是什么類型的模塊。通過模塊類型適當?shù)鼐唧w說明模塊24是分離的或模擬的模塊、輸入和輸出點的混合等。
類似地,該寄存器也被連接到信號線IODB和控制邏輯,且用于給出從外部裝置讀取的特定值或作用于從CPU22輸出的命令。如有關識別寄存器所述的,這個寄存器還連接到I/O邏輯控制單元84。這個邏輯控制I/O邏輯和控制單元84包括例如濾波器、模/數(shù)和數(shù)/模轉(zhuǎn)換器、隔離電路等熟知的用于I/O的裝置。
圖9所示為CPU22的RUN模式期間常用的掃描周期。應指出,在不脫離本發(fā)明的要旨和范圍的情況下,在正常操作或不同序列期間,考慮到其它因素能夠和可以利用其它掃描周期。因此,在本發(fā)明的優(yōu)選實施例中,基本掃描周期由五個操作組成,開始是讀取輸入,其后是執(zhí)行用戶程序。接著是處理通信請求。然后是下文將會詳細描述的內(nèi)部內(nèi)務處理零碎工作。最后是適當?shù)貙懰休敵?。然而,如下文將會詳細描述的,使用戶能夠發(fā)出中斷是根據(jù)用戶按照它們出現(xiàn)的順序設定的優(yōu)先級來提供的。在本發(fā)明的優(yōu)選實施例中,當中斷事件發(fā)生時中斷處理是與掃描異步完成的。
如上所述,每一個掃描周期都是從讀取輸入位的當前值開始,然后將這些值寫入RAM(圖7)中包含的輸入圖像寄存器。接著開始執(zhí)行程序,該程序從第一個指令直到最后一個指令執(zhí)行。照此,在該程序或中斷例程執(zhí)行期間,即時的I/O的指令最好提供對輸入和輸出的即時訪問。而且,如果用戶確定使用中斷,與每個中斷事件有關的例程作為程序的一部分被存儲。中斷例程不是作為圖9所示的一般掃描周期的一部分來執(zhí)行,而是只有當中斷事件發(fā)生時被執(zhí)行,當然其可以出現(xiàn)在掃描周期的任一點上。
在掃描周期的消息處理部分,PLC基本單元22處理由通信端口收到的消息。其后,在該周期的自診斷階段,做內(nèi)部內(nèi)務處理零碎工作。這些零碎工作包括對可編程邏輯控制或固件和用戶程序存儲器做周期性地自診斷檢查或以及作I/O模塊狀態(tài)檢查。掃描周期的最后一個階段是有關輸入/輸出,借此圖像寄存器值被寫入輸入模塊/從輸出模塊讀取,從而完成一個掃描周期。在本發(fā)明的優(yōu)選實施例中,基本單元22不自動更新作為掃描周期的部分的模擬輸入和輸出的模擬值,因此不用保持模擬I/O圖像寄存器。然而,這些值可以直接由用戶程序訪問。
圖10所示為本發(fā)明使用的強制功能(force function)型掃描周期。人們已經(jīng)發(fā)現(xiàn)這種掃描周期是重要的,不僅因為當?shù)谝淮芜\行有故障(bug)時,一般PLC可以編程;而且因為其能夠動態(tài)地改變一些功能—如中斷、復位等需要仔細控制和精度的操作。例如使用強制功能的例子有臨時重寫(overwrite)輸入狀態(tài)從而調(diào)試應用邏輯;重寫離散輸出點可變存儲器和其它數(shù)據(jù)以及利用具有強加存儲器位的轉(zhuǎn)移指令跳過用戶程序。在如圖10所示的強制功能掃描周期中,強加的數(shù)據(jù)值可以由用戶程序輸入輸出更新周期或通信處理來改變。由此,基本單元22在掃描周期的不同點上再給出每個強加值,并且可以按照所期望的在程序執(zhí)行之前、期間、之后進行,以及消息處理期間或之前以及緊挨輸出寫之前進行操作。高速功能和中斷功能人們知道利用中斷處理某些當時知道的系統(tǒng)信息是極其有用和有益的。現(xiàn)在的PLC一般不能處理多于一個的中斷。但是,本發(fā)明的PLC基本單元22不用等待掃描周期的特定部分,通過使被分配的例程任務滿足利用當時中斷/事件知道的系統(tǒng)信息的要求,通過高速處理這些中斷,從而實現(xiàn)中斷/事件例程的動態(tài)分配。另外,本發(fā)明還允許解除分配用戶程序部分以便使用戶程序在發(fā)生感興趣的事件時將控制轉(zhuǎn)移。已經(jīng)發(fā)現(xiàn)與現(xiàn)在的PLC相比,現(xiàn)有的PLC只在編譯期間進行中斷分配,從而實際上是在靜態(tài)條件下進行處理;而本發(fā)明允許在程序執(zhí)行期間動態(tài)地分配中斷,這是一個很大的優(yōu)點。因此,動態(tài)用戶-中斷例程分配可以將用戶程序部分指定給在動態(tài)環(huán)境中的一個中斷事件,且使PLC基本單元22自動實現(xiàn)控制轉(zhuǎn)移。
在本發(fā)明的一個優(yōu)選實施例中,基本單元22支持8個I/O中斷事件,這些中斷事件可以根據(jù)上升沿事件和下降沿事件。但是,應指出在不脫離本發(fā)明要旨和范圍的情況下,實際中可以有更少或更多的中斷事件。另外,本發(fā)明的基本單元允許2個定時中斷發(fā)生、兩個串行通信中斷發(fā)生(接收/發(fā)送);根據(jù)方向改變、外部復位的最多可達七個高速計數(shù)器中斷及兩個脈沖串輸出中斷。
在本發(fā)明優(yōu)選實施例中,所有這些中斷的優(yōu)先順序是按照固定的優(yōu)先級方案由高到低確定好的。該優(yōu)先級方案最好是通信中斷、I/O中斷、定時中斷。每個中斷在各自優(yōu)先級分配范圍中,根據(jù)先來先處理的原則由基本單元22處理。另外,只有一個用戶中斷服務例程是在任意時間點一直是激活的,并且如果例如定時中斷正在被處理,那么后續(xù)分離位中斷或通信中斷都不會優(yōu)先于定時中斷例程。但是,發(fā)生于其他中斷正在被處理時的多個中斷則要按照所述的優(yōu)先級方案進行排隊以在以后作處理。但在不脫離本發(fā)明要旨和范圍的情況下,還可以采用其他的優(yōu)先排序方案。
在本發(fā)明的優(yōu)選實施例中,一些累加邏輯最好被存儲以供中斷使用或在中斷期間使用,該累加邏輯可包括—如觸點、線圈和累加信息。因此,為了使用本發(fā)明的中斷功能,需要做的全部工作是當事件發(fā)生時,將中斷事件與用戶希望執(zhí)行的程序段聯(lián)系起來。這項工作可以在用戶程序編程期間通過簡單的相連指令就可完成。已發(fā)現(xiàn)通過利用相連指令,用戶有可能將多個中斷事件與一個中斷例程相連。而且,在本發(fā)明的優(yōu)選實施例中,總體上說根據(jù)用戶的具體要求,可以使能或禁止所有中斷?;蛘呤?,通過使用簡單的分斷(detach)指令來切斷中斷事件與中斷例程之間的聯(lián)系可以禁止單個中斷,從而使中斷返回非活動狀態(tài)或被忽略狀態(tài)。
因此,通過這里提及的種類進行優(yōu)先排序和使用中斷,用戶現(xiàn)在可以實現(xiàn)許多增加的功能。其中一個功能是使用基本單元22的串行通信端口42,將其稱之為自由端口模式。在這種自由端口模式中,用戶程序可以決定和定義如下特征波特率、每字符的各個位、奇偶性以及特定的協(xié)議等。其可以由使用接收和發(fā)送中斷來實現(xiàn),其中接收和發(fā)送中斷可以使用戶對基本單元編程以便進行編程受控的通信。
通信端口啟動中斷的一個例子是使用有關于條形碼閱讀器、秤、焊接設備、安全編碼標記設備(Security encoded badge)以及信用卡型閱讀器等的接收功能,這里僅是舉幾個例子。在該例子中,在有關所需的協(xié)議和用來啟動中斷的實際字符或代碼方面完全取決于用戶。或者是,在傳輸功能模式,消息可以被發(fā)送到打印機或顯示器,這些都是所述通信中斷優(yōu)先級方案的一部分。
在本發(fā)明的一優(yōu)選實施例中,傳送(X/T)消息允許該單元用緩沖區(qū)的最后一個字符被發(fā)送后產(chǎn)生的中斷將一個或多個字符的緩沖區(qū)發(fā)送。類似地,由每個接收的字符產(chǎn)生一個中斷,在中斷控制下執(zhí)行通信的接收。
如前所述,I/O中斷包括上開/下降沿中斷、高速計數(shù)器中斷和脈沖串輸出中斷。上升和下降事件可以對每個輸入點捕獲,而高速計數(shù)器中斷允許用戶響應這些情況-如到達一個預定值的當前值、計數(shù)方向改變(該方向?qū)谡谵D(zhuǎn)動的軸,如電機等的轉(zhuǎn)動方向的反向)以及外部計數(shù)器復位。每個高速計數(shù)器事件允許實時地采取行動并且能響應不能由一般PLC控制器掃描速度控制的高速事件。而且,脈沖串(pulse train)輸出中斷為輸出的完成的用戶程序提供即時的通知,例如可在步進式電機遇到的規(guī)定數(shù)目的脈沖。
關于本發(fā)明的定時中斷功能,一個中斷事件在每次定時器到時間時將控制傳送給合適的中斷例程。這種功能在以規(guī)則間隔對模擬輸入進行采樣中是極有用的。在本發(fā)明的優(yōu)選實施例中,定時中斷被使能并且當中斷例程被連接到定時的中斷事件時定時開始。本發(fā)明的一個顯著優(yōu)點是在這種連接期間,系統(tǒng)捕獲周期時間值從而后續(xù)的變化不影響周期時間。因此,這使得定時器可在中間點而不是在定時器的開始進行有效地“復位”。所以,用戶能夠在系統(tǒng)中出現(xiàn)事件時動態(tài)地分配問題塊。
如前所述,在本發(fā)明的優(yōu)選實施例中,基本單元22內(nèi)駐留有三個高速計數(shù)器。但是,在不脫離本發(fā)明的要旨和范圍的前提下,可以使用其它數(shù)量的計數(shù)器。這些計數(shù)器的計數(shù)方向(向上或向下)由利用方向控制位的用戶編程者控制。每個計數(shù)器要有用于時鐘、方向控制、復位和開始等的輸入,并且還要提供正交模式以便在1×或4×之間選擇記數(shù)速率。在本發(fā)明優(yōu)選實施例中,這些時鐘中至少有兩個彼此相互獨立。
而且,當一個具體時鐘的復位輸入被啟動時,該復位清除當前值并且保持它在清除態(tài)直到該復位被取消。當用戶啟動開始輸入時,它允許計數(shù)器計數(shù)并連續(xù)計數(shù),而該次開始的取消使計數(shù)器當前值保持恒定并忽略時鐘事件。另外,如果開始輸入是激活的同時復位保持激活態(tài),則當前值被清除。在使用高速計數(shù)器之前,利用高速計數(shù)器定義指令選擇計數(shù)器模式以便在特定高速計數(shù)器和計數(shù)器模式之間提供所述的必需的聯(lián)系。
通過利用位于當執(zhí)行高速計數(shù)器定義指令時使用的各個計數(shù)器的控制字節(jié)中的控制位來在至少一個計數(shù)器選擇激活狀態(tài)和1×/4×計數(shù)模式。其后,一旦用戶已經(jīng)定義了要使用的計數(shù)器以及這個特定計數(shù)器的計數(shù)器模式,用戶就可以對該計數(shù)器的動態(tài)參數(shù)進行編程。每個高速計數(shù)器有一控制字節(jié),該字節(jié)使相關的計數(shù)器使能操作和禁止操作、使計數(shù)器計數(shù)方向可被控制或全部模式用初始的計數(shù)方向、使當前值被再次加載以及使該預定值被加載。
而且,通過使用如前面所述的動態(tài)中斷能力,尤其是作為高速計數(shù)器的一部分,可以實現(xiàn)動態(tài)預置值,且可以為高速脈沖串輸出提供流水線排隊。這使得后續(xù)操作與被完成的先前操作的執(zhí)行并行。而且,基本單元22在完成前一個操作后,開始后續(xù)操作,從而使得從一個序列順利地轉(zhuǎn)移到下一個序列和在該序列可被完成時刻或該序列中另一個步驟由用戶程序排成流水線時將控制傳送到用戶指定的程序。通過避免眾多步驟與多步序列之間的“死時間”,大大加速了整個處理過程并更充分利用了本發(fā)明的高速能力。
圖12所示的時序圖表示后續(xù)操作與當前操作是如何重疊或排成流水線以及流水線操作的自動開始是如何實現(xiàn)的。實際上,該脈沖串類似于使用前面提到的有關高速計數(shù)器的預置。而且,還提供在預置間隔后改變脈沖寬度或計數(shù)數(shù)目的能力。
并且,在本發(fā)明的優(yōu)選實施例中,基本單元22為給定數(shù)目的脈沖和指定的周期時間提供具有50%占空比的方波輸出的脈沖串輸出。在脈寬調(diào)制(PWM)功能中,基本單元22提供具有可變占空比輸出的固定周期時間。為了從普通連續(xù)模式或功能改變或啟動脈寬調(diào)制,由計數(shù)器完成更新。關于這點,每個脈沖串輸出或脈寬調(diào)制產(chǎn)生器中本身有一個控制字節(jié)-最好是一控制字節(jié),一周期時間值和一無符號的脈沖寬度值,一16位數(shù)值和一也是無符號的脈沖記數(shù)值以及一32字節(jié)值。其后,通過在程序中簡單執(zhí)行脈沖指令(PLS)啟動操作,由此使基本單元22讀取指定的存儲器位的位置并而對PTO或PWM產(chǎn)生器編程。
由于上面脈沖串輸出(PTO),則所提及的流水線是可能實現(xiàn)的。這可由除控制信息外的兩個狀態(tài)位來實現(xiàn),其中控制信息表示產(chǎn)生的特定數(shù)目的脈沖被產(chǎn)生和/或是否發(fā)生流水線或溢出情況。這種PTO功能允許將至少兩個脈沖輸出特性或者是一串在一起或者是一個排在另一個之后,由此在后續(xù)輸出脈沖或之間產(chǎn)生連續(xù)性。自由端口和用戶可定義的通訊協(xié)議如前所述,本發(fā)明采用UART。發(fā)現(xiàn)與前面所述的中斷能力一起使用UART可以使本發(fā)明的通信端口42可完全適應于用戶定義的或可定義的協(xié)議方案或為現(xiàn)存標準的部分的各種方案。但是,不是生產(chǎn)在其中具有多個協(xié)議的基本單元22,而是在本發(fā)明的優(yōu)選實施例中,所有協(xié)議中除了用于有關基本單元22自身PLC編程所用的之外的協(xié)議都必須在用戶程序中處理。而且,通過使用戶使用/適應/定義一協(xié)議方案,使得用戶可能需要與新設備或可能非常舊的設備相互作用的適當方案是可能實現(xiàn)的。
如前所述,可以利用通信端口42來使用和選擇具有用戶定義協(xié)議的自由端口模式。在本發(fā)明的優(yōu)選實施例中,所有與通信端口42進行的通信都是產(chǎn)生的中斷。用戶程序通過使用這些中斷-如接收中斷,接收或發(fā)送中斷以及接收/發(fā)送指令來控制端口操作。因此,為了啟動或進行自由端口或可變協(xié)議操作(且自由端口標志位已被設置以便建立下面將會充分描述的自由端口的通信)采用前面所述的中斷性能。一旦開始一中斷,用戶程序如前所述方式用于選擇波特率、奇偶性、START(開始)和STOP(停止)位以及多個數(shù)據(jù)位,這些多個數(shù)據(jù)位在本發(fā)明的優(yōu)選實施例中是7個或8個數(shù)據(jù)位寬度。通過結(jié)束中斷例程或禁止操作以及當CPU12進入STOP模式時重新建立正常通信可以很簡單地完成從自由端口模式退出。
上面提及的與端口42進行的通信開始一次中斷。但是,為使CPU22在正被使用的編程裝置60(缺省模式)與自由端口通信之間存在區(qū)別,必須要設置一標志位。因此,通過使用一專用標志位(SF)可以選擇通信端口的有效功能。所以,在本發(fā)明的優(yōu)選實施例中,該專用標志位的缺省或關閉狀態(tài)使用戶能夠?qū)⑼ㄐ哦丝?2用作編程器接口如圖6例子中所示。而且,用戶程序可以打開控制通信端口使用的專用標志位從而使用戶程序能夠通過作為自由端口的這個通信端口發(fā)送或接收消息。如這里所述,該專用標志位能由用戶程序啟動、I/O啟動或通信端口啟動。
因此,在本發(fā)明的優(yōu)選實施例中,進入通信端口42的任何通信被當作中斷處理。如前所述,在該中斷中,專用標志位的缺省狀態(tài)用于使通信端口42作為普通編程器接口工作。但是,如果該標志位被打開,然后通信端口42用作或進入自由模式而允許用戶定義使用的協(xié)議方案。在這種方式中,由于通信端口總是將經(jīng)通信端口進行的通信視作中斷,所以協(xié)議方案可以是任意包括單一字符或多字符消息的方案。在自由端口通信模式期間,用戶程序被停止直到中斷被終止/完成。另一方面,來自基本單元中包括的任意I/O或任意模塊或用戶程序本身確定的條件的輸入可以通過使用一中斷例程將通信端口從編程模式切換到自由端口模式。
自由端口模式的另一方面是經(jīng)過端口42,基本單元22可以與例如打印機進行通信,打印機一般與通信端口連接以便可以打印適當?shù)腻e誤消息、數(shù)值等。因此,這使得不同類型打印機或甚至記錄裝置都能使用。這種用途的另一個例子是尋呼機的尋呼使用。即哪里I/O程序條件存在就會反過來開始一中斷,該中斷允許并且指示通信端口與例如電話線或其他在用戶中斷程序控制下的通信裝置相互作用。其可以用于撥打維護人員BP機或?qū)ず魴C的號碼并提供預先編程好的消息-如材料用完、機器停止等。類似地,制造處理過程可利用語音合成器來指示具體的缺陷、引起對具體操作器的注意等,而不是利用尋呼機尋呼方案。
另外,自由端口協(xié)議使用的另一個例子是有關汽油泵的使用和用于智能或標準卡的卡閱讀器的使用,其中卡閱讀器與通信端口相互作用從而在PLC自由端口適當?shù)乜刂迫剂媳玫那闆r下提供或確認用戶帳號、燃料類型以及燃料允許量等。另一方面,該PLC自由端口能夠用來測量使用的燃料量并經(jīng)通信端口向中央管理機構報告此使用燃料量,由此使例如稅務管理機關將泵出的燃料量與燃料零售商/批發(fā)商實際付的稅和費用相比較。
例子圖11所示為一示例的樣本程序的示意圖,該樣本程序可根據(jù)本發(fā)明解決。具體講,如圖中所示的第一、第二泵控制器66,72分別由相應的第一、第二泵來控制。一排放泵80設置在與排放閥相鄰的位置,該排放閥76直接與箱74相連且蒸氣閥(steam valve)78也直接與箱74相連。在這個示例方案中,混合箱74用于產(chǎn)生顏料(paint)的不同顏色。有兩根輸料管道分別與泵控制器1和2相連,其中每一根管道帶入不同成分。在箱74的底部有一根輸送管道靠近排放閥76,并且排放泵80將完成的顏料混合物輸送給需要的中間工作區(qū)域(未示出),在操作期間,期望控制填充操作,同時監(jiān)視箱中水平并控制混合和供料周期。因此,操作過程如下1.填充箱等待泵開始推動要按動的按鈕開關。當這些按鈕開關閉合時,開始1和2。如果兩個泵停止開關中任何一個被斷開,則停止泵工作。填充不同成份的顏料直到高限開關閉合。然后關閉兩個泵。
2.混合和加熱諸成分在規(guī)定周期內(nèi)(例如10秒)打開混合器電機和蒸氣閥。
3.排放混合箱中的成分在混合和加熱循環(huán)后,打開排放閥排放容器內(nèi)成分。排放該泵直到箱中水平到達低限。
4.計數(shù)每個循環(huán)計數(shù)每次混合箱經(jīng)歷的完全/填充/混合/排放的循環(huán)。
圖表1(Chartl)所示為一編程和測試邏輯用的樣本程序1,其中該邏輯是對利用圖11給出的例子對本發(fā)明的PLC進行編程所必需的。因此,在該圖表左邊可看到梯形邏輯框圖,在圖表1右邊可看到實際代碼。其它的和中間步驟都沒有給出,因為對本領域技術人員而言,一般PLC編程是件容易的工作。
例子2-自由端口通訊本發(fā)明的另一個例子如下所述。這個例子是利用如前所述的自由端口通信或可變協(xié)議方案,并且利用這種通信接收來自條形碼閱讀器的字符串。在這個例子中,具有不同條形碼的八種產(chǎn)品類型在一條輸送線上混合并且必需分送至兩個目的地之一做最終包裝。條形碼閱讀器讀取包括12個ASCII字符的條形碼,該條形碼以回車和換行字符結(jié)束。當接收到回車和換行字符時,開始檢驗條形碼。根據(jù)該條形碼值,激活分送裝置閂從而將產(chǎn)品送到庫A或B。條形碼的最后4位確定產(chǎn)品要送到的庫。在這個例子中使用或假定當下載用戶程序時,特定數(shù)據(jù)庫(DB1)的示例數(shù)據(jù)值(VO-V95)也已下載。因此,下面的表1-4所示描述了使用的不同地址和參數(shù)。
表1中描述所用的輸入和輸出,可以看出,字節(jié)的數(shù)目對應于地址的大小。而且,可以看到表1處理的是由基本單元22完成的I/O功能,表2,3,4(如下面將會充分描述的)處理的是基本單元22內(nèi)的內(nèi)部數(shù)據(jù)移動。表C2處理的是永久數(shù)據(jù)存儲,同時可以看到12位字節(jié)正好對應于地址的12位。類似地,表C3處理具有字節(jié)和地址大小的易失性數(shù)據(jù)存儲,而表4處理子例程中斷描述,其掌握整個采樣程序的全部操作。
圖表2所示為易于實現(xiàn)上面所述的條形碼閱讀程序的主程序、子例程和中斷例程。從圖表2可看到,圖表的不同部分對應于表1、2、3、4列舉的功能和描述。
權利要求
1.一種可編程邏輯控制器(PLC)中擴展模塊尋址的方法,包括步驟A.從主PLC向至少一個I/O擴展模塊發(fā)送地址號碼;B.在第一I/O擴展模塊接收所述地址號碼,所述擴展模塊利用所述號碼作為其地址號碼;C.對于不是零(0)的地址號碼,所述第一I/O擴展模塊將所接收到的地址號碼減1;D.所述第一I/O擴展模塊將所述遞減后的號碼發(fā)送到續(xù)I/O擴展模塊;以及E.對后續(xù)模塊重復步驟C和D。
2.一種用于可編程邏輯控制器(PLC)的I/O擴展模塊尋址裝置,包括具有至少一個地址控制線的至少一個I/O模塊,所述地址控制線可與PLC相連,所述模塊具有至少一個輸入或輸出;地址控制邏輯串行連接到所述地址控制線,所述控制邏輯適應于接收和存儲給其的地址號碼從而為每個所述的至少一個I/O模塊定義模塊號碼;以及由此,所述地址控制邏輯遞減該地址號碼。
全文摘要
一種可編程邏輯控制器的擴展模塊尋址方法和裝置。PLC基本單元向附著其上的一擴展模塊和多個擴展模塊發(fā)送地址。每個擴展模塊接收該地址號碼并考慮該地址號碼是否是自己的地址號碼。除非給它的地址號碼是零,否則該擴展模塊將地址號碼遞減并將其傳送到下一個模塊。由此,每個模塊都知道自己的地址。各個擴展模塊內(nèi)部有許多地址和數(shù)據(jù)線,這些地址和數(shù)據(jù)線中除了由每個模塊電路所中斷的地址線之外為所有模塊公用,其中各個模塊電路用于將地址號碼遞減并將其沿被中斷的地址經(jīng)傳送到下一模塊。
文檔編號G05B19/05GK1171849SQ95197170
公開日1998年1月28日 申請日期1995年7月12日 優(yōu)先權日1994年12月29日
發(fā)明者艾倫·D·麥克納特 申請人:西門子能量及自動化公司