Adr_Of_VarOffs

入出力アドレスの取得(オフセット付き)

ファンクションの入出力変数のオフセット付きアドレスを取得します。

パラメータ

入力

Adr (ANY)

このピンは、基本ファンクションの入出力に接続してください。有効なデータ型はINT型、WORD型です。

入出力変数が割り付けられたメモリエリアの先頭アドレス(16ビットオフセット付き)が取得されます。

Offs (INT)

16ビットオフセットアドレスを取得する入出力変数を指定します。

出力

Var (ANY_IN_UNITS_OF_WORDS)

最終アドレス(16ビット)を取得する入出力変数を指定します。

解説

  • 入出力変数Varの内容が格納されているアドレス(16ビット)に、Offsの値を加算し、Adrに格納します。この入出力は、ファンクションの入出力(16ビット)に直接接続してください。このファンクションをSTRING型のデータに対して使用する場合は、ヘッダ部を除く文字列データに対してのみ使用することができます。

  • このファンクションは、LDエディタとFBDエディタでのみ使用することができます。「命令」ペインで「入力命令」または「出力命令」を使って、必要な命令をプログラミングウィンドウに挿入してください。

グローバル変数リスト

グローバル変数リストでは、プロジェクト内のすべてのPOUからアクセスできる変数を宣言します。

POUヘッダ

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

	VAR_EXTERNAL
		ReceiveBuffer: ARRAY [0..15] OF WORD:=[16(0)];
	END_VAR
	VAR 
		Receive: BOOL:=FALSE;
		ReceiveString: STRING[30]:='';
	END_VAR
	VAR CONSTANT 
		StringTotLenPos: INT:=0;
		StringActLenPos: INT:=1;
		StringHeaderSize: INT:=2;
	END_VAR
	VAR 
		@'': @'';
	END_VAR

LDボディ

ReceiveがONになり、受信完了文字が受信されると(R9038がONになると)、シリアルインターフェース経由で受信されたバッファReceiveBufferの文字が、文字列ReceiveStringにコピーされます。受信文字数は、ReceiveBuffer[0]に格納され、この後に受信文字列が続きます。従って、この位置からReceiveBufferを文字列の該当エリアに直接コピーすることができます。(STRING型参照)。バッファReceiveBufferの位置は、システムレジスタ 417と418の設定に従って、グローバル変数リストで指定しておく必要があります。(詳しくは、CPU用受信バッファの設定参照)。

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 10 ;
        NETWORK_BODY
B(B_COIL,,sys_bIsComPort1ReceptionDone,7,1,9,3,);
B(B_CONTACT,,Receive,16,1,18,3,);
B(B_F,F10_BKMV!,Instance,20,0,28,5,,?DEN?Ds1_Start?Ds2_End?AENO?Cd_Start);
B(B_VARIN,,ReceiveBuffer[0],18,2,20,4,);
B(B_VARIN,,ReceiveBuffer[15],18,3,20,5,);
B(B_F,Adr_Of_VarOffs_I!,Instance,20,6,29,10,,?D@'Var'?DOffs?CAdr);
B(B_VARIN,,StringActLenPos,18,8,20,10,);
B(B_VAROUT,,ReceiveString,29,7,31,9,);
L(1,2,7,2);
L(9,2,16,2);
L(18,2,20,2);
L(28,3,28,6);
L(20,6,28,6);
L(20,6,20,8);
L(1,0,1,10);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

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