《電氣控制基礎(chǔ)與可編程控制器應(yīng)用教程》課件第六章_第1頁(yè)
《電氣控制基礎(chǔ)與可編程控制器應(yīng)用教程》課件第六章_第2頁(yè)
《電氣控制基礎(chǔ)與可編程控制器應(yīng)用教程》課件第六章_第3頁(yè)
《電氣控制基礎(chǔ)與可編程控制器應(yīng)用教程》課件第六章_第4頁(yè)
《電氣控制基礎(chǔ)與可編程控制器應(yīng)用教程》課件第六章_第5頁(yè)
已閱讀5頁(yè),還剩569頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

6.1可編程控制器的指令結(jié)構(gòu)和指令系統(tǒng)6.2位邏輯指令6.3定時(shí)器和計(jì)數(shù)器指令6.4數(shù)據(jù)處理功能指令6.5數(shù)據(jù)運(yùn)算指令6.6控制指令思考題與習(xí)題第6章西門(mén)子S7-300系列PLC基本指令

主要內(nèi)容:

(1)掌握可編程控制器的編程語(yǔ)言。

(2)熟練掌握利用梯形圖、指令表進(jìn)行電氣控制設(shè)計(jì)的方法。

PLC是由取代繼電器接觸器控制系統(tǒng)開(kāi)始產(chǎn)生和發(fā)展的。隨著計(jì)算機(jī)技術(shù)的發(fā)展,PLC具有計(jì)算機(jī)控制系統(tǒng)的功能,例如算術(shù)運(yùn)算、數(shù)據(jù)處理指令、中斷等極為強(qiáng)大的功能。這些功能通常是通過(guò)各種功能指令的形式來(lái)實(shí)現(xiàn)的。實(shí)際上,現(xiàn)在的PLC就是一個(gè)計(jì)算機(jī)控制系統(tǒng)。為了滿(mǎn)足工業(yè)控制的需要,PLC生產(chǎn)廠家為PLC增添了過(guò)程控制、數(shù)據(jù)處理和特殊功能的指令,這些指令稱(chēng)為功能指令(FunctionInstruction)。功能指令的出現(xiàn),極大地拓寬了PLC的應(yīng)用范圍,增強(qiáng)了PLC編程的靈活性。功能指令的豐富程度及使用的方便程度是衡量PLC性能的一個(gè)重要指標(biāo)??删幊炭刂破魇怯捎布糠趾蛙浖糠纸M成的。其硬件原理已經(jīng)在4.5節(jié)中詳細(xì)講述過(guò),軟件可分為操作系統(tǒng)和用戶(hù)程序兩部分。操作系統(tǒng)是由PLC的生產(chǎn)廠家提供的,它用于支持和管理用戶(hù)程序,所以用戶(hù)只要會(huì)熟練應(yīng)用即可。用戶(hù)程序是用戶(hù)為了完成特定的任務(wù)而編寫(xiě)的應(yīng)用程序,所以先要知道在什么編程軟件下進(jìn)行自己的程序設(shè)計(jì)。對(duì)于西門(mén)子公司的SIMATICS7系列PLC,常用的編程軟件是STEP7,STEP7中有豐富的S7系列PLC的編程語(yǔ)言,通常我們使用的是梯形圖(LAD)、語(yǔ)句表(STL)和順控指令(GRAPH)等,另外,還有功能塊圖(FDB)、標(biāo)準(zhǔn)控制語(yǔ)言(SCL)、狀態(tài)圖(HiGraph)、連續(xù)功能圖(CFC)和STEP7的C語(yǔ)言等。在編程的過(guò)程中,用戶(hù)可以選擇上面所示的某一種語(yǔ)言進(jìn)行編程,也可以利用多種語(yǔ)言的優(yōu)點(diǎn)來(lái)進(jìn)行混合編程,使用戶(hù)的程序開(kāi)發(fā)、輸入和調(diào)試等工作變得極為方便。對(duì)于初學(xué)者,我們建議先從梯形圖(LAD)開(kāi)始學(xué)習(xí)。梯形圖具有直觀、簡(jiǎn)單等優(yōu)點(diǎn),并且在STEP7中,梯形圖可以轉(zhuǎn)換成為語(yǔ)句表(STL)和功能塊圖(FDB)。

在學(xué)習(xí)本章的過(guò)程中,用戶(hù)可以參照第9章的內(nèi)容進(jìn)行實(shí)際操作或者實(shí)驗(yàn),同時(shí)結(jié)合第2章~第4章進(jìn)行對(duì)比學(xué)習(xí),這樣對(duì)學(xué)習(xí)該章有很大的促進(jìn)作用。

可編程控制器的生產(chǎn)廠家很多,其型號(hào)眾多,不同的可編程控制器的指令都有區(qū)別,但是其指令的內(nèi)容基本是相同的。用戶(hù)程序是由若干條順序排列的指令組成的,指令是程序的最小獨(dú)立單位。對(duì)于不同的編程語(yǔ)言,如語(yǔ)句表和梯形圖,其指令也有所不同,分別稱(chēng)為語(yǔ)句指令和梯形圖邏輯指令。盡管不同的語(yǔ)言的表達(dá)形式不同,但是它們表達(dá)的內(nèi)容都是相同的。下面介紹S7的編程語(yǔ)言,即語(yǔ)句指令(STL)、梯形圖(LAD)和功能塊圖(FDB)。6.1可編程控制器的指令結(jié)構(gòu)和指令系統(tǒng)6.1.1指令簡(jiǎn)介

1.語(yǔ)句指令

語(yǔ)句指令類(lèi)似于計(jì)算機(jī)中的助記符語(yǔ)言,是PLC的最基礎(chǔ)的編程語(yǔ)言。指令表編程是用一系列指令來(lái)表達(dá)程序的控制要求。指令的格式為:

操作碼[操作數(shù)]

其中,方括號(hào)表示可選用。

指令表和梯形圖具有一定的對(duì)應(yīng)關(guān)系。如下為一語(yǔ)句指令:

AI0.0//把輸入繼電器I0.0和其他元件串聯(lián),即“與”其中:A(是And的縮寫(xiě))代表“與”,I0.0代表輸入繼電器0.0(I代表輸入,是單詞In的縮寫(xiě);0.0代表繼電器的序號(hào));“//”代表注釋?zhuān)虲語(yǔ)言中的“/*”作用是相同的。我們把A稱(chēng)為操作碼,I0.0稱(chēng)為操作數(shù)。每一條語(yǔ)句指令是由一個(gè)操作碼和一個(gè)操作數(shù)(地址)組成的。操作碼是必不可少的,表示了該做什么事情;操作數(shù)為具體的操作對(duì)象,可以是一符號(hào)名或絕對(duì)標(biāo)志,包括常數(shù),可編程控制器狀態(tài)字中的位、符號(hào)名、數(shù)據(jù)塊和數(shù)據(jù)塊區(qū)域中的單元、功能FC、功能塊FB、集成的系統(tǒng)功能SFC、集成的系統(tǒng)功能塊SFB及其編號(hào),地址標(biāo)識(shí)符和通過(guò)地址標(biāo)識(shí)符指出的存儲(chǔ)區(qū)單元。有些指令沒(méi)有操作數(shù),如以下語(yǔ)句指令:

NOT//對(duì)操作結(jié)果取反,即“非”

2.梯形圖邏輯指令

PLC梯形圖是在繼電器接觸器控制電路中的繼電器接觸器基礎(chǔ)上演變而來(lái)的,用圖形符號(hào)進(jìn)行編程,其中很多圖形符號(hào)和繼電器接觸器電路中的元件具有對(duì)應(yīng)關(guān)系。其編程思想也和繼電器接觸器控制電路的梯形圖基本一致,所以學(xué)習(xí)起來(lái)相對(duì)要方便一些。

梯形圖的內(nèi)容在4.2.2節(jié)中已做過(guò)介紹,這里不再贅述。

3.功能塊圖

功能塊圖(FBD)是一種與邏輯控制電路圖結(jié)構(gòu)相類(lèi)似的圖形編程語(yǔ)言。它類(lèi)似于“與”、“或”、“非”的邏輯電路結(jié)構(gòu)的編程方式。如用“&”來(lái)表示“與”邏輯操作等。FBD使用不同功能的“盒”,其中“盒”中的符號(hào)表示各種功能,就像邏輯方塊圖一樣,根據(jù)不同的方塊邏輯來(lái)表達(dá)控制任務(wù)。這種編程方式對(duì)計(jì)算機(jī)編程不熟悉的工程師來(lái)說(shuō)是相當(dāng)容易的。

圖6-1為邏輯功能塊圖。當(dāng)輸入“Key_1”和“Key_2”均為“1”時(shí),輸出“Green_Light”為“1”。

圖6-1邏輯功能塊圖6.1.2數(shù)據(jù)類(lèi)型

數(shù)據(jù)是程序處理和控制的對(duì)象,在程序中對(duì)所有的數(shù)據(jù)都要指定其數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu)是數(shù)據(jù)的組織形式。數(shù)據(jù)是通過(guò)變量來(lái)傳遞和存儲(chǔ)的。一個(gè)變量需要兩個(gè)要素,即變量的名稱(chēng)和變量的數(shù)據(jù)類(lèi)型。數(shù)據(jù)類(lèi)型決定了數(shù)據(jù)的屬性,包括其長(zhǎng)度、取值范圍等。STEP7中的數(shù)據(jù)類(lèi)型有基本數(shù)據(jù)類(lèi)型、復(fù)雜數(shù)據(jù)類(lèi)型和參數(shù)數(shù)據(jù)類(lèi)型三大類(lèi)。

1.基本數(shù)據(jù)類(lèi)型

STEP7中的基本數(shù)據(jù)類(lèi)型有12種,現(xiàn)分別介紹如下:

(1)位(Bit)。位數(shù)據(jù)的數(shù)據(jù)類(lèi)型為BOOL(布爾)型,如I0.0,Q0.1,M0.0,V0.1等。該類(lèi)型數(shù)據(jù)長(zhǎng)度為1位,取值只有True(或1)和False(或0),標(biāo)識(shí)符為X。它常用于開(kāi)關(guān)量的表示,如各種觸點(diǎn)等,觸點(diǎn)閉合為“1”,斷開(kāi)為“0”。

