sobota 11. dubna 2015

CNC 3040Z-DQ a LinuxCNC (EMC2) - opraveno, doplněno

V tomto článku se budeme věnovat nastavení CNC kontroléru v LinuxCNC (dříve EMC2) pro práci s CNC 3040Z-DQ.



Úvodem

Aby váš stroj správně pracoval, je potřeba jej řídit. A aby si řídící systém rozuměl se strojem, je potřeba jej správně zkonfigurovat.

OS LinuxCNC je verze Linuxu vycházející z Debianu, ale s realtime kernelem.

Proč LinuxCNC?

Dobrá otázka. Vyrostl jsem na Windows, které mě i živí a pokud opravdu nemám pádný důvod, držím se svého kopyta. Nicméně LinuxCNC nabízí za málo peněz hodně muziky. A taky MACH3 (a MACH4) dosti podražil, tak proč to nezkusit.

Jak začít

Asi nejlepší bude stáhnutí live verze LinuxCNC (to je ta, kterou lze spustit jen z DVD nebo z flash disku) a otestovat kdejakou vykopávku na Base Period Maximum Jitter.

Base Period Maximum Jitter

Kolem této hodnoty se točí vše. Pokud je do 35000, tak je vše v pohodě, jinak hledejte dál. Dle informaci na internetu jsou vhodné desky ASUS s procesorem Intel. AMD je kupodivu naprosto nevhodné. Některé naprosto výkonné stroje se spoustou paměti mají tuto hodnotu mizernou (i 300000), naproti tomu plečky s půlgigem paměti a jednojátrem jsou v pohodě. Takže pátrejte a vybírejte...

Zjišťujeme Base Period Maximum Jitter

Po startu OS klikneme na Nabídka aplikací / CNC / Latency Test.


