řízení KM s MCU

Odpovědět
atlan
Příspěvky: 3382
Registrován: 7. 2. 2011, 9:12

5. 3. 2016, 12:34

Len 600? To je pohoda. Ked som pisal riadenie zosilnovaca v assembleri malo to cez 6000 riadkov :)
expertdb
Příspěvky: 608
Registrován: 20. 5. 2011, 7:25
Bydliště: Valašsko

5. 3. 2016, 1:26

pafik píše:Sím, sím, pane profesore. Mě by stačila :D
šprte!! :D

Něco jsem spáchal a kupodivu to chodí :shock: .

Kód: Vybrat vše

setfreq m32

start:
pwmout pwmdiv64, b.2,0,0        ;vypne motor
if pinc.3=0 then goto dolu      ;při stisknutí tlačítka T1 se provede odskok na smyčku chod dolů
goto start

dolu:                           ;smyčka pro chod dolů
if pinc.3=0 then dolu           ;pokud je stále stisknuto tlačítko T1 program se zacyklí a "čeká" na jeho uvolnění
high b.5                        ;nastaví směr otáčení motoru pro pohyb dolů
readadc c.0,b3                  ;načte rychlost otáčení z potenciometru
for b0= 150 to b3 step -1
let w2=b0*4 
pwmout pwmdiv64, b.2,b0,w2
pause 40 
if b0=b3 then pwmout pwmdiv64, b.2,b0,w2
endif
next
pokracuj:
if pinc.1=0 then goto nahoru      ;při najetí na spodní koncák K1 odskok na smyčku nahoru
if pinc.2=0 then goto start       ;při najetí na horní koncák K2 následuje odskok na začátek programu a tím jeho ukončení
if pinc.3=0 then goto pauza       ;při stisknutí tlačítka T1 se provede odskok na smyčku pauza
if pinc.4=0 then goto start       ;estop
goto pokracuj

nahoru:                           ;smyčka pro chod motoru nahoru
low b.5                           ;nastaví směr otáčení motoru pro pohyb nahoru
readadc c.0,b0                    ;načte rychlost otáčení z potenciometru
let w2=b0*4             
pwmout pwmdiv64, b.2,b0,w2
if pinc.2=0 then goto start       ;při najetí na horní koncák K2 následuje odskok na začátek programu a tím jeho ukončení
if pinc.4=0 then goto start       ;estop
goto nahoru

pauza:           
pwmout pwmdiv64, b.2,0,0          ; zastavení posuvu motoru dolů
if pinc.3=0 then pauza            ;pokud je stále stisknuto tlačítko T1 program se zacyklí a "čeká" na jeho uvolnění
pauza1:
if pinc.3=1 then pauza1
pauza2:
if pinc.3=0 then nahoru           ;při opětovném stisknutí tlačítka T1 se provede odskok na smyčku pro posuv nahoru
goto pauza1

Přidal jsem tam tlačítko pro stopku aby to šlo zastavit při jakémkoli posuvu . Ale bude asi lepší vyvést výstup přímo na EN v driveru.
Rotwerk 300
Sieg SX2L homemade cnc
Uživatelský avatar
pafik
Příspěvky: 2915
Registrován: 10. 2. 2013, 5:07
Bydliště: Praha 4

5. 3. 2016, 2:22

expertdb píše:
pafik píše:Sím, sím, pane profesore. Mě by stačila :D
šprte!! :D
A švestičky ...... :D
Uživatelský avatar
jova
Příspěvky: 2545
Registrován: 2. 11. 2007, 1:40
Bydliště: Chýnov to je kousek od Tábora
Kontaktovat uživatele:

5. 3. 2016, 2:44

Osobně jsem to měl na mysli spíše takto:

Kód: Vybrat vše

setfreq m32

start:
pwmout pwmdiv64, b.2,0,0     ;vypne motor
if pinc.3=0 then goto dolu    ;při stisknutí tlačítka T1 se provede odskok na smyčku chod dolů
goto start

dolu:                            ;smyčka pro chod dolů
if pinc.3=0 then dolu     ;pokud je stále stisknuto tlačítko T1 program se zaciklí a "čeká" na jeho uvolnění
high b.5                        ;nastaví směr otáčení motoru pro pohyb dolů
readadc c.0,b3              ;načte rychlost otáčení z potenciometru
for b0= 255 to b3 step -1
let w2=b0*4
pwmout pwmdiv64, b.2,b0,w2
pause 300
if pinc.1=0 then goto nahoru      ;při najetí na spodní koncák K1 odskok na smyčku nahoru
if pinc.3=0 then goto pauza  
next
dal:
if pinc.1=0 then goto nahoru      ;při najetí na spodní koncák K1 odskok na smyčku nahoru
if pinc.3=0 then goto pauza        ;při stisknutí tlačítka T1 se provede odskok na smyčku pauza
goto dal