(2)字節(jié)(Byte)。一個(gè)字節(jié)(Byte)等于8位(Bit),其中0位為最低位,7位為最高位。如IB0(包括I0.0~I(xiàn)0.7位),QB0(包括Q0.0~Q0.7位),MB0(包括MB0.0~MB0.7位),VB0(包括VB0.0~VB0.7位)等。其范圍為00~FF(即十進(jìn)制的0~255),助記符為B。它在STEP7中的格式為B#16#0~B#16#FF。

(3)字(Word)。兩個(gè)字節(jié)(Byte)組成一個(gè)字(Word),用來(lái)表示一個(gè)無(wú)符號(hào)數(shù),因此,字為16位。如IW0是由IB0和IB1組成的,其中I是區(qū)域標(biāo)識(shí)符,W表示字,0是字的起始字節(jié)。需要注意的是,字的起始字節(jié)(如上例中的“0”)都必須是偶數(shù)。字的范圍為十六進(jìn)制的0000~FFFF(即十進(jìn)制的0~65536),助記符為W。在編程時(shí)要注意,如果已經(jīng)用了IW0,則再用IB0或IB1要特別加以小心,由于IB0和IB1的地址為IW0的低8位和高8位,可能使IW0的內(nèi)容發(fā)生變化。它在STEP7中的格式有以下幾種:二進(jìn)制表達(dá)式:2#0~2#1111_1111_1111_1111

十六進(jìn)制表達(dá)式:W#16#0000~W#16#FFFF

無(wú)符號(hào)十進(jìn)制表達(dá)式:B#(0,0)~B#(255,255)

BCD表達(dá)式:C#-999~C#999或C#0~C#999

(4)雙字(DoubleWord)。相鄰的兩個(gè)字(Word)組成一個(gè)雙字,用來(lái)表示一個(gè)無(wú)符號(hào)數(shù),因此,雙字為32位。如MD100是由MW100和MW102組成的,其中M是區(qū)域標(biāo)識(shí)符,D表示雙字,100是雙字的起始字節(jié)。需要注意的是,雙字的起始字節(jié)(如上例中的“100”)和字一樣,必須是偶數(shù)。雙字的范圍為十六進(jìn)制的0000~FFFFFFFF(即十進(jìn)制的0~4

294

967

295)

,助記符為DW。在編程時(shí)要注意,如果已經(jīng)用了MD100,則再用MW100或MW102要特別加以小心。以上的字節(jié)、字和雙字?jǐn)?shù)據(jù)類(lèi)型均為無(wú)符號(hào)數(shù),即只有正數(shù),沒(méi)有負(fù)數(shù)。雙字長(zhǎng)度為4字節(jié),其表達(dá)格式如下:

二進(jìn)制表達(dá)式:

2#0~2#1111_1111_1111_1111_1111_1111_1111_1111

十六進(jìn)制表達(dá)式:W#16#0000_0000~W#16#FFFF_FFFF

無(wú)符號(hào)十進(jìn)制表達(dá)式:B#(0,0,0,0)~B#(255,255,255,255)

(5)字符類(lèi)型(Char)。字符類(lèi)型用來(lái)表示ASCII字符,其長(zhǎng)度為1字節(jié),8位,如“A”、“a”等。

(6)單整數(shù)(Int)。單整數(shù)的長(zhǎng)度為雙字節(jié),取值范圍為-215~215-1(即-32

768~32

767)。整數(shù)為有符號(hào)數(shù),最高位為符號(hào)位,“1”表示負(fù)數(shù),“0”表示正數(shù)。

(7)長(zhǎng)整數(shù)(Dint)。32位整數(shù)和16位整數(shù)一樣,為有符號(hào)數(shù),最高位為符號(hào)位,“1”表示負(fù)數(shù),“0”表示正數(shù)。其長(zhǎng)度為4字節(jié),取值范圍為-231~231-1(即-2

147

483

648~

2

147

483

647)。它的表達(dá)式格式為L(zhǎng)#-2147483648~L#2147483647。

(8)實(shí)數(shù)(Real)。實(shí)數(shù)的長(zhǎng)度為4字節(jié),表達(dá)式格式為±3.402823E+38~±1.175495E-38,實(shí)數(shù)為32位,可以用來(lái)表示小數(shù)。實(shí)數(shù)可以表示為1.m

×

2e,且式中指數(shù)e

=

E

+

127

(1≤e≤254),為8位整數(shù),其存儲(chǔ)結(jié)構(gòu)如圖6-2所示。

圖6-2實(shí)數(shù)的存儲(chǔ)結(jié)構(gòu)

(9)定時(shí)器數(shù)(S5Time)。定時(shí)器數(shù)用來(lái)設(shè)置SIMATIC時(shí)間格式,長(zhǎng)度為2字節(jié),16位。其表達(dá)式格式為S5T#1H_10M_10S_20MS(定時(shí)時(shí)間為1小時(shí)10分鐘10秒鐘20毫秒)。S5時(shí)間常數(shù)的取值范圍(用特定格式表示)為S5T#0H_0M_0S_0MS~S5T#2H_46M_30S_0MS,即0ms~2h46ms30s0ms時(shí)間增量為10ms。

(10)時(shí)間數(shù)(Time)。時(shí)間數(shù)用來(lái)設(shè)置IEC時(shí)間格式(帶符號(hào)),分辨率為1ms,長(zhǎng)度為4字節(jié),32位。其取值范圍為T(mén)#-24D_20H_31M_23S_648MS~T#24D_20H_31M_23S_647MS。

(11)日期(Date)。日期用來(lái)設(shè)置IEC日期格式,分辨率為一天,長(zhǎng)度為4字節(jié),32位。其取值范圍為D#1990_1_1~D#2168_12_31。

(12)時(shí)間數(shù)(Time_Of_Day)。時(shí)間數(shù)用來(lái)設(shè)置24小時(shí)時(shí)間格式,分辨率為1ms,長(zhǎng)度為4字節(jié),32位。其表達(dá)式格式為T(mén)OD#0:0:0.0~TOD#23:59:59.999。

2.復(fù)雜數(shù)據(jù)類(lèi)型

復(fù)雜數(shù)據(jù)是由一些基本數(shù)據(jù)類(lèi)型組合而成的復(fù)合型數(shù)據(jù),或者是長(zhǎng)度超過(guò)32位的數(shù)據(jù)類(lèi)型。STEP7中的復(fù)雜數(shù)據(jù)類(lèi)型有以下7種。

(1)日期時(shí)間數(shù)據(jù)類(lèi)型(Date_And_Time)。該數(shù)據(jù)類(lèi)型用于存儲(chǔ)年、月、日、時(shí)、分、秒、毫秒和星期的數(shù)據(jù)。它占用8個(gè)字節(jié),使用BCD編碼。星期天代碼為1,星期一~星期六代碼分別為2~7。其取值范圍為DT#1990-1-1-0:0:0.0~DT#2089-12-31-23:59:59.999。

如:DT#2004-07-16-12:30:16.200為2004年7月16日12時(shí)30分16.2秒。

(2)字符串類(lèi)型(String)。字符串是由最多254個(gè)字符組成的一維數(shù)組。其最大長(zhǎng)度為256字節(jié),String類(lèi)型的前兩個(gè)字節(jié)存儲(chǔ)字符串長(zhǎng)度信息,因此一個(gè)String類(lèi)型的數(shù)據(jù)最多包含254個(gè)字符。其常數(shù)表示形式為有兩個(gè)單引號(hào)包括的字符串,如‘Abcde-300F’等。用戶(hù)在定義String類(lèi)型變量的時(shí)候也可以限定它的最大長(zhǎng)度,如String[8],表示該變量最多可以包含8個(gè)字符。

(3)數(shù)組類(lèi)型(Array)。將一組同一類(lèi)型的數(shù)據(jù)組合在一起組成一個(gè)單位就是數(shù)組。數(shù)組的維數(shù)最大可以到6維;數(shù)組中的元素可以是基本數(shù)據(jù)類(lèi)型或者附在數(shù)據(jù)類(lèi)型中的任一數(shù)據(jù)類(lèi)型,但是數(shù)組類(lèi)型不能嵌套。數(shù)組中的每一維的上、下標(biāo)取值范圍為-32768~32767,同時(shí)下標(biāo)須小于上標(biāo)。

數(shù)組的定義必須說(shuō)明數(shù)組的維數(shù)、元素類(lèi)型和每一維的上、下標(biāo)范圍。如A[1..3,1..5,1..4]表示3×5×4的三維數(shù)組,而A[1,2,3]表示數(shù)組中的一個(gè)元素。

(4)結(jié)構(gòu)類(lèi)型(Struct)。將一組不同類(lèi)型的數(shù)據(jù)組合在一起組成一個(gè)單位就是結(jié)構(gòu)。結(jié)構(gòu)類(lèi)型是由不同數(shù)據(jù)類(lèi)型組成的復(fù)合型數(shù)據(jù),用來(lái)定義某一組相關(guān)的數(shù)據(jù)。如定義電機(jī)的一組數(shù)據(jù)可以用如下方式:

Motor:STRUCT

Speed:INT

Current:REAL

END_STRUCT

(5)用戶(hù)定義類(lèi)型(UDT)。用戶(hù)定義的數(shù)據(jù)類(lèi)型(User-DefinedDataTypes,UDT)是由用戶(hù)將基本數(shù)據(jù)類(lèi)型和復(fù)合數(shù)據(jù)類(lèi)型組合在一起形成的數(shù)據(jù)類(lèi)型,用在數(shù)據(jù)塊(DB)和變量聲明表中定義復(fù)合數(shù)據(jù)類(lèi)型。同樣,該類(lèi)型也是由不同的數(shù)據(jù)類(lèi)型組合而成的復(fù)合數(shù)據(jù)類(lèi)型,UDT是一個(gè)模塊,可以用來(lái)定義其他變量。它在STEP

7中也是以模塊的形式存儲(chǔ)的,稱(chēng)為UDT塊(UDT1~UDT65535)。使用該類(lèi)型數(shù)據(jù)時(shí),在Blocks目錄下單擊鼠標(biāo)右鍵,在快捷菜單中選擇InsertNewObject/DataType,就可以建立一個(gè)UDT塊,以后就可以將一個(gè)變量聲明成為UDT類(lèi)型。

(6)

FB功能塊型。該數(shù)據(jù)類(lèi)型僅可以在FB的靜態(tài)變量區(qū)定義,用于實(shí)現(xiàn)多背景數(shù)據(jù)塊。

(7)

