S7-200系列的基本邏輯指令與FX系列和CPM1A系列基本邏輯指令大體相似,編程和梯形圖表達(dá)方式也相差不多,這里列表表示S7-200系列的基本邏輯指令(見表)。
表 S7-200系列的基本邏輯指令
指令名稱 |
指令符 |
功能 |
操作數(shù) |
取 |
LD bit |
讀入邏輯行或電路塊的**個(gè)常開接點(diǎn) |
Bit: I,Q,M,SM,T,C,V,S |
取反 |
LDN bit |
讀入邏輯行或電路塊的**個(gè)常閉接點(diǎn) | |
與 |
A bit |
串聯(lián)一個(gè)常開接點(diǎn) | |
與非 |
AN bit |
串聯(lián)一個(gè)常閉接點(diǎn) | |
或 |
O bit |
并聯(lián)一個(gè)常開接點(diǎn) | |
或非 |
ON bit |
并聯(lián)一個(gè)常閉接點(diǎn) | |
電路塊與 |
ALD |
串聯(lián)一個(gè)電路塊 |
無 |
電路塊或 |
OLD |
并聯(lián)一個(gè)電路塊 | |
輸出 |
= bit |
輸出邏輯行的運(yùn)算結(jié)果 |
Bit:Q,M,SM,T,C,V,S |
置位 |
S bit,N |
置繼電器狀態(tài)為接通 |
Bit: Q,M,SM,V,S |
復(fù)位 |
R bit,N |
使繼電器復(fù)位為斷開 |
S7-200系列PLC的比較指令
在SIEMENS S7-200的編程軟件STEP-7中,有專門的比較指令:IN1與IN2比較,比較的數(shù)據(jù)類型可以是B、I(W)、D、R,即字節(jié)、字整數(shù)、雙字整數(shù)和實(shí)數(shù);還可以有其他的比較式:>、<、≥、≤、<>等等。當(dāng)滿足比較等式,則該觸點(diǎn)閉合。
與LMODSOFT指令對(duì)照:在LMODSOFT中,沒有直接的數(shù)的比較指令,但SUB指令可以通過其執(zhí)行減法功能后的三個(gè)輸出端的狀態(tài)實(shí)現(xiàn)整數(shù)的比較功能。
若與LMODSOFT 中的SUB指令對(duì)應(yīng),則在STEP-7中應(yīng)有三個(gè)比較指令: >、=、< 來分別對(duì)應(yīng)SUB 指令的三個(gè)輸出;若還要對(duì)應(yīng)≥、≤、或<>,則根據(jù)SUB指令三個(gè)輸出端的不同組合,均可找到對(duì)應(yīng)的比較指令。
比如:①(30007)>(40030)
②(30007)=(40030)
③ (30007)<(40030)
①+②(30007)≥
②+③(30007)≤(40030)
①+③(30007)<>(40030)
S7-200系列PLC的定時(shí)器指令
類型、編號(hào)及分辨率
TON——接通延時(shí)
TONR——有記憶接通延時(shí)
TOF——斷開延時(shí)
3種分辨率(時(shí)基):1ms、10ms、100ms——分別對(duì)應(yīng)不同的定時(shí)器號(hào)
定時(shí)器6個(gè)要素:
指令格式(時(shí)基、編號(hào)等) 預(yù)置值——PT
使能——IN 復(fù)位——3種定時(shí)器不同
當(dāng)前值——Txxx 定時(shí)器狀態(tài)(位)——可由觸點(diǎn)顯示
定時(shí)值=時(shí)基×預(yù)置值PT。由于定時(shí)器的計(jì)時(shí)間隔與程序的掃描周期并不同步,定時(shí)器可能在其時(shí)基(1ms、10ms、100ms)內(nèi)任何時(shí)間啟動(dòng),所以,未避免計(jì)時(shí)時(shí)間丟失,一般要求設(shè)置PT預(yù)置值必須大于最小需要的時(shí)間間隔。例如:使用10ms時(shí)基定時(shí)器實(shí)現(xiàn)140ms延時(shí)(時(shí)間間隔),則PT應(yīng)設(shè)置為15(10ms×15=150ms)。
2) 功能
(1) 接通延時(shí)定時(shí)器TON——一般用于單一時(shí)間間隔的定時(shí)
指令格式:見圖,編號(hào)與分辨率及定時(shí)器類型有關(guān)。(見教材P221:Fig8-3-3a)
使能:——IN: I2.0 =“1”
當(dāng)前值——T33,當(dāng)在線(Online)時(shí),此處顯示當(dāng)前值
預(yù)置值——PT=3,即定時(shí)時(shí)間=10ms×3=30ms
復(fù)位——IN:I2.0 = “0”
定時(shí)器狀態(tài)(位)——“1”或“0”
與MODICON PLC的定時(shí)器指令對(duì)照:
區(qū)別:對(duì)MODICON PLC,當(dāng)10001=“0” ,10002=“1”時(shí),定時(shí)器當(dāng)前值保持;當(dāng)計(jì)時(shí)時(shí)間到,即(40040)= 30時(shí),只要10002=“1”,定時(shí)器也是保持
對(duì)S7-200 PLC, 只要I0.0=“1”,即計(jì)時(shí),當(dāng)T33當(dāng)前值=3時(shí),定時(shí)器繼續(xù)計(jì)時(shí),直至I0.0=“0”,定時(shí)器復(fù)位(相當(dāng)于10002=“0” )
(1) 斷開延時(shí)定時(shí)器TOF——一般用于故障時(shí)間后的時(shí)間延時(shí)
指令格式:見圖,編號(hào)與分辨率及定時(shí)器類型有關(guān)。
注意: 定時(shí)器狀態(tài)(位)=“1”(置位)及當(dāng)前值復(fù)0與使能.I0.0=“1”同步;計(jì)時(shí)開始與使能I0.0從“1”→“0”(斷開)同步,且當(dāng)計(jì)時(shí)時(shí)間到而使能仍=“0”時(shí),當(dāng)前值保持。
(2) 有記憶接通延時(shí)定時(shí)器TONR——一般用于累計(jì)許多時(shí)間間隔(指令功能及時(shí)序圖見教材P222:Fig8-3-3c)
指令格式:見圖,編號(hào)與分辨率及定時(shí)器類型有關(guān)。
注意: 定時(shí)器狀態(tài)(位)=“1”(置位)及當(dāng)前值復(fù)0與使能.I0.0=“1”同步;計(jì)時(shí)開始與使能I0.0從“1”→“0”(斷開)同步,且當(dāng)計(jì)時(shí)時(shí)間到而使能仍=“0”時(shí),當(dāng)前值保持。
(3) 有記憶接通延時(shí)定時(shí)器TONR——一般用于累計(jì)許多時(shí)間間隔
S7-200系列PLC的計(jì)數(shù)器指令
1)類型及編號(hào)
CTU——增計(jì)數(shù)
CTD——減計(jì)數(shù) C0~C255
CTUD——增減計(jì)數(shù)
計(jì)數(shù)器6個(gè)要素: 指令格式(類型、編號(hào)等) 預(yù)置值——PV
使能——CU、CD 復(fù)位——R、LD
當(dāng)前值——Cxxx 計(jì)數(shù)器狀態(tài)(位)——與定時(shí)器類似
2)功能、時(shí)序圖及應(yīng)用示例
此例為一個(gè)增減計(jì)數(shù)器的應(yīng)用示例,其與MODICON PLC計(jì)數(shù)器指令的比較,同學(xué)可自己進(jìn)行,并注意到,計(jì)數(shù)器指令的使能均是采樣上升沿(“0” →“1” )。
S7-200系列PLC其它常用指令
1.脈沖產(chǎn)生指令EU/ED的應(yīng)用
EU指令在EU指令前的邏輯運(yùn)算結(jié)果由OFF到ON時(shí)就產(chǎn)生一個(gè)寬度為一個(gè)掃描周期的脈沖,驅(qū)動(dòng)其后面的輸出線圈。
2 .邏輯堆棧的操作
LPS為進(jìn)棧操作,LRD為讀棧操作,LPP為出棧操作。
S7-200系列PLC中有一個(gè)9層堆棧,用于處理邏輯運(yùn)算結(jié)果,稱為邏輯堆棧。
3 .NOT、NOP和MEND指令
NOT、NOP及MEND指令的形式及功能如表4-19所示。
表4-19 NOT、NOP及MEND指令的形式及功能
STL |
功能 |
操作數(shù) |
NOT |
邏輯結(jié)果取反 |
— |
NOP |
空操作 |
— |
MEND |
無條件結(jié)束 |
— |
NOT為邏輯結(jié)果取反指令,在復(fù)雜邏輯結(jié)果取反時(shí)為用戶提供方便。NOP為空操作,對(duì)程序沒有實(shí)質(zhì)影響。MEND為無條件結(jié)束指令,在編程結(jié)束時(shí)一定要寫上該指令,否則會(huì)出現(xiàn)編譯錯(cuò)誤。調(diào)試程序時(shí),在程序的適當(dāng)位置插入MEND指令可以實(shí)現(xiàn)程序的分段調(diào)試。
4.比較指令
比較指令是將兩個(gè)操作數(shù)按規(guī)定的條件作比較,條件成立時(shí),觸點(diǎn)就閉合。比較運(yùn)算符有:=、>=、<=、>、<和<>。
(1)字節(jié)比較 字節(jié)比較用于比較兩個(gè)字節(jié)型整數(shù)值INl和IN2的大小,字節(jié)比較是無符號(hào)的。比較式可以是LDB、AB或OB后直接加比較運(yùn)算符構(gòu)成。如:LDB=、AB<>、OB>=等。
整數(shù)INl和IN2的尋址范圍:VB、IB、QB、MB、SB、SMB、LB、*VD、*AC、*LD和常數(shù)。
指令格式例如: LDB= VBl0,VBl2
(2)整數(shù)比較 整數(shù)比較用于比較兩個(gè)一字長(zhǎng)整數(shù)值INl和IN2的大小,整數(shù)比較是有符號(hào)的(整數(shù)范圍為16#8000和16#7FFF之間)。比較式可以是LDW、AW或OW后直接加比較運(yùn)算符構(gòu)成。如:LDW=、AW<>。OW>=等。
整數(shù)INl和IN2的尋址范圍:VW、IW、QW、MW、SW、SMW、LW、AIW、T、C、AC、*VD、*AC、*LD和常數(shù)。
指令格式例如: LDW= VWl0,VWl2
(3)雙字整數(shù)比較 雙字整數(shù)比較用于比較兩個(gè)雙字長(zhǎng)整數(shù)值INl和IN2的大小,雙字整數(shù)比較是有符號(hào)的(雙字整數(shù)范圍為16#80000000和16#7FFFFFFF之間)。比較式可以是LDD、AD或OD后直接加比較運(yùn)算符構(gòu)成。如:LDD=、AD<>、OD>=等。
雙字整數(shù)INl和IN2的尋址范圍:VD、ID、QD、MD、SD、SMD、LD、HC、AC、*VD、*AC、*LD和常數(shù)。
指令格式例如: LDD= VDl0,VDl2
(4)實(shí)數(shù)比較 實(shí)數(shù)比較用于比較兩個(gè)雙字長(zhǎng)實(shí)數(shù)值INl和IN2的大小,實(shí)數(shù)比較是有符號(hào)的(負(fù)實(shí)數(shù)范圍為-1.175495E-38和-3.402823E+38,正實(shí)數(shù)范圍為+1.175495E-38和+3.402823E+38)。比較式可以是LDR、AR或OR后直接加比較運(yùn)算符構(gòu)成。如:LDR=、AR<>、OR>=等。
實(shí)數(shù)INl和IN2的尋址范圍:VD、ID、QD、MD、SD、SMD、LD、AC、*VD、*AC、*LD和常數(shù)。
指令格式例如: LDR= VDl0,VDl2
S7-200PLC功能指令概述
般的邏輯控制系統(tǒng)用軟繼電器、定時(shí)器和計(jì)數(shù)器及基本指令就可以實(shí)現(xiàn)。利用功能指令可以開發(fā)出更復(fù)雜的控制系統(tǒng),以致構(gòu)成網(wǎng)絡(luò)控制系統(tǒng)。這些功能指令實(shí)際上是廠商為滿足各種客戶的特殊需要而開發(fā)的通用子程序。功能指令的豐富程度及其合用的方便程度是衡量PLC性能的一個(gè)重要指標(biāo)。
S7-200的功能指令很豐富,大致包括這幾方面:算術(shù)與邏輯運(yùn)算、傳送、移位與循環(huán)移位、程序流控制、數(shù)據(jù)表處理、PID指令、數(shù)據(jù)格式變換、高速處理、通信以及實(shí)時(shí)時(shí)鐘等。
功能指令的助記符與匯編語言相似,略具計(jì)算機(jī)知識(shí)的人學(xué)習(xí)起來也不會(huì)有太大困難。但S7-200系列PLC功能指令畢竟太多,一般讀者不必準(zhǔn)確記憶其詳盡用法,需要時(shí)可可查閱產(chǎn)品手冊(cè)。
S7-200PLC四則運(yùn)算指令介紹
四則運(yùn)算指令如表4-20所示。
表4-20 四則運(yùn)算指令
名稱 |
指令格式 (語句表) |
功能 |
操作數(shù)尋址范圍 |
加法指令 |
+I IN1,OUT |
兩個(gè)16位帶符號(hào)整數(shù)相加,得到一個(gè)16位帶符號(hào)整數(shù)。 執(zhí)行結(jié)果:IN1+OUT=OUT(在LAD和FBD中為:IN1+IN2=OUT) |
IN1,IN2,OUT:VW,IW,QW,MW,SW,SMW,LW, T,C,AC,*VD,*AC,*LD IN1和IN2還可以是AIW和常數(shù) |
+D IN1,IN2 |
兩個(gè)32位帶符號(hào)整數(shù)相加,得到一個(gè)32位帶符號(hào)整數(shù)。 執(zhí)行結(jié)果:IN1+OUT=OUT(在LAD和FBD中為:IN1+IN2=OUT) |
IN1,IN2,OUT:VD,ID,QD,MD,SD,SMD,LD,AC,*VD,*AC,*LD IN1和IN2還可以是HC和常數(shù) | |
+R IN1,OUT |
兩個(gè)32位實(shí)數(shù)相加,得到一個(gè)32位實(shí)數(shù)。 執(zhí)行結(jié)果:IN1+OUT=OUT(在LAD和FBD中為:IN1+IN2=OUT) |
IN1,IN2,OUT:VD,ID,QD,MD,SD,SMD,LD,AC,*VD,*AC,*LD IN1和IN2還可以常數(shù) | |
減法指令 |
-I IN1,OUT |
兩個(gè)16位帶符號(hào)整數(shù)相減,得到一個(gè)16位帶符號(hào)整數(shù)。 執(zhí)行結(jié)果:OUT-IN1=OUT(在LAD和FBD中為:IN1-IN2=OUT) |
IN1,IN2,OUT:VW,IW,QW,MW,SW,SMW,LW, T,C,AC,*VD,*AC,*LD IN1和IN2還可以是AIW和常數(shù) |
-D IN1,OUT |
兩個(gè)32位帶符號(hào)整數(shù)相減,得到一個(gè)32位帶符號(hào)整數(shù)。 執(zhí)行結(jié)果:OUT-IN1=OUT(在LAD和FBD中為:IN1-IN2=OUT) |
IN1,IN2,OUT:VD,ID,QD,MD,SD,SMD,LD,AC,*VD,*AC,*LD IN1和IN2還可以是HC和常數(shù) | |
-R IN1,OUT |
兩個(gè)32位實(shí)數(shù)相加,得到一個(gè)32位實(shí)數(shù)。 執(zhí)行結(jié)果:OUT-IN1=OUT(在LAD和FBD中為:IN1-IN2=OUT) |
IN1,IN2,OUT:VD,ID,QD,MD,SD,SMD,LD,AC,*VD,*AC,*LD IN1和IN2還可以常數(shù) | |
乘法指令 |
*I IN1,OUT |
兩個(gè)16位符號(hào)整數(shù)相乘,得到一個(gè)16整數(shù)。 執(zhí)行結(jié)果:IN1*OUT=OUT(在LAD和FBD中為:IN1*IN2=OUT) |
IN1,IN2,OUT:VW,IW,QW,MW,SW,SMW,LW, T,C,AC,*VD,*AC,*LD IN1和IN2還可以是AIW和常數(shù) |
MUL IN1,OUT |
兩個(gè)16位帶符號(hào)整數(shù)相乘,得到一個(gè)32位帶符號(hào)整數(shù)。 執(zhí)行結(jié)果:IN1*OUT=OUT(在LAD和FBD中為:IN1*IN2=OUT) |
IN1,IN2:VW,IW,QW,MW,SW,SMW,LW,AIW,T,C,AC,*VD,*AC,*LD和常數(shù) OUT:VD,ID,QD,MD,SD,SMD,LD,AC,*VD,*AC,*LD | |
*D IN1,OUT |
兩個(gè)32位帶符號(hào)整數(shù)相乘,得到一個(gè)32位帶符號(hào)整數(shù)。 執(zhí)行結(jié)果:IN1*OUT=OUT(在LAD和FBD中為:IN1*IN2=OUT) |
IN1,IN2,OUT:VD,ID,QD,MD,SD,SMD,LD,AC,*VD,*AC,*LD IN1和IN2還可以是HC和常數(shù) | |
*R IN1,OUT |
兩個(gè)32位實(shí)數(shù)相乘,得到一個(gè)32位實(shí)數(shù)。 執(zhí)行結(jié)果:IN1*OUT=OUT(在LAD和FBD中為:IN1*IN2=OUT) |
IN1,IN2,OUT:VD,ID,QD,MD,SD,SMD,LD,AC,*VD,*AC,*LD IN1和IN2還可以是常數(shù) | |
除法指令 |
/I IN1,OUT |
兩個(gè)16位帶符號(hào)整數(shù)相除,得到一個(gè)16位帶符號(hào)整數(shù)商,不保留余數(shù)。 執(zhí)行結(jié)果:OUT/IN1=OUT(在LAD和FBD中為:IN1/IN2=OUT) |
IN1,IN2,OUT:VW,IW,QW,MW,SW,SMW,LW, T,C,AC,*VD,*AC,*LD IN1和IN2還可以是AIW和常數(shù) |
DIV IN1,OUT |
兩個(gè)16位帶符號(hào)整數(shù)相除,得到一個(gè)32位結(jié)果,其中低16位為商,高16位為結(jié)果。 執(zhí)行結(jié)果:OUT/IN1=OUT(在LAD和FBD中為:IN1/IN2=OUT) |
IN1,IN2:VW,IW,QW,MW,SW,SMW,LW,AIW,T,C,AC,*VD,*AC,*LD和常數(shù) OUT:VD,ID,QD,MD,SD,SMD,LD,AC,*VD,*AC,*LD | |
/D IN1,OUT |
兩個(gè)32位帶符號(hào)整數(shù)相除,得到一個(gè)32位整數(shù)商,不保留余數(shù)。 執(zhí)行結(jié)果:OUT/IN1=OUT(在LAD和FBD中為:IN1/IN2=OUT) |
IN1,IN2,OUT:VD,ID,QD,MD,SD,SMD,LD,AC,*VD,*AC,*LD IN1和IN2還可以是HC和常數(shù) | |
/R IN1,OUT |
兩個(gè)32位實(shí)數(shù)相除,得到一個(gè)32位實(shí)數(shù)商。 執(zhí)行結(jié)果:OUT/IN1=OUT(在LAD和FBD中為:IN1/IN2=OUT) |
IN1,IN2,OUT:VD,ID,QD,MD,SD,SMD,LD,AC,*VD,*AC,*LD IN1和IN2還可以是常數(shù) | |
數(shù)學(xué)函數(shù)指令 |
SQRT IN,OUT |
把一個(gè)32位實(shí)數(shù)(IN)開平方,得到32位實(shí)數(shù)結(jié)果(OUT) |
IN,OUT:VD,ID,QD,MD,SD,SMD,LD,AC,*VD,*AC,*LD IN還可以是常數(shù) |
LN IN,OUT |
對(duì)一個(gè)32位實(shí)數(shù)(IN)取自然對(duì)數(shù),得到32位實(shí)數(shù)結(jié)果(OUT) | ||
EXP IN,OUT |
對(duì)一個(gè)32位實(shí)數(shù)(IN)取以e為底數(shù)的指數(shù),得到32位實(shí)數(shù)結(jié)果(OUT) | ||
SIN IN,OUT |
分別對(duì)一個(gè)32位實(shí)數(shù)弧度值(IN)取正弦、余弦、正切,得到32位實(shí)數(shù)結(jié)果(OUT) | ||
COS IN,OUT | |||
TAN IN,OUT | |||
增減指令 |
INCB OUT |
將字節(jié)無符號(hào)輸入數(shù)加1 執(zhí)行結(jié)果:OUT+1=OUT(在LAD和FBD中為:IN+1=OUT) |
IN,OUT:VB,IB,QB,MB,SB,SMB,LB,AC,*VD,*AC,*LD IN還可以是常數(shù) |
DECB OUT |
將字節(jié)無符號(hào)輸入數(shù)減1 執(zhí)行結(jié)果:OUT-1=OUT(在LAD和FBD中為:IN-1=OUT) | ||
INCW OUT |
將字(16位)有符號(hào)輸入數(shù)加1 執(zhí)行結(jié)果:OUT+1=OUT(在LAD和FBD中為:IN+1=OUT) |
IN,OUT:VW,IW,QW,MW,SW,SMW,LW,T,C,AC,*VD,*AC,*LD IN還可以是AIW和常數(shù) | |
DECW OUT |
將字(16位)有符號(hào)輸入數(shù)減1 執(zhí)行結(jié)果:OUT-1=OUT(在LAD和FBD中為:IN-1=OUT) | ||
INCD OUT |
將雙字(32位)有符號(hào)輸入數(shù)加1 執(zhí)行結(jié)果:OUT+1=OUT(在LAD和FBD中為:IN+1=OUT) |
IN,OUT:VD,ID,QD,MD,SD,SMD,LD,AC,*VD,*AC,*LD IN還可以是HC和常數(shù) | |
DECD OUT |
將字(32位)有符號(hào)輸入數(shù)減1 執(zhí)行結(jié)果:OUT-1=OUT(在LAD和FBD中為:IN-1=OUT) |
S7-200PLC邏輯運(yùn)算指令
邏輯運(yùn)算指令如表4-21所示。
表4-21 邏輯運(yùn)算指令
名稱 |
指令格式 (語句表) |
功能 |
操作數(shù) |
字節(jié)邏輯運(yùn)算指令 |
ANDB IN1,OUT |
將字節(jié)IN1和OUT按位作邏輯與運(yùn)算,OUT輸出結(jié)果 |
IN1,IN2,OUT:VB,IB,QB,MB,SB,SMB,LB,AC,*VD,*AC,*LD IN1和IN2還可以是常數(shù) |
ORB IN1,OUT |
將字節(jié)IN1和OUT按位作邏輯或運(yùn)算,OUT輸出結(jié)果 | ||
XORB IN1,OUT |
將字節(jié)IN1和OUT按位作邏輯異或運(yùn)算,OUT輸出結(jié)果 | ||
INVB OUT |
將字節(jié)OUT按位取反,OUT輸出結(jié)果 | ||
字邏輯運(yùn)算指令 |
ANDW IN1,OUT |
將字IN1和OUT按位作邏輯與運(yùn)算,OUT輸出結(jié)果 |
IN1,IN2,OUT:VW,IW,QW,MW,SW,SMW,LW,T,C,AC,*VD,*AC,*LD IN1和IN2還可以是AIW和常數(shù) |
ORW IN1,OUT |
將字IN1和OUT按位作邏輯或運(yùn)算,OUT輸出結(jié)果 | ||
XORW IN1,OUT |
將字IN1和OUT按位作邏輯異或運(yùn)算,OUT輸出結(jié)果 | ||
INVW OUT |
將字OUT按位取反,OUT輸出結(jié)果 | ||
雙字邏輯運(yùn)算指令 |
ANDD IN1,OUT |
將雙字IN1和OUT按位作邏輯與運(yùn)算,OUT輸出結(jié)果 |
IN1,IN2,OUT:VD,ID,QD,MD,SD,SMD,LD,AC,*VD,*AC,*LD IN1和IN2還可以是HC和常數(shù) |
ORD IN1,OUT |
將雙字IN1和OUT按位作邏輯或運(yùn)算,OUT輸出結(jié)果 | ||
XORD IN1,OUT |
將雙字IN1和OUT按位作邏輯異或運(yùn)算,OUT輸出結(jié)果 | ||
INVD OUT |
將雙字OUT按位取反,OUT輸出結(jié)果 |
S7-200PLC數(shù)據(jù)傳送指令
數(shù)據(jù)傳送指令如表4-22所示。
表4-22 數(shù)據(jù)傳送指令
名稱 |
指令格式 (語句表) |
功能 |
操作數(shù) |
|
單一傳送指令 |
MOVB IN,OUT |
將IN的內(nèi)容拷貝到OUT中 IN和OUT的數(shù)據(jù)類型應(yīng)相同,可分別為字,字節(jié),雙字,實(shí)數(shù) |
IN,OUT:VB,IB,QB,MB,SB,SMB,LB,AC,*VD,*AC,*LD IN還可以是常數(shù) |
|
MOVW IN,OUT |
IN,OUT:VW,IW,QW,MW,SW,SMW,LW,T,C,AC,*VD,*AC,*LD IN還可以是AIW和常數(shù) OUT還可以是AQW |
|||
MOVD IN,OUT |
IN,OUT:VD,ID,QD,MD,SD,SMD,LD,AC,*VD,*AC,*LD IN還可以是HC,常數(shù),&VB,&IB,&QB,&MB,&T,&C |
|||
MOVR IN,OUT |
IN,OUT:VD,ID,QD,MD,SD,SMD,LD,AC,*VD,*AC,*LD IN還可以是常數(shù) |
|||
BIR IN,OUT |
立即讀取輸入IN的值,將結(jié)果輸出到OUT |
IN:IB OUT:VB,IB,QB,MB,SB,SMB,LB,AC,*VD,*AC,*LD |
||
BIW IN,OUT |
立即將IN單元的值寫到OUT所指的物理輸出區(qū) |
IN:VB,IB,QB,MB,SB,SMB,LB,AC,*VD,*AC,*LD和常數(shù) OUT:QB |
||
塊傳送指令 |
BMB IN,OUT,N |
將從IN開始的連續(xù)N個(gè)字節(jié)數(shù)據(jù)拷貝到從OUT開始的數(shù)據(jù)塊 N的有效范圍是1~255 |
IN,OUT:VB,IB,QB,MB,SB,SMB,LB,*VD,*AC,*LD N:VB,IB,QB,MB,SB,SMB,LB,AC,*VD,*AC,*LD和常數(shù) |
|
BMW IN,OUT,N |
將從IN開始的連續(xù)N個(gè)字?jǐn)?shù)據(jù)拷貝到從OUT開始的數(shù)據(jù)塊 N的有效范圍是1~255 |
IN,OUT:VW,IW,QW,MW,SW,SMW,LW,T,C,*VD,*AC,*LD IN還可以是AIW OUT還可以是AQW N:VB,IB,QB,MB,SB,SMB,LB,AC,*VD,*AC,*LD和常數(shù) |
||
BMD IN,OUT,N |
將從IN開始的連續(xù)N個(gè)雙字?jǐn)?shù)據(jù)拷貝到從OUT開始的數(shù)據(jù)塊 N的有效范圍是1~255 |
IN,OUT:VD,ID,QD,MD,SD,SMD,LD, *VD,*AC,*LD N:VB,IB,QB,MB,SB,SMB,LB,AC,*VD,*AC,*LD和常數(shù) |
S7-200PLC移位與循環(huán)移位指令
移位與循環(huán)移位指令如表4-23所示。
表4-23 移位與循環(huán)移位指令
名稱 |
指令格式 (語句表) |
功能 |
操作數(shù) |
字節(jié)移位指令 |
SRB OUT,N |
將字節(jié)OUT右移N位,最左邊的位依次用0填充 |
IN,OUT,N:VB,IB,QB,MB,SB,SMB,LB,AC,*VD,*AC,*LD IN和N還可以是常數(shù) |
SLB OUT,N |
將字節(jié)OUT左移N位,最右邊的位依次用0填充 | ||
RRB OUT,N |
將字節(jié)OUT循環(huán)右移N位,從最右邊移出的位送到OUT的最左位 | ||
RLB OUT,N |
將字節(jié)OUT循環(huán)左移N位,從最左邊移出的位送到OUT的最右位 | ||
字移位指令 |
SRW OUT,N |
將字OUT右移N位,最左邊的位依次用0填充 |
IN,OUT:VW,IW,QW,MW,SW,SMW,LW,T,C,AC,*VD,*AC,*LD IN還可以是AIW和常數(shù) N:VB,IB,QB,MB,SB,SMB,LB,AC,*VD,*AC,*LD,常數(shù) |
SLW OUT,N |
將字OUT左移N位,最右邊的位依次用0填充 | ||
RRW OUT,N |
將字OUT循環(huán)右移N位,從最右邊移出的位送到OUT的最左位 | ||
RLW OUT,N |
將字OUT循環(huán)左移N位,從最左邊移出的位送到OUT的最右位 | ||
雙字移位指令 |
SRD OUT,N |
將雙字OUT右移N位,最左邊的位依次用0填充 |
IN,OUT:VD,ID,QD,MD,SD,SMD,LD,AC,*VD,*AC,*LD IN還可以是HC和常數(shù) N:VB,IB,QB,MB,SB,SMB,LB,AC,*VD,*AC,*LD,常數(shù) |
SLD OUT,N |
將雙字OUT左移N位,最右邊的位依次用0填充 | ||
RRD OUT,N |
將雙字OUT循環(huán)右移N位,從最右邊移出的位送到OUT的最左位 | ||
RLD OUT,N |
將雙字OUT循環(huán)左移N位,從最左邊移出的位送到OUT的最右位 | ||
位移位寄存器指令 |
SHRB DATA,S_BIT,N |
將DATA的值(位型)移入移位寄存器;S_BIT**移位寄存器的**位,N**移位寄存器的長(zhǎng)度(正向移位=N,反向移位=-N) |
DATA,S_BIT:I,Q,M,SM,T,C,V,S,L N:VB,IB,QB,MB,SB,SMB,LB,AC,*VD,*AC,*LD,常數(shù) |
S7-200PLC交換和填充指令
交換和填充指令如表4-24所示。
表4-24 交換和填充指令
名稱 |
指令格式 (語句表) |
功能 |
操作數(shù) |
換字節(jié)指令 |
SWAP IN |
將輸入字IN的高位字節(jié)與低位字節(jié)的內(nèi)容交換,結(jié)果放回IN中 |
IN:VW,IW,QW,MW,SW,SMW,LW,T,C,AC,*VD,*AC,*LD |
填充指令 |
FILL IN,OUT,N |
用輸入字IN填充從OUT開始的N個(gè)字存儲(chǔ)單元 N的范圍為1~255 |
IN,OUT:VW,IW,QW,MW,SW,SMW,LW,T,C,AC,*VD,*AC,*LD IN還可以是AIW和常數(shù) OUT還可以是AQW N:VB,IB,QB,MB,SB,SMB,LB,AC,*VD,*AC,*LD,常數(shù) |
S7-200PLC 表操作指令
表操作指令如表4-25所示。
表4-25 表操作指令
名稱 |
指令格式 (語句表) |
功能 |
操作數(shù) |
表存數(shù)指令 |
ATT DATA,TABLE |
將一個(gè)字型數(shù)據(jù)DATA添加到表TABLE的末尾。EC值加1 |
DATA,TABLE:VW,IW,QW,MW,SW,SMW,LW,T,C,AC,*VD,*AC,*LD DATA還可以是AIW,AC和常數(shù) |
表取數(shù)指令 |
FIFO TABLE,DATA |
將表TABLE的**個(gè)字型數(shù)據(jù)刪除,并將它送到DATA**的單元。表中其余的數(shù)據(jù)項(xiàng)都向前移動(dòng)一個(gè)位置,同時(shí)實(shí)際填表數(shù)EC值減1 |
DATA,TABLE:VW,IW,QW,MW,SW,SMW,LW,T,C, *VD,*AC,*LD DATA還可以是AQW和AC |
LIFO TABLE,DATA |
將表TABLE的最后一個(gè)字型數(shù)據(jù)刪除,并將它送到DATA**的單元。剩余數(shù)據(jù)位置保持不變,同時(shí)實(shí)際填表數(shù)EC值減1 | ||
表查找指令 |
FND= TBL,PTN,INDEX FND<> TBL,PTN,INDEX FND< TBL,PTN,INDEX FND> TBL,PTN,INDEX |
搜索表TBL,從INDEX**的數(shù)據(jù)項(xiàng)開始,用給定值PTN檢索出符合條件(=,<>,<,>)的數(shù)據(jù)項(xiàng) 如果找到一個(gè)符合條件的數(shù)據(jù)項(xiàng),則INDEX指明該數(shù)據(jù)項(xiàng)在表中的位置。如果一個(gè)也找不到,則INDEX的值等于數(shù)據(jù)表的長(zhǎng)度。為了搜索下一個(gè)符合的值,在再次使用該指令之前,必須先將INDEX加1 |
TBL:VW,IW,QW,MW,SMW,LW,T,C, *VD,*AC,*LD PTN,INDEX:VW,IW,QW,MW,SW,SMW,LW,T,C,AC, *VD,*AC,*LD PTN還可以是AIW和AC |
S7-200PLC 數(shù)據(jù)轉(zhuǎn)換指令
數(shù)據(jù)轉(zhuǎn)換指令如表4-26所示。
表4-26 數(shù)據(jù)轉(zhuǎn)換指令
名稱 |
指令格式 (語句表) |
功能 |
操作數(shù) |
數(shù)據(jù)類型轉(zhuǎn)換指令 |
BTI IN,OUT |
將字節(jié)輸入數(shù)據(jù)IN轉(zhuǎn)換成整數(shù)類型,結(jié)果送到OUT,無符號(hào)擴(kuò)展 |
IN:VB,IB,QB,MB,SB,SMB,LB,AC,*VD,*AC,*LD,常數(shù) OUT:VW,IW,QW,MW,SW,SMW,LW,T,C,AC,*VD,*AC,*LD |
ITB IN,OUT |
將整數(shù)輸入數(shù)據(jù)IN轉(zhuǎn)換成一個(gè)字節(jié),結(jié)果送到OUT。輸入數(shù)據(jù)超出字節(jié)范圍(0~255)則產(chǎn)生溢出 |
IN:VW,IW,QW,MW,SW,SMW,LW,T,C,AIW,AC,*VD,*AC,*LD,常數(shù) OUT:VB,IB,QB,MB,SB,SMB,LB,AC,*VD,*AC,*LD | |
DTI IN,OUT |
將雙整數(shù)輸入數(shù)據(jù)IN轉(zhuǎn)換成整數(shù),結(jié)果送到OUT。 |
IN:VD,ID,QD,MD,SD,SMD,LD,HC,AC,*VD,*AC,*LD,常數(shù) OUT:VW,IW,QW,MW,SW,SMW,LW,T,C,AC,*VD,*AC,*LD | |
ITD IN,OUT |
將整數(shù)輸入數(shù)據(jù)IN轉(zhuǎn)換成雙整數(shù)(符號(hào)進(jìn)行擴(kuò)展),結(jié)果送到OUT |
IN:VW,IW,QW,MW,SW,SMW,LW,T,C,AIW,AC,*VD,*AC,*LD,常數(shù) OUT:VD,ID,QD,MD,SD,SMD,LD,AC,*VD,*AC,*LD | |
ROUND IN,OUT |
將實(shí)數(shù)輸入數(shù)據(jù)IN轉(zhuǎn)換成雙整數(shù),小數(shù)部分四舍五入,結(jié)果送到OUT |
IN,OUT:VD,ID,QD,MD,SD,SMD,LD,AC,*VD,*AC,*LD IN還可以是常數(shù) 在ROUND指令中IN還可以是HC | |
TRUNC IN,OUT |
將實(shí)數(shù)輸入數(shù)據(jù)IN轉(zhuǎn)換成雙整數(shù),小數(shù)部分直接舍去,結(jié)果送到OUT | ||
DTR IN,OUT |
將雙整數(shù)輸入數(shù)據(jù)IN轉(zhuǎn)換成實(shí)數(shù),結(jié)果送到OUT |
IN,OUT:VD,ID,QD,MD,SD,SMD,LD,AC,*VD,*AC,*LD IN還可以是HC和常數(shù) | |
BCDI OUT |
將BCD碼輸入數(shù)據(jù)IN轉(zhuǎn)換成整數(shù),結(jié)果送到OUT。IN的范圍為0~9999 |
IN,OUT:VW,IW,QW,MW,SW,SMW,LW,T,C,AC,*VD,*AC,*LD IN還可以是AIW和常數(shù) AC和常數(shù) | |
IBCD OUT |
將整數(shù)輸入數(shù)據(jù)IN轉(zhuǎn)換成BCD碼,結(jié)果送到OUT。IN的范圍為0~9999 | ||
編碼譯碼指令 |
ENCO IN,OUT |
將字節(jié)輸入數(shù)據(jù)IN的**有效位(值為1的位)的位號(hào)輸出到OUT**的字節(jié)單元的低4位 |
IN:VW,IW,QW,MW,SW,SMW,LW,T,C,AIW,AC,*VD,*AC,*LD,常數(shù) OUT:VB,IB,QB,MB,SB,SMB,LB,AC,*VD,*AC,*LD |
DECO IN,OUT |
根據(jù)字節(jié)輸入數(shù)據(jù)IN的低4位所表示的位號(hào)將OUT所**的字單元的相應(yīng)位置1,其它位置0 |
IN:VB,IB,QB,MB,SB,SMB,LB,AC,*VD,*AC,*LD,常數(shù) IN:VW,IW,QW,MW,SW,SMW,LW,T,C,AQW,AC,*VD,*AC,*LD | |
段碼指令 |
SEG IN,OUT |
根據(jù)字節(jié)輸入數(shù)據(jù)IN的低4位有效數(shù)字產(chǎn)生相應(yīng)的七段碼,結(jié)果輸出到OUT,OUT的**位恒為0 |
IN,OUT:VB,IB,QB,MB,SB,SMB,LB,AC,*VD,*AC,*LD IN還可以是常數(shù) |
字符串轉(zhuǎn)換指令 |
ATH IN,OUT,LEN |
把從IN開始的長(zhǎng)度為L(zhǎng)EN的ASCⅡ碼字符串轉(zhuǎn)換成16進(jìn)制數(shù),并存放在以O(shè)UT為首地址的存儲(chǔ)區(qū)中。合法的ASCⅡ碼字符的16進(jìn)制值在30H~39H,41H~46H之間,字符串的**長(zhǎng)度為255個(gè)字符 |
IN,OUT,LEN:VB,IB,QB,MB,SB,SMB,LB,*VD,*AC,*LD LEN還可以是AC和常數(shù) |
S7-200PLC 特殊指令
特殊指令如表4-27所示。PLC中一些實(shí)現(xiàn)特殊功能的硬件需要通過特殊指令來使用,可實(shí)現(xiàn)特定的復(fù)雜的控制目的,同時(shí)程序的編制非常簡(jiǎn)單。
表4-27 特殊指令
名稱 |
指令格式 (語句表) |
功能 |
操作數(shù) |
中斷指令 |
ATCH INT,EVNT |
把一個(gè)中斷事件(EVNT)和一個(gè)中斷程序聯(lián)系起來,并允許該中斷事件 |
INT:常數(shù) EVNT:常數(shù)(CPU221/222:0~12,19~23,27~33;CPU224:0~23,27~33;CPU226:0~33) |
DTCH EVNT |
截?cái)嘁粋(gè)中斷事件和所有中斷程序的聯(lián)系,并禁止該中斷事件 | ||
ENI |
全局地允許所有被連接的中斷事件 |
無 | |
DISI |
全局地關(guān)閉所有被連接的中斷事件 | ||
CRETI |
根據(jù)邏輯操作的條件從中斷程序中返回 | ||
RETI |
位于中斷程序結(jié)束,是必選部分,程序編譯時(shí)軟件自動(dòng)在程序結(jié)尾加入該指令 | ||
通信指令 |
NETR TBL,PORT |
初始化通訊操作,通過指令端口(PORT)從遠(yuǎn)程設(shè)備上接收數(shù)據(jù)并形成表(TBL)。可以從遠(yuǎn)程站點(diǎn)讀最多16個(gè)字節(jié)的信息 |
TBL:VB,MB,*VD,*AC,*LD PORT:常數(shù) |
NETW TBL,PORT |
初始化通訊操作,通過**端口(PORT)向遠(yuǎn)程設(shè)備寫表(TBL)中的數(shù)據(jù),可以向遠(yuǎn)程站點(diǎn)寫最多16個(gè)字節(jié)的信息 | ||
XMT TBL,PORT |
用于自由端口模式。**激活發(fā)送數(shù)據(jù)緩沖區(qū)(TBL)中的數(shù)據(jù),數(shù)據(jù)緩沖區(qū)的**個(gè)數(shù)據(jù)指明了要發(fā)送的字節(jié)數(shù),PORT**用于發(fā)送的端口 |
TBL:VB,IB,QB,MB,SB,SMB,*VD,*AC,*LD PORT:常數(shù)(CPU221/222/224為0;CPU226為0或1) | |
RCV TBL,PORT |
激活初始化或結(jié)束接收信息的服務(wù)。通過**端口(PORT)接收的信息存儲(chǔ)于數(shù)據(jù)緩沖區(qū)(TBL),數(shù)據(jù)緩沖區(qū)的**個(gè)數(shù)據(jù)指明了接收的字節(jié)數(shù) | ||
GPA ADDR,PORT |
讀取PORT**的CPU口的站地址,將數(shù)值放入ADDR**的地址中 |
ADDR:VB,IB,QB,MB,SB,SMB,LB,AC,*VD,*AC,*LD 在SPA指令中ADDR還可以是常數(shù) PORT:常數(shù) | |
SPA ADDR,PORT |
將CPU口的站地址(PORT)設(shè)置為ADDR**的數(shù)值 | ||
時(shí)鐘指令 |
TODR T |
讀當(dāng)前時(shí)間和日期并把它裝入一個(gè)8字節(jié)的緩沖區(qū)(起始地址為T) |
T:VB,IB,QB,MB,SB,SMB,LB,*VD,*AC,*LD |
TODW T |
將包含當(dāng)前時(shí)間和日期的一個(gè)8字節(jié)的緩沖區(qū)(起始地址是T)裝入時(shí)鐘 | ||
高速計(jì)數(shù)器指令 |
HDEF HSC,MODE |
為**的高速計(jì)數(shù)器分配一種工作模式。每個(gè)高速計(jì)數(shù)器使用之前必須使用HDEF指令,且只能使用一次 |
HSC:常數(shù)(0~5) MODE:常數(shù)(0~11) |
HSC N |
根據(jù)高速計(jì)數(shù)器特殊存儲(chǔ)器位的狀態(tài),按照HDEF指令**的工作模式,設(shè)置和控制高速計(jì)數(shù)器。N**了高速計(jì)數(shù)器號(hào) |
N:常數(shù)(0~5) | |
高速脈沖輸出指令 |
PLS Q |
檢測(cè)用戶程序設(shè)置的特殊存儲(chǔ)器位,激活由控制位定義的脈沖操作,從Q0.0或Q0.1輸出高速脈沖 可用于激活高速脈沖串輸出(PTO)或?qū)挾瓤烧{(diào)脈沖輸出(PWM) |
Q:常數(shù)(0或1) |
PID回路指令 |
PID TBL,LOOP |
運(yùn)用回路表中的輸入和組態(tài)信息,進(jìn)行PID運(yùn)算。要執(zhí)行該指令,邏輯堆棧頂(TOS)必須為ON狀態(tài)。TBL**回路表的起始地址,LOOP**控制回路號(hào) 回路表包含9個(gè)用來控制和監(jiān)視PID運(yùn)算的參數(shù):過程變量當(dāng)前值(PV n ),過程變量前值(PV n-1 ),給定值(SP n ),輸出值(M n ),增益(Kc),采樣時(shí)間(Ts),積分時(shí)間(Ti),微分時(shí)間(Td)和積分項(xiàng)前值(MX) 為使PID計(jì)算是以所要求的采樣時(shí)間進(jìn)行,應(yīng)在定時(shí)中斷執(zhí)行中斷服務(wù)程序或在由定時(shí)器控制的主程序中完成,其中定時(shí)時(shí)間必須填入回路表中,以作為PID指令的一個(gè)輸入?yún)?shù) |
TBL:VB LOOP:常數(shù) |