Pak si pustíme prohlížeč, mrknem na své oblíbené pornostránky, nějaký YouTube, něco zkopírujeme na disk a případně i na síť. A to celé budeme provozovat cca 15 minut. Pokus můžeme ukončit v případě, že hodnota překročí výše zmíněných 35000. To se pak poohlídneme po jiném stroji (na webu jsou i informace, jak tuto hodnotu stáhnout nastavením v Biosu, případně zkusíme vyladit ten, co máme. Ladění je dost alchimie, takže se kouzlí s ovladači grafických karet, v Biosu se vypíná a zapíná kdejaký přepínač...

Osobně mám tuto desku: HP and Compaq Desktop PCs - MS-7525 (Boston). Jitter je kolem 50000 a to je za hranou, na pokusy ok, ale vrtám se v nastavení dál. Po nastavení grafiky na 1024x768 klesl Jitter pod 35000.

Doplněno: Z práce jsem si půjčit 3 grafické karty, jedna nejela vůbec, ta co měla na sobě nápis HP zvedla jitter hned na 200000 a ta třetí jej stáhla na nějakých 15 000. Tak už toho asi nechám. Stačí...

Nastavujeme LinuxCNC

Jelikož mám CNC připojený k paralelnímu portu, nastavuji programem Stepconf Wizard (Nabídka aplikací / CNC / LinuxCNC Stepconf Wizard.

StepConf

Obligátní úvodní obrazovka, klikneme na Start.


Start

Tady si již vybereme, zda budeme vytvářet novou konfiguraci, či budeme konfigurovat nějakou stávající (zde upravuji již nějakou existující).

Spodní zatržítka vyrobí na ploše simlink na konfigurační soubory, a/nebo vytvoří zástupce na spuštění LinuxCNC s editovaným konfiguračním souborem.

Zvolíme a klikneme na Forward.


Protože jsem zadal editaci již existujícího nastavení, otevře se dialog pro jeho výběr.


Base information

Machine Name - svůj stroj si nějak pojmenujte. Já zvolil nápaditě CNC 3040
Configuration directory - informace o místě uložení konfiguračního souboru, zvlášť mě, příchozímu z Windows, se to hodí, neboť nejsem v organizaci adresářů a souborů na Linuxu nijak zběhlý.
Axis configuration - volím klasickou orientaci os, tedy XYZ.
Reset Default machine units - jsme moderní národ, takže milimetry. (metrická soustava byla na našem území zavedena 23.července 1871). Kolébka demokracie a kolonií nechť si měří nadále v podílech vzdálenosti špičky nosu a konce palce upažené ruky anglického krále Jindřicha I. (palec je 1/36 yardu, dříve šířka palce nebo délka tří zrn ječmene)
Driver type - jelikož mám klasický paralelní port, tak Other.
Step Time, Step Space, Direction Hold, Direction Setup - netuším, jak je to správně, valného vlivu na funkci nepozoruji, tak dávám hodnoty vyčtené z diskuzních fór. Neberu to na lehkou váhu, tak budu nad tím ještě bádat. Hodnoty pro MACH3 jsou Step Pulse 20 ns, Dir Pulse 3 ns, z čehož nejsem moc chytrý.
One Parport - stroj mám připojen na jeden paralelní port, tak je volba jasná.
Base Period Maximu jitter - o této hodnotě byla řeč v minulém odstavci. Pokud ji podstřelíte, bude pohyb krokových motorů nerovnoměrný. Pokud bude hodnota moc vysoká, budou otáčky a pohyb motorů hooodně pomalé.
Tlačítko Test Base Period Jitter - zde můžete spustit test a zjistit hodnotu Jitteru. Spustí se stejná aplikace, jak je popsána v odstavci Zjišťujeme Base Period Maximum Jitter.
Min Base Period - nevím
Max step rate - udává, jakou frekvencí

Nastavíme hodnoty a klikneme na Forward.

Poznámka: hodnoty časů jsou zadávány v nanosekundách (ns). MACH3 je udává v mikrosekundách (us, µs), proto ty machovské musíte vynásobit 1000.


Parallel Port 1

Tady se nastavuje, co z jakého pinu paralelního portu vyleze (Outputs), či co do něj vleze (Inputs). Do detailů nebudu zabíhat, pěkně je to všechno popsáno v českém překladu manuálu k MACH3.

Napřed levý sloupec, tedy to, co leze z počítače do CNC:

  • Pin 1: Amplifier Enable (Invert) - funguje to, i když je tam Unused, asi to vyhodím, ale v manuálu mojí CNC je pro MACH3 tento pin definován jako Enable 1.
  • Pin 2: X Step - ovládání krokování osy X. Invertujeme proto, že se jedná o standardní způsob komunikace driveru s řídícím systémem a navíc to jinak nefunguje. Detaily viz. opět MACH3
  • Pin 3: X Direction - ovládání směru otáčení motoru osy X. Neinvertujeme proto, že nám vyhovuje 0 na levé straně.
  • Pin 4: Y Step - ovládání krokování osy Y, více viz. X Step.
  • Pin 5: Y Direction (Invert) - ovládání směru otáčení motoru osy Y. Invertujeme proto, že nám vyhovuje 0 blíž k nám.
  • Pin 6: Z Step - ovládání krokování osy Z, více viz. X Step
  • Pin 7: Z Direction (Invert) - ovládání směru otáčení motoru osy Z. Invertujeme proto, že nám vyhovuje 0 dole.
  • Pin 8: Unused - neobsazeno
  • Pin 9: Unused - neobsazeno
  • Pin 14: Amplifier Enable - funguje to, i když je tam Unused, asi to vyhodím, ale v manuálu mojí CNC je pro MACH3 tento pin definován jako Enable 2.
  • Pin 16: Unused - neobsazeno
  • Pin 17: Unused - neobsazeno

A teď to, co posílá CNC do počítače:


  • Pin 10: ESTOP In - tady je připojeno VELIKÉ červené tlačítko nouzového zastavení stroje. Kupodivu u MACHA to bylo invertováno, tady to invertovat nechce. Každopádně nastavujeme jako první a co nejdřív otestujeme. Pokud ESTOP In není definován, ovládací program neumožní zapnutí stroje (tak jsem přišel na to, že je potřeba vypnout Invert).
  • Pin 11: Both Limit + Home X (Invert) - frézka má oba koncové spínače pro osu X a budu je využívat také jako referenční spínač. Vstupy jsou inverované, to znamená, že normálně je vše sepnuto, koncový spínač obvod rozepne. Tím je ošetřena situace, kdy dojde například k přerušení vodiče nebo k jeho nezapojení.
  • Pin 12: Both Limit + Home Y (Invert) - viz. Pin 11, jen pro osu Y
  • Pin 13: Both Limit + Home Z (Invert) - viz. Pin 11, jen pro osu Z
  • Pin 15: Unused - neobsazeno



Nastavíme hodnoty a klikneme na Forward.

Pokud máte v počítači instalovánu kartu s paralelním portem, bude pravděpodobně mít jinou než standardní adresu, takže v konzoli si příkazem lspci -v vylistujte nastavení vašich periférií a hledejte něco, co smrdí paralelní portem (parport_pc). A hledaná adresa je ta první I/O ports at ...


Poznámka: NĚKDE jsem se dočetl, že bezproblémové jsou karty s čipem od MOSChip a to MCS9845, MCS9865 a MCS9901. Já mám jednu takovou vyrobenou firmou AXAGO pod označením PCIA-P.

Options

Pravděpodobně se týká nastavení komunikace s CNC nějakým dalším způsoben, případně nějakých ovládacích a zobrazovacích prvků. Pokusím se časem nastudovat...

Takže nastavíme jen Onscreen prompt for manual tool change, což znamená, že instrukce M6 pozastaví program a informuje obsluhu o tom, že je načase upnout do vřetene jiný nástroj.


Nastavíme hodnoty a klikneme na Forward.

Axis X, Y, Z

Nastavení os. Popíšu jen osu X, pro ostatní je analogické.


  • Motor steps per revolution - počet kroků, které vyšle počítač do driveru na jednu jednotku vzdálenosti (zde počet kroků na jeden milimetr). Hodnota je chlupatá proto, že pohybový šroub byl vyroben s nějakou nepřesností a nemá tak jmenovité stoupání šroubovice. Napřed byla nastavena vypočítaná hodnota (200), zpřesnění bylo zapsáno až následně na základě měření (viz. Kalibrace os).
  • Driver Microstepping - počet mikrokroků na jeden krok. Hodnota je dána technickým provedením driveru (tedy té černé krabice s červeným tlačítkem). V tomto případě je to 8.
  • Pulley teeth (...) - převodový poměr mezi krokovým motorem a hřídelí. Zde je to napřímo, takže 1:1
  • Leadscrew Pitch - stoupání pohybového šroubu, tady 4 mm. Zjistíme z dokumentace (zde je použit šroub jednochodý 1204, tedy průměr 12, stoupání 4 mm).
  • Maximum Velocity - maximální rychlost posuvu, zde vyzkoušeno praktickým testem 25 mm/sec. (v technické dokumentaci je to 3500mm/min, tj. 58 mm/sec)
  • Maximum Acceleration - maximální zrychlení, stanoveno pokusem tak, aby znělo pohodově.
  • Home Location - pozice, kam najede stroj při pozicování (funkce Home All nebo Machine / Homing / Home X)
  • Table Travel - pracovní rozsah osy, tedy odkud až kam je možné se pohybovat. Pokud stroj dosáhne hranice, zastaví se. Buď hodnotu změříme jako vzdálenost mezi koncovými spínači, nebo později odměřováním při posuvech v dané ose.
  • Home Switch location - pozice Home spínačů na ose. Tento stroj je používá koncové spínače zároveň jako Home spínače. Nástroj se při zreferování pohybuje tak dlouho, až sepne spínač, pak se kousek vrátí a najede pomalu ještě jednou a pozici, kdy snímač sepne, si nastaví na tuto hodnotu (Home Switch location).
  • Home Search velocity - rychlost, jakou se osa pohybuje při hledání pozice Home. Pro pohyb v protisměru zadejte zápornou hodnotu.
  • Home Latch direction - určuje způsob vyhodnocování sepnutí Home spínače. Same - nuluje při sepnutí, Oposite nuluje při sjetí z kontaktu.
  • Test this axis - zde si můžeme otestovat správnost nastavení a pojezdit si jednotlivými osami. Nicméně v mém případě to nějak divně reagovalo na nastavení Motor steps per revolution, neodpovídala ujetá vzdálenost při testu a při skutečném spuštění stroje (byla dvojnásobná).
Poznámka: při prvním referování do Home pozice, kdy nastavení ještě není otestováno hrozí, že se při chybné konfiguraci stroj rozhodne projet přes koncový spínač. Proto testujte referování os napřed jednotlivě a buď mačkejte koncový spínač ručně v dostatečném předstihu tak, abyste stihli zareagovat na chybný pohyb vypnutím stroje, nebo si nachystejte molitanovou kostičku a tu připevněte dočasně na portál frézky v jednotlivých osách a otestujte to s ní. Samozřejmě s prstem na Stopce.


Postupně nastavíme, případně provedeme test, a klikneme na Forward.




Almost Done

Vše je hotovo, pokud chceme změny uložit, dáme Done.


Obligátní potvrzení uložení, dáme Ano.



Další informace



Žádné komentáře:

Okomentovat