Behöver hjälp av någon med Step7 / TIA / ABB Control Builder
Postat: 10 november 2016, 16:26:36
Jag håller på att skriva en kompilator för structured text och använder codesys som referens, men deras kompilator verkar inte stämma emot standarden.
Fråga 1 - typnamn som variabelnamn.
Vad får ni för resultat? codesys tillåter T men inte LT. Jag hitter ingenting i standarden om ifall detta är tillåtet eller inte.
Fråga 2.1 - semikolon.
Vad får ni för resultat? codesys ger kompileringsfel om man inte tar bort semikolonet efter END_STRUCT. Standarden säger att det SKA vara med.
Samma kod som 2.1 men med semikolon direkt efter STRUCT. (dvs "STRUCT;").
codesys tillåter, standarden säger nej. (men ironiskt nog har två av exemplen i standarden med detta semikolon)
Fråga 3 - Negativa durations
Vad får ni för resultat? codesys ger kompileringsfel. Standarden säger att det ska vara tillåtet.
Edit: Uppdaterat med fråga 2.2
Fråga 1 - typnamn som variabelnamn.
Kod: Markera allt
T : INT;
LT : INT;
Fråga 2.1 - semikolon.
Kod: Markera allt
TYPE myStruct :
STRUCT
myVar : INT;
END_STRUCT;
END_TYPE
Fråga 2.2Data_Type_Decl : 'TYPE' ( Type_Decl ';' )+ 'END_TYPE';
Type_Decl : Simple_Type_Decl | Subrange_Type_Decl | Enum_Type_Decl | Array_Type_Decl | Struct_Type_Decl | Str_Type_Decl | Ref_Type_Decl;
Samma kod som 2.1 men med semikolon direkt efter STRUCT. (dvs "STRUCT;").
codesys tillåter, standarden säger nej. (men ironiskt nog har två av exemplen i standarden med detta semikolon)
Fråga 3 - Negativa durations
Kod: Markera allt
myVar : TIME := T#-14ms;
Varför vill jag veta det här om det redan står i standarden (förutom fråga 1) hur det ska vara? Jo om det har blivit en de-facto standard att inte följa de officiella specifikationerna så kan det ju vara bra för kompatibilitet att göra som alla andra istället för det som faktiskt är rätt.Duration : ( 'TIME' | 'LTIME' | 'T' | 'LT' ) '#' ( '+' | '-' )? Interval;
Edit: Uppdaterat med fråga 2.2