私が使用node-opcua module
していて、サブスクリプションで多くを監視したいのですが、次のような結果が表示されます: HTML UI のユーザーが監視するノードを選択し、これらをパラメーターとしてopc ua nodes
送信した [監視] ボタンをクリックすると、すべてのサブスクリプションと .on("changed" が設定されます) 並列のように、これらのすべてのアイテムに対して機能します。コードは次のようになります。nodeIds
nodeid
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 などを追加するだけです。
より多くの方法でそれを行うagile/dynamic
方法は?の配列(文字列)がnodeIds
あり、これらのそれぞれをサブスクリプションで監視したい場合。コードはasync.series
([ コード ])の一部です