修复优化

This commit is contained in:
GukSang.Jin
2026-01-29 19:02:46 +08:00
parent 11d95db0e0
commit 5d922ee0a3
2 changed files with 33 additions and 1 deletions

View File

@@ -179,6 +179,7 @@ namespace COFTester.Models
// === 手動控制參數寄存器(讀寫)===
public ushort HorizontalManualSpeedRegister { get; set; } = 350; // D350 水平手動速度 (mm/s)Float2個寄存器
public ushort HorizontalManualDisplacementRegister { get; set; } = 360; // D360 水平手動位移 (mm)Float2個寄存器
public ushort VerticalManualSpeedRegister { get; set; } = 310; // D310 升降手動速度 (mm/s)Float2個寄存器
public ushort VerticalManualDisplacementRegister { get; set; } = 320; // D320 升降手動位移 (mm)Float2個寄存器
public ushort VerticalLimitRegister { get; set; } = 290; // D290 升降極限 (mm)Float2個寄存器
@@ -228,6 +229,7 @@ namespace COFTester.Models
// === 手動控制參數寄存器(讀寫)===
public ushort HorizontalManualSpeedRegister { get; set; } = 350; // D350 水平手動速度 (mm/s)Float2個寄存器
public ushort HorizontalManualDisplacementRegister { get; set; } = 360; // D360 水平手動位移 (mm)Float2個寄存器
public ushort VerticalManualSpeedRegister { get; set; } = 310; // D310 升降手動速度 (mm/s)Float2個寄存器
public ushort VerticalManualDisplacementRegister { get; set; } = 320; // D320 升降手動位移 (mm)Float2個寄存器
public ushort VerticalLimitRegister { get; set; } = 290; // D290 升降極限 (mm)Float2個寄存器

View File

