値の変更オペレーションは、変数、オブジェクト、および表示器の値とプロパティを変更します。

changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, TARGET, EXPRESSION);
3 1 2 4
1: オペレーション
2: 出力先
3: When over
値が範囲を超えたときのオペレーションを設定します。
[When over] の設定:
[Loop] は、最大値に達したときにループを停止させる実数データタイプの変数をサポートしていません。
4: ソース
| [Set] |
ブロックテキストまたは '=' |
ソースブロックで指定された変数、定数、または式を出力先ブロックに書き込みます。 |
|
[AddTo] |
ブロック[AddTo] テキストOr'+=' |
ソースブロックで指定された変数、定数、または式を出力先ブロックに追加します。 |
|
[SubTo] |
ブロック[SubTo] テキストまたは '-=' |
ソースブロックで指定された変数、定数、または式を出力先ブロックから減算します。 |
|
[MulTo] |
ブロック[MulTo] テキストまたは '*=' |
出力先ブロックの値に、ソースブロックで指定された変数、定数、または式を乗算し、結果を出力先ブロックにコピーします。 |
|
[DivTo] |
ブロック[DivTo] テキスト |
出力先ブロックの値を、ソースブロックで指定された変数、定数、式で割り、その結果を出力先ブロックにコピーします。 |
|
[AndTo] |
ブロック[AndTo] テキスト |
ソースブロックおよび出力先ブロックで指定された整数または変数間で AND 演算 (論理積) を実行し、結果を出力先ブロックにコピーします。 |
|
[OrTo] |
ブロック[OrTo] テキスト |
ソースブロックおよび出力先ブロックで指定された整数または変数間で OR 演算 (論理和) を実行し、結果を出力先ブロックにコピーします。 |
| [XorTo] |
ブロックテキスト |
ソースブロックおよび出力先ブロックで指定された整数または変数間で XOR 演算 (排他的論理和) を実行し、結果を出力先ブロックにコピーします。 |
|
[NandTo] |
ブロック[NandTo] テキスト |
ソースブロックおよび出力先ブロックで指定された整数または変数間で NAND 演算 (否定論理積) を実行し、結果を出力先ブロックにコピーします。 |
|
[NorTo] |
ブロック[NorTo] テキスト |
ソースブロックおよび出力先ブロックで指定された整数または変数間で NOR 演算 (否定論理和) を実行し、結果を出力先ブロックにコピーします。 |
数学演算子の徐算 (/) または乗除演算 (%) を使用した Math ブロックおよび値の変更オペレーションでは、負の値を使用できません。
値の変更オペレーション (AddTo、SubTo、DivTo、MulTo) に 16 桁以上の 10 進数を使用する場合は、出力先変数に LINT または ULINT を使用してください。
[値の変更] オペレーションでは出力先に変数またはソースプロパティを設定することができます。
ソースブロックの値を出力先ブロックの変数に設定します。
(例): Set
| オペレーション | 出力先ブロック | ソースブロック |
| [Set] | 変数 INT1 を変数ブロックに設定します。 | [Int] を選択し、定数ブロックに 5 を設定します。 |
ブロックテキストchangeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, INT1, 5); |
||
→ スクリプトが実行されると、INT1 が 5 に設定されます。
(例): AddTo
| オペレーション | 出力先ブロック | ソースブロック |
| [AddTo] | 変数 INT1 を変数ブロックに設定します。 | [Int] を選択し、定数ブロックに 7 を設定します。 |
ブロックテキストchangeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.AddTo, INT1, 7); |
||
→ スクリプト実行時に INT1 が 3 の場合、ソースブロックの 7 が追加され、INT1 は 10 になります。
(例): SubTo
| オペレーション | 出力先ブロック | ソースブロック |
| [SubTo] | 変数 INT1 を変数ブロックに設定します。 | [Int] を選択し、定数ブロックに 3 を設定します。 |
ブロック![]() テキストchangeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.SubTo, INT1, 3); |
||
→ スクリプト実行時に INT1 が 5 の場合、ソースブロックの値 3 が減算され、INT1 は 2 になります。
(例): DivTo
| オペレーション | 出力先ブロック | ソースブロック |
| [DivTo] | 変数 INT1 を変数ブロックに設定します。 | [Int] を選択し、定数ブロックに 2 を設定します。 |
ブロック![]() テキストchangeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.DivTo, INT1, 2); |
||
→ スクリプト実行時に INT1 が 5 の場合、その値はソースブロックの値 2 で除算され、INT1 は 2 になります。値が整数型の場合、小数点以下の値は切り捨てられます。
(例): MulTo
| オペレーション | 出力先ブロック | ソースブロック |
| [MulTo] | 変数 INT1 を変数ブロックに設定します。 | [Int] を選択し、定数ブロックに 5 を設定します。 |
ブロック![]() テキストchangeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.MulTo, INT1, 5); |
||
→ スクリプト実行時に INT1 が 3 の場合、その値はソースブロックの値 5 で積算され、INT1 は 15 になります。
(例): AndTo
| オペレーション | 出力先ブロック | ソースブロック |
| [AndTo] | 変数 SINT1 を変数ブロックに設定します。 | 変数 SINT2 を変数ブロックに設定します。 |
ブロック![]() テキストchangeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.AndTo, SINT1, SINT2); |
||
→ SINT1 が 3 (バイナリー: 00000011) で SINT2 が 5 (バイナリー: 00000101) の場合、トリガーが発生すると SINT1 は 1 (バイナリー: 00000001) になります。
論理式は、出力先ブロックとソースブロックの値を 2 進数に変換し、各桁での論理積を計算します。結果を元の基数に戻し、出力先ブロックに設定します。
(例): OrTo
| オペレーション | 出力先ブロック | ソースブロック |
| [OrTo] | 変数 SINT1 を変数ブロックに設定します。 | 変数 SINT2 を変数ブロックに設定します。 |
ブロック![]() テキストchangeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.OrTo, SINT1, SINT2); |
||
→ SINT1 が 3 (バイナリー: 00000011) で SINT2 が 5 (バイナリー: 00000101) の場合、トリガーが発生すると SINT1 は 7 (バイナリー: 00000111) になります。
論理式は、出力先ブロックとソースブロックの値を 2 進数に変換し、各桁での論理和を計算します。結果を元の基数に戻し、出力先ブロックに設定します。
(例): XorTo
| オペレーション | 出力先ブロック | ソースブロック |
| [XorTo] | 変数 SINT1 を変数ブロックに設定します。 | 変数 SINT2 を変数ブロックに設定します。 |
ブロック![]() テキストchangeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.XorTo, SINT1, SINT2); |
||
→ SINT1 が 3 (バイナリー: 00000011) で SINT2 が 5 (バイナリー: 00000101) の場合、トリガーが発生すると SINT1 は 6 (バイナリー: 00000110) になります。
論理式は、出力先ブロックとソースブロックの値を 2 進数に変換し、各桁での排他的論理和を計算します。結果を元の基数に戻し、出力先ブロックに設定します。
(例): NandTo
| オペレーション | 出力先ブロック | ソースブロック |
| [NandTo] | 変数 SINT1 を変数ブロックに設定します。 | 変数 SINT2 を変数ブロックに設定します。 |
ブロック![]() テキストchangeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.NandTo, SINT1, SINT2); |
||
→ SINT1 が 3 (バイナリー: 00000011) で SINT2 が 5 (バイナリー: 00000101) の場合、トリガーが発生すると SINT1 は -2 (バイナリー: 11111110) になります。
論理式は、出力先ブロックとソースブロックの値を 2 進数に変換し、各桁での負の論理積を計算します。結果を元の基数に戻し、出力先ブロックに設定します。
(例): NorTo
| オペレーション | 出力先ブロック | ソースブロック |
| [NorTo] | 変数 SINT1 を変数ブロックに設定します。 | 変数 SINT2 を変数ブロックに設定します。 |
ブロック![]() テキストchangeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.NorTo, SINT1, SINT2); |
||
→ SINT1 が 3 (バイナリー: 00000011) で SINT2 が 5 (バイナリー: 00000101) の場合、トリガーが発生すると SINT1 は -8 (バイナリー: 11111000) になります。
論理式は、出力先ブロックとソースブロックの値を 2 進数に変換し、各桁で否定論理和を計算します。結果を元の基数に戻し、出力先ブロックに設定します。
ソース変数の日付と時刻の値を出力先変数に設定します。
DATE, TIME_OF_DAY、DATE_AND_TIME 変数は [Set] および [AddTo] 演算子をサポートしています。
ソースブロックおよび出力先ブロックが、DATE、 TIME_OF_DAY または DATE_AND_TIME 変数の場合の動作を次に示します。
| オペレーション | ソースブロック | 出力先ブロック | 動作 |
| [Set] | DATE | DATE | 日付が設定されます。 |
| TIME_OF_DAY | 値は設定されません。 | ||
| DATE_AND_TIME | 日付のみ設定されます。 | ||
| TIME_OF_DAY | DATE | 値は設定されません。 | |
| TIME_OF_DAY | 時刻が設定されます。 | ||
| DATE_AND_TIME | 時刻のみ設定されます。 | ||
| DATE_AND_TIME | DATE | 日付のみ設定されます。 | |
| TIME_OF_DAY | 時刻のみ設定されます。 | ||
| DATE_AND_TIME | 日付と時刻が設定されます。 | ||
| [AddTo] | DATE | DATE | 日付を追加します。 |
| TIME_OF_DAY | 値は設定されません。 | ||
| DATE_AND_TIME | 日付のみを追加します。 | ||
| TIME_OF_DAY | DATE | 値は設定されません。 | |
| TIME_OF_DAY | 時間を追加します。 | ||
| DATE_AND_TIME | 時間のみを追加します。 | ||
| DATE_AND_TIME | DATE | 日付のみを追加します。 | |
| TIME_OF_DAY | 時間のみを追加します。 | ||
| DATE_AND_TIME | 日付と時刻を設定します。 |
(例): Set
| オペレーション | 出力先ブロック | ソースブロック |
| [Set] | 変数 TIME_OF_DAY1 を変数ブロックに設定します。 | [TIME_OF_DAY] を選択し、定数ブロックに 00:15:00 を設定します。 |
ブロック![]() テキストchangeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, TIME_OF_DAY1, timeOfDay(00, 15, 00)); |
||
→ トリガーが発生すると TIME_OF_DAY1 が 00:15:00 に設定さます。
ソースブロックが [定数] の日付または時刻に設定されている場合、その定数に含まれていない日付または時刻の値はゼロになります。例えば、DATE_AND_TIME 変数に定数の時間を書き込むと、日付の値は 0 (1970/01/01) になります。
(例): AddTo
| オペレーション | 出力先ブロック | ソースブロック |
| [AddTo] | 変数 DATE_AND_TIME1 を変数ブロックに設定します。 | [TIME_OF_DAY] を選択し、定数ブロックに 00:15:00 を設定します。 |
ブロック![]() テキストchangeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.AddTo, DATE_AND_TIME1, timeOfDay(00, 15, 00)); |
||
→ DATE_AND_TIME1 が 2024/10/01 12:34:56 の場合、トリガーが発生するとソースブロックの 00:15:00 が追加され DATE_AND_TIME1 は 2024/10/01 12:49:56 になります。
1 ビットのデータが出力先変数に設定されます。
(例): Set
| オペレーション | 出力先ブロック | ソースブロック |
| [Set] | 変数 BOOL1 を変数ブロックに設定します。 | [Int] を選択し、定数ブロックに 1 を設定します。 |
ブロック![]() テキストchangeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, BOOL1, 1); |
||
→トリガーが発生すると BOOL1 に ON が設定されます。
文字列が出力先変数に設定されます。
(例): Set
| オペレーション | 出力先ブロック | ソースブロック |
| [Set] | 変数 STRING1 を変数ブロックに設定します。 | [STRING] を選択し、定数ブロックに "DEF" を設定します。 |
ブロック![]() テキストchangeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, STRING1, "DEF"); |
||
→トリガーが発生すると STRING1 に DEF が設定されます。
(例): AddTo
| オペレーション | 出力先ブロック | ソースブロック |
| [AddTo] | 変数 STRING1 を変数ブロックに設定します。 | [STRING] を選択し、定数ブロックに "DEF" を設定します。 |
ブロック![]() テキストchangeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.AddTo, STRING1, "DEF"); |
||
→ STRING1 が "AB" の場合、トリガーが発生すると "DEF" がソースブロックに追加され STRING1 は "ABDEF" になります。
ソースブロックの値を出力先ブロックのソースプロパティに設定します。
(例 1)
| オペレーション | 出力先ブロック | ソースブロック |
| [Set] | オブジェクトブロックにオブジェクトのソースプロパティ Rectangle1.Thickness を設定します。 | [Int] を選択し、定数ブロックに 10 を設定します。 |
ブロックテキストchangeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, $GraphicObject.Rectangle1.Thickness, 10); |
||
→トリガーが発生すると、Rectangle1 の枠幅が 10 に変わります。
(例 2)
| オペレーション | 出力先ブロック | ソースブロック |
| [Set] | オブジェクトブロックにオブジェクトのソースプロパティ Lamp1.Interlock を設定します。 | [Int] を選択し、定数ブロックに 0 を設定します。 |
ブロックテキストchangeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, $GraphicObject.Lamp1.Interlock, 0); |
||
→トリガーが発生すると Lamp1 のインターロック状態が OFF に設定されます。
ソースブロックの値を出力先ブロックのソースプロパティに設定します。
(例)
| オペレーション |
出力先ブロック |
ソースブロック |
| [Set] | 変数ブロックに変数のソースプロパティ INT1.Value を設定します。 | [Int] を選択し、定数ブロックに 1 を設定します。 |
ブロックテキストchangeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, INT1.Value, 1); |
||
→トリガーが発生すると INT1.Value に 1 が設定されます。
ソースブロックの値を出力先ブロックのソースプロパティに設定します。
(例 1)
表示器の日付を任意の日付に設定します。
| 操作 | 出力先ブロック | ソースブロック |
| [Set] | 表示器ブロックに表示器のソースプロパティ Target01.DateAndTime.Date を設定します。 | [Date] を選択し、定数ブロックに 2017/10/17 を設定します。 |
ブロック![]() テキストchangeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, $Target.Target01.DateAndTime.Date, date(2017, 10, 17)); |
||
→トリガーが発生すると、表示器の日付が 10/17/2017 に設定されます。
(例 2)
表示器の日付と時刻を接続機器と同じ日付と時刻に設定します。
(例 2-1)
接続機器の日付と時刻 (年、月、日、時、分、秒) をそれぞれ整数変数 INT1 から INT6 に格納してください。
| オペレーション | 出力先ブロック | ソースブロック |
| [Set] |
表示器ブロックに表示器のソースプロパティを設定します。 Target01.DateAndTime.Year Target01.DateAndTime.Month Target01.DateAndTime.Day Target01.DateAndTime.Hour Target01.DateAndTime.Minute Target01.DateAndTime.Second |
変数 INT1 から INT6 を変数ブロックに設定します。 |
ブロック![]() テキストonScheduledDay(23, 0, () => { changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, $Target.Target01.DateAndTime.Year, INT1.Value); changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, $Target.Target01.DateAndTime.Month, INT2.Value); changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, $Target.Target01.DateAndTime.Day, INT3.Value); changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, $Target.Target01.DateAndTime.Hour, INT4.Value); changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, $Target.Target01.DateAndTime.Minute, INT5.Value); changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, $Target.Target01.DateAndTime.Second, INT6.Value); }); |
||
→毎日 23 時 00 分に表示器の日付と時刻が接続機器の日付と時刻に合わせられます。
(例 2-2)
接続機器の日付と時刻を、1970/01/01 00:00:00 UTC を 0 とした秒単位の 32 ビット整数で DATE_AND_TIME 変数 Var1 に格納してください。変数 Var1 の値と日付/時刻の対応は、以下を参照してください。
TIME、DATE、TIME_OF_DAY、DATE_AND_TIME
| オペレーション | 出力先ブロック | ソースブロック |
| [Set] | 表示器ブロックに表示器のソースプロパティ Target01.DateAndTime.DateTime を設定します。 | 変数 Var1 を変数ブロックに設定します。 |
ブロック![]() テキストonScheduledDay(23, 0, () => { changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, $Target.Target01.DateAndTime.DateTime, Var1.Value); }); |
||
→毎日 23 時 00 分に表示器の日付と時刻が接続機器の日付と時刻に合わせられます。
(例: 3)
バックライトを消灯します。
| オペレーション | 出力先ブロック | ソースブロック |
| [Set] | 表示器ブロックに表示器のソースプロパティ Target01.Preferences.BacklightOff を設定します。 | 値が 1 の変数 BOOL1 を変数ブロックに設定します。 |
ブロック![]() テキストchangeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, $Target.Target01.Preferences.BacklightOff, BOOL1.Value); |
||
→ トリガーが発生すると、表示器のバックライトが消灯します。