sc 2 months ago
parent
commit
227f2c9967
  1. 71
      ViewModel/MainWindowViewModel.cs

71
ViewModel/MainWindowViewModel.cs

@ -1054,7 +1054,7 @@ namespace DyeingComputer.ViewModel
{
TO = pid.PID_iterate(STEP_P1, T, ts);
TEMP_co = STEP_P1;
if (TO < 0) TO = 0;
//if (TO < 0) TO = 0;
TIME_H = STEP_TIME / 3600;
TIME_M = (STEP_TIME - TIME_H * 3600) / 60;
@ -1063,11 +1063,6 @@ namespace DyeingComputer.ViewModel
if (STEP_TIME <= 0)
{
STEP_finish = true;
Updata_dtm("1004", 0);
Updata_dtd("3009", false);
Updata_dtd("3010", false);
Updata_dta("5001", 0);
Updata_dta("5002", 0);
}
else
{
@ -1079,9 +1074,16 @@ namespace DyeingComputer.ViewModel
if (STEP_P1 > TEMP_co) TEMP_co = TEMP_co + (STEP_P2 / 60);
TO = pid.PID_iterate(TEMP_co, T, ts);
if (TO < 0) TO = 0;
if ((TEMP_co < T) || (T - TEMP_co > 3)) TO = 0;
if (TEMP_co < T-0.5)
{
TO = 0;
pid.ResetController();
}
if (STEP_P1 < T)
{
Updata_dta("5001", 0);
Updata_dtm("1004", 0);
TO = 0;
THL_mode = 0;
TIME_M = 0;
}
@ -1111,6 +1113,9 @@ namespace DyeingComputer.ViewModel
TO = Math.Abs(TO);
if (STEP_P1 > T)
{
Updata_dta("5002", 0);
Updata_dtm("1005", 0);
TO = 0;
THL_mode = 0;
TIME_M = 0;
}
@ -1136,8 +1141,33 @@ namespace DyeingComputer.ViewModel
Updata_dtm("1005", TEMP_co);
if (MT12 == 1)//输出类型0开关1模拟
{
if (THL_mode == 2) Updata_dta("5002", Convert.ToInt16(TO));
if (THL_mode == 1) Updata_dta("5001", Convert.ToInt16(TO));
if (THL_mode == 2)
{
Updata_dta("5002", Convert.ToInt16(TO));
Updata_dta("5001", 0);
Updata_dtd("3010", true);
Updata_dtd("3009", false);
}
if (THL_mode == 1)
{
Updata_dta("5001", Convert.ToInt16(TO));
Updata_dta("5002", 0);
Updata_dtd("3009", true);
Updata_dtd("3010", false);
}
if (THL_mode == 0)
{
if (TO > 0)
{
Updata_dta("5001", Convert.ToInt16(TO));
Updata_dta("5002", 0);
}
else
{
Updata_dta("5002", Convert.ToInt16(TO));
Updata_dta("5001", 0);
}
}
}
else
{
@ -1156,6 +1186,14 @@ namespace DyeingComputer.ViewModel
else { Updata_dtd("3009", false); }//升温
}
}
if (STEP_finish)
{
Updata_dtm("1004", 0);
Updata_dtd("3009", false);
Updata_dtd("3010", false);
Updata_dta("5001", 0);
Updata_dta("5002", 0);
}
break;//功能模块001温度控制
case "007":
if (STEP_P1.ToString() == "1")
@ -3228,14 +3266,21 @@ namespace DyeingComputer.ViewModel
private void Simulate()//模拟
{
double _rd = (double)_random.Next(1, 5) / 10;
if (THL_mode == 1 || THL_mode == 0) {
if (THL_mode == 1 || THL_mode == 0)
{
if (Selet_dta("4001") > 16)
{
Updata_dta("4001", (int)(Selet_dta("4001") + Selet_dta("5001") / 100 * _rd));
Updata_dta("4001", (int)(Selet_dta("4001") - _rd));
Updata_dta("4001", (int)(Selet_dta("4001") - _rd/10));
}
Updata_dta("4001", (int)(Selet_dta("4001") + Selet_dta("5001") / 50 * _rd));
}
else if (THL_mode == 2) { Updata_dta("4001", (int)(Selet_dta("4001") - Selet_dta("5002") / 100*_rd)); }
else if (THL_mode == 2)
{ Updata_dta("4001", (int)(Selet_dta("4001") - Selet_dta("5002") / 100*_rd)); }
}
public static DataTable dt_d = new DataTable("DIO");

Loading…
Cancel
Save