提供服务器方法时,请遵循以下规则:
根据下图所示,*数据类型(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”。
产品推荐
友情链接