Jak zablokować możliwość wykonania pauzy w wykonywanym makro

Dyskusje dotyczące najpopularniejszego programu sterującego maszynami CNC

Autor tematu
11Super11Star11
Nowy użytkownik, używaj wyszukiwarki
Nowy użytkownik, używaj wyszukiwarki
Posty w temacie: 5
Posty: 9
Rejestracja: 25 lip 2017, 11:29
Lokalizacja: Polska

Jak zablokować możliwość wykonania pauzy w wykonywanym makro

#1

Post napisał: 11Super11Star11 » 25 wrz 2017, 18:36

Witam.
Robię maszynę opartą na sterowaniu CSMIO + Mach3.
Mój program obróbki składa się z ruchów jazdy w XY oraz makra dozowania, oznaczonego jako M500. W makrze M500 mam sterowanie mam obsługę portów IO CSMIO, dodatkowo mam zrobione instrukcje jazdy osi A, X, Y, Z. Na pulpicie mam fizyczny przycisk NO nazwany STOP. Chcę zrobić tak, że jak wcisne przycisk STOP program zrobił pauzę przed wykonaniem M500. Jak to zrobić?

Kod: Zaznacz cały

N25 G54
M530
N35 G0 X0. Y0. F8000
M500
N50 X60. Y0. F8000
M500
N55 X120. Y0. F8000
M500
N60 X180. Y0. F8000
M500
 itd.



Tagi:

Awatar użytkownika

andmar2005
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 5
Posty: 190
Rejestracja: 15 sie 2009, 08:55
Lokalizacja: kujawsko-pomorski
Kontakt:

#2

Post napisał: andmar2005 » 25 wrz 2017, 19:09

hi
Wewnątrz macro M500 przypisz ten przycisk
niech sprawdza czy przycisk wciśnięty czy nie przed każdym zdarzeniem jakie ma wykonać
no tylko jak długo ma być wciśnięty
no i jak zwolnisz przycisk czy reszta w M500 może być wykonywana

to tak na skróty bo nie znamy dokładnie co ma maszynka robić
kto robił Ci macro - będzie lepiej wiedział


Autor tematu
11Super11Star11
Nowy użytkownik, używaj wyszukiwarki
Nowy użytkownik, używaj wyszukiwarki
Posty w temacie: 5
Posty: 9
Rejestracja: 25 lip 2017, 11:29
Lokalizacja: Polska

#3

Post napisał: 11Super11Star11 » 26 wrz 2017, 07:04

Makro robiłem oczywiście sam. Makro jest troszkę skomplikowane. Steruje i kontroluje siłownik pneumatyczny. Dodatkowo posiada algorytm, który robi odpowiednie ruchy w osiach XXYZA. Chcę zrobić tak, że przed wejściem w M500 lub przy starcie M500 mieć możliwość Pauzy, nigdy w środku lub pod koniec M500 bo są tam rozkazy jazdy.

Awatar użytkownika

andmar2005
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 5
Posty: 190
Rejestracja: 15 sie 2009, 08:55
Lokalizacja: kujawsko-pomorski
Kontakt:

#4

Post napisał: andmar2005 » 26 wrz 2017, 08:03

to wstaw na początku skryptu sprawdzenie stanu wejścia w cismo
jak niski stan to robi dalej
jak wysoki to przerywa lub pętle która czeka na zmianę stanu wejścia
no tylko zostaw sobie furtkę na wyjście z pętli
ale jak robiłeś ten skrypt to wiesz o co chodzi


Autor tematu
11Super11Star11
Nowy użytkownik, używaj wyszukiwarki
Nowy użytkownik, używaj wyszukiwarki
Posty w temacie: 5
Posty: 9
Rejestracja: 25 lip 2017, 11:29
Lokalizacja: Polska

#5

Post napisał: 11Super11Star11 » 26 wrz 2017, 08:57

Coś takiego? :
Makro START

Kod: Zaznacz cały

