《電氣控制與PLC原理及應(yīng)用》課件第6章_第1頁
《電氣控制與PLC原理及應(yīng)用》課件第6章_第2頁
《電氣控制與PLC原理及應(yīng)用》課件第6章_第3頁
《電氣控制與PLC原理及應(yīng)用》課件第6章_第4頁
《電氣控制與PLC原理及應(yīng)用》課件第6章_第5頁
已閱讀5頁,還剩252頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

6.1

PLC編程語言

6.2

PLC編程元件

6.3西門子S7-200系列PLC指令系統(tǒng)及編程方法

6.4三菱FX系列PLC指令系統(tǒng)及編程方法

6.5常用基本程序設(shè)計(jì)范例

思考與習(xí)題

6.1PLC編程語言

PLC的軟件包括系統(tǒng)軟件和應(yīng)用軟件。系統(tǒng)軟件包括系統(tǒng)診斷程序、輸入/輸出處理程序、用戶指令解釋程序、監(jiān)控程序、供系統(tǒng)調(diào)用的專用標(biāo)準(zhǔn)程序塊等。應(yīng)用軟件也稱用戶軟件,是用戶為實(shí)現(xiàn)某一控制目標(biāo),采用PLC廠家提供的程序設(shè)計(jì)語言編制的實(shí)用程序。IEC國際電工委員會(huì)于1994年5月公布了可編程序控制器標(biāo)準(zhǔn)(IEC1131),其中的第三部分(IEC1131-3)是PLC的編程語言標(biāo)準(zhǔn)。

IEC1131-3詳細(xì)地說明了句法、語義和下述5種PLC編程語言的表達(dá)方式:

(1)梯形圖(LadderDiagram);

(2)指令表(InstructionList);

(3)功能塊圖(FunctionBlockDiagram);

(4)順序功能圖(SequentialFunctionChart);

(5)結(jié)構(gòu)文本(StructuredText)。6.1.1梯形圖在PLC系統(tǒng)應(yīng)用中,梯形圖是一種使用最多的PLC圖形編程語言。梯形圖沿用了傳統(tǒng)電器控制系統(tǒng)控制圖中繼電器的觸點(diǎn)、線圈、串并聯(lián)等術(shù)語和圖形符號(hào),并增加了繼電器接觸器控制系統(tǒng)中沒有的指令符號(hào)。其功能和控制指令已遠(yuǎn)遠(yuǎn)超過了電氣控制范疇。它不僅可實(shí)現(xiàn)邏輯運(yùn)算,還具有算術(shù)運(yùn)算、數(shù)據(jù)處理、聯(lián)網(wǎng)通信等功能。與傳統(tǒng)電器梯形圖不同的是,PLC的梯形圖中編程元件使用的內(nèi)部繼電器、定時(shí)/計(jì)數(shù)器等都是由軟件實(shí)現(xiàn)的。梯形圖形象、直觀,適用于順序邏輯控制、離散量控制、定時(shí)/計(jì)數(shù)控制等操作。圖6-1為梯形圖程序的表示形式。圖6-1梯形圖程序

PLC梯形圖編程的格式和特點(diǎn)可歸納如下:

(1)梯形圖自上而下按行繪制,最左邊的豎線稱為起始母線,也稱左母線,每一行從左至右按一定的控制要求和規(guī)則連接各個(gè)觸點(diǎn),最后以繼電器線圈結(jié)束,稱為一邏輯行或一梯級(jí)。每個(gè)梯形圖由多個(gè)梯級(jí)組成。當(dāng)PLC處于運(yùn)行狀態(tài)時(shí),PLC對梯形圖是按掃描方式順序執(zhí)行程序。

(2)梯形圖中的繼電器觸點(diǎn)有常開和常閉觸點(diǎn),它可以是PLC輸入點(diǎn)連接的外部開關(guān)(如啟動(dòng)按鈕、行程開關(guān)等)觸點(diǎn),也可以是PLC內(nèi)部繼電器觸點(diǎn)或內(nèi)部寄存器、計(jì)數(shù)器、定時(shí)器以及各種算術(shù)運(yùn)算結(jié)果等的狀態(tài)。梯形圖中的繼電器觸點(diǎn)可在編制用戶程序時(shí)無限引用,因?yàn)樗怯?jì)算機(jī)中對存儲(chǔ)器位元件的訪問不受限制的體現(xiàn)。

(3)由于輸入繼電器供PLC接受外部輸入信號(hào),因此梯形圖中只出現(xiàn)輸入繼電器的觸點(diǎn),而不出現(xiàn)輸入繼電器的線圈。輸出繼電器供PLC作輸出控制用。

(4)梯形圖中的繼電器線圈包括輸出繼電器、輔助繼電器、定時(shí)器等,其邏輯動(dòng)作只有線圈接通之后,才能使對應(yīng)的常開或常閉觸點(diǎn)動(dòng)作。梯形中的觸點(diǎn)可以任意串聯(lián)或并聯(lián),但繼電器線圈只能并聯(lián)而不能串聯(lián)。由于程序執(zhí)行過程是由上而下進(jìn)行的,前面的邏輯解算結(jié)果可以在當(dāng)前掃描周期內(nèi)被后面的程序解算時(shí)使用,因此原則上不允許對線圈執(zhí)行多次輸出操作,而對輸出繼電器更應(yīng)避免在一個(gè)掃描周期內(nèi)的程序執(zhí)行期間出現(xiàn)兩次以上的輸出操作。

(5)在編程時(shí),首先應(yīng)對所使用的編程元件進(jìn)行編號(hào)。PLC是按編號(hào)來區(qū)別編程元件的,編號(hào)使用一定要明確。同一個(gè)繼電器的線圈(輸出點(diǎn))和它的觸點(diǎn)要使用同一編號(hào)。每個(gè)元件的觸點(diǎn)使用沒有數(shù)量限制。6.1.2指令表語言指令表語言編程也可稱做語句表語言編程,是一種符號(hào)編程。它是用表示PLC各種功能的縮寫符號(hào)和相應(yīng)的器件編號(hào)組成的程序表達(dá)方式。每個(gè)生產(chǎn)廠家使用的指令表是各不相同的,因此同一個(gè)梯形圖寫成對應(yīng)的程序(指令表)也不盡相同。下面是完成相同功能的三菱公司FX系列和西門子公司S7-200系列PLC的指令表程序。三菱:LD X0西門子: A X0

OUT Y0

= Y0

LDI X1 AN X1

OUT Y1 = Y1

LDI X2 AN X2

OR X3 O X3

AND X4 A X4

OUT Y2 = Y26.1.3功能塊圖語言功能塊圖語言是基于數(shù)字電子電路設(shè)計(jì)演變的一種編程語言。這種編程語言用類似于與門、或門的方框圖來表示邏輯運(yùn)算關(guān)系。在這種語言形式中,功能方框圖的左側(cè)為操作變量,右側(cè)為操作結(jié)果輸出,信號(hào)也是由左到右流向的,方框圖內(nèi)的符號(hào)表達(dá)了該框內(nèi)的運(yùn)算功能??刂七壿嫵S谩芭c”、“或”、“非”三種邏輯功能來表達(dá),圖6-2為功能圖語言程序及相應(yīng)的梯形圖。圖6-2功能塊圖語言6.1.4順序功能圖順序功能圖是一種描述控制系統(tǒng)的控制過程、功能和特性的圖形,由步、有向連線、轉(zhuǎn)換、轉(zhuǎn)換條件和動(dòng)作組成,如圖6-3所示,適合編制順序控制程序。編程人員需要對被控過程的工藝流程非常熟悉。在順序功能圖中可以用別的語言嵌套編程。步、轉(zhuǎn)換和動(dòng)作是順序功能圖中的三種主要元件。順序功能圖可以用來描述開關(guān)量控制系統(tǒng)的功能,根據(jù)它可以很容易地設(shè)計(jì)出順序控制梯形圖程序。圖6-3順序功能圖及相應(yīng)的梯形圖6.1.5高級(jí)語言結(jié)構(gòu)文本(ST)是為IEC611331-3標(biāo)準(zhǔn)創(chuàng)建的一種專用的高級(jí)編程語言。高級(jí)編程語言適合于熟悉計(jì)算機(jī)高級(jí)語言的編程人員使用,當(dāng)遇到復(fù)雜運(yùn)算和處理大量數(shù)據(jù)時(shí),使用它們可以大大節(jié)省編程時(shí)間,而且使源程序清晰易讀,降低出錯(cuò)率。大多數(shù)制造廠商采用的結(jié)構(gòu)文本語言與BASIC語言、Pascal語言或C語言等高級(jí)語言相類似,但為了應(yīng)用方便,在語句的表達(dá)方法及語句的種類等方面都進(jìn)行了簡化。它是一個(gè)專門為工業(yè)控制應(yīng)用開發(fā)的編程語言,具有很強(qiáng)的編程能力。本章結(jié)合日本三菱公司FX系列的PLC和德國西門子公司S7-300PLC,介紹使用梯形圖編程語言和指令表編程語言的程序設(shè)計(jì)方法。6.2PLC編程元件

PLC最突出的優(yōu)點(diǎn)之一就是采用“軟”繼電器(編程元件)代替“硬”繼電器(實(shí)際元件),用軟件編程邏輯代替?zhèn)鹘y(tǒng)的硬布線邏輯實(shí)現(xiàn)控制作用。

PLC的軟件中所用的編程元件沿用了繼電器這一名稱,如輸入繼電器、輸出繼電器、內(nèi)部輔助繼電器等,但它們不是物理繼電器(即硬件繼電器),而是軟件中使用的編程元件,每個(gè)“軟”繼電器和PLC存儲(chǔ)器中元件映像寄存器的一個(gè)存儲(chǔ)單元相對應(yīng),因此稱為“軟繼電器”。當(dāng)某一軟繼電器線圈通電時(shí),元件映像寄存器中相應(yīng)存儲(chǔ)單元的狀態(tài)置“1”,其常開觸點(diǎn)閉合,常閉觸點(diǎn)斷開;當(dāng)該繼電器線圈失電時(shí),相應(yīng)位的狀態(tài)置“0”,其常開觸點(diǎn)斷開,常閉觸點(diǎn)閉合。相對于繼電器控制系統(tǒng)中的物理繼電器,PLC軟繼電器有下列特點(diǎn):

(1)對于用繼電器控制的系統(tǒng),影響系統(tǒng)可靠性的主要因素是中間繼電器的記憶網(wǎng)絡(luò)。大量的觸點(diǎn)和接線很容易出故障。由于PLC采用軟元件,使系統(tǒng)性能大大提高。

(2)由于采用存儲(chǔ)單元表示軟繼電器,因此任一軟繼電器都有一個(gè)線圈和無數(shù)個(gè)常開觸點(diǎn)或常閉觸點(diǎn)來供用戶編程時(shí)使用,即任一軟繼電器的觸點(diǎn)在程序中可以無數(shù)次使用。

