Клиент не может записывать в узлы внешнего сервера - PullRequest
0 голосов
/ 28 января 2019

Я пытался написать как String, так и LocalizedText (два основных типа данных, используемых на сервере), я не получаю ошибки, но когда я снова читаю узел через одну секунду после вызова, ничего не изменилось (и я неновые значения также не отображаются при использовании инспектора OPC) Моя функция writeOpcValue очень проста и основана на функциях, которые были предоставлены с milo:

/*Writes a String to the nodeId given as parameter*/
public void writeOpcValue(OpcUaClient client, NodeId nodeId, String value, boolean logValue)
{        
    //client.writeValue(nodeId, DataValue.valueOnly(new Variant(value)));
    VariableNode node = client.getAddressSpace().createVariableNode(nodeId);
    node.writeValue(DataValue.valueOnly(new Variant(value)));
    if (logValue)
        logger.info("Wrote {} to nodeId {}", value, nodeId);
}

Первая строка закомментирована, потому что я пробовал оба способа,но ничего не изменилось.Когда я использую эту функцию с моим собственным сервером примеров, она работает отлично, а на «реальном» - нет.Я что-то не так делаю или нужно что-то делать на стороне сервера?Следует отметить, что у меня нет доступа к коду сервера или пространству имен, и на самом деле он даже не написан на Java, что до сих пор не вызывало никаких проблем.Может быть, эти узлы только для чтения?В этом случае я ожидаю увидеть где-то исключение или ошибку.

Заранее благодарен за любую помощь

1 Ответ

0 голосов
/ 28 января 2019

Вы должны по крайней мере проверить, говорит ли StatusCode, возвращаемый вызовом writeValue, что-нибудь полезное вместо того, чтобы игнорировать его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...