This commit is contained in:
sc committed 2024-09-19 00:05:11 +08:00
commit aa954eb61b
10 files changed
+117 -73

No files matched your search

+65 -65
View File
@@ -183,28 +183,27 @@ 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;
bool SETP_runtime = false; //步骤开始
int SETP_runtime; //步骤开始
bool STEP_finish = false; //步骤结束
int STEP_TIME = 0; //步骤计时S
int THL_mode = 0; //温控模式 0保温 1加热 2降
double TEMP_co = 0; //计算温度
public void STEP_START(AddressUpdateEventArgs e)
public void STEP_START(string ID,double P1,double P2,double P3,double P4,double P5)
{
if (e.StepID == "001")
if (ID == "001")
{
STEP_ID = "001";
STEP_P1 = Convert.ToDouble(e.P1);
STEP_P2 = Convert.ToDouble(e.P2);
STEP_P3 = Convert.ToDouble(e.P3);
STEP_P1 = Convert.ToDouble(P1);
STEP_P2 = Convert.ToDouble(P2);
STEP_P3 = Convert.ToDouble(P3);
double t_t = Convert.ToDouble(Selet_dtm("1010"));
if (STEP_P1 > t_t) { THL_mode = 1; }
@@ -213,80 +212,81 @@ namespace DyeingComputer.ViewModel
TEMP_co = t_t;
updata_dtm("1003", STEP_P2 / 600);
STEP_TIME = Convert.ToInt16(STEP_P3) * 60;
SETP_runtime =true;
WORK_RUN = 2;
SETP_runtime =1;
}
}
TimeSpan ts=new TimeSpan(1);//1秒间隔
void STEP_RUN()
{
if (SETP_runtime)
if (WORK_RUN == 2)
{
switch (STEP_ID)
// if (SETP_runtime == 1)
// {
if (STEP_ID == "001")
{
case "001":
double TO = 0;
double T = Selet_dtm("1010"); //实际温度
if (THL_mode == 0) //保温
{
//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;
}
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;
}
double TO = 0;
double T = Selet_dtm("1010"); //实际温度
if (THL_mode == 0) //保温
{
//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;
updata_dtm("1004", TO);
updata_dtm("1005", TEMP_co);
break;
case "007":
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;
}
break;
case "008":
updata_dtm("1004", TO);
updata_dtm("1005", TEMP_co);
break;
case "013":
break;
case "015":
break;
case "017":
break;
default: break;
}
// }
// else
// {
// if (Name_err == null)
// {
// Status_Str = Resources.Await;
// }
// }
}
else
else if (WORK_RUN == 1)
{
if (Name_err == null)
Status_Str = Resources. Paused;
}
else if (WORK_RUN == 0)
{
if (Name_err == null)
{
int TIMEH = DIDETime / 3600;
int TIMEM = (DIDETime - TIMEH * 3600) / 60;
int TIMES = DIDETime - TIMEH*3600 - TIMEM*60;
Status_Str = Resources.Dide + string.Format(" {0:D4}", TIMEH) +":"+ string.Format(" {0:D2}", TIMEM) + ":" + string.Format(" {0:D2}", TIMES);
int TIMES = DIDETime - TIMEH * 3600 - TIMEM * 60;
Status_Str = Resources.Dide + string.Format(" {0:D4}", TIMEH) + ":" + string.Format(" {0:D2}", TIMEM) + ":" + string.Format(" {0:D2}", TIMES);
}
}
}
@@ -389,9 +389,9 @@ namespace DyeingComputer.ViewModel
await Task.Run(() =>
{
SYSData_A = ToObservableCollection<DATA_A>(dt_a);
SYSData_D = ToObservableCollection<DATA_D>(dt_d);
SYSData_M = ToObservableCollection<DATA_M>(dt_m);
// SYSData_A = ToObservableCollection<DATA_A>(dt_a);
// SYSData_D = ToObservableCollection<DATA_D>(dt_d);
// SYSData_M = ToObservableCollection<DATA_M>(dt_m);
});
}