diff --git a/MainWindow.xaml.cs b/MainWindow.xaml.cs index 727b411..367e40c 100644 --- a/MainWindow.xaml.cs +++ b/MainWindow.xaml.cs @@ -161,18 +161,20 @@ namespace DyeingComputer { if(e.Key == Key.N) { - if (MainWindowViewModel.WORK_RUN == 2) MainWindowViewModel.WORK_RUN = 1;// 运行时停止键为暂停 - if (MainWindowViewModel.WORK_RUN == 1) + if (MainWindowViewModel.WORK_RUN == 2) + { + MainWindowViewModel.WORK_RUN = 1;// 运行时停止键为暂停 + }else if (MainWindowViewModel.WORK_RUN == 1) { MessageBoxResult messageBoxResult = System.Windows.MessageBox.Show("800", Properties.Resources.Save, MessageBoxButton.OKCancel); - if (messageBoxResult == MessageBoxResult.Yes) + if (messageBoxResult == MessageBoxResult.OK) { - MainWindowViewModel.WORK_RUN = 1;// 运行时停止键为 + MainWindowViewModel.WORK_RUN = 0;// 运行时停止键为 } } } } - + } } diff --git a/View/TechnologicalProcessView.xaml.cs b/View/TechnologicalProcessView.xaml.cs index 83a9e22..c55edc1 100644 --- a/View/TechnologicalProcessView.xaml.cs +++ b/View/TechnologicalProcessView.xaml.cs @@ -104,8 +104,8 @@ namespace DyeingComputer.View { if (e.Key == Key.Y) //按键y { - MainWindowViewModel strart = new MainWindowViewModel();//实例 - strart.STEP_START(Numder, Convert.ToDouble(P1), Convert.ToDouble(P2), Convert.ToDouble(P3), Convert.ToDouble(P4), Convert.ToDouble(P5));//传入参数开始 + // MainWindowViewModel strart = new MainWindowViewModel();//实例 + // strart.STEP_START(Numder, Convert.ToDouble(P1), Convert.ToDouble(P2), Convert.ToDouble(P3), Convert.ToDouble(P4), Convert.ToDouble(P5));//传入参数开始 } } } diff --git a/ViewModel/MainWindowViewModel.cs b/ViewModel/MainWindowViewModel.cs index 0936e46..9c93ee6 100644 --- a/ViewModel/MainWindowViewModel.cs +++ b/ViewModel/MainWindowViewModel.cs @@ -184,17 +184,17 @@ namespace DyeingComputer.ViewModel public static int WORK_RUN = 0; //运行状态0停止1暂停2运行 - string STEP_ID = "0"; - double STEP_P1 = 0; - double STEP_P2 = 0; - double STEP_P3 = 0; - double STEP_P4 = 0; - double STEP_P5 = 0; - int SETP_runtime; //步骤开始 - bool STEP_finish = false; //步骤结束 - int STEP_TIME = 0; //步骤计时S - int THL_mode = 0; //温控模式 0保温 1加热 2降 - double TEMP_co = 0; //计算温度 + private string STEP_ID = "0"; + private double STEP_P1 = 0; + private double STEP_P2 = 0; + private double STEP_P3 = 0; + private double STEP_P4 = 0; + private double STEP_P5 = 0; + private int SETP_runtime; //步骤开始 + private bool STEP_finish = false; //步骤结束 + private int STEP_TIME = 0; //步骤计时S + private int THL_mode = 0; //温控模式 0保温 1加热 2降 + private double TEMP_co = 0; //计算温度 public void STEP_START(string ID,double P1,double P2,double P3,double P4,double P5) { @@ -213,70 +213,71 @@ namespace DyeingComputer.ViewModel updata_dtm("1003", STEP_P2 / 600); STEP_TIME = Convert.ToInt16(STEP_P3) * 60; WORK_RUN = 2; - SETP_runtime =1; + SETP_runtime = 1; } } TimeSpan ts=new TimeSpan(1);//1秒间隔 void STEP_RUN() { - if (WORK_RUN == 2) + + /* if (WORK_RUN == 2) { - // if (SETP_runtime == 1) - // { - if (STEP_ID == "001") + if (SETP_runtime == 1) { - - double TO = 0; - double T = Selet_dtm("1010"); //实际温度 - if (THL_mode == 0) //保温 + if (STEP_ID == "001") { - //STEP_TIME--; - if (STEP_TIME == 0) { STEP_finish = true; } - else { STEP_TIME--; } - TO = pid.PID_iterate(STEP_P1, T, ts); - if (TO < 0) TO = 0; - - int TIME_H = STEP_TIME / 3600; - int TIME_M = (STEP_TIME - TIME_H * 3600) / 60; - int TIME_S = STEP_TIME - TIME_H * 3600 - TIME_M * 60; - Status_Str = Resources.Temperature + Resources.Time + string.Format(" {0:D2}", TIME_H) + ":" + string.Format(" {0:D2}", TIME_M) + ":" + string.Format(" {0:D2}", TIME_S); - } - else if (THL_mode == 1)//升温 - { - TEMP_co = TEMP_co + (STEP_P2 / 60); - TO = pid.PID_iterate(TEMP_co, T, ts); - if (TO < 0) TO = 0; - if (STEP_P1 < T) THL_mode = 0; + + double TO = 0; + double T = Selet_dtm("1010"); //实际温度 + if (THL_mode == 0) //保温 + { + if (STEP_TIME == 0) { STEP_finish = true; } + else { STEP_TIME--; } + TO = pid.PID_iterate(STEP_P1, T, ts); + if (TO < 0) TO = 0; + + int TIME_H = STEP_TIME / 3600; + int TIME_M = (STEP_TIME - TIME_H * 3600) / 60; + int TIME_S = STEP_TIME - TIME_H * 3600 - TIME_M * 60; + Status_Str = Resources.Temperature + Resources.Time + string.Format(" {0:D2}", TIME_H) + ":" + string.Format(" {0:D2}", TIME_M) + ":" + string.Format(" {0:D2}", TIME_S); + } + else if (THL_mode == 1)//升温 + { + TEMP_co = TEMP_co + (STEP_P2 / 60); + TO = pid.PID_iterate(TEMP_co, T, ts); + if (TO < 0) TO = 0; + if (STEP_P1 < T) THL_mode = 0; + } + else if (THL_mode == 2)//降温 + { + TEMP_co = TEMP_co - (STEP_P2 / 60); + TO = pid.PID_iterate(TEMP_co, T, ts); + if (TO > 0) TO = 0; + TO = Math.Abs(TO); + if (STEP_P1 > T) THL_mode = 0; + } + + updata_dtm("1004", TO); + updata_dtm("1005", TEMP_co); + } - else if (THL_mode == 2)//降温 + + } + else + { + if (Name_err == null) { - TEMP_co = TEMP_co - (STEP_P2 / 60); - TO = pid.PID_iterate(TEMP_co, T, ts); - if (TO > 0) TO = 0; - TO = Math.Abs(TO); - if (STEP_P1 > T) THL_mode = 0; + Status_Str = Resources.Await; } - - updata_dtm("1004", TO); - updata_dtm("1005", TEMP_co); - } - - // } - // else - // { - // if (Name_err == null) - // { - // Status_Str = Resources.Await; - // } - // } } - else if (WORK_RUN == 1) + else if (WORK_RUN == 1) { - Status_Str = Resources. Paused; - } - else if (WORK_RUN == 0) + Status_Str = Resources.Paused; + } + else */ + if (WORK_RUN == 0) { if (Name_err == null) { @@ -389,9 +390,9 @@ namespace DyeingComputer.ViewModel await Task.Run(() => { - // SYSData_A = ToObservableCollection(dt_a); - // SYSData_D = ToObservableCollection(dt_d); - // SYSData_M = ToObservableCollection(dt_m); + SYSData_A = ToObservableCollection(dt_a); + SYSData_D = ToObservableCollection(dt_d); + SYSData_M = ToObservableCollection(dt_m); }); }