Transformace a konfigurace analogových vstupů
Na každý HW datový bod může být uplatněna transformace jeho měřené/zapisované hodnoty. Transformace obecně slouží k přepočtu „čísla“, které je načteno po sběrnici, na hodnotu, která odpovídá měřené fyzikální veličině. Stejným způsobem můžeme transformovat hodnotu, kterou chceme zapsat na nějaký HW výstup.
Pokud chceme na straně klienta například lineární transformací získat z vyčtené hodnoty 1236 hodnotu 12,36, musíme hodnotu vydělit stem. Koeficient K u lineární transformace tedy bude 0,01. Pokud ale chceme hodnotu zapisovat a ze SW nám přijde hodnota 12,36 a my ji chceme zbavit desetinných míst, tak nastavení bude totožné jako při čtení hodnoty. Pro posun desetinné čárky v tomto případě směrem vpravo je nutno hodnoty dělit. Na straně serveru se pro posun desetinné čárky vpravo naopak hodnota bude násobit bez ohledu na to, zda se hodnota na server zapisuje nebo se z něj čte.
Například teplota měřená pomocí pasivního čidla je například z modulu RCIO předávána v podobě odporu měřicího elementu, navíc násobená deseti pro vyšší rozlišení při přenosu pomocí typu integer: pro čidlo Pt1000 a teplotu 22 °C je nakomunikovaná hodnota 10857, což odpovídá odporu 1085.7 Ohm. Tato hodnota odporu je dále linearizována v tabulce „resistancetotemperature“, výstupem je teplota ve °C.
Základní definované transformace jsou tyto:
- Identity - hodnota není transformována, přenáší se beze změny
- Resistance to temperature - linearizační křivka pro čidla Pt100, Pt500, Pt1000, Ni1000-5000, Ni1000-6180. Transformace má tyto parametry:
- Kind - typ čidla, podle něhož je zvolena linearizační křivka
- Pre_K - koeficient první lineární transformace y = Kx + Q, k níž dochází před linearizací, pro I/O moduly Domat je 0.1, protože odpor se přenáší v Ohm*10
- Pre_Q - koeficient první lineární transformace y = Kx + Q, k níž dochází před linearizací (umožňuje kompenzovat odpor kabelu mezi čidlem a analogovým vstupem)
- Post_K - koeficient druhé lineární transformace y = Kx + Q, k níž dochází po linearizaci
- Post_Q - koeficient druhé lineární transformace y = Kx + Q, k níž dochází po linearizaci (umožňuje kompenzovat absolutní chybu měření čidla ve °C)
- Threshold - prahový detektor pro převod mezi analogovou a binární hodnotou (pro případ, že odporový AI je využit ve funkci DI). Transformace má tyto parametry:
- Threshold - práh, při němž nastává přechod mezi True a False a zpět
- Invert - změna smyslu funkce: pokud je Invert = True, výstup transformace při hodnotě větší než Threshold je False.
- Window - pokud je hodnota v nastavených mezích, výstup je True, jinak je False. Příklad: detekce utržení nebo zkratu čidla: když je měřená hodnota menší než -40 °C nebo větší než 150 °C, čidlo je poškozeno a výstup transformace je True (za použití funkce Invert)
- Low - spodní mez
- High - horní mez
- Invert - obrací smysl funkce: je-li Invert = True, pak pokud je hodnota v nastavených mezích, výstup je False, jinak je True.
- LinearByTable - linearizační křivka s max. 8 body. Křivka se definuje pomocí dvojic - souřadnic ve vektorech X a Y. Vstupní hodnoty jsou ve vektoru X, odpovídající výstupní hodnoty ve vektoru Y. Vektor je uzavřen hranatými závorkami, hodnoty jsou odděleny čárkami, používá se desetinná tečka.
- XValues - vektor s X-ovými souřadnicemi bodů linearizační křivky
- YValues - vektor s Y-ovými souřadnicemi bodů linearizační křivky
- Active points - počet bodů křivky, max. 8, berou se zleva
- Pre_K - koeficient první lineární transformace y = Kx + Q, k níž dochází před linearizací
- Pre_Q - koeficient první lineární transformace y = Kx + Q, k níž dochází před linearizací
- Post_K - koeficient druhé lineární transformace y = Kx + Q, k níž dochází po linearizaci
- Post_Q - koeficient druhé lineární transformace y = Kx + Q, k níž dochází po linearizaci
- Negate - pro hodnoty typu bool (DI), neguje hodnotu na vstupu
- LinearByTwoPoints - jednoduchá lineární transformace, definovaná dvěma body. Vstupní rozsah X1…X2 je přepočten na výstupní rozsah Y1…Y2. Často používaná u analogových čidel, např. vstup 0…10 V (0…10 000 mV) je převeden na -20…50 °C: X1 = 0, X2 = 10000, Y1 = -20, Y2 = 50.
- X1 - X-ová souřadnice prvního bodu
- X2 - X-ová souřadnice druhého bodu
- Y1 - Y-ová souřadnice prvního bodu
- Y2 - Y-ová souřadnice druhého bodu
- LinearWithShiftByTwoPoints - lineární transformace, definovaná dvěma body. Před transformací je možné hodnotu posunout parametrem Shift, po transformaci omezit parametry Min a Max.
- Shift - hodnota, přičítaná ke vstupu před lineární transformací
- X1 - X-ová souřadnice prvního bodu
- X2 - X-ová souřadnice druhého bodu
- Y1 - Y-ová souřadnice prvního bodu
- Y2 - Y-ová souřadnice druhého bodu
- Min - dolní hranice pro omezení na výstupu, výstupní hodnota je vždy větší nebo rovna Min
- Max - horní hranice pro omezení na výstupu, výstupní hodnota je vždy menší nebo rovna Max
- Linear - jednoduchá lineární transformace, definovaná rovnicí y = Kx + Q
- K - koeficient násobení
- Q - koeficient přičítání
- Pro nejjednodušší převod napětí nebo proudu na měřenou fyzikální veličinu, např. čidlo 0…10 V = 0…50 °C je K = 0,005 (napětí se přenáší v mV), Q = 0.
- StaefaT1 - transformace pro teplotní čidla T1 firmy Staefa Control System
- Pre_K - koeficient první lineární transformace y = Kx + Q, k níž dochází před linearizací, pro I/O moduly Domat je 0.1, protože odpor se přenáší v Ohm*10
- Pre_Q - koeficient první lineární transformace y = Kx + Q, k níž dochází před linearizací (umožňuje kompenzovat odpor kabelu mezi čidlem a analogovým vstupem)
- Post_K - koeficient druhé lineární transformace y = Kx + Q, k níž dochází po linearizaci (nepoužívá se)
- Post_Q - koeficient druhé lineární transformace y = Kx + Q, k níž dochází po linearizaci (umožňuje kompenzovat absolutní chybu měření čidla ve °C)
- LinearWithShift - lineární transformace, definovaná definovaná rovnicí y = Kx + Q. Před transformací je možné hodnotu posunout parametrem Shift, po transformaci omezit parametry Min a Max.
- Shift - hodnota, přičítaná ke vstupu před lineární transformacíK - koeficient násobení
- Q - koeficient přičítání
- Min - dolní hranice pro omezení na výstupu, výstupní hodnota je vždy větší nebo rovna Min
- Max - horní hranice pro omezení na výstupu, výstupní hodnota je vždy menší nebo rovna Max
Transformace je definována ve směru „od vstupů do programu“, IO→ST (pro čtení). Jestliže tedy máte globální proměnnou namapovanou na hw proměnnou pro zápis a chcete zapisovat např. stonásobnou hodnotu (typicky HVAC Integer), zadáváte v lineární transformaci konstantu převrácenou, k=0,01. Toto pravidlo platí i pro další typy transformací. Pro transformace LinearByTable a LinearByTwoPoints platí, že souřadnice X odpovídají hodnotám, které se reálně zapisují do HW výstupu a souřadnice Y jsou hodnoty, které jsou viditelné v programu.
Nastavení AI - Analogového vstupu na modulech Domat na měření teploty pomocí čidla Pt1000
V případě připojení odporového teploměru na fyzický analogový vstup modulu musíte zvolit správný typ měřené veličiny a nastavit transformaci na příslušném analogovém vstupu tak, abyste na vstupu četli hodnotu měřené teploty.
První musí tedy být správně nastaveno nastavení samotného analogového vstupu. Ve vlastnostech AI se dá změnit „Analog. typ - MMIO/MCIO2“. Pro měření pomocí čidla Pt1000 máme tři možnosti. Možnosti číslo jedna je volba „Temperature Pt1000 -50..150°C“. V tomto případě by linearizace probíhala už na úrovni I/O modulu. Doporučeným řešením je však výběr z možností „Odpor 0..1600 Ohm“ a „Odpor 0..5000 Ohm“. Při tomto nastavení budeme na AI měřit odpor, linearizovat budeme až v PLC.
Dalším krokem bude nastavení transformace. Pro převod odporu na teplotu vybereme transformaci „ResistanceToTemperature“. Zde je potřeba vybrat správný typ čidla.
Poté v políčku „kind“ vyberte senzor Pt1000. Tím se vybere příslušná sada koeficientů v linearizační tabulce. Posledním krokem, který je dán vlastností AI, je nastavit proměnnou pre_k na hodnotu 0,1. Tím dojde k úpravě hodnot ještě před SW transformací a výsledkem bude zobrazení reálné hodnoty v °C. Odpor 0-1600 Ohm se totiž na AI měří na rozsahu 0-16000, tedy Ohm*10. Ještě před transformací je tedy potřeba hodnotu vydělit deseti. Toto nastavení může být specifické pro I/O moduly firmy Domat.
Posledním krokem bude nahrání nastavení AI do I/O modulu a nahrání transformace. Defaultní nastavení pro AI na modulech je měření napětí 0-10 V. Na modul je tedy potřeba nahrát nastavení, který nám umožní měřit odpor na rozsahu 0-1600 Ohm nebo 0-5000 Ohm. Pokud již máme nastavení na AI připraveno, nahrajeme sestavu do PLC tak, jak je popsáno v kapitole Nahrání programu do PLC. PLC následně spustíme v módu oživování. V tomto módu jsme schopni komunikovat napřímo s I/O modulem a měnit jeho nastavení. Pro moduly Domat se toto nahrání nastavení dělá pomocí volby „Konfigurace modulů Domat“ v kontextové nabídce I/O modulu.
Po nahrání této konfigurace není potřeba I/O modul restartovat. Transformace se nahrává spolu se sestavou. Jedná se o součást běžícího programu. Pokud se tedy po nahrání konfigurace do IO modulu přepneme do „plného módu“ nebo do módu „Pouze komunikace“, mělo by AI již ukazovat měřenou teplotu. Nezapomeňte po nahrání restartovat PLC studeným restartem.
Skryté proměnné (jmenný prostor - HW hidden)
Pokud máte na datovém bodě zařízení použitou transformaci např. Lib.Core.v1_0.ResistanceToTemperature, po zkompilování sestavy se v prohlížeči proměnných zobrazí proměnné s jmenným prostorem „hw_hidden“. Tyto proměnné se v sestavě zobrazí až po zkompilování sestavy.
Po rozbalení proměnné v prohlížeči proměnných s označením „HW hidden“ se v označení „Název kanálu“, „Název zařízení“.„Datový bod“.„transformation“ (např. channel.MCIO2.AI1.transformation) zobrazí parametry použité transformace. Po připojení k regulátoru („Start ladění“) sloupec „PLC hodnota“ zobrazuje vyčtenou hodnotu a ve sloupci „Počáteční hodnota“ je možné vyčíst nastavenou hodnotu v regulátoru.
Doporučený postup při servisování I/O modulů
1) Změna analogového typu
Pokud měníte analogový typ na datovém bodu, je pro změnu je nutné provést konfiguraci modulů Domat (pravý klik na zařízení – Konfigurace modulů Domat). Pro aplikování konfigurace není nutné přehrávat sestavu.
Úspěšné provedení konfigurace je možné ověřit textovou hláškou „Konfigurace byla úspěšná“ v levém dolním statusu.
2) Změna transformace datového bodu
Pokud měníte pouze transformaci na datovém bodu, modul není nutné konfigurovat. Po aplikování změny transformace stačí nahrát sestavu do PLC a spustit PLC jako po teplém restartu. V prohlížeči proměnných je možné si provedenou změnu transformace ověřit u datového bodu s jmenným prostorem HW_hidden.
- Změňte transformaci např. z ResistanceToTemperature na jinou transformaci např. Linear, přehrajte sestavu a spusťte PLC jako po teplém restartu. Následně proveďte na datovém bodu změnu transformace na původní v našem případě by to bylo z Linear na ResistanceToTemperature a nastavte si druh teplotního čidla a parametry Pre a Post. Po přehrání sestavy a spuštěním projektu jako po teplém restartu dojde k aplikaci změněných parametrů. Tato možnost nevyžaduje spuštění projektu jako po studeném restartu.
- V případě, že můžete projekt spustit jako po studeném restartu, proveďte změnu parametru, nahrajte sestavu do PLC a spusťte PLC jako po studeném restartu.
Upozornění a tipy na konfiguraci datových bodů
- Pro konfiguraci datového bodu není nikdy potřeba spouštět sestavu jako po studeném restartu.
- Konfigurovat datový bod je nutný pouze při změně analogového typu.
- Po změně transformace postačí pouze přehrání sestavy a spuštění projektu jako po teplém restartu.
- V případě, že nemůžete projekt spustit jako po studeném restartu a potřebujete provést změnu parametru aplikujte postup „Změna parametru“ odrážka a).