(3)?PLC每個(gè)編程元件都有一個(gè)編號(hào)(或稱地址),不同廠家對編程元件編號(hào)的形式不同。6.2.1輸入/輸出器件輸入繼電器是PLC接收來自外部開關(guān)信號(hào)的窗口。每一個(gè)輸入繼電器線圈都與相應(yīng)的PLC輸入端相連,并有若干常開觸點(diǎn)和常閉觸點(diǎn)供編程時(shí)使用。輸入繼電器線圈只能由外部信號(hào)來驅(qū)動(dòng),不能在程序內(nèi)部用指令來驅(qū)動(dòng)。在每次掃描周期開始時(shí),PLC采樣輸入點(diǎn)的狀態(tài)、采樣結(jié)果以“1”或“0”的方式寫入輸入映像寄存器,作為程序處理時(shí)輸入點(diǎn)狀態(tài)“通”或“斷”的根據(jù)。輸出繼電器是PLC用來傳送信號(hào)到執(zhí)行機(jī)構(gòu)的元件。每一個(gè)輸出繼電器有一個(gè)外部輸出的常開觸點(diǎn)(物理觸點(diǎn)),并與相應(yīng)的PLC輸出端相連,有若干常開觸點(diǎn)和常閉觸點(diǎn)供編程時(shí)使用。輸出繼電器的觸點(diǎn)的通斷狀態(tài)由程序執(zhí)行的結(jié)果決定。在每次掃描周期的最后,CPU才以批處理方式將輸出映像寄存器的內(nèi)容傳送到輸出點(diǎn)。6.2.2內(nèi)部器件

PLC的內(nèi)部器件(也稱內(nèi)部軟元件)一般包括輔助繼電器、定時(shí)器、計(jì)數(shù)器、數(shù)據(jù)存儲(chǔ)器(寄存器)、特殊繼電器、特殊數(shù)據(jù)存儲(chǔ)器等。與輸出器件一樣,都有一個(gè)線圈和無數(shù)個(gè)常開及常閉觸點(diǎn)供用戶編程使用。但內(nèi)部器件不能由任何外部設(shè)備來驅(qū)動(dòng),也不能直接驅(qū)動(dòng)外部負(fù)載,它只能通過運(yùn)行程序來驅(qū)動(dòng)。

1.輔助繼電器

PLC中備有若干輔助繼電器,在邏輯運(yùn)算中起到中間狀態(tài)的暫存作用,所以輔助繼電器有時(shí)也叫做中間繼電器。輔助繼電器的線圈通斷狀態(tài)由PLC中間運(yùn)算結(jié)果決定。輔助繼電器帶有若干常開觸點(diǎn)和常閉觸點(diǎn)供編程時(shí)使用,但這些觸點(diǎn)不能直接驅(qū)動(dòng)外部負(fù)載,而必須通過輸出繼電器來驅(qū)動(dòng)。大多數(shù)PLC的輔助繼電器分為通用型和保持型,保持型在停電時(shí)仍保持動(dòng)作。

2.定時(shí)器

PLC定時(shí)器類似于繼電器電路用的時(shí)間繼電器,用于延時(shí)控制。每個(gè)定時(shí)器有一個(gè)設(shè)定值寄存器(字)、一個(gè)當(dāng)前值寄存器(字)、一個(gè)狀態(tài)位以及無數(shù)個(gè)常開觸點(diǎn)和常閉觸點(diǎn)。設(shè)定值寄存器用作存儲(chǔ)定時(shí)時(shí)間的設(shè)定值,當(dāng)前值寄存器用作存儲(chǔ)當(dāng)前時(shí)間,狀態(tài)位反映定時(shí)器的觸點(diǎn)狀態(tài),無數(shù)個(gè)常開觸點(diǎn)、常閉觸點(diǎn)供程序中定時(shí)和限時(shí)選用。定時(shí)器是根據(jù)PLC內(nèi)的時(shí)鐘脈沖累積計(jì)時(shí)的,時(shí)鐘脈沖周期有1ms、10ms、100ms,即定時(shí)器的單位分為0.001s、0.01s、0.1s,當(dāng)所計(jì)時(shí)間到達(dá)設(shè)定值時(shí),其輸出觸點(diǎn)動(dòng)作,常開觸點(diǎn)接通、常閉觸點(diǎn)斷開。定時(shí)器分為通用和積算兩種類型。

3.計(jì)數(shù)器計(jì)數(shù)器用來計(jì)數(shù)輸入端子或內(nèi)部元件送來的脈沖數(shù)。每個(gè)計(jì)數(shù)器有一個(gè)當(dāng)前值寄存器、一個(gè)設(shè)定值寄存器和一個(gè)狀態(tài)位,以及無數(shù)個(gè)常開觸點(diǎn)和常閉觸點(diǎn)。通過程序設(shè)定計(jì)數(shù)值,當(dāng)實(shí)際計(jì)數(shù)值與所設(shè)定的計(jì)數(shù)值相等時(shí),其常開觸點(diǎn)接通、常閉觸點(diǎn)斷開。計(jì)數(shù)器有減l計(jì)數(shù)和加1計(jì)數(shù),且有內(nèi)部信號(hào)計(jì)數(shù)器和外部高速計(jì)數(shù)器。

4.狀態(tài)元件狀態(tài)元件主要用在步進(jìn)順控程序的編程中。它與步進(jìn)順控指令STL組合使用。不采用步進(jìn)指令時(shí),也可代替普通型輔助繼電器和保持型輔助繼電器。

5.?dāng)?shù)據(jù)寄存器當(dāng)PLC用于模擬量控制、位置量控制、通信、數(shù)據(jù)處理以及特殊用途時(shí),需要許多數(shù)據(jù)寄存器存儲(chǔ)參數(shù)及工作數(shù)據(jù)。這類寄存器數(shù)量隨機(jī)型的不同而不同,較簡單的只能進(jìn)行邏輯控制的機(jī)器沒有此類寄存器,而高檔機(jī)中可達(dá)數(shù)千個(gè)。數(shù)據(jù)寄存器可用16bit和32bit(最高位為符號(hào)位),或用兩個(gè)16bit數(shù)據(jù)寄存器合并起來存放32bit數(shù)據(jù)。

6.特殊輔助繼電器特殊輔助繼電器有時(shí)也稱為專用輔助繼電器,為用戶提供一些特殊的控制功能及系統(tǒng)信息。一般PLC都有以下功能的特殊輔助繼電器。運(yùn)行監(jiān)視繼電器:自動(dòng)地隨PLC的運(yùn)行、停止而呈通、斷狀態(tài),當(dāng)PLC的程序在運(yùn)行時(shí),該繼電器一直接通,利用此接點(diǎn)經(jīng)輸出繼電器在外部顯示程序是否在運(yùn)行。初始化脈沖繼電器:在程序運(yùn)行開始后,接通一個(gè)掃描周期。初始化脈沖繼電器的常開觸點(diǎn)可供用戶程序初始化使用。各種周期的脈沖發(fā)生器:如產(chǎn)生周期為0.1s的時(shí)鐘脈沖。電池電壓下降繼電器:在向PLC供電的情況下,如果電池電壓下降,則接通,可以利用它的觸點(diǎn)把信號(hào)傳輸給外部指示單元來指示電池電壓下降的狀況。禁止全部輸出繼電器:當(dāng)該繼電器接通時(shí),全部輸出繼電器的輸出自動(dòng)斷開,但此時(shí)其他繼電器、定時(shí)器、計(jì)數(shù)器仍工作。若發(fā)生異常狀態(tài),可用其緊急停機(jī),切斷全部輸出。根據(jù)不同PLC,還有各種其他功能的特殊輔助繼電器。以上介紹的內(nèi)部器件并不是PLC內(nèi)部器件的全部。各廠家、各型號(hào)PLC的內(nèi)部器件也不完全相同。編程元件的編號(hào)和程序中的使用方法,將在西門子和三菱PLC的指令系統(tǒng)及編程方法中作具體介紹。

6.3西門子S7-200系列PLC指令系統(tǒng)及編程方法6.3.1西門子S7-200系列PLC編程元件在S7-200的編程語言中,操作數(shù)的數(shù)據(jù)類型可以是位元件、字節(jié)型、字型、雙字型、整型、雙整型和實(shí)數(shù)型,其地址包括區(qū)域標(biāo)志符、數(shù)據(jù)大小及起始地址,具體如表6-1所示。

1.編程元件的表示方法

PLC中的輸入繼電器(I)、輸出繼電器(Q)、輔助繼電器(M)、變量寄存器(V)、特殊存儲(chǔ)器(SM)、局部寄存器(L)等編程元件的地址根據(jù)不同的數(shù)據(jù)類型包含不同位數(shù),但核心都是以位(bit)為基本單元。定時(shí)器(T)、計(jì)數(shù)器(C)的地址由標(biāo)識(shí)符和編號(hào)組成。

(1)位元件的表示形式包括元件標(biāo)識(shí)符、字節(jié)地址及位號(hào)。存儲(chǔ)器標(biāo)識(shí)符指明編程元件類型,字節(jié)地址和位號(hào)表明具體的元件號(hào),用“.”隔開,如圖6-4所示為輸入繼電器的表示方法。圖6-4S7-200位元件的表示方法

(2)定時(shí)器/計(jì)數(shù)器的表示形式由元件標(biāo)識(shí)符、定時(shí)器/計(jì)數(shù)器號(hào)組成,如圖6-5所示。圖6-5定時(shí)器/計(jì)數(shù)器的表示方法

(3)字節(jié)型、字型或雙字型元件的表示形式由元件標(biāo)識(shí)符、數(shù)據(jù)大小及該字節(jié)、字或雙字的起始字節(jié)地址組成,如圖6-6是操作數(shù)分別為字節(jié)、字和雙字的變量寄存器。圖6-6變量寄存器的表示方法

2.編程元件的尋址方式在S7-200中根據(jù)不同的編程元件,分別采取不同的尋址方式,主要有直接尋址和間接尋址兩大類。

