szybki start - przejazd - zatrzymanie wózka napedz. sil krok
-
Autor tematu - Nowy użytkownik, używaj wyszukiwarki
- Posty w temacie: 3
- Posty: 4
- Rejestracja: 23 cze 2012, 13:42
- Lokalizacja: otwock
szybki start - przejazd - zatrzymanie wózka napedz. sil krok
Witam,
potrzebuje napisać krótki program w G-code.
Mam silnik krokowy ze sterownikiem. Podłączyłem go do przez LPT do pc i z Mach3 nawiązałem komunikacje. Naciskając klawisze strzałek silnik mi się obraca w prawo lub w lewo. Silnik ten będzie napędzał wózek poruszający się po szynie za pomocą przekładni zębatej
Na takim sprzęcie, potrzebuje uzyskać szybki start wózka do zadanej prędkości, przejazd zz zadana prędkością oraz wyhamowanie na danym odcinku.
Rozumiem, że w g-code należy napisać kilka linii realizujących taką rampę.
Przypuszczam, że jest to 2 lub 3 linie kodu. Jeśli znalazłby się ktoś, kto mógłby mi podać jakiś przykładowy kod realizujący takie zadanie, to byłbym bardzo wdzięczy. Prosiłbym także i krótki opis.
Rozumiem, ze zadanie polega na tym, że podajemy sterownikowi informacje, że:
1. w ciągu 1 s osiągamy 100% nominalnej prędkosci (lub momentu) silnika,
2. utrzymujemy ta prędkości (moment) przez 10s,
3. w ciągu 1s zatrzymujemy silnik omega=0 (moment trzymający silnika=max.).
Z góry dziękuje za pomoc oraz wszelkie uwagi, sugestie i komentarze.
Myślę, że dla kogoś kto programuje w g-codzi to jest 5 min pracy
potrzebuje napisać krótki program w G-code.
Mam silnik krokowy ze sterownikiem. Podłączyłem go do przez LPT do pc i z Mach3 nawiązałem komunikacje. Naciskając klawisze strzałek silnik mi się obraca w prawo lub w lewo. Silnik ten będzie napędzał wózek poruszający się po szynie za pomocą przekładni zębatej
Na takim sprzęcie, potrzebuje uzyskać szybki start wózka do zadanej prędkości, przejazd zz zadana prędkością oraz wyhamowanie na danym odcinku.
Rozumiem, że w g-code należy napisać kilka linii realizujących taką rampę.
Przypuszczam, że jest to 2 lub 3 linie kodu. Jeśli znalazłby się ktoś, kto mógłby mi podać jakiś przykładowy kod realizujący takie zadanie, to byłbym bardzo wdzięczy. Prosiłbym także i krótki opis.
Rozumiem, ze zadanie polega na tym, że podajemy sterownikowi informacje, że:
1. w ciągu 1 s osiągamy 100% nominalnej prędkosci (lub momentu) silnika,
2. utrzymujemy ta prędkości (moment) przez 10s,
3. w ciągu 1s zatrzymujemy silnik omega=0 (moment trzymający silnika=max.).
Z góry dziękuje za pomoc oraz wszelkie uwagi, sugestie i komentarze.
Myślę, że dla kogoś kto programuje w g-codzi to jest 5 min pracy
Tagi:
-
- Specjalista poziom 3 (min. 600)
- Posty w temacie: 1
- Posty: 638
- Rejestracja: 22 lis 2008, 13:59
- Lokalizacja: 3miasto
- Kontakt:
Wymagasz sporo... bo zadajesz elementarne pytania a nie jest tak HOP.
1. Należy zacząć od dostrojenia programu sterującego. Silniki, moze ustawić krańcówki, wył.hamowanie przy dojazdach..
2. Sam kod może wyglądać tak :
Y0 X0
Y0 X100
1. Należy zacząć od dostrojenia programu sterującego. Silniki, moze ustawić krańcówki, wył.hamowanie przy dojazdach..
2. Sam kod może wyglądać tak :
Y0 X0
Y0 X100
artstudio - program od ktorego zaczynalem swoja przygode z komputerami
-
Autor tematu - Nowy użytkownik, używaj wyszukiwarki
- Posty w temacie: 3
- Posty: 4
- Rejestracja: 23 cze 2012, 13:42
- Lokalizacja: otwock
Dziękuję za informację.
Z drugiej linii (Y0 X100) powyższego kodu wynika, że kanał X powinien przekazać 100 impulsów do silnika krokowego?
A może, że silnik sterowany kanałem X ma obrócić się 100 razy?
Widzę, że tak jak wspomniałeś: "nie jest tak HOP" i nie minie mnie zagłębienie sie w podstawy kodowania G-code. Myślałem, ze chociaż tutaj będzie łatwa i prosta droga, by osiągnąć cel. No cóż, kolejna umiejętność mi przybędzie.
Gorąco pozdrawiam,
Mówiąc dostrojenie, masz na myśli zakładkę: Motor Tuning and Setup (w Mach3)?tanifon pisze:1. Należy zacząć od dostrojenia programu sterującego.
Tego zdania nie rozumiem (pewnie jakas literówka). Czy wynika z niego, że w moim przypadku sam silnik, sterownik i Mach3, nie wystarczą i należy doposażyć stanowisko również w jedną krańcówkę zamontowaną na końcu szyny prowadzącej wózek (ruch o zadanych parametrach będzie odbywał się tylko w jedną stronę).tanifon pisze:Silniki, może ustawić krańcówki, wył.hamowanie przy dojazdach.
Rozumiem, że w G-code zawsze należy podać 2 osie pracy (2 kanały sterowania) Y0 X0, mimo, że jest tylko jeden silnik (jeden kanał sterujący).tanifon pisze:2. Sam kod może wyglądać tak :
Y0 X0
Y0 X100
Z drugiej linii (Y0 X100) powyższego kodu wynika, że kanał X powinien przekazać 100 impulsów do silnika krokowego?
A może, że silnik sterowany kanałem X ma obrócić się 100 razy?
Widzę, że tak jak wspomniałeś: "nie jest tak HOP" i nie minie mnie zagłębienie sie w podstawy kodowania G-code. Myślałem, ze chociaż tutaj będzie łatwa i prosta droga, by osiągnąć cel. No cóż, kolejna umiejętność mi przybędzie.
Gorąco pozdrawiam,
-
- Lider FORUM (min. 2000)
- Posty w temacie: 1
- Posty: 3730
- Rejestracja: 13 gru 2008, 19:32
- Lokalizacja: Szczecin
- Kontakt:
To może, jeśli już chcesz zrobić coś elementarnego, to użyj elementarnych podzspołów, jak 8-bitowy kontroler i prosty program?
Arduino Uno - 100zł
+ program
http://www.open.com.au/mikem/arduino/AccelStepper/
Kod jest przykładowy i nie będzie działał poprawnie. Wykonuje tylko jeden ruch po podłączeniu prądu do kontrolera. Pokazuje dziedzinę rozwiązań, a nie gotowca 
Arduino Uno - 100zł
+ program
http://www.open.com.au/mikem/arduino/AccelStepper/
Kod: Zaznacz cały
#include <AccelStepper.h>
// Define a stepper and the pins it will use
AccelStepper stepper; // Defaults to 4 pins on 2, 3, 4, 5
// This defines the analog input pin for reading the control voltage
// Tested with a 10k linear pot between 5v and GND
#define ANALOG_IN A0
void setup()
{
stepper.setMaxSpeed(1000);
stepper.setAcceleration(50);
}
void loop()
{
stepper.moveTo(1000);
stepper.runToPosition();
}

