Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
cs:sw:01-mervis:advanced-modes-of-digital-outputs-hidden [2020/06/08 10:48]
avsetula [Pokročilá funkce digitálních výstupů: PWM]
cs:sw:01-mervis:advanced-modes-of-digital-outputs-hidden [2021/08/05 11:58]
avsetula [Pokročilá funkce digitálních výstupů: PWM]
Line 1: Line 1:
 ====== Pokročilá funkce digitálních výstupů: PWM ====== ====== Pokročilá funkce digitálních výstupů: PWM ======
 <WRAP group 100%> <WRAP group 100%>
-<WRAP half column ​82%>+<WRAP half column ​81%>
 Zkratka PWM skrývá slova Pulse-Width Modulation, v překladu "​pulzně-šířková modulace"​. Tato funkce slouží pro generování obdélníkového signálu dané frekvence a střídy na digitálním výstupu. Typicky se PWM používá pro regulaci komponent napájených stejnosměrným proudem způsobem, který by u analogové regulace nebyl možný. Zkratka PWM skrývá slova Pulse-Width Modulation, v překladu "​pulzně-šířková modulace"​. Tato funkce slouží pro generování obdélníkového signálu dané frekvence a střídy na digitálním výstupu. Typicky se PWM používá pro regulaci komponent napájených stejnosměrným proudem způsobem, který by u analogové regulace nebyl možný.
 </​WRAP>​ </​WRAP>​
-<WRAP half column ​14%>+<WRAP half column ​15%>
 ;;# ;;#
-<​html><​span class="​dev-tag dev-axon">Axon</​span></​html>​ \\+<​html><​span class="​dev-tag dev-patron">Patron</​span></​html>​ \\
 <​html><​span class="​dev-tag dev-neuron">​Neuron</​span></​html>​ \\ <​html><​span class="​dev-tag dev-neuron">​Neuron</​span></​html>​ \\
-<​html><​span class="​dev-tag dev-unipi11">Unipi 1.1</​span></​html>​+<​html><​span class="​dev-tag dev-axon">Axon</​span></​html>​
 ;;# ;;#
 </​WRAP>​ </​WRAP>​
 </​WRAP>​ </​WRAP>​
  
-Jako příklad použijeme ​24V DC elektromotor. Aby motor dosáhl plných otáček, vyžaduje napětí 24 V. Pro 10 % otáček mu bude logicky postačovat pouze 2,4V napětí. Při takto nízkém napětí by se ale motor nerozběhl kvůli vlivu tření a zátěže. Pokud by se pak přeci jen rozběhl, měl by jen velmi nízký točivý moment. Jde o jednu ze slabin analogové regulace. ​+Jako příklad použijeme ​24 V⎓ elektromotor. Aby motor dosáhl plných otáček, vyžaduje napětí 24 V. Pro 10 % otáček mu bude logicky postačovat pouze 2,4 V⎓ napětí. Při takto nízkém napětí by se ale motor nerozběhl kvůli vlivu tření a zátěže. Pokud by se pak přeci jen rozběhl, měl by jen velmi nízký točivý moment. Jde o jednu ze slabin analogové regulace. ​
  
