Skip to main content

変換: STRING、WSTRING

演算子は文字列を変換します(STRING また WSTRING)指定されたターゲットデータ型に変換し、型変換された値を返します。

意味のある結果をもたらす変換は、オペランドがIEC61131-3規格に準拠したターゲットデータ型と一致する場合にのみ可能です。これは、オペランドの値がターゲットデータ型の有効な定数(リテラル)に対応する場合に当てはまります。

変換可能な文字列には次のものが含まれます。

  • タイププレフィックス付きの番号(例: '16#FFFFFFFF')。

  • グループ化文字付きの番号(例: '2#1111_1111')。

    注:国際的な重みとメジャーのグループ化文字(シンスペース)は受け入れられません。アンダースコアのみが受け入れられます。

  • 浮動小数点数、これも指数表記(例: '9.876' また '1.2E-34')。

    注:浮動小数点数は変換できません。カンマは次の文字のように扱われ、切り捨てられます。

  • プレフィックスとサイズを使用した時刻、時刻、および日付の指定(例: 'T#2h''DT#2019-9-9-12:30:30.9')。

  • 無限の値(例: '1.7E+400')。

  • 追加のキャラクター 数字(例: '2m' また '3.14')。

    これらは切り捨てられます。追加の文字 番号は許可されていません。

  • 前のスペース(例: '3.14')。

呼び出し構文: STRING_TO_<ターゲットタイプ>(<オペランド>)WSTRING_TO_<ターゲットタイプ>(<オペランド>)

オペランド

データタイプ

説明

変数またはリテラル

STRINGWSTRING

STRING, WSTRING

14. キャスト演算子: STRING/WSTRING_TO_<target type>

演算子: STRING

演算子: WSTRING

戻り値

説明

 STRING_TO___UXINT

WSTRING_TO___UXINT

__UXINT、__ XINT、__ XWORD

 STRING_TO___XINT

WSTRING_TO___XINT

__UXINT、__ XINT、__ XWORD

 STRING_TO___XWORD

WSTRING_TO___XWORD

__UXINT、__ XINT、__ XWORD

 STRING_TO_BIT

WSTRING_TO_BIT

BIT

STRING_TO_BOOL

WSTRING_TO_BOOL

STRING_TO_BOOL('TRUE')

STRING_TO_BOOL('true')

WSTRING_TO_BOOL("TRUE")

WSTRING_TO_BOOL("true")

TRUE

BOOL

STRING_TO_BYTE

WSTRING_TO_BYTE

Integer

STRING_TO_DATE

WSTRING_TO_DATE

STRING_TO_DATE('DATE#2019-9-9')

WSTRING_TO_DATE("DATE#2019-9-9")

D#2019-9-9

構文: D#yyyy-MM-dd

データ型: DATE

STRING_TO_DINT

WSTRING_TO_DINT

出力データ型が大きい場合、情報が失われる可能性があります。

Integer

STRING_TO_DT

WSTRING_TO_DT

STRING_TO_DT('DT#2019-9-9-1:1:1.1')

WSTRING_TO_DT("DT#2019-9-9-1:1:1.1")

DT#2019-9-9-1:1:1

DT#2019-9-9-1:1:1

構文: DT#yyyy-MM-dd-hh:mm:ss

データ型: DATE

STRING_TO_DWORD

WSTRING_TO_DWORD

Integer

STRING_TO_INT

WSTRING_TO_INT

STRING_TO_INT('123abc')

WSTRING_TO_INT("123abc")

123

Integer

STRING_TO_LDATE

WSTRING_TO_LDATE

構文: LDATE#yyyy-MM-dd

日付のみ表示されます。

データ型: DATE

STRING_TO_LDT

WSTRING_TO_LDT

構文: LDT#yyyy-MM-dd-hh:mm:ss.sss

データ型: DATE

STRING_TO_LINT

WSTRING_TO_LINT

Integer

STRING_TO_LREAL

WSTRING_TO_LREAL

STRING_TO_LREAL('1.7E+308')

WSTRING_TO_LREAL("1.7E+308")

1.7000000000000001E+308

REAL、LREAL

STRING_TO_LTIME

WSTRING_TO_LTIME

