
PLC v Smarthome - pripojenie senzorov k UniPi Axon M205
V doterajších príkladoch sme údaje zo senzorov simulovali, digitálne pomocou spínačov a analógové potenciometrom zapojeným ako delič napätia. V tomto článku ukážeme použitie reálnych senzorov, konkrétne nástenného snímača teploty a relatívnej vlhkosti 1W-TH-IB2, ktorý sa pripája cez zbernicu 1-Wire. Dizajn a konštrukcia snímača v nástennej inštalačnej krabička je prispôsobená na použitie v interiéri. Senzor sa pripája pomocou štyroch vodičov. Dva sú napájacie a dva dátové. Namerané hodnoty sú dostupné na unikátnej adrese, ktorá slúži zároveň ako identifikátor senzoru. Adresa je na štítku, ktorý je súčasťou balenia. Na 1 Wire zbernicu riadiacej jednotky UniPi Axon M205 je možné zapojiť až 15 senzorov s celkovou dĺžkou zbernice až 100 metrov.
Príklad ukazuje použitie senzorov na meranie teploty a vlhkosti s UniPi Axon M205. Vo videu je ukázané komplet vytvorenie projektu v prostredí Mervis, ktoré sa dá voľne stiahnuť, aby aj začiatočníci videli, že je to jednoduché
Komunikačnú zbernicu 1-Wire navrhla spoločnosť Dallas Semiconductor na prenos digitálneho signálu malou rýchlosťou. Názov napovedá, že zariadenia, napríklad senzory je teoreticky možné pripojiť iba jedným vodičom, cez ktorý sú zariadenia napájané a cez tento vodič sa prenášajú aj údaje V praxi sa používajú minimálne vodiče dva. Zbernica 1-Wire je však pomerne náchylná na elektromagnetické rušenie. Odporúčame použiť tienený kábel a viesť ho v čo najmenej rušenom prostredia, najmä mimo zväzky v ktorých sú uložené silové káble napájajúce indukčné záťaže. Ako sú motory, či elektromagnety. Vzhľadom na citlivosť zbernice na elektromagnetické rušenie sa neodporúča využívať 1-Wire siete v priemyselnom prostredí. Nízka cena a dostupnosť senzorov predurčuje 1-Wire zariadenia pre sféru chytrých domácností.
![]() |
![]() |
Zariadenie 1W-TH-IB2 má dva dátové vodiče - jeden pre smer k PLC či k predchádzajúcemu snímaču, druhý smerom k nasledujúcemu snímaču. V krabičke 1W-TH-IB2 je senzor DS18B20 na meranie teploty v rozsahu -40 až +85°a senzor DS2438 na meranie relatívnej vlhkosti v rozsahu 11 až 89 %. Zariadenie je napájané napätím 5V, prúdový odber je 2 mA. Zdôrazňujeme 5V, nie 24 ako je napájané PLC. UniPi Axon M205 má na konektore pre 1-Wire zbernicu napätie 5V vyvedené
1Wire konektor (tmavozelený dole)
Najskôr pridáme komunikačný kanál pomocou položky Add Channel v kontextovom menu zložky PLC v ľavom paneli Solution. Kanál na pravom paneli Properties vhodne pomenujeme, v našom prípade 1Wire. Následne definujeme typ protokolu. Vo vývojovom prostredí Merwis je 1-Wire protokol v skupine protokolov PlatformIO. V položke Link protocol vyberte možnosť One Wire
![]() |
![]() |
Pokračujeme identifikáciou senzora.
1-Wire je sériová zbernica, ktorá môže prepájať veľa senzorov. Každý senzor má svoju jedinečnú HW adresu, prostredníctvom ktorej master zbernice v tomto prípade PLC adresuje podriadené – slave zariadenia a načíta dáta. Preto je potrebné aby PLC hľadala zariadenia na tejto zbernici a následne vybrať tie, ktoré nás zaujímajú. Najskôr je však potrebné projekt s pridaným komunikačným kanálom zaviesť do PLC takže aktivujte tlačidlo Deploy Solution na toolbare vývojového prostredia. Ak projekt s novou konfiguráciou do PLC nezavediete, pri pokuse o detekciu zariadení na 1-wire zbernici dostanete chybovú hlášku Selected channel does not exist in the PLC. V kontextovom menu kanálu na ľavom paneli aktivujeme položku Detect One Wire Sensors. Pri vyhľadávaní musí byť PLC v móde Commisioning, takže vás vývojové prostredie upozorní, že PLC bude prepnuté do tohto módu. Označíme nájdené 1-Wire zariadenie a po stlačení tlačidla Next sa obnoví pôvodný mód PLC. Ak vyvíjate projekt v pokročilejšom móde Full mode je potrebné v kontextovom menu senzora aktivovať položku Set Autogen.
Teraz môžeme načítať namerané hodnoty v Debugg móde. Aktivujeme na toolbare tlačidlo Debug. V zložke Variable Browser zadáme do vyhľadávania 1W-UniversalAi a môžeme si pozrieť hodnoty aktuálne nameranej teploty a vlhkosti. Ak sa vám v stĺpci hodnôt zobrazuje no value, je potrebné zaviesť projekt do PLC
Pred začiatkom programovania zastavte ladenie
Regulácia teploty
Ak to zrekapitulujeme, máme pripojený senzor k PLC a vyskúšali sme, že dokážeme odčítať aktuálnu teplotu. Teraz ho môžeme použiť v jednoduchom regulátore teploty. Budeme monitorovať teplotu a ak bude teplota pod nastavenou úrovňou, napríklad 20 ° C, zapneme relé RO2.8 na ktorom by sme v reálnom scenári mali zapojené vykurovacie teleso. Samozrejme cez dostatočne dimenzovaný stýkač, pretože prúdové zaťaženie kontaktov relé je maximálne 1A. V našom cvičnom príklade budeme vykurovacie teleso simulovať LED svietidlom v zásuvke na 230V priamo spínanej kontaktom relé Ak bude teplota nad 20 ° C vykurovacie teleso vypneme.
Program bude potrebovať dva vstupy: nameranú teplotu a nastavenú prahovú teplotu. Obidve hodnoty budú reálne čísla. Nazvime ich napríklad Teplota_namerana a Teplota_nastavena. Taktiež potrebujeme definovať jeden reléový výstup na zapínanie kúrenia napríklad Kurenie_zapni. V našom prípade to bude reléový výstup RO2.8. Táto premenná mál len dve hodnoty ON alebo OFF reprezentované booleovskými hodnotami TRUE a FALSE. Taktiež názov senzora, ktorý bol vygenerovaný automaticky, v našom prípade 1W-UniversalAi nie je príliš opisný, preto ho zmeníme v pravom okne Properties napríklad na Obyvacka, aby sme vedeli kde je tento senzor reálne umiestnený
Aj v tomto scenári bude užitočnejšie mať možnosť nastavenú teplotu meniť, napríklad pomocou potenciometra v zapojení ako delič napätia, ktorého výstupom je analógová hodnota. Prípadne by sme mohli teplotu nastavovať pomocou interaktívneho HMI panelu. Preto je lepšie definovať nastavenú teplotu nie ako konštantu, ale ako premennú a nastaviť prahovú hodnotu zmenou hodnoty premennej. Neskôr môžeme túto premennú prepojiť s niektorým HW vstupom, napríklad analógovým. Teraz môžeme začať vytvárať program na reguláciu prostredníctvom diagramu funkčných blokov (FBD). Pridáme do oblasti vstupov premennú Obyvacka_Temepature pomocou kontextového menu Global Variables → Insert Existing Variable
Ďalším vstupom bude nastavená teplota, čiže premenná Teplota_nastavena. Vytvoríte ju pomocou kontextového menu Global Variables → Create New Variable. Typ premennej bude real. Nastavte inicializačnú hodnotu napríklad na 20.
Pridáme výstup, v našom prípade reléový výstup RO2.8. Samozrejme môžete použiť aj ktorýkoľvek digitálny výstup, ktorý ako logickú jednotku nastaví napäťovú úroveň 24 V a použiť spínacie relé s cievkou na 24 V.
![]() |
![]() |
Teraz potrebujeme porovnávať nameranú teplotu s nastavenou. Na ľavom paneli zobrazte záložku FUPLA Box Explorer. V zložke Basic Analogue Boxes rozbalíme podzložku Mathematics a v nej vnorenú podzložku Compare Functions. Potrebujeme porovnávaciu funkciu „menší ako“, čiže LT, (Less than). Pripojjíme na ňu obidva vstupy a výstup. Na vstup 1 pripojíme nameranú a na vstup dva nastavenú teplotu
Teraz môžeme program zostaviť (Build) a následne zaviesť do PLC (Deploy). Spustíme ladenie tlačidlom Start Debugging a môžeme skúsiť keď ohrejeme senzor prstom, či relé spínajúce kúrenie vypne.