Makro do sterowania głowicą rewolwerową (Sauter, Duplomatic)

Dyskusje dotyczące najpopularniejszego programu sterującego maszynami CNC

Autor tematu
tschaya
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 6
Posty: 101
Rejestracja: 10 sie 2004, 23:50
Lokalizacja: Grudzi?dz

#11

Post napisał: tschaya » 21 lut 2011, 23:18

No to są ważne wieści. Oznacza to że Mach z CSMIO-IP/A jest prawdopodnie najtańszą profesjonalną drogą do modernizacji starszego sprzętu. Dzięki za wszytskie wieści.

A co do makra to na razie wrzuce 'swoje', a co się sam będę męczył .
Zapraszam wszytskich zainteresowanych do współpracy, w końcu od tego jest forum.
Najpierw słowo wstępne:

1. Makro dotyczy elektromechanicznych głowic starszego typu (później można zaadopotować do innych), natomiast tu proponuje się trzymać konkretnego modelu - bo łatwo o dokumnetacje z sieci: czyli Duplomatic BSV-N
http://www.duplomaticauto...ne_tool_turrets
strony 15 - 17.

2. Zmiast jednego makra M06 - do zmiany narzędzia - na razie proponuje osobne makro do każdej pozycji plus numer korektora. Dla 12 pozycyjnej głowicy makra np. od M101 do M112 (bo nie do końca wiem jak Mach to widzi - normalnie jest Tyyxx - gdzie yy to np. numer na głowicy a yy- numer korektora).
Czyli M102T07 - pozycja na głowicy 02 i narzędzie nr 07.

3. Dodatkowo proponuje makro np. nr M113 - służące usatwieniu się głowicy na pierwszej właściwej pozycji, po awaryjnym zatrzymaniu czy kolizji. Później można by to dokleić do właściwego makra jako np. podprogram ale na razie dla przejrzystości, proponuje to zrobić osobno.

A tu moja wersja makra z forum macha. Otwierać można WordPadem a najlepiej edytorem Macha VB. No i proszę pamiętać że to wersja testowa - nie do użytku w maszynie!

Kod: Zaznacz cały

'autor: Monty z forum Macha. Spolszczenie i drobne poprawki - tschaya.

'Makro dla pozycji nr 1
'Zmienne  
Option Explicit

Dim NumerA '- aktualna pozycja rewolwera
Dim NumerB '- zadana pozycja rewolwera: dla makra 101 = 1
Dim LiczbaPozycji '- liczba pozycji do obrotu
Dim CzujnikRygla '- czujnik zbliżeniowy pozycji blokady
Dim CzujnikIndexu '- czujnik zbliżeniowy elektromagnesu
Dim Rotacja'- kierunek obrotów (CW , CCW) 
Dim I
Dim Bit1, Bit2, Bit3, Bit4, Parity, Strobe     
 

 



'Wejścia: 
'OEMTRIG1 = Encoder Bit 1 'sygnały od 29
'OEMTRIG2 = Encoder Bit 2  'sygnał 30
'OEMTRIG3 = Encoder Bit 3  'sygnał 31
'OEMTRIG4 = Encoder Bit 4   'sygnał 32
'OEMTRIG5 = Parity Bit     'sygnał 33
'OEMTRIG6 = Strobe         'sygnał 34
'OEMTRIG7 = Czujnik zbliżeniowy Indexu'sygnał 35
'OEMTRIG8 = Czujnik zbliżeniowy Rygla''sygnał 36

'Wyjścia: 
'OUTPUT10 = Elektromagnes ' sygnał    19  
'OUTPUT11 = Silnik prawo (przekażnik)  'sygnał 20
'OUTPUT12 = Silnik lewo (przekażnik)    'sygnał 21
'OUTPUT13 = Hamulec (opcja dla Duplomatica) 'sygnał 22


					'Odczyt bitów Encodera
If IsActive(29) Then
Bit1 = 1
Else
Bit1 = 0
End If

If IsActive(30) Then
Bit2 = 1
Else
Bit2 = 0
End If
					
If IsActive(31) Then
Bit3 = 1
Else
Bit3 = 0
End If
					
