test
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
public byte SlaveId { get; set; }
|
||||
|
||||
// 硬度
|
||||
//public ushort HardnessValue { get; set; }
|
||||
public ushort HardnessMax { get; set; }
|
||||
public ushort HardnessStartCoil { get; set; }
|
||||
|
||||
public ushort HardnessCompleteCoil { get; set; }
|
||||
|
||||
@@ -15,6 +15,7 @@ namespace TabletTester2025.Models
|
||||
public double HardnessMax { get; set; }
|
||||
public double HardnessMin { get; set; }
|
||||
public int HardnessTestCount { get; set; }
|
||||
//public double HardnessMax { get; set; }
|
||||
|
||||
// 脆碎度
|
||||
public double FriabilityLoss { get; set; }
|
||||
|
||||
@@ -69,7 +69,7 @@ namespace TabletTester2025.ViewModels
|
||||
[ObservableProperty] private double _hardnessSudu = 300;// 硬度速度输入mm/min
|
||||
[ObservableProperty] private double _hardnessWeiyi = 100; // 硬度位移输入mm
|
||||
//[ObservableProperty] private double _hardnessPoSun = 400; // 硬度破损判定输入N
|
||||
//[ObservableProperty] private int _hardnessMaxN = 72; //最大力采集
|
||||
[ObservableProperty] private double _hardnessMaxN = 72; //最大力采集
|
||||
|
||||
|
||||
|
||||
@@ -813,61 +813,37 @@ namespace TabletTester2025.ViewModels
|
||||
|
||||
private async Task RunHardnessAsync()
|
||||
{
|
||||
// 点击启动才执行一次
|
||||
if (Phase != TestPhase.Idle) return;
|
||||
CurrentTest = TestType.Hardness;
|
||||
Phase = TestPhase.Running;
|
||||
HardnessPass = false;
|
||||
_hardnessResults.Clear();
|
||||
|
||||
try
|
||||
{
|
||||
int count = App.CurrentPharmaParams.HardnessTestCount;
|
||||
double min = App.CurrentPharmaParams.HardnessMin_N;
|
||||
double max = App.CurrentPharmaParams.HardnessMax_N;
|
||||
double currentSpeed = HardnessSudu;
|
||||
double currentWeiyi = HardnessWeiyi;
|
||||
|
||||
|
||||
double currentSpeed = _hardnessSudu;
|
||||
double currentWeiyi = _hardnessWeiyi;
|
||||
|
||||
|
||||
// 如果你需要把这3个值发给PLC,就在这里发一次(测试开始用当前参数)
|
||||
// 写入PLC
|
||||
await _plc.WriteFloatAsync(_plcConfig.HardnessSudu, (float)currentSpeed);
|
||||
await _plc.WriteFloatAsync(_plcConfig.HardnessWeiyi, (float)currentWeiyi);
|
||||
|
||||
|
||||
// 开始循环测试
|
||||
for (int i = 0; i < count; i++)
|
||||
|
||||
await _plc.WriteCoilAsync(_plcConfig.HardnessStartCoil, true);
|
||||
|
||||
bool completed = false;
|
||||
while (!completed && Phase == TestPhase.Running)
|
||||
{
|
||||
await _plc.WriteCoilAsync(_plcConfig.HardnessStartCoil, true);
|
||||
|
||||
bool completed = false;
|
||||
while (!completed && Phase == TestPhase.Running)
|
||||
{
|
||||
await Task.Delay(200);
|
||||
completed = await _plc.ReadCoilAsync(_plcConfig.HardnessCompleteCoil);
|
||||
}
|
||||
|
||||
double val = await _plc.ReadFloatAsync(_plcConfig.HardnessPoSun);
|
||||
_hardnessResults.Add(val);
|
||||
//HardnessPoSun = val;
|
||||
|
||||
await Task.Delay(1000);
|
||||
await Task.Delay(200);
|
||||
completed = await _plc.ReadCoilAsync(_plcConfig.HardnessCompleteCoil);
|
||||
}
|
||||
|
||||
// 计算结果
|
||||
HardnessAvg = _hardnessResults.Average();
|
||||
HardnessMax = _hardnessResults.Max();
|
||||
HardnessMin = _hardnessResults.Min();
|
||||
HardnessCurrentCount = count;
|
||||
HardnessRSD = (StandardDeviation(_hardnessResults) / HardnessAvg) * 100;
|
||||
HardnessPass = HardnessAvg >= min && HardnessAvg <= max;
|
||||
HardnessMax = await _plc.ReadFloatAsync(_plcConfig.HardnessMax);
|
||||
|
||||
Phase = TestPhase.Completed;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
await App.Current.Dispatcher.InvokeAsync(() => MessageBox.Show($"硬度测试出错:{ex.Message}"));
|
||||
Phase = TestPhase.Error;
|
||||
|
||||
}
|
||||
finally
|
||||
{
|
||||
@@ -1255,8 +1231,7 @@ namespace TabletTester2025.ViewModels
|
||||
// 硬度
|
||||
HardnessAvg = HardnessAvg,
|
||||
HardnessRSD = HardnessRSD,
|
||||
HardnessMax = HardnessMax,
|
||||
HardnessMin = HardnessMin,
|
||||
|
||||
HardnessTestCount = HardnessTestCount,
|
||||
|
||||
// 脆碎度
|
||||
|
||||
Reference in New Issue
Block a user