Znaleziono 7 wyników

autor: fizyk19
27 sty 2013, 15:53
Forum: Mach 2 / 3 / 4 (ArtSoft software)
Temat: MAKRO M6
Odpowiedzi: 12
Odsłony: 3243

Makro sprawdzone działa rewelacyjnie wielkie dzięki dla kolegi dziabi3
autor: fizyk19
19 sty 2013, 12:52
Forum: Mach 2 / 3 / 4 (ArtSoft software)
Temat: MAKRO M6
Odpowiedzi: 12
Odsłony: 3243

Skype nie mam ale może wyślesz mi nr tel na pw to oddzwonię.
autor: fizyk19
17 sty 2013, 16:53
Forum: Mach 2 / 3 / 4 (ArtSoft software)
Temat: MAKRO M6
Odpowiedzi: 12
Odsłony: 3243

To nie jest zabezpieczenie przed wyborem niewłaściwego narzędzia
lecz możliwość wybrania nowego offsetu bez obrotu imaka ,
bo w moim makro wywołując aktualne narzędzie imak i tak się obraca.
Z input 3 wprowadziłem cię w błąd nie jest to start cykl jest to wejście
które ma ustawiony stan niski czyli sygnał jest przez cały czas
wiem że jest to bezsensowne i sprawdzanie tego sygnału można skasować
Jeżeli chodzi o nr narzędzi w imaku 1 i 2 to są one takie jak napisałeś.
autor: fizyk19
16 sty 2013, 15:25
Forum: Mach 2 / 3 / 4 (ArtSoft software)
Temat: MAKRO M6
Odpowiedzi: 12
Odsłony: 3243

Sygnał input 2 to pierwszy imak input 4 to drugi imak a input 3 to sygnał
od start cykl o ile dobrze pamiętam zrobiłem to tak żeby
w przypadku wybrania nowego offsetu ( numer narzędzia większy od 8 )
nie obracało imakiem np T1004 czyli dziesiąte narzędzie i czwarty offset.
autor: fizyk19
14 sty 2013, 09:54
Forum: Mach 2 / 3 / 4 (ArtSoft software)
Temat: MAKRO M6
Odpowiedzi: 12
Odsłony: 3243

Pokrótce opiszę jak działa sam imak , napędzany jest silnikiem elektrycznym ,
załączenie prawych obrotów powoduje jego rozklemowanie a następnie obrót
do momentu najechania do wyłącznika drogowego który jest nieco za pozycją
docelową iw tym czasie następuje zmiana obrotów co powoduje zmianę
kierunku obracania się imaka który dokręca się do pozycji i tam zostaje
zablokowany mechanizmem zapadkowym po czym obracający się nadal
silnik zaklemowuje imak , od strony mechanicznej to tyle.
Nie posiadam sterownika PLC zrobiłem to na elektronice własnego pomysłu
i zestawu przekaźników .
Sam MACH ma za zadanie wystawić odpowiedni sygnał wyjęcia dla
każdego gniazda:
gniazdo nr 1 wyjście 7
nr 2 wyjście 8
nr 3 wyjście 9
nr 4 wyjście 10
nr 5 wyjście12
nr 6 wyjście13
nr 7 wyjście14
nr 8 wyjście15
wyjście nr 11 to dodatkowe zabezpieczenie przed przypadkowym
załączeniem czyli musi być stan wysoki na jednym z pinów
przy porządkowanych do gniazda i na pinie 11 i tylko wtedy następuje
obrót imaka .
Wejście nr4 to sygnał zwrotny który jest podany po zaklemowaniu
imaka.
Ja mam nadzieje że do istniejącego makro da się dodać komendę
która ograniczy max czas jego trwania po czym zatrzyma cykl wyświetlając
komunikat , dodatkowo mozna by było zastąpić polecenie
SystemWaitFor (Inputxxx) czymś innym tak aby w przypadku naciskania
start cykl w czasie trwania m6 mach nie ignorował oczekiwania
na sygnał zwrotny.
autor: fizyk19
13 sty 2013, 20:34
Forum: Mach 2 / 3 / 4 (ArtSoft software)
Temat: MAKRO M6
Odpowiedzi: 12
Odsłony: 3243

Tutaj muszę dodac małe sprostowanie , od czasu kiedy makro zostało napisane
zresztą przy bardzo dużej pomocy kolegi "margor" nic więcej nie kombinowałem
przez ten czas pomimo niedoskonałosci samego makra maszyna produkowała
bez większych zastrzeżeń z mojej strony problemy z wymianą narzędzi zdarzały
się bardzo bardzo rzadko.
Niestety w obecnym czasie maszyna zmienia właściciela i nie chce
aby przyszły właściciel miał jakikolwiek zastrzeżenia .
Ja kupiłem inną tokarkę z bardzo podobnym rozwiązaniem imaka (imak tarczowy )jak kol "margor"
z tą różnicą że u mnie są oprawy VDI50.
A tu jeszcze załączam aktualne makro na dwa imaki;

Sub Main()

