slslj47
梅花香自苦寒來。。
級(jí)別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 211 個(gè)
工控威望: 396 點(diǎn)
下載積分: 2807 分
在線時(shí)間: 173(小時(shí))
注冊(cè)時(shí)間: 2007-11-01
最后登錄: 2024-10-14
查看slslj47的 主題 / 回貼
樓主  發(fā)表于: 2009-12-21 08:14
相編個(gè)推桿定位的程序,省點(diǎn)錢(若是推薦用伺服啊,光柵尺,編碼器的朋友就別講了,只想靠編程省點(diǎn)錢)
前提是這樣的,有個(gè)電動(dòng)推桿,不帶反饋的,行程是300MM,速度是48MM/s
我想分一百個(gè)位置出來,即是用時(shí)間來分,(300/48=單程總時(shí)間(D0)/100=走一個(gè)位置需要的時(shí)間(d10))(忽略推桿電機(jī)的加減速時(shí)間,認(rèn)定為均速運(yùn)動(dòng),結(jié)果會(huì)不太準(zhǔn),不過沒關(guān)系)

推桿兩頭各有行程開關(guān),定位推桿走到頭即為100位,初始位為0位,要校正位置什么的這都好辦了,(回初始位再走計(jì)時(shí)定位就行了)、、



推桿自動(dòng)方面 不談了,先手動(dòng)的吧,給兩個(gè)按鈕,一個(gè)前進(jìn)的,一個(gè)后退的,均為點(diǎn)動(dòng)

要求,每次點(diǎn)動(dòng)推桿,推桿必須停在這100個(gè)位的其中一個(gè)上,

所以每次,不管正轉(zhuǎn)還是反轉(zhuǎn),點(diǎn)動(dòng)計(jì)時(shí)(d20)>=單程總時(shí)間D0時(shí),推桿一定是走到頭,或回到原位
點(diǎn)動(dòng)計(jì)時(shí)(d20)<=走一個(gè)位置需要的時(shí)間(d10)時(shí),推桿要走一個(gè)位停下來                
當(dāng)單程總時(shí)間(D0)>點(diǎn)動(dòng)計(jì)時(shí)(D20)>走一個(gè)位置需要的時(shí)間(d10)時(shí),這樣就有很多種了
比如<=2倍于d10的,就2位,~~~~~~99位~~~~~,
如果按這樣來分,那編程的條件工作就太多了,前進(jìn),還是后退,還要分兩種情況!看似沒有一千步搞不定。
想請(qǐng)問兄弟 們,有沒簡(jiǎn)單的編程方法啊,大家八仙過海各顯神通。交流下~!~~!





引用
引用第1樓wenrong于2009-12-21 11:42發(fā)表的  :
這個(gè)簡(jiǎn)單不知道你想在什么價(jià)格內(nèi)完成吧!要不然偶不好推薦哦!

哇,大哥,看明白我寫的前提沒,就是編程簡(jiǎn)化的方法,就個(gè)PLC就是了,你還想推薦我用什么高科技設(shè)備啊,考驗(yàn)智者編程技巧的時(shí)候到了
!~!~~!~!

昨天已把那繁瑣的程序?qū)懞昧耍。!試過了,真煩人。!

今天打開也沒見人回,是不是天冷了人都懶了啊,同志們?cè)劭刹荒懿凰歼M(jìn)取啊,咱的志向可是有朝一日讓日本鬼子,德國鬼子都用咱中國的工控產(chǎn)品!
[ 此帖被slslj47在2009-12-22 08:47重新編輯 ]
sjm213
有小知識(shí),無大學(xué)問。
級(jí)別: 論壇版主

精華主題: 7 篇
發(fā)帖數(shù)量: 5196 個(gè)
工控威望: 7419 點(diǎn)
下載積分: 158680 分
在線時(shí)間: 3155(小時(shí))
注冊(cè)時(shí)間: 2007-11-21
最后登錄: 2024-11-15
查看sjm213的 主題 / 回貼
1樓  發(fā)表于: 2009-12-22 12:57
引用
引用第5樓slslj47于2009-12-22 09:25發(fā)表的  :
這樣看來還不如加裝旋轉(zhuǎn)編碼器,價(jià)位差不多,使用壽命長(zhǎng),簡(jiǎn)單方便!
.......

到底是想要省錢,還是要保證設(shè)備的性能?
300mm分100份就是3mm的單位長(zhǎng)度,以48mm/s的速度來看,每個(gè)單位長(zhǎng)度行進(jìn)的時(shí)間也就是0.0625s,即6.25ms。那么PLC掃描時(shí)間多長(zhǎng)?IO響應(yīng)時(shí)間多少?
所以樓主還是要多想想軟件是否能夠完全滿實(shí)現(xiàn)硬件的功能。
==============================
至于分2~99位,你直接用個(gè)DIV指令。D20/D10得到的就是要是第幾位。