This commit is contained in:
GukSang.Jin
2026-01-29 18:31:37 +08:00
parent 4455ba4c9a
commit 11d95db0e0
3 changed files with 35 additions and 21 deletions

View File

@@ -160,8 +160,7 @@ namespace COFTester.Models
public int ConnectTimeout { get; set; } = 5000; // 連接超時
// === 傳感器數據寄存器(只讀)===
public ushort ForceRegister { get; set; } = 0; // 力值寄存器2個寄存器Float
public ushort DisplacementRegister { get; set; } = 2; // 位移寄存器2個寄存器Float
// 注意:舊地址 0, 2 已移除,使用新地址 1314, 360
public ushort FrictionForceRegister { get; set; } = 1314; // D1314 摩擦力只讀曲線圖力值2個寄存器Float
public ushort CurveDisplacementRegister { get; set; } = 360; // D360 水平手動位移 曲線圖位移值2個寄存器Float
public ushort VerticalPositionRegister { get; set; } = 12; // D12 升降位置只讀2個寄存器Float
@@ -210,8 +209,7 @@ namespace COFTester.Models
public int WriteTimeout { get; set; } = 1000; // 寫入超時
// === 傳感器數據寄存器(只讀)===
public ushort ForceRegister { get; set; } = 0; // 力值寄存器2個寄存器Float
public ushort DisplacementRegister { get; set; } = 2; // 位移寄存器2個寄存器Float
// 注意:舊地址 0, 2 已移除,使用新地址 1314, 360
public ushort FrictionForceRegister { get; set; } = 1314; // D1314 摩擦力只讀曲線圖力值2個寄存器Float
public ushort CurveDisplacementRegister { get; set; } = 360; // D360 水平手動位移 曲線圖位移值2個寄存器Float
public ushort VerticalPositionRegister { get; set; } = 12; // D12 升降位置只讀2個寄存器Float

View File

@@ -645,6 +645,7 @@ namespace COFTester.Services
/// <summary>
/// 讀取傳感器數據(力值和位移)
/// 使用新地址D1314 摩擦力, D360 位移
/// </summary>
protected override async Task<TestDataPoint?> ReadSensorDataAsync()
{
@@ -652,14 +653,18 @@ namespace COFTester.Services
{
if (_modbusMaster == null) return null;
// 讀取 4 個寄存器:力值(2) + 位移(2)
var registers = await _modbusMaster.ReadHoldingRegistersAsync(
_config.SlaveId, _config.ForceRegister, 4);
// 讀取 D1314 摩擦力2個寄存器
var forceRegisters = await _modbusMaster.ReadHoldingRegistersAsync(
_config.SlaveId, _config.FrictionForceRegister, 2);
// 讀取 D360 位移2個寄存器
var displacementRegisters = await _modbusMaster.ReadHoldingRegistersAsync(
_config.SlaveId, _config.CurveDisplacementRegister, 2);
return new TestDataPoint
{
Force = ConvertRegistersToFloat(registers, 0),
Displacement = ConvertRegistersToFloat(registers, 2),
Force = ConvertRegistersToFloat(forceRegisters, 0),
Displacement = ConvertRegistersToFloat(displacementRegisters, 0),
Timestamp = DateTime.Now
};
}
@@ -966,6 +971,7 @@ namespace COFTester.Services
/// <summary>
/// 讀取傳感器數據(力值和位移)
/// 使用新地址D1314 摩擦力, D360 位移
/// </summary>
protected override async Task<TestDataPoint?> ReadSensorDataAsync()
{
@@ -973,13 +979,18 @@ namespace COFTester.Services
{
if (_modbusMaster == null) return null;
var registers = await _modbusMaster.ReadHoldingRegistersAsync(
_config.SlaveId, _config.ForceRegister, 4);
// 讀取 D1314 摩擦力2個寄存器
var forceRegisters = await _modbusMaster.ReadHoldingRegistersAsync(
_config.SlaveId, _config.FrictionForceRegister, 2);
// 讀取 D360 位移2個寄存器
var displacementRegisters = await _modbusMaster.ReadHoldingRegistersAsync(
_config.SlaveId, _config.CurveDisplacementRegister, 2);
return new TestDataPoint
{
Force = ConvertRegistersToFloat(registers, 0),
Displacement = ConvertRegistersToFloat(registers, 2),
Force = ConvertRegistersToFloat(forceRegisters, 0),
Displacement = ConvertRegistersToFloat(displacementRegisters, 0),
Timestamp = DateTime.Now
};
}
@@ -1289,19 +1300,28 @@ namespace COFTester.Services
}
}
/// <summary>
/// 讀取傳感器數據(力值和位移)
/// 使用新地址D1314 摩擦力, D360 位移
/// </summary>
protected override async Task<TestDataPoint?> ReadSensorDataAsync()
{
try
{
if (_modbusMaster == null) return null;
var registers = await _modbusMaster.ReadHoldingRegistersAsync(
_config.SlaveId, _config.ForceRegister, 4);
// 讀取 D1314 摩擦力2個寄存器
var forceRegisters = await _modbusMaster.ReadHoldingRegistersAsync(
_config.SlaveId, _config.FrictionForceRegister, 2);
// 讀取 D360 位移2個寄存器
var displacementRegisters = await _modbusMaster.ReadHoldingRegistersAsync(
_config.SlaveId, _config.CurveDisplacementRegister, 2);
return new TestDataPoint
{
Force = ConvertRegistersToFloat(registers, 0),
Displacement = ConvertRegistersToFloat(registers, 2),
Force = ConvertRegistersToFloat(forceRegisters, 0),
Displacement = ConvertRegistersToFloat(displacementRegisters, 0),
Timestamp = DateTime.Now
};
}

View File

@@ -6,8 +6,6 @@
"SlaveId": 1,
"Timeout": 3000,
"ConnectTimeout": 5000,
"ForceRegister": 0,
"DisplacementRegister": 2,
"FrictionForceRegister": 1314,
"CurveDisplacementRegister": 360,
"VerticalPositionRegister": 12,
@@ -38,8 +36,6 @@
"Timeout": 3000,
"ReadTimeout": 1000,
"WriteTimeout": 1000,
"ForceRegister": 0,
"DisplacementRegister": 2,
"FrictionForceRegister": 1314,
"CurveDisplacementRegister": 360,
"VerticalPositionRegister": 12,