S7-200PLC功能指令_第1頁
S7-200PLC功能指令_第2頁
S7-200PLC功能指令_第3頁
S7-200PLC功能指令_第4頁
S7-200PLC功能指令_第5頁
已閱讀5頁,還剩164頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、S7-200PLC的基本功能指令張澤禮概述 基本功能指令是PLC多位二進制數同時操作的指令。 按照操作數據的位數有:字節操作指令,字操作指令,雙字操作指令之分。 按照操作數據類型分為:字節數據(含ASCII)碼,整數I(有符號字數據),實數R(雙字浮點數據)。 按照操作的性質分為:傳送指令、轉換指令、整數運算指令、實數運算指令(包括了函數運算指令)、邏輯運算指令、控制指令、移位及循環移位指令等。 按照上述說法,比較指令是介于功能指令和開關指令中間的指令,其運算形式是多位數據的比較,其結果是開關的形式出現。v 一PLC的數據類型v二 整數運算指令 v 三邏輯運算指令 v 四實數運算指令v 五移位

2、及循環移位指令v 六 轉換指令v 七 表功能指令v 八 控制指令 主要內容主要內容 1、位數據及開關量 2、字節數據及存儲元件編址 3、字數據及存儲元件編址 4、雙字數據存儲元件編址 5、數據類型1、位數據及開關量 一個開關只有兩種狀態,接通與斷開。這是邏輯狀態,用0和1表示,一般正邏輯規定接通為1,斷開為0。 1個開關量也可以表示數字即0和1,這種二進制數據就是位數據。在計算機中的數據是由多位二進制數據組合成的,8位構成一個字節,16位構成一個字。2、字節數據 字節數據由8位二進制數據組成,位的位置決定其權重 字節數據(byte)的表示方法如:IB0由I0.7、I0.6、 I0.5、 I0.

3、4、 I0.3、 I0.2、 I0.1、 I0.0構成,其中I0.0是最低位,I0.7是最高位,不同位置代表不同的權重。 這樣可以表示256種狀態,表示數據0255。 字節數據可以用16進制表示或者10進制表示。16進制表示數值在16#0016#FF之間。 兩種進制可以相互轉換:位置I0.7I0.6I0.5I0.4I0.3 I0.2 I0.1I0.0權重1286432168421PLC的字節編址方法 字節編址用第一個字母表示寄存器的類型,第二個字母B表示字節編址。例如IB0、QB0、MB0、VB0、SMB0等。 有IB0IB15輸入映像寄存器,共計256點。 有QB0QB15共16個輸出映像寄

4、存器,共計256點,這就決定可以擴展的I/O數目。 同樣有MB0MB31共32個共計256個中間繼電器。VB0VB2047(CPU221/222)或者VB0VB5119(CPU224/226)變量存儲單元。3、字數據及 字數據(word)是計算機一次能夠處理二進制數據的位數(等于計算機的字長),一般是8的倍數。例如奔騰4P4C以前PC為32位機,以后為64位機。PLC的CPU的字長是16位的,因此其字數據位16位二進制數據。 字數據可以表示65536中狀態,可以表示的無符號整數065535,可以表示有符號整數為-32768+32767之間。字編址 字數據存儲一般占兩個字節,例如IW0由IB0和

5、IB1組成,其中IB0是高8位,IB1是地8位。IW1是由IB1和IB2構成,其中I2.0是最低位,I1.7是最高位或符號位。 西門子PLC中的定時器和計數器的字長是16位的字數據,但是是有符號整數,設定值在132767之間。使用CTUD加減計數器就可以出現負值。4、雙字數據 雙字數據(double word)用D表示,是32位數據,可以表示狀態數232=4294967296(約43億)種。表示無符號數在04294967295之間,表示的有符號數-147483648+214483647之間。 雙字數據在存儲單元中由四個字節組成。例如ID0由IB0IB3組成,其中I0.7是最高位,I3.0是最低

6、位。同樣可知QD0、MD0等也是由四個字節的存儲單元構成(QD0、ID0需要增加EM223 I/O擴展模塊)。 雙字數據有雙字有符號整數和實數兩種。雙字存儲元件編址 地址分配情況:以 VD100為例,由4個存儲單元組成VB100是高8位,VB103是低8位,VB101、VB102是中間位。 實數也是雙字數據,只是帶有小數,因此編址與雙字整數相同。5、數據類型 整數:整數是沒有小數的數據,分為有符號整數和無符號整數。無符號整數的最高位表示數據的最高位;有符號整數的最高位是符號位,0表示整數1表示負數。 實數(浮點數float):實數是有符號帶小數的數據,數據長度為4個字節,在傳送指令中使用MOV

7、_R指令,可以直接輸入正負小數(7位)數據類型編程練習 使用開關指令的搶答器設計和使用功能指令的搶答器設計。 使用功能指令編寫程序比開關指令簡單的多。二 整數運算指令 1、整數與雙整數加減指令 2、整數乘除指令LADLAD功能功能IN1+IN2=OUTIN1-IN2=OUTIN1+IN2=OUTIN1-IN2=OUT I是16位有符號數,DI是32位有符號數。ADD_I是將兩個16位有符號整數相加后產生16位有符號整數,結果大于32767時產生溢出SM1.1置位。 SUB_DI是雙整數減法運算,結果為雙整數。如果結果為0,則SM1.0置位。 加法運算仿真,ADD_I是兩個16位二進制數相加,結

