更新121

This commit is contained in:
GukSang.Jin
2026-06-09 18:13:49 +08:00
parent 1cc402450b
commit 86bb4c83bc
2 changed files with 45 additions and 14 deletions

View File

@@ -404,8 +404,8 @@
</Grid.RowDefinitions> </Grid.RowDefinitions>
<TextBlock Text="实时千分表" Style="{StaticResource MetricTitle}" /> <TextBlock Text="实时千分表" Style="{StaticResource MetricTitle}" />
<TextBlock Grid.Row="1" <TextBlock Grid.Row="1"
x:Name="RelativeDisplacementText" x:Name="DialIndicatorText"
Text="{Binding RelativeDisplacementText}" Text="{Binding DialIndicatorText}"
Style="{StaticResource MetricValue}" Style="{StaticResource MetricValue}"
Foreground="#0F766E" Foreground="#0F766E"
VerticalAlignment="Center" /> VerticalAlignment="Center" />
@@ -633,7 +633,7 @@
Margin="8,0,8,0" /> Margin="8,0,8,0" />
<Button Grid.Column="2" <Button Grid.Column="2"
x:Name="StartDisplacementButton" x:Name="StartDisplacementButton"
Content="启动" Content="{Binding DisplacementTestButtonText}"
Command="{Binding StartDisplacementCommand}" Command="{Binding StartDisplacementCommand}"
Style="{StaticResource StartButtonStyle}" Style="{StaticResource StartButtonStyle}"
Margin="8,0,8,0" /> Margin="8,0,8,0" />
@@ -900,7 +900,7 @@
Command="{Binding VentValveCommand}" Command="{Binding VentValveCommand}"
Margin="8,0,8,0" /> Margin="8,0,8,0" />
<Button Grid.Column="3" <Button Grid.Column="3"
Content="启动" Content="{Binding SpeedTorqueTestButtonText}"
Command="{Binding StartSpeedTorqueCommand}" Command="{Binding StartSpeedTorqueCommand}"
Style="{StaticResource StartButtonStyle}" Style="{StaticResource StartButtonStyle}"
Margin="8,0,8,0" /> Margin="8,0,8,0" />
@@ -1019,7 +1019,7 @@
Command="{Binding SaveNoLoadSpeedSettingCommand}" Command="{Binding SaveNoLoadSpeedSettingCommand}"
Margin="0,0,8,0" /> Margin="0,0,8,0" />
<Button Grid.Column="1" <Button Grid.Column="1"
Content="开始空载转速" Content="{Binding NoLoadSpeedTestButtonText}"
Command="{Binding RecordNoLoadSpeedCommand}" Command="{Binding RecordNoLoadSpeedCommand}"
Style="{StaticResource StartButtonStyle}" Style="{StaticResource StartButtonStyle}"
Margin="8,0,0,0" /> Margin="8,0,0,0" />

View File

