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:attaching-1-wire-devices-hidden [2020/05/11 13:06]
avsetula [Ladění sestavy]
cs:sw:01-mervis:attaching-1-wire-devices-hidden [2024/03/14 09:15] (current)
kcerny typos
Line 1: Line 1:
 ====== Připojení 1-Wire zařízení ====== ====== Připojení 1-Wire zařízení ======
 +<WRAP group>
 +<WRAP half column 81%>
 V tomto tutoriálu se dozvíte, jak zapojit [[https://​www.unipi.technology/​1-wire-temperature-sensor-p63?​categoryId=3|1-Wire teploměr]] a vytvořit si velmi jednoduchý regulátor teploty. ​ V tomto tutoriálu se dozvíte, jak zapojit [[https://​www.unipi.technology/​1-wire-temperature-sensor-p63?​categoryId=3|1-Wire teploměr]] a vytvořit si velmi jednoduchý regulátor teploty. ​
 +</​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-unipi11">​Unipi&​nbsp1.1</​span></​html>​ \\
 +<​html><​span class="​dev-tag dev-axon">​Axon</​span></​html>​
 +;;#
 +</​WRAP>​
 +</​WRAP>​
  
-===== Co budete potřebovat ​===== +<WRAP center round box> 
-  * kontrolér ​UniPi se spuštěným Mervis OS+<​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 +    * nadefinovaný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 25: Line 38:
 {{ :​en:​sw:​01-mervis:​attaching-1-wire-devices-01-basic-project.png?​direct |}} {{ :​en:​sw:​01-mervis:​attaching-1-wire-devices-01-basic-project.png?​direct |}}
  
-Klikněte pravým myšítkem ​na **PLC** v nabídce **Sestava** na **levém panelu**. Pak klikněte na **Přidat kanál**. ​+Klikněte pravým ​tlačítkem ​myšna **PLC** v nabídce **Sestava** na **levém panelu**. Pak klikněte na **Přidat kanál**. ​
  
 {{ :​en:​sw:​01-mervis:​attaching-1-wire-devices-02-add-channel.png?​direct |}} {{ :​en:​sw:​01-mervis:​attaching-1-wire-devices-02-add-channel.png?​direct |}}
Line 40: 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 ​tlačítkem ​myš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**. ​
  
 {{ :​en:​sw:​01-mervis:​attaching-1-wire-devices-06-detect-one-wire-sensors.png?​direct |}} {{ :​en:​sw:​01-mervis:​attaching-1-wire-devices-06-detect-one-wire-sensors.png?​direct |}}
Line 74: 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 85: 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 95: Line 110:
 Začněmě tedy tvořit samotný program. Nejprve je třeba vypnout **Ladění**,​ zastavte jej proto kliknutím na **Stop ladění** v **horní liště**. Následně dvojitě klikněte na jméno programu v **levém panelu** pro jeho zobrazení v **hlavním panelu**. ​ Začněmě tedy tvořit samotný program. Nejprve je třeba vypnout **Ladění**,​ zastavte jej proto kliknutím na **Stop ladění** v **horní liště**. Následně dvojitě klikněte na jméno programu v **levém panelu** pro jeho zobrazení v **hlavním panelu**. ​
  
-V **Prohlížeči proměnných** jsme proměnnou teploty nazvali jako **1-Wire-Thermometer-Temperature**. Toto jméno se generuje automaticky a jeho první část představuje název senzoru. Tento název ale není příliš popisný, senzor proto přejmenujeme na **kancelar**,​ neboť s ním chceme měřit teplotu v kanceláři. V **levém panelu** klikněte na název senzoru a v panelu **Vlastnosti** najděte vlastnost **Název**. Změňte jeho hodnotu na **kancelar** a potvrďte buď kliknutím na **V** nebo stisknutím klávesy **ENTER**. ​+V **Prohlížeči proměnných** jsme proměnnou teploty nazvali jako **1-Wire-Thermometer-Temperature**. Toto jméno se generuje automaticky a jeho první část představuje název senzoru. Tento název ale není příliš popisný, senzor proto přejmenujeme na **kancelar**,​ neboť s ním chceme měřit teplotu v kanceláři. V **levém panelu** klikněte na název senzoru a v panelu **Vlastnosti** najděte vlastnost **Název**. Změňte jeho hodnotu na **kancelar** a potvrďte buď kliknutím na {{:​files:​dialog-confirm_button_2.png?​nolink|}} ​nebo stisknutím klávesy **ENTER**. ​
  
 {{ :​en:​sw:​01-mervis:​attaching-1-wire-devices-16-sensor-name.png?​direct |}} {{ :​en:​sw:​01-mervis:​attaching-1-wire-devices-16-sensor-name.png?​direct |}}
Line 107: Line 122:
 {{ :​en:​sw:​01-mervis:​attaching-1-wire-devices-18-create-new-variable-dialog.png?​direct |}} {{ :​en:​sw:​01-mervis:​attaching-1-wire-devices-18-create-new-variable-dialog.png?​direct |}}
  
-Posledním krokem při nastavování vstupů a výstupů je nadefinovat výstup ''​DO1.2''​. Klikněte pravým tlačítkem na **sekci výstupů** a klikněte na **Globální proměnné** -> **Vložit existující proměnnou**. seznamu proměnných pak vyhledejte **DO** a vyberte výstup ''​Axon_S105_DO_1.02_w''​. Digitální výstupy mají stejnou logiku jako reléové výstupy, použít tak můžete jak RO, tak i DO. +Posledním krokem při nastavování vstupů a výstupů je nadefinovat výstup ''​RO_2.01''​. Klikněte pravým tlačítkem na **sekci výstupů** a klikněte na **Globální proměnné** -> **Vložit existující proměnnou**. seznamu proměnných pak vyhledejte **RO** a vyberte výstup ''​Neuron_L503_RO_2.01_w''​. Digitální výstupy mají stejnou logiku jako reléové výstupy, použít tak můžete jak RO, tak i DO. 
  
 {{ :​en:​sw:​01-mervis:​attaching-1-wire-devices-19-insert-ro201.png?​direct |}} {{ :​en:​sw:​01-mervis:​attaching-1-wire-devices-19-insert-ro201.png?​direct |}}
Line 129: 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 26.5°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 31,3125°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 |}}