Skip to main content

OPC-UA 适配器

介绍​

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

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

注册信息​

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

支持模型​

类型设备组版本是否可用
OPCUADevicedevices.edge.cattle.iov1alpha1*

支持平台​

操作系统架构
linuxamd64
linuxarm
linuxarm64

使用方式​

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

权限​

对 Octopus 授予权限,如下所示:

  Resources                                   Non-Resource URLs  Resource Names  Verbs
--------- ----------------- -------------- -----
opcuadevices.devices.edge.cattle.io [] [] [create delete get list patch update watch]
opcuadevices.devices.edge.cattle.io/status [] [] [get patch update]

Example​

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

    apiVersion: edge.cattle.io/v1alpha1
    kind: DeviceLink
    metadata:
    name: opcua
    spec:
    adaptor:
    node: edge-worker
    name: adaptors.edge.cattle.io/opcua
    model:
    apiVersion: "devices.edge.cattle.io/v1alpha1"
    kind: "OPCUADevice"
    template:
    metadata:
    labels:
    device: opcua
    spec:
    parameters:
    syncInterval: 5s
    timeout: 10s
    protocol:
    # replace the address if needed
    endpoint: opc.tcp://10.43.29.71:4840/
    properties:
    - name: datetime
    description: the current datetime
    readOnly: true
    visitor:
    nodeID: ns=0;i=2258
    type: datetime
    - name: integer
    description: mock number. Default value is 42
    readOnly: false
    visitor:
    nodeID: ns=1;s=the.answer
    type: int32
    value: "1"
    - name: string
    description: mock byte string. Default value is "test123"
    readOnly: false
    visitor:
    nodeID: ns=1;s=myByteString
    type: byteString
    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指定默认的设备同步时间间隔,默认为15sstring否
timeout指定默认的设备的连接超时时间,默认为10sstring否

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指定属性的是否只读,默认值为falseboolean否
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属性数据类型为 int64string
int32属性数据类型为 int32string
int16属性数据类型为 int16string
uint64属性数据类型为 uint64string
uint32属性数据类型为 uint32string
uint16属性数据类型为 uint16string
float属性数据类型为 floatstring
double属性数据类型为 doublestring
string属性数据类型为 stringstring
byteString属性数据类型为 bytestring,将转换为 string 显示string
datetime属性数据类型为 datetimestring

OPCUADeviceExtension​

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