(1)直接尋址:直接使用上面介紹的編程元件地址來存取數(shù)據(jù),根據(jù)編程元件不同又可細(xì)分為以下形式?!褫斎肜^電器尋址:每個(gè)掃描周期CPU對輸入點(diǎn)進(jìn)行采樣并將采樣值存放于輸入映像寄存器中,可以按位、字節(jié)、字或雙字讀取?!褫敵隼^電器尋址:每個(gè)掃描周期CPU將輸出映像寄存器中的狀態(tài)復(fù)制到物理輸出點(diǎn)上,可以按位、字節(jié)、字或雙字存取?!褡兞考拇嫫鲗ぶ罚撼绦驁?zhí)行過程中控制邏輯運(yùn)算的中間結(jié)果或數(shù)據(jù),可以按位、字節(jié)、字或雙字存取。●輔助繼電器尋址:作為控制繼電器存儲(chǔ)中間操作狀態(tài)或控制信息,可以按位、字節(jié)、字或雙字存取?!耥樞蚩刂评^電器尋址:在順序控制功能圖編程方式下與順控指令配合使用的編程元件,可以按位、字節(jié)、字或雙字存取。●特殊存儲(chǔ)器尋址:用于CPU與用戶程序之間的信息傳遞,如上電復(fù)位脈沖、時(shí)鐘脈沖、始終為ON位(PLC運(yùn)行時(shí)該位一直接通)等,可以按位、字節(jié)、字或雙字存取?!窬植考拇嫫鲗ぶ罚涸摯鎯?chǔ)器是和特定的程序相關(guān)聯(lián),S7-200給主程序分配64個(gè)字節(jié)局部存儲(chǔ)器,給每一級(jí)子程序嵌套分配64個(gè)字節(jié)局部存儲(chǔ)器,給中斷程序分配64個(gè)字節(jié)局部存儲(chǔ)器,彼此之間不能互相尋址訪問,可以按位、字節(jié)、字或雙字存取?!穸〞r(shí)器尋址:定時(shí)器是累計(jì)時(shí)間增量的元件,其定時(shí)精度分為1ms、10ms、100ms三種,與其相關(guān)聯(lián)的變量有當(dāng)前值和定時(shí)器位(定時(shí)器常開觸點(diǎn))。當(dāng)前值為16位符號(hào)整型,存儲(chǔ)定時(shí)器所累計(jì)的時(shí)間;定時(shí)器位在定時(shí)器當(dāng)前值大于預(yù)設(shè)值時(shí)被置“1”,預(yù)設(shè)值屬于定時(shí)器指令的一部分,由程序設(shè)定。●計(jì)數(shù)器尋址:計(jì)數(shù)器是累計(jì)其輸入端脈沖電平上升沿次數(shù)的編程元件,有三種類型:增計(jì)數(shù)、減計(jì)數(shù)、可增可減計(jì)數(shù),與其相關(guān)聯(lián)的變量有當(dāng)前值和計(jì)數(shù)器位(計(jì)數(shù)器常開觸點(diǎn))。當(dāng)前值為16位符號(hào)整型,存儲(chǔ)計(jì)數(shù)器所累計(jì)的脈沖數(shù);計(jì)數(shù)器位在計(jì)數(shù)器當(dāng)前值大于或等于預(yù)設(shè)值時(shí)被置“1”,預(yù)設(shè)值屬于計(jì)數(shù)器指令的一部分,由程序設(shè)定?!衲M量輸入尋址:PLC將輸入的模擬量轉(zhuǎn)換為1個(gè)字長(16位)的數(shù)字量并保存,為只讀數(shù)據(jù)。規(guī)定模擬量輸入存放從偶數(shù)位字節(jié)(如0、2或4等)開始,存放形式如圖6-7所示。圖6-7模擬量輸入、輸出尋址●模擬量輸出尋址:將1個(gè)字長的數(shù)值按比例轉(zhuǎn)換為相應(yīng)的模擬量并保存,為輸出數(shù)據(jù),用戶程序無法讀取該值。規(guī)定模擬量輸出存放從偶數(shù)位字節(jié)(如0、2或4等)開始,存放形式如圖6-7所示?!窭奂悠鲗ぶ罚豪奂悠魇强梢赃M(jìn)行讀/寫操作的編程元件,用來存儲(chǔ)計(jì)算的中間值,或用于在不同程序之間傳遞參數(shù),CPU提供了4個(gè)32位累加器AC0、AC1、AC2、AC3,可以按字節(jié)、字或雙字存取。按字節(jié)或字存取時(shí)累加器只使用存儲(chǔ)器的低8位或低16位,按雙字存取時(shí)要使用全部32位,長度由所使用指令決定?!窀咚儆?jì)數(shù)器尋址:用來累計(jì)比CPU掃描速率快的事件。存取高速計(jì)數(shù)器的計(jì)數(shù)值必須指明高速計(jì)數(shù)器的地址,并采用HC類型和計(jì)數(shù)器號(hào)(如HCS0),按雙字來尋址。預(yù)設(shè)值和當(dāng)前值分別保存在指定的特殊存儲(chǔ)器(SM)中,其中當(dāng)前值是只讀存儲(chǔ)器。

(2)間接尋址:利用指針來存取數(shù)據(jù),允許對I、Q、V、M、S、T(當(dāng)前值)和C(當(dāng)前值)進(jìn)行間接尋址,不能對位元件和模擬量進(jìn)行間接尋址?!窠⒅羔槪褐羔槥殡p字型,只能使用變量存儲(chǔ)器(V)、局部存儲(chǔ)器(L)或累加器(AC1、AC2、AC3)作為指針。編程時(shí),利用雙字傳送指令(MOVD)將存儲(chǔ)器某個(gè)位置的地址賦值給指針存儲(chǔ)器,操作數(shù)必須使用“&”符號(hào)表示,如圖6-8所示。圖6-8間接尋址方法●使用指針尋址:在操作數(shù)前面加“*”號(hào)表示該操作數(shù)為一個(gè)指針,如圖6-8中將存于V200和V201中的數(shù)值賦值給累加器AC0。●指針修改:改變指針的值可以使用雙字指令(如簡單的數(shù)學(xué)運(yùn)算指令或自增指令)實(shí)現(xiàn),但需注意應(yīng)根據(jù)存取數(shù)據(jù)類型決定調(diào)整長度。當(dāng)存取字節(jié)時(shí),指針值加1;當(dāng)存取一個(gè)字、定時(shí)器或計(jì)數(shù)器的當(dāng)前值時(shí),指針值加2;當(dāng)存取雙字時(shí),指針值加4。

(3)編程元件及操作數(shù)的尋址范圍。●編程元件的尋址范圍見表6-2?!?CPU的指令操作數(shù)的尋址范圍見表6-3。6.3.2西門子S7-200系列PLC基本邏輯指令及其應(yīng)用

S7-200PLC的指令系統(tǒng)非常豐富,功能很強(qiáng),共包括十九大類:位邏輯指令、時(shí)鐘指令、通信指令、比較指令、轉(zhuǎn)換指令、計(jì)數(shù)器指令、高速計(jì)數(shù)器指令、脈沖輸出指令、數(shù)學(xué)運(yùn)算指令、PID回路控制指令、中斷指令、邏輯操作指令、傳送指令、程序控制指令、移位和循環(huán)指令、字符串指令、表指令、定時(shí)器指令、子程序指令等。為了便于學(xué)習(xí),可以與不同廠家的PLC進(jìn)行比較,本節(jié)將圍繞基本邏輯指令與應(yīng)用指令中較為常用的指令予以介紹。由于PLC的控制領(lǐng)域以順序控制為主,因此本節(jié)將重點(diǎn)介紹基本邏輯指令的使用方法。

1.位邏輯指令

1)立即裝載指令(LD、LDN)與線圈驅(qū)動(dòng)指令(=)

LD:常開觸點(diǎn)與母線相連;

LDN:常閉觸點(diǎn)與母線相連;=:線圈輸出。●?LD、LDN指令與母線相連,包括分支的起點(diǎn);●=指令可以連續(xù)使用,并聯(lián)輸出,但不能用于輸入繼電器,使用中應(yīng)避免雙線圈輸出;●?LD、LDN指令的操作數(shù)為I、Q、M、SM、T、C、V、S;●=指令的操作數(shù)為Q、M、SM、V、S。

LD、LDN、=指令的編程實(shí)例參見圖6-9。圖6-9與和與反指令

2)觸點(diǎn)串聯(lián)指令(A、AN)

A:常開觸點(diǎn)串聯(lián)指令(與指令);

AN:常閉觸點(diǎn)串聯(lián)指令(與反指令)。●?A、AN指令用于單個(gè)觸點(diǎn)與左邊觸點(diǎn)的串聯(lián),可連續(xù)使用,串聯(lián)觸點(diǎn)的個(gè)數(shù)沒有限制;●?A、AN指令的操作數(shù)為I、Q、M、SM、T、C、V、S;●若是兩個(gè)并聯(lián)電路塊(兩個(gè)或兩個(gè)以上觸點(diǎn)并聯(lián)連接的電路)相串聯(lián),則用后面將學(xué)的ALD指令。

A、AN指令的編程實(shí)例參見圖6-10。

3)觸點(diǎn)并聯(lián)指令(O、ON)

O:或指令,用于單個(gè)常開觸點(diǎn)的并聯(lián);

ON:或反指令,用于單個(gè)常閉觸點(diǎn)的并聯(lián)。●?O、ON指令僅用于單個(gè)觸點(diǎn)與前面觸點(diǎn)的并聯(lián),可連續(xù)使用;●?O、ON指令的操作數(shù)為I、Q、M、SM、T、C、V、S;●若是兩個(gè)串聯(lián)電路塊(兩個(gè)或兩個(gè)以上觸點(diǎn)串聯(lián)連接的電路)相并聯(lián),則用后面將學(xué)的OLD指令。編程實(shí)例參見圖6-10。圖6-10或和或反指令

4)邊沿觸發(fā)指令(EU、ED)

EU:上升沿觸發(fā)指令,在檢測到觸點(diǎn)每次正跳變(OFF→ON)后,產(chǎn)生一個(gè)掃描周期寬度的脈沖;

ED:下降沿觸發(fā)指令,在檢測到觸點(diǎn)每次負(fù)跳變(ON→OFF)后,產(chǎn)生一個(gè)掃描周期寬度的脈沖?!?EU、ED指令不帶目標(biāo)編程元件,是一個(gè)獨(dú)立指令。編程實(shí)例參見圖6-11。圖6-11邊沿觸發(fā)指令

5)置位指令(S)/復(fù)位指令(R)

S:將輸出指定的地址參數(shù)開始的N個(gè)點(diǎn)置位并保持,N可以是1~255;

R:將輸出指定的地址參數(shù)開始的N個(gè)點(diǎn)復(fù)位并保持,N可以是1~255?!袢绻敵鲋付ǖ氖嵌〞r(shí)器或計(jì)數(shù)器,那么定時(shí)器、計(jì)數(shù)器將被復(fù)位,同時(shí)當(dāng)前值被清零;●使用S/R指令時(shí)需指定開始位(bit)和位數(shù)(N),位(bit)可以是Q、M、SM、T、C、V、S,位數(shù)(N)可以是VB、IB、QB、MB、SMB、LB、SB、AC、常數(shù)等;●?S/R指令可以對同一個(gè)編程元件重復(fù)操作,最后一條指令具有優(yōu)先權(quán);●編程元件通過S指令置位后,必須通過R指令復(fù)位。編程實(shí)例參見圖6-12。圖6-12置位/復(fù)位指令

6)非指令(NOT)

NOT:用于將指令左端的解算結(jié)果(能流狀態(tài))取非,可以作為反向器使用,該指令無操作數(shù)。編程實(shí)例參見圖6-13。圖6-13非指令

7)立即存取指令I(lǐng)(LDI、LDNI、AI、ANI、OI、ONI、=I、SI、RI)