SFB順序功能塊型。該數(shù)據(jù)類(lèi)型同F(xiàn)B功能塊型。

3.參數(shù)數(shù)據(jù)類(lèi)型

該類(lèi)型是一種用于FC或FB的參數(shù)的數(shù)據(jù)類(lèi)型,是為在邏輯塊之間傳遞參數(shù)的形參(FormalParameter,形式參數(shù))定義的數(shù)據(jù)類(lèi)型。其主要包括以下幾種。

(1)

Timer/Counter:定時(shí)器/計(jì)數(shù)器類(lèi)型。

(2)

BLOCK_FB/BLOCK_FC/BLOCK_DB/BLOCK_SDB:塊類(lèi)型。

(3)

Pointer:6字節(jié)指針類(lèi)型,傳遞DB塊號(hào)和數(shù)據(jù)地址。

(4)

Any:10字節(jié)指針類(lèi)型,傳遞DB塊號(hào)、數(shù)據(jù)地址、數(shù)據(jù)數(shù)量以及數(shù)據(jù)類(lèi)型。

使用以上數(shù)據(jù)類(lèi)型時(shí),可以把定時(shí)器、計(jì)數(shù)器、程序塊、數(shù)據(jù)塊,甚至不確定類(lèi)型和長(zhǎng)度的數(shù)據(jù)通過(guò)參數(shù)傳遞給FC和FB。參數(shù)類(lèi)型為程序提供了很高的靈活性,可以實(shí)現(xiàn)更通用的控制功能。6.1.3操作數(shù)和存儲(chǔ)區(qū)功能

1.操作數(shù)

操作數(shù)是一條指令的地址,指一個(gè)常數(shù)或指令能找到一個(gè)數(shù)值(數(shù)據(jù)對(duì)象)的位置,指令可對(duì)該數(shù)進(jìn)行操作。該地址可以是一符號(hào)名或絕對(duì)標(biāo)志。地址可為下面的任意一項(xiàng)。

(1)常數(shù)。常數(shù)即定時(shí)器或計(jì)數(shù)器的數(shù)值,或一待裝入累加器1的ASCII碼字符串,見(jiàn)表6-1。

表6-1操作數(shù)(2)可編程控制器狀態(tài)字中的位。語(yǔ)句表指令的地址可以是PLC狀態(tài)字中的一個(gè)或多個(gè)位。指令檢查并影響狀態(tài)字中單個(gè)位的狀態(tài),或解釋狀態(tài)字中兩個(gè)位的組合,如表6-2所示。

表6-2可編程控制器狀態(tài)字中的位(3)符號(hào)名。在STL中僅能使用已聲明過(guò)的符號(hào)名,包括已輸入到符號(hào)表中的共享符號(hào)名和塊中的局部名,如表6-3所示。表6-3符號(hào)名(4)數(shù)據(jù)塊和數(shù)據(jù)塊區(qū)域中的單元、功能(FC)、功能塊(FB)、集成的系統(tǒng)功能(SFC)、集成的系統(tǒng)功能塊(SFB)及編號(hào),如表6-4所示表6-4數(shù)據(jù)塊(5)地址標(biāo)識(shí)符和通過(guò)地址標(biāo)識(shí)符表示的存儲(chǔ)區(qū)單元。一個(gè)地址標(biāo)識(shí)符可以是以下三個(gè)基本類(lèi)型之一:

①指明PLC中存儲(chǔ)區(qū)域和該區(qū)域中數(shù)據(jù)對(duì)象大小的地址標(biāo)識(shí)符,見(jiàn)表6-5。存儲(chǔ)區(qū)是指令能在其中尋找到一個(gè)值(數(shù)據(jù)對(duì)象)并對(duì)它進(jìn)行操作的區(qū)域(如“I”指輸入過(guò)程暫存區(qū)),數(shù)值(數(shù)據(jù)對(duì)象)的大小是指令對(duì)其進(jìn)行操作的長(zhǎng)度(如“B”指字節(jié),“W”指字,“D”指雙字)。

表6-5指明存儲(chǔ)區(qū)域和數(shù)據(jù)對(duì)象大小的地址標(biāo)識(shí)符②指明一個(gè)存儲(chǔ)區(qū)域,但沒(méi)有該區(qū)域中數(shù)據(jù)對(duì)象大小的地址標(biāo)識(shí)符(如一個(gè)標(biāo)識(shí)符表示區(qū)域,T指定時(shí)器,C指計(jì)數(shù)器,DB指數(shù)據(jù)塊,并加上這些定時(shí)器、計(jì)數(shù)器、數(shù)據(jù)塊的編號(hào)),見(jiàn)表6-6。表6-6指明存儲(chǔ)區(qū),但沒(méi)有數(shù)據(jù)對(duì)象大小的地址標(biāo)識(shí)符③指明一個(gè)數(shù)據(jù)對(duì)象的大小,但無(wú)存儲(chǔ)區(qū)域的地址標(biāo)識(shí)符,見(jiàn)表6-7。其實(shí)它的存儲(chǔ)區(qū)域已經(jīng)在跟隨地址標(biāo)識(shí)符的存儲(chǔ)單元中編碼了存儲(chǔ)區(qū)單元,如表6-8所示。表6-7指明數(shù)據(jù)對(duì)象大小,但無(wú)存儲(chǔ)區(qū)域的地址標(biāo)識(shí)符表6-8包括地址標(biāo)識(shí)符和地址單元的地址

(6)字或雙字作為數(shù)據(jù)對(duì)象的應(yīng)用。如果運(yùn)用一條指令的地址標(biāo)識(shí)符指明可編程邏輯控制器(PLC)中的存儲(chǔ)區(qū)域,并且它的數(shù)據(jù)對(duì)象大小是一個(gè)字或雙字,則必須注意這里的存儲(chǔ)單元總是指一個(gè)字節(jié)單元,如圖6-3和6-4所示。這個(gè)字節(jié)單元是字或雙字最低的字節(jié)號(hào),如圖6-4中的地址指在存儲(chǔ)區(qū)域M中四個(gè)連續(xù)的字節(jié),它從字節(jié)10(MB10)開(kāi)始到字節(jié)13(MB13)結(jié)束。

圖6-3以字節(jié)單元注明存儲(chǔ)單元的例子

圖6-4數(shù)據(jù)對(duì)象的大小雙字:存儲(chǔ)區(qū)雙字MD10。

字:存儲(chǔ)區(qū)字MW10、MW12。

字節(jié):存儲(chǔ)區(qū)字節(jié)MB10、MB11、MB12、MB13。

當(dāng)絕對(duì)地址的寬度為字或雙字時(shí),要保證沒(méi)有指定任何字節(jié),以免造成重疊。

(7)存儲(chǔ)器單元。地址標(biāo)識(shí)符的地址屬于以下兩種類(lèi)型之一:

①在規(guī)定存儲(chǔ)區(qū)域中的單元(如1.0在地址I1.0中指“輸入模塊1,輸入0位”)。

