CNC ismet

Tauri elektrolista at pdg.hu
Wed Jul 20 20:08:50 CEST 2005


Hi Lista

Wednesday, July 20, 2005, 7:19:18 PM, you wrote:

Zoltan> Hali!



>> altalaban 20msec a DDA ciklus ido cnc gepeken

Zoltan> Ami 1Mhz-es 8 bitessel is 20000 oraciklus...

a hunor pl 8085-el 6.6 mhz megy
a fanuc 6 8Mhz 8086-al

Zoltan> De biztam benne, hogy irsz valamit a bedrotozott okossagokrol is..:-)
Zoltan> Engem erdekel...

akor hunor DPG(digitalis Palya Generator) cimszavakban

a DPG 1 sebesseg(18 bit) es 2 geometria osztot(24 bit) tartalmaz. Egy alap
frekibol ket a tengely iranyu sebessegel aranyos impulzus sorozatot
allit elo.
Egyenes interpolacional  a sebesseg oszto a programozott palamenti
sebessegel aranyos szamot , a geometriai osztok a tengelyenkent
megtenni kivant uttal aranyos szamot kapnak a procitol.
A sebesseg oszto a szabalyzo kortol kapott es az impulzus adok
jeleivel szinkronizalt orajelet eosztja palyamenti sebesegnek
megfeleloen.
A geometriai osztok ezt a frekit osztjak tovabb a sebesegkomponensek
aranyaban.

A kor interpolaciot nem tudom leirni hogy ertheto legyen (bar lehet az egyenes sem
volt az)
de holnap megprobalom beszkenelni.
a kort tulkep ugy csinalja hogy swbol semmit sem szamol szinte
a keruleten egy ugy nevezet "futopontot" hasznal
az egyik tengely jelado visszacsatolasa csokenti a masik tengely
kimeno impulzusait.


de van pl regi RASKIN vezerlo amiben 8 bites INTEL proci van (akkora
mint egy csaladi gyufas doboz, feher porcelan aranyozot labakkal)
a DDA a kovetkezo kepen van megvalositva.

kiszamolja hogy a kovetkezo 20msecben melyik tengelynek mennyit kell
lepni.
a lassitas gyorsitas negyzetesen tortenik (ujab gepeken gorbevel
alithato).
ez az ertek egy szamlaloba kerul. a tengelyeken levo jelado impulzusai
egy masik szamlalot leptetnek elore hatra irany fuggoen. a ket
szamlalo osszegzese kerul a D/A atalakitora ami erositon keresztul
hajtja a motort.
a az elso szamlaloba mozgas parancs erkezik akkor a ket szamlaloban
mindadig lesz kulombseg amig a tengely elnem mozdul es a masodik
szamlalo utol nem eri az elsot.
a kulombseget hivjak lemaradas regiszternek.
de forditva is mukodik. ha megprobalod kezel eltolni a tengelyt akkor
a masoik szamlaloban lesz ertek az elso hoz kepest igy megint kimegy
az alapjel es a motor reagal.
minnel nagyobb az elteres annal gyorsabban akar menni.

de swbol is kel szabalyozni a sebesseget.
a mechanika tehetetlensege miatt.

ezert tudni kell mi a kovetkezo mondat es a ketto iranyvektorabol kel
szamolni gyorsulast lassulast

ezt ezzel lehet gyorsan

dec=1-(abs((angle_1-angle_2) mod 180)*(1/180))

Ez a képlet 1-et ad, ha a két szakasz egy irányba mutat és 0-át, ha 180 fokot zárnak be
0 nal megalasig lassitani kell es ujra gyorsitani mig egynel nincs
lassitas gyorsitas

a DDA-nal mindig fix ciklus idok vannak
amikor indul a mozgas akkor 0-rol gyorsulnank a kivant sebesegre
felteve ha eleg hosszu a palya
ezert azt kell kiszamolnom hagy lepesben tudok gyorsulni es hany
lepesben lassulni.
ha meg marad akkor azokban a szeletekben a programozot sebesegel
haladok.

a DDA tulkepen azt szamolja ki hogy az adot ciklusban hanyat lep az
adott tengely.

ez az ertek regi gepeken egybol a D/A -ra kerult ujabakon van
lehetoseg osztani szorozni parameterbol.


es itt egy forras Zsoltinak es akit erdekel
x86-ra DDA interpolacio




http://www.pdg.hu/letolt.php?fid=dda.zip

a 3d.asm
"video   db      0" soraba
ha ide 0 helyet 1-et irunk akkor grafikusan rajzolja a lepeseket


command_radius  dd      1000                         - ez adja meg az
kor radiuszat

command_speed   dd      100                          ; palyamenti
sebesseg
command_x       dd      4000                          ; x elmozulas
command_y       dd      2000                          ; y
command_z       dd      1000                         ; z
command_dir     dd      0                             ; kor irany
command_plane   dd      plane_xy                      ; kor sik lehet
xy, xz, yz

high_speed      dd      1500                          ; max seb
akt_speed       dd      1000
low_speed       dd      10                            ; min seb



mukodes felkell tolteni a command regisztereket es aztan meghivni a
        "intp_3d" rutint ha egyenesen vagy az "intp_arc" rutint ha kort
        akarunk csinalni

a kimeneti listan latszik hogy gyorsit majd lassit



























More information about the Elektro mailing list