title: OPC-UA 适配器 description: OPC-UA是由 OPC Foundation 开发的用于工业自动化的机器对机器通信协议。OPC-UA 适配器集成了gopcua并专注于与工业 OPC-UA 设备和系统进行通信,以便在边缘侧进行数据收集和数据处理。 keywords:

  • Octopus中文文档
  • Octopus 中文文档
  • 边缘计算
  • IOT
  • edge computing
  • Octopus中文
  • Octopus 中文
  • Octopus
  • Octopus教程
  • Octopus中国
  • rancher
  • Octopus 中文教程
  • 适配器
  • OPC-UA 适配器

介绍

OPC Unified Architecture(OPC-UA)是由 OPC Foundation 开发的用于工业自动化的机器对机器通信协议。

OPC-UA 适配器集成了gopcua,并专注于与工业 OPC-UA 设备和系统进行通信,以便在边缘侧进行数据收集和数据处理。

注册信息

版本 注册名称 端点 Socket 是否可用
v1alpha1 adaptors.edge.cattle.io/opcua opcua.sock *

支持模型

类型 设备组 版本 是否可用
OPCUADevice devices.edge.cattle.io v1alpha1 *

支持平台

操作系统 架构
linux amd64
linux arm
linux arm64

使用方式

```shell script kubectl apply -f https://raw.githubusercontent.com/cnrancher/octopus/master/adaptors/opcua/deploy/e2e/all_in_one.yaml

  1. ## 权限
  2. Octopus 授予权限,如下所示:
  3. ```text
  4. Resources Non-Resource URLs Resource Names Verbs
  5. --------- ----------------- -------------- -----
  6. opcuadevices.devices.edge.cattle.io [] [] [create delete get list patch update watch]
  7. opcuadevices.devices.edge.cattle.io/status [] [] [get patch update]

Example

  • 指定一个 “OPCUADevice”设备链接来连接 OPC-UA 服务器。

    1. apiVersion: edge.cattle.io/v1alpha1
    2. kind: DeviceLink
    3. metadata:
    4. name: opcua
    5. spec:
    6. adaptor:
    7. node: edge-worker
    8. name: adaptors.edge.cattle.io/opcua
    9. model:
    10. apiVersion: "devices.edge.cattle.io/v1alpha1"
    11. kind: "OPCUADevice"
    12. template:
    13. metadata:
    14. labels:
    15. device: opcua
    16. spec:
    17. parameters:
    18. syncInterval: 5s
    19. timeout: 10s
    20. protocol:
    21. # replace the address if needed
    22. endpoint: opc.tcp://10.43.29.71:4840/
    23. properties:
    24. - name: datetime
    25. description: the current datetime
    26. readOnly: true
    27. visitor:
    28. nodeID: ns=0;i=2258
    29. type: datetime
    30. - name: integer
    31. description: mock number. Default value is 42
    32. readOnly: false
    33. visitor:
    34. nodeID: ns=1;s=the.answer
    35. type: int32
    36. value: "1"
    37. - name: string
    38. description: mock byte string. Default value is "test123"
    39. readOnly: false
    40. visitor:
    41. nodeID: ns=1;s=myByteString
    42. type: byteString
    43. value: "newString"

更多的 “OPCUADevice “设备链接示例,请参考deploy/e2e目录,并使用deploy/e2e/simulator.yaml进行快速体验。

OPCUADevice

参数 描述 类型 是否必填
metadata 元数据 metav1.ObjectMeta
spec 定义OPCUADevice的预期状态 OPCUADeviceSpec
status 定义OPCUADevice的实际状态 OPCUADeviceStatus

OPCUADeviceSpec

参数 描述 类型 是否必填
extension 指定设备的插件 *OPCUADeviceExtension
parameters 指定设备的参数 *OPCUADeviceParamters
protocol 指定访问设备时使用的协议 *OPCUADeviceProtocol
properties 指定设备的属性 *OPCUADeviceProperty

OPCUADeviceStatus

参数 描述 类型 是否必填
properties 上报设备的属性 *OPCUADeviceStatusProperty

OPCUADeviceParamters

参数 描述 类型 是否必填
syncInterval 指定默认的设备同步时间间隔,默认为15s string
timeout 指定默认的设备的连接超时时间,默认为10s string