I:表示立即,當(dāng)指令執(zhí)行時(shí),允許系統(tǒng)讀取物理輸入點(diǎn)的狀態(tài),而執(zhí)行結(jié)果同時(shí)會(huì)被寫到物理輸出和相應(yīng)的映像寄存器中,編程元件只能是輸入繼電器(I)和輸出繼電器(Q)。該指令可加快系統(tǒng)的響應(yīng)速度,共有三種形式:①立即觸點(diǎn)指令(LDI、LDNI、AI、ANI、OI、ONI)。立即觸點(diǎn)并不依賴于CPU的掃描周期刷新,當(dāng)該指令執(zhí)行時(shí)立即刷新,得到物理輸入值,但輸入映像寄存器并不刷新。立即觸點(diǎn)分為常開立即觸點(diǎn)(LDI、AI、OI)和常閉立即觸點(diǎn)(LDNI、ANI、ONI)兩大類,操作數(shù)為輸入繼電器。②立即輸出指令(=I)。指令執(zhí)行時(shí),執(zhí)行結(jié)果會(huì)同時(shí)寫到物理輸出點(diǎn)和相應(yīng)的輸出映像寄存器中,不同于非立即指令,操作數(shù)為輸出繼電器。③立即置位指令(SI)和立即復(fù)位指令(RI)。當(dāng)執(zhí)行立即置位和立即復(fù)位指令時(shí),將從指定地址開始的N個(gè)點(diǎn)立即置位或立即復(fù)位,N的取值范圍為1~128,操作數(shù)只能是輸出繼電器。

2.邏輯堆棧指令在S7-200中有一個(gè)九層堆棧用于處理邏輯操作,在處理觸點(diǎn)的復(fù)雜連接關(guān)系時(shí),要利用該堆棧。

1)棧裝載或指令(OLD)

OLD:塊或指令,用于串聯(lián)電路塊的并聯(lián)連接,該指令是利用堆棧操作實(shí)現(xiàn)的?!癞?dāng)串聯(lián)電路塊與前面的電路并聯(lián)時(shí),分支的開始用LD、LDN指令,結(jié)束用OLD指令;●串聯(lián)支路并聯(lián)的次數(shù)不受限制,但每并聯(lián)一次就要用一次OLD指令;●OLD指令不帶目標(biāo)編程元件,是一個(gè)獨(dú)立的指令。

2)棧裝載與指令(ALD)

ALD:塊與指令,用于并聯(lián)電路塊的串聯(lián)連接,該指令是利用堆棧操作實(shí)現(xiàn)的?!癞?dāng)并聯(lián)電路塊與前面的電路串聯(lián)時(shí),分支的開始用LD、LDN指令,結(jié)束用ALD指令;●多個(gè)并聯(lián)電路塊連續(xù)串聯(lián)連接,按順序用ALD指令進(jìn)行連接,ALD使用次數(shù)不受限制;●?ALD指令不帶目標(biāo)編程元件,是一個(gè)獨(dú)立的指令。編程實(shí)例參見圖6-14。圖6-14塊與和塊或指令

3)邏輯進(jìn)棧指令(LPS)

LPS:復(fù)制棧頂?shù)闹挡⑵鋲哼M(jìn)堆棧,棧底的值被推出并丟失,用于處理梯形圖中的分支開始,該指令無操作數(shù)。

4)邏輯出棧指令(LPP)

LPP:邏輯出棧指令彈出棧頂?shù)闹?,堆棧的第二個(gè)值成為新的棧頂值,用于處理梯形圖中的分支結(jié)束,該指令無操作數(shù)。

5)邏輯讀棧指令(LRD)

LRD:邏輯讀棧指令復(fù)制堆棧中的第二個(gè)值到棧頂,沒有進(jìn)棧和彈棧操作,但舊的棧頂值被新的復(fù)制值取代,該指令無操作數(shù)。

LPS、LPP、LRD指令的編程實(shí)例參見圖6-15。圖6-15邏輯進(jìn)棧、邏輯讀棧、邏輯出棧指令

3.定時(shí)器指令

S7-200中有三種類型的定時(shí)器:接通延時(shí)定時(shí)器TON、記憶型接通延時(shí)定時(shí)器TONR和斷開延時(shí)定時(shí)器TOF,共256個(gè)定時(shí)器(T0~T255),定時(shí)精度分為1ms、10ms和100ms三個(gè)等級(jí),最大預(yù)設(shè)值為32767,如表6-4所示。

1)接通延時(shí)定時(shí)器(TON)接通延時(shí)定時(shí)器TON用于單一時(shí)間間隔的定時(shí)。使能輸入接通時(shí),定時(shí)器開始計(jì)時(shí),當(dāng)定時(shí)器的當(dāng)前值大于或等于預(yù)設(shè)值時(shí),該定時(shí)器位被置位;當(dāng)使能輸入斷開時(shí),清除定時(shí)器的當(dāng)前值,定時(shí)器位被復(fù)位;當(dāng)達(dá)到預(yù)設(shè)值后,定時(shí)器繼續(xù)計(jì)時(shí),一直計(jì)時(shí)到最大值。接通延時(shí)定時(shí)器的定時(shí)器位和當(dāng)前值的復(fù)位操作也可以使用復(fù)位指令(R)完成。指令格式:TON(助記符)T×××(定時(shí)器號(hào)),PT(預(yù)設(shè)值)編程實(shí)例參見圖6-16。定時(shí)器輸入使能為I0.2,定時(shí)精度為100ms,定時(shí)時(shí)間為1s。圖6-16接通延時(shí)定時(shí)器指令

2)記憶型接通延時(shí)定時(shí)器(TONR)記憶型接通延時(shí)定時(shí)器TONR用于累計(jì)多個(gè)時(shí)間間隔的定時(shí)。使能輸入接通時(shí),定時(shí)器開始計(jì)時(shí),當(dāng)定時(shí)器的當(dāng)前值大于或等于預(yù)設(shè)值時(shí),該定時(shí)器位被置位;當(dāng)使能輸入斷開時(shí),當(dāng)前值不變,定時(shí)器位保持;當(dāng)達(dá)到預(yù)設(shè)值后,定時(shí)器繼續(xù)計(jì)時(shí),一直計(jì)時(shí)到最大值。定時(shí)器位和當(dāng)前值的復(fù)位只能通過復(fù)位指令(R)實(shí)現(xiàn),復(fù)位指令執(zhí)行后:定時(shí)器位=OFF;定時(shí)器當(dāng)前值=0。指令格式:TONR(助記符)T×××(定時(shí)器號(hào)),PT(預(yù)設(shè)值)編程實(shí)例參見圖6-17。定時(shí)器輸入使能為I0.2,定時(shí)精度為10ms,定時(shí)時(shí)間為1s,定時(shí)器的復(fù)位輸入為I0.1。當(dāng)I0.2的累計(jì)接通時(shí)間達(dá)到預(yù)置值100×10ms=1s后,定時(shí)器位置位,并驅(qū)動(dòng)Q0.1接通;當(dāng)I0.1接通后,定時(shí)器當(dāng)前值清零。圖6-17記憶型接通延時(shí)定時(shí)器指令

3)斷開延時(shí)定時(shí)器(TOF)斷開延時(shí)定時(shí)器TOF用于故障事件后(輸入條件斷開)的單一時(shí)間間隔的定時(shí)。當(dāng)使能輸入接通時(shí),定時(shí)器位接通,當(dāng)前值為0;當(dāng)使能輸入出現(xiàn)接通到斷開的負(fù)跳變時(shí),定時(shí)器開始定時(shí),直到達(dá)到預(yù)設(shè)的時(shí)間,定時(shí)器位斷開,停止計(jì)時(shí)。若輸入斷開的時(shí)間小于預(yù)設(shè)時(shí)間,則定時(shí)器位保持接通。如果TOF定時(shí)器在順控(SCR)區(qū)中,且順控區(qū)沒有啟動(dòng),則TOF定時(shí)器的當(dāng)前值設(shè)置為0,定時(shí)器位設(shè)置為斷開,定時(shí)器不計(jì)時(shí)。指令格式:TOF(助記符)T×××(定時(shí)器號(hào)),PT(預(yù)設(shè)值)斷開延時(shí)定時(shí)器的定時(shí)器位和當(dāng)前值的復(fù)位操作也可以使用復(fù)位指令(R)完成。編程實(shí)例參見圖6-18。定時(shí)器輸入使能為I0.2,定時(shí)精度為10ms,定時(shí)時(shí)間為1s。上電后,定時(shí)器位處于接通狀態(tài),當(dāng)I0.2的斷開時(shí)間達(dá)到預(yù)置值100×10ms=1s后,定時(shí)器位復(fù)位,輸出繼電器Q0.1斷開;如果斷開時(shí)間不足1s,定時(shí)器位狀態(tài)不會(huì)發(fā)生變化,且當(dāng)前值在輸入使能重新接通后自動(dòng)清零。圖6-18斷開延時(shí)定時(shí)器指令

4)定時(shí)器分辨率定時(shí)器的分辨率(時(shí)鐘)決定了定時(shí)器計(jì)時(shí)時(shí)間間隔的長短,S7-200提供了三種分辨率:1ms、10ms和100ms,同定時(shí)器號(hào)相對應(yīng),如表6-4所示。①為確保滿足最小時(shí)間間隔,預(yù)置值必須比該時(shí)間間隔大1,如最小時(shí)間間隔為2100ms,要將100ms定時(shí)器的預(yù)置值PT設(shè)為22。②對于1ms分辨率的定時(shí)器,定時(shí)器位和當(dāng)前值的更新不與掃描周期同步,對于大于1ms的程序掃描周期,定時(shí)器位和當(dāng)前值在一個(gè)掃描周期內(nèi)刷新多次。③對于10ms分辨率的定時(shí)器,定時(shí)器位和當(dāng)前值在每個(gè)掃描周期開始時(shí)刷新,在掃描周期期間,保持為常數(shù)不變。由于在程序執(zhí)行期間,該類定時(shí)器刷新已經(jīng)結(jié)束,因此編程時(shí)應(yīng)注意,定時(shí)器位的狀態(tài)不會(huì)在定時(shí)器指令處發(fā)生變化。④對于100ms分辨率的定時(shí)器,定時(shí)器位和當(dāng)前值在指令執(zhí)行時(shí)刷新,因此,若要確保定時(shí)的準(zhǔn)確性,在一個(gè)掃描周期中,只能執(zhí)行一次100ms定時(shí)器指令,使用中應(yīng)注意每個(gè)掃描周期中定時(shí)器的執(zhí)行情況,以避免多計(jì)時(shí)或少計(jì)時(shí)情況出現(xiàn)。

4.計(jì)數(shù)器指令計(jì)數(shù)器是累計(jì)其輸入端脈沖個(gè)數(shù)的編程元件。S7-200提供了三種類型的計(jì)數(shù)器:增計(jì)數(shù)器CTU、減計(jì)數(shù)器CTD、增/減計(jì)數(shù)器CTUD。計(jì)數(shù)器編號(hào)為C0~C255,共256個(gè)。由于每個(gè)計(jì)數(shù)器只有一個(gè)當(dāng)前值,因此使用時(shí)不要把一個(gè)計(jì)數(shù)器號(hào)分配給幾個(gè)類型的計(jì)數(shù)器。計(jì)數(shù)器當(dāng)前值是否需要掉電保護(hù),可通過系統(tǒng)模塊中的保持范圍進(jìn)行設(shè)置。

