Kézikerék (MPG) a második párhuzamos porton

Első lépésként, hogy derítsük ki a gépben levő második párhozamos port címét.

Terminál ablakba írjuk be ezt: dmesg | grep parport

Ahogy már volt róla szó, a dmesg kiírja az utolsó rendszerüzeneteket. Köztük van az a sor is, amelyikben a kernel felismeri a párhozamos portot. Tehát a rendszerüzeneteket betoljuk a grep parancsnak (egy függőleges vonallal: Alt-W), így csak azokat a sorokat kapjuk, amelyekben szerepel a parport szó.

Nekem ez valahogy így néz ki:
[ 12.019259] parport_pc 00:07: reported by Plug and Play ACPI
[ 12.019282] parport0: PC-style at 0x378, irq 7 [PCSPP,TRISTATE,EPP] . .
[ 12.185883] parport_serial 0000:04:00.0: PCI INT A -> GSI 20 (level, low) -> IRQ 20
[ 12.185905] parport1: PC-style at 0xdd00 [PCSPP,TRISTATE,EPP]

Ebből következik a két kártya címe: 1. 0x378, ez az alaplapi (0x1234 a hexadecimális cím megadásának formátuma) 2. 0xdd00, ez a PCI portos, és ezt kell konfigurálni.

Nyisd meg a HAL fájlt és ami eddig loadrt hal_parport cfg=0x378 volt az cseréld le erre: loadrt hal_parport cfg="0x378 0xdd00 in"

Ennek hatására az történik, hogy az első számú párhuzamos port címe marad, és mivel nem írtunk hozzá irányt (in, out) ezért alapértelmezetten kimeneti out míg a második port bemeneti lesz (in).

Majd a következő sor elé illeszd be a következőt: addf parport.1.read base-thread addf parport.1.write base-thread

Ha minden rendben van, akkor a LinuxCNC következő indításakor nincs hibaüzenet és felismerte a második kártyát.

Most egy kis kitérő, ugyanis definiálnunk a kezelőszerveket.

Feltételezzünk egy eléggé minimalista hardver konfigurációt:

1) Kézikerék (MPG): ennek van két betáp (5V, GND) lába és a két enkóder kimenete (A,B)

2) Tengely választó kapcsoló, minimálisan 3 tengely közül választanánk (X,Y,Z)

3) Lépés választó forgókapcsoló, amivel a lépés mértékét tudjuk állítani (1.0, 0.1, 0.01)

Ennek megfelelően a HAL fájl ezzel bővülne:

loadrt encoder num_chan=1
loadrt mux4 count=1

addf encoder.capture-position servo-thread
addf encoder.update-counters base-thread
addf mux4.0 servo-thread
setp axis.0.jog-vel-mode 0
setp axis.1.jog-vel-mode 0
setp axis.2.jog-vel-mode 0
setp mux4.0.in0 1
setp mux4.0.in1 0.1
setp mux4.0.in2 0.01
net scale1 mux4.0.sel0 <= parport.1.pin-09-in
net scale2 mux4.0.sel1 <= parport.1.pin-08-in
net pend-scale axis.0.jog-scale <= mux4.0.out
net pend-scale axis.1.jog-scale
net pend-scale axis.2.jog-scale
net mpg-a encoder.0.phase-A <= parport.1.pin-02-in
net mpg-b encoder.0.phase-B <= parport.1.pin-03-in
net mpg-x axis.0.jog-enable <= parport.1.pin-04-in
net mpg-y axis.1.jog-enable <= parport.1.pin-05-in
net mpg-z axis.2.jog-enable <= parport.1.pin-06-in
net pend-counts axis.0.jog-counts <= encoder.0.counts
net pend-counts axis.1.jog-counts
net pend-counts axis.2.jog-counts

A folytatásban elemezzük majd mit is jelentenk a fenti sorok.

This entry was posted in Cikkek. Bookmark the permalink.

One Response to Kézikerék (MPG) a második párhuzamos porton

  1. Kolala says:

    Egy olyan minta is kellene ahol, két mpg egyszerre üzemel az esztergán!
    Felvetődik a kérdés, hogyan tudom ki be kapcsolni a használatát az eszterga felületen?és az inkrementet hogyan állítom?lehetne fix 0,01mm hogy ne kelljen kapcsoló egyelőre!

Minden vélemény számít!