Saltar al contenido principal

Módulo smartCORE "opcuaclient"

Descripción​

El módulo OpcUaClient lee los valores de nodos predefinidos y escribe los datos en el canal correspondiente. La conexión con un servidor OPC UA puede utilizarse sin cifrado o con las Security Policies admitidas por OpenSSL. Opcionalmente, para la conexión con el servidor OPC UA pueden indicarse un nombre de usuario y una contraseña. En cuanto el cliente se ha conectado correctamente a un servidor OPC UA, resuelve los browsepaths definidos en NodeIds o, si está activado el indicador booleano, cada nodo subordinado que sea una variable. Los valores de estos nodos se leen cíclicamente y se encolan en un búfer de canal Nodevalue. El búfer de canal se procesa cíclicamente y se escribe en el canal correspondiente.

Open62541​

Instalación​

El módulo cliente OPC UA se basa en open62541 1.3. En Ubuntu, Open62541 puede instalarse como biblioteca compartida de la siguiente manera:

git clone https://github.com/open62541/open62541.git
cd open62541
git checkout 1.3
mkdir build && cd build
cmake -DBUILD_SHARED_LIBS=ON -DUA_FORCE_WERROR=OFF -DUA_NAMESPACE_ZERO=FULL -DUA_ENABLE_ENCRYPTION=OPENSSL ..
make -j8
sudo make install

Configuración​

Configuración JSON​

En la sección siguiente se muestra la configuración JSON completa del cliente OPC UA. Los nombres de canal del módulo cliente OPC UA se componen de los nombres del browsepath cuando no se indica ningún nombre. Sin un tipo de datos indicado, el canal solo puede inicializarse cuando el cliente OPC UA se ha conectado correctamente y puede resolver el browsepath.

Configuración mínima​

{
"module" : "OpcUaClient",
"factory" : "opcuaclient",
"config" : {
"serverURL" : "opc.tcp://opcua.umati.app:4840",
"channels" : [
{
"browsepath" : [ { "namespaceIndex" : 4, "name" : "Machines" }, { "namespaceIndex" : 22, "name" : "BasicGMS" }, { "namespaceIndex" : 9, "name" : "ResultManagement" }, { "namespaceIndex" : 9, "name" : "CorrectionsFolder" }, { "namespaceIndex" : 22, "name" : "Corr3" }, { "namespaceIndex" : 9, "name" : "CorrectionValueAbsolute" }]
}
]
}
}

Ejemplo De la configuración indicada arriba resulta el siguiente nombre de canal cuando el cliente OPC UA se ha conectado correctamente y ha resuelto el browsepath:

  • Machines.BasicGMS.ResultManagement.CorrectionsFolder.Corr3.CorrectionValueAbsolute

Si el cliente OPC UA no puede resolver los browsepaths, no se generan actualizaciones de valores ni se crea ningún canal.

Configuración con todos los parámetros​

{
"module":"OpcUaClient",
"factory":"opcuaclient",
"config":{
"serverURL" : "opc.tcp://opcua.umati.app:4840",
"userName" : "User",
"password" : "1234",
"securityMode" : "Sign",
"securityPolicyUri" : "http://opcfoundation.org/UA/SecurityPolicy#Basic256Sha256",
"pkiFolderPath" : "/home/Optimeas/clientPki",
"clientCertificateFile" : "/home/Optimeas/clientPki/own/certs/client_cert.der",
"privateKeyFile" : "/home/Optimeas/clientPki/own/private/client_key.der",
"produceInterval" : 100,
"pollInterval" : 100,
"bufferSize" : 1024,
"channels" :[
{
"browsepath" : [ { "namespaceIndex" : 4, "name" : "Machines" }, { "namespaceIndex" : 22, "name" : "BasicGMS" }, { "namespaceIndex" : 9, "name" : "ResultManagement" }, { "namespaceIndex" : 9, "name" : "CorrectionsFolder" }, { "name" : "Corr2", "namespaceIndex" : 22}],
"includeChildNodes": true
},
{
"browsepath" : [ { "namespaceIndex" : 4, "name" : "Machines" }, { "namespaceIndex" : 22, "name" : "BasicGMS" }, { "namespaceIndex" : 9, "name" : "ResultManagement" }, { "namespaceIndex" : 9, "name" : "CorrectionsFolder" }, { "name" : "Corr3", "namespaceIndex" : 22}, {"name" : "CorrectionValueAbsolute", "namespaceIndex": 9} ],
"name" : "CorrectionValueAbsolute3",
"dataType" : "double",
"physicalUnit" : "μm"
}
]
}
}

