Téma: SO vstupy - sys[592-624]

Zajímá mne, zda se do sys[592-624] zapisují hodnoty až současně s impulzem, nebo se hodnoty mění i přesto, že se impulz nekoná. Příklad jsem již popisoval zde, zůstal však bez reakce. Monitoruji přenášený tepelný výkon (1MJ/impuls), do sys se tedy zaznamenává interval mezi impulzy, který používám pro výpočty průběžných výkonů. Pokud však předávaný tepelný výkon klesá v čase, tzn. že se intervaly mezi pulsy prodlužují, přepisují se hodnoty v sys i přes absenci impulzu (dokud je nový interval kratší nebo stejný, hodnota v sys se nemění, ale jakmile se interval prodlužuje oproti zaznamenanému, dochází k přepisování - sys jakoby "přetéká"). Je to žádoucí chování a je tedy nutno s tím počítat už při návrhu uživatelského monitoringu, nebo je to bug a nová hodnota má být do sys uložena až po skutečném záznamu impulzu?

2

Re: SO vstupy - sys[592-624]

Musím to zjistit.

Mám ale pocit že sys[] s časem od posledního impulsu se automaticky zvětšuje, dokud nepřijde impuls . . . ale toto v tuto chvíli není garantovaná informace.

Upřesním.

Pochlubte se - popište jak využíváte své zařízení SDS zde ! Můžete si bezplatně přidat svou reklamu !

3

Re: SO vstupy - sys[592-624]

Nevim jestli se autor uvodniho postu dockal odpovedi, ale protoze mam podobny problem tykajici se  techto promennych, dam ho sem.


Pro vypovet aktualniho vykonu a max dosazeneho pouzivam prepocet sys[592] a dalsich  na vykon.
Max dosazeny vykon si zapisuji do promenne ram, v teto promenne se mi po nejake dobe ukaze vcelku nerealne vysoky vykon.
Zkoumanim jsem dosel k zaveru, ze v promenne sys[592] se objevi 0 (nula).
Coz znamena max vykon.
Protoze kontroluji i dalsi sys[625] tak dojdu k hodnote dane jen casem vycteni, nikoli skutecnym vykonem.

Kod pro zjisteni akt.vykonu (ram[21] je vystupni hodnota W, ram[31] je pomocna pro vypocet )

ram[31] = sys[592];                  // vypocet casu elektromer L1
    if (sys[625] > ram[31] ) {
        ram[31] = sys[625];
    }
  if (ram[31] < 3600000){
  ram[21] = 3600000/ram[31];
  }
  else
  {
  ram[21] = 0 ;                         // mene nez 1 Watt
  }

staci do prvni podminky pridat

&& ram[31] > 1

a najednou se to nestava.

pokud je jine vysvetleni nez nulova hodnota promenne sys[592] rad jej proverim...


Honza