节点 OPC-UA:找不到数据类型定义

Dav*_*vid 5 javascript node.js opc-ua node-opcua

节点 v16.14.2

节点-OPC-UA v2.75.0

你好,

我目前在使用自定义数据类型从 S7-1500 读取大型 ExtensionObject 时遇到问题。在第一次读取这些 ExtensionObjects 的过程中,我收到很多错误消息,告诉我该库找不到数据类型定义。但是,在这些错误日志之后,读取过程工作正常,我可以成功访问我的数据。

这是错误输出:

17:20:35.217Z :populate_data_type_manager_104:50    Error Error:  Cannot find dataType Definition ! with nodeId =ns=2;i=6522
 ...                                                    at C:\Users\me\Desktop\my-opcua-client\node_modules\node-opcua-client-dynamic-extension-object\source\private\populate_data_type_manager_104.ts:34:19
 ...                                                    at Generator.next (<anonymous>)
 ...                                                    at fulfilled (C:\Users\me\Desktop\my-opcua-client\node_modules\node-opcua-client-dynamic-extension-object\dist\private\populate_data_type_manager_104.js:5:58)
 ...                                                    at processTicksAndRejections (node:internal/process/task_queues:96:5)
17:20:35.240Z :populate_data_type_manager_104:177   err= Error
 ...                                                    at assert (C:\Users\me\Desktop\my-opcua-client\node_modules\node-opcua-assert\source\index.ts:12:21)
 ...                                                    at C:\Users\me\Desktop\my-opcua-client\node_modules\node-opcua-client-dynamic-extension-object\source\private\populate_data_type_manager_104.ts:175:19
 ...                                                    at Generator.next (<anonymous>)
 ...                                                    at fulfilled (C:\Users\me\Desktop\my-opcua-client\node_modules\node-opcua-client-dynamic-extension-object\dist\private\populate_data_type_manager_104.js:5:58)
 ...                                                    at processTicksAndRejections (node:internal/process/task_queues:96:5)
17:20:35.293Z :populate_data_type_manager_104:50    Error Error:  Cannot find dataType Definition ! with nodeId =ns=2;i=6525
 ...                                                    at C:\Users\me\Desktop\my-opcua-client\node_modules\node-opcua-client-dynamic-extension-object\source\private\populate_data_type_manager_104.ts:34:19
 ...                                                    at Generator.next (<anonymous>)
 ...                                                    at fulfilled (C:\Users\me\Desktop\my-opcua-client\node_modules\node-opcua-client-dynamic-extension-object\dist\private\populate_data_type_manager_104.js:5:58)
 ...                                                    at processTicksAndRejections (node:internal/process/task_queues:96:5)
17:20:35.294Z :populate_data_type_manager_104:177   err= Error
 ...                                                    at assert (C:\Users\me\Desktop\my-opcua-client\node_modules\node-opcua-assert\source\index.ts:12:21)
 ...                                                    at C:\Users\me\Desktop\my-opcua-client\node_modules\node-opcua-client-dynamic-extension-object\source\private\populate_data_type_manager_104.ts:175:19
 ...                                                    at Generator.next (<anonymous>)
 ...                                                    at fulfilled (C:\Users\me\Desktop\my-opcua-client\node_modules\node-opcua-client-dynamic-extension-object\dist\private\populate_data_type_manager_104.js:5:58)
 ...                                                    at processTicksAndRejections (node:internal/process/task_queues:96:5)
17:20:35.347Z :populate_data_type_manager_104:50    Error Error:  Cannot find dataType Definition ! with nodeId =ns=3;i=3400
 ...                                                    at C:\Users\me\Desktop\my-opcua-client\node_modules\node-opcua-client-dynamic-extension-object\source\private\populate_data_type_manager_104.ts:34:19
 ...                                                    at Generator.next (<anonymous>)
 ...                                                    at fulfilled (C:\Users\me\Desktop\my-opcua-client\node_modules\node-opcua-client-dynamic-extension-object\dist\private\populate_data_type_manager_104.js:5:58)
 ...                                                    at processTicksAndRejections (node:internal/process/task_queues:96:5)
17:20:35.348Z :populate_data_type_manager_104:177   err= Error
 ...                                                    at assert (C:\Users\me\Desktop\my-opcua-client\node_modules\node-opcua-assert\source\index.ts:12:21)
 ...                                                    at C:\Users\me\Desktop\my-opcua-client\node_modules\node-opcua-client-dynamic-extension-object\source\private\populate_data_type_manager_104.ts:175:19
 ...                                                    at Generator.next (<anonymous>)
 ...                                                    at fulfilled (C:\Users\me\Desktop\my-opcua-client\node_modules\node-opcua-client-dynamic-extension-object\dist\private\populate_data_type_manager_104.js:5:58)
 ...                                                    at processTicksAndRejections (node:internal/process/task_queues:96:5)
17:20:35.441Z :populate_data_type_manager_104:50    Error Error:  Cannot find dataType Definition ! with nodeId =ns=3;i=3500
 ...                                                    at C:\Users\me\Desktop\my-opcua-client\node_modules\node-opcua-client-dynamic-extension-object\source\private\populate_data_type_manager_104.ts:34:19
 ...                                                    at Generator.next (<anonymous>)
 ...                                                    at fulfilled (C:\Users\me\Desktop\my-opcua-client\node_modules\node-opcua-client-dynamic-extension-object\dist\private\populate_data_type_manager_104.js:5:58)
 ...                                                    at processTicksAndRejections (node:internal/process/task_queues:96:5)
