Wyjścia impulsowe – PWM-PTO

PWM_mini

W sterowniku S7-1200 z wyjściami tranzystorowymi jest możliwość użycia wyjść cyfrowych jako wyjścia impulsowe. Standardowe w sterowniku z firmware v4.0 lub nowszym można przyporządkować wszystkie wyjścia jako wyjścia impulsowe.

Wyjścia impulsowe – PWM-PTO

Typy wyjść impulsowych

Wyjścia impulsowe można podzielić na

PTO

W niektórych maszynach projekt będzie wymagał wykorzystania silników krokowych lub serwonapędów w celu precyzyjnego sterowania ich ruchem. Przy sterowaniu ruchami bardziej złożonymi stosuje się więcej napędów tworzących dodatkowe osie ruchu. Wówczas z pomocą przychodzą wyjścia PTO (ang. Pulse Train Output). Jedno z nich charakteryzuje się stałym 50% wypełnieniem pozwalającym generować programowo określoną liczbę impulsów, których częstotliwość może być zmieniana. Drugie wyjście pozwala określać kierunek ruchu. Wraz z firmware’em 4.0 pojawiła się możliwość dowolnego przypisywania wyjść cyfrowych do kanałów PTO.

Aktywacja i konfiguracja tych wyjść odbywa się w zakładce Pulse generators (PTO/PWM). W drzewie projektu znajduje się Technology object, gdzie można dodać nowy obiekt Motion Control. Funkcje znajdujące się w Instructions/Technology/Motion Control ułatwiają kontrolę ruchu osi z wykorzystaniem przypisanego bloku danych technologicznych i odpowiedniego PTO.

PWM

Najczęściej jednak w aplikacjach zachodzi potrzeba zmiana współczynnika wypełnienia, czyli PWM (ang. Pulse-width modulation). Przykładowe przebiegi przedstawiono na poniższym rysunku

przebiegi-pwm

Jeżeli do wyjścia cyfrowego podłączysz standardową diodę LED, wówczas zmiana współczynnika wypełnienia powodowałaby zmianę jasności świecenia. Ważnym parametrem jest okres. Jeżeli okres wynosił 1 Hz, a wypełnienie 50%, wówczas dioda pulsuje (0,5 s świeci, 0,5 s jest zgaszona). Każdy z nas wie, że aby uzyskać płynną zmianę jasności, okres powinien wynosić co najmniej 50 Hz (najlepiej 100 Hz) wykorzystując bezwładność ludzkiego oka, widzimy płynną zmianę jasności świecenia diody LED.

Konfiguracja sprzętowa

Ponieważ wyjścia impulsowe są sprzętowym rozwiązaniem, dlatego należy przeprowadzić konfigurację sprzętową tych wyjść. Wybieramy z drzewa projektu Device configuration. Przechodzimy do właściwości sterownika, co przedstawia poniższy rysunek

enable-pwm

Sterownik CPU1211 DC/DC/DC ma cztery wyjścia, zatem jak widzisz w zakładce General, mamy cztery zakładki PTO/PWM.

Uaktywnienie danego kanału PWM polega na zaznaczeniu opcji Enable this pulse generator w polu Enable. Domyślną nazwą (która jest także identyfikatorem sprzętowym) dla kanału pierwszego jest Pulse_1.

Poniżej znajdują się opcje do precyzyjnej konfiguracji kanału, co przedstawia poniższy rysunek

konfiguracja-pwm

Przeprowadzenie konfiguracji polega na ustawieniu pól w sekcji Pulse options:

  • Signal type – wybieramy PWM jako typ generatora,
  • Time Base – milisekundy będą jednostką czasu, w jakiej będzie generowany przebieg,
  • Pulse duration format – wartość wypełnienia będzie zadawana w granicach 0 – 100,
  • Cycle time – określenie częstotliwości, z jaką będzie generowany sygnał PWM,
  • Initial pulse duration – wartość początkowa określająca współczynnik wypełnienia sygnału PWM.

