版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基本指令4.1.1指令使用概述
1.主機的有效編程範圍記憶體的存儲容量及各編程元件的有效編程範圍如右表4.1所示。許多指令中含有運算元,運算元的有效編址範圍如表4.2所示。(1)指令例整數加法+I,整數加法指令。使能輸入有效時,將兩個單字長(16位)的符號整數IN1和IN2相加,產生一個16位整數結果輸出(OUT)。在LAD和FBD中,以指令盒形式編程。指令盒的執行結果:IN1+IN2=OUT在STL中,執行結果:IN1+OUT=OUTIN1和IN2的尋址範圍:VW、IW、QW、MW、SW、SMW、LW、AIW、T、C、AC、*VD、*AC、*LD和常數。OUT的尋址範圍:VW、IW、QW、MW、SW、SMW、LW、T、C、AC、*VD、*AC和*LD。本指令影響的特殊記憶體位:SM1.0(零);SM1.1(溢出);SM1.2(負)使能流輸出ENO斷開的出錯條件:SM1.1(溢出);SM4.3(運行時間);0006(間接尋址)指令格式:+I IN1,OUT 例:+I VW0,VW4本指令在梯形圖和語句表中的編程如圖4.1所示。圖4.1整數加法3.梯形圖的基本繪製規則
(1)Network
(2)能流/使能
(3)編程順序
(4)編號分配
(5)內、外觸點的配合
(6)觸點的使用次數
(7)線圈的使用次數
(8)線圈的連接
返回本節4.1.2基本邏輯指令
基本邏輯指令在語句表語言中是指對位存儲單元的簡單邏輯運算,在梯形圖中是指對觸點的簡單連接和對標準線圈的輸出。一般來說,語句表語言更適合於熟悉可編程序控制器和邏輯編程方面有經驗的編程人員。用這種語言可以編寫出用梯形圖或功能框圖無法實現的程式。選擇語句表時進行位運算要考慮主機的內部存儲結構。可編程序控制器中的堆疊與電腦中的堆疊結構相同,堆疊是一組能夠存儲和取出數據的暫時存儲單元。堆疊的存取特點是“後進先出”,S7-200可編程序控制器的主機邏輯堆疊結構如表4.3所示。1.標準觸點指令(1)LD:裝入常開觸點(LoaD)(2)LDN:裝入常閉觸點(LoaDNot)
(3)A:與常開觸點(And)
(4)AN:與常閉觸點(AndNot)。
(5)O:或常閉觸點(Or)
(6)ON:或常閉觸點(OrNot)
(7)NOT:觸點取非(輸出反相)
(8)=:輸出指令
在語句表中,LD、LDN、A、AN、O、ON、NOT這幾條指令的執行對邏輯堆疊的影響分別如表4.4、表4.5其後的說明。表4.5指令A
I0.2的執行程式實例:本程式段用以介紹標準觸點指令在梯形圖、語句表和功能塊圖3種語言編程中的應用,仔細比較不同編程工具的區別與聯繫。其梯形圖和語句表程式結構如圖4.2所示。圖4.2標準觸點LAD和STL例2.正負跳變指令
本程式對應的功能框圖如圖4.3所示。在功能框圖中,常閉觸點的裝入和串並聯用指令盒的對應輸入信號端加圓圈來表示。程式執行的時序圖如圖4.4所示。圖4.3標準觸點FBD例圖4.4時序圖負跳變觸點檢測到脈衝的每一次負跳變後,產生一個微分脈衝。指令格式:ED(無運算元)應用舉例:圖4.5是跳變指令的程式片斷。圖4.6是圖4.5指令執行的時序。圖4.5跳變應用圖4.6時序3.置位和複位指令
(1)S,置位指令
(2)R,複位指令
置位即置1,複位即置0。置位和複位指令可以將位存儲區的某一位開始的一個或多個(最多可達255個)同類記憶體位置1或置0。這兩條指令在使用時需指明三點:操作性質、開始位和位的數量。各運算元類型及範圍如表4.6所示。(1)S,置位指令
將位存儲區的指定位(位bit)開始的N個同類記憶體位置位。用法: S bit, N例: S Q0.0, 1(2)R,複位指令
將位存儲區的指定位(位bit)開始的N個同類記憶體位複位。當用複位指令時,如果是對定時器T位或計數器C位進行複位,則定時器位或計數器位被複位,同時,定時器或計數器的當前值被清零。用法: R bit, N例: R Q0.2, 3應用舉例:圖4.7為置位和複位指令應用程式片斷。圖4.7置位複位本程式對應的時序圖如圖4.8所示。圖4.8時序圖4.立即指令
(1)立即觸點指令
(2)=I,立即輸出指令
(3)SI,立即置位指令
(4)RI,立即複位指令
(1)立即觸點指令在每個標準觸點指令的後面加“I”。指令執行時,立即讀取物理輸入點的值,但是不刷新對應映像寄存器的值。這類指令包括:LDI、LDNI、AI、ANI、OI和ONI。下麵以LDI指令為例。用法: LDI bit例: LDI I0.2注意:bit只能是I類型。(2)=I,立即輸出指令用立即指令訪問輸出點時,把棧頂值立即複製到指令所指出的物理輸出點,同時,相應的輸出映像寄存器的內容也被刷新。用法: =I bit例: =I Q0.2注意:bit只能是Q類型。(3)SI,立即置位指令用立即置位指令訪問輸出點時,從指令所指出的位(bit)開始的N個(最多為128個)物理輸出點被立即置位,同時,相應的輸出映像寄存器的內容也被刷新。用法: SI bit, N例: SI Q0.0, 2注意:bit只能是Q類型。SI和RI指令的運算元類型及範圍如表4.7所示。(4)RI,立即複位指令用立即複位指令訪問輸出點時,從指令所指出的位(bit)開始的N個(最多為128個)物理輸出點被立即複位,同時,相應的輸出映像寄存器的內容也被刷新。用法: RI bit, N例: RI Q0.0, 1應用舉例:圖4.9為立即指令應用中的一段程式,圖4.10是程式對應的時序圖。圖4.9立即指令程式圖4.10時序圖返回本節4.1.3複雜邏輯指令
1.棧裝載與指令
2.棧裝載或指令
3.邏輯推入棧指令
4.邏輯彈出棧指令
5.邏輯讀棧指令
6.裝入堆疊指令
1.棧裝載與指令
ALD,棧裝載與指令(與塊)。在梯形圖中用於將並聯電路塊進行串聯連接。在語句表中指令ALD執行情況如表4.8所示。2.棧裝載或指令
OLD,棧裝載或指令(或塊)。在梯形圖中用於將串聯電路塊進行並聯連接。在語句表中指令OLD執行情況如表4.9所示。3.邏輯推入棧指令
LPS,邏輯推入棧指令(分支或主控指令)。在梯形圖中的分支結構中,用於生成一條新的母線,左側為主控邏輯塊時,第一個完整的從邏輯行從此處開始。注意:使用LPS指令時,本指令為分支的開始,以後必須有分支結束指令LPP。即LPS與LPP指令必須成對出現。在語句表中指令LPS執行情況如下表4.10所示。4.邏輯彈出棧指令
LPP,邏輯彈出棧指令(分支結束或主控複位指令)。在梯形圖中的分支結構中,用於將LPS指令生成一條新的母線進行恢復。注意:使用LPP指令時,必須出現在LPS的後面,與LPS成對出現。在語句表中指令LPP執行情況如下表4.11所示。5.邏輯讀棧指令
LRD,邏輯讀棧指令。在梯形圖中的分支結構中,當左側為主控邏輯塊時,開始第二個和後邊更多的從邏輯塊。在語句表中指令LRD執行情況如表4.12所示。6.裝入堆疊指令
LDS,裝入堆疊指令。本指令編程時較少使用。指令格式: LDS n(n為0~8的整數)例: LDS 4指令LDS 4在語句表中執行情況如下表4.13所示。應用舉例:圖4.11是複雜邏輯指令在實際應用中的一段程式的梯形圖。圖4.11複雜邏輯指令的應用返回本節4.1.4定時器指令
系統提供3種定時指令:TON、TONR和TOF。精度等級:S7-200定時器的精度(時間增量/時間單位/解析度)有3個等級:1ms、10ms和100ms,精度等級和定時器號關係如表4.14所示。指令運算元
1)編號:
2)預設值PT:
3)使能輸入(只對LAD和FBD):
1.接通延時定時器
TON,接通延時定時器指令。用於單一間隔的定時。上電週期或首次掃描,定時器位OFF,當前值為0。使能輸入接通時,定時器位為OFF,當前值從0開始計數時間,當前值達到預設值時,定時器位ON,當前值連續計數到32767。使能輸入斷開,定時器自動複位,即定時器位OFF,當前值為0。指令格式: TON Txxx,PT例: TON T120,82.有記憶接通延時定時器
TONR,有記憶接通延時定時器指令。用於對許多間隔的累計定時。上電週期或首次掃描,定時器位OFF,當前值保持。使能輸入接通時,定時器位為OFF,當前值從0開始計數時間。使能輸入斷開,定時器位和當前值保持最後狀態。使能輸入再次接通時,當前值從上次的保持值繼續計數,當累計當前值達到預設值時,定時器位ON,當前值連續計數到32767。TONR定時器只能用複位指令進行複位操作。指令格式:TONR Txxx,PT例: TONR T20,633.斷開延時定時器TOF,斷開延時定時器指令。用於斷開後的單一間隔定時。上電週期或首次掃描,定時器位OFF,當前值為0。使能輸入接通時,定時器位為ON,當前值為0。當使能輸入由接通到斷開時,定時器開始計數,當前值達到預設值時,定時器位OFF,當前值等於預設值,停止計數。TOF複位後,如果使能輸入再有從ON到OFF的負跳變,則可實現再次啟動。指令格式:TOF Txxx,PT例: TOF T35,64.應用舉例例1:圖4.12是介紹3種定時器的工作特性的程式片斷,其中T35為通電延時定時器,T2為有記憶通電延時定時器,T36為斷電延時定時器。圖4.12定時器特性本梯形圖程式中輸入輸出執行時序關係如圖4.13所示。圖4.13定時器時序例2:用TON構造各種類型的時間繼電器觸點。有的廠商的PLC只有TON定時器,因此,在這種情況下可以利用TON來構造斷電延時型的各種觸點。圖4.14是用TON構造TOF作用的觸點。其時序圖與TOF的時序完全相同。圖4.15用通電延時定時器與輸出繼電器組成帶瞬動觸點的定時器。圖4.16是利用常開觸點實現通電和斷電都延時的觸點作用。本程式實現的功能是:用輸入端I0.0控制輸出端Q0.0,當I0.0接通後,過3個時間單位Q0.0端輸出接通,當I0.0斷開後,過6個時間單位Q0.0斷開。圖4.14定時器應用圖4.14定時器應用圖4.15定時器應用圖4.16定時器應用返回本節4.1.5計數器指令
1.概述
2.增計數器
3.增減計數器
4.減計數器
5.應用舉例
1.概述
計數器用來累計輸入脈衝的次數。計數器也是由積體電路構成,是應用非常廣泛的編程元件,經常用來對產品進行計數。
計數器指令有3種:增計數CTU、增減計數CTUD和減計數CTD。指令運算元有4方面:編號、預設值、脈衝輸入和複位輸入。圖4.18電機順序起動2.增計數器
CTU,增計數器指令。首次掃描,定時器位OFF,當前值為0。脈衝輸入的每個上升沿,計數器計數1次,當前值增加1個單位,當前值達到預設值時,計數器位ON,當前值繼續計數到32767停止計數。複位輸入有效或執行複位指令,計數器自動複位,即計數器位OFF,當前值為0。指令格式:CTU Cxxx,PV例: CTU C20,3程式實例:圖4.19為增計數器的程式片斷和時序圖。圖4.19增計數程式及時序3.增減計數器
CTUD,增減計數器指令。有兩個脈衝輸入端:CU輸入端用於遞增計數,CD輸入端用於遞減計數。
指令格式:CTUD Cxxx,PV例: CTUD C30,5程式實例:如圖4.20所示為增減計數器的程式片斷和時序圖。
圖4.20增減計數程式及時序4.減計數器
CTD,增減計數器指令。脈衝輸入端CD用於遞減計數。首次掃描,定時器位OFF,當前值為等於預設值PV。計數器檢測到CD輸入的每個上升沿時,計數器當前值減小1個單位,當前值減到0時,計數器位ON。複位輸入有效或執行複位指令,計數器自動複位,即計數器位OFF,當前值複位為預設值,而不是0。指令格式:CTD Cxxx,PV例: CTD C40,4程式實例:圖4.21為減計數器的程式片斷和時序圖。圖4.21減計數程式及時序5.應用舉例
1)迴圈計數。以上三種類型的計數器如果在使用時,將計數器位的常開觸點作為複位輸入信號,則可以實現迴圈計數。2)用計數器和定時器配合增加延時時間,如圖4.22所示。試分析以下程式中實際延時為多長時間。圖4.22計數器應用例返回本節4.1.6比較
1.位元組比較
2.整數比較
3.雙字整數比較
4.實數比較
5.應用舉例
1.位元組比較
位元組比較用於比較兩個位元組型整數值IN1和IN2的大小,位元組比較是無符號的。比較式可以是LDB、AB或OB後直接加比較運算符構成。如:LDB=、AB<>、OB>=等。整數IN1和IN2的尋址範圍:VB、IB、QB、MB、SB、SMB、LB、*VD、*AC、*LD和常數。指令格式例:LDB= VB10, VB12AB<> MB0, MB1OB<= AC1, 1162.整數比較
整數比較用於比較兩個一字長整數值IN1和IN2的大小,整數比較是有符號的(整數範圍為16#8000和16#7FFF之間)。比較式可以是LDW、AW或OW後直接加比較運算符構成。如:LDW=、AW<>、OW>=等。整數IN1和IN2的尋址範圍:VW、IW、QW、MW、SW、SMW、LW、AIW、T、C、AC、*VD、*AC、*LD和常數。指令格式例:LDW= VW10, VW12AW<> MW0, MW4OW<= AC2, 11603.雙字整數比較
雙字整數比較用於比較兩個雙字長整數值IN1和IN2的大小,雙字整數比較是有符號的(雙字整數範圍為16#80000000和16#7FFFFFFF之間)。
指令格式例:LDD= VD10, VD14AD<> MD0, MD8OD<= AC0, 1160000LDD>= HC0, *AC04.實數比較
實數比較用於比較兩個雙字長實數值IN1和IN2的大小,實數比較是有符號的(負實數範圍為-1.175495E-38和-3.402823E+38,正實數範圍為+1.175495E-38和+3.402823E+38)。比較式可以是LDR、AR或OR後直接加比較運算符構成。指令格式例:LDR= VD10, VD18AR<> MD0, MD12OR<= AC1, 1160.478AR> *AC1, VD1005.應用舉例
控制要求:一自動倉庫存放某種貨物,最多6000箱,需對所存的貨物進出計數。貨物多於1000箱,燈L1亮;貨物多於5000箱,燈L2亮。其中,L1和L2分別受Q0.0和Q0.1控制,數值1000和5000分別存儲在VW20和VW30字存儲單元中。本控制系統的程式如圖4.23所示。程式執行時序如圖4.24所示。圖4.23程式舉例圖4.24時序圖返回本節4.2運算指令
4.2.1加法
4.2.2減法
4.2.3乘法
4.2.4除法
4.2.5數學函數指令
4.2.6增減
4.2.7邏輯運算
返回本章首頁4.2.1加法
1.整數加法+I,整數加法指令。使能輸入有效時,將兩個單字長(16位)的符號整數IN1和IN2相加,產生一個16位整數結果OUT。圖4.25整數加法例2.雙整數加法+D,雙整數加法指令。使能輸入有效時,將兩個雙字長(32位)的符號雙整數IN1和IN2相加,產生一個32位雙整數結果OUT。在LAD和FBD中,以指令盒形式編程,執行結果:IN1+IN2=OUT。在STL中,執行結果:IN1+OUT=OUT。
OUT的尋址範圍:VD、ID、QD、MD、SD、SMD、LD、AC、*VD、*AC、*LD。指令格式:+D IN1,OUT例: +D VD0,VD4+R,實數加法指令。使能輸入有效時,將兩個雙字長(32位)的實數IN1和IN2相加,產生一個32位實數結果OUT。在LAD和FBD中,以指令盒形式編程,執行結果:IN1+IN2=OUT。OUT的尋址範圍:VD、ID、QD、MD、SD、SMD、LD、AC、*VD、*AC、*LD。本指令影響的特殊記憶體位:SM1.0(零);SM1.1(溢出);SM1.2(負)。返回本節4.2.2減法
減法指令是對有符號數進行相減操作。包括:整數減法、雙整數減法和實數減法。這三種減法指令與所對應的加法指令除運算法則不同之外,其他方面基本相同。在LAD和FBD中,以指令盒形式編程,執行結果:IN1-IN2=OUT。在STL中,執行結果:OUT-IN2=OUT。指令格式:-I IN2, OUT (整數減法)-D IN2, OUT (雙整數減法)-R IN2, OUT (實數減法)例:-I AC0, VW4返回本節4.2.3乘法
*I,整數乘法指令。使能輸入有效時,將兩個單字長(16位)的符號整數IN1和IN2相乘,產生一個16位整數結果OUT。指令格式:*I IN1,OUT例: *I VW0,AC01.整數乘法
2.完全整數乘法
MUL,完全整數乘法指令。使能輸入有效時,將兩個單字長(16位)的符號整數IN1和IN2相乘,產生一個32位雙整數結果OUT。
在LAD和FBD中,以指令盒形式編程,執行結果:IN1*IN2=OUT。
OUT的尋址範圍:VD、ID、QD、MD、SD、SMD、LD、AC、*VD、*AC、*LD。本指令影響的特殊記憶體位:SM1.0(零);SM1.1(溢出);SM1.2(負);SM1.3(被0除)。指令格式: MUL IN1,OUT例: MUL AC0,VD10
3.雙整數乘法
*D,雙整數乘法指令。使能輸入有效時,將兩個雙字長(32位)的符號整數IN1和IN2相乘,產生一個32位雙整數結果OUT。
在STL中,執行結果:IN1*OUT=OUT。IN1和IN2的尋址範圍:VD、ID、QD、MD、SD、SMD、LD、HC、AC、*VD、*AC、*LD和常數。OUT的尋址範圍:VD、ID、QD、MD、SD、SMD、LD、AC、*VD、*AC、*LD。本指令影響的特殊記憶體位:SM1.0(零);SM1.1(溢出);SM1.2(負);SM1.3(被0除)。指令格式: *D IN1,OUT例: *D VD0,AC04.實數乘法*R,實數乘法指令。使能輸入有效時,將兩個雙字長(32位)的實數IN1和IN2相乘,產生一個32位實數結果OUT。在LAD和FBD中,以指令盒形式編程,執行結果:IN1*IN2=OUT。在STL中,執行結果:IN1*OUT=OUT。IN1和IN2的尋址範圍:VD、ID、QD、MD、SD、SMD、LD、AC、*VD、*AC、*LD和常數。OUT的尋址範圍:VD、ID、QD、MD、SD、SMD、LD、AC、*VD、*AC、*LD。本指令影響的特殊記憶體位:SM1.0(零);SM1.1(溢出);SM1.2(負);SM1.3(被0除)。指令格式: *R IN1,OUT例: *R VD0,AC0返回本節4.2.4除法
在LAD和FBD中,以指令盒形式編程,執行結果:IN1/IN2=OUT。在STL中,執行結果:OUT/IN2=OUT。指令格式:/I IN2, OUT (整數除法)DIV IN2, OUT (整數完全除法)/D IN2, OUT (雙整數除法)/R IN2, OUT (實數除法)例: DIV VW10,VD100 /I VW20,VW200兩條指令的編程及執行情況比較如圖4.26所示。圖4.26除法指令應用對於除法指令:
對於完全除法指令:
返回本節4.2.5數學函數指令
1.平方根
2.自然對數
3.指數
4.正弦、余弦、正切
1.平方根
SQRT,平方根指令。把一個雙字長(32位)的實數IN開平方,得到32位的實數結果。在LAD和FBD中,以指令盒形式編程,執行結果:SQRT(IN)=OUT。在STL中,執行結果:SQRT(IN)=OUT。本指令影響的特殊記憶體位:SM1.0(零);SM1.1(溢出和非法值);SM1.2(負)。使能流輸出ENO斷開的出錯條件:SM1.1(溢出);SM4.3(運行時間);0006(間接尋址)。指令格式: SQRT IN,OUT例: SQRT VD0,AC02.自然對數
LN,自然對數指令。將一個雙字長(32位)的實數IN取自然對數,得到32位的實數結果。應用實例:求以10為底的50(存於VD0)的常用對數,結果放到AC0。本運算程式如圖4.27所示。圖4.27自然對數的應用3.指數
EXP,指數指令。將一個雙字長(32位)的實數IN取以e為底的指數,得到32位的實數結果OUT。在LAD和FBD中,以指令盒形式編程,執行結果:EXP(IN)=OUT。在STL中,執行結果:EXP(IN)=OUT。指令格式: EXP IN,OUT例: EXP VD0,AC0
4.正弦、余弦、正切
SIN、COS、TAN,即正弦、余弦、正切指令。將一個雙字長(32位)的實數弧度值IN分別取正弦、余弦、正切,各得到32位的實數結果。如果已知輸入值為角度,要先將角度值轉化為弧度值,方法:使用(*R)MUL_R指令用角度值乘以π/180°即可。例: TAN VD0,AC0應用實例:求COS160o的值。如圖4.28所示。圖4.28三角函數應用例返回本節4.2.6增減
1.位元組增和位元組減
2.字增和字減
3.雙字增和雙字減
4.應用實例
1.位元組增和位元組減
INCB,位元組增指令。使能輸入有效時,把一位元組長的無符號輸入數(IN)加1,得到一位元組的無符號輸出結果OUT。DECB,位元組減指令。使能輸入有效時,把一位元組長的無符號輸入數(IN)減1,得到一位元組的無符號輸出結果OUT。2.字增和字減
3.雙字增和雙字減
INCD,雙字增指令。使能輸入有效時,把雙字長(32位)的有符號輸入數(IN)加1,得到雙字長的有符號輸出結果OUT。DECD,雙字減指令。使能輸入有效時,把雙字長的有符號輸入數(IN)減1,得到雙字長的有符號輸出結果OUT。4.應用實例
控制要求:食品加工廠對飲料生產線上的盒裝飲料進行計數,每24盒為一箱,要求能記錄生產的箱數。程式及說明:程式如圖4.29所示。圖4.29增減指令的應用返回本節4.2.7邏輯運算
1.位元組邏輯運算
2.字邏輯運算
3.雙字邏輯運算
1.位元組邏輯運算
位元組邏輯運算包括位元組與、位元組或、位元組異或、位元組取反。2.字邏輯運算
位元組邏輯運算包括位元組與、位元組或、位元組異或、位元組取反。3.雙字邏輯運算
字邏輯運算包括雙字與、雙字或、雙字異或、雙字取反。
返回本節4.3其他數據處理指令
4.3.1傳送類指令
4.3.2移位指令
4.3.3位元組交換指令
4.3.4填充指令
返回本章首頁4.3.1傳送類指令
1.單一傳送
(1)MOVB,位元組傳送指令
(2)BIR,傳送位元組立即讀指令
(3)BIW,傳送位元組立即寫指令
(4)MOVW,字傳送指令
(5)MOVD,雙字傳送指令
(6)MOVR,實數傳送指令
2.塊傳送
(1)BMB,位元組塊傳送指令
(2)BMW,字塊傳送指令
(3)BMD,雙字塊傳送指令
1.單一傳送
(1)MOVB,位元組傳送指令使能輸入有效時,把一個單字節無符號數據由IN傳送到OUT所指的位元組存儲單元。IN的尋址範圍:VB、IB、QB、MB、SB、SMB、LB、AC、*VD、*AC、*LD和常數。OUT的尋址範圍:VB、IB、QB、MB、SB、SMB、LB、AC、*VD、*AC、*LD。指令格式: MOVB IN1,OUT 例: MOVB VB0,QB0(2)BIR,傳送位元組立即讀指令使能輸入有效時,立即讀取單字節物理輸入區數據IN,並傳送到OUT所指的位元組存儲單元。IN的尋址範圍:IBOUT的尋址範圍:VB、IB、QB、MB、SB、SMB、LB、AC、*VD、*AC、*LD。指令格式: BIR IN1,OUT 例: BIR IB0,VB102.塊傳送
指令可用來進行一次多個(最多255個)數據的傳送,數據塊類型可以是位元組塊、字塊、雙字塊。三條指令中N的尋址範圍都是:VB、IB、QB、MB、SB、SMB、LB、AC、*VD、*AC、*LD和常數。使ENO斷開的出錯條件:SM4.3(運行時間);0006(間接尋址);0091(數超界)。返回本節4.3.2移位指令
1.左移和右移
2.迴圈左移、迴圈右移
3.寄存器移位
1.左移和右移
(1)位元組左移和位元組右移SLB和SRB,位元組左移和位元組右移。使能輸入有效時,把位元組型輸入數據IN左移或右移N位後,再將結果輸出到OUT所指的位元組存儲單元。最大實際可移位次數為8。以第一條指令為例,指令執行情況如表4.16所示。表4.16指令SLB執行結果SLW和SRW,字左移和字右移。指令盒與位元組移位比較,只有名稱變為SHR_W和SHR_W。使能輸入有效時,把字型輸入數據IN左移或右移N位後,再將結果輸出到OUT所指的字存儲單元。最大實際可移位次數為16。指令格式: SLW OUT,N (字左移)
SRW OUT,N (字右移)例: SLW MW0,2 SRW LW0,3以第二條指令為例,指令執行情況如表4.17所示。(3)雙字左移和雙字右移SLD和SRD,雙字左移和雙字右移。指令盒與位元組移位比較,只有名稱變為SHL_DW和SHR_DW,其他部分完全相同。使能輸入有效時,把雙字型輸入數據IN左移或右移N位後,再將結果輸出到OUT所指的雙字存儲單元。最大實際可移位次數為32。指令格式: SLD OUT,N (雙字左移)
SRD OUT,N (雙字右移)例: SLD MD0,2 SRD LD0,32.迴圈左移、迴圈右移
迴圈左移和迴圈右移根據所迴圈移位的數的長度分別又可分為位元組型、字型、雙字型。迴圈移位特點:移位數據存儲單元的移出端與另一端相連,同時又與SM1.1(溢出)相連,所以最後被移出的位被移到另一端的同時,也被放到SM1.1位存儲單元。例如在迴圈右移時,移位數據的最右端位移入最左端,同時又進入SM1.1。SM1.1始終存放最後一次被移出的位。迴圈移位的類型(1)位元組迴圈左移和位元組迴圈右移
(2)字迴圈左移和字迴圈右移
(3)雙字迴圈左移和雙字迴圈右移
表4.18指令RRW執行結果3.寄存器移位
SHRB,寄存器移位指令。該指令在梯形圖中有3個數據輸入端:DATA為數值輸入,將該位的值移入移位寄存器;S_BIT為移位寄存器的最低位端;N指定移位寄存器的長度。每次使能輸入有效時,整個移位寄存器移動1位。移位特點:移位寄存器長度在指令中指定,沒有位元組型、字型、雙字型之分。可指定的最大長度為64位,可正也可負。表4.19指令SHRB執行結果返回本節4.3.3位元組交換指令
SWAP,位元組交換指令。使能輸入有效時,將字型輸入數據IN的高位元組和低位元組進行交換。本指令只對字型數據進行處理,指令的執行不影響的特殊記憶體位。使能流輸出ENO斷開的出錯條件:SM4.3(運行時間);0006(間接尋址)。指令格式: SWAP IN (位元組交換)例: SWAP VW10以第本指令為例,指令執行情況如表4.20所示。返回本節4.3.4填充指令
FILL,記憶體填充指令。使能輸入有效時,用字型輸入數據IN填充從輸出OUT所指的單元開始的N個字存儲單元。填充指令只對字型數據進行處理,N值為位元組型,可取從1~255的整數。指令的執行不影響的特殊記憶體位。使能流輸出ENO斷開的出錯條件:SM4.3(運行時間);0006(間接尋址);0091(運算元超界)。
指令格式: FILL IN,OUT,N (填充指令)例: FILL 10,VW100,12本條指令的執行結果是:將數據10填充到從VW100到VW122共12個字存儲單元。
返回本節4.4表功能指令
4.4.1表存數指令4.4.2表取數指令
4.4.3表查找指令
返回本章首頁表只對字型數據存儲,表的格式例如表4.21所示。
4.4.1表存數指令
ATT,表存數指令。該指令在梯形圖中有2個數據輸入端:DATA為數值輸入,指出將被存儲的字型數據或其地址;TBL表格的首地址,用以指明被訪問的表格。當使能輸入有效時,將輸入字型數據添加到指定的表格中。表存數特點:表存數時,新存的數據添加在表中最後一個數據的後面。每向表中存一個數據,實際填表數EC會自動加1。表4.22指令ATT執行結果
返回本節4.4.2表取數指令
1.FIFO,先進先出指令
2.LIFO,後進先出指令
1.FIFO,先進先出指令
當使能輸入有效時,從TBL指明的表中移出第一個字型數據並將其輸出到DATA所指定的字單元。FIFO表取數特點:取數時,移出的數據總是最先進入表中的數據。每次從表中移出一個數據,剩餘數據依次上移一個字單元位置,同時實際填表數EC會自動減1。指令格式: FIFO TBL,DATA 例: FIFO VW100,AC0如果仍是對表4.21存取,則指令執行情況如表4.23所示。
表4.23指令FIFO執行結果
2.LIFO,後進先出指令
當使能輸入有效時,從TBL指明的表中移出最後一個字型數據並將其輸出到DATA所指定的字單元。LIFO表取數特點:取數時,移出的數據是最後進入表中的數據。每次從表中取出一個數據,剩餘數據位置保持不變,實際填表數EC會自動減1。指令格式: LIFO TBL,DATA 例: LIFO VW100,AC0如果仍是對表4.21存取,則指令執行情況如表4.24所示。表4.24指令LIFO執行結果返回本節4.4.3表查找指令
FND?,表查找指令。通過表查找指令可以從字型數表中找出符合條件的數據所在的表中數據編號,編號範圍為0~99。在梯形圖中有4個數據輸入端:TBL表格的首地址,用以指明被訪問的表格;PTN是用來描述查表條件時進行比較的數據;CMD是比較運算符“?”的編碼,它是一個1~4的數值,分別代表=、<>、<和>運算符;INDX用來指定表中符合查找條件的數據的地址。表4.25表查找指令執行結果返回本節4.5轉換指令
4.5.1數據類型轉換
4.5.2編碼和解碼
4.5.3七段碼
4.5.4字串轉換
返回本章首頁4.5.1數據類型轉換
1.位元組與整數(1)位元組到整數(2)整數到位元組
2.整數與雙整數
(1)雙整數到整數
(2)整數到雙整數
3.雙整數與實數
(1)實數到雙整數
(2)雙整數到實數
4.整數與BCD碼
(1)BCD碼到整數
(2)整數到BCD碼
5.程式實例
1.位元組與整數
(1)位元組到整數BTI,位元組轉換為整數指令。使能輸入有效時,將位元組輸入數據IN轉換成整數類型,並將結果送到OUT輸出。位元組型是無符號的,所以沒有符號擴展。使能流輸出ENO斷開的出錯條件:SM4.3(運行時間);0006(間接尋址)。指令格式: BTI IN,OUT例: BTI VB0,AC0(2)整數到位元組ITB,整數轉換位元組指令。使能輸入有效時,將整數輸入數據IN轉換成位元組類型,並將結果送到OUT輸出。輸入數據超出位元組範圍(0~255)則產生溢出。移位指令影響的特殊記憶體位:SM1.1(溢出)。使能流輸出ENO斷開的出錯條件:SM1.1(溢出);SM4.3(運行時間);0006(間接尋址)。指令格式: ITB IN,OUT 例: ITB AC0,VB102.整數與雙整數(1)雙整數到整數DTI,雙整數轉換為整數指令。使能輸入有效時,將雙整數輸入數據IN轉換成整數類型,並將結果送到OUT輸出。輸入數據超出整數範圍則產生溢出。移位指令影響的特殊記憶體位:SM1.1(溢出)。使能流輸出ENO斷開的出錯條件:SM1.1(溢出);SM4.3(運行時間);0006(間接尋址)。指令格式: DTI IN,OUT 例: DTI AC0,VW20(2)整數到雙整數ITD,整數轉換為雙整數指令。使能輸入有效時,將整數輸入數據IN轉換成雙整數類型(符號進行擴展),並將結果送到OUT輸出。使能流輸出ENO斷開的出錯條件:SM4.3(運行時間);0006(間接尋址)。指令格式: ITD IN,OUT 例: ITD VW0,AC03.雙整數與實數(1)實數到雙整數(2)雙整數到實數DTR,雙整數轉換實數指令。使能輸入有效時,將雙整數輸入數據IN轉換成實型,並將結果送到OUT輸出。使能流輸出ENO斷開的出錯條件:SM4.3(運行時間);0006(間接尋址)。指令格式:DTR IN,OUT 例: DTR AC0,VD1004.整數與BCD碼(1)BCD碼到整數BCDI,BCD碼轉換為整數指令。使能輸入有效時,將BCD碼輸入數據IN轉換成整數類型,並將結果送到OUT輸出。輸入數據IN的範圍為0~9999。指令格式:BCDI OUT 例: BCDI AC0
(2)整數到BCD碼IBCD,整數轉換為BCD碼指令。使能輸入有效時,將整數輸入數據IN轉換成BCD碼類型,並將結果送到OUT輸出。輸入數據IN的範圍為0~9999。指令格式:IBCD OUT 例: IBCD AC05.程式實例功能:模擬量控制程式中的數據類型轉換。將模擬量輸入端採樣值由整數轉換為雙整數,然後由雙整數轉換為實數,再除以一個比例因數得到PLC可以處理的範圍內的值。程式實現:本程式如圖4.30所示。返回本節4.5.2編碼和解碼
1.編碼ENCO,編碼指令。使能輸入有效時,將字型輸入數據IN的最低有效位(值為1的位)的位號輸出到OUT所指定的位元組單元的低4位。即用半個位元組來對一個字型數據16位中的1位有效位進行編碼。使能流輸出ENO斷開的出錯條件:SM4.3(運行時間);0006(間接尋址)。指令格式: ENCO IN,OUT例: ENCO AC0,VB0以本指令為例,指令執行情況如表4.26所示。表4.26編碼指令執行結果2.解碼DECO,解碼指令。使能輸入有效時,將位元組型輸入數據IN的低4位所表示的位號對OUT所指定的字單元的對應位置1,其他位置0。即對半個位元組的編碼進行解碼來選擇一個字型數據16位中的1位。使能流輸出ENO斷開的出錯條件:SM4.3(運行時間);0006(間接尋址)。指令格式: DECO IN,OUT例: DECO VB0,AC0本指令執行情況如表4.27所示。返回本節4.5.3七段碼
SEG,七段碼指令。使能輸入有效時,將位元組型輸入數據IN的低4位有效數字產生相應的七段碼,並將其輸出到OUT所指定的位元組單元。返回本節4.5.4字串轉換
1.指令種類(1)ASCII碼轉換16進制指令(2)16進制到ASCII碼(3)整數到ASCII碼(4)雙整數到ASCII碼(5)實數到ASCII碼2.指令介紹下麵僅以ASCII碼轉換16進制指令為例說明字串與其他數據類型之間的轉換。ATH,ASCII碼轉換16進制指令。指令盒中有3個運算元:IN,開始字元的位元組地址,位元組類型;LEN,字串的長度,位元組類型,最大長度為255;OUT,輸出目的開始位元組地址,位元組類型。使能輸入有效時,把從IN開始的長度為LEN的ASCII碼轉換為16進制數,並將結果送到OUT開始的位元組進行輸出。3.程式實例以上面的指令為例,條指令的執行結果如表4.28所示,程式如圖4.31所示。表4.28指令ATH執行結果圖4.31字串轉換返回本節
应用指令
5.1.1空操作
NOP,空操作指令。使能輸入有效時,執行空操作指令。空操作指令不影響用戶程式的執行,運算元N是標號,是一個0~255的常數。指令格式:
NOP N例:
NOP 30 程式如下圖5.1所示。返回本節5.1.2結束及暫停
1.結束指令結束指令有兩條:END和MEND。兩條指令在梯形圖中以線圈形式編程。
END,條件結束指令。使能輸入有效時,終止用戶主程序。MEND無條件結束指令。無條件終止用戶程式的執行,返回主程序的第一條指令。用Micro/Win32編程時,編程人員不需手工輸入MEND指令,而是由軟體自動加在主程序結尾。指令格式:END (無運算元)2.暫停指令STOP,暫停指令。使能輸入有效時,該指令使主機CPU的工作方式由RUN切換到STOP方式,從而立即終止用戶程式的執行。STOP指令在梯形圖中以線圈形式編程。指令不含運算元。指令的執行不考慮對特殊標誌寄存器位和能流的影響。指令格式:STOP (無運算元)返回本節5.1.3看門狗
WDR,看門狗複位指令。當使能輸入有效時,執行WDR指令,每執行一次,看門狗定時器就被複位一次。用本指令可用以延長掃描週期,從而可以有效避免看門狗超時錯誤。指令格式:WDR (無運算元)程式實例:指令STOP、END、WDR的應用如圖5.2所示。圖5.2停止、結束、看門狗指令返回本節5.1.4跳轉
1.跳轉指令與跳轉相關的指令有下麵兩條:(1)跳轉指令JMP,跳轉指令。使能輸入有效時,使程式流程跳到同一程式中的指定標號n處執行。執行跳轉指令時,邏輯堆疊的棧頂值總是1。(2)標號指令LBL,標號指令。標記程式段,作為跳轉指令執行時跳轉到的目的位置。運算元n為0~255的字型數據。程式實例:如右圖5.3所示。用增減計數器進行計數,如果當前值小於500,則程式按原順序執行,若當前值超過500,則跳轉到從標號10開始的程式執行。返回本節圖5.3程式跳轉實例5.1.5副程式指令
建立副程式2.副程式調用
3.帶參數的副程式調用
1.建立副程式
可用編程軟體Edit菜單中的Insert選項,選擇Subroutine,以建立或插入一個新的副程式,同時在指令樹窗口可以看到新建的副程式圖示,默認的程式名是SBR_n,編號n從0開始按遞增順序生成,可以在圖示上直接更改副程式的程式名。在指令樹窗口雙擊副程式的圖示就可對它進行編輯。2.副程式調用
(1)副程式調用和返回指令副程式調用
副程式條件返回(2)注意事項
(3)應用實例
圖5.4所示的程式實現用外部控制條件分別調用兩個子程式。圖5.4副程式調用舉例3.帶參數的副程式調用
(1)副程式參數
變數名
變數類型
數據類型
(2)參數副程式調用的規則
(3)變數表使用
(4)程式實例
以上面指令為例,局部變數表分配如表5.1所示,程式段如圖5.5所示。表5.1局部變數表例圖5.5帶參數的副程式調用返回本節5.1.6程式迴圈
迴圈開始
迴圈結束
3.程式實例
圖5.6程式迴圈(1)返回本節圖5.6程式迴圈(2)5.1.7順序控制繼電器
1.順序繼電器指令(1)定義順序段(2)段開始(3)段結束(4)段轉移2.注意事項3.順序結構
4.程式實例
本例是用順序繼電器實現的順序控制中的一個步的程式段,這一步實現的功能是使兩個電機M1和M2起動運行20秒後停止,切換到下一步。程式如圖5.7所示。返回本節5.1.8與ENO指令
AENO,與ENO指令。ENO是梯形圖和功能框圖編程時指令盒的布爾能流輸出端。如果指令盒的能流輸入有效,同時執行沒有錯誤,ENO就置位,將能流向下傳遞。當用梯形圖編程時,且指令盒後串聯一個指令盒或線圈,語句表語言中用AENO指令描述。
指令格式:AENO(無運算元)圖5.8與ENO指令AENO指令只能在語句表中使用,將棧頂值和ENO位的邏輯與運算,運算結果保存到棧頂。程式如圖5.8所示。返回本節5.2特殊指令
5.2.1時鐘指令
5.2.2中斷
5.2.3通信
5.2.4高速計數
5.2.5高速脈衝輸出
5.2.6
PID回路指令
返回本章首頁5.2.1時鐘指令
1.讀即時時鐘TODR,讀即時時鐘指令。當使能輸入有效時,系統讀當前時間和日期,並把它裝入一個8位元組的緩衝區。
2.寫實時時鐘TODW,寫實時時鐘指令。用來設定即時時鐘。當使能輸入有效時,系統將包含當前時間和日期,一個8位元組的緩衝區將裝入時鐘。
時鐘緩衝區的格式如表5.2所示。
表5.2時鐘緩衝區程式實例控制要求:編寫一段程式,可實現讀、寫實時時鐘,並以BCD碼顯示分鐘。時鐘緩衝區從VB100開始。程式中的副程式SBR_0為寫時鐘副程式,將當前時間寫入從VB100開始的8位元組時間緩衝區,時間設置如下表5.3所示。程式實現:讀寫時鐘程式如圖5.9所示。圖5.9讀寫時鐘返回本節5.2.2中斷
1.中斷源(1)中斷源及種類中斷源,即中斷事件發出中斷請求的來源。S7-200可編程序控制器具有最多可達34個中斷源,每個中斷源都分配一個編號用以識別,稱為中斷事件號。這些中斷源大致分為三大類:通信中斷、輸入輸出中斷和時基中斷。(2)中斷優先順序
中斷優先順序由高到低依次是:通信中斷、輸入輸出中斷、時基中斷。每種中斷中的不同中斷事件又有不同的優先權。主機中的所有中斷事件及優先順序如表5.4所示。表5.4中斷事件及優先順序2.中斷調用即調用中斷程式,使系統對特殊的內部或外部事件作出回應。系統回應中斷時自動保存邏輯堆疊、累加器和某些特殊標誌記憶體位,即保護現場。中斷處理完成時,又自動恢復這些單元原來的狀態,即恢復現場。(1)中斷調用指令(2)注意事項(3)程式實例(3)程式實例控制要求:程式實現的功能是調用I0.1輸入點的上升沿中斷,若發現I/O錯誤,則禁止本中斷,用外部條件可以禁止全局中斷。程式實現:本程式如圖5.10所示。圖5.10中斷調用程式3.中斷程式(1)構成中斷程式必須由三部分構成:中斷程式標號、中斷程式指令和無條件返回指令。(2)要求(3)編制方法(4)注意事項返回本節5.2.3通信
通信指令包括:XMT,自由口發送指令RCV,自由口接收指令NETR,網路讀指令NETW,網路寫指令GPA,獲取口地址指令5.2.4高速計數
1.高速計數器介紹2.高速計數指令
3.高速計數器的使用方法
4.應用實例
1.高速計數器介紹(1)數量及編號(2)中斷事件類型
(3)工作模式及輸入點
(1)數量及編號高速計數器在程式中使用時的地址編號用HCn來表示(在非程式中有時用HSCn),HC表編程元件名稱為高速計數器,n為編號。HCn除了表示高速計數器的編號之外,還代表兩方面的含義:高速計數器位和高速計數器當前值。編程時,從所用的指令可以看出是位還是當前值。不同型號的PLC主機,高速計數器的數量對應如表5.7所示。(2)中斷事件類型高速計數器的計數和動作可採用中斷方式進行控制,與CPU的掃描週期關係不大,各種型號的PLC可用的高速計數器的中斷事件大致分為3類:當前值等於預設值中斷、輸入方向改變中斷和外部複位中斷。所有高速計數器都支持當前值等於預設值中斷。每個高速計數器的3種中斷的優先順序由高到低,不同高速計數器之間的優先順序又按編號順序由高到低。具體對應關係如表5.8所示。(3)工作模式及輸入點 工作模式 輸入端連接
高速計數器的工作模式共有12種。以模式4為例,時序如圖5.11所示。圖5.11模式4操作時序選用某個高速計數器在某種工作模式下工作,高速計數器的輸入端不是任意選擇,必須按系統指定的輸入點。如表5.9所示。2.高速計數指令
高速計數器指令有兩條:HDEF和HSC。(1)HDEF指令HDEF,定義高速計數器指令。使能輸入有效時,為指定的高速計數器分配一種工作模式,即用來建立高速計數器與工作模式之間的聯繫。梯形圖指令盒中有兩個數據輸入端:HSC,高速計數器編號,為0~5的常數,位元組型;MODE,工作模式,為0~11的常數,位元組型。(2)HSC指令HSC,高速計數器指令。使能輸入有效時,根據高速計數器特殊記憶體位的狀態,並按照HDEF指令指定的工作模式,設置高速計數器並控制其工作。梯形圖指令盒數據輸入端N:高速計數器編號,為0~5的常數,字型。每個高速計數器都有固定的特殊功能記憶體與之相配合,完成高速計數功能。具體對應關係如表5.11所示。3.高速計數器的使用方法
每個高速計數器都有一個狀態位元組,程式運行時根據運行狀況自動使某些位置位,可以通過程式來讀相關位的狀態,用以作為判斷條件實現相應的操作。狀態位元組中各狀態位的功能如表5.12所示。使用高速計數器時,要按以下步驟進行:(1)選擇計數器及工作模式
(2)設置控制位元組
(3)執行HDEF指令
(4)設定當前值和預設值
(5)設置中斷事件並全局開中斷
(6)執行HSC指令
表5.13控制位含義4.應用實例
要對一高速事件精確控制,通過對脈衝信號進行增計數,計數當前值達到24產生中斷,重新從0計數,對中斷次數進行累計。計數方向用一個外部信號控制,並能實現外部複位。所用的主機型號為CPU221。設計步驟:①選擇高速計數器HSC0,並確定工作方式4。②令SM37=16#F8③執行HDEF指令,輸入端HSC為0,MODE為4。④裝入當前值,令SMD38=0。⑤裝入設定值,令SMD42=24。⑥執行中斷連接ATCH指令,輸入端INT為INT0,EVNT為10。
主程序、初始化副程式和中斷程式分別如圖5.12、圖5.13和圖5.14所示。圖5.12主程序圖5.13初始化副程式圖5.14中斷程式返回本節5.2.5高速脈衝輸出
1.高速脈衝輸出介紹(1)高速脈衝輸出的形式
(2)輸出端子的確定
(3)相關寄存器
(4)脈衝輸出指令
每個高速脈衝發生器對應一定數量特殊標誌寄存器,這些寄存器包括控制位元組寄存器、狀態位元組寄存器和參數數值寄存器,用以控制高速脈衝的輸出形式、反映輸出狀態和參數值。各寄存器分配如表5.14所示。l
狀態位元組每個高速脈衝輸出都有一個狀態位元組,程式運行時根據運行狀況自動使某些位置位,可以通過程式來讀相關位的狀態,用以作為判斷條件實現相應的操作。狀態位元組中各狀態位的功能如表5.15所示。
控制位元組每個高速脈衝輸出都對應一個控制位元組,通過對控制位元組中指定位的編程,可以根據操作要求設置位元組中各控制位,如脈衝輸出允許、PTO/PWM模式選擇、單段/多段選擇、更新方式、時間基準、允許更新等。控制位元組中各控制位的功能如表5.16所示。2.高速脈衝串輸出PTO(1)週期和脈衝數(2)PTO的種類(3)中斷事件類型(4)PTO的使用(1)週期和脈衝數週期:單位可以是微秒μs或毫秒ms;為16位無符號數據,週期變化範圍是50~65535μs或2~65535ms,通常應設定週期值為偶數,若設置為奇數,則會引起輸出波形占空比的輕微失真。如果編程時設定週期單位小於2,系統默認按2進行設置。脈衝數:用雙字長無符號數表示,脈衝數取值範圍是1~4294967295之間。如果編程時指定脈衝數為0,則系統默認脈衝數為1個。(2)PTO的種類PTO方式中,如果要輸出多個脈衝串,允許脈衝串進行排隊,形成管線,當前輸出的脈衝串完成之後,立即輸出新脈衝串,這保證了脈衝串順序輸出的連續性。單段管線
多段管線
包絡表由包絡段數和各段構成。每段長度為8個位元組,包括:脈衝週期值(16位)、週期增量值(16位)和脈衝計數值(32位)。以包絡3段的包絡表為例,包絡表的結構如表5.17所示。(3)中斷事件類型高速脈衝串輸出可以採用中斷方式進行控制,各種型號的PLC可用的高速脈衝串輸出的中斷事件有兩個,如表5.18所示。(4)PTO的使用使用高速脈衝串輸出時,要按以下步驟進行:確定脈衝發生器及工作模式
設置控制位元組寫入週期值、週期增量值和脈衝數裝入包絡的首地址設置中斷事件並全局開中斷執行PLS指令3.應用實例(1)控制要求步進電機轉動過程中,要從A點加速到B點後恒速運行,又從C點開始減速到D點,完成這一過程時用指示燈顯示。電機的轉動受脈衝控制,A點和D點的脈衝頻率為2kHz,B點和C點的頻率為10kHz,加速過程的脈衝數為400個,恒速轉動的脈衝數為4000個,減速過程脈衝數為200個。工作過程如圖5.15所示。圖5.15步進電機工作過程(2)分析確定脈衝發生器及工作模式
設置控制位元組
寫入週期值、週期增量值和脈衝數
裝入包絡表首地址
中斷調用
執行PLS指令
(3)程式實現本控制系統主程序如下圖5.16所示。初始化副程式SBR_1如圖5.17所示。包絡表副程式如圖5.18所示。中斷程式如圖5.19所示。圖5.16主程序圖5.17初始化副程式SBR_1圖5.18包絡表副程式SBR_0(1)圖5.18包絡表副程式SBR_0(2)圖5.19中斷程式4.寬度可調脈衝輸出PWM(1)週期和脈衝寬度
(2)更新方式
(3)PWM的使用
返回本節5.2.6
PID回路指令
PID演算法
2.PID指令
3.應用實例
1.PID演算法
1.PID演算法如果一個PID回路的輸出M(t)是時間的函數,則可以看作是比例項、積分項和微分項三部分之和。即:用數字電腦處理這樣的控制算式,連續的算式必須週期採樣進行離散化,同時各信號也要離散化,公式如下:MPn=Kc*(SPn-PVn)+Kc*Ts/Ti*(SPn-PVn)+MX+Kc*Td/Ts*(PVn-1-PVn)回路表初始化程式實例:如果Kc為0.4,Ts為0.2秒,Ti為30分鐘,Td為15分鐘,則可以建立一個副程式SBR0用來對回路表進行初始化。程式如圖5.20所示。圖5.20回路表初始化副程式SBR02.PID指令
PID,PID回路指令。使能輸入有效時,該指令利用回路表中的輸入資訊和組態資訊,進行PID運算。梯形圖的指令盒中有2個數據輸入端:TBL,回路表的起始地址,是由VB指定的位元組型數據;LOOP,回路號,是0~7的常數。指令影響的特殊標誌記憶體位:SM1.1(溢出)。使能流輸出ENO斷開的出錯條件:SM1.1(溢出);SM4.3(運行時間);0006(間接尋址)。指令格式:PID TBL,LOOP3.應用實例
(1)控制要求有一水箱有一條進水管和一條出水管,進水管的水流量隨時間不斷變化,要求控制出水管閥門的開度,使水箱內的液位始終保持在水滿時液位的一半。系統使用比例積分微分控制,假設採用下列控制參數值:Kc為0.4,Ts為0.2秒,Ti為30分鐘,Td為15分鐘。(2)分析本系統標準化時可採用單極性方案,系統的輸入來自液位計的液位測量採樣;設定值是液位的50%,輸出是單極性模擬量用以控制閥門的開度,可以在0%~100%之間變化。(3)程式實現本程式的主程序如圖5.21所示,回路表初始化副程式SBR0如圖5.22所示,中斷程式INT0如圖5.23所示。圖5.21主程序圖5.22初始化副程式SBR1圖5.23中斷副程式INT0(1)圖5.23中斷副程式INT0(2)返回本節
編程軟體
6.1.1系統要求操作系統:Windows95、Windows98、WindowsME或
Windows2000電腦:IBM486以上相容機,記憶體8MB以上,VGA顯示器,至少50MB以上硬碟空間,Windows支持的滑鼠。通信電纜:PC/PPI電纜(或使用一個通信處理器卡),用來將電腦與PLC連接。返回本節6.1.2軟體安裝STEP7-Micro/WIN32編程軟體在一張光碟上,用戶可按以下步驟安裝:①將光碟插入光碟驅動器。
②系統自動進入安裝嚮導,或單擊“開始”按鈕啟動Windows菜單。
③單擊“運行”菜單。
④按照安裝嚮導完成軟體的安裝。
⑤在安裝結束時,會出現是否重新起動電腦選項。返回本節6.1.3硬體連接可以用PC/PPI電纜建立個人電腦與PLC之間的通信。這是單主機與個人電腦的連接,不需要其他硬體,如數據機和編程設備等。典型的單主機連接及CPU組態如下圖6.1所示。返回本節6.1.4參數設置安裝完軟體並且設置連接好硬體之後,可以按下麵的步驟核實默認的參數:(1)在STEP7-Micro/WIN32運行時單擊通信圖示,或從菜單中選擇View中選擇選項Communications,則會出現一個通信對話框。(2)在對話框中雙擊PC/PPI電纜的圖示,將出現PG/PC介面的對話框,可參見第7章的圖7.14。(3)單擊Properties按鈕,將出現介面屬性對話框,如圖8.16所示。檢查各參數的屬性是否正確,其中通信串列傳輸速率默認值為9600波特。返回本節6.1.5線上聯繫前幾步如果都順利完成,則可以建立與SIMATICS7-200CPU的線上聯繫,步驟如下:(1)在STEP7-Micro/WIN32下,單擊通信圖示,或從菜單中選擇View中選擇選項Communications,則會出現一個通信建立結果對話框,顯示是否連接了CPU主機。(2)雙擊通信建立對話框中的刷新圖示,STEP7-Micro/WIN32將檢查所連接的所有S7-200CPU站,並為每個站建立一個CPU圖示。(3)雙擊要進行通信的站,在通信建立對話框中可以顯示所選站的通信參數。返回本節6.1.6設置修改PLC通信參數如果建立了電腦和PLC的線上聯繫,就可利用軟體檢查、設置和修改PLC的通信參數。步驟如下:(1)單擊引導條中的系統塊圖示,或從主菜單中選擇View菜單中的SystemBlock選項,將出現系統塊對話框。(2)單擊Port(s)選項卡。檢查各參數,認為無誤單擊OK確認。如果需要修改某些參數,可以先進行有關的修改,然後單擊Apply按鈕,再單擊OK確認後退出。(3)單擊工具條中的下裝圖示,即可把修改後的參數下裝到PLC主機。返回本節6.2功能6.2.1基本功能
6.2.2外觀
6.2.3各部分功能
6.2.4系統組態
返回本章首頁6.2.1基本功能程式編輯中的語法檢查功能可以提前避免一些語法和數據類型方面的錯誤。梯形圖和語句表的錯誤檢查結果如下圖6.2所示。軟體功能的實現可以在聯機工作方式(線上方式)下進行,部分功能的實現也可以在離線工作方式下進行。聯機方式:有編程軟體的電腦或編程器與PLC連接,此時允許兩者之間作直接的通信。有關聯機的方法可參見本章第1節。離線方式:有編程軟體的電腦或編程器與PLC斷開連接,此時能完成大部分基本功能。如編程、編譯和調試程式、系統組態等。返回本節6.2.2外觀啟動STEP7-Micro/WIN32編程軟體,其主介面外觀如圖6.3所示。介面一般可分以下幾個區:菜單條(包含8個主菜單項)、工具條(快捷按鈕)、導引條(快捷操作窗口)、指令樹(快捷操作窗口)、輸出
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年个人房屋装修合同样本
- 2025合同模板会员入会合同细则范本
- 教育机构中如何通过岩棉防火系统提升安全性
- 机械采购类供货方案、售后方案(技术方案)
- 二零二四年图书馆图书采购合同:高校图书馆外借服务协议3篇
- 合同授权委托管理制度
- 2025年湘教版选择性必修1物理下册月考试卷含答案
- 二零二五年度生态农业综合开发项目合同范本3篇
- 2025年人教新课标高一地理上册月考试卷
- 2025年冀教新版九年级语文下册月考试卷
- 五年级上册寒假作业答案(人教版)
- 2025年山东浪潮集团限公司招聘25人高频重点提升(共500题)附带答案详解
- 2024年财政部会计法律法规答题活动题目及答案一
- 2025年江西省港口集团招聘笔试参考题库含答案解析
- (2024年)中国传统文化介绍课件
- 液化气安全检查及整改方案
- 《冠心病》课件(完整版)
- 2024年云网安全应知应会考试题库
- 公园保洁服务投标方案
- 光伏电站项目合作开发合同协议书三方版
- 2024年秋季新沪教版九年级上册化学课件 第2章 空气与水资源第1节 空气的组成
评论
0/150
提交评论