5023947979西門子PLC教案_第1頁
5023947979西門子PLC教案_第2頁
5023947979西門子PLC教案_第3頁
5023947979西門子PLC教案_第4頁
5023947979西門子PLC教案_第5頁
已閱讀5頁,還剩46頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、教 案教 學 內(nèi) 容備 注第一章 緒論3.1位邏輯指令3.1.1 基本位邏輯指令位邏輯指令的運算結果用兩個二進制數(shù)字1和0來表示??梢詫Σ紶柌僮鲾?shù)(bool)的信號狀態(tài)掃描并完成邏輯操作。邏輯操作結果稱為rlo(result of logic operation)。語句表stl表示的基本位邏輯指令l a and 邏輯“與”l an and not 邏輯“與非”l o or 邏輯“或”l on or not 邏輯“或非”l x exclusive or 邏輯“異或”l xn exclusive or not 邏輯“異或非”l = assign 賦值指令l not negate rlo rlo取反

2、l set set rlo (=1) rlo=1l clr clear rlo (=0) rlo=0l save save rlo in br register 將rlo的狀態(tài)保存到br。邊沿信號識別指令。位邏輯指令的運算規(guī)則:“先與后或”??梢杂美ㄌ枌⑿柘冗\算的部分括起來,運算規(guī)則為:“先括號內(nèi),后括號外”。 梯形圖lad表示的基本位邏輯指令l -| |- normally open contact (address) 常開觸點 l -|/|- normally closed contact (address) 常閉觸點l -(save) save rlo into br memory 將r

3、lo的狀態(tài)保存到brl xor bit exclusive or 邏輯“異或”l -( ) output coil 輸出線圈l -( # )- midline output 中間標志輸出l -|not|-invert power flow rlo取反功能圖fbd表示的位邏輯指令 將在后面的指令詳解中給出概括:十分鐘利用投影儀教 案教 學 內(nèi) 容備 注1邏輯“與”操作當所有的輸入信號都為“1”,則輸出為“1”;只要輸入信號有一個不為“1”,則輸出為“0”。例3.1.1:功能圖(fbd)語言如下: 梯形圖(lad)語言如下: 語句表(stl)語言如下: a i 0.0 a i 0.1 = q 4.

4、02邏輯“或”操作只要有一個輸入信號為“1”,則輸出為“1”;所有輸入信號都為“0”,輸出才為“0”。例3.1.2:功能圖(fbd)語言如下: 當輸入信號i 0.0 和 i 0.1有一個以上為“1”時,輸出信號q 4.0 為“1”。當輸入信號i 0.0 和 i 0.1都為“0”時,輸出信號q 4.0 才為“0”。梯形圖(lad)語言如下: 語句表(stl)語言如下: o i 0.0 o i 0.1 = q 4.0注意編程語言的三種表達方式及各自的特點。教 案教 學 內(nèi) 容備 注3邏輯異或操作當兩個輸入信號其中一個為“1”而另一個為“0”時,輸出信號為“1”;當兩個輸入信號都為“0”或者都為“1

5、”時,輸出信號為“0”。例3.1.3:功能圖(fbd)語言如下: 當輸入信號i 0.0 為“1”而 i 0.2為“0”或者i 0.0 為“0”而 i 0.2為“1”時,輸出信號q3.1 為“1”。當輸入信號i 0.0 和 i 0.2都為“0”或者i 0.0 和 i 0.2都為“1”時,輸出信號q 3.1為“0”。梯形圖(lad)語言如下: 語句表(stl)語言如下: x i 0.0 x i 0.2 = q 3.14邏輯取反操作邏輯取反操作對邏輯運算結果rlo取反。功能圖(fbd)符號: 梯形圖(lad)符號:-|not|-語句表(stl)符號:not 引導學生舉出生活中異或關系的例子教 案教

6、學 內(nèi) 容備 注例3.1.4:只有當i 1.0 和i 1.1相與的結果為“0”并且i 1.2 和i 1.3相與的結果為“1”或i 1.4為“1”時,輸出q 4.0才為“1”;否則q 4.0為“0”。功能圖(fbd)語言如下: 梯形圖(lad)語言如下: 語句表(stl)語言如下: a i 1.0 a i 1.1 not a( a i 1.2 a i 1.3 not o i 1.4 ) = q 4.05中間輸出符號中間輸出指令用于存儲rlo的中間值,該值是中間輸出指令前的位邏輯操作結果。中間輸出指令不能用于結束一個邏輯串,因此,中間輸出指令不能放在邏輯串的結尾或分支的結尾處。特別要講清楚中間符號

7、的作用教 案教 學 內(nèi) 容備 注例3.1.5 m 0.0的緩存器中存放著i 1.0和i 1.1相與后取反的結果;m 1.1的緩存器中存放著i 1.2和i 1.3相與后取反的結果;m 2.2的緩存器中存放著i 1.4的邏輯運算結果;m 3.3的緩存器中存放上述整個邏輯運算的結果。例3.1.6m 0.0的緩存器中存放著i 1.0和i 1.1相與的結果;m 1.1的緩存器中存放著i 1.0、i 1.1、i 1.2和i 1.3四個輸入信號相與后取反的結果;m 2.2的緩存器中存放著整個邏輯運算的結果。6位邏輯操作規(guī)則:位邏輯指令的運算規(guī)則:“先與后或”。例3.1.7:當輸入信號i 1.0 和i 1.1

8、 都為“1”,或輸入信號i 1.2 和 i 1.3 都為“1”時,輸出信號q 3.1 為“1”。否則輸出信號q 3.1 為“0”。功能圖(fbd)語言如下: 梯形圖(lad)語言如下:重點強調(diào)教 案教 學 內(nèi) 容備 注語句表(stl)語言如下: a i 1.0 a i 1.1 o a i 1.2 a i 1.3 = q 3.1例3.1.8:當輸入信號i 1.0 或i 1.1為“1”,并且i 1.2 或 i 1.3為“1”時,輸出信號q 3.1 為“1”。否則輸出信號q 3.1 為“0”。功能圖(fbd)語言如下: 梯形圖(lad)語言如下:語句表(stl)語言如下: a (o i 1.0 o

9、i 1.1 ) a( o i 1.2 o i 1.3 ) = q 3.1牢記位邏輯運算的規(guī)則。重點是在語句表中教 案教 學 內(nèi) 容備 注3.1.2置位/復位指令置位/復位指令根據(jù)rlo的值,來決定被尋址位的信號狀態(tài)是否需要改變。若rlo的值為1,被尋址位的信號狀態(tài)被置1或清0;若rlo是0,則被尋址位的信號保持原狀態(tài)不變。對于置位操作,一旦rlo為1,則被尋址信號(輸出信號)狀態(tài)置1,即使rlo又變?yōu)?,輸出仍保持為1;對于復位操作,一旦rlo為1,則被尋址信號(輸出信號)狀態(tài)置0,即使rlo又變?yōu)?,輸出仍保持為0。語句表stl表示的置位/復位指令l r reset 復位指令l s set

