Enkoder w LinuxCNC
Jak najprościej podłączyć enkoder do LinuxCNC.
1. Elektryczność
Enkoder będzie miał 3 wyjścia sygnałowe – A, B i Index oznaczany czasem też jako R lub Z. Może mieć 6 wyjść – wtedy każdy z sygnałów będzie miał swój zanegowany odpowiednik, np.: A*, B*, R*.
Do tego będzie miał przewody zasilające – na 5V albo 5-30V albo na cokolwiek.
Z zasilaniem sprawa prosta – trzeba gdzieś skołować potrzebne napięcie i zasilić zabawkę.
A przewodami sygnałowymi to zależy 😀
1.1 LPT – OptoBOB, SSK-MB2, itp.
Najczęściej będziemy mieli obłożenie pinów zbliżone do tego:
Piny CNC po LPT
[sourcecode language=”sh” title=”” ]
|——-+————-+————-|
| pin | funkcja LPT | funkcja CNC |
|——-+————-+————-|
| 1 | wyjście | |
| 2 | wyjście | Step X |
| 3 | wyjście | Dir X |
| 4 | wyjście | Step Y |
| 5 | wyjście | Dir Y |
| 6 | wyjście | Step Z |
| 7 | wyjście | Dir Z |
| 8 | wyjście | |
| 9 | wyjście | |
| 10 | wejście | |
| 11 | wejście | |
| 12 | wejście | |
| 13 | wejście | |
| 14 | wyjście | |
| 15 | wejście | |
| 16 | wyjście | wrzeciono |
| 17 | wyjście | chłodziwo |
| 18-25 | | masa |
|——-+————-+————-|
[/sourcecode]
Do dyspozycji mamy więc tylko piny 10, 11, 12, 13, lub 15. Niedużo. Wybieramy 3 i podpinamy sygnały enkodera. Załóżmy, że wybraliśmy 11, 12, 13.
1.2 Mesa
Tutaj to hulaj dusza – wejść mamy zylion – podpinamy się gdzie tam pasuje. Zakładam, że mamy Mesę 5i25 z kartą 7i77 (bo to mam w łapkach – zasada będzie zawsze ta sama – drobiazgi typu nazw pinów to już sobie każdy sam znajdzie :D) podpinamy się pod pierwsze 3 wejścia cyfrowe, czyli w moim przypadku:
[sourcecode language=”sh” title=”” ]
hm2_5i25.0.7i77.0.0.input-00
hm2_5i25.0.7i77.0.0.input-01
hm2_5i25.0.7i77.0.0.input-02
[/sourcecode]
Podpinamy i przechodzimy do rozdziału drugiego.
2. Konfiguracja
2.1. Wizard
2.2. “Z łapy”
Też prosto – do pliku .hal dodajemy:
[sourcecode language=”hal” title=”” ]
loadrt encoder num_chan=1
addf encoder.update-counters base-thread
# enkoder – 80 otworków
setp encoder.0.position-scale 80.000000
setp encoder.0.counter-mode 1
net spindle-position encoder.0.position => motion.spindle-revs
net spindle-velocity encoder.0.velocity => motion.spindle-speed-in
net spindle-index-enable encoder.0.index-enable <=> motion.spindle-index-enable
net spindle-index parport.0.pin-11-in => encoder.0.phase-Z
net spindle-phase-a parport.0.pin-12-in => encoder.0.phase-A
net spindle-phase-b parport.0.pin-13-in => encoder.0.phase-B
[/sourcecode]
Większych zagadek tu nie ma – ładujemy moduł encoder
i podpinamy go to base-thread żeby się uaktualniał na bieżąco. W encoder.0.position-scale
wpisujemy liczbę impulsów na pełny obrót – jeżeli mamy enkoder spięty 1:1 z wrzecionem (u nas dwa kółeczka 100 zębów) to przepisujemy wartość z enkodera, jeżeli mamy jakieś przełożenie to trzeba przeliczyć.
No i to w sumie tyle konfigurowania. Powinno działać.
3. A bo mnie nie działa!
Czyli jak sobie radzić jeżeli nie ruszyło z kopyta.
Najpierw sprawdziłbym połączenia elektryczne. Na moich OptoBobach są diodki na wejściach – jeżeli wszystko jest dobrze połączone to ładnie migają. Jak nie migają to wiadomo gdzie szukać. A jak nie ma diodek to trzeba posprawdzac miernikiem czy dostajemy impulsy.
Jeżeli impulsy dochodzą, a LinuxCNC nie widzi to kolejnym krokiem będzie odpalenie Oscyloskopu HAL
. Ustawiamy jako kanały sygnały spindle-index
, spindle-pahase-a
i spindle-phase-b
, ustawiamy odświeżanie i powinno być widać ładne prostokąty. Jeżeli nie widać to może być coś skopane w HALu – wtedy jako kanały oscyloskopu ustawiamy parport.0.pin-11-in
, parport.0.pin-12-in
i parport.0.pin-13-in
i możemy sprawdzić czy wogóle dostajemy sygnały przez port.
I już. Długo ten post czekał na dokończenie 🙂 Popróbujcie i krzyczcie w komentarzach jeżeli jeszcze coś nie jest jasne.
Witam noszę się z zamiarem zrobienia sterowania wrzecionem tokarki enconderem na systetemie linuxcnc jak na razie mam zrobione sterowanie po przez konwerter RS485 oczywiście w tym falownik , bym mógł toczyć gwinty.
Myślę o takim układzie http://www.zapiski-na-odwrocie.pl/2017/05/20/enkoder-w-linuxcnc/ i wykonaniu odpowiedniej tarczki z otworkami lecz nie wiem jak mam podłączyć ten układ do płyty SSK-MB2 , z tego co rozumiem wykorzystać mogę wejścia HMA są tam dwa a ten układ ma A,B i Indeks .
Uprzejmie proszę o pomoc jak mam ten temat rozwiązać z poważaniem Jarek