STV Programování Mosaic 12. 6. 2024 12:03 17. 5. 2023 15:02

Dobrý den,

pomocí bloku fbElectricityMeterCounter z knihovny EnergyLib bych rád měřil pulzy elektroměru z výstupu S0. 

K elektroměru mám připojenou CIB jednotku C-IR_0303M, kde mám výstup AI3 nastavený na 16ti bitový čítač pulzů, S0. Hodnota je ale typu REAL a nedokážu ji změnit. Funkční blok pro měření mi nefunguje (zřejmě z tohoto důvodu). Hodnota čítače na AI3 narůstá, pulzy chodí, ale s každým pulzem se zvýší hodnota real o jednu desetinu.

Zkoušel jsem zkusmo do projektu vložit jednotku C-AM-0600I a po přepnutí analogového vstupu na čítač pulzů S0 se hodnota automaticky nastaví správně na UINT.

Jak postupovat s jednotkou  C-IR_0303M? Děkuji

 

Odpovědi 7

Luboš Urban 15. 5. 2023 17:41

Dobrý den,

u novějších modulů CFox je skutečně stav čítače předáván jako hodnota typu REAL, ale inkrementovat by se měla po 1. Jakou máte verzi Mosaicu? Když spustíte nástroj Mosaic Updater, nabízí se nové deskriptory pro IO Configurator? Jestliže se hodnota inkrementuje po 0.1, mohl by být problém právě v těch deskriptorech. Zkusil bych je tedy aktualizovat, případně aktualizovat celý Mosaic. My jsme chování čítače odzkoušeli ve verzi 2023.1 a inkrementuje se podle předpokladu po 1.

Funkční blok z knihovny použít můžete, jen musíte před vstup zařadit převod REAL_TO_DINT tak, aby odpovídal datový typ. V programu se stejně uchovává hodnota proměnné připojené na vstup Counter, to už si spravuje ten funkční blok sám.

STV 16. 5. 2023 14:10

Dobrý den, 

Nainstaloval jsem si poslední verzi Mosaic 2023.1, zkontroloval jsem, že updater dále nenabízí žádné nové descriptory. Projekt jsem v nové verzi Mosaicu přeložil  a nahrál do CPU. 

Pulzy se i tak nadále načítají po jedné setině (původně jsem chybně napsal desetině).

Funkční blok z knihovny mi funguje, ale musel jsem tedy ještě hodnotu REAL před převodem na UINT (vstup cnt vyžaduje hodnotu UINT) vynásobit stovkou.

Jinak měl bych ještě dotaz na 16ti bitový čítač, jak se zachová hodnota po přetečení (nemluvím o hodnotě counter funkčního bloku, ale přímo o hodnotě 16ti bitového čítače) začne počítat opět od nuly nebo je toto potřeba nějak ošetřit? Hodnota je tedy typu REAL a zobrazuje se mi jako 6ti místné číslo, jednotky a 5 desetinných míst.

Děkuji

M.B. 16. 5. 2023 18:06

Dobrý den, 

použijte v ovládací liště I/O Configurátoru tlačítko Aktualizovat descriptory v pracovním adresáři 

To by mělo vyřešit přičítání hodnoty po setinách.

Co se týká přetečení čítače, funkční blok s tímto stavem počítá a správně dopočítá rozdíl mezi těmito stavy.

 

STV 17. 5. 2023 10:13

Dobrý den,

děkuji za reakci. 

Po stisknutí Vámi zmiňovaného tlačítka se objeví hláška " Nic k aktualizaci" ....toto již zřejmě vyřešila instalace poslední verze Mosaic.

Ono narůstání hodnoty po setinách asi nakonec nevadí, akorát musím hodnotu před vstupem funkčního bloku vynásobit stem, pak zdá se FB funguje správně.

M.B. 17. 5. 2023 13:31

Dobrý den,

byla vydána oprava popisovače, která problém s čítáním po setinách opravuje.

Problém nám předtím unikl, protože se projevoval jen na kanálu AI3, když byl kanál AI1 je vypnutý nebo nastavený na jiný režim než čítač S0.

STV 17. 5. 2023 14:42

Dobrý den,

přes tlačítko v ovládací liště I/O Configurátoru "aktualizovat descriptory v pracovním adresáři" se nic k aktualizaci nenabízelo, ale v nástroji Mosaic updater se již aktualizace požadovaného descriptoru k modulu C-IR_0303M nabídnula. Po stažení a přehrání projektu se již čítač opravdu inkrementuje po jednotkách.

Aby toho ale nebylo málo, zkoušel jsem posílat pulzy bez elektroměru, protože na okruhu nemám odběr, vodiče od elektroměru jsem odpojil a na modulu jsem propojoval svorky GND a AI3 ručně. Při krátkém pulzu se čítač inkrementoval o 1, ale pří delším pulzu(propojení) se čítač inkrementoval někdy o více než jen o 1, nevím jestli toto chování vzniklo až nyní s novým descriptorem nebo to takto fungovalo i dříve(při načítání po setinách), dříve jsem testoval pouze s elektroměrem.

Moc děkuji za odpovědi

 

M.B. 17. 5. 2023 15:02

Descriptor ovlivňuje pouze interpretaci dat z modulu, vlastní chování modulu by se mohlo změnit, kdybychom updatovali jeho firmware. Načítání více pulzů může být způsobeno zákmitem při připojování nebo odpojování vodičů, při připojeném elektroměru by tyto přechodové jevy neměly nastávat.

Tento dotaz je vyřešený.