10、置位指令梯形圖lad表示的置位/復位指令l -( s ) set coil 線圈置位指令l -( r ) reset coil 線圈復位指令l sr set-reset flip flop 復位優(yōu)先型sr雙穩(wěn)態(tài)觸發(fā)器指令l rs reset-set flip flop 置位優(yōu)先型rs雙穩(wěn)態(tài)觸發(fā)器指令功能圖fbd表示的位邏輯指令強調(diào)“記憶功能”教 案教 學 內(nèi) 容備 注1置位/復位線圈指令例 3.1.9:當i 0.0和i 0.1輸入都為“1”或者i 0.2輸入為“0”時,q 4.0被置位,即輸出為“1”;不滿足上述條件時,q 4.0的輸出狀態(tài)不變。功能圖(fbd)語言如下: 梯形圖(lad)語言

11、如下: 語句表(stl)語言如下:a i 0.0 a i 0.1 on i 0.2 s q 4.0例3.1.10:當i 0.0和i 0.1輸入都為“1”或者i 0.2輸入為“0”時,q 4.0被復位,即輸出為“0”;不滿足上述條件時,q 4.0的輸出狀態(tài)不變。功能圖(fbd)語言如下: 梯形圖(lad)語言如下:語句表(stl)語言如下:a i 0.0 a i 0.1 on i 0.2 r q 4.0注意與普通線圈符號的不同教 案教 學 內(nèi) 容備 注2置位/復位雙穩(wěn)態(tài)觸發(fā)器指令 如果置位輸入端為“1”,復位輸入端為“0”,則觸發(fā)器被置位。此后,即使置位輸入端為0,觸發(fā)器也保持置位不變。如果復位