②在局部存儲(chǔ)區(qū)域、數(shù)據(jù)區(qū)或地址寄存器中的單元(如[AR1,P#4.3]指在地址寄存器1中的數(shù)值,加上4個(gè)字節(jié),3個(gè)位)。前面介紹了操作碼和操作數(shù),操作數(shù)是由標(biāo)識(shí)符和參數(shù)組成的,如I0.0,I0.1,I0.2和Q0.0等。從控制線路來(lái)說(shuō),操作數(shù)代表了某一個(gè)或者某一組元件,和低壓電器元件類(lèi)似,區(qū)別是一個(gè)是軟元件,一個(gè)是硬件的元件。從PLC角度來(lái)說(shuō),操作數(shù)代表了I/O口的某一個(gè)地址或者內(nèi)部的某一個(gè)軟元件(如中間繼電器等)。從PLC內(nèi)部來(lái)說(shuō),操作數(shù)表示了其在內(nèi)存中的具體地址,其中標(biāo)識(shí)符表示內(nèi)存的某一區(qū)域,參數(shù)表示該區(qū)域中的具體位置。梯形圖和語(yǔ)句指令中均有操作數(shù)。對(duì)于梯形圖,操作數(shù)在梯形圖指令符號(hào)的上方;對(duì)于語(yǔ)句指令,操作數(shù)在操作碼的后面。在學(xué)習(xí)過(guò)程中,可以認(rèn)為操作數(shù)是某一個(gè)元件。標(biāo)識(shí)符由主標(biāo)識(shí)符和輔助標(biāo)識(shí)符構(gòu)成。其中:主標(biāo)識(shí)符表示元件的類(lèi)型,也表示操作數(shù)在內(nèi)存中的區(qū)域,如表6-9所示;輔助標(biāo)識(shí)符代表操作數(shù)的位數(shù),如一個(gè)字節(jié)或者兩個(gè)字節(jié)等,對(duì)于單字節(jié)長(zhǎng)度的標(biāo)識(shí)符是沒(méi)有輔助標(biāo)識(shí)符的,如表6-10所示。

表6-9主標(biāo)識(shí)符表6-10輔助輸入標(biāo)識(shí)符上面所講到的操作數(shù)使用的是絕對(duì)地址,也就是PLC的存儲(chǔ)區(qū)域的物理地址,該地址的參數(shù)范圍可在STEP7硬件組態(tài)中直接查閱。圖6-5所示為硬件地址的查閱,其中開(kāi)關(guān)量輸入為I124.0~I(xiàn)126.7,輸出為Q124.0~Q125.7(注意:每一個(gè)地址代表0~7八位)。而模擬量的輸入為PIW752~PIW761,計(jì)數(shù)器為C768~C783等。

圖6-5STEP7硬件組態(tài)圖編程人員希望使用一些有意義的符號(hào)來(lái)表示元件,如“啟動(dòng)按鈕”和“停止按鈕”等符號(hào),這是符號(hào)地址的表示方法,該方法可以增強(qiáng)程序的可讀性和方便的修改能力,特別是對(duì)比較大的程序更有意義。所以在編程過(guò)程中希望能夠使用符號(hào)地址,符號(hào)地址必須先定義,也就是和絕對(duì)地址相對(duì)應(yīng),然后才能使用。對(duì)于不同的元件不能使用相同的符號(hào)地址,當(dāng)然,作為符號(hào)地址,一方面要表示元件的具體意義,同時(shí)也要將操作數(shù)的其他信息表達(dá)清楚,方便以后更改和編程。

2.存儲(chǔ)區(qū)

S7系列PLC的存儲(chǔ)區(qū)分為系統(tǒng)存儲(chǔ)區(qū)、裝載存儲(chǔ)區(qū)和工作存儲(chǔ)器三個(gè)基本存儲(chǔ)區(qū)。CPU可以通過(guò)輸入/輸出的映像存儲(chǔ)區(qū)來(lái)訪問(wèn)對(duì)應(yīng)的I/O口,所以操作數(shù)實(shí)際是I/O口的映像存儲(chǔ)區(qū)的實(shí)際物理地址。通過(guò)對(duì)映像存儲(chǔ)區(qū)的訪問(wèn)就可以訪問(wèn)相應(yīng)的I/O口。S7系列PLC的存儲(chǔ)區(qū)域及其功能見(jiàn)表6-11。

表6-11存儲(chǔ)區(qū)域及其功能續(xù)表續(xù)表在SIMATICS7系列可編程控制器中,梯形圖(LAD)可以和語(yǔ)句指令(STL)直接轉(zhuǎn)換。另外,電氣控制電路向梯形圖轉(zhuǎn)換是很方便的,所以本章主要講述梯形圖邏輯指令。6.1.4尋址方式

在STEP7中,操作數(shù)可以是常數(shù)、S7狀態(tài)字的狀態(tài)位、各種寄存器、數(shù)據(jù)塊(DB)、功能塊(FB和FC)、系統(tǒng)功能塊(SFB和SFC)以及S7中的各存儲(chǔ)區(qū)中的單元。

尋址方式是指指令如何得到操作數(shù)的各種方式,對(duì)于操作數(shù),在指令中可以直接給出,也可以間接給出。S7有四種尋址方式,即立即尋址、直接尋址、存儲(chǔ)器間接尋址和寄存器間接尋址。

1.立即尋址

立即尋址的指令直接跟著它要操作的數(shù)值,或者操作數(shù)本身也可直接包含在指令中。立即尋址用于對(duì)常數(shù)或者常量的尋址。如:

SET //將RLO置“1”,RLO是Resultof LogicOperation的縮寫(xiě)

OW W#16#A320 //將字常量W#16#A320與累加器 1“或”運(yùn)算

L 30 //把整數(shù)30裝入累加器1中,L是 Load的縮寫(xiě)

L ‘ABC’ //把ASCII碼字符ABC裝入累加器1中

L B#(100,12) //將字100和12裝入累加器1中

L C#0100 //把BCD碼常數(shù)0100裝入累加器1中

2.直接尋址

直接尋址是對(duì)寄存器和存儲(chǔ)器的直接尋址,直接尋址中直接給出操作數(shù)的存儲(chǔ)單元地址。用于直接尋址的指令具有以下兩部分的地址,它們指明指令將要處理的數(shù)值單元:地址標(biāo)識(shí)符(如“IB”指輸入字節(jié))和地址標(biāo)識(shí)符指明的在存儲(chǔ)區(qū)域中確切的單元地址直接指向數(shù)值的單元。如:

A I0.0 //對(duì)輸入位I0.0進(jìn)行“與”邏輯操作

S L20.0 //把本地?cái)?shù)據(jù)位L20.0置“1”,L為L(zhǎng)ocal的 縮寫(xiě),意為本地?cái)?shù)據(jù)

= M0.0 //把RLO結(jié)果存于M0.0中

L IB10 //把輸入字節(jié)IB10的內(nèi)容裝入累加器1

T DBD12 //把累加器1中的內(nèi)容傳送給數(shù)據(jù)雙字 DBD12中

3.存儲(chǔ)器間接尋址

存儲(chǔ)器間接尋址指令中的存儲(chǔ)器中的內(nèi)容為操作數(shù)所在存儲(chǔ)單元的地址,該地址也稱(chēng)為地址指針。用于存儲(chǔ)器間接尋址的指令具有以下兩部分的地址,它們指明指令將要處理的數(shù)值單元:地址標(biāo)識(shí)符(如“IB”指輸入字節(jié))和以下指針之一:

字:包含了定時(shí)器(T)、計(jì)數(shù)器(C)、數(shù)據(jù)塊(B)、功能(FC)、功能塊(FB)的編號(hào)。

雙字:包含了地址標(biāo)識(shí)符指明的在存儲(chǔ)區(qū)域中確切的數(shù)值單元地址,通過(guò)指針指明數(shù)值或編號(hào)的單元。字或雙字應(yīng)在位存儲(chǔ)區(qū)(M)、背景數(shù)據(jù)塊(DIB)、數(shù)據(jù)塊(DB)和局部數(shù)據(jù)(L)的區(qū)域之中。

存儲(chǔ)器間接尋址的好處是當(dāng)程序執(zhí)行時(shí)能動(dòng)態(tài)地修改語(yǔ)句的地址。

當(dāng)用一個(gè)存放在數(shù)據(jù)塊中的存儲(chǔ)器間接尋址時(shí),必須首先用打開(kāi)數(shù)據(jù)塊指令(OPEN)打開(kāi)數(shù)據(jù)塊,這樣就可以用字或雙字作為一個(gè)間接地址,如:

OPENDB10

LIB[DBDZO]

又如:

AI[MD2] //對(duì)由MD2指出的輸入位進(jìn)行“與” 邏輯操作

=DIX[DBD2] //把RLO結(jié)果賦值給數(shù)據(jù)位,具體 數(shù)據(jù)由數(shù)據(jù)雙字DBD2

//指出

LIB[DID4] //把由數(shù)據(jù)雙字DID4指出的輸入 字節(jié)裝入累加器1中

OQ[LD3] //把本地?cái)?shù)據(jù)雙字指出的輸出位進(jìn) 行“或”邏輯操作

4.寄存器間接尋址

在用STL編程時(shí),有些間接尋址類(lèi)型需要使用CPU中的某些寄存器。S7中有兩個(gè)地址寄存器AR1和AR2。地址寄存器的內(nèi)容加上偏移量形成地址指針,該指針可以指向數(shù)據(jù)所在的存儲(chǔ)單元。寄存器間接尋址分為區(qū)域內(nèi)寄存器間接尋址和區(qū)域間寄存器間接尋址兩種。如:

AI[AR1,P#4.3] //對(duì)輸入位進(jìn)行“與”操作, 存儲(chǔ)單元為AR1的內(nèi)容加4

//字節(jié)3位計(jì)算

TLD[AR2,P#56.0] //將累加器1的內(nèi)容傳送給數(shù)據(jù)雙 字LD,存儲(chǔ)單元為AR2

//內(nèi)容加56字節(jié)加0位

LP#8.7 //裝載指向位地址單元8.7的雙字 指針至累加器16.1.5CPU的寄存器

1.累加器

S7-300系列PLC有兩個(gè)32位累加器,如圖6-6所示,它們是通用寄存器,用來(lái)處理位、字節(jié)、字和雙字。累加器可以裝載常數(shù)或裝載作為地址的存儲(chǔ)區(qū)的數(shù)據(jù)并對(duì)它們做邏輯運(yùn)算,也可把累加器1中的操作結(jié)果傳送到存儲(chǔ)區(qū)單元。操作指令對(duì)其影響如下:

(1)裝載指令總是影響累加器1,且把舊的內(nèi)容存入累加器2。

(2)傳送指令不改變累加器中的內(nèi)容(除TAR1和TAR2指令之外)。

(3)

TAK指令對(duì)換累加器1和累加器2中的內(nèi)容。

圖6-6累加器

2.狀態(tài)字

狀態(tài)字表示了CPU在執(zhí)行指令時(shí)的狀態(tài),有些指令的執(zhí)行會(huì)影響到狀態(tài)字中的某些位,同樣指令的執(zhí)行也會(huì)受到狀態(tài)字的影響。狀態(tài)字可以在位邏輯指令和字邏輯指令中訪問(wèn)并檢測(cè)。狀態(tài)字的結(jié)構(gòu)如圖6-7所示。

圖6-7狀態(tài)字的結(jié)構(gòu)

1)

/FC(首次檢測(cè)位)

CPU對(duì)邏輯串第一條指令的檢測(cè)產(chǎn)生的結(jié)果存于RLO中,該結(jié)果稱(chēng)為首次檢測(cè)結(jié)果。若該位為“0”,表示一個(gè)梯形圖邏輯網(wǎng)絡(luò)的開(kāi)始或者語(yǔ)句指令的第一條指令。也就是說(shuō),/FC在邏輯串的開(kāi)始時(shí)為“0”,在邏輯串的執(zhí)行過(guò)程中為“1”,當(dāng)一個(gè)邏輯串結(jié)束時(shí)(如輸出或者跳轉(zhuǎn)等),/FC被清0。

2)

RLO(邏輯操作結(jié)果)

該位用來(lái)存儲(chǔ)邏輯指令或者算術(shù)比較指令的邏輯結(jié)果。RLO的狀態(tài)可以表示有關(guān)信號(hào)流的信息。當(dāng)RLO為“1”時(shí),表示有信號(hào)流(接通);當(dāng)RLO為“0”時(shí),表示無(wú)信號(hào)流(斷開(kāi))。RLO結(jié)果可以在定時(shí)器、計(jì)數(shù)器等上作為觸發(fā)信號(hào)。

3)

STA(狀態(tài)位)

該位不能用指令來(lái)檢測(cè),僅在程序測(cè)試中被CPU解釋并使用。若一條指令是對(duì)存儲(chǔ)區(qū)操作的位邏輯指令,則無(wú)論是對(duì)該位進(jìn)行讀或?qū)懖僮鳎琒TA總是與該位的值取得一致;對(duì)不訪問(wèn)存儲(chǔ)區(qū)的位邏輯指令來(lái)說(shuō),STA沒(méi)有意義,此時(shí),它總被置位為“1”。

4)

OR(或位)

在先邏輯“與”后邏輯“或”的邏輯串操作中,OR位暫存邏輯“與”的操作結(jié)果,以便進(jìn)行后面的邏輯“或”運(yùn)算。其他指令將OR位清0。

5)

OV(溢出位)

當(dāng)一個(gè)算術(shù)運(yùn)算或?qū)崝?shù)比較指令執(zhí)行時(shí)出現(xiàn)溢出、非法操作和不規(guī)范格式時(shí),該位被置1。若后面的算術(shù)運(yùn)算或?qū)崝?shù)比較指令執(zhí)行結(jié)果正常,則OV位就被清0。

