Ebben a cikkben áttekintjük, milyen szoftver és hardver elemekből épül fel a Mesa kártyákkal a vezérlés, elsősorban azonban a szoftveres részre koncentrálunk.
A türelmetlenek, vagy akiket nem érdekelnek a “tudományos” részletek, ugorhatnak egyből a oldal alján a HAL fájl tartalma részhez.
A kártyákhoz a gyártó HostMot2 nevű konfigurációs állományokat, firmware-t készített. A firmware nyílt forráskódú, hordozható és rugalmasan konfigurálható.
A HostMot2 firmware két részből tevődik össze: a hostmot2 meghajtó általános célú meghajtóból és az alacsonyszintű meghajtóból, ami PCI kártyáknál hm2_pci vagy 7i43 esetében hm2_7i43.
Firmware-be három fajta modult lehet beállítani. Általában ezt a gyártó készíti el, de van lehetőség saját modulok fordítására is:
a) PWM generátor
b) Step/Dir generátor
c) kvadratúra enkóder
A gyárilag lefordított firmware modulokat a program indításakor rendelhetjük hozzá a fizikai lábakhoz, kivezetésekhez. A fel nem használt modulok be-/kimeneti lábai felszabadulnak és általános célú I/O lesz belőlük.
Kártyák és ahozzájuk tartozó gyári firmware-k
3×20 (144 I/O): hm2_pci
24-csatornás szervo
16-csatornás szervo plus 24 Step/Dir generátor
5i22 (96 I/O): hm2_pci
16-csatornás szervo
8-csatornás szervo és 24 Step/Dir generátor
5i20, 5i23, 4i65, 4i68 (72 I/O): hm2_pci
12-csatornás szervo
8-csatornás szervo és 4 Step/Dir generátor
4-csatornás szervo és 8 Step/Dir generátor
7i43 (48 I/O): hm2_7i43
8-csatornás szervo (8 PWM generátor és 8 enkóder)
4-csatornás szervo és 4 Step/Dir generátor
Az 5i25 kártyák előre programozottan érkeznek a felhasználóhoz, így azokba firmware-t nem kell már feltölteni.
A fentiek egy kicsit bonyolultan hangozhatnak, de nézzük mindezt képekben:
Vegyük sorban balról jobbra:
1) Az első a PC, rajta a Linux operációs rendszer a valós idejű rendszermaggal
2) A Linux alatt fut a LinuxCNC program
3) A hostmot2 és hm2_7i43 firmware-t betöltjük a LinuxCNC-vel. PCI kártyáknál (pl. 5i20, 3×20) a hm2_7i43 helyet a hm2_pci-t kell használni.
4) A PC párhuzamos porton kapcsolódik a 7i43 kártyához. Ez csak a 7i43 esetében van így, a többi Mesa féle FPGA kártya PCI vagy PCI Express felületen kapcsolódik, de ezen túl más architektúrális különbség nincs.
5) A Mesa 7i43 kártyába betöltjük az SVST_4 nevű BIT fájlt, ami leegyszerűsítve a PWM, Step/Dir, enkóder és általános I/O komponensek hozzárendelését végzi a fizikai lábakhoz.
6) A 7i43-hoz jelen esetben egy 7i42/TA leválasztó kártyán keresztül csatlakoznak a CNC gép vezérlési részei: kapcsolók, érzékelők, léptető motor vezérlők, stb.
A fenti rajz általánosságban igaz más Mesa konfigurációkra is. Egyszerűbb esetben és megfelelő elővigyázatosságnál kihagyható a 7i42/TA leválasztó, de a 7i43 helyére is kerülhet mondjuk az 5i20 kártya, a rendszer generális elvi felépítése ugyanaz.
Mindez egyesek számára elszomorítóan bonyolultnak hangozhat, de van egy jó hír:
A fenti architektúráról és a firmware részletekről nem feltétlenül kell tudni semmit! Ugyanis, két sort kell csak beírni a HAL fáljba, és az mindent elintéz a firmware-rel kapcsolatban. Sőt, ezt a két sort is beteszi helyettünk egy konfigurációs “varázsló” a PncConf.
A HAL file tartalma
Az általános célú modult kell először betölteni:
loadrt hostmot2
Majd következik a csatoló specifikus modul:
loadrt hm2_7i43 config=”firmware=hm2/7i43-4/SVST4_6.BIT num_encoders=1 num_pwmgens=1 num_stepgens=3″
A fenti sor azt mondja meg, hogy a 7i43-as kártya 400K kapus verzóját használjuk, a 4-szervo 6-stepper konfigurációval amiből lesz nekünk 1 enkóder, 1 PWM generátor, 3 Step/Dir modul, a többi pedig szabad felhasználású be-/kimeneti láb.
A következő cikkben már a 7i43 bekötésével, táp és vezérlő jeleivel foglalkozunk. Már ha addig nem ment el a kedve mindenkinek ettől a sok technikai részlettől 😉
Sziasztok!
A kvadratúra enkóder az mit jelent? mire használható?
Köszi,
CSaba
Szia Csaba!
Az enkóder bemeneteket használhatod a kézikerék (MPG) jeleinek feldolgozására, vagy pedig a szervó motorokról bejövő enkóder jelek fogadására.
További részleteket az enkóderekról itt találsz.
Üdv:
James