⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jf_act.c

📁 一款完整的家用电器程序,具有控制商用机的功能,应用广泛,有一定的参考价值
💻 C
📖 第 1 页 / 共 5 页
字号:
  		//压缩机停足3分钟后,若过载自动恢复,则恢复运行 。
  		//若压缩机正常运转15分钟,保护次数自动清0。若连续3次出现上述保护情况,则不能恢复运行,显示故障。
  		if (t_comp_run_times >=mint_comprun_set) run_state |=b_comp_run; //压缩机运行min时间到置标志1
  		if (t_comp_run_times<=250)
  		  {//压缩机运行时间到250分钟后不计时,否则按60秒计1分钟
  			t_comp_run++;  //计到60秒时次数+1,清计时
  			if (t_comp_run>=60) {t_comp_run_times++; t_comp_run=0;}
  			}
  		t_comp_stop =0; //压缩机启动时压缩机停机时间=0
  		t_comp_stop_times=0;
  		run_state &=~b_comp_stop; 
  		if ((t_comp_run>=15) ||(t_comp_run_times>=1)) //压缩机启动15秒后检测低压保护
  		   {	//低压保护延时计时
  			if ((PINA &b_lpp)==0) //低压开关保护LPP 接通时为低压保护
//			if (PINA &b_lpp) //200803低压开关保护LPP 断开为低压保护
 		  	  {
 		  	   if (t_lppdelay >=t_lppdelay_set)   fun_lpp(); //压缩机低压开关保护
	 		   else t_lppdelay++;	//计时+1	
  		   	  }
 		//20080201	else  if ((fault_state4 &b_fault_lpp) &&(fault_lpp_times <3))//压缩机运行15分钟后无低压保护,则清除连续次数
	   		else  if ((fault_lpp_times>0 ) &&(fault_lpp_times <3))//压缩机运行15分钟后无低压保护,则清除连续次数
	   		  {   
	   		  	  if (lpp_clear_time >900)	//超过15分钟正常运行时清除低压保护故障及次数
			   		{
			   			fault_state4 &=~b_fault_lpp;	//清除低压保护故障
			   			fault_lpp_times =0;	//低压保护故障出现次数=0
		   		  	  t_lppdelay =0; //计时清0
			 	      start_state2 &=~b_lpp_delay2start; //低压保护时启动计时3分钟
				      t_lpp_delaytime=0; //
				      run_state2 &=~b_lpp_delay2; //3分钟到标志清0
		         	 }   
		    	else lpp_clear_time++;	//累加低压保护清除的时间
		    } 
		   }          
  	   	}		
  	else	//comp=0
 	   {
 	   	if (t_comp_stop_times >=mint_compstop_set) run_state |=b_comp_stop; //压缩机停机min时间到置标志1
 		else  
 		  {
 		  	t_comp_stop++;	//计到60秒时次数+1,
 		 	 if (t_comp_stop>=60) {t_comp_stop_times++; t_comp_stop=0;}
 		  }
 		t_comp_run =0; //压缩机停机时压缩机运行时间清0
 		t_comp_run_times =0;
 		run_state &=~b_comp_run;
 	   }
 	    
//如高水位无连续10秒时,进水阀才可以动作 	   
	 if ((PINC &b_highwater)==0)   //1高水位时置故障200706	
	 {
	 	t_highwater_ok++;	//高水位无计时
	 	if (t_highwater_ok>=10)t_highwater_ok =31;
	 	} 
	 else 
	 {
	 	t_highwater_ok=0;
	 	PORTD &=~b_yv_in;	//高水位PD1进水阀YV-in关	
	}
}
 
