Skip to main content

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

image.png

l Oznaczenie współrzędnych względnych

image.png

11.3. Procedury realizacji pozycjonowania FBs-PLC

image.png

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:

image.png

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

image.png

*Wskazówki dotyczące wykorzystania rezystora "R" znajdują się w instrukcji sprzętowej H7-6.

image.png

B. Schemat połączeń wyjścia różnicowego FBs-XXMNR(T)

image.png

image.png

(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:

image.png

Po wyświetleniu się okna "Output Setup", należy skonfigurować rodzaj wyjścia:

image.png

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

image.png

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.

image.png

11.5.2. Interfejs serwosilnika

image.png

※    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

image.png

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

image.png

 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"..
(Kod błędu zostanie zapisany w rejestrze kodów błędów)

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ę.
 Y1 (Y3, Y5, Y7), wysyła impuls zliczania w dół.

Tryb P/R : Y0 (Y2, Y4, Y6), wysyła impuls zewnętrzny.
 Y1 (Y3, Y5, Y7), wysyła sygnał kierunkowy;
 ON = zliczanie w górę, OFF= zliczanie w dół.

Tryb A/B : Y0 (Y2, Y4, Y6), wysyła impuls fazowy A.
 Y1 (Y3, Y5, Y7), wysyła impuls fazowy B.

  ● Polaryzację wyjścia impulsowego można ustawić jako normalnie włączoną lub normalnie wyłączoną.

 〔Interfejsy sterowania pozycjonowaniem〕

 

image.png

 

 

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.

 

image.png

 

 

※ 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:

image.png

 

l  Wyjaśnienie dla rejestrów roboczych WR::

WR jest rejestrem początkowym.


 

image.png

 

 

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.
Jeżeli “EN” =1, nastąpi wykonanie następnego kroku, tj. aktualny krok plus 1 (jeżeli aktualny krok jest krokiem ostatnim, nastąpi wykonanie pierwszego kroku).
Przed rozpoczęciem sterowania “EN” =1, użytkownik może zaktualizować zawartość WR+0 w celu określenia pierwszego kroku 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Ł, 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

 

image.png

 

 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 :

image.png

 

 

image.png

 

   ● 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.

 

image.png

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:

 

image.png

 

 

image.png

 

 Uwaga: Porównanie pozycjonowania za pomocą współrzędnych względnych (ADR) i bezwzględnych (ABS)

image.png

 

image.png

 

 

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

image.png

 

 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.