用S7-200編程的幾個實例的編程技巧解析
一、
網友求助“西門子PLC用一個按鈕控制電機啟停,不容許用中繼,可用計數(shù)器定時器…”
答復:只用PLC一條指令,就可實現(xiàn)電機啟停。見下圖:
該梯形圖編程技巧是:在SR觸發(fā)器的輸出端接Q0.0的輸出線圈,再用Q0.0的常開與常閉點串接在R、S輸入端上,這樣的編程處理可確保動作的可靠性。該梯形圖的工作原理說明,請見“用S7-200編程的三個實例解析”中的第1例。
二、
用S7-200編程,可實現(xiàn)用一個按鈕可控制電機的正傳、反轉、停車的梯形圖
該梯形圖編程技巧是:用按鈕的輸入點(I1.0)連接斷電延時定時器(T101),及通電延時定時器(T102),T101延時為0.2 S,T102延時為1 S,T101作用是防按鈕顫動而形成連發(fā)現(xiàn)象,確保按一下按鈕只產生一個脈沖(即T101)從而確保對MB5加1運算的正確性,二次連續(xù)按鈕的時間間隔控制在0.5S以下,T102 延時為 1S,故在連續(xù)按鈕時,由于間隔時間小于1S,它不斷的被切斷。只有按下按鈕不抬起(保持I1.0=1),當延時大于1S時,T102動作,其前沿將MB5的內容傳入MB6,再將MB5清0。
工作原理及操作說明:
1)開機SM0.1將MB5置1、MB6清0,由于M6.0、M6.1皆為0,使Q0.0與Q0.1都=0,故電機停止不動。
2)電機正傳運行:點擊一下按鈕(I1.0),產生一個(T101=1)的正脈沖,其后沿觸發(fā)MB5計數(shù)器,使其+1,再按下按鈕不抬起,此時MB5=0000_0010。經1秒延時,T102閉合,其前沿將MB5的內容送入MB6,隨之將MB5清0。此時M6.0=0、M6.1=1,故使Q0.0=1,電機正傳運行。隨后將按鈕抬起,T101的后沿使MB5+1,此時MB5=0000_0001。
3)電機停轉:按下按鈕不抬起,此時MB5=0000_0001。延時1秒后T102動作,T102=1的前沿,將MB5送入MB6,之后MB5清0,此時M6.0=1、M6.1=0,故Q0.0、Q0,1皆為0,電機停止轉動。當按鈕抬起時,T101的后沿觸發(fā)MB0,使MB5=1。
4)電機反轉運行:點擊二下按鈕(I1.0),產生二個(T101=1)的正脈沖,其后沿觸發(fā)MB5計數(shù)器,使其+2,再按下按鈕不抬起,此時MB5=0000_0011。經1秒延時,T102閉合,其前沿將MB5的內容送入MB6,隨之將MB5清0。此時M6.0=1、M6.1=1,故使Q0.1=1,電機反傳運行。隨后將按鈕抬起,T101的后沿使MB5+1,此時MB5=0000_0001。
該程序不需任何外圍硬件,而且程序簡短,經上機運行考驗,程序正確,動作可靠??梢詫嵱?。
三、
網友求助:“s7-300里的定時器t1,怎么循環(huán)啟動? 現(xiàn)在是,使用完一次,t1就停止了!而我想用T1實現(xiàn)每隔2秒重復一個動作!請大家?guī)兔?,謝謝!”
又提出:“其實,我就是想用定時器來實現(xiàn)每隔3秒,QB0循環(huán)右移一位。我現(xiàn)在比較菜鳥哈,希望高手們能指點詳細點,最好能有梯形圖!嘿嘿,感謝!!”
回復:“ 樓主:根據你的要求“其實,我就是想用定時器來實現(xiàn)每隔3秒,QB0循環(huán)右移一位。”我給你編出用S7-200和用S7-300編出的功能一樣的梯形圖。從圖中可以看出,S7-200由于采用字節(jié)循環(huán)右移指令,所以編出程序簡短易懂。S7-300由于沒有字節(jié)循環(huán)右移指令,就得通過編程來達到同樣的功能作用,編出的程序相對長了一些,看懂梯形圖也相對難了一點。有什么問題可以提出,我可以解答。 ”
解析梯形圖:
1、圖一是用S7200編寫的圖形圖,其編程技巧有二:(1)用通電延時定時器T101的常閉點連接T101的線圈構成振蕩器,其脈沖的低電平為3秒寬度,高電平為連續(xù)二個掃描周期的間隔時間,即只出現(xiàn)一次,故可直接用T101的常開觸點去觸發(fā)QB0的循環(huán)右移,而不需選用其前沿觸發(fā),就可確保QB0只右移一次。(2)、選用字節(jié)循環(huán)右移指令,在T101=1的這一掃描周期里將此時刻的QB0內容右移一位,同時又自動的將移出的QB0的最高位(Q0.7)送回QB0的最低位(Q0.0)(如不需循環(huán)右移,可改用字節(jié)右移一位的指令),使編程簡短易懂。
2、圖二是用S7300編寫的圖形圖,其編程技巧也是使用T101構成的振蕩器,利用該振蕩脈沖的正方波在程序掃描中只出現(xiàn)一次的特點,完成將QB0右移一位。由于S7-300沒有字節(jié)移位指令,編程是這樣處理:將QBO送入MW7的低字節(jié)MB8中,右移一位MW7,MB8也隨之右移一位, MB8的最高位移到MB7的最低位(即M8.0),再把M8.0送入M7.0中,再把MB8送回QB0,從而實現(xiàn)了將QB0內容的循環(huán)右移一位的功能,如程序不需要循環(huán)右移,可將“M7.0àM8.0”這條語句去掉就可以了。
四、
網友求助:“如何把一個字節(jié)的全部位,高位低位反向重排。”
回復:現(xiàn)用S7-200編出一個字節(jié)內容反排列的程序梯形圖,供你參考
程序解析:該程序編程的技巧就是巧妙地運用字節(jié)的循環(huán)左移與字節(jié)右移:MB10為原數(shù)據,MB12為轉換后的反排列數(shù)據,啟動此程序,先將MB0=7,再使M1.0、M1.1置1。M1.0=1,先將M10,7àM12.7,再將MB10循環(huán)左移一次,這樣原MB10的內容左移一位,原M10.0àM10.7,而MB12右移一位,M12.7àM12.6, 0àM12.7’,接著MB0減1,再判斷MB0等不等0,不等0,下一周期再進行上述移位運算及判斷,當MB0=0時,MB10循環(huán)左移7次,同時使M1.0=0,停止此段程序再運行,M1.0=0、M1.1=1,使MB10又右移一位,使MB10正好恢復原數(shù)值,而MB12的內容變?yōu)镸B10的內容的反排列數(shù)值。
由于PLC指令沒有位信號交換指令,對于字或雙字的內容反排列用此思路編程最好,對單字節(jié)也可這樣編程:將M10.7-->M12.0
五、
網友求助:“用西門子200梯形圖編寫總共有八個燈泡,通電后第一個燈泡亮三秒滅五秒接著下個燈泡亮,直到第八個燈泡亮三秒滅五秒后自動返回到第一個燈泡繼續(xù)循環(huán),你搞下,我那天面試的題目,不是很難,但也沒編好”
回復:根據你的要求用S7-200給你編出如下梯形圖.,供你參考。如有看不明白之處,可告知,給你解釋。
程序解析:該程序編程的特點,就是巧妙地運用T101、T102構成的振蕩器與MB8的循環(huán)左移相結合,使編出的程序短小精煉:T101與T02二個定時器構成負3秒正5秒的方波振蕩器,利用T102=1只占1個掃描周期將MB8循環(huán)左移一位,這樣用MB0中的各位為信號與T101的常閉點相與,去連接QB0的各個位輸出,就可達到控制目的。
評論