Parametr Time base (podstawa czasu) służy do określenia dokładności, z jaką zliczane będą impulsy. Podczas wybory należy zwrócić uwagę na także na czas cyklu oraz współczynnik wypełnienia. Jest to wszystko powiązane ze zwiększeniem rozdzielczości generatora, a co za tym idzie zwiększeniem obciążenia firmwaru sterownika.

Korzystamy z wyjścia wbudowanego w PLC, więc w polu Hardware output automatycznie zostaje przypisany pierwszy wolny adres, czyli Q0.0. Oczywiście można wybrać sobie inne wyjście. Wbudowane wyjścia mogą pracować z maksymalną częstotliwością 100kHz. Większą częstotliwość można uzyskać poprzez dołożenie do sterownika płytki sygnałowej. Wówczas częstotliwość będzie mogła wynosić maksymalnie 200kHz.

Na samym końcu znajduję się pole Output addresses, co przedstawia poniższy rysunek

zakres-pamieci-pwm

Pola Start address oraz End address zakres pamięci, w której znajduje się wartość współczynnika wypełnienia, zatem przewidziano dwa bajty pamięci. Ten adres jest potrzebny do zmiany wypełnienia. Domyślnie został przydzielony adres 1000.

Adresy dla wszystkich kanałów PWM można podejrzeć w zakładce Device overview, co przedstawia poniższy rysunek.

identyfikatory-pwm

Identyfikatory Pulse_1, Pulse_2, Pulse_3, Pulse_4, to kanały PWM dla sterownika CPU1211 DC/DC/DC.

Kod programu

W ten sposób została wykonana konfiguracja sprzętowa. Jednak użycie kanału PWM z kodu programu wymaga jego wcześniejszej aktywacji. Do tego celu służy funkcja CTRL_PWM(), która jest dostępna w kacie instrukcji, a dokładnie w Instructions/Extended instruction/Pulse.

Przykładowe wywołanie przedstawiono poniżej

″IDB3_CTRL_PWM″(PWM:=″Local~Pulse_1″,  //identyfikator PWM (Hardware identifier)
ENABLE:=TRUE, //TRUE = start generatora PWM, FALSE = stop generator PWM
BUSY=> #Busy,
STATUS=>#Status);  //kod warunkowy 

Parametr PWM tej funkcji służy do przypisania sprzętowego numeru identyfikacyjnego. Jest on dostępny w tablicy PLC tags o nazwie Default tag table, co przedstawia poniższy rysunek

lista-stalych-systemowych

Parametr Enable służy do włączenia kanału PWM. Funkcja CTRL_PWM() ma też dwa parametry wyjściowe Busy i Status. Pozwalają sprawdzić jej aktualny stan.

Aby zmieniać w trakcie działania programu współczynnik wypełnienia to należy na początku utworzyć w PLC tags nową zmienną symboliczną typu Word o adresie QW1000.

//————-

Kurs-wideo-CZPP

Więcej w kursie wideo: Chcę zostać programistą PLC

Nagrania są dostępne w wersji online jak również na płytach DVD. Napisz mailem, jaką wersje wybierasz.

Podziel się tym wpisem na:
  • Facebook
  • Google Bookmarks
  • Twitter
  • Wykop

Komentarz

  1. Adam

    Czy symulator sterownika obsluguje symulacje generatorow PWM? Probowalem na wszelkie sposoby a nie chce dac efektu.

    Powtórz
    1. Tomasz Gilewski (Autor postu)

      Adam, jedynie możesz obserwować wartość wypełnienia, którą wpisujesz pod adres w pamięci powiązany z kanałem PWM. To jest tylko symulator do testowania programowych funkcjonalności.

      Powtórz
  2. Wojciech

    A jaka wartość pod adresem QW1000 odpowiada za wypełnienie 100% a jaka za 0% ( tu się domyślam )

    Powtórz
    1. Tomasz Gilewski (Autor postu)

      To zależy od ustawień w konfiguracji sprzętowej. Jest to opisane w artykule.

      Powtórz

Pozostaw komentarz

Twój adres e-mail nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Możesz użyć następujących tagów oraz atrybutów HTML-a: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>