STRING_TO_LTIME('LTIME#709ms551us615ns')

STRING_TO_LTIME('LTIME#1ms')

WSTRING_TO_LTIME("LTIME#1ms")

LTIME#709ms551us615ns

LTIME#1ms

データ型: TIME、LTIME

STRING_TO_LTOD

WSTRING_TO_LTOD

構文: LTOD#hh:mm:ss.sssssssss

データ型: DATE

STRING_TO_LWORD

WSTRING_TO_LWORD

STRING_TO_LWORD('16#0123456789ABCDEF')

WSTRING_TO_LWORD("16#0123456789ABCDEF")

81985529216486895

Integer

STRING_TO_REAL

WSTRING_TO_REAL

STRING_TO_REAL('1.234')

WSTRING_TO_REAL("1.234")

1.234

より大きな値の範囲から変換する場合、情報が失われたり、未定義の結果が返されたりする可能性があります。

REAL、LREAL

STRING_TO_SINT

WSTRING_TO_SINT

Integer

-

WSTRING_TO_STRING

WSTRING_TO_STRING("Hello World!")

Hello World!

STRING_TO_TIME

WSTRING_TO_TIME

STRING_TO_TIME('T#5d4h3m2s')

WSTRING_TO_TIME("T#5d4h3m2s")

T#5d4h3m2s

データ型: TIME、LTIME

STRING_TO_TOD

WSTRING_TO_TOD

STRING_TO_TOD('TOD#20:15')

WSTRING_TO_TOD("TOD#20:15")

TOD#20:15:0

データ型: DATE

STRING_TO_UDINT

WSTRING_TO_UDINT

Integer

STRING_TO_UINT

WSTRING_TO_UINT

Integer

STRING_TO_ULINT

WSTRING_TO_ULINT

STRING_TO_ULINT('615')

WSTRING_TO_ULINT("615")

615

Integer

STRING_TO_USINT

WSTRING_TO_USINT

Integer

STRING_TO_WORD

WSTRING_TO_WORD

Integer

STRING_TO_WSTRING

-

STRING_TO_WSTRING('Hello World!')

"Hello World!"

WSTRING



ブール値への変換

オペレーター STRING_TO_BOOL:の値 TRUE オペランド値が 'TRUE' また 'true'。一方で、 FALSE のために返されます 'True'

オペレーター WSTRING_TO_BOOL:の値 TRUE オペランド値が "TRUE" また "true"。一方で、 FALSE のために返されます "True"

_cds_img_fbd_convert_string_to_bool.png
171. FB_文字列変換

宣言

FUNCTION_BLOCK FB_ConvertStrings
VAR_INPUT
END_VAR
VAR_OUTPUT
END_VAR
VAR
	 xReturn_0: BOOL;
	xReturn_1: BOOL;
	dateReturn: DATE;
	dtReturn: DATE_AND_TIME;
	iReturn: INT;
	lrReturn: LREAL;
	lrReturn_0: LREAL;
	lwReturn: LWORD;
	lwReturn_0: LWORD;
	lwReturn_1: LWORD;
	ltReturn: LTIME;
	ltReturn_0: LTIME;
	ltReturn_1: LTIME;
	ltReturn_2: LTIME;
	rReturn: REAL;
	rReturn_0: REAL;
	timReturn: TIME;
	timReturn0: TIME;
	timReturn1: TIME;
	timReturn2: TIME;
	todReturn: TIME_OF_DAY;
	todReturn0: TIME_OF_DAY;
	todReturn1: TIME_OF_DAY;
	todReturn2: TIME_OF_DAY;
	uliReturn: ULINT;
	uliReturn_0: ULINT;
	uliReturn_1: ULINT;
	wReturn: WORD;
	wReturn_0: WORD;
	wReturn_1: WORD;
	wstrReturn: WSTRING;
	wstrReturn_0: WSTRING;
	dtReturn2: DATE_AND_TIME;
END_VAR

実装

