Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Last revision Both sides next revision | ||
cs:sw:01-mervis:advanced-modes-of-digital-inputs-hidden [2020/03/03 11:58] jan_kozak |
cs:sw:01-mervis:advanced-modes-of-digital-inputs-hidden [2022/05/13 07:44] avsetula |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | FIXME - překlad | ||
====== Digitální vstupy: funkce Debounce, Counter a Direct Switch ====== | ====== Digitální vstupy: funkce Debounce, Counter a Direct Switch ====== | ||
+ | <WRAP group 100%> | ||
+ | <WRAP half column 81%> | ||
Digitální vstupy na kontrolérech Unipi jsou vybaveny užitečnými přídavnými funkcemi, které umožňují zvýšit responzivitu a přesnost regulace. Tyto funkce jsou řízeny mikroprocesorem samotné I/O desky a jsou tak nezávislé na řídicím softwaru, což výrazně zvyšuje jejich rychlost odezvy. | Digitální vstupy na kontrolérech Unipi jsou vybaveny užitečnými přídavnými funkcemi, které umožňují zvýšit responzivitu a přesnost regulace. Tyto funkce jsou řízeny mikroprocesorem samotné I/O desky a jsou tak nezávislé na řídicím softwaru, což výrazně zvyšuje jejich rychlost odezvy. | ||
+ | </WRAP> | ||
+ | <WRAP half column 15%> | ||
+ | ;;# | ||
+ | <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-axon">Axon</span></html> \\ | ||
+ | <html><span class="dev-tag dev-extens">Extension</span></html> | ||
+ | ;;# | ||
+ | </WRAP> | ||
+ | </WRAP> | ||
===== Debounce ===== | ===== Debounce ===== | ||
- | |||
Funkce **Debounce** je navržena pro vykrývání nepřesností, se kterými se typicky setkáte při přepínání stavu digitálního vstupu. Tyto chyby obvykle vznikají v případěch, že je vstup spínán mechanickým prvkem (např. přepínač). Signál generovaný při stisknutí a puštění spínače může vypadat např. takto: | Funkce **Debounce** je navržena pro vykrývání nepřesností, se kterými se typicky setkáte při přepínání stavu digitálního vstupu. Tyto chyby obvykle vznikají v případěch, že je vstup spínán mechanickým prvkem (např. přepínač). Signál generovaný při stisknutí a puštění spínače může vypadat např. takto: | ||
Line 18: | Line 27: | ||
</WRAP> | </WRAP> | ||
- | Nyní se podívejme, jak lze debounce konfigurovat v Mervis IDE. Nastavení se provádí přes vstupy zařízení, dvojitě proto klikněte na název kontroléru Unipi. Na **hlavním panelu** se objeví záložka se všemi registry kontroléru. Pod kolonkou **Název** naleznete vyhledávací řádek, do kterého zadejte "DI_". Zobrazí se seznam všech dostupných digitálních vstupů, či přesněji řečeno jejich registrů. | + | Nyní se podívejme, jak lze debounce konfigurovat v Mervis IDE. Nastavení se provádí přes vstupy zařízení, dvojitě proto klikněte na název vašeho kontroléru Unipi pod Modbus TCP kanálem. Na **hlavním panelu** se objeví záložka se všemi registry kontroléru. Pod kolonkou **Název** naleznete vyhledávací řádek, do kterého zadejte "DI_". Zobrazí se seznam všech dostupných digitálních vstupů, či přesněji řečeno jejich datových bodů. |
{{ :en:sw:01-mervis:digital-inputs-02-list-of-inputs.png?direct |}} | {{ :en:sw:01-mervis:digital-inputs-02-list-of-inputs.png?direct |}} | ||
Line 26: | Line 35: | ||
{{ :en:sw:01-mervis:digital-inputs-03-debounce-time.png?direct |}} | {{ :en:sw:01-mervis:digital-inputs-03-debounce-time.png?direct |}} | ||
- | Zadání Vámi žádané hodnoty je změnou konfigurace modulu PLC, kterou nelze aplikovat nahráním sestavy. Pro uložení konfigurace modulu se řiďte tutoriálem [[en:sw:01-mervis:unipi-configure-module-hidden|Unipi - konfigurace modulu]]. | + | Zadání Vámi žádané hodnoty je změnou konfigurace modulu PLC, kterou nelze aplikovat nahráním sestavy. Pro uložení konfigurace modulu se řiďte návodem [[en:sw:01-mervis:unipi-configure-module-hidden|Unipi - konfigurace modulu]]. |
<WRAP center round tip 60%> | <WRAP center round tip 60%> | ||
Line 39: | Line 48: | ||
<WRAP center round important 60%> | <WRAP center round important 60%> | ||
- | Hardwarový čítač je závislý na nastavení debounce intervalu. Pokud je třeba interval funkce **Debounce** nastavit na kratší dobu, než je očekávaná délka sčítaných pulzů. | + | Hardwarový čítač je závislý na nastavení intervalu funkce debounce. Interval funkce **Debounce** je třeba nastavit na kratší dobu, než je očekávaná délka sledovaných pulzů. |
</WRAP> | </WRAP> | ||
- | Čítačem jsou standardně vybaveny všechny **digitální vstupy** a pro jeho používání není třeba žádných nastavení. Výstupem čítaču je globální proměnná - například vstupu ''Neuron_L503_DI_1.01'' odpovídá proměnná ''Neuron_L503_CNT_1.01''. | + | Čítačem jsou standardně vybaveny všechny **digitální vstupy** a pro jeho používání není třeba žádných nastavení. Výstupem čítaču je globální proměnná - například vstupu ''Neuron_L523_DI_1.01'' odpovídá proměnná ''Neuron_L523_CNT_1.01''. |
Jako důkaz nízké rychlosti softwarového čítače si prohlédněte následující program běžící v režimu ladění: | Jako důkaz nízké rychlosti softwarového čítače si prohlédněte následující program běžící v režimu ladění: | ||
Line 48: | Line 57: | ||
{{ :en:sw:01-mervis:digital-inputs-08-sw-counter-vs-hw-counter.png?direct |}} | {{ :en:sw:01-mervis:digital-inputs-08-sw-counter-vs-hw-counter.png?direct |}} | ||
- | Jak můžete vidět, program detekuje náběžné hrany na vstupu ''Neuron_L503_DI_1.01'' pomocí bloku ''Pulse counter (BD30)'', a zároveň na stejném vstupu pulzy počítá pomocí hardwarového čítače. Pokud mají čítače stejnou hodnotu, na kontroléru se rozsvítí dioda X1. Pokud čítače nejsou shodné, dioda zůstane zhasnuta. | + | Jak můžete vidět, program detekuje náběžné hrany na vstupu ''Neuron_L523_DI_1.01'' pomocí bloku ''Pulse counter (BD30)'', a zároveň na stejném vstupu pulzy počítá pomocí hardwarového čítače. Pokud mají čítače stejnou hodnotu, na kontroléru se rozsvítí dioda X1. Pokud čítače nejsou shodné, dioda zůstane zhasnuta. |
V okamžiku spuštění ladění jsou oba čítače na hodnotě 0. Ke vstupu ''DI1.1'' připojíme kontaktní spínač a začneme jej co nejrychleji stiskávat. Jak vidíte, softwarový čítač zachytil pouze 10 pulzů, zatímco hardwarový celých 54. | V okamžiku spuštění ladění jsou oba čítače na hodnotě 0. Ke vstupu ''DI1.1'' připojíme kontaktní spínač a začneme jej co nejrychleji stiskávat. Jak vidíte, softwarový čítač zachytil pouze 10 pulzů, zatímco hardwarový celých 54. | ||
<WRAP center round tip 60%> | <WRAP center round tip 60%> | ||
- | Čítačové proměnné jsou pouze pro čtení, nelze je proto nastavovat či resetovat přímo v programu či skrze prohlížeč proměnných v módu ladění. Tyto proměnné se nastavují pomocí proměnné "set"; u čítače ''Neuron_L503_CNT_1.01'' má tato proměnná název ''Neuron_L503_CNT_1.01_set''. | + | Čítačové proměnné jsou pouze pro čtení, nelze je proto nastavovat či resetovat přímo v programu či skrze prohlížeč proměnných v módu ladění. Tyto proměnné se nastavují pomocí proměnné "set"; u čítače ''Neuron_L523_CNT_1.01'' má tato proměnná název ''Neuron_L523_CNT_1.01_set''. |
</WRAP> | </WRAP> | ||
===== Direct switch ===== | ===== Direct switch ===== | ||
- | Last extra functionality (but not least) is the direct switch. As we discovered, the software detection of changes is far from being instantaneous. And there are applications, where even 20ms delay can cause problems, or represent some discomfort at least. Typical example is a switch controlling a light. What we expect from the behaviour is the instant change of the lighting upon pressing the switch. That, as demonstrated above, is not possible to achieve in the software by simple wiring the DI to DO. | + | V neposlední řadě jsou jednotky Unipi vybaveny funkcí Direct Switch. Jak jsme zjistili výše, softwarová detekce změn není dostatečně rychlá - v některých projektech přitom způsobí problémy zpoždění už 20 ms, jako například u spínačů osvětlení. U nich očekáváme okamžitou reakci světla na stisknutí vypínače, na předchozích řádcích ale vidíme, že pouhým propojením digitálního vstupu s výstupem tohoto cíle nedosáhneme. |
- | The direct switch is the configuration of digital input in a way it will directly control digital or relay output of the same name. The wiring of the input and output is fixed a cannot be changed, only turned on or off. On Group 1, the DIs are wired to DOs. On other Groups, the DIs are wired to ROs. | + | Direct Switch oproti tomu umožňuje nastavit digitální vstup tak, aby ovládal určený digitální či reléový výstup přímo skrze fyzické propojení. To je pevné a nelze jej měnit, lze jej pouze zapínat a vypínat. V I/O skupině 1 jsou na jednotkách Unipi digitální vstupy propojeny s digitálními výstupy. U skupin 2 a 3 pak jsou digitální vstupy napojeny na reléové výstupy. |
<WRAP center round info 60%> | <WRAP center round info 60%> | ||
- | On Neuron L503, the direct switch (DS) on DI1.1 is wired to DO1.1. The DS on DI3.14 is wired to RO3.14 | + | U modelu Neuron L523 je vstup DI1.1 propojen s DO1.1. DI3.14 je pak propojen s RO3.14. |
</WRAP> | </WRAP> | ||
- | + | Konfigurace Direct Switch se provádí stejně jako u **Debounce**. V **levém panelu** dvojitě klikněte na název vašeho kontroléru Unipi pod Modbus TCP kanálem, v **hlavním panelu** vyhledejte příslušný DI, klikněte na nej a v panelu **Vlastnosti** vyhledejte kolonku **Direct Switch**. | |
- | The settings is done in the same way we did with the **Debounce**. Double click on the name of the UniPi module on the **Left panel**, search for the desired DI in the **Main window**, click on it and in the **Properties panel** look for the option called **Direct switch**. | + | |
{{ :en:sw:01-mervis:digital-inputs-09-direct-switch.png?direct |}} | {{ :en:sw:01-mervis:digital-inputs-09-direct-switch.png?direct |}} | ||
- | As you can see, the option has dropdown menu with different modes. | + | Jak můžete vidět, tato možnost má rozbalovací menu obsahující různé módy funkce. |
- | * **Disabled**: the direct switch is disabled | + | * **Blokování**: funkce je vypnuta |
- | * **Copy**: The status of the DI is copied to the DO/RO. So when the DI is ''TRUE'', the DO is ''TRUE'' and when the DI is ''FALSE'' the DO is also ''FALSE'' | + | * **Kopírovat**: Stav DI je přenášen na DO či RO. Pokud se DI přepne na ''TRUE'', stav DO se rovněž změní na ''TRUE''. To samé platí i při změně stavu na ''FALSE''. |
- | * **Copy (Invert)**: Same as above but inverted. When the DI is ''TRUE'' the DO is ''FALSE'' and vice versa. | + | * **Kopírovat inverzně**: Stejný princip jako u předchozího módu, avšak inverzně, tj. pokud je DI ve stavu ''TRUE'', DO se přepne do stavu ''FALSE'' a naopak. |
- | * **Toggle**: This mode toggles the DO on the rising edge of the DI. Handy for controlling a light with momentary switch for example | + | * **Přepnout**: Tento mód přepne DO při detekci náběžné hrany na DI. Tato funkce je praktická například pro ovládání světel digitálním spínačem. |
- | After setting the configuration, you need tu download it to the module. See the [[#debounce|debounce]] section. | + | Po dokončení konfigurace je nutné ji stáhnout do kontroléru. Viz návod [[cs:sw:01-mervis:unipi-configure-module-hidden|]]. |
<WRAP center round important 60%> | <WRAP center round important 60%> | ||
- | The **Direct switch** depends on the **Debounce** settings. In order to have instant change, you need to set the **Debounce** to value which doesn't deny the purpose of the **Direct switch** and yet to value, which doesn't deny the purpose of the **Debouncing**. The 5-10ms should be OK. | + | Funkce **Direct Switch** je rovněž závislá na nastavení **Debounce**. Aby změna na výstupu nastala okamžitě, je nutné **Debounce** nastavit na takovou hodnotu, která nezabrání požadované funkci **Direct Switch**, ale zároveň nepopře smysl funkce **Debounce**. Interval 5-10ms by měl v tomto případě stačit. |
</WRAP> | </WRAP> |