Я пытаюсь подключиться к удаленной среде, используя стек OPC UA Java из OPC Foundation. значения Чтение работает правильно, для этого я использую следующий код:Напишите значение с OPC UA Java (OPC Foundation)
NodeId nodeId= NodeId.get(IdType.String, 2, "TYPES!M!MULTIPLYER!MU_79.MULTIPLYER_BIAS");
ReadResponse res = mySessionChannel.Read(null, 500.0, TimestampsToReturn.Source, new ReadValueId(nodeId, Attributes.Value, null, null));
Теперь я пытаюсь использовать команду записи, чтобы установить это (вход) переменную следующим образом:
NodeId nodeId = NodeId.get(IdType.String, 2, "TYPES!M!MULTIPLYER!MU_79.MULTIPLYER_BIAS");
DataValue dataValue = new DataValue(new Variant(999));
WriteValue writeValue[] = new WriteValue[1];
writeValue[0] = new WriteValue(nodeId, Attributes.Value, "0", dataValue);
RequestHeader requestHeader = new RequestHeader(nodeId, null, null, null, null, null, null);
WriteRequest writeRequest = new WriteRequest(requestHeader, writeValue);
WriteResponse response = mySessionChannel.Write(writeRequest);
В записи команда запускается без ошибок, но значение никогда не изменяется. Может кто-нибудь мне помочь?
я изменил его на нуль, изменяя значение разве и ответ: WriteResponse (ID = 1474131049) ResponseHeader = ResponseHeader (ID = 676105376) ServiceDiagnostics = DiagnosticInfo (ID = 967078155) localizedText = NULL локаль = NULL innerDiagnosticInfo = NULL symbolicId = NULL innerStatusCode = NULL additionalInfo = NULL stringTable = NULL StringArray = класс java.lang.String [0] NamespaceURI = NULL stringTable = класс java.lang.String [0] – user3083205
RequestHandle = UnsignedInteger (id = 1526310589) значение = 1 Отметка = DateTime (ID = 1925333515) значение = 130393207472672000 AdditionalHeader = NULL ServiceResult = StatusCode (ID = 2163771) значение = 0 DiagnosticInfos = Класс org.opcfoundation.ua.builtintypes.DiagnosticInfo [0] Результаты = класс org.opcfoundation.ua.builtintypes.StatusCode [1] [0] = StatusCode (id = 2006760845) value = -2139881472 – user3083205
Лучше напечатать StatusCodes как строку: он скажет вам фактический код, например response.getResults() [0] –