If klawisz Then
       DoOEMButton(1001) ' przycisk pauzy
       Oczekiwanie_na_aktywnosc_pauzy()
       Oczekiwanie_na_ponowny_start()
End If
.
.
.
.
.
Makro KONIEC

Czy te oczekiwanie można wykonać na SystemWaitFor()??

Awatar użytkownika

andmar2005
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 5
Posty: 190
Rejestracja: 15 sie 2009, 08:55
Lokalizacja: kujawsko-pomorski
Kontakt:

#6

Post napisał: andmar2005 » 26 wrz 2017, 09:32

jak już to led pauze sprawdzaj na przycisk nie zadziała całkiem dobrze (no chyba że masz przycisk typu stop wciskasz i zostaje załączony do puki go nie zwolnisz mechanicznie


Autor tematu
11Super11Star11
Nowy użytkownik, używaj wyszukiwarki
Nowy użytkownik, używaj wyszukiwarki
Posty w temacie: 5
Posty: 9
Rejestracja: 25 lip 2017, 11:29
Lokalizacja: Polska

#7

Post napisał: 11Super11Star11 » 26 wrz 2017, 10:46

Kod: Zaznacz cały

If klawisz_stop Then 
       DoOEMButton(1001) ' przycisk pauzy 
       While Not GetOemLed(111) ' czekaj na kontrolke pauzy
             sleep(15)
       WEnd

       While Not klawisz_start Then
             sleep(15)
       WEnd

       DoOEMButton(1000) ' przycisk START
       While Not GetOemLED(804) ' kontrolka START
              sleep(15)
       WEnd
End If
......
Może tak?

Awatar użytkownika

andmar2005
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 5
Posty: 190
Rejestracja: 15 sie 2009, 08:55
Lokalizacja: kujawsko-pomorski
Kontakt:

#8

Post napisał: andmar2005 » 30 wrz 2017, 17:19

hi
nie mam pojęcia co maszyna robi
przykładowo


Message"coś tam w makro"
Sleep (500)

Pauza ' wstaw to gdzieś

Message"coś tam innego w makro"
Sleep (500)
End


'***** na koniec makra wstaw *************
Sub Pauza
If GetOemLed(805) Then 'Led Pauzy
Begin Dialog SindleOn 100,100,180,90,"OK - Pracuje dalej CANCEL - Przerwa programu"
OKButton 2,28,35,14
CancelButton 2,58,35,14
Text 40,8,140,40,"OK - Pracuje CANCEL - Przerwa"
Text 40,30,80,60,"Pracuj dalej"
Text 40,60,80,60,"Przerwij program"
End Dialog
Dim pracuj As SindleOn
Button = Dialog (pracuj)
If Button=0 Then
DoOemButton(1003) 'STOP
sleep(30)
Message"Program przerwany"
End
Else
DoOemButton(1000) 'START
sleep(30)
Message"Program wnowiony"
End If
Sleep (30)
End If
End Sub
'*****************************************


Autor tematu
11Super11Star11
Nowy użytkownik, używaj wyszukiwarki
Nowy użytkownik, używaj wyszukiwarki
Posty w temacie: 5
Posty: 9
Rejestracja: 25 lip 2017, 11:29
Lokalizacja: Polska

#9

Post napisał: 11Super11Star11 » 19 paź 2017, 14:03

Mach zachowuje się tak, że w makro nie można zrobić Pauzy. Otrzymujemy wtedy komunikat : "Cannot reverse Run from present Feedhold".

Awatar użytkownika

andmar2005
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 5
Posty: 190
Rejestracja: 15 sie 2009, 08:55
Lokalizacja: kujawsko-pomorski
Kontakt:

#10

Post napisał: andmar2005 » 19 paź 2017, 15:53

no jak w złym miejscu to zrobisz to tak będzie
pokaż gdzie wstawiasz pauze

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „Mach 2 / 3 / 4 (ArtSoft software)”