ГОСТ Р МЭК 61131-3—2016
IO_Var_Decls
Func_Var_Decls
Func_Body
Func_Ded:’FUNCTION’ Derived_Func_Name{ Data_Type_Access )? Using Directive *
( lO_Var_Dac!s |Func_Var_Decls |Temp_Var_Deds )* Func_Body END_FUNCTION’;
: lnput_Deds |Output DecIs | ln_Out_Decls:
: Exlernal_Var_Decls | Var_Deds;
: Laddar_Diagram | FB_Diagram | lnstruction_List |Stmt_List
| Other_Languages;
//Таблица 40— Объявление типа функционального блока
//Таблица 41 — Объявление экземпляра функционального блока
: Std_FB_Name | Derived_FB_Name;
: ( NamespaceName 7)’ FB_Type_Name:
FB_Type_Name
FB_Type_Access
Std_FB_Name
: SR’ | ’RS’ | ’R_TRIG’ | ’F_TRIG’ | ’CTU’| ’CTD’ | ’CTUD’ | ’TP’ | TON’ | TOF’;
II неполный перечень
: Идентификатор;
Derived_FB_Name
FB_Decl
; ’FUNCTION_BLOCK’ ( ’FINAL’ | ABSTRACT )?
Derived FB Name Using DirecJive *
( EXTENDS’ ( FB_Type_Access | Class_Type_Access ))?
( IMPLEMENTS’ lnterface_Name_List)?
( FB_IO_Var_Decls |Func_Var_Deds |Temp_Var_Decls |Other_Var_Decls )*
( Method_Decl )* FB_Body ? END_FUNCTION_BLOCK’;
FBJO_Var_Deds
FB_lnpul_Decls
FBJnput_Decl
FB_Outpul_Deds
FB_Oulput_Ded
OtherVarDeds
FB_lnput_Decls |FB_Output_Decls |ln_Ou(_Deds;
VAR_INPUT ( ’RETAIN’ | NON_RETAIN’)? ( FB_lnput_Ded ;’ )* ’END_VAR’;
Var_Decl_lnit |Edge_Decl |Anay_Conform_Decl;
1
VAR_OUTPUT ( ’RETAIN’ | NON_RETAIN’)?{ FB_Outpot_Ded )* END_VAR’;
Var_Decl_lnit |Array_Conform_Decl:
Relain_Var_Deds | No_Retain_Var_Decls |Loc_Par ly_Var_Decl;
VAR’ NON_RETAIN’ Access_Spec ? ( Var_DedJ n it )* END_VAR’;
SFC) Ladder_Diagram |FB_Diagram |lnslmction_Lisl | Stmt_Lisl |CKher_Languages;
No_Retam_Var_Decls
FB_Body
l.tethod Ded
METHOD’Access_Spec ( FINAL’ | ABSTRACT)?’OVERRIDE’ ?
Method_Name ( Data_Type_Access )?
( IO_Var_Deds | Func_Var_Decls |Temp_Var_Deds )’ Func_Body END_METHOD’;
Method_Name: Идентификатор;
//Таблица 48— Класс
//Таблица 50— Текстовый вызов методов — Формальный и неформальный перечень параметров
Class_Decl
Class_Type_Name
Class_Type_Access
Class_Name
Class_lnstance_Name
: CLASS’ <’FINAL’ | ’ABSTRACT’)?Class_Type_NameUsing_Directive *
( EXTENDS’ Class_Type_Access )? ( ’IMPLEMENTS’ lnterface_Name_List)?
( Func_Var_Decls | Other_Var_Deds )* ( Method_Decl )* END_CLASS’;
; Идентификатор;
)* Class_Type_Name;
:( Namespace Name
; Идентификатор;
:( Namespace_Name
)* Class_Name A’ *:
lnterface_Decl: ’INTERFACE’ lnterface_Type_Name Using_Directive *
( EXTENDS’ lnlerface_Name_List)? Method_Prototype * ENDJNTERFACE’;
Method.Prototype: METHOD’ Melhod_Name ( Dala_Type_Access )? IO_Var_Decls * END_METHOD’;
lnterface_Spec_lnit
:Variable_List (’:=’ lnterface_Value >?;
lnterface_Value
: Symbolic_Variable |FB_lnstance_Name | ClassJnstance_Name | NULL’;
220