Strona 1 z 2

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

: 25 wrz 2017, 18:36
autor: 11Super11Star11
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.

: 25 wrz 2017, 19:09
autor: andmar2005
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ł

: 26 wrz 2017, 07:04
autor: 11Super11Star11
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.

: 26 wrz 2017, 08:03
autor: andmar2005
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

: 26 wrz 2017, 08:57
autor: 11Super11Star11
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()??

: 26 wrz 2017, 09:32
autor: andmar2005
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

: 26 wrz 2017, 10:46
autor: 11Super11Star11

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?

: 30 wrz 2017, 17:19
autor: andmar2005
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
'*****************************************

: 19 paź 2017, 14:03
autor: 11Super11Star11
Mach zachowuje się tak, że w makro nie można zrobić Pauzy. Otrzymujemy wtedy komunikat : "Cannot reverse Run from present Feedhold".

: 19 paź 2017, 15:53
autor: andmar2005
no jak w złym miejscu to zrobisz to tak będzie
pokaż gdzie wstawiasz pauze