濟寧西門子代理商 濟寧西門子代理商
本公司銷售西門子自動化產(chǎn)品,*,質(zhì)量保證,價格優(yōu)勢
西門子PLC,西門子觸摸屏,西門子數(shù)控系統(tǒng),西門子軟啟動,西門子以太網(wǎng)
西門子電機,西門子變頻器,西門子直流調(diào)速器,西門子電線電纜
我公司大量現(xiàn)貨供應,價格優(yōu)勢,*,德國*
PLC基本指令及程序設計(S7-200為例)
一、PLC的基本邏輯指令
1、邏輯取及線圈驅(qū)動指令
1-1:邏輯取及線圈驅(qū)動指令:LD(load)、LDN(load not)、=(out) LD:用于網(wǎng)絡塊邏輯運算開始常開觸點與母線的連接 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ù)輸出電路可反復用=(不是在分支處,而是連續(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、置位、復位指令
S bit,N(從bit位開始連續(xù)N個元件置1) R bit,N(從bit位開始連續(xù)N個元件清零) 注:1、兩者對立,保持作用只有當相對的作用時才會釋放。 2、S/R可以互換次序使用,寫在后面的指令具有優(yōu)先權(quán) 3、對T C復位 當前值被清零,但有其特殊性,后面說 4、N的常數(shù)范圍0-255 也可用變量,一般用常量。
5、RS觸發(fā)器指令
SR(Set Dominant Bistable):置位優(yōu)先觸發(fā)器指令。當置位信號(S1)和復位信號(R)都為真時,輸出為真。 RS(Reset Dominant Bistable):復位優(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)
立即復位 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指令的作用是把棧頂復制后壓入堆棧。
LRD(logic read):邏輯讀棧指令。從堆棧使用來說,LRD讀取近的LPS壓入堆棧的內(nèi)容,而堆棧本身不進行PUSH和POP操作
LPP(logic pop):邏輯出棧指令(分支電路結(jié)束指令),從堆棧使用上來講,LPP把堆棧彈出一級,堆棧內(nèi)容依次上移。
特別說明:由于受堆棧空間的限制(9層堆棧),LPSLPP指令的連續(xù)使用應當小于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)絡邏輯運算塊開始的標識)
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)
復制堆棧中的第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、定時器
設置預定值,遞增值(從0開始遞增到預定值,發(fā)生動作)
類型(s7-200):接通延時定時器(TON)、有記憶接通延時定時器(TONR)、斷開延時定時器(TOF)
定時器編號包含的變量信息:定時器位(?相當于位邏輯,產(chǎn)生觸點動作)、定時器當前值(當前所累計的時間,用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(預定值):接通延時定時器,斷電自動復位定時器當前值
TONR T***,PT:記憶接通延時定時器,斷電不復位,復位只能用復位指令R !!
TOF T***,PT:斷開延時定時器,斷電復位定時器當前值
應用舉例:
LD I0.0
TON T35,4
TONR T2,10
TOF T36,3 (因為沒有邏輯運算,所以不用O、LPS、LPP等指令連接?。?!)
定時器刷新方式?。?br />1ms :系統(tǒng)每隔1ms刷新一次。與掃描周期及程序處理無關,采用中斷刷新方式。(!若掃描周期大于1ms,當前值可在一個掃描周期內(nèi)不*?。?br />10ms :系統(tǒng)每個掃描周期開始時自動刷新。每個掃描周期內(nèi)刷新一次,一個掃描周期內(nèi)值不變,保持*!
100ms:定時器指令執(zhí)行時被刷新。僅被用在定時器指令在每個掃描周期執(zhí)行一次的程序中。
(?。???!!定時器可以理解為一個獨立的元件,其定時器位和定時器當前值與CPU的掃描周期無關。所以才有了刷新方式不同!刷新方式實質(zhì)是CPU內(nèi)存數(shù)據(jù)區(qū)中定時器位和當前值在掃描周期什么時候改變,這才是搭建定時器和掃描周期的橋梁。注:1ms中斷刷新中,程序仍然按照母線自上而下,自左而右的順序執(zhí)行,中斷刷新只是在一個掃描周期內(nèi)將定時器位變量的值刷新??! 掃描周期就相當于嵌入式c語言中的while(1){ },只是循環(huán)和某些器件(IO,某些定時器)的刷新作用,而變量和其他外部設備并不因為掃描周期的刷新而復位!所以,變量能夠累計、暫存)
時間間隔定時器:
BITIM(beginning interval time):讀取1ms計數(shù)器的當前值,存于OUT(LAD中OUT所連接的變量),大2的32次方。49.7天
CITIM(calculate interval time):計算當前時間與IN(LAD中的IN)所提供的時間差將差值送于OUT(LAD)大2的32次方,49.7天