12、輸入端為1,置位輸入端為“0”,則觸發(fā)器被復位。置位優(yōu)先型rs觸發(fā)器的r端在s端之上,當兩個輸入端都為1時,下面的置位輸入端最終有效。既置位輸入優(yōu)先,觸發(fā)器被置位。復位優(yōu)先型sr觸發(fā)器的s端在r端之上,當兩個輸入端都為1時,下面的復位輸入端最終有效。既復位輸入優(yōu)先,觸發(fā)器被復位。例 3.1.11 如果輸入信號 i 0.0 = 1, i 0.0 = 0, 則m 0.0被復位,q 4.0 = 0; i 0.0 = 0, i 0.0 = 1, 則m 0.0被置位,q 4.0 = 1; i 0.0 = 0, i 0.0 = 0, 則m 0.0輸出保持不變,q 4.0輸出不變; i 0.0 = 1, i

13、 0.0 = 1, 則m 0.0被置位,q 4.0 = 1。例 3.1.12 如果輸入信號 i 0.0 = 1, i 0.0 = 0, 則m 0.0被復位,q 4.0 = 0; i 0.0 = 0, i 0.0 = 1, 則m 0.0被置位,q 4.0 = 1; i 0.0 = 0, i 0.0 = 0, 則m 0.0輸出保持不變,q 4.0輸出不變; i 0.0 = 1, i 0.0 = 1, 則m 0.0被置位,q 4.0 = 0。注意講清楚置位優(yōu)先型rs觸發(fā)器和復位優(yōu)先型sr觸發(fā)器在功能圖和語句表中的表示方法以及適用場合教 案教 學 內(nèi) 容備 注3.1.3邊沿信號識別指令1rlo邊沿信號

14、識別指令當信號狀態(tài)變化時就產(chǎn)生跳變沿,當從0變到1時,產(chǎn)生一個上升沿(或正跳沿);若從1變到0,則產(chǎn)生一個下降沿(或負跳沿)。跳變沿檢測的原理是:在每個掃描周期中把信號狀態(tài)和它在前一個掃描周期的狀態(tài)進行比較,若不同則表明有一個跳變沿。因此,前一個周期里的信號狀態(tài)必須被存儲,以便能和新的信號狀態(tài)相比較。l 下降沿信號識別指令 若cpu檢測到輸入有一個負跳沿,將使得輸出線圈在一個掃描周期內(nèi)通電。對輸入掃描的rlo值存放在存儲位中。在ob1的掃描周期中,cpu掃描并形成rlo值,若該rlo值是0且上次rlo值是1,這說明fn指令檢測到一個rlo的負跳沿,那么fn指令把rlo位置1。如果rlo在相鄰的

15、兩個掃描周期中相同(全為1或0),那么fn語句把rlo位清0。例 3.1.13 此節(jié)內(nèi)容較難懂,適當慢一些。強調(diào)“邊沿”的概念教 案教 學 內(nèi) 容備 注若cpu檢測到輸入i1.0有一個負跳沿,將使得輸出q4.0的線圈在一個掃描周期內(nèi)通電。對輸入i1.0常開觸點掃描的rlo值(在本例中,此rlo正好與輸入i1.0的信號狀態(tài)相同)存放在存儲位m1.0中。在ob1的掃描周期中,cpu對i1.0信號狀態(tài)掃描并形成rlo值,若該rlo值是0且存放在m1.0中的上次rlo值是1,這說明fn指令檢測到一個rlo的負跳沿,那么fn指令把rlo位置1。如果rlo在相鄰的兩個掃描周期中相同(全為1或0),那么fn

16、語句把rlo位清0。l 上升沿信號識別指令 若cpu檢測到輸入有一個正跳沿,將使得輸出線圈在一個掃描周期內(nèi)通電。對輸入掃描的rlo值存放在存儲位中。在ob1的掃描周期中,cpu掃描并形成rlo值,若該rlo值是1且上次rlo值是0,這說明fn指令檢測到一個rlo的正跳沿,那么fp指令把rlo位置1。如果rlo在相鄰的兩個掃描周期中相同(全為1或0),那么fp語句把rlo位清0。例 3.1.14 若cpu檢測到輸入i1.0有一個正跳沿,將使得輸出q4.0的線圈在一個掃描周期內(nèi)通電。對輸入i1.0常開觸點掃描的rlo值(在本例中,此rlo正好與輸入i1.0的信號狀態(tài)相同)存放在存儲位m1.0中。在

