Diskuse2 Elektrika.cz

HYBRIDNÍ zóna => TECO - Foxtrot chytré instalace. ODBORNÍCI radí spotřebitelům! => Firemní podpora => Technická podpora výrobce TECO Kolín radí odborníkům => Topic started by: Jiri Dvorak on 27.01.2014, 22:51

Title: Je toto chyba v mosaic při určité definici vlastního typu proměnné ?
Post by: Jiri Dvorak on 27.01.2014, 22:51
K věci :
(vynechám zdlouhavý popis z příkladu je problém celkem jasný)

TYPE
 type_pok : STRUCT        
   q : ( a, b, c);                                      // zde je problém
   arb : ARRAY [0..20] OF BOOL;         // zde je  problém


 END_STRUCT;
 
END_TYPE

VAR_GLOBAL RETAIN
 arb2 : ARRAY [0..20] OF BOOL;
 var_tp : type_pok;
END_VAR


s tímto vytvořeným typem nechodí toto ( pouze kód pro test):

for  y := 0 to 20 do
  arb2[y] := true;
  var_tp.arb[y] := true;
end_for;


překvapivě toto jde:

var_tp.arb[1] := true;

a druhé ( tedy pro mě ) překvapení, pokud:

TYPE
 type_pok : STRUCT        
    arb : ARRAY [0..20] OF BOOL;
    q : ( a, b, c);

END_STRUCT;
 
END_TYPE


Tak je zase po problému........




Title: Re: Je toto chyba v mosaic při určité definici vlastního typu proměnné ?
Post by: Jindřich Kubec on 28.01.2014, 13:32
váš dotaz jsem předal kolegům z vývoje prostředí Mosaic, předpokládám, že se do několika dní ozvou.
Title: Re: Je toto chyba v mosaic při určité definici vlastního typu proměnné ?
Post by: Milan Bydžovský on 03.02.2014, 09:06
Překladač bohužel dovolil konstrukci, se kterou neumí pracovat, a to definice enumerace jako instance.

Problém lze obejít následovně:

Code Select
TYPE
  Tq : ( a, b, c);                                   // definice enumerace
  type_pok : STRUCT
    q : Tq;                                            //pouziti enumerace
    arb : ARRAY [0..20] OF BOOL;
  END_STRUCT;
END_TYPE


Následné operace jsou pak již korektní