1)增計(jì)數(shù)器(CTU)

CTU從當(dāng)前計(jì)數(shù)值開始,在CU端每一個(gè)輸入脈沖的上升沿,計(jì)數(shù)器增計(jì)數(shù)一次,計(jì)數(shù)值加1。當(dāng)計(jì)數(shù)器的當(dāng)前值大于或等于預(yù)置值PV時(shí),計(jì)數(shù)器狀態(tài)位被置位為ON,當(dāng)前值繼續(xù)計(jì)數(shù)并最大可達(dá)到32767,計(jì)數(shù)器停止計(jì)數(shù)。當(dāng)復(fù)位端(R)接通或者執(zhí)行復(fù)位指令后,計(jì)數(shù)器復(fù)位,計(jì)數(shù)器狀態(tài)位被復(fù)位為OFF,當(dāng)前值清零。編程實(shí)例參見圖6-19。輸入脈沖源為外部輸入信號(hào)I0.1,計(jì)數(shù)器預(yù)置值為3,當(dāng)計(jì)數(shù)脈沖達(dá)到3個(gè)后,計(jì)數(shù)器位置位,輸出繼電器Q0.1接通。當(dāng)復(fù)位輸入I0.2接通后,計(jì)數(shù)器當(dāng)前值清零。在啟動(dòng)計(jì)數(shù)器前,應(yīng)該考慮是否需要進(jìn)行計(jì)數(shù)器當(dāng)前值清零操作。圖6-19增計(jì)數(shù)器指令

2)減計(jì)數(shù)器(CTD)

CTD從當(dāng)前計(jì)數(shù)值開始,在CD端每一個(gè)輸入脈沖的上升沿,計(jì)數(shù)器減計(jì)數(shù)一次,計(jì)數(shù)值減1。當(dāng)計(jì)數(shù)器的當(dāng)前值等于0時(shí),計(jì)數(shù)器狀態(tài)位被置位為ON,計(jì)數(shù)器停止計(jì)數(shù)。當(dāng)輸入端(LD)接通時(shí)計(jì)數(shù)器復(fù)位,計(jì)數(shù)器狀態(tài)位被復(fù)位為OFF,當(dāng)前值設(shè)為預(yù)置值PV。編程實(shí)例參見圖6-20。上電后,當(dāng)前值自動(dòng)裝載預(yù)置值3,計(jì)數(shù)器位復(fù)位(若已設(shè)置為掉電保護(hù)計(jì)數(shù)器自動(dòng)裝載掉電前的計(jì)數(shù)值,計(jì)數(shù)器位保持掉電前的狀態(tài)),輸入脈沖源為外部輸入信號(hào)I0.1。當(dāng)計(jì)數(shù)脈沖達(dá)到3個(gè)后,當(dāng)前值為0,計(jì)數(shù)器位置位,輸出繼電器Q0.1接通。當(dāng)裝載輸入I0.2接通后,計(jì)數(shù)器當(dāng)前值自動(dòng)裝載預(yù)置值3,計(jì)數(shù)器位復(fù)位。圖6-20減計(jì)數(shù)器指令

3)增/減計(jì)數(shù)器(CTUD)

CTUD從當(dāng)前計(jì)數(shù)值開始,在CD端每一個(gè)輸入脈沖的上升沿,計(jì)數(shù)器減計(jì)數(shù)一次,計(jì)數(shù)值減1;在CU端每一個(gè)輸入脈沖的上升沿,計(jì)數(shù)器增計(jì)數(shù)一次,計(jì)數(shù)值加1。在每一次執(zhí)行計(jì)數(shù)器指令時(shí),將當(dāng)前值與預(yù)置值PV比較,當(dāng)前值大于等于預(yù)置值時(shí),計(jì)數(shù)器狀態(tài)位被置位。當(dāng)復(fù)位端(R)接通或者執(zhí)行復(fù)位指令后,計(jì)數(shù)器復(fù)位,計(jì)數(shù)器狀態(tài)位被復(fù)位為OFF,當(dāng)前值清零。在沒有復(fù)位信號(hào)的情況下,當(dāng)前值持續(xù)遞增或遞減,當(dāng)達(dá)到最大值32767時(shí),在CU端的下一個(gè)脈沖將導(dǎo)致計(jì)數(shù)值變?yōu)樽钚≈担?2768;當(dāng)達(dá)到最小值-32768時(shí),在CD端的下一個(gè)脈沖將導(dǎo)致計(jì)數(shù)值變?yōu)樽畲笾?2767。編程實(shí)例參見圖6-21。復(fù)位后,當(dāng)前值清零,計(jì)數(shù)器位復(fù)位,輸入脈沖源分別為增計(jì)數(shù)I0.1和減計(jì)數(shù)I0.2,預(yù)置值為4,當(dāng)增計(jì)數(shù)脈沖達(dá)到4個(gè)后,計(jì)數(shù)器位置位接通,當(dāng)前值繼續(xù)增/減計(jì)數(shù),若減計(jì)數(shù)器計(jì)數(shù)脈沖使當(dāng)前值小于4,則計(jì)數(shù)器位復(fù)位斷開。當(dāng)復(fù)位輸入I0.0接通后,計(jì)數(shù)器當(dāng)前值清零,計(jì)數(shù)器位復(fù)位。圖6-21增/減計(jì)數(shù)器指令

4)定時(shí)器和計(jì)數(shù)器的應(yīng)用舉例

S7-200的定時(shí)器和計(jì)數(shù)器的最大定時(shí)時(shí)間和最大計(jì)數(shù)次數(shù)分別為3276.7s(不到1小時(shí))和32767次,這對于許多工程實(shí)際應(yīng)用是遠(yuǎn)遠(yuǎn)不夠的,下面我們就舉例說明如何實(shí)現(xiàn)定時(shí)時(shí)間和計(jì)數(shù)次數(shù)的擴(kuò)展。①定時(shí)器串聯(lián)擴(kuò)展應(yīng)用。如圖6-22所示,T37定時(shí)時(shí)間為200s,T38定時(shí)時(shí)間為300s,因此總定時(shí)時(shí)間?=?T37定時(shí)時(shí)間?+?T38定時(shí)時(shí)間?=?500s通過2級(jí)、3級(jí)甚至多級(jí)的串聯(lián)擴(kuò)展是可以增加定時(shí)時(shí)間的,但這種擴(kuò)展形式的效率比較低,對于幾天、幾月的定時(shí)要求是不可想象的。圖6-22定時(shí)器串聯(lián)擴(kuò)展②定時(shí)器與計(jì)數(shù)器串聯(lián)擴(kuò)展應(yīng)用。簡單的定時(shí)器串聯(lián)無法實(shí)現(xiàn)的長范圍定時(shí)擴(kuò)展可以通過定時(shí)器與計(jì)數(shù)器的串聯(lián)形式解決,如圖6-23所示。將定時(shí)器的定時(shí)位作為計(jì)數(shù)器的計(jì)數(shù)脈沖輸入,則:總定時(shí)時(shí)間=3000×2000×0.1s=600000s≈7天以定時(shí)時(shí)間為基數(shù),與計(jì)數(shù)器串聯(lián)后可以實(shí)現(xiàn)工程項(xiàng)目中需要的更大范圍的定時(shí)時(shí)間,如果一級(jí)串聯(lián)不夠,可以二級(jí)甚至多級(jí)串聯(lián),效率很高。讀者可以思考一下如何實(shí)現(xiàn)另一種串聯(lián)形式,即:總計(jì)數(shù)次數(shù)?=?計(jì)數(shù)器1的計(jì)數(shù)值?+?計(jì)數(shù)器2的計(jì)數(shù)值,這種形式對于精度要求較高的應(yīng)用場合也是很有用的。圖6-23定時(shí)器與計(jì)數(shù)器的串聯(lián)擴(kuò)展③計(jì)數(shù)器的串聯(lián)擴(kuò)展應(yīng)用。假設(shè)一生產(chǎn)設(shè)備要求每天生產(chǎn)的工件數(shù)量為40000件,那么對于計(jì)數(shù)器的計(jì)數(shù)要求已經(jīng)超出了其最大值,這時(shí)需要采用2個(gè)計(jì)數(shù)器串聯(lián)來實(shí)現(xiàn)該計(jì)數(shù)功能。如圖6-24所示為一種計(jì)數(shù)器串聯(lián)擴(kuò)展方式,總計(jì)數(shù)次數(shù)?=?計(jì)數(shù)器1的計(jì)數(shù)值?×?計(jì)數(shù)器2的計(jì)數(shù)值,擴(kuò)展后的計(jì)數(shù)次數(shù)為90000次。圖6-24計(jì)數(shù)器串聯(lián)擴(kuò)展

5.高速計(jì)數(shù)器指令

S7-200的高速計(jì)數(shù)器可以配置為12種模式,每一個(gè)計(jì)數(shù)器都有時(shí)鐘、方向控制、復(fù)位、啟動(dòng)的特定輸入,對于雙相計(jì)數(shù)器,兩個(gè)時(shí)鐘都可以運(yùn)行在最高頻率。在正交模式下,可以選擇一倍數(shù)或四倍數(shù)計(jì)數(shù)頻率,所有計(jì)數(shù)器都可以運(yùn)行在最高頻率下而互不影響。高速計(jì)數(shù)可用作旋轉(zhuǎn)編碼器等外設(shè)的脈沖計(jì)數(shù),其計(jì)數(shù)頻率與PLC整個(gè)掃描周期關(guān)系不大,可以實(shí)現(xiàn)精確控制。在使用高速計(jì)數(shù)器之前,應(yīng)該用高速計(jì)數(shù)器定義指令(HDEF)為計(jì)數(shù)器選擇計(jì)數(shù)模式,如使用上電初始化脈沖位SM0.1來調(diào)用一個(gè)包含HDEF指令的子程序。

5.高速計(jì)數(shù)器指令

S7-200的高速計(jì)數(shù)器可以配置為12種模式,每一個(gè)計(jì)數(shù)器都有時(shí)鐘、方向控制、復(fù)位、啟動(dòng)的特定輸入,對于雙相計(jì)數(shù)器,兩個(gè)時(shí)鐘都可以運(yùn)行在最高頻率。在正交模式下,可以選擇一倍數(shù)或四倍數(shù)計(jì)數(shù)頻率,所有計(jì)數(shù)器都可以運(yùn)行在最高頻率下而互不影響。高速計(jì)數(shù)可用作旋轉(zhuǎn)編碼器等外設(shè)的脈沖計(jì)數(shù),其計(jì)數(shù)頻率與PLC整個(gè)掃描周期關(guān)系不大,可以實(shí)現(xiàn)精確控制。在使用高速計(jì)數(shù)器之前,應(yīng)該用高速計(jì)數(shù)器定義指令(HDEF)為計(jì)數(shù)器選擇計(jì)數(shù)模式,如使用上電初始化脈沖位SM0.1來調(diào)用一個(gè)包含HDEF指令的子程序。定義高速計(jì)數(shù)器指令(HDEF):為指定的高速計(jì)數(shù)器(HSC×)選擇操作模式,模塊的選擇決定了高速計(jì)數(shù)器的時(shí)鐘、方向、啟動(dòng)和復(fù)位功能,對于每一個(gè)高速計(jì)數(shù)器使用一條定義高速計(jì)數(shù)器指令。高速計(jì)數(shù)器指令(HSC):在HSC特殊存儲(chǔ)器位狀態(tài)的基礎(chǔ)上,配置和控制高速計(jì)數(shù)器,參數(shù)N指定高速計(jì)數(shù)器的標(biāo)號(hào)。對于高速計(jì)數(shù)器編程,必須完成以下基本操作:

(1)定義計(jì)數(shù)器和模式;

(2)設(shè)置控制字節(jié);

(3)設(shè)置初始值;

(4)設(shè)置預(yù)置值;

(5)指定并使能中斷服務(wù)程序;

(6)激活高速計(jì)數(shù)器。

6.程序控制指令

1)條件結(jié)束指令(END)條件結(jié)束指令根據(jù)前面的邏輯關(guān)系終止當(dāng)前掃描周期的程序執(zhí)行過程,只能在主程序中使用,不能在子程序或中斷服務(wù)程序中使用該指令。該指令無操作數(shù)。注:Micro/WIN32自動(dòng)在主程序結(jié)束處加上一個(gè)無條件結(jié)束指令。

2)停止指令(STOP)停止指令可以使CPU從RUN模式切換到STOP模式,立即終止程序的運(yùn)行。需要注意的是,如果STOP指令在中斷程序中執(zhí)行,那么該中斷立即終止,并且忽略所有掛起的中斷,繼續(xù)掃描并完成程序的剩余部分,完成當(dāng)前周期的剩余動(dòng)作,包括主程序的執(zhí)行,并在當(dāng)前掃描周期的最后,從RUN模式切換到STOP模式。該指令無操作數(shù)。

3)看門狗復(fù)位指令(WDR)看門狗復(fù)位指令允許CPU的看門狗被重新觸發(fā),這樣可以在不引起看門狗錯(cuò)誤的情況下增加掃描所允許的時(shí)間。對于某些程序量較大的復(fù)雜系統(tǒng),程序執(zhí)行時(shí)間可能會(huì)超過看門狗的設(shè)定復(fù)位時(shí)間,為了避免系統(tǒng)復(fù)位,可以使用該指令增加程序執(zhí)行時(shí)間,即在程序中執(zhí)行一次“喂狗”操作。使用看門狗指令時(shí),若因使用循環(huán)指令而導(dǎo)致掃描時(shí)間過長,那么在當(dāng)前掃描周期結(jié)束前,以下操作將被終止:①通信(自由口方式除外);②I/O更新(立即I/O除外);③強(qiáng)制更新;④SM位更新(SM0,SM5~SM29不能更新);⑤運(yùn)行時(shí)間診斷;⑥若掃描時(shí)間超過25s,則10ms和100ms定時(shí)器不能正確工作;⑦中斷程序中的STOP指令;⑧帶數(shù)字量輸出的擴(kuò)展模塊中的看門狗定時(shí)器如果沒有被CPU執(zhí)行寫操作(“喂狗”操作),擴(kuò)展模塊輸出將被關(guān)斷,每次使用看門狗復(fù)位指令,應(yīng)該對每個(gè)擴(kuò)展模塊的相應(yīng)字節(jié)(參見使用手冊相關(guān)說明)使用一個(gè)立即寫指令來復(fù)位該擴(kuò)展模塊的看門狗。

4)循環(huán)指令(FOR指令和NEXT指令)

FOR和NEXT指令可以描述需要重復(fù)執(zhí)行一定次數(shù)的循環(huán)體,二者必須成對出現(xiàn),如果發(fā)生循環(huán)嵌套,允許嵌套深度為8層。

FOR—NEXT指令執(zhí)行FOR指令和NEXT指令之間的程序,F(xiàn)OR指令使用時(shí)必須指定循環(huán)次數(shù)INDX、初始值INIT和終止值FINAL;NEXT指令標(biāo)志著FOR循環(huán)的結(jié)束,無操作數(shù)。

當(dāng)使能有效,且初值INIT<終值FINAL時(shí),則執(zhí)行循環(huán)體,系統(tǒng)先將初值INIT賦值給循環(huán)次數(shù)INDX,每執(zhí)行一次循環(huán)體循環(huán)次數(shù)INDX加1,并且與終值FINAL做比較,當(dāng)INDX>FINAL時(shí),循環(huán)結(jié)束;如果初值INIT>終值FINAL,即使使能有效也不執(zhí)行循環(huán)體。執(zhí)行FOR—NEXT循環(huán)指令,堆棧的棧頂值在進(jìn)入循環(huán)體時(shí)與退出循環(huán)體時(shí)保持一致。

5)跳轉(zhuǎn)指令(JUMP)和標(biāo)號(hào)指令(LBL)

JUMP:作用是執(zhí)行程序標(biāo)號(hào)N指定的程序分支,N為標(biāo)號(hào)指令確定的目標(biāo)位置。

LBL:標(biāo)記跳轉(zhuǎn)的目標(biāo)位置N。跳轉(zhuǎn)指令可以在主程序、子程序和中斷程序中使用,但跳轉(zhuǎn)指令和與之對應(yīng)的標(biāo)號(hào)指令必須位于同一段程序區(qū),不能從主程序跳轉(zhuǎn)到子程序或中斷程序,反之亦然。在步進(jìn)順控程序段(SCR)中可以使用跳轉(zhuǎn)指令,但相應(yīng)的標(biāo)號(hào)指令(目標(biāo)位置)必須也在同一個(gè)SCR段中。編程實(shí)例參見圖6-25。圖6-25跳轉(zhuǎn)指令

6)順控繼電器指令(SCR)順控繼電器指令包括裝載SCR指令(LSCR)、SCR傳輸指令(SCRT)、SCR條件結(jié)束指令(CSCRE)、SCR結(jié)束指令(SCRE),用以完成順序功能設(shè)計(jì)法的程序編寫,具體設(shè)計(jì)方法將在下章討論,此處僅介紹一下指令含義。

LSCR:將S位的值裝載到SCR和邏輯堆棧中,標(biāo)志著順控區(qū)(SCR區(qū))的開始。

SCRE:標(biāo)志著順控區(qū)(SCR區(qū))的結(jié)束,順控區(qū)是否被執(zhí)行取決于S堆棧的值。

SCRT:將程序控制權(quán)從一個(gè)活動(dòng)的SCR區(qū)轉(zhuǎn)換到下一個(gè)SCR區(qū),從而實(shí)現(xiàn)動(dòng)作的轉(zhuǎn)換。執(zhí)行該指令使當(dāng)前活動(dòng)SCR區(qū)的S位復(fù)位,使下一個(gè)將要執(zhí)行的SCR區(qū)的S位置位。

CSCRE:可以使程序退出一個(gè)活動(dòng)的SCR區(qū)而不執(zhí)行CSCRE與SCRE之間的指令,CSCRE指令不影響任何S位,也不影響堆棧。使用順控指令需要注意以下幾點(diǎn):①順控繼電器S在程序中只能使用一次,不能重復(fù)使用;②SCR區(qū)之間不允許使用跳轉(zhuǎn)指令,但SCR區(qū)內(nèi)或者SCR區(qū)與非SCR區(qū)之間可以使用跳轉(zhuǎn)指令;③SCR區(qū)中不允許使用END指令。

7.中斷指令中斷處理提供了PLC對特殊內(nèi)部或外部事件的實(shí)時(shí)處理能力,用戶通過中斷程序?qū)@些突發(fā)事件或異常信息進(jìn)行有效的處理。

(1)?S7-200支持的中斷服務(wù)程序類型。①通信口中斷:在自由口模式下,用戶通過程序定義波特率、字符位數(shù)、奇偶校驗(yàn)和通信協(xié)議等參數(shù),利用接收和發(fā)送中斷實(shí)現(xiàn)對通信的控制。②I/O中斷:包括外部輸入的上升沿或下降沿中斷、高速計(jì)數(shù)器中斷和脈沖串輸出(PTO)中斷,對I/O點(diǎn)狀態(tài)變化做出響應(yīng)。③時(shí)基中斷:包括定時(shí)中斷和定時(shí)器T32/T96中斷。定時(shí)中斷是指定一個(gè)以1ms為增量單位,定時(shí)周期在1~255ms之間的周期性活動(dòng),有定時(shí)中斷0和定時(shí)中斷1兩種類型。定時(shí)中斷0,必須把周期時(shí)間寫入SMB34;定時(shí)中斷1,必須把周期時(shí)間寫入SMB35,如在模擬量輸入的采樣控制和PID回路控制中采樣周期的控制。定時(shí)器T32/T96中斷允許及時(shí)響應(yīng)一個(gè)給定的時(shí)間間隔,這類中斷只支持分辨率為1?ms的延時(shí)接通定時(shí)器(TON)和延時(shí)斷開定時(shí)器(TOF)T32、T96。一旦中斷允許,當(dāng)定時(shí)時(shí)間到時(shí),執(zhí)行指定的中斷程序。

(2)相關(guān)指令如下。①中斷允許指令(ENI):全局允許所有被連接的中斷事件,無操作數(shù)。在RUN模式下,可以通過該指令允許所有中斷。②中斷禁止指令(DISI):全局禁止處理所有中斷事件,無操作數(shù)。執(zhí)行后不允許處理中斷服務(wù)程序,但中斷事件仍然會(huì)排隊(duì)等候。③中斷條件返回(CRETI):根據(jù)前面的邏輯操作的結(jié)果,從中斷程序中返回。④中斷連接(ATCH):將中斷事件EVNT與中斷服務(wù)程序號(hào)INT相關(guān)聯(lián),并使能該中斷事件。⑤中斷分離(DTCH):將中斷事件EVNT與中斷服務(wù)程序之間的關(guān)聯(lián)切斷,并禁止該中斷事件。⑥清除中斷事件(CLR_EVNT):清除中斷事件指令從中斷隊(duì)列中清除所有EVNT類型的中斷事件,可以使用該指令從中斷隊(duì)列中清除不需要的中斷事件。使用時(shí)應(yīng)注意首先分離事件,否則,這類事件還會(huì)再次產(chǎn)生中斷申請并進(jìn)入中斷隊(duì)列中。⑦無條件中斷返回(RETI):中斷處理結(jié)束后返回到主程序。

(3)中斷優(yōu)先級(jí):根據(jù)中斷性質(zhì)和輕重緩急對中斷事件安排了不同的優(yōu)先級(jí),表6-5列出了中斷事件類型及優(yōu)先級(jí)安排。

8.子程序指令

S7-200允許主程序中調(diào)用子程序,并且子程序調(diào)用最多可以嵌套8層,但在中斷程序中,只允許最多1級(jí)調(diào)用,不允許子程序嵌套調(diào)用(但允許遞歸調(diào)用)。當(dāng)某子程序在同一個(gè)周期中被多次調(diào)用時(shí),該子程序中不能使用上升沿、下降沿、定時(shí)器和計(jì)數(shù)器等指令,以免多次操作。

