12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- <?xml version="1.0" encoding="utf-8"?>
- <TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4024.12">
- <POU Name="AnalogConverter" Id="{fa860dda-8708-450a-850d-194662f00558}" SpecialFunc="None">
- <Declaration><![CDATA[FUNCTION_BLOCK AnalogConverter
- VAR_INPUT
- AnalogRdValue_In_Int : INT;//实际通道值
- AnalogResMax_In_Int : INT;//通道最大值
- AnalogResMin_In_Int : INT;//通道最小值
- AnalogPhyMax_In_Real : REAL;//工程量最大值
- AnalogPhyMin_In_Real : REAL;//工程量最小值
- AnalogRdOffset_In_Real : REAL;//偏移值
- END_VAR
- VAR_OUTPUT
- ActRdValue_Out_Real : REAL;
- END_VAR
- VAR
- END_VAR]]></Declaration>
- <Implementation>
- <ST><![CDATA[
- //模拟量输入下限
- IF AnalogRdValue_In_Int < AnalogResMin_In_Int THEN
- AnalogRdValue_In_Int := AnalogResMin_In_Int ;
- END_IF
- //模拟量输入上限
- IF AnalogRdValue_In_Int > AnalogResMax_In_Int THEN
- AnalogRdValue_In_Int := AnalogResMax_In_Int ;
- END_IF
- ActRdValue_Out_Real :=
- ( INT_TO_REAL (AnalogRdValue_In_Int) - INT_TO_REAL (AnalogResMin_In_Int) ) / ( INT_TO_REAL (AnalogResMax_In_Int ) - INT_TO_REAL (AnalogResMin_In_Int) ) *
- ( AnalogPhyMax_In_Real - AnalogPhyMin_In_Real ) + AnalogPhyMin_In_Real + AnalogRdOffset_In_Real ;
- ]]></ST>
- </Implementation>
- <LineIds Name="AnalogConverter">
- <LineId Id="68" Count="0" />
- <LineId Id="96" Count="6" />
- <LineId Id="67" Count="0" />
- <LineId Id="104" Count="2" />
- <LineId Id="103" Count="0" />
- <LineId Id="9" Count="0" />
- </LineIds>
- </POU>
- </TcPlcObject>
|