From 0966f1f4f61383e353d618da01a25678541329ea Mon Sep 17 00:00:00 2001 From: "GukSang.Jin" Date: Tue, 19 May 2026 20:06:51 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ViewModels/StationViewModel.cs | 20 ++++++++++---------- Views/MainWindow.xaml | 4 ++-- Views/SettingsWindow.xaml | 4 ++-- Views/SettingsWindow.xaml.cs | 4 ++-- Views/ShowData.xaml.cs | 4 ++-- appsettings.json | 6 +++--- 6 files changed, 21 insertions(+), 21 deletions(-) diff --git a/ViewModels/StationViewModel.cs b/ViewModels/StationViewModel.cs index 29ca0ae..f48e9ed 100644 --- a/ViewModels/StationViewModel.cs +++ b/ViewModels/StationViewModel.cs @@ -854,7 +854,7 @@ namespace TabletTester2025.ViewModels if (_isLoadingDissolution1SampleInterval || _plcConfig.Dissolution1SampleInterval == 0 || value <= 0) return; - _ = WriteDissolutionFloatAsync(_plcConfig.Dissolution1SampleInterval, value); + _ = WriteDissolutionSampleIntervalAsync(_plcConfig.Dissolution1SampleInterval, value); DissolutionSampleInterval = ToCompatibleSampleInterval(value); } @@ -863,7 +863,7 @@ namespace TabletTester2025.ViewModels if (_isLoadingDissolution2SampleInterval || _plcConfig.Dissolution2SampleInterval == 0 || value <= 0) return; - _ = WriteDissolutionFloatAsync(_plcConfig.Dissolution2SampleInterval, value); + _ = WriteDissolutionSampleIntervalAsync(_plcConfig.Dissolution2SampleInterval, value); } private async Task LoadDissolutionTimesAsync() @@ -922,8 +922,8 @@ namespace TabletTester2025.ViewModels try { _isLoadingDissolution1SampleInterval = true; - float value = await _plc.ReadFloatAsync(_plcConfig.Dissolution1SampleInterval); - if (float.IsFinite(value) && value > 0) + int value = await _plc.ReadIntAsync(_plcConfig.Dissolution1SampleInterval); + if (value > 0) { Dissolution1SampleIntervalMin = value; DissolutionSampleInterval = ToCompatibleSampleInterval(value); @@ -941,8 +941,8 @@ namespace TabletTester2025.ViewModels try { _isLoadingDissolution2SampleInterval = true; - float value = await _plc.ReadFloatAsync(_plcConfig.Dissolution2SampleInterval); - if (float.IsFinite(value) && value > 0) + int value = await _plc.ReadIntAsync(_plcConfig.Dissolution2SampleInterval); + if (value > 0) Dissolution2SampleIntervalMin = value; } catch { } @@ -953,14 +953,14 @@ namespace TabletTester2025.ViewModels } } - private async Task WriteDissolutionFloatAsync(ushort registerAddress, double value) + private async Task WriteDissolutionSampleIntervalAsync(ushort registerAddress, double value) { if (registerAddress == 0 || value <= 0 || !double.IsFinite(value)) return; try { - await _plc.WriteFloatAsync(registerAddress, (float)value); + await _plc.WriteRegisterAsync(registerAddress, (ushort)Math.Clamp(ToCompatibleSampleInterval(value), 1, ushort.MaxValue)); } catch { } } @@ -1616,7 +1616,7 @@ namespace TabletTester2025.ViewModels _isDissolution1Running = true; DissolutionPlotModel.Title = "溶出曲线"; await WriteDissolutionTimeAsync(_plcConfig.Dissolution1Time, Dissolution1TimeMin); - await WriteDissolutionFloatAsync(_plcConfig.Dissolution1SampleInterval, Dissolution1SampleIntervalMin); + await WriteDissolutionSampleIntervalAsync(_plcConfig.Dissolution1SampleInterval, Dissolution1SampleIntervalMin); await PulseCoilAsync(_plcConfig.Dissolution1StartCoil); } @@ -1667,7 +1667,7 @@ namespace TabletTester2025.ViewModels _isDissolution2Running = true; DissolutionPlotModel.Title = "溶出曲线"; await WriteDissolutionTimeAsync(_plcConfig.Dissolution2Time, Dissolution2TimeMin); - await WriteDissolutionFloatAsync(_plcConfig.Dissolution2SampleInterval, Dissolution2SampleIntervalMin); + await WriteDissolutionSampleIntervalAsync(_plcConfig.Dissolution2SampleInterval, Dissolution2SampleIntervalMin); await PulseCoilAsync(_plcConfig.Dissolution2StartCoil); } diff --git a/Views/MainWindow.xaml b/Views/MainWindow.xaml index b2a5346..18d5f2e 100644 --- a/Views/MainWindow.xaml +++ b/Views/MainWindow.xaml @@ -432,11 +432,11 @@ - + - + diff --git a/Views/SettingsWindow.xaml b/Views/SettingsWindow.xaml index 6894e0a..713b09e 100644 --- a/Views/SettingsWindow.xaml +++ b/Views/SettingsWindow.xaml @@ -178,11 +178,11 @@ - + - + diff --git a/Views/SettingsWindow.xaml.cs b/Views/SettingsWindow.xaml.cs index 7c81311..c84562e 100644 --- a/Views/SettingsWindow.xaml.cs +++ b/Views/SettingsWindow.xaml.cs @@ -68,8 +68,8 @@ namespace TabletTester2025 p.DissolutionTemperatureC = ParseFiniteDouble(DissolutionTempBox.Text, "溶出介质温度"); p.Dissolution1TimeMin = int.Parse(Dissolution1TimeBox.Text); p.Dissolution2TimeMin = int.Parse(Dissolution2TimeBox.Text); - p.Dissolution1SampleIntervalMin = ParseFiniteDouble(Dissolution1IntervalBox.Text, "溶出1取样间隔"); - p.Dissolution2SampleIntervalMin = ParseFiniteDouble(Dissolution2IntervalBox.Text, "溶出2取样间隔"); + p.Dissolution1SampleIntervalMin = ParsePositiveInt(Dissolution1IntervalBox.Text, "溶出1取样间隔"); + p.Dissolution2SampleIntervalMin = ParsePositiveInt(Dissolution2IntervalBox.Text, "溶出2取样间隔"); p.DissolutionSampleTimes = SampleTimesBox.Text .Split(',', StringSplitOptions.RemoveEmptyEntries) .Select(s => int.Parse(s.Trim())) diff --git a/Views/ShowData.xaml.cs b/Views/ShowData.xaml.cs index 0604c76..a17f030 100644 --- a/Views/ShowData.xaml.cs +++ b/Views/ShowData.xaml.cs @@ -158,8 +158,8 @@ namespace 片剂四用仪.Views new PlcParamMapping("txt_Dissolution2Speed", AddressOrDefault(plcConfig.Dissolution2Speed, 350), PlcParamType.Float), new PlcParamMapping("txt_DissolutionTime", AddressOrDefault(plcConfig.Dissolution1Time, 430), PlcParamType.Int), new PlcParamMapping("txt_Dissolution2Time", AddressOrDefault(plcConfig.Dissolution2Time, 440), PlcParamType.Int), - new PlcParamMapping("txt_Dissolution1SamplingInterval", AddressOrDefault(plcConfig.Dissolution1SampleInterval, 432), PlcParamType.Float), - new PlcParamMapping("txt_Dissolution2SamplingInterval", AddressOrDefault(plcConfig.Dissolution2SampleInterval, 442), PlcParamType.Float), + new PlcParamMapping("txt_Dissolution1SamplingInterval", AddressOrDefault(plcConfig.Dissolution1SampleInterval, 432), PlcParamType.Int), + new PlcParamMapping("txt_Dissolution2SamplingInterval", AddressOrDefault(plcConfig.Dissolution2SampleInterval, 442), PlcParamType.Int), new PlcParamMapping("txt_ForceCoefficient", 1320, PlcParamType.Float), new PlcParamMapping("txt_ForceProtection", 1322, PlcParamType.Float), diff --git a/appsettings.json b/appsettings.json index 4fc42b1..973dff3 100644 --- a/appsettings.json +++ b/appsettings.json @@ -44,7 +44,7 @@ "FriabilityWeightAfter": 414, // 脆碎后质量(g) "WeightBefore": 412, "WeightAfter": 414, - "DisintegrationTemp": 1430, + "DisintegrationTemp": 1430, // 所有温度显示D1430,float类型 "DisintegrationMovingUpCoil": 30, "DisintegrationStartCoil": 50, "DisintegrationStopCoil": 53, @@ -66,8 +66,8 @@ "Dissolution2SampleAckCoil": 34, "Dissolution1Time": 430, "Dissolution2Time": 440, - "Dissolution1SampleInterval": 432, - "Dissolution2SampleInterval": 442 + "Dissolution1SampleInterval": 432, // 溶出1取样间隔,int类型 + "Dissolution2SampleInterval": 442 // 溶出2取样间隔,int类型 }, "PharmaStandard": { "StandardVersion": "中国药典2025",