17、ob1的掃描周期中,cpu對i1.0信號狀態(tài)掃描并形成rlo值,若該rlo值是1且存放在m1.0中的上次rlo值是0,這說明fn指令檢測到一個rlo的正跳沿,那么fp指令把rlo位置1。如果rlo在相鄰的兩個掃描周期中相同(全為1或0),那么fp語句把rlo位清0。弄清“上升沿”與“下降沿”的概念與區(qū)別教 案教 學 內(nèi) 容備 注2觸點邊沿信號識別指令l 觸點下降沿信號識別指令 在ob1的掃描周期中,cpu對的狀態(tài)與其上一個掃描周期的狀態(tài)進行比較(上一個掃描周期的狀態(tài)保存在中。若該狀態(tài)是0且存放在中的上次狀態(tài)是1,這說明neg指令檢測到的負跳沿,那么neg指令把rlo位置1。如果在相鄰的兩個掃描

18、周期中狀態(tài)相同(全為1或0),那么neg指令把rlo位清0。例 3.1.15 當輸入信號i 0.0、i 0.0、i 0.2、i 0.4全為“1”并且i 0.3 有一個負跳變,則q 4.0輸出一個掃描周期的正脈沖信號。l 觸點上升沿信號識別指令 在ob1的掃描周期中,cpu對的狀態(tài)與其上一個掃描周期的狀態(tài)進行比較(上一個掃描周期的狀態(tài)保存在中。若該狀態(tài)是1且存放在中的上次狀態(tài)是0,這說明pos指令檢測到正跳沿,那么pos指令把rlo位置1。如果在相鄰的兩個掃描周期中狀態(tài)相同(全為1或0),那么pos指令把rlo位清0。注意與前面指令的區(qū)別教 案教 學 內(nèi) 容備 注例 3.1.16 當輸入信號i

19、0.0、i 0.0、i 0.2、i 0.4全為“1”并且i 0.3 有一個正跳變,則q 4.0輸出一個掃描周期的正脈沖信號。3.1.4 rlo 置位、清零、保存指令置位指令 符號: set 功能: rlo = 1復位指令 符號: clr 功能: rlo = 0例 3.1.17 rlo保存指令 符號: save 功能: (rlo) br 說明: 將rlo的狀態(tài)保存到狀態(tài)字寄存器中的br位中。強調(diào)盡對rlo操作教 案教 學 內(nèi) 容備 注3.2 定時器指令3.2.1 定時器的結構 s7中定時時間由時基和定時值兩部分組成,定時時間等于時基與定時值的乘積。當定時器運行時,定時值不斷減1,直至減到0,減到

20、0表示定時時間到。定時時間到后會引起定時器觸點的動作。定時器的第0到第11位存放bcd碼格式的定時值,三位bcd碼表示的范圍是0999。第12,13位存放二進制格式的時基。從下表中可以看出:時基小定時分辨率高,但定時時間范圍窄;時基大分辨率低,但定時范圍寬。時 基二進制時基分辨率定 時 范 圍10 s000.01 s10ms至9s_990ms100ms0l0.1 s100ms至1m_39s_900ms1 s101s1s至16m_39s10 s1110 s10s至2h_46m_30s當定時器啟動時,累加器1低字的內(nèi)容被當作定時時間裝入定時字中。這一過程是由操作系統(tǒng)控制自動完成的,用戶只需給累加器

21、l裝入不同的數(shù)值,即可設置需要的定時時間。推薦采用下述直觀的句法:l w#16# txyz 其中:t,x,y,z均為十進制數(shù); t時基,取值0,1,2,3,分別表示時基為:10ms、100ms、1s、10s。xyz定時值,取值范圍:1到999。 也可直接使用s5中的時間表示法裝入定時數(shù)值,例如:l s5t# ah_bbm_ccs_dddms其中:a小時,bb分鐘,cc秒,ddd毫秒.范圍:1ms到2h_46m_30s;此時,時基是自動選擇的,原則是:根據(jù)定時時間選擇能滿足定時范圍要求的最小時基。此節(jié)是定時器的基礎知識若某些同學理解上有困難,可暫時放一放教 案教 學 內(nèi) 容備 注s7300提供了

22、多種形式的定時器:脈沖定時器(sp)、擴展定時器(se)、接通延時定時器(sd)、帶保持的接通延時定時器(ss)和斷電延時定時器(sf)。下圖給出了各種定時器的工作狀態(tài)。注意五種定時器各自的特點教 案教 學 內(nèi) 容備 注3.2.2 脈沖定時器 pulse timer脈沖定時器時序如下:例3.2.1 stl語句表如下: a i 0.0 l s5t#10s 裝入定時時間到accu1 sp t5 啟動脈沖定時器t5 a i 0.1 r t 5 定時器t5復位 a t 5 = q 4.0fbd 功能圖如下:時序圖如下: 結合實際例子讓同學充分理解。教 案教 學 內(nèi) 容備 注3. 2. 3 定時器再啟動

23、指令fr enable timer格式: fr 定時器再啟動指令fr用于重新裝載定時時間,定時器以新裝入的時間值運行。下面結合一個具體的例子來說明。stl語句表如下: a i 2.0 fr t1 再啟動定時器t1 a i 2.1 l s5t#10s 裝入定時時間到accu1 sp t1 啟動脈沖定時器t1 a i 2.2 r t1 定時器t1復位 a t1 = q4.0時序如下:(1)在定時器運行期間,使能輸入端i 2.0有一個從“0”到“1”的變化,此時,定時器t1被再啟動,定時時間恢復到預置初值從新開始計時。i 2.0有一個從“1”到“0”的變化沒有作用。(2)雖然定時器沒有運行,當使能

24、輸入端i 2.0有一個從“0”到“1”的變化,同時定時器啟動輸入端i 2.1 處于高電平狀態(tài),此時,定時器t1也被啟動。(3)當定時器啟動輸入端i 2.1 處于低電平狀態(tài),盡管使能輸入端i 2.0有一個從“0”到“1”的變化,此時,定時器t1也不能啟動。此點是難點注意講深講透教 案教 學 內(nèi) 容備 注3.2.4 擴展脈沖定時器 extended pulse timer 例3.2.2 stl語句表如下:a i 0.0 l s5t#2s 裝入定時時間到accu1 se t5 啟動擴展脈沖定時器t5 a i 0.1 r t 5 定時器t5復位 a t 5 = q 4.0 fbd 功能圖如下:時序圖如

25、下:特別注意與脈沖定時器的不同點教 案教 學 內(nèi) 容備 注3.2.5 接通延時定時器 on-delay timer接通延時定時器時序如下:例3.2.3stl語句表如下:a i 0.0 l s5t#2s 裝入定時時間到accu1 sd t5 啟動延時接通定時器t5 a i 0.1 r t 5 定時器t5復位 a t 5 = q 4.0fbd 功能圖如下: 時序圖如下:重點之重點結合習題講深講透教 案教 學 內(nèi) 容備 注3.2.6 保持型接通延時定時器 retentive on-delay timer保持型接通延時定時器時序如下:例3.2.4 stl語句表如下:a i 0.0 l s5t#2s 裝

26、入定時時間到accu1 ss t5 啟動保持型延時接通定時器t5 a i 0.1 r t 5 定時器t5復位 a t 5 = q 4.0fbd 功能圖如下:時序圖如下:注意與接通延時定時器的區(qū)別教 案教 學 內(nèi) 容備 注3.2.7 關斷延時定時器 off - delay timer關斷延時定時器時序如下:例3.2.5 stl語句表如下:a i 0.0 l s5t#2s 裝入定時時間到accu1 sf t5 啟動關斷延時接通定時器t5 a i 0.1 r t 5 定時器t5復位 a t 5 = q 4.0fbd 功能圖如下: 時序圖如下:此種定時器時下降沿觸發(fā)。與前四種不同教 案教 學 內(nèi) 容備

27、 注3.3計數(shù)器指令3.3.1 計數(shù)器的結構 計數(shù)器是一種由位和字組成的復合單元,計數(shù)器的輸出由位表示,其計數(shù)值存儲在字存儲器中。在cpu的存儲器中留出了計數(shù)器區(qū)域,該區(qū)域用于存儲計數(shù)器的計數(shù)值。每個計數(shù)器為2個字節(jié)(byte),稱為計數(shù)字。在s7300中,計數(shù)器區(qū)為512個字節(jié)(byte),因此最多允許使用256個計數(shù)器。計數(shù)器的第0到第11位存放bcd碼格式的計數(shù)值,三位bcd碼表示的范圍是0999。第1215位沒有用途。s7中的計數(shù)器用于對rlo正跳沿計數(shù)。s7中有三種計數(shù)器,它們分別是:加計數(shù)器、減計數(shù)器和可逆計數(shù)器。只要計數(shù)器的計數(shù)值不是“0”,計數(shù)器的輸出就為“1”。當計數(shù)器啟動時

28、,累加器1低字的內(nèi)容被當作計數(shù)初值裝入計數(shù)字中。這一過程是由操作系統(tǒng)控制自動完成的,用戶只需給累加器l裝入不同的數(shù)值,即可設置需要的計數(shù)初值。l c# xyz其中: xyz記數(shù)初值,取值范圍:1到999。fbd符號: 可逆計數(shù)器 加計數(shù)器 減計數(shù)器端子說明: cu 加計數(shù)輸入 cd 減計數(shù)輸入s 預置輸入 pv 設置計數(shù)初值r 復位輸入 q 計數(shù)器狀態(tài)輸出 cv 當前計數(shù)值輸出(十六進制格式)bcd 當前計數(shù)值輸出(bcd碼格式)注意與定時器結構的異同點教 案教 學 內(nèi) 容備 注 例3.3.1 fbd 功能圖如下:stl語句表如下:a i 0.0cu c 10 計數(shù)器加計數(shù)a i 0.1cd

29、c 10 計數(shù)器減計數(shù) a i 0.2s c 10 計數(shù)初值預置 l c#55 裝入計數(shù)初值到accu1 a i 0.3 r c 10 計數(shù)器c10復位 a c 10 = q 4.0 l 當輸入信號i 0.2由“0”變?yōu)椤?”時,計數(shù)初值55被裝入計數(shù)器c10;l 如果輸入信號i 0.0由“0”變?yōu)椤?”,計數(shù)器c10的計數(shù)值加1(除非c10的計數(shù)值已達到999);l 如果輸入信號i 0.1由“0”變?yōu)椤?”,計數(shù)器c10的計數(shù)值減1;(除非c10的計數(shù)值已減到0);l 如果輸入信號i 0.3由“0”變?yōu)椤?”,計數(shù)器c10被復位,計數(shù)值為0;l 只要計數(shù)器c10的計數(shù)值不為0,則q 4.0輸

30、出就為“1”。3.3.2 計數(shù)器再啟動指令fr enable counter 格式: fr 類似于定時器再啟動指令fr,計數(shù)器再啟動指令用于重新裝載計數(shù)初值,計數(shù)器以新裝入的計數(shù)值運行。要求熟記計數(shù)器各端子的名稱及作用教 案教 學 內(nèi) 容備 注3.4 裝入和傳輸指令3.4.1裝入和傳輸指令裝入(l)和傳送(t)指令可以在存儲區(qū)之間或存儲區(qū)與過程輸入、輸出之間交換數(shù)據(jù)。l指令將源操作數(shù)裝入累加器l中,而累加器原有的數(shù)據(jù)移入累加器2中,累加器2中原有的內(nèi)容被覆蓋。t指令將累加器1中的內(nèi)容寫入目的存儲區(qū)中,累加器的內(nèi)容保持不變。l和t指令可對字節(jié)(8位)、字(16位)、雙字(32位)數(shù)據(jù)進行操作,當

31、數(shù)據(jù)長度小于32位時,數(shù)據(jù)在累加器右對齊(低位對齊),其余各位填0?;镜难b入和傳送指令如下:l l 通用裝入指令l l stw 將狀態(tài)字寄存器的內(nèi)容裝入到累加器1 l lar1 ar2將地址寄存器2的內(nèi)容裝入到地址寄存器1l lar1 將32位的長整數(shù)裝入到地址寄存器1l lar1 將累加器1的內(nèi)容裝入到地址寄存器1 l lar2 將32位的長整數(shù)裝入到地址寄存器2l lar2 將累加器1的內(nèi)容裝入到地址寄存器2 l t 通用傳輸指令l t stw 將累加器1的內(nèi)容傳輸?shù)綘顟B(tài)字寄存器l tar1 ar2將地址寄存器1的內(nèi)容傳輸?shù)降刂芳拇嫫? l tar1 將地址寄存器1的內(nèi)容傳輸?shù)侥康膯卧?/p>