If IsActive(32) Then
Bit4 = 1
Else
Bit4 = 0
End If

If IsActive(33) Then
Parity = 1
Else
Parity = 0
End If

If IsActive(34) Then
Strobe = 1
Else
Strobe = 0
End If

 
 
					'Odczytanie aktualnej pozycji enkodera

If Bit1=1 And Bit2=0 And Bit3=0 And Bit4=0 And Parity=1 And Strobe=1 Then
NumerA = 1
ElseIf Bit1=0 And Bit2=1 And Bit3=0 And Bit4=0 And Parity=1 And Strobe=1 Then
NumerA = 2
ElseIf Bit1=1 And Bit2=1 And Bit3=0 And Bit4=0 And Parity=0 And Strobe=1 Then
NumerA = 3
ElseIf Bit1=0 And Bit2=0 And Bit3=1 And Bit4=0 And Parity=1 And Strobe=1 Then
NumerA = 4
ElseIf Bit1=1 And Bit2=0 And Bit3=1 And Bit4=0 And Parity=0 And Strobe=1 Then
NumerA = 5
ElseIf Bit1=0 And Bit2=1 And Bit3=1 And Bit4=0 And Parity=0 And Strobe=1 Then
NumerA = 6
ElseIf Bit1=1 And Bit2=1 And Bit3=1 And Bit4=0 And Parity=1 And Strobe=1 Then
NumerA = 7
ElseIf Bit1=0 And Bit2=0 And Bit3=0 And Bit4=1 And Parity=1 And Strobe=1 Then
NumerA = 8

ElseIf Bit1=1 And Bit2=0 And Bit3=0 And Bit4=1 And Parity=0 And Strobe=1 Then
NumerA = 9
ElseIf Bit1=0 And Bit2=1 And Bit3=0 And Bit4=1 And Parity=0 And Strobe=1 Then
NumerA = 10
ElseIf Bit1=1 And Bit2=1 And Bit3=0 And Bit4=1 And Parity=1 And Strobe=1 Then
NumerA = 11
ElseIf Bit1=0 And Bit2=0 And Bit3=1 And Bit4=1 And Parity=0 And Strobe=1 Then
NumerA = 12


Else
MsgBox("Głowica rewolwerowa nie w pozycji! Wywołaj Makro 113") 
End
End If 


 
NumerB = 1' zamiast GetSelected - będzie to zdefiniowane  numerem makra - 'osobny dla każdej pozycji rewolwera (np. 101 dla 1, 105 dla 5, 112 dla 12) 

'zerowanie zmiennych  

LiczbaPozycji = 0
CzujnikRygla = 0
Strobe = 0
CzujnikIndexu = 0
Rotacja= 0


'weryfikacja zadanego numeru										
If NumerB < 1 Or NumerB >12 Then
MsgBox("Błędny numer narzędzia") 
End
End If

If NumerB = NumerA Then  
End
End If


'Logika kierunku :) - wybór kierunku obrotu i o ile pozycji
					
If NumerB > NumerA Then
LiczbaPozycji = (NumerB-NumerA) 
Else
LiczbaPozycji = (NumerA-NumerB) 
End If

If LiczbaPozycji > 6 Then
LiczbaPozycji = 12 - LiczbaPozycji
End If

If NumerB = (NumerA+LiczbaPozycji) Then
Rotacja= 1
ElseIf NumerB = (NumerA-LiczbaPozycji) Then
Rotacja= -1
ElseIf (NumerA+LiczbaPozycji) > 12 Then
Rotacja= 1
ElseIf (NumerA-LiczbaPozycji) < 1 Then
Rotacja= -1
Else 
Rotacja= 1
End If


DeActivateSignal(22)   'wyłączenie hamulca (dla Duplomatica) 
While IsMoving ()   
  Wend


If Rotacja= 1 Then
ActivateSignal(21)				'silnik CCW  
Else
ActivateSignal(20)				'silnik CW   
End If



'Sprawdzenie czy Czujnik Rygla = 0 jeśli nie po R2 (max.60 ms dla mojej głowicy) - komunikat błędu i silnik stop?

 



   

