左シフトレジスタ
指定されたデータエリア(d_WR)の1ビットを、左(上位ビット方向)へシフトします。LSR命令をプログラムするときは、データ入力(DataInput)、シフトトリガ(ShiftLeftTrigger)、リセットトリガ(Reset)を必ずプログラムしてください。
この命令で使用できるエリアは、ワード内部リレー(WR)だけです。
ワード内部リレー(WR)の範囲は、プロジェクトの空きエリアによります。メニューバーから、 を選択し、ご確認ください。
入力
シフト後の状態を指定します。
シフトインデータ 1: 入力がONのとき
シフトインデータ 0: 入力がOFFのとき
トリガの立ち上がり検出時、1ビット左へシフトします。
実行条件がONのとき、データエリアのすべてのビットが"0"になります。
出力
データシフトを行う指定データエリア
POUヘッダには、このプログラムで使用するすべての入力変数と出力変数を宣言します。 POUヘッダは全プログラム言語で使用できます。
VAR
Output: INT:=0;
DataInput: BOOL:=FALSE;
ShiftTrigger: BOOL:=FALSE;
ResetTrigger: BOOL:=FALSE;
END_VAR
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,LSR!,Instance,10,0,20,5,,?DDataInput?DShiftLeftTrigger?DReset?Cd_WR);
B(B_VARIN,,DataInput,8,1,10,3,);
B(B_VARIN,,ShiftTrigger,8,2,10,4,);
B(B_VARIN,,ResetTrigger,8,3,10,5,);
B(B_VAROUT,,Output,20,1,22,3,);
L(1,0,1,5);
END_NETWORK_BODY
END_NET_WORK
END_BODY
Output:=LSR(DataInput, ShiftTrigger, ResetTrigger);