Tengo un servidor OPC-UA en funcionamiento con algunas etiquetas preconfiguradas, ahora quiero agregar una nueva variable de mi cliente NodeJS OPC-UA cuando cambie mi etiqueta determinada. Por ejemplo
import { OPCUAClient, MessageSecurityMode, SecurityPolicy, AttributeIds, } from "node-opcua-client"; const connectionStrategy = { initialDelay: 1000, maxRetry: 1 } const options = { applicationName: "MyClient", connectionStrategy: connectionStrategy, securityMode: MessageSecurityMode.SignAndEncrypt, securityPolicy: SecurityPolicy.Basic256Sha256, endpointMustExist: false, }; const client = OPCUAClient.create(options); const endpointUrl = "{opc_url}"; try { // step 1 : connect to await client.connect(endpointUrl).then(res => console.log('connected!')) // console.log("connected !"); // step 2 : createSession await client.createSession({userName: "user_name", password: "password"}, async (err, session) => { if(err){ console.log(err) } if(!err){ // do something } } } Arriba, en la parte de do something , probé:
var nodeId = "nodeId"; var nodesToWrite = [{ nodeId: nodeId, attributeId: AttributeIds.Value, value: /*new DataValue(*/{ value: {/* Variant */ dataType: 1, value: false } } }]; session.write(nodesToWrite, (err, statusCodes) => { if(!err){ console.log("success", statusCodes); } else { console.log(err, statusCodes) } } ); Pero como el nodeId no existe, arrojará el error de que no existe. Encontré un ejemplo de fragmento para agregar variables desde el lado del servidor, pero ¿es posible hacerlo desde el lado del cliente, ya que queremos agregar algunas variables basadas en las otras variables que estoy monitoreando desde el lado del cliente?
Consulte el enlace https://reference.opcfoundation.org/Core/docs/Part4/5.7.2/
Y verifique con el proveedor de SDK/Servidor si es compatible con el conjunto de servicios de administración de nodos o no.
En caso afirmativo, puede encontrar un método en el contexto de la sesión como session.addNodes()