OPCUADeviceProtocol

参数 描述 类型 是否必填
endpoint 指定 OPC-UA 服务器端点的 URL,以 “opc.tcp://“开头。 string
securityPolicy 指定访问 OPC-UA 服务器的安全策略,默认为 “None”。 *OPCUADeviceProtocolSecurityPolicy
securityMode 指定访问 OPC-UA 服务器的安全模式,默认为 “None”。 *OPCUADeviceProtocolSecurityMode
basicAuth 指定客户端连接 OPC-UA 服务器的用户名和密码。 *OPCUADeviceProtocolBasicAuth
tlsConfig 指定客户端连接 OPC-UA 服务器的 TLS 配置。 *OPCUADeviceProtocolTLS

OPCUADeviceProtocolSecurityPolicy

参数 描述 类型
None 无安全策略 string
Basic128Rsa15 使用 Basic128Rsa15 安全策略 string
Basic256 使用 Basic256 安全策略 string
Basic256Sha256 使用 asic256Sha256 安全策略 string
Aes128Sha256RsaOaep 使用 Aes128Sha256RsaOaep 安全策略 string
Aes256Sha256RsaPss 使用 Aes256Sha256RsaPss 安全策略 string

OPCUADeviceProtocolSecurityMode

参数 描述 类型
None 不加密 string
Sign 仅签名 string
SignAndEncrypt 签名且加密 string

OPCUADeviceProtocolBasicAuth

参数 描述 类型 是否必填
username 指定访问 OPC-UA 服务器的用户名 string
usernameRef 指定 DeviceLink 的引用关系,将该值作为用户名引用 *edgev1alpha1.DeviceLinkReferenceRelationship
password 指定访问 OPC-UA 服务器的用户密码 string
passwordRef 指定 DeviceLink 的引用关系,将该值作为用户密码引用 *edgev1alpha1.DeviceLinkReferenceRelationship

OPCUADeviceProtocolTLS

参数 描述 类型 是否必填
certFilePEM 指定证书(公钥)的 PEM 格式内容,用于客户端对 OPC-UA 服务器的认证 string
certFilePEMRef 指定 DeviceLink 的引用关系,将该值作为客户端证书文件 PEM 内容引用。 *edgev1alpha1.DeviceLinkReferenceRelationship
keyFilePEM 指定密钥(私钥)的 PEM 格式内容,用于客户端对 OPC-UA 服务器的认证。 string
keyFilePEMRef 指定 DeviceLink 的引用关系,将该值作为客户端密钥文件 PEM 内容引用。 *edgev1alpha1.DeviceLinkReferenceRelationship

OPCUADeviceProperty

参数 描述 类型 是否必填
name 指定属性名称 string
description 指定属性的描述 string
type 指定属性的类型 *OPCUADevicePropertyType
visitor 指定属性的 visitor *OPCUADevicePropertyVisitor
readOnly 指定属性的是否只读,默认值为false boolean
value 指定属性的值,只在可写属性中可用 string

OPCUADeviceStatusProperty

参数 描述 类型 是否必填
name 属性名称 string
type 属性类型 *OPCUADevicePropertyType
value 属性值 string
updatedAt 修改属性时留下的时间戳 *metav1.Time

OPCUADevicePropertyVisitor

参数 描述 类型 是否必填
nodeID 指定 OPC-UA 节点的 id,例如 “ns=1,i=1005” string
browseName 指定 OPC-UA 节点名称 string

OPCUADevicePropertyType

参数 描述 类型
boolean 属性数据类型为布尔值 string
int64 属性数据类型为 int64 string
int32 属性数据类型为 int32 string
int16 属性数据类型为 int16 string
uint64 属性数据类型为 uint64 string
uint32 属性数据类型为 uint32 string
uint16 属性数据类型为 uint16 string
float 属性数据类型为 float string
double 属性数据类型为 double string
string 属性数据类型为 string string
byteString 属性数据类型为 bytestring,将转换为 string 显示 string
datetime 属性数据类型为 datetime string

OPCUADeviceExtension

参数 描述 类型 是否必填
mqtt 指定 MQTT 的设置 *v1alpha1.MQTTOptionsSpec