NewTool = GetSelectedTool()
OldTool = GetCurrentTool()
If (NewTool >8) Then
deActivateSignal(Output7)
deActivateSignal(Output8)
deActivateSignal(Output9)
deActivateSignal(Output10)
deActivateSignal(Output11)
deActivateSignal(Output12)
deActivateSignal(Output13)
deActivateSignal(Output14)
deActivateSignal(Output15)
SystemWaitFor (Input3)
While IsMoving
Wend
Exit Sub
End If
If (NewTool=0) Then
Code "m30"
End If

If (NewTool = 1) Then
deActivateSignal(Output8)
deActivateSignal(Output9)
deActivateSignal(Output10)
deActivateSignal(Output12)
deActivateSignal(Output13)
deActivateSignal(Output14)
deActivateSignal(Output15)
ActivateSignal(Output7)
ActivateSignal(Output11)
SystemWaitFor (Input2)
Code "g4 p0.5"
While IsMoving
Wend
deActivateSignal(Output7)
deActivateSignal(Output8)
deActivateSignal(Output9)
deActivateSignal(Output10)
deActivateSignal(Output11)
deActivateSignal(Output12)
deActivateSignal(Output13)
deActivateSignal(Output14)
deActivateSignal(Output15)
Exit Sub
End If

If (NewTool = 2) Then
deActivateSignal(Output7)
deActivateSignal(Output9)
deActivateSignal(Output10)
deActivateSignal(Output12)
deActivateSignal(Output13)
deActivateSignal(Output14)
deActivateSignal(Output15)
ActivateSignal(Output8)
ActivateSignal(Output11)
SystemWaitFor (Input2)
Code "g4 p0.5"
While IsMoving
Wend
deActivateSignal(Output7)
deActivateSignal(Output8)
deActivateSignal(Output9)
deActivateSignal(Output10)
deActivateSignal(Output11)
deActivateSignal(Output12)
deActivateSignal(Output13)
deActivateSignal(Output14)
deActivateSignal(Output15)
Exit Sub
End If

If (NewTool = 3) Then
deActivateSignal(Output7)
deActivateSignal(Output8)
deActivateSignal(Output10)
deActivateSignal(Output12)
deActivateSignal(Output13)
deActivateSignal(Output14)
deActivateSignal(Output15)
ActivateSignal(Output9)
ActivateSignal(Output11)
SystemWaitFor (Input2)
Code "g4 p0.5"
While IsMoving
Wend
deActivateSignal(Output7)
deActivateSignal(Output8)
deActivateSignal(Output9)
deActivateSignal(Output10)
deActivateSignal(Output11)
deActivateSignal(Output12)
deActivateSignal(Output13)
deActivateSignal(Output14)
deActivateSignal(Output15)
Exit Sub
End If

If (NewTool = 4) Then
deActivateSignal(Output7)
deActivateSignal(Output8)
deActivateSignal(Output9)
deActivateSignal(Output12)
deActivateSignal(Output13)
deActivateSignal(Output14)
deActivateSignal(Output15)
ActivateSignal(Output10)
ActivateSignal(Output11)
SystemWaitFor (Input2)
Code "g4 p0.5"
While IsMoving
Wend
deActivateSignal(Output7)
deActivateSignal(Output8)
deActivateSignal(Output9)
deActivateSignal(Output10)
deActivateSignal(Output11)
deActivateSignal(Output12)
deActivateSignal(Output13)
deActivateSignal(Output14)
deActivateSignal(Output15)
Exit Sub
End If


If (NewTool = 5) Then
deActivateSignal(Output7)
deActivateSignal(Output8)
deActivateSignal(Output9)
deActivateSignal(Output10)
deActivateSignal(Output13)
deActivateSignal(Output14)
deActivateSignal(Output15)
ActivateSignal(Output12)
ActivateSignal(Output11)
SystemWaitFor (Input4)
Code "g4 p0.5"
While IsMoving
Wend
deActivateSignal(Output7)
deActivateSignal(Output8)
deActivateSignal(Output9)
deActivateSignal(Output10)
deActivateSignal(Output11)
deActivateSignal(Output12)
deActivateSignal(Output13)
deActivateSignal(Output14)
deActivateSignal(Output15)
Exit Sub
End If

If (NewTool = 6) Then
deActivateSignal(Output7)
deActivateSignal(Output8)
deActivateSignal(Output9)
deActivateSignal(Output10)
deActivateSignal(Output12)
deActivateSignal(Output14)
deActivateSignal(Output15)
ActivateSignal(Output13)
ActivateSignal(Output11)
SystemWaitFor (Input4)
Code "g4 p0.5"
While IsMoving
Wend
deActivateSignal(Output7)
deActivateSignal(Output8)
deActivateSignal(Output9)
deActivateSignal(Output10)
deActivateSignal(Output11)
deActivateSignal(Output12)
deActivateSignal(Output13)
deActivateSignal(Output14)
deActivateSignal(Output15)
Exit Sub
End If