-PWM lze použít **pouze na digitálních výstupech**,​ které mohou generovat pouze 0V nebo 24V napětí. Pro možnost regulace proto PWM generuje dvouhodnotový obdélníkový signál o dané frekvenci, čehož dosahuje periodickým přepínáním výstupu mezi ''​ON''​ a ''​OFF''​. Parametrem regulace je **střída signálu**, tj. délka ''​ON''​ a ''​OFF''​ signálů v rámci jedné periody. Pokud je střída signálu reprezentována procenty a její hodnota je 50%, výstupní signál stráví 50% časového úseku ve stavu ''​ON''​ a zbytek ve stavu ''​OFF''​. Při střídě 66% bude poměr 66% ''​ON''​ a 34% ''​OFF''​ apod. +PWM lze použít **pouze na digitálních výstupech**,​ které mohou generovat pouze 0 V⎓ nebo 24 V⎓ napětí. Pro možnost regulace proto PWM generuje dvouhodnotový obdélníkový signál o dané frekvenci, čehož dosahuje periodickým přepínáním výstupu mezi ''​ON''​ a ''​OFF''​. Parametrem regulace je **střída signálu**, tj. délka ''​ON''​ a ''​OFF''​ signálů v rámci jedné periody. Pokud je střída signálu reprezentována procenty a její hodnota je 50 %, výstupní signál stráví 50 % časového úseku ve stavu ''​ON''​ a zbytek ve stavu ''​OFF''​. Při střídě 66% bude poměr 66 % ''​ON''​ a 34 % ''​OFF''​ apod. 
  
 ===== Výběr frekvence ===== ===== Výběr frekvence =====
Line 26: Line 26:
 ===== Rozlišení PWM ===== ===== Rozlišení PWM =====
  
-Druhým parametrem PWM je **rozlišení**. Tato hodnota indikuje, **na kolik kroků** chceme regulaci rozdělit. Pokud je rozlišení 3, můžeme nastavit tři hodnoty střídy - 0%, 50% a 100%. U rozlišení 11 pak můžeme střídu v rozsahu 0-100% nastavovat po 10% krocích. ​+Druhým parametrem PWM je **rozlišení**. Tato hodnota indikuje, **na kolik kroků** chceme regulaci rozdělit. Pokud je rozlišení 3, můžeme nastavit tři hodnoty střídy - 0 %, 50 % a 100 %. U rozlišení 11 pak můžeme střídu v rozsahu 0-100 % nastavovat po 10 % krocích. ​
  
 Maximální možné rozlišení u kontrolérů Unipi činí 65536 kroků. ​ Maximální možné rozlišení u kontrolérů Unipi činí 65536 kroků. ​
Line 42: Line 42:
 === Příklad 1 === === Příklad 1 ===
  
-  rozlišení = 101 kroků (0 - 100% po 1% krocích)+  rozlišení = 101 kroků (0-100% po 1% krocích)
   ​   ​
   střída [%] = 34   střída [%] = 34
Line 50: Line 50:
                            ​100 ​                                ​100 ​                            ​100 ​                                ​100 ​
  
-Pro rozlišení 101 kroků a žádanou střídu 34% je třeba v Mervisu nastavit střídu na hodnotu **34**. To bylo poměrně jednoduché,​ nyní proto zkusíme něco složitějšího. ​+Pro rozlišení 101 kroků a žádanou střídu 34 % je třeba v Mervisu nastavit střídu na hodnotu **34**. To bylo poměrně jednoduché,​ nyní proto zkusíme něco složitějšího. ​
  
 === Příklad 2 === === Příklad 2 ===
  
-  rozliseni = 6 steps (0 - 100% po 20% krocích)+  rozliseni = 6 steps (0-100 % po 20 % krocích)
   ​   ​
-  strida [%] = 40%+  strida [%] = 40 %
   ​   ​
                        ​rozliseni - 1                       6 - 1                        ​rozliseni - 1                       6 - 1
Line 62: Line 62:
                             100                             ​100 ​                             100                             ​100 ​
  
-Pro rozlišení 6 kroků a žádanou střídu 40% je třeba v Mervisu nastavit hodnotu střídy na **2**.+Pro rozlišení 6 kroků a žádanou střídu 40 % je třeba v Mervisu nastavit hodnotu střídy na **2**.
  
 ===== Výpočet konfiguračních parametrů Mervisu ===== ===== Výpočet konfiguračních parametrů Mervisu =====
Line 88: Line 88:
 === Příklad 1 === === Příklad 1 ===
  
