Сервер OPC UAFX обновляет значения нескольких узлов

#c# #.net #opc-ua #opc

Вопрос:

каждый. Я хочу поделиться 3 различными значениями с моего OPC-сервера, и я хочу, чтобы эти значения обновлялись путем чтения файла JSON.

Это код, который у меня есть, я могу считывать значения с помощью OPC-клиента, но когда значение обновляется в файле JSON, клиент все еще получает исходное значение, а не самое новое.

Если вы сможете мне в этом помочь, я буду очень благодарен. С уважением.

Список последних чтений = JsonHandler.ReadLastReadingsTemp();

         OpcDataVariableNode<string> pesoNode = new OpcDataVariableNode<string>("Peso_001", lastReadings[0].Message);
        OpcDataVariableNode<string> dateNode = new OpcDataVariableNode<string>("Hora_001", lastReadings[0].Date.ToString());
        OpcDataVariableNode<string> statusNode = new OpcDataVariableNode<string>("Status_001", lastReadings[0].Status.ToString());

        List<OpcDataVariableNode<string>> nodes = new List<OpcDataVariableNode<string>>
        {
            pesoNode,
            dateNode,
            statusNode
        };

        int port = Settings.Default.OpcPort;
        string serverAddress = Settings.Default.OpcServer;

        using (var server = new OpcServer($"opc.tcp://{serverAddress}:{port}/", nodes))
        {
            server.Start();

            while (true)
            {
                ////Update values
                lastReadings = JsonHandler.ReadLastReadingsTemp();
                nodes[0] = new OpcDataVariableNode<string>("Peso_001", lastReadings[0].Message);
                nodes[1] = new OpcDataVariableNode<string>("Hora_001", lastReadings[0].Date.ToString());
                nodes[2] = new OpcDataVariableNode<string>("Status_001", lastReadings[0].Status.ToString());

                nodes[0].ApplyChanges(server.SystemContext);
                nodes[1].ApplyChanges(server.SystemContext);
                nodes[2].ApplyChanges(server.SystemContext);
                Thread.Sleep(1000);
            }
        }