(1)子程序調(diào)用指令(CALL):將程序控制權(quán)交給子程序SBR_N,子程序執(zhí)行完成后,控制權(quán)返回到調(diào)用子程序指令的下一個(gè)指令。

(2)子程序返回指令(RET):子程序執(zhí)行結(jié)束后返回到主程序,STEP7-Micro/WIN為每個(gè)子程序自動(dòng)加入返回指令。

(3)子程序條件返回指令(CRET):子程序執(zhí)行過程中根據(jù)該指令前面的邏輯解算結(jié)果決定是否需要終止子程序。

(4)子程序調(diào)用的參數(shù)處理:子程序可以傳遞最多16個(gè)參數(shù),由局部變量表定義,參數(shù)必須有變量名、變量類型和數(shù)據(jù)類型,如表6-6所示。變量類型可以是傳入子程序(IN)、傳入傳出子程序(IN_OUT)、傳出子程序(OUT)三種類型。如果用語句表編程,CALL指令的格式是:

CALL子程序號(hào),參數(shù)1,參數(shù)2,…,參數(shù)N圖6-26為帶參數(shù)的子程序調(diào)用示例。圖6-26帶參數(shù)的子程序調(diào)用指令

9.邏輯操作指令

(1)字節(jié)、字、雙字取反指令(INVB、INVW、INVD):將輸入IN取反,結(jié)果存入OUT中,操作數(shù)分別是字節(jié)、字、雙字。

(2)字節(jié)、字、雙字與指令(ANDB、ANDW、ANDD):將輸入值IN1和IN2的相應(yīng)位進(jìn)行與操作,結(jié)果存入OUT中,操作數(shù)分別是字節(jié)、字、雙字。

(3)字節(jié)、字、雙字或指令(ORB、ORW、ORD):將輸入值IN1和IN2的相應(yīng)位進(jìn)行或操作,結(jié)果存入OUT中,操作數(shù)分別是字節(jié)、字、雙字。

(4)字節(jié)、字、雙字、異或指令(XORB、XORW、XORD):將輸入值IN1和IN2的相應(yīng)位進(jìn)行異或操作,結(jié)果存入OUT中,操作數(shù)分別是字節(jié)、字、雙字。

10.傳送指令

(1)字節(jié)、字、雙字或?qū)崝?shù)傳送指令(MOVB、MOVW、MOVD):在不改變原值的情況下將IN中的值傳送到OUT中,相當(dāng)于賦值功能,間接尋址中指針的建立就要用到雙字傳送指令。

(2)字節(jié)立即傳送指令:允許物理I/O與存儲(chǔ)器之間立即傳送一個(gè)字節(jié)數(shù)據(jù)。①字節(jié)立即讀指令(MOVBIR):讀物理輸入(IN),并將結(jié)果存入內(nèi)部寄存器(OUT),但不刷新輸入映像寄存器。②字節(jié)立即寫指令(MOVBIW):讀取內(nèi)部存儲(chǔ)器數(shù)據(jù)(IN),并寫入物理輸出(OUT),同時(shí)刷新相應(yīng)的輸出映像寄存器。

(3)塊傳送指令(BLKMOVB):將指定范圍的數(shù)據(jù)傳送到一個(gè)新的存儲(chǔ)區(qū),數(shù)據(jù)的起始地址為IN,數(shù)據(jù)長度為N(1~255),目標(biāo)存儲(chǔ)器的起始地址為OUT。操作數(shù)可以是字節(jié)、字或雙字。

11.移位及循環(huán)指令

(1)左移和右移指令(SRB、SRW、SRD、SLB、SRW、SRD):將輸入值IN右移或左移N位,并將結(jié)果裝載到輸出參數(shù)OUT中。操作數(shù)為無符號(hào)數(shù),可以是字節(jié)、字、雙字,對有符號(hào)數(shù)當(dāng)無符號(hào)數(shù)處理。移位后空位自動(dòng)補(bǔ)零,如果位數(shù)N大于或等于最大允許值,即操作數(shù)的實(shí)際位數(shù)(字節(jié)為8,字為16,雙字為32),那么移位操作的次數(shù)為最大允許值。該指令影響標(biāo)志位:特殊繼電器SM1.1中存放最近移出的位值,移位操作結(jié)果為0,SM1.0自動(dòng)置位。編程實(shí)例參見圖6-27。圖6-27移位指令執(zhí)行過程

(2)循環(huán)右移和循環(huán)左移指令(RRB、RRW、RRD、RLB、RLW、RLD):循環(huán)移位指令將輸入值IN循環(huán)右移或循環(huán)左移N位,并將結(jié)果裝載到OUT中,移出空位由移出值填入。循環(huán)次數(shù)不能超過最大允許值,否則系統(tǒng)自動(dòng)修正循環(huán)次數(shù)。操作數(shù)為無符號(hào)數(shù),可以是字節(jié)、字、雙字,對有符號(hào)數(shù)當(dāng)無符號(hào)數(shù)處理。該指令影響標(biāo)志位:SM1.1為最后移位移出的位值。編程實(shí)例參見圖6-28。圖6-28循環(huán)移位指令執(zhí)行過程

(3)移位寄存器指令:將一個(gè)數(shù)值移入移位寄存器中,使能接通時(shí),每個(gè)掃描周期整個(gè)移位寄存器移動(dòng)一位。指令參數(shù)中,DATA為每次進(jìn)入移位寄存器的位值,S_BIT指定移位寄存器的最低位,N指定移位寄存器的長度和移位方向(正向移位=N,反向移位=-N),移位寄存器最大長度為64位。通過控制移位寄存器的使能輸入和移位寄存器的內(nèi)容,可以實(shí)現(xiàn)較簡單的單序列順序控制編程,即順序控制設(shè)計(jì)法中的移位寄存器法。移位寄存器的最高位(MSB.b)計(jì)算方法:MSB.b=[(S_BIT字節(jié)號(hào))+(N-1+S_BIT位號(hào))/8].[除8的余數(shù)]例如:如果S_BIT是V33.4,N是14,根據(jù)上式有當(dāng)反向移動(dòng)時(shí),N為負(fù)值,輸入數(shù)據(jù)從最高位移入,最低位(S_BIT)移出,移出數(shù)據(jù)放入溢出標(biāo)志位(SM1.1)中;當(dāng)正向移動(dòng)時(shí),N為正值,輸入數(shù)據(jù)從最低位(S_BIT)移入,最高位移出,移出數(shù)據(jù)放入溢出標(biāo)志位(SM1.1)中。

(4)字節(jié)交換指令(SWAP):用來交換輸入字IN的高字節(jié)和低字節(jié),操作數(shù)為字元件。

12.通信指令通信指令包括網(wǎng)絡(luò)讀/寫指令、發(fā)送與接收指令、獲取口地址和設(shè)定口地址指令。

(1)網(wǎng)絡(luò)讀指令(NETR):通過指定端口(PORT)從遠(yuǎn)程設(shè)備上采集數(shù)據(jù)并形成表(TBL),最多可以讀取16個(gè)字節(jié)的信息。網(wǎng)絡(luò)寫指令(NETW):通過指定端口(PORT)向遠(yuǎn)程設(shè)備寫表(TBL)中的數(shù)據(jù),最多可以寫16個(gè)字節(jié)數(shù)據(jù)。

(2)發(fā)送指令(XMT):在自由口模式下利用通信口發(fā)送數(shù)據(jù)。接收指令(RCV):啟動(dòng)或者終止接收信息功能,需要指定開始和結(jié)束條件,接收到的信息存放在數(shù)據(jù)緩沖區(qū)(TBL)中,其中第一個(gè)數(shù)據(jù)指明接收到的字節(jié)數(shù)。

(3)獲取口地址指令(GPA):讀取PORT指定的CPU口的站地址,并將數(shù)值存放在ADDR指定的地址中。設(shè)定口地址指令(SPA)將口的站地址(PORT)設(shè)置為ADDR指定的數(shù)值,新地址在重新上電后將被原來的地址值刷新(由系統(tǒng)塊下載的地址)。除了以上介紹的12類指令外,S7-200還提供了時(shí)鐘指令、比較指令、轉(zhuǎn)換指令、數(shù)學(xué)運(yùn)算指令、脈沖輸出指令、PID回路控制指令、字符傳指令、表指令等指令類型,在程序設(shè)計(jì)過程中同樣有著重要的作用,本書對于這些指令就不展開討論了,具體使用方法可參考用戶手冊。6.4三菱FX系列PLC指令系統(tǒng)及編程方法6.4.1三菱FX系列PLC編程元件三菱FX系列PLC的編程元件的編號(hào)規(guī)則:以英文字母開頭,字母表示編程元件的功能,后跟三位數(shù)字為地址編號(hào),輸入/輸出元件采用八進(jìn)制編址,其他元件均采用十進(jìn)制的地址編號(hào)。如:X006,Y010,M100。三菱FX系列PLC的編程元件(軟元件)有:輸入繼電器(Xn)、輸出繼電器(Yn)、輔助繼電器(Mn)、狀態(tài)元件(Sn)、定時(shí)器(Tn)、計(jì)數(shù)器(Cn);另外還有數(shù)據(jù)寄存器(Dn)、變址寄存器Z/V、特殊輔助寄存器及指針(P/I)等。輸入繼電器必須由外部信號(hào)驅(qū)動(dòng),不能用程序驅(qū)動(dòng),所以在程序中不可能出現(xiàn)其線圈。輸出繼電器是用來將PLC內(nèi)部信號(hào)輸出傳送給外部負(fù)載(用戶輸出設(shè)備)的。輸出繼電器線圈是由PLC內(nèi)部程序的指令驅(qū)動(dòng),其線圈狀態(tài)傳送給輸出單元,再由輸出單元對應(yīng)的硬觸點(diǎn)來驅(qū)動(dòng)外部負(fù)載。FX系列PLC的輸入/輸出繼電器以八進(jìn)制進(jìn)行編號(hào),如FX2N輸入繼電器的編號(hào)范圍為X000~X267(184點(diǎn)),輸出繼電器的編號(hào)范圍為Y000~Y267(184點(diǎn))。注意,基本單元輸入繼電器的編號(hào)是固定的,擴(kuò)展單元和擴(kuò)展模塊是按與基本單元最靠近開始,順序進(jìn)行編號(hào)的。例如:基本單元FX2N-64M的輸入繼電器編號(hào)為X000~X037(32點(diǎn)),如果接有擴(kuò)展單元或擴(kuò)展模塊,則擴(kuò)展的輸入繼電器從X040開始編號(hào)。表6-7為FX2N系列PLC編程元件和元件編號(hào)參考。下面對FXPLC的特殊功能編程元件作基本介紹,其余編程元件的進(jìn)一步理解,請結(jié)合后面指令及應(yīng)用的介紹。

1.?dāng)?shù)據(jù)寄存器(D、V、Z)