@@ -725,7 +725,7 @@ namespace COFTester.Services
/// <summary>
/// 寫入手動控制參數到 PLC 寄存器
/// D350 水平手動速度, D310 升降手動速度, D320 升降手動位移
/// D350 水平手動速度, D360 水平手動位移, D310 升降手動速度, D320 升降手動位移
/// D290 升降極限, D292 水平極限, D1320 拉力系數, D1322 拉力保護
/// </summary>
protected virtual async Task WriteManualControlParametersAsync(TestParameters parameters)
@@ -739,6 +739,11 @@ namespace COFTester.Services
await _modbusMaster.WriteMultipleRegistersAsync(
_config.SlaveId, _config.HorizontalManualSpeedRegister, hSpeedRegs);
// D360 水平手動位移
var hDispRegs = ConvertFloatToRegisters((float)parameters.HorizontalManualDisplacement);
await _modbusMaster.WriteMultipleRegistersAsync(
_config.SlaveId, _config.HorizontalManualDisplacementRegister, hDispRegs);
// D310 升降手動速度
var vSpeedRegs = ConvertFloatToRegisters((float)parameters.VerticalManualSpeed);
await _modbusMaster.WriteMultipleRegistersAsync(
@@ -771,6 +776,7 @@ namespace COFTester.Services
System.Diagnostics.Debug.WriteLine($"[ModbusTCP] 手動控制參數寫入完成:");
System.Diagnostics.Debug.WriteLine($" 水平手動速度: {parameters.HorizontalManualSpeed}mm/s → D{_config.HorizontalManualSpeedRegister}");
System.Diagnostics.Debug.WriteLine($" 水平手動位移: {parameters.HorizontalManualDisplacement}mm → D{_config.HorizontalManualDisplacementRegister}");
System.Diagnostics.Debug.WriteLine($" 升降手動速度: {parameters.VerticalManualSpeed}mm/s → D{_config.VerticalManualSpeedRegister}");
System.Diagnostics.Debug.WriteLine($" 升降手動位移: {parameters.VerticalManualDisplacement}mm → D{_config.VerticalManualDisplacementRegister}");
System.Diagnostics.Debug.WriteLine($" 升降極限: {parameters.VerticalLimit}mm → D{_config.VerticalLimitRegister}");
@@ -1091,30 +1097,42 @@ namespace COFTester.Services
try
{
// D350 水平手動速度
var hSpeedRegs = ConvertFloatToRegisters((float)parameters.HorizontalManualSpeed);
await _modbusMaster.WriteMultipleRegistersAsync(
_config.SlaveId, _config.HorizontalManualSpeedRegister, hSpeedRegs);
// D360 水平手動位移
var hDispRegs = ConvertFloatToRegisters((float)parameters.HorizontalManualDisplacement);
await _modbusMaster.WriteMultipleRegistersAsync(
_config.SlaveId, _config.HorizontalManualDisplacementRegister, hDispRegs);
// D310 升降手動速度
var vSpeedRegs = ConvertFloatToRegisters((float)parameters.VerticalManualSpeed);
await _modbusMaster.WriteMultipleRegistersAsync(
_config.SlaveId, _config.VerticalManualSpeedRegister, vSpeedRegs);
// D320 升降手動位移
var vDispRegs = ConvertFloatToRegisters((float)parameters.VerticalManualDisplacement);
await _modbusMaster.WriteMultipleRegistersAsync(
_config.SlaveId, _config.VerticalManualDisplacementRegister, vDispRegs);
// D290 升降極限
var vLimitRegs = ConvertFloatToRegisters((float)parameters.VerticalLimit);
await _modbusMaster.WriteMultipleRegistersAsync(
_config.SlaveId, _config.VerticalLimitRegister, vLimitRegs);
// D292 水平極限
var hLimitRegs = ConvertFloatToRegisters((float)parameters.HorizontalLimit);
await _modbusMaster.WriteMultipleRegistersAsync(
_config.SlaveId, _config.HorizontalLimitRegister, hLimitRegs);
// D1320 拉力系數
var forceCoefRegs = ConvertFloatToRegisters((float)parameters.ForceCoefficient);
await _modbusMaster.WriteMultipleRegistersAsync(
_config.SlaveId, _config.ForceCoefficientRegister, forceCoefRegs);
// D1322 拉力保護
var forceProtRegs = ConvertFloatToRegisters((float)parameters.ForceProtection);
await _modbusMaster.WriteMultipleRegistersAsync(
_config.SlaveId, _config.ForceProtectionRegister, forceProtRegs);
@@ -1410,30 +1428,42 @@ namespace COFTester.Services
try
{
// D350 水平手動速度
var hSpeedRegs = ConvertFloatToRegisters((float)parameters.HorizontalManualSpeed);
await _modbusMaster.WriteMultipleRegistersAsync(
_config.SlaveId, _config.HorizontalManualSpeedRegister, hSpeedRegs);
// D360 水平手動位移
var hDispRegs = ConvertFloatToRegisters((float)parameters.HorizontalManualDisplacement);
await _modbusMaster.WriteMultipleRegistersAsync(
_config.SlaveId, _config.HorizontalManualDisplacementRegister, hDispRegs);
// D310 升降手動速度
var vSpeedRegs = ConvertFloatToRegisters((float)parameters.VerticalManualSpeed);
await _modbusMaster.WriteMultipleRegistersAsync(
_config.SlaveId, _config.VerticalManualSpeedRegister, vSpeedRegs);
// D320 升降手動位移
var vDispRegs = ConvertFloatToRegisters((float)parameters.VerticalManualDisplacement);
await _modbusMaster.WriteMultipleRegistersAsync(
_config.SlaveId, _config.VerticalManualDisplacementRegister, vDispRegs);
// D290 升降極限
var vLimitRegs = ConvertFloatToRegisters((float)parameters.VerticalLimit);
await _modbusMaster.WriteMultipleRegistersAsync(
_config.SlaveId, _config.VerticalLimitRegister, vLimitRegs);
// D292 水平極限
var hLimitRegs = ConvertFloatToRegisters((float)parameters.HorizontalLimit);
await _modbusMaster.WriteMultipleRegistersAsync(
_config.SlaveId, _config.HorizontalLimitRegister, hLimitRegs);
// D1320 拉力系數
var forceCoefRegs = ConvertFloatToRegisters((float)parameters.ForceCoefficient);
await _modbusMaster.WriteMultipleRegistersAsync(
_config.SlaveId, _config.ForceCoefficientRegister, forceCoefRegs);
// D1322 拉力保護
var forceProtRegs = ConvertFloatToRegisters((float)parameters.ForceProtection);
await _modbusMaster.WriteMultipleRegistersAsync(
_config.SlaveId, _config.ForceProtectionRegister, forceProtRegs);