パルス出力: 経過値の書き込みと読み出し

経過値は、ダブルワードのデータとして、特殊データレジスタに格納されます。システム変数sys_diPulseChannelxElapsedValueを使用して特殊データレジスタを読み出し、書き込むことができます。(x=チャンネル番号を示します。)

メモリエリアとして使用するシステム変数

パルス出力: 経過値チャンネル

システム変数

PLC機種

FPS

FP-X, Tr.出力タイプ

FP0

FP-X, Ry出力タイプ

FP0R

0

sys_diPulseChannel0ElapsedValue

1

sys_diPulseChannel1ElapsedValue

 

2

sys_diPulseChannel2ElapsedValue

 

3

sys_diPulseChannel3ElapsedValue

 

 

利用可能なチャンネル:

例: 高速カウンタの経過値を書き込む方法

POUヘッダ

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

	VAR 
		bChangeElapsedValue: BOOL:=FALSE;
			(*Changes the elapsed value*)
	END_VAR

POUボディ

高速カウンタチャンネル0の経過値エリアに、初期値3000を書き込みます。

LDボディ

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 4 ;
        NETWORK_BODY
B(B_CONTACT,,bChangeElapsedValue,5,1,7,3,R);
B(B_VARIN,,3000,9,2,11,4,);
B(B_F,E_MOVE!,Instance,11,0,17,4,,?DEN?D?AENO?C);
B(B_VAROUT,,sys_diHscChannel0ElapsedValue,17,2,19,4,);
L(1,2,5,2);
L(1,0,1,4);
L(7,2,11,2);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

例: パルス出力チャンネル0からの経過値の読み出し

POUヘッダ

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

	VAR 
		bReadElapsedValue: BOOL:=FALSE;
			(*Reads the elapsed value*)
		diElapsedValue: DINT:=0;
			(*Outputs elapsed value*)
	END_VAR

POUボディ

高速カウンタチャンネル0の経過値を読み出し、変数diElapsedValueへ書き込みます。

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_CONTACT,,bReadElapsedValue,7,1,9,3,R);
B(B_F,E_MOVE!,,18,0,24,4,,?DEN?D?AENO?C);
B(B_VAROUT,,diElapsedValue,24,2,26,4,);
B(B_VARIN,,sys_diPulseChannel0ElapsedValue,16,2,18,4,);
L(9,2,18,2);
L(1,2,7,2);
L(1,0,1,5);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

STボディ

if DF(bReadElapsedValue) then
    diElapsedValue:=sys_diHscChannel0ElapsedValue;
end_if;

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