#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);
}
}