(1)停電保持?jǐn)?shù)據(jù)寄存器D200~D511(312點(diǎn)):不論電源接通與否,PLC運(yùn)行與否,停電保持?jǐn)?shù)據(jù)寄存器內(nèi)容不會(huì)變化,除非改寫,在兩臺(tái)PLC作點(diǎn)對點(diǎn)的通信時(shí),D490~D509被用作通信操作。

(2)特殊數(shù)據(jù)寄存器D8000~D8255(256點(diǎn)):這些數(shù)據(jù)寄存器用來監(jiān)控PLC的運(yùn)行狀態(tài),主要存放系統(tǒng)狀態(tài)、錯(cuò)誤信息、監(jiān)視狀態(tài)。例如,D8000用作存放監(jiān)控定時(shí)器(watchdogtimer)的時(shí)間,由系統(tǒng)ROM在初始化時(shí)設(shè)定。若要改變,可用傳送指令將目標(biāo)時(shí)間送入D8000,該值在PLC運(yùn)行(RUN)期間,保持不變。

(3)文件寄存器D1000~D2999(2000點(diǎn)):實(shí)際上是一類專用數(shù)據(jù)寄存器,用于存儲(chǔ)大量的數(shù)據(jù),例如采集數(shù)據(jù)、統(tǒng)計(jì)計(jì)算數(shù)據(jù)、多組控制參數(shù)等。其數(shù)量由CPU的監(jiān)控軟件決定,它占用用戶程序存儲(chǔ)器(RAM,EEPROM,EPROM)內(nèi)的一個(gè)存儲(chǔ)區(qū),以500點(diǎn)為一個(gè)單位,最多可在參數(shù)設(shè)置時(shí)設(shè)置2000點(diǎn)。用外部設(shè)備可進(jìn)行寫入操作。在PLC運(yùn)行中,用BMOV指令可以將文件寄存器中的數(shù)據(jù)讀到通用數(shù)據(jù)寄存器中,但不能用指令將數(shù)據(jù)寫入文件寄存器。

(4)變址寄存器V0~V7和Z0~Z7:其內(nèi)容用來改變編程元件的元件號(hào),32位操作時(shí)合并使用。如V0=8,數(shù)據(jù)寄存器元件號(hào)D5V0=D(5+8)=D13,只要改變V0,即改變了D5V0的編號(hào)。

2.特殊輔助繼電器特殊輔助繼電器各自具有特定的功能,可以分成以下兩大類。

(1)只能利用其觸點(diǎn)的特殊輔助繼電器。這類特殊輔助繼電器的線圈由PLC自動(dòng)驅(qū)動(dòng),用戶只可以利用其觸點(diǎn)。例如:M8000:運(yùn)行(RUN)監(jiān)控,PLC運(yùn)行時(shí)接通,M8001與M8000相反邏輯。

M8002:初始脈沖,僅在運(yùn)行開始瞬間接通,M8003與M8002相反邏輯。

M8011、M8012、M8013和M8014分別產(chǎn)生10ms、100ms、1s和1min時(shí)鐘脈沖。

(2)可驅(qū)動(dòng)線圈型特殊輔助繼電器,用戶驅(qū)動(dòng)線圈后,PLC作特定動(dòng)作。例如:

M8030:當(dāng)為ON時(shí),使BATTLED(捏電池欠壓指示燈)熄滅。

M8033:當(dāng)為ON時(shí),PLC停止時(shí)輸出保持,即保持輸出映像存儲(chǔ)器和數(shù)據(jù)寄存器的內(nèi)容。

M8034:當(dāng)為ON時(shí),禁止全部PLC輸出。

M8039:當(dāng)為ON時(shí),PLC按D8039中指定的掃描時(shí)間工作。

3.指針(P/I)

1)分支指令用指針Pn

CJ、CALL等分支指令是功能指令,用來指定跳轉(zhuǎn)目標(biāo),用指針Pn(P0~P12)作為標(biāo)號(hào),如圖6-29所示。在圖6-29(a)中,當(dāng)X0接通時(shí),程序就跳至標(biāo)號(hào)為P0處,繼續(xù)執(zhí)行。在圖6-29(b)中,當(dāng)X3接通時(shí),就執(zhí)行FEND指令后標(biāo)號(hào)為P1的子程序,并根據(jù)SRET指令返回。在編程時(shí),要注意編號(hào)不能重復(fù)使用。圖6-29分支指針表達(dá)方式

2)中斷用指針I(yè)n中斷用指針指明某一中斷源入口標(biāo)號(hào),遇IRET返回。FX2N的中斷來源有三種類型。①指定為X0~X5的輸入端中斷,中斷用指針為(I00□~I(xiàn)50□),共6點(diǎn)。例如,I001表示輸入X0從OFF→ON變化時(shí),執(zhí)行由該指針作為標(biāo)號(hào)后面的中斷程序,并根據(jù)IRET指令返回。這類中斷不受PLC掃描周期的影響,可以及時(shí)處理外界信息。②定時(shí)器中斷,中斷用指針(I6□□~I(xiàn)8□□),共3點(diǎn)。這類中斷的作用是PLC以指定的周期定時(shí)執(zhí)行中斷服務(wù)程序,定時(shí)循環(huán)處理某些任務(wù)。處理的時(shí)間也不受PLC掃描周期的限制?!酢醣硎径〞r(shí)范圍,可在10~99ms中選取。例如:I610即為每隔10ms就執(zhí)行標(biāo)號(hào)I610后面的中斷程序,并根據(jù)IRET指令返回。輸入中斷用指針格式如圖6-30所示。圖6-30中斷指針標(biāo)號(hào)表示方式③計(jì)數(shù)器中斷,計(jì)數(shù)器中斷用指針(I010~I(xiàn)060),共6點(diǎn),它們用在PLC內(nèi)置的高速計(jì)數(shù)器中。根據(jù)高速計(jì)數(shù)器的計(jì)數(shù)當(dāng)前值與計(jì)數(shù)設(shè)定值之間的關(guān)系,確定是否執(zhí)行中斷服務(wù)程序。它常用于利用高速計(jì)數(shù)器優(yōu)先處理計(jì)數(shù)結(jié)果的場合。要注意以下幾點(diǎn):①中斷指針必須編在FEND指令后面作為標(biāo)號(hào)。②中斷指針中百位數(shù)上的數(shù)字不可重復(fù)使用,如用了I100就不能用I101。③用于中斷的輸入端子,就再也不能用于SPD指令或其他高速處理。

6.4.2FX系列PLC基本邏輯指令及其應(yīng)用

1.邏輯取及輸出線圈(LD、LDI、LDP、LDF、OUT)

LD:取指令,用于常開觸點(diǎn)與母線連接。

LDI:取反指令,用于常閉觸點(diǎn)與母線連接。

LDP:取上升沿指令,與左母線連接的常開觸點(diǎn)的上升沿檢測指令,僅在指定位元件的上升沿(由OFF→ON)時(shí)接通一個(gè)掃描周期。

LDF:取下降沿指令,與左母線連接的常閉觸點(diǎn)的下降沿檢測指令。

OUT:線圈驅(qū)動(dòng)指令,用于將邏輯解算結(jié)果驅(qū)動(dòng)一個(gè)指定線圈。①?LD、LDI、LDP、LDF作為每一階梯邏輯運(yùn)算起始,可與后面講到的塊操作指令A(yù)NB、ORB相配合,用于分支電路的起點(diǎn)。②?LDP、LDF指令僅在對應(yīng)元件有效時(shí)維持一個(gè)掃描周期的接通。在圖6-31中,當(dāng)M102有一個(gè)下降沿時(shí),Y3只有一個(gè)掃描周期為ON。③?LD、LDI、LDP、LDF指令的目標(biāo)元件為X、Y、M、T、C、S。④?OUT指令的目標(biāo)元件為Y、M、S、T、C及F(功能指令線圈),不能用于X元件,并聯(lián)輸出OUT指令可連續(xù)使用任意次。⑤?OUT指令用于T和C,其后須跟常數(shù)K。K為延時(shí)時(shí)間或計(jì)數(shù)次數(shù)?;局噶钍褂脜⒁妶D6-31。圖6-31基本指令使用(一)

2.觸點(diǎn)串聯(lián)(AND、ANI、ANDP、ANDF)

AND:與指令,用于單個(gè)常開觸點(diǎn)的串聯(lián)。

ANI:與反指令,用于單個(gè)常閉觸點(diǎn)的串聯(lián)。

ANDP:上升沿檢測串聯(lián)連接指令。

ANDF:下降沿檢測串聯(lián)連接指令。①AND、ANI、ANDP、ANDF指令用于單個(gè)觸點(diǎn)與左邊觸點(diǎn)的串聯(lián),可連續(xù)使用。②AND、ANI、ANDP、ANDF的目標(biāo)元件為X、Y、M、T、C和S。③若是兩個(gè)并聯(lián)電路塊(兩個(gè)或兩個(gè)以上觸點(diǎn)并聯(lián)連接的電路)串聯(lián),則需用后面的ANB指令。編程實(shí)例參見圖6-32。圖6-32基本指令的使用(二)

3.觸點(diǎn)并聯(lián)(OR、0RI、ORP、ORF)

OR:或指令,用于單個(gè)常開觸點(diǎn)的并聯(lián)。

ORI:或反指令,用于單個(gè)常閉觸點(diǎn)的并聯(lián)。

ORP:上升沿檢測并聯(lián)連接指令。

ORF:下降沿檢測并聯(lián)連接指令。①OR、ORI、ORP、ORF指令僅用于單個(gè)觸點(diǎn)與前面觸點(diǎn)的并聯(lián)。②OR、ORI、ORP、ORF指令的目標(biāo)元件為X、Y、M、T、C、S。③若兩個(gè)串聯(lián)電路塊(兩個(gè)或兩個(gè)以上觸點(diǎn)串聯(lián)連接的電路)并聯(lián),則用后面將學(xué)的ORB指令。編程實(shí)例參見圖6-32。

4.塊或(ORB)

ORB:用于串聯(lián)電路塊的并聯(lián)連接。①當(dāng)串聯(lián)電路塊與前面的電路并聯(lián)時(shí),分支的開始用LD、LDI指令,結(jié)束用ORB指令。②串聯(lián)支路并聯(lián)的次數(shù)不受限制,但每并聯(lián)一次就要用一次ORB指令。③ORB指令不帶目標(biāo)編程元件,是一個(gè)獨(dú)立的指令。編程實(shí)例參見圖6-32。

5.塊與(ANB)

ANB:用于并聯(lián)電路塊的串聯(lián)連接。①當(dāng)并聯(lián)電路塊與前面的電路串聯(lián)連接時(shí),分支的開始用LD、LDI指令,結(jié)束用ANB指令。②多個(gè)并聯(lián)電路塊連續(xù)串聯(lián)連接,按順序用ANB指令進(jìn)行連接,ANB使用次數(shù)不受限制。③ANB指令不帶目標(biāo)編程元件,是一個(gè)獨(dú)立的指令。編程實(shí)例參見圖6-32。

6.脈沖輸出(PLS、PLF)

PLS、PLF僅在ON/OFF的上升沿或下降沿觸發(fā),接通一個(gè)掃描周期,如圖6-33所示。特殊輔助繼電

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論