For I = 1 To LiczbaPozycji			'Liczy pozycje

	While Strobe = 0			'czeka aż sygnał Strobe bedzie 1
		If IsActive(34) Then
		Strobe = 1
		Else
		Strobe = 0
		End If
	Wend
	
	While IsActive(34)		'Sprawdza czy Strobe przeszedł w stan 0
	Wend					' 
						' 
Strobe = 0	

Next I

ActivateSignal(19)			'Aktywacja elektromagnesu pinu indeksu
 


While CzujnikIndexu = 0				'Srawdzenie czujnkia indeksu
	If IsActive(35) Then		  
	CzujnikIndexu = 1
	Else 
	CzujnikIndexu = 0
	End If
Wend


'If IsActive(20) Then       'silnik stop - coś mi ten wraunek nie chce 'działać w testach - pomieszałem zmienne z syganłami? dlatego wyłączam oba sygnały.
   DeactivateSignal (20) 
    'Else 
   DeactivateSignal (21) 
 'End If
   
   While IsMoving ()   
  Wend
		

Sleep(50)					'T1 - czas z dokumentacji Duplomatica, strona 16
 

If Rotacja= 1 Then				'Owrócenie kierunku obrotów silnika w celu zaryglowania/zamknięcia na pozycji roboczej
ActivateSignal(20)				' CW  
Else
ActivateSignal(21)				' CCW   
End If

 

While CzujnikRygla = 0				' sprawdzenie czujnika zamka
	If IsActive(36) Then		 
	CzujnikRygla = 1				  
	Else
	CzujnikRygla = 0
	End If
Wend

'If IsActive(20) Then       'silnik stop
  DeactivateSignal (20) 
   'Else 
  DeactivateSignal (21) 
 'End If
   
   While IsMoving ()   
  Wend
 			' 


 ActivateSignal(22)   'włączenie hamulca (dla Duplomatica) 
While IsMoving ()   
  Wend

	

sleep(200) 'T2

DeActivateSignal(19)			'Wyłączenie elktromagnesu indeksu		
 While IsMoving ()   
  Wend

  

						'Zadana pozycja osiągnięta

SetCurrentTool( NumerB) '  może dodać numer (offset) korektora?



'weryfikacja pozycji  



'Odczyt bitów Encodera
If IsActive(29) Then
Bit1 = 1
Else
Bit1 = 0
End If

If IsActive(30) Then
Bit2 = 1
Else
Bit2 = 0
End If
					
If IsActive(31) Then
Bit3 = 1
Else
Bit3 = 0
End If
					
If IsActive(32) Then
Bit4 = 1
Else
Bit4 = 0
End If

If IsActive(33) Then
Parity = 1
Else
Parity = 0
End If

If IsActive(34) Then
Strobe = 1
Else
Strobe = 0
End If




If Bit1=1 And Bit2=0 And Bit3=0 And Bit4=0 And Parity=1 And Strobe=1 Then
NumerA = 1
Else
MsgBox("Głowica rewolwerowa  w niewłaściwej pozycji") 
End
End If 

'Weryfikacja stanu czujników itd.

If IsActive(35) Then 			' sprawdza Czujnik Indexu 
MsgBox("Głowica rewolwerowa: rygiel indeksu nie w pozycji") 
End
End If

If IsActive(36) Then   	'sprawdzenie Czujnika Rygla/zamkniecia		 
  
 CzujnikRygla = 1  
 Else   
  
MsgBox("Głowica rewolwerowa: nie zablokowana!") 
 End
End If

If NumerA <> NumerB Then		'sprawdzenie numeru aktualnego z zadanym
 MsgBox("Głowica rewolwerowa w niewłaściwej pozycji!!") 
End
End If


 End      

  ' koniec głownego programu

' jakiś sygnał gotowości dla powrotu do dalszej części programu?
 

       



Tagi:


dziabi3
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 4
Posty: 874
Rejestracja: 13 sie 2009, 16:15
Lokalizacja: xxx

#12

Post napisał: dziabi3 » 12 mar 2011, 14:29

kolego powiem ci ze idziesz troszkę za długą drogą stosując enkoder chyba ze fabrycznie jest on tam zamontowany i zmieniarka niema mechanicznego rygla ale to mało prawdopodobne

