PSE

Aplikační software řídicích systémů AMiT.

Kontrola pasivní stanice

Pokud jí aktivní stanice nepošle aktuální hodnotu, skočí do autonomního režimu a zadá si fiktivní hodnotu. Problém je potřeba řešit např. přenosem periodicky se měnící proměnné. Když se tato proměnné přestane měnit, stanice ví, že jí nechodí data.

► Modul NETStat

Má smysl jen na aktivní stanici. V pasivní stanici je nefunkční - čti dále. (AMiT doplní dokumentaci).

Jak určit ekvitermní konstantu?

Ekvitermní konstanta charakterizuje míru tepelné izolace budovy (resp. referenční místnosti). Pokud nechceme experimentovat, použijeme pro zděné stavby hodnotu cca 2.5, pro dobře izolované stavby cca 2.0, pro špatně izolované stavby 3.0 i více. To odpovídá přibližně tvrzení "na 2.5 (2.0, 3.0 atd.) dílu tepla dodaného do místnosti se 1 díl podílí na zvyšování teploty a zbytek uteče ven".
Chceme-li ekvitermní konstantu přesněji změřit, využijeme tento postup: Použijeme topnou vodu o teplotě např. 40°C. Necháme ustálit teplotu v místnosti (např. 18°C). Pak použijeme topnou vodu o teplotě např. 60°C a opět necháme teplotu ustálit (bez rušivých vlivů, jako je větrání), teplota v místnosti se ustálí např. na 25°C. Ekvitermní konstantu vypočítáme jako podíl rozdílu teplot vody k rozdílu teplot v místnosti. Pro výše uvedený příklad by tedy tato konstanta byla (60-40)/(25-18)= 2.85. (Pomůcka od AMiTu)

Počítání sumy malých přírůstků

► Počítám sumu malých přírůstků (0.001), je-li hodnota sumy < 8192, je vše v pořádku, ale dojde-li k překročení této meze, přestane se obsah sumy zvětšovat. V čem je chyba?

Jestliže počítáte SUMA = SUMA + PRIRUSTEK a proměnná SUMA je typu FLOAT, pak je třeba si uvědomit, že sice maximální možné číslo proměnné SUMA je 3,4e38, avšak vzhledem k tomu, že toto číslo je uloženo v exponenciálním tvaru, je samotné číslo uloženo pouze na 23 bitech, 8 bitů je použito pro exponent a jeden bit pro znaménko.
Pokud tedy k hodnotě SUMA = 8388608 2^23+1) přičtete PRIRUSTEK = 1, nastane situace, kdy SUMA a SUMA + PRIRUSTEK jsou si rovny a přičítání se nijak neprojeví. Podobně je tomu i v případě, že PRIRUSTEK = 0,001. SUMA se "zastaví" na hodnotě 8192. Pro PRIRUSTEK = 0,1 je pak maximální SUMA = 524288 atd. (Pomůcka od AMiTu)

Pokud chcete použit bit z LONGové proměnné

V reléovém schématu pomocí modulů LD a LDN atd., nebo si udělat @alias tak je to chyba L. Zvlášť je to nemilé, při načítání DIN modulů DI, kdy nemůžete načíst celý DIN modul do jedné Longové hodnoty, pokud ho chcete použít výše uvedeným způsobem. Musíte ho načíst do dvou Intigerů a přenést nejprve 16 a pak 8 vstupů. Zná někdo jiné řešení?

Moduly

► KOMUNIKACE RS-485

V AKTIVNÍ STANICI REGDBDIR

► COND

Když jsou oba porty obsazeny a potřebujeme krátkodobě připojit počítač s PSP, tak použít při tvorbě programu tuto funkci.

► Poruchy od čidel

Zpozdit o cca. 50 sekund @START

► DELTA AVG

Neklouzavý průměr – počet vzorků a pak průměr.

Hodnota se zaznamená při změně

Pro tyto účely je k dispozici funkční modul SyncArch. Vlastní detekci, že ke změně hodnoty došlo, musí tvůrce aplikace sám napsat a odvozovat od toho, že se má archivovat. Jako příklad může posloužit následující výpis, z kterého je vše zřejmé:
Let @Archivuj = if(Hodnota<>StaraHodn, 1, 0)
Let StaraHodn = Hodnota
SyncArch Hodnota, 1, ArchMatice, CasMatice, @Archivuj, NONE, 1, ArchIndex, 1

Stránky