温控仪表
把保持寄存器 0 当作炉温。先在虚拟从站上写业务,再到现场换成串口。
var memory = new ModbusSlaveMemory();
memory.HoldingRegisters[0] = 1800; // 原始值,点表按 0.1 换算为 180.0
await using var app = ZeusHost.Create(builder =>
{
builder.AddAcquisition(TimeSpan.FromMilliseconds(500));
builder.AddVirtualChannel("bus", new ModbusSlaveResponder(1, ModbusTransport.Rtu, memory));
builder.AddModbusRtu("oven", "bus", points: map =>
map.HoldingRegister("temperature", 0, raw => raw * 0.1));
});
await app.StartAsync();
var pv = app.Points.Get<double>("temperature");
现场替换通道:
builder.AddSerialPort("bus", "COM3", 9600);
builder.AddModbusRtu("oven", "bus", unitId: 1);
界面使用 app.Points.BindTo("temperature", label)。协议代码和换通道都不必改。