Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
cs:sw:01-mervis:attaching-1-wire-devices-hidden [2021/05/03 09:34] avsetula |
cs:sw:01-mervis:attaching-1-wire-devices-hidden [2024/03/14 09:15] (current) kcerny typos |
||
---|---|---|---|
Line 8: | Line 8: | ||
<html><span class="dev-tag dev-patron">Patron</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-gate">Gate</span></html> \\ | ||
<html><span class="dev-tag dev-unipi11">Unipi 1.1</span></html> \\ | <html><span class="dev-tag dev-unipi11">Unipi 1.1</span></html> \\ | ||
<html><span class="dev-tag dev-axon">Axon</span></html> | <html><span class="dev-tag dev-axon">Axon</span></html> | ||
Line 17: | Line 16: | ||
<WRAP center round box> | <WRAP center round box> | ||
<html><span class="kbBlue-H4alt">Co budete potřebovat?</span></html> | <html><span class="kbBlue-H4alt">Co budete potřebovat?</span></html> | ||
- | * kontrolér UniPi se spuštěným Mervis OS | + | * 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> | </WRAP> | ||
Line 39: | 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ši 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 59: | Line 58: | ||
===== 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ši 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 90: | 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 101: | 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 145: | 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 |}} |