高下勞動(dòng)
級(jí)別: 探索解密
|
這是我把修改的程序部分如圖所示:原程序中d14和d16是 分開的,分別控制兩段行程。后來我把d14和d16做了一個(gè)加法運(yùn)算放d58.出現(xiàn)了一個(gè)問題。運(yùn)行一一天 就會(huì)偶而出現(xiàn)那么一兩次y0脈沖數(shù)據(jù)還沒有 達(dá)到伺服就莫名停止了工作。y0前面的 點(diǎn)都是接通的。 想不 明白造成程序部 不 穩(wěn)定的 因素在 哪里 |
---|---|
|
hsqknx
級(jí)別: 工控俠客
|
仔細(xì)看看是不是同時(shí)觸發(fā)了兩條脈沖指令 看你的程序完全有可能這樣 |
---|---|
|
lijinniu
級(jí)別: 工控俠客
|
問題出現(xiàn)在M20與M21最前面的比較命令上了。在這里找一找原因。 |
---|---|
|
gufan8099663
級(jí)別: 略有小成
|
DMUL是雙字節(jié)乘法通道互相干涉,程序會(huì)把D178,D179的值乘以K200放在D14,D15,D16,D17里面,所以D16,D17被雙重占用,如果數(shù)值小沒有發(fā)生溢出就沒問題,數(shù)值一大通道就打架了 |
---|---|
|
二手工控電器
且行且珍惜
級(jí)別: 工控俠客
|
這應(yīng)該是犯了最低級(jí)的數(shù)據(jù)寄存器使用間隔錯(cuò)誤! |
|
---|---|---|
|
理論初學(xué)者
有需要才有進(jìn)步,俺不管啥都會(huì)滿足你!
級(jí)別: 家園常客
|
那原來程序也是這樣使用為什么不打架呢?只是在下面做了個(gè)加運(yùn)算就打架有點(diǎn)說不過去吧。 |
---|---|
|
高下勞動(dòng)
級(jí)別: 探索解密
|
果然是 一語驚醒夢中。 原來是 一直以為32位只帶兩個(gè)寄存器,沒往這里 想沒仔細(xì)看手冊(cè)吃了 虧。 不過原作也是 這樣程序用了好久都沒 問題 ,因?yàn)橛玫?2位 數(shù)值也排除溢出的 可能。我 只用dadd把d14和d16相加怎么就變得 不 穩(wěn)定呢 ? 再次請(qǐng)教 |
---|---|
|