濟寧西門子代理商本公司銷售西門子自動化產品,*,質量保證,價格優勢西門子PLC,西門子觸摸屏,西門子數控系統,西門子軟啟動,西門子以太網西門子電機,西門子變頻器,西門子直流調速器,西門子電線電纜我公司大量現貨供應,價格優勢,*,德國*
更新時間:2020-04-22
廠商性質: 總代理商
在線留言濟寧西門子代理商 濟寧西門子代理商
本公司銷售西門子自動化產品,*,質量保證,價格優勢
西門子PLC,西門子觸摸屏,西門子數控系統,西門子軟啟動,西門子以太網
西門子電機,西門子變頻器,西門子直流調速器,西門子電線電纜
我公司大量現貨供應,價格優勢,*,德國*
PLC基本指令及程序設計(S7-200為例)
一、PLC的基本邏輯指令
1、邏輯取及線圈驅動指令
1-1:邏輯取及線圈驅動指令:LD(load)、LDN(load not)、=(out) LD:用于網絡塊邏輯運算開始常開觸點與母線的連接 LDN:取反指令,常閉觸點與母線連接 =:線圈驅動指令 注:1、在分支電路塊開始也要用LDLDN 2、并聯的=可連續使用多次 3、在同一程序中不能用雙線圈輸出!!!即任一元件在程序中只能使用一次=指令 4、T和C作為輸出線圈時不用=
1-2:取反指令NOT:邏輯取反。
2、觸點串聯指令
A(and)、AN(and not) A:與指令。用于單個常開觸點的串聯 AN:用于單個常閉觸點的串聯 注:1、A/AN可連續使用多次 2、連續輸出電路可反復用=(不是在分支處,而是連續的輸出(即在緊貼線圈之前)) 3、AAN操作數為:I Q M SM T C V S L
3、觸點并聯指令
O(or) ON(or not) O:或指令。用于單個常開觸點的并聯連接 ON:或反指令。用于單個常閉觸點的并聯連接 注:1、O/ON可連續使用
4、置位、復位指令
S bit,N(從bit位開始連續N個元件置1) R bit,N(從bit位開始連續N個元件清零) 注:1、兩者對立,保持作用只有當相對的作用時才會釋放。 2、S/R可以互換次序使用,寫在后面的指令具有優先權 3、對T C復位 當前值被清零,但有其特殊性,后面說 4、N的常數范圍0-255 也可用變量,一般用常量。
5、RS觸發器指令
SR(Set Dominant Bistable):置位優先觸發器指令。當置位信號(S1)和復位信號(R)都為真時,輸出為真。 RS(Reset Dominant Bistable):復位優先觸發器指令。 兩個為RS觸發器,不同的是在同時輸入為1(S=R=1)時,哪個優先
6、立即指令
不受PLC循環掃描工作方式的影響。
立即取 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)
考慮到穩定性和快速執行,一般不用立即指令
7、邊沿脈沖指令
EU(Edge Up) 在上升沿產生脈沖 ED(Edge Down) 在下降沿產生脈沖
(!!注:脈沖寬度為一個掃描周期,所以在程序的其他地方可以用到在此指令之后的線圈)
8、串聯電路塊的并聯連接指令(OLD)
注意:1、塊電路的開始也要用LD/LDN指令 2、每次完成一次塊電路的并聯時寫上OLD命令(在并聯完成之后) 3、OLD無操作數
實質:塊電路完成邏輯運算后,結果存放在堆棧棧頂,OLD指令把棧頂上面兩層的內容進行“或”操作,再將結果存放在棧頂。
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、并聯電路塊的串聯連接指令(ALD)and load
注:1、在塊電路開始時要使用LD/LDN指令 2、每次完成一次塊電路的串聯連接后寫上ALD 3、ALD無操作數
實質:塊電路邏輯運算后,結果存放在堆棧棧頂,ALD命令將上面的兩層內容進行“與”操作,再將結果存放在棧頂
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壓入堆棧的內容,而堆棧本身不進行PUSH和POP操作
LPP(logic pop):邏輯出棧指令(分支電路結束指令),從堆棧使用上來講,LPP把堆棧彈出一級,堆棧內容依次上移。
特別說明:由于受堆棧空間的限制(9層堆棧),LPSLPP指令的連續使用應當小于9次
LD I0.0
LPS (將i0.0的內容壓入堆棧)
LD M0.0
O M0.1
ALD
= Q0.0
LRD (讀取i0.0的內容進行另一個分支的運算)
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的后續結構,不再用LD,不是一個"邏輯塊")
= Q0.2
LD M1.1
ON M1.2 (后面一個完整的邏輯塊,所以用LD LD為網絡邏輯運算塊開始的標識)
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才能向下執行。
ENO(布爾能流輸出端):若,指令盒的能流輸入有效,則執行沒有錯誤,ENO置位,將能流向下傳遞。
LD I0.0
+I VW200,VW204
AENO
ATCH INT_,10
12、比較指令
將兩個數值或者字符串按照一定的條件比較,條件成立時,觸點就閉合,所以實質上是一個位指令。
類型:字節比較,整數比較,雙字整數比較,實數比較,字符串比較
注:字節比較是無符號的,整數比較是有符號的。雙字比較也是有符號的。實數比較是有符號的。字符串比較比較兩個字符串的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開始遞增到預定值,發生動作)
類型(s7-200):接通延時定時器(TON)、有記憶接通延時定時器(TONR)、斷開延時定時器(TOF)
定時器編號包含的變量信息:定時器位(?相當于位邏輯,產生觸點動作)、定時器當前值(當前所累計的時間,用16位“符號”整數表示,大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等指令連接!!!)
定時器刷新方式!:
1ms :系統每隔1ms刷新一次。與掃描周期及程序處理無關,采用中斷刷新方式。(!若掃描周期大于1ms,當前值可在一個掃描周期內不*!)
10ms :系統每個掃描周期開始時自動刷新。每個掃描周期內刷新一次,一個掃描周期內值不變,保持*!
100ms:定時器指令執行時被刷新。僅被用在定時器指令在每個掃描周期執行一次的程序中。
(!!??!!定時器可以理解為一個獨立的元件,其定時器位和定時器當前值與CPU的掃描周期無關。所以才有了刷新方式不同!刷新方式實質是CPU內存數據區中定時器位和當前值在掃描周期什么時候改變,這才是搭建定時器和掃描周期的橋梁。注:1ms中斷刷新中,程序仍然按照母線自上而下,自左而右的順序執行,中斷刷新只是在一個掃描周期內將定時器位變量的值刷新!! 掃描周期就相當于嵌入式c語言中的while(1){ },只是循環和某些器件(IO,某些定時器)的刷新作用,而變量和其他外部設備并不因為掃描周期的刷新而復位!所以,變量能夠累計、暫存)
時間間隔定時器:
BITIM(beginning interval time):讀取1ms計數器的當前值,存于OUT(LAD中OUT所連接的變量),大2的32次方。49.7天
CITIM(calculate interval time):計算當前時間與IN(LAD中的IN)所提供的時間差將差值送于OUT(LAD)大2的32次方,49.7天