数据类型的映射
下表显示了各个 OPC UA 数据类型的兼容 SIMATIC 数据类型。
根据下图所示,*数据类型(SIMATIC 数据类型 - OPC UA 数据类型)。系统不支持其它分配方式。STEP 7 不会检查是否遵循该规则,因此也不会预防分配错误。用户需确保所做的选择和数据类型分配符合规则。
例如,所列出的数据类型,也可用作自定义服务器方法中输入和输出参数结构 / UDT 的元素(UAMethod_InParameters 和 UAMethod_OutParameters)。
列表: 数据类型的映射
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 和所有派生的数据类型 |
所需的 UNION 用户自定义数据类型
下图显示了数据类型为“Union_MyDatatype”的变量“MyVariable”。
此 SIMATIC 数据类型对应于数据类型为 UNION 的 OPC UA 变量。
下图显示了声明示例:当 Selector = 1 时,Union 取 ByteArray;当 Selector = 2 时,Union 取 WString。
使用其它 OPC UA 基本数据类型
除了“映射数据类型”部分列出的 OPC UA 数据类型以及 SIMATIC 端对应的数据类型之外,还可使用以下 OPC UA 基本数据类型:
OpcUa_NodeId
OpcUa_QualifiedName
OpcUa_Guid
OpcUa_LocalizedText
OpcUa_ByteString
OpcUa_XmlElement
在应用程序中使用上文中所示基本数据类型的变量时,应满足以下要求:基本数据类型需用作复杂数据类型,且结构与相应的 OPC UA 基本数据类型完全相同。
OpcUa_NodeId 和 OpcUa_QualifiedName 可用作系统数据类型;因此,这些数据类型不仅可用于单个变量,也可用作结构中的元素。
对于其余基本类型,需基于 OPC UA 规范创建一个 PLC 数据类型,之后再将其用作某个结构中的元素,以便使用 Typedictionary 对这些元素的数据类型进行解析。在下文中,介绍了每个基本数据类型所对应的 PLC 数据类型。例如,在“EUInformation”示例中,使用了数据结构 UDT“LocalizedText”。“EUInformation”中包含有关 EngineeringUnits 的信息。有关 EUInformation 数据结构的实现示例,请参见 PLC 数据类型说明的结尾处。
系统数据类型“OPC_UA_NodeId”
在下表中,列出了 OPC UA 基本数据类型“OpcUa_NodeId”各个参数的含义。OPC_UA_NodeId 用于识标 OPC UA 服务器中的节点。
参数 | S7 数据类型 | 含义 |
---|---|---|
NamespaceIndex | UINT | OPC UA 服务器中,节点的命名空间索引。 例如,节点可以是一个变量。 |
Identifier | WSTRING[254] | 节点(对象或变量)的名称取决于标识符类型: 数字标识符:节点使用一个数字进行标记,如“12345678”。 字符串标识符:节点使用一个名称进行标记,如“MyTag”。不区分大小写。 |
IdentifierType | UDINT | 标识符的类型 0:数字标识符 1: 字符串标识符 2: GUID 3:Opaque |
系统数据类型“OPC_UA_QualifiedName”
请参见下表中系统数据类型“OPC_UA_QualifiedName”的结构:
名称 | S7 数据类型 | 含义 |
---|---|---|
NamespaceIndex | UINT | 名称的命名空间索引。 |
Name | WSTRING[64] | 节点或变量的名称。 |
UDT“Guid”
对于基本数据类型“Guid”,创建以下 PLC 数据类型。示例中使用的默认值也可设置为不同值。
UDT“LocalizedText”
为基本数据类型“LocalizedText”创建以下 PLC 数据类型:
EncodingByte 用于指示可用的字段(Locale 或 Text):
编码字节 | 含义 |
---|---|
0 | 字段 Locale 和 Text 为空 |
1 | 字段 Locale 中有内容,字段 Text 为空 |
2 | 字段 Locale 为空,字段 Text 中有内容 |
3 | 字段 Locale 和 Text 中均有内容 |
UDT“ByteString”
为基本数据类型“ByteString”创建以下 PLC 数据类型;例如,创建一个包含有 12 个元素的 ByteString 数组:
UDT“XmlElement”
XmlElement 是一种序列化的 XML 段(UTF 8 字符串)。
为基本数据类型“XmlElement”创建以下 PLC 数据类型:
示例:UDT为“LocalizedText”的 EUInformation 的结构
shtxjd.cn.b2b168.com/m/