nahoru:                     ;smyčka pro chod motoru nahoru
low b.5                     ;nastaví směr otáčení motoru pro pohyb nahoru
readadc c.0,b0         ;načte rychlost otáčení z potenciometru
let w2=b0*4             
pwmout pwmdiv64, b.2,b0,w2
if pinc.2=0 then goto start         ;při najetí na horní koncák K2 následuje odskok na začátek programu a tím jeho ukončení
goto nahoru

pauza:           
pwmout pwmdiv64, b.2,0,0       ; zastavení posuvu motoru dolů
if pinc.3=0 then pauza                ;pokud je stále stisknuto tlačítko T1 program se zaciklí a "čeká" na jeho uvolnění
pauza1:
if pinc.3=1 then pauza1
pauza2:
if pinc.3=0 then nahoru         ;při opětovném stisknutí tlačítka T1 se provede odskok na smyčku pro posuv nahoru
goto pauza1
Mělo by ti to ohlídat ten spodní koncák a tlačítko i při rozjezdu.
Testoval jsem to jen v simulátoru tak to snad bude funkční.
Uživatelský avatar
jova
Příspěvky: 2545
Registrován: 2. 11. 2007, 1:40
Bydliště: Chýnov to je kousek od Tábora
Kontaktovat uživatele:

5. 3. 2016, 3:08

atlan píše:Len 600? To je pohoda. Ked som pisal riadenie zosilnovaca v assembleri malo to cez 6000 riadkov :)
Zase takový borec nejsem :D Mám v tom PICAXE k dispozici jen 4KB a ty už jsou skoro plné.
pafik píše:Nevím, jaký to maj bejt hodiny, ale narazíš na přesnost; ten picaxe nemá hodiny řízený krystalem. Musíš dát externí oscilátor.
Je to na věžní hodiny, takže přesný čas mi hlídá RTC obvod. Ten PICAXE otáčí jednou za minutu krokovým motorem a tím i rafikami, srovná rafiky na správný čas po výpadku proudu, řeší přechody na zimní / letní čas, řídí bití 1/4tek a celých hodin, vypíná na noc bití...
O to víc obdivuji staré mistry, kteří tohle dokázali „naprogramovat“ jen do koleček.
expertdb
Příspěvky: 608
Registrován: 20. 5. 2011, 7:25
Bydliště: Valašsko

5. 3. 2016, 3:17

jova píše: 14. na výstup B.2 se odešle hodnota PWM
15. chvíli se počká
16. zkontroluje se podmínka zda b0>b3. Pokud ano, program se vrací na ř.12, pokud b0=b3, pokračuj dál.
17. kontroluje se zda už motor dojel na koncák


Až potud je to vše tak jak jsme chtěli. Ale pak přijde řádek 19. a na něm tomu programu říkáš, že si to má vše znovu zopakovat! Ale to ty přeci nechceš. Ty potřebuješ, aby program pokračoval dál s konečnou hodnotou PWM po té smyčce for-next a zároveň kontroloval to tlačítko s koncákem. Takže tím řádkem 19. ho nesmíš poslat na začátek, ale do místa za tu smyčku (tam je už to PWM nastaveno), před ten koncák a tlačítko které musí kontrolovat!

Jasně že to funguje. Zmátl mně ten řádek 16. Je tam příkaz "next", nevidím tam žádnou kontrolu podmínek b0,b3 :oops: . A pak ještě nerozumím, proč kontrolovat to tlačítko s koncákem. Jo je to holt složité.....
Rotwerk 300
Sieg SX2L homemade cnc
Uživatelský avatar
jova
Příspěvky: 2545
Registrován: 2. 11. 2007, 1:40
Bydliště: Chýnov to je kousek od Tábora
Kontaktovat uživatele:

5. 3. 2016, 3:41

Tu kontrolu podmínky b0,b3 ti vlastně hlídá ta smyčka FOR-NEXT.
Přesněji řádek: for b0= 255 to b3 step –1, který říká odečítej od b0 –1 a ten NEXT to vrací pořád zpět, dokud se nebude ta b0 rovnat hodnotě b3. A všechno co je mezi ním a tím příkazem NEXT se tolikrát bude opakovat, kolikrát ta smyčka proběhne.
No a to tlačítko a koncák v té smyčce hlídám proto, protože se třeba může stát, že nastavíš tak malou vzdálenost, že než proběhne to zrychlení už budeš na koncáku. A takhle by ti to mělo zastavit i při tom zrychlení po pár krocích.
expertdb
Příspěvky: 608
Registrován: 20. 5. 2011, 7:25
Bydliště: Valašsko

5. 3. 2016, 3:53

