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:attaching-1-wire-devices-hidden [2020/06/08 12:48]
avsetula [Připojení 1-Wire zařízení]
cs:sw:01-mervis:attaching-1-wire-devices-hidden [2021/08/05 14:32]
avsetula
Line 6: Line 6:
 <WRAP half column 15%> <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-unipi11">​Unipi&nbsp1.1</​span></​html>​ \\ 
 +<​html><​span class="​dev-tag dev-axon">​Axon</​span></​html>​
 ;;# ;;#
 </​WRAP>​ </​WRAP>​
 </​WRAP>​ </​WRAP>​
-===== Co budete potřebovat ​===== + 
-  * kontrolér ​UniPi se spuštěným Mervis OS+<WRAP center round box> 
 +<​html><​span class="​kbBlue-H4alt">​Co budete potřebovat?</​span></​html>​ 
 +  * kontrolér ​Unipi se spuštěným Mervis OS
   * základní projekt v Mervis IDE v **Plném módu** s:    * základní projekt v Mervis IDE v **Plném módu** s: 
     * připojeným kontrolérem     * připojeným kontrolérem
     * nadefinovaným kanálem Modbus TCP pro komunikaci s PLC     * nadefinovaným kanálem Modbus TCP pro komunikaci s PLC
     * nadefinovým **spustitelným projektem** s jedním programem     * nadefinovým **spustitelným projektem** s jedním programem
-    * nastaveným **Autogenem** na kontroléru ​UniPi+    * nastaveným **Autogenem** na kontroléru ​Unipi
     * nadefinovaným taskem se spuštěným programem ze **spustitelného projektu**     * nadefinovaným taskem se spuštěným programem ze **spustitelného projektu**
     * úspěšně provedenou kompilací     * úspěšně provedenou kompilací
