shqpxcy
級別: 略有小成
|
假設(shè)在一段直線距離上我設(shè)置了11個點,其中1個原點,依次等距離設(shè)置10個點。要求當(dāng)條件滿足時(假設(shè)m0.1=1)步進電機從原點先到1#點,假設(shè)當(dāng)m0.2=1時再返回原點,當(dāng)下一次m0.1=1,步進電機從原點到2#點,當(dāng)m0.2=1再返回原點。依此類推。 單個點的程序,我知道怎么編,用什么指令把它們集合在一起?或者說有什么方法可以快速的設(shè)置? |
---|---|
|
sjm213
有小知識,無大學(xué)問。
級別: 論壇版主
|
可以用間接尋址; LD SM0.0 ENCO MW0, MB3 MOVW +2, MW10 *I MW2, MW10 MOVD &VB100, AC1 ITDMW10, AC0 +D AC0, AC1 MOVW *AC1, VW200 ------------------------------ M0.3~M0.7、M2.0~M2.7不要再次使用; M1.0~M1.7和M0.0~M0.2分別為11個點,分別對應(yīng)地址是VW100、VW102……VW120,這11個地址儲存11個位置數(shù)據(jù); VW200是電機目標(biāo)地址; 這樣每個點ON時它對應(yīng)的地址數(shù)據(jù)就到了VW200了。 |
---|---|
|
sjm213
有小知識,無大學(xué)問。
級別: 論壇版主
|
因為地址設(shè)定是按照16位長度預(yù)設(shè)的(-32768~+32767),所以用的是VW***,這樣的話直接增1會造成地址重疊; 如果你設(shè)定的數(shù)很小,只需要255以內(nèi)的,那么就不需要×2,但是儲存地址要變成VB100、VB101……連續(xù)的11個地址。 |
---|---|
|