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