FNS_InitConfigNameTable

配置FP-FNS块数据

FNS_InitConfigNameTable函数从变量ProcessDataTable(可以是单元素数据类型或多元素数据类型)创建ConfigNameTable

参数

输入

ProcessDataTable (INT, WORD, DINT, DWORD, REAL, TIME)和这些类型的数组

过程数据变量的输入和输出

输出

ConfigNameTableARRAY of WORD

配置FP-FNS块数据。变量ConfigNameTable的数组大小必须与ProcessDataTable变量的元素数量相对应。

标注

  • 确保变量ConfigNameTable的大小与ProcessDataTable的结构相对应,例如,如果ProcessDataTable包含三个条目,则ConfigNameTable变量应为“Array[0..2] of WORD”,其大小与条目数量匹配。如果ProcessDataTable变量仅有一个条目(例如,WORD),则ConfigNameTable变量应为“Array[0..0] of WORD”(大小为1)。

  • 允许使用的输入数据类型为所有16位(INTWORD)、32位(DINTDWORDTIME(32位)、REAL)和64位变量或其数组。64位变量定义为二维数组,例如,“Array[0..0,0..3] of INT”为64位变量,而“Array[0..3] of INT”表示具有16位变量四个元素的数组。

  • 在输入函数FNS_InitConfigDataTable时不允许使用数据类型BOOLSTRING和这些类型的数组。

  • 函数的输出ConfigNameTable必须为WORD的数组。

ProcessDataTable

以下语法表显示如何在将其用作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位

二维数组;

第二维度大小 = 4

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

16位数组

大小 = b-a+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

一维数组

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

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

64位数组

大小 = x+1

二维数组;

第二维度大小 = 4

示例

POU头

所有用于编程此函数的输入和输出变量已在POU头中声明。 所有编程语言使用相同的POU头。
	VAR
		adiDInt1: ARRAY[2..3] OF DINT:=[2(0)];
		arReal1: ARRAY[0..1, 1..9] OF REAL:=[18(0.0)];
		aui1: ARRAY[1..15] OF UINT:=[15(0)];
		dwWord1: DWORD:=0;
		iInt1: INT:=0;
		udiUDInt1: UDINT:=0;
	END_VAR

变量configNames1的大小必须符合输入变量myDUT60的项目数量。

由于DUT有三个项目,输出变量configNames1必须为大小为三的WORD的数组(例如:Array [0..2] of WORD)。

POU本体

sys_bIsFirstScanTRUE,即可在第一个循环中时,执行此函数。变量configNames1的值符合输入变量myDUT60的结构、其编号及元素类型。

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,,myDUT60,11,2,13,4,);
B(B_VAROUT,,configNames1,29,2,31,4,);
B(B_F,E_FNS_InitConfigNameTable!,Instance,13,0,29,4,,?DEN?dProcessNameTable?AENO?cConfigNameTable);
B(B_VARIN,,sys_bIsFirstScan,11,1,13,3,);
L(1,0,1,5);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST本体

If sys_bIsFirstScan then
    configNames1:=FNS_InitConfigNameTable(myDUT60);
end_if;

最后更新日期: 此页面上的反馈松下热线