Oś obrotowa na silniku krokowym

Czasem jest potrzeba żeby potraktować krokowca jak wrzeciono. Mamy tak na szlifierce/ostrzałce – jeżeli uruchomimy konfig ostrzałka to oś A zachowuje się ‚normalnie’ – przejeżdża na zadaną pozycję i staje. Ale mamy na tej samej maszynie konfig szlifierka i wtedy oś A robi za wrzeciono – można włączyć/wyłączyć i ustawić prędkość obrotową.

Pokażę jak to zrobić na przykładzie osi A:

Na początku pliku .hal jest linia ładująca moduł stepgen. Powinna wyglądać jakoś tak:

Podajemy tu ile i jak sterowanych modułów stepgen potrzebujemy. Parametr step_type dla każdego z silnków może mieć ustawione wartości od 0 do 15 – najprostsze to: 0 – step/dir, 1 – up/down potem zaczynają się rózne opcje sterowania fazowego – jest się czym bawić.

Dla nas ciekawszy jest drugi parametr – ctr_type. Domyślnie mamy p – position control – czyli sterowanie silnikiem na zadaną pozycję. Jeżeli parametr ctrl_type nie występuje (jak widać wyżej) to znaczy że wszystkie silniki są ustawione na tą samą wartość domyślną (czyli p).

Nuda.

Ale możemy tu też podać v – velocity control – czyli sterowanie prędkością silnika. Coś akurat dla nas 😀

No to zmieniamy tę linijkę na:

Wtedy trzy pierwsze osie są ustawione ‚normalnie’, a w czwartej osi kontrolujemy prędkość.

Przechodzimy do ustawień osi. W pliku .hal odnajdujemy blok odpowiadający za parametry osi A. Będzie wyglądał jakoś tak:

Ponieważ zmieniliśmy sposób sterowania silnikiem to zniknęły nam piny od pozycji: stepgen.3.position-cmd (linia 7) i stepgen.3.position-fb (linia 8)

Wyrzucamy te linie.

Teraz sprawa sterowania tą nasza osią. My sobie wymarzyliśmy że włączenie/wyłączenie będzie pod klawiszem F8 – zamiast chłodziwa. Kontrola prędkości obrotowej będzie w panelu bocznym (PyVCP).

Żeby ‚przejąć kontrolę’ nad chłodziwem musimy wykomentować linię przesyłającą stan chłodziwa na port równoległy. Szukamy linii:

i wywalamy.

Za to enable silnika 3 podpinamy pod chłodziwo – czyli zamiast:

dajemy:

Czyli fragment pliku .hal odpowiedzialny za konfigurację osi A powinien teraz wyglądać tak:

No dobrze – włączanie/wyłączanie ustawione. Teraz ustawianie prędkości obrotowej.

Robimy sobie plik pyvcp.xml

i spinamy PYVCP z HALem w pliku postgui.hal

To załatwia sprawę – po uruchomieniu Axisa oś A powinna zachowywać się jak wrzeciono.