LSR

左シフトレジスタ

指定されたデータエリア(d_WR)の1ビットを、左(上位ビット方向)へシフトします。LSR命令をプログラムするときは、データ入力(DataInput)、シフトトリガ(ShiftLeftTrigger)、リセットトリガ(Reset)を必ずプログラムしてください。

注記
  • この命令で使用できるエリアは、ワード内部リレー(WR)だけです。

  • ワード内部リレー(WR)の範囲は、プロジェクトの空きエリアによります。メニューバーから、「拡張機能」 > 「オプション」 > 「コンパイルオプション」 > 「アドレス範囲」を選択し、ご確認ください。

パラメータ

入力

DataInput (BOOL)

シフト後の状態を指定します。

  • シフトインデータ 1: 入力がONのとき

  • シフトインデータ 0: 入力がOFFのとき

ShiftLeftTrigger (BOOL)

トリガの立ち上がり検出時、1ビット左へシフトします。

Reset (BOOL)

実行条件がONのとき、データエリアのすべてのビットが"0"になります。

出力

d_WR (WORD, INT, UINT)

データシフトを行う指定データエリア

POUヘッダ

POUヘッダには、このプログラムで使用するすべての入力変数と出力変数を宣言します。 POUヘッダは全プログラム言語で使用できます。

	VAR
		Output: INT:=0;
		DataInput: BOOL:=FALSE;
		ShiftTrigger: BOOL:=FALSE;
		ResetTrigger: BOOL:=FALSE;
	END_VAR

LDボディ

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

STボディ

Output:=LSR(DataInput, ShiftTrigger, ResetTrigger);

最終修正日: 2019-05-27このページに関するフィードバックお問い合わせ窓口