-  Rozlišení = 11 (střída signálu 0 - 100% s 10% kroky)+  Rozlišení = 11 (střída signálu 0-100 % s 10 % kroky)
   ​   ​
-  Frekvence = 4kHz+  Frekvence = 4 kHz
   ​   ​
   PWM_Cycle = rozlišení - 2 = 11 - 2 = 9   PWM_Cycle = rozlišení - 2 = 11 - 2 = 9
Line 102: Line 102:
   Rozlišení = 41 (krok 2,5%)   Rozlišení = 41 (krok 2,5%)
   ​   ​
-  Frekvence = 0.1Hz+  Frekvence = 0.1 Hz
   ​   ​
   PWM_Cycle = rozlišení - 2 = 41 - 2 = 39   PWM_Cycle = rozlišení - 2 = 41 - 2 = 39
Line 116: Line 116:
 === Příklad 3 === === Příklad 3 ===
  
-  Rozlišení = 10001 (krok 0,01%)+  Rozlišení = 10001 (krok 0,01 %)
   ​   ​
-  Frekvence = 0.1Hz+  Frekvence = 0.1 Hz
   ​   ​
   PWM_Cycle = rozlišení - 2 = 10001 - 2 = 9999   PWM_Cycle = rozlišení - 2 = 10001 - 2 = 9999
Line 139: Line 139:
 {{ :​en:​sw:​01-mervis:​pwm-06-searching-for-ports.png?​direct |}} {{ :​en:​sw:​01-mervis:​pwm-06-searching-for-ports.png?​direct |}}
  
-Nyní zapněte **Mód ladění** a ve sloupci **Hodnota PLC** uvidíte současnou hodnotu PWM pro digitální výstupy 1.01 - 1.04. Pokud jste ji již dříve nezměnili, uvidíte zde nuly. Změňte hodnotu **PWM_1.01** na 50 a potvrďte kliknutím na {{:​files:​dialog-confirm_button_2.png?​nolink|}} či stisknutím klávesy **ENTER**. ​+Nyní zapněte **Mód ladění** a ve sloupci **Hodnota PLC** uvidíte současnou hodnotu PWM pro digitální výstupy 1.01-1.04. Pokud jste ji již dříve nezměnili, uvidíte zde nuly. Změňte hodnotu **PWM_1.01** na 50 a potvrďte kliknutím na {{:​files:​dialog-confirm_button_2.png?​nolink|}} či stisknutím klávesy **ENTER**. ​
  
 Pro ověření můžeme k DO 1.01 připojit osciloskop a zkontrolovat podobu signálu. ​ Pro ověření můžeme k DO 1.01 připojit osciloskop a zkontrolovat podobu signálu. ​
Line 145: Line 145:
 {{ :​en:​sw:​01-mervis:​pic_425_2.gif?​direct |}} {{ :​en:​sw:​01-mervis:​pic_425_2.gif?​direct |}}
  
-Jak ukazuje osciloskop, frekvence je 4 kHz při střídě signálu 50%. +Jak ukazuje osciloskop, frekvence je 4 kHz při střídě signálu 50 %. 
  
 ===== K čemu je magická konstanta 4,8 * 10^7 ===== ===== K čemu je magická konstanta 4,8 * 10^7 =====
 Při výpočtech hodnoty **PWM_Prescale** využíváme konstantu ​ Při výpočtech hodnoty **PWM_Prescale** využíváme konstantu ​
-In calculations of the **PWM_Prescale**,​ we use constant 4,8 * 10^7. Konstanta představuje ​48MHz zdroj pro interní časovače/​čítače,​ které se společně s PWM_Prescale a PWM_Count starají o nastavení požadované frekvence. ​+In calculations of the **PWM_Prescale**,​ we use constant 4,8 * 10^7. Konstanta představuje ​48 MHz zdroj pro interní časovače/​čítače,​ které se společně s PWM_Prescale a PWM_Count starají o nastavení požadované frekvence. ​