32、32位)l tar2 將地址寄存器1的內(nèi)容傳輸?shù)侥康膯卧?2位)l tar1 將地址寄存器1的內(nèi)容傳輸?shù)嚼奂悠?l tar2 將地址寄存器1的內(nèi)容傳輸?shù)嚼奂悠?l car 交換地址寄存器的1的內(nèi)容和地址寄存器2的內(nèi)容交換 利用投影儀概括講解教 案3.4.2 狀態(tài)字狀態(tài)字用于表示cpu執(zhí)行指令時所具有的狀態(tài)。一些指令是否執(zhí)行或以何方式執(zhí)行可能取決于狀態(tài)字中的某些位;執(zhí)行指令時也可能改變狀態(tài)字中的某些位,也能在位邏輯指令或字邏輯指令中訪問并檢測他們。狀態(tài)字的結構如下: 319 8 7 6 5 4 3 2 1 0 brcc1cc0osovorstarlo(1) 首位檢測位()狀態(tài)字的位0稱為首位檢

33、測位。若位的狀態(tài)為0,則表明一個梯形邏輯網(wǎng)絡的開始,或指令為邏輯串的第一條指令。cpu對邏輯串第一條指令的檢測(稱為首位檢測)產(chǎn)生的結果直接保存在狀態(tài)字的rlo位中,經(jīng)過首次檢測存放在rlo中的0或1被稱為首位檢測結果。位在邏輯串的開始時總是0,在邏輯串指令執(zhí)行過程中位為1,輸出指令或與邏輯運算有關的轉移指令(表示一個邏輯串結束的指令)將清0。(2) 邏輯操作結果(rlo)狀態(tài)字的位1稱為邏輯操作結果rlo(result of logic operation)。該位存儲邏輯指令或算術比較指令的結果。在邏輯串中,rlo位的狀態(tài)能夠表示有關信號流的信息。rlo的狀態(tài)為1,表示有信號流(通);為0,

