使用服务器方法的边界条件

时间:2021-07-29点击次数:114

使用服务器方法的边界条件

支持的数据类型

提供服务器方法时,请遵循以下规则:

根据下图所示,*数据类型(SIMATIC 数据类型 - OPC UA 数据类型)。系统不支持其它分配方式。

STEP 7 不会检查是否遵循该规则,因此也不会预防分配错误。用户需确保所做的选择和数据类型分配符合规则。

例如,所列出的数据类型,也可用作自定义服务器方法(UAMethod_InParameters 和 UAMethod_OutParameters)中输入和输出参数结构/数组/UDT 的元素。

SIMATIC 数据类型

OPC UA 数据类型性

BOOL

Boolean

SINT

SByte

INT

Int16

DINT

Int32

LINT

Int64

USINT

Byte

UINT

UInt16

UDINT

UInt32

ULINT

UInt64

REAL

Float

LREAL

Double

LDT

DateTime

WSTRING

String

DINT

Enumeration (Encoding Int32) 和所有派生的数据类型

所需的用户自定义数据类型(UDT,user-defined data type)

用户创建的自定义数据类型必须以“Union_”为前缀,如“Union_MyDatatype”。

在 UDT 中,**个元素 (Selector) 的数据类型必须为“UDINT”。

UNION 和所有派生的数据类型

支持的服务器方法数和参数数量

在用户程序中执行服务器方法时,可使用的方法数量取决于 CPU 类型,具体见下表(有关 CPU 的较新技术数据,敬请访问 Internet)。

技术规范值

CPU 1510SP (F)

CPU 1511 (C/F/T/TF)

CPU 1512C

CPU 1512SP (F)

CPU 1513 (F)

CPU 1505 (S/SP/SP F/SP T/SP TF)

CPU 1515 (F/T/TF)

CPU 1515 SP PC (F/T/TF)

CPU 1516 (F/T/TF)

CPU 1507S (F)

CPU 1517 (F/T/TF)

CPU 1518 (F)

可使用的服务器方法较大数量或服务器方法实例的较大数量(OPC_UA_ServerMethodPre,OPC_UA_ServerMethodPost 指令)

20

50

100

各方法中参数的较大数量

(可组态的**过*数量的参数并加载到 CPU 中,但 OPC UA 客户端无法调用该方法)。

20

20

20

**出时的错误消息

如果**出服务器方法的较大数量,则指令 OPC_UA_ServerMethodPre 或 OPC_UA_ServerMethodPost 将报告错误代码 0xB080_B000 (TooManyMethods)。

使用带有嵌套数组的结构化数据类型

如果结构化数据类型 (Struct/UDT) 中包含一个数组,则 OPC UA 服务器无法提供该数组的长度信息。

如果将该结构用作服务器方法的输入或输出参数,则需确保调用该方式时使用的嵌套数组长度正确。

如果长度错误,则该方法调用失败且错误代码为“BadInvalidArgument”。  


http://shtxjd.cn.b2b168.com

产品推荐