6)

OS(溢出狀態(tài)保持位)

當(dāng)OV位被置為“1”時(shí),OS位也被置為“1”;當(dāng)OV位被清0時(shí),OS位保持為“1”。該位用來(lái)表明先前一些指令執(zhí)行中是否產(chǎn)生過(guò)錯(cuò)誤。只有JOS(OS為“1”時(shí)跳轉(zhuǎn))、塊調(diào)用指令和塊結(jié)束指令才能使該位復(fù)位。

7)

CC1和CC0(條件碼1和條件碼0)

這兩位結(jié)合起來(lái)表示累加器1中產(chǎn)生的算術(shù)運(yùn)算或邏輯運(yùn)算結(jié)果與0的大小關(guān)系。表6-12所示為算術(shù)運(yùn)算后的結(jié)果與0比較的結(jié)果。比較指令、移位指令的狀態(tài)如表6-13所示。

表6-12CC1和CC0(條件碼1和條件碼0)表6-13比較指令、移位指令的狀態(tài)8)

BR(二進(jìn)制結(jié)果位)

該位用在一段既有位操作又有字操作的程序中,以表示字操作結(jié)果是否正常。把BR位加入程序中,無(wú)論字操作結(jié)果如何,均不會(huì)使二進(jìn)制邏輯鏈中斷。在LAD的方塊指令中,BR位與ENO有對(duì)應(yīng)關(guān)系,用于表明方塊指令是否被正確執(zhí)行。當(dāng)出現(xiàn)錯(cuò)誤時(shí),BR和ENO為“0”;當(dāng)無(wú)錯(cuò)誤時(shí),BR和ENO均為“1”。

在用戶(hù)編寫(xiě)的FB和FC中,須對(duì)BR位進(jìn)行管理。當(dāng)功能塊正確運(yùn)行時(shí),BR位為“1”,否則為“0”。在STL和LAD的SAVE指令中,將RLO結(jié)果存入BR位中。

位邏輯指令處理兩個(gè)數(shù)字,即“1”和“0”。這兩個(gè)數(shù)字是構(gòu)成二進(jìn)制數(shù)字系統(tǒng)的基礎(chǔ),稱(chēng)為二進(jìn)制數(shù)字或二進(jìn)制位。位邏輯指令主要對(duì)BOOL類(lèi)型(即“0”和“1”)的操作數(shù)進(jìn)行操作,這一點(diǎn)和繼電器接觸器控制系統(tǒng)中的觸點(diǎn)或者線圈等相似。在接點(diǎn)與線圈領(lǐng)域,“1”表示動(dòng)作或通電,“0”表示未動(dòng)作或未通電。如常閉觸點(diǎn)在未動(dòng)作前為“1”,在動(dòng)作后為“0”;常開(kāi)觸點(diǎn)在得電之前為“0”,在得電以后為“1”。6.2位?邏?輯?指?令位邏輯指令掃描信號(hào)狀態(tài)“1”和“0”,并根據(jù)布爾邏輯對(duì)“0”和“1”進(jìn)行布爾運(yùn)算等操作,經(jīng)過(guò)操作后的結(jié)果也是邏輯值“0”或者“1”。結(jié)果將會(huì)置于位RLO中。邏輯運(yùn)算有或、與、非及其組合。下面我們對(duì)位邏輯指令進(jìn)行逐一講解。由位邏輯指令觸發(fā)的邏輯操作可執(zhí)行各種類(lèi)型的功能,如用位邏輯來(lái)觸發(fā)定時(shí)器、計(jì)數(shù)器等。

可執(zhí)行下列功能的位邏輯指令如下:

——||—— 常開(kāi)觸點(diǎn)(地址)

——|/|—— 常閉觸點(diǎn)(地址)

——(SAVE) 將RLO存入BR存儲(chǔ)器

XOR 位異或

——() 輸出線圈

——(#)—— 中間輸出

——|NOT|—— 信號(hào)流反向當(dāng)RLO為1時(shí),下列指令起作用,并執(zhí)行其相應(yīng)的功能:

——(S) 線圈置位

——(R) 線圈復(fù)位

SR 置位復(fù)位觸發(fā)器

RS 復(fù)位置位觸發(fā)器

對(duì)上升沿和下降沿有反應(yīng)的指令有:

——(N)—— RLO下降沿檢測(cè)

——(P)—— RLO上升沿檢測(cè)

NEG 地址下降沿檢測(cè)

POS 地址上升沿檢測(cè)

PIB/PIW 立即讀操作

PQB/PQW 立即寫(xiě)操作6.2.1位邏輯運(yùn)算和輸出指令

1.常開(kāi)和常閉觸點(diǎn)指令

常開(kāi)觸點(diǎn)指令和常閉觸點(diǎn)指令,相當(dāng)于繼電器接觸器系統(tǒng)中的常開(kāi)觸點(diǎn)和常閉觸點(diǎn)。

常開(kāi)觸點(diǎn)指令和常閉觸點(diǎn)指令的LAD和STL形式及功能如表6-14所示。

——||——

為常開(kāi)觸點(diǎn)指令。當(dāng)該指令上方的地址中的值為“1”時(shí),表示觸點(diǎn)閉合。當(dāng)觸點(diǎn)閉合時(shí),電流可以流過(guò)該元件,并且邏輯運(yùn)算結(jié)果(RLO)為“1”。相反,當(dāng)該指令上方的地址中的值為“0”時(shí),表示觸點(diǎn)斷開(kāi)。當(dāng)觸點(diǎn)斷開(kāi)時(shí),電流無(wú)法通過(guò)該元件,并且邏輯運(yùn)算結(jié)果(RLO)為“0”。

表6-14常開(kāi)和常閉觸點(diǎn)指令的形式及功能——|/|——為常閉觸點(diǎn)指令。當(dāng)該指令上方的地址中的值為“0”時(shí),表示觸點(diǎn)閉合。當(dāng)觸點(diǎn)閉合時(shí),電流可以流過(guò)該元件,并且邏輯運(yùn)算結(jié)果(RLO)為“1”。當(dāng)該指令上方的地址中的值為“1”時(shí),表示觸點(diǎn)斷開(kāi)。當(dāng)觸點(diǎn)斷開(kāi)時(shí),電流無(wú)法通過(guò)該元件,并且邏輯運(yùn)算結(jié)果(RLO)為“0”。在語(yǔ)句指令中,這兩個(gè)指令在串聯(lián)使用時(shí),使用邏輯“與”指令來(lái)表示RLO,并聯(lián)使用時(shí),使用邏輯“或”指令來(lái)表示RLO。

對(duì)于常開(kāi)觸點(diǎn),我們通常使用A或O來(lái)表示。其中:操作碼A代表邏輯“與”,是And的縮寫(xiě),對(duì)應(yīng)于串聯(lián)的常開(kāi)觸點(diǎn);操作碼O代表邏輯“或”,是Or的縮寫(xiě),對(duì)應(yīng)于并聯(lián)的常開(kāi)觸點(diǎn)。對(duì)于常閉觸點(diǎn),使用操作碼AN或ON來(lái)描述。其中:AN代表邏輯“與非”,是AndNot的縮寫(xiě),對(duì)應(yīng)于串聯(lián)的常閉觸點(diǎn);操作碼ON代表邏輯“或非”,是OrNot的縮寫(xiě),對(duì)應(yīng)于并聯(lián)的常閉觸點(diǎn)。

這兩個(gè)指令對(duì)狀態(tài)字的影響如表6-15所示。

表6-15常開(kāi)和常閉觸點(diǎn)指令對(duì)狀態(tài)字的影響

【例6-1】

圖6-8所示為常開(kāi)觸點(diǎn)指令的用法。

相應(yīng)的語(yǔ)句為:

A(

O I0.0 //并聯(lián)常開(kāi)觸點(diǎn)I0.0

O I0.2 //并聯(lián)常開(kāi)觸點(diǎn)I0.2

) //并聯(lián)塊

A I0.1 //串聯(lián)觸點(diǎn)I0.1

圖6-8常開(kāi)觸點(diǎn)指令應(yīng)用舉例該圖的邏輯關(guān)系為:當(dāng)輸入I0.0或者I0.2為“1”,并且I0.1為“1”時(shí),RLO(結(jié)果)為“1”;當(dāng)I0.0和I0.2都為“0”,或者I0.1為“0”時(shí),RLO為“0”。即:RLO=(I0.0+I0.2)I0.1。

【例6-2】

圖6-9所示為常閉觸點(diǎn)指令的用法。

相應(yīng)的語(yǔ)句為:

A(

O I0.0 //并聯(lián)常開(kāi)觸點(diǎn)I0.0

ON I0.0 //并聯(lián)常閉觸點(diǎn)I0.0,和上一條指 令共同代表“1”

) //并聯(lián)塊

A I0.1 //串聯(lián)觸點(diǎn)I0.1

邏輯關(guān)系為:RLO=(I0.0+)I0.2。

圖6-9常閉觸點(diǎn)指令應(yīng)用舉例2.輸出線圈指令

輸出線圈指令的LAD和STL形式及功能如表6-16所示。

表6-16輸出線圈指令的形式及功能——()為輸出線圈指令,用來(lái)表示輸出,它和繼電器或接觸器的線圈相似。當(dāng)輸出結(jié)果RLO為“1”時(shí),表示該線圈中流過(guò)電流,輸出為“1”;當(dāng)RLO為“0”時(shí),表示線圈斷電,輸出為“0”。該元件只能放在梯形圖的最右端,并且可以使用多達(dá)16個(gè)線圈作為輸出。使用——|NOT|——(翻轉(zhuǎn)電流)指令可以使輸出翻轉(zhuǎn),即“1”變?yōu)椤?”,“0”變?yōu)椤?”。在語(yǔ)句指令中,輸出指令用符號(hào)“=”來(lái)表示。

該指令在一個(gè)被激活的MCR(主控繼電器)區(qū)中,當(dāng)電流流過(guò)該元件時(shí),該元件被置位,而如果MCR區(qū)關(guān)閉,則無(wú)論是否有電流流過(guò),該指令上的地址均為“0”。

該指令對(duì)狀態(tài)字的影響如表6-17所示。表6-17輸出線圈指令對(duì)狀態(tài)字的影響

【例6-3】

圖6-10所示為輸出線圈指令的用法。

語(yǔ)句指令如下:

A I0.0 //串聯(lián)常開(kāi)觸點(diǎn)I0.0

