Ich benutze node-opcua module
und Ich möchte viele opc ua nodes
mit Abonnement überwachen ich führen sehen wie: Benutzer in HTML-UI wählen, was zu überwachen, die Knoten, dann Monitor-Taste klicken, die diese nodeIds
gesendet als Parameter und dann für jede nodeid
wird Abonnement festgelegt und .on ("geändert") funktioniert für jeden dieser Artikel wie parallel. Jetzt Code wie folgt aussieht:node.js OPC UA viele überwachten Objekte
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);
});
},
Gerade jetzt, wenn ich neue Artikel einstellen möchten überwachen sie fügen Sie einfach viele Vars MonitorItem1, ..2, ..3 usw.
Wie es funktioniert in mehr agile/dynamic
Weg? wenn ich Array (Strings) von nodeIds
habe und ich möchte, dass jede davon im Abonnement überwacht wird. -Code ist ein Teil von async.series
([code])