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
说明

国内用户,可以使用以下方法加速安装:

kubectl apply -f http://rancher-mirror.cnrancher.com/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