11. Pozycjonowanie NC w FBs-PLC
Użytkownicy do realizacji sterowania pozycją we wczesnej fazie wykorzystują często standardowy silnik. Ponieważ wymagania dotyczące prędkości i precyzji były dotychczas niewielkie, stanowiło to wystarczające rozwiązanie. Z biegiem czasu, z powodów wydajnościowych wzrastała mechaniczna prędkość robocza, podnoszone były wymagania jakościowe produktów, wymagania dotyczące precyzji, co spowodowało, że standardowy silnik nie jest w stanie kontrolować pozycji. Najlepszym rozwiązaniem tego problemu jest zastosowanie pozycjonowania NC, który steruje pozycjonowaniem we współpracy z silnikiem krokowym lub serwosilnikiem. W przeszłości, bardzo wysokie koszty ograniczały zastosowanie tego typu sterowania, jednakże postęp technologiczny i zmniejszenie kosztów czyniące rozwiązanie opłacalnym, przyczyniły się do jego stopniowego upowszechnienia. W celu dostosowania się do nowej tendencji, układ SoC w FBs-PLC wyposażono w specjalne funkcje pozycjonowania NC. Eliminuje to problem z przesyłem danych oraz procedurą połączenia pomiędzy PLC a sterownikiem pozycjonowania NC. Ponadto, spowodowało to znaczne zmniejszenie kosztu całej aplikacji i zapewniło użytkownikom wysoką jakość, łatwe i zintegrowane sterowanie pozycjonowaniem NC w PLC.
11.1. Metody pozycjonowania NC
Metody sterowania PLC, silnikiem krokowym lub serwosilnikiem następujące:
l Wysyłanie komend za pośrednictwem cyfrowych We/Wy: Łatwe w zastosowaniu, lecz mniejsza możliwość dostosowania do wymagań.
l Wysyłanie komend za pośrednictwem wyjścia analogowego: Szybka reakcja sterowania, lecz zwiększony koszt oraz podatność na zakłócenia.
l Wysyłanie komend za pośrednictwem komunikacji: Brak standardu komunikacyjnego i ograniczenie prędkości transmisji danych, co powoduje zawężenie zakresu zastosowań.
l Wysyłanie komend za pośrednictwem szybkich impulsów: Niski koszt i łatwe, precyzyjne sterowanie.
Najczęściej używaną spośród wyżej wymienionych metod jest sterowanie silnika krokowego lub serwosilnika za pomocą szybkich impulsów. Jednostka główna PLC zawiera wieloosiowe szybkie wyjścia impulsowe oraz szybkie liczniki sprzętowe, umożliwiające łatwe użycie poprzez edycję programu pozycjonującego. Dzięki temu, zastosowanie staje się jeszcze bardziej wygodne i komfortowe.
Niżej wymienione metody sterowania wykorzystują system NC stanowiący PLC połączony z dwoma serwonapędami:
l Sterowanie w pętli pół-zamkniętej PLC odpowiedzialny jest za wysłanie szybkiego impulsu do serwonapędu. Enkoder zainstalowany w serwosilniku wysyła sygnał bezpośrednio do serwonapędu. Pętla zamknięta obejmuje tylko serwonapęd i serwosilnik. Najkorzystniejszą cechą jest łatwe sterowanie przy satysfakcjonującej precyzji (wystarczającej przy większości zastosowań). Jedyną wadą jest to, że rozwiązanie to nie jest w stanie w pełni odzwierciedlić rzeczywistej wielkości położenia za elementem transmisyjnym; co więcej, jeżeli element się zużyje lub zostanie uszkodzony, nie będzie możliwości sprawdzenia ani zweryfikowania położenia.
l Sterowanie w pętli zamkniętej PLC odpowiedzialny jest za wysłanie szybkich impulsów do serwonapędu. Ponadto, sygnał z enkodera z serwosilnika zostanie przekazany bezpośrednio do serwonapędu. Czujnik położenia zainstalowany za elementem transmisyjnym jest w stanie w pełni odzwierciedlić wartość położenia oraz przekazać ją do szybkiego licznika w PLC. Pozwala to na bardziej precyzyjne sterowanie oraz uniknięcie problemów wyżej wymienionych w pół-zamkniętej pętli.
11.2. Współrzędna rzeczywista i względna
Odległość ruchu może być wyznaczona na podstawie absolutnej pozycji (pozycjonowanie za pomocą współrzędnych absolutnych) lub odległości względnej (pozycjonowanie za pomocą współrzędnych względnych). Do sterowania silnikiem wykorzystywana jest instrukcja DRV.
Przy wyznaczaniu odległości ruchu na podstawie współrzędnych absolutnych,
przy przesunięciu ze 100mm na 300 mm, instrukcją pozycjonowania będzie: DRV ABS, ,300 , Ut
przy przesunięciu ze 300mm na 0 mm, instrukcją pozycjonowania będzie: DRV ABS, , 0 , Ut.
Przy wyznaczaniu odległości ruchu na podstawie współrzędnych względnych,
przy przesunięciu ze 100mm na 300 mm, instrukcją pozycjonowania będzie: DRV ADR, +, 200, Ut.
przy przesunięciu ze 300mm na 0 mm, instrukcją pozycjonowania będzie: DRV ADR, -, 300 , Ut.
l Oznaczanie współrzędnych absolutnych
l Oznaczenie współrzędnych względnych
11.3. Procedury realizacji pozycjonowania FBs-PLC
11.4 Opis sprzętu do sterowania pozycjonowaniem FBs-PLC
11.4.1. Budowa obwodu wyjściowego HSPSO
W zależności od różnych jednostek głównych, sterownik generuje impuls wyjściowy o różnych częstotliwościach. PLC wykorzystuje model wyjściowy tranzystora unipolarnego (FBS-xxMCT) 200 KHz (średnia prędkość) oraz model szybkiego wyjścia różnicowego (FBS-xxMNT), który może osiągnąć częstotliwość 920KHz (dla pojedynczej fazy).
Jako wyjścia impulsowe wykorzystywane są wyjścia zewnętrzne Y0~Y7 FBs-PLC. Do czasu ich wykorzystania przez funkcję HSPSO (brak konfiguracji funkcji PSO), wyjściami zewnętrznymi Y0~Y7 FBs-PLC można sterować dowolnie z programu PLC. Po konfiguracji HSPSO, wyjście zewnętrzne Y0~Y7 przełączy się bezpośrednio na wyjście HSPSO w układzie SoC i nie będzie mogło być sterowane z programu PLC.
Poniżej przedstawiona została szczegółowa lista sygnałów dla wyjść odpowiednich osi jednostki głównej oraz dostępne tryby wyjściowe:
11.4.2. Schemat połączeń sprzętowych dla pozycjonowania FBs-PLC
Przykład osi zerowej (PSO0) jednostki głównej FBs-XXMCT, FBs-XXMAT i FBs-XXMNR(T) przedstawiony został poniżej w postaci schematów. Połączenie pozostałych osi jest takie samo.
A. Schemat połączeń pojedynczego wyjścia FBs-XXMCT, FBs-XXMAT
*Wskazówki dotyczące wykorzystania rezystora "R" znajdują się w instrukcji sprzętowej H7-6.
B. Schemat połączeń wyjścia różnicowego FBs-XXMNR(T)
(W przypadku wejścia odbiornika liniowego PLC należy podłączyć FG w celu eliminacji zakłóceń)
Konfiguracja HSPSO za pomocą WinProladder
Kliknąć „I/O Configuration” w Project Windows:
Po wyświetleniu się okna "Output Setup", należy skonfigurować rodzaj wyjścia:
11.5. Opis funkcji sterowania pozycją FBs-PLC
Funkcja sterowania pozycją FBs-PLC wykorzystuje dedykowane funkcje sterowania NC wbudowane w PLC. Umożliwia to wykorzystywanie przez PLC do sterowania NC jednego bloku danych bez potrzeby przeprowadzania skomplikowanych czynności, takich jak wymiana danych i sterowanie zsynchronizowane pomiędzy tymi PLC a układem NC.
Jedna jednostka główna może sterować maksymalnie 4 osiami oraz realizować jednocześnie sterowanie wieloosiowe. Oprócz pozycjonowania punkt po punkcie oraz sterowania prędkością, jednostka realizuje także funkcję interpolacji liniowej. Kiedy system wymaga sterowania więcej niż 4 osiami, jednostka może wykorzystać funkcję CPU LINK w FBs-PLC w celu realizacji sterowania większą liczbą osi.
Instrukcje sterowania pozycją NC dla jednostek głównych FBs-XXMC i FBs-XXMN są identyczne. Jedyną różnicą są inne obwody wyjściowe (jak opisano wcześniej). W niniejszym dokumencie założono, że jednostka główna FBs-XXMCT wykorzystywana jest do sterowania silnikiem krokowym lub serwosilnikiem o małej prędkości, natomiast jednostka główna FBs-XXMN do sterowania serwosilnikiem o dużej prędkości. Poniżej, zilustrowany został schemat połączeń jednostki głównej FBs-XXMCT sterującej silnikiem krokowym oraz schemat jednostki głównej FBs-XXMN sterującej serwosilnikiem. Oczywiście, do sterowania serwosilnikiem wykorzystać można jednostkę główną FBs-XXMCT lub jednostkę główną FBs-XXMN do sterowania silnikiem krokowym. Należy pamiętać o zgodności sprzętowej wyjść sterownika PLC z wejściami sterującymi napędów.
11.5.1. Interfejs silnika krokowego
Jednostka główna FBs-XXMCT
l Silnik krokowy służy do odbierania impulsu wyjściowego w celu uzyskania żądanego kąta lub odległości, co umożliwi dodatnią korelację zliczania impulsów wejściowych przy prędkości obrotowej zależnej od częstotliwości impulsu wejściowego.
11.5.2. Interfejs serwosilnika
※ Poza pozycjami Y0~Y7 w powyższym schemacie, które służą celom dedykowanym, pozycje Y8~Y11 oraz odpowiadające im wejścia mogą być ustawiane według potrzeb użytkownika.
※ W celu zapewnienia prawidłowej pracy, do PLC należy podłączyć także czujniki krańcowe.
11.5.3. Schemat pracy serwerosilnika
l Enkoder serwosilnika wysyła do serwosilnika sygnał zwrotny położenia. Sterownik odbiera informacje o częstotliwości i liczbie impulsów w sygnale wyjściowym (komenda impulsowa) oraz częstotliwość i liczbę impulsów w sygnale zwrotnym przetworzonym przez wewnętrzny licznik błędów i obwód przetwornika częstotliwość-napięcie, a także informacje o odchyłkach w liczbie impulsów oraz prędkości obrotowej. Wykorzystanie tych informacji do sterowania serwosilnikiem umożliwia uzyskanie dużej prędkości, wysokiej precyzji oraz prawidłowej pracy systemu sterowania pozycją w zamkniętej pętli.
l Prędkość obrotowa serwosilnika zależy od częstotliwości impulsowej sygnału wejściowego; obrót silnika zależny jest od liczby zliczonych impulsów.
l Ogólnie rzecz biorąc, ostateczna odchyłka sterowania serwosilnikiem wynosi ±1 impuls.
11.6. Opis funkcji dla sterowania pozycją NC
Do sterowanie pozycją NC w FBs-PLC wykorzystywane są następujące cztery instrukcje:
l
Instrukcja szybkiego wyjścia impulsowego FUN140 (HSPSO) zawierająca 9 następujących instrukcji pozycjonowania:
Wykorzystywane do kodowania programu pozycjonującego i zapisywane w SR FUN140
1. SPD 4. DRVZ 7. EXT
2. DRV 5. WAIT 8. GOTO
3. DRVC 6. ACT 9. MEND
l Instrukcja ustawień parametru pozycjonowania FUN141 (MPARA)
l Instrukcja wymuszająca zatrzymanie impulsu wyjściowego FUN142 (PSOFF).
l Instrukcja konwersji aktualnej wartości impulsów na wartość wyświetlaną FUN143 (PSCNV)
l
Instrukcja bardzo szybkiego wyjścia impulsowego FUN147(MHSPO) zawierająca 7 następujących instrukcji pozycjonowania:
Wykorzystywane do kodowania programu pozycjonującego i zapisywane w polu argumentu SR FUN147
1. SPD 4. WAIT 7. MEND
2. LIN 5. EXT
3. LINE 6. GOTO
Opisy poniższych funkcji dotyczą wyżej wymienionych 5 instrukcji:
| FUN 140 HSPSO |
Szybkie wyjście impulsowe (do pozycjonowania NC) |
FUN 140 HSPSO |
|
Wyjaśnienie instrukcji
1. Program pozycjonowania NC instrukcji FUN140 (HSPSO) jest programem tworzonym i edytowanym poprzez programowanie tekstowe. Każda pozycja określana jest jako krok (na który składa się częstotliwość wyjściowa, odległość przesunięcia i warunki transferu). Maksymalna liczba punktów pozycjonowania dla jednej FUN140 wynosi 250, gdzie każdy krok sterowany jest przez 9 rejestrów. 2. Największą korzyścią z przechowywania programu pozycjonowania w rejestrach jest to, że w przypadku powiązania z MMI, istnieje możliwość zapisania i ponownego załadowania programu pozycjonowania przez MMI przy wymianie form. 3. Jeżeli przy “EN”=1, inne instrukcje FUN140 sterujące Ps0~3 będą nieaktywne (odpowiedni stan Ps0=M1992, Ps1=M1993, Ps2=M1994 i Ps3=M1995 będzie włączony), program rozpocznie od następnego punktu pozycjonowania (kiedy dotrze do ostatniego kroku, zostanie zrestartowany do kroku pierwszego); jeżeli Ps0~3 sterowane jest przez inna instrukcję FUN140 (odpowiedni stan Ps0=M1992, Ps1=M1993, Ps2=M1994 i Ps3=M1995 będzie wyłączony), instrukcja ta odbierze impuls wyjściowy sterujący w prawo w momencie wysłania impulsu w prawo przez FUN140. 4. Jeżeli wejście sterujące “EN” =0, wyjście impulsowe zostanie natychmiast zatrzymane. 5. Jeżeli sygnał przerwy na wyjściu “PAU” =1 i “EN” był wcześniej równy 1, nastąpi przerwanie wyjścia impulsowego. Jeżeli sygnał przerwy na wyjściu “PAU” =0, a “EN” będzie nadal równy 1, nastąpi kontynuacja pracy wyjścia impulsowego. 6. Jeżeli sygnał anulowania wyjścia " ABT”=1, nastąpi natychmiastowe zatrzymanie wyjścia impulsowego. (Jeżeli wejście sterujące "EN" będzie następnym razem równe 1, nastąpi restart i praca rozpocznie się od pierwszego kroku punktu pozycjonowania. 7. W czasie transmisji sygnału wyjściowego, wskaźnik wyjścia "ACT" będzie aktywny. 8. Jeżeli pojawi się błąd wykonania, na wyjściu uaktywni się wskaźnik "ERR".. 9. Po zakończeniu kroku punktu pozycjonowania, wskaźnik wyjścia "DN" będzie włączony.
*** Tryb pracy wyjścia impulsowego musi być ustawiony (bez ustawienia, Y0~Y7 traktowane będą jak wyjścia ogólne) jako jeden z trybów U/D, P/R lub A/B, aby wyjście impulsowe było wyjściem standardowym. Tryb U/D : Y0 (Y2, Y4, Y6), wysyła impuls zliczania w górę. Tryb P/R : Y0 (Y2, Y4, Y6), wysyła impuls zewnętrzny. Tryb A/B : Y0 (Y2, Y4, Y6), wysyła impuls fazowy A. ● Polaryzację wyjścia impulsowego można ustawić jako normalnie włączoną lub normalnie wyłączoną. 〔Interfejsy sterowania pozycjonowaniem〕
M2000 : WŁ, wiele osi pracuje równocześnie (Przy tym samym skanie, gdy sterowanie “EN”= 1 dla instrukcji FUN140 sterujących Ps0~3, ich impulsy zostaną wysłanie w tym samym momencie bez opóźnienia). : WYŁ, gdy FUN140 dla Ps0~3 rozpocznie się, nastąpi natychmiastowe wysłanie impulsu wyjściowego; ponieważ program drabinkowy wykonywany jest sekwencyjnie, to nawet, gdy FUN140 dla Ps0~3 została rozpoczęta przy tym samym skanie, to pomiędzy nimi musi być jakaś przerwa.
※ R4056 : Jeżeli wartość młodszego bajtu=5AH, to może być ona w każdej chwili zmieniona dynamicznie na częstotliwość wyjściową podczas transmisji szybkiego impulsu wyjściowego. Jeżeli wartość młodszego bajtu nie wynosi 5AH, to nie może być ona zmieniona dynamicznie na częstotliwość wyjściową podczas transmisji szybkiego impulsu wyjściowego. Domyślna wartość R4056 wynosi 0
R4064 : Numer zakończonego kroku (punktu pozycjonowania) Ps0. R4065 : Numer zakończonego kroku (punktu pozycjonowania) Ps1. R4066 : Numer zakończonego kroku (punktu pozycjonowania) Ps2. R4067 : Numer zakończonego kroku (punktu pozycjonowania) Ps3.
l Format programu pozycjonowania: SR: Rejestr początkowy bloku rejestrów do przechowywania programu pozycjonowania:
l Wyjaśnienie dla rejestrów roboczych WR:: WR jest rejestrem początkowym.
WR+0 : Jeżeli instrukcja jest wykonywana, zawartość tego rejestru reprezentuje realizowany krok (1~N). Jeżeli instrukcja nie jest wykonywana, zawartość tego rejestru reprezentuje krok, w którym nastąpiło zatrzymanie. WR+1 : B0~B7, suma kroków B8 = WŁ, pauza w wysyłaniu impulsów B9 = WŁ, oczekiwanie na spełnienie warunków przejścia B10 = WŁ, wyjście nieograniczone (argument przemieszczenia komendy DRV ustawiony jest na 0 ) B12 = WŁ, transmisja impulsów w na wyjściu (stan wskaźnika wyjścia “ACT”) B13 = WŁ, błąd wykonania instrukcji (stan wskaźnika wyjścia “ERR”) B14 = WŁ, zakończenie wykonywanego kroku (stan wskaźnika wyjścia “DN”)
*** Po zakończeniu kroku, wskaźnik wyjścia "DN" zostanie włączony. W przypadku zawieszenia, stan ten zostanie zachowany. Użytkownik może wyłączyć stan "DN" za pomocą wyzerowania rejestru WR+1
Uwaga : W rejestrze błędów zapisywany będzie ostatni kod błędu. Po upewnieniu się, ze nie wystąpią następne błędy, zawartość rejestru można wyzerować. Zerowa wartość rejestru wskazuje na brak błędów Edycja tabeli programu serwero z pomocą WinProladder
Kliknij “Servo Program Table” w oknach projektu :
● Table Type : Brak możliwości edycji” Servo Program Table ”. ● Table Name : Wybierz nazwę tabeli. ● Table Starting address : Wprowadź adres rejestru początkowego w tabeli programu serwo.
l W celu zapewnienia łatwego programowania i rozwiązywania problemów, WinProladder umożliwia programowanie tekstowe programu sterującego ruchem (tabela programu serwo) przy wykonywaniu instrukcji FUN140; Wprowadź najpierw instrukcję FUN140, a następnie przesuń na nią kursor na odpowiednią pozycję i naciśnij "Z". Umożliwi to edycję tekstową. Użytkownik może stworzyć nowy program sterujący ruchem lub wyświetlić istniejący program za pomocą przyjaznego użytkownikowi interfejsu. l Rozszerzone instrukcje pozycjonowania są następujące:
Uwaga: Porównanie pozycjonowania za pomocą współrzędnych względnych (ADR) i bezwzględnych (ABS)
l Kodowanie przy programowaniu pozycji : Przed edycją programu pozycjonowania wykonana musi zostać instrukcja FUN140. Następnie, program pozycjonujący zapisywany jest w rejestrze początkowym bloku rejestrów. Podczas edycji programu pozycjonowania, zmieniony program zostanie zapisany w rejestrze. Każdy edytowany punkt pozycjonowania (określanego jako jeden krok) sterowany jest przez 9 rejestrów. N punktów sterowanych będzie w sumie przez N x 9 +2 rejestrów. Uwaga: Rejestry, w których zapisany jest program pozycjonowania nie mogą być ponownie użyte! l Format i przykład programu pozycjonowania 1: 001 SPD 5000 ; Częstotliwość impulsu = 5KHz. DRV ADR,+,10000,Ut ; 10000 jednostek w przód. WAIT Time,100 ; Odczekaj 1 sekundę. GOTO NEXT ; Wykonaj następny krok. 002 SPD R1000 ; Częstotliwość impulsu zapisywana jest w DR1000 (R1001 i R1000). DRV ADR,+,D100,Ut ; Ruch w przód; przemieszczenie zapisywane jest w DD100 (D101 i D100). WAIT Time,R500 ; Czas oczekiwania zapisywany jest w R500. GOTO NEXT ; Wykonaj następny krok. 003 SPD R1002 ; Częstotliwość impulsu zapisywana jest w DR1002 (R1003 i R1002). DRV ADR,-,D102,Ut ; Ruch w tył; przemieszczenie zapisywane jest w DD102 (D103 and D102). EXT X0 ; Przy włączonym X0 GOTO NEXT ; natychmiast wykonaj następny krok. 004 SPD 2000 ; Częstotliwość impulsu = 2KHz. DRV ADR,-,R4072,Ps ; Kontynuuj wysyłanie reszty impulsów (zapisanych w DR4072). WAIT X1 : Poczekaj aż X1 będzie włączony, GOTO 1 : Wykonaj pierwszy krok. |
||
Przykład programu: Przejazd w przód
Po naciśnięciu i przytrzymaniu przycisku przejazdu w przód przez mniej niż 0.5 sekundy (wartość zmienna), następuje wysłanie jednego (wartość zmienna) impulsu;
Po naciśnięciu i przytrzymaniu przycisku przejazdu w przód przez ponad 0.5 sekundy (wartość zmienna), nastąpi ciągłe wysyłanie impulsów (z częstotliwością 10KHz, wartość zmienna). Zwolnienie przycisku spowoduje zatrzymanie transmisji impulsów. Istnieje możliwość ustawienia wysłania maksymalnie N impulsów
Przykład programu: Przejazd wstecz
Po naciśnięciu i przytrzymaniu przycisku przejazdu wstecz przez mniej niż 0.5 sekundy (wartość zmienna), następuje wysłanie jednego (wartość zmienna) impulsu;
Po naciśnięciu i przytrzymaniu przycisku przejazdu wstecz przez ponad 0.5 sekundy (wartość zmienna), nastąpi ciągłe wysyłanie impulsów (z częstotliwością 10KHz, wartość zmienna). Zwolnienie przycisku spowoduje zatrzymanie transmisji impulsów. Istnieje możliwość ustawienia wysłania maksymalnie N impulsów.
| FUN 141 MPARA | Funkcja ustawiająca parametry dla programu pozycjonującego | FUN 141 MPARA | |||||||||||||||||||||||||||||||||||||||||||||||||||
|
Objaśnienie funkcji
1. Zastosowanie funkcji nie jest koniczne, gdy wartości domyślne parametrów odpowiadają wymaganiom użytkownika. Konieczność zastosowania funkcji występuje w przypadku potrzeby zmiany parametrów względem domyślnych lub w aplikacjach, w których parametry mają być zmieniane dynamicznie. 2. Funkcja ta współpracuje z FUN140 przy pozycjonowaniu NC. Dla każdej osi przypisana może być tylko jedna funkcja FUN140. 3. Funkcja zostanie wykonana niezależnie od tego czy “EN” = 0, czy 1. 4. W przypadku błędnej wartości któregoś z parametrów, pojawi się komunikat błędu na wyjściu "ERR". Kod błędu zostanie zapisany w rejestrze kodów błędów. Opis tabeli parametrów: SR =Rejestr początkowy tabeli parametrów, na przykład R2000.
Edycja tabeli parametrów serwera w oprogramowaniu WinProladder
Kliknij prawym przyciskiem myszy na pozycji “Servo Parameter Table” w drzewku projektu :
● Table Type (typ tabeli) : Pole nieedytowalne – zawsze będzie to” Servo Parameter Table ”. ● Table Name (nazwa tabeli) : Wprowadź (najlepiej mówiącą o jej funkcji) nazwę tabeli. ● Table Starting address (adres początkowy tabeli) : Wprowadź adres rejestru początkowego tabeli.
Opis funkcji parametrów:
l Parametr 0: Ustawienie jednostek; wartość domyślna wynosi 1. Jeżeli ustawiona wartość wynosi 0, to skok i prędkość w programie pozycjonowania wyrażane będą w jednostkach inżynierskich (np. mm, stopniach, calach, itp.). Jeżeli ustawiona wartość wynosi 1, to skok i prędkość w programie pozycjonowania wyrażane będą w impulsach Jeżeli ustawiona wartość wynosi 2, to skok w programie pozycjonowania wyrażany będzie w jednostkach inżynierskich (np. mm, stopniach i calach, itp.), natomiast prędkość w impulsach/sekundę
l Parametr 1: Liczba impulsów na obrót (16to bitowa); wartość domyślna wynosi 2000, tj. 2000 Ps/Obr. Liczba impulsów jaka potrzebna jest do obrócenia silnika o jeden obrót Jeżeli parametr 14 = 0, parametr jest wiążący jako ilość Ps /Obr Jeżeli parametr 14 ≠ 0, parametr 14 jest wiążący jako ilość Ps /Obr, a parametr 1 jest ignorowany l Parametr 2: Przesunięcie na obrót (skok); wartość domyślna wynosi 2000. Przesunięcie podczas jednego obrotu silnika, podawane w formacie całkowitym z dokładności do 0,001 jednostki inżynierskiej, np.: B=1~999999 mm/Obr 1~999999 mStopnia/Obr 1~999999 x 0,1 mCala/Obr
lParametr 3: Rozdzielczość zadawania dystansu; wartość domyślna wynosi 2.
l Parametr 4: Prędkość maksymalna; wartość domyślna wynosi 460000, np. 460000 Ps/Sec. Jednostki impulsowe i mieszane: 1~921600 Ps/s. Jednostka inżynierskie: 1~153000 [x 10 j.inż/min (np. cm/min, x10 Stopni/min, Cali/min)]. Jednakże, częstotliwość maksymalna nie może być większa niż 921600 Ps/s. f_max =(V_max x 1000 x A)/(6 x B)£ 921600 Ps/s f_min ³ 1 Ps/s Uwaga: A = Parametr 1, B =Parametr 2. l Parametr 5: Prędkość początku/końca ruchu; wartość domyślna = 141. Jednostki impulsowe i mieszane: 1~921600 Ps/s. Jednostka inżynierskie: 1~15300 [x 10 j.inż/min ( np. cm/min, ´10 Deg/min, Inch/min)]. Jednakże, częstotliwość ta nie może być większa niż 921600 Ps/s. l Parametr 6: Prędkość pełzania wykorzystywana w procesie bazowania; wartość domyślna wynosi 1000. Jednostki impulsowe i mieszane: 1~65535 Ps/Sec Jednostka inżynierskie: 1~15300 [x 10 j.inż/min ( np. cm/min, ´10 Deg/min, Inch/min)]. l Parametr 7: Kompensacja luzu; wartość domyślna =0. Zakres ustawień: 0~32767 Ps. Przy zmianach kierunku ruchu, wartości ta będzie automatycznie dodawana do wielkości przesunięcia. l Parametr 8: Ustawienie czasu przyspieszenia/opóźnienia; wartość domyślna = 5000, a jednostką jest ms. Zakres ustawień : 0~30000 ms. Ustawiona wartość reprezentuje czas przyspieszania od prędkości początku ruchu do prędkości maksymalnej lub czas opóźniania od prędkości maksymalnej do prędkości początku ruchu. Przyspieszenie/opóźnienie ma stałą wartość, zależną od stosunku parametr 4/ parametru 8. Jeżeli parametr 12 = 0, parametr 8 jest czasem opóźnienia Dla krótkich skoków wykorzystana zostanie funkcja automatycznego opóźnienia. l Parametr 9: Kierunek obrotu i poszukiwania bazy; wartość domyślna wynosi 0100H (Parametr nie jest wykorzystywany w trybie interpolacji liniowej).
Parametr 9-0: Kierunek obrotu; wartość domyślna wynosi 0 Ustawiona wartość =0, pozycja bieżąca zwiększa się przy impulsie wyjściowym w przód, a zmniejsza się przy impulsie wyjściowym wstecz. Ustawiona wartość =1, pozycja bieżąca zmniejsza się przy impulsie wyjściowym w przód, a zwiększa się przy impulsie wyjściowym wstecz. Parametr 9-1: Kierunek poszukiwania bazy; wartość domyślna wynosi 1 Ustawiona wartość =0, kierunek, w którym pozycja bieżąca wzrasta. Ustawiona wartość =1, kierunek, w którym pozycja bieżąca maleje. l Parametr 10: Kompensacja przesunięcia w przód; wartość domyślna = 0. Zakres ustawień: -32768~32767 Ps. Przy impulsie wyjściowym w przód, wartość ta zostanie automatycznie dodana do wielkości przesunięcia. l Parametr 11: Kompensacja przesunięcia wstecz; wartość domyślna = 0. Zakres ustawień: -32768~32767 Ps. Przy impulsie wyjściowym wstecz, wartość ta zostanie automatycznie dodana do wielkości przesunięcia. l Parametr 12: Czas opóźnienia; wartość domyślna =0, a jednostką jest ms. Zakres ustawień: 0~30000 ms. Jeżeli parametr 12 = 0, to parametr 8 jest czasem opóźnienia Jeżeli parametr 12 ≠ 0, to parametr 12 jest czasem opóźnienia l Parametr 13: Stała czasowa interpolacji, wartość domyślna = 500. Zakres ustawień: 0~30000 ms. Ustawić czas wymagany do osiągnięcia prędkości określonej w programie. (prędkość początkowa przyjmowana jest zawsze jako 0). Parametr jest wiążący dla ruchów z interpolacją liniową, a określa przyspieszenie/opóźnienie ruchu interpolowanego. l Parametr 14: Liczba impulsów na obrót (32bitowa); wartość domyślna = 0. Liczba impulsów potrzebna do obrócenia silnika o jeden obrót Jeżeli parametr 14 = 0, parametr jest wiążący jako ilość Ps /Obr Jeżeli parametr 14 ≠ 0, parametr 14 jest wiążący jako ilość Ps /Obr, a parametr 1 jest ignorowany l Parametr 15: We/Wy wykorzystywane w ruchu bazującym DRVZ; wartość domyślna wynosi FFFFFFFFH
Parametr 15-0: Ustawienie wejścia DOG, na którym odbywa się bazowanie (SR+19); musi to być wyjście jednostki głównej b6~b0: Numer referencyjny wejścia DOG (0~15, oznacza X0~X15) b7 =0: Styk A (normalnie otwarty) =1: Styk B (normalnie zamknięty) b7~b0=FFH, wejście DOG nieskonfigurowane
l Parametr 15-1: Ustawienie wejścia czujnika krańcowego (SR+19) b14~b8: Numer referencyjny wejścia czujnika krańcowego (0~125, oznacza X0~X125) b15 = 0 : Styk A (normalnie otwarty) = 1 ; Styk B (normalnie zamknięty) b15~b8 = FFH, wejście czujnika krańcowego nieskonfigurowane
l Parametr 15-2: Ustawienie wejścia sygnałowego PG0 (SR+20); musi to być wejście jednostki głównej b6~b0: Numer referencyjny wejścia PG0 (0~15, oznacza X0~X15) b7= 0 : Rozpoczęcie zliczania po pojawieniu się stanu narastającego wejścia DOG b7= 1 ; Rozpoczęcie zliczania po pojawieniu się stanu oapadającego wejścia DOG b7~b0 = FFH, wejście PG0 nieskonfigurowane
l Parametr 15-3: Ustawienie wyjścia sygnałowego CLR (SR+20), musi to być wyjście jednostki głównej b15~b8: Numer referencyjny wyjścia CLR (0~23, oznacza Y0~Y23) b15~b8 =FFH, wyjście CLR nieskonfigurowane
l Parametr 16: Pozycja (w pulsach) jaką przyjmuje oś w chwili zbazowania; wartość domyślna wynosi 0. Zakres ustawień: -999999 ~ 999999 Ps l Parametr 17: Liczba zliczeń sygnału punktu zerowego (wykryć wejścia PG0); wartość domyślna wynosi 1. Zakres ustawień: 0~255 sygnałów
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
| FUN 142 P PSOFF | Wymuszenie zatrzymania wyjścia impulsowego | FUN 142 P PSOFF |
|
Objaśnienie funkcji
1. Jeżeli sygnał sterujący zatrzymaniem “EN” =1, lub zmieni się z 0→1(instrukcja P ), to funkcja ta wymusi zatrzymanie wysyłania impulsów dla wskazanego wyjścia impulsowego (wskazanej osi). 2. Jeżeli funkcja zostanie zastosowana w procesie bazowania, to w chwili osiągnięcia bazy, funkcja ta może zostać wykorzystana do natychmiastowego zatrzymania wysyłania impulsów. W ten sposób, wysyłanie impulsów będzie zatrzymywane w tej samej pozycji za każdym razem, gdy przeprowadzony zostanie proces powrotu maszyny do pozycji bazowej. Przykład programu
|
||
| FUN 143 P PSCNV |
Konwersja aktualnej pozycji osi w impulsach na wartość w jednostkach inżynierskich (mm, Stopnie, Cale, PS, etc) |
FUN 143 P PSCNV |
|
Objaśnienie funkcji
1. Jeżeli wejście sterujące “EN” =1, lub zmieni się z 0→1(instrukcja P), funkcja ta przekonwertuje aktualną pozycję osi w impulsach (PS) na odpowiadającą jej wartość wyrażoną w jednostkach inżynierskich (mm, Stopnie, Cale, PS, etc) w celu wyświetlenia aktualnej pozycji 2. Gdy do wykonywania ruchów pozycjonujących wykorzystywane są funkcje FUN140 i FUN147, wywołanie tej funkcji umożliwia prawidłową konwersję jednostek. Przykład programu |
||
| FUN 147 MHSPO | Wieloosiowe szybkie wyjście impulsowe | FUN 147 MHSPO |
|
Objaśnienie funkcji
1. Funkcja FUN147 (MHSPO) wykorzystywana jest do obsługi interpolacji liniowej przy sterowaniu ruchem wieloosiowym. Składa się z programu sterowania ruchem pisanego i edytowanego za pomocą edytora tekstowego. Każda punkt pozycjonowania określany jest jako krok (na który składa się częstotliwość wyjściowa, wartość przesunięcia i warunek przejścia). Każdy krok kodowany jest za pomocą 15 rejestrów sterownika. 2. Funkcja FUN147 (MHSPO) może obsługiwać do 4 osi przy jednoczesnej interpolacji liniowej lub dwie 2-osiowe grupy interpolacji liniowej (tj. Gp0 = Osie Ps0 i Ps1 ; Gp1 = Osie Ps2 i Ps3) 3. Największą korzyścią z przechowywania programu pozycjonowania w rejestrach jest to, że w przypadku powiązania z MMI, istnieje możliwość zapisania i ponownego załadowania programu pozycjonowania przez MMI przy wymianie form. 4. Jeżeli przy “EN”=1, inne funkcje FUN147/FUN140 sterujące Ps0~3 będą nieaktywne (stany odpowiednio: Ps0=M1992, Ps1=M1993, Ps2=M1994 i Ps3=M1995 będą w stanie wysokim), program rozpocznie wykonywanie od następnego punktu pozycjonowania (kiedy dotrze do ostatniego kroku, zostanie zrestartowany do kroku pierwszego); jeżeli Ps0~3 sterowane jest przez inna funkcję FUN147/FUN140 (stany odpowiednio: Ps0=M1992, Ps1=M1993, Ps2=M1994 i Ps3=M1995 będą w stanie niskim), funkcja ta uzyska dostęp do kontroli wyjścia sterującego w momencie zwolnienia dostępu przez inne funkcje FUN147/FUN140. 5. Jeżeli wejście sterujące “EN” =0, wysyłanie impulsów zostanie natychmiast zatrzymane. 6. Jeżeli sygnał pauzy na wyjściu “PAU” =1 i “EN” były wcześniej w stanie 1, nastąpi przerwanie wysyłania impulsów. Jeżeli sygnał pauzy na wyjściu “PAU” =0, a “EN” będzie nadal równe 1, nastąpi kontynuacja pracy wyjścia impulsowego 7. Jeżeli sygnał anuluj " ABT”=1, nastąpi natychmiastowe zatrzymanie wyjścia impulsowego. Jeżeli wejście sterujące "EN" ponownie przejdzie w stan 1, nastąpi restart programu a praca rozpocznie się od pierwszego kroku programu pozycjonującego. 8. W czasie transmisji sygnału wyjściowego, wskaźnik "ACT" będzie aktywny. 9. Jeżeli pojawi się błąd wykonania, na wyjściu uaktywni się wskaźnik "ERR".. (Kod błędu zostanie zapisany w rejestrze kodów błędów) 10. Po zakończeniu pojedynczego kroku pozycjonowania, wskaźnik "DN" przejdzie w stan wysokim.
*** Tryb roboczy wyjścia impulsowego musi być skonfigurowany (bez konfiguracji, Y0~Y7 traktowane będą jak wyjścia ogólnego przeznaczenia) jako jeden z trybów U/D, P/R lub A/B. Tryb U/D: Y0 (Y2, Y4, Y6), wysyła impulsy zliczania w górę. Y1 (Y3, Y5, Y7), wysyła impulsy zliczania w dół. Tryb A/B: Y0 (Y2, Y4, Y6), wysyła impulsy fazy A. Y1 (Y3, Y5, Y7), wysyła impulsy fazy B. ● Polaryzacja wyjscia impulsowego może być skonfigurowana jako normalna lub odwrócona.
【Zmienne systemowe przypisane pozycjonowaniu】
※ FUN147 Nie obsługuje dynamicznej zmiany częstotliwości na wyjściu podczas transmisji impulsów.. ● Format programu pozycjonującego z interpolacją liniową: SR:Rejestr początkowy bloku rejestrów do przechowywania programu pozycjonowania:
● Objaśnienie rejestrów roboczych funkcji: WR jest adresem początkowym rejestrów roboczych.
WR+0 : Jeżeli funkcja ta jest wykonywana, zawartość tego rejestru reprezentuje realizowany krok (1~N). Jeżeli funkcja nie jest wykonywana, zawartość tego rejestru reprezentuje krok, w którym nastąpiło ostatnie zatrzymanie. Jeżeli “EN” =1, nastąpi wykonanie następnego kroku, tj. wykonany zostanie aktualny krok plus 1 (jeżeli aktualny krok jest krokiem ostatnim, nastąpi wykonanie pierwszego kroku - zapętlenie). Przed załączeniem “EN” =1, użytkownik może zaktualizować zawartość WR+0 w celu określenia numeru korku do wykonania (jeżeli zawartość WR+0 =0, a "EN"=1, oznacza to, że wykonanie rozpocznie się od pierwszego kroku). WR+1 : B0~B7, suma kroków B8 = WŁ, wysyłanie impulsów wstrzymane B9 = WŁ, oczekiwanie na warunek wysyłania impulsów B10 = WŁ, nieskończone wysyłanie impulsów B12 = WŁ, wysyłanie impulsów (stan wyjścia “ACT”) B13 = WŁ, błąd wykonania funkcji (stan wyjścia “ERR”) B14 = WŁ, zakończenie wykonywanego kroku (stan wyjścia “DN”)
*** Po zakończeniu pojedynczego kroku, wyjście "DN" zostanie wystawione. W przypadku wstrzymania wysyłania impulsów, stan ten zostanie zachowany. Użytkownik może przełączyć stan "DN" w stan niski, poprzez wyzerowanie zawartości rejestru WR+1, narastającym stanem cewki kontrolowanej przez wyjście "DN.
Uwaga : W rejestrze błędu przechowywany jest ostatni kod błędu, jaki wystapił. W celu upewnienia się, że nie występują kolejne błędy, zawartość rejestru można wyzerować. Zerowa wartość rejestru wskazuje na brak błędu.
Edycja tabeli programu serwero w oprogramowaniu WinProladder
Kliknij prawym przyciskiem myszy na pozycji “Servo Program Table” w drzewku projektu:
● Table Type (typ tabeli): Multi-Axis positioning table (tabela pozycjonowania wieloosiowego) ● Table Name (nazwa tabeli): Wprowadź (najlepiej mówiącą o jej funkcji) nazwę tabeli. ● Table Starting address (adres początkowy tabeli): Wprowadź adres rejestru początkowego tabeli
l W celu zapewnienia łatwego programowania i rozwiązywania problemów, WinProladder dostarcza edytor programu sterującego ruchem (tabeli programu serwo), wykonywanego przez funkcję FUN147 l Rozszerzone instrukcje pozycjonowania dla ruchów z interpolacją liniową są następujące:
l Edycja programu pozycjonowania z interpolacją liniową:
Przed rozpoczęciem edycji tabeli programu pozycjonującego, należy wprowadzić i skonfigurować funkcję FUN147, nadając jej adres początkowy tabeli programu pozycjonującego. Po edycji programu pozycjonującego, zmieniony program zostanie zapisany w rejestrach. Każdy edytowany punkt pozycjonowania (inaczej krok pozycjonowania) definiowany jest przez 15 rejestrów. Dla zapisu programu o N krokach użyte zostanie N x 15 +2 rejestrów.
Uwaga: Rejestry, w których zapisany jest program pozycjonowania nie mogą być ponownie użyte w programie! l Format i przykład programu pozycjonowania z interpolacją liniową: 001 SPD 5000 ;Prędkość wektorowa = 5KHz LIN ADR,500,400,300,200,Ut ; 500(Ps0)/400(Ps1)/300(Ps2)/200(Ps3) jednostek w przód WAIT TIME,100 ;Odczekaj 1 sekundę GOTO NEXT ;Wykonaj następny krok 002 SPD R1000 ;Prędkość wektorowa zapisywana jest w DR1000(R1001 i R1000) LIN ADR,D100,D200, , ,Ut ;Skok zapisywany jest w DD100(Ps0) i DD200(Ps1) WAIT TIME,R500 ;Czas oczekiwania zapisywany jest w R500 GOTO NEXT ;Wykonaj następny krok 003 SPD R1002 ;Prędkość wektorowa zapisywana jest w DR1002(R1003 i R1002) LIN ADR,0,0,R300,R400,Ps ;Skok zapisywany jest w DR300(Ps2) i DR400(Ps3) WAIT X0 ;Odczekaj aż X0 będzie włączony GOTO 1 ;Wykonaj pierwszy krok Przykład Poniżej przedstawiona została definicja pojedynczego kroku programu pozycjonowania z interpolacją liniową:
Oznacza to, że skok dla osi Ps0(oś X) wynosi 1000 Ps, dla osi Ps1(oś Y) wynosi 500 Ps. Osie Ps2 i Ps3 są nieaktywne, ponieważ wartości ustawionych dla nich skoków są zerowe.
● W celu zapewnienia prawidłowego okresu próbkowania wejścia impulsowego z ręcznego generatora impulsów, funkcję tą należy wywoływać wewnątrz okresowego przerywania sprzętowego 50mS (50MSI) lub poprzez zastosowanie szybkiego zegara sprzętowego 0.1mS do wygenerowania okresowych przerwań sprzętowych co 50mS. Gdy nadchodzą impulsy wejściowe zliczane przez licznik sprzętowy, funkcja oblicza wymaganą liczbę impulsów do wygenerowania przez wyjście impulsowe na podstawie ustawienia przełożenia (Mr+0 i Mr+1), a następnie w tym okresie czasu generuje strumień impulsów z ustawioną prędkością (Fo). Ustawiona prędkość wyjściowa (Fo) oraz czasy przyspieszenia/opóźnienia (określane parametrami 4 i 8 funkcji FUN141) muszą zagwarantować wysyłanie wszystkich impulsów w okresie 50ms. Szczególnie jest to istotne w przypadku wysokiego mnożnika (rzędu 100, 200).
● W przypadku, gdy "EN"=1, funkcja ta przeprowadzi próbkowanie wejścia impulsowego ręcznego generatora impulsów, poprzez zaczytanie aktualnej wartości licznika sprzętowego w okresie czasowym (w każdym wywołaniu okresowego przerwania sprzętowego 50ms). W przypadku stwierdzenia pojawienia się impulsów wejściowych, funkcja wyliczy wymaganą do wygenerowania liczbę impulsów wyjściowych na podstawie ustawionego przełożenia, a następnie w okresie 50ms wygeneruje strumień impulsów z ustawioną prędkością (Fo) Liczba impulsów wyjściowych = (Liczba impulsów wejściowych × Fa ) / Fb ● Funkcja ta kontrolowana jest przez system zarządzania zasobami sprzętowymi, dlatego też nie zostanie ona wykonana, gdy sprzęt jest zajęty. ● Gdy impulsy wyjściowe są generowane, wyjście ACT=1; w przeciwnym wypadku ACT=0.
Przykład 1:
X32 :Wybierz oś 0(Ps0) X33 :Wybierz oś 1 (Ps1) X34 :Mnożnik = 1 X35 :Mnożnik = 10 X36 :Mnożnik = 100 M100: Włącz / wyłącz MPG DR2005: Maksymalna prędkość osi 0(Parametr 4 dla FUN141);200K Hz R2011 :Czas przyspieszenia/zwolnienia osi 0 (Parametr 8 dla FUN141);30mS DD600:Prędkość wyjściowa osi 0 dla MPG; 200K Hz DR2105: Maksymalna prędkość osi 1 (Parametr 4 dla FUN141) ; 200K Hz R2111 :Czas przyspieszenia/opóźnienia osi 1 (Parametr 8 dla FUN141); 30mS DD602:Prędkość wyjściowa osi 1 dla MPG; 200K Hz Opis: Dla zrealizowania pozycjonowania MPG Ps0 i Ps1, funkcja MPG (FUN148) wywoływana jest w procedurze obsługi okresowego przerwania co 50mS (przerwanie o etykiecie 50MSI). Gdy X32=1 i M100=1, funkcja wykona pozycjonowanie MPG osi Ps0. Nastąpi próbkowanie wejścia impulsowego poprzez odczyt aktualnej wartości HSC0 co każde 50mS. W przypadku braku impulsów wejściowych, nie pojawi się także impulsy wyjściowe. W przypadku wykrycia impulsów na wejściu HSC0, funkcja obliczy liczbę impulsów do wysłania na podstawie ustawienia mnożnika (D700/ D701), ), a następnie w tym okresie czasu wygeneruje strumień impulsów z ustawioną prędkością Fo (DD600). Liczba impulsów wyjściowych= (Liczba impulsów wejściowych HSC0 × D700) / D701
Przykład 2:
X32 : Wybierz oś 0 (Ps0) X33 : Wybierz oś 1 (Ps1) X34 : Mnożnik = 1 X35 :Mnożnik = 10 X36 : Mnożnik = 100 M100:Włącz / wyłącz MPG DR2005: Maksymalna prędkość osi 0 (Parametr 4 of FUN141) ; 200K Hz R2011 : Czas przyspieszenia / opóxnienia osi 0 (Parametr 8 dla FUN141); 30mS DD600: Prędkość wyjściowa osi 0 dla MPG; 200K Hz DR2105:Maksymalna prędkość osi 1 (Parametr 4 dla FUN141) ; 200K Hz R2111 :Czas przyspieszenia / opóźnienia osi 1 (Parametr 8 dla FUN141); 30mS DD602:Prędkość wyjściowa osi 1 dla MPG; 200K Hz Opis: Wykonywanie okresowe (co 50ms) funkcji MPG dla osi Ps0 i Ps1 realizowane jest poprzez wykorzystania szybkiego timera sprzętowego o podstawie czasu 0.1mS. Timer ten (HSTA) generuje okresowe przerwanie sprzętowe (HSTAI) co 50ms. Gdy X33=1 i M100=1, funkcja wykona pozycjonowanie MPG osi Ps1. Nastąpi próbkowanie wejścia impulsowego poprzez odczyt aktualnej wartości HSC0 co każde 50mS. W przypadku braku impulsów wejściowych, nie pojawi się także impulsy wyjściowe. W przypadku wykrycia impulsów na wejściu HSC0, funkcja obliczy liczbę impulsów do wysłania na podstawie ustawienia mnożnika (D700/ D701), ), a następnie w tym okresie czasu wygeneruje strumień impulsów z ustawioną prędkością Fo (DD602). .Liczba impulsów wyjściowych = (Liczba impulsów wejściowych HSC0 × D700) / D701
Funkcja ręcznego generatora impulsów (FUN148,MPG) daje możliwość ograniczania ruchów naśladowania wejścia impulsowego we wskazanym kierunku.
Jeżeli wartość starszego bajtu R4020 ≠55H, funkcjonalność ta jest wyłączona
Przykład programu
|
||
11.7. Budowanie maszyny
Maszyny stosujące enkodery inkrementalne dla wyznaczenia przemieszczenia z reguły wymagają procedury zresetowania w celu ustalenia pozycji odniesienia. Procedurę tę nazywa się bazowaniem maszyny (poszukiwaniem zerowej pozycji odniesienia).
Schematy bazowania maszyny dla urządzeń NC wyglądają następująco
Metoda 1
Po zliczeniu zadanej liczby impulsów z fazy Z, wyjście impulsowe przestaje wysyłać impulsy a sygnał CLR jest wystawiany w celu wyzerowania licznika błędu napędu serwo.
np.:
X3: Wejście wykrywające bliskość bazy skonfigurowane jest do zgłaszania przerwania sprzętowego: podczas procedury bazowania,, uruchamia ono zliczanie licznika programowego HSC4 wewnątrz procedury obsługi przerwania sprzętowego X3+.
X2: Wejście zliczania fazy Z skonfigurowane jest jako wejście zliczając w górę licznika programowego HSC4; Przerwanie sprzętowe X2+ (na działaniu którego opiera się zliczanie licznika HSC4) jest deaktywowane w czasie normalnej pracy. W przypadku, gdy podczas procedury bazowania maszyny pojawi się przerwanie sprzętowe od czujnika bliskości bazy X3, procedura obsługi tego przerwania aktywuje zliczanie licznika HSC4, który zaczyna zliczać impulsy fazy Z. Po doliczeniu do zadanej wartości, HSC4 zatrzymuje impulsy wyjściowe, blokuje przerwanie X2+, ustala pozycję bazową i wysyła sygnał CLR w celu wyzerowania licznika błędów napędu serwo. Patrz przykład programu.
Metoda 2:
Oś porusza się w kierunku czujnika bliskości bazy, po pojawieniu się narastającego sygnału z czujnika oś zwalnia i pokonuje jeszcze niewielki dystans i wysyłanie impulsów pozycjonujących zatrzymuje się. Po czym oś rozpoczyna powolny ruch wstecz. W momencie zjechania z czujnika bliskości bazy (pojawieniu się stanu opadającego na wejściu), pozycja osi przyjmowana jest jako pozycja bazowa. Takie program jest prostszy!
X3: Wejście wykrywające bliskość bazy skonfigurowane jest do zgłaszania sprzętowego przerwania od jego stanu.
· Po wykryciu sygnału na wejściu bliskości bazy nastąpi aktywacja przerwania sprzętowego od opadającego stanu X3 oraz zwolnienie ruchu osi. Po pokonaniu niewielkiego dystansu, zawierającego się w zasięgu działania wejścia bliskości bazy, oś się zatrzyma.
· Rozpocznie się powolny ruch wstecz, do chwili wykrycia stanu opadającego na czujniku bliskości bazy.
· W tym momencie nastapi natychmiastowe wykonanie procedury obsługi przerwania sprzętowego X3-.
· Procedura obsługi przerwania X3-: Bezzwłocznie zatrzymuje wyjście impulsowe, dezaktywuje przerwanie X3-, ustawia pozycję bazową i wysyła sygnał CLR w celu wyzerowania licznika błędów napędu serwo. (Patrz przykład programu)
Przykład programu 1: Bazowanie maszyny (metoda 1)
X2: Skonfigurowane jako wejście UP HSC4 i podłączone do wyjścia fazy Z enkodera.
X3: Skonfigurowane do zgłaszania przerwania sprzętowego przy narastającym stanie i podłączone do wejścia wykrywającego bliskość bazy.
Program główny
Podprogram
Przykład programu 2: Bazowanie maszyny (metoda 2)
X3: Podłączone do czujnika wykrywania bliskości bazy i skonfigurowane do zgłaszania przerwania sprzętowego przy stanie opadającym.
Program główny
Podprogram
Oba powyższe przykłady ustalania pozycji bazowej maszyny, realizowane są za pomocą programu drabinkowego. Zrozumienie jego działania nie jest trudne, ale zastosowanie kłopotliwe, co może być uciążliwe dla użytkowników. Ponieważ FATEK zawsze bierze pod uwagę komfort użytkownika, do funkcji szybkiego wyjścia impulsowego (FUN140) dodano komendę poszukiwania bazy (DRVZ), działającą w jednym z trzech trybów (MD0~MD2). Funkcjonalność ta jest wspierana przez jednostki główne sterowników PLC serii FBs o wersji firmware V4.32 lub nowszej
Zastosowanie komendy DRVZ do poszukiwania pozycji bazowej, musi być poprzedzone skonfigurowaniem skojarzonych z tą funkcjonalnością parametrów serwa (FUN141):
Funkcja FUN 140 nie wykona komendy poszukiwania bazy, jeżeli pojawią się następujące błędy:
Metodyka wprowadzania komendy DRVZ do programu pozycjonującego, jest identyczna jak w przypadku pozostałych dwóch typów ruchów (DRV i DRVC) funkcji FUN140. Aby wprowadzić ruch bazujący, w wierszu Movement edytora komend ruchu należy wybrać ruch typu DRVZ a następnie wskazać tryb bazowania (MD0~MD2) (patrz przykład poniżej):
Poniższej schematycznie opisują przebieg procedury bazowania (DRVZ)
Tryb 0
Opis
1. Bazowanie rozpoczyna się, gdy oś znajduje się przed czujnikiem DOG (Parametr 15_0)
a. Ruch z prędkością bazowania, zgodnie z kierunkiem bazowania.
b. Po najechaniu na czujnik DOG (wykrycie zbocza jako przerwanie sprzętowe), redukcja prędkości do prędkości pełzania (Parametr 6).
c. Kontynuacja ruchu w kierunku bazowania do momentu zjechania z czujnika DOG (wykrycie zbocza jako przerwanie sprzętowe); jest to pozycja bazowa (pozycja osi przyjmuje wartość parametru 16 – pozycji w chwili zbazowania).
d. Jeżeli wyjście zerowania błędu pozycji dla serwonapędu CLR (Parametr 15_3) nie zostało skonfigurowane, to proces bazowania zakończy się na kroku c.
e. Jeżeli wyjście zerowania błędu pozycji dla serwonapędu CLR (Parametr 15_3) zostało skonfigurowane, to proces bazowania zakończy się po wystawieniu wyjścia CLR na czas min. 20ms.
2. 2. Bazowanie rozpoczyna się, gdy oś znajduje się za czujnikiem DOG (Parametr 15_0) a przed czujnikiem krańcowym (Parametr 15_1)
a. Ruch z prędkością bazowania zgodnie z kierunkiem bazowania. Zatrzymanie ruchu po najechaniu na czujnik krańcowy.
b. Ruch z prędkością bazowania w kierunku przeciwnym do kierunku bazowania. Po minięciu czujnika DOG, procedura bazowania jest realizowana tak jak opisano w punkcie 1.
Tryb 1
Opis
1. Bazowanie rozpoczyna się, gdy oś znajduje się przed czujnikiem DOG (Parametr 15_0)
a. Ruch z prędkością bazowania, zgodnie z kierunkiem bazowania.
b. Po najechaniu na czujnik DOG (wykrycie zbocza jako przerwanie sprzętowe), redukcja prędkości do momentu zatrzymania ruchu.
c. Po czasie 0.5 sekundy, ruch z prędkością pełzania w kierunku przeciwnym do kierunku bazowania (cofanie), do momentu zjechania z czujnika DOG (wykrycie zbocza jako przerwanie sprzętowe); jest to pozycja bazowa (pozycja osi przyjmuje wartość parametru 16 – pozycji w chwili zbazowania).
d. Jeżeli wyjście zerowania błędu pozycji dla serwonapędu CLR (Parametr 15_3) nie zostało skonfigurowane, to proces bazowania zakończy się na kroku c.
e. Jeżeli wyjście zerowania błędu pozycji dla serwonapędu CLR (Parametr 15_3) zostało skonfigurowane, to proces bazowania zakończy się po wystawieniu wyjścia CLR na czas min. 20ms.
2. 2. Bazowanie rozpoczyna się, gdy oś znajduje się za czujnikiem DOG (Parametr 15_0) a przed czujnikiem krańcowym (Parametr 15_1)
a. Ruch z prędkością bazowania zgodnie z kierunkiem bazowania. Zatrzymanie ruchu po najechaniu na czujnik krańcowy.
b. Ruch z prędkością bazowania w kierunku przeciwnym do kierunku bazowania. Po minięciu czujnika DOG, procedura bazowania jest realizowana tak jak opisano w punkcie 1.
Tryb 2 (Rozpoczęcie zliczania na froncie czujnika DOG)
Opis
1. Bazowanie rozpoczyna się, gdy oś znajduje się przed czujnikiem DOG (Parametr 15_0)
a. Ruch z prędkością bazowania, zgodnie z kierunkiem bazowania.
b. Po najechaniu na czujnik DOG (wykrycie zbocza jako przerwanie sprzętowe), redukcja prędkości do prędkości pełzania (Parametr 6), po czym rozpoczęcie zliczania (wykrywanie zboczy jako przerwanie sprzętowe) sygnału PG0 (Parametr 15_2)
c. Kiedy liczba zliczeń sygnału PG0 zrówna się z zadaną liczbą zliczeń (Parametr 17), jest to pozycja bazowa (pozycja osi przyjmuje wartość parametru 16 – pozycji w chwili zbazowania).
d. Jeżeli wyjście zerowania błędu pozycji dla serwonapędu CLR (Parametr 15_3) nie zostało skonfigurowane, to proces bazowania zakończy się na kroku c.
e. Jeżeli wyjście zerowania błędu pozycji dla serwonapędu CLR (Parametr 15_3) zostało skonfigurowane, to proces bazowania zakończy się po wystawieniu wyjścia CLR na czas min. 20ms.
2. Bazowanie rozpoczyna się, gdy oś znajduje się za czujnikiem DOG (Parametr 15_0) a przed czujnikiem krańcowym (Parametr 15_1)
a. Ruch z prędkością bazowania zgodnie z kierunkiem bazowania. Zatrzymanie ruchu po najechaniu na czujnik krańcowy.
b. Ruch z prędkością bazowania w kierunku przeciwnym do kierunku bazowania. Po minięciu czujnika DOG, procedura bazowania jest realizowana tak jak opisano w punkcie 1.
※ Wykonując procedurę bazowani w tym trybie, należy zwrócić uwagę na prawidłową pozycję czujnika DOG względem sygnałów PG0, w celu uniknięcia błędu jednego zliczenia.
Tryb 2 (Rozpoczęcie zliczania za czujnikiem DOG)
Opis
1. Bazowanie rozpoczyna się, gdy oś znajduje się przed czujnikiem DOG (Parametr 15_0)
a. Ruch z prędkością bazowania, zgodnie z kierunkiem bazowania.
b. Po najechaniu na czujnik DOG (wykrycie zbocza jako przerwanie sprzętowe), redukcja prędkości do prędkości pełzania (Parametr 6). Kontynuacja ruchu do momentu zjechania z czujnika DOG (wykrycie zbocza jako przerwanie sprzętowe) po czym rozpoczęcie zliczania (wykrywanie zboczy jako przerwanie sprzętowe) sygnału PG0 (Parametr 15_2)
c. Kiedy liczba zliczeń sygnału PG0 zrówna się z zadaną liczbą zliczeń (Parametr 17), jest to pozycja bazowa (pozycja osi przyjmuje wartość parametru 16 – pozycji w chwili zbazowania).
d. Jeżeli wyjście zerowania błędu pozycji dla serwonapędu CLR (Parametr 15_3) nie zostało skonfigurowane, to proces bazowania zakończy się na kroku c.
e. Jeżeli wyjście zerowania błędu pozycji dla serwonapędu CLR (Parametr 15_3) zostało skonfigurowane, to proces bazowania zakończy się po wystawieniu wyjścia CLR na czas min. 20ms
2. Bazowanie rozpoczyna się, gdy oś znajduje się za czujnikiem DOG (Parametr 15_0) a przed czujnikiem krańcowym (Parametr 15_1)
a. Ruch z prędkością bazowania zgodnie z kierunkiem bazowania. Zatrzymanie ruchu po najechaniu na czujnik krańcowy.
b. Ruch z prędkością bazowania w kierunku przeciwnym do kierunku bazowania. Po minięciu czujnika DOG, procedura bazowania jest realizowana tak jak opisano w punkcie 1.
※ Wykonując procedurę bazowani w tym trybie, należy zwrócić uwagę na prawidłową pozycję czujnika DOG względem sygnałów PG0, w celu uniknięcia błędu jednego zliczenia.
W trzech powyższych opisach trybów bazowania zakłada się, że procedura bazowania rozpoczyna się gdy oś znajduje się przed czujnikiem DOG. Jednakże w chwili rozpoczęcia procedury bazowania, oś może znajdować się za lub na czujniku DOG. Poniższy schemat i opis przedstawiają zachowanie się osi w tych dwóch przypadkach:
Kroki
1. Ruch z prędkością bazowania, zgodnie z kierunkiem bazowania (Parametr 9_1). Ruch zakończy się w chwili najazdu na czujnik krańcowy (Parametr 15_1).
2. Po najeździe na czujnik krańcowy (Parametr 15_1), rozpoczyna się ruch w kierunku przeciwnym do kierunku bazowania. Ruch trwa do momentu minięcia czujnika DOG (zmiana sygnału czujnika z 1 → 0).
3. Wykonanie kroku nr 2 oznacza, że oś znalazła się przed czujnikiem DOG. Procedura bazowania będzie kontynuowana zgodnie z wcześniej ustawionym trybem (MD0~MD2).
Przykład programu 3: Procedura bazowania (z wykorzystaniem trybu 2 komendy DRVZ)
Tabela ustawień parametrów serwa (FUN 141)
Tabela programu serwa (FUN 140)
Opis programu
(1). Po uruchomieniu programu, marker pierwszego skanu programu (M1924) ustawi adres początkowy tabeli parametrów serwo.
(2). Po zmianie M0 z 0→1 (instrukcja P ), poprzez samopodtrzymanie M1 przejdzie w stan wysoki i jednocześnie rozpocznie się realizacja procedury bazowania przez funkcję FUN140.
(3). Zgodnie z ustawieniem kroku pozycjonowania funkcji FUN140 w tabeli programu serwo, na początku oś będzie się poruszać w kierunku bazowania z prędkością 5000 do momentu najazdu na czujnik DOG (X2). Nastąpi wtedy natychmiastowa redukcja prędkości do 1000 i rozpoczęcie zliczania impulsów z wejścia PG0.
(4). Kiedy liczba zliczeń sygnału PG0 (X4) wyniesie 10, będzie to oznaczać, że została znaleziona pozycja bazowa. Na czas minimum 20mS wystawiony zostanie sygnał zerujący (Y8), a wartość pozycji bazowej maszyny zostanie ustawiona na 100 i zapisana w rejestrze pozycji bieżącej (w przykładzie tym zastosowana została oś 0, wartość 100 pojawi się zatem w DR4088). Operacja bazowania zostaje zakończona.
Schemat
※ Wejście DOG powinno być ustawione jako jedno z wejść jednostki głównej o adresie X0~X15.
※ Po skonfigurowaniu danego wejścia jako wejście DOG, nie może ono kolidować z przerwaniem sprzętowym ani z szybkim licznikiem sprzetowym. Na przykład, jeżeli wejście X0 zostało ustawione jako wejście DOG dla jednej z osi, nie może ono zostać ustawione do zgłaszania przerwań sprzętowych ani jako szybki licznik sprzętowy.
Przykład programu 4 : JOGowanie w przód
Przykład programu 4 : JOGowanie w tył
Przykład programu 6: Krok po kroku, pojedynczy cykl, ciągła kontrola pozycji
M93 : Start
M101 : Tryb pracy krok po kroku
M102 : Tryb pracy z jednym cyklem
M103 : Tryb pracy ciągłej
M104 : Zwykłe wyłączenie.
M105 : Zatrzymanie awaryjne.



















































































