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
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 [2024/03/14 10:00] (current)
kcerny typos
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%> 
-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 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 ​odezvu ​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 debounceInterval ​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č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č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 switchAs we discoveredthe software detection of changes is far from being instantaneous. And there are applicationswhere 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 switchThatas demonstrated aboveis not possible to achieve in the software by simple wiring the DI to DO.+V neposlední řadě jsou jednotky Unipi vybaveny funkcí Direct SwitchJak jsme zjistili výšesoftwarová detekce změn není dostatečně rychlá - v některých projektech přitom způsobí problémy zpoždění už 20 msjako například u spínačů osvětleníU nich očekáváme okamžitou reakci světla na stisknutí vypínačena 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 nameThe wiring of the input and output is fixed cannot be changedonly turned on or offOn Group 1, the DIs are wired to DOsOn 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é ​nelze jej měnitlze jej pouze zapínat a vypínatV I/O skupině ​jsou na jednotkách Unipi digitální vstupy propojeny s digitálními výstupyU 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**. ​**levém panelu** dvojitě klikněte na název vašeho kontroléru Unipi pod Modbus TCP kanálem**hlavním panelu** vyhledejte příslušný DIklikně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 seethe option has dropdown ​menu with different modes.+Jak můžete viděttato 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 invertedWhen 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ě, tjpokud 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 moduleSee the [[#debounce|debounce]] section.+Po dokončení konfigurace je nutné ji stáhnout do kontroléruViz 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** ​settingsIn order to have instant changeyou need to set the **Debounce** ​to value which doesn'​t deny the purpose of the **Direct ​switch** and yet to valuewhich 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>​