yidong 1 месяц назад
Родитель
Сommit
20be0e165b

+ 3 - 0
BoardInterface/onechip_devinf_define.h

@@ -134,6 +134,9 @@ typedef struct {
 	float lysis_Kp;
 	float lysis_Ki;
 	float lysis_Kd;
+	float lysis_idleTemp;
+	float lysis_Goal;
+	float lysis_HeatTime;
 	
 	float amplif_Kp;
 	float amplif_Ki;

+ 1 - 1
BoardInterface/onechip_load_inf.h

@@ -8,7 +8,7 @@
 #define SOFT_VERSION_1  7	//软件版本号
 #define SOFT_VERSION_2  4	//软件版本号
 #define SOFT_VERSION_3  0	//软件版本号
-#define SOFT_VERSION_4  17	//软件版本号
+#define SOFT_VERSION_4  18	//软件版本号
 
 
 

+ 8 - 6
DriverInterface/communication.c

@@ -606,11 +606,13 @@ int updateDate_response(CmdMessage *pMsg, unsigned char result)
 int send_temp_parm(uint8_t cmd, uint8_t *parg)
 {
 	/*设置温度*/
-    sysinf.lysis.idletemp =  *(float *)(parg+4);
-    sysinf.lysis.pid.goal =  *(float *)(parg+8);
-    sysinf.lysis.worktime =  *(float *)(parg+12);
-    sysinf.lysis.worktime *= 10;
-    sysinf.lysis.recGoalFlag = 1;
+    sysinf.lysis_idleTemp =  *(float *)(parg+4);
+    sysinf.lysis_Goal =  *(float *)(parg+8);
+    sysinf.lysis_HeatTime =  *(float *)(parg+12);
+    updatParm_lysis();
+    cfg_save_cfg_param();
+
+
 	return 1;
 }
 int setTemp_response(CmdMessage *pMsg, uint8_t result)
@@ -833,7 +835,7 @@ int con_heat_action(uint8_t cmd, uint8_t *parg )
             *(float *)(data+16) = sysinf.lysis_Kp;	
             *(float *)(data+20) = sysinf.lysis_Ki;	
             *(float *)(data+24) = sysinf.lysis_Kd;		
-            *(float *)(data+28) = sysinf.lysis.lastgaol;	
+            *(float *)(data+28) = sysinf.lysis.setgaol;	
             *(float *)(data+32) = sysinf.lysis.idletemp;	
             *(float *)(data+36) = sysinf.lysis.worktime/10;	
             pMsg->data = data;

+ 4 - 0
DriverInterface/onchip_flash.c

@@ -189,6 +189,10 @@ void cfg_load_default_param(void)
 	sysinf.lysis_Kp = 5;
 	sysinf.lysis_Ki = 0.01;
 	sysinf.lysis_Kd = 0;
+	
+	sysinf.lysis_idleTemp  =0;
+	sysinf.lysis_Goal = 95;
+	sysinf.lysis_HeatTime = 270;
 
 
 

+ 22 - 23
DriverInterface/usr_lysis.c

@@ -50,6 +50,9 @@ void updatParm_lysis(void) {
 	sysinf.lysis.pid.Kp = sysinf.lysis_Kp;
 	sysinf.lysis.pid.Ki = sysinf.lysis_Ki ;
 	sysinf.lysis.pid.Kd = sysinf.lysis_Kd;
+	sysinf.lysis.idletemp	= sysinf.lysis_idleTemp;
+	sysinf.lysis.setgaol	= sysinf.lysis_Goal;
+	sysinf.lysis.worktime	= sysinf.lysis_HeatTime * 10;
 }
 
 
@@ -89,7 +92,6 @@ uint32_t Therm_Check(void) {
  */
 void set_lysis(float goal) {
    sysinf.lysis.pid.goal = goal;
-   sysinf.lysis.lastgaol = goal;
    if(goal > (sysinf.lysis.overHeat + sysinf.lysis.pid.realtemp )){
 		sysinf.lysis.pid_st = PID_OVERHEAT;
 		sysinf.lysis.pid.goal += sysinf.lysis.overHeat;
@@ -196,10 +198,7 @@ uint32_t lysis_work(void) {
 			ptherm->firstin = false;
 			updateLysisState(SYS_STATE_PREPARE);sysinf.lysisState = SYS_STATE_PREPARE; 
 			firstTemp = getADC_Chanel_value(1);
-			set_lysis(95);				
-   			ptherm->pid.goal = 95;	
-    		ptherm->worktime = 3000;	
-    		ptherm->lastgaol = 95;
+			set_lysis(sysinf.lysis.setgaol);
 			last10ms = sysinf.conter10ms;			
 		}else{
 			float heattemp = getADC_Chanel_value(1); 
@@ -260,24 +259,31 @@ uint32_t lysis_work(void) {
 	}break;
 	case THERMOSTAT_IDLE:{
 		if(ptherm->firstin){			
-			updateLysisState(SYS_STATE_READY);
+			// updateLysisState(SYS_STATE_READY);
 			ptherm->firstin = false;
 			Close_therm(0);
 			ptherm->recGoalFlag = 0;
 			firstTemp = getADC_Chanel_value(1);
 			
+			updateLysisState(SYS_STATE_CHECK);
 		}else{	
-		    if(ptherm->recGoalFlag){
-				set_lysis(ptherm->pid.goal);	
+		    if(Read_Tupe()){
+				set_lysis(ptherm->setgaol);	
 				ptherm->recGoalFlag = 0;	
-				updateLysisState(SYS_STATE_PREHEAT);
 				firstTemp = getADC_Chanel_value(1);
 				last10ms = sysinf.conter10ms;
-			}
-			if(ptherm->pid_stable){
 				ptherm->thermostat_st = THERMOSTAT_INSERT;
-				ptherm->firstin = true;	
+				ptherm->firstin = 1;
+				
 			}
+		}
+	}break;
+	case THERMOSTAT_INSERT:{
+		if(ptherm->firstin){		
+			ptherm->firstin = false;
+			updateLysisState(SYS_STATE_RUNING);
+		}else{
+			/*加热异常判断*/		    
 			if(((ptherm->pid.realtemp - firstTemp) < HEAT_WORK_THD)&&
 				((sysinf.conter10ms-last10ms)> HEAT_TEST_TIME)&&((ptherm->pid.goal - firstTemp) > 10.0)){
 					/*目标温差大于10,加热启动30s之内没升温2.5° 超时判断*/
@@ -285,18 +291,11 @@ uint32_t lysis_work(void) {
 					updateLysisState(SYS_STATE_ERROR_HW);
 					error_set(ERROR_HEATFUC_EER);
 					ptherm->firstin = true;
-			  }
-		}
-	}break;
-	case THERMOSTAT_INSERT:{
-		if(ptherm->firstin){			
-			updateLysisState(SYS_STATE_CHECK);
-			ptherm->firstin = false;
-		}else{	
-		    if(Read_Tupe()){
+			  }	
+			if((ptherm->pid.realtemp + 5) >ptherm->setgaol )	{
 				ptherm->thermostat_st = THERMOSTAT_WORK;
-				ptherm->firstin = true;		
-				}
+				ptherm->firstin = true;	
+			}	
 		}
 	}break;
 	case THERMOSTAT_WORK:{

+ 1 - 1
DriverInterface/usr_lysis.h

@@ -77,7 +77,7 @@ typedef struct
     float overCoolTime;       
     float idletemp;  	      
     float worktime;  	      
-    float lastgaol;  		     
+    float setgaol;  		     
     pid_def  pid;	
 	unsigned int pwdId;
     float cabinTem;    

+ 4 - 4
DriverInterface/ws2812.c

@@ -151,7 +151,7 @@ void light_set(uint8_t mode_select, uint16_t speed_ms, uint32_t rgb_color, uint8
     lihgt_ctrl.light_color[channel] = rgb_color;
 
     //两边步调同步
-    if(lihgt_ctrl.light_mode[0] == lihgt_ctrl.light_mode[1])
+    if((lihgt_ctrl.light_mode[0] == lihgt_ctrl.light_mode[1])&&(lihgt_ctrl.light_color[0] == lihgt_ctrl.light_color[1]))
     {
         lihgt_ctrl.breath_count[0] = lihgt_ctrl.breath_count[1];
         lihgt_ctrl.breath_dir[0] = lihgt_ctrl.breath_dir[1];
@@ -181,9 +181,9 @@ void light_update(void){
         return ;
     } else   if(sysinf.pc_link_timeout == OFFLINE_TIME){
         light_set(MODE_BLINK,1000, COLOR_YELLOW,0);	//
-        light_set(MODE_BLINK,1000, COLOR_YELLOW,1);	//
+        // light_set(MODE_BLINK,1000, COLOR_YELLOW,1);	//
         sysinf.pc_channel_recv  = PC_CONNECT_TYPE_NULL;
-        return ;
+        // return ;
     }   else if(sysinf.pc_link_timeout < OFFLINE_TIME){
         switch (sysinf.amplifState){
             case SYS_STATE_PREPARE:
@@ -210,7 +210,7 @@ void light_update(void){
     }else if(sysinf.lysisState == SYS_STATE_ERROR_HW){
         light_set(MODE_NORMAL,1000, COLOR_RED,0);	//仪器故障,双边同步
         light_set(MODE_NORMAL,1000, COLOR_RED,1);	//
-    }   else if(sysinf.pc_link_timeout < OFFLINE_TIME){
+    }   else {
         switch (sysinf.lysisState){
             case SYS_STATE_PREPARE:
             case SYS_STATE_PREHEAT:            

+ 1 - 98
MDK-ARM/mini7_V2.uvoptx

@@ -148,104 +148,7 @@
           <Name>-U-O142 -O2254 -SF4000 -C0 -A0 -I0 -HNlocalhost -HP7184 -P1 -N00("ARM CoreSight SW-DP") -D00(1BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F10x_512.FLM -FS08000000 -FL080000 -FP0($$Device:STM32F103RE$Flash\STM32F10x_512.FLM)</Name>
         </SetRegEntry>
       </TargetDriverDllRegistry>
-      <Breakpoint>
-        <Bp>
-          <Number>0</Number>
-          <Type>0</Type>
-          <LineNumber>547</LineNumber>
-          <EnabledFlag>1</EnabledFlag>
-          <Address>134321222</Address>
-          <ByteObject>0</ByteObject>
-          <HtxType>0</HtxType>
-          <ManyObjects>0</ManyObjects>
-          <SizeOfObject>0</SizeOfObject>
-          <BreakByAccess>0</BreakByAccess>
-          <BreakIfRCount>1</BreakIfRCount>
-          <Filename>..\DriverInterface\ESP32_WROOM_32D.c</Filename>
-          <ExecCommand></ExecCommand>
-          <Expression>\\mini7_V2\../DriverInterface/ESP32_WROOM_32D.c\547</Expression>
-        </Bp>
-        <Bp>
-          <Number>1</Number>
-          <Type>0</Type>
-          <LineNumber>167</LineNumber>
-          <EnabledFlag>1</EnabledFlag>
-          <Address>134341732</Address>
-          <ByteObject>0</ByteObject>
-          <HtxType>0</HtxType>
-          <ManyObjects>0</ManyObjects>
-          <SizeOfObject>0</SizeOfObject>
-          <BreakByAccess>0</BreakByAccess>
-          <BreakIfRCount>1</BreakIfRCount>
-          <Filename>..\DriverInterface\van_BSP_Scanner.c</Filename>
-          <ExecCommand></ExecCommand>
-          <Expression>\\mini7_V2\../DriverInterface/van_BSP_Scanner.c\167</Expression>
-        </Bp>
-        <Bp>
-          <Number>2</Number>
-          <Type>0</Type>
-          <LineNumber>303</LineNumber>
-          <EnabledFlag>1</EnabledFlag>
-          <Address>0</Address>
-          <ByteObject>0</ByteObject>
-          <HtxType>0</HtxType>
-          <ManyObjects>0</ManyObjects>
-          <SizeOfObject>0</SizeOfObject>
-          <BreakByAccess>0</BreakByAccess>
-          <BreakIfRCount>0</BreakIfRCount>
-          <Filename>..\DriverInterface\usr_motor.c</Filename>
-          <ExecCommand></ExecCommand>
-          <Expression></Expression>
-        </Bp>
-        <Bp>
-          <Number>3</Number>
-          <Type>0</Type>
-          <LineNumber>510</LineNumber>
-          <EnabledFlag>1</EnabledFlag>
-          <Address>0</Address>
-          <ByteObject>0</ByteObject>
-          <HtxType>0</HtxType>
-          <ManyObjects>0</ManyObjects>
-          <SizeOfObject>0</SizeOfObject>
-          <BreakByAccess>0</BreakByAccess>
-          <BreakIfRCount>0</BreakIfRCount>
-          <Filename>..\DriverInterface\usr_motor.c</Filename>
-          <ExecCommand></ExecCommand>
-          <Expression></Expression>
-        </Bp>
-        <Bp>
-          <Number>4</Number>
-          <Type>0</Type>
-          <LineNumber>61</LineNumber>
-          <EnabledFlag>1</EnabledFlag>
-          <Address>0</Address>
-          <ByteObject>0</ByteObject>
-          <HtxType>0</HtxType>
-          <ManyObjects>0</ManyObjects>
-          <SizeOfObject>0</SizeOfObject>
-          <BreakByAccess>0</BreakByAccess>
-          <BreakIfRCount>0</BreakIfRCount>
-          <Filename>..\DriverInterface\user_heater.c</Filename>
-          <ExecCommand></ExecCommand>
-          <Expression></Expression>
-        </Bp>
-        <Bp>
-          <Number>5</Number>
-          <Type>0</Type>
-          <LineNumber>864</LineNumber>
-          <EnabledFlag>1</EnabledFlag>
-          <Address>0</Address>
-          <ByteObject>0</ByteObject>
-          <HtxType>0</HtxType>
-          <ManyObjects>0</ManyObjects>
-          <SizeOfObject>0</SizeOfObject>
-          <BreakByAccess>0</BreakByAccess>
-          <BreakIfRCount>0</BreakIfRCount>
-          <Filename>..\DriverInterface\ESP32_WROOM_32D.c</Filename>
-          <ExecCommand></ExecCommand>
-          <Expression></Expression>
-        </Bp>
-      </Breakpoint>
+      <Breakpoint/>
       <WatchWindow1>
         <Ww>
           <count>0</count>