標(biāo)題: 小弟用PLC,控制步進(jìn)電機(jī)PLC內(nèi)部有當(dāng)前坐標(biāo)用來定位,用單片機(jī)怎樣定位呢? [打印本頁]

作者: 一扥的家    時間: 2019-3-16 11:45
標(biāo)題: 小弟用PLC,控制步進(jìn)電機(jī)PLC內(nèi)部有當(dāng)前坐標(biāo)用來定位,用單片機(jī)怎樣定位呢?
請教各位前輩
作者: hhh402    時間: 2019-3-16 13:03
步進(jìn)電機(jī)本身是沒有定位的,需要定位時要使用兩個限位開關(guān),最大、最小處各一個限位開關(guān)。單片機(jī)啟動時先控制步進(jìn)電機(jī)走到最小處,當(dāng)最小限位開關(guān)打開時這就是步進(jìn)電機(jī)的0點;再控制步進(jìn)電機(jī)走到最大處,當(dāng)最大限位開關(guān)打開時這就是步進(jìn)電機(jī)的最大點。每次重新啟動單片機(jī)都需要重新尋找0點和最大點。如果不想每次開機(jī)都重新尋找0點和最大點可以在單片機(jī)關(guān)機(jī)前將當(dāng)前位置數(shù)據(jù)保存在EEPROM中,下次啟動直接從EEPROM中讀取當(dāng)前位置數(shù)據(jù)。
作者: 一扥的家    時間: 2019-3-16 15:04
hhh402 發(fā)表于 2019-3-16 13:03
步進(jìn)電機(jī)本身是沒有定位的,需要定位時要使用兩個限位開關(guān),最大、最小處各一個限位開關(guān)。單片機(jī)啟動時先控 ...

大哥你好 請問單片機(jī)該怎么記錄當(dāng)前位置呢  這個當(dāng)前位置的數(shù)值從哪里記錄
作者: 一扥的家    時間: 2019-3-16 15:40
hhh402 發(fā)表于 2019-3-16 13:03
步進(jìn)電機(jī)本身是沒有定位的,需要定位時要使用兩個限位開關(guān),最大、最小處各一個限位開關(guān)。單片機(jī)啟動時先控 ...

那步進(jìn)電機(jī)定位的當(dāng)前值這個數(shù)據(jù)我怎么知道呢
作者: zhb2004xp    時間: 2019-3-16 21:40
一扥的家 發(fā)表于 2019-3-16 15:40
那步進(jìn)電機(jī)定位的當(dāng)前值這個數(shù)據(jù)我怎么知道呢

步進(jìn)了多少步,這個是可以控制的
作者: hhh402    時間: 2019-3-16 23:40
單片機(jī)啟動時先控制步進(jìn)電機(jī)走到最小處,當(dāng)最小限位開關(guān)打開時這就是步進(jìn)電機(jī)的0點;再控制步進(jìn)電機(jī)走到最大處,當(dāng)最大限位開關(guān)打開時這就是步進(jìn)電機(jī)的最大點。記錄這個最大值(設(shè)為a);整個步進(jìn)電機(jī)的范圍就是0-a;這時候步進(jìn)電機(jī)的坐標(biāo)就是a,假如我想讓步進(jìn)電機(jī)走到30%的地方那我就控制步進(jìn)電機(jī)往最小處走ax70%步,這是步進(jìn)電機(jī)的坐標(biāo)就是ax30%;如果想走到40%的地方就控制電機(jī)往最大處走ax(40%-30%),這是坐標(biāo)為ax40%;如果這個時候要關(guān)機(jī),就將當(dāng)前坐標(biāo)ax40%寫入EEPROM中,下次重啟讀取EEPROM中數(shù)據(jù)就可以知道當(dāng)前坐標(biāo)為ax40%
作者: 一扥的家    時間: 2019-3-17 07:49
hhh402 發(fā)表于 2019-3-16 23:40
單片機(jī)啟動時先控制步進(jìn)電機(jī)走到最小處,當(dāng)最小限位開關(guān)打開時這就是步進(jìn)電機(jī)的0點;再控制步進(jìn)電機(jī)走到最 ...

所以說走到最大的點這個值怎么計算,PLC我知道有系統(tǒng)已經(jīng)提供的當(dāng)前坐標(biāo),單片機(jī)肯定是自己計算,那該怎么計算呢
作者: 一扥的家    時間: 2019-3-17 07:49
zhb2004xp 發(fā)表于 2019-3-16 21:40
步進(jìn)了多少步,這個是可以控制的

怎么控制呢,有沒有以前做過的案例推薦給小弟看看
作者: hhh402    時間: 2019-3-17 10:06
步進(jìn)電機(jī)走到0后,單片機(jī)控制電機(jī)往最大方向走,每走一步累加器+1,同時檢測檢測最大限位開關(guān)信號,當(dāng)?shù)谝淮螜z測到最大限位開關(guān)信號時累加器的數(shù)值就是最大值。
作者: 一扥的家    時間: 2019-3-17 11:09
hhh402 發(fā)表于 2019-3-17 10:06
步進(jìn)電機(jī)走到0后,單片機(jī)控制電機(jī)往最大方向走,每走一步累加器+1,同時檢測檢測最大限位開關(guān)信號,當(dāng)?shù)谝?...

以ULN2003為例,正轉(zhuǎn)時依次動作0X01 0X02 0X04 0X08 當(dāng)動作完以后計數(shù)值計1,走到最大是用code存入芯片內(nèi)部,此時的計數(shù)值就是最大坐標(biāo) 當(dāng)反轉(zhuǎn)時動作0X08 0X04 0X02 0X01 4個動作完以后減1  我理解的意思對嗎
作者: 一扥的家    時間: 2019-3-17 12:18
zhb2004xp 發(fā)表于 2019-3-16 21:40
步進(jìn)了多少步,這個是可以控制的

以ULN2003為例,正轉(zhuǎn)時依次動作0X01 0X02 0X04 0X08 當(dāng)動作完以后計數(shù)值計1,走到最大是用code存入芯片內(nèi)部,此時的計數(shù)值就是最大坐標(biāo) 當(dāng)反轉(zhuǎn)時動作0X08 0X04 0X02 0X01 4個動作完以后減1  我理解的意思對嗎
作者: hhh402    時間: 2019-3-17 12:43
對的,坐標(biāo)的原點就是最小值0,最大值就是a,也可以用百分比表示

坐標(biāo).JPG (11.29 KB, 下載次數(shù): 31)

坐標(biāo).JPG

作者: hhh402    時間: 2019-3-17 12:59
完成一次正轉(zhuǎn)就+1,完成一次反轉(zhuǎn)就-1,需要注意的是運行一段時間后需要進(jìn)行0位校準(zhǔn),避免步進(jìn)電機(jī)出現(xiàn)丟步時的錯誤,具體做法是反轉(zhuǎn)a+10步(有最小限位開關(guān)不會出問題),這時就是真正0點。然后在正傳回到你需要的地方。太長時間不做0位校準(zhǔn)有出錯的風(fēng)險。
作者: 一扥的家    時間: 2019-3-17 13:44
hhh402 發(fā)表于 2019-3-17 12:59
完成一次正轉(zhuǎn)就+1,完成一次反轉(zhuǎn)就-1,需要注意的是運行一段時間后需要進(jìn)行0位校準(zhǔn),避免步進(jìn)電機(jī)出現(xiàn)丟步 ...

明白了 多謝多謝 好人一生平安




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1