一段小程序疑惑
劉玉蓉
發(fā)布于2014-12-11 17:12
85
0
標(biāo)簽:
百度上搜索了一段關(guān)于一個(gè)按鈕控制電機(jī)正反轉(zhuǎn)的程序,按一下正轉(zhuǎn),再按一下反轉(zhuǎn),先把程序?qū)懗?br />LD SM0.0
LPS
MOVW C0, MW0
AN M0.0
AN Q0.1
= Q0.0
LPP
A M0.0
AN Q0.0
= Q0.1
調(diào)試不成功,監(jiān)控后發(fā)現(xiàn)每按一次I0.0時(shí),計(jì)數(shù)器和MW0都是加一的,但M0.0就是不轉(zhuǎn)換,憑著直覺(jué)把程序改成
LD SM0.0
LPS
MOVW C0, MW0
AN M2.0
AN Q0.1
= Q0.0
LPP
A M2.0
AN Q0.0
= Q0.1
LD SM0.0
MOVW MW0, MW2
加了這一步后,程序運(yùn)行正常,功能實(shí)現(xiàn),但還是不太清楚原因,不知道為什么。
另外還有個(gè)問(wèn)題,200的步進(jìn)指令LSCR用法,比如我的自動(dòng)控制部分用步進(jìn)指令,在故障情況下,進(jìn)入自動(dòng)或稱(chēng)為進(jìn)入步進(jìn)的條件丟失了,自動(dòng)停止,當(dāng)故障恢復(fù)時(shí),自動(dòng)條件再次滿(mǎn)足,能從上次步進(jìn)結(jié)束的步繼續(xù)進(jìn)行么,就是說(shuō)步進(jìn)循環(huán)中斷后,下次滿(mǎn)足步進(jìn)循環(huán)條件時(shí)能記住上次的步驟么,若不能,有沒(méi)有什么辦法可以讓實(shí)現(xiàn),我印象中300編程時(shí)用GRAPH是可以記住上次中斷時(shí)的步驟的,有個(gè)項(xiàng)目上也實(shí)現(xiàn)了,但不知道200如何。
佳答案
1、段程序把m0.0改為m1.0就可以了。西門(mén)子存儲(chǔ)單元是“地址低字節(jié)”所以m1.0才是MW0的低位。如圖1。
2、個(gè)人認(rèn)為,不對(duì)見(jiàn)諒??!200里面如果一個(gè)步被激活的話(huà),不用結(jié)束指令的話(huà)這一步是一直激活的,即SCR段在退出前保持激勵(lì)狀態(tài)。就是說(shuō)這一步內(nèi)產(chǎn)生了中斷,但這一步是一直激活著的,中斷回來(lái),滿(mǎn)足轉(zhuǎn)換條件還是會(huì)繼續(xù)往下執(zhí)行的。
若有收獲,就點(diǎn)個(gè)贊吧!
文章來(lái)源于網(wǎng)絡(luò)及文獻(xiàn)如有侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)
分享到:
微信掃一掃分享
閱讀與本文標(biāo)簽相同的文章