A I0.1 //串聯(lián)常開(kāi)觸點(diǎn)I0.1

ON I0.2 //并聯(lián)常閉觸電I0.2

= L20.0 //輸出給本地?cái)?shù)據(jù)L20.0

A L20.0 //取L20.0

BLD 102

= Q4.0 //輸出給線圈Q4.0

A L20.0 //取L20.0

A I0.3 //串聯(lián)I0.3

= Q4.1 //輸出給線圈Q4.1

圖6-10輸出線圈指令應(yīng)用舉例當(dāng)輸入I0.0和I0.1的狀態(tài)均為“1”或輸入I0.2的狀態(tài)為“0”時(shí),則輸出信號(hào)Q4.0的狀態(tài)為“1”。

當(dāng)輸入I0.0和I0.1的狀態(tài)均為“1”或輸入I0.2的狀態(tài)為“0”,并且輸入I0.3的狀態(tài)為“1”時(shí),則輸出信號(hào)Q4.1的狀態(tài)為“1”。

【例6-4】

如圖2-11為三相交流異步電動(dòng)機(jī)的啟動(dòng)、停止和保護(hù)的繼電器接觸器控制電路。在此用梯形圖來(lái)表示。

(1)將電氣控制梯形圖轉(zhuǎn)化為PLC梯形圖,并對(duì)相應(yīng)的元件分配地址。在此我們給啟動(dòng)按鈕分配地址I0.0,給停止按鈕分配地址I0.1,給接觸器分配地址Q(chēng)0.0,暫時(shí)不考慮保護(hù)電路。轉(zhuǎn)換后的梯形圖如圖6-11所示。

圖6-11轉(zhuǎn)換后的PLC梯形圖

(2)按照梯形圖轉(zhuǎn)化為的語(yǔ)句指令如下:

OI0.0 //取并聯(lián)常開(kāi)觸點(diǎn)I0.0

OQ0.0 //并聯(lián)常開(kāi)觸點(diǎn)Q0.0

AI0.1 //串聯(lián)常閉觸點(diǎn)I0.1

=Q0.0 //將結(jié)果賦給線圈Q0.0

注意:

Q0.0就像接觸器或者繼電器一樣,既有線圈,又有觸點(diǎn)。

//

表示后面為注釋語(yǔ)句。

STEP7具有梯形圖和語(yǔ)句指令等語(yǔ)言的自動(dòng)轉(zhuǎn)換功能。

3.將RLO存入BR存儲(chǔ)器指令

——(SAVE)(將RLO存入BR存儲(chǔ)器指令,也稱(chēng)SAVE指令)可以將RLO存儲(chǔ)到狀態(tài)字的BR位。該指令首先檢查位/FC是否復(fù)位,然后將BR位的狀態(tài)在下一程序段的與(AND)邏輯運(yùn)算中包含。

對(duì)于在LAD、FBD、STL中的SAVE指令,因?yàn)槠渲腥魏我粋€(gè)指令均可能改變BR位,所以盡量不要在同一個(gè)程序塊或者附屬的程序塊中使用SAVE指令和BR位,但是可以使用BR位來(lái)測(cè)試上一個(gè)程序塊中的SAVE指令。

SAVE指令對(duì)狀態(tài)字的影響如表6-18所示。

表6-18SAVE指令對(duì)狀態(tài)字的影響

【例6-5】

圖6-12所示為SAVE指令的用法。

語(yǔ)句指令如下:

A I0.0 //取常開(kāi)觸點(diǎn)I0.0

A I0.1 //串聯(lián)常開(kāi)觸點(diǎn)I0.1

O I0.2 //并聯(lián)常開(kāi)觸點(diǎn)I0.2

SAVE //將結(jié)果保存在BR位中

該程序?qū)LO的狀態(tài)存儲(chǔ)于BR位中。圖6-12SAVE指令應(yīng)用舉例

4.異或指令XOR

該指令在語(yǔ)句指令中使用X來(lái)描述,在梯形圖中由常開(kāi)觸點(diǎn)和常閉觸點(diǎn)指令組合而成。

圖6-13異或指令應(yīng)用舉例【例6-6】

如圖6-13所示為異或指令XOR的用法。

語(yǔ)句指令如下:

AN I0.0 //取常閉觸點(diǎn)I0.0

A I0.1 //串聯(lián)常開(kāi)觸點(diǎn)I0.1

O //并聯(lián)塊

A I0.0 //取常開(kāi)觸點(diǎn)I0.0

AN I0.1 //串聯(lián)常閉觸點(diǎn)I0.1

= Q4.0 //輸出給線圈Q4.0

或者:

AN I0.0

X I0.1

= Q4.0

則有:Q4.0

=?I0.0·I0.1

+

I0.0·I0.1。

【例6-7】

設(shè)計(jì)一個(gè)樓梯燈開(kāi)關(guān),要求當(dāng)行人從下到上或者從上到下時(shí),可以在樓梯開(kāi)關(guān)SB1上開(kāi)燈,在SB2上關(guān)燈。

該設(shè)計(jì)可以使用自鎖按鈕進(jìn)行設(shè)計(jì)。由邏輯關(guān)系知,輸出是兩個(gè)輸入的邏輯“異或”。

(1)樓梯燈開(kāi)關(guān)功能塊圖如圖6-14所示。

(2)語(yǔ)句指令如下:

AN I0.0

X I0.1

= Q4.0

(3)樓梯燈開(kāi)關(guān)梯形圖如圖6-13所示。

圖6-14樓梯燈開(kāi)關(guān)功能塊圖

5.中間輸出指令

中間輸出指令用來(lái)存儲(chǔ)RLO的中間值,該值是該指令執(zhí)行前位邏輯串的操作的結(jié)果值,當(dāng)它和其他觸點(diǎn)串聯(lián)時(shí),功能和一般觸點(diǎn)是相同的。中間輸出指令不能用于結(jié)束一個(gè)邏輯串,所以,中間輸出指令不能置于邏輯串的結(jié)尾或者分支的結(jié)尾處。通過(guò)使用取反指令可以使其狀態(tài)翻轉(zhuǎn)。

中間輸出指令對(duì)狀態(tài)字的影響如表6-19所示。

表6-19中間輸出指令對(duì)狀態(tài)字的影響

【例6-8】

圖6-15所示為中間輸出指令的用法。

語(yǔ)句指令如下:

A I1.0 //取常開(kāi)觸點(diǎn)I1.0

A I1.1 //串聯(lián)常開(kāi)觸點(diǎn)I1.1

= M0.0 //輸出給中間線圈M0.0

A M0.0 //取中間線圈M0.0

A I2.2 //串聯(lián)常開(kāi)觸點(diǎn)I2.2

A I1.3 //串聯(lián)常開(kāi)觸點(diǎn)I1.3

NOT //結(jié)果取反

= M1.1 //輸出給中間線圈M1.1

A M1.1 //取中間線圈M1.1

NOT //結(jié)果取反

= M2.2 //取中間線圈M2.2

A M2.2 //取中間線圈M2.2

= Q4.0 //輸出給線圈Q4.0

其中:M0.0是I1.0和I1.1串聯(lián)的結(jié)果;M1.1是I1.0、I1.1、I2.2和I1.3串聯(lián)運(yùn)算,再經(jīng)過(guò)對(duì)結(jié)果取反的結(jié)果;M2.2是M1.1取反的結(jié)果。

圖6-15中間輸出指令應(yīng)用舉例6.取反指令

取反指令將RLO邏輯結(jié)果進(jìn)行取反。

取反指令對(duì)狀態(tài)字的影響如表6-20所示。表6-20取反指令對(duì)狀態(tài)字的影響【例6-9】

圖6-16所示為取反指令的用法。

語(yǔ)句指令如下:

A( //串聯(lián)塊

OI0.0 //并聯(lián)線圈I0.0

O //并聯(lián)塊

AI0.1 //串聯(lián)常開(kāi)觸點(diǎn)I0.1

AI0.2 //串聯(lián)常開(kāi)觸點(diǎn)I0.2

)

NOT //輸出取反

=Q4.0 //輸出給線圈Q4.0

當(dāng)輸入觸點(diǎn)I0.0為1或者I0.2和I0.1均為“1”時(shí),輸出Q4.0的結(jié)果為“0”。圖6-16取反指令應(yīng)用舉例6.2.2置位/復(fù)位指令

置位/復(fù)位指令根據(jù)RLO的值來(lái)決定被尋址位的狀態(tài)是否需要改變。如果RLO的值為“1”,則可以被置位為“1”或者被復(fù)位為“0”;如果RLO的值為“0”,則被尋址位的狀態(tài)保持不變。

1.置位指令和復(fù)位指令

置位/復(fù)位指令的LAD和STL形式及功能如表6-21所示。

表6-21置位/復(fù)位指令的形式及功能置位指令只有在RLO為“1”時(shí),將對(duì)其上方的地址置“1”,即使RLO又變?yōu)椤?”,輸出仍然為“1”(電流流過(guò)線圈)。這種特性稱(chēng)為靜態(tài)置位。當(dāng)RLO為“0”時(shí),置位指令沒(méi)有作用。置位指令在語(yǔ)句指令中使用S來(lái)標(biāo)識(shí)。

復(fù)位指令只有在RLO為“1”時(shí),將對(duì)其上方的地址復(fù)位為“0”,即使RLO又變?yōu)椤?”,輸出仍然為“0”。當(dāng)RLO為“0”時(shí),復(fù)位指令沒(méi)有作用。復(fù)位指令在語(yǔ)句指令中使用R來(lái)標(biāo)識(shí)。該指令上方的地址也可以是定時(shí)器或者計(jì)數(shù)器,復(fù)位后均為“0”。

置位/復(fù)位指令在一個(gè)被激活的MCR(主控繼電器)區(qū)中,當(dāng)電流流過(guò)該元件時(shí),該元件被置位,而如果MCR區(qū)關(guān)閉,則無(wú)論是否有電流流過(guò),該指令上的地址均為“0”。

置位/復(fù)位指令對(duì)狀態(tài)字的影響如表6-22所示。表6-22置位/復(fù)位指令對(duì)狀態(tài)字的影響【例6-10】

圖6-17所示為置位指令的用法。

語(yǔ)句指令如下:

AI0.0 //取常開(kāi)觸點(diǎn)I0.0

AI0.1 //串聯(lián)常開(kāi)觸點(diǎn)I0.1

