上海蔻湘自動化設備商行
:
: 李 勇 ()
: 1243346113
質量保證·服務誠信·價格實惠,本公司銷售的產品一律為原裝* , 可以簽約正式的銷售合同
主要經營范圍: 山東省濟寧市西門子PLC*一級代理商
PLC及 模塊:S7-200、 S7-300、 S7-400、S7-1200,S7-1500,ET-200系列
變 頻 器:MM420、 MM430、 MM440、 6SE70、 6RA70,V20,V60,V90系列
觸 摸 屏:OP27、 OP37、 OP270、 OP370,TD200, TD400C, K-TP OP177 TP177,MP277, MP377,等系列
數 控:6SN、1FT、6FC、6FX,1FK等系列
主要優勢: 山東省濟寧市西門子PLC*一級代理商
邏輯控制模塊: LOGO!230RC、230RCO、230RCL、24RC、24RCL
SITOP直流電源: 24V DC 1.3A、2.5A、3A、5A、10A、20A、40A可并聯.
數控伺服停產備件:(6FC,6SN全系列)
全數字直流調速裝置: 6RA23、6RA24、6RA28、6RA70、6SE70系列
SIEMENS 數控 伺服
SINUMERIK:801、802S 、802D、802D SL、810D、840D、611U、S120
系統及伺報電機,力矩電機,直線電機,伺服驅動等備件銷售
SIEMENS S7系列
S7-400(優勢產品,庫存量大)
S7-300(優勢產品,庫存量大)
S7-200 (優勢產品,庫存量大)
SIEMENS 其他產品
PLC周邊產品(編程電纜,前連接器,導軌)
PLC編程軟件
規 格:德國Siemens原產出品;凡所購公司產品,均按原廠質保一年。
大量現貨 歡迎詢價
上海蔻湘自動化設備商行 本著“以人為本、科技先導、顧客滿意、持續改進”的工作方針,致力于工業自動化控制領域的產品開發、工程配套和系統集成,擁有豐富的自動化產品的應用和實踐經驗以及雄厚的技術力量,尤其以 PLC復雜控制系統、傳動技術應用、伺服控制系統、控備品備件、人機界面及網絡/軟件應用為公司的技術特長,幾年來,上海蔻湘在與德國 SIEMENS公司自動化與驅動部門的*緊密合作過程中,建立了良好的相互協作關系,在可編程控制器、交直流傳動裝置方面的業務逐年成倍增長,為廣大用戶提供了SIEMENS的技術及自動控制的解決方案。
PLC:學習筆記(西門子)3
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指令把棧頂zui上面兩層的內容進行“或”操作,再將結果存放在棧頂。
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命令將zui上面的兩層內容進行“與”操作,再將結果存放在棧頂
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讀取zui近的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(不進行壓棧和出棧操作,只是讀?。?/p>
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位“符號”整數表示,zui大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個為一組,zui后一個(右下角)到zui后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 :系統每隔1ms刷新一次。與掃描周期及程序處理無關,采用中斷刷新方式。(!若掃描周期大于1ms,當前值可在一個掃描周期內不*?。?br />10ms :系統每個掃描周期開始時自動刷新。每個掃描周期內刷新一次,一個掃描周期內值不變,保持*!
100ms:定時器指令執行時被刷新。僅被用在定時器指令在每個掃描周期執行一次的程序中。
(?。????。《〞r器可以理解為一個獨立的元件,其定時器位和定時器當前值與CPU的掃描周期無關。所以才有了刷新方式不同!刷新方式實質是CPU內存數據區中定時器位和當前值在掃描周期什么時候改變,這才是搭建定時器和掃描周期的橋梁。注:1ms中斷刷新中,程序仍然按照母線自上而下,自左而右的順序執行,中斷刷新只是在一個掃描周期內將定時器位變量的值刷新?。?掃描周期就相當于嵌入式c語言中的while(1){ },只是循環和某些器件(IO,某些定時器)的刷新作用,而變量和其他外部設備并不因為掃描周期的刷新而復位!所以,變量能夠累計、暫存)
時間間隔定時器:
BITIM(beginning interval time):讀取1ms計數器的當前值,存于OUT(LAD中OUT所連接的變量),zui大2的32次方。49.7天
CITIM(calculate interval time):計算當前時間與IN(LAD中的IN)所提供的時間差將差值送于OUT(LAD)zui大2的32次方,49.7天
舉例:要求I0,0持續接通20s后,Q0.0輸出
LD I0.0
EU
BITIM VD200
LD I0.0
CITIM VD200,VD204
LDD> VD204,20000
= Q0.0
14、計數器
用來累計輸入脈沖的次數。累計脈沖輸入端信號上升沿的個數。
幾個基本概念:
種類:增計數器(CTU)、增減計數器(CTUD)、減計數器(CTD)
編號(計數器名稱+數字(0~255) 如C6):其包含兩方面信息“計數器的位”(開關量,是否發生動作)、“計數器當前值”(存儲單元,存儲計數器當前累計的脈沖個數)。
輸入端和操作數:
設定值輸入:類型為INT型,一般情況下用常數做為計數器的設定值
計數器指令:
1、增計數器(CTU):*掃描為0,一直計數到設定值,計數器位動作,然后繼續計數到32767停止!只有當“復位輸入端”有效,或者使用“復位指令”時,計數器自動復位:計數器位為OFF,當前值為0
舉例:
LD I0.0
LD I0.1
CTU C20,3
LD C20
= Q0.0
(!!!!一定注意:LD之后的CU R的順序不能錯,即I0.0為CU,I0.1為R)
2、增減計數器(CTUD):CU用于遞增計數,CD用于遞減計數。注:增減計數器 *的是當前值會循環(遞增是32767下一個為-32768,遞減相反?。?br />舉例:
LD I0.0
LD I0.1
LD I0.2
CTUD C30,5
LD C30
= Q0.0
(!!!!一定注意:CU CD R的順序不能錯)
3、減計數器(CTD):*掃描計數器位為OFF,當前值為PV(預設定值),當當前值減小到0時,計數器位為ON!!
舉例:
LD I0.0
LD I0.1
CTD C40,4
LD C40
= Q0.0
(!?。∫欢ㄗ⒁猓篊D R 的順序不能錯)
二、PLD程序控制指令
目的:使程序結構靈活,優化程序結構
主要包括:結束、暫停、看門狗、跳轉、循環、順序控制等
1、結束及暫停指令(END MEND STOP)
END:有條件結束指令
MEND:無條件結束指令
注意:1、結束指令只能用在主程序中,中斷和子程序中不能使用。 2、有條件結束指令可用在無條件結束指令之前結束主程序 3、可利用程序執行的結果狀態、系統狀態或外部社設置切換條件來調用“有條件結束指令”,使程序結束 4、軟件編程時,自動會有一個MEND在主程序結尾,不用手動輸入。 5、??!特別注意:使用線圈形式編程,指令不含操作數
STOP:使用線圈形式編程。指令形式中不含操作數。作用:使主機CPU從RUN模式切換到STOP
特別的:在中斷程序中執行STOP時,中斷“立即停止處理”,并且忽略之后所有掛起的中斷,“繼續掃描程序剩余部分”在本次掃描結束后將主機RUN-STOP
2、看門狗復位指令(WDR)
WDR(watchdog reset):可以把警戒時鐘刷新,即延長掃描周期,有效的避免看門狗超時錯誤。以線圈編程。無操作數
特別小心:WDR會使掃描時間過長,所以在中止本次掃描前,如下操作將被禁止:
通信(自由口除外)
IO刷新(立即IO除外)
強制刷新
SM位刷新(SM0、SM5~SM29的位不能被刷新)
運行時間診斷
掃描時間超過25s時,10ms、100ms定時器不能正常計時
中斷程序中的STOP指令(具體理解可以參考剛才所說的stop)
舉例:
LD SM5.0 //檢查IO錯誤
O SM4.0 //運行時檢查編程
O I0.3 //外部切換條件
STOP
LD I0.5
END //條件結束
LD I0.6
EU
WDR
BIW QB2,QB2
3、跳轉及標號指令(JMP LBL)
JMP(jump to label):當輸入有效時,程序跳到標號處運行
LBL(label):指令跳轉的目標標號(!?。?!0~255)
使用說明:1、JMPLBL配合使用且只能在同一程序塊中(同一主程序,子程序或者同一中斷程序)
4、循環指令(FOR NEXT)
FOR INDX,INIT,FINAL
.
.
NEXT
當前循環計數(index value of current loop count)、循環初值INIT(starting value)、循環終值(ending value)
操作數均為INT(整型,有符號)
使用說明:
1、for next 必須成對使用
2、可循環嵌套,zui多8層。
3、每次是能輸入EN有效時,指令自動復位各個參數
4、初值大于終值,循環不執行
5、注意對INDX的控制
5、診斷LED指令
新版CPU的指令
SF/DIAG指示燈來顯示。CPU故障:紅光(SF) 診斷時:根據是否為黃光判斷
DLED IN(字節型數據?。。。。?br />如果IN等于0:不發光
如果IN大于0:發光*(黃色)
舉例:
LD I0.0
= Q0.Q
LD SM0.0 //EN使能DIAG_LED功能模塊的EN端
DLED MB0
三、PLC編程初步
1、梯形圖(LAD)編程基本規則
1-1:PLC內部元器件觸點的使用次數是無限制的
1-2:每一行從左端母線開始,然后觸點連接,zui后以線圈或者指令盒結束
1-3:線圈和指令盒不能直接連接在左端母線上??!如有需要,可用中間繼電器在中間做牽引
1-4:應把串聯多的電路塊盡量放在zui上面,并聯多的盡量在zui左邊。