diff --git a/UserClass/PID.cs b/UserClass/PID.cs index e01e57a..ec7fb46 100644 --- a/UserClass/PID.cs +++ b/UserClass/PID.cs @@ -8,16 +8,16 @@ namespace DyeingComputer.UserClass { public class PID { - private static double Ts; // Sample period in seconds - private static double K; // Rollup parameter - private static double b0, b1, b2; // Rollup parameters - private static double a0, a1, a2; // Rollup parameters - private static double y0 = 0; // Current output - private static double y1 = 0; // Output one iteration old - private static double y2 = 0; // Output two iterations old - private static double e0 = 0; // Current error - private static double e1 = 0; // Error one iteration old - private static double e2 = 0; // Error two iterations old + private double Ts; // Sample period in seconds + private double K; // Rollup parameter + private double b0, b1, b2; // Rollup parameters + private double a0, a1, a2; // Rollup parameters + private double y0 = 0; // Current output + private double y1 = 0; // Output one iteration old + private double y2 = 0; // Output two iterations old + private double e0 = 0; // Current error + private double e1 = 0; // Error one iteration old + private double e2 = 0; // Error two iterations old #region 构造函数 /// @@ -95,7 +95,7 @@ namespace DyeingComputer.UserClass /// /// 重置控制器历史记录,有效重置控制器。 /// - public static void ResetController() + public void ResetController() { e2 = 0; e1 = 0; diff --git a/ViewModel/MainWindowViewModel.cs b/ViewModel/MainWindowViewModel.cs index 53852bd..0a267eb 100644 --- a/ViewModel/MainWindowViewModel.cs +++ b/ViewModel/MainWindowViewModel.cs @@ -22,6 +22,7 @@ using System.IO.Ports; using OpenTK.Graphics.ES11; using DyeingComputer.Properties; using Microsoft.Win32; +using static DyeingComputer.Windows.ViewStep; namespace DyeingComputer.ViewModel @@ -109,7 +110,7 @@ namespace DyeingComputer.ViewModel DispatcherTimer timer5s = new DispatcherTimer//初始化循环,每1秒调用一次Tick { - Interval = TimeSpan.FromSeconds(3)//秒 + Interval = TimeSpan.FromSeconds(5)//秒 }; timer5s.Tick += Tick_Event_5S; timer5s.Start(); @@ -125,7 +126,7 @@ namespace DyeingComputer.ViewModel public static object Name_err; public static object WorkNumder; - void Tick_Event_1S(object sender, EventArgs e)//Tick_Event周期执行事件 + void Tick_Event_1S(object sender, EventArgs e)//Tick_Event周期执行事件1S { Sys_Time = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"); Work_Temp = Selet_dtm("1010") + " ℃"; @@ -135,16 +136,49 @@ namespace DyeingComputer.ViewModel if (LINK_OK) Modbus_link(); IO_data(); } - void Tick_Event_5S(object sender, EventArgs e)//Tick_Event周期执行事件 + void Tick_Event_5S(object sender, EventArgs e)//Tick_Event周期执行事件5S { if (!LINK_OK) Modbus_link(); if (Name_err != null) Status_Str = Name_err.ToString(); + STEP_RUN(); } - void DisTimer_100MS(object sender, EventArgs e)//Tick_Event周期执行事件 + void DisTimer_100MS(object sender, EventArgs e)//Tick_Event周期执行事件100MS { // if (LINK_OK) Modbus_link(); } + + + string STEP_ID = "0"; + double STEP_P1 = 0; + double STEP_P2 = 0; + double STEP_P3 = 0; + double STEP_P4 = 0; + double STEP_P5 = 0; + + void STEP_START(object sender, AddressUpdateEventArgs e) + { + + if (e.StepID == "001") + { + + } + } + + void STEP_RUN() + { + + } + + + + + + + + + + public static SerialPort port = new SerialPort();//创建串口 static ModbusFactory factory = new ModbusFactory(); // Create Modbus Master