szybki start - przejazd - zatrzymanie wózka napedz. sil krok

Dyskusje dotyczące programowania G-Code

Autor tematu
konos
Nowy użytkownik, używaj wyszukiwarki
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

#1

Post napisał: konos » 23 cze 2012, 14:02

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



Tagi:

Awatar użytkownika

tanifon
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 1
Posty: 631
Rejestracja: 22 lis 2008, 13:59
Lokalizacja: 3miasto
Kontakt:

#2

Post napisał: tanifon » 23 cze 2012, 21:49

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
Skaner 3D, gigantyczne rzeźby, piła motorowa..


Autor tematu
konos
Nowy użytkownik, używaj wyszukiwarki
Nowy użytkownik, używaj wyszukiwarki
Posty w temacie: 3
Posty: 4
Rejestracja: 23 cze 2012, 13:42
Lokalizacja: otwock

#3

Post napisał: konos » 24 cze 2012, 15:23

Dziękuję za informację.
tanifon pisze:1. Należy zacząć od dostrojenia programu sterującego.
Mówiąc dostrojenie, masz na myśli zakładkę: Motor Tuning and Setup (w Mach3)?
tanifon pisze:Silniki, może ustawić krańcówki, wył.hamowanie przy dojazdach.
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:2. Sam kod może wyglądać tak :
Y0 X0
Y0 X100
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).
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,

Awatar użytkownika

Zienek
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 1
Posty: 3730
Rejestracja: 13 gru 2008, 19:32
Lokalizacja: Szczecin
Kontakt:

#4

Post napisał: Zienek » 24 cze 2012, 15:50

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: 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(); 
}
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 :P


kamar
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 1
Posty: 16187
Rejestracja: 18 wrz 2010, 06:17
Lokalizacja: Kozienice
Kontakt:

#5

Post napisał: kamar » 24 cze 2012, 17:29

Do tak prostego i powtarzalnego zadania to raczej PLC ze sterownikiem krokowca a nie Mach i G-kody.

Awatar użytkownika

MlKl
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 2
Posty: 3706
Rejestracja: 15 sie 2010, 13:44
Lokalizacja: Błonie
Kontakt:

#6

Post napisał: MlKl » 24 cze 2012, 17:52

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

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
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.


Autor tematu
konos
Nowy użytkownik, używaj wyszukiwarki
Nowy użytkownik, używaj wyszukiwarki
Posty w temacie: 3
Posty: 4
Rejestracja: 23 cze 2012, 13:42
Lokalizacja: otwock

#7

Post napisał: konos » 25 cze 2012, 10:47

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.

Awatar użytkownika

KAJOS
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 1
Posty: 1302
Rejestracja: 10 gru 2006, 00:22
Lokalizacja: NISKO

#8

Post napisał: KAJOS » 25 cze 2012, 15:59

konos 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?
dodaj do tego os y i np droge przebycia 9999....9999999 :) - dobierzesz doswiadczalnie wtedy oś x poczeka na dalsze komendy nim y przebedzie te droge ....
Żeby coś wynaleźć wystarczy odrobina wyobraźni i sterta złomu.

Obrazek

Awatar użytkownika

MlKl
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 2
Posty: 3706
Rejestracja: 15 sie 2010, 13:44
Lokalizacja: Błonie
Kontakt:

#9

Post napisał: MlKl » 25 cze 2012, 16:07

G4 - postój czasowy, parametrem jest Pxx gdzie xx to ilość sekund.

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „G-CODE - programowanie”