Ejemplo De la configuración indicada arriba resultan los siguientes nombres de canal cuando el cliente OPC UA se ha conectado correctamente y ha resuelto los browsepaths:

  • "Machines.BasicGMS.ResultManagement.CorrectionsFolder.Corr2.CharacteristicIdentfier"
  • "Machines.BasicGMS.ResultManagement.CorrectionsFolder.Corr2.Identifier"
  • "Machines.BasicGMS.ResultManagement.CorrectionsFolder.Corr2.CorrectionValueAbsolute"
  • "Machines.BasicGMS.ResultManagement.CorrectionsFolder.Corr2.LowerControlLimit"
  • "Machines.BasicGMS.ResultManagement.CorrectionsFolder.Corr2.UpperControlLimit"
  • "CorrectionValueAbsolute3"

De la configuración indicada arriba resultan los siguientes nombres de canal cuando el cliente OPC UA no ha podido establecer la conexión:

  • "CorrectionValueAbsolute3"

Si el cliente OPC UA no puede resolver los browsepaths, no se generan actualizaciones de valores.

Lista de parámetros de configuración​

Nombre del parámetroObligatorioTipo de datosValor por defectoDescripción
serverURLSÍstringURL del servidor OPC UA
userNameNostringNombre de usuario para iniciar sesión en el servidor OPC UA; por defecto es anónimo
passwordNostringContraseña para iniciar sesión en el servidor OPC UA
securityModeNostringNoneModo de seguridad de la conexión: None, Sign, SignAndEncrypt
securityPolicyUriNostringURI de la Security Policy del endpoint seleccionado del servidor OPC UA
pkiFolderPathNostringRuta de archivo para cargar la lista de confianza, de revocación y de emisores. Los certificados deben guardarse en las siguientes subcarpetas: issuer/certs, issuer/crl, trusted/certs
acceptAllCertificatesNobooleanfalseDetermina si el cliente acepta todos los certificados de servidor
clientCertificateFileNostringRuta del certificado del cliente, incluido el nombre de archivo
privateKeyFileNostringRuta de la clave privada del cliente, incluido el nombre de archivo
produceIntervalNointeger100Intervalo de producción de los canales en ms
pollIntervalNointeger100Intervalo de consulta de los valores de los nodos OPC UA en ms
bufferSizeNointeger1024Tamaño del búfer del valor de un nodo OPC UA
channelsSÍarrayArray con una descripción de nodo OPC UA por canal
browsepathSÍarrayArray con el browsepath de un nodo OPC UA. El nodo inicial es el nodo Objects (ns=0;i=85)
browsepath/namespaceIndexSÍintegerÍndice de espacio de nombres del browse name de un nodo OPC UA
browsepath/nameSÍstringNombre del browse name de un nodo OPC UA
includeChildNodesNobooleanfalseBooleano para consultar y producir todos los nodos subordinados de un nodo
nameNostringNombre del canal definido en la configuración
dataTypeNostringTipo de datos del canal; puede predefinirse o ser determinado por el cliente OPC UA
physicalUnitNostringUnidad física del canal; puede predefinirse o ser determinada por el cliente OPC UA, siempre que esta información esté disponible

Información del módulo/perfil​

InformaciónValor
AutoroptiMEAS GmbH
Consume señalesNo
Produce señalesSí
Versión de smartCORE>= 1.0
DependenciasOpen62541 1.3, openssl