更新
This commit is contained in:
@@ -1603,8 +1603,13 @@ namespace TabletTester2025.ViewModels
|
||||
throw new InvalidOperationException("硬度完成线圈未配置");
|
||||
if (ResolveHardnessLiveForceRegister() == 0)
|
||||
throw new InvalidOperationException("硬度实时力寄存器未配置");
|
||||
if (ResolveHardnessMaxRegister() == 0)
|
||||
throw new InvalidOperationException("硬度最大采集力寄存器未配置");
|
||||
if (ResolveHardnessSpeedRegister() == 0)
|
||||
throw new InvalidOperationException("硬度加压速度寄存器未配置");
|
||||
|
||||
await _plc.WriteFloatAsync(_plcConfig.HardnessSudu, (float)HardnessSudu);
|
||||
await LoadHardnessSpeedSettingAsync();
|
||||
await _plc.WriteFloatAsync(ResolveHardnessSpeedRegister(), (float)HardnessSudu);
|
||||
await _plc.WriteFloatAsync(_plcConfig.HardnessWeiyi, (float)HardnessWeiyi);
|
||||
|
||||
while (_isHardnessRunning && _hardnessResults.Count < count)
|
||||
@@ -1617,6 +1622,7 @@ namespace TabletTester2025.ViewModels
|
||||
|
||||
double value = await WaitForHardnessSamplePeakAsync(completeCoil);
|
||||
AddHardnessSample(value);
|
||||
await ReadHardnessMaxCaptureAsync();
|
||||
ApplyHardnessStatistics(count);
|
||||
await WaitForCoilStateAsync(completeCoil, false, TimeSpan.FromSeconds(10), "硬度完成信号未回落");
|
||||
}
|
||||
@@ -1624,6 +1630,7 @@ namespace TabletTester2025.ViewModels
|
||||
if (_hardnessResults.Count < count)
|
||||
throw new InvalidOperationException("硬度测试已停止,未保存结果");
|
||||
|
||||
await ReadHardnessMaxCaptureAsync();
|
||||
ApplyHardnessStatistics(count);
|
||||
AddHardnessGroupSummaryRow();
|
||||
resultReady = true;
|
||||
@@ -1663,6 +1670,20 @@ namespace TabletTester2025.ViewModels
|
||||
: (ushort)1314;
|
||||
}
|
||||
|
||||
private ushort ResolveHardnessMaxRegister()
|
||||
{
|
||||
return _plcConfig.HardnessMax != 0
|
||||
? _plcConfig.HardnessMax
|
||||
: (ushort)72;
|
||||
}
|
||||
|
||||
private ushort ResolveHardnessSpeedRegister()
|
||||
{
|
||||
return _plcConfig.HardnessSudu != 0
|
||||
? _plcConfig.HardnessSudu
|
||||
: (ushort)300;
|
||||
}
|
||||
|
||||
private async Task<double> ReadHardnessLiveForceAsync()
|
||||
{
|
||||
double value = await _plc.ReadFloatAsync(ResolveHardnessLiveForceRegister());
|
||||
@@ -1673,6 +1694,23 @@ namespace TabletTester2025.ViewModels
|
||||
return value;
|
||||
}
|
||||
|
||||
private async Task<double> ReadHardnessMaxCaptureAsync()
|
||||
{
|
||||
double value = await _plc.ReadFloatAsync(ResolveHardnessMaxRegister());
|
||||
if (!double.IsFinite(value) || value < 0)
|
||||
throw new InvalidOperationException("硬度最大采集力数据异常");
|
||||
|
||||
HardnessMax = value;
|
||||
return value;
|
||||
}
|
||||
|
||||
private async Task LoadHardnessSpeedSettingAsync()
|
||||
{
|
||||
double value = await _plc.ReadFloatAsync(ResolveHardnessSpeedRegister());
|
||||
if (double.IsFinite(value) && value > 0)
|
||||
HardnessSudu = value;
|
||||
}
|
||||
|
||||
private async Task<double> WaitForHardnessSamplePeakAsync(ushort completeCoil)
|
||||
{
|
||||
double peak = 0;
|
||||
@@ -1759,8 +1797,6 @@ namespace TabletTester2025.ViewModels
|
||||
HardnessAvg = stats.Average;
|
||||
HardnessAverageDeviation = stats.AverageDeviation;
|
||||
HardnessRSD = stats.RsdPercent;
|
||||
HardnessMax = stats.Maximum;
|
||||
HardnessMin = stats.Minimum;
|
||||
HardnessCurrentCount = stats.Count;
|
||||
HardnessPass = stats.IsPass;
|
||||
|
||||
@@ -2357,7 +2393,7 @@ namespace TabletTester2025.ViewModels
|
||||
TestType.Dissolution => string.IsNullOrWhiteSpace(effectiveDissolutionChannel) ? "溶出" : effectiveDissolutionChannel,
|
||||
_ => ""
|
||||
};
|
||||
LocalAlarm = $"{projectName}测试完成";
|
||||
LocalAlarm = $"{projectName}测试完成,已保存";
|
||||
});
|
||||
return true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user