发布于 2015-03-16 15:28:01
1楼
FUNCTION "Analog_In" : Void
{ S7_Optimized_Access := 'TRUE' }
VERSION : 0.1
VAR_INPUT
IW : Word;
ID : Int;
max : Real;
min : Real;
END_VAR
VAR_OUTPUT
REAL_out : Real;
"TEST_Current/Voltage" : Real;
Sensor_error : Bool;
END_VAR
VAR_TEMP
iw_real : Real;
END_VAR
BEGIN
#iw_real := INT_TO_REAL(WORD_TO_INT(#IW));
IF (#ID=1) THEN //4-20ma
#"TEST_Current/Voltage" := (16 * #iw_real) / 27648 + 4;
#REAL_out:=(#max-#min)*#"TEST_Current/Voltage"/16+(5*#min-#max)/4;
END_IF;
IF (#ID = 2) THEN//0-10v
#"TEST_Current/Voltage" := #iw_real*10/27648 ;
#REAL_out := (#max-#min)*#"TEST_Current/Voltage"/10+#min;
END_IF;
IF (#IW = 16#ffff OR #IW=16#7fff) THEN
#Sensor_error := 1;
#REAL_out := 0;
#"TEST_Current/Voltage" := 0;
ELSE
#Sensor_error := 0;
END_IF;
END_FUNCTION
工控毁我青春!