VAR_INPUT
PZDIn1 : WORD :=W#16#00;
PZDIn2 : WORD :=W#16#00;
PZDIn3 : WORD :=W#16#00;
PZDIn4 : WORD :=W#16#00;
PZDIn5 : WORD :=W#16#00;
PZDIn6 : WORD :=W#16#00;
Telegram : INT := 20;
PZDIn2Scale : STRUCT
HIGH : REAL := 50.0;
LOW : REAL := 0.0;
END_STRUCT;
SP_Li : REAL := 0.0 ;
SP_LiScale : STRUCT
HIGH : REAL := 50.0;
LOW : REAL := 0.0;
END_STRUCT;
PZDIn3Scale : STRUCT
HIGH : REAL := 100.0;
LOW : REAL := 0.0;
END_STRUCT;
PZDIn4Scale : STRUCT
HIGH : REAL := 100.0;
LOW : REAL := 0.0;
END_STRUCT;
PZDIn5Scale : STRUCT
HIGH : REAL := 100.0;
LOW : REAL := 0.0;
END_STRUCT;
PZDIn6Scale : STRUCT
HIGH : REAL := 100.0;
LOW : REAL := 0.0;
END_STRUCT;
On : BOOL := False;
InvSp : BOOL := False;
END_VAR
VAR_IN_OUT
// I/O Parameters
END_VAR
VAR_OUTPUT
PZDOut1 : WORD := W#16#00;
PZDOut2 : WORD := W#16#00;
SpeedLi : REAL := 0.0;
SpeedScale : STRUCT
HIGH : REAL := 50.0;
LOW : REAL := 0.0;
END_STRUCT;
Current_Value : REAL :=0.0; //PZD3的值
CurrentScale : STRUCT
HIGH : REAL := 100.0;
LOW : REAL := 0.0;
END_STRUCT;
Mist_Glatt : REAL := 0.0 ; //当前转矩值
Warn_Code : INT := 0 ; // 报警代码
Fault_Code : INT := 0 ; // 故障代码
Rdy_On : BOOL := False ; // 准备打开
RdyOp : BOOL := False ; // 准备运行
Warnning : BOOL := False ; // 报警
Fault : BOOL := False ; // 故障
Running : BOOL := False ; // 运行
Inv_Running : BOOL := False ; // 反向运行
END_VAR
VAR
FbDriveState : WORD;
FbDriveIn AT FbDriveState : ARRAY[0..15] OF BOOL;
END_VAR
BEGIN
IF On THEN
PZDOut1 := W#16#047F;
IF InvSp THEN
PZDOut1 := W#16#0C7F;
END_IF;
ELSE PZDOut1 := W#16#047E;
END_IF;
IF SP_Li >0.0 THEN
PZDOut2 := INT_TO_WORD(REAL_TO_INT(SP_Li*16384.0/(SP_LiScale.HIGH-SP_LiScale.LOW)));
ELSE PZDOut2 := W#16#00;
END_IF;