R.P. Různé 16. 12. 2024 12:49 16. 12. 2024 13:58

Dobrý den, 

v Global Retain mám uloženo toto pole struktur:

Velikost je 6.21kB (velikost prvku pole = 155B)

Pokud uvedené pole struktur označím příznakem PUBLIC_API , vzroste velikost souboru TecoAPI.pub z původních cca 5kB na cca 546kB - tedy o více než 500kB.

Čím je toto prosím způsobeno?

Chci použít funkci VarApiToJsonFile, ale PUBLIC_API má přílišnou velikost.

Děkuji za info a přeji hezký den,

S pozdravem

Radek Pospíšil

 

 

Odpovědi 1

M.B. 16. 12. 2024 13:58

Soubor TecoAPI.pub je textový soubor, kde na je na každém řádku plné jméno proměnné s informací o typu a umístění v paměti.

Například pole test {PUBLIC_API} : ARRAY [0..9] OF BOOL; vygeneruje v souboru pub deset řádků. Pole struktur group_comfortAutomatization_condition má 9881 položek. Soubor je možné zmenšit použitím kratších jmen proměnných. Funkce VarApiToJsonFile má kromě velikosti souboru TecoAPI.pub, také omezení na 256 proměnných. Takže i při zkrácení jmen, budete muset exportovat do JSON vždy jen jednu položku pole.

Bez změny programu je možné použít kratší jméno proměnné, když se nedefinuje {PUBLIC_API} přímo na proměnné, ale vytvoří se alias, např:

VAR_GLOBAL RETAIN
  group_comfortAutomatization_condition : ARRAY [0..40] OF comfortAutomatization_condition;
  gcac {PUBLIC_API} AT group_comfortAutomatization_condition;
END_VAR

Vaše odpověď

Pro vložení odpovědi je nezbytné být přihlášený. Pokračujte na přihlášení.