gpt4 book ai didi

javascript - node.js opc ua 许多监控项

转载 作者:搜寻专家 更新时间:2023-10-31 22:49:51 27 4
gpt4 key购买 nike

我使用 node-opcua 模块 和我想通过订阅监控许多 opc ua Node 我看到的结果如下:用户在 html UI 中选择要监视的 Node ,然后单击将这些 nodeIds 作为参数发送的 Monitor 按钮,然后为每个 nodeid 设置订阅和。 on("changed") 适用于这些项目中的每一个,就像并行一样。现在代码看起来像:

 var monitoredItem  = the_subscription.monitor({
nodeId: opcua.resolveNodeId("ns=6;s=S71500ET200MP station_1.Master.111"),
attributeId: 13
},
{
samplingInterval: 100,
discardOldest: true,
queueSize: 10
},
opcua.read_service.TimestampsToReturn.Both
);
console.log("-------------------------------------");
var nodes = [];

monitoredItem.on("changed",function(dataValue){
//console.log(" value = ",dataValue.value.value);
//console.log(" sourceTimestamp = ",dataValue.sourceTimestamp.toISOString());
//console.log(JSON.stringify(dataValue));
var Node = {nodeId: "ns=6;s=S71500ET200MP station_1.Master.111", nodeName: "111" , nodeValue: dataValue.value.value , nodeTimestamp: dataValue.sourceTimestamp.toISOString()};
var arrayNode = Object.keys(Node).map(function(k) { return Node[k] });
//console.log(JSON.stringify(Node));
nodes.push(arrayNode);

// console.log(nodes);
});
},

现在,如果我想设置新项目来监视它,只需添加许多变量 MonitorItem1、..2、..3 等。

如何以更敏捷/动态的方式做到这一点?如果我有 nodeIds 的数组(字符串)并且我希望在订阅中监控其中的每一个。代码是 async.series([ code ])

的一部分

最佳答案

使用async.each方法解决

async.each(nodeIdArr, function(nodeid, callback) {

var monitoredItem = the_subscription.monitor({
nodeId: opcua.resolveNodeId(nodeid),
attributeId: 13
},
{
samplingInterval: 100,
discardOldest: true,
queueSize: 10
},
opcua.read_service.TimestampsToReturn.Both
);
console.log("-------------------------------------");


monitoredItem.on("changed",function(dataValue){
//console.log(" value = ",dataValue.value.value);
//console.log(" sourceTimestamp = ",dataValue.sourceTimestamp.toISOString());
//console.log(JSON.stringify(dataValue));
var Node = {nodeId: nodeid, nodeName: "111" , nodeValue: dataValue.value.value , nodeTimestamp: dataValue.sourceTimestamp.toISOString()};
var arrayNode = Object.keys(Node).map(function(k) { return Node[k] });
//console.log(JSON.stringify(Node));
nodes.push(arrayNode);

// console.log(nodes);
});

关于javascript - node.js opc ua 许多监控项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34373347/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com