REAL_TO_STRING

REAL型からSTRING型への変換

REAL_TO_STRING命令は、REAL型の値を小数点の前後に7つのスペースを持つSTRING[15]型の値に変換します。変換結果の文字列は、"-999999.0000000" ~ "9999999.0000000"の範囲で右寄せします。正数のプラス符号は省略されます。ゼロとなる桁にはスペースが埋め込まれます(例: "-12.0"はSTRING"-12.0"になります)。

パラメータ

入力

未定義入力 (REAL)
入力データ型

出力

未定義出力 (STRING)
変換結果STRING[15]

解説

  • ファンクションには、約160ステップのプログラムメモリが必要です。繰り返し使用するときは、メモリに1回だけ保存されるユーザーファンクションとして定義してください。

  • FP-eFP0のような小型PLCでSTRING型データを使用するとき、演算結果の文字列長が入力の文字列長以上の長さになるようにしてください。

POUヘッダ

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

VAR
		input_value: REAL:=-123.4560166;
		result_string: STRING[15]:='';
END_VAR	

REAL型の入力変数input_valueは、値"-123.4560166"で初期化されます。出力変数result_stringSTRING[15]型で、最大15文字を格納することができます。変数input_valueの代わりに、ファンクションの入力ピンに定数を直接記述することもできます。

POUボディ

REAL型のinput_valueは、STRING[15]に変換されます。変換結果はresult_stringに書き込まれます。変数input_valueが"123.4560166"のとき、result_stringは" -123.4560165"になります。

LDボディ

BODY
    WORKSPACE</p>
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 5 ;
        NETWORK_BODY
B(B_F,REAL_TO_STRING!,Instance,7,1,17,3,,?D?C);
B(B_VARIN,,input_value,5,1,7,3,);
B(B_VAROUT,,result_string,17,1,19,3,);
L(1,0,1,5);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ILボディ

POUヘッダ

この例は、REAL型の数値文字列から、整数部4桁と小数点以下2桁のSTRING[7]型の文字列に変換する方法を示しています。

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

VAR
		input_value: REAL:=-123.4560166;
			(*example value*)
		result_string: STRING[15]:='';
			(*result: here ' -123.45'*)
	END_VAR

この例では、REAL型の入力変数input_valueとSTRING[7]型の出力変数result_stringの両方が宣言されています。

POUボディ

この例では、標準ファンクションのMID命令をREAL_TO_STRING命令に続けて実行します。MID命令は、Pの位置(INT値)から長さL (INT値)の中央部分の文字列を生成します。

この例では、MID命令の入力Lには、文字列長としてINT定数"7"を指定します。入力Pには、切り出す文字列の先頭位置として、INT定数"4"を指定します。変数input_valueが"-123.4560166"の場合、データ型変換結果、スペースを含む文字列" -123.4560166"が生成されます。MID命令は、その文字列の4番目の位置から切り出し、result_string '-123.45'を生成します。

LDボディ

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 6 ;
        NETWORK_BODY
B(B_F,REAL_TO_STRING!,Instance,7,2,17,4,,?D?C);
B(B_VARIN,,input_value,5,2,7,4,);
B(B_VAROUT,,result_string,24,2,26,4,);
B(B_F,MID!,Instance,19,1,24,6,,?DIN?DL?DP?C);
B(B_VARIN,,7,17,3,19,5,);
B(B_VARIN,,4,17,4,19,6,);
L(17,3,19,3);
L(1,0,1,6);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ILボディ

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