用S7-200編程的五個實例的解析
| 2010-09-23 23:12:23 樓主
本文用S7-200編寫的五個實例是根據(jù)網上網友的求助編寫的,供大家參考。
1、一網友求助:“本人是PLC新手,剛學習不到一個月, 現(xiàn)有一個項目~~ 要對目標信號進行檢測計數(shù)~~ 信號為24V直流~~ 每隔一定的時間進行信號端檢測,如果為“
急切 PS:采用西門子S7-200系列PLC,STEP7 V4.0 SP6,組態(tài)王6.53,進行上述測試~~如果能有梯形圖程序就不勝感激了~郵箱w4169349@163.com
回復:按著你的要求,編寫如下梯形圖,在組態(tài)王數(shù)據(jù)詞典里建立I/O整數(shù)字變量VW100,設可讀方式,再設 I/O字節(jié)變量M2,其BIT(M2,1)為系統(tǒng)啟動工作位,BIT(M2,2)為報警輸出位。在運行時,組態(tài)王時時從PLC讀取VW100及MB2的數(shù)據(jù),出現(xiàn)報警,系統(tǒng)工作停止,此時的VW100值,即為報警前返回信號次數(shù),系統(tǒng)檢查完畢始終未出現(xiàn)報警,按下停止按鈕,此時的VW100值即為最終檢測返回信號值。
2、一網友提出:“謝謝樓主,對我這個新手來說真是好東西。請教樓主用一個按鈕控制電機正反轉用S7-200怎么做,考慮了很久不太清楚,請您詳細講解一下,謝謝。”
我的回復:按著你的要求,我給你編了S7-200梯形圖,用一個按鈕起動電機正反轉,又增加一個自鎖按鈕作為電機工作停止開關。 其工作原理:I1.1為自鎖按鈕,抬起位,其常閉觸點閉合,使M2.0、M2.1、M2.2、M2.3皆為0狀態(tài),此時即使按I1,0啟動按鈕,SR觸發(fā)器也不會反轉,故電機停止不動。按下I1.1按鈕,其常閉點斷開,容許電機工作,這時,如按一下I1,0,就會使SR觸發(fā)器反轉,即M2.0=1、M2.1=1,M2.0=1的前沿,觸發(fā)位開關,使M2.2=1、M2.3=0,M2.2=1 接通T100定時器,延時0.5秒,T100動作,其常開點閉合使Q1.0=1,電機正傳運行。如再按一下I1.0按鈕,使SR觸發(fā)器又翻轉,其M2.0=0,M2.0的后沿,觸發(fā)位開關,使M2.2=0-->T00=0,電機立刻斷電,同時又使M2.3=1,使T101得電,延時0.5秒T101動作,其觸電閉合,使Q1.1=1,電機反轉運行。....這樣用一個按鈕就可實現(xiàn)控制電機反正轉。如要想使電機停止運轉,抬起I1.1自鎖按鈕,I1.1的常閉點閉合強迫M2.0、M2.1、M2.2、M2.3四點都=0,T100、T101也=0,Q1.0、Q1.1也=0,電機停止運行。
3、網友求助:“ 現(xiàn)我有一設備,要求此設備運行到一定時間需要給上位機一個報警信號,提示需要更換潤滑油,但設備廠家的要求是,新設備首次運行500小時需要更換一次潤滑油,以后每3000小時則需要再次更換潤滑油,現(xiàn)我有一VD變量存儲設備運行時間,且已存如斷電保存寄存器,請教,如何才能用最簡單的方法實現(xiàn)以上功能;假設設備運行時間保存變量地址為VD100,報警信號為M10。希望能給出梯形圖或STL程序,謝謝!”
回復:按你的要求編寫的梯形圖如下圖,其工作原理如下:
1、MW0-MW10 設置掉電保護狀態(tài),軟件下載后第一次運行,M4.0--M4.3皆處于置0狀態(tài)。M4.0=0,使比較器進行的是MW2與500比較,當MW2=500時,比較器使M4.0=1、M4.1=1,向上位機發(fā)出換油信號,同時將MW2值加入VD100,再將MW2清0,如此時斷電,再接通電源,由于M4.1=1,仍發(fā)出換油指示。只有上位機發(fā)回應答信號,PLC才將M4.1清0.
2、當?shù)谝淮?/span>MW2=500比較器使M4.0=1后,M4.0始終保持1狀態(tài),所以以后的比較都是MW2與3000比較,每次比較完后,MW2值累加到VD100中,再清0,故可多次運行該程序。
4、網友求助:“八個彩燈Y0~Y7,啟動后,燈每秒亮一個,即第一秒亮Y1,第二秒亮Y1,Y2,至全亮。并且可以循環(huán)進行,并有暫停和停止功能。(西門子200)MOV,ROL我只清楚一部分的程序,不知其所 ”
我的回帖,梯形圖如下,供你參考:
動作原理:開機的第一個周期,SM0.1=1,使S0.1置1,進入S0.1程序段:按一下啟動按鈕I1.0,使M2.0=1,其前沿,使MW9=1即使M10.0=1),M2.1=1使定時器T100得電延時,延時1秒,MB10左移一位,MB10加 1 ,MB9加1,同時使M2.1=0,M2.2=1,T100斷電,T96得電延時,延時10毫秒,T96動作,M2.1=1,M2.2=0,T96斷電,T100得電延時…..當MB9=8時,將0 MW9, 使8個彩燈全滅,同時使M2.1=0、M2.2=0、M2.4=1,即 T100、T96斷電,T101得電延時,延時1秒,T101動作,M2.1=1,M2.4=0,使定時器T100得電延時…..開始第二次循環(huán)。I1.1為暫停按鈕,按一下它,使M2.7=1,其常閉點斷開,程序在原位置停下,再按一下它,使M2.7=0,其常閉點又閉合,程序從停止位置繼續(xù)進行。I1.2為停止按鈕,按一下I1.2, MW9=0,8個彩燈全滅,程序結束。
5、有一網友提出“使用定時器實現(xiàn)自由設定時鐘脈沖發(fā)生器功能(脈沖占空系數(shù)1:1)。
問題
1 對時鐘脈沖發(fā)生器的原理還是不太理解,能不能解釋一下。
2。程序中用定時器是怎么實現(xiàn)時鐘發(fā)生器功能的????
3. 題目中說可以自由設定 ?在程序中是怎么實現(xiàn)的??
總之 ,對這個程序還是不能理解,如果有高手能給詳細解釋一下就好了。 期待中。。。。。。
”
我的解答:
1、時鐘脈沖發(fā)生器的原理:當PLC工作執(zhí)行第一條指令時,由于起始時M0.0=0,故使T0得電且立刻吸合,產生250ms正脈沖(即在250ms內,T0=1),T0=1使M0.0=1,M0.0=1又使程序轉移到N001處,執(zhí)行將MW100—>QW12的操作。當延時時間=250ms時,T0斷電,即T0=0,使M0.0=0。由于M0.0=0,使程序不能執(zhí)行轉移程序指令,卻使程序執(zhí)行MW100加 1 指令。下一個掃描周期,由于M0.0=0,故使T0得電,T0=1且立刻產生250ms正脈沖,T0=1使M0.0=1,M0.0=1又使程序轉移到N001處,執(zhí)行將MW100—>QW12的工作…..就是這樣,每隔250ms,MW100加 1一次,( MW100加 1指令的執(zhí)行只占一個掃描周期,即M0.0=0的周期)此時的MW100相當是16位二進制加法計數(shù)器,計數(shù)脈沖為間隔250ms、寬度為1個掃描周期的尖脈沖,其頻率為4Hz。每出現(xiàn)一次尖脈沖,MW100計數(shù)加1 。M101.0是計數(shù)器最低位,它對計數(shù)脈沖起二分頻作用,故由它輸出的脈沖頻率為2 Hz、周期0.5S、脈寬0.25 S。M101.1是計數(shù)器次低位,它對計數(shù)脈沖起四分頻作用,由它輸出的脈沖頻率為1Hz、周期1 S、脈寬0. 5 S,以此類推。
QW12,故PLC輸出口QB12對應MB100,而QB13對應MB101。如選用Q13.1做脈沖輸出,即相當選用M101.1做輸出,即對計數(shù)脈沖4分頻,故輸出脈沖頻率=1Hz,如選用Q13.3做脈沖輸出,即相當選用M101.3做輸出,即對計數(shù)脈沖16分頻,故輸出脈沖頻率=0.25Hz。。。。選用PLC不同的輸出端,就可以得到不同的輸出頻率脈沖,這就是可以自由設定的實現(xiàn)方法。à2、由于程序執(zhí)行MW100
3、我認為上面第三個表中標注的不應該是掃描周期,應該為計數(shù)脈沖個數(shù),因為PLC的掃描周期是指從指令的第一條開始到最后一條指令為止的所用時間,而不是250ms。如程序不長,在這250ms時間內,將會出現(xiàn)很多次掃描周期。在這個程序里,M0.0=0,只存在1個掃描周期,也就在這個周期里,MW100執(zhí)行一次加1 操作。
4、該程序如將脈沖輸出式定時器(SE)改為通電延時式定時器(SD),可不用轉移指令,同樣可實現(xiàn)脈沖輸出的目的,見下圖: