INTデータから符号なしINTデータへのスケーリング
この命令は、下限値と上限値の間のINTEGER値を符号なしINTEGER出力値にスケーリングします。WITHIN_LIMITSを使用して、入力値が指定した範囲内にあるかどうかをチェックします。
入力
入力信号
入力レンジの下限値
入力レンジの上限値
入力レンジの下限値に割り付けられる出力値(uiOutputUpperLimitよりも大きくなる場合あり)
入力レンジの上限値に割り付けられる出力値(uiOutputLowerLimitよりも小さくなる場合あり)
出力
スケーリング出力信号
POUヘッダには、このプログラムで使用するすべての入力変数と出力変数を宣言します。 POUヘッダは全プログラム言語で使用できます。
VAR
iInput1: INT:=2000;
uiOutput1: UINT:=0;
END_VAR
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 7 ;
NETWORK_BODY
B(B_F,SCALE_INT_UINT!,,15,0,26,7,,?DiInput?DiInputLowerLimit?DiInputUpperLimit?DuiOutputLowerLimit?DuiOutputUpperLimit?C);
B(B_VARIN,,iInput1,13,1,15,3,);
B(B_VARIN,,-1000,13,2,15,4,);
B(B_VARIN,,3000,13,3,15,5,);
B(B_VARIN,,20000,13,4,15,6,);
B(B_VARIN,,60000,13,5,15,7,);
B(B_VAROUT,,uiOutput1,26,1,28,3,);
L(1,0,1,7);
END_NETWORK_BODY
END_NET_WORK
END_BODY
if (bScale) then
uiOutput1 := SCALE_INT_UINT(iInput := iInput1,
iInputLowerLimit := -1000,
iInputUpperLimit := 3000,
uiOutputLowerLimit := 20000,
uiOutputUpperLimit := 60000);
end_if;