![S7-200指令系統(tǒng)_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/21/ee75eb66-e867-48f4-aecc-fbc41dd50960/ee75eb66-e867-48f4-aecc-fbc41dd509601.gif)
![S7-200指令系統(tǒng)_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/21/ee75eb66-e867-48f4-aecc-fbc41dd50960/ee75eb66-e867-48f4-aecc-fbc41dd509602.gif)
![S7-200指令系統(tǒng)_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/21/ee75eb66-e867-48f4-aecc-fbc41dd50960/ee75eb66-e867-48f4-aecc-fbc41dd509603.gif)
![S7-200指令系統(tǒng)_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/21/ee75eb66-e867-48f4-aecc-fbc41dd50960/ee75eb66-e867-48f4-aecc-fbc41dd509604.gif)
![S7-200指令系統(tǒng)_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/21/ee75eb66-e867-48f4-aecc-fbc41dd50960/ee75eb66-e867-48f4-aecc-fbc41dd509605.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、u PLC PLC實際上就是工業(yè)控制計算機(jī)。它具有計算實際上就是工業(yè)控制計算機(jī)。它具有計算機(jī)控制系統(tǒng)的功能,例如算術(shù)邏輯運算、程序流機(jī)控制系統(tǒng)的功能,例如算術(shù)邏輯運算、程序流控制、通信等等極為強大的功能。這些功能通??刂?、通信等等極為強大的功能。這些功能通常是通過功能指令的形式來實現(xiàn)的。是通過功能指令的形式來實現(xiàn)的。 u 功能指令(功能指令(Function Instruction)又稱為應(yīng)用指)又稱為應(yīng)用指令,它是指令系統(tǒng)中應(yīng)用于復(fù)雜控制的指令。功令,它是指令系統(tǒng)中應(yīng)用于復(fù)雜控制的指令。功能指令包括:數(shù)據(jù)處理指令、算術(shù)邏輯運算指令、能指令包括:數(shù)據(jù)處理指令、算術(shù)邏輯運算指令、表功能指令、轉(zhuǎn)換
2、指令、中斷指令、高速處理指表功能指令、轉(zhuǎn)換指令、中斷指令、高速處理指令等等。這些功能指令實際上是廠商為滿足各種令等等。這些功能指令實際上是廠商為滿足各種客戶的特殊需要而開發(fā)的通用子程序??蛻舻奶厥庑枰_發(fā)的通用子程序。 1. 加法運算指令加法運算指令 u加法指令是對有符號數(shù)進(jìn)行相加操作。包括:整數(shù)加法指令是對有符號數(shù)進(jìn)行相加操作。包括:整數(shù)加法、雙整數(shù)加法和實數(shù)加法。加法、雙整數(shù)加法和實數(shù)加法。u加法指令影響的特殊存儲器位:加法指令影響的特殊存儲器位:SM1.0(零);(零);SM1.1(溢出);(溢出);SM1.2(負(fù))。(負(fù))。(1)整數(shù)加法指令:)整數(shù)加法指令:+I 使能輸入有效時,將
3、兩個使能輸入有效時,將兩個單字長(單字長(16位)的符號整數(shù)位)的符號整數(shù)IN1和和IN2相加,產(chǎn)生一個相加,產(chǎn)生一個16位整數(shù)結(jié)果位整數(shù)結(jié)果OUT。 在在LAD和和FBD中,以指令盒形式編程,執(zhí)行結(jié)果:中,以指令盒形式編程,執(zhí)行結(jié)果:IN1+IN2OUT。在在STL中,通常將中,通常將IN2與與OUT共用一個地址單元,執(zhí)行結(jié)共用一個地址單元,執(zhí)行結(jié)果:果:IN1+OUTOUT。指令格式:指令格式:+I IN1, OUT u程序?qū)嵗撼绦驅(qū)嵗?LD I0.1 /使能輸入端MOVW VW0, VW4 /VW0VW4+I VW2, VW4 /VW2+VW4VW4LADLAD中中IN2和和OUT可
4、可用同一單元。用同一單元。 圖5-33 整數(shù)加法例b (2)雙整數(shù)加法指令:)雙整數(shù)加法指令:+D(3)實數(shù)加法指令:)實數(shù)加法指令:+R 使能輸入有效時,將兩個雙字使能輸入有效時,將兩個雙字長(長(32位)的符號整數(shù)位)的符號整數(shù)IN1和和IN2相加,產(chǎn)生一個相加,產(chǎn)生一個32位整數(shù)結(jié)果位整數(shù)結(jié)果OUT。指令格式:指令格式:+D IN1, OUT +D IN1, OUT 使能輸入有效時,將兩個雙字使能輸入有效時,將兩個雙字長(長(32位)的實數(shù)位)的實數(shù)IN1和和IN2相加,相加,產(chǎn)生一個產(chǎn)生一個32位實數(shù)結(jié)果位實數(shù)結(jié)果OUT。 指令格式:指令格式:+R IN1, OUT 2. 減法運算指令
5、減法運算指令 u減法指令是對有符號數(shù)進(jìn)行相減操作。包括:整減法指令是對有符號數(shù)進(jìn)行相減操作。包括:整數(shù)減法、雙整數(shù)減法和實數(shù)減法。這三種減法指數(shù)減法、雙整數(shù)減法和實數(shù)減法。這三種減法指令與所對應(yīng)的加法指令除運算法則不同之外,其令與所對應(yīng)的加法指令除運算法則不同之外,其他方面基本相同。他方面基本相同。整數(shù)減法整數(shù)減法 雙整數(shù)減法雙整數(shù)減法 實數(shù)減法實數(shù)減法 u程序?qū)嵗撼绦驅(qū)嵗?指令格式:指令格式:-I IN2, OUT /整數(shù)減法,整數(shù)減法,OUT-IN2OUT -D IN2, OUT /雙整數(shù)減法雙整數(shù)減法 -R IN2, OUT /實數(shù)減法實數(shù)減法 LD I0.0 /使能輸入端-I VW
6、2, VW0 /整數(shù)減法 /VW0-VW2VW0 表5.16 操作數(shù)執(zhí)行前后的結(jié)果 操作數(shù)操作數(shù)地址單元地址單元 單元長度(字節(jié))單元長度(字節(jié)) 運算前的值運算前的值運算后的值運算后的值IN1VW0260005000IN2VW2210001000OUTVW0260005000 3. 乘法運算指令乘法運算指令 u乘法運算指令是對有符號數(shù)進(jìn)行相乘運算。包括:整數(shù)乘乘法運算指令是對有符號數(shù)進(jìn)行相乘運算。包括:整數(shù)乘法、完全整數(shù)乘法、雙整數(shù)乘法和實數(shù)乘法。法、完全整數(shù)乘法、雙整數(shù)乘法和實數(shù)乘法。(1)整數(shù)乘法指令:)整數(shù)乘法指令:*I 使能輸入有效時,將兩個單字使能輸入有效時,將兩個單字長(長(16
7、位)的符號整數(shù)位)的符號整數(shù)IN1和和IN2相乘,產(chǎn)生一個相乘,產(chǎn)生一個16位整數(shù)結(jié)果位整數(shù)結(jié)果OUT。 指令格式:指令格式:*I IN1, OUT u程序?qū)嵗撼绦驅(qū)嵗?(2)完全整數(shù)乘法(常規(guī)乘法)指令:)完全整數(shù)乘法(常規(guī)乘法)指令:MUL LD I0.0 /使能輸入端*I VW0, VW2 /整數(shù)乘法 /VW0*VW2VW2 使能輸入有效時,將兩個單字使能輸入有效時,將兩個單字長(長(16位)的符號整數(shù)位)的符號整數(shù)IN1和和IN2相乘,產(chǎn)生一個相乘,產(chǎn)生一個32位雙整數(shù)結(jié)果位雙整數(shù)結(jié)果OUT。 指令格式:指令格式:*I IN1, OUT 3232位位OUTOUT的低位字(的低位字(
8、1616位)被用作乘數(shù)位)被用作乘數(shù) (3)雙整數(shù)乘法指令:)雙整數(shù)乘法指令:*D u程序?qū)嵗海ǔ绦驅(qū)嵗海↖N2與與OUT不是公用一個地址單元時)不是公用一個地址單元時) 使能輸入有效時,將兩個雙字使能輸入有效時,將兩個雙字長(長(32位)的符號整數(shù)位)的符號整數(shù)IN1和和IN2相乘,產(chǎn)生一個相乘,產(chǎn)生一個32位整數(shù)結(jié)果位整數(shù)結(jié)果OUT。 指令格式:指令格式:*D IN1, OUT LD I0.0 /使能輸入端MOVD VD0, VD6 /VD0VD6*D VD2, VD6 /雙整數(shù)乘法 圖5-36 雙整數(shù)乘法例 使能輸入有效時,將兩個雙字使能輸入有效時,將兩個雙字長(長(32位)的符號整
9、數(shù)位)的符號整數(shù)IN1和和IN2相乘,產(chǎn)生一個相乘,產(chǎn)生一個32位整數(shù)結(jié)果位整數(shù)結(jié)果OUT。 指令格式:指令格式:*R IN1, OUT (4)實數(shù)乘法指令:)實數(shù)乘法指令:*R 4. 除法運算指令除法運算指令 u 除法運算指令是對有符號數(shù)進(jìn)行相除操作。包除法運算指令是對有符號數(shù)進(jìn)行相除操作。包括:整數(shù)除法、完全整數(shù)除法、雙整數(shù)除法和實括:整數(shù)除法、完全整數(shù)除法、雙整數(shù)除法和實數(shù)除法。這四種除法指令與所對應(yīng)的乘法指令除數(shù)除法。這四種除法指令與所對應(yīng)的乘法指令除運算法則不同之外,其他方面基本相同。運算法則不同之外,其他方面基本相同。指令格式:指令格式:/I IN2,OUT /I IN2,OUT
10、/整數(shù)除法整數(shù)除法, OUT/IN2, OUT/IN2OUTOUT。 DIV IN2, OUT /DIV IN2, OUT /整數(shù)完全除法(常規(guī)除法)整數(shù)完全除法(常規(guī)除法) /D IN2, OUT /D IN2, OUT /雙整數(shù)除法雙整數(shù)除法 /R IN2, OUT /R IN2, OUT /實數(shù)除法實數(shù)除法在整數(shù)除法中,兩個在整數(shù)除法中,兩個16位的整數(shù)相除,產(chǎn)生一個位的整數(shù)相除,產(chǎn)生一個16位的整數(shù)商,不保留余數(shù)。雙整數(shù)除法也同樣位的整數(shù)商,不保留余數(shù)。雙整數(shù)除法也同樣過程,只是位數(shù)變?yōu)檫^程,只是位數(shù)變?yōu)?2位。位。在整數(shù)完全除法中,兩個在整數(shù)完全除法中,兩個16位的符號整數(shù)相除,位的
11、符號整數(shù)相除,產(chǎn)生一個產(chǎn)生一個32位結(jié)果,其中,位結(jié)果,其中,低低16位為商,高位為商,高16位位為余數(shù)為余數(shù)。32位結(jié)果的低位結(jié)果的低16位運算前期被兼用存放被除數(shù)。位運算前期被兼用存放被除數(shù)。 u程序?qū)嵗撼绦驅(qū)嵗?LD I0.0 /使能輸入端MOVW +12345, VW12 /12345VW12 MOVW +100, VW20 /100VW20 LD I0.1 /使能輸入端DIV VW20, VD10 /VW12/VW20VD1 整數(shù)完全除法例 5. 增減指令增減指令 u增、減指令,又稱自增和自減,是對無符號或有增、減指令,又稱自增和自減,是對無符號或有符號整數(shù)進(jìn)行自動增加或減少一個
12、單位的操作,符號整數(shù)進(jìn)行自動增加或減少一個單位的操作,數(shù)據(jù)長度可以是字節(jié)、字或雙字。數(shù)據(jù)長度可以是字節(jié)、字或雙字。 u使能流輸出使能流輸出ENO斷開的出錯條件:斷開的出錯條件:0006(間接尋(間接尋址);址);SM1.1(溢出);(溢出);SM4.3(運行時間)。(運行時間)。u在在LAD和和FBD中,以指令盒形式編程,執(zhí)行結(jié)果:中,以指令盒形式編程,執(zhí)行結(jié)果:IN1OUT和和IN1OUT。u在在STL中,執(zhí)行結(jié)果:中,執(zhí)行結(jié)果:OUT1OUT和和OUT1OUT。 (1)字節(jié)增和字節(jié)減指令:)字節(jié)增和字節(jié)減指令:INCB,DECB (2)字增和字減指令:)字增和字減指令:INCW,DECW
13、(3)雙字增和雙字減指令:)雙字增和雙字減指令:INCD,DECD 使能輸入有效時,把一雙字長的有符號輸入數(shù)使能輸入有效時,把一雙字長的有符號輸入數(shù)IN加加1或減或減1,得到一個雙字長的有符號輸出結(jié)果,得到一個雙字長的有符號輸出結(jié)果OUT。 指令格式:指令格式:INCD OUT; DECD OUT 使能輸入有效時,把一字節(jié)長的無符號輸入數(shù)使能輸入有效時,把一字節(jié)長的無符號輸入數(shù)IN加加1或減或減1,得到一個字節(jié)的無符號輸出結(jié)果,得到一個字節(jié)的無符號輸出結(jié)果OUT。指令格式:指令格式:INCB OUT; DECB OUT 使能輸入有效時,把一字長的有符號輸入數(shù)使能輸入有效時,把一字長的有符號輸入
14、數(shù)IN加加1或減或減1,得到一個字長的有符號輸出結(jié)果得到一個字長的有符號輸出結(jié)果OUT。指令格式:指令格式:INCW OUT; DECW OUT 6. 數(shù)學(xué)函數(shù)指令數(shù)學(xué)函數(shù)指令 u數(shù)學(xué)函數(shù)指令包括平方根、自然對數(shù)、指數(shù)、三數(shù)學(xué)函數(shù)指令包括平方根、自然對數(shù)、指數(shù)、三角函數(shù)等幾個常用的函數(shù)指令。角函數(shù)等幾個常用的函數(shù)指令。u運算輸入輸出數(shù)據(jù)都為實數(shù)。結(jié)果如果大于運算輸入輸出數(shù)據(jù)都為實數(shù)。結(jié)果如果大于32位位二進(jìn)制表示的范圍,則產(chǎn)生溢出。二進(jìn)制表示的范圍,則產(chǎn)生溢出。(1)平方根指令:)平方根指令:SQRT 把一個雙字長(把一個雙字長(32位)的實位)的實數(shù)數(shù)IN開方,得到開方,得到32位的實數(shù)結(jié)位
15、的實數(shù)結(jié)果果OUT。指令格式:指令格式:SQRT IN, OUT (2)自然對數(shù)指令:)自然對數(shù)指令:LN (3)指數(shù)指令:)指數(shù)指令:EXP 把一個雙字長(把一個雙字長(32位)的實位)的實數(shù)數(shù)IN取以取以e為底的指數(shù),得到為底的指數(shù),得到32位的實數(shù)結(jié)果位的實數(shù)結(jié)果OUT。指令格式:指令格式:EXP IN, OUT 把一個雙字長(把一個雙字長(32位)的實位)的實數(shù)數(shù)IN取自然對數(shù),得到取自然對數(shù),得到32位的位的實數(shù)結(jié)果實數(shù)結(jié)果OUT。指令格式:指令格式:LN IN, OUT (4)三角函數(shù)指令:)三角函數(shù)指令:SIN、COS、TAN u程序?qū)嵗海ㄇ蟪绦驅(qū)嵗海ㄇ?5的正切值)的正切值
16、) 即正弦、余弦、正切指令。將把一個雙字長(即正弦、余弦、正切指令。將把一個雙字長(32位)的實位)的實數(shù)弧度值數(shù)弧度值IN分別取正弦、余弦、正切,各得到分別取正弦、余弦、正切,各得到32位的實數(shù)位的實數(shù)結(jié)果結(jié)果OUT。 指令格式:指令格式:SIN IN, OUT; COS IN, OUT; TAN IN, OUTLD I0.0 /使能輸入端MOVR 3.14159, AC0 /3.14159AC0/R 180.0, AC0 /3.14159/180.0AC0*R 65.0, AC0 /65.0*AC0AC0TAN AC0, AC1 /TAN(AC0)AC1/計算結(jié)果為TAN(65)=2.14
17、45AC1/(AC1)2.1445 圖5-38 求三角函數(shù)例 u邏輯運算是對無符號數(shù)進(jìn)行的邏輯處理,主要包邏輯運算是對無符號數(shù)進(jìn)行的邏輯處理,主要包括邏輯與、邏輯或、邏輯異或和取反等運算指令。括邏輯與、邏輯或、邏輯異或和取反等運算指令。按操作數(shù)長度可分為字節(jié)、字和雙字邏輯運算。按操作數(shù)長度可分為字節(jié)、字和雙字邏輯運算。IN1、IN2、OUT操作數(shù)的數(shù)據(jù)類型分別為:操作數(shù)的數(shù)據(jù)類型分別為:B、W、DW。u邏輯運算指令影響的特殊存儲器位:邏輯運算指令影響的特殊存儲器位:SM1.0SM1.0(零)。(零)。u使能流輸出使能流輸出ENOENO斷開的出錯條件:斷開的出錯條件:00060006(間接尋(間
18、接尋址);址);SM4.3SM4.3(運行時間)。(運行時間)。 1. 邏輯與運算指令邏輯與運算指令 ANDB,字節(jié)邏輯與指令。使能輸入有效時,把兩個字節(jié),字節(jié)邏輯與指令。使能輸入有效時,把兩個字節(jié)的邏輯數(shù)按位求與,得到一個字節(jié)長的邏輯輸出結(jié)果的邏輯數(shù)按位求與,得到一個字節(jié)長的邏輯輸出結(jié)果OUT。ANDW,字邏輯與指令。使能輸入有效時,把兩個字的邏,字邏輯與指令。使能輸入有效時,把兩個字的邏輯數(shù)按位求與,得到一個字長的邏輯輸出結(jié)果輯數(shù)按位求與,得到一個字長的邏輯輸出結(jié)果OUT。ANDD,雙字邏輯與指令。使能輸入有效時,把兩個雙字,雙字邏輯與指令。使能輸入有效時,把兩個雙字的邏輯數(shù)按位求與,得到
19、一個雙字長的邏輯輸出結(jié)果的邏輯數(shù)按位求與,得到一個雙字長的邏輯輸出結(jié)果OUT。指令格式:指令格式:ANDB IN1, OUT;ANDW IN1, OUT;ANDD IN1, OUT 2. 邏輯或運算指令邏輯或運算指令 ORBORB,字節(jié)邏輯或指令。使能輸入有效時,把兩個字節(jié)的邏,字節(jié)邏輯或指令。使能輸入有效時,把兩個字節(jié)的邏輯數(shù)按位求或,得到一個字節(jié)長的邏輯輸出結(jié)果輯數(shù)按位求或,得到一個字節(jié)長的邏輯輸出結(jié)果OUTOUT。ORWORW,字邏輯或指令。使能輸入有效時,把兩個字的邏輯數(shù),字邏輯或指令。使能輸入有效時,把兩個字的邏輯數(shù)按位求或,得到一個字長的邏輯輸出結(jié)果按位求或,得到一個字長的邏輯輸出
20、結(jié)果OUTOUT。ORDORD,雙字邏輯或指令。使能輸入有效時,把兩個雙字的邏,雙字邏輯或指令。使能輸入有效時,把兩個雙字的邏輯數(shù)按位求或,得到一個雙字長的邏輯輸出結(jié)果輯數(shù)按位求或,得到一個雙字長的邏輯輸出結(jié)果OUTOUT。 指令格式:指令格式:ORB IN1, OUT;ORW IN1, OUT;ORD IN1, OUT 3. 邏輯異或運算指令邏輯異或運算指令 XORBXORB,字節(jié)邏輯異或指令。使能輸入有效時,把兩個字節(jié)的,字節(jié)邏輯異或指令。使能輸入有效時,把兩個字節(jié)的邏輯數(shù)按位求異或,得到一個字節(jié)長的邏輯輸出結(jié)果邏輯數(shù)按位求異或,得到一個字節(jié)長的邏輯輸出結(jié)果OUTOUT。XORWXORW,
21、字邏輯異或指令。使能輸入有效時,把兩個字的邏輯,字邏輯異或指令。使能輸入有效時,把兩個字的邏輯數(shù)按位求異或,得到一個字長的邏輯輸出結(jié)果數(shù)按位求異或,得到一個字長的邏輯輸出結(jié)果OUTOUT。XORDXORD,雙字邏輯異或指令。使能輸入有效時,把兩個雙字的,雙字邏輯異或指令。使能輸入有效時,把兩個雙字的邏輯數(shù)按位求異或,得到一個雙字長的邏輯輸出結(jié)果邏輯數(shù)按位求異或,得到一個雙字長的邏輯輸出結(jié)果OUTOUT。 指令格式:指令格式:XORB IN1, OUT;XORW IN1, OUT;XORD IN1, OUT4. 取反指令取反指令 INVBINVB,字節(jié)邏輯取反指令。使能輸入有效時,把一個字節(jié)的,
22、字節(jié)邏輯取反指令。使能輸入有效時,把一個字節(jié)的邏輯數(shù)按位求反,得到一個字節(jié)長的邏輯輸出結(jié)果邏輯數(shù)按位求反,得到一個字節(jié)長的邏輯輸出結(jié)果OUTOUT。INVWINVW,字邏輯取反指令。使能輸入有效時,把一個字的邏輯,字邏輯取反指令。使能輸入有效時,把一個字的邏輯數(shù)按位求反,得到一個字長的邏輯輸出結(jié)果數(shù)按位求反,得到一個字長的邏輯輸出結(jié)果OUTOUT。INVDINVD,雙字邏輯取反指令。使能輸入有效時,把一個雙字的,雙字邏輯取反指令。使能輸入有效時,把一個雙字的邏輯數(shù)按位求反,得到一個雙字長的邏輯輸出結(jié)果邏輯數(shù)按位求反,得到一個雙字長的邏輯輸出結(jié)果OUTOUT。 指令格式:指令格式:INVB OU
23、T; INVW OUT; INVD OUT u程程序序?qū)崒嵗豪?LD I0.0 /使能輸入端MOVB AC0, AC1 /AC0AC1ANDB 255, AC1 /AC1的值和255作相與/運算,即實現(xiàn)了AC0和255相與的運算,結(jié)/果放到AC1中。LD I0.1 /使能輸入端MOVW LW10, LW30 /LW10LW30ORW LW20, LW30 /進(jìn)行或運算 LD I0.2 /使能輸入端MOVD VD100, VD120 /VD100VD120XORD VD110, VD120 /進(jìn)行異或運算 LD I0.3 /使能輸入端MOVW VW10, VW20 / VW10VW20INV
24、W VW20 /進(jìn)行取反運算 圖5-39 邏輯運算指令例 u 轉(zhuǎn)換指令是指對操作數(shù)的類型進(jìn)行轉(zhuǎn)換,轉(zhuǎn)換指令是指對操作數(shù)的類型進(jìn)行轉(zhuǎn)換,包括數(shù)據(jù)的類型轉(zhuǎn)換、碼的類型轉(zhuǎn)換以及包括數(shù)據(jù)的類型轉(zhuǎn)換、碼的類型轉(zhuǎn)換以及數(shù)據(jù)和碼之間的類型轉(zhuǎn)換。數(shù)據(jù)和碼之間的類型轉(zhuǎn)換。u 數(shù)據(jù)類型主要包括字節(jié)、整數(shù)、雙整數(shù)、數(shù)據(jù)類型主要包括字節(jié)、整數(shù)、雙整數(shù)、實數(shù),不同性質(zhì)的指令對操作數(shù)的類型要實數(shù),不同性質(zhì)的指令對操作數(shù)的類型要求不同,類型轉(zhuǎn)換指令可將固定的一個數(shù)求不同,類型轉(zhuǎn)換指令可將固定的一個數(shù)值用到不同類型要求的指令,而不必對數(shù)值用到不同類型要求的指令,而不必對數(shù)據(jù)進(jìn)行針對類型的重新裝載。據(jù)進(jìn)行針對類型的重新裝載。
25、使能輸入有效時,將二進(jìn)制編碼的十進(jìn)制使能輸入有效時,將二進(jìn)制編碼的十進(jìn)制數(shù)值數(shù)值IN轉(zhuǎn)換成整數(shù),并將結(jié)果送到轉(zhuǎn)換成整數(shù),并將結(jié)果送到OUT輸輸出。出。IN的有效范圍是的有效范圍是0至至9999。 指令格式:指令格式:BCDI OUT LD I1.0 /使能輸入端BCDI AC0 /AC0中的BCD碼轉(zhuǎn)換為整數(shù)圖5-41 BCD碼轉(zhuǎn)換為整數(shù)例 1. BCD碼與整數(shù)之間的轉(zhuǎn)換指令碼與整數(shù)之間的轉(zhuǎn)換指令 (1)BCD碼到整數(shù):碼到整數(shù):BCDI u程序?qū)嵗撼绦驅(qū)嵗?已知(已知(AC0AC0)=1234=1234,程序,程序運行后:(運行后:(AC0AC0)=04D2=04D2。 (2)整數(shù)到)整
26、數(shù)到BCD碼:碼:IBCD 2. 字節(jié)與字整數(shù)之間的轉(zhuǎn)換指令字節(jié)與字整數(shù)之間的轉(zhuǎn)換指令 (1)字節(jié)到整數(shù):)字節(jié)到整數(shù):BTI 使能輸入有效時,將字節(jié)型輸入數(shù)據(jù)使能輸入有效時,將字節(jié)型輸入數(shù)據(jù)IN轉(zhuǎn)轉(zhuǎn)換成整數(shù)類型,并將結(jié)果送到換成整數(shù)類型,并將結(jié)果送到OUT輸出。輸出。字節(jié)型是無符號的,所以沒有符號擴(kuò)展。字節(jié)型是無符號的,所以沒有符號擴(kuò)展。 指令格式:指令格式:BTI IN, OUT 使能輸入有效時,將輸入整數(shù)值使能輸入有效時,將輸入整數(shù)值IN轉(zhuǎn)換成轉(zhuǎn)換成二進(jìn)制編碼的十進(jìn)制數(shù),并將結(jié)果送到二進(jìn)制編碼的十進(jìn)制數(shù),并將結(jié)果送到OUT輸出。輸出。 指令格式:指令格式:IBCD OUT (2)整數(shù)到字
27、節(jié):)整數(shù)到字節(jié):ITB 3. 字型整數(shù)與雙字整數(shù)之間的轉(zhuǎn)換指令字型整數(shù)與雙字整數(shù)之間的轉(zhuǎn)換指令(1)雙整數(shù)到整數(shù):)雙整數(shù)到整數(shù):DTI 使能輸入有效時,將雙整數(shù)型輸入數(shù)據(jù)使能輸入有效時,將雙整數(shù)型輸入數(shù)據(jù)IN轉(zhuǎn)換成整數(shù)類型,并將結(jié)果送到轉(zhuǎn)換成整數(shù)類型,并將結(jié)果送到OUT輸出。輸出。輸入數(shù)據(jù)超出整數(shù)范圍則產(chǎn)生溢出,輸入數(shù)據(jù)超出整數(shù)范圍則產(chǎn)生溢出, 轉(zhuǎn)換轉(zhuǎn)換的數(shù)值太大不能在輸出中表示的數(shù)值太大不能在輸出中表示。 指令格式:指令格式:DTI IN, OUT 使能輸入有效時,將整數(shù)型輸入數(shù)據(jù)使能輸入有效時,將整數(shù)型輸入數(shù)據(jù)IN轉(zhuǎn)轉(zhuǎn)換成字節(jié)類型,并將結(jié)果送到換成字節(jié)類型,并將結(jié)果送到OUT輸出。輸出
28、。輸入數(shù)據(jù)超出字節(jié)范圍(輸入數(shù)據(jù)超出字節(jié)范圍(0255)則產(chǎn)生溢)則產(chǎn)生溢出出 ,轉(zhuǎn)換的數(shù)值太大不能在輸出中表示。,轉(zhuǎn)換的數(shù)值太大不能在輸出中表示。指令格式:指令格式:ITB IN, OUT (2)整數(shù)到雙整數(shù):)整數(shù)到雙整數(shù):ITD 4. 雙字整數(shù)與實數(shù)之間的轉(zhuǎn)換指令雙字整數(shù)與實數(shù)之間的轉(zhuǎn)換指令(1)實數(shù)到雙整數(shù):)實數(shù)到雙整數(shù):ROUND,TRUNC 使能輸入有效時,將實數(shù)型輸入數(shù)據(jù)使能輸入有效時,將實數(shù)型輸入數(shù)據(jù)IN轉(zhuǎn)轉(zhuǎn)換成雙整數(shù)類型,并將結(jié)果送到換成雙整數(shù)類型,并將結(jié)果送到OUT輸出。輸出。兩條指令的區(qū)別是:前者小數(shù)部分四舍五入,兩條指令的區(qū)別是:前者小數(shù)部分四舍五入,而后者小數(shù)部分直
29、接舍去。輸入數(shù)據(jù)超出實而后者小數(shù)部分直接舍去。輸入數(shù)據(jù)超出實數(shù)范圍則產(chǎn)生溢出。數(shù)范圍則產(chǎn)生溢出。 指令格式:指令格式:ROUND IN, OUT TRUNC IN, OUT 使能輸入有效時,將整數(shù)型輸入數(shù)據(jù)使能輸入有效時,將整數(shù)型輸入數(shù)據(jù)IN轉(zhuǎn)轉(zhuǎn)換成雙整數(shù)類型(符號進(jìn)行擴(kuò)展),并將結(jié)換成雙整數(shù)類型(符號進(jìn)行擴(kuò)展),并將結(jié)果送到果送到OUT輸出。輸出。 指令格式:指令格式:ITD IN, OUT (2)雙整數(shù)到實數(shù):)雙整數(shù)到實數(shù):DTR 5. 編碼、譯碼指令編碼、譯碼指令(1)編碼指令:)編碼指令:ENCO 使能輸入有效時,將字型輸入數(shù)據(jù)使能輸入有效時,將字型輸入數(shù)據(jù)IN中值中值為為1的最低有
30、效位的位號編碼成的最低有效位的位號編碼成4位二進(jìn)制數(shù),位二進(jìn)制數(shù),輸出到輸出到OUT所指定的字節(jié)單元的低所指定的字節(jié)單元的低4位。即位。即用半個字節(jié)來對一個字型數(shù)據(jù)用半個字節(jié)來對一個字型數(shù)據(jù)16位中的位中的1位位有效位進(jìn)行編碼。有效位進(jìn)行編碼。 指令格式:指令格式:ENCO IN, OUT 使能輸入有效時,將雙整數(shù)型輸入數(shù)據(jù)使能輸入有效時,將雙整數(shù)型輸入數(shù)據(jù)IN轉(zhuǎn)換成實數(shù)型,并將結(jié)果送到轉(zhuǎn)換成實數(shù)型,并將結(jié)果送到OUT輸出。輸出。 指令格式:指令格式:DTR IN, OUT (2)譯碼指令:)譯碼指令:DECO 6. 段碼(段碼(SEG)指令)指令 SEG,七段碼指令。使能輸入有效時,將,七段
31、碼指令。使能輸入有效時,將字節(jié)型輸入數(shù)據(jù)字節(jié)型輸入數(shù)據(jù)IN的低的低4位有效數(shù)字(位有效數(shù)字(160F)轉(zhuǎn)換成七段顯示碼,并將其輸出到)轉(zhuǎn)換成七段顯示碼,并將其輸出到OUT所指定的字節(jié)單元。所指定的字節(jié)單元。 指令格式:指令格式:SEG IN, OUT 使能輸入有效時,根據(jù)字節(jié)型輸入數(shù)據(jù)使能輸入有效時,根據(jù)字節(jié)型輸入數(shù)據(jù)IN的低的低4位所表示的位號將位所表示的位號將OUT所指定的字單所指定的字單元的對應(yīng)位置元的對應(yīng)位置1,其他位置,其他位置0。即對半個字節(jié)。即對半個字節(jié)的編碼進(jìn)行譯碼來選擇一個字型數(shù)據(jù)的編碼進(jìn)行譯碼來選擇一個字型數(shù)據(jù)16位中位中的的1位。位。 指令格式:指令格式:DECO IN,
32、 OUT 七段顯示的編碼七段顯示的編碼7. ASCII碼與十六進(jìn)制數(shù)之間的轉(zhuǎn)換指令碼與十六進(jìn)制數(shù)之間的轉(zhuǎn)換指令 ATH,ASCII碼到十六進(jìn)制數(shù)指令。使能輸入有效時,將從碼到十六進(jìn)制數(shù)指令。使能輸入有效時,將從IN開始開始的長度為的長度為LEN的的ASCII碼轉(zhuǎn)換為十六進(jìn)制數(shù),并將結(jié)果送到碼轉(zhuǎn)換為十六進(jìn)制數(shù),并將結(jié)果送到OUT開開始的字節(jié)進(jìn)行輸出。始的字節(jié)進(jìn)行輸出。ASCII字符串的最大長度為字符串的最大長度為255字符。字符。 HTA,十六進(jìn)制數(shù)到,十六進(jìn)制數(shù)到ASCII碼指令。使能輸入有效時,將從輸入碼指令。使能輸入有效時,將從輸入字節(jié)字節(jié)IN開始的十六進(jìn)制數(shù)字轉(zhuǎn)換成從開始的十六進(jìn)制數(shù)字轉(zhuǎn)
33、換成從OUT開始的開始的ASCII字符。欲轉(zhuǎn)字符。欲轉(zhuǎn)換的十六進(jìn)制數(shù)字位數(shù)由長度(換的十六進(jìn)制數(shù)字位數(shù)由長度(LEN)指定。可轉(zhuǎn)換的最大十六進(jìn))指定??赊D(zhuǎn)換的最大十六進(jìn)制數(shù)字位數(shù)為制數(shù)字位數(shù)為255。有效。有效ASCII字符是十六進(jìn)制數(shù)值字符是十六進(jìn)制數(shù)值30至至39和和41至至46 指令格式:指令格式:ATH IN, OUT, LEN HTA IN, OUT, LEN u應(yīng)用舉例:應(yīng)用舉例:LD I0.0 /使能輸入端ATH VB100, VB200, 4 /使能輸入有/效時,把從VB100開始的4個ASCII碼轉(zhuǎn)/換成從VB200開始的十六進(jìn)制數(shù) 位置位置首地址首地址含義含義字節(jié)字節(jié)1字節(jié)
34、字節(jié)2字節(jié)字節(jié)3字節(jié)字節(jié)4說明說明ASCII區(qū)碼區(qū)碼VB100二進(jìn)制二進(jìn)制00110010001101000100010101000001原信息存儲形式原信息存儲形式對應(yīng)的對應(yīng)的ASCII碼碼含義含義24EA16進(jìn)進(jìn)制制區(qū)碼區(qū)碼VB200二進(jìn)制二進(jìn)制0010010011101010XXXXXXXXXXXXXXXX轉(zhuǎn)換后存儲形式轉(zhuǎn)換后存儲形式含義含義含義含義24EAXXXXX:X:表示未使用表示未使用指令指令A(yù)THATH執(zhí)行結(jié)果執(zhí)行結(jié)果 8. 整數(shù)、雙字整數(shù)、實數(shù)轉(zhuǎn)換為整數(shù)、雙字整數(shù)、實數(shù)轉(zhuǎn)換為ASCII碼指令碼指令(1)整數(shù)到)整數(shù)到ASCII碼:碼:ITA 指令格式:指令格式:ITA IN,
35、 OUT, FMT (2(2)雙整數(shù)到)雙整數(shù)到ASCIIASCII碼:碼:DTADTA(3 3)實數(shù)到)實數(shù)到ASCIIASCII碼:碼:RTARTA 指令格式:指令格式:DTA IN, OUT, FMT 指令格式:指令格式:RTA IN, OUTRTA IN, OUT, FMT FMT 1. 填表、查表指令填表、查表指令 (1)表存數(shù)指令:)表存數(shù)指令:ATT 指令格式:指令格式:ATT DATA, TABLE ATT DATA, TABLE 數(shù)據(jù)在S7-200的表格中的存儲形式見下表5.17: 表5.17 表中數(shù)據(jù)的存儲格式單元地址單元內(nèi)容說明VW2000005VW200為表格的首地址,
36、TL=5為表格的最大填表數(shù)VW2020004數(shù)據(jù)EC=4(EC100)為該表中的實際填表數(shù)VW2042345數(shù)據(jù)0VW2065678數(shù)據(jù)1VW2089876數(shù)據(jù)2VW2106543數(shù)據(jù)3VW212*無效數(shù)據(jù)TL值由字傳送指令MOVW賦值。u程序?qū)嵗撼绦驅(qū)嵗?LD I0.0 /使能輸入端ATT VW100, VW200 /向表中存數(shù)/程序執(zhí)行后的結(jié)果見下表5-18圖5-43 表存數(shù)指令例表5-18 ATT執(zhí)行結(jié)果操作數(shù)單元地址填表前內(nèi)容填表后內(nèi)容注釋DATAVW10012341234待填表數(shù)據(jù) TBLVW20000050005最大填表數(shù)TLVW20200040005最大填表數(shù)ECVW2042
37、3452345數(shù)據(jù)0VW20656785678數(shù)據(jù)1VW20898769876數(shù)據(jù)2VW21065436543數(shù)據(jù)3VW212*1234將VW100內(nèi)容填入表中VW202已賦值0005(2)表查找指令:)表查找指令:FND? 通過表查找指令可以從字型數(shù)表中找出符合條件的數(shù)據(jù)所在的表中數(shù)通過表查找指令可以從字型數(shù)表中找出符合條件的數(shù)據(jù)所在的表中數(shù)據(jù)編號,編號范圍是據(jù)編號,編號范圍是0 09999。在梯形圖中有在梯形圖中有4 4個數(shù)據(jù)輸入端:個數(shù)據(jù)輸入端:TBLTBL表格的首地址,用以指明被訪問的表表格的首地址,用以指明被訪問的表格;格;PTNPTN是用來描述查表條件的進(jìn)行比較的數(shù)據(jù);是用來描述查
38、表條件的進(jìn)行比較的數(shù)據(jù);CMDCMD是比較運算符是比較運算符“?”的編碼,它是一個的編碼,它是一個1 14 4的數(shù)值,分別代表、的數(shù)值,分別代表、 運算符;運算符;INDXINDX用來指定表中符合查找條件的數(shù)據(jù)地址。用來指定表中符合查找條件的數(shù)據(jù)地址。由由PTNPTN和和CMDCMD就可以決定對表的查找條件。例如,就可以決定對表的查找條件。例如,PTNPTN為為161625552555,CMDCMD為為3 3,則查找條件為,則查找條件為“25552555(1616進(jìn)制)進(jìn)制)”。表查找指令執(zhí)行之前,應(yīng)先對表查找指令執(zhí)行之前,應(yīng)先對INDXINDX的內(nèi)容清的內(nèi)容清0 0,當(dāng)使能輸入有效時,從,當(dāng)
39、使能輸入有效時,從INDXINDX開始搜索表開始搜索表TBLTBL,尋找符合由,尋找符合由PTNPTN和和CMDCMD所決定的條件的數(shù)據(jù),如果沒所決定的條件的數(shù)據(jù),如果沒有發(fā)現(xiàn)符合條件的數(shù)據(jù),則有發(fā)現(xiàn)符合條件的數(shù)據(jù),則INDXINDX的值等于的值等于ECEC。如果找到一個符合條件的。如果找到一個符合條件的數(shù)據(jù),則將該數(shù)據(jù)的表中地址裝入數(shù)據(jù),則將該數(shù)據(jù)的表中地址裝入INDXINDX中。中。表查找指令執(zhí)行完成,找到一個符合條件的數(shù)據(jù),如果想繼續(xù)向下查找,表查找指令執(zhí)行完成,找到一個符合條件的數(shù)據(jù),如果想繼續(xù)向下查找,必須先對必須先對INDXINDX加加1 1,以重新激活表查找指令。,以重新激活表查
40、找指令。2. 表取數(shù)指令表取數(shù)指令 u 從表中移出一個字型數(shù)據(jù)可有兩種方式:從表中移出一個字型數(shù)據(jù)可有兩種方式:先進(jìn)先出先進(jìn)先出式和式和后進(jìn)先出后進(jìn)先出式。一個數(shù)據(jù)從表中取出之后,表的實際表數(shù)式。一個數(shù)據(jù)從表中取出之后,表的實際表數(shù)EC值減值減1。兩種方式指令在梯形圖中有。兩種方式指令在梯形圖中有2個數(shù)據(jù)端:輸入個數(shù)據(jù)端:輸入端端TBL表格的首地址,用以指明被訪問的表格;輸出端表格的首地址,用以指明被訪問的表格;輸出端DATA指明數(shù)值取出后要存放的目標(biāo)單元。指明數(shù)值取出后要存放的目標(biāo)單元。u 如果指令試圖從空表中取走一個數(shù)值,則特殊標(biāo)志寄存如果指令試圖從空表中取走一個數(shù)值,則特殊標(biāo)志寄存器器S
41、M1.5置位。置位。u 表取數(shù)指令影響的特殊存儲器位:表取數(shù)指令影響的特殊存儲器位:SM1.5(表空)。(表空)。 在語句表中運算符直接表示,而不用各自的編碼。在語句表中運算符直接表示,而不用各自的編碼。指令格式:指令格式:FND= TBL, PTN, INDXFND= TBL, PTN, INDX FND TBL, PTN, INDX FND TBL, PTN, INDX FND TBL, PTN, INDX FND TBL, PTN, INDX FND TBL, PTN, INDX(1)先進(jìn)先出指令:)先進(jìn)先出指令:FIFO (2)后進(jìn)先出指令:)后進(jìn)先出指令:LIFO 當(dāng)使能輸入有效時,
42、從當(dāng)使能輸入有效時,從TBLTBL指明的表中移出最后一指明的表中移出最后一個字型數(shù)據(jù)并將其輸出到個字型數(shù)據(jù)并將其輸出到DATADATA所指定的字單元。所指定的字單元。LIFOLIFO表取數(shù)時,移出的數(shù)據(jù)是最后進(jìn)入表中的數(shù)表取數(shù)時,移出的數(shù)據(jù)是最后進(jìn)入表中的數(shù)據(jù)。每次從表中取出一個數(shù)據(jù),剩余數(shù)據(jù)位置保持據(jù)。每次從表中取出一個數(shù)據(jù),剩余數(shù)據(jù)位置保持不變,實際填表數(shù)不變,實際填表數(shù)ECEC會自動減會自動減1 1。指令格式:指令格式:LIFO TABLE, DATA LIFO TABLE, DATA 當(dāng)使能輸入有效時,從當(dāng)使能輸入有效時,從TBLTBL指明的表中移出第一個指明的表中移出第一個字型數(shù)據(jù)并
43、將其輸出到字型數(shù)據(jù)并將其輸出到DATADATA所指定的字單元。所指定的字單元。FIFOFIFO表取數(shù)時,移出的數(shù)據(jù)總是最先進(jìn)入表中的表取數(shù)時,移出的數(shù)據(jù)總是最先進(jìn)入表中的數(shù)據(jù)。每次從表中移出一個數(shù)據(jù),剩余數(shù)據(jù)依次上數(shù)據(jù)。每次從表中移出一個數(shù)據(jù),剩余數(shù)據(jù)依次上移一個字單元位置,同時實際填表數(shù)移一個字單元位置,同時實際填表數(shù)ECEC會自動減會自動減1 1。指令格式:指令格式:FIFO TABLE, DATA FIFO TABLE, DATA 1. 有條件結(jié)束指令有條件結(jié)束指令 2. 暫停指令暫停指令 ENDEND,有條件結(jié)束指令。指令根據(jù)前一個邏輯條件終止主用戶程序。,有條件結(jié)束指令。指令根據(jù)前一
44、個邏輯條件終止主用戶程序。條件結(jié)束指令用在無條件結(jié)束指令(條件結(jié)束指令用在無條件結(jié)束指令(MENDMEND)之前,用戶程序必須以)之前,用戶程序必須以無條件結(jié)束指令結(jié)束主程序。您可以在主程序中使用有條件結(jié)束指無條件結(jié)束指令結(jié)束主程序。您可以在主程序中使用有條件結(jié)束指令,但不能在子例行程序或中斷例行程序中使用。令,但不能在子例行程序或中斷例行程序中使用。STEP7-STEP7-Micro/WIN32Micro/WIN32自動在主用戶程序中增加無條件結(jié)束指令(自動在主用戶程序中增加無條件結(jié)束指令(MENDMEND)。)。 STOPSTOP,暫停指令。通過暫停指令可將,暫停指令。通過暫停指令可將S7
45、-200 CPUS7-200 CPU從從RUNRUN(運行)模(運行)模式轉(zhuǎn)換為式轉(zhuǎn)換為STOPSTOP(暫停)模式,中止程序執(zhí)行。如果在中斷例行程序(暫停)模式,中止程序執(zhí)行。如果在中斷例行程序中執(zhí)行中執(zhí)行STOPSTOP(暫停)指令,中斷例行程序立即終止,并忽略全部待(暫停)指令,中斷例行程序立即終止,并忽略全部待執(zhí)行的中斷,繼續(xù)掃描主程序的剩余部分。在當(dāng)前掃描結(jié)束時從執(zhí)行的中斷,繼續(xù)掃描主程序的剩余部分。在當(dāng)前掃描結(jié)束時從RUNRUN(運行)模式轉(zhuǎn)換至(運行)模式轉(zhuǎn)換至STOPSTOP(暫停)模式。(暫停)模式。 3. 監(jiān)視定時器復(fù)位指令(看門狗復(fù)位)監(jiān)視定時器復(fù)位指令(看門狗復(fù)位) W
46、DRWDR,監(jiān)視定時器復(fù)位指令。指令重新觸發(fā),監(jiān)視定時器復(fù)位指令。指令重新觸發(fā)S7-200 CPUS7-200 CPU的系統(tǒng)監(jiān)視的系統(tǒng)監(jiān)視程序定時器(程序定時器(WDTWDT),擴(kuò)展掃描允許使用的時間,而不會出現(xiàn)監(jiān)視程),擴(kuò)展掃描允許使用的時間,而不會出現(xiàn)監(jiān)視程序錯誤。序錯誤。WDRWDR指令重新觸發(fā)指令重新觸發(fā)WDTWDT定時器,可以增加一次掃描時間。定時器,可以增加一次掃描時間。為了保證系統(tǒng)可靠運行,為了保證系統(tǒng)可靠運行,PLCPLC內(nèi)部設(shè)置了系統(tǒng)監(jiān)視定時器(內(nèi)部設(shè)置了系統(tǒng)監(jiān)視定時器(WDTWDT),),用于監(jiān)視掃描周期是否超時。每當(dāng)掃描到用于監(jiān)視掃描周期是否超時。每當(dāng)掃描到WDTWDT定
47、時器時,定時器時,WDTWDT定時器定時器將復(fù)位。將復(fù)位。WDTWDT定時器有一設(shè)定值(定時器有一設(shè)定值(100100300ms300ms),系統(tǒng)正常工作時,),系統(tǒng)正常工作時,所需掃描時間小于所需掃描時間小于WDTWDT的設(shè)定值,的設(shè)定值,WDTWDT定時器及時復(fù)位。系統(tǒng)故障情定時器及時復(fù)位。系統(tǒng)故障情況下,掃描時間大于況下,掃描時間大于WDTWDT設(shè)定值,該定時器不能及時復(fù)位,則報警并設(shè)定值,該定時器不能及時復(fù)位,則報警并停止停止CPUCPU運行,同時復(fù)位輸出。這種故障稱為運行,同時復(fù)位輸出。這種故障稱為WDTWDT故障,以防止因系故障,以防止因系統(tǒng)故障或程序進(jìn)入死循環(huán)而引起的掃描周期過長
48、。統(tǒng)故障或程序進(jìn)入死循環(huán)而引起的掃描周期過長。系統(tǒng)正常工作時,有時會因為用戶程序過長或使用中斷指令、循環(huán)系統(tǒng)正常工作時,有時會因為用戶程序過長或使用中斷指令、循環(huán)指令使掃描時間過長而超過指令使掃描時間過長而超過WDTWDT定時器的設(shè)定值,為防止這種情況下定時器的設(shè)定值,為防止這種情況下WDTWDT動作,可使用監(jiān)視定時器復(fù)位指令(動作,可使用監(jiān)視定時器復(fù)位指令(WDRWDR),使),使WDTWDT定時器復(fù)位。定時器復(fù)位。 u程序程序?qū)嵗簩嵗?LD SM5.0 /使能輸入端 /檢測I/O是否有錯O SM4.3 /進(jìn)行或操作 /檢測I編程是否有錯O I0.0 / SM5.0、SM4.3、I0.0
49、進(jìn)行或操作STOP /使能有效就暫停 LD I0.1 /使能輸入端END /使能有效就結(jié)束 LD M0.3 /使能輸入端WDR /使能有效就將看門狗定時器復(fù)位圖5-44程序控制指令舉例4. 跳轉(zhuǎn)與標(biāo)號指令跳轉(zhuǎn)與標(biāo)號指令 跳轉(zhuǎn)指令的使用說明:跳轉(zhuǎn)指令的使用說明: 跳轉(zhuǎn)指令可以使跳轉(zhuǎn)指令可以使PLCPLC編程的靈活性大大提高,使主機(jī)可根據(jù)不同條編程的靈活性大大提高,使主機(jī)可根據(jù)不同條件的判斷,選擇不同的程序段執(zhí)行程序。件的判斷,選擇不同的程序段執(zhí)行程序。JMPJMP,跳轉(zhuǎn)指令。使能輸入有效時,使程序跳轉(zhuǎn)到標(biāo)號(,跳轉(zhuǎn)指令。使能輸入有效時,使程序跳轉(zhuǎn)到標(biāo)號(n n)處執(zhí)行。)處執(zhí)行。LBLLBL,標(biāo)
50、號指令。標(biāo)記指令跳轉(zhuǎn)的目的地的位置(,標(biāo)號指令。標(biāo)記指令跳轉(zhuǎn)的目的地的位置(n n)。操作數(shù))。操作數(shù)n n為為0 0255255。 跳轉(zhuǎn)指令和標(biāo)號指令必須配合使用,而且只能使用在同一程序塊跳轉(zhuǎn)指令和標(biāo)號指令必須配合使用,而且只能使用在同一程序塊中。不能在不同的程序塊間互相跳轉(zhuǎn);中。不能在不同的程序塊間互相跳轉(zhuǎn);執(zhí)行跳轉(zhuǎn)后,被跳過程序段中的各元器件的狀態(tài)各有不同:執(zhí)行跳轉(zhuǎn)后,被跳過程序段中的各元器件的狀態(tài)各有不同:Q Q、M M、S S、C C等元器件的位保持跳轉(zhuǎn)前的狀態(tài);計數(shù)器等元器件的位保持跳轉(zhuǎn)前的狀態(tài);計數(shù)器C C停止計數(shù),當(dāng)前值存停止計數(shù),當(dāng)前值存儲器保持跳轉(zhuǎn)前的計數(shù)值;對定時器來說,
51、因刷新方式不同而工作狀儲器保持跳轉(zhuǎn)前的計數(shù)值;對定時器來說,因刷新方式不同而工作狀態(tài)不同。在跳轉(zhuǎn)期間,分辯率為態(tài)不同。在跳轉(zhuǎn)期間,分辯率為1ms1ms和和10ms10ms的定時器會一直保持跳轉(zhuǎn)的定時器會一直保持跳轉(zhuǎn)5. 循環(huán)指令循環(huán)指令 前的工作狀態(tài),原來工作的繼續(xù)工作,到設(shè)定值后其位的前的工作狀態(tài),原來工作的繼續(xù)工作,到設(shè)定值后其位的狀態(tài)也會改變,輸出觸點動作,其當(dāng)前值存儲器一直累計狀態(tài)也會改變,輸出觸點動作,其當(dāng)前值存儲器一直累計到最大值到最大值32767才停止。對分辨率為才停止。對分辨率為100ms的定時器來說,的定時器來說,跳轉(zhuǎn)期間停止工作,但不會復(fù)位,存儲器里的值為跳轉(zhuǎn)時跳轉(zhuǎn)期間停止
52、工作,但不會復(fù)位,存儲器里的值為跳轉(zhuǎn)時的值,跳轉(zhuǎn)結(jié)束后,若輸入條件允許,可繼續(xù)計時,但已的值,跳轉(zhuǎn)結(jié)束后,若輸入條件允許,可繼續(xù)計時,但已失去了準(zhǔn)確計時的意義。所以在跳轉(zhuǎn)段里的定時器要慎用。失去了準(zhǔn)確計時的意義。所以在跳轉(zhuǎn)段里的定時器要慎用。 循環(huán)指令的引入為解決重復(fù)執(zhí)行相同功能的程序段提供了極大方便,循環(huán)指令的引入為解決重復(fù)執(zhí)行相同功能的程序段提供了極大方便,并且優(yōu)化了程序結(jié)構(gòu)。循環(huán)指令有兩條:并且優(yōu)化了程序結(jié)構(gòu)。循環(huán)指令有兩條:FORFOR和和NEXTNEXT。FORFOR,循環(huán)開始指令。用來標(biāo)記循環(huán)體的開始。,循環(huán)開始指令。用來標(biāo)記循環(huán)體的開始。NEXTNEXT,循環(huán)結(jié)束指令。用來標(biāo)記循
53、環(huán)體的結(jié)束。無操作數(shù)。,循環(huán)結(jié)束指令。用來標(biāo)記循環(huán)體的結(jié)束。無操作數(shù)。FORFOR和和NEXTNEXT之間的程序段稱為循環(huán)體,每執(zhí)行一次循環(huán)體,當(dāng)前計之間的程序段稱為循環(huán)體,每執(zhí)行一次循環(huán)體,當(dāng)前計數(shù)值增數(shù)值增1 1,并且將其結(jié)果同終值進(jìn)行比較,如果大于終值,則終止循,并且將其結(jié)果同終值進(jìn)行比較,如果大于終值,則終止循環(huán)。環(huán)。循環(huán)指令使用說明:循環(huán)指令使用說明: FORFOR、NEXTNEXT指令必須成對使用;指令必須成對使用; FORFOR和和NEXTNEXT可以循環(huán)嵌套,嵌套最多為可以循環(huán)嵌套,嵌套最多為8 8層,但各個嵌套之間不可層,但各個嵌套之間不可有交叉現(xiàn)象;有交叉現(xiàn)象; 每次使能輸
54、入(每次使能輸入(ENEN)重新有效時,指令將自動復(fù)位各參數(shù);)重新有效時,指令將自動復(fù)位各參數(shù); 初值大于終值時,循環(huán)體不被執(zhí)行。初值大于終值時,循環(huán)體不被執(zhí)行。在使用時必須給在使用時必須給FORFOR指令指定當(dāng)前循環(huán)計數(shù)指令指定當(dāng)前循環(huán)計數(shù)(INDXINDX)、初值()、初值(INITINIT)和終值()和終值(FINALFINAL)。)。指令格式:指令格式:FOR INDX, INIT, FINALFOR INDX, INIT, FINAL NEXT NEXT6. 子程序調(diào)用與返回指令子程序調(diào)用與返回指令 u與子程序有關(guān)的操作有:建立子程序、子程序的調(diào)用和返回。與子程序有關(guān)的操作有:建立
55、子程序、子程序的調(diào)用和返回。(1)建立子程序)建立子程序 (2)子程序調(diào)用)子程序調(diào)用 建立子程序是通過編程軟件來完成的。可用編程軟件建立子程序是通過編程軟件來完成的??捎镁幊誊浖熬庉嬀庉嫛辈藛尾藛沃械闹械摹安迦氩迦搿边x項,選擇選項,選擇“子程序子程序”,以建立或插入一個新的子程,以建立或插入一個新的子程序,同時,在指令樹窗口可以看到新建的子程序圖標(biāo),默認(rèn)的程序序,同時,在指令樹窗口可以看到新建的子程序圖標(biāo),默認(rèn)的程序名是名是SBR_NSBR_N,編號,編號N N從從0 0開始按遞增順序生成,也可以在圖標(biāo)上直接更開始按遞增順序生成,也可以在圖標(biāo)上直接更改子程序的程序名,把它變?yōu)楦苊枋鲈撟映?/p>
56、序功能的名字。在指改子程序的程序名,把它變?yōu)楦苊枋鲈撟映绦蚬δ艿拿?。在指令樹窗口雙擊子程序的圖標(biāo)就可以進(jìn)入子程序,并對它進(jìn)行編輯。令樹窗口雙擊子程序的圖標(biāo)就可以進(jìn)入子程序,并對它進(jìn)行編輯。 CALLCALL,子程序調(diào)用指令。在使能輸入有效,子程序調(diào)用指令。在使能輸入有效時,主程序把程序控制權(quán)交給子程序。子時,主程序把程序控制權(quán)交給子程序。子程序的調(diào)用可以帶參數(shù),也可以不帶參數(shù)。程序的調(diào)用可以帶參數(shù),也可以不帶參數(shù)。它在梯形圖中以指令盒的形式編程。它在梯形圖中以指令盒的形式編程。指令格式:指令格式:CALL SBR_NCALL SBR_N(3)子程序返回)子程序返回子程序調(diào)用使用說明:子程序
57、調(diào)用使用說明: CRETCRET,子程序條件返回指令。在使能輸入,子程序條件返回指令。在使能輸入有效時,結(jié)束子程序的執(zhí)行,返回主程序有效時,結(jié)束子程序的執(zhí)行,返回主程序中(指向子程序調(diào)用的下一條指令)。梯中(指向子程序調(diào)用的下一條指令)。梯形圖中以線圈的形式編程,指令不帶參數(shù);形圖中以線圈的形式編程,指令不帶參數(shù); RETRET,子程序無條件返回指令。,子程序無條件返回指令。指令格式:指令格式: CRET CRET (條件返回)(條件返回) RET RET (無條件返回)(無條件返回) 子程序結(jié)束要加上無條件返回指令子程序結(jié)束要加上無條件返回指令RETRET。CRETCRET指令只能用于子程序
58、中;指令只能用于子程序中;如果在子程序的內(nèi)部又對另一個程序執(zhí)行調(diào)用指令,則這種調(diào)用稱為子程序的嵌套。如果在子程序的內(nèi)部又對另一個程序執(zhí)行調(diào)用指令,則這種調(diào)用稱為子程序的嵌套。子程序嵌套的深度最多為子程序嵌套的深度最多為8 8級;級;當(dāng)一個子程序被調(diào)用時,系統(tǒng)自動保存當(dāng)前的邏輯堆棧數(shù)據(jù),并把棧頂置當(dāng)一個子程序被調(diào)用時,系統(tǒng)自動保存當(dāng)前的邏輯堆棧數(shù)據(jù),并把棧頂置1 1,堆棧中,堆棧中的其它位置設(shè)為的其它位置設(shè)為0 0,子程序占有控制權(quán)。子程序執(zhí)行結(jié)束,通過返回指令自動恢復(fù)原來,子程序占有控制權(quán)。子程序執(zhí)行結(jié)束,通過返回指令自動恢復(fù)原來的邏輯堆棧值,調(diào)用程序又重新取得控制權(quán);的邏輯堆棧值,調(diào)用程序又
59、重新取得控制權(quán); 累加器可在調(diào)用程序和被調(diào)用子程序之間自由傳遞,所以累加器的值在子程序調(diào)用累加器可在調(diào)用程序和被調(diào)用子程序之間自由傳遞,所以累加器的值在子程序調(diào)用時既不保存也不恢復(fù)。時既不保存也不恢復(fù)。 (3)帶參數(shù)的子程序調(diào)用)帶參數(shù)的子程序調(diào)用 局部變量表中的變量類型區(qū)定義的變量有局部變量表中的變量類型區(qū)定義的變量有: 子程序中可以有參變量,帶參數(shù)的子程序調(diào)用擴(kuò)大了子程序的使用范子程序中可以有參變量,帶參數(shù)的子程序調(diào)用擴(kuò)大了子程序的使用范圍,增加了調(diào)用的靈活性。子程序的調(diào)用過程如果存在數(shù)據(jù)的傳遞,圍,增加了調(diào)用的靈活性。子程序的調(diào)用過程如果存在數(shù)據(jù)的傳遞,則在調(diào)用指令中應(yīng)包含相應(yīng)的參數(shù)。則
60、在調(diào)用指令中應(yīng)包含相應(yīng)的參數(shù)。子程序的參數(shù)在子程序的局部變量表中加以定義。參數(shù)包含的信息有子程序的參數(shù)在子程序的局部變量表中加以定義。參數(shù)包含的信息有地址、變量名(符號)、變量類型和數(shù)據(jù)類型。子程序最多可以傳遞地址、變量名(符號)、變量類型和數(shù)據(jù)類型。子程序最多可以傳遞1616個參數(shù)。個參數(shù)。 傳入子程序參數(shù)傳入子程序參數(shù)ININ。ININ可以是直接尋址數(shù)據(jù)(如:可以是直接尋址數(shù)據(jù)(如:VB10VB10)、間接尋)、間接尋址數(shù)據(jù)(如:址數(shù)據(jù)(如:* *AC1AC1)、常數(shù)(如:)、常數(shù)(如:161612341234)或地址(如:)或地址(如:&VB100&VB100););傳入傳入/ /傳出子
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《高階隱函數(shù)導(dǎo)數(shù)》課件
- 《熱愛生命》(蒙田)課件
- 《食用菌栽培技術(shù)》課件
- 《PKI基本知識》課件
- 2023六年級數(shù)學(xué)下冊 數(shù)學(xué)好玩第3課時 可愛的小貓說課稿 北師大版
- 《談判技巧培訓(xùn)》課件
- 《汽車配氣機(jī)構(gòu)》課件
- 二零二五年度私人房產(chǎn)環(huán)保標(biāo)準(zhǔn)買賣合同范本3篇
- 二零二五年度林業(yè)用地林權(quán)轉(zhuǎn)讓實施合同2篇
- 《胸廓出口綜合征》課件
- 醫(yī)美注射類知識培訓(xùn)課件
- 2025年廣電網(wǎng)絡(luò)公司工作計劃(3篇)
- 貨運車輛駕駛員服務(wù)標(biāo)準(zhǔn)化培訓(xùn)考核試卷
- 銀行行長2024年個人年終總結(jié)
- 財務(wù)BP經(jīng)營分析報告
- 《磺化過程》課件
- 設(shè)備基礎(chǔ)預(yù)埋件施工方案
- 中華人民共和國保守國家秘密法實施條例培訓(xùn)課件
- 2024高考物理二輪復(fù)習(xí)電學(xué)實驗專項訓(xùn)練含解析
- 暴發(fā)性心肌炎的診斷與治療
- 部編小學(xué)語文新教材培訓(xùn)
評論
0/150
提交評論