FUNCTION_BLOCK FB_ConvertStrings
VAR_INPUT
END_VAR
VAR_OUTPUT
END_VAR
VAR
        xReturn_0: BOOL;
        xReturn_1: BOOL;
        dateReturn: DATE;
        dtReturn: DATE_AND_TIME;
        iReturn: INT;
        lrReturn: LREAL;
        lrReturn_0: LREAL;
        lwReturn: LWORD;
        lwReturn_0: LWORD;
        lwReturn_1: LWORD;
        ltReturn: LTIME;
        ltReturn_0: LTIME;
        ltReturn_1: LTIME;
        ltReturn_2: LTIME;
        rReturn: REAL;
        rReturn_0: REAL;
        timReturn: TIME;
        timReturn0: TIME;
        timReturn1: TIME;
        timReturn2: TIME;
        todReturn: TIME_OF_DAY;
        todReturn0: TIME_OF_DAY;
        todReturn1: TIME_OF_DAY;
        todReturn2: TIME_OF_DAY;
        uliReturn: ULINT;
        uliReturn_0: ULINT;
        uliReturn_1: ULINT;
        wReturn: WORD;
        wReturn_0: WORD;
        wReturn_1: WORD;
        wstrReturn: WSTRING;
        wstrReturn_0: WSTRING;
END_VAR
xReturn_0 := STRING_TO_BOOL('FALSE');
xReturn_1 := STRING_TO_BOOL('TRUE');
dateReturn := STRING_TO_DATE('DATE#2019-9-9');
dtReturn := STRING_TO_DT('DT#2019-9-9-1:1:1.1');
iReturn := STRING_TO_INT('123abc');
lrReturn := STRING_TO_LREAL('4.94E-323');
lrReturn_0 := STRING_TO_LREAL('1.7E+308');
lwReturn := STRING_TO_LWORD('16#FFFF_FFFF_FFFF_FFFF');
lwReturn_0 := STRING_TO_LWORD('16#0123456789ABCDEF');
lwReturn_1 := STRING_TO_LWORD('16#0123456789ABCDEF');
ltReturn := STRING_TO_LTIME('LTIME#213503d23h34m33s709ms551us615ns');
ltReturn_0 := STRING_TO_LTIME('LTIME#0ns');
ltReturn_1 := STRING_TO_LTIME('LTIME#1ms');
ltReturn_2 := STRING_TO_LTIME('LTIME#2s');
rReturn := STRING_TO_REAL('6.543e21');
rReturn_0 := STRING_TO_REAL('1.234');
timReturn := STRING_TO_TIME('T#5d4h3m2s');
timReturn0 := STRING_TO_TIME('TIME#1s');
timReturn1 := STRING_TO_TIME('1s');
timReturn2 := STRING_TO_TIME('TIME#5s');
todReturn := STRING_TO_TOD('TOD#12:0:0.1');
todReturn0 := STRING_TO_TOD('TOD#0:0:0.0');
todReturn1 := STRING_TO_TOD('20:15');
todReturn2 := STRING_TO_TOD('TOD#20:15');
uliReturn := STRING_TO_ULINT('18446744073709551615');
uliReturn_0 := STRING_TO_ULINT('1');
uliReturn_1 := STRING_TO_ULINT('0');
wReturn := STRING_TO_WORD('16#FFFF_0000');
wReturn_0 := STRING_TO_WORD('34abc');
wReturn_1 := STRING_TO_WORD('16#34abc');
wstrReturn := STRING_TO_WSTRING('Hello World!');
wstrReturn_0 := STRING_TO_WSTRING('123456789');


172. ST の FB_ConvertWstrings

宣言

FUNCTION_BLOCK FB_ConvertWstrings
VAR_INPUT
END_VAR
VAR_OUTPUT
END_VAR
VAR
	xReturn_0: BOOL;
	xReturn_1: BOOL;
	dateReturn: DATE;
	dtReturn: DATE_AND_TIME;
	iReturn: INT;
	lrReturn: LREAL;
	lrReturn_0: LREAL;
	lwReturn: LWORD;
	lwReturn_0: LWORD;
	lwReturn_1: LWORD;
	ltReturn: LTIME;
	ltReturn_0: LTIME;
	ltReturn_1: LTIME;
	ltReturn_2: LTIME;
	rReturn: REAL;
	rReturn_0: REAL;
	timReturn: TIME;
	timReturn0: TIME;
	timReturn1: TIME;
	timReturn2: TIME;
	todReturn: TIME_OF_DAY;
	todReturn0: TIME_OF_DAY;
	todReturn1: TIME_OF_DAY;
	todReturn2: TIME_OF_DAY;
	uliReturn: ULINT;
	uliReturn_0: ULINT;
	uliReturn_1: ULINT;
	wReturn: WORD;
	wReturn_0: WORD;
	wReturn_1: WORD;
	wstrReturn: WSTRING;
	wstrReturn_0: WSTRING;