ON

I0.2 //并聯(lián)常閉觸點(diǎn)I0.2

SQ4.0 //置位線圈Q4.0

圖6-17置位指令應(yīng)用舉例當(dāng)輸入I0.0和I0.1的狀態(tài)都為“1”或者輸入I0.2的狀態(tài)為“0”時(shí),輸出Q4.0將會(huì)變?yōu)椤?”。

如果RLO為“0”(邏輯串的執(zhí)行結(jié)果為“0”),則輸出Q4.0保持原來(lái)的狀態(tài)不變。

如果該段程序在一個(gè)被激活的MCR區(qū)中,則當(dāng)MCR打開(kāi)時(shí),Q4.0的狀態(tài)和上述相同;當(dāng)MCR關(guān)閉時(shí),無(wú)論是否有電流流過(guò),Q4.0的狀態(tài)均不改變。

【例6-11】

圖6-18所示為復(fù)位指令的用法。

語(yǔ)句指令如下:

Network1 //輸出線圈復(fù)位

A I0.0 //取常開(kāi)觸點(diǎn)I0.0

A I0.1 //串聯(lián)常開(kāi)觸點(diǎn)I0.1

ON I0.2 //并聯(lián)常閉觸點(diǎn)I0.2

R Q4.0 //復(fù)位線圈Q4.0

Network2 //定時(shí)器復(fù)位

A I0.3 //取常開(kāi)觸點(diǎn)I0.3

R T1 //復(fù)位定時(shí)器T1

Network3 //計(jì)數(shù)器復(fù)位

圖6-18復(fù)位指令應(yīng)用舉例

A I0.4 //取常開(kāi)觸點(diǎn)I0.4

R C1 //復(fù)位計(jì)數(shù)器C1

在梯形圖6-18中,如果RLO為“0”,則輸出Q4.0保持原來(lái)的狀態(tài)不變。如果下面任一條件成立,即

(1)輸入I0.0和I0.1的狀態(tài)均為“1”;

(2)輸入I0.2的狀態(tài)為“0”,

則輸出Q4.0將會(huì)被復(fù)位為“0”。

同樣,如果輸入I0.3的狀態(tài)為“1”,則定時(shí)器T1將會(huì)被復(fù)位。當(dāng)輸入I0.4的狀態(tài)為“1”時(shí),計(jì)數(shù)器C1將會(huì)被復(fù)位為“0”。

當(dāng)MCR打開(kāi)時(shí),Q4.0、T1和C1的狀態(tài)與上述相同。當(dāng)MCR關(guān)閉時(shí),無(wú)論是否有電流流過(guò),Q4.0、T1和C1的狀態(tài)均不改變。

2.?RS和SR觸發(fā)器指令

觸發(fā)器有兩種,即置位優(yōu)先型(SR)觸發(fā)器和復(fù)位優(yōu)先型(RS)觸發(fā)器。如表6-23所示,其中S為置位端子(Set),R為復(fù)位端子(Reset),Q為輸出端子。這兩種觸發(fā)器均可以用在邏輯串的最右端,用來(lái)結(jié)束一個(gè)邏輯串,或者用在邏輯串中間,用來(lái)影響右邊的邏輯操作結(jié)果。

表6-23RS和SR觸發(fā)器指令的功能RS和SR觸發(fā)器在置位輸入S為“1”時(shí),觸發(fā)器置位,輸出Q為“1”,此時(shí)即使置位端子S變?yōu)椤?”,輸出Q仍然保持為“1”不變。只有當(dāng)復(fù)位端子R為“1”時(shí),輸出Q才能復(fù)位為“0”。

如果兩個(gè)端子都為“1”,則對(duì)于置位優(yōu)先型觸發(fā)器,S端子有效,輸出置位為“1”;對(duì)于復(fù)位優(yōu)先型觸發(fā)器,復(fù)位端子R有效,復(fù)位為“0”。

地址中的狀態(tài)和輸出Q的狀態(tài)相同。

同樣,上述兩個(gè)指令在一個(gè)被激活的MCR(主控繼電器)區(qū)中,RS觸發(fā)器的運(yùn)行和上述相同,而如果MCR區(qū)關(guān)閉,則當(dāng)前的地址單元的狀態(tài)將不發(fā)生任何變化。

RS和SR觸發(fā)器指令對(duì)狀態(tài)字的影響如表6-24所示。

表6-24RS和SR觸發(fā)器指令對(duì)狀態(tài)字的影響

【例6-12】

圖6-19所示為RS觸發(fā)器指令的用法。

語(yǔ)句指令如下:

AI0.0

RM0.0

AI0.1

SM0.0

AM0.0

=Q4.0圖6-19RS觸發(fā)器指令應(yīng)用舉例如果輸入I0.0的信號(hào)狀態(tài)為“1”,輸入I0.1的信號(hào)狀態(tài)為“0”,則存儲(chǔ)位M0.0將被復(fù)位,輸出Q4.0為“0”。相反,如果輸入I0.0的信號(hào)狀態(tài)為“0”,輸入I0.1的信號(hào)狀態(tài)為“1”,則存儲(chǔ)位M0.0將被復(fù)位,輸出Q4.0為“1”。如果兩個(gè)信號(hào)狀態(tài)均為“0”,則無(wú)變化。如果兩個(gè)信號(hào)狀態(tài)均為“1”,則由于順序之故,復(fù)位指令優(yōu)先,M0.0復(fù)位,Q4.0為“0”。

如果梯形圖6-19在一個(gè)激活的MCR區(qū)中,則Q4.0的狀態(tài)和上述相同;如果MCR關(guān)閉,則無(wú)論輸入狀態(tài)如何,Q4.0不作任何變化。

【例6-13】

圖6-20所示為SR觸發(fā)器指令的用法。

語(yǔ)句指令如下:

AI0.0

SM0.0

AI0.1

RM0.0

AM0.0

=Q4.0

圖6-20SR觸發(fā)器指令應(yīng)用舉例如果輸入I0.0的信號(hào)狀態(tài)為“1”,輸入I0.1的信號(hào)狀態(tài)為“0”,則存儲(chǔ)位M0.0將被置位,輸出Q4.0為“1”。相反,如果輸入I0.0的信號(hào)狀態(tài)為“0”,輸入I0.1的信號(hào)狀態(tài)為“1”,則存儲(chǔ)位M0.0將被復(fù)位,輸出Q4.0為“0”。如果兩個(gè)信號(hào)狀態(tài)均為“0”,則無(wú)變化。如果兩個(gè)信號(hào)狀態(tài)均為“1”,則由于順序之故,置位指令優(yōu)先,M0.0置位,Q4.0為“1”。

如果指令在被激活的MCR區(qū)中,則當(dāng)MCR接通時(shí),Q4.0將如上所述被置位或復(fù)位;當(dāng)MCR斷開(kāi)時(shí),Q4.0將保持不變,與輸入狀態(tài)無(wú)關(guān)。6.2.3位測(cè)試指令

1.邊沿檢測(cè)指令

信號(hào)狀態(tài)的變化有兩種:一種是從“0”跳變?yōu)椤?”,即上升沿或者正跳沿;另一種是從“1”跳變?yōu)椤?”,即下降沿或者負(fù)跳沿。邊沿檢測(cè)將前一個(gè)掃描周期的信號(hào)狀態(tài)存儲(chǔ)起來(lái),并且和當(dāng)前的信號(hào)狀態(tài)掃描結(jié)果相比較,如二者不同,則表明有跳變信號(hào)。

邊沿檢測(cè)指令的LAD和STL形式及功能如表6-25所示。

RLO下降沿檢測(cè)指令可以檢測(cè)地址從“1”到“0”的信號(hào)變化,并在操作之后顯示RLO為“1”。將RLO的當(dāng)前信號(hào)狀態(tài)與“邊沿存儲(chǔ)位”地址的信號(hào)狀態(tài)進(jìn)行比較。如果操作之前地址的信號(hào)狀態(tài)為“1”,并且RLO為“0”,則在操作之后,RLO將為“1”(脈沖),所有其他的情況為“0”。操作之前的RLO存儲(chǔ)在地址中。

表6-25邊沿檢測(cè)指令的形式及功能

RLO上升沿檢測(cè)指令可以檢測(cè)地址從“0”到“1”的信號(hào)變化,并在操作之后顯示RLO為“1”。將RLO的當(dāng)前信號(hào)狀態(tài)與“邊沿存儲(chǔ)位”地址的信號(hào)狀態(tài)進(jìn)行比較。如果操作之前地址的信號(hào)狀態(tài)為“0”,并且RLO為“1”,則在操作之后,RLO將為“1”(脈沖),所有其他的情況為“0”。操作之前的RLO存儲(chǔ)在地址中。

邊沿檢測(cè)指令對(duì)狀態(tài)字的影響如表6-26所示。

表6-26邊沿檢測(cè)指令對(duì)狀態(tài)字的影響【例6-14】

圖6-21所示為邊沿檢測(cè)指令的用法。

在梯形圖6-21中,邊沿存儲(chǔ)位M0.0存儲(chǔ)RLO的舊狀態(tài)。如果RLO的信號(hào)從“1”變?yōu)椤?”,則程序跳轉(zhuǎn)至標(biāo)號(hào)CAS1處。

語(yǔ)句指令如下:

A(

AI0.0

AI0.1

OI0.2

)

FPM0.0

JCCAS1

圖6-21邊沿檢測(cè)指令應(yīng)用舉例2.觸點(diǎn)跳變沿檢測(cè)指令

NEG(負(fù)跳沿檢測(cè)指令)可以將“<地址1>”的信號(hào)狀態(tài)與存儲(chǔ)在“<地址2>”中的先前掃描的信號(hào)狀態(tài)進(jìn)行比較。如果當(dāng)前的RLO狀態(tài)為“0”,而先前的狀態(tài)為“1”(上升沿檢測(cè)),則在操作之后,RLO位將為“1”。

POS(正跳沿檢測(cè)指令)可以將“<地址1>”的信號(hào)狀態(tài)與存儲(chǔ)在“<地址2>”中的先前掃描的信號(hào)狀態(tài)進(jìn)行比較。如果當(dāng)前的RLO狀態(tài)為“1”,而先前的狀態(tài)為“0”(上升沿檢測(cè)),則在操作之后,RLO位將為“1”。

觸點(diǎn)跳變沿檢測(cè)指令的LAD和STL形式及功能如表6-27所示。

