This commit is contained in:
xyy
2026-06-16 20:50:05 +08:00
parent afef4f5cc6
commit 8c0af19f02
5 changed files with 148 additions and 39 deletions

View File

@@ -194,17 +194,25 @@ namespace AciTester.Services
{
await EnsureConnectedAsync();
var regs = await ReadHoldingRegistersAsync(startAddress, 2);
return (regs[0] << 16) | regs[1];
return regs[0]; // 暂时返回大端,您根据日志判断
}
public async Task WriteInt32Async(ushort startAddress, int value)
{
await EnsureConnectedAsync();
var bytes = BitConverter.GetBytes(value);
if (BitConverter.IsLittleEndian) Array.Reverse(bytes);
ushort high = (ushort)((bytes[0] << 8) | bytes[1]);
ushort low = (ushort)((bytes[2] << 8) | bytes[3]);
await _master.WriteMultipleRegistersAsync(_config.SlaveId, startAddress, new ushort[] { high, low });
ushort[] dwellTimeRegisters = ConvertIntToRegisters(value);
await _master.WriteMultipleRegistersAsync(1, startAddress, dwellTimeRegisters);
}
// 将整数转换为寄存器数组2个寄存器
private ushort[] ConvertIntToRegisters(int value)
{
byte[] bytes = BitConverter.GetBytes(value);
ushort[] registers = new ushort[2];
registers[0] = BitConverter.ToUInt16(bytes, 0); // 第一个寄存器(低位)
registers[1] = BitConverter.ToUInt16(bytes, 2); // 第二个寄存器(高位)
return registers;
}
}