void fun_delaytime_20s(void) //在20S中定时程序
  {
 //压缩机启动 延时
 	if (start_state &b_comp_ondelaystart)	
 		{
 		  t_comp_ondelay++;	//计时+1
 		  if (t_comp_ondelay >=t_comp_ondelay_set)
 			{  run_state |=b_comp_ondelay; //时间到置标志1
 			   start_state &=~b_comp_ondelaystart;//清开始计时标志
 			   t_comp_ondelay=0; //计时清0
 			}
 		}
 
 //内风机关机 延时	
  	if (start_state &b_fan_offdelaystart)	
 		{
 		  t_fan_offdelay++;	//计时+1
 		  if (t_fan_offdelay >=t_fan_offdelay_set)//时间到置标志1
 			{  run_state |=b_fan_offdelay;
 			   start_state &=~b_fan_offdelaystart;//清开始计时标志
 			   t_fan_offdelay=0; //计时清0
 			}
 		}		 
  //20S中定时1min	
      t_1min_times++;	//计时+1
 	  if (t_1min_times >=3) //定时1min到
 	  { t_1min_times=0;	//计时清0
 	    time_flag |=b_time_1min;	//置标志1
 	  }  
//20S中定时低压保护计时3min 	  
 	 if (start_state2 &b_lpp_delay2start)
 	 {
	 	  t_lpp_delaytime++;
	 	  if (t_lpp_delaytime >=9) //定时3min到
	 	  { t_lpp_delaytime=0;	//计时清0
	 	    run_state2 |=b_lpp_delay2;	//置低压保护计时3min 标志1
	 	    start_state2 &=~b_lpp_delay2start; //
	 	    if ((PINA &b_lpp)==0) //低压开关保护LPP接通时为低压保护 //延时3分钟后如低压开关保护,则判断低压保护故障
	// 		if (PINA &b_lpp) //200803低压开关保护LPP 断开为低压保护
	 	    	{
	 	    		fault_state4 |=b_fault_lpp;fault_lpp_times=3;
	 	    		fun_fault_beep();	//20080201增加故障报警蜂鸣器子程序
	 	    	} //低压保护连续次数
	// 	    else  //停机3分钟后低压恢复,立即开压缩机
	 	    else if (manual_set &b_comp_onask) //20080312停机3分钟后低压恢复且需开压缩机时,立即开压缩机
	 	      {
	 	      	PORTB |=b_comp;	// 开压缩机
				PORTC |= b_yv_dry; //PC0除湿阀YV-DRY开
				PORTG |= b_ofan;   //PG0外风机OFAN
				start_state |=b_yvcomp_delaystart;//需延时3秒开YV-COMP
		    	t_yvcomp_ondelay=0;	//供液阀延时启动时间3秒
		    	fault_state4 &=~b_fault_lpp;	//20080201清除故障标志
	 	      }	
	 	  } 
	 }
//20S中定时压缩机过载保护计时3min 	  
 	 if (start_state2 &b_comp_gz_delaystart)
 	 {
	 	  t_comp_gz_delaytime++;
	 	  if (t_comp_gz_delaytime >=9) //定时3min到
	 	  { 
	 	  	t_comp_gz_delaytime=0;	//计时清0
	 	    start_state2 &=~b_comp_gz_delaystart; //
	 	  //  if (PINC &b_comp_guozai) //延时3分钟后如压缩机过载保护,则判断压缩机过载保护故障
	 	   if ((PINC &b_comp_guozai)==0) //20080620
	 	      {
	 	    	fault_state4 |=b_fault_comp_guozai; fault_comp_guozai_times=3;//压缩机过载保护连续次数
	 	        fun_fault_beep();	//20080201增加故障报警蜂鸣器子程序
	 	      } 
//	 	    else  //停机3分钟后压缩机过载恢复,立即开压缩机
		else if (manual_set &b_comp_onask) //20080312停机3分钟后压缩机过载恢复且需开压缩机时,立即开压缩机
	 	      {
	 	      	PORTB |=b_comp;	// 开压缩机
				PORTC |= b_yv_dry; //PC0除湿阀YV-DRY开
				PORTG |= b_ofan;   //PG0外风机OFAN
				start_state |=b_yvcomp_delaystart;//需延时3秒开YV-COMP
		    	t_yvcomp_ondelay=0;	//供液阀延时启动时间3秒
		    	fault_state4 &=~b_fault_comp_guozai; //20080201停机3分钟后压缩机过载恢复,清除故障 
	 	      }	
	 	  } 
	 }	 
//20S中定时停3分钟后若排气温度小于90℃,压缩机重新启动	  
 	 if (start_state2 &b_exTHh_delaystart)
 	 {
	 	  t_exh_delaytime++;
	 	  if (t_exh_delaytime >=9) //定时3min到
	 	  {
	 	  	 t_exh_delaytime=0;	//计时清0
	 	    	start_state2 &=~b_exTHh_delaystart; //
	 	    	if (exghaust_TH >=90)	 //延时3分钟后排气温度大于90℃,判断排气保护故障
	 	    	 {
	 	    		fault_state4 |=b_fault_exTHh;fault_exh_times=3;	//PC5排气过高
	 	    		fun_fault_beep();	//20080201增加故障报警蜂鸣器子程序
		 	 	 }
//		 	 	else //停机3分钟后排气温度小于90℃,立即开压缩机
		else if (manual_set &b_comp_onask) //20080312停机3分钟后排气温度小于90℃且需开压缩机时,立即开压缩机
			 	      {
			 	      	PORTB |=b_comp;	// 开压缩机
						PORTC |= b_yv_dry; //PC0除湿阀YV-DRY开
						PORTG |= b_ofan;   //PG0外风机OFAN
						start_state |=b_yvcomp_delaystart;//需延时3秒开YV-COMP
				    	t_yvcomp_ondelay=0;	//供液阀延时启动时间3秒
				    	fault_state4 &=~b_fault_exTHh;	//20080201恢复时清除故障
			 	      }	
	 	  } 
	 }	 	  
	 
//20S中定时停3分钟后若感温包短路故障恢复,压缩机重新启动	  
 	 if (start_state2 &b_exTH0_delaystart)
 	 {
	 	  t_exTH0_delaytime++;
	 	  if (t_exTH0_delaytime >=9) //定时3min到
	 	  {
	 	  	 t_exTH0_delaytime=0;	//计时清0
	 	    	start_state2 &=~b_exTH0_delaystart; //
	 	    	if ((exghaust_AD>=250) ||(exghaust_AD<=5))	//延时3分钟后室外排气温度AD值不正常,判断排气感温包故障
	 	    	 {
	 	    		fault_state4 |=b_fault_exTH0;fault_exTH0_times=3;	//PC5排气过高
	 	    		fun_fault_beep();	//20080201增加故障报警蜂鸣器子程序
		 	 	 }
	//	 	 	else //停机3分钟后室外排气温度AD值正常,立即开压缩机
			else if (manual_set &b_comp_onask) //20080312停机3分钟后排气温度AD值正常且需开压缩机时,立即开压缩机
			 	      {
			 	      	PORTB |=b_comp;	// 开压缩机
						PORTC |= b_yv_dry; //PC0除湿阀YV-DRY开
						PORTG |= b_ofan;   //PG0外风机OFAN
						start_state |=b_yvcomp_delaystart;//需延时3秒开YV-COMP
				    	t_yvcomp_ondelay=0;	//供液阀延时启动时间3秒
				    	fault_state4 &=~b_fault_exTH0;	//20080201恢复时清除故障
			 	      }	
	 	  } 
	 }	 	  	 
 //20S中定时能量调节电磁阀3分钟15s计时  
 	 if (start_state2 &b_yvadjust_delaystart)
 	 {
	   t_yvadjust_delaytime++;
	   if (t_yvadjust_delaytime >=10) //定时3min15s到
	      {	 t_yvadjust_delaytime=0;	//计时清0
	 	 run_state2 |=b_yvadjust_delay;	//置能量调节电磁阀4分钟标志1
	 	 start_state2 &=~b_yvadjust_delaystart; //
	 	 PORTG &=~b_yv_adjust;	//PG1调节阀YV-ADJUST=0	
 		}
 	}
 //加湿电流连续5分钟低于1A	
 if ((fault_state2 &b_fault_humid_lowi)==0)
 {
   if (PIND &b_humid)  //加湿开时如加湿电流连续10分钟低于1A
     {
	  if (i_humid10 <10) 
	     {//20080128改为当加湿电流连续10分钟小于1A时
	     	if (fault_humid_lowi_time >=30)	
	     	  {
	     	  	fault_state2 |=b_fault_humid_lowi;
	 	    		fun_fault_beep();	//20080201增加故障报警蜂鸣器子程序
	     	  }
	     	else fault_humid_lowi_time++;
	     }
	  else fault_humid_lowi_time =0;
	}
	else fault_humid_lowi_time =0; //加湿关时电流小的时间清0	
  }
NOP();	//加湿开时如连续3分钟检测到电流>1.3ISET,排水故障
 if ((fault_state3 &b_fault_humid_paishui)==0)
 {
   if (PIND &b_humid)  //加湿开时如加湿电流连续3分钟>1.3ISET
     {	  
	  if (i_humid10 >(1.3*imax10_set)) 
	   {
	     if (fault_i_humid_time >=9)	
	     	 {
	     	  fault_state3 |=b_fault_humid_paishui;
	 	    fun_fault_beep();	//20080201增加故障报警蜂鸣器子程序
	     	 }
	     else fault_i_humid_time++;
	   }
	 else     fault_i_humid_time =0;
	} 
   else fault_i_humid_time =0;	//加湿关时
}
   
   //加湿开检测高水位
 if ((fault_state2 &b_fault_highwater)==0)
 {
  if (PIND &b_humid)  //加湿开时
     {
	   	if (start_state2 &b_highwater_delaystart)  //置高水位延时20min 开始标志1
	       	 {
	       		fault_highwater_time++; //高水位保护故障时间20min
	       		if (fault_highwater_time >=60) 
	       		 {
	      		    start_state2 &=~b_highwater_delaystart; //clear 
	   	 		    fault_highwater_time =0;
	   	 		 if (PINC &b_highwater) 
	   	 		  {
	   	 		 	fault_state2 |=b_fault_highwater;  //1高水位时置故障200706
	 	            fun_fault_beep();	//20080201增加故障报警蜂鸣器子程序
	   	 		  }
	    	 	}
	       	 }
	 else if (PINC &b_highwater)  //1高水位时置故障200706
	       	{
	       		start_state2 |=b_highwater_delaystart;
	       		fault_highwater_time=0;
	       	 PORTD &= ~b_yv_in; //PD1进水阀YV-IN关
	       	 }  
	   } 		   
   	else //加湿未开时停止检测高水位的20分钟延时
   	  {
   	  	start_state2 &=~b_highwater_delaystart; //clear 
       	 fault_highwater_time =0;
       }	
   }    	 		    
    //自动开机且风机开时,计时机组运行时间,机组运行15min后,检测回风温度\湿度高低设定值报警
    if (((mode & b_manual_on) ==0)&& ((mode & b_kaiji)!=0)&&((PING &b_fan)!=0))
  	    {//b_manual_on =0为自动,1为手动
 		  if (t_auto_run >=45)  //15min
			{  
 			   auto_state |=b_t_auto_run; //时间到置标志1
 			}
 		  else 	 t_auto_run++;	//计时+1
  	    } 
    else 
    	  {
    	  	t_auto_run=0;
    	  	auto_state &=~b_t_auto_run; //时间到置标志1
   		}    	 		    
 //在20秒中计时压缩机过载保护恢复时间
 	if (PINB &b_comp)	//压缩机开时
 	 {
//20080201 		if ((fault_state4 &b_fault_comp_guozai) &&(fault_comp_guozai_times <3) &&((PINC &b_comp_guozai)==0))
//	if ((fault_comp_guozai_times>0) &&(fault_comp_guozai_times <3) &&((PINC &b_comp_guozai)==0))   
	if ((fault_comp_guozai_times>0) &&(fault_comp_guozai_times <3) &&((PINC &b_comp_guozai)!=0))  //20080620 
	 {
		if (comp_guozai_clear_time >45)	//超过15分钟正常运行时清除过载保护故障及次数

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -