SCALE_INT

INTEGERデータスケーリング

この命令は、下限値と上限値の間のINTEGER値をINTEGER出力値にスケーリングします。WITHIN_LIMITSを使用して、入力値が指定した範囲内にあるかどうかをチェックします。

パラメータ

入力

iInput (INT)

入力信号

iInputLowerLimit (INT)

入力レンジの下限値

iInputUpperLimit (INT)

入力レンジの上限値

iOutputLowerLimit (INT)

入力レンジの下限値に割り付けられる出力値(iOutputUpperLimitよりも大きくなる場合あり)

iOutputUpperLimit (INT)

入力レンジの上限値に割り付けられる出力値(iOutputLowerLimitよりも小さくなる場合あり)

出力

VAR_OUT (INT)

スケーリング出力信号

POUヘッダ

POUヘッダには、このプログラムで使用するすべての入力変数と出力変数を宣言します。 POUヘッダは全プログラム言語で使用できます。

	VAR
		iInput0: INT:=2000;
		iOutput0: INT:=0;
	END_VAR

LDボディ

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!,,15,0,26,7,,?DiInput?DiInputLowerLimit?DiInputUpperLimit?DiOutputLowerLimit?DiOutputUpperLimit?C);
B(B_VARIN,,iInput0,13,1,15,3,);
B(B_VARIN,,-1000,13,2,15,4,);
B(B_VARIN,,3000,13,3,15,5,);
B(B_VARIN,,-10000,13,4,15,6,);
B(B_VARIN,,30000,13,5,15,7,);
B(B_VAROUT,,iOutput0,26,1,28,3,);
L(1,0,1,7);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

STボディ

if (bScale) then
    iOutput := SCALE_INT(iInput := iInput0,
      iInputLowerLimit := -1000,
      iInputUpperLimit := 3000,
      iOutputLowerLimit := -10000,
      iOutputUpperLimit := 30000);
end_if;

最終修正日: 2019-08-05このページに関するフィードバックお問い合わせ窓口