34、表示無信號流(斷)??捎胷lo觸發(fā)跳轉指令。(3) 狀態(tài)位(sta)狀態(tài)字的位2稱為狀態(tài)位。狀態(tài)位不能用指令檢測,它只是在程序測試中被cpu解釋并使用。如果一條指令是對存儲區(qū)操作的位邏輯指令,則無論是對該位的讀或寫操作,sta總是與該位的值取得一致;對不訪問存儲區(qū)的位邏輯指令來說,sta位沒有意義,此時它總被置為1。(4) 或位(or)狀態(tài)字的位3稱為或位(or)。在先邏輯“與”后邏輯“或”的邏輯串中,or位暫存邏輯“與”的操作結果,以便進行后面的邏輯“或”運算。其它指令將or位清0。(5) 溢出位(ov)狀態(tài)字的位4稱為溢出位。溢出位被置1,表明一個算術運算或浮點數(shù)比較指令執(zhí)行時出現(xiàn)錯誤(錯

35、誤:溢出、非法操作、不規(guī)范格式)。后面的算術運算或浮點數(shù)比較指令執(zhí)行結果正常的話ov位就被清0。(6) 溢出狀態(tài)保持位(os)狀態(tài)字的位5稱為溢出狀態(tài)保持位(或稱為存儲溢出位)。ov被置1時os也被置1;ov被清0時os仍保持。所以它保存了ov位,可用于指明在先前的一些指令執(zhí)行中是否產(chǎn)生過錯誤。只有下面的指令才能復位os位:jos(os=1時跳轉);塊調(diào)用指令和塊結束指令。此節(jié)是重點又是難點對各狀態(tài)位的要求不同一般了解熟練掌握一般了解充分理解熟練掌握熟練掌握教 案教 學 內(nèi) 容備 注(7) 條件碼1(cc1)和條件碼0(cc0)狀態(tài)字的位7和位6稱為條件碼1和條件碼0。這兩位結合起來用于表示在