-  * [[https://​www.unipi.technology/​power-supplies-c15|24V DC zdroj]]+  * [[https://​www.unipi.technology/​power-supplies-c15|24 V⎓ zdroj]]
   * [[https://​www.unipi.technology/​1-wire-temperature-sensor-p63?​categoryId=3|1-Wire teploměr]]   * [[https://​www.unipi.technology/​1-wire-temperature-sensor-p63?​categoryId=3|1-Wire teploměr]]
  
-Pro účely tohoto tutoriálu použijeme kontrolér [[https://​www.unipi.technology/​cs/​neuron-c2|UniPi Neuron L503]].+Pro účely tohoto tutoriálu použijeme kontrolér [[https://​www.unipi.technology/​cs/​neuron-c2|Unipi Neuron L503]]. 
 +</​WRAP>​
  
 ===== Připojení 1-Wire senzoru ===== ===== Připojení 1-Wire senzoru =====
- +Všechny potřebné informace o připojování senzorů založených na čipu DS18B20 naleznete [[cs:automation:02-glossary:​1wire-hidden|zde]].
-Všechny potřebné informace o připojování senzorů založených na čipu DS18B20 naleznete [[cs:hw:05-1-wire|zde]].+
  
 ===== Nakonfigurování 1-Wire sběrnice v Mervisu ===== ===== Nakonfigurování 1-Wire sběrnice v Mervisu =====
Line 50: Line 53:
  
 {{ :​en:​sw:​01-mervis:​attaching-1-wire-devices-04-set-channel-link-protocol.png?​direct |}} {{ :​en:​sw:​01-mervis:​attaching-1-wire-devices-04-set-channel-link-protocol.png?​direct |}}
 +
 +Nyní je nutné **Nahrát sestavu** do PLC, aby se v PLC vytvořil komunikační kanál **OneWire**.
  
 ===== Detekce 1-Wire senzorů ===== ===== Detekce 1-Wire senzorů =====
  
-Sběrnice 1-Wire je sériovou sběrnicí, která může sloužit pro propojení velkého množství senzorů. Každý senzor má svou vlastní unikátní hardwarovou adresu, skrze kterou zařízení v režimu Master adresuje Slave senzory a odečítá z nich data. Z toho důvodu musíme kontrolér ​UniPi nastavit tak, aby na sběrnici vyhledal specifickou HW adresu. Naštěstí můžeme na sběrnici nadetekovat všechny připojené senzory a až poté si vybrat ty, se kterými budeme dále pracovat. ​+Sběrnice 1-Wire je sériovou sběrnicí, která může sloužit pro propojení velkého množství senzorů. Každý senzor má svou vlastní unikátní hardwarovou adresu, skrze kterou zařízení v režimu Master adresuje Slave senzory a odečítá z nich data. Z toho důvodu musíme kontrolér ​Unipi nastavit tak, aby na sběrnici vyhledal specifickou HW adresu. Naštěstí můžeme na sběrnici nadetekovat všechny připojené senzory a až poté si vybrat ty, se kterými budeme dále pracovat. ​
  
 Pro detekci senzorů klikněte pravým myšítkem na jméno kanálu **1wire** v záložce **Sestava** v **levém panelu**. V kontextovém menu pak klikněte na **Detekce čidel OneWire**. ​ Pro detekci senzorů klikněte pravým myšítkem na jméno kanálu **1wire** v záložce **Sestava** v **levém panelu**. V kontextovém menu pak klikněte na **Detekce čidel OneWire**. ​
Line 84: Line 89:
  
 ===== Ladění sestavy ===== ===== Ladění sestavy =====
-Mervis IDE je vybaven možností **ladění programů**,​ které umožňuje ​ připojit se k zapnutému kontroléru ​UniPi, číst jeho stavy a dokonce i upravovat proměnné za chodu. Pro spuštění ladění na **vrchní liště** klikněte na **Start ladění**. ​+Mervis IDE je vybaven možností **ladění programů**,​ které umožňuje ​ připojit se k zapnutému kontroléru ​Unipi, číst jeho stavy a dokonce i upravovat proměnné za chodu. Pro spuštění ladění na **vrchní liště** klikněte na **Start ladění**. ​
  
 {{ :​en:​sw:​01-mervis:​attaching-1-wire-devices-13-debug.png?​direct |}} {{ :​en:​sw:​01-mervis:​attaching-1-wire-devices-13-debug.png?​direct |}}
  
-Pro zobrazení proměnných a jejich stavu v módu ladění klikněte na záložku **Prohlížeč proměnných** na **hlavním panelu**. Zobrazí se seznam všech dostupných proměnných v kontroléru (pro vyhledávání můžete použít hledání podle **jména**). Teploměr bude mít automaticky přiřazený název "​1W-Thermometer"​ a jeho aktuální hodnota je **29.875**°C. ​+Pro zobrazení proměnných a jejich stavu v módu ladění klikněte na záložku **Prohlížeč proměnných** na **hlavním panelu**. Zobrazí se seznam všech dostupných proměnných v kontroléru (pro vyhledávání můžete použít hledání podle **jména**). Teploměr bude mít automaticky přiřazený název "​1W-Thermometer"​ a jeho aktuální hodnota je **29,875** °C. 
  
 {{ :​en:​sw:​01-mervis:​attaching-1-wire-devices-14-variable-browser.png?​direct |}} {{ :​en:​sw:​01-mervis:​attaching-1-wire-devices-14-variable-browser.png?​direct |}}
Line 95: Line 100:
 V této fázi máme ke kontroléru připojený teploměr a ověřili jsme si, že můžeme odečítat teplotní údaje. Nyní je můžeme použít pro vytvoření velmi jednoduchého teplotního regulátoru V této fázi máme ke kontroléru připojený teploměr a ověřili jsme si, že můžeme odečítat teplotní údaje. Nyní je můžeme použít pro vytvoření velmi jednoduchého teplotního regulátoru
  
-Úkolem regulátoru bude sledovat teplotu a při jejím poklesu pod 30°C sepnout relé ''​RO2.1''​ do stavu ''​ON''​. Pokud naopak teplota přesáhne nebo bude rovna 30°C, regulátor relé ''​RO2.1''​ přepne do stavu ''​OFF''​. ''​RO2.1''​ zde bude představovat topné těleso. ​+Úkolem regulátoru bude sledovat teplotu a při jejím poklesu pod 30 °C sepnout relé ''​RO2.1''​ do stavu ''​ON''​. Pokud naopak teplota přesáhne nebo bude rovna 30 °C, regulátor relé ''​RO2.1''​ přepne do stavu ''​OFF''​. ''​RO2.1''​ zde bude představovat topné těleso. ​
  
-Teoreticky bychom nyní mohli nastavit programu pevnou teplotu "30°C", to by nám ale později zabránilo v její pozdější změně jiným způsobem než opětovným přeprogramováním PLC. Hraniční (či požadovanou) teplotu bychom nejspíše nastavovali tlačítkem,​ ovladačem či skrze HMI rozhraní, bude proto lepší teplotu definovat jako další proměnnou a nastavit hraniční hodnotu pomocí změny hodnoty této proměnné. Později můžeme proměnnou propojit s jiným hardwarovým vstupem. ​+Teoreticky bychom nyní mohli nastavit programu pevnou teplotu "30 °C", to by nám ale později zabránilo v její pozdější změně jiným způsobem než opětovným přeprogramováním PLC. Hraniční (či požadovanou) teplotu bychom nejspíše nastavovali tlačítkem,​ ovladačem či skrze HMI rozhraní, bude proto lepší teplotu definovat jako další proměnnou a nastavit hraniční hodnotu pomocí změny hodnoty této proměnné. Později můžeme proměnnou propojit s jiným hardwarovým vstupem. ​
  
 Program tak bude vyžadovat dva vstupy: ''​namerena_teplota''​ a ''​hranicni_teplota''​. Při programování musí mít každá proměnná přiřazený určitý typ, tj. definici hodnoty, kterou může mít. Proměnná může být ve formě integeru, reálného čísla, booleanu (tj. binární 0/1), znaku či řetězce znaků, případně jiného komplikovanějšího typu. Teplotní údaj je ze své podstaty reálné číslo, naše proměnné proto budou nastaveny stejně. ​ Program tak bude vyžadovat dva vstupy: ''​namerena_teplota''​ a ''​hranicni_teplota''​. Při programování musí mít každá proměnná přiřazený určitý typ, tj. definici hodnoty, kterou může mít. Proměnná může být ve formě integeru, reálného čísla, booleanu (tj. binární 0/1), znaku či řetězce znaků, případně jiného komplikovanějšího typu. Teplotní údaj je ze své podstaty reálné číslo, naše proměnné proto budou nastaveny stejně. ​
Line 139: Line 144:
 Pokud jsme spoje vytvořili správně, můžeme nyní sestavu **zkompilovat**. Pokud pak bude **kompilace** úspěšná,​ můžeme sestavu **nahrát** do kontroléru. ​ Pokud jsme spoje vytvořili správně, můžeme nyní sestavu **zkompilovat**. Pokud pak bude **kompilace** úspěšná,​ můžeme sestavu **nahrát** do kontroléru. ​
  
-Pokud **nahrání** proběhlo bez problémů, můžeme začít s **laděním**. V módu ladění můžete vidět aktuální hodnoty každého vstupu/​výstupu každého bloku. Nyní vidíme, že teplota v kanceláři je 29.625°C, což je méně než hraniční teplota ​30°C. Topení se tudíž přepne do stavu ''​ON''​ (''​TRUE''​). ​+Pokud **nahrání** proběhlo bez problémů, můžeme začít s **laděním**. V módu ladění můžete vidět aktuální hodnoty každého vstupu/​výstupu každého bloku. Nyní vidíme, že teplota v kanceláři je 29,625 °C, což je méně než hraniční teplota ​30 °C. Topení se tudíž přepne do stavu ''​ON''​ (''​TRUE''​). ​
  
 {{ :​en:​sw:​01-mervis:​attaching-1-wire-devices-23-debugging-low.png?​direct |}} {{ :​en:​sw:​01-mervis:​attaching-1-wire-devices-23-debugging-low.png?​direct |}}
  
-Nyní senzor zahřejeme (např. jeho stisknutím v dlani). Teplota vzrostla na 30,875°C; to je více než 30°C a topení se tak přepne do stavu ''​OFF''​ (''​FALSE''​). ​+Nyní senzor zahřejeme (např. jeho stisknutím v dlani). Teplota vzrostla na 30,875 °C; to je více než 30 °C a topení se tak přepne do stavu ''​OFF''​ (''​FALSE''​). ​
  
 {{ :​en:​sw:​01-mervis:​attaching-1-wire-devices-23-debugging-high.png?​direct |}} {{ :​en:​sw:​01-mervis:​attaching-1-wire-devices-23-debugging-high.png?​direct |}}