ГОСТ Р МЭК 61131-3—2016
//Таблица 16— Прямо представленные переменные
Direct_Variable: •%’ ( Т |‘Q-1
М ’
)( X | В-1W | О*| г ’ )? Unsigned_lnt{ V UnsignedJnt )*;
Ref_Spec_lnit
Ref_Spec
Ref_Type_Name
Ref_Type_Access
Ref_Name
Ref_Value
Ref_Addr
Ref_Name’
Ref Deref
//Таблица 12 — Операции со ссылками
Ref_Type_DeclRef_Type_Name Ref_Spec_lnit;
Ref_Spec( = ’ Ref_Value )?:
REF_TO’ + Data_Type_Access;
Идентификатор;
<Namespace_Name 7 )‘ Ref_Type_Name.
Идентификатор;
Ref_Addr | NULL1;
■REF’’(’ ( Symbo!ic_Vanable | FB_lnstance_Name
|ClassJnstance_Name ) •)’; Ref_Assign
: =’ ( Ref_Name | Ref_Deref| Ref_Value );
; Ref_Name ,A’+;
//Таблица 13 — Объявление переменных/Таблица 14 — Инициализация переменных
Переменная
Symbo!ic_Variable
Var_Access
Variable_Name
Multi_Elem_Var
SubscriptJJst
Индекс
Strucl_Variable
Struct_Elem_Select
lnput_Deds
lnput_Ded
Edge_Ded
Var_Decl_lnit
: Direct_Vanable| Symbolic_Variable;
:( ( ‘THIS’ V ) |( Namespace_Name7 )+ )?{ Var_Access |Multi_Elem_Var):
: Variable_Name |Ref_Deref;
: Идентификатор;
: Var_Access ( Subscript_List |Strucl_Variab!e )+:
: *f Subscript (7 Subscript )* ■]’;
. Выражение;
:7 Struct_Elem_Seied:
:Var_Access;
: VARJNPUr ( RETAIN’ | NON_RETAIN’)?{ lnput_Ded 7 )’ END_VAR’;
: VarJDecIJnit |Edge_Decl |Array_Conform_Decl:
;Variable_ListBOOL’ ( ’R_EDGE‘ | F_EDGE’);
: Vanable_List7 ( Simple_Spec_lnit |Str_Var_Decl |Ref_Spec_lnit)
|Array_Var_DedJnit | Struct_Var_Ded_lnit
| FB_Ded_lnit | lnterface_Spec_lnit;
Ref_Var_Decl: Variable_List Ref_Spec;
: VariableJJst 7 lnterface_Type_Access;
: Variable_Name ( 7 Variab)e_Name )*;
; VariableJJst ,:’Array_Spec_lnit;
lnterface_Var_Decl
Variable_List
Array_Var_Ded_lnit
Array_Conformand
Array_Conform_Decl
Struct_Var_Ded_lnit
: ARRAY-T - ( 7 “ *:)’ T OF Data_Type_Access;
: Variable_List 7 Array_Conformand:
: Variable_List7 Struct_Spec_lnit;
FB_Decl_No_lni: FB_Name ( FB_Name )* 7 FB_Type_Access:
: FB_Decl_No_lnit (*;=’ Strvct_lnit)?;
; Идентификатор;
:( Namespace_Name)* FB_Name-л’ *;
FB_Decl_lnit
FB_Name
FB_lnstance_Name
Output_Decls
Output_Decl
ln_Out_Decls
: VAR_OUTPUr ( ’RETAIN’ | NON_RETAIN’)? {Output_Decl V )* END_VAR’;
: Var_Decl_lnit |Anay_Conform_Ded;
: VAR_IN_OUT’ ( ln_Out_Var_Ded 7 )* END_VAR’;
218