36、累加器1中產(chǎn)生的算術運算或邏輯運算結果與0的大小關系;比較指令的執(zhí)行結果或移位指令的移出位狀態(tài)。詳見表4.4.2.1和表4.4.2.2。4.4.2.1算術運算后的cc1和cc0cclcco算術運算無溢出整數(shù)算術運算有溢出浮點數(shù)算術運算有溢出00結果0整數(shù)加時產(chǎn)生負范圍溢出平緩下溢01結果0乘時負范圍溢出;加、減、取負時正溢出負范圍溢出10結果0乘、除時正溢出;加、減時負溢出正范圍溢出11在除時除數(shù)為0非法操作4.4.2.2 比較、移位和循環(huán)移位、字邏輯指令后的cc1和cc0cclcco比較指令移位和循環(huán)指令字邏輯指令00累加器2累加器1移位0結果001累加器2累加器110累加器2累加器1結果0

37、11不規(guī)范(只用于浮點數(shù)比較)移出位1(8) 二進制結果位(br)狀態(tài)字的位8稱為二進制結果位。它將字處理程序與位處理聯(lián)系起來,在一段既有位操作又有字操作的程序中,用于表示字操作結果是否正確(異常)。將br位加入程序后,無論字操作結果如何,都不會造成二進制邏輯鏈中斷。在lad的方塊指令中,br位與eno有對應關系,用于表明方塊指令是否被正確執(zhí)行:如果執(zhí)行出現(xiàn)了錯誤,br位為0,eno也為0;如果功能被正確執(zhí)行,br位為1,eno也為1。在用戶編寫的fb和fc程序中,必須對br位進行管理,當功能塊正確運行后使br位為1,否則使其為0。使用stl指令save或lad指令(save),可將rlo存入