8、果也是16位二進制數。 有符號16位數值范圍為 -32768+32767之間。 如果結果超過32787則產生進位特殊功能及電器SM1.1=1加法指令實例用加法指令實現單按鈕控制 說明:進入運行狀態MW0初值為16#0000,按一下I0.0后執行一次加法指令MW0=1000,在執行一次后又變為MW0=0000,但是進位使得SM1.1=1。 重復操作實現單按鈕控制。 也可以用特殊功能繼電器SM1.1驅動Q0.0。LAD功能IN1IN1* *IN2IN2=OUT=OUTIN1/IN2=IN1/IN2=OUTOUTIN1IN1* *IN2=IN2=OUTOUTIN1/IN2=IN1/IN2=OUTOU

9、TIN1IN1* *IN2=IN2=OUTOUTIN1/IN2=IN1/IN2=OUTOUT 整數乘法指令MUL_I將兩個16位有符號數相乘,產生16位積從OUT指定單元輸出。MUL則將兩個16位有符號整數相乘產生32位積從OUT指定單元輸出。雙整數乘法則將兩個32位數相乘后產生32位積從OUT指定單元輸出。除法指令亦然,其中DIV指令是將兩個16位有符號數相除,結果從一個32位輸出,其中高16位為余數,低16位為商。舉例:用乘法運算實現單按鈕控制說明:MW0由MB0和MB1兩個字節組成,MB1是低字節,MB0是高字節,M0.7是最高位。當初始化MW0=16#5555時折合#01010101,

10、逐次乘2,則M0.7就會出現高低電平的變化。I0.0通斷次數16#MW0值2#MW0值M0.7的值初始值 0次5555010101010101010101AAAA1010101010101010125554010101010101010003AAA81010101010101000145550010101010101000005AAA01010101010100000165540010101010100000007AA801010101010000000185500010101010000000009AA00101010100000000011054000101010000000000011A

11、8101010000000000011250000101000000000000013A00010100000000000001144000/5555010000000000000003、遞增及遞減指令 遞增指令每執行一次存儲單元的內容加1,可以用于控制循環次數,也可以用于加法計數運算。按存儲單元長度分為:字節增量指令,字增量指令,雙字增量指令三種。 遞減指令每執行一次存儲單元的內容減1,可以用于控制循環次數,也可以用于減法計數運算。按存儲單元長度分為:字節減量指令,字減量指令,雙字減量指令三種。ENENOINOUTINC_B原理:原理: 用于使能輸入有效時,輸入數用于使能輸入有效時,輸入數I

12、N加加1 或減或減1,得到的結得到的結果通過果通過OUT指定的存儲器單元輸出。指定的存儲器單元輸出。舉例: 食品加工廠對飲料生產線上的盒裝飲料進行計數,每24盒為一箱,要求能記錄生產的箱數。LDI0.0/增脈沖輸入端LDC30/復位輸入端/循環計數CTU C30, +24/增計數指令/設定脈沖數為 24LDC30/裝入計數器觸點/作為雙字增的/脈沖輸入INCDVD100/雙字增指令/增增減減指指令令的的應應用用增/減量指令的應用 用增量指令實現單按鈕控制起保停控制。 每當I0.0通斷一次,M0.0奇偶變化一次,從而使得Q0.0狀態隨之反轉一次。三、實數運算指令 實數運算指令一般用于模擬量的運算

13、處理,如PID控制等。常用的實數運算分為以下幾種: 1、實數加減運算 2、實數乘除運算 3、函數運算 實數可以理解為帶符號的小數,因為是浮點數,小數的實數可以理解為帶符號的小數,因為是浮點數,小數的點的位置是任意的。注意的是實數是雙字數,其地址單元必點的位置是任意的。注意的是實數是雙字數,其地址單元必須是四字節。須是四字節。將兩個實數(32位)相加,產生32位結果從OUT輸出。MOVD IN1,OUT+R IN2,OUT將兩個實數(32位)相減,產生32位結果從OUT輸出。MOVD IN1,OUT-R IN2,OUT2、實數乘除運算兩個實數IN1和IN2相乘,產生的結果32的積從OUT輸出。如

14、果產生結果溢出SM1.1置1。MOVD IN1,OUT*R IN2,OUT兩個實數IN1和IN2相乘,產生的結果32的積從OUT輸出。如果產生結果溢出SM1.1置1。MOVD IN1,OUT*R IN2,OUT函數運算的應用常常與模擬量模塊相關,例如測量電路的電壓有效值,電流的有效值,電功率、功率因數及電能3.數學函數變換指令數學函數變換指令注意:SIN COS TAN 的操作數為弧度值。3、函數指令 注意當使用三角函數運算指令時,輸入角度為弧度值。使用函數運算指令實現電壓電流有效值的測量 假設交流電壓從AIW0輸入,交流電流從AIW2輸入(均應設置為雙極性)。 通過PLC內部運行后將電壓、電

