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
Last updated on by yzeng25