Я использую node-opcua, чтобы записать логическое значение для установки тега сброса. Вот мой код:
var nodesToWrite = new Array();
nodesToWrite.push({
nodeId: 'ns=2;s=Paint.PLC.Reset_Auto_Blocked_Time',
attributeId: opcua.AttributeIds.Value,
indexRange: null,
value: {
value: {
dataType: opcua.DataType.Boolean,
value: true
}
}
});
self.uaSession.write(nodesToWrite, function (err, statusCode, diagnosticInfo) {
if (!err) {
console.log(" write ok");
console.log(statusCode);
console.log(diagnosticInfo);
} else {
console.log(" write err = ", err);
}
})
На самом деле он не вызывает "err", потому что консоль записывает это:
[{ [Number: 2155085824
value: 2155085824,
description: 'The value supplied for the attribute is not of the same type as the attribute\'s value.',
name: 'BadTypeMidmatch' }]
[]
Однако это явно ошибка, и запись никогда не завершается. Тег установлен в KEPServer как логическое значение и работает нормально. Я не уверен, почему он говорит, что это несоответствие. Любая помощь?