@@ -173,6 +173,7 @@ public sealed class MainWindowViewModel : ObservableObject
private int _snapshotWriteInProgress; private int _snapshotWriteInProgress;
private bool _sessionExported; private bool _sessionExported;
private double _dialZero; private double _dialZero;
private double _dialIndicator;
private double _relativeDisplacement; private double _relativeDisplacement;
private double _axialAxisPosition; private double _axialAxisPosition;
private double _axialSampleStart; private double _axialSampleStart;
@@ -210,7 +211,7 @@ public sealed class MainWindowViewModel : ObservableObject
private bool _isVentValveOpen; private bool _isVentValveOpen;
private bool _hasShownSpeedTorqueEndWarnings; private bool _hasShownSpeedTorqueEndWarnings;
private DateTime _lastParameterReadFailureLogAt = DateTime.MinValue; private DateTime _lastParameterReadFailureLogAt = DateTime.MinValue;
private string _relativeDisplacementText = "0.000 mm"; private string _dialIndicatorText = "0.000 mm";
private string _axialAxisPositionText = "0.000 mm"; private string _axialAxisPositionText = "0.000 mm";
private string _axialSamplePairText = "-- / --"; private string _axialSamplePairText = "-- / --";
private string _axialSampleDifferenceText = "--"; private string _axialSampleDifferenceText = "--";
@@ -241,6 +242,9 @@ public sealed class MainWindowViewModel : ObservableObject
private string _holdTorqueInput = "0"; private string _holdTorqueInput = "0";
private string _torqueHoldTimeInput = "0"; private string _torqueHoldTimeInput = "0";
private string _axialForceSetpointModeButtonText = "轴向跳动力设置"; private string _axialForceSetpointModeButtonText = "轴向跳动力设置";
private string _displacementTestButtonText = "测试";
private string _speedTorqueTestButtonText = "测试";
private string _noLoadSpeedTestButtonText = "测试";
private string _displacementResetButtonText = "复位"; private string _displacementResetButtonText = "复位";
private string _speedTorqueResetButtonText = "复位"; private string _speedTorqueResetButtonText = "复位";
private string _ventValveButtonText = "开启通气阀"; private string _ventValveButtonText = "开启通气阀";
@@ -502,10 +506,10 @@ public sealed class MainWindowViewModel : ObservableObject
public string PlcTimeoutMillisecondsInput { get; set; } = "2000"; public string PlcTimeoutMillisecondsInput { get; set; } = "2000";
public string RelativeDisplacementText public string DialIndicatorText
{ {
get => _relativeDisplacementText; get => _dialIndicatorText;
private set => SetProperty(ref _relativeDisplacementText, value); private set => SetProperty(ref _dialIndicatorText, value);
} }
public string AxialAxisPositionText public string AxialAxisPositionText
@@ -652,6 +656,24 @@ public sealed class MainWindowViewModel : ObservableObject
private set => SetProperty(ref _displacementResetButtonText, value); private set => SetProperty(ref _displacementResetButtonText, value);
} }
public string DisplacementTestButtonText
{
get => _displacementTestButtonText;
private set => SetProperty(ref _displacementTestButtonText, value);
}
public string SpeedTorqueTestButtonText
{
get => _speedTorqueTestButtonText;
private set => SetProperty(ref _speedTorqueTestButtonText, value);
}
public string NoLoadSpeedTestButtonText
{
get => _noLoadSpeedTestButtonText;
private set => SetProperty(ref _noLoadSpeedTestButtonText, value);
}
public string AxialForceSetpointModeButtonText public string AxialForceSetpointModeButtonText
{ {
get => _axialForceSetpointModeButtonText; get => _axialForceSetpointModeButtonText;
@@ -703,6 +725,7 @@ public sealed class MainWindowViewModel : ObservableObject
_noLoadSpeedRecord = ReadFloatValue(values, NoLoadSpeedRecordRegister, "空载转速记录"); _noLoadSpeedRecord = ReadFloatValue(values, NoLoadSpeedRecordRegister, "空载转速记录");
_noLoadSpeedErrorRate = ReadFloatValue(values, NoLoadSpeedErrorRateRegister, "转速误差率"); _noLoadSpeedErrorRate = ReadFloatValue(values, NoLoadSpeedErrorRateRegister, "转速误差率");
_realtimePressure = ReadFloatValue(values, PressureDisplayRegister, "压力显示"); _realtimePressure = ReadFloatValue(values, PressureDisplayRegister, "压力显示");
_dialIndicator = dialIndicator;
_relativeDisplacement = dialIndicator - _dialZero; _relativeDisplacement = dialIndicator - _dialZero;
_axialForce = axialForce; _axialForce = axialForce;
_realtimeTorque = realtimeTorque; _realtimeTorque = realtimeTorque;
@@ -2295,7 +2318,7 @@ public sealed class MainWindowViewModel : ObservableObject
return; return;
} }
if (!await PulsePlcAsync(NoLoadSpeedRecordCoil, "记录空载转速")) if (!await PulsePlcAsync(NoLoadSpeedRecordCoil, "空载转速测试"))
{ {
return; return;
} }
@@ -2303,6 +2326,7 @@ public sealed class MainWindowViewModel : ObservableObject
PrepareSessionForNewRun(); PrepareSessionForNewRun();
_activeNoLoadSpeedRun = CreateTestRun("空载转速测试"); _activeNoLoadSpeedRun = CreateTestRun("空载转速测试");
_noLoadCaptureDeadline = DateTime.Now.Add(NoLoadCaptureDuration); _noLoadCaptureDeadline = DateTime.Now.Add(NoLoadCaptureDuration);
NoLoadSpeedTestButtonText = "测试中";
UpdateDataCaptureStatus(); UpdateDataCaptureStatus();
} }
@@ -2314,7 +2338,7 @@ public sealed class MainWindowViewModel : ObservableObject
return; return;
} }
if (!await PulsePlcAsync(SpeedTorqueStartCoil, "转速/扭矩启动")) if (!await PulsePlcAsync(SpeedTorqueStartCoil, "转速/扭矩测试"))
{ {
return; return;
} }
@@ -2327,6 +2351,7 @@ public sealed class MainWindowViewModel : ObservableObject
PrepareSessionForNewRun(); PrepareSessionForNewRun();
_isSpeedTorqueRunning = true; _isSpeedTorqueRunning = true;
SpeedTorqueTestButtonText = "测试中";
_hasShownSpeedTorqueEndWarnings = false; _hasShownSpeedTorqueEndWarnings = false;
_finalSpeed = null; _finalSpeed = null;
_finalTorque = null; _finalTorque = null;
@@ -2377,6 +2402,7 @@ public sealed class MainWindowViewModel : ObservableObject
FinalizeSpeedTorqueRun("复位前中止"); FinalizeSpeedTorqueRun("复位前中止");
PersistCurrentPayloadSnapshot("转速/扭矩复位前"); PersistCurrentPayloadSnapshot("转速/扭矩复位前");
_isSpeedTorqueRunning = false; _isSpeedTorqueRunning = false;
SpeedTorqueTestButtonText = "测试";
_realtimeSpeed = 0; _realtimeSpeed = 0;
_realtimeTorque = 0; _realtimeTorque = 0;
_speedTorqueZero = _speedTorqueAxisPosition; _speedTorqueZero = _speedTorqueAxisPosition;
@@ -2426,7 +2452,7 @@ public sealed class MainWindowViewModel : ObservableObject
return; return;
} }
if (!await PulsePlcAsync(AxialStartCoil, "轴向启动")) if (!await PulsePlcAsync(AxialStartCoil, "轴向测试"))
{ {
return; return;
} }
@@ -2439,6 +2465,7 @@ public sealed class MainWindowViewModel : ObservableObject
PrepareSessionForNewRun(); PrepareSessionForNewRun();
_isDisplacementRunning = true; _isDisplacementRunning = true;
DisplacementTestButtonText = "测试中";
_activeDisplacementRun = CreateTestRun("轴向位移动量测试"); _activeDisplacementRun = CreateTestRun("轴向位移动量测试");
_finalDisplacement = null; _finalDisplacement = null;
_finalAxialForce = null; _finalAxialForce = null;
@@ -2496,6 +2523,7 @@ public sealed class MainWindowViewModel : ObservableObject
_finalAxialForce = null; _finalAxialForce = null;
await UpdateAxialForceFromInputAsync(); await UpdateAxialForceFromInputAsync();
_isDisplacementRunning = false; _isDisplacementRunning = false;
DisplacementTestButtonText = "测试";
UpdateDisplacementDisplay(); UpdateDisplacementDisplay();
Log.Information("轴向复位完成,千分表零点 {DialZero}", _dialZero); Log.Information("轴向复位完成,千分表零点 {DialZero}", _dialZero);
} }
@@ -2703,6 +2731,7 @@ public sealed class MainWindowViewModel : ObservableObject
} }
_isDisplacementRunning = false; _isDisplacementRunning = false;
DisplacementTestButtonText = "测试";
_finalDisplacement = Math.Abs(_axialSampleDifference) > 0.000001 ? _axialSampleDifference : _relativeDisplacement; _finalDisplacement = Math.Abs(_axialSampleDifference) > 0.000001 ? _axialSampleDifference : _relativeDisplacement;
_finalAxialForce = GetScaledAxialForce(); _finalAxialForce = GetScaledAxialForce();
FinalizeDisplacementRun(status); FinalizeDisplacementRun(status);
@@ -2718,7 +2747,7 @@ public sealed class MainWindowViewModel : ObservableObject
private bool TryGetDialValue(out double value) private bool TryGetDialValue(out double value)
{ {
value = _dialZero + _relativeDisplacement; value = _dialIndicator;
return true; return true;
} }
@@ -2798,6 +2827,7 @@ public sealed class MainWindowViewModel : ObservableObject
} }
_isSpeedTorqueRunning = false; _isSpeedTorqueRunning = false;
SpeedTorqueTestButtonText = "测试";
_realtimeSpeed = speed; _realtimeSpeed = speed;
_realtimeTorque = torque; _realtimeTorque = torque;
_finalSpeed = speed; _finalSpeed = speed;
@@ -2909,7 +2939,7 @@ public sealed class MainWindowViewModel : ObservableObject
private void UpdateDisplacementDisplay() private void UpdateDisplacementDisplay()
{ {
RelativeDisplacementText = $"{FormatDisplacement(_relativeDisplacement)} mm"; DialIndicatorText = $"{FormatDisplacement(_dialIndicator)} mm";
AxialAxisPositionText = $"{FormatDisplacement(_axialAxisPosition)} mm"; AxialAxisPositionText = $"{FormatDisplacement(_axialAxisPosition)} mm";
AxialSamplePairText = $"{FormatDisplacement(_axialSampleStart)} / {FormatDisplacement(_axialSampleEnd)} mm"; AxialSamplePairText = $"{FormatDisplacement(_axialSampleStart)} / {FormatDisplacement(_axialSampleEnd)} mm";
AxialSampleDifferenceText = $"{FormatDisplacement(_axialSampleDifference)} mm"; AxialSampleDifferenceText = $"{FormatDisplacement(_axialSampleDifference)} mm";
@@ -3245,6 +3275,7 @@ public sealed class MainWindowViewModel : ObservableObject
_completedRuns.Add(_activeNoLoadSpeedRun); _completedRuns.Add(_activeNoLoadSpeedRun);
_activeNoLoadSpeedRun = null; _activeNoLoadSpeedRun = null;
_noLoadCaptureDeadline = null; _noLoadCaptureDeadline = null;
NoLoadSpeedTestButtonText = "测试";
PersistCurrentPayloadSnapshot("空载转速记录完成"); PersistCurrentPayloadSnapshot("空载转速记录完成");
UpdateDataCaptureStatus(); UpdateDataCaptureStatus();
} }