38、br中,從而達到管理br位的目的。當fb或fc執(zhí)行無錯誤時,使rlo為1并存入br,否則,在br中存入0。充分理解熟練掌握教 案教 學 內(nèi) 容備 注3.4.3 讀取或傳送狀態(tài)字 lstw /將狀態(tài)字中08位裝入累加器1中,累加器931位被清0 tstw /將累加器1中的內(nèi)容傳送到狀態(tài)字中注:對 s7-300系列的cpu, lstw不對狀態(tài)字中的sc、sta、or位進行操作,僅將狀態(tài)字中的1,4,5,6,7位裝入累加器1的對應位。3.4.4 裝入時間值或計數(shù)值 定時器字中的剩余時間值以二進制格式保存,用l指令從定時器字中讀出二進制時間值裝入累加器1中,稱為直接裝載。也可用lc指令以dcd碼格式讀

39、出時間值,裝入累加器1低字中,稱為bcd碼格式讀出時間值。以bcd碼格式裝入時間值可以同時獲得時間值和時基,時基與時間值相乘就得到定時剩余時間。l t1 /將定時器t1中二進制格式的時間值直接裝入累加器1的低字中l(wèi)c t1 /將定時器t1中的時間值和時基以bcd碼格式裝入累加器1 低字中對當前計數(shù)值也可以直接裝載和以bcd碼格式讀出當前計數(shù)值。l c1 /將計數(shù)器c1中計數(shù)值以二進制格式裝入累加器1的低字中l(wèi)c c1 /將計數(shù)器c1中的計數(shù)值以bcd碼格式裝入累加器1低字中3.4.5地址寄存器裝入和傳送對于地址寄存器,可以不經(jīng)過累加器1而直接將操作數(shù)裝入或傳出,或將兩個地址寄存器的內(nèi)容直接交換

40、。指令格式: lar1 說明:將操作數(shù)的內(nèi)容裝入地址寄存器1(arl);指令格式: lar2說明:將操作數(shù)的內(nèi)容裝入地址寄存器2(ar2);指令格式:tar1說明:將arl的內(nèi)容傳送給存儲區(qū)或ar2;指令格式:tar2說明:將arl的內(nèi)容傳送給存儲區(qū)或ar2;指令格式:car說明:交換arl和ar2的內(nèi)容熟練掌握一般了解教 案教 學 內(nèi) 容備 注例 3.4.2 larl p#i0.0 /將輸入位i0.0的地址指針裝入arl lar2 p#0.0 /將二進制數(shù)2#00000000 00000000 00000000 00000000 裝入ar2lar1 p#start /將符號名為start的存

41、儲器的地址指針裝入arl larl ar2 /將ar2的內(nèi)容裝入arl larl dbd20 /將數(shù)據(jù)雙字dbd 20的內(nèi)容裝入arl tarl ar2 /將arl的內(nèi)容傳送至ar2tar2 /將ar2的內(nèi)容傳送至累加器1tarl md 20 /將arl的內(nèi)容傳送至存儲器雙字md 20car /交換arl和ar2的內(nèi)容 3.4.6傳送指令 fbd符號: 端子說明: en 允許輸入端 in 源數(shù)據(jù)輸入端 out 目的操作數(shù)輸出 eno 允許輸出端 例 3.4.3 語句表如下: a i 0.0 jnb _0001 l mw 10 t dbw 12 set / 使rlo為1 save / 使br為1

42、 clr _0001: a br = q 40重點要求教 案教 學 內(nèi) 容備 注3.5.比較指令比較指令用于比較累加器2與累加器1中的數(shù)據(jù)大小。比較時應確保兩個數(shù)的數(shù)據(jù)類型相同,數(shù)據(jù)類型可以是整數(shù)、長整數(shù)或實數(shù)若比較的結果為真,則rlo為1,否則為0。比較指令影響狀態(tài)字,用指令測試狀態(tài)字有關位,可得到兩個數(shù)更詳細的情況。3.5.1比較兩個整數(shù)或長整數(shù)指令說 明= =i= =d比較累加器2低字中的整數(shù)是否等于累加器1低字中的整數(shù)比較累加器2中的長整數(shù)是否等于累加器1中的長整數(shù)id比較累加器2低字中的整是否不等于累加器1低字中的數(shù)比較累加器2中的長整數(shù)是否不等于累加器1中的長整數(shù)id比較累加器2低字中的整數(shù)是否大于累加器l低字中的整數(shù)比較累加器2中的長整數(shù)是否大于累加器1中的長整數(shù)id比較累加器2低字中的整數(shù)是否小于累加器1低字中的整數(shù)比較累加器2中的長整數(shù)是否小于累加器l中的長整數(shù)id比較累加器2低字中的數(shù)是否大于等于累加器l低字中的數(shù)比較累加器2中的長整數(shù)是否大于等于累加器1中的長整數(shù)id比較累加器2低字中的整是否小于等于累加器1

溫馨提示

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

評論

0/150

提交評論