Files
EMOS-TestApp/TestApp/Program.cs

56 lines
1.6 KiB
C#

using NModbus;
using System.Net.Sockets;
namespace TestApp
{
internal class Program
{
private static EnergyManager _EnergyManager;
static async Task Main(string[] args)
{
_EnergyManager = await EnergyManager.Create();
while (true)
{
try
{
ConnectToModBus();
}
catch (Exception ex)
{
Console.WriteLine($"Error connecting to ModBus slave: {ex.Message}");
Thread.Sleep(5000);
}
}
}
private static void ConnectToModBus()
{
var factory = new ModbusFactory();
var tcpClient = new TcpClient("192.168.188.21", 502);
var master = factory.CreateMaster(tcpClient);
Console.WriteLine("ModBus TCP Connection established!");
while (tcpClient.Connected)
{
try
{
var currentWirkleistung = _EnergyManager.ActivePowerPositive;
ushort input = master.ReadHoldingRegisters(1, 1000, 1)[0];
ushort output = (ushort)(input + currentWirkleistung);
master.WriteMultipleRegisters(1, 1100, new ushort[] { output });
Thread.Sleep(100);
}
catch (Exception e)
{
Console.WriteLine($"Error updating ModBus registers: {e.Message}");
Thread.Sleep(1000);
}
}
}
}
}