17:20:35.443Z :populate_data_type_manager_104:177   err= Error
 ...                                                    at assert (C:\Users\me\Desktop\my-opcua-client\node_modules\node-opcua-assert\source\index.ts:12:21)
 ...                                                    at C:\Users\me\Desktop\my-opcua-client\node_modules\node-opcua-client-dynamic-extension-object\source\private\populate_data_type_manager_104.ts:175:19
 ...                                                    at Generator.next (<anonymous>)
 ...                                                    at fulfilled (C:\Users\me\Desktop\my-opcua-client\node_modules\node-opcua-client-dynamic-extension-object\dist\private\populate_data_type_manager_104.js:5:58)
 ...                                                    at processTicksAndRejections (node:internal/process/task_queues:96:5)
17:20:35.732Z :populate_data_type_manager_104:50    Error Error:  Cannot find dataType Definition ! with nodeId =ns=2;i=15889
 ...                                                    at C:\Users\me\Desktop\my-opcua-client\node_modules\node-opcua-client-dynamic-extension-object\source\private\populate_data_type_manager_104.ts:34:19
 ...                                                    at Generator.next (<anonymous>)
 ...                                                    at fulfilled (C:\Users\me\Desktop\my-opcua-client\node_modules\node-opcua-client-dynamic-extension-object\dist\private\populate_data_type_manager_104.js:5:58)
 ...                                                    at processTicksAndRejections (node:internal/process/task_queues:96:5)
17:20:35.734Z :populate_data_type_manager_104:177   err= Error
 ...                                                    at assert (C:\Users\me\Desktop\my-opcua-client\node_modules\node-opcua-assert\source\index.ts:12:21)
 ...                                                    at C:\Users\me\Desktop\my-opcua-client\node_modules\node-opcua-client-dynamic-extension-object\source\private\populate_data_type_manager_104.ts:175:19
 ...                                                    at Generator.next (<anonymous>)
 ...                                                    at fulfilled (C:\Users\me\Desktop\my-opcua-client\node_modules\node-opcua-client-dynamic-extension-object\dist\private\populate_data_type_manager_104.js:5:58)
 ...                                                    at processTicksAndRejections (node:internal/process/task_queues:96:5)
17:20:35.798Z :populate_data_type_manager_104:50    Error Error:  Cannot find dataType Definition ! with nodeId =ns=2;i=15888
 ...                                                    at C:\Users\me\Desktop\my-opcua-client\node_modules\node-opcua-client-dynamic-extension-object\source\private\populate_data_type_manager_104.ts:34:19
 ...                                                    at Generator.next (<anonymous>)
 ...                                                    at fulfilled (C:\Users\me\Desktop\my-opcua-client\node_modules\node-opcua-client-dynamic-extension-object\dist\private\populate_data_type_manager_104.js:5:58)
 ...                                                    at processTicksAndRejections (node:internal/process/task_queues:96:5)
17:20:35.800Z :populate_data_type_manager_104:177   err= Error
 ...                                                    at assert (C:\Users\me\Desktop\my-opcua-client\node_modules\node-opcua-assert\source\index.ts:12:21)
 ...                                                    at C:\Users\me\Desktop\my-opcua-client\node_modules\node-opcua-client-dynamic-extension-object\source\private\populate_data_type_manager_104.ts:175:19
 ...                                                    at Generator.next (<anonymous>)
 ...                                                    at fulfilled (C:\Users\me\Desktop\my-opcua-client\node_modules\node-opcua-client-dynamic-extension-object\dist\private\populate_data_type_manager_104.js:5:58)
 ...                                                    at processTicksAndRejections (node:internal/process/task_queues:96:5)
Run Code Online (Sandbox Code Playgroud)

这是我的(相关)代码逻辑:

const opcClient = OPCUAClient.create({
  applicationName: 'my-opc-client',
  securityMode: MessageSecurityMode.None,
  securityPolicy: SecurityPolicy.None,
  endpointMustExist: true,
  keepSessionAlive: true,
});
await opcClient.connect(<myIp>);
const opcSession = await opcClient.createSession();

opcClient.on('close', () => {
  logger.error('OPC-Client has closed the connection');
});

opcClient.on('abort', () => {
  logger.error('OPC-Client has aborted the connection');
});

opcClient.on('connected', () => {
  logger.error('OPC-Client is connected');
});

opcClient.on('connection_lost', () => {
  logger.error('OPC-Client has lost the connection');
});

opcClient.on('connection_reestablished', () => {
  logger.info('OPC-Client has reestablished the connection');
});

const mainLoop = async () => {
  try {
    const processData = await opcSession.read(
       [
         { nodeId: 'ns=3;s="020_FIFO_OPCUA"."Setpoints"' },
         { nodeId: 'ns=3;s="020_FIFO_OPCUA"."Actuals"' }
       ]
    );
    await writeToDatabase(processData);
    setTimeout(() => mainLoop(), 500);
  } catch (error : any) {
    logger.error(error.message);
    setTimeout(() => mainLoop(), 5000);
  }
};
mainLoop();
Run Code Online (Sandbox Code Playgroud)

有什么事情吗,我做错了什么?在服务器端似乎没有问题。

已启用对 <=1.3 dataTyles 的支持。

非常感谢帮助!