Ahá, díky moc za polopatické vysvětlení. Nechám Tě teď odpočinout, než si zase něco vymyslím :) . Příště si zkusím zobrazit ty proměnné na display. No to zas bude.... :D . Ještě jednou díky.
Rotwerk 300
Sieg SX2L homemade cnc
Uživatelský avatar
pafik
Příspěvky: 2915
Registrován: 10. 2. 2013, 5:07
Bydliště: Praha 4

6. 3. 2016, 10:20

To tě nechali dělat řízení hodin na tu vaší věž?
Uživatelský avatar
jova
Příspěvky: 2545
Registrován: 2. 11. 2007, 1:40
Bydliště: Chýnov to je kousek od Tábora
Kontaktovat uživatele:

6. 3. 2016, 11:46

To ne :D Tam je funkční stroj od Hainze.
Tohle je do jedné nedaleké vesnice, kde už se ten stroj nevyplatí opravovat, tak se tam dá ten krokový motor a ostatní musí nahradit elektronika.
Uživatelský avatar
pafik
Příspěvky: 2915
Registrován: 10. 2. 2013, 5:07
Bydliště: Praha 4

6. 3. 2016, 6:10

Znáš to rčení, že každý dobrý skutek musí být po zásluze potrestán? Jen počkej, až se to poprvé zastaví, třeba po úderu blesku do věže. "To si zase někdo namastil kapsu, a už to nejede....." :D
testone
Sponzor fora
Příspěvky: 7388
Registrován: 3. 12. 2010, 5:56
Bydliště: Slaný

6. 3. 2016, 6:18

jova píše:To ne :D Tam je funkční stroj od Hainze.
Tohle je do jedné nedaleké vesnice, kde už se ten stroj nevyplatí opravovat, tak se tam dá ten krokový motor a ostatní musí nahradit elektronika.
Jestlipak ten krokáč a spol. vydrží taky alespoň těch možná 100, možná 300 let co ten stroj co se už nevyplatí opravovat?
když už, tak to aspoň zdokumentujte a dejte do rohu do bedny.....
NE digi foťákem!!!
Obvykle se dějí věci obvyklé. Méně často se dějí věci neobvyklé a zcela vyjímečně se dějí věci vyjímečné...
Masturn 40 CNC, Hermle UWF1200H CNC a pár klasik
http://www.radialengine.cz" onclick="window.open(this.href);return false;
http://www.autopejsek.cz" onclick="window.open(this.href);return false;
Uživatelský avatar
jova
Příspěvky: 2545
Registrován: 2. 11. 2007, 1:40
Bydliště: Chýnov to je kousek od Tábora
Kontaktovat uživatele:

6. 3. 2016, 9:56

Pláčete chlapci nad špatným hrobem. O tom zda se něco opraví nebo ne, rozhodují jiní a hlavně finanční situace daného majitele. A iluze, že na věžích tikají jen mechanické hodiny je bohužel taky dost scestná. :-( Většinou se vyhazují kyvadla a dávají tam různé elektricky řízené komponenty, a nebo se rovnou rafičky napojí na elektromotor. Doby, kdy se chodilo na věž natahovat závaží už jsou nenávratně pryč. Dneska je to samé DCF.
Uživatelský avatar
Pepa z depa
Příspěvky: 1778
Registrován: 2. 12. 2012, 9:31
Bydliště: Hostěradice (Znojemsko)

7. 3. 2016, 6:12

Zdar chlapi, nechci zakládat nové vlákno, mohl by mi někdo dát odkaz na Aliexpress (ale jen tam) na nějaké univerzální řízení KM z tiskáren, ploterů a tak, mám jich spousty, popř. na co se tam dívat, asi voltáž a ... stačí jen Vlevo, Vpravo + Rychlost, jde mi o velmi pomalý pohyb ... fotoslider a pod. :D
Děkuji předem
Žiju abych tvořil, tvořím abych žil. www.PePeSysel.cz
máša: vřeteno voda 1,5kW, měnič Delta, 2Nm 3f 60V krokáče, Yako drivery, lineáry a kuličkáče Hiwin,
vynikající Gravos GVE-64 na 125kHz, rám 8mm ocel vylita plastbetonem, vše na masivním litinovém stole.
Uživatelský avatar
jova
Příspěvky: 2545
Registrován: 2. 11. 2007, 1:40
Bydliště: Chýnov to je kousek od Tábora
Kontaktovat uživatele:

7. 3. 2016, 6:43

Na to co potřebuješ asi toto: http://es.aliexpress.com/store/product/ ... 658895f8d2
Budeš k tomu muset ještě vzít nějaký driver podle typu motoru. Když by driver uměl 16 mikrokroků a motor měl 200kroků na otáčku, tak by jsi se, jestli jsem to dobře počítal, měl dostat na 1 otáčku za 40sekund.
Ale s tím procesorem budeš mít mnohem víc možností: http://www.jova1.cz/ostatni/slider/slider.html
Odpovědět

Zpět na „Ostatní elektronika“