INT型からSTRING型への変換
INT_TO_STRING命令は、INT型の値をSTRING型の値に変換します。
変換結果の文字列は、右揃えの10進数表示で生成されます。また宣言された最大文字数まで、ゼロが埋められます。
入力
出力
FP-e、FP0のような小型PLCでSTRING型データを使用するとき、演算結果の文字列長が入力の文字列長以上の長さになるようにしてください。
使用するファンクション |
String1の宣言 |
結果 |
---|---|---|
String1:=INT_TO_STRING(-12345) |
STRING[1] |
'5' |
STRING[2] |
'45' |
|
STRING[3] |
'345' |
|
STRING[4] |
'2345' |
|
STRING[5] |
'12345' |
|
STRING[6] |
'-12345' |
|
STRING[7] |
||
STRING[8] |
||
(以下つづく) |
POUヘッダには、このプログラムで使用するすべての入力変数と出力変数を宣言します。POUヘッダは全プログラム言語で使用できます。
VAR
INT_value: INT:=-12345;
(*example value*)
result_string: STRING[8]:='';
(*result: here '-12345'*)
@'': @'';
END_VAR
INT型の入力変数INT_valueは、値"-12345"で初期化されます。出力変数result_stringはSTRING[8]型で、最大8文字を格納することができます。変数INT_valueの代わりに、ファンクションの入力ピンに定数を直接記述することもできます。
INT型のINT_valueは、STRING[8]に変換されます。変換結果はresult_stringに書き込まれます。変数INT_valueが"-12345"のとき、result_stringは"-12345"になります。
BODY
WORKSPACE
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,INT_TO_STRING!,Instance,9,2,18,4,,?D?C);
B(B_VARIN,,INT_value,7,2,9,4,);
B(B_VAROUT,,result_string,18,2,20,4,);
L(1,0,1,5);
END_NETWORK_BODY
END_NET_WORK
END_BODY
result_string:= INT_TO_STRING(input_value);
この例は、INT型の数値データから、右揃えの文字列STRING[2]を作成する方法を示しています。
POUヘッダには、このプログラムで使用するすべての入力変数と出力変数を宣言します。POUヘッダは全プログラム言語で使用できます。
VAR
INT_value: INT:=12;
(*example value*)
result_string: STRING[2]:='';
(*result: here '12'*)
@'': @'';
@'': @'';
END_VAR
この例では、INT型の入力変数INT_valueとSTRING[2]型の出力変数result_stringが宣言されています。
この例では、標準ファンクションのRIGHT命令をINT_TO_STRING命令に続けて実行します。RIGHT命令は、長さLの右揃え文字列を作成します。
この例では、変数INT_variable = 12 が、INT_TO_STRING命令によってダミー文字列"12"に変換されます。RIGHT命令は、result_string"12"を生成します。
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 9 ;
NETWORK_BODY
B(B_F,INT_TO_STRING!,Instance,8,1,17,3,,?D?C);
B(B_VARIN,,input_string,6,1,8,3,);
B(B_F,INSERT!,Instance,4,4,9,9,,?DIN1?DIN2?DP?C);
B(B_VARIN,,'~',2,6,4,8,);
B(B_VARIN,,8,2,7,4,9,);
B(B_F,INSERT!,Instance,12,4,17,9,,?DIN1?DIN2?DP?C);
B(B_F,INSERT!,Instance,19,4,24,9,,?DIN1?DIN2?DP?C);
B(B_VAROUT,,result_string,24,5,26,7,);
B(B_VARIN,,'~',10,6,12,8,);
B(B_VARIN,,5,10,7,12,9,);
B(B_VARIN,,'~',17,6,19,8,);
B(B_VARIN,,2,17,7,19,9,);
L(1,0,1,9);
L(9,6,12,6);
L(17,6,19,6);
L(17,2,19,2);
L(3,4,3,6);
L(3,6,4,6);
L(3,3,19,3);
L(3,3,3,4);
L(19,2,19,3);
END_NETWORK_BODY
END_NET_WORK
END_BODY
result_string:=RIGHT(IN:=INT_TO_STRING(input_value), L:=2);