Znaleziono 6 wyników

autor: tschaya
21 lut 2011, 23:18
Forum: Mach 2 / 3 / 4 (ArtSoft software)
Temat: Makro do sterowania głowicą rewolwerową (Sauter, Duplomatic)
Odpowiedzi: 15
Odsłony: 7650

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?
 

       
autor: tschaya
18 lut 2011, 15:41
Forum: Mach 2 / 3 / 4 (ArtSoft software)
Temat: Makro do sterowania głowicą rewolwerową (Sauter, Duplomatic)
Odpowiedzi: 15
Odsłony: 7650

Jeśli fabrycznie głowica kręciła się tylko w jedną stronę - to nie ma o czym mówić, jeszcze raz gratuluje dobrej roboty Panom z CS-Lab, a Tobie Szanowny Kolego udanej modernizacji.
Przy okazji napisz jak sprawuje się maszyna - czy pracuje stabilnie, czy sterowanie Mach'em nie sprawia żadnych niespodzianek? Czy maszyna może pracować normalnie (stabilnie) przez całą zmianę?

A dla zainteresowanych głowicami dwukierunkowymi link do makra które steruje głowicą dwukierunkową. I które właśnie przerabiam pod Sautera/Duplomatica. Bo w orginale steruje silnikiem krokowym (te pętle zwiększające moment) no i koncówka (czujniki Lock i Index) też mi się wydaje pomylona.
Wkrótce moja wersja - spolszczona ;)
autor: tschaya
13 lut 2011, 21:46
Forum: Mach 2 / 3 / 4 (ArtSoft software)
Temat: Makro do sterowania głowicą rewolwerową (Sauter, Duplomatic)
Odpowiedzi: 15
Odsłony: 7650

Właśnie obejrzałem film z linków z postu o tokarce - gratuluje. Osobiście jestem pod wrażeniem możliwości sterwonika CSMIO. Chociaż uważam, że jeśli głowica ma możliwość pracy dwukierunkowej to kręcenie nią tylko w jedną strone jest marnotrawstwem czasu i energii. Pewnie się nie się chciało logiki robić. Ale jest na to rada: można ją sobie 'pożyczyć' ;) z makra z forum Macha ( o ile działa bo ja u siebie jeszcz nie przetestowałem).
autor: tschaya
02 lut 2011, 15:14
Forum: Mach 2 / 3 / 4 (ArtSoft software)
Temat: Makro do sterowania głowicą rewolwerową (Sauter, Duplomatic)
Odpowiedzi: 15
Odsłony: 7650

I tego dokladnie chciałem się dowiedzieć. Dzięki! Temat do zamknięcia.
autor: tschaya
01 lut 2011, 22:17
Forum: Mach 2 / 3 / 4 (ArtSoft software)
Temat: Makro do sterowania głowicą rewolwerową (Sauter, Duplomatic)
Odpowiedzi: 15
Odsłony: 7650

Dzięki, znam ten typ głowic, ale nie o to mi chodzilo. Pytałem o to jak odbywa się blokowanie (ryglowanie) na pozycji roboczej w 'normalnych' głowicach. Ale wykresy mówią mi że nie ważny kierunek, byle po załączeniu pinu indeksującego kierunek zmienił się na przeciwny. Nie mniej dziękuje Koledze za linki.
autor: tschaya
29 sty 2011, 23:40
Forum: Mach 2 / 3 / 4 (ArtSoft software)
Temat: Makro do sterowania głowicą rewolwerową (Sauter, Duplomatic)
Odpowiedzi: 15
Odsłony: 7650

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

Znalazałem na forum Macha interesujące makro do sterowania głowicą rewolwerową. Planuje je przerobić żeby pasowało do obsługi głowicy Sautera (i Duplomatica).
Enkoder, czujniki blokady i indeksu, elektromagnes indeksu, załączanie obrotów: prawo - lewo silnika (i hamulec u Duplomatica) to wszytsko wydaje mi się jasne. Ale nie wiem dokładnie jak działa blokowanie na pozycji. I tu moje pytania o to jak działa taka głowica od strony mechanicznej, a dokładnie chodzi mi o blokowanie i odblokowywanie - (zamykanie - otwieranie) na wybranej pozycji:

1. Czy przy odblokowywaniu (zanim zacznie obracać na wybraną pozycje) silnik zawsze kręci najpierw w prawo?
2. Czy przy blokowaniu (po osiągnięciu zadanej pozycji) silnik zawsze kręci się w przeciwnym kierunku do tego jaki był użyty do osiągnięcia tej pozycji?
3. Czy powyższe dwa pytania się nie wykluczają?

Proszę o pomoc.

Wróć do „Makro do sterowania głowicą rewolwerową (Sauter, Duplomatic)”