濟寧西門子代理商 濟寧西門子代理商
本公司銷售西門子自動化產(chǎn)品,,*,質(zhì)量保證,,價格優(yōu)勢
西門子PLC,西門子觸摸屏,,西門子數(shù)控系統(tǒng),西門子軟啟動,,西門子以太網(wǎng)
西門子電機,,西門子變頻器,西門子直流調(diào)速器,,西門子電線電纜
我公司大量現(xiàn)貨供應(yīng),,價格優(yōu)勢,*,,德國*
PLC基本指令及程序設(shè)計(S7-200為例)
一,、PLC的基本邏輯指令
1、邏輯取及線圈驅(qū)動指令
1-1:邏輯取及線圈驅(qū)動指令:LD(load),、LDN(load not),、=(out) LD:用于網(wǎng)絡(luò)塊邏輯運算開始常開觸點與母線的連接 LDN:取反指令,常閉觸點與母線連接 =:線圈驅(qū)動指令 注:1,、在分支電路塊開始也要用LDLDN 2,、并聯(lián)的=可連續(xù)使用多次 3、在同一程序中不能用雙線圈輸出?。,。〖慈我辉诔绦蛑兄荒苁褂靡淮?指令 4,、T和C作為輸出線圈時不用=
1-2:取反指令NOT:邏輯取反,。
2,、觸點串聯(lián)指令
A(and)、AN(and not) A:與指令,。用于單個常開觸點的串聯(lián) AN:用于單個常閉觸點的串聯(lián) 注:1,、A/AN可連續(xù)使用多次 2、連續(xù)輸出電路可反復(fù)用=(不是在分支處,,而是連續(xù)的輸出(即在緊貼線圈之前)) 3,、AAN操作數(shù)為:I Q M SM T C V S L
3、觸點并聯(lián)指令
O(or) ON(or not) O:或指令,。用于單個常開觸點的并聯(lián)連接 ON:或反指令,。用于單個常閉觸點的并聯(lián)連接 注:1、O/ON可連續(xù)使用
4,、置位,、復(fù)位指令
S bit,N(從bit位開始連續(xù)N個元件置1) R bit,N(從bit位開始連續(xù)N個元件清零) 注:1、兩者對立,,保持作用只有當(dāng)相對的作用時才會釋放,。 2、S/R可以互換次序使用,,寫在后面的指令具有優(yōu)先權(quán) 3,、對T C復(fù)位 當(dāng)前值被清零,但有其特殊性,,后面說 4,、N的常數(shù)范圍0-255 也可用變量,一般用常量,。
5,、RS觸發(fā)器指令
SR(Set Dominant Bistable):置位優(yōu)先觸發(fā)器指令。當(dāng)置位信號(S1)和復(fù)位信號(R)都為真時,,輸出為真,。 RS(Reset Dominant Bistable):復(fù)位優(yōu)先觸發(fā)器指令。 兩個為RS觸發(fā)器,,不同的是在同時輸入為1(S=R=1)時,哪個優(yōu)先
6,、立即指令
不受PLC循環(huán)掃描工作方式的影響,。
立即取 LDI bit(I) 立即取反 LDNI bit(I) 立即或 OI bit(I) 立即或反 ONI bit(I) 立即與 AI bit(I) 立即與反ANI bit(I)
立即輸出 =I bit
立即置位 SI bit,N(0~128)
立即復(fù)位 RI bit,,N(0~128)
考慮到穩(wěn)定性和快速執(zhí)行,,一般不用立即指令
7、邊沿脈沖指令
EU(Edge Up) 在上升沿產(chǎn)生脈沖 ED(Edge Down) 在下降沿產(chǎn)生脈沖
(??!注:脈沖寬度為一個掃描周期,,所以在程序的其他地方可以用到在此指令之后的線圈)
8、串聯(lián)電路塊的并聯(lián)連接指令(OLD)
注意:1,、塊電路的開始也要用LD/LDN指令 2,、每次完成一次塊電路的并聯(lián)時寫上OLD命令(在并聯(lián)完成之后) 3、OLD無操作數(shù)
實質(zhì):塊電路完成邏輯運算后,,結(jié)果存放在堆棧棧頂,,OLD指令把棧頂上面兩層的內(nèi)容進行“或”操作,再將結(jié)果存放在棧頂,。
LD I0.0
A M0.0
LD I0.1
AN M0.1
OLD
LDN I0.2
A M0.2
OLD
A M0.3
= Q0.0
9,、并聯(lián)電路塊的串聯(lián)連接指令(ALD)and load
注:1、在塊電路開始時要使用LD/LDN指令 2,、每次完成一次塊電路的串聯(lián)連接后寫上ALD 3,、ALD無操作數(shù)
實質(zhì):塊電路邏輯運算后,結(jié)果存放在堆棧棧頂,,ALD命令將上面的兩層內(nèi)容進行“與”操作,,再將結(jié)果存放在棧頂
LD I0.0
O I0.1
LD M0.0
A M0.1
LD M0.2
AN M0.3
OLD
ALD
= Q0.0
10、邏輯入棧(LPS),、邏輯讀棧(LRD),、邏輯出棧(LPP)
LPS(logic push):邏輯入棧指令(分支電路的開始指令)。在梯形圖上,,用于生成一條新的母線,。從堆棧使用上來講,LPS指令的作用是把棧頂復(fù)制后壓入堆棧,。
LRD(logic read):邏輯讀棧指令,。從堆棧使用來說,LRD讀取近的LPS壓入堆棧的內(nèi)容,,而堆棧本身不進行PUSH和POP操作
LPP(logic pop):邏輯出棧指令(分支電路結(jié)束指令),,從堆棧使用上來講,LPP把堆棧彈出一級,,堆棧內(nèi)容依次上移,。
特別說明:由于受堆棧空間的限制(9層堆棧),,LPSLPP指令的連續(xù)使用應(yīng)當(dāng)小于9次
LD I0.0
LPS (將i0.0的內(nèi)容壓入堆棧)
LD M0.0
O M0.1
ALD
= Q0.0
LRD (讀取i0.0的內(nèi)容進行另一個分支的運算)
LD M0.2 (,??因為LRD是讀取,,所以I0.0沒有出來,,// 正確:后面為一個“完整的邏輯塊”,所以還要重新用一個LD裝入)
A M0.3
LDN M0.4
A M0.5
OLD
ALD
= Q0.1
LPP
A M1.0 (因為LPP彈出的堆棧I0.0,,所以后面是I0.0的后續(xù)結(jié)構(gòu),,不再用LD,,不是一個"邏輯塊")
= Q0.2
LD M1.1
ON M1.2 (后面一個完整的邏輯塊,所以用LD LD為網(wǎng)絡(luò)邏輯運算塊開始的標(biāo)識)
ALD
= Q0.3
另一個例子
LD M0.0
LPS
A M0.1
LPS
AN M0.2
= Q0.0
LPP
A M0.3
= Q0.1
LPP
A M0.4
LPS
A M0.5
= Q0.2
LPP
AN M0.6
= Q0.3
再一個例子
LD M0.0
LPS
A M0.1
LPS
A M0.2
LPS
A M0.3
= Q0.0
LPP
= Q0.1
LPP
= Q0.2
LPP
= Q0.3
特別提醒:LPS和LPP必須成對使用,,中間可以有LRD(不進行壓棧和出棧操作,,只是讀取)
11,、裝入堆棧指令LDS(load stack)
復(fù)制堆棧中的第n個值到棧頂,,而“棧底”丟失 注:編程中使用較少
LDS n (0~8)
12、與ENO指令
ENO在STL中無EN輸入,,在STL中棧頂值必須為1才能向下執(zhí)行,。
ENO(布爾能流輸出端):若,指令盒的能流輸入有效,,則執(zhí)行沒有錯誤,,ENO置位,將能流向下傳遞,。
LD I0.0
+I VW200,VW204
AENO
ATCH INT_,10
12,、比較指令
將兩個數(shù)值或者字符串按照一定的條件比較,條件成立時,,觸點就閉合,,所以實質(zhì)上是一個位指令。
類型:字節(jié)比較,,整數(shù)比較,,雙字整數(shù)比較,實數(shù)比較,,字符串比較
注:字節(jié)比較是無符號的,,整數(shù)比較是有符號的。雙字比較也是有符號的,。實數(shù)比較是有符號的,。字符串比較比較兩個字符串的ASCII碼。 LD
LDW>= C30,30
= Q0.0
LD I0.0
AR< VD1,95.8
= Q0.1
LD I0.1
OB> VB10,VB20
= Q0.2
13,、定時器
設(shè)置預(yù)定值,,遞增值(從0開始遞增到預(yù)定值,發(fā)生動作)
類型(s7-200):接通延時定時器(TON),、有記憶接通延時定時器(TONR),、斷開延時定時器(TOF)
定時器編號包含的變量信息:定時器位(?相當(dāng)于位邏輯,,產(chǎn)生觸點動作)、定時器當(dāng)前值(當(dāng)前所累計的時間,,用16位“符號”整數(shù)表示,,大32767)
注:不同類型的定時器有不同的編號,,不能混淆
TONR 1ms T0, T64
10ms T1~T4, T65~T68
100ms T5~T31 T69~T95
TON,TOF 1ms T32,T96
10ms T33~T36 T97~T100
100ms T37~T63 T101~T255
(32個為一組,后一個(右下角)到后255)
定時器的指令:TON T***,PT(預(yù)定值):接通延時定時器,,斷電自動復(fù)位定時器當(dāng)前值
TONR T***,PT:記憶接通延時定時器,,斷電不復(fù)位,復(fù)位只能用復(fù)位指令R ??!
TOF T***,PT:斷開延時定時器,斷電復(fù)位定時器當(dāng)前值
應(yīng)用舉例:
LD I0.0
TON T35,4
TONR T2,10
TOF T36,3 (因為沒有邏輯運算,,所以不用O,、LPS、LPP等指令連接?。,。?
定時器刷新方式?。?br />1ms :系統(tǒng)每隔1ms刷新一次,。與掃描周期及程序處理無關(guān),采用中斷刷新方式,。(,!若掃描周期大于1ms,當(dāng)前值可在一個掃描周期內(nèi)不*?。?br />10ms :系統(tǒng)每個掃描周期開始時自動刷新,。每個掃描周期內(nèi)刷新一次,一個掃描周期內(nèi)值不變,,保持*,!
100ms:定時器指令執(zhí)行時被刷新。僅被用在定時器指令在每個掃描周期執(zhí)行一次的程序中,。
(?。??,?!,!定時器可以理解為一個獨立的元件,,其定時器位和定時器當(dāng)前值與CPU的掃描周期無關(guān)。所以才有了刷新方式不同,!刷新方式實質(zhì)是CPU內(nèi)存數(shù)據(jù)區(qū)中定時器位和當(dāng)前值在掃描周期什么時候改變,,這才是搭建定時器和掃描周期的橋梁。注:1ms中斷刷新中,程序仍然按照母線自上而下,,自左而右的順序執(zhí)行,,中斷刷新只是在一個掃描周期內(nèi)將定時器位變量的值刷新!,! 掃描周期就相當(dāng)于嵌入式c語言中的while(1){ },,只是循環(huán)和某些器件(IO,某些定時器)的刷新作用,,而變量和其他外部設(shè)備并不因為掃描周期的刷新而復(fù)位,!所以,變量能夠累計,、暫存)
時間間隔定時器:
BITIM(beginning interval time):讀取1ms計數(shù)器的當(dāng)前值,,存于OUT(LAD中OUT所連接的變量),大2的32次方,。49.7天
CITIM(calculate interval time):計算當(dāng)前時間與IN(LAD中的IN)所提供的時間差將差值送于OUT(LAD)大2的32次方,,49.7天