15、流的有效值、電功率、功率因數及消耗電能從PLC的文本顯示器輸出,構成組合參數儀表。四、邏輯運算指令 1. 邏輯與指令(邏輯與指令(WAND) 2. 邏輯或運算邏輯或運算 (WOR) 3. 邏輯異或指令(邏輯異或指令(WXOR) 4. 取反指令(取反指令(INV)1、與邏輯運算 將參與運算的多位二進制數逐位進行與運算,全1出1,有0出0。例如:16#FF與16#0F進行與邏輯運算后的結果是16#0F。 與邏輯運算分為字節與邏輯運算、字與邏輯運算和雙字與邏輯運算三種情況。邏輯等效2、或邏輯運算 將參與運算的多位二進制數逐位進行或運算,有1出1,全0出0。例如:16#F0與16#0F進行與邏輯運算后

16、的結果是16#FF。 或邏輯運算分為字節或邏輯運算、字或邏輯運算和雙字或邏輯運算三種情況。邏輯等效3 異或邏輯 將參與運算的多位二進制數逐位進行異或運算,同則出0,異則出1。例如:16#FF與16#FF進行與邏輯運算后的結果是16#0。 異或邏輯運算分為字節異或邏輯運算、字異或邏輯運算和雙字異或邏輯運算三種情況。邏輯等效4 取反 將參與運算的多位二進制數逐位進行取反運算,例如:16#FF進行取反邏輯運算后的結果是16#0。 取反邏輯運算分為字節取反、字取反和雙字取反邏輯運算三種情況。邏輯等效 位邏輯取反: 功能指令取反應用舉例:使用取反指令實現單按鈕起保停控制 原理:PLC啟動時MB0=16#

17、0,通斷一次I0.0后MB0=16#FF,再通斷一次又恢復到16#0。 可以用M0.0M0.7中任意位驅動Q0.0。五、數據傳送指令五、數據傳送指令 傳送指令的作用是從源地址讀出數據后,將源地址的數據復制到目標地址當中,源地址中內容不變,目標地址中的原內容被覆蓋。 1. 單數傳送指令:MOV 分為:字節傳送、字傳送、雙字傳送 2. 塊傳送(數據組): BLKMOV 分為:字節塊傳送、字塊傳送、 雙字塊傳送1、單一傳送、單一傳送 指令可用用來傳送單個數據,數據類型可以是字節、字、雙字、實數 。2. 塊傳送塊傳送 指令可用來進行一次多個(最多255個)數據的傳送,數據塊類型可以是字節塊、字塊、雙字

18、塊。N的范圍為的范圍為1至至255 應用舉例:多路搶答器設計 說明: 當沒有人搶答時,M0.0常閉觸點接通,讀取輸入端口狀態。 當有人搶答時,首先將輸入讀到輸出端,然后M0.0置位,不在讀輸入端口數據。輸出端顯示搶答臺號。 直到按下復位鍵后才能解除。六、移位指令 4 1. 左移位4 2.右移位4 2. 循環左移位4 3.循環右移位4 3. 寄存器移位 數據處理指令1.左移位指令(左移位指令(SHL)原理:使能輸入有效時,將輸入IN的無符號數字節、字或雙字中的各位向左移N位后(右端補0),將結果輸出到OUT所指定的存儲單元中,如果移位次數大于0,最后一次移出位保存在“溢出”存儲器位SM1.1 置

19、1。種類:按參與移位數據的位數分為:字節左移、字左移、雙字左移三種。作用:左移位具有二進制數乘法運算作用,左移移位相當于乘2,左移n位相當乘2n。高位低位SM1.1用左移指令實現流水燈控制 用常量每次移動不同位數可以實現循環移位控制形成流水燈效果。 當移位到最高位后,移位變量自動清零,從而實現了循環左移,也可以實現循環右移控制。利用自動歸位變量移位實現循環左移 用變量和條件賦值實現循環左移控制。 當移位到最高位后,再執行一次移位時會發生溢出,置位SM1.1,用SM1.1再次賦值,可以循環移位流水燈控制。2 右移位指令右移位指令(SHR)原理:使能輸入有效時,將輸入IN的無符號數字節、字或雙字中

20、的各位向右移N位后,將結果輸出到OUT所指定的存儲單元中,移出位補0,最后一移出位保存在SM1.1 中種類:按參與移位數據的位數分為:字節右移、字右移、雙字右移三種。應用:右移位具有二進制數乘法運算作用,左移移位相當于除2,左移n位相當除2n。高位低位SM1.1右移位指令應用 同樣可以實現循環移位控制。也可以用于實現多臺電動機的順序啟動,逆序停止控制。 電路功能:順序啟動,同時停止。 如要實現順序啟動順序停止控制,可采用兩個子程序實現。3.循環左移(循環左移(ROL)說明:移位數據存儲單元移出端(最高位)與移入端(最低說明:移位數據存儲單元移出端(最高位)與移入端(最低位)相連,同時最高位又與

21、位)相連,同時最高位又與SM1.1(溢出)相連。(溢出)相連。種類:字節循環左移、字循環左移、雙字循環左移三種。種類:字節循環左移、字循環左移、雙字循環左移三種。例如:移位數據的最右端位移入最左端,同時又進入例如:移位數據的最右端位移入最左端,同時又進入SM1.1。SM1.1始終存放最后一次被移出的位。始終存放最后一次被移出的位。高位低位SM1.1用循環移位實現單按鈕控制 基本思路:給中間字節變量MB0賦以花數,用控制開關控制其移位。然后進行位連接。用循環左移實現流水燈控制 變量每次移動一位實現循環左移流水燈控制。常數每次移動不同位數實現流水燈控制 移位次數自動調節如采用加1指令,可以實現循環

22、左移。 移位次數自動調整采用減1指令,可實現循環右移。4、循環右移(循環右移(ROR)SM1.1說明:移位數據存儲單元的移出端(最低位)與移入端說明:移位數據存儲單元的移出端(最低位)與移入端(最高位)相連,同時最低位又與(最高位)相連,同時最低位又與SM1.1(溢出)相連。(溢出)相連。種類:字節循環左移、字循環左移、雙字循環左移三種。種類:字節循環左移、字循環左移、雙字循環左移三種。例如:移位數據的最右端位移入最左端,同時又進入例如:移位數據的最右端位移入最左端,同時又進入SM1.1。SM1.1始終存放最后一次被移出的位。始終存放最后一次被移出的位。移位及循環移位指令應用 使用循環移位指令

23、,可以實現流水燈效果,可以產生步進電動機的驅動脈沖,移位方向用于控制步進電動機轉動方向。 利用移位指令也可以實現起保停單按鈕控制。5 移位寄存器指令(SHRB) 移位寄存器是將串行數據轉化成并行數據的器件,在S7-200中設有移位寄存器指令,而且移位寄存的位數可以在164位之間任意選擇。但是移位方向只能左移不能右移。 其中EN是使能輸入控制 端,DATA是數據輸入端 為位地址,S_BIT是移位 寄存器的最低位,N是移 位寄存器的長度移位寄存器指令的應用 使用移位寄存器指令可以從DATA位地址輸入端輸入串行信號,從移位寄存器中得到轉換后的并行數據。 實例:用移位寄存器指令實現多臺電動機的順序啟動

24、順序停止控制。應用實例 用寄存器移位指令實現流水燈效果。 將寄存器的首位連接起來,可實現循環左移位,不能顯示循環右移。七轉換指令 & 1、數據類型轉換指令、數據類型轉換指令 & 2、編碼和譯碼指令、編碼和譯碼指令 & 3、七段譯碼指令、七段譯碼指令 & 4、字符串轉換指令、字符串轉換指令 一、數據類型轉換1字節型數據與字整數之間轉換的指令字節型數據與字整數之間轉換的指令 1、數據類型的轉換指令 傳送指令、比較指令、邏輯運算指令還是整數運算指令都是相同數據類型的數據,而且使用相應的數據類型的指令,這對不同數據類型的數據運算帶來了不方便,需要進行數據轉換。 數據轉換

25、有:字節與字相互轉換,字與雙字相互轉換,雙字與實數相互轉換,BCD碼與整數相互轉換,譯碼與編碼指令,七段顯示譯碼指令,ASCII碼與16進制數之間的轉換等。2、IBT指令(字轉換為字節) 字轉換成字節I-B的IBT指令,將節W低8位存入字節存儲單元中,高8位丟棄。 以IBT VW0 , QB0 為例:相當于將VW0的低8位(VB1)傳送到QB0中。 如果直接采用MOVB IB1,QB0,則效果相同。字節、字、雙字及整數與實數自動轉換 S7-200PLC中有4個32位累加器AC0、AC1、AC2、AC3,可以做字節、字、雙字寄存器使用,數據類型在其中可以自動轉換。 例如S7-200面板上有兩個模

26、擬電位器SMB28、SMB29均為8位寄存器,如用其調節定時器的設定值,需用將其轉換成16位方可,使用AC0過渡一下即可。程序實例 可變速度的閃光燈控制電路。 可以看出使用B-I指令轉換和使用AC0傳送指令效果相同。 例如定時器是字寄存器,其輸入參數必須是16位雙字節常數或者字存儲單元的內容,如MW、VW、QW、IW、SMW等。如果用模擬電位器SM28調節,需要進行數據轉換。SMB-VW-到定時器,也可以經過累加器自動轉換。字與雙字之間轉換 字轉換為雙字I_D的ITD指令,作用是將兩字節數I傳入D存儲單元的低字節,其兩高字節置0。 例如在VW100中存入16#1122, ITD VW100,V

27、D200 將其轉換成為雙字后傳入VD200中,結果VW202中數據是16#1122(VB203中為16#22,VB202中為16#11),VW200中為0(VB201、VB200中均為0)。雙字與字之間轉換 字轉換為雙字D_I的DTI指令,作用是將四字節數D傳入I存儲單元VS中。 例如在VD100中存入16#11223344,將其轉換成為雙字后傳入VD200中。 DTI VD100,VW200 結果VD102中數據是16#33440000(VB102中為16#33,VB103中為16#44,VB104中為0,VB104中為0(VW104中為0),VW200中內容為16#3344 。雙字整數與實

28、數之間的轉換 DTR指令將32位整數轉換成實數,小數點后面為0。例如除法指令有整數除法指令和實數除法指令。整數除法得到是商(整數)和余數(整數),相當于分數。實數除法得到是小數。 程序實例:1111/100,采用整數除法的結果是商11,余數11。采用實數除法指令結果是11.11,但是需要先將整數轉換成為實數才能使用實數除法運算。2字整數與雙字整數之間的轉換字整數與雙字整數之間的轉換 BCD碼與整數的轉換 BCDI指令:將10進制數轉換成16進制數。 IBCD指令:將16進制數轉換成10進制數。 小于10的數不轉換,大于10的加6使其提 前進位。DECO譯碼指令 功能:將輸入字節數據(IN)的低

29、4位(半個字節)表示的輸出字的位號,將輸出字(兩個字節)相應的位號置1,輸出字的其他位號置零。 語句表STL:DEC0 IN,OUT 數據類型:IN字節型整數,OUT字型數據。用譯碼指令實現流水燈: 由計數器產生相應輸出端做譯碼指令的地址碼,輸出到QW0,從而實現流水效果。 如果外界譯碼芯片,只需要4位端口,可輸出16路流水燈效果。ENCO編碼指令 功能:將輸入(IN)字(雙字節)數據的最低有效位號(其值為1)的位號寫入輸出字節(OUT)的最低4位中。 STL格式:NECO IN,OUT; 數據格式:輸入雙字節,輸出字節。 應用示例:多路輸入單路輸出的選擇開關。應用實例 用譯碼指令實現的搶答器

30、,由QB0輸出臺號。如用七段數字顯示譯碼指令譯碼,可以數碼管顯示臺號。 臺號116,可以用4位二進制顯示0F。SEG七段譯碼指令 功能:將輸入的半字節數據(輸入字節數據的低4位)產生七段現顯示碼輸出驅動LED七段數碼管顯示出來。 DTL:SEG IN,OUT 演示程序:SEG延時需要硬件。ATH指令(ASCII碼轉16進制) 功能:將從IN開始的LEN個ASCII碼轉換為16進制數保存OUT開始的LEN個單元中。 ASCII碼是用一個字節二進制數表示的符號,見ASCII編碼表。 STL格式:ATH IN,OUT,LEN 數據類型均為字節型數據。 例:將VB0、VB1、VB2、VB3中存放的AS

31、CII碼(L、M、X、Y)轉換為二進制數據存放在VB10開始的四個單元中。 ATH VB0,VB10,4HTA指令(16進制轉ASCII碼) 功能:將從IN開始的LEN個16進制數轉換為ASCII碼保存OUT開始的LEN個單元中。 ASCII碼是用一個字節二進制數表示的符號,見ASCII編碼表。 STL格式:HTA IN,OUT,LEN 數據類型均為字節型數據。 例:將VB0、VB1、VB2、VB3中存放的16進制數(12、23、34、45)轉換ASCII碼存放在VB10開始的四個單元中。 HTA VB0,VB10,43BCD碼與整數之間的轉換的指令格式碼與整數之間的轉換的指令格式 二、編碼和

32、譯碼指令 1. 編碼 ENCO,編碼指令。使能輸入有效時,將字型輸入數據IN的最低有效位(值為1的位)的位號輸出到OUT所指定的字節單元的低4位。 指令格式:ENCOIN, OUT 例:例:ENCOAC0, VB0舉例舉例 字 :2#0010 1001 0001 0000編碼編碼: 2#0000 01002#0000 0100譯碼譯碼 :位號:位號 :4字 :2# 0000 0000 0001 0000 2. 譯碼 DECO,譯碼指令。使能輸入有效時,將字節型輸入數據IN的低4位所表示的位號對OUT所指定的字單元的對應位置1,其他位置0。 指令格式:DECOIN, OUT 例:例:DECOVB

33、0, AC0三、七段譯碼指令 SEG,七段碼指令。使能輸入有效時,將字節型輸入數據IN的低4位有效數字產生相應的七七段碼段碼,并將其輸出到OUT所指定的字節單元。IN :0、1、2、。15(F)字節 : 16#00 16#01 16#0F結果結果 :2#01111000abcdefg四、字符串轉換指令 1)ASCII碼轉換碼轉換16進制進制ATH指令指令 ASCII碼是用碼是用8位二進制表示一個位二進制表示一個符號的編碼,因此一個符號的編碼,因此一個ASCII碼可碼可轉化成一個字節兩位轉化成一個字節兩位16進制數。進制數。(2)16進制到進制到ASCII碼碼HTA指令指令 與與ATH的功能相反

34、。的功能相反。注意:注意:LEN是轉化是轉化ASCII碼的個數。碼的個數。 4.4轉換指令 七表功能指令 1、讀表指令2、表取數指令 3、表查找指令 S7-200的表格存儲存儲單元數據 說明 VW100005數據最大填表數為 TL=5(=100)VW120003實際填表數EC=0003(=100)VW141234數據0VW165678數據1VW189012數據2VW20*無效數據VW22*無效數據1、填表指令、填表指令 ATT指令 該指令在梯形圖中有2個數據輸入端:DATA為數值輸入,指出將被存儲的字型數據或其地址;TBL表格的首地址,用以指明被訪問的表格。當使能輸入有效時,將輸入字型數據添加

35、到指定的表格中。格式:格式:AD_T_TBL特點特點: 表存數時,新存的數據添加在表中最后一個數據的后面。每向表中存一個數據,實際填表數EC會自動加1。二、表取數指令 (1) FIFO,先進先出指令 (2) LIFO,后進先出指令 (1) FIFO,先進先出指令,先進先出指令 p當使能輸入有效時,從TBL指明的表中移出第一個字型數據并將其輸出到DATA所指定的字單元。pFIFO表取數特點:p取數時,移出的數據總是最先進入表中的數據。每次從表中移出一個數據,剩余數據依次上移一個字單元位置,同時實際填表數EC會自動減1。p指令格式:FIFO TBL, DATAp例:FIFO VW10, AC0(2

36、) LIFO,后進先出指令,后進先出指令 u當使能輸入有效時,從TBL指明的表中移出最后一個字型數據并將其輸出到DATA所指定的字單元。uLIFO表取數特點:u取數時,移出的數據是最后進入表中的數據。每次從表中取出一個數據,剩余數據位置保持不變,實際填表數EC會自動減1。u指令格式:LIFO TBL, DATAu例:例:LIFOVW10, AC0三.表查找指令 vFND?,表查找指令。通過表查找指令可以從字型數表中找出符合條件的數據所在的表中數據編號,編號范圍為099。v在梯形圖中有4個數據輸入端:TBL表格的首地址,PTN是用來描述查表條件時進行比較的數據;CMD是比較運算符“?”的編碼,它

37、是一個14的數值,分別代表=、運算符;INDX用來指定表中符合查找條件的數據的地址。指令:指令:TBL_FIND八 程序控制類指令 u 1、系統控制類指令u 2、跳轉、循環指令u 3、子程序調用指令u 4、順序控制指令 1、系統控制類指令 1.1. 結束指令結束指令 結束指令有兩條:END和MEND。兩條指令在梯形圖中以線圈形式編程。 END,條件結束指令。使能輸入有效時,終止用戶主程序。 MEND無條件結束指令。無條件終止用戶程序的執行,返回主程序的第一條指令。 指令格式:END(無操作數)STOP,暫停指令。使能輸入有效時,該指令使主機CPU的工作方式由RUN切換到STOP方式,從而立即終

38、止用戶程序的執行。 STOP指令在梯形圖中以線圈形式編程。指令不含操作數。 指令格式:STOP (無操作數)1.2. 停止指令停止指令1.3. 看門狗復位指令 WDR,看門狗復位指令。當使能輸入有效時,執行WDR指令,每執行一次,看門狗定時器就被復位一次。用本指令可用以延長掃描周期,從而可以有效避免看門狗超時錯誤。 指令格式:WDR(無操作數)L DS M 5 .0/檢 查I/O 錯 誤OS M 4 .3/運 行 時 刻 檢 查 編 程OI0 .3/外 部 切 換 開 關S T O P/條 件 滿 足 , 由R U N/ 切 換 到S T O P 方 式/L DI0 .5/外 部 停 止 控

39、制E N D/停 止 程 序 執 行/L DM 0 .4/用 觸 點 重 新 觸 發W D R/看 門 狗 定 時 器AI0 .2/LDSM5.0/檢查 I/O 錯誤OSM4.3/運行時刻檢查編程OI0.3/外部切換開關STOP/條件滿足,由 RUN/ 切換到 STOP 方式/LDI0.5/外部停止控制END/停止程序執行/LDM0.4/用觸點重新觸發WDR/看門狗定時器AI0.2/ 2、跳轉、循環指令 2.1. 跳轉指令(1)跳轉指令 JMP,跳轉指令。使能輸入有效時,使程序流程跳到同一程序中的指定標號n處執行。(2)標號指令 LBL,標號指令。標記程序段,作為跳轉指令執行時跳轉到的目的位置

40、。操作數n為0255的字型數據。應用實例:用跳轉指令及置位復位指令實現單按鈕起保停控制 說明:為了避免出現先說明:為了避免出現先置位后復位或者先復位置位后復位或者先復位后置位的兩次動作,使后置位的兩次動作,使用跳轉指令用跳轉指令JMPJMP和標號和標號LABLAB。 按序分析:按序分析:PLCPLC運行開運行開始,始,Q0.0=0Q0.0=0,因此不執,因此不執行網絡行網絡2 2,按下,按下I0.0I0.0,執行網絡執行網絡5 5使得使得Q0.0Q0.0置置位。從而后不執行網絡位。從而后不執行網絡5 5,而執行網絡,而執行網絡2 2,再按,再按I0.0I0.0實現停止實現停止。2.2、循環指令

41、、循環指令 循環指令用于一段程序重復多次執行控制。重復執行的程序段從FOR語句開始至NEXT為止。 循環次數由循環計數器控制,每執行一次循環次數計數器加1,到達設定值時結束循環。其循環的次數為循環計數器的設定值-初始值。 使能輸入EN有效,循環體開始執行,執行到NEXT指令時返回,每執行一次循環體,當前值計數器INDX增1,達到終止值FINAL時,循環結束。 使能輸入無效時,循環體程序不執行。每次使能輸入有效,指令自動將各參數復位。 由FOR和NEXT指令構成程序的循環體。FOR指令標記循環的開始,NEXT指令為循環體的結束指令。 INDX是當前值計數器即循環計數器,INIT是循序計數器的初始

42、值,FINAL是循環終止值即設定值。 INDX、INIT、FINAL均為16位的字寄存器,如VW、IW、QW、MW、SW、SMW、LW、T、C、AC。 應用實例 用循環指令實現延時控制。(不能仿真)3、子程序調用指令 在電氣控制系統中,有時需要處理一在電氣控制系統中,有時需要處理一些特定事件、突發事件等,這些事件處理些特定事件、突發事件等,這些事件處理還需要繼續執行正常的工作。這種情況適還需要繼續執行正常的工作。這種情況適合用子程序進行處理,當滿足條件時執行合用子程序進行處理,當滿足條件時執行子程序,不滿足條件時子程序不被執行。子程序,不滿足條件時子程序不被執行。其相關內容有:其相關內容有:

43、1.1.建立子程序建立子程序 2.2.子程序調用子程序調用 3.3.帶參數的子程序調用帶參數的子程序調用1. 建立子程序 (1)從“編輯”菜單,選擇插入子程序;(2)從“指令樹”,用鼠標右鍵單擊“程序塊”圖標,并從彈出菜單選擇插入子程序;(3)從“程序編輯器”窗口,用鼠標右鍵單擊,并從彈出菜單選擇插入 子程序。2. 子程序調用 (1)子程序調用和返回指令 子程序調用 SBR子程序條件返回 CRET (1)子程序參數 (2)局部變量的類型 (3)數據類型 (4)建立帶參數子程序的局部變量表(5)帶參數子程序調用指令 3. 帶參數的子程序調用 帶參數的子程序的概念及用途 從主程序進入子程序,有時主

44、程序的某些參數需要傳遞到子程序當中,這在子程序調用指令中包含相應參數,它可以在子程序和調用程序之間傳送。 如果子程序要傳遞參數和局部變量則稱為帶參數的子程序(可移動子程序),應盡量使用局部變量L,避免使用全局變量。 子程序的參數必須有一個符號名、一個變量類型和一個數據類型。 子程序最多可以傳遞16個參數,傳遞的參數在局部變量表中定義。局部變量表名稱變量類型 數據類型注釋L0.0IN1INBOOLLB1IN2INBYTEL2.0IN3INLD3IN4DWORDLD7INOUTIN_OUTREALLD11OUTOUTREAL說明 變量類型:局部變量表中有IN、OUT、IN/OUT和TEMP四種類型

45、。其中OUT和IN/OUT不允許使用常量。 前三種變量可以在子程序和調用程序之間傳送。 TEMP是局部局部存儲變量,只能用于子程序內部保存結果,不能在程序之間傳送參數。 數據類型包括:能流、位、字節、字、雙字,整數和實數型。帶參數子程序調用的指令格式 在子程序局部變量表中定義參數后自動生成調用指令塊,指令塊中自動包含子程序的輸入參數和輸出參數。 在主程序插入調用指令。應用舉例 多種工作方式的可編程控制彩虹燈。 方式1:左循環每次一位。 方式2:左循環每次兩位。 方式3:右循環每次一位。 方式4:右循環每次二位。 方式5:左循環逐個點亮然后逐個熄滅。 方式6:右循環逐個點亮然后逐個熄滅。 可編程

46、彩虹燈控制程序4、順序控制指令(1)順序步開始指令 (LSCR)(2)順序步結束指令 (SCRE)(3)順序步轉移指令 (SCRT)5.1 程序控制類指令 例5-1使用順序控制結構,編寫出實現紅、綠燈循環顯示的程序(要求循環間隔時間為1s)。 5.1 程序控制類指令 第三章 S7-200的特殊功能指令用主要內容 一 立即類指令 二 中斷指令 三 高速計數器 四 高速脈沖輸出 五 實時鐘指令 六 PID指令 七 文本顯示器TD400本章學習要求& 重點內容:重點內容: S7-200功能指令的作用及使用方法& 了解內容了解內容: 系統控制類指令的應用 &難點內容難點內容:

47、高速計數器指令 一、立即類指令 普通指令是按照時間節拍去采樣輸入端子狀態,和刷新輸出的這樣對于需要快速處理的問題會造成反映遲緩。例如電子裝置過載能力很差,如果不及時采取措施將造成經濟損失。 立即類指令分為立即輸入和立即輸出兩大類。分別用觸點和線圈表示。二中斷指令 1、中斷源中斷源2 2、中斷指令、中斷指令 3、中斷程序中斷程序4 4、文本顯示器、文本顯示器 二中斷指令 概念: 中段就是終止當前正在運行的程序,去執行為立即響應的信號而編制的中斷服務程序,執行完畢再返回原先終止的程序并繼續執行。 中斷源 中斷源是指發出中斷請求的事件,又叫中斷事件。 中斷服務程序 用于處理中斷事件的子程序叫中斷服務

48、程序。中斷服務程序不是由指令調用,而是中斷事件調用。 執行中斷流程 編寫中斷服務程序完成后,進行相應的設置:開全局中斷,連接中斷事件即可。 S7-200系列可編程控制器最多有34個中斷源, 分為三大類:通信中斷 輸入/輸出(I/O)中斷 時基中斷 1、中斷源分類q中斷優先級由高到低依次是: 通信中斷、輸入輸出中斷、時基中斷。q每種中斷中的不同中斷事件又有不同的優先權。q主機中的所有中斷事件及優先級如下表。2、中斷優先級M 一個程序中總共可有128個中斷。M S7-200在任何時刻,只能執行一個中斷程序;在中斷各自的優先級組內按照先來先服務的原則為中斷提供服務,一旦一個中斷程序開始執行,則一直執

49、行至完成,不能被另一個中斷程序打斷,即使是更高優先級的中斷程序;M 中斷程序執行中,新的中斷請求按優先級排隊等候,中斷隊列能保存的中斷個數有限,若超出,則會產生溢出。3、CPU響應中斷的原則二、中斷指令二、中斷指令 中斷程序是為處理中斷事件而事先編好的程序。中斷程序不是由程序調用,而是在中斷事件發生時由操作系統調用。 注意注意:(1)在中斷程序中禁止使用DISI、ENI、HDEF、LSCR、END指令。(2)中斷程序最后一條指令一定是無條件返回指令RETI(省略),也可以是有條件返回指令CRETI結束中斷程序。3、中斷程序(中斷服務程序編寫由I0.0的上升沿產生的中斷事件的初始化程序。主程序:

50、電動機起保停電路,I0.0是停止按鈕。編寫中斷服務程序:中斷發生后Q0.1置位報 警。連接中斷:用SM0.1驅動ATCH連接中斷事件0,驅動(ENI)開全局中斷。定時器中斷 S7-200有2個定時中斷:2個定時器中斷。 定時中斷中斷0事件號10,定時中斷1事件號11,主要用于對輸出端的間隔采樣,由SMB34給出采樣間隔時間,在1255ms之間。 定時中斷T32中斷和定時器T96中斷,等于設定值發生中斷。間隔時間可以在132000ms之間采樣或定時。編程定時器T32中斷,實現跑馬燈效果 用SM0.1連接開全局中斷ENI和連接事件號21。 連接自激勵形式定時器給設定值SMW28。 用循環移位指令編

51、寫子程序。三高速計數器 采用普通的計數器,其輸入脈沖的頻率要顯著低于PLC掃描的頻率。在進行電動機的轉角控制時,常常使用編碼器輸出電機轉動信息,編碼器的A、B脈沖的頻率很高上百KHz,只能使用PLC內部的高速計數器對脈沖計數。高速計數器計數速度不受掃描的影響,采用中斷方式工作。1. 高速計數器介紹2. 高速計數指令及應用 3、高速計數器自動變成向導高速計數器在程序中使用時的地址編號用HCn來表示(在非程序中有時用HSCn),HC表編程元件名稱為高速計數器,n為編號。1. 高速計數器介紹高速計數器中斷事件大致分為3類:當前值等于預設值中斷、輸入方向改變中斷和外部復位中斷。所有高速計數器都支持當前

52、值等于預設值中斷。3221 高速計數器輸入端的連接2. 高速計數器的工作模式高速計數器的工作模式 高速計數器有6種編號,12種工作模式.HSC0和HSC4有模式0、1、3、4、6、7、8、9、10;HSC1和HSC2有模式0、1、2、3、4、5、6、7、8、9、10、11;HSC3和HSC5只有模式0。 3高速計數器的控制字和狀態字高速計數器的控制字和狀態字 每個高速計數器都有固定的特殊功能存儲器與之相配合,完成高速計數功能。高速計數器的使用高速計數器的使用(1)HDEF指令 HDEF,定義高速計數器指令。使能輸入有效時,為指定的高速計數器分配一種工作模式,即用來建立高速計數器與工作模式之間的

53、聯系。 梯形圖指令盒中有兩個數據輸入端:HSC,高速計數器編號,為05的常數,字節型; MODE,工作模式,為011的常數,字節型。高速計數指令 HSC,使用高速計數器指令。 使能輸入有效時,根據高速計數器特殊存儲器位的狀態,并按照HDEF指令指定的工作模式,設置高速計數器并控制其工作。 梯形圖指令盒數據輸入端N:高速計數器編號,為05的常數,字型。(2)HSC指令原理: 每個高速計數器都有一個32位當前值和一個32位預置值,當前值和預設值均為帶符號的整數值。要設置高速計數器的新當前值和新預置值,必須設置控制字節令其第五位和第六位為1,允許更新預置值和當前值,新當前值和新預置值寫入特殊內部標志

54、位存儲區。然后執行HSC指令,將新數值傳輸到高速計數器。 高速計數器使用原理高速計數器使用原理(1)用首次掃描時接通一個掃描周期的特殊內部存儲器SM0.1去調用一個子程序,完成初始化操作。 (2) 在初始化的子程序中,根據希望的控制設置控制字(SMB37、SMB47、SMB137、SMB147、SMB157) (3)執行HDEF指令,設置HSC的編號(0-5),設置工作模式(0-11)。 (4) 用新的當前值寫入32位當前值寄存器(SMD38,SMD48,SMD58 ,SMD138, SMD148, SMD158)。 (5)用新的預置值寫入32位預置值寄存器(SMD42 ,SMD52, SMD

55、62, SMD142 ,SMD152, SMD162) (6)、 (7) 、(8)中斷事件(事件13、14、15)與一個中斷程序相聯系。(9)執行全局中斷允許指令(ENI)允許HSC中斷 (10)執行HSC指令使S7-200對高速計數器進行編程。(11)結束子程序。高速計數器指令初始化(1)主程序例例5-4高速計數器的應用舉例高速計數器的應用舉例(2)初始化的子程序)初始化的子程序高速計數編程向導 從SETP7編程軟件的主菜單“工具”指令向導HSC進入高速計數器編程向導。按照要求一步一步輸入相應參數,就可以完成高速計數器編程,無需記憶相關的特殊功能寄存器。四、高速脈沖輸出介紹四、高速脈沖輸出介紹 在PLC的應用中可以通過PWM調制方式輸出模擬量,如直流電動機調速;還可以通過設定輸出脈沖的個數用于步進電動機的控制;這些脈沖的頻率較高,這就是高速脈沖輸出。 高速脈沖有指定的輸出端,一般是Q0.0和Q0.1,必須是晶體管輸出型PLC,而繼電器輸出的PLC沒有高速脈沖輸出端口。高速脈沖相關的特殊功能繼電器高速脈沖相關的特殊功能繼電器1、高速脈沖串輸出、高速脈沖串輸出PTO功能:能夠指

溫馨提示

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

評論

0/150

提交評論