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