專利名稱:用于可編程邏輯控制器的輸入濾波器和相關(guān)的方法
背景發(fā)明領(lǐng)域本發(fā)明涉及可編程邏輯控制器(PLC)。
相關(guān)信息可編程邏輯控制器(PLC)是近期在過程控制技術(shù)中開發(fā)的。作為過程控制的一部分,PLC被使用來監(jiān)視來自各種各樣的輸入點(輸入傳感器)的輸入信號,它們報告在控制過程中出現(xiàn)的事件和條件。例如,PLC可監(jiān)視諸如電動機速度,溫度,壓力,容積流量等等的輸入條件??刂瞥绦虮淮鎯υ赑LC內(nèi)的存儲器中,指令PLC遇到特定的輸入信號或條件時采取什麼行動。響應(yīng)于由輸入傳感器提供的這些輸入信號,PLC得到和產(chǎn)生輸出信號,這些輸出信號經(jīng)過PLC輸出點傳輸?shù)礁鱾€輸出裝置,諸如傳動機構(gòu)和繼電器,以便控制過程。例如,PLC發(fā)出輸出信號來加速或減速傳送機,旋轉(zhuǎn)機器人的手臂,打開或閉合繼電器,提高或降低溫度以及許多其它可能的控制功能,多得無法一一列出。
以上提到的輸入和輸出點典型地分別與輸入模塊和輸出模塊相聯(lián)系。輸入模塊和輸出模塊合在一起在這里被稱為I/O模塊。本領(lǐng)域技術(shù)人員又把這樣的I/O模塊稱為I/O卡或I/O板。這些I/O模塊典型地是可插入到位于PLC的背板的各個插槽中。插槽通過主總線被耦合在一起,主總線把被插入到插槽中的任何的I/O模塊耦合到中央處理器(CPU)。CPU本身可以位于可插入到位于PLC的背板的各個插槽中的一個卡上。
圖36顯示一個典型的作為系統(tǒng)3610的可編程邏輯控制器系統(tǒng)。系統(tǒng)10包括主可編程邏輯控制器3615,通過場總線3620被耦合到總線接口單元3625??偩€接口單元3625耦合和對接場總線3620到本地總線3630,它包括多個I/O終端塊3635。I/O終端塊3635被耦合到各自的I/O模塊3640,如
圖1所示。
在系統(tǒng)3610,由主可編程邏輯控制器3615執(zhí)行計算處理。換句話說,條件在I/O模塊3640被檢測,以及由此得到輸入數(shù)據(jù)。該輸入數(shù)據(jù)通過總線接口單元3625和場總線3620被傳送到主可編程邏輯控制器3615。主可編程邏輯控制器3615按照被存儲在主PLC 3615中的控制程序?qū)斎霐?shù)據(jù)進行處理。主可編程邏輯控制器3615處理輸入數(shù)據(jù),以及響應(yīng)于此產(chǎn)生輸出數(shù)據(jù)。輸出數(shù)據(jù)通過場總線3620,總線接口單元3625,本地總線3630被傳送到一個或多個I/O模塊3640。響應(yīng)于輸出數(shù)據(jù),接收輸出數(shù)據(jù)的I/O模塊控制被耦合到I/O模塊的輸出裝置。I/O終端塊被提供來把I/O模塊3640耦合到總線接口單元3625。
PLC可以被放置在主/從屬網(wǎng)絡(luò)中,如圖37a所示。在圖上,主/從屬控制系統(tǒng)包括主控PLC(M)和多個遠端從屬單元RSU(R1-Rn)。如其中所示,包括主控PLC、數(shù)據(jù)鏈路和I/O模塊的主控PLC(M)通過使用由用戶設(shè)置的程序和通信參量來控制它本身的I/O連接點,以及也控制用于遠端從屬單元R1-Rn的各個I/O連接點。多個RSU(R1-Rn)的每一個具有至少一個I/O模塊。以及通過通信電纜實行與主控PLC(M)的數(shù)據(jù)通信,因此控制它本身的I/O模塊。RSU可以是用作為從屬的PLC。
參照圖37b,PLC和每個RSU包括MODEM(調(diào)制解調(diào)器)3710,用于通過通信電纜實行在主控PLC(M)與RSU之間的數(shù)據(jù)通信;接收/發(fā)送模塊3711,用于按照預(yù)定的協(xié)議與主控PLC(M)交換數(shù)據(jù);接收/發(fā)送緩存器3712,用于把用于交換的數(shù)據(jù)暫時存儲在其中;輸出數(shù)據(jù)貯存單元3713,用于把從主控PLC(M)待發(fā)送到輸入/輸出模塊3716的數(shù)據(jù)存儲在其中;輸入數(shù)據(jù)貯存單元3714,用于把從輸入/輸出模塊3716待發(fā)送到主控PLC(M)的數(shù)據(jù)存儲在其中;以及輸入/輸出控制模塊3715,用于控制在數(shù)據(jù)貯存單元3713,3714和輸入/輸出模塊3716之間的數(shù)據(jù)傳輸。
在運行時,在主控PLC(M)中的數(shù)據(jù)鏈路是附著到主控PLC(M)上的數(shù)據(jù)鏈接裝置,它在相關(guān)的網(wǎng)絡(luò)中作為主控單元運行,以及得到數(shù)據(jù)通信的發(fā)端。數(shù)據(jù)鏈路能夠設(shè)置RSU的最大數(shù)目N。RSU設(shè)置它自己的和主控PLC(M)的每個數(shù)目,以及直接從主控PLC(M)接收通信,由此進行數(shù)據(jù)傳輸。在主控PLC(M)中的數(shù)據(jù)鏈路隨后選擇RSU(R1-Rn),以及進行數(shù)據(jù)接收/發(fā)送操作。例如,當(dāng)從主控PLC(M)輸出的數(shù)據(jù)通過通信電纜和MODEM 3710被加到RSU(R1)時,被加上的數(shù)據(jù)傳送通過接收/發(fā)送緩存器3712和接收/發(fā)送模塊3711,以及被存儲在輸出數(shù)據(jù)貯存單元3713中。被存儲在輸出數(shù)據(jù)貯存單元3713中的數(shù)據(jù)在輸入/輸出控制模塊3715的控制下被輸出到輸入/輸出模塊3716。從遠端從屬單元R1的輸入/輸出模塊3716讀出的外部控制目標(biāo)數(shù)據(jù)在輸入/輸出控制模塊3715的控制下被存儲在輸入數(shù)據(jù)貯存單元3714。被存儲在輸入數(shù)據(jù)貯存單元3714的數(shù)據(jù)通過接收/發(fā)送緩存器3712和接收/發(fā)送模塊3711被發(fā)送到主控PLC(M)。
本發(fā)明提供增強和擴展傳統(tǒng)的PLC的能力的新的特性。
發(fā)明目的和概要本發(fā)明的一個目的是增強和擴展PLC的能力。
本發(fā)明的另一個目的是提供增強和擴展PLC的輸入能力的數(shù)字輸入濾波器。
本發(fā)明的再一個目的是提供增強和擴展PLC的脈沖捕獲能力的脈沖捕獲電路。
本發(fā)明的又一個目的是提供增強和擴展PLC的輸出能力的脈沖輸出控制器。
本發(fā)明的另一個目的是提供增強和擴展PLC的端口能力的自由端口鏈路。
本發(fā)明的再一個目的是提供增強和擴展PLC的連接性的、用于調(diào)制解調(diào)器通信的協(xié)議。
本發(fā)明的又一個目的是提供增強和擴展PLC與外部編程應(yīng)用項的集成的隱匿指令。
本發(fā)明的另一個目的是提供增強和擴展PLC的功能調(diào)用能力的系統(tǒng)功能調(diào)用。
本發(fā)明的一個附加目的是提供增強和擴展PLC的狀態(tài)捕獲能力的STL狀態(tài)。
本發(fā)明的又一個附加目的是提供帶有增強和擴展的能力的宏P(guān)LC。
按照上述的目的,本發(fā)明提供帶有增強和擴展的能力的可編程邏輯控制器。
本發(fā)明的一個方面,提供了數(shù)字輸入濾波器。數(shù)字輸入濾波器模仿由恒定電流源驅(qū)動的電容的作用,它的輸出電壓由帶有大的滯后的比較器被檢測。數(shù)字濾波器用少得多的邏輯實施輸入濾波器。
本發(fā)明的另一個方面,提供了脈沖捕獲電路。脈沖捕獲電路捕獲輸入脈沖,盡管在掃描周期之間出現(xiàn)更新。
本發(fā)明的又一個方面,提供了脈沖輸出控制器。脈沖輸出控制器從一個PTO或PWM波形平滑地過渡到另一個波形。脈沖輸出控制器包括硬件流水線機制,允許從波形到波形的、平滑的、硬件控制的過渡。
本發(fā)明的另一個方面,提供了自由端口鏈路。自由端口鏈路允許用戶人工地或通過用戶程序運行來控制端口。為了提供使用PPI協(xié)議的通信的更高的性能,提供了內(nèi)建的協(xié)議選擇任選項。
本發(fā)明的再一個方面,提供了用于調(diào)制解調(diào)器通信的協(xié)議。在特定的安排中,調(diào)制解調(diào)器協(xié)議支持在標(biāo)準(zhǔn)的10比特全雙工調(diào)制解調(diào)器上的通信。協(xié)議使用精巧的技術(shù)確保數(shù)據(jù)完整性,而不使用奇偶校驗型數(shù)據(jù)完整性系統(tǒng)。
本發(fā)明的又一個方面,提供了隱匿指令。隱匿指令通過加密敏感的代碼和在編譯期間解密該代碼,以及此后重新加密該代碼,而提供對專利的軟件的保護。
本發(fā)明的另一個方面,提供了系統(tǒng)功能調(diào)用。系統(tǒng)功能調(diào)用允許用戶創(chuàng)建和/或下載新的PLC功能以及實施它們作為PLC操作系統(tǒng)功能。
本發(fā)明的又一個方面,提供了STL狀態(tài)功能。STL狀態(tài)功能允許用戶在運行時間期間和正在執(zhí)行程序的同時診斷程序。
本發(fā)明的再一個方面,提供了在宏P(guān)LC安排中的PLC。
通過以下對附圖的說明,將容易了解本發(fā)明的這些和其它目的。
附圖簡述圖1是本發(fā)明的PLC的透視圖;圖2是PLC的方框圖;圖3是PLC的電路圖;圖4是ASIC的方框圖;圖5是輸入塊的方框圖;圖6a是輸入濾波器電路的方框圖;圖6b是輸入濾波器電路的真值表;圖6c和d是輸入濾波器電路的方框圖;圖7是延遲時間表;圖8是掃描周期的時序圖;圖9是脈沖捕獲電路的方框圖;圖10是掃描周期的時序圖;圖11是掃描周期的時序圖;圖12a是脈沖捕獲電路的真值表;圖12b是用于脈沖捕獲電路使能寄存器的表;圖12c是用于脈沖捕獲電路保留寄存器的表;圖12d是用于脈沖捕獲電路輸入點狀態(tài)寄存器的表;圖12e是用于脈沖捕獲電路的方框圖;圖12f是用于脈沖捕獲電路的方框圖;圖13是輸出塊的方框圖;圖14a是脈沖輸出塊的方框圖;圖14b是脈沖輸出塊的寄存器的表;圖15是脈沖輸出塊的狀態(tài)圖;圖16是軟件代碼表;圖17是脈沖輸出塊的狀態(tài)圖;圖18是軟件代碼表;圖19是用于高速運行的表;圖20是I/O擴展插槽的方框圖;圖21是用于I/O擴展插槽的表;圖22是I/O擴展模塊的方框圖;圖23是元件表;圖24是電平表;圖25是讀周期的時序圖;圖26是寫周期的時序圖;圖27是奇偶校驗比特的表;圖28是CPU類型的表;圖29是中斷的表;圖30a是自由端口的流程圖;圖30b,c和d是SM比特定義的表;圖30e是端口定義的表;
圖31是調(diào)制解調(diào)器協(xié)議的流程圖;圖32a是控制功能的表;圖32b是隱匿指令的流程圖;圖33a是控制功能的表;圖33b是系統(tǒng)功能調(diào)用的流程圖;圖34a是STL指令的表;圖34b是STL功能的系統(tǒng)圖;圖34c是STL功能的流程圖;圖34d是布爾表示式的表;圖35a是PLC參量的表;圖35b是PLC和I/O控制模塊的透視圖;圖36是PLC的方框圖;圖37a是主/從屬系統(tǒng)的方框圖;以及圖37b是在主/從屬系統(tǒng)中通信的方框圖。
優(yōu)選實施例的詳細描述可編程邏輯控制器(PLC)的總的說明圖1上顯示本發(fā)明的示例的可編程邏輯控制器(PLC)100。
該圖說明PLC 100的輸入/輸出(I/O)能力。用戶通過操作運行/停止開關(guān)電位計和擴展I/O連接器104而控制PLC 100。狀態(tài)發(fā)光二極管(LED)106指示PLC 100的狀態(tài)??ūP端口108被提供來接受用于擴展PLC 100的功能的卡盤,包括例如增加存儲器。I/O LED 110被提供來指示PLC 100的輸入/輸出管腳的狀態(tài)。通信端口112把PLC100耦合到外部部件,例如,包括其它的PLC。通信端口可被使用來以主從關(guān)系把PLC 100連接到其它的PLC。通信端口也可被使用來連接例如計算機(諸如網(wǎng)絡(luò)計算機或個人計算機)。PLC 100也可以通過通信端口112經(jīng)過調(diào)制解調(diào)器或等價的通信協(xié)議裝置連接到互聯(lián)網(wǎng)。用戶引線連接器114允許用戶將該PLC外連到如馬達和其他外部設(shè)備上。
在圖上,PLC 100被顯示為靠近一個擴展I/O,它擴展PLC 100的輸入/輸出能力??刂颇K以及PLC 100,包括DIN軌道安裝插銷116和面板安裝定位位置118,用于把PLC 100和擴展I/O 102固定到適當(dāng)?shù)陌惭b卡具。
將會看到,本發(fā)明的PLC 100可包括PLC的多個裝置和配置,幾個擴展I/O模塊,以及包括存儲器卡盤,時鐘卡盤,電池卡盤電纜或I/O仿真器開關(guān)組件的附件。本發(fā)明將描述與這里描述的各個方面的特定部分有關(guān)的一部分可能的配置,專業(yè)人員通過了解這里描述的本發(fā)明將立即知道這些配置。
本發(fā)明的PLC因為它的小的物理尺寸被歸類為微PLC。雖然PLC在物理尺寸是小的,但它包括與物理上大的PLC同樣有力(如果并不比它更有力的話)的許多特性。圖1顯示具有可能的尺寸的PLC和I/O模塊的圖。PLC 100的設(shè)計可參照圖39a和b被描述。
圖2顯示本發(fā)明的PLC的方框圖200。所顯示的方框圖是對于帶有用于供電的集成的AC電源202的PLC。中央處理器210是PLC 200(100)的核心,它包括ASIC,ROM和RAM。數(shù)字輸入接口212被提供來從用戶引線114輸入信號(圖1)。數(shù)字輸出接口204把PLC 200耦合到用戶引線114(圖1)。通信接口206把PLC 200經(jīng)過例如RS-485或令牌總線通信耦合到外部裝置。擴展I/O接口208把PLC 200經(jīng)過例如高速復(fù)接的總線連接到擴展I/O接口。
運行時,AC電源202可以提供在AC線與輸出(諸如24VDC和5VDC輸出)之間的隔離邊界。PLC也可以用24VDC電源被供電。24VDC電源模塊不提供24VDC與5VDC的隔離。數(shù)字輸入接口212可任選地把用戶引線與中央處理器(CPU)210相隔離,后者包括所有的邏輯電平信號。數(shù)字輸出接口提供在用戶引線與CPU之間類似的隔離邊界。隔離邊界以光的隔離的形式或通過繼電器被提供,其中繼電器線圈與繼電器觸點相隔離。在圖上沒有顯示在CPU與通信接口或擴展I/O接口之間有隔離,但可以提供這種隔離。所有的擴展I/O模塊提供一個于用戶引線與5VDC邏輯信號之間的光的隔離邊界。CPU 210包括ASIC,它包括微處理器,RAM和ROM。ROM包含用于PLC的操作系統(tǒng),以及取決于PLC型號,可以是EPROM或FLASH EPROM。RAM被使用于操作系統(tǒng)數(shù)據(jù)貯存和高速暫存,以及用于存儲已被編譯為可執(zhí)行的代碼的用戶程序。
在圖3上顯示了中央處理器(CPU)300 H/W的方框圖。這里沒有詳細地描述所顯示的CPU的連接。這里感興趣的特定的連接是I/O板上的輸入電路302,I/O擴展總線304,和I/O板上的輸出電路306連接。無論如何,圖3充分概略清晰地顯示了這些細節(jié),專業(yè)人員將沒有問題從圖上了解細節(jié)。將會看到,圖3只顯示一個裝置,以及本領(lǐng)域技術(shù)人員根據(jù)本技術(shù)說明將容易了解如何實施其它的、等價的裝置。
CPU 300和連接被安排為圖4以示意圖形式顯示的ASIC。如圖所示,ASIC包括微處理器406(標(biāo)記為“core(核心)”),地址譯碼單元402和映射邏輯。兩個UART(通用異步接收機發(fā)射機)424,426被提供來實施形成串行端口的電子電路。UART把來自CPU的并行字節(jié)變換成串行字節(jié),以便傳輸,以及反之亦然。然而,其它的通信安排也是可能的。有數(shù)字輸入條件電路418,高速計數(shù)器410,脈沖串輸出電路420,電位計電路414,看門狗電路430和復(fù)位電路428。提供了總線接口404。擴展I/O單元1被標(biāo)記為422。測試接口被提供來測試PLC 100。功率分布電路被顯示為電路432。存儲器被顯示為內(nèi)部RAM 408。中斷控制單元412處理用于CPU 406的中斷。
PLC 100提供用戶創(chuàng)建特定的應(yīng)用控制程序的裝置,當(dāng)程序被PLC執(zhí)行時,它引導(dǎo)機器的操作和/或在制造各種各樣的產(chǎn)品時使用的處理。這樣,該PLC類似于所有其它的PLC,以及專業(yè)人員通過對PLC的這樣的基本了解,將立即了解本發(fā)明的更通俗的方面。不管PLC的使用和功能上的相似性,有許多獨特的特性和功能,被混合到本發(fā)明的PLC 100,它擴展和增強對于用戶的功用,正如這里描述的。
數(shù)字輸入點單元現(xiàn)在將描述數(shù)字輸入點單元418。在每個數(shù)字輸入信號(10.0到11.5)被變換到可兼容的信號,例如,+5V信號,以及與用戶引線隔離以后,它被饋送到ASIC的數(shù)字輸入點單元418。在圖5上顯示了用于輸入點1BO[20]的方框圖,它顯示由數(shù)字輸入點單元500(418,圖4)提供的功能。
這個單元500在從用戶應(yīng)用項被連接到CPU的數(shù)字輸入點上執(zhí)行多個功能。這個單元對輸入點濾波,以及為這些點的濾波的狀態(tài)提供接入。脈沖捕獲功能在每個輸入點上被提供來可任選地允許捕獲短的持續(xù)時間的脈沖。邊緣中斷功能被提供來在某些輸入點上出現(xiàn)上升和下降沿過渡時產(chǎn)生中斷。高速計數(shù)器被使用來計數(shù)對于CPU掃描速率發(fā)生太快的事件。
如圖5所示,數(shù)字輸入濾波器5061-n提供可軟件配置的濾波器。也就是,PLC設(shè)置濾波器參量,參量按照由PLC執(zhí)行的軟件控制濾波函數(shù)。在至少一個裝置中,多到8個濾波器數(shù)值是可由軟件配置的,例如從0.2ms到12.8ms。例如,對于在每個輸入點上的4比特上/下計數(shù)器,濾波器實施是可能的。脈沖捕獲電路5081-n允許捕獲濾波的輸入的上升或下降沿過渡,直至軟件有機會讀出數(shù)值為止。獨立的使能/禁止脈沖捕獲功能被提供用于每個輸入點。邊緣中斷電路5101-n,當(dāng)這個功能被使能時,例如在多到四個輸入點上出現(xiàn)上升沿和/或下降沿過渡時產(chǎn)生中斷。高速計數(shù)器514(516),在本例中支持六個高速計數(shù)器(HSC),每個包含例如一個32比特上/下計數(shù)器和一個32比特比較寄存器。32比特寄存器捕獲計數(shù)值,以使得它可被軟件讀出。每個計數(shù)器和比較寄存器可由軟件裝載。HSC中的四個,例如,可以處理兩個相位的時鐘。另兩個HSC只可以支持單相位時鐘。每個HSC可以在出現(xiàn)計數(shù)器對比較寄存器的相等性時,在方向改變條件時和在斷言HSC的外部復(fù)位輸入時,產(chǎn)生中斷。
數(shù)字輸入濾波器電路在以前的ASIC電路中輸入濾波器的實施消耗太多的門。在本發(fā)明的ASIC中,需要提供可兼容的功能而不消耗這樣多的門。以下是參照圖6a到6d和7通過利用圖6b的真值表對于在本ASIC中用相當(dāng)少的邏輯實施輸入濾波器的說明。
ASIC提供數(shù)字輸入濾波用于,例如,十四個數(shù)字輸入點,如圖6a和6b所示。在圖6a上,數(shù)字輸入濾波器電路600(506,圖5)包括輸入602,輸入濾波器電路604,選擇的延時606和輸出608。由選擇的延時606設(shè)置的濾波器延時是可軟件配置的例如七個不同的數(shù)值之一。濾波器延時通過ASIC內(nèi)部的可設(shè)置寄存器被選擇。圖7上的以下的表描述在寫入到寄存器的數(shù)值與選擇的相應(yīng)的延時之間的可能的關(guān)系。當(dāng)然,其它的關(guān)系是可能的。
每個數(shù)字輸入濾波器模仿由恒定電流源驅(qū)動的電容器的作用,它的輸出電壓由帶有大后滯的比較器被檢測。這個模擬電路的數(shù)字等價被實施為四個比特的上/下計數(shù)器,它的計數(shù)方向由輸入點的狀態(tài)控制。計數(shù)器進行時鐘觸發(fā)的頻率由軟件從被寫入到ASIC內(nèi)部的寄存器的選擇值被確定。1MHz主控時鐘被使用作為用于每個濾波器的時間基準(zhǔn),這樣,它的運行是與系統(tǒng)時鐘頻率無關(guān)的。延時值通過以下的公式被計算數(shù)字濾波器延時=12*(上/下計數(shù)器選擇的輸入時鐘的周期)圖6b上的真值表規(guī)定數(shù)字等價電路的運行,其中由濾波器產(chǎn)生的結(jié)果是輸出值608(FIBy.x)。本領(lǐng)域技術(shù)人員將立即看到,電路的細節(jié)可以通過使用熟知的布爾邏輯從圖6b的表被實施。示例性電路被顯示于圖6c。
對于例如四個輸入的每組,復(fù)接器610輸出8個時鐘中的一個時鐘,其被使用來設(shè)置輸入濾波器延時。由復(fù)接器610選擇的時鐘驅(qū)動4比特上/下計數(shù)器612(在四個輸入的每組中每個輸入有一個)。物量輸入控制4比特計數(shù)器的方向(上/下)。當(dāng)輸入是接通(邏輯“1”)時,計數(shù)器向上計數(shù)。當(dāng)輸入是關(guān)斷(邏輯“0”)時,計數(shù)器向下計數(shù)。計數(shù)值的向上計數(shù)序列是0,1,2,...,13,14,15,15,15,...,15計數(shù)值的向下計數(shù)序列是15,14,13,...,2,1,0,0,0,...,0正如計數(shù)序列表示的,當(dāng)向上計數(shù)時或當(dāng)向下計數(shù)使,計數(shù)器將不翻轉(zhuǎn)。
濾波器延時614被設(shè)計來模仿驅(qū)動電容器的恒定電流源的運行,它的電壓被帶有大的滯后的比較器檢測。在本例中,為了檢測從斷開到接通的輸入過渡,計數(shù)器必須達到12的計數(shù)值。一旦這個計數(shù)值達到,輸出端就被接通以及它將保持接通,直至對于從接通到關(guān)斷的輸入過渡的門限值達到3的計數(shù)值為止。圖上所顯示的、與非門邏輯620實施這些門限值。
門限值是對稱的,因為從穩(wěn)態(tài)的低的或高的輸入條件需要12個向上計數(shù)值或12個向下計數(shù)值。圖6b上的表列出在提供給復(fù)接器的每個頻率下對于12個時鐘的延時。當(dāng)然,其它延時也是可能的。附加的層,每層包括計數(shù)器616,與非門邏輯622和延時器618可被提供給每個輸入,它們以相應(yīng)的方式作為前面描述的層運行。
脈沖捕獲電路在數(shù)字輸入濾波器電路后面是脈沖捕獲電路(508,圖5)。這個電路的目的是捕獲在從高到低的,或從低到高的輸入狀態(tài)中的改變,并保持它直至PLC操作系統(tǒng)軟件識別到狀態(tài)的改變?yōu)橹?。PLC在STOP(停止)和RUN(運行)模式中以循環(huán)方式讀出輸入的狀態(tài)。(在PLC中STOP和RUN模式之間的主要差別在于,在STOP模式下,用戶的程序不被執(zhí)行,而在RUN模式下,用戶的程序被執(zhí)行)圖8顯示PLC掃描周期(該周期通常稱為PLC掃描周期或簡單掃描)。如圖8所示,在RUN模式下PLC掃描周期讀出輸入,每個周期一次。相同的掃描周期被遵循于STOP模式下,但在STOP模式不執(zhí)行用戶的程序。
因為每個周期只讀出輸入一次,輸入有可能改變狀態(tài),而PLC卻沒有識別其改變。這樣的狀態(tài)改變發(fā)生得太快以致于PLC沒有識別,被稱為脈沖。為了防止PLC丟失在輸入處的短的脈沖,用戶可以使能進行輸入中斷,它將暫停正常的程序執(zhí)行,而同時PLC服務(wù)中斷。這個方法非常有效,但它需要來自CPU的附加支持,以及使用相當(dāng)大的執(zhí)行時間來處理中斷例程。為此,只允許小量的輸入中斷。
另一個方法是在到PLC的每個集成輸入端處提供脈沖捕獲電路。這個方法允許捕獲和保持不經(jīng)常的、但短的持續(xù)時間的脈沖(或者高電平或者低電平),直至PLC識別在掃描周期中適當(dāng)?shù)狞c上的改變?yōu)橹埂?br>
脈沖捕獲電路頂層方框圖現(xiàn)在更詳細地,圖9顯示脈沖捕獲電路900(508,圖5),其中輸入902被耦合到脈沖捕獲電路904、按照使能信號906被捕獲,并輸出908。這樣,脈沖捕獲電路能夠捕獲和保持數(shù)字輸入點脈沖,它的持續(xù)時間大于選擇的脈沖時間但小于掃描時間。圖10顯示因為在輸入更新之間出現(xiàn)脈沖而丟失脈沖的問題,CPU軟件被設(shè)計成每個CPU掃描讀出所有的輸入點的狀態(tài)一次,以及這個操作被稱為輸入更新。如上所述,如果在接連的CPU掃描的輸入更新之間出現(xiàn)一個脈沖,則這個脈沖可能被丟失(見圖10的例子)。脈沖捕獲電路904捕獲和保持這種類型的事件。在一個可能的安排中,有14個脈沖捕獲電路,每個輸入點一個。
當(dāng)脈沖捕獲電路被啟用時,輸入的狀態(tài)的改變(從低到高或從高到低)被捕獲。輸入的另外的狀態(tài)改變被忽略,直至捕獲值在下一個CPU掃描期間被軟件讀出為止。一旦捕獲值被讀出,電路就能夠檢測新的輸入狀態(tài)值。
脈沖捕獲電路的運行可以通過圖12a所示的用于同步狀態(tài)機的真值表被更精確地描述。該表上所使用的符號被規(guī)定如下PCE-脈沖捕獲電路使能比特I-由輸入濾波器電路同步到系統(tǒng)時鐘的輸入信號(FIBy.x)CV-在輸入的狀態(tài)改變后和在輸入更新后捕獲的輸入值(同步到系統(tǒng)時鐘)F-狀態(tài)改變標(biāo)志(同步到系統(tǒng)時鐘)RP-通過輸入狀態(tài)字節(jié)的讀出產(chǎn)生的讀數(shù)脈沖(每個輸入狀態(tài)字節(jié)一個)(同步到系統(tǒng)時鐘,這樣,對于一個時鐘周期,它是工作的,以及在轉(zhuǎn)移輸入狀態(tài)的時鐘邊緣處變?yōu)椴还ぷ鞯?PS-當(dāng)前的狀態(tài)NS-下一個狀態(tài)在運行時,參照圖12a,當(dāng)電路在輸入中檢測到狀態(tài)改變時,輸入的新的數(shù)值被捕獲,以及狀態(tài)改變標(biāo)志被設(shè)置。在狀態(tài)標(biāo)志被設(shè)置時,存儲的輸入值被保持以及不能被更新。所以,在狀態(tài)改變標(biāo)志被設(shè)置時出現(xiàn)的任何輸入改變被忽略。在存儲的數(shù)值通過軟件被讀出后,狀態(tài)改變標(biāo)志被復(fù)位,輸入的當(dāng)前狀態(tài)被捕獲,以及輸入狀態(tài)改變的檢測被重新使能。這個動作序列被稱為重新觸發(fā)脈沖捕獲電路。結(jié)果是,即使在掃描周期之間出現(xiàn)更新,輸入脈沖被捕獲,如圖11所示。例如,參閱CIB1.6,顯示即使在掃描周期之間,即在掃描n與掃描n+1之間出現(xiàn)脈沖,脈沖捕獲電路輸出908捕獲輸入脈沖902。
例如,在這個方塊中提供兩個8比特寄存器,用于對于16個輸入點的每個輸入點的單獨地使能和禁止脈沖捕獲功能。這些使能寄存器在如圖12b所示的表中被規(guī)定。輸入狀態(tài)寄存器被提供來給予CPU軟件到附帶條件的輸入點狀態(tài)的入口,CIB0[70]和CIB1[50],它們被從脈沖捕獲電路輸出。這些被顯示于圖12c。輸入狀態(tài)寄存器的格式被顯示于圖12d。
脈沖捕獲電路的電路元件,正如本領(lǐng)域技術(shù)人員將會看到的,將很容易從圖12a所示的真值表上獲知。還將看到,脈沖捕獲電路可以具有多種滿足真值表的配置。
按照以上說明運行的示例性脈沖捕獲電路被顯示于圖12e和12f。系統(tǒng)時鐘脈沖驅(qū)動觸發(fā)器1202,1208。輸入信號被耦合到第一觸發(fā)器1202,它的Q輸出被耦合到與非門邏輯1206。信號PCE、RP和F被延時和被耦合到與非門邏輯1206中的相應(yīng)的與非門,如圖所示。另外,第二觸發(fā)器1208的輸出被反饋到與非門邏輯1206。與非門邏輯的輸出被耦合到第二觸發(fā)器1208,在由此被鎖存后,被鐘控到輸出端。在圖12f上,產(chǎn)生F信號,其中系統(tǒng)時鐘驅(qū)動觸發(fā)器1210和1216。第一觸發(fā)器鎖存輸入,以及第二觸發(fā)器鎖存與非門邏輯1214的輸出。與非門邏輯1214被安排成,如圖所示地,對從第一觸發(fā)器輸出的信號(Q),Q的倒相值,輸入信號的捕獲值和它的延時的值(由延時器1212延時),由延時器1212延時的RP信號和PCE信號實施前面所述的邏輯。
脈沖捕獲電路可單獨地被使能和被禁止。如果脈沖捕獲電路被禁止,則電路輸入被傳送到電路輸出端。如果被使能,則上述的脈沖捕獲電路是工作的。
數(shù)字輸出點單元這個數(shù)字輸出單元(420,圖4)允許直接軟件控制每個輸出點的狀態(tài)。另外,脈沖輸出能力允許在輸出點中的多達2個點上的脈沖串輸出和脈沖寬度調(diào)制輸出。
現(xiàn)在參照圖13,ASIC提供兩個輸出點狀態(tài)寄存器1302,1304,用于軟件控制十個數(shù)字輸出點的狀態(tài)。另外,兩個脈沖輸出塊1306,1308(PLS)可被實施來提供以快于軟件可完成的頻率產(chǎn)生脈沖波形的能力。
在脈沖輸出塊1306,1308內(nèi),ASIC提供兩個輸出功能的選擇,例如PWM(脈沖寬度調(diào)制)或PTO(脈沖串輸出)。PWM功能為連續(xù)的脈沖輸出提供可編程的周期時間和占空比。主要打算用于步進電機應(yīng)用項,PTO功能提供用于特定的目的約50%占空比脈沖的輸出。當(dāng)然,本領(lǐng)域技術(shù)人員將會看到其它的應(yīng)用項。在PTO功能中的周期時間也是可編程的,以及可以是固定的或可以按用戶指定的速率被自動調(diào)節(jié)增加或減小。
當(dāng)PLS0運行(被使能)時,它通過MUX 1310控制輸出點XQB0.0。否則,XQB0.0通過由軟件寫入到ASIC的輸出點狀態(tài)寄存器的數(shù)值被控制。同樣地,PLS1,如果被使能,通過MUX 1312控制XQB0.1的狀態(tài),以及如果PLS1沒有被使能,ASIC的輸出點狀態(tài)寄存器控制XQB0.1的狀態(tài)。
脈沖輸出塊所顯示的ASIC支持兩個脈沖輸出塊(PLS)。當(dāng)然,可以配置任意數(shù)目的PLS。這些塊允許CPU以快于CPU軟件能夠人工產(chǎn)生的頻率產(chǎn)生波形。來自脈沖輸出塊0(PLS0)的輸出是輸出點XQB0.0的源之一以及來自脈沖輸出塊0(PLS0)的輸出是輸出點XQB0.1的源之一。
用于PLC的ASIC提供脈沖串輸出(PTO)和脈沖寬度調(diào)制(PWM)功能。PTO是運行模式,其中波形的周期(周期時間)和周期的數(shù)目(脈沖計數(shù))由軟件規(guī)定。波形的占空比約為50%。PWM是運行模式,其中周期(周期時間)和占空比(脈沖寬度)由軟件規(guī)定,以及波形連續(xù)地輸出。
可以發(fā)現(xiàn),這些功能的實施有一個根本問題從一個PTO或PWM波形到另一個PTO或PWM波形無法平滑過渡。每個過渡需要脈沖輸出塊由軟件被停止,然后重新啟動,這在最終的輸出波形中引入不連續(xù)性。
因為如上所述的從一個波形到另一個波形的過渡的問題,本發(fā)明的ASIC為脈沖輸出塊提供硬件流水線機制,允許從波形到波形的、平滑的硬件控制的過渡。另外,為了允許對于步進電機的良好的運行,把按指定的速率自動傾斜周期時間的數(shù)值的能力加到ASIC中。
PLS方框圖和運行總貌圖14a上所示的方框圖顯示了每個脈沖輸出塊1400的組織和部件。
PLS時間基準(zhǔn)的產(chǎn)生-時間基準(zhǔn)(例如,1ms或1μs)由復(fù)接器1402提供,它選擇例如1MHz主控時基時鐘或從主控時基時鐘得出的1kHz時鐘。
波形周期控制-時基復(fù)接器的輸出驅(qū)動16比特向上計數(shù)器,被稱為周期時間計數(shù)器1420。這個計數(shù)器在時基時鐘的上升沿處被加增量。該計數(shù)器的輸出由比較器1430與被存儲在16比特周期時間預(yù)定值寄存器1422中的數(shù)值進行比較,以便控制輸出波形的周期。當(dāng)周期時間計數(shù)器的數(shù)值達到周期時間預(yù)定值寄存器的數(shù)值時,當(dāng)前的周期完成,以及產(chǎn)生CycleDone(周期完成)事件。
被存儲在周期時間計數(shù)器1420和周期時間預(yù)定值寄存器1422中的數(shù)值是無符號的數(shù)值。周期時間計數(shù)器1420的有效的范圍,例如,是0到65535。周期時間預(yù)定值寄存器的有效范圍是2到65535。為確定CycleDone所進行的比較是無符號的比較。
周期時間差值寄存器1406被使用來在PTO模式中保存有符號的、二進制補碼的16比特數(shù)值,在每次CycleDone事件時它被加到被存儲在周期時間預(yù)定值寄存器1422中的數(shù)值上。如果和值超過65535或小于2,則產(chǎn)生AdderError(加法器錯誤)事件。例如,預(yù)定值=65530(FFFAH無符號的)預(yù)定值=65530(FFFAH無符號)差值=-20(FFECH有符號的)差值=20(0014H有符號的)和值=65530+(-20)=65510 OK 和值=65530+(20)=65550 AdderError?。?!預(yù)定值=100(0064H無符號的) 預(yù)定值=100(0064H無符號)差值=-20(FFECH有符號的)差值=-120(FF88H有符號的)和值=100+(-20)=80 OK 和值=100+(-120)=-20 AdderError!??!在PWM模式,周期時間差值寄存器被保持在0的數(shù)值。
只有在PLS塊被禁止時,軟件才可以裝載周期時間預(yù)定值寄存器1422和周期時間差值寄存器1406。在PTO模式時,這個寄存器的有效范圍是,例如,-32768到+32767。
波形占空比控制-周期時間計數(shù)器1420的輸出也被使用于控制波形占空比。在這個計數(shù)值與其來源由PLS運行模式確定的脈沖寬度預(yù)定值之間執(zhí)行無符號的比較。PLS塊輸出信號PLSxOUT的狀態(tài)由這個比較確定。當(dāng)計數(shù)值小于脈沖寬度預(yù)定值時,PLSxOUT信號是高電平。當(dāng)計數(shù)值達到或超過預(yù)定值時,則PLSxOUT信號被驅(qū)動為低電平。如果處在PWM模式,則脈沖寬度預(yù)定值從脈沖計數(shù)/寬度預(yù)定值寄存器1408的較低的16比特得出,或如果處在PTO模式,則脈沖寬度預(yù)定值是被存儲在周期時間預(yù)定值寄存器1422中的數(shù)值的一半。
如果脈沖寬度預(yù)定值是0,則PLSxOUT對于整個周期是低電平。如果脈沖寬度預(yù)定值等于或大于周期時間預(yù)定值,則PLSxOUT對于整個周期是高電平。
脈沖計數(shù)/寬度預(yù)定值寄存器1408由軟件裝載,但當(dāng)運行在PWM模式時,只有較低的16比特是有效的。所以,軟件只應(yīng)當(dāng)在PWM模式下寫入寄存器的最低有效字。在這個模式下這個寄存器的有效的范圍是0到65535。這個寄存器只有在PLS塊被禁止時才可以被軟件裝載。
周期數(shù)量控制(僅僅在PTO模式)-32比特向上計數(shù)器,其被稱為脈沖計數(shù)器1428,在每次CyeleDone時被驅(qū)動,以便計數(shù)在PLSxOUT信號上產(chǎn)生的周期的數(shù)目。被存儲在這個計數(shù)器中的數(shù)值由比較器1434與在32比特脈沖計數(shù)預(yù)定值寄存器1416中的數(shù)值進行比較,以便確定當(dāng)前PTO運行的完成。當(dāng)脈沖計數(shù)器1428的數(shù)值達到脈沖計數(shù)預(yù)定值時,產(chǎn)生PTOComplete事件。在PWM模式下,這個計數(shù)器不被使用。
在PTO模式下,脈沖計數(shù)/寬度預(yù)定值寄存器1416的全部32比特是有效,并由軟件裝載。在這個模式下這個寄存器的有效范圍是1到(232-1)。這個寄存器只有在PLS塊被禁止時才可以被軟件裝載。
運行控制-控制寄存器包含比特,其允許軟件使能或禁止PLS塊的運行。一旦軟件啟用PLS塊,則輸出點從QBxPS控制到PLS塊控制的切換以及內(nèi)部計數(shù)器的運行和比較,與時基時鐘的下一個上升沿同步。這樣做是為了確保輸出波形的初始周期具有合適的持續(xù)時間和脈沖寬度。這個寄存器在看門狗超時故障條件的情況下或由于輸出禁止功能的直接軟件控制時被保持在它的復(fù)位狀態(tài)。
設(shè)置寄存器包含比特,其允許軟件配置PLS塊的運行。包括有PLS時基選擇和運行模式選擇。中斷使能寄存器給予軟件對于PTOComplete和AdderError中斷事件單獨地使能和禁止中斷產(chǎn)生的能力。狀態(tài)寄存器被提供來允許軟件得到有關(guān)PLS塊的當(dāng)前運行狀態(tài)的信息。這個信息包括使能狀態(tài)和流水線裝載標(biāo)志的狀態(tài)(在下面描述)。
中斷狀態(tài)寄存器提供中斷源或產(chǎn)生中斷條件的中斷源的信息。INTxPLS信號發(fā)源于PLS塊,以及被中斷控制單元使用。當(dāng)PLS中斷產(chǎn)生事件中的一個或兩個事件發(fā)生時(受到中斷使能寄存器中中斷使能比特的狀態(tài)影響時),這個信號成為激活的。讀出中斷狀態(tài)寄存器,將清除在PLS塊中所有工作的中斷指示,以及釋放INTxPLS信號。另外,禁止中斷使能寄存器中的中斷產(chǎn)生源,將清除來自該源的待決的中斷。如果在PLS塊中沒有其它中斷正在待決,則INTxPLS信號將被釋放。
硬件流水線機制-流水線機制被提供來使得對波形特性的修正可被加上,而沒有結(jié)果的波形失真。以下的流水線寄存器被提供來保存用于周期時間、脈沖寬度等的新的數(shù)值·周期時間流水線寄存器被使用來存儲新的周期時間值。
·周期時間差值流水線寄存器被使用來存儲新的周期時間差值。
·脈沖計數(shù)/寬度流水線寄存器被使用來存儲新的脈沖計數(shù)或脈沖寬度值(如果在PTO模式下,這個寄存器存儲新的脈沖計數(shù)值以及使用寄存器的全部32比特。如果在PWM模式下,這個寄存器存儲新的脈沖寬度以及只使用寄存器的較低的16比特)。
當(dāng)使用硬件流水線機制時,流水線裝載標(biāo)志作為在PLS塊與軟件之間的接口的一部分被實施。無論何時軟件把一個數(shù)值寫入到脈沖計數(shù)/寬度流水線寄存器的最低有效字節(jié)時,流水線裝載標(biāo)志被置位。所以,為了使用硬件流水線機制,軟件必須總是寫一個數(shù)值到脈沖計數(shù)/寬度流水線寄存器,以及它必須是要被寫入的最后的流水線寄存器。
所有的流水線寄存器必須由軟件裝載,因為所以流水線寄存器的內(nèi)容將被傳送到運行的寄存器。在PWM模式下,軟件不需要寫入到周期時間差值流水線寄存器,因為在PLS塊處在PWM模式時周期時間差值寄存器被保持在0。該流水線寄存器的任何內(nèi)容有效地被丟棄。
一旦流水線寄存器被寫入以及流水線裝載標(biāo)志被置位,流水線寄存器的內(nèi)容在以下的條件下被傳送到運行的寄存器·如果PLS塊被使能,則如果處在PTO模式下在出現(xiàn)PTOComplete事件后,或如果在PWM模式下在出現(xiàn)CycleDone事件后,將進行傳送。
·如果PLS塊被禁止,則當(dāng)PLS塊被軟件使能時,將立即進行傳送。
在完成傳送到運行的寄存器后,流水線裝載標(biāo)志然后將自動地被清除。
一旦流水線裝載標(biāo)志在使能的PLS塊被置位,就阻止軟件寫入到任何的流水線寄存器,直至它們的內(nèi)容被傳送到運行的寄存器為止(通過由ASIC對流水線裝載標(biāo)志的清除表示)。如果PLS塊被禁止,則流水線寄存器可以由軟件寫入,而沒有限制,以及每次脈沖計數(shù)/寬度流水線寄存器的最低有效字節(jié)被寫入時,流水線裝載標(biāo)志將被設(shè)置。
自動禁止機制-在PTO模式下的使能的PLS塊在以下的條件可被自動禁止·出現(xiàn)PTOComplete事件,以及沒有新的波形設(shè)置被存儲在流水線寄存器中(流水線裝載標(biāo)志是0)。
·出現(xiàn)AdderError事件。
當(dāng)PLS塊被自動禁止時,在控制寄存器中的主控使能比特被ASIC清除。流水線裝載標(biāo)志不受影響。
人工禁止-無論何時在控制寄存器中的主控使能比特被軟件清除時,PLS塊將立即進入PTO禁止?fàn)顟B(tài)或PWM禁止?fàn)顟B(tài)(在下面描述),取決于塊的當(dāng)前的運行模式。軟件禁止也將清除流水線裝載標(biāo)志和任何的待決的中斷。
有效的寄存器范圍-圖14b中的表顯示在PLS塊中對于每個數(shù)字寄存器的正確的數(shù)值的范圍。
PTO運行這個模式通過使能PLS塊而被選擇。軟件將控制周期時間、周期時間差值、和脈沖計數(shù)。占空比被固定在50%。所以,PLS塊的以下的功能能夠在這個模式下被使用·周期時間預(yù)定值和周期時間流水線寄存器·周期時間差值和周期時間差值流水線寄存器·脈沖計數(shù)/寬度預(yù)定值和脈沖計數(shù)/寬度流水線寄存器(被配置成保持32比特脈沖計數(shù))·32比特脈沖計數(shù)器·16比特周期時間計數(shù)器·進行比較產(chǎn)生CycleDone事件·進行比較產(chǎn)生PTOComplete事件·進行比較控制PLSxOUT的狀態(tài)·流水線裝載標(biāo)志·PTOComplete和AdderError中斷在PTO模式下PLS塊的主要狀態(tài)轉(zhuǎn)移被顯示于圖15的狀態(tài)圖1500。
當(dāng)PLS塊處在PTO禁止?fàn)顟B(tài)1502時·QBO.x輸出由輸出點狀態(tài)寄存器控制,而不是PLS塊控制。
·周期時間計數(shù)器和脈沖計數(shù)器被保持在0。
·PLSxSTAT.EN狀態(tài)比特表示被禁止的。
當(dāng)PLS塊處在PTO運行狀態(tài)1504時,·QBO.x輸出由PLS塊(通過PLSxOUT信號)控制。
·PLSxSTAT.EN狀態(tài)比特表示使能的。
·正常的PTO運行是使能的。
周期時間計數(shù)器在PLS時基的上升沿處被加增量,以及PLS塊的大多數(shù)功能從該計數(shù)器直接地或間接地被驅(qū)動。偽代碼的圖16的段列出在PLS時基的上升沿處出現(xiàn)的、在PTO模式下ASIC的動作(動作的次序是重要的,所以假設(shè)這些說明的頂部到底部的估計)。本領(lǐng)域技術(shù)人員將從偽代碼立即理解PTO模式下ASIC的運行。
PWM運行這個模式通過使能PLS塊而被選擇。軟件將控制周期時間和脈沖寬度。所以,PLS塊的以下的功能能夠在這個模式下被使用·周期時間預(yù)定值和周期時間流水線寄存器·脈沖計數(shù)/寬度預(yù)定值和脈沖計數(shù)/寬度流水線寄存器(被配置成用于16比特脈沖寬度)·16比特周期時間計數(shù)器·進行比較產(chǎn)生CycleDone事件·進行比較控制PLSxOUT狀態(tài)·流水線裝載標(biāo)志周期時間差值寄存器和周期時間差值流水線寄存器被保持在0,以及用于該塊的脈沖計數(shù)和中斷產(chǎn)生被禁止。INTxPLS信號在這個模式下應(yīng)當(dāng)總是被驅(qū)動到非激活狀態(tài)。
在PWM模式下PLS塊的主要狀態(tài)轉(zhuǎn)移被顯示于圖17所示的狀態(tài)圖。
當(dāng)PLS塊處在PWM禁止?fàn)顟B(tài)1702時·QBO.x輸出由輸出點狀態(tài)寄存器控制,而不是PLS塊控制。
·周期時間計數(shù)器被保持在0。
·PLSxSTAT.EN狀態(tài)比特表示禁止的。
當(dāng)PLS塊處在PWM運行狀態(tài)1704時,·QBO.x輸出由PLS塊(通過PLSxOUT信號)控制。
·PLSxSTAT.EN狀態(tài)比特表示使能的。
·正常的PTO運行是使能的。
周期時間計數(shù)器在PLS時基的上升沿處被加增量,以及PLS塊的大多數(shù)功能從該計數(shù)器直接地或間接地被驅(qū)動。偽代碼的圖18的段列出在PLS時基的上升沿處出現(xiàn)的、在PWM模式下ASIC的動作(動作的次序是重要的,所以假設(shè)這些說明的頂部到底部的估計)。本領(lǐng)域技術(shù)人員將從偽代碼立即理解PWM模式下ASIC的運行。
脈沖串輸出分布指令(PTOP)由ASIC提供的脈沖輸出功能主要打算用于控制步進電機。PLC提供用戶指令,用于產(chǎn)生用于加速/減速和運行步進電機的分布。這個指令被顯示于圖19。
擴展I/O單元擴展總線概念的總貌物理地,擴展子系統(tǒng)包含附入的I/O模塊,它們被獨立地安裝,而不用公共的背板。十條導(dǎo)體帶狀電纜被使用來連接到上述的模塊或CPU。該電纜是每個模塊的一部分。這個電纜載送對于模塊運行所需要的5V電源和邏輯信號。見圖20。在I/O擴展總線中的信號在圖21上描述。
雖然所有的信號通過模塊物理地菊花-鏈接,但只有EMA信號在每個模塊中被邏輯地斷開和重新產(chǎn)生。所有其它的信號形成單個電總線,它延伸I/O模塊鏈的長度。EMA信號的數(shù)值在被傳送到下-個模塊之前被加增量。到擴展I/O總線的每個接入包括模塊地址區(qū),用于選擇要被接入的模塊。只有其地址與消息的模塊地址區(qū)相一致的模塊將應(yīng)答該接入。這種方案允許要被串接的I/O模塊類型的任意混合,而不用地址開關(guān)和不用固定的背板。多到8單元的邏輯擴展用三條EMA信號線是可能的,然而現(xiàn)在只允許有7個模塊。當(dāng)然,其它的擴展單元也是可能的。
圖22顯示在本發(fā)明中的邏輯結(jié)構(gòu)2200和I/O模塊2202的信號流。I/O擴展邏輯結(jié)構(gòu)的細節(jié)不在這里描述。圖23上的表給出對于在擴展I/O模塊的電接口中使用的每個部件的數(shù)值。圖24上的表描述I/O總線信號的電特性。到擴展I/O的接入由CPU中的ASIC控制,以及將從圖25和26的圖上看到,該圖顯示在擴展I/O總線上的讀和寫周期序列。
ASIC(主控狀態(tài)機和事務(wù)時序)以下描述總線事務(wù)序列。EM總線時序被安排成在需要的地方提供用于傳播延時的時間和信號扭曲。主控機在EMC的下降沿時鐘處提供信號,在下一個上升沿處被從屬機鎖存。一半的EMC時鐘時間被允許來覆蓋給從屬機的數(shù)據(jù)的建立,以及考慮通過ASIC緩存器、外部電纜,和可能的中繼站緩存器的EMC對EMD的最壞情形的扭曲。從屬機在EMC上升沿處給出數(shù)據(jù),以及主控機在跟著的上升時鐘沿處鎖存數(shù)據(jù)。這允許完全的時鐘時間用于時鐘傳播到從屬機,從屬時鐘-到-輸出延時,和返回傳播時間。
在總線事務(wù)期間,寄存器區(qū)首先在總線最高位處被給出。2比特奇偶校驗區(qū)的P1比特首先被給出,然后是P0比特。主控狀態(tài)機行動對于EMC的上升沿和下降沿進行描述,而從屬機假定除了EMC以外沒有其它時基,以及可以完全在EMC上升沿處運行。EMC在不使用時被驅(qū)動到低電平,使得鐘控虛假數(shù)據(jù)到從屬機的可能性最小。
總線事務(wù)序列以下的段落描述在寫入數(shù)據(jù)到從屬機和從從屬機讀出數(shù)據(jù)時的EM總線事務(wù)序列的各個部件。以下的行動假定為從主控機(EM單元)產(chǎn)生的,除非它們被特別歸結(jié)被從屬機執(zhí)行。以下的正文和以后的時鐘圖將有助于了解事務(wù)序列。
序列開始-EM總線事務(wù)由寫入到EMOSTART或EM1START寄存器中的軟件觸發(fā)。EM狀態(tài)寄存器的進行中比特被立即設(shè)置。在進行中比特被設(shè)置以避免干擾在進行中的總線序列時,另外到EM寄存器的寫訪問被ASIC禁止。軟件的任務(wù)是確保新的總線事務(wù)只在EM單元是空閑時(進行比特是低電平)才被觸發(fā)。如果序列是通過寫入到EMOSTART寄存器被觸發(fā)的,則總線事務(wù)從EMC0信號被鐘控。如果序列是通過寫入到EM1START寄存器被觸發(fā)的,則總線事務(wù)從EMC1信號被鐘控。EM總線序列的實際開始(被稱為EMCST)發(fā)生在事務(wù)觸發(fā)后EMC時基的第一個下降沿處。
模塊/寄存器地址-在EMCST時間點,主控機驅(qū)動XA_OD信號為低并使能EMC和EMD信號。在EMC上升沿處的激活的XA_OD的檢測被從屬機使用來識別尋址操作的開始。然后主控在EMC信號上產(chǎn)生10個時鐘,在EMD上順序地鐘控EMADDR寄存器的內(nèi)容以及2個奇偶校驗比特,P1和P0。在EMD上呈現(xiàn)的EMADDR的第一比特在EMCST點是有效的。XA_OD信號在EMC↓1時被再次驅(qū)動到高電平。主控機在每個EMC↓上呈現(xiàn)EMD上的新的比特。EMD信號在EMC↓10時被釋放。從屬機在EMC↑110時(在EMC110的上升沿處)鎖存有效的信息。
讀出數(shù)據(jù)序列-對于讀事務(wù),EMDDIR信號在EMC↓10時被驅(qū)動到低的狀態(tài)。在對模塊/寄存器地址比特鐘控后,主控機在EMC信號上產(chǎn)生另外13個時鐘(1123)。EMC時鐘1112是空閑時鐘,以便允許從屬時間使得適當(dāng)?shù)募拇嫫鲾?shù)據(jù)和奇偶校驗可提供用于傳送。選擇的從屬機在EMC↑1322在EMD信號上提供8個數(shù)據(jù)和2個奇偶校驗比特,以及在EMC↑23返回到空閑狀態(tài)(從屬機在這時釋放EMD信號)。主控機在EMC↑1423鎖存信息。從屬機首先提供數(shù)據(jù)值的最高有效比特,然后是P1奇偶校驗比特,最后是P0奇偶校驗比特。數(shù)據(jù)值被存儲在寄存器EMDATA。主控機確定被存儲在EMDATA中的數(shù)值的奇偶校驗,以及把這個計算過的奇偶校驗與從從屬機接收的奇偶校驗比特進行比較。如果計算的奇偶校驗與接收的奇偶校驗不一致,則EM狀態(tài)寄存器中的錯誤比特被設(shè)置。否則,錯誤比特被清除。EMDDIR信號在EMC↓23被釋放(被驅(qū)動到高電平)。
寫入數(shù)據(jù)序列-對于寫事務(wù),在對模塊/寄存器地址比特鐘控后,主控機在EMC上提供另外14個時鐘(1124)。主控機在EMD上提供8個數(shù)據(jù)比特(來自EMDATA寄存器),接著是2個奇偶校驗比特(P1然后是P0)。主控機在EMC↓1019給出數(shù)據(jù)和奇偶校驗比特,然后在EMC↓20釋放EMD信號和驅(qū)動EMDDIR信號到低的狀態(tài)。從屬機在EMC↑1120鎖存有效的信息。從屬機通過在EMC↑2223對來自EMD的比特0然后是1進行鐘控而應(yīng)答完整的寫周期和正確的奇偶校驗。主控機在EMC↑2324鎖存這個應(yīng)答響應(yīng)。從屬機在EMC↑24返回到空閑狀態(tài)以及釋放EMD。如果由主控機讀出的2比特應(yīng)答值不是01,則EM狀態(tài)寄存器中的錯誤比特被設(shè)置。否則應(yīng)答值是正確的,以及錯誤比特被清除。EMDDIR信號在EMC↓24被釋放(被驅(qū)動到高電平)。
序列結(jié)束-總線序列的結(jié)束被規(guī)定為跟隨在EMC↓23(讀事務(wù))或在EMC↓24(寫事務(wù))后面的EMC時基的第一上升沿處發(fā)生。在EMCND時,EM狀態(tài)寄存器的進行中比特被清除。當(dāng)進行比特被清除時,錯誤比特必須是有效的??偩€信號應(yīng)當(dāng)是處在它們的空閑狀態(tài)。
奇偶校驗比特兩個奇偶校驗比特被使用來表示單個8比特值的奇偶校驗。2個奇偶校驗比特的每個比特代表對5比特的數(shù)值的奇校驗,正如圖27的表所顯示的。對奇數(shù)個比特的奇偶校驗確保全1或全0的區(qū)具有相反極性的奇偶校驗比特。
軟件接口考慮典型的EM總線事務(wù)將包括寫EMADDR寄存器、寫數(shù)據(jù)字節(jié)到EMDATA寄存器(如果是寫事務(wù))、然后寫入到EMOSTART或EM1START寄存器,以便啟動序列。軟件將重復(fù)地讀出EM狀態(tài)寄存器的進行中比特,以便確定事務(wù)何時完成。EM總線事務(wù)完成時,進行中比特將被清除,而錯誤比特將被適當(dāng)?shù)卦O(shè)置。如果讀事務(wù)被執(zhí)行,數(shù)據(jù)值現(xiàn)在可以從EMDATA寄存器讀出。軟件可以確保,在事務(wù)正在進行時,只有EMSTAT寄存器被讀出,以及EM單元可被設(shè)計來由軟件在任何時間正確地處理該寄存器的讀訪問。
如果在EM總線事務(wù)正在進行時發(fā)生中斷事件以及中斷例程需要使用EM單元,則該例程可以采樣該進行中比特的狀態(tài)以及在訪問任何其它EM單元寄存器之前等待事務(wù)完成。這樣的中斷例程將具有義務(wù)保存和恢復(fù)EMADDR和EMDATA寄存器的內(nèi)容以及錯誤比特的狀態(tài)。這是需要的,以使得一旦控制返回到該例程時那些寄存器將包含由中斷例程啟動總線事務(wù)的正確的數(shù)值。
使用XA_OD信號的輸出禁止XA_OD信號被使用于識別地址周期的開始和輸出禁止條件的發(fā)生(由CPU系統(tǒng)故障造成的)的兩個用途。在約1MHz的最慢的預(yù)期總線速率下,在地址用法中XA_OD的最長的正常持續(xù)時間是約1μs。用于XA_OD作為輸出禁止的從屬識別的、約100倍的這個數(shù)值的門限值,或100μs,允許在從屬機中的簡單的二極管/R/C濾波器,以及給出適當(dāng)?shù)捻憫?yīng)的輸出禁止功能。XA_OD外部信號將是來自EM總線狀態(tài)機的地址周期識別信號與發(fā)源于看門狗定時器單元的輸出OK信號的邏輯OR(或)。
用戶程序存儲器用戶程序存儲器可被使用來存儲用戶程序。主程序的結(jié)尾可以通過使用MEND(主程序結(jié)尾)指令而被終結(jié)。除MEND指令以外的、用戶程序存儲器的其余部分可被保留用于子例程和中斷例程。
串行通信PLC提供串行通信端口,正如參照圖1描述的。通信端口使用RS485信號電平,以及能夠運行在9.5KB,19.2KB或187.5KB,而同時支持系統(tǒng)通信協(xié)議(PPI或DP/T)。這個端口用作為到PLC的編程器接口。此外此端口在運行模式下用于,作為在用戶程序的完全控制下的通用通信端口(被稱為自由端口模式)。在自由端口模式下,通信端口能夠運行在從300波特到38.4KB的波特率。到RS485端口的物理連接由9管腳D連接器。
特別存儲器(SM)比特(見6.2節(jié),SM2,SM3,SM30和SM130)被提供作為通信端口的自由端口使用??刂仆ㄐ哦丝诘氖褂玫奶貏e存儲器的缺省狀態(tài)使得能夠使用通信端口作為編程器接口。如果用戶程序接通控制通信端口使用的特別存儲器比特,則將使得用戶程序能夠通過 通信端口發(fā)送和接收消息。在這個運行模式下,用戶可以用想要的、任何基于字符的協(xié)議(7或8比特/字符,奇數(shù)的、偶數(shù)的、或沒有奇偶校驗,以及波特率)來配置端口。端口將運行在半雙工模式,以及用戶程序可以在輪詢或中斷模式時操作端口。接收字符緩存器被提供在SM用戶區(qū)域,連同通信狀態(tài)寄存器,以及配置寄存器,它包括控制端口的運行模式的比特。除了發(fā)送的所有的通信功能可以通過SM存儲器中的特別寄存器被執(zhí)行。發(fā)送只能通過使用特別的寫端口消息指令被完成。用戶程序決沒有到通信控制器或機器的中斷結(jié)構(gòu)的直接入口。
PPI主模式和從屬模式網(wǎng)絡(luò)讀出和寫入PLC可以用作為PPI從屬機。在PPI從屬模式,PLC用作為對于通信消息的應(yīng)答器。
在本發(fā)明的一個安排中,當(dāng)CPU被設(shè)置在運行模式時,PLC可以用作為PPI主控機以及PPI從屬機。用戶可以在被存儲在用戶程序存儲器中的用戶程序的控制下選擇PPI主控模式。在這種安排中,熟知的令牌環(huán)通信協(xié)議可被實施來在主控機與從屬機之間進行通信。在PPI主控模式下,PLC能夠保持令牌以及發(fā)起PPI請求,由此使得用戶能夠通過網(wǎng)絡(luò)讀和寫指令存取在其它CPU中的數(shù)據(jù)。當(dāng)CPU沒有保持令牌時,它作為從屬機應(yīng)答所有的請求。用于PPI通信的通信緩存器的大小在圖28所示的表中被規(guī)定。
在PLC用作為PPI主控機的同時,它按照熟知的通信標(biāo)準(zhǔn)(諸如由EN 50170歐洲標(biāo)準(zhǔn)給出的PROFIBUS規(guī)定)維護網(wǎng)絡(luò)。PLC將使用以下的算法,用于計算目標(biāo)令牌輪轉(zhuǎn)時間。
TTTR=(8+HSA)(256)(1/BR)其中TTTR-是目標(biāo)令牌輪轉(zhuǎn)時間HAS -是最高的站地址BR -是以每秒比特計的波特率如果在接收令牌以后,目標(biāo)令牌輪轉(zhuǎn)定時器時間到時,則PLC立即把令牌傳送到下一個令牌持有者,而不發(fā)送任何可能已經(jīng)排在接收的令牌以前的消息。
在PPI主控模式下提供的自由端口鏈路本發(fā)明提供通信端口的自由端口操作,此后稱為“自由端口”,它允許用戶人工地或通過用戶程序的操作來控制端口。自由端口操作的程序過程顯示于圖30a。
在本發(fā)明中,用戶通過按照上述的中斷結(jié)構(gòu)迫使PLC中斷(步驟S3002)而實施自由端口(步驟S3000)使用。在本例中,用戶通過附加上把通信端口的控制傳送到用戶程序的中斷事件,而在主模式下操作PLC的同時,起動自由端口通信(步驟S3004)。這是在系統(tǒng)協(xié)議保持令牌時執(zhí)行的(步驟S3006)。
作為應(yīng)答,PLC把控制傳送到用戶程序(步驟S3008)。PLC按照圖30b所示的SM比特規(guī)定SMB30和SMB130控制的UART設(shè)置(步驟S3010)。在該事例中,SMB30和SMB130規(guī)定的模式比特由PLC設(shè)置到PPI主控模式(步驟S3012)。
一旦控制從系統(tǒng)傳送到用戶的中斷例程,用戶程序就控制使用自由端口的消息的發(fā)送和接收(步驟S3014)。一旦用戶程序完成它的任務(wù),用戶程序就通過執(zhí)行終結(jié)自由端口操作的特定的指令而把控制返還到系統(tǒng)(步驟S3016)。被使用來終結(jié)自由端口操作的指令在圖29所示的表中被描述。系統(tǒng)然后通過把令牌返還到下一個站而恢復(fù)正常的操作(步驟S3018)。系統(tǒng)負責(zé)維護網(wǎng)絡(luò)的所有方面,就好像在PLC的令牌保持時間期間用戶程序從沒有被給予時間隙那樣(步驟S3020)。
內(nèi)建的自由端口協(xié)議為了給使用PPI協(xié)議的通信提供更高的性能,為PPI協(xié)議提供了內(nèi)建的協(xié)議選擇任選項。當(dāng)PLC被設(shè)置在(RUN)運行模式和自由端口PPI協(xié)議由被寫入到SM30或SM130的數(shù)值來選擇時,通信端口將按照被寫入到SM30或SM130的數(shù)值被配置。當(dāng)自由端口模式被退出時,PLC將以選擇的波特率回復(fù)到缺省的PPI協(xié)議。用于選擇自由端口PPI協(xié)議的代碼將是如由SM30(端口0)和由SM130(端口1)規(guī)定的。圖30b上的表給出SM30和SM130的規(guī)定。
自由端口接收消息中斷為了簡化用于自由端口通信的編程,PLC支持接收消息指令,它可以結(jié)合接收消息事件中斷一起被使用。用戶指定對于規(guī)定消息的開始和結(jié)尾所需要的條件。PLC支持以下的消息條件技術(shù)規(guī)范端口0SMB86-消息狀態(tài)字節(jié)表示終結(jié)條件SMB87-消息控制字節(jié)使能選擇的消息接收準(zhǔn)則SMB88-開始字符唯一地標(biāo)識新的消息的開始的字符SMB89-結(jié)尾字符唯一地標(biāo)識消息的結(jié)束的字符SMB90-空線時間周期,其后所接收的第一字符開始新的消息SMB92-字符/消息間超時(Inter-Character/Message Timeout)在字符之間、或?qū)τ谝唤邮盏南⒃试S的最大時間。用法由消息控制字節(jié)確定。
SMB94-字符計數(shù)接收消息的最大長度端口1SMB86-消息狀態(tài)字節(jié)表示終結(jié)條件SMB87-消息控制字節(jié)使能選擇的消息接收準(zhǔn)則SMB88-開始字符唯一地標(biāo)識新的消息的開始的字符SMB89-結(jié)尾字符唯一地標(biāo)識消息的結(jié)束的字符
SMB90-空線時間周期,其后所接收的第一字符開始新的消息SMB92-字符/消息間超時在字符之間、或?qū)τ谝唤邮盏南⒃试S的、最大時間。用法由消息控制字節(jié)確定。
SMB94-字符計數(shù)接收消息的最大長度接收緩存器的第一字節(jié)被用作為字符計數(shù),它可以表示有多少字符被接收消息功能接收。每個這些特別的存儲器的定義在圖30c和30d所示的表中給出。
DP_S7通信PLC可以支持DP/T協(xié)議,它提供用于主-從屬通信的MPI輸送。PPI消息是與DP/T消息完全兼容的,所以不需要對協(xié)議的特別選擇。PLC可以接受PPI請求或DP/T請求,以及隨之應(yīng)答。對于在PPI端口上的DP/T通信的支持可以包括遵從HD4的,從PLC的所有支持的波特率的傳輸。
當(dāng)PPI是無連接的協(xié)議時,DP/T是面向連接的協(xié)議。圖30d的表規(guī)定DP/T連接的數(shù)目和用于由在每個端口上的每個PLC支持的每個連接的緩存器的大小。這個表不包括用于可以在每個端口被支持的缺省SAP的緩存器。
調(diào)制解調(diào)器通信本發(fā)明的CPU支持在標(biāo)準(zhǔn)10比特全雙工調(diào)制解調(diào)器上的通信。這是相當(dāng)重要的,因為得到廣泛使用的、較新的11比特調(diào)制解調(diào)器常常是很貴的。已經(jīng)發(fā)現(xiàn),在工業(yè)技術(shù)典型地落后于計算機硬件當(dāng)前技術(shù)水平的工業(yè)基礎(chǔ)下這是特別正確的。另一方面,老的10比特調(diào)制解調(diào)器被大量地發(fā)現(xiàn)于工業(yè)樓板上。本發(fā)明利用這一發(fā)現(xiàn),即,在工業(yè)界有多余的10比特調(diào)制解調(diào)器,所以,提供獨特的10比特協(xié)議,允許本發(fā)明的PLC(或在這方面的任何PLC或處理器)連接到這樣裝備的工廠基底上。當(dāng)然,本發(fā)明的10比特協(xié)議對于利用10比特調(diào)制解調(diào)器的情況下的其它裝置是有價值的,和可應(yīng)用的。
本發(fā)明的10比特協(xié)議的另一個優(yōu)點在于,10比特協(xié)議是與更高階的比特協(xié)議是可兼容的。因此,10比特協(xié)議可以被11比特調(diào)制解調(diào)器或更高的調(diào)制解調(diào)器接受。
本發(fā)明的10比特協(xié)議與傳統(tǒng)的知識相反。當(dāng)然,它與利用比最近的調(diào)制解調(diào)器技術(shù)能夠支持的更少的比特的直覺知識不同地運行。它甚至與利用10比特調(diào)制解調(diào)器協(xié)議的、傳統(tǒng)的知識不同,因為本發(fā)明犧牲奇偶校驗,所有遠端通信為保證數(shù)據(jù)的完整性所依賴的關(guān)鍵碼。事實上,當(dāng)考慮到PLC負責(zé)控制機器時,例如笨重的設(shè)備或精確的機器人,可以看到,公司可能破產(chǎn),或更壞,有些人被PLC的不適當(dāng)?shù)拿顐?。普通專業(yè)人員將強烈反對10比特協(xié)議。
現(xiàn)在參照圖31描述本發(fā)明的10比特協(xié)議。在一個安排中,用于調(diào)制解調(diào)器通信的協(xié)議是標(biāo)準(zhǔn)PPI協(xié)議的修正方案。當(dāng)然,其它的比特分配方案也是可能的。這里規(guī)定的PPM或點對點調(diào)制解調(diào)器協(xié)議分配以下的比特1-開始比特8-數(shù)據(jù)比特1-停止比特0-奇偶校驗比特在PPM協(xié)議中,來自主機的每個請求接收回答,而沒有中間的應(yīng)答或輪詢(步驟S3100)。建議在PPM協(xié)議中只使用對于PPI協(xié)議規(guī)定的SD2消息類型(步驟S3104)。為了滿足這個要求,主控機可以規(guī)定在建立聯(lián)系請求中使用主/從協(xié)議(DP/T)(步驟S3106)。在每個請求后,主控機可允許中止事務(wù)之前例如15秒用于從屬機應(yīng)答(步驟S3108)。在接收請求后,從屬機將允許在發(fā)出應(yīng)答之前的最小的返回時間,例如20毫秒(步驟S3110)。
每個請求/應(yīng)答消息優(yōu)選地是SD2 PPI消息(步驟S3112),具有16比特的CRC檢驗碼作為消息的最后兩個字節(jié)被附加在其上(步驟S3114)。CRC使用工業(yè)標(biāo)準(zhǔn)多項式(X16+X12+X5+1),它被稱為CRC-CCITT多項式(步驟S3116)。CRC在不包括開始和停止比特的整個SD2幀上被計算(步驟S3118)。CRC產(chǎn)生器可以被預(yù)先設(shè)置到所有的用于發(fā)送和接收的裝置(步驟S3120)。這樣,有效的消息的接收產(chǎn)生0x1DOF的圖案(步驟S3122)。
PPM協(xié)議通過把通信端口連接器的第9管腳接地而被告知PLC。PLC在這個管腳上提供內(nèi)部的上拉電阻,以便選擇標(biāo)準(zhǔn)PROFIBUS協(xié)議。
將會看到,本發(fā)明的10比特協(xié)議不必限于10比特,而可以擴展到任意數(shù)目的比特,包括例如{1,2,3...9,10,11...}的配置。事實上,本發(fā)明最好被看作為不包括奇偶校驗比特的n比特協(xié)議。該n比特協(xié)議可以通過使用以上的說明被實施,以便確保數(shù)據(jù)完整性。
用戶程序的隱匿部分本發(fā)明的PLC提供軟件或代碼專用的保護。同樣的特性允許PLC對用戶隱匿不打算給用戶觀看的部分代碼,諸如由PLC產(chǎn)生的、用于執(zhí)行PLC的例程操作的代碼。將會看到,這個功能鼓勵第三方軟件開發(fā)者提供軟件,他否則會退避,因為否則代碼會提供給用戶。
為此,PLC支持HIDE(隱匿)指令,它允許用戶(或編程裝置)識別和隱匿部分的用戶程序。PLC程序用被加密的隱匿的代碼段被傳送和被存儲在用戶程序存儲器中。PLC在編譯時間解密隱匿的代碼段,以便產(chǎn)生可執(zhí)行的程序。一旦完成編譯,隱匿的代碼段被重新加密。
用戶提供的密碼能力被提供,它被用來加密要被隱匿的部分程序。這樣,只有合法的個人能夠觀看被隱匿的程序段。
如圖32a所示,本發(fā)明的隱匿指令標(biāo)記了加密部分的開始點。在本發(fā)明中,標(biāo)志P被設(shè)置來表示存在加密的代碼。現(xiàn)在參照圖32b,描述隱匿功能的工作。在步驟S3200,用戶引用隱匿功能,用于專用代碼的特定的片段。作為應(yīng)答,PLC使得P標(biāo)志被設(shè)置(步驟S3202)。PLC用可能由用戶提供的密碼來加密代碼(步驟S3204)以及在代碼的開始點和結(jié)尾處把隱匿標(biāo)簽插入到用戶存儲器中,以便標(biāo)記出加密的部分(步驟S3206)。在用戶程序編譯后(步驟S3208),PLC使得加密的部分被解密(步驟S3210),以及用戶程序正常執(zhí)行(步驟S3212)。一旦完成程序的執(zhí)行,PLC就重新加密專用代碼(步驟S3214)。
用戶密碼通過使用密碼,它允許用戶配置接入限制,可以提供對接入到PLC功能和存儲器的限制。沒有密碼,PLC可以提供無限制的接入。當(dāng)PLC被密碼保護時,PLC可以禁止按照在設(shè)置密碼時提供的配置所限制的所有的操作。PLC可以允許一個站對通信鏈路合法化,以使得該站的用戶可以具有無限制的接入。知道密碼的用戶可以通過輸入密碼和編輯限制類別在任何時間重新配置限制。不知道密碼的用戶必定工作于由知道密碼的用戶指派的限制之一。
在用戶忘記密碼的事件中,主控密碼可被使用來達到接入到PLC。為了主控密碼能夠有作用,PLC模式開關(guān)可以處在STOP或TERM位置。當(dāng)主控密碼被使用時,PLC軟件采取以下的行動1.PLC將轉(zhuǎn)移到STOP模式2.用戶程序(OB1)被清除(被刪除)3.用戶數(shù)據(jù)存儲器(DB1)被清除(被刪除)4.如果SDB0存在,除站地址和波特率以外的SDB2的所有的參量將被復(fù)制到SDB05.所有的SM標(biāo)志被設(shè)置到它們的缺省狀態(tài)6.所有的標(biāo)志被刪除7.所有的SCR比特被刪除8.模擬輸出將被凍結(jié)9.所有系統(tǒng)數(shù)據(jù)存儲器被設(shè)置到缺省狀態(tài)10.所有的強制點被清除和不加以強制11.日時鐘的時間將不改變12.所有的定時器/計數(shù)器的當(dāng)前數(shù)據(jù)被清除13.內(nèi)部的EEPROM被初始化(OB1和DB1被刪除而SDB2除了站地址以外被復(fù)制到SDB0,以及所有的輸入,輸出和數(shù)據(jù)值不加以強制)系統(tǒng)功能調(diào)用支持PLC 100支持系統(tǒng)功能調(diào)用(SFC),它允許用戶把定做的功能上載到PLC。
一般地,SFC可以由例如Siemens S7-200開發(fā)小組被創(chuàng)建,以及由編程裝置被下載到PLC。PLC支持至少兩個SFC。每個SFC的最大尺寸取決于在特定的PLC中可用的資源。對于在本發(fā)明中想像的CPU,每個SFC的最大尺寸是8KB,包括塊頭信息。SFC并不必要需要任何用戶數(shù)據(jù),雖然可以提供系統(tǒng)數(shù)據(jù)的地址分配。被下載到PLC的SFC變成為該PLC的操作系統(tǒng)的一部分。PLC還允許SFC被上載、下載、刪除、和被復(fù)制到存儲器卡盤。PLC報告SFC在適當(dāng)?shù)哪夸浲ㄐ殴δ苤械拇嬖凇?br>
在圖33a的表中顯示示例性SFC指令。現(xiàn)在更詳細地,圖33b顯示系統(tǒng)功能調(diào)用的方法。在步驟3300,用戶提醒PLC,SFC下載是想要的。PLC執(zhí)行用于下載的、必要的握手協(xié)議(步驟S3302),以及SFC被下載(步驟S3304)。PLC存儲下載的功能作為操作系統(tǒng)的功能庫的一部分(步驟S3306)。
裝載新的操作系統(tǒng)PLC可以使用FLASH EPROM,用于操作系統(tǒng)貯存通過通信端口支持裝載新的操作系統(tǒng)。這是通過使用在FLASH EPROM中的引導(dǎo)塊(它在被安裝在PLC時不能被擦除的)而被完成。
新的操作系統(tǒng)的裝載可以通過使用PC/PPI電纜把個人計算機直接連接到PLC而被完成。被安裝在個人計算機或PG的一部分的PROFIBUS卡的使用不是優(yōu)選的,因為PROFIBUS協(xié)議的復(fù)雜性,它是可以結(jié)合這些裝置被使用的唯一的協(xié)議。
被使用來裝載新的操作系統(tǒng)的協(xié)議的定義,將通過設(shè)計被識別,每個通信消息將提供以檢驗和的形式或CRC代碼的、數(shù)據(jù)完整性檢驗。新的操作系統(tǒng)的完整性的驗證是在正常的運行被引用以前,但是在FLASH EPROM被編程以后。
STL狀態(tài)已發(fā)現(xiàn),用于調(diào)試程序的傳統(tǒng)的調(diào)試系統(tǒng)是有缺陷的,因為現(xiàn)有的PLC的調(diào)試系統(tǒng)在執(zhí)行整個程序以后進行調(diào)試,或明顯地干擾程序執(zhí)行的時序。為此,在一組中的每個指令被執(zhí)行的時刻PLC支持執(zhí)行該組指令的結(jié)果的獲得。這個新穎的特性在PLC執(zhí)行指令的同時和在實時完成。為了實施這個功能,PLC裝備(instrument)了其狀態(tài)要被收集的編譯的代碼段。
在一個安排中,STL狀態(tài)在顯示器上被實施,諸如由被耦合到PLC的、作為熟知的人機接口所提供的。在顯示器上狀態(tài)窗口的尺寸將由可被返回的操作數(shù)值的數(shù)目確定。PLC可保留例如一個200字節(jié)的緩存器,用于操作數(shù)值。這個緩存器的尺寸是基于在單個通信幀中可被返回的數(shù)據(jù)量的。
優(yōu)選地只支持一個STL狀態(tài)窗口。支持多個窗口需要附加的RAM,而這引起同步和觸發(fā)問題。當(dāng)然,通過存儲器技術(shù)的將來的開發(fā),有可能有多個窗口。
只有一個裝置應(yīng)當(dāng)能夠打開STL狀態(tài)窗口。STL狀態(tài)窗口功能將與打開STL狀態(tài)窗口的裝置的站的地址相聯(lián)系。只要STL窗口保持打開,對于打開STL窗口的所有其它請求將被PLC拒絕。
為了打開STL狀態(tài)窗口,編程裝置可以識別窗口中第一指令的的地址,然后識別窗口中指令的數(shù)目。窗口技術(shù)規(guī)范的基本格式被顯示于下面。
2字節(jié)2字節(jié)在本例中,指定的唯一指令地址是在窗口中第一指令的存儲器地址。編程裝置承擔(dān)確保在建立STL窗口時請求的應(yīng)答數(shù)據(jù)適合于應(yīng)答緩存器的200字節(jié)的全部負擔(dān)。
STL狀態(tài)顯示不可跨越程序部分,例如主程序到例程,例程到例程,例程到指令,指令到指令之間的邊界,是一個原則。這會引起破壞。
應(yīng)答緩存器的示例性格式被顯示于圖34a,其中STL狀態(tài)窗口的開始的指令地址被返回用于肯定確認PLC和編程裝置正在觀看同一個窗口。長度區(qū)表示有多少數(shù)據(jù)值的字節(jié)被包含在用于每個指令的數(shù)據(jù)區(qū)。現(xiàn)在將描述代碼V 0-用于這個指令的數(shù)據(jù)不是有效的,因為這次掃描指令沒有被執(zhí)行。
1-用于這個指令的數(shù)據(jù)是有效。
ENO 使能輸出比特,表示指令是否無錯誤地執(zhí)行SCR SCR堆棧的比特數(shù)值S4-S0 S0是指堆棧值的頂部以及S1是指緊接著堆棧值的頂部的值Data 對于指令返回的STL狀態(tài)信息。編程裝置負責(zé)根據(jù)建立STL狀態(tài)窗口的請求分析數(shù)據(jù)。
PLC負責(zé)確保在STL狀態(tài)窗口獲取的數(shù)據(jù)來自單個掃描周期。PLC通過使用有效的標(biāo)志(V)向編程裝置表示這一點,它是通過壓下對于每個指令的堆棧值而被提供的。內(nèi)部地,PLC通過使用掃描計數(shù)值跟蹤什么是有效的值,該計數(shù)值通過對于STL狀態(tài)緩存器的請求被復(fù)位以及每次掃描被加增量。當(dāng)一個數(shù)值要被寫入到STL狀態(tài)緩存器時,緩存器的掃描計數(shù)狀態(tài)字與掃描計數(shù)器的當(dāng)前的數(shù)值進行比較。如果數(shù)值不同,則掃描計數(shù)值將被復(fù)制到STL狀態(tài)緩存器的掃描計數(shù)狀態(tài)字,以及緩存器中所有的V標(biāo)志將被清除。然后新的數(shù)值被存儲在緩存器中,以及對于該指令的V標(biāo)志將被設(shè)置。如果掃描計數(shù)的數(shù)值是相同的,則新的數(shù)值將被存儲在緩存器中,以及對于該指令的V標(biāo)志將被設(shè)置。這允許緩存器總是用來自最后的掃描的數(shù)據(jù)被更新,而同時保持數(shù)據(jù)同步到同一個掃描。
裝備(instrumenting)用于STL狀態(tài)的編譯代碼窗口現(xiàn)在參照圖34b和34c同時描述STL狀態(tài)的設(shè)備和操作。相應(yīng)于SYL狀態(tài)窗口中的指令的編譯代碼段被PLC識別(步驟S3400)(圖上畫陰影線部分)。在陰影線區(qū)中原先的編譯代碼被保存(步驟S3402),然后一旦STL狀態(tài)操作完成就被恢復(fù)(步驟S3404)。一旦原先的編譯代碼被保存,裝備的(instrumented)代碼被編譯在RAM的另一段中(步驟S3404)。
為了討論裝備的代碼的處理,需要定義如下幾個術(shù)語編譯的指令-編譯的指令是機器碼或通過編譯STL指令而產(chǎn)生的可執(zhí)行碼。通常,每個STL指令被編譯成多個機器指令。
裝備(instrumented)的指令-裝備的指令是編譯的指令連同對于節(jié)省功率流的狀態(tài)和操作數(shù)值所需要的額外的機器碼。
為了保留標(biāo)簽的地址,for-next循環(huán),子例程和中斷例程,在STL狀態(tài)窗口中每個編譯的指令用裝備的指令的分支代替(步驟S3406)。每個裝備的指令通過返回指令被終結(jié),返回指令把控制轉(zhuǎn)移到下一個編譯的指令(步驟S3408)。
到裝備的(instrumented)代碼的分支是通過使用LCALL指令完成的(步驟S3410)。LCALL把控制轉(zhuǎn)移到裝備的代碼,它獲取用于該指令的STL狀態(tài)(步驟S3412)。對于長于3字節(jié)的那些編譯的指令,返回的數(shù)值被調(diào)整以使得控制將被轉(zhuǎn)移到下一個編譯的指令(步驟S3414)。
在STL狀態(tài)窗口中第一編譯的指令的開始地址可以在裝備之前被確定(步驟S3416)。為了減小對于確定這個地址所需要的時間量,可以保存包含例如每二十五個編譯的指令的地址的指針的表(步驟S3418)。這樣的表對于8192字節(jié)用戶程序需要約300個字節(jié)。如果更多的RAM是可提供的,則地址指針的表可以指出每十個的編譯指令,這進一步減小用于STL狀態(tài)裝備的時間。
PLC利用圖34c的表,它列出最快的布爾指令,以及顯示對于編譯代碼所需要的進行的改變,以使得所有的指令在長度上是三字節(jié)的最小值。在表的陰影部分中的指令告訴PLC,哪些指令可被修正。
以上的技術(shù)需要最小的RAM的量,但它也需要所有編譯的代碼指令至少取對于LCALL指令所需要的字節(jié)數(shù)目,LCALL指令將被使用到裝備的代碼段的分支。為了清晰起見,上面假設(shè)LCALL指令取三個字節(jié),以及所有的編譯的指令取三個或更多個字節(jié)。
設(shè)計概念圖1上顯示對于PLC系列的機械設(shè)計概念。設(shè)計概念是“磚塊”型式,它具有把單元相連接以便擴展的能力。這些擴展單元也具有相同的型式和形狀。設(shè)計目標(biāo)是使得這個單元盡可能經(jīng)濟,而同時保持與Siemens S7-300TM和S7-400TM相同的家族外貌。PLC家庭將具有與與S7-300TM和S7-400TM系列相同的彩色和版本型式。
外殼PLC外殼以均勻的塑料和彩色被壓模塑造(Noryl GFN1 SE1Anthrazit 614 Herst N.R.GE 93263)。單元由頂部、底部、兩個入口蓋、一個DIN導(dǎo)軌插銷、和兩個尺寸的光管道。所有這些部件合在一起,允許容易制造。外殼中的設(shè)備被做成允許PWB也“卡搭”到位置。I/O外殼以與PLC外殼相同的方式被設(shè)計。外殼被設(shè)計成用于IP20保護,以及阻止其它物體(諸如錢幣)進入單元。圖35a的表顯示單元的一個可能的尺寸組。
單元安裝圖35b所示的PLC 3900被設(shè)計成被安裝在DIN導(dǎo)軌3906上,或被面板安裝3908。當(dāng)單元要被DIN導(dǎo)軌安裝時,安裝插銷被使用來把單元鎖定在標(biāo)準(zhǔn)類型50022 DIN導(dǎo)軌上。當(dāng)單元要被面板安裝時,提供了安裝孔,它接納公制M4或#8類型的螺釘尺寸。PLC 3904在這里被顯示為連同I/O擴展模塊3902一起。在單元的上面和下面需要例如25mm的空隙,以便允許用戶引線進出,以及考慮單元的適當(dāng)?shù)睦鋮s。
雖然參照特定的數(shù)值和電路安排描述了本發(fā)明,但將會看到,屬于本發(fā)明的精神和范圍內(nèi)的、其它的數(shù)值和電路安排可以代替所公開的安排。另外,將會看到,專業(yè)人員將立即理解如何實施PLC的軟件代碼,以及在這方面將會理解,各種軟件應(yīng)用可以以任何適當(dāng)?shù)木幊陶Z言被編寫以及被存儲在任何適當(dāng)?shù)挠涗浢襟w,諸如非易失性存儲器,包括軟盤、CD-ROM或DVD等。
權(quán)利要求
1.一種用于可編程邏輯控制器(PLC)的設(shè)備,包括輸入濾波器用于通過提供模仿由恒定電流源驅(qū)動的電容的電路響應(yīng)而使得濾波元件數(shù)目最小化,它的輸出電壓由具有相當(dāng)大的后滯的比較器檢測,所述輸入濾波器包括輸入,用于接收要被濾波的輸入信號;以及電路,把模仿由恒定電流源驅(qū)動的電容的電路響應(yīng)加到所述輸入信號上,它的輸出電壓由具有相當(dāng)大的后滯的比較器檢測,由此使得所述輸入濾波器的所述濾波元件的數(shù)目最小化。
2.如權(quán)利要求1的設(shè)備,其中所述輸入濾波器提供控制濾波函數(shù)的、可設(shè)置的濾波器設(shè)置。
3.如權(quán)利要求2的設(shè)備,其中所述PLC按照由PLC執(zhí)行的程序設(shè)置濾波器的設(shè)置。
4.如權(quán)利要求1的設(shè)備,其中所述電路包括上/下計數(shù)器,它的計數(shù)方向由所述輸入信號的狀態(tài)來控制。
5.如權(quán)利要求4的設(shè)備,其中所述輸入濾波器的延遲時間按照所述上/下計數(shù)器的輸入時鐘的周期的因子被設(shè)置。
6.如權(quán)利要求4的設(shè)備,其中所述上/下計數(shù)器進行計數(shù)直至一個預(yù)定的數(shù)目,以檢測所述輸入信號的輸入過渡。
7.如權(quán)利要求6的設(shè)備,其中當(dāng)所述上/下計數(shù)器計數(shù)到所述預(yù)定的數(shù)目時,所述輸入濾波器使得所述電路的輸出信號被輸出,并使得保持在輸出狀態(tài),直至達到預(yù)定的門限值為止。
8.如權(quán)利要求1的設(shè)備,其中還包括時鐘,用于與所述PLC的系統(tǒng)時鐘無關(guān)地驅(qū)動所述所述輸入濾波器。
9.一種用于可編程邏輯控制器(PLC)的設(shè)備,包括輸入濾波器,用于通過提供模仿由恒定電流源驅(qū)動的電容的電路響應(yīng)而使得濾波元件數(shù)目最小化,它的輸出電壓由具有相當(dāng)大的后滯的比較器檢測,所述輸入濾波器包括輸入裝置,用于接收要被濾波的輸入信號;以及電路裝置,把模仿由恒定電流源驅(qū)動的電容的電路響應(yīng)加到所述輸入信號上,它的輸出電壓由具有相當(dāng)大的后滯的比較器檢測,由此使得所述輸入濾波器的所述濾波元件的數(shù)目最小化。
10.如權(quán)利要求9的設(shè)備,其中所述輸入濾波器提供用于設(shè)置控制濾波函數(shù)的、可設(shè)置的濾波器設(shè)置的裝置。
11.權(quán)利要求2的設(shè)備,其中所述PLC按照由PLC執(zhí)行的程序設(shè)置濾波器設(shè)置。
12.如權(quán)利要求9的設(shè)備,其中所述電路裝置包括用于計數(shù)方向的上/下計數(shù)器裝置,其計數(shù)方向由所述輸入信號的狀態(tài)來控制。
13.如權(quán)利要求12的設(shè)備,其中所述輸入濾波器的延遲時間按照所述上/下計數(shù)器的輸入時鐘的周期的因子被設(shè)置。
14.如權(quán)利要求12的設(shè)備,其中所述上/下計數(shù)器裝置進行計數(shù)直至一個預(yù)定的數(shù)目,以檢測所述輸入信號的輸入過渡。
15.一種用于對加到可編程邏輯控制器(PLC)的輸入信號濾波的方法,通過提供模仿由恒定電流源驅(qū)動的電容的電路響應(yīng)而使得濾波元件數(shù)目最小化,它的輸出電壓由具有相當(dāng)大的后滯的比較器檢測,所述方法包括以下步驟接收要被濾波的輸入信號;以及把模仿由恒定電流源驅(qū)動的電容的電路響應(yīng)加到所述輸入信號上,它的輸出電壓由具有相當(dāng)大的后滯的比較器檢測,由此使得所述輸入濾波器的所述濾波元件的數(shù)目最小化。
16.如權(quán)利要求15的方法,還包括步驟設(shè)置控制所述輸入濾波器的濾波函數(shù)的、可設(shè)置的濾波器的設(shè)置。
17.如權(quán)利要求16的方法,其中設(shè)置的步驟按照由PLC執(zhí)行的程序設(shè)置濾波器設(shè)置。
18.如權(quán)利要求15的方法,還包括對上/下計數(shù)器加增量/減增量的步驟,所述計數(shù)器的計數(shù)方向由所述輸入信號的狀態(tài)來控制。
19.如權(quán)利要求18的方法,還包括按照所述上/下計數(shù)器的輸入時鐘的周期的因子設(shè)置所述輸入濾波器的延遲時間的步驟。
20.如權(quán)利要求18的方法,其中對上/下計數(shù)器加增量/減增量的步驟進行計數(shù)直至一個預(yù)定的數(shù)目,以檢測所述輸入信號的輸入過渡。
全文摘要
帶有增強的和擴展的能力的可編程邏輯控制器。數(shù)字輸入濾波器通過模仿由恒定電流源驅(qū)動的電容的作用,以相當(dāng)少的邏輯實施濾波器,它的輸出電壓由具有相當(dāng)大量的后滯的比較器檢測。脈沖捕獲電路捕獲輸入脈沖,盡管在掃描周期之間出現(xiàn)更新。脈沖輸出控制器包括硬件流水線機制,允許從波形到波形的平滑的、硬件控制的過渡。自由端口鏈路允許用戶人工地或通過用戶程序的操作來控制端口。為了提供使用PPI協(xié)議的通信的更高的性能,PLC包括內(nèi)建的協(xié)議。n比特調(diào)制解調(diào)器協(xié)議確保數(shù)據(jù)的完整性,而不用使用奇偶校驗型數(shù)據(jù)完整性系統(tǒng)。隱匿指令通過加密敏感的代碼和在編譯期間解密該代碼,此后重新加密代碼,而保護專利的軟件。系統(tǒng)功能調(diào)用允許用戶創(chuàng)建和/或下載新的PLC功能以及實施它們作為PLC操作系統(tǒng)功能。ST2狀態(tài)功能在運行期間調(diào)試程序,而同時程序正在運行。微PLC裝置提供緊湊的尺寸和效率。
文檔編號G05B19/05GK1350666SQ00807623
公開日2002年5月22日 申請日期2000年3月15日 優(yōu)先權(quán)日1999年3月15日
發(fā)明者M·S·波格斯, T·L·福爾頓, S·豪斯曼, G·麥納布, A·麥努特, S·W·斯蒂梅爾 申請人:西門子能量及自動化公司