END_VAR

STでの実装

FUNCTION_BLOCK FB_ConvertWstrings
VAR
        xReturn_0: BOOL;
        xReturn_1: BOOL;
        dateReturn: DATE;
        dtReturn: DATE_AND_TIME;
        iReturn: INT;
        lrReturn: LREAL;
        lrReturn_0: LREAL;
        lwReturn: LWORD;
        lwReturn_0: LWORD;
        lwReturn_1: LWORD;
        ltReturn: LTIME;
        ltReturn_0: LTIME;
        ltReturn_1: LTIME;
        ltReturn_2: LTIME;
        rReturn: REAL;
        rReturn_0: REAL;
        timReturn: TIME;
        timReturn0: TIME;
        timReturn1: TIME;
        timReturn2: TIME;
        todReturn: TIME_OF_DAY;
        todReturn0: TIME_OF_DAY;
        todReturn1: TIME_OF_DAY;
        todReturn2: TIME_OF_DAY;
        uliReturn: ULINT;
        uliReturn_0: ULINT;
        uliReturn_1: ULINT;
        wReturn: WORD;
        wReturn_0: WORD;
        wReturn_1: WORD;
        wstrReturn: WSTRING;
        wstrReturn_0: WSTRING;
END_VAR

xReturn_0 := WSTRING_TO_BOOL("FALSE");
xReturn_1 := WSTRING_TO_BOOL("TRUE");
dateReturn := WSTRING_TO_DATE("DATE#2019-9-9");
dtReturn := WSTRING_TO_DT("DT#2019-9-9-1:1:1.1");
iReturn := WSTRING_TO_INT("123abc");
lrReturn := WSTRING_TO_LREAL("4.94E-323");
lrReturn_0 := WSTRING_TO_LREAL("1.7E+308");
lwReturn := WSTRING_TO_LWORD("16#FFFF_FFFF_FFFF_FFFF");
lwReturn_0 := WSTRING_TO_LWORD("16#0123456789ABCDEF");
lwReturn_1 := WSTRING_TO_LWORD("16#0123456789ABCDEF");
ltReturn := WSTRING_TO_LTIME("LTIME#213503d23h34m33s709ms551us615ns");
ltReturn_0 := WSTRING_TO_LTIME("LTIME#0ns");
ltReturn_1 := WSTRING_TO_LTIME("LTIME#1ms");
ltReturn_2 := WSTRING_TO_LTIME("LTIME#2s");
rReturn := WSTRING_TO_REAL("6.543e21");
rReturn_0 := WSTRING_TO_REAL("1.234");
timReturn := WSTRING_TO_TIME("T#5d4h3m2s");
timReturn0 := WSTRING_TO_TIME("TIME#1s");
timReturn1 := WSTRING_TO_TIME("1s");
timReturn2 := WSTRING_TO_TIME("TIME#5s");
todReturn := WSTRING_TO_TOD("TOD#12:0:0.1");
todReturn0 := WSTRING_TO_TOD("TOD#0:0:0.0");
todReturn1 := WSTRING_TO_TOD("20:15");
todReturn2 := WSTRING_TO_TOD("TOD#20:15");
uliReturn := WSTRING_TO_ULINT("18446744073709551615");
uliReturn_0 := WSTRING_TO_ULINT("1");
uliReturn_1 := WSTRING_TO_ULINT("0");
wReturn := WSTRING_TO_WORD("16#FFFF_0000");
wReturn_0 := WSTRING_TO_WORD("34abc");
wReturn_1 := WSTRING_TO_WORD("16#34abc");


173. FBD実装言語
_cds_img_fbd_convert_string.png