-
- Lider FORUM (min. 2000)
- Posty w temacie: 2
- Posty: 3705
- Rejestracja: 15 sie 2010, 13:44
- Lokalizacja: Błonie
- Kontakt:
konos - jak już masz wózek, napędzany krokowcem po jakiejś szynie, i program typu Mach, to nie musisz się już zupełnie troszczyć o rozpędzanie i hamowanie, program potrzebuje dostać tylko odległość, na jaką ma przemieśzić wózek w przypadku użycia komendy G0, albo odległość i maksymalną szybkość w przypadku komendy G1.
Reasumując - budujesz ustrojstwo, podłączasz pod Macha i przez wpisanie komendy
wysyłasz wózek metr od punktu zero w osi X - oczywiście jeżeli se w Machu skonfigurujesz tę oś jako Z albo Y to literka przy 1000 mm się odpowiednio musi zmienić.
Program sam wózek rozpędzi do szybkości zadeklarowanej jako maksymalna w configu, i sam zwolni dokładnie w tym momencie, by zejść z prędkością do zera w punkcie 1000.
Jak chcesz wrócić, wpisujesz
I wózek tą samą modą wraca do punktu startu.
I teraz najlepsze - owe punkty startu i stopu możesz sobie dowolnie ustawiać programowo.
Nie wiem, czy w Machu tak jest, w LinuxCNC można skonfigurować pojedynczą oś bez problemu, ale nawet jakbyś musiał konfigurować dwie, czy trzy, to w komendzie nakazującej ruch tylko w jednej osi, nie zapodajesz żadnych komend dla innych osi, przykłądowy kod podany przez kolegę wprowada cię w błąd.
Reasumując - budujesz ustrojstwo, podłączasz pod Macha i przez wpisanie komendy
Kod: Zaznacz cały
G0 x1000
wysyłasz wózek metr od punktu zero w osi X - oczywiście jeżeli se w Machu skonfigurujesz tę oś jako Z albo Y to literka przy 1000 mm się odpowiednio musi zmienić.
Program sam wózek rozpędzi do szybkości zadeklarowanej jako maksymalna w configu, i sam zwolni dokładnie w tym momencie, by zejść z prędkością do zera w punkcie 1000.
Jak chcesz wrócić, wpisujesz
Kod: Zaznacz cały
x0
I teraz najlepsze - owe punkty startu i stopu możesz sobie dowolnie ustawiać programowo.
Nie wiem, czy w Machu tak jest, w LinuxCNC można skonfigurować pojedynczą oś bez problemu, ale nawet jakbyś musiał konfigurować dwie, czy trzy, to w komendzie nakazującej ruch tylko w jednej osi, nie zapodajesz żadnych komend dla innych osi, przykłądowy kod podany przez kolegę wprowada cię w błąd.
-
Autor tematu - Nowy użytkownik, używaj wyszukiwarki
- Posty w temacie: 3
- Posty: 4
- Rejestracja: 23 cze 2012, 13:42
- Lokalizacja: otwock
Dziękuje za wielkie za informacje.
Zienek i kamar, macie rację, ale w moim przypadku w spadku otrzymałem krokowca i sterownik i dlatego myślę, że to jest najprostsza droga.
MlKl, wielkie dzięki, o to mi chodziło, krótka rzeczowa odpowiedz dot. postawionego zagadnienia.
W Mach3, jak udało mi się zaobserwować po 2h przeglądania programu, mam możliwości konfiguracji poszczególnych osi osobno. Wybieram oś X i w tym przypadku jeśli wózek ma mi przejechać 3000 mm to w g-codzie wpisuje G0 x3000.
Jeśli wpisze
G0 x3000
G0 x0
rozumiem, ze wózek zostanie przesunięty z prędkością ustawioną w sterowniku na pozycje 3 m a potem wróci do pozycji 0 z tą samą prędkością.
W przypadku, gdy g-code będzie miał postać
G01 X3000 F2000
G01 X0 F100
wózek zostanie przesunięty z pozycji 0 do pozycji 3 m z prędkością 2000 mm/min,
potem wróci na pozycję początkową (0 m) z prędkością 100 mm/min.
Jaką komendą mogę uzyskać efekt opóźnienia, aby wózek pozostał w pozycji 3 m przez np. 30 sekund, zanim wróci do pozycji początkowej?
Jeszcze raz dzięki za zainteresowanie tematem i pomoc.
Zienek i kamar, macie rację, ale w moim przypadku w spadku otrzymałem krokowca i sterownik i dlatego myślę, że to jest najprostsza droga.
MlKl, wielkie dzięki, o to mi chodziło, krótka rzeczowa odpowiedz dot. postawionego zagadnienia.
W Mach3, jak udało mi się zaobserwować po 2h przeglądania programu, mam możliwości konfiguracji poszczególnych osi osobno. Wybieram oś X i w tym przypadku jeśli wózek ma mi przejechać 3000 mm to w g-codzie wpisuje G0 x3000.
Jeśli wpisze
G0 x3000
G0 x0
rozumiem, ze wózek zostanie przesunięty z prędkością ustawioną w sterowniku na pozycje 3 m a potem wróci do pozycji 0 z tą samą prędkością.
W przypadku, gdy g-code będzie miał postać
G01 X3000 F2000
G01 X0 F100
wózek zostanie przesunięty z pozycji 0 do pozycji 3 m z prędkością 2000 mm/min,
potem wróci na pozycję początkową (0 m) z prędkością 100 mm/min.
Jaką komendą mogę uzyskać efekt opóźnienia, aby wózek pozostał w pozycji 3 m przez np. 30 sekund, zanim wróci do pozycji początkowej?
Jeszcze raz dzięki za zainteresowanie tematem i pomoc.
-
- ELITA FORUM (min. 1000)
- Posty w temacie: 1
- Posty: 1301
- Rejestracja: 10 gru 2006, 00:22
- Lokalizacja: NISKO
dodaj do tego os y i np droge przebycia 9999....9999999konos pisze:Jaką komendą mogę uzyskać efekt opóźnienia, aby wózek pozostał w pozycji 3 m przez np. 30 sekund, zanim wróci do pozycji początkowej?

Żeby coś wynaleźć wystarczy odrobina wyobraźni i sterta złomu.