表6-27觸點(diǎn)跳變沿檢測(cè)指令的形式及功能觸點(diǎn)跳變沿檢測(cè)指令對(duì)狀態(tài)字的影響如表6-28所示。

表6-28觸點(diǎn)跳變沿檢測(cè)指令對(duì)狀態(tài)字的影響【例6-15】

圖6-22所示為負(fù)跳沿檢測(cè)指令的用法。

語(yǔ)句指令如下:

AI0.0

AI0.1

AI0.2

A(

AI0.3

BLD

100

FNM0.0

)

AI0.4

=Q4.0

圖6-22負(fù)跳沿檢測(cè)指令應(yīng)用舉例在梯形圖6-22中,當(dāng)以下所有條件均成立時(shí),即

①輸入I0.0、I0.1和I0.2均為“1”;

②輸入I0.3有負(fù)跳沿出現(xiàn)(下降沿);

③輸出I0.4的信號(hào)狀態(tài)為1,

輸出Q4.0將會(huì)變?yōu)椤?”。

【例6-16】

圖6-23所示為正跳沿檢測(cè)指令的用法。

語(yǔ)句指令如下:

AI0.0

AI0.1

AI0.2

A(

AI0.3

BLD100

FPM0.0

)

AI0.4

=Q4.0

圖6-23正跳沿檢測(cè)指令應(yīng)用舉例在梯形圖6-23中,當(dāng)以下所有條件均成立時(shí),即

①輸入I0.0、I0.1和I0.2均為“1”;

②輸入I0.3有正跳沿出現(xiàn)(上升沿);

③輸出I0.4的信號(hào)狀態(tài)為1,

輸出Q4.0將會(huì)變?yōu)椤?”。6.2.4立即讀/立即寫(xiě)操作

1.立即讀操作

立即讀(ImmediateRead)功能對(duì)于有時(shí)間限制的應(yīng)用,可以以比每OB1掃描循環(huán)一次的正常情況快的速度讀取一個(gè)數(shù)字量輸入的當(dāng)前狀態(tài)。立即讀功能可以在掃描立即讀邏輯程序級(jí)的同時(shí),從輸入模塊獲得一個(gè)數(shù)字量輸入的狀態(tài)。否則,當(dāng)I存儲(chǔ)區(qū)使用P存儲(chǔ)狀態(tài)更新時(shí),必須等到下一OB1掃描循環(huán)結(jié)束。為了從輸入模塊立即讀取一個(gè)輸入,應(yīng)使用外圍輸入(PI)存儲(chǔ)區(qū),而不使用輸入(I)存儲(chǔ)區(qū)。外圍輸入存儲(chǔ)區(qū)可以作為一個(gè)字節(jié)、一個(gè)字或一個(gè)雙字來(lái)讀取。因此,通過(guò)一個(gè)接點(diǎn)(位)元素,不能讀取一個(gè)單獨(dú)的數(shù)字量輸入。

2.立即寫(xiě)操作

立即寫(xiě)(ImmediateWrite)功能對(duì)于有時(shí)間限制的應(yīng)用,可以以比每OB1掃描循環(huán)一次的正常情況快的速度,將一個(gè)數(shù)字量輸出的當(dāng)前狀態(tài)發(fā)送到輸出模塊。立即寫(xiě)功能可以在掃描立即寫(xiě)邏輯程序級(jí)的同時(shí),將一個(gè)數(shù)字量輸出寫(xiě)入輸出模塊。否則,當(dāng)Q存儲(chǔ)區(qū)使用P存儲(chǔ)狀態(tài)更新時(shí),必須等到下一OB1掃描循環(huán)結(jié)束。為了將一個(gè)輸出立即寫(xiě)入輸出模塊,應(yīng)使用外圍輸出(PQ)存儲(chǔ)區(qū),而不使用輸出(Q)存儲(chǔ)區(qū)。外圍輸出存儲(chǔ)區(qū)可以作為一個(gè)字節(jié)、一個(gè)字或一個(gè)雙字來(lái)讀取。因此,通過(guò)一個(gè)線圈元素,不能更新一個(gè)單獨(dú)的數(shù)字量輸出。為了將一個(gè)數(shù)字量輸出的狀態(tài)立即寫(xiě)入輸出模塊,包含相關(guān)位的Q存儲(chǔ)器的字節(jié)、字或雙字可以有條件地復(fù)制到相應(yīng)的PQ存儲(chǔ)器中(直接輸出模塊地址)。注意:

(1)由于Q存儲(chǔ)器的整個(gè)字節(jié)被寫(xiě)入輸出模塊,當(dāng)進(jìn)行立即輸出時(shí),該字節(jié)中的所有輸出位都將被更新。

(2)如果一個(gè)輸出位在不應(yīng)發(fā)送到輸出模塊的整個(gè)程序中出現(xiàn)中間狀態(tài)(1/0),則立即寫(xiě)功能會(huì)造成危險(xiǎn)情況(輸出瞬時(shí)脈沖)。

(3)作為一般設(shè)計(jì)規(guī)則,在一個(gè)程序中,外部輸出模塊只能認(rèn)為是一個(gè)線圈。如果遵守該設(shè)計(jì)規(guī)則,則可以避免使用立即輸出時(shí)的大多數(shù)潛在問(wèn)題。

【例6-17】

控制傳送帶。圖6-24所示為一個(gè)能夠控制電氣啟停的傳送帶。在傳送帶的起點(diǎn)有兩個(gè)按鈕開(kāi)關(guān):用于啟動(dòng)的S1和用于停止的S2。在傳送帶的尾端也有兩個(gè)按鈕開(kāi)關(guān):用于啟動(dòng)的S3和用于停止的S4??梢詮娜我欢藛?dòng)或停止傳送帶。另外,當(dāng)傳送帶上的物件到達(dá)末端時(shí),傳感器S5使傳送帶停機(jī)。圖6-24控制傳動(dòng)帶應(yīng)用舉例①絕對(duì)編程和符號(hào)編程。先作一個(gè)符號(hào)表,使選擇的符號(hào)與絕對(duì)值相對(duì)應(yīng)(參見(jiàn)“STEP7在線幫助”),如表6-29所示。

表6-29控制傳送帶系統(tǒng)地址分配②控制傳送帶的梯形邏輯程序。

程序段1:按動(dòng)一個(gè)啟動(dòng)開(kāi)關(guān),可以接通電機(jī),如圖6-25所示。

程序段2:按動(dòng)一個(gè)停止開(kāi)關(guān)或打開(kāi)傳送帶端部的常閉接點(diǎn),可以切斷電機(jī),如圖6-26所示。

圖6-25控制傳送帶程序段1圖6-26控制傳送帶程序段2

【例6-18】

設(shè)計(jì)一個(gè)檢測(cè)傳送帶的運(yùn)動(dòng)方向的指示裝置。圖6-27所示為一個(gè)裝配有兩個(gè)光電傳感器(PEB1和PEB2)的傳送帶,傳感器用來(lái)檢測(cè)包裹在傳送帶上的移動(dòng)方向。每一個(gè)光電傳感器都可以像常開(kāi)接點(diǎn)一樣使用。

①絕對(duì)編程和符號(hào)編程。檢測(cè)傳送帶系統(tǒng)地址分配表如表6-30所示。

圖6-27檢測(cè)傳送帶應(yīng)用舉表6-30檢測(cè)傳送帶系統(tǒng)地址分配表②檢測(cè)傳送帶運(yùn)動(dòng)方向的梯形邏輯程序。

程序段1:如果在輸入I0.0上出現(xiàn)的信號(hào)狀態(tài)從“0”變?yōu)椤?”(上升沿),同時(shí)輸入I0.1的信號(hào)狀態(tài)為“0”,則傳送帶上的包裹向左移動(dòng),如圖6-28所示。

程序段2:如果在輸入I0.1上出現(xiàn)的信號(hào)狀態(tài)從“0”變?yōu)椤?”(上升沿),同時(shí)輸入I0.0的信號(hào)狀態(tài)為“0”,則傳送帶上的包裹向右移動(dòng)。如果有一個(gè)光電傳感器被遮擋,則意味著在光電傳感器間有一個(gè)包裹,如圖6-29所示。

圖6-28檢測(cè)傳送帶程序段1圖6-29檢測(cè)傳送帶程序段2程序段3:如果沒(méi)有一個(gè)光電傳感器被遮擋,則在光電傳感器之間沒(méi)有包裹,方向指示燈熄滅,如圖6-30所示。圖6-30檢測(cè)傳送帶程序段3

6.3.1定時(shí)器指令

定時(shí)器是PLC中的重要元件,用來(lái)實(shí)現(xiàn)或者監(jiān)控時(shí)間序列。它是由位和字組成的復(fù)合單元,其中用位來(lái)表示定時(shí)器觸點(diǎn)的閉合和斷開(kāi)(即輸出為“0”或“1”)。定時(shí)時(shí)間為字,存儲(chǔ)于字存儲(chǔ)器中,像時(shí)間繼電器一樣,其觸點(diǎn)為邏輯值,有延時(shí)關(guān)斷型和延時(shí)接通型兩種。S7-300系列有S_PULSE(脈沖定時(shí)器)、S_PEXT(擴(kuò)展脈沖定時(shí)器)、S_ODT(接通延時(shí)定時(shí)器)、S_ODTS(保持型接通延時(shí)定時(shí)器)和S_OFFDT(斷開(kāi)延時(shí)定時(shí)器)5種定時(shí)器方塊指令及對(duì)應(yīng)的5種定時(shí)器線圈指令,如表6-31所示。6.3定時(shí)器和計(jì)數(shù)器指令

表6-31定

時(shí)

1.定時(shí)器的組成

存儲(chǔ)器中的定時(shí)器區(qū)域用來(lái)存儲(chǔ)定時(shí)器的定時(shí)時(shí)間值。每一個(gè)定時(shí)器占2B,稱(chēng)為定時(shí)字。在S7-300系列PLC中,定時(shí)區(qū)為512B,故只能使用256個(gè)定時(shí)器。定時(shí)器的訪問(wèn)只能使用有關(guān)的定時(shí)器指令,其編址為T(mén)加編號(hào),如T22、T200等。

在S7系列PLC中,定時(shí)時(shí)間值的表示方法有兩種。一種是用S5中的時(shí)間表示方法來(lái)裝入定時(shí)時(shí)間值,方式為

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論