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

View File

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

View File

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