If (NewTool = 7) Then
deActivateSignal(Output7)
deActivateSignal(Output8)
deActivateSignal(Output9)
deActivateSignal(Output10)
deActivateSignal(Output13)
deActivateSignal(Output12)
deActivateSignal(Output15)
ActivateSignal(Output14)
ActivateSignal(Output11)
SystemWaitFor (Input4)
Code "g4 p0.5"
While IsMoving
Wend
deActivateSignal(Output7)
deActivateSignal(Output8)
deActivateSignal(Output9)
deActivateSignal(Output10)
deActivateSignal(Output11)
deActivateSignal(Output12)
deActivateSignal(Output13)
deActivateSignal(Output14)
deActivateSignal(Output15)
Exit Sub
End If

If (NewTool =8) Then
deActivateSignal(Output7)
deActivateSignal(Output8)
deActivateSignal(Output9)
deActivateSignal(Output10)
deActivateSignal(Output13)
deActivateSignal(Output14)
deActivateSignal(Output12)
ActivateSignal(Output15)
ActivateSignal(Output11)
SystemWaitFor (Input4)
Code "g4 p0.5"
While IsMoving
Wend
deActivateSignal(Output7)
deActivateSignal(Output8)
deActivateSignal(Output9)
deActivateSignal(Output10)
deActivateSignal(Output11)
deActivateSignal(Output12)
deActivateSignal(Output13)
deActivateSignal(Output14)
deActivateSignal(Output15)
Exit Sub
End If

End Sub
Main
autor: fizyk19
13 sty 2013, 14:01
Forum: Mach 2 / 3 / 4 (ArtSoft software)
Temat: MAKRO M6
Odpowiedzi: 12
Odsłony: 3243

MAKRO M6

WITAM

Kilka lat temu uruchomiłem tokarkę cnc na MACH3 i napisałem
makro M6 do obrotu dwóch imaków ;


Sub Main()

NewTool = GetSelectedTool()
OldTool = GetCurrentTool()
If (NewTool > 4) Then
deActivateSignal(Output1)
deActivateSignal(Output2)
deActivateSignal(Output3)
deActivateSignal(Output4)
SystemWaitFor (Input1)
Exit Sub
End If
If (OldTool=0) Then
Code "m30"
End If
If (NewTool=0) Then
Code "m30"
End If

If (NewTool = 1) Then
deActivateSignal(Output2)
deActivateSignal(Output3)
deActivateSignal(Output4)
ActivateSignal(Output1)
SystemWaitFor (Input2)
Code "g4 p1"
While IsMoving
SystemWaitFor (Input2)
Wend
deActivateSignal(Output1)
deActivateSignal(Output2)
deActivateSignal(Output3)
deActivateSignal(Output4)
Exit Sub
End If

If (NewTool = 2) Then
deActivateSignal(Output1)
deActivateSignal(Output3)
deActivateSignal(Output4)
ActivateSignal(Output2)
SystemWaitFor (Input2)
Code "g4 p1"
While IsMoving
SystemWaitFor (Input2)
Wend
deActivateSignal(Output1)
deActivateSignal(Output2)
deActivateSignal(Output3)
deActivateSignal(Output4)
Exit Sub
End If

If (NewTool = 3) Then
deActivateSignal(Output1)
deActivateSignal(Output2)
deActivateSignal(Output4)
ActivateSignal(Output3)
SystemWaitFor (Input2)
Code "g4 p1"
While IsMoving
SystemWaitFor (Input2)
Wend
deActivateSignal(Output1)
deActivateSignal(Output2)
deActivateSignal(Output3)
deActivateSignal(Output4)
Exit Sub
End If

If (NewTool = 4) Then
deActivateSignal(Output1)
deActivateSignal(Output2)
deActivateSignal(Output3)
ActivateSignal(Output4)
SystemWaitFor (Input2)
Code "g4 p1"
While IsMoving
SystemWaitFor (Input2)
Wend
deActivateSignal(Output1)
deActivateSignal(Output2)
deActivateSignal(Output3)
deActivateSignal(Output4)
Exit Sub
End If

End Sub
Main

( jest to stara wersje do obsługi jednego imaka wersja z drugim
imakiem ma osiem sygnałów wyjścia )
Makro działa ale ma swoje słabe punkty jednym z nich jest to że w przypadku
złego zaklemowania makro cały czas czeka na sygnał zwrotny po krótkiej chwili
wybija bezpiecznik silnikowy , drugim mankamentem jest to że gdy w czasie
trwania makra naciskam start makro nie czeka na sygnał zwrotny a program kontynuowany jest dalej.
Chciałbym żeby sygnał wyjęcia był aktywny do momentu otrzymania sygnału
wejścia ( zwrotnego ) ale nie dłużej niż czas jaki sam ustalę , jak również
interesuje mnie wy eliminowanie drugiego problemu jakim jest brak
oczekiwania na sygnał wejścia w przypadku naciskania startu.

BARDZO PROSZĘ O POMOC I POZDRAWIAM.

Wróć do „MAKRO M6”