This commit is contained in:
GukSang.Jin
2026-05-20 14:51:00 +08:00
parent 263fffbcf5
commit 0cba5198f2
7 changed files with 66 additions and 5 deletions

View File

@@ -26,6 +26,9 @@ namespace TabletTester2025
await LoadPlcFloatToTextBoxAsync(ResolveFriabilityRpmRegister(), FriabilityRpmBox);
await LoadPlcIntToTextBoxAsync(ResolveFriabilityRoundsRegister(), FriabilityRoundsBox);
// 崩解
await LoadPlcFloatToTextBoxAsync(ResolveDisintegrationSpeedRegister(), DisintegrationSpeedBox);
// 溶出度
await LoadPlcFloatToTextBoxAsync(ResolveDissolution1SpeedRegister(), Dissolution1SpeedBox);
await LoadPlcFloatToTextBoxAsync(ResolveDissolution2SpeedRegister(), Dissolution2SpeedBox);
@@ -44,6 +47,7 @@ namespace TabletTester2025
FriabilityRoundsBox.Text = ResolveFriabilityTargetRounds(p).ToString();
FriabilityMaxLossBox.Text = p.FriabilityMaxLossPercent.ToString();
DisintegrationTimeMinBox.Text = ResolveDisintegrationTimeMin(p).ToString("0.###");
DisintegrationSpeedBox.Text = p.DisintegrationSpeedRpm.ToString("0.###");
//DisintegrationTempBox.Text = p.DisintegrationTemperatureC.ToString();
//DissolutionTempBox.Text = p.DissolutionTemperatureC.ToString();
Dissolution1TimeBox.Text = p.Dissolution1TimeMin.ToString();
@@ -82,6 +86,8 @@ namespace TabletTester2025
p.FriabilityTargetRounds = ParsePositiveInt(FriabilityRoundsBox.Text, "脆碎圈数");
p.FriabilityMaxLossPercent = ParseFiniteDouble(FriabilityMaxLossBox.Text, "最大失重率");
double disintegrationTimeMin = ParsePositiveDouble(DisintegrationTimeMinBox.Text, "崩解时间");
double disintegrationSpeed = ParsePositiveDouble(DisintegrationSpeedBox.Text, "升降频次");
p.DisintegrationSpeedRpm = disintegrationSpeed;
p.DisintegrationMaxSeconds = ToDisintegrationSeconds(disintegrationTimeMin);
//p.DisintegrationTemperatureC = ParseFiniteDouble(DisintegrationTempBox.Text, "崩解介质温度");
//p.DissolutionTemperatureC = ParseFiniteDouble(DissolutionTempBox.Text, "溶出介质温度");
@@ -98,6 +104,7 @@ namespace TabletTester2025
await WriteHardnessDamageThresholdAsync(hardnessDamageThreshold);
await WriteFriabilityRpmAsync(friabilityRpm);
await WriteDisintegrationTimeAsync(disintegrationTimeMin);
await WriteDisintegrationSpeedAsync(disintegrationSpeed);
await WriteDissolution1SpeedAsync(dissolution1Speed);
await WriteDissolution2SpeedAsync(dissolution2Speed);
await WriteDissolution1TimeAsync(p.Dissolution1TimeMin);
@@ -329,6 +336,11 @@ namespace TabletTester2025
return App.PlcConfig.DisintegrationTime != 0 ? App.PlcConfig.DisintegrationTime : (ushort)420;
}
private static ushort ResolveDisintegrationSpeedRegister()
{
return App.PlcConfig.DisintegrationSpeed != 0 ? App.PlcConfig.DisintegrationSpeed : (ushort)330;
}
private static async Task WriteDisintegrationTimeAsync(double value)
{
ushort registerAddress = ResolveDisintegrationTimeRegister();
@@ -341,6 +353,15 @@ namespace TabletTester2025
ushort.MaxValue));
}
private static async Task WriteDisintegrationSpeedAsync(double value)
{
ushort registerAddress = ResolveDisintegrationSpeedRegister();
if (registerAddress == 0)
throw new InvalidOperationException("崩解升降频次PLC寄存器地址未配置。");
await App.PlcService.WriteFloatAsync(registerAddress, (float)value);
}
private static async Task WriteDissolution1SpeedAsync(double value)
{
ushort registerAddress = ResolveDissolution1SpeedRegister();