更新1222
This commit is contained in:
@@ -1989,6 +1989,7 @@ public sealed class MainWindowViewModel : ObservableObject
|
||||
await WriteChangedFloatAsync(SpeedCoefficientRegister, "转速系数", current.SpeedCoefficient, updated.SpeedCoefficient);
|
||||
await WriteChangedFloatAsync(SpeedStopThresholdRegister, "低速停止", current.SpeedStopThreshold, updated.SpeedStopThreshold);
|
||||
await WriteChangedFloatAsync(PressureCoefficientRegister, "压力系数", current.PressureCoefficient, updated.PressureCoefficient);
|
||||
await WriteChangedTenthsAsync(HoldTorqueRegister, "保持扭矩设置", current.HoldTorque, updated.HoldTorque);
|
||||
|
||||
return changedItems;
|
||||
|
||||
@@ -2012,6 +2013,26 @@ public sealed class MainWindowViewModel : ObservableObject
|
||||
Log.Information("PLC参数写入并回读确认成功,参数 {FieldName},D{RegisterAddress}={Value}", fieldName, registerAddress, confirmedValue);
|
||||
}
|
||||
|
||||
async Task WriteChangedTenthsAsync(ushort registerAddress, string fieldName, double oldValue, double newValue)
|
||||
{
|
||||
ushort oldRaw = ScaleTenthsToPlc(oldValue, fieldName);
|
||||
ushort newRaw = ScaleTenthsToPlc(newValue, fieldName);
|
||||
if (oldRaw == newRaw)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
await _plcRegisterService.WriteUInt16Async(plcConfig, registerAddress, newRaw);
|
||||
ushort confirmedRawValue = await _plcRegisterService.ReadUInt16Async(plcConfig, registerAddress);
|
||||
if (confirmedRawValue != newRaw)
|
||||
{
|
||||
throw new InvalidOperationException($"{fieldName} D{registerAddress} 写入后回读不一致。");
|
||||
}
|
||||
|
||||
changedItems.Add(fieldName);
|
||||
Log.Information("PLC参数写入并回读确认成功,参数 {FieldName},D{RegisterAddress}={Value}", fieldName, registerAddress, ScaleTenthsFromPlc(confirmedRawValue));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private bool TryReadParameterPageConfig(out TestParameterConfig config, out string error)
|
||||
|
||||
Reference in New Issue
Block a user