FNS_InitConfigDataTable

FP-FNSブロックのデータの設定

FNS_InitConfigDataTableファンクションは、変数ProcessDataTableからConfigDataTableを作成します。これはシングルエレメントのデータ型またはマルチエレメントのデータ型を使用できます。このConfigDataTableは、ファンクションブロックFNS_ProfibusDPFNS_DeviceNetFNS_CANopenFNS_ProfinetIOを使用してFP-FNSブロックを設定するために必要です。

パラメータ

入力

ProcessDataTable (INT, WORD, DINT, DWORD, REAL, TIME)およびこれらの型の配列

プロセスデータ変数の入力および出力

出力

ConfigDataTable (ARRAY of WORD)

FP-FNSブロックのコンフィグレーションデータ。変数ConfigDataTableの配列サイズは、ProcessDataTable変数の要素数と一致する必要があります。

解説

  • 変数ConfigDataTableのサイズがProcessDataTableの構造に一致することを確認します。例えば、ProcessDataTableが3つの要素で構成されている場合、ConfigDataTable変数は「Array[0..2] of WORD」になり、サイズが要素数と一致する必要があります。ProcessDataTable変数の要素が1つだけ(WORDなど)の場合、ConfigDataTable変数は「Array[0..0] of WORD」(サイズ1)である必要があります。

  • FNS_InitConfigDataTableの入力に使用できるデータ型は、すべて16ビット(INTWORD)、32ビット(DINTDWORDTIME (32ビット)、REAL)、および64ビットの変数またはその配列です。64ビット変数は2次元配列として定義されます。例えば、「Array[0..0,0..3] of INT」は64ビット変数ですが、「Array[0..3] of INT」は16ビット変数の4つの要素を持つ配列を表します。

  • データ型BOOLSTRINGとこれらの型の配列は、ファンクションFNS_InitConfigDataTableの入力では使用できません。

  • ファンクションの出力ConfigDataTableは、WORDの配列でなければなりません。

ProcessDataTable

次の構文表は、FNS_InitConfigDataTableファンクションのProcessDataTable入力として使用するときの16ビット、32ビット、64ビット変数とその配列を宣言する方法を示します。

入力データ型

入力のサイズ

コメント

INT, WORD

16ビット

DINT, WORD, REAL, TIME

32ビット

Array[0..0,0..3] of INT

Array[0..0,0..3] of WORD

64ビット

2次元配列、

2番目の寸法のサイズ= 4

Array[a ..b] of INT/Array[a ..b] of WORD

16ビットの配列

サイズ= b-a+1

1次元配列

Array[a ..b] of DINT/Array[a ..b] of DWORD/

Array[a ..b] of REAL/Array[a ..b] of TIME

32ビットの配列

サイズ= b-a+1

1次元配列

Array[0..x,0..3] of INT

Array[0..x,0..3] of WORD

64ビットの配列

サイズ= x+1

2次元配列、

2番目の寸法のサイズ= 4

グローバル変数リスト

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

DUT

この例では、変数ProcessDataは、以下のような構造を持つタイプProcessDataStructureのDUTです。

DUTが3つの要素から構成されているとき、出力変数ConfigDataは、3つの要素をもつWORD型の配列でなければなりません(例:Array [0..2] of WORD)。

POUヘッダ

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

	VAR
		ConfigData: ARRAY [0..2] OF WORD:=[3(0)];
	END_VAR
	VAR_EXTERNAL
		ProcessData: ProcessDataStructure;
	END_VAR

変数ConfigDataTableのサイズと入力変数ProcessDataの要素数が一致する必要があります。

POUボディ

このファンクションは、sys_bIsFirstScanTRUEのとき、すなわち最初のサイクルで実行されます。変数ConfigDataの値は、入力変数ProcessDataの構造、要素数との要素の数とタイプに一致します。

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_VARIN,,ProcessData,11,2,13,4,);
B(B_VAROUT,,ConfigData,29,2,31,4,);
B(B_F,E_FNS_InitConfigDataTable!,,13,0,29,4,,?DEN?dProcessDataTable?AENO?cConfigDataTable);
B(B_CONTACT,,sys_bIsFirstScan,5,1,7,3,);
L(1,2,5,2);
L(7,2,13,2);
L(1,0,1,5);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

STボディ

If sys_bIsFirstScan then
    ConfigData:=FNS_InitConfigDataTable(ProcessData);
    end_if;

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