#Zero_Protect_Temp := REAL#1.0 *DWORD_TO_REAL(#Zero_Protect);
#ENCODER_PV_Temp := REAL#1.0 *DWORD_TO_REAL(#ENCODER.ENCODER_PV);
IF (#ENCODER_PV_Temp - #Zero_Protect_Temp) < 0 THEN
#Cirle:= 0;
#Angle := (#ENCODER.ENCODER_PV - #Cirle * 8192 - #Zero_Protect) * 360 / 8192;//单圈角度
ELSE
#Cirle := (#ENCODER.ENCODER_PV - #Zero_Protect) / 8192;//圈数
#Cirle_Temp := REAL#1.0*DWORD_TO_REAL(#Cirle);
#Angle_Temp := (#ENCODER_PV_Temp - #Cirle_Temp * REAL#8192.0 - #Zero_Protect_Temp);
#Angle := REAL#360.0* #Angle_Temp /REAL#8192.0;
END_IF;
我用DWORD_TO_REAL指令转换浮点数,转换值为0,