I want to push values from rSet into the variable rAct. That means, if in my HMI change the value, then my rAct should have the same value as rSet.
I have tried everything possible. Would greatly appreciate any help. The variables rAct and rSet have been declared with a loop.
module.exports = { run: function (addressSpace, device, opcua, verbose, serverValues) {
// create ppC_Compound_V3 object
const namespace3=addressSpace.getNamespace('http://mynamespace-3/UA/');
var ppC_Compound_V3 = namespace3.addObject({
organizedBy: device,
browseName: "ppC_Compound_V3",
nodeId: "s=ppC_Compound_V3",
description: "The PLC instance which supports you with OPC UA functionality"
})
for (let i = 0; i<14; i++){
var nr = namespace3.addVariable({
componentOf: udtEmPz,
browseName : i.toString(),
dataType : opcua.DataType.Double,
nodeId : "s=" + "\"ZEEX_3111_Hmi\".\"udtEmPz\""+ "[" + i + "]",
}
)
var rPzTemp = namespace3.addVariable({
componentOf: nr,
browseName : "rPzTemp",
dataType : opcua.DataType.String,
nodeId : "s=" + "\"ZEEX_3111_Hmi\".\"udtEmPz\""+ "[" + i + "]." + "\"rPzTemp\""
}
)
var rAct = namespace3.addVariable({
componentOf: rPzTemp,
browseName: "rAct",
dataType: opcua.DataType.Float,
nodeId: "ns=3;s=" + "\"ZEEX_3111_Hmi\".\"udtEmPz\"" + "[" + i + "]." + "\"rPzTemp\".\"rAct\"",
value: {
get: function () {
const nodeIdValue=[];
const rSetValue = serverValues["ns=3;s=" + "\"ZEEX_3111_Hmi\".\"udtEmPz\"" + "[" + i + "]." + "\"rPzTemp\".\"rSet\""];
console.log(`Der Wert von rSet ist: ${rSetValue}`);
return new opcua.Variant({ dataType: opcua.DataType.Float, value: serverValues[nodeIdValue] })
},
set: function (variant) {
// Do nothing
}
}
});
var rSet = namespace3.addVariable({
componentOf: rPzTemp,
browseName: "rSet",
dataType: opcua.DataType.Float,
nodeId: "ns=3;s=" + "\"ZEEX_3111_Hmi\".\"udtEmPz\"" + "[" + i + "]." + "\"rPzTemp\".\"rSet\"",
value: {
get: function () {
const nodeIdValue = this.nodeId.value;
return new opcua.Variant({ dataType: opcua.DataType.Float, value: serverValues[nodeIdValue] });
},
set: function (variant) {
const nodeIdValue = this.nodeId.value;
serverValues[nodeIdValue] = parseFloat(variant.value);
console.log(`Setter-Funktion aufgerufen für rSet ${i} mit nodeId ${nodeIdValue}: ${serverValues[nodeIdValue]}`);
return opcua.StatusCodes.Good;
}
}
});
I have tried everything possible, unfortunately it does not pass the value to rAct. Would be very happy to get some help. I have posted my solution above