Funkcja PWM

Funkcja PWM

W niniejszym artykule zostanie przedstawiona funkcja PWM czyli funkcja modulacji szerokości impulsów w sterowniku FX5.
This article presents PWM function i.e. the pulse width modulation function in FX5 plc controller.

Funkcja PWM jest to funkcja, która pozwala na wygenerowanie ciągu impulsów o określonym wypełnieniu tzn. o określonym czasie trwania stanu wysokiego (bądź niskiego (w zależności od wybranej logiki)) oraz czasie cyklu, na wybranym wyjściu sterownika FX5.

Parametryzacja funkcji w GX Works3


W celu aktywacji funkcji przechodzimy do Parameter -> FX5UCPU -> Module Parameter -> High Speed I/O -> Output function -> PWM




  1. Okno aktywacji lub dezaktywacji funkcji: Enable - funkcja aktywna, disable - funkcja nieaktywana.
  2. Numer rejestru wyjściowego Y, na którym będzie wystawiony ciąg impulsów. Zakres od Y0 do Y7
  3. Wybór jednostki czasu: 1ms lub 1um.
  4. Wybór logiki: pozytyna lub negatywna
  5. Czas trwania impulsu (stan wysoki bądź niski (w zależności od wybranej logiki))
  6. Czas trwania jednego cyklu.

Obostrzenia związane z minimalnymi dopuszczalnymi czasami cylku i szerokości impulsu.



Różnica pomiędzy Positive logic a Negative logic




Bloczek HIOEN/DHIOEN

Aktywacja wystawienia ciągu impulsów zgodnie z parametrami ustawionymi w powyższym oknie jest możliwa z wykorzystaniem bloczka HIOEN/DHIOEN.

Parametryzacja




EN - aktywacja funkcji
s1 - numer funkcji do aktywacji lub zatrzymania

Numery funkcji znajdują się w poniższej tabeli. W celu aktywacji funkcji PWM do s1 podajemy K50.


s2 - ustawienie bitu odpowiadającemu wybranemu kanałowi w celu jego aktywacji.
s3 - ustawienie bitu odpowiadającemu wybranemu kanałowi w celu jego zatrzymania.

W poniższej tabeli przedstawione są pozycje bitów i przypisane do nich numery kanałów.



W przypadku modułu szybkich wejść/wyjść:
Określ wartość K1 do K4 (CH1-CH4) dla modułu CPU i K5 do K12 (CH5 do CH12) dla modułu szybkich wejść/wyjść.

Przykład


Przykładowa parametryzacja bloczków do aktywacji i dezaktywacji danego kanału.





Bloczek PWM

Drugim sposobem wygenerowania ciągu impulsów na danym wyjściu jest zastosowanie bloczka PWM/DPWM

Parametryzacja




EN - aktywacja bloczka PWM
s1 - czas trwania stanu wysokiego
s2 - czas trwania jednego pełnego cyklu



d - numer kanału, który został sparametryzowany w oknie  High Speed I/O -> Output function -> PWM w GX Works 3 lub rejestr wyjściowy Y, na którym ma być wystawiony ciąg impulsów.


Przykład

Poniżej zaprezentowano dwa sposoby na parametryzację bloczka PWM. Czasy można podać jako stałą lub poprzez zmienną. Do wejścia d można podać numer sparametryzowanego kanału lub bezpośrednio rejestr wyjściowy.




Rejestry specjalne


Rejestry specjalne można podejrzeć w zakładce Element Selection -> FX5UCPU -> FX5CPU -> Special Register (SD) -> PWM -> numer kanału




udPulseOutputNumber - liczba impulsów do wystawienia 
udPulseWidth - czas trwania impulsu
udPeriod - czas trwania jednego cyklu
udNumberOfOutputPulsesCurrentValue - aktualna liczba wystawionych pulsów


Wygenerowanie określonej ilości impulsów


Funkcja PWM pozwala na wystawienie określonej liczby imulsów poprzez wprowadzenie jej do rejestru  udPulseOutputNumber z wykorzystaniem bloczka DMOV.



Aktualną liczbę wystawionych impulsów można odczytać z wykorzystaniem rejestru  dNumberOfOutputPulsesCurrentValue. 
Jeżeli w rejestrze  udPulseOutputNumber pozostanie 0 - nie ma limitu wygenerowanych impulsów.