====== Pulzně-šířková modulace ====== {{ :files:img_warning-line_b.png?nolink |}} {{:en:hw:08_safety-instructions_pseudo-ISO-7010-info.png?nolink |(i)}} Tato funkce je dostupná pouze na následujících vstupech a výstupech: * **Digitální výstupy** 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. 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 je konfigurován pomocí parametrů **PWM Cycle** a **PWM Prescale**. Tyto parametry jsou použity pro všechny digitální výstupy na konfigurované jednotce. Střída je nastavována pro každý výstup zvlášť. Registry PWM parametrů používají 16-bitové slova, tudíž mohou nabývat hodnot od 0 do 65535. Z toho vyplývá, že PWM má 16-bitové rozlišení. Frekvence signálu může být nastavena až na 200kHz. ===== Nastavení PWM v Mervis ===== {{ :files:img_warning-line_b.png?nolink |}} {{ :en:hw:09_safety-instructions_pseudo-ISO-7010-attention.png?nolink |(!)}} **Upozornění:** \\ Následující nastavení používají proměnné **PWM Cycle** a **PWM Prescale**. Pokud si nejste jisti, jak hodnoty těch proměnných nastavit, potom můžete hodnoty vypočítat v [[cs:sw:01-mervis:pwm-calculations-hidden|tomto návodu]]. **PWM_Cycle** a **PWM_Prescale** jsou konfigurační proměnné modulu Unipi a nelze je změnit zevnitř programu. V **levém panelu** vyberte Unipi modul. V jeho vlastnostech můžete vidět proměnné **PWM_Cycle** a **PWM_Prescale**. Nastavte je podle výsledku svých výpočtů - pro účely tohoto tutoriálu nastavíme **PWM_Cycle** = 99 a **PWM_Prescale** = 119. Tím nastavíme frekvenci na 4 kHz při rozlišení 101. {{ .:pwm:pwm_00-pwm-device-settings.png?direct |}} {{ :files:img_warning-line_b.png?nolink |}} {{ :en:hw:09_safety-instructions_pseudo-ISO-7010-attention.png?nolink |(!)}} **Důležité:** \\ Provedli jsme změnu v prototypu zařízení, což znamená, že jde o změnu konfigurace modulu PLC, kterou nelze aplikovat nahráním sestavy. Postup nahrání konfigurace naleznete v návodu [[cs:sw:01-mervis:unipi-configure-module-hidden|Konfigurace modulu Unipi]]. Nyní se můžeme přesvědčit, jak jsou nastavené registry PWM. Otevřete okno **Prohlížeč proměnných** v **Hlavním okně**. Ve sloupci **Název** napište do vyhledávání ''PWM_''. Měli by jste spatřit tabulku podobnou obrázku níže. Vyberte proměnnou **..._PWM_1.01_w** a v levém sloupci ve vlastnostech nastavte možnost **Počáteční hodnota** na 50. Pro aplikování této hodnoty musíte nahrát sestavu a spustit PLC jako po **studeném startu**. {{ .:pwm:pwm_01-set-initial-value.png?direct |}} Pro vyzkoušení lze dočasně změnit hodnotu v režimu ladění následovně. 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**. Mějte na paměti, že se registry resetují do základních hodnot po **studeném startu** jako například výpadek proudu. Pokud připojíme k výstupu DO 1.01 osciloskop, měli bychom vidět obdélníkový signál na obrázku. {{ .:pwm:pwm_02-osciloscope-output.gif?direct |}} Signál má frekvenci 4 kHz s 50% střídou.