panowie z CS-LAB napisali nam macro do zmieniarki narzędzi

i okazało się ze ja miałem ten język programowania w technikum i powiem że się odnajduje w tym

wiec pozwoliłem sobie pogrzebać w tym makrze i dodałem kilka udogodnień i przeróbek

ponieważ panowie z cs -lab mają dużo dużo zleceń i akurat niebyli dostępni a ja chciałem spróbować swoich sił i udało się

a idąc za ciosem przerobiłem macro jednego z kolegów z forum do swojej mini tokarki na magazynek na silniczku krokowym

i on też miał 1 mocro do 1 narzędzia

po chwili to jedno macro obsługuje dowolną liczbę narzędzi


w dodatku to macro do mojej mini tokarki jest na czujnikach w systemie binarnym

czyli 8 narzędzi na 3 czujnikach

jak kolega bedzie miał pytania zapraszam na pw


dodam że panowie z CS-LAB wymiatają w sprawach macr i ukłony w ich stronę za wiedzę


marcow
Czytelnik forum poziom 1 (min. 10)
Czytelnik forum poziom 1 (min. 10)
Posty w temacie: 2
Posty: 11
Rejestracja: 21 sty 2011, 11:39
Lokalizacja: Internet

pytanie ad projektowania głowic

#13

Post napisał: marcow » 11 maja 2012, 20:55

Witam
Widze że koledzy sa zorientowani w temacie głowic i ich konstrukcji to może mi pomogą odnośnie mojego projektu głowicy. W załączeniu umieściłem rysunki sa zaznaczone błedy.
Prosze o pomoc jak to zrobić żeby było dobrze. Bardzo bym był wdzięczny za jakieś korekty lub tych rysunków.
1. jest to mocowanie uchwytu narzędzia narzędzia w gnieździe głowicy za pośrednictwem wkładki z zębnikiem (jak powinno wyglądać takie mocowanie).
2. jest to serwonapęd który obraca głowicę (jak rozwiązać zaznaczone uwagi chodzi o krpus serwonapędu i wałek)
3. jest to pokrywka która jest przymocowana do korpusu głowicy w którym znajduje się pierścień uszczelniający z wkładką metalową (jak rozwiązać mocowanie takiej pokywki)
Obrazek
Obrazek
Obrazek

Awatar użytkownika

gelo
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 3
Posty: 1028
Rejestracja: 01 kwie 2006, 22:08
Lokalizacja: Wroclaw
Kontakt:

#14

Post napisał: gelo » 11 maja 2012, 21:05

Ad 1.
element zebaty dociskajacy oprawke powinien byc lekko stozkowy (tak jest w sauterze), a sruba dociskajaca jest wkrecana w osi tego elementu. Dokrecania powoduje zaciskanie sie zebow docisku na zebach oprawki,
>>>>>>>>>> GELO <<<<<<<<<<


marcow
Czytelnik forum poziom 1 (min. 10)
Czytelnik forum poziom 1 (min. 10)
Posty w temacie: 2
Posty: 11
Rejestracja: 21 sty 2011, 11:39
Lokalizacja: Internet

ad uchwytów narzedziowych głowic rewolwerowych

#15

Post napisał: marcow » 12 maja 2012, 11:24

A mógłby mi kolega zobrazować jak to ma wyglądac może jakiś drobny szkic szkic?
"element zebaty dociskajacy oprawke powinien byc lekko stozkowy (tak jest w sauterze), a sruba dociskajaca jest wkrecana w osi tego elementu. Dokrecania powoduje zaciskanie sie zebow docisku na zebach oprawki".
Bardzo bym był wdzięczny

Awatar użytkownika

gelo
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 3
Posty: 1028
Rejestracja: 01 kwie 2006, 22:08
Lokalizacja: Wroclaw
Kontakt:

#16

Post napisał: gelo » 13 maja 2012, 09:21

Prosze bardzo...
Załączniki
sauter - mocowanie oprawki.pdf
(49.01 KiB) Pobrany 387 razy
>>>>>>>>>> GELO <<<<<<<<<<

ODPOWIEDZ Poprzedni tematNastępny temat

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