diff --git a/Helpers/PlcConfiguration.cs b/Helpers/PlcConfiguration.cs index 16ba49e..8b2821c 100644 --- a/Helpers/PlcConfiguration.cs +++ b/Helpers/PlcConfiguration.cs @@ -26,6 +26,12 @@ namespace MembranePoreTester.Communication // ========== 控制线圈 ========== public ushort PressureModeRegister { get; set; } // 高压/低压模式寄存器 + + public ushort PressureModeRegister2 { get; set; } // 高压/低压模式寄存器 + public ushort PressureModeRegister3 { get; set; } // 高压/低压模式寄存器 + + + public ushort PressCoil { get; set; } // 加压线圈(M100) public ushort PressCoil2 { get; set; } // 加压线圈(M100) public ushort PressCoil3 { get; set; } // 加压线圈(M100) @@ -93,6 +99,9 @@ namespace MembranePoreTester.Communication public ushort FlowModeRegister { get; set; } = 4; // 工位1 流量模式 + public ushort FlowModeRegister2 { get; set; } = 42; // 工位2 流量模式 + + public ushort FlowModeRegister3 { get; set; } = 46; // 工位3 流量模式 diff --git a/ViewModels/MainViewModel.cs b/ViewModels/MainViewModel.cs index 339c040..20f0ad0 100644 --- a/ViewModels/MainViewModel.cs +++ b/ViewModels/MainViewModel.cs @@ -333,7 +333,7 @@ namespace MembranePoreTester.ViewModels { try { - ushort[] values = await _plcService.ReadHoldingRegistersAsync(_plcConfig.PressureModeRegister, 1); + ushort[] values = await _plcService.ReadHoldingRegistersAsync(StationId == 1 ? _plcConfig.PressureModeRegister : StationId == 2 ? _plcConfig.PressureModeRegister2 : _plcConfig.PressureModeRegister3, 1); ushort val = values[0]; string newValue = val == 0 ? "高压" : "低压"; @@ -477,8 +477,18 @@ namespace MembranePoreTester.ViewModels ushort val = mode.ToString().Contains("高压") ? (ushort)0 : (ushort)1; try { - - await _plcService.WriteSingleRegisterAsync(_plcConfig.PressureModeRegister, val); + if (StationId == 1) + { + await _plcService.WriteSingleRegisterAsync(_plcConfig.PressureModeRegister, val); + } + else if (StationId == 2) + { + await _plcService.WriteSingleRegisterAsync(_plcConfig.PressureModeRegister2, val); + } + else if (StationId == 3) + { + await _plcService.WriteSingleRegisterAsync(_plcConfig.PressureModeRegister3, val); + } } catch (Exception ex) { diff --git a/ViewModels/PoreDistributionViewModel.cs b/ViewModels/PoreDistributionViewModel.cs index 05452a9..372076e 100644 --- a/ViewModels/PoreDistributionViewModel.cs +++ b/ViewModels/PoreDistributionViewModel.cs @@ -363,7 +363,7 @@ namespace MembranePoreTester.ViewModels { try { - ushort[] values = await _plcService.ReadHoldingRegistersAsync(_plcConfig.FlowModeRegister, 1); + ushort[] values = await _plcService.ReadHoldingRegistersAsync(StationId == 1 ? _plcConfig.FlowModeRegister : StationId == 2 ? _plcConfig.FlowModeRegister2 : _plcConfig.FlowModeRegister3, 1); ushort val = values[0]; string newValue = val == 0 ? "大流量" : "小流量"; @@ -897,7 +897,12 @@ namespace MembranePoreTester.ViewModels ushort val = mode.ToString().Contains("大流量") ? (ushort)0 : (ushort)1; try { - await _plcService.WriteSingleRegisterAsync(_plcConfig.FlowModeRegister, val); + if (StationId == 1) + await _plcService.WriteSingleRegisterAsync(_plcConfig.FlowModeRegister, val); + else if (StationId == 2) + await _plcService.WriteSingleRegisterAsync(_plcConfig.FlowModeRegister2, val); + else if (StationId == 3) + await _plcService.WriteSingleRegisterAsync(_plcConfig.FlowModeRegister3, val); } catch (Exception ex) { diff --git a/appsettings.json b/appsettings.json index c6cae00..9c6b2e7 100644 --- a/appsettings.json +++ b/appsettings.json @@ -12,6 +12,8 @@ // 压力模式选择(高压/低压)写入寄存器 "PressureModeRegister": 2, // 压力模式寄存器(0=低压,1=高压) + "PressureModeRegister2": 40, // 压力模式寄存器(0=低压,1=高压) + "PressureModeRegister3": 44, // 压力模式寄存器(0=低压,1=高压) // 线圈控制(M 元件) "PressCoil": 140, // 加压线圈(M100),ON 开始加压,OFF 停止