專利名稱:可編程邏輯控制器方法,系統(tǒng)和設(shè)備的制作方法
優(yōu)先權(quán)本發(fā)明要求1999年3月30日提交的序列號(hào)No.60/126,958的美國臨時(shí)專利申請的優(yōu)先權(quán)。
背景發(fā)明領(lǐng)域本發(fā)明涉及可編程邏輯控制器(PLC)。
相關(guān)信息可編程邏輯控制器(PLC)是近期在過程控制技術(shù)中發(fā)展起來的。作為過程控制的一部分,PLC被使用來監(jiān)視來自各種各樣的輸入點(diǎn)(輸入傳感器)的輸入信號(hào),它們可報(bào)告在控制過程中出現(xiàn)的事件和條件。例如,PLC可監(jiān)視諸如電動(dòng)機(jī)速度、溫度、壓力、容積流量等等的輸入條件??刂瞥绦虮淮鎯?chǔ)在PLC內(nèi)的存儲(chǔ)器中,它指示PLC遇到特定的輸入信號(hào)或條件時(shí)應(yīng)采取什麼行動(dòng)。響應(yīng)于由輸入傳感器提供的這些輸入信號(hào),PLC得出和產(chǎn)生輸出信號(hào),這些輸出信號(hào)經(jīng)過PLC輸出點(diǎn)傳輸?shù)礁鱾€(gè)輸出裝置,諸如傳動(dòng)機(jī)構(gòu)和繼電器,以便控制過程。例如,PLC發(fā)出輸出信號(hào)來加速或減速輸送機(jī),旋轉(zhuǎn)機(jī)器人的手臂,打開或閉合繼電器,提高或降低溫度以及許多其它可能的控制功能,其功能多得無法一一列出。
以上提到的輸入和輸出點(diǎn)典型地分別與輸入模塊和輸出模塊相聯(lián)系。輸入模塊和輸出模塊合在一起在這里被稱為I/O模塊。本領(lǐng)域技術(shù)人員又把這樣的I/O模塊稱為I/O卡或I/O板。這些I/O模塊典型地是可插入到位于PLC的后電路板的各個(gè)插槽中。插槽通過主總線被耦合在一起,主總線把被插入到插槽中的任何的I/O模塊耦合到中央處理器(CPU)。CPU本身可以位于可插入到位于PLC的后板的專用插槽中的一個(gè)卡上。
圖36顯示一個(gè)典型的作為系統(tǒng)3610的可編程邏輯控制器系統(tǒng)。系統(tǒng)10包括主可編程邏輯控制器3615,它通過現(xiàn)場總線3620被耦合到總線接口單元3625??偩€接口單元3625將現(xiàn)場總線3620耦合和對接到本地總線3630,后者包括多個(gè)I/O終端塊3635。I/O終端塊3635被耦合到各自的I/O模塊3640,如
圖1所示。
在系統(tǒng)3610,由主可編程邏輯控制器3615執(zhí)行計(jì)算處理。換句話說,各種條件在I/O模塊3640被檢測,以及由此得出輸入數(shù)據(jù)。輸入數(shù)據(jù)通過總線接口單元3625和現(xiàn)場總線3620被傳送到主可編程邏輯控制器3615。主可編程邏輯控制器3615按照被存儲(chǔ)在主PLC3615中的控制程序?qū)斎霐?shù)據(jù)進(jìn)行處理。主可編程邏輯控制器3615處理輸入數(shù)據(jù),以及響應(yīng)于它而產(chǎn)生輸出數(shù)據(jù)。輸出數(shù)據(jù)通過現(xiàn)場總線3620、總線接口單元3625、本地總線3630被傳送到一個(gè)或多個(gè)I/O模塊3640。響應(yīng)于輸出數(shù)據(jù),接收輸出數(shù)據(jù)的I/O模塊控制被耦合到I/O模塊的輸出裝置。I/O終端塊被提供來把I/O模塊3640耦合到總線接口單元3625。
PLC可以被設(shè)置在主/從屬網(wǎng)絡(luò)中,如圖37a所示。在圖上,主/從屬控制系統(tǒng)包括主PLC(M)和多個(gè)遠(yuǎn)端從屬單元RSU(R1-Rn)。如圖所示,包括主PLC、數(shù)據(jù)鏈路、和I/O模塊的主PLC(M)通過使用由用戶設(shè)置的程序和通信參量來控制它本身的I/O連接點(diǎn),以及也控制用于遠(yuǎn)端從屬單元R1-Rn的各個(gè)I/O連接點(diǎn)。多個(gè)RSU(R1-Rn)中的每個(gè)RSU具有至少一個(gè)I/O模塊,以及通過通信電纜實(shí)現(xiàn)與主PLC(M)的數(shù)據(jù)通信,因此從而控制它本身的I/O模塊。RSU可以是用作為從屬的PLC。
參照圖37b,PLC和每個(gè)RSU包括MODEM(調(diào)制解調(diào)器)3710,用于通過通信電纜實(shí)現(xiàn)在主PLC(M)與RSU之間的數(shù)據(jù)通信;接收/發(fā)送模塊3711,用于按照預(yù)定的協(xié)議與主PLC(M)交換數(shù)據(jù);接收/發(fā)送緩存器3712,用于把用于交換的數(shù)據(jù)暫時(shí)存儲(chǔ)在其中;輸出數(shù)據(jù)貯存單元3713,用于把從主PLC(M)發(fā)送到輸入/輸出模塊3716的數(shù)據(jù)存儲(chǔ)在其中;輸入數(shù)據(jù)貯存單元3714,用于把要從輸入/輸出模塊3716發(fā)送到主PLC(M)的數(shù)據(jù)存儲(chǔ)在其中;以及輸入/輸出控制模塊3715,用于控制在數(shù)據(jù)貯存單元3713、3714和輸入/輸出模塊3716之間的數(shù)據(jù)傳輸。
在運(yùn)行時(shí),在主PLC(M)中的數(shù)據(jù)鏈路是連接到主PLC(M)上的數(shù)據(jù)鏈接裝置,它在相關(guān)的網(wǎng)絡(luò)中作為主單元運(yùn)行,以及成為數(shù)據(jù)通信的始發(fā)端。數(shù)據(jù)鏈路能夠設(shè)置RSU的最大數(shù)目N。RSU設(shè)置它自己的和主PLC(M)的每個(gè)號(hào)碼,以及直接從主PLC(M)接收通信,由此實(shí)現(xiàn)數(shù)據(jù)傳輸。在主PLC(M)中的數(shù)據(jù)鏈路隨后選擇RSU(R1-Rn),以及實(shí)現(xiàn)數(shù)據(jù)接收/發(fā)送操作。例如,當(dāng)從主PLC(M)輸出的數(shù)據(jù)通過通信電纜和MODEM 3710被加到RSU(R1)時(shí),被施加的數(shù)據(jù)被傳送通過接收/發(fā)送緩存器3712和接收/發(fā)送模塊3711,以及被存儲(chǔ)在輸出數(shù)據(jù)貯存單元3713中。被存儲(chǔ)在輸出數(shù)據(jù)貯存單元3713中的數(shù)據(jù)在輸入/輸出控制模塊3715的控制下被輸出到輸入/輸出模塊3716。從遠(yuǎn)端從屬單元R1的輸入/輸出模塊3716讀出的外部控制目標(biāo)數(shù)據(jù)在輸入/輸出控制模塊3715的控制下被存儲(chǔ)在輸入數(shù)據(jù)貯存單元3714。被存儲(chǔ)在輸入數(shù)據(jù)貯存單元3714的數(shù)據(jù)通過接收/發(fā)送緩存器3712和接收/發(fā)送模塊3711被發(fā)送到主PLC(M)。
本發(fā)明提供增強(qiáng)和擴(kuò)展傳統(tǒng)的PLC的能力的新特性。
發(fā)明目的和概要本發(fā)明的一個(gè)目的是增強(qiáng)和擴(kuò)展PLC的能力。
本發(fā)明的另一個(gè)目的是提供用于增強(qiáng)和擴(kuò)展PLC的輸入能力的數(shù)字輸入濾波器。
本發(fā)明的再一個(gè)目的是提供用于增強(qiáng)和擴(kuò)展PLC的脈沖捕獲能力的脈沖捕獲電路。
本發(fā)明的又一個(gè)目的是提供用于增強(qiáng)和擴(kuò)展PLC的輸出能力的脈沖輸出控制器。
本發(fā)明的另一個(gè)目的是提供用于增強(qiáng)和擴(kuò)展PLC的便攜性的自由端口鏈路。
本發(fā)明的再一個(gè)目的是提供用于增強(qiáng)和擴(kuò)展PLC的連接性的調(diào)制解調(diào)器通信的協(xié)議。
本發(fā)明的又一個(gè)目的是提供用于增強(qiáng)和擴(kuò)展PLC與外部編程應(yīng)用的集成的隱匿指令。
本發(fā)明的另一個(gè)目的是提供用于增強(qiáng)和擴(kuò)展PLC的功能調(diào)用能力的系統(tǒng)功能調(diào)用。
本發(fā)明的一個(gè)附加目的是提供用于增強(qiáng)和擴(kuò)展PLC的狀態(tài)捕獲能力的STL狀態(tài)。
本發(fā)明的又一個(gè)附加目的是提供帶有增強(qiáng)和擴(kuò)展的能力的宏P(guān)LC。
按照上述的目的,本發(fā)明提供帶有增強(qiáng)和擴(kuò)展的能力的可編程邏輯控制器。
本發(fā)明的一個(gè)方面,提供了數(shù)字輸入濾波器。該數(shù)字輸入濾波器模擬由恒定電流源驅(qū)動(dòng)的電容的作用,該恒流源的輸出電壓由帶有大的磁滯的比較器所檢測。該數(shù)字濾波器可用很少的邏輯元件來實(shí)施輸入濾波器。
本發(fā)明的另一個(gè)方面,提供了脈沖捕獲電路。盡管在掃描周期之間出現(xiàn)更新,該脈沖捕獲電路捕獲輸入脈沖。
本發(fā)明的又一個(gè)方面,提供了脈沖輸出控制器。該脈沖輸出控制器從一個(gè)PTO或PWM波形平滑地過渡到另一個(gè)波形。該脈沖輸出控制器包括硬件流水線機(jī)制,從而允許逐個(gè)波形的平滑的受硬件控制的過渡。
本發(fā)明的另一個(gè)方面,提供了自由端口鏈路。自由端口鏈路允許用戶人工地或通過用戶程序運(yùn)行來控制端口。為了提供使用PPI協(xié)議進(jìn)行通信的更高的性能,提供了內(nèi)建的協(xié)議選擇任選方案。
本發(fā)明的再一個(gè)方面,提供了用于調(diào)制解調(diào)器通信的協(xié)議。在特定的安排中,調(diào)制解調(diào)器協(xié)議支持在標(biāo)準(zhǔn)的10比特全雙工調(diào)制解調(diào)器上的通信。協(xié)議使用新穎的技術(shù)以確保數(shù)據(jù)完整性,而無需使用奇偶校驗(yàn)型數(shù)據(jù)完整性系統(tǒng)。
本發(fā)明的又一個(gè)方面,提供了隱匿指令。該隱匿指令通過加密敏感的代碼和在編譯期間解密該代碼以及此后重新加密該代碼,從而提供對專用的軟件的保護(hù)。
本發(fā)明的另一個(gè)方面,提供了系統(tǒng)功能調(diào)用。該系統(tǒng)功能調(diào)用允許用戶創(chuàng)建和/或下載新的PLC功能以及把它們作為PLC操作系統(tǒng)功能來實(shí)施。
本發(fā)明的又一個(gè)方面,提供了STL狀態(tài)功能。該STL狀態(tài)功能允許用戶在運(yùn)行時(shí)間期間和正在執(zhí)行程序的同時(shí)診斷程序。
本發(fā)明的再一個(gè)方面,提供了以微PLC安排形式的PLC。
通過以下對附圖的說明,將容易了解本發(fā)明的這些和其它目的。
附圖簡述圖1是本發(fā)明的PLC的透視圖;圖2是PLC的方框圖3是PLC的電路圖;圖4是ASIC的方框圖;圖5是輸入塊的方框圖;圖6a是輸入濾波器電路的方框圖;圖6b是輸入濾波器電路的真值表;圖6c和d是輸入濾波器電路的方框圖;圖7是延遲時(shí)間表;圖8是掃描周期的時(shí)序圖;圖9是脈沖捕獲電路的方框圖;圖10是掃描周期的時(shí)序圖;圖11是掃描周期的時(shí)序圖;圖12a是脈沖捕獲電路的真值表;圖12b是用于脈沖捕獲電路使能寄存器的表;圖12c是用于脈沖捕獲電路保留寄存器的表;圖12d是用于脈沖捕獲電路輸入點(diǎn)狀態(tài)寄存器的表;圖12e是用于脈沖捕獲電路的方框圖;圖12f是用于脈沖捕獲電路的方框圖;圖13是輸出塊的方框圖;圖14a是脈沖輸出塊的方框圖;圖14b是脈沖輸出塊的寄存器的表;圖15是脈沖輸出塊的狀態(tài)圖;圖16是軟件代碼表;圖17是脈沖輸出塊的狀態(tài)圖;圖18是軟件代碼表;圖19是用于高速運(yùn)行的表;圖20是I/O擴(kuò)展插槽的方框圖;圖21是用于I/O擴(kuò)展插槽的表;圖22是I/O擴(kuò)展模塊的方框圖;圖23是元件表;圖24是電平表;圖25是讀周期的時(shí)序圖;圖26是寫周期的時(shí)序圖27是奇偶校驗(yàn)比特的表;圖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)中通信的方框圖。
圖38是高速DC輸出的示意圖;以及圖39是本發(fā)明的高速DC輸出的示意圖。
優(yōu)選實(shí)施例的詳細(xì)描述可編程邏輯控制器(PLC)的總的說明圖1上顯示本發(fā)明的示例的可編程邏輯控制器(PLC)100。
該圖說明PLC100的輸入/輸出(I/O)能力。用戶通過操作運(yùn)行/停止開關(guān)電位計(jì)和擴(kuò)展I/O連接頭104而控制PLC100。狀態(tài)發(fā)光二極管(LED)106指示PLC 100的狀態(tài)。卡盤端口108被提供來接受用于擴(kuò)展PLC 100的功能(包括附加存儲(chǔ)器)的卡盤。I/O LED 110被提供來指示PLC 100的輸入/輸出引腳的狀態(tài)。通信端口112把PLC100耦合到外部元件,其中包括其它的PLC。通信端口可被使用來以主從關(guān)系把PLC 100連接到其它的PLC。通信端口112也可被使用來連接計(jì)算機(jī)(諸如網(wǎng)絡(luò)計(jì)算機(jī)或個(gè)人計(jì)算機(jī))。PLC 100也可以通過通信端口112經(jīng)過調(diào)制解調(diào)器或等價(jià)的通信協(xié)議裝置連接到互聯(lián)網(wǎng)。用戶寫連接器114允許用戶把PLC外部連接到諸如電機(jī)和其他外圍設(shè)備的設(shè)備。
在圖上,PLC 100被顯示為靠近一個(gè)擴(kuò)展I/O,它擴(kuò)展PLC 100的輸入/輸出能力。擴(kuò)展模塊以及PLC 100包括DIN軌道安裝插銷116和面板安裝定位位置118,用于把PLC 100和擴(kuò)展I/O 102固定到適當(dāng)?shù)陌惭b卡具。
將會(huì)看到,本發(fā)明的PLC 100可包括PLC的多個(gè)裝置和配置、幾個(gè)擴(kuò)展I/O模塊、以及附件(其中包括存儲(chǔ)器卡盤,時(shí)鐘卡盤,電池卡盤電纜或I/O模擬器開關(guān)組件)。本發(fā)明將描述與這里描述的各個(gè)方面的特定部分有關(guān)的一部分可能的配置,專業(yè)人員通過了解這里描述的本發(fā)明將立即知道這些配置。
本發(fā)明的PLC因?yàn)樗男〉奈锢沓叽绫粴w類為微PLC。雖然PLC在物理尺寸是小的,但它包括與物理上大型的PLC同樣強(qiáng)有力(如果并不比它更強(qiáng)有力的話)的許多特性。圖1顯示具有可能的尺寸的PLC和I/O模塊的圖。PLC 100的設(shè)計(jì)可參照圖39a和b來描述。
圖2顯示本發(fā)明的PLC的方框圖200。所顯示的方框圖是對于帶有用于供電的集成的AC電源202的PLC。中央處理器210是PLC 200(100)的核心,它包括ASIC、ROM和RAM。數(shù)字輸入接口212被提供來用于從用戶引線114輸入信號(hào)(圖1)。數(shù)字輸出接口204把PLC200耦合到用戶引線114(圖1)。通信接口206把PLC 200經(jīng)過RS-485或令牌總線通信耦合到外部裝置。擴(kuò)展I/O接口208把PLC 200經(jīng)過高速復(fù)用總線連接到擴(kuò)展I/O接口。
運(yùn)行時(shí),AC電源202可以提供在AC線與輸出(諸如24VDC和5VDC輸出)之間的隔離邊界。PLC也可以用24VDC電源供電。24VDC電源模型不提供24VDC與5VDC的隔離。數(shù)字輸入接口212可任選地把用戶引線與中央處理器(CPU)210相隔離,后者包括所有的邏輯電平信號(hào)。數(shù)字輸出接口提供在用戶引線與CPU之間類似的隔離邊界。隔離邊界以光隔離的形式或通過繼電器被提供,其中繼電器線圈與繼電器觸點(diǎn)相隔離。在圖上沒有顯示在CPU與通信接口或擴(kuò)展I/O接口之間有隔離,但可以提供這種隔離。所有的擴(kuò)展I/O模塊提供在用戶引線與5VDC邏輯信號(hào)之間的光隔離邊界。CPU210由ASIC組成,它包括微處理器、RAM和ROM。ROM包含用于PLC的操作系統(tǒng),以及取決于PLC型號(hào),可以是EPROM或快閃EPROM。RAM被使用于操作系統(tǒng)數(shù)據(jù)貯存器和便箋式高速暫存貯存器,以及用于存儲(chǔ)已被編譯為可執(zhí)行的代碼的用戶程序。
在圖3上顯示了中央處理器(CPU)300 H/W的方框圖。這里沒有詳細(xì)地描述所顯示的CPU的連接。這里感興趣的特定的連接是I/O板上的輸入電路302、I/O擴(kuò)展總線304、和I/O板上的輸出電路306連接。無論如何,圖3充分概略清晰地顯示了這些細(xì)節(jié),專業(yè)人員從圖上了解細(xì)節(jié)將不會(huì)發(fā)生問題。將會(huì)看到,圖3只顯示一個(gè)裝置,以及本領(lǐng)域技術(shù)人員根據(jù)本技術(shù)說明將容易了解如何實(shí)施其它的、等同的裝置。
CPU300和連接被安排為圖4以示意圖形式顯示的ASIC。如圖所示,ASIC包括微處理器406(令牌為“core(核心)”),地址譯碼單元402和映射邏輯。兩個(gè)UART(通用異步接收機(jī)發(fā)射機(jī))424、426被提供來實(shí)施形成串行端口的電子電路。UART把來自CPU的并行字節(jié)變換成串行字節(jié),以便傳輸,以及反之亦然。然而,其它的通信安排也是可能的。具有數(shù)字輸入調(diào)節(jié)電路418、高速計(jì)數(shù)器410、脈沖串輸出電路420、電位計(jì)電路414、看門狗電路430和復(fù)位電路428。提供了總線接口404。擴(kuò)展I/O單元1被令牌為422。測試接口被提供來測試PLC 100。功率分配電路被顯示為電路432。存儲(chǔ)器被顯示為內(nèi)部RAM 408。中斷控制單元412處理用于CPU 406的中斷。
PLC 100提供供用戶創(chuàng)建特定的應(yīng)用控制程序之用的裝置,當(dāng)程序被PLC執(zhí)行時(shí),它指示機(jī)器的操作和/或在制造各種各樣的產(chǎn)品時(shí)使用的處理過程。這樣,PLC類似于所有其它的PLC,以及專業(yè)人員通過對PLC的這樣的基本了解,將立即了解本發(fā)明的更通俗的方面。盡管PLC的使用和功能上的相似性,然而還有許多獨(dú)特的特性和功能被綜合到本發(fā)明的PLC 100之中,它擴(kuò)展和增強(qiáng)對于用戶的功用,正如這里描述的。
數(shù)字輸入點(diǎn)單元現(xiàn)在將描述數(shù)字輸入點(diǎn)單元418。在每個(gè)數(shù)字輸入信號(hào)(10.0到11.5)被變換到可兼容的信號(hào)(例如,+5V信號(hào))以及與用戶引線隔離以后,它被饋送到ASIC的數(shù)字輸入點(diǎn)單元418。在圖5上顯示了用于輸入點(diǎn)lBO[20]的方框圖,它顯示由數(shù)字輸入點(diǎn)單元500(418,圖4)提供的功能。
這個(gè)單元500在從用戶應(yīng)用項(xiàng)被連接到CPU的數(shù)字輸入點(diǎn)上執(zhí)行多個(gè)功能。這個(gè)單元對輸入點(diǎn)進(jìn)行濾波,以及提供對這些點(diǎn)的濾波的狀態(tài)的訪問。脈沖捕獲功能在每個(gè)輸入點(diǎn)上被提供,以便可任選地允許捕獲短的持續(xù)時(shí)間的脈沖。邊緣中斷功能被提供用來在某些輸入點(diǎn)上出現(xiàn)上升和下降沿過渡時(shí)產(chǎn)生中斷。高速計(jì)數(shù)器被使用來計(jì)數(shù)對于CPU掃描速率而言發(fā)生得太快的事件。
如圖5所示,數(shù)字輸入濾波器5061-n提供可用軟件配置的濾波器。也就是,PLC設(shè)置這樣的濾波器參量,它們按照由PLC執(zhí)行的軟件控制濾波函數(shù)。在至少一種裝置中,多達(dá)8個(gè)濾波器數(shù)值是可由軟件配置的,例如從0.2ms到12.8ms。濾波器實(shí)施方案可以利用在每個(gè)輸入點(diǎn)上的4比特上/下計(jì)數(shù)器。脈沖捕獲電路5081-n允許捕獲濾波的輸入的上升或下降沿過渡,直至軟件有機(jī)會(huì)讀出數(shù)值為止。獨(dú)立的使能/禁止脈沖捕獲功能被提供用于每個(gè)輸入點(diǎn)。當(dāng)這個(gè)功能被使能時(shí),邊緣中斷電路5101-n,在多到四個(gè)輸入點(diǎn)上出現(xiàn)上升沿和/或下降沿過渡時(shí)產(chǎn)生中斷。高速計(jì)數(shù)器514(在本例中支持六個(gè)高速計(jì)數(shù)器(HSC))每個(gè)包含一個(gè)32比特上/下計(jì)數(shù)器和一個(gè)32比特比較寄存器。32比特寄存器捕獲計(jì)數(shù)值,以使得它可被軟件讀出。每個(gè)計(jì)數(shù)器和比較寄存器可由軟件來裝載。四個(gè)HSC可以處理兩個(gè)相位的時(shí)鐘信號(hào)。另兩個(gè)HSC只可以支持單相位時(shí)鐘信號(hào)。當(dāng)出現(xiàn)計(jì)數(shù)器對比較寄存器的相等性時(shí),每個(gè)HSC可以在方向改變條件時(shí)和在確立HSC的外部復(fù)位輸入時(shí)產(chǎn)生中斷。
數(shù)字輸入濾波器電路在以前的ASIC電路中輸入濾波器的實(shí)施需要耗費(fèi)太多的門。在本發(fā)明的ASIC中,需要提供可兼容的功能而不耗費(fèi)這樣多的門。以下是參照圖6a到6d和7通過利用圖6b的真值表對于在本ASIC中用相當(dāng)少的邏輯實(shí)施輸入濾波器的說明。
ASIC提供數(shù)字輸入濾波以用于十四個(gè)數(shù)字輸入點(diǎn),如圖6a和6b所示。在圖6a上,數(shù)字輸入濾波器電路600(506,圖5)包括輸入602、輸入濾波器電路604、選擇的延時(shí)606和輸出608。由選擇的延時(shí)606設(shè)置的濾波器延時(shí)是可用軟件配置的七個(gè)不同的數(shù)值之一。濾波器延時(shí)通過ASIC內(nèi)部的可設(shè)置寄存器而被選擇。圖7上的以下的表描述在寫入到寄存器的數(shù)值與選擇的相應(yīng)的延時(shí)之間的可能的關(guān)系。當(dāng)然,其它的關(guān)系也是可能的。
每個(gè)數(shù)字輸入濾波器模仿由恒定電流源驅(qū)動(dòng)的電容器的作用,該恒流源的輸出電壓由帶有大量磁滯的比較器所檢測。這個(gè)模擬電路的數(shù)字等價(jià)性被實(shí)施為四個(gè)比特的上/下計(jì)數(shù)器,它的計(jì)數(shù)方向由輸入點(diǎn)的狀態(tài)所控制。計(jì)數(shù)器進(jìn)行時(shí)鐘觸發(fā)的頻率由軟件根據(jù)被寫入到ASIC內(nèi)部的寄存器的選擇值來確定。1MHz主時(shí)鐘被使用作為用于每個(gè)濾波器的時(shí)間基準(zhǔn),這樣,它的運(yùn)行是與系統(tǒng)時(shí)鐘頻率無關(guān)的。延時(shí)值通過以下的公式被計(jì)算數(shù)字濾波器延時(shí)=12*(上/下計(jì)數(shù)器選擇的輸入時(shí)鐘的周期)圖6b上的真值表規(guī)定數(shù)字等價(jià)電路的運(yùn)行,其中由濾波器產(chǎn)生的結(jié)果是輸出值608(FIBy.x)。本領(lǐng)域技術(shù)人員將立即看到,電路的細(xì)節(jié)可以通過使用熟知的布爾邏輯根據(jù)圖6b的表來實(shí)施。示例性電路被顯示于圖6c。
對于每組的四個(gè)輸入,復(fù)接器610輸出8個(gè)時(shí)鐘中的一個(gè)時(shí)鐘,以便用來設(shè)置輸入濾波器延時(shí)。由復(fù)接器610選擇的時(shí)鐘驅(qū)動(dòng)4比特上/下計(jì)數(shù)器612(其中的每一個(gè)對應(yīng)于每組中的四個(gè)輸入的每一個(gè))。實(shí)際的輸入控制4比特計(jì)數(shù)器的方向(上/下)。當(dāng)輸入是接通(邏輯“1”)時(shí),計(jì)數(shù)器向上計(jì)數(shù)。當(dāng)輸入是關(guān)斷(邏輯“0”)時(shí),計(jì)數(shù)器向下計(jì)數(shù)。計(jì)數(shù)值的向上計(jì)數(shù)序列是0,1,2,…,13,14,15,15,15,…,15計(jì)數(shù)值的向下計(jì)數(shù)序列是15,14,13,…,2,1,0,0,0,…,0正如計(jì)數(shù)序列表示的,當(dāng)向上計(jì)數(shù)時(shí)或當(dāng)向下計(jì)數(shù)使,計(jì)數(shù)器將不翻轉(zhuǎn)。
濾波器延時(shí)614被設(shè)計(jì)來模擬驅(qū)動(dòng)電容器的恒定電流源的運(yùn)行,該恒流源的電壓被帶有大的滯后量的比較器所檢測。在本例中,為了檢測從斷開到接通的輸入過渡,計(jì)數(shù)器必須達(dá)到計(jì)數(shù)值12。一旦這個(gè)計(jì)數(shù)值達(dá)到,輸出端就被接通以及它將保持,直至對于從接通到關(guān)斷的輸入過渡的門限值達(dá)到計(jì)數(shù)值3為止。圖上所顯示的、與非門邏輯620實(shí)施這些門限值。
這些門限值是對稱的,因?yàn)閺姆€(wěn)態(tài)的低的或高的輸入條件需要12個(gè)向上計(jì)數(shù)值或12個(gè)向下計(jì)數(shù)值。圖6b上的表列出在提供給復(fù)接器的每個(gè)頻率下對于12個(gè)時(shí)鐘的延時(shí)。當(dāng)然,其它延時(shí)也是可能的。附加的各層(每層包括計(jì)數(shù)器616)、與非門邏輯622和延時(shí)器618可被提供給每個(gè)輸入,它們以與前面描述的層相應(yīng)的方式運(yùn)行。
脈沖捕獲電路在數(shù)字輸入濾波器電路后面是脈沖捕獲電路(508,圖5)。這個(gè)電路的目的是捕獲在從高到低的、或從低到高的輸入狀態(tài)中的改變,以及保持它直至PLC操作系統(tǒng)軟件識(shí)別到狀態(tài)的改變?yōu)橹?。PLC在STOP(停止)和RUN(運(yùn)行)模式中以循環(huán)方式讀出輸入的狀態(tài)。(在PLC中STOP和RUN模式之間的主要差別在于在STOP模式下,用戶的程序不被執(zhí)行,而在RUN模式下,用戶的程序被執(zhí)行)圖8顯示PLC掃描周期(該周期通常稱為PLC掃描周期或簡單掃描)。如圖8所示,在RUN模式下PLC掃描周期讀出輸入,每個(gè)周期一次。在STOP模式下,接著出現(xiàn)相同的掃描周期,但在STOP模式不執(zhí)行用戶的程序。
因?yàn)槊總€(gè)周期只讀出輸入一次,輸入有可能改變狀態(tài),而PLC甚至并不知道該改變。這樣的狀態(tài)改變發(fā)生得太快以致于PLC不知道,這種狀態(tài)改變被稱為脈沖。為了防止PLC丟失在輸入端處的短的脈沖,用戶可以啟動(dòng)輸入中斷,它將暫停正常的程序執(zhí)行,而同時(shí)PLC管理中斷。這個(gè)方法非常有效,但它需要來自CPU的附加支持,以及使用相當(dāng)大的執(zhí)行時(shí)間來處理中斷子程序。為此,只允許小量的輸入中斷。
另一個(gè)方法是在通向PLC的每個(gè)集成輸入端處提供脈沖捕獲電路。這個(gè)方法允許捕獲和保持不經(jīng)常的、但短的持續(xù)時(shí)間的脈沖(或者高電平或者低電平),直至PLC知道在掃描周期中適當(dāng)?shù)狞c(diǎn)上的改變?yōu)橹埂?br>
脈沖捕獲電路頂層方框圖現(xiàn)在更詳細(xì)地進(jìn)行說明,圖9顯示脈沖捕獲電路900(508,圖5)(其中輸入902被耦合到脈沖捕獲電路904)按照使能信號(hào)906來進(jìn)行捕獲,以及被輸出908。這樣,脈沖捕獲電路能夠捕獲和保持?jǐn)?shù)字輸入點(diǎn)脈沖,它的持續(xù)時(shí)間大于選擇的脈沖時(shí)間但小于掃描時(shí)間。圖10顯示由于在輸入更新之間出現(xiàn)脈沖而丟失脈沖的問題,CPU軟件被設(shè)計(jì)成在每次CPU掃描讀出所有的輸入點(diǎn)的狀態(tài)一次,以及這個(gè)運(yùn)行被稱為輸入更新。如上所述,如果在接連的CPU掃描的輸入更新之間出現(xiàn)一個(gè)脈沖,則這個(gè)脈沖會(huì)被丟失(見圖10的例子)。脈沖捕獲電路904捕獲和保持這種類型的事件。在一個(gè)可能的安排中,具有14個(gè)脈沖捕獲電路,每個(gè)輸入點(diǎn)一個(gè)。
當(dāng)脈沖捕獲電路被啟動(dòng)時(shí),輸入的狀態(tài)的改變(從低到高或從高到低)被捕獲。該輸入的進(jìn)一步的狀態(tài)改變被忽略,直至捕獲值在下一次CPU掃描期間被軟件讀出為止。一旦捕獲值被讀出,電路就能夠檢測新的輸入狀態(tài)值。
脈沖捕獲電路的運(yùn)行可以通過圖12所示的用于同步狀態(tài)機(jī)的真值表被更精確地描述。該表上所使用的符號(hào)被規(guī)定如下PCE-脈沖捕獲電路使能比特I-由輸入濾波器電路同步到系統(tǒng)時(shí)鐘的輸入信號(hào)(FIBy.x)CV-在輸入的狀態(tài)改變后和在輸入更新后捕獲的輸入值(同步到系統(tǒng)時(shí)鐘)F-狀態(tài)改變標(biāo)志(同步到系統(tǒng)時(shí)鐘)RP-通過讀出輸入狀態(tài)字節(jié)而產(chǎn)生的讀數(shù)脈沖(每個(gè)輸入狀態(tài)字節(jié)一個(gè))(以這樣的方式同步到系統(tǒng)時(shí)鐘,即,對于一個(gè)時(shí)鐘周期,它是工作的,以及在轉(zhuǎn)移輸入狀態(tài)的時(shí)鐘邊緣處變?yōu)椴还ぷ鞯?PS-當(dāng)前的狀態(tài)NS-下一個(gè)狀態(tài)在運(yùn)行時(shí),參照圖12a,當(dāng)電路在輸入中檢測到狀態(tài)改變時(shí),輸入的新的數(shù)值被捕獲,以及狀態(tài)改變標(biāo)志被設(shè)置。在狀態(tài)標(biāo)志被設(shè)置時(shí),存儲(chǔ)的輸入值被保持以及不能被更新。所以,在狀態(tài)改變標(biāo)志被設(shè)置時(shí)出現(xiàn)的任何輸入改變被忽略。在存儲(chǔ)的數(shù)值通過軟件被讀出后,狀態(tài)改變標(biāo)志被復(fù)位,以及輸入狀態(tài)改變的檢測被重新使能。這個(gè)工作程序被稱為脈沖捕獲電路的重新觸發(fā)。結(jié)果是,即使在掃描周期之間出現(xiàn)更新,輸入脈沖也被捕獲,如圖11所示。例如,參閱CIB1.6,顯示即使在掃描周期之間(即在掃描n與掃描n+1之間)出現(xiàn)脈沖,脈沖捕獲電路輸出908也捕獲輸入脈沖902。
例如,在這個(gè)方塊中提供兩個(gè)8比特寄存器,用于對于16個(gè)輸入點(diǎn)的每個(gè)輸入點(diǎn)的單獨(dú)地使能和禁止脈沖捕獲功能。這些使能寄存器在如圖12b所示的表中被規(guī)定。提供輸入狀態(tài)寄存器,以便對有條件的輸入點(diǎn)狀態(tài)CIB0[70]和CIB1[50]實(shí)現(xiàn)CPU軟件接入這些狀態(tài)是從脈沖捕獲電路輸出的。這些被顯示于圖12c。輸入狀態(tài)寄存器的格式被顯示于圖12d。
脈沖捕獲電路的電路元件,正如本領(lǐng)域技術(shù)人員將會(huì)看到的,將很容易從圖12a所示的真值表上獲知。還將看到,脈沖捕獲電路可以具有多種滿足真值表的配置。
按照以上說明運(yùn)行的示例性脈沖捕獲電路被顯示于圖12e和12f。系統(tǒng)時(shí)鐘脈沖驅(qū)動(dòng)觸發(fā)器1202、1208。輸入信號(hào)被耦合到第一觸發(fā)器1202,后者的Q輸出端被耦合到與非門邏輯1206。信號(hào)PCE、RP和F被延時(shí)和被耦合到與非門邏輯1206中的相應(yīng)的與非門,如圖所示。另外,第二觸發(fā)器1208的輸出被反饋到與非門邏輯1206。與非門邏輯的輸出被耦合到第二觸發(fā)器1208,在此處被其鎖存后,通過時(shí)鐘觸發(fā)控制而加到輸出端。在圖12f上,產(chǎn)生F信號(hào),其中系統(tǒng)時(shí)鐘驅(qū)動(dòng)觸發(fā)器1210和1216。第一觸發(fā)器鎖存所述輸入,以及第二觸發(fā)器鎖存與非門邏輯1214的輸出。與非門如圖所示,邏輯1214被安排成可對從第一觸發(fā)器輸出的信號(hào)(Q)、Q的倒相值、輸入信號(hào)的捕獲值和它的延時(shí)的值(由延時(shí)器1212延時(shí))、由延時(shí)器1212延時(shí)的RP信號(hào)、和PCE信號(hào)實(shí)施前面所述的邏輯。
脈沖保護(hù)電路可單獨(dú)地被使能和被禁止。如果脈沖捕獲電路被禁止,則電路輸入被傳送到電路輸出端。如果被使能,則上述的脈沖捕獲電路是工作的。
數(shù)字輸出點(diǎn)單元這個(gè)數(shù)字輸出單元(420,圖4)允許直接軟件控制每個(gè)輸出點(diǎn)的狀態(tài)。另外,脈沖輸出能力允許在多達(dá)兩個(gè)輸出點(diǎn)上的脈沖串輸出和脈沖寬度調(diào)制輸出。
現(xiàn)在參照圖13,ASIC提供兩個(gè)輸出點(diǎn)狀態(tài)寄存器1302、1304,用于對十個(gè)數(shù)字輸出點(diǎn)的狀態(tài)進(jìn)行軟件控制。另外,兩個(gè)脈沖輸出塊1306、1308(PLS)被實(shí)施成可提供以快于軟件可完成的頻率產(chǎn)生脈沖波形的能力。
在脈沖輸出塊1306、1308內(nèi),ASIC提供兩個(gè)輸出功能的選擇,例如PWM(脈沖寬度調(diào)制)或PTO(脈沖串輸出)。PWM功能為連續(xù)的脈沖輸出提供可編程的周期時(shí)間和占空比。主要是打算用于步進(jìn)電機(jī)應(yīng)用,PTO功能提供用于特定的目的約50%占空比脈沖的輸出。當(dāng)然,本領(lǐng)域技術(shù)人員將會(huì)看到其它的應(yīng)用。在PTO功能中的周期時(shí)間也是可編程的,以及可以是固定的或可以按用戶特定的速率被自動(dòng)調(diào)節(jié)增加或減小。
當(dāng)PLS0運(yùn)行(被使能)時(shí),它通過MUX(復(fù)接器)1310控制輸出點(diǎn)XQB0.0?;蛘?,XQB0.0通過由軟件寫入到ASIC的輸出點(diǎn)狀態(tài)寄存器的數(shù)值而被控制。同樣地,PLS1如果被使能,則通過MUX1312控制XQB0.1的狀態(tài),以及如果PLS1沒有被使能,則ASIC的輸出點(diǎn)狀態(tài)寄存器控制XQB0.1的狀態(tài)。
脈沖輸出塊所顯示的ASIC支持兩個(gè)脈沖輸出塊(PLS)。當(dāng)然,可以配置任意數(shù)目的PLS。這些塊允許CPU以快于CPU軟件能夠人工產(chǎn)生的頻率去產(chǎn)生波形。來自脈沖輸出塊0(PLS0)的輸出是輸出點(diǎn)XQB0.0的一個(gè)源,以及來自脈沖輸出塊0(PLS0)的輸出是輸出點(diǎn)XQB0.1的一個(gè)源。
ASIC為PLC提供脈沖串輸出(PTO)和脈沖寬度調(diào)制(PWM)功能。PTO是這樣一種運(yùn)行模式,其中該波形的周期(周期時(shí)間)和周期的數(shù)目(脈沖計(jì)數(shù))由軟件規(guī)定。波形的占空比約為50%。PWM是這樣一種運(yùn)行模式,其中周期(周期時(shí)間)和占空比(脈沖寬度)由軟件規(guī)定,以及波形被連續(xù)地輸出。
可以發(fā)現(xiàn),這些功能的實(shí)施有一個(gè)基本問題從一個(gè)PTO或PWM波形到另一個(gè)PTO或PWM波形不能平滑過渡。每次過渡需要脈沖輸出塊被軟件所中止,然后重新啟動(dòng),這將在最終的輸出波形中引入不連續(xù)性。
因?yàn)槿缟纤龅闹饌€(gè)波形的過渡的問題,本發(fā)明的ASIC為脈沖輸出塊提供硬件流水線機(jī)制,從而允許逐個(gè)波形的、平滑的硬件控制的過渡。另外,為了允許對于步進(jìn)電機(jī)的良好的運(yùn)行,把按特定的速率自動(dòng)按斜坡方式改變周期時(shí)間的數(shù)值的能力附加到ASIC中。
PLS方框圖和運(yùn)行概況圖14a上所示的方框圖顯示了每個(gè)脈沖輸出塊1400的組構(gòu)和部件。
PLS時(shí)間基準(zhǔn)的產(chǎn)生-時(shí)間基準(zhǔn)(例如,1ms或1μs)由復(fù)接器1402提供,后者選擇1MHz主時(shí)基時(shí)鐘或從主時(shí)基時(shí)鐘得出的1kHz時(shí)鐘。
波形周期控制-時(shí)基復(fù)接器驅(qū)動(dòng)16比特向上計(jì)數(shù)器(它被稱為周期時(shí)間計(jì)數(shù)器1420)。這個(gè)計(jì)數(shù)器在時(shí)基時(shí)鐘的上升沿處被遞增。由比較器1430對該計(jì)數(shù)器的輸出與被存儲(chǔ)在16比特周期時(shí)間預(yù)定值寄存器1422中的數(shù)值進(jìn)行比較,以便控制輸出波形的周期。當(dāng)周期時(shí)間計(jì)數(shù)器的數(shù)值達(dá)到周期時(shí)間預(yù)定值寄存器的數(shù)值時(shí),當(dāng)前的周期可完成,以及產(chǎn)生一個(gè)CycleDone(周期完成)事件。
被存儲(chǔ)在周期時(shí)間寄存器1420和周期時(shí)間預(yù)定值寄存器1422中的數(shù)值是未加正負(fù)號(hào)的數(shù)值。周期時(shí)間寄存器1420的正確的范圍,例如,是0到65535。周期時(shí)間預(yù)定值寄存器的正確的范圍是2到65535。為確定CycleDone所進(jìn)行的比較是未加正負(fù)號(hào)的比較。
周期時(shí)間差值寄存器1406被使用來在PTO模式中保存帶正負(fù)號(hào)的、二的補(bǔ)碼的16比特?cái)?shù)值,該值在每次CycleDone事件時(shí)被附加到被存儲(chǔ)在周期時(shí)間預(yù)定值寄存器1422中的數(shù)值上。如果和值超過65535或小于2,則產(chǎn)生AdderError(加法器錯(cuò)誤)事件。例如,預(yù)定值=65530(FFFAH未帶正負(fù)號(hào)的) 預(yù)定值=65530(FFFAH未帶正負(fù)號(hào)的)差值=-20 (FFECH帶正負(fù)號(hào)的) 差值=20 (0014H帶正負(fù)號(hào)的)和值=65530+(-20)=65510 OK 和值=65530+(20)=65550AdderError?。?!預(yù)定值=100(0064H未帶正負(fù)號(hào)的)預(yù)定值=100(0064H未帶正負(fù)號(hào))差值=-20 (FFECH帶正負(fù)號(hào)的) 差值=-120 (FF88H帶正負(fù)號(hào)的)和值=100+(-20)=80 OK 和值=100+(-120)=-20 AdderError?。?!在PWM模式,周期時(shí)間差值寄存器被保持在數(shù)值0。
只有在PLS塊被禁止時(shí),軟件才可以裝載周期時(shí)間預(yù)定值寄存器1422和周期時(shí)間差值寄存器1406。在PTO模式時(shí),這個(gè)寄存器的正確的范圍是,例如,-32768到+32767。
波形占空比控制-周期時(shí)間計(jì)數(shù)器1420的輸出也被使用于控制波形占空比。在這個(gè)計(jì)數(shù)值與脈沖寬度預(yù)定值(其來源由PLS運(yùn)行模式確定)之間執(zhí)行未帶正負(fù)號(hào)的比較。PLS塊輸出信號(hào)PLSxOUT的狀態(tài)由這個(gè)比較確定。當(dāng)計(jì)數(shù)值小于脈沖寬度預(yù)定值時(shí),PLSxOUT信號(hào)是高電平。當(dāng)計(jì)數(shù)值達(dá)到或超過預(yù)定值時(shí),則PLSxOUT信號(hào)被驅(qū)動(dòng)為低電平。如果處在PWM模式,則脈沖寬度預(yù)定值從脈沖計(jì)數(shù)/寬度預(yù)定值寄存器1408的較低的16比特得出,或如果處在PTO模式,則脈沖寬度預(yù)定值是被存儲(chǔ)在周期時(shí)間預(yù)定值寄存器1422中的數(shù)值的一半。
如果脈沖寬度預(yù)定值是0,則PLSxOUT對于整個(gè)周期是低電平。如果脈沖寬度預(yù)定值等于或大于預(yù)定周期時(shí)間,則PLSxOUT對于整個(gè)周期是高電平。
脈沖計(jì)數(shù)/寬度預(yù)定值寄存器1408由軟件裝載,但當(dāng)運(yùn)行在PWM模式時(shí),只有較低的16比特是重要的。所以,軟件只應(yīng)當(dāng)在PWM模式下寫寄存器的最低位字。在這個(gè)模式下這個(gè)寄存器的正確的范圍是0到65535。這個(gè)寄存器只有在PLS塊被禁止時(shí)才可以被軟件裝載。
周期數(shù)量控制(僅僅在PTO模式)-32比特向上計(jì)數(shù)器(它被稱為脈沖計(jì)數(shù)器1428)在每次Cycle Done(周期已完成)事件時(shí)被驅(qū)動(dòng),以便計(jì)數(shù)在PLSxOUT信號(hào)時(shí)產(chǎn)生的周期的數(shù)目。被存儲(chǔ)在這個(gè)計(jì)數(shù)器中的數(shù)值由比較器1434與在32比特脈沖計(jì)數(shù)預(yù)定值寄存器1416中的數(shù)值進(jìn)行比較,以便確定當(dāng)前PTO運(yùn)行的完成。當(dāng)脈沖計(jì)數(shù)器1428的數(shù)值達(dá)到脈沖計(jì)數(shù)預(yù)定值時(shí),產(chǎn)生PTOComplete(PTOC完成)事件。在PWM模式下,這個(gè)計(jì)數(shù)器不被使用。
在PTO模式下,脈沖計(jì)數(shù)/寬度預(yù)定值寄存器1416的全部32比特是重要的,以及由軟件裝載。在這個(gè)模式下這個(gè)寄存器的正確的范圍是1到(232-1)。這個(gè)寄存器只有在PLS塊被禁止時(shí)才可以被軟件裝載。
運(yùn)行控制-控制寄存器包含用于允許軟件使能或禁止PLS塊的運(yùn)行的比特。一旦軟件使得PLS塊能夠運(yùn)行,則輸出點(diǎn)從QBxPS控制到PLS塊控制的切換以及內(nèi)部計(jì)數(shù)器的運(yùn)行和比較都會(huì)與時(shí)基時(shí)鐘的下一個(gè)上升沿同步。這樣做是為了確保輸出波形的初始周期具有正確的持續(xù)時(shí)間和脈沖寬度。這個(gè)寄存器在看門狗超時(shí)故障條件的情況下或由于輸出禁止功能的直接軟件控制時(shí)被保持在它的復(fù)位狀態(tài)。
建立寄存器包含用于允許軟件配置PLS塊的運(yùn)行的比特。其中包括有PLS時(shí)基選擇和運(yùn)行模式選擇。中斷使能寄存器給予軟件對于PTOComplete和AdderError中斷事件單獨(dú)地使能和禁止中斷產(chǎn)生的能力。狀態(tài)寄存器被提供,以便允許軟件得到有關(guān)PLS塊的當(dāng)前運(yùn)行狀態(tài)的信息。這個(gè)信息包括使能狀態(tài)和流水線裝載標(biāo)志的狀態(tài)(在下面描述)。
中斷狀態(tài)寄存器提供關(guān)于中斷源或產(chǎn)生中斷條件的源的信息。INTxPLS信號(hào)始發(fā)于PLS塊,以及被中斷控制單元所使用。當(dāng)PLS中斷產(chǎn)生事件中的一個(gè)或兩個(gè)事件發(fā)生時(shí)(取決于中斷使能寄存器中的中斷使能比特的狀態(tài)時(shí)),這個(gè)信號(hào)成為激活的。通過讀出中斷狀態(tài)寄存器,將能清除在PLS塊中所有工作的中斷指示以及釋放INTxPLS信號(hào)。另外,通過禁止中斷使能寄存器中的中斷產(chǎn)生源,將能清除來自該源的掛起的中斷。如果在PLS塊中沒有其它中斷正在掛起,則INTxPLS信號(hào)將被釋放。
硬件流水線機(jī)制-流水線機(jī)制被提供來使得可以施加對波形特性的修正,而不產(chǎn)生波形失真。以下的流水線寄存器被用來保存用于周期時(shí)間、脈沖寬度等的新的數(shù)值·周期時(shí)間流水線寄存器被使用來存儲(chǔ)新的周期時(shí)間值。
·周期時(shí)間差值流水線寄存器被使用來存儲(chǔ)新的周期時(shí)間差值。
·脈沖計(jì)數(shù)/寬度流水線寄存器被使用來存儲(chǔ)新的脈沖計(jì)數(shù)或脈沖寬度值(如果在PTO模式下,這個(gè)寄存器存儲(chǔ)新的脈沖計(jì)數(shù)值以及使用該寄存器的全部32比特。如果在PWM模式下,這個(gè)寄存器存儲(chǔ)新的脈沖寬度以及只使用寄存器的較低的16比特)。
當(dāng)使用硬件流水線機(jī)制時(shí),流水線裝載標(biāo)志作為在PLS塊與軟件之間的接口的一部分而被實(shí)施。無論何時(shí)軟件把一個(gè)數(shù)值寫入到脈沖計(jì)數(shù)/寬度流水線寄存器的最低位字節(jié)時(shí),流水線裝載標(biāo)志就被設(shè)置。所以,為了使用硬件流水線機(jī)制,軟件必須常常寫一個(gè)數(shù)值到脈沖計(jì)數(shù)/寬度流水線寄存器中,以及它必須是要被寫入的最后的流水線寄存器。
所有的流水線寄存器必須由軟件裝載,因?yàn)樗辛魉€寄存器的內(nèi)容將被傳送到運(yùn)行的寄存器。在PWM模式下,軟件不需要寫入到周期時(shí)間差值流水線寄存器,因?yàn)樵赑LS塊處在PWM模式時(shí)周期時(shí)間差值寄存器被保持在0。該流水線寄存器的任何內(nèi)容實(shí)際上被丟棄。
一旦流水線寄存器被寫入以及流水線裝載標(biāo)志被設(shè)置,流水線寄存器的內(nèi)容在以下的條件下被傳送到運(yùn)行的寄存器·如果PLS塊被使能,則如果在PTO模式下當(dāng)出現(xiàn)PTOComplete事件后、或如果在PWM模式下當(dāng)出現(xiàn)CycleDone事件后,將進(jìn)行傳送。
·如果PLS塊被禁止,則當(dāng)PLS塊被軟件使能時(shí),將立即進(jìn)行傳送。
在傳送到運(yùn)行的寄存器后,流水線裝載標(biāo)志然后將自動(dòng)地被清除。
一旦流水線裝載標(biāo)志在使能的PLS塊被設(shè)置,就阻止軟件寫入到任何的流水線寄存器,直至它們的內(nèi)容被傳送到運(yùn)行的寄存器為止(通過由ASIC對流水線裝載標(biāo)志進(jìn)行的清除來表示)。如果PLS塊被禁止,則流水線寄存器可以由軟件寫入,而不受限制,以及每次脈沖計(jì)數(shù)/寬度流水線寄存器的最低位字節(jié)被寫入時(shí),流水線裝載標(biāo)志將被設(shè)置。
自動(dòng)禁止機(jī)制-在PTO模式下的使能的PLS塊可在以下的條件被自動(dòng)禁止·出現(xiàn)PTOComplete事件,以及沒有新的波形建立被存儲(chǔ)在流水線寄存器中(流水線裝載標(biāo)志是0)。
·出現(xiàn)AdderError事件。
當(dāng)PLS塊被自動(dòng)禁止時(shí),在控制寄存器中的主使能比特被ASIC清除。流水線裝載標(biāo)志不受影響。
人工禁止-無論何時(shí)在控制寄存器中的主使能比特被軟件清除時(shí),PLS塊將立即進(jìn)入PTO禁止?fàn)顟B(tài)或PWM禁止?fàn)顟B(tài)(在下面描述),這取決于塊的當(dāng)前的運(yùn)行模式。軟件禁止也將流水線裝載標(biāo)志和任何掛起的中斷。
正確的寄存器范圍-圖14b中的表顯示在PLS塊中對于每個(gè)數(shù)字寄存器的正確的數(shù)值的范圍。
PTO運(yùn)行這個(gè)模式通過使得PLS塊能夠運(yùn)行而被選擇。軟件將控制周期時(shí)間、周期時(shí)間差值、和脈沖計(jì)數(shù)。占空比被固定在50%。所以,PLS塊的以下的功能能夠在這個(gè)模式下被使用·周期時(shí)間預(yù)定值和周期時(shí)間流水線寄存器;·周期時(shí)間差值和周期時(shí)間差值流水線寄存器;·脈沖計(jì)數(shù)/寬度預(yù)定值和脈沖計(jì)數(shù)/寬度流水線寄存器(被配置成保持32比特脈沖計(jì)數(shù));·32比特脈沖計(jì)數(shù)器;·16比特周期時(shí)間計(jì)數(shù)器;·進(jìn)行比較以產(chǎn)生CycleDone事件;·進(jìn)行比較以產(chǎn)生PTOComplete事件;·進(jìn)行比較以控制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時(shí)·QBO.x輸出由輸出點(diǎn)狀態(tài)寄存器控制,而不是由PLS塊控制。
·周期時(shí)間計(jì)數(shù)器和脈沖計(jì)數(shù)器被保持在0。
·PLSxSTAT.EN狀態(tài)比特表示是被禁止的。
當(dāng)PLS塊處在PTO運(yùn)行狀態(tài)1504時(shí),·QBO.x輸出由PLS塊(通過PLSxOUT信號(hào))控制。
·PLSxSTAT.EN狀態(tài)比特表示是使能的。
·正常的PTO運(yùn)行是使能的。
周期時(shí)間計(jì)數(shù)器在PLS時(shí)基的上升沿處被遞增,以及PLS塊的大多數(shù)功能從該計(jì)數(shù)器直接地或間接地被驅(qū)動(dòng)。偽隨機(jī)碼的圖16的段中列出在PLS時(shí)基的上升沿處出現(xiàn)的、在PTO模式下ASIC的動(dòng)作(動(dòng)作的次序是重要的,所以假設(shè)這些語句的頂部到底部的估計(jì))。本領(lǐng)域技術(shù)人員將從偽隨機(jī)碼立即理解PTO模式下ASIC的運(yùn)行。
PWM運(yùn)行這個(gè)模式通過使得PLS塊能夠運(yùn)行而得到選擇。軟件將控制周期時(shí)間和脈沖寬度。所以,PLS塊的以下的功能能夠在這個(gè)模式下被使用
·周期時(shí)間預(yù)定值和周期時(shí)間流水線寄存器;·脈沖計(jì)數(shù)/寬度預(yù)定值和脈沖計(jì)數(shù)/寬度流水線寄存器(被配置成用于16比特脈沖寬度);·16比特周期時(shí)間計(jì)數(shù)器;·進(jìn)行比較以產(chǎn)生CycleDone事件;·進(jìn)行比較以產(chǎn)生PTOComplete事件;·進(jìn)行比較以控制PLSxOUT的狀態(tài);·流水線裝載標(biāo)志。
周期時(shí)間差值寄存器和周期時(shí)間差值流水線寄存器被保持在0,以及用于該塊的脈沖計(jì)數(shù)和中斷產(chǎn)生被禁止。INTxPLS信號(hào)在這個(gè)模式下應(yīng)當(dāng)總是被驅(qū)動(dòng)到不工作狀態(tài)。
在PWM模式下PLS塊的主要狀態(tài)轉(zhuǎn)移被顯示于圖17所示的狀態(tài)圖。
當(dāng)PLS塊處在PWM禁止?fàn)顟B(tài)1702時(shí)·QBO.x輸出由輸出點(diǎn)狀態(tài)寄存器控制,而不是由PLS塊控制。
·周期時(shí)間計(jì)數(shù)器被保持在0。
·PLSxSTAT.EN狀態(tài)比特表示被禁止。
當(dāng)PLS塊處在PWM運(yùn)行狀態(tài)1704時(shí),·QBO.x輸出由PLS塊(通過PLSxOUT信號(hào))控制。
·PLSxSTAT.EN狀態(tài)比特表示被使能。
·正常的PTO運(yùn)行被使能。
周期時(shí)間計(jì)數(shù)器在PLS時(shí)基的上升沿處被遞增,以及PLS塊的大多數(shù)功能從該計(jì)數(shù)器直接地或間接地被驅(qū)動(dòng)。偽隨機(jī)碼的圖18的段列出在PLS時(shí)基的上升沿處出現(xiàn)的、在PWM模式下ASIC的動(dòng)作(動(dòng)作的次序是重要的,所以假設(shè)這些語句的頂部到底部的估計(jì))。本領(lǐng)域技術(shù)人員將從偽隨機(jī)碼立即理解PWM模式下ASIC的運(yùn)行。
脈沖串輸出概況指令(PTOP)由ASIC提供的脈沖輸出功能主要打算用于控制步進(jìn)電機(jī)。PLC提供一個(gè)用戶指令,用于產(chǎn)生用于加速/減速和運(yùn)行步進(jìn)電機(jī)的概況。這個(gè)指令被顯示于圖19。
擴(kuò)展I/O單元擴(kuò)展總線概念的總貌物理地,擴(kuò)展子系統(tǒng)包括所含有的I/O模塊,它們被獨(dú)立地安裝,而不具有公共的后板。十導(dǎo)線帶狀電纜被使用來連接到上述的模塊或CPU。這個(gè)電纜載送用于模塊運(yùn)行所需要的5V電源和邏輯信號(hào)。見圖20。在I/O擴(kuò)展總線中的信號(hào)在圖21上描述。
雖然所有的信號(hào)通過模塊被物理地進(jìn)行菊花-鏈接,但只有EMA信號(hào)在每個(gè)模塊中被邏輯地?cái)嚅_和重新產(chǎn)生。所有其它的信號(hào)形成延伸I/O模塊鏈的長度的單個(gè)電總線。EMA信號(hào)的數(shù)值在被傳送到下一個(gè)模塊之前被遞增。對擴(kuò)展I/O總線的每次接入包括模塊地址域,以用于選擇要被接入的模塊。只有其地址能與消息的模塊地址域一致的模塊將響應(yīng)該接入。這種方案允許要被級聯(lián)的I/O模塊類型的任意混合,而不需要地址開關(guān)和固定的后板。多達(dá)8單元的邏輯擴(kuò)展可以具有三條EMA信號(hào)線,然而現(xiàn)在只允許有7個(gè)模塊。當(dāng)然,其它的擴(kuò)展單元也是可能的。
圖22顯示在本發(fā)明中的邏輯結(jié)構(gòu)2200和I/O模塊2202的信號(hào)流。I/O擴(kuò)展邏輯結(jié)構(gòu)的細(xì)節(jié)不在這里描述。圖23上的表給出對于在擴(kuò)展I/O模塊的電接口中使用的每個(gè)部件的數(shù)值。圖24上的表描述I/O總線信號(hào)的電特性。對于擴(kuò)展I/O的接入由CPU中的ASIC控制,以及將從圖25和26的圖上看到,該圖可顯示在擴(kuò)展I/O總線上的讀和寫周期序列。
ASIC(主狀態(tài)機(jī)和事務(wù)處理定時(shí))以下描述總線事務(wù)處理序列。EM總線定時(shí)被安排成在需要的地方提供用于傳播延時(shí)的時(shí)間和信號(hào)扭曲。主機(jī)在EMC的下降沿時(shí)鐘處提供信號(hào),在下一個(gè)上升沿處被從屬機(jī)鎖存。一半的EMC時(shí)鐘時(shí)間被允許包括供給從屬機(jī)的數(shù)據(jù)的建立,以及考慮通過ASIC緩存器、外部電纜、和可能的中繼站緩存器的EMC對EMD的最壞情形的扭曲。從屬機(jī)在EMC上升沿處給出數(shù)據(jù),以及主機(jī)在下一個(gè)上升時(shí)鐘沿處鎖存數(shù)據(jù)。這允許將一個(gè)完整的時(shí)鐘時(shí)間用于時(shí)鐘到從屬機(jī)的傳播、從屬時(shí)鐘到輸出延時(shí)、和返回傳播時(shí)間。
在總線事務(wù)處理期間,寄存器域首先在總線最高位處被給出。2比特奇偶校驗(yàn)域的P1比特首先被給出,然后是P0比特。相對于EMC的上升沿和下降沿對主狀態(tài)機(jī)的動(dòng)作進(jìn)行了描述,而從屬機(jī)假定除了EMC以外沒有其它時(shí)基,以及可以完全在EMC上升沿處運(yùn)行。EMC在不使用時(shí)被驅(qū)動(dòng)到低電平,以使得時(shí)鐘輸入虛假數(shù)據(jù)到從屬機(jī)的可能性最小。
總線事務(wù)處理序列以下的段落描述在寫入數(shù)據(jù)到從屬機(jī)和從從屬機(jī)讀出數(shù)據(jù)時(shí)的EM總線事務(wù)處理序列的各個(gè)部件。以下的動(dòng)作假定是從主機(jī)(EM單元)中產(chǎn)生的,除非它們被特別規(guī)定由從屬機(jī)執(zhí)行。以下的正文和以后的時(shí)鐘圖將有助于了解事務(wù)處理序列。
序列啟動(dòng)-EM總線事務(wù)由寫入到EMOSTART或EM1START寄存器中的軟件觸發(fā)。EM狀態(tài)寄存器的進(jìn)行比特(in progress bit)被立即設(shè)置。在進(jìn)行比特被設(shè)置以便避免打擾在進(jìn)行過程中的總線序列的同時(shí),進(jìn)一步寫入到EM寄存器將被ASIC禁止。軟件的責(zé)任是確保新的總線事務(wù)處理只在EM單元是空閑時(shí)(進(jìn)行比特是低電平)才被觸發(fā)。如果該序列是通過寫入到EMOSTART寄存器而被觸發(fā)的,則總線事務(wù)處理從EMCO信號(hào)被時(shí)鐘觸發(fā)。如果序列是通過寫入到EM1START寄存器而被觸發(fā)的,則總線事務(wù)處理從EMC1信號(hào)被時(shí)鐘觸發(fā)。EM總線序列的實(shí)際啟動(dòng)(被稱為EMCST)發(fā)生在事務(wù)處理觸發(fā)后EMC時(shí)基的第一個(gè)下降沿處。
模塊/寄存器地址-在EMCST時(shí)間點(diǎn),主機(jī)驅(qū)動(dòng)XA_OD信號(hào)以及啟動(dòng)EMC和EMD信號(hào)。對EMC上升沿處的工作的XA_OD的檢測被從屬機(jī)使用來識(shí)別尋址運(yùn)行的開始。然后主機(jī)在EMC信號(hào)上產(chǎn)生10個(gè)時(shí)鐘,在EMD上順序地對EMADDR寄存器的內(nèi)容以及2個(gè)奇偶校驗(yàn)比特、P1和P0進(jìn)行時(shí)鐘觸發(fā)。在EMD上呈現(xiàn)的EMADDR的第一比特在EMCST時(shí)間點(diǎn)是正確的。XA_OD信號(hào)在EMC↓1時(shí)被再次驅(qū)動(dòng)到高電平。主機(jī)在每個(gè)EMC↓時(shí)呈現(xiàn)EMD上的新的比特。EMD信號(hào)在EMC↓10時(shí)被釋放。從屬機(jī)在EMC↑110時(shí)(在EMC110的上升沿處)鎖存正確的信息。
讀數(shù)據(jù)序列-對于讀事務(wù)處理,EMDDIR信號(hào)在EMC↓10時(shí)被驅(qū)動(dòng)到低的狀態(tài)。在對模塊/寄存器地址比特進(jìn)行時(shí)鐘觸發(fā)后,主機(jī)在EMC信號(hào)上產(chǎn)生另外13個(gè)時(shí)鐘(1123)。EMC時(shí)鐘1112是空閑時(shí)鐘,以便允許從屬時(shí)間使得適當(dāng)?shù)募拇嫫鲾?shù)據(jù)和奇偶校驗(yàn)可被提供用于傳送。已選擇的從屬機(jī)在EMC↑1322時(shí)在EMD信號(hào)上提供8個(gè)數(shù)據(jù)和2個(gè)奇偶校驗(yàn)比特,以及在EMC↑23時(shí)返回到空閑狀態(tài)(從屬機(jī)在這時(shí)釋放EMD信號(hào))。主機(jī)在EMC↑1423時(shí)鎖存信息。從屬機(jī)首先提供數(shù)據(jù)值的最高位,然后是P1奇偶校驗(yàn)比特,最后是P0奇偶校驗(yàn)比特。數(shù)據(jù)值被存儲(chǔ)在寄存器EMDATA中。主機(jī)確定被存儲(chǔ)在EMDATA中的數(shù)值的奇偶校驗(yàn)位,以及把這個(gè)所計(jì)算出的奇偶校驗(yàn)位與從從屬機(jī)接收的奇偶校驗(yàn)比特進(jìn)行比較。如果計(jì)算的奇偶校驗(yàn)位與接收的奇偶校驗(yàn)位不一致,則EM狀態(tài)寄存器中的錯(cuò)誤比特被設(shè)置。否則,錯(cuò)誤比特被清除。EMDDIR信號(hào)在EMC↓23時(shí)被釋放(被驅(qū)動(dòng)到高電平)。
寫入數(shù)據(jù)序列-對于寫事務(wù)處理,在時(shí)鐘輸入模塊/寄存器地址比特后,主機(jī)在EMC上提供另外14個(gè)時(shí)鐘(1124)。主機(jī)在EMD上提供8個(gè)數(shù)據(jù)比特(來自EMDATA寄存器),接著是2個(gè)奇偶校驗(yàn)比特(首先是P1,然后是PO)。主機(jī)在EMC↓1019給出數(shù)據(jù)和奇偶校驗(yàn)比特,然后在EMC↓20釋放EMD信號(hào)和驅(qū)動(dòng)EMDDIR信號(hào)到低的狀態(tài)。從屬機(jī)在EMC↑1120時(shí)鎖存正確的信息。從屬機(jī)通過先在EMC↑2223時(shí)從EMD時(shí)鐘輸入0然后是1,從而響應(yīng)完整的寫周期和正確的奇偶校驗(yàn)。主機(jī)在EMC↑2324時(shí)鎖存這個(gè)應(yīng)答響應(yīng)。從屬機(jī)在EMC↑24時(shí)返回到空閑狀態(tài)以及釋放EMD。如果由主機(jī)讀出的2比特應(yīng)答值不是01,則EM狀態(tài)寄存器中的錯(cuò)誤比特被設(shè)置。否則應(yīng)答值是正確的,以及錯(cuò)誤比特被清除。EMDDIR信號(hào)在EMC↓24時(shí)被釋放(被驅(qū)動(dòng)到高電平)。
序列結(jié)束-總線序列的結(jié)束被規(guī)定為跟隨在EMC↓23(讀事務(wù))或在EMC↓24(寫事務(wù))后面的EMC時(shí)基的第一上升沿處發(fā)生。在EMCND時(shí),EM狀態(tài)寄存器的進(jìn)行比特被清除。當(dāng)進(jìn)行比特被清除時(shí),錯(cuò)誤比特必須是正確的。總線信號(hào)應(yīng)當(dāng)是處在它們的空閑狀態(tài)。
奇偶校驗(yàn)比特兩個(gè)奇偶校驗(yàn)比特被使用來表示單個(gè)8比特值的奇偶校驗(yàn)。2個(gè)奇偶校驗(yàn)比特中的每個(gè)比特代表對5比特的數(shù)值的奇數(shù)的奇偶校驗(yàn),正如圖27的表所顯示的。對奇數(shù)個(gè)比特的奇數(shù)奇偶校驗(yàn)確保全1或全0的域具有相反極性的奇偶校驗(yàn)比特。
軟件接口考慮典型的EM總線事務(wù)處理將包括寫EMADDR寄存器、寫數(shù)據(jù)字節(jié)到EMDATA寄存器(如果是寫事務(wù)處理)、然后寫入到EMOSTART或EM1START寄存器以便啟動(dòng)該序列的軟件。軟件將重復(fù)地讀出EM狀態(tài)寄存器的進(jìn)行比特,以便確定事務(wù)何時(shí)完成。EM總線事務(wù)完成時(shí),進(jìn)行比特將被清除,以及錯(cuò)誤比特將被適當(dāng)?shù)卦O(shè)置。如果讀事務(wù)被執(zhí)行,數(shù)據(jù)值現(xiàn)在可以從EMDATA寄存器讀出。軟件可以確保在事務(wù)處理正在進(jìn)行時(shí),只有EMSTAT寄存器被讀出,以及EM單元可被設(shè)計(jì)來由軟件在任何時(shí)間正確地處理該寄存器的讀數(shù)接入。
如果在EM總線事務(wù)處理正在進(jìn)行時(shí)發(fā)生中斷事件以及中斷子程序需要使用EM單元,則該子程序可以采樣該進(jìn)行比特的狀態(tài)以及在接入任何其它EM單元寄存器之前等待事務(wù)處理完成。這樣的中斷子程序?qū)⒕哂辛x務(wù)去保存和恢復(fù)EMADDR和EMDATA寄存器的內(nèi)容以及錯(cuò)誤比特的狀態(tài)。這是所需要的,以使得一旦控制返回到該子程序時(shí),那些寄存器將包含由中斷子程序啟動(dòng)的總線事務(wù)處理的正確數(shù)值。
使用XA_OD信號(hào)的輸出禁止XA_OD信號(hào)被使用于識(shí)別地址周期的開始和輸出禁止條件的發(fā)生(它由CPU系統(tǒng)故障所造成)。在約1MHz的最慢的預(yù)期總線速率下,在地址用法中XA_OD的最長的正常持續(xù)時(shí)間是約1μs。用于XA_OD作為輸出禁止的從屬識(shí)別的、約100倍的這個(gè)數(shù)值的門限值(即100μs)考慮從屬機(jī)中的簡單的二極管/R/C濾波器,以及給出適當(dāng)?shù)捻憫?yīng)的輸出禁止功能。XA_OD外部信號(hào)將是來自EM總線的地址周期識(shí)別信號(hào)與起源于看門狗定時(shí)器單元的輸出OK信號(hào)的邏輯OR(或)。
用戶程序存儲(chǔ)器用戶程序存儲(chǔ)器可被使用來存儲(chǔ)用戶程序。主程序的結(jié)尾可以通過使用MEND(主程序結(jié)尾)指令而被終結(jié)。除MEND指令以外的、用戶程序存儲(chǔ)器的其余部分可被保留用于子程序和中斷子程序。
串行通信PLC提供串行通信端口,正如參照圖1描述的。通信端口使用RS485信號(hào)電平,以及能夠運(yùn)行在9.5KB、19.2KB或187.5KB,而同時(shí)支持系統(tǒng)通信協(xié)議(PPI或DP/T)。這個(gè)端口用作為到PLC的編程器接口。此外,端口在運(yùn)行模式下是可提供的,作為在用戶程序的完全控制下的通用通信端口(被稱為自由端口模式)。在自由端口模式下,通信端口能夠運(yùn)行在從300波特到38.4KB的波特率。到RS485端口的物理連接由9引腳D連接器提供。
特別存儲(chǔ)器(SM)比特(見6.2節(jié),SM2,SM3,SM30和SM130)被提供作為通信端口的自由端口來使用。用于控制通信端口的使用的特別存儲(chǔ)器的缺省狀態(tài)使得能夠使用通信端口作為編程器接口。如果用戶程序接通用于控制通信端口使用的特別存儲(chǔ)器比特,則將使得用戶程序能夠通過通信端口發(fā)送和接收消息。在這個(gè)運(yùn)行模式下,用戶可以用想要的、任何基于字符的協(xié)議(7或8比特/字符,奇數(shù)的、偶數(shù)的、或沒有奇偶校驗(yàn),以及波特率)來配置端口。端口將運(yùn)行在半雙工模式,以及用戶程序可以在輪詢或中斷模式時(shí)管理端口。在SM用戶區(qū)域提供接收字符緩存器,并且還提供通信狀態(tài)寄存器以及配置寄存器,后者包括控制端口的運(yùn)行模式的比特。除了發(fā)送的所有的通信功能可以通過SM存儲(chǔ)器中的特別寄存器來執(zhí)行。發(fā)送只能通過使用特別的寫端口消息指令來完成。用戶程序絕不會(huì)直接接入到通信控制器或機(jī)器的中斷結(jié)構(gòu)。
PPI主模式和從屬模式網(wǎng)絡(luò)讀出和寫入PLC可以用作為PPI從屬設(shè)備。在PPI從屬模式,PLC用作為對于通信消息的應(yīng)答器。
在本發(fā)明的一種安排中,當(dāng)CPU被設(shè)置在運(yùn)行模式時(shí),PLC可以用作為PPI主設(shè)備以及PPI從屬設(shè)備。用戶可以在被存儲(chǔ)在用戶程序存儲(chǔ)器中的用戶程序的控制下選擇PPI主模式。在這種安排中,熟知的令牌環(huán)通信協(xié)議可被實(shí)施來在主設(shè)備與從屬設(shè)備之間進(jìn)行通信。在PPI主模式下,PLC能夠保持令牌以及發(fā)起PPI請求,由此使得用戶能夠通過網(wǎng)絡(luò)讀和寫指令去存取在其它CPU中的數(shù)據(jù)。當(dāng)CPU沒有保持令牌時(shí),它作為從屬設(shè)備應(yīng)答所有的請求。用于PPI通信的通信緩存器的尺寸在圖28所示的表中被規(guī)定。
在PLC用作為PPI主設(shè)備的同時(shí),它按照熟知的通信標(biāo)準(zhǔn)(諸如由EN 50170歐洲標(biāo)準(zhǔn)給出的PROFIBUS規(guī)定)維護(hù)網(wǎng)絡(luò)。PLC將使用以下的算法,以便計(jì)算目標(biāo)令牌旋轉(zhuǎn)時(shí)間。
TTTR=(8+HSA)(256)(1/BR)其中TTTR-是目標(biāo)令牌旋轉(zhuǎn)時(shí)間HAS -是最高的站地址BR -是以每秒的比特計(jì)的波特率如果在接收令牌以后,目標(biāo)令牌旋轉(zhuǎn)定時(shí)器滿時(shí),則PLC立即把令牌傳送到下一個(gè)令牌保持器,而不必發(fā)送在接收令牌以前被詢問的任何的消息。
在PPI主模式時(shí)提供的自由端口鏈路本發(fā)明提供通信端口的自由端口(此后稱為“自由端口”)運(yùn)行,它允許用戶人工地或通過用戶程序的運(yùn)行來控制端口。自由端口運(yùn)行的程序過程顯示于圖30a。
在本發(fā)明中,用戶通過按照上述的中斷結(jié)構(gòu)迫使PLC中斷(步驟S3002)而實(shí)施自由端口(步驟S3000)使用。在本例中,用戶發(fā)起自由端口通信,同時(shí)通過在主模式下附加上一個(gè)把通信端口的控制傳送到用戶程序的中斷事件從而運(yùn)行PLC(步驟S3004)。這是在系統(tǒng)協(xié)議保持令牌的同時(shí)執(zhí)行的(步驟S3006)。
作為應(yīng)答,PLC把控制傳送到用戶程序(步驟S3008)。PLC按照圖30b所示的SM比特規(guī)定SMB30和SMB130來控制UART設(shè)置(步驟S3010)。在該事例中,由PLC把SMB30和SMB130規(guī)定的模式比特設(shè)置給PPI模式(步驟S3012)。
一旦控制從系統(tǒng)傳送到用戶的中斷子程序,用戶程序就控制使用自由端口的消息發(fā)送和接收(步驟S3014)。一旦用戶程序完成它的任務(wù),用戶程序就通過執(zhí)行一個(gè)用于終結(jié)自由端口運(yùn)行的特定指令而把控制返還到系統(tǒng)(步驟S3016)。被使用來終結(jié)自由端口運(yùn)行的指令在圖29所示的表中被描述。系統(tǒng)然后通過把令牌返還到下一個(gè)站而繼續(xù)正常的運(yùn)行(步驟S3018)。系統(tǒng)負(fù)責(zé)維護(hù)網(wǎng)絡(luò)的所有方面,就好像在PLC的令牌保持時(shí)間期間從來沒有將一個(gè)時(shí)間片給予用戶程序那樣(步驟S3020)。
內(nèi)建的自由端口協(xié)議為了給使用PPI協(xié)議的通信提供更高的性能,為PPI協(xié)議提供了內(nèi)建的協(xié)議選擇任選方案。當(dāng)PLC被設(shè)置在運(yùn)行模式和自由端口PPI協(xié)議由被寫入到SM30或SM130的數(shù)值所選擇時(shí),通信端口將按照被寫入到SM30或SM130的數(shù)值來配置。當(dāng)退出自由端口模式時(shí),PLC將以選擇的波特率回復(fù)到缺省的PPI協(xié)議。用于選擇自由端口PPI協(xié)議的代碼將是如由SM30(端口0)和由SM130(端口1)所規(guī)定的那樣。圖30b上的表給出SM30和SM130的規(guī)定。
自由端口接收消息中斷為了簡化用于自由端口通信的編程過程,PLC支持接收消息指令,該指令可以結(jié)合接收消息事件中斷一起被使用。用戶規(guī)定對于規(guī)定消息的開始和結(jié)尾所需要的條件。PLC支持以下的消息條件技術(shù)規(guī)范端口0SMB86-消息狀態(tài)字節(jié)表示終結(jié)條件SMB87-消息控制字節(jié)使能所選擇的消息接收準(zhǔn)則SMB88-開始字符唯一地表示新消息開始的字符SMB89-結(jié)尾字符唯一地表示消息結(jié)束的字符SMB90-空閑行一個(gè)其后所接收的第一字符將開始新的消息的時(shí)間間隔SMB92-字符/消息間的超時(shí)在字符之間所允許的、或?qū)τ谝唤邮盏南⒌淖畲髸r(shí)間。用法由消息控制字節(jié)來確定。
SMB94-字符計(jì)數(shù)接收消息的最大長度端口1SMB86-消息狀態(tài)字節(jié)表示終結(jié)條件SMB87-消息控制字節(jié)使能所選擇的消息接收準(zhǔn)則SMB88-開始字符唯一地表示新的消息的開始的字符SMB89-結(jié)尾字符唯一地表示消息的結(jié)束的字符SMB90-空閑行一個(gè)其后所接收的第一字符將開始新的消息的時(shí)間間隔SMB92-字符/消息間的超時(shí)在字符之間允許的、或?qū)τ谝唤邮盏南⒌淖畲髸r(shí)間。用法由消息控制字節(jié)來確定。
SMB94-字符計(jì)數(shù)接收消息的最大長度接收緩存器的第一字節(jié)被用作為字符計(jì)數(shù),它可以表示有多少字符已被接收消息功能接收。每個(gè)執(zhí)行特別的存儲(chǔ)器的規(guī)定在圖30c和30d所示的表中給出。
DP_S7通信PLC可以支持DP/T協(xié)議,該協(xié)議提供用于主-從屬通信的MPI輸送。PPI消息是與DP/T消息完全兼容的,所以不需要對協(xié)議的特別選擇。PLC可以接受PPI請求或DP/T請求,以及因而進(jìn)行響應(yīng)。對于在PPI端口上的DP/T通信的支持可以包括遵從HD4的被支持的所有波特率的來自PLC的傳輸。
當(dāng)PPI是無連接的協(xié)議時(shí),DP/T是面向連接的協(xié)議。圖30d的表規(guī)定DP、T連接的數(shù)目和用于由在每個(gè)端口上的每個(gè)PLC所支持的每個(gè)連接的緩存器的尺寸。這個(gè)表不包括用于可以在每個(gè)端口被支持的缺省SAP的緩存器。
調(diào)制解調(diào)器通信本發(fā)明的CPU支持通過標(biāo)準(zhǔn)10比特全雙工調(diào)制解調(diào)器的通信。這是相當(dāng)重要的,因?yàn)榈玫綇V泛使用的較新的11比特調(diào)制解調(diào)器常常要貴很多倍。已經(jīng)發(fā)現(xiàn),在工業(yè)技術(shù)典型地落后于計(jì)算機(jī)硬件當(dāng)前技術(shù)水平的工業(yè)基礎(chǔ)下這是特別正確的。另一方面,老的10比特調(diào)制解調(diào)器被認(rèn)為是價(jià)格低廉的。本發(fā)明利用了這樣的發(fā)現(xiàn),即,在工業(yè)界有過剩的10比特調(diào)制解調(diào)器,所以,提供一種獨(dú)特的10比特協(xié)議,允許本發(fā)明的PLC(或在這方面的任何PLC或處理器)連接到這樣裝備的工廠基本產(chǎn)品。當(dāng)然,本發(fā)明的10比特協(xié)議對于在利用10比特調(diào)制解調(diào)器情況下的其它裝置也是有價(jià)值的和可應(yīng)用的。
本發(fā)明的10比特協(xié)議的另一個(gè)優(yōu)點(diǎn)在于,10比特協(xié)議與更高階的比特協(xié)議是可兼容的。因此,10比特協(xié)議可以被11比特調(diào)制解調(diào)器或更高的調(diào)制解調(diào)器接受。
本發(fā)明的10比特協(xié)議與傳統(tǒng)的知識(shí)相反。當(dāng)然,從直覺上看,它的運(yùn)行與利用比最新調(diào)制解調(diào)器技術(shù)能夠支持更少的比特不同。它甚至與利用10比特調(diào)制解調(diào)器協(xié)議的傳統(tǒng)的知識(shí)不同,因?yàn)楸景l(fā)明犧牲了奇偶校驗(yàn),即所有遠(yuǎn)端通信為保數(shù)據(jù)的完整性所依賴的關(guān)鍵措施。事實(shí)上,當(dāng)考慮到PLC負(fù)責(zé)控制機(jī)器(例如笨重的設(shè)備或精確的機(jī)器人)時(shí),可以看到,公司可能會(huì)破產(chǎn),或更壞地,會(huì)有人由于PLC的不適當(dāng)?shù)闹噶疃艿絺ΑF胀▽I(yè)人員將強(qiáng)烈反對10比特協(xié)議。
現(xiàn)在參照圖31描述本發(fā)明的10比特協(xié)議。在一種安排中,用于調(diào)制解調(diào)器通信的協(xié)議是標(biāo)準(zhǔn)PPI協(xié)議的修正方案。當(dāng)然,其它的比特分配方案也是可能的。這里規(guī)定的PPM即點(diǎn)對點(diǎn)調(diào)制解調(diào)器協(xié)議將分配以下的比特1開始比特8數(shù)據(jù)比特
1停止比特0奇偶校驗(yàn)比特在PPM協(xié)議中,來自主設(shè)備的每個(gè)請求接收回答,而無需中間的應(yīng)答或輪詢(步驟S3100)。建議在PPM協(xié)議中只使用針對PPI協(xié)議而規(guī)定的SD2消息類型(步驟S3104)。為了滿足這個(gè)要求,主設(shè)備可以規(guī)定在建立聯(lián)系請求中使用主/從屬協(xié)議(DP/T)(步驟S3106)。在每個(gè)請求后,主機(jī)可以允許提供15秒以用于從屬設(shè)備在結(jié)束事務(wù)之前作回答(步驟S3108)。在接收請求后,從屬設(shè)備將允許在發(fā)出回答之前有最小的返回時(shí)間(例如20毫秒)(步驟S3110)。
每個(gè)請求/回答消息優(yōu)選地是SD2 PPI消息(步驟S3112),16比特的CRC檢驗(yàn)碼作為消息的最后兩個(gè)字節(jié)被附加在其上(步驟S31140)。CRC使用工業(yè)標(biāo)準(zhǔn)多項(xiàng)式(X16+X12+X5+1),它被稱為CRC-CCITT多項(xiàng)式(步驟S3116)。CRC在包括開始和停止比特的整個(gè)SD2幀上被計(jì)算(步驟S3118)。CRC產(chǎn)生器可以被預(yù)先設(shè)置到所有的用于發(fā)送和接收的裝置(步驟S3120)。這樣,正確消息的接收產(chǎn)生一個(gè)0x1D0F的圖案(步驟S3122)。
通過把通信端口連接器的第9引腳接地從而將PPM協(xié)議告知PLC。PLC在這個(gè)引腳上提供內(nèi)部的上拉電阻,以便選擇標(biāo)準(zhǔn)PROFIBUS協(xié)議。
將會(huì)看到,本發(fā)明的10比特協(xié)議不必限于10比特,以及可以擴(kuò)展到任意數(shù)目的比特,包括{1,2,3…9,10,11…∞}。事實(shí)上,本發(fā)明可更好地被看作為一個(gè)不包括奇偶校驗(yàn)比特的n比特協(xié)議。n比特協(xié)議可以通過使用以上的說明被實(shí)施,以便確保數(shù)據(jù)完整性。
隱匿部分用戶程序本發(fā)明的PLC提供專用軟件或代碼的保護(hù)。同樣的特性允許PLC向用戶隱匿那些不打算給用戶觀看的部分代碼,諸如由PLC產(chǎn)生的用于執(zhí)行PLC的子程序操作的代碼。將會(huì)看到,這個(gè)功能鼓勵(lì)第三方軟件開發(fā)者提供軟件,要不然他將會(huì)退避,因?yàn)榉駝t代碼將會(huì)提供給用戶。
為此,PLC支持HIDE(隱匿)指令,它允許用戶(或編程裝置)識(shí)別和隱匿部分的用戶程序。PLC程序被傳送和被存儲(chǔ)在用戶程序存儲(chǔ)器中,而隱匿的代碼段則被加密。PLC在編譯時(shí)間解密隱匿的代碼段,以便產(chǎn)生可執(zhí)行的程序。一旦完成編譯,隱匿的代碼段被重新加密。
提供用戶供給的密碼能力,它被用來加密要被隱匿的部分程序。這樣,只有合法的個(gè)人能夠觀看被隱匿的程序段。
如圖32所示,本發(fā)明的隱匿指令標(biāo)記加密部分的開始點(diǎn)。在本發(fā)明中,標(biāo)志P被設(shè)置來表示存在加密的代碼?,F(xiàn)在參照圖32b,描述隱匿功能的運(yùn)行。在步驟S3200,用戶調(diào)用用于專用代碼的特定片段的隱匿功能。作為應(yīng)答,PLC使得P標(biāo)志被設(shè)置(步驟S3202)。PLC用可以由用戶提供的密碼來加密代碼(步驟S3204)以及在代碼的開始點(diǎn)和結(jié)尾處把隱匿標(biāo)簽插入到用戶存儲(chǔ)器中,以便標(biāo)記出加密的部分(步驟S3206)。在用戶程序編譯后(步驟S3208),PLC使得加密的部分被解密(步驟S3210),以及用戶程序被正常執(zhí)行(步驟S3212)。一旦完成程序的執(zhí)行,PLC就重新加密專用代碼(步驟S3214)。
用戶密碼通過使用允許用戶配置接入限制的密碼,可以提供對接入到PLC功能和存儲(chǔ)器的限制。如果沒有密碼,PLC可以提供無限制的接入。當(dāng)PLC受密碼保護(hù)時(shí),PLC可以禁止按照在設(shè)置密碼時(shí)提供的配置而進(jìn)行限制的所有的運(yùn)行。PLC可以允許一個(gè)站對通信鏈路合法化,以使得該站的用戶可以具有無限制的接入。知道密碼的用戶可以通過輸入密碼和編輯限制類別而在任何時(shí)間重新配置限制。不知道密碼的用戶必定逃避不了由知道密碼的用戶指派的限制。
在用戶忘記密碼的事件中,主密碼可被使用來達(dá)到接入到PLC。為了主密碼能夠起作用,PLC模式開關(guān)可以處在STOP或TERM位置。當(dāng)主密碼被使用時(shí),PLC軟件采取以下的動(dòng)作1.PLC將轉(zhuǎn)移到STOP模式;2.用戶程序(OB1)被清除(被刪除);3.用戶數(shù)據(jù)存儲(chǔ)器(DB1)被清除(被刪除);4.如果SDB0存在,除站地址和波特率以外的SDB2的所有的參量將被復(fù)制到SDB0;5.所有的SM標(biāo)志被設(shè)置到它們的缺省狀態(tài);6.所有的標(biāo)志被清除;
7.所有的SCR比特被清除;8.模擬輸出將被凍結(jié);9.所有系統(tǒng)數(shù)據(jù)存儲(chǔ)器被設(shè)置到缺省狀態(tài);10.所有強(qiáng)制的點(diǎn)被清除和不加以強(qiáng)制;11.日時(shí)鐘的時(shí)間將不改變;12.所有的定時(shí)器/計(jì)數(shù)器的當(dāng)前數(shù)據(jù)被清除;13.內(nèi)部的EEPROM被初始化(OB1和DB1被刪除,和SDB2中除了站地址以外都被復(fù)制到SDB0,以及所有的輸入、輸出和數(shù)據(jù)值不加以強(qiáng)制)系統(tǒng)功能調(diào)用支持PLC 100支持系統(tǒng)功能調(diào)用(SFC),它允許用戶把定做的功能上載到PLC。
一般地,SFC可以由Siemens S7-200開發(fā)小組來創(chuàng)建,以及由編程裝置下載到PLC。PLC支持至少兩個(gè)SFC。每個(gè)SFC的最大規(guī)模取決于在特定的PLC中可提供的資源。對于在本發(fā)明中想像的CPU,每個(gè)SFC的最大規(guī)模是8KB,其中包括塊標(biāo)題信息。SFC并不一定需要任何用戶數(shù)據(jù),雖然可以提供系統(tǒng)數(shù)據(jù)的分配。被下載到PLC的SFC變成為該P(yáng)LC的操作系統(tǒng)的一部分。PLC還允許SFC被上載、下載、刪除、和被復(fù)制到存儲(chǔ)器卡盤。PLC報(bào)告SFC在適當(dāng)?shù)哪夸浲ㄐ殴δ苤械拇嬖凇?br>
在圖33a的表中顯示示例性SFC指令。圖33b現(xiàn)在更詳細(xì)地顯示系統(tǒng)功能調(diào)用的方法。在步驟3300,用戶提醒PLCSFC下載是所需要的。PLC執(zhí)行用于下載所必要的信息交換協(xié)議(步驟S3302),以及SFC被下載(步驟S3304)。PLC存儲(chǔ)已下載的功能作為操作系統(tǒng)的功能庫的一部分(步驟S3306)。
裝載新的操作系統(tǒng)PLC可以使用快閃EPROM,以便操作系統(tǒng)貯存支持通過通信端口去裝載新的操作系統(tǒng)。這是通過使用在快閃EPROM中的引導(dǎo)塊(它在被安裝在PLC時(shí)不能被擦除的)而完成。
新的操作系統(tǒng)的裝載可以通過使用PC/PPI電纜把個(gè)人計(jì)算機(jī)直接連接到PLC而被完成。由于PROFIBUS協(xié)議的復(fù)雜性(它是可以結(jié)合這些裝置被使用的唯一的協(xié)議),使用安裝在個(gè)人計(jì)算機(jī)或PG的一部分的PROFIBUS卡并不是優(yōu)選的。
被使用來裝載新的操作系統(tǒng)的協(xié)議的規(guī)定將通過設(shè)計(jì)而被標(biāo)識(shí),每個(gè)通信消息將提供具有檢驗(yàn)和或CRC代碼的形式的數(shù)據(jù)完整性檢驗(yàn)。新的操作系統(tǒng)的完整性的驗(yàn)證是在正常的運(yùn)行被調(diào)用以前、但是在FLASH EPROM被編程以后。
STL狀態(tài)已發(fā)現(xiàn)用于診斷程序的傳統(tǒng)的診斷系統(tǒng)是有缺陷的,因?yàn)楝F(xiàn)有的PLC的診斷系統(tǒng)將在執(zhí)行整個(gè)程序以后進(jìn)行診斷,或?qū)Τ绦驁?zhí)行的時(shí)序產(chǎn)生很大地干擾。為此,PLC支持在一組中的每個(gè)指令被執(zhí)行的時(shí)刻獲得執(zhí)行該組指令的結(jié)果。這個(gè)新穎的特性在PLC執(zhí)行指令的同時(shí)實(shí)時(shí)地完成。為了實(shí)施這個(gè)功能,PLC提供其狀態(tài)要被收集的被編譯的代碼段。
在一種安排中,STL狀態(tài)在諸如由被耦合到PLC的、作為熟知的人機(jī)接口所提供的顯示器上被實(shí)施。在顯示器上狀態(tài)窗口的尺寸將由可被返回的操作數(shù)值的數(shù)目確定。PLC可保留200字節(jié)緩存器以用于操作數(shù)值。這個(gè)緩存器的尺寸是基于在單個(gè)通信幀中可被返回的數(shù)據(jù)量的。
優(yōu)選地只支持一個(gè)STL狀態(tài)窗口。支持多個(gè)窗口需要附加的RAM,這會(huì)引起同步和觸發(fā)問題。當(dāng)然,通過存儲(chǔ)器技術(shù)的將來的發(fā)展,可能有多個(gè)窗口。
應(yīng)當(dāng)只有一個(gè)裝置能夠打開STL狀態(tài)窗口。STL狀態(tài)窗口功能將與打開STL狀態(tài)窗口的裝置的站地址相聯(lián)系。只要STL窗口保持打開,對于要求打開STL窗口的所有其它請求將被PLC拒絕。
為了打開STL狀態(tài)窗口,編程裝置可以識(shí)別窗口中第一指令的地址,然后識(shí)別窗口中指令的數(shù)目。窗口技術(shù)規(guī)范的基本格式被顯示于下面。
在本例中,規(guī)定的唯一指令地址是在窗口中第一指令的存儲(chǔ)器地址。編程裝置承擔(dān)確保在建立STL窗口時(shí)請求的應(yīng)答數(shù)據(jù)適合于應(yīng)答緩存器的200字節(jié)的全部負(fù)擔(dān)。
STL狀態(tài)顯示器不可跨越各個(gè)程序部分(例如主程序到子程序,子程序到子程序,子程序到指令,指令到指令)之間的邊界,這是一個(gè)原則。這會(huì)引起破壞。
應(yīng)答緩存器的示例性格式被顯示于圖34a,其中STL狀態(tài)窗口的開始點(diǎn)的指令地址被返回以便肯定地確認(rèn)PLC和編程裝置正在觀看同一個(gè)窗口。長度域表示有多少數(shù)據(jù)值的字節(jié)被包含在用于每個(gè)指令的數(shù)據(jù)區(qū)中。現(xiàn)在將描述代碼V 0-用于這個(gè)指令的數(shù)據(jù)是不正確的,因?yàn)樵谶@次掃描該指令沒有被執(zhí)行。
1-用于這個(gè)指令的數(shù)據(jù)是正確的。
ENO使能輸出比特,它表示指令是否無錯(cuò)誤地執(zhí)行。
SCR SCR堆棧的比特?cái)?shù)值。
S4-S0 S0是指堆棧值的頂部,以及S1是指緊接著堆棧值的頂部的下一個(gè)。
Data 對于指令所返回的STL狀態(tài)信息。編程裝置負(fù)責(zé)根據(jù)建立STL狀態(tài)窗口的請求來分析數(shù)據(jù)。
PLC負(fù)責(zé)確保在STL狀態(tài)窗口獲取的數(shù)據(jù)來自單個(gè)掃描周期。PLC通過使用正確的標(biāo)志(V)向編程裝置表示這一點(diǎn),該標(biāo)志(V)是通過按下對于每個(gè)指令的堆棧值而被提供的。在內(nèi)部,PLC通過使用掃描計(jì)數(shù)值來跟蹤正確的值,該計(jì)數(shù)值通過對STL狀態(tài)緩存器的請求被復(fù)位以及每次掃描該計(jì)數(shù)值被遞增。當(dāng)一個(gè)數(shù)值要被寫入到STL狀態(tài)緩存器時(shí),緩存器的掃描計(jì)數(shù)狀態(tài)字與掃描計(jì)數(shù)器的當(dāng)前的數(shù)值進(jìn)行比較。如果數(shù)值不同,則掃描計(jì)數(shù)值將被復(fù)制到STL狀態(tài)緩存器的掃描計(jì)數(shù)狀態(tài)字,以及緩存器中所有的V標(biāo)志將被清除。然后新的數(shù)值被存儲(chǔ)在緩存器中,以及用于該指令的V標(biāo)志將被設(shè)置。如果掃描計(jì)數(shù)器的數(shù)值都是相同的,則新的數(shù)值將被存儲(chǔ)在緩存器中,以及用于該指令的V標(biāo)志將被設(shè)置。這允許緩存器總是利用來自最新的掃描數(shù)據(jù)進(jìn)行更新,而同時(shí)保持?jǐn)?shù)據(jù)同步到同一個(gè)掃描。
裝備用于STL狀態(tài)的已編譯的代碼窗口現(xiàn)在參照圖34b和34c同時(shí)描述STL狀態(tài)的設(shè)備和運(yùn)行。對應(yīng)于SYL狀態(tài)窗口中的指令的已編譯的代碼段被PLC所識(shí)別(步驟S3400)(圖上畫陰影線部分)。在陰影線區(qū)中原先已編譯的代碼被保存(步驟S3402),然后一旦STL狀態(tài)運(yùn)行完成,它就被恢復(fù)(步驟S3404)。一旦原先已編譯的代碼被保存,被裝備的代碼就被編譯在RAM的另一段中(步驟S3404)。
為了討論裝備代碼的處理過程,需要如下地定義幾個(gè)術(shù)語編譯的指令-編譯的指令是機(jī)器碼或通過編譯STL指令而產(chǎn)生的可執(zhí)行碼。通常,每個(gè)STL指令被編譯成多個(gè)機(jī)器指令。
裝備的指令-裝備的指令是編譯的指令連同為了節(jié)省功率流的狀態(tài)和操作數(shù)值所需要的額外的機(jī)器碼。
為了保留標(biāo)簽的地址,對于下一個(gè)環(huán)路、子程序和中斷子程序,在STL狀態(tài)窗口中每個(gè)編譯的指令將被一個(gè)至所述裝備的指令的分支所代替(步驟S3406)。每個(gè)裝備的指令利用返回指令而被終結(jié),該返回指令把控制轉(zhuǎn)移到下一個(gè)編譯的指令(步驟S3408)。
至裝備的代碼的所述分支是通過使用LCALL指令完成的(步驟S3410)。LCALL把控制轉(zhuǎn)移到裝備的代碼,該代碼獲取用于該指令的STL狀態(tài)(步驟S3412)。對于長于3字節(jié)的那些編譯的指令,返回的數(shù)值被調(diào)節(jié)以使得控制將被轉(zhuǎn)移到下一個(gè)編譯的指令(步驟S3414)。
在STL狀態(tài)窗口中首先編譯的指令的開始地址可以在實(shí)施之前被確定(步驟S3416)。為了減小對于確定這個(gè)地址所需要的時(shí)間量,可以保存包含對于每個(gè)二十五編譯的指令的地址的指針的一個(gè)表(步驟S3418)。這樣的表對于8192字節(jié)用戶程序需要約300個(gè)字節(jié)。如果更多的RAM是可提供的,則地址指針的表可以指出每第十個(gè)編譯的指令,這進(jìn)一步減小用于STL狀態(tài)實(shí)施的時(shí)間。
PLC利用圖34c的表,該表列出最快的布爾指令并且顯示為了編譯代碼需要進(jìn)行怎樣的改變,以使得所有的指令在長度上是三字節(jié)的最小值。在表的陰影部分中的指令告訴PLC哪些指令可被修正。
以上的技術(shù)需要最小的RAM的量,但它也需要所有編譯的代碼指令至少要取LCALL指令所需要的字節(jié)數(shù)目,該LCALL指令將被使用來轉(zhuǎn)移到被裝備的代碼段。為了清晰起見,上面假設(shè)LCALL指令取三個(gè)字節(jié),以及所有的編譯的指令取三個(gè)或更多的字節(jié)。
設(shè)計(jì)概念圖1上顯示對于PLC系列的機(jī)械設(shè)計(jì)概念。設(shè)計(jì)概念是“磚塊”型式的,它具有把各個(gè)單元相連接起來以便擴(kuò)展的能力。這些擴(kuò)展單元也具有相同的型式和形狀。設(shè)計(jì)目標(biāo)是使得這個(gè)單元盡可能低成本,而同時(shí)保持與Siemens S7-300TM和S7-400TM相同的系列外貌。PLC系列將具有與與S7-300TM和S7-400TM系列相同的彩色和文本型式。
外殼PLC外殼以均勻的塑料和彩色進(jìn)行壓模塑造(Noryl GFN1 SE1Anthrazit 614 Herst N.R.GE 93263)。單元由頂部、基座、兩個(gè)進(jìn)入蓋、一個(gè)DIN導(dǎo)軌插銷、和兩個(gè)尺寸的光管道。所有這些部件嚙合在一起,以便容易安裝。外殼中的設(shè)備被做成允許PWB也易于快速安置到位。I/O外殼以與PLC外殼相同的方式被設(shè)計(jì)。所述外殼被設(shè)計(jì)成用于IP20保護(hù),以及阻止其它物體(諸如錢幣)進(jìn)入該裝置。圖35a的表顯示單元的一個(gè)可能的尺寸組。
單元安裝圖35b所示的PLC 3900設(shè)計(jì)成被安裝在DIN導(dǎo)軌3906上,或被進(jìn)行面板安裝3908。當(dāng)單元要進(jìn)行DIN導(dǎo)軌安裝時(shí),安裝插銷被使用來把單元鎖定在標(biāo)準(zhǔn)類型50022 DIN導(dǎo)軌上。當(dāng)單元要進(jìn)行面板安裝時(shí),提供了一些安裝孔,以便接納公制M4或#8類型的螺釘尺寸。PLC 3904在這里被顯示為與I/O擴(kuò)展模塊3902相嚙合。在單元的上面和下面需要25mm的空隙,以便允許用戶引線進(jìn)出,以及考慮單元的適當(dāng)?shù)睦鋮s。
雖然參照特定的數(shù)值和電路安排描述了本發(fā)明,但將會(huì)看到,屬于本發(fā)明的精神和范圍內(nèi)的、其它的數(shù)值和電路安排可以代替所揭示的安排。另外,將會(huì)看到,專業(yè)人員將立即能知道如何實(shí)施PLC的軟件代碼,以及在這方面將會(huì)看到,各種軟件應(yīng)用可以以任何適當(dāng)?shù)木幊陶Z言被編寫以及被存儲(chǔ)在任何適當(dāng)?shù)挠涗浢襟w(諸如非易失性存儲(chǔ)器,其中包括軟盤、CD-ROM或DVD等)中。
用于可編程邏輯控制器的高速分立輸出端可編程邏輯控制器通過使用作為5V或3.3V低功率電路運(yùn)行的標(biāo)準(zhǔn)數(shù)字邏輯電路而求解編程邏輯方程。這些方程的結(jié)果是一些邏輯信號(hào),它們?nèi)缓蟊惶峁┙o控制很大的功率(例如,24VDC或更大的電壓和接近1A或更大的電流)的直流分立的輸出點(diǎn)。這些分立的輸出點(diǎn)可以驅(qū)動(dòng)各種各樣的負(fù)載,包括需要增強(qiáng)的驅(qū)動(dòng)器電路的電感負(fù)載和燈負(fù)載??删幊炭刂破鞯哪承┯脩粢蚕M?qū)動(dòng)帶有快速的精確的切換的負(fù)載,來產(chǎn)生用于步進(jìn)電機(jī)的計(jì)數(shù)的脈沖串或精確的模擬值的脈沖寬度調(diào)制的表示。
滿足這些需要的一個(gè)方法是提供專門用于高能量的輸出器件(例如,光隔離的功率晶體管),以及專門用于高速和精確的切換的其它輸出器件(例如,非隔離的開關(guān)晶體管或5V數(shù)字邏輯輸出)。
如果同一個(gè)輸出設(shè)計(jì)可同時(shí)地或在不同時(shí)間被使用于高功率應(yīng)用和高速/精確定時(shí)應(yīng)用,這將是一個(gè)優(yōu)點(diǎn),正如可編程邏輯控制器的不同的用戶可能需要的。在該設(shè)計(jì)中也希望保持光隔離,這是在工業(yè)控制中為了得到熟知的優(yōu)點(diǎn)而非常經(jīng)常地被采用的。還希望在保持類似于具有更多限制的應(yīng)用的現(xiàn)有設(shè)計(jì)的成本的同時(shí),實(shí)現(xiàn)組合的應(yīng)用的優(yōu)點(diǎn)。
在這樣的設(shè)計(jì)中還希望限制輸出電路的功率消耗,以使得可編程邏輯控制器的熱升最小化。
對于這種分立的輸出電路的附加的需要的特性是它們具有抑制與感性負(fù)載的關(guān)斷有關(guān)的電壓瞬態(tài)的裝置。這樣的分立輸出電路的另一個(gè)要求是,它們能承受得起某些標(biāo)準(zhǔn)電磁抗噪聲測試,而不會(huì)引起與命令的邏輯狀態(tài)相反的虛假接通或關(guān)斷。這樣的分立輸出電路的再一個(gè)要求是,它們在很寬的電源電壓范圍內(nèi)(例如,20到30VDC)正確地和可協(xié)調(diào)地運(yùn)行。這樣的電路的又一個(gè)要求是,它可以以低消耗高產(chǎn)量系列產(chǎn)品的形式可協(xié)調(diào)地再生產(chǎn)。這樣的電路的另一個(gè)要求是,如果控制邏輯元件不被供電而輸出電路功率存在時(shí),則電路被默認(rèn)為安全的已知狀態(tài)。
在圖38上顯示典型的可編程控制器分立直流輸出電路,它利用光隔離的晶體管(3801)通過適當(dāng)?shù)碾娮杈W(wǎng)絡(luò)(3803)來驅(qū)動(dòng)FET器件(3802)的柵極。用戶提供的電源(3804)和外部負(fù)載(3805)與可編程控制器邏輯元件相互隔離??赡苄枰郊釉?諸如正確地設(shè)置的電容器)來滿足抗噪聲要求。
另一個(gè)實(shí)施方案利用雙極晶體管代替FET,并且?guī)в杏糜隍?qū)動(dòng)基極的不同的適當(dāng)?shù)碾娮杈W(wǎng)絡(luò)。其他的替換形式包括使用互補(bǔ)型FET或雙極晶體管的電流阱型輸出電路,而不是所顯示的電流源(高端驅(qū)動(dòng)器)形式。
這種基本電路結(jié)構(gòu)提供增強(qiáng)的輸出,但不容易被做成以大于幾kHz的速度進(jìn)行轉(zhuǎn)換(或等價(jià)地,具有低于幾微秒到幾十微秒的接通/關(guān)斷延時(shí))。更高的轉(zhuǎn)換速度的主要障礙是光耦合器,特別是對關(guān)斷時(shí)間而言。為了在全部用戶電源電壓范圍上和對于與大批量低成本的生產(chǎn)有關(guān)的光耦合器增益的變化以及光耦合器增益由于老化的變化提供可靠的運(yùn)行,必須設(shè)計(jì)光耦合器輸入驅(qū)動(dòng)電路和光耦合器輸出電路處的柵極驅(qū)動(dòng)電路的阻抗,以使得當(dāng)輸出信號(hào)是ON時(shí),光耦合器典型地很強(qiáng)地飽和。為了保持柵極驅(qū)動(dòng)電路中的功率耗散為可接受的數(shù)值,柵極驅(qū)動(dòng)電路必須是高阻抗。對于高阻抗輸出電路,光耦合器從飽和到關(guān)斷的過程非常慢。而且,驅(qū)動(dòng)電路的高阻抗能通過限制基極或柵極電荷的變化速率而有助于功率晶體管的慢的轉(zhuǎn)換。所有這些效果還由于任何附加電容添加到電路上提高了電磁抗噪性從而被加重。
光耦合器器件是通常市場上可提供的,它可以以遠(yuǎn)大于對于這個(gè)應(yīng)用所需要的轉(zhuǎn)換速率來耦合數(shù)字信號(hào)。這些器件通常依靠在小的信號(hào)線性范圍上切換光晶體管,然后放大和調(diào)節(jié)最終的輸出,從而得到邏輯電平數(shù)字信號(hào)。這樣的器件不容易適用于這種應(yīng)用,因?yàn)樗鼈兊湫偷鼐哂幸韵碌囊粋€(gè)或多個(gè)缺點(diǎn)·所述器件在用于輸出放大器/信號(hào)調(diào)節(jié)器的光耦合器的輸出端處可能需要低電壓(5V或3.3V)的低阻抗電源。在電路的現(xiàn)場側(cè)形成這樣的電源電壓,需要附加的元件和成本。
·所述器件可能承受不了直接連接到與FET柵極或雙極性晶體管基極電路有關(guān)的較高的電壓,因此需要附加的元件來控制柵極或基極。
·所述器件比起簡單的光晶體管可能在成本上高得多。
圖39顯示所揭示的本發(fā)明的基本元件。外部輸出負(fù)載和輸出負(fù)載電源電壓像以前一樣被連接到PLC DC輸出電路。在PLC內(nèi),負(fù)電壓穩(wěn)壓器(3901)提供-Vg的柵極驅(qū)動(dòng)電壓電源,它被設(shè)置為比外部電源電壓(例如V+-12V)更負(fù)的、適當(dāng)?shù)臄?shù)值。光晶體管(3902)在被接通時(shí)把輸出晶體管(3904)的柵極連接到電源電壓V+,從而把輸出晶體管關(guān)斷。另一個(gè)光晶體管(3903)在被接通時(shí)把輸出晶體管(3904)的柵極連接到電源-Vg,從而把輸出接通以及驅(qū)動(dòng)外部負(fù)載。PLC邏輯把光晶體管(3902)和(3903)驅(qū)動(dòng)為互補(bǔ)對,這樣,對于輸出關(guān)斷狀態(tài),一個(gè)晶體管(3902)導(dǎo)通而另一晶體管(3903)不導(dǎo)通,以及在輸出接通狀態(tài),另一晶體管(3903)導(dǎo)通而前一晶體管(3902)不導(dǎo)通。一個(gè)相當(dāng)高的阻抗(例如,10KΩ)的上拉電阻(3905)保證在外部負(fù)載電源電壓被加上但PLC內(nèi)部元件沒有被供電情形下,其輸出是關(guān)斷的。
在輸出關(guān)斷與輸出接通之間的過渡過程,光晶體管(3903)快速接通,從而提供把FET柵極電容放電到-Vg的路徑,以及也提供對于(3902)快速關(guān)斷所需要的低阻抗路徑。同樣地,在從接通到關(guān)斷的過渡中,(3902)把FET柵極快速拉到V+,以及提供對于(3903)快速關(guān)斷所需要的低阻抗路徑。用于光晶體管的驅(qū)動(dòng)電路利用數(shù)字邏輯門(3907)通過并聯(lián)RC網(wǎng)絡(luò)(3905)和(3906)驅(qū)動(dòng)每個(gè)光耦合器的光二極管。在邏輯信號(hào)處于適當(dāng)?shù)臓顟B(tài)時(shí),每個(gè)網(wǎng)絡(luò)中的電阻(例如,1KΩ)提供流過光二極管的有限的直流電流。每個(gè)網(wǎng)絡(luò)(3905)和(3906)中的電容(例如,100nF)允許流過相關(guān)的光二極管的電流脈沖在數(shù)字邏輯信號(hào)轉(zhuǎn)換到適當(dāng)?shù)臓顟B(tài)時(shí)接通該二極管。這樣做的純效果是光晶體管初始很強(qiáng)地接通,然后跟隨著穩(wěn)態(tài)的最小光驅(qū)動(dòng)。這在光耦合器的輸出端處對應(yīng)于FET柵極電荷和相反的光晶體管的基極電荷的初始的強(qiáng)導(dǎo)通,然后跟隨著穩(wěn)態(tài)的導(dǎo)通,該穩(wěn)態(tài)的導(dǎo)通只夠?qū)ET柵極保持在需要的接通或關(guān)斷電壓電平上。
電阻/電容網(wǎng)絡(luò)(3908)(例如,10KΩ和1μF)提供負(fù)電壓穩(wěn)壓器的最小負(fù)載和去耦合??缃釉诿總€(gè)光晶體管的集電極/發(fā)射極的電容(3909)(例如,1000pF)為經(jīng)過現(xiàn)場連線和FET耦合到電路的噪聲提供通路,以便旁路光晶體管而不造成那些器件的不需要的切換。
與反向阻塞二極管(3910)相耦合的齊納二極管(例如,36V)提供電感性負(fù)載箝位。當(dāng)FET(3904)企圖關(guān)斷感性的外部負(fù)載時(shí),電感的反作用將驅(qū)動(dòng)FET漏極為負(fù)的,因?yàn)殡姼辛D保持電流。齊納二極管允許這個(gè)負(fù)的電壓被發(fā)送到門電路。FET被保持在線性區(qū)的接通狀態(tài),允許電流被保持在電感中,而不會(huì)在FET漏極感應(yīng)出一個(gè)會(huì)造成損壞的電壓。FET的線性工作區(qū)電壓降與負(fù)載中任何電阻相組合,它們將最后耗散掉存儲(chǔ)的電感能量,在這時(shí),電路將完成關(guān)斷。阻塞二極管(3911)保護(hù)電路不會(huì)由于外部負(fù)載電壓電源錯(cuò)誤的反向極性連接而造成損害。
通過以上的發(fā)明,前面所述的問題被解決。
權(quán)利要求
1.在提供逐個(gè)波形的平滑的受控制的過渡的脈沖輸出塊中使用的流水線設(shè)備,其中所述脈沖輸出塊根據(jù)周期時(shí)間、周期時(shí)間差值和脈沖計(jì)數(shù)/寬度值運(yùn)行,所述設(shè)備包括第一流水線寄存器,用于提供所述周期時(shí)間;第二流水線寄存器,用于提供所述周期時(shí)間差值;以及第三流水線寄存器,用于提供所述脈沖周期/脈沖寬度值,其中所述第一、第二和第三流水線寄存器被安排來分別提供所述周期時(shí)間、周期時(shí)間差值和脈沖計(jì)數(shù)/寬度值,以使得所述脈沖輸出塊提供逐個(gè)波形的平滑的受控制的過渡。
2.按照權(quán)利要求1的設(shè)備,還包括時(shí)鐘產(chǎn)生器,用于提供主時(shí)基時(shí)鐘;周期時(shí)間計(jì)數(shù)器,在時(shí)基時(shí)鐘的上升沿處被遞增;以及比較器,用于比較所述計(jì)數(shù)器的計(jì)數(shù)值與預(yù)定的周期值,由所述比較器給出的比較結(jié)果控制輸出波形的周期,其中當(dāng)所述計(jì)數(shù)器達(dá)到所述預(yù)定的數(shù)值時(shí),則當(dāng)前的周期完成,以及產(chǎn)生周期完成事件,以表示周期已完成。
3.按照權(quán)利要求2的設(shè)備,還包括用于相加二進(jìn)制補(bǔ)碼值的加法器,該二進(jìn)制補(bǔ)碼值在每次周期完成事件被附加到所述預(yù)定的周期值。
4.按照權(quán)利要求2的設(shè)備,還包括脈沖計(jì)數(shù)器,它根據(jù)每次周期完成事件而被驅(qū)動(dòng),以便計(jì)數(shù)在脈沖輸出塊的輸出波形上產(chǎn)生的周期數(shù)目。
5.按照權(quán)利要求4的設(shè)備,還包括另一個(gè)比較器,用于比較所述脈沖計(jì)數(shù)/寬度值與預(yù)定的脈沖計(jì)數(shù)值,以便確定當(dāng)前脈沖串的完成情形。
6.按照權(quán)利要求2的設(shè)備,其中脈沖輸出塊的輸出波形的占空比根據(jù)所述周期時(shí)間計(jì)數(shù)器的輸出而被控制,其中當(dāng)所述周期時(shí)間計(jì)數(shù)器的計(jì)數(shù)值小于所述脈沖計(jì)數(shù)/寬度值時(shí),所述輸出波形被偏置為高電平,以及當(dāng)所述周期時(shí)間計(jì)數(shù)器的計(jì)數(shù)值達(dá)到或超過所述輸出波形時(shí),所述輸出波形被偏置為低電平。
7.按照權(quán)利要求1的設(shè)備,其中所述設(shè)備把所述脈沖輸出塊從脈沖串輸出波形平滑地過渡到脈沖寬度調(diào)制波形。
8.按照權(quán)利要求1的設(shè)備,其中所述設(shè)備不需要由軟件來中止所述脈沖輸出塊以及然后重新啟動(dòng)它。
9.按照權(quán)利要求1的設(shè)備,還包括一個(gè)控制器,用于改變所述脈沖輸出塊的所述波形,以便提供以特定的速率自動(dòng)以斜坡方式改變周期時(shí)間的數(shù)值的能力。
10.按照權(quán)利要求9的設(shè)備,其中所述控制器改變所述波形,以便允許以斜坡方式改變步進(jìn)電機(jī)速度。
11.在脈沖輸出塊中用于提供逐個(gè)波形的平滑的受控制的過渡的方法,所述脈沖輸出塊根據(jù)周期時(shí)間、周期時(shí)間差值和脈沖計(jì)數(shù)/寬度值而運(yùn)行,所述方法包括以下步驟把所述周期時(shí)間、所述周期時(shí)間差值和所述脈沖周期/脈沖寬度值流水線方式提供給所述脈沖輸出塊;以及控制所述流水線方式提供,以便控制從所述脈沖輸出塊的輸出的、逐個(gè)波形的過渡,從而使得所述過渡是平滑的。
12.按照權(quán)利要求11的方法,還包括以下步驟計(jì)數(shù)時(shí)基時(shí)鐘的上升沿;以及控制比較所述計(jì)數(shù)的計(jì)數(shù)值與預(yù)定值的所述脈沖塊輸出電路的輸出波形的周期,其中當(dāng)所述計(jì)數(shù)器達(dá)到所述預(yù)定的數(shù)值時(shí),則完成所述輸出波形的當(dāng)前周期。
13.按照權(quán)利要求12的方法,還包括計(jì)數(shù)根據(jù)每次周期完成事件而被驅(qū)動(dòng)的脈沖的步驟,以便計(jì)數(shù)在脈沖輸出塊的輸出波形上產(chǎn)生的周期數(shù)目。
14.按照權(quán)利要求13的方法,還包括比較所述脈沖計(jì)數(shù)/寬度值與預(yù)定的脈沖值以便確定當(dāng)前脈沖串的完成情形的步驟。
15.按照權(quán)利要求12的方法,其中脈沖輸出塊的輸出波形的占空比根據(jù)所述周期時(shí)間計(jì)數(shù)器的輸出而進(jìn)行控制,并且還包括以下步驟當(dāng)所述周期時(shí)間計(jì)數(shù)器的計(jì)數(shù)值小于所述脈沖計(jì)數(shù)/寬度值時(shí),把所述輸出波形偏置為高電平,以及當(dāng)所述周期時(shí)間計(jì)數(shù)器的所述計(jì)數(shù)值達(dá)到或超過所述輸出波形時(shí),把所述輸出波形偏置為低電平。
16.按照權(quán)利要求11的方法,還包括把所述脈沖輸出塊從脈沖串輸出波形平滑地過渡到脈沖寬度調(diào)制波形的步驟。
17.按照權(quán)利要求11的方法,還包括改變所述脈沖輸出塊的所述波形,以便提供以特定的速率自動(dòng)按斜坡方式改變周期時(shí)間的數(shù)值的能力的步驟。
18.按照權(quán)利要求17的方法,其中所述改變步驟改變所述波形,以便允許按斜坡方式改變步進(jìn)電機(jī)速度。
19.按照權(quán)利要求11的方法,還包括按脈沖串輸出模式運(yùn)行所脈沖輸出塊以便輸出脈沖串波形的步驟。
20.按照權(quán)利要求11的方法,還包括按脈沖寬度調(diào)制模式運(yùn)行所述脈沖輸出塊以便輸出脈沖寬度調(diào)制波形的步驟。
21.提供自由端口模式的設(shè)備,它允許用戶控制鏈接到可編程邏輯控制器的自由端口,所述設(shè)備包括用于鏈接到所述可編程邏輯控制器的端口;以及一個(gè)可由所述用戶選擇的模式,它允許所述用戶控制所述端口,其中所述模式允許所述用戶將用于通信的協(xié)議通過所述端口配置給所述可編程邏輯控制器。
22.按照權(quán)利要求21的設(shè)備,其中所述模式允許所述用戶配置基于字符的協(xié)議。
23.按照權(quán)利要求21的設(shè)備,其中所述模式允許所述用戶配置每個(gè)字符多個(gè)比特。
24.按照權(quán)利要求21的設(shè)備,其中所述模式允許所述用戶配置所述協(xié)議的奇偶校驗(yàn)。
25.按照權(quán)利要求21的設(shè)備,其中所述模式允許所述用戶配置所述協(xié)議的波特率。
26.按照權(quán)利要求21的設(shè)備,其中所述可編程邏輯控制器是微控制器。
27.按照權(quán)利要求21的設(shè)備,還包括內(nèi)建的協(xié)議,它被提供給用戶以用于自由端口模式。
28.按照權(quán)利要求21的設(shè)備,還包括預(yù)定的接收指令,它規(guī)定通過所述端口傳送的數(shù)據(jù)的消息內(nèi)容。
29.用于提供自由端口模式的方法,該模式允許用戶控制鏈接到可編程邏輯控制器的自由端口,所述方法包括以下步驟選擇一個(gè)允許所述用戶控制所述自由端口的模式,其中所述模式允許所述用戶將一個(gè)用于通信的協(xié)議通過所述端口配置給所述可編程邏輯控制器;以及將所述用于通信的協(xié)議通過所述端口配置給所述可編程邏輯控制器。
30.按照權(quán)利要求29的方法,其中所述選擇的步驟實(shí)施中斷,它中斷所述可編程邏輯控制器以及把所述自由端口的控制傳遞給所述用戶。
31.按照權(quán)利要求29的方法,其中所述選擇的步驟把所述自由端口的控制傳遞給一個(gè)用戶程序,該用戶程序指令所述可編程邏輯控制器以與所述用戶程序的指令一致的方式起作用。
32.按照權(quán)利要求29的方法,其中所述可編程邏輯控制器是控制從屬設(shè)備的主機(jī),其中所述選擇的步驟把標(biāo)志傳遞給所述主機(jī),以便授權(quán)所述主機(jī)控制所述自由端口。
33.按照權(quán)利要求29的方法,還包括按照預(yù)定的設(shè)置來設(shè)置UART,以便用戶控制所述自由端口。
34.按照權(quán)利要求29的方法,其中所述配置步驟提供內(nèi)建的協(xié)議給用戶,以用于自由端口模式。
35.按照權(quán)利要求29的方法,其中所述配置步驟提供預(yù)定的接收指令,該指令規(guī)定通過所述自由端口傳送的數(shù)據(jù)的消息內(nèi)容。
36.按照權(quán)利要求29的方法,還包括在所述自由端口模式完成后自動(dòng)返回到正常模式其中所述可編程邏輯控制器繼續(xù)對所述自由端口的控制的步驟。
37.用于調(diào)制解調(diào)器的n比特協(xié)議的設(shè)備,n是整數(shù),其中所述n比特協(xié)議取消n+1比特協(xié)議的奇偶校驗(yàn)比特,所述n+1比特協(xié)議包括被采用來奇偶校驗(yàn)在所述n+1比特協(xié)議中發(fā)送的數(shù)據(jù)的整體性的所述奇偶校驗(yàn)比特,所述n比特協(xié)議包括n比特的數(shù)據(jù)比特區(qū),包括至少一個(gè)比特,其中所述數(shù)據(jù)比特區(qū)分配每個(gè)區(qū)來表示對于每個(gè)所述n比特的數(shù)據(jù)的類型,由此規(guī)定所述n比特協(xié)議;以及其中所述n比特協(xié)議取消n+1比特協(xié)議的奇偶校驗(yàn)比特,所述n+1比特協(xié)議包括被采用來奇偶校驗(yàn)在所述n+1比特協(xié)議中發(fā)送的數(shù)據(jù)的整體性的所述奇偶校驗(yàn)比特。
38.按照權(quán)利要求37的設(shè)備,其中所述數(shù)據(jù)比特區(qū)是修改的PPI協(xié)議,被修改來執(zhí)行所述奇偶校驗(yàn)比特。
39.按照權(quán)利要求37的設(shè)備,其中多個(gè)n數(shù)目的比特的塊按照所述n比特協(xié)議被發(fā)送,還包括檢驗(yàn)碼,被實(shí)施為至少一個(gè)n數(shù)目的比特的塊,以便驗(yàn)證至少一個(gè)n數(shù)目的比特的塊的整體性。
40.按照權(quán)利要求39的設(shè)備,其中所述檢驗(yàn)碼是CRC檢驗(yàn)碼。
41.按照權(quán)利要求37的設(shè)備,還包括連接頭,用于用一個(gè)接地的引腳傳送所述n比特協(xié)議,以便通知所述n比特協(xié)議的使用。
42.按照權(quán)利要求41的設(shè)備,還包括被連接到所述引腳的上拉電路,用于上拉所述引腳的電位,以便表示其它協(xié)議。
43.按照權(quán)利要求37的設(shè)備,其中所述n比特協(xié)議是10比特協(xié)議。
44.按照權(quán)利要求33的設(shè)備,其中所述n比特協(xié)議包括1個(gè)開始比特、8個(gè)數(shù)據(jù)比特和1個(gè)停止比特。
45.按照權(quán)利要求37的設(shè)備,其中所述n比特協(xié)議是全雙工的。
46.按照權(quán)利要求37的設(shè)備,還包括傳輸線,數(shù)據(jù)通過所述傳輸線按照所述n比特協(xié)議被發(fā)送。
47.用于產(chǎn)生用于調(diào)制解調(diào)器的n比特協(xié)議的方法,n是整數(shù),其中所述n比特協(xié)議取消n+1比特協(xié)議的奇偶校驗(yàn)比特,所述n+1比特協(xié)議包括被采用來奇偶校驗(yàn)在所述n+1比特協(xié)議中發(fā)送的數(shù)據(jù)的整體性的所述奇偶校驗(yàn)比特,所述n比特協(xié)議包括分配包括至少一個(gè)比特的n比特的數(shù)據(jù)比特域,其中所述數(shù)據(jù)比特域分配每個(gè)區(qū)來表示所述n比特中的每一個(gè)比特的數(shù)據(jù)的類型,由此規(guī)定所述n比特協(xié)議;以及取消所述n+1比特協(xié)議的所述奇偶校驗(yàn)比特,所述n+1比特協(xié)議包括被采用來奇偶校驗(yàn)在所述n+1比特協(xié)議中發(fā)送的數(shù)據(jù)的整體性的所述奇偶校驗(yàn)比特。
48.按照權(quán)利要求47的方法,還包括通過截?cái)嗨鰊+1比特協(xié)議的所述奇偶校驗(yàn)比特而把n+1比特協(xié)議變換成所述n比特協(xié)議的步驟。
49.按照權(quán)利要求47的方法,還包括通過等待在接收所述數(shù)據(jù)后經(jīng)歷的預(yù)定的時(shí)間量來檢驗(yàn)按照所述n比特協(xié)議發(fā)送的數(shù)據(jù)的整體性的步驟。
50.按照權(quán)利要求47的方法,其中多個(gè)具有n個(gè)比特的塊按照所述n比特協(xié)議被發(fā)送,并且還包括從至少一個(gè)具有n個(gè)比特的塊中產(chǎn)生檢驗(yàn)碼的步驟,該檢驗(yàn)碼的內(nèi)容表示至少一個(gè)具有n個(gè)比特的塊的正確性。
51.按照權(quán)利要求50的方法,其中所述產(chǎn)生步驟產(chǎn)生CRC檢驗(yàn)碼。
52.用于實(shí)時(shí)地診斷程序并且同時(shí)由可編程邏輯控制器來執(zhí)行所述程序的方法,所述方法包括以下步驟顯示由用戶指示的、要被診斷的一段所述程序;保存所述程序的原始編譯的代碼;在另一部分存儲(chǔ)器中編譯要被診斷的所述程序的所述段;當(dāng)要執(zhí)行被表示為要進(jìn)行診斷的指令時(shí),在執(zhí)行所述程序期間跳到所述存儲(chǔ)器的所述另一部分;以及獲取所述指令在它被執(zhí)行時(shí)的狀態(tài),其中實(shí)時(shí)地診斷所述程序并同時(shí)由所述可編程邏輯控制器執(zhí)行所述程序。
53.按照權(quán)利要求52的方法,還包括在執(zhí)行了所述被表示為要進(jìn)行診斷的指令后,返回到所述程序的所述原始編譯的代碼的步驟。
54.按照權(quán)利要求53的方法,還包括一旦所述狀態(tài)被獲取就恢復(fù)所述原先的編譯的代碼的步驟。
55.按照權(quán)利要求52的方法,還包括實(shí)施在所述另一部分存儲(chǔ)器中編譯的每個(gè)指令的步驟。
56.按照權(quán)利要求52的方法,還包括存儲(chǔ)把指令與相對最快的布爾表示式相聯(lián)系起來的表的步驟,其中所述指令利用所述最快的布爾表示式相對較快地進(jìn)行診斷。
57.按照權(quán)利要求52的方法,還包括提供一個(gè)指向所述原始編譯的代碼的指令的指針的表的步驟,其中所述指令在診斷期間相對較快地被放置在存儲(chǔ)器中。
58.按照權(quán)利要求52的方法,還包括限制每個(gè)編譯的指令的數(shù)據(jù)規(guī)模的步驟,其中所述要被診斷的指令的執(zhí)行是相對較快的,以及對于存儲(chǔ)所述指令所需要的存儲(chǔ)器是最小的。
59.用于實(shí)時(shí)地診斷程序并同時(shí)由可編程邏輯控制器執(zhí)行所述程序的設(shè)備,所述設(shè)備包括存儲(chǔ)器區(qū)域,用于保存所述程序的原始編譯的代碼;另一個(gè)存儲(chǔ)器區(qū)域,用于存儲(chǔ)要被診斷的所述程序的編譯的段;一個(gè)支路,當(dāng)要執(zhí)行被表示為要進(jìn)行診斷的指令時(shí),它在執(zhí)行所述程序期間使得對所述指令的執(zhí)行從所述原始編譯的代碼跳到所述存儲(chǔ)器的所述另一部分;以及一個(gè)電路,用于獲取所述指令在它被執(zhí)行時(shí)的狀態(tài),其中實(shí)時(shí)地診斷所述程序并同時(shí)由所述可編程邏輯控制器執(zhí)行所述程序。
60.按照權(quán)利要求59的設(shè)備,還包括顯示器,用于顯示要被診斷的所述指令。
61.按照權(quán)利要求60的設(shè)備,還包括把指令與相對最快的布爾表示式相聯(lián)系的表,其中所述指令用所述最快的布爾表示式相對較快地被診斷。
62.按照權(quán)利要求59的設(shè)備,還包括一個(gè)指向所述原先的編譯的代碼的指令的指針的表,其中所述指令在診斷期間相對較快地被放置在存儲(chǔ)器中。
63.用于高速分離輸出的設(shè)備,所述設(shè)備包括第一光晶體管,它在接通時(shí)把輸出晶體管的柵極連接到電源電壓,以使得輸出晶體管被關(guān)斷;第二光晶體管,它在接通時(shí)把所述輸出晶體管的所述柵極連接到所述電源、把所述輸出接通、以及驅(qū)動(dòng)外部負(fù)載;邏輯部件,用于驅(qū)動(dòng)作為互補(bǔ)對的所述第一和第二光晶體管,以使得在輸出關(guān)斷狀態(tài)時(shí),所述第一光晶體管導(dǎo)通和所述第二光晶體管不導(dǎo)通,以及在輸出接通狀態(tài)時(shí),所述第二光晶體管導(dǎo)通和所述第一光晶體管不導(dǎo)通。
64.按照權(quán)利要求63的設(shè)備,還包括相對較高的、上拉的阻抗,它在外部負(fù)載電源電壓被提供但外部功率未被提供的情形下關(guān)斷輸出。
65.按照權(quán)利要求64的設(shè)備,還包括負(fù)的電壓穩(wěn)壓器,它提供一個(gè)被設(shè)置成比外部電源電壓更負(fù)的電壓的柵極驅(qū)動(dòng)電壓的電源。
66.按照權(quán)利要求65的設(shè)備,其中在輸出斷開和輸出接通之間過渡時(shí),所述第二光晶體管相當(dāng)快速地接通,從而提供使所述柵極的電容放電的路徑,以及提供用于快速關(guān)斷所述第一光晶體管所需要的低阻抗路徑;以及在接通到斷開的過渡時(shí),所述第一光晶體管相當(dāng)快速地上拉FET柵極,以及提供用于快速關(guān)斷所述第二光晶體管所需要的低阻抗路徑。
67.按照權(quán)利要求63的設(shè)備,其中所述邏輯部件利用數(shù)字邏輯門以便通過多個(gè)并聯(lián)RC網(wǎng)絡(luò)驅(qū)動(dòng)每個(gè)光耦合器電路的光二極管。
68.按照權(quán)利要求67的設(shè)備,還包括在每個(gè)網(wǎng)絡(luò)中的一個(gè)電阻,當(dāng)邏輯信號(hào)處在適當(dāng)?shù)臓顟B(tài)時(shí),它提供流過光二極管的有限的DC電流。
69.按照權(quán)利要求68的設(shè)備,還包括在每個(gè)RC網(wǎng)絡(luò)中的一個(gè)電容,當(dāng)數(shù)字邏輯信號(hào)切換到所述適當(dāng)?shù)臓顟B(tài)把該二極管接通時(shí),它允許脈沖電流流過相關(guān)的光二極管,由此提供各個(gè)光晶體管的初始的相當(dāng)強(qiáng)的接通,接著是穩(wěn)態(tài)最小的光驅(qū)動(dòng)。
70.按照權(quán)利要求63的設(shè)備,還包括在一個(gè)電阻/電容網(wǎng)絡(luò),它提供負(fù)電壓穩(wěn)壓器的最小負(fù)載和去耦。
71.按照權(quán)利要求63的設(shè)備,還包括跨接在每個(gè)光晶體管的集電極/發(fā)射極上的電容,它們?yōu)橥ㄟ^現(xiàn)場連線和柵極耦合到電路的噪聲提供通路,以便旁路第一和第二光二極管,而不造成那些器件的不需要的轉(zhuǎn)換。
72.按照權(quán)利要求63的設(shè)備,還包括一個(gè)與反向阻塞二極管相耦合的齊納二極管,它提供感性負(fù)載箝位,以使得當(dāng)柵極試圖關(guān)斷感性的外部負(fù)載時(shí),由于電感試圖保持電流,感性反作用將力圖驅(qū)動(dòng)門漏極為負(fù)。
73.按照權(quán)利要求71的設(shè)備,其中所述齊納二極管允許這個(gè)負(fù)的電壓被發(fā)送到柵電路,其中所述柵極被保持在線性區(qū)域中接通狀態(tài),允許電流被保持在電感中,而不在柵的漏極處感應(yīng)出會(huì)引起損壞的電壓,以便耗散在負(fù)載存儲(chǔ)的電感能量中的、與任何電阻組合的柵的線性工作區(qū)電壓降,以及關(guān)斷該電路。
74.按照權(quán)利要求63的設(shè)備,還包括阻塞二極管,它保護(hù)電路不致受到由外部負(fù)載電壓源的錯(cuò)誤的反向極性連接造成的損壞。
75.用于高速分立輸出的方法,所述方法包括以下步驟驅(qū)動(dòng)作為互補(bǔ)對的第一和第二光晶體管,以使得在輸出關(guān)斷狀態(tài)時(shí),所述第一光晶體管導(dǎo)通和所述第二光晶體管不導(dǎo)通,以及在輸出接通狀態(tài)時(shí),所述第二光晶體管導(dǎo)通和所述第一光晶體管不導(dǎo)通。在輸出斷開和輸出接通之間過渡時(shí),相當(dāng)快速地接通所述第二光晶體管,由此提供使耦合到所述互補(bǔ)對的柵極的柵極電容放電的路徑,以及提供對于快速關(guān)斷所述第一光晶體管所需要的低阻抗路徑;以及在接通到斷開的過渡時(shí),使得所述第一光晶體管相當(dāng)快速地上拉所述柵極,以及提供用于快速關(guān)斷所述第二光晶體管所需要的低阻抗路徑。
76.按照權(quán)利要求75的方法,還包括通過并聯(lián)RC網(wǎng)絡(luò)驅(qū)動(dòng)每個(gè)光耦合器的光二極管的步驟,以便當(dāng)邏輯信號(hào)處在適當(dāng)?shù)臓顟B(tài)時(shí),提供流過各個(gè)光晶體管的光二極管的有限的DC電流。
77.按照權(quán)利要求75的方法,還包括當(dāng)數(shù)字邏輯信號(hào)轉(zhuǎn)換到所述適當(dāng)?shù)臓顟B(tài)以便把該二極管接通時(shí)發(fā)送流過相關(guān)的光二極管的脈沖電流的步驟。
78.按照權(quán)利要求75的方法,還包括初始接通各個(gè)光晶體管、接著進(jìn)行穩(wěn)態(tài)最小的光驅(qū)動(dòng)的步驟。
79.按照權(quán)利要求75的方法,使相對的光晶體管的柵極電荷和基極電荷被驅(qū)動(dòng)成初始相對較大的導(dǎo)通,接著是使其處于只足以保持柵極為需要的接通或關(guān)斷電壓電平的穩(wěn)態(tài)導(dǎo)通。
80.在具有一組預(yù)定的功能調(diào)用的可編程邏輯控制器中,用于支持定制的功能調(diào)用的設(shè)備,所述設(shè)備包括定制的功能調(diào)用,用于控制所述可編程邏輯控制器;以及其中,所述定制的功能調(diào)用被下載到所述可編程邏輯控制器,以及被存儲(chǔ)作為所述預(yù)定的功能調(diào)用組的一部分。
81.按照權(quán)利要求80的設(shè)備,還包括用于報(bào)告所述可編程邏輯控制器的功能調(diào)用的目錄。
82.在具有一組預(yù)定的功能調(diào)用的可編程邏輯控制器中,用于支持定制的功能調(diào)用的方法,所述方法包括以下步驟創(chuàng)建定制的功能調(diào)用,以便控制所述可編程邏輯控制器;下載所述定制的功能調(diào)用給所述可編程邏輯控制器;以及存儲(chǔ)所述定制的功能調(diào)用作為所述預(yù)定的功能調(diào)用組的一部分。
83.按照權(quán)利要求82的方法,還包括報(bào)告所述可編程邏輯控制器的功能調(diào)用的目錄的步驟。
全文摘要
帶有增強(qiáng)的和擴(kuò)展的能力的可編程邏輯控制器。數(shù)字輸入濾波器通過模擬由恒定電流源驅(qū)動(dòng)的電容的作用,以相當(dāng)少的邏輯元件來實(shí)施濾波器,該恒流源的輸出電壓被具有相當(dāng)大的磁滯的比較器所檢測。盡管在掃描周期之間出現(xiàn)更新,脈沖捕獲電路可以捕獲輸入脈沖。脈沖輸出控制器包括硬件流水線機(jī)制,從而允許逐個(gè)波形的平滑的、受硬件控制的過渡。自由端口鏈路允許用戶人工地或通過用戶程序的運(yùn)行來控制端口。為了提供使用PPI協(xié)議的通信的更高的性能,PLC包括內(nèi)建的協(xié)議。n比特調(diào)制解調(diào)器協(xié)議確保數(shù)據(jù)的完整性,而不用使用奇偶校驗(yàn)型數(shù)據(jù)完整性系統(tǒng)。隱匿指令通過加密敏感的代碼和在編譯期間解密該代碼和此后重新加密代碼,從而保護(hù)專利的軟件。系統(tǒng)功能調(diào)用允許用戶創(chuàng)建和/或下載新的PLC功能以及將它們作為PLC操作系統(tǒng)功能實(shí)施。STL狀態(tài)功能在運(yùn)行期間診斷程序,而同時(shí)程序能夠運(yùn)行。微PLC安排提供了緊湊的尺寸和高效率。
文檔編號(hào)G06F11/36GK1353828SQ00808291
公開日2002年6月12日 申請日期2000年3月30日 優(yōu)先權(quán)日1999年3月30日
發(fā)明者M·S·博格斯, T·L·福爾頓, S·豪斯曼, G·麥納布, A·麥努特, S·W·斯蒂梅爾 申請人:西門子能量及自動(dòng)化公司