概要
デバイスを一括初期化します。書き込み先アドレスからワード数分に書き込みデータをセットします。ワード数の範囲は、1~640までです。
書式
memset (書き込み先アドレス,書き込みデータ, ワード数)
記述例
memset ([w:[PLC1]D0100], 0, 10)
上記の例は、D0100~D0109のすべてのアドレスに0がセットされます。
アドレス数が多くなるにしたがって、それだけPLCへの書き込み時間が長くかかります。アドレス数によっては、数十秒、数分以上かかる場合があります。
書き込みにおいて、デバイスの範囲外になった場合は通信エラーとなり、電源のON/OFFをしないと復旧することはできませんのでご注意ください。
この関数ではアドレスを指定しますが、Dスクリプトのアドレス数のカウントには加算されません。
メモリ初期化(memset)関数で内部デバイスに書き込むときは、ユーザーエリアのみ書き込めます。システムエリア(LS0000~LS0019)、特殊エリア(LS2032~LS2047)、予約エリア(LS2048~LS2095)は書き込むことができません。
代入にデバイスアドレスを使用する場合、PLCとの通信がありますので、すぐには書き込まれた値が代入されません。
(例)
memset ([w:[PLC1]D0100], 0, 10) //D100~D109を0に初期化
[w:[PLC1]D200]=[w:[PLC1]D100] //D100の内容をD200に代入
この場合は、演算結果としてD100に書き込んだ0の値が、D200にはまだ代入されていません。