• Welcome to Diskuse2 Elektrika.cz. Please login or sign up.
 

Co znamená v Mosaicu chyba při překladu "nedostatek 'R' operandů"?

Started by martinO, 13.11.2014, 10:41

previous topic - next topic

martinO


Do programu definuji nové instance pro funkční bloky pro DALI (fb_DL_WebSetting) celkem 25 a při přidání 23 mi při překladu vyskočí tato chyba:
nedostatek 'R' operandů
Co to prosím znamená a jak mohu případně zvýšit počet operandů.
Používám CP1000.

Milan Bydžovský

Počet operandů R je daný typem centrály. CP-1000 má 64kB R operandů. Funkční blok fb_DL_WebSetting má ve verzi knihovny 1.8 velikost 2,78kB, z čehož plyne, že 25 instancí přesahuje možnosti centrály.
Řešením by bylo přejít na centrálu CP-1001, která disponuje 192kB R operandů.
Druhá možnost, je použít jednu instanci pro více DALI modulů.

Pozn.: Přehled obsazení paměti dává Mapa uživatelských registrů (menu Nástroje > Mapa uživatelských registrů).

martinO

,
děkuji moc, tím použití jedné instance pro více modulů jste to myslel jak?
nadefinuji instanci Web_Dali_1 : fb_DL_WebSetting;
volání
Web_Dali_1( C_DL_ModuleIn := Dali1_IN, C_DL_Module := Dali1_OUT); 
Web_Dali_1( C_DL_ModuleIn := Dali2_IN, C_DL_Module := Dali2_OUT);

Pro druhý převodník DALI využiji opět stejnou instanci jako pro první?
Nevím co bych potom přiřazoval do webové obrazovky jako proměnnou. Vyházím ze vzorového příkladu.
Děkuji 

Milan Bydžovský

Instanci je třeba volat v jednom cyklu jen s jedněmi patametry. Takže by jednotlivá volání musela být v CASE, který by určoval, se kterým modulem blok aktuálně pracuje. Webová stránka je pak jedna. Po každém přepnutí modulu je třeba načíst stav, aby se stará data z předchozího modulu, nahradila daty z přepnutého modulu.