概要
指定された1ブロックを削除し、以降のデータをブロック単位で上に移動します。削除するブロックの指定はオフセットで指定します。エラーが発生した場合、LS9151にエラーステータスを書き出します。
書式
_memshift (開始アドレス, 終了アドレス,削除するブロックのオフセット, 1ブロックのワード数)
パラメータ1 : 内部デバイス
パラメータ2 : 内部デバイス
パラメータ3 : 数値(1~65535)、内部デバイス、テンポラリ変数
パラメータ4 : 数値(1~640)
開始アドレスと終了アドレスに指定するデバイスは、必ず種類(LSもしくはUSR)を統一させてください。
必ず「パラメータ1」<「パラメータ2」で設定してください。エラーの原因になります。
記述例1
_memshift ([w:[#INTERNAL]LS1000], [w:[#INTERNAL]LS1030], 1, 10)
ブロック(10 ワード)単位でデータが上に移動し、最終ブロック(10ワード)が0クリアされます。
記述例2
_memshift ([w:[#INTERNAL]LS1000], [w:[#INTERNAL]LS1030], 2, 10)
ブロックのオフセット2の位置から、ブロック(10ワード)単位でデータが上に移動し、最終ブロック(10ワード)が0クリアされます。
エラーステータス
エディタ関数名 |
LSエリア |
エラーステータス |
要因 |
_memshift () |
LS9151 |
0000h |
正常終了 |
0001h |
パラメータエラー |
||
0003h |
書き込み、読み込みエラー |
処理時間は、開始アドレスと終了アドレスで指定される範囲に比例します、広範囲を指定するほど処理時間がかかります。処理が完了するまで部品処理は更新されません。
削除するブロックのオフセットに、開始アドレスと終了アドレスに指定された範囲を超える値が指定されると、動作しません。
開始アドレス、終了アドレスで指定できる内部デバイスの有効範囲はユーザエリア(LS20~LS2031、LS2096~LS8191)のみです。