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

📄 md142asn.c

📁 64输入32输出单片机程序
💻 C
📖 第 1 页 / 共 2 页
字号:
		else
		    if(run_time==tick_clock)
		       _outp_bit(ALARM,ON);
		break;

	    case 13:
		if(sprayok)
		{
		 sprayok=FALSE;
		 proc++;
		}
		break;
	    case 14:
		if(blowstop)
		{
//		  _outp_bit(SPRAY_L,OFF);
//		  _outp_bit(SPRAY_R,OFF);
//		  _outp_bit(ROTATE,OFF);
		  blowstop=FALSE;
		  run_time=tick_clock+time_out;
		  proc++;
		}
		break;
	    case 15:
		 if(_inp_bit(TRAN_HORNBD)&&_inp_bit(AIR_MAGNET2UP))

		     {
			_outp_bit(AIR_MAGNET2,ON);
			_outp_bit(ARM2,ON);
			run_time=tick_clock+time_out;
			proc++;
		      }
		 else
		    if(run_time==tick_clock)
		       _outp_bit(ALARM,ON);
		  break;
	    case 16:
		if(_inp_bit(TRAN_HORNBD)&&_inp_bit(ARM2DN))
		   {
		    _outp_bit(SHAFT_HOLD,OFF);
		    _outp_bit(JIG_REMOVE,ON);
		   run_time=tick_clock+time_out;
		   proc++;

		   }
		else
		    if(run_time==tick_clock)
		       _outp_bit(ALARM,ON);
		break;
	    case 17:
		if(_inp_bit(JIG_REMOVEFD))
		  {
		   _set_delay(10);
		   _outp_bit(ARM2,OFF);
		   run_time=tick_clock+time_out;
		   proc++;
		  }
		else
		    if(run_time==tick_clock)
		       _outp_bit(ALARM,ON);
		break;
	    case 18:
		if(_inp_bit(ARM2UP))
		  {
		    _set_delay(10);
		    _outp_bit(JIG_EJECT,ON);
		    run_time=tick_clock+time_out;
		    proc++;
		  }
		else
		    if(run_time==tick_clock)
		       _outp_bit(ALARM,ON);
		break;
	    case 19:
		if(_inp_bit(JIG_EJECTFD))
		  {
		    _set_delay(20);
		    _outp_bit(JIG_REMOVE,OFF);
		    _set_delay(20);
		   run_time=tick_clock+time_out;
		   proc++;
		  }
		else
		    if(run_time==tick_clock)
		       _outp_bit(ALARM,ON);
		break;
	    case 20:
		if(_inp_bit(JIG_REMOVEBD))
		  {
		    _outp_bit(JIG_EJECT,OFF);
		   run_time=tick_clock+time_out;
		  proc++;
		  }   //case 20 if loop
		else
		    if(run_time==tick_clock)
		       _outp_bit(ALARM,ON);
		break;
	    }

	    current_step=proc;
	    if(previous_step!=current_step)
	      {
	       previous_step=current_step;

	       _outp_bit(ALARM,OFF);
	      }

	    if(rece_com==Pause)
	      {
//	       _reserve_outpbuf();
	       while(rece_com==Pause);
	       if(rece_com==Start)
		 {
		  rece_com=OFF;
//		  _reload_outpbuf();
		  _set_delay(80);
		 }
	      }
	    if(rece_com==Manual)
	      {
	       _reserve_outpbuf();
	       _manual_operate();
	       while((rece_com!=Start)&&(rece_com!=Exit));
	       if(rece_com==Start)
		 {
		  rece_com=OFF;
		  _reload_outpbuf();
		  _set_delay(80);
		 }
	      }
	    if(proc<4)
	      {
	       heat1_time=heat1_time_set+tick_clock;
	       heat2_time=heat2_time_set+tick_clock;
	       spray_time=spray_time_set+tick_clock;
	       heat1_end=0;
	       heat2_end=0;
	       spray_end=0;
	      }
	    if(spray_end==1)
	      {
	       spray_end=0;
	       sprayok=TRUE;
	       _outp_bit(VIBRATE,OFF);
	       blow_time=blow_time_set+tick_clock;
	      }
	    if(blow_end==1)
	      {
		_outp_bit(SPRAY_L,OFF);
		_outp_bit(SPRAY_R,OFF);
		_outp_bit(ROTATE,OFF);
		blow_end=0;
		blowstop=TRUE;
	      }
	    if(heat1_end==1)
	      {
	       _outp_bit(INDUCTION1,OFF);
	       _outp_bit(MAGFORCE1,OFF);

	       heat1_end=0;
	      }
	    if(heat2_end==1)
	      {
	       _outp_bit(INDUCTION2,OFF);
	       _outp_bit(MAGFORCE2,OFF);
	       heat2_end=0;
	       while(!_inp_bit(INDUCTION2BD));
	      _set_delay(10);
	      _outp_bit(UNLOAD,ON);
	      while(!_inp_bit(UNLOADUP));
	      _outp_bit(DELIVER,ON);
	      while(!_inp_bit(DELIVERFD));
	      _outp_bit(UNLOAD,OFF);
	      _outp_bit(DELIVER,OFF);
	      }

	    if((proc==21)&&(_inp_bit(INDUCTION1BD))
	       &&(_inp_bit(INDUCTION2BD)))
	       proc=0;

	 }   //while loop2

       }     //if loop
     if(rece_com==Manual)
       {
	 _reserve_outpbuf();
	 _manual_operate();
	 _reload_outpbuf();
	 _set_delay(50);
	 rece_com=OFF;
       }
    }  //while loop1

}

//-----------------------------------------------------
void _manual_operate()
{
    char port;
    while(rece_com!=Exit)
    {
      if(rece_com==Datatrans)
      {
       rece_com=0;
       switch(rece_data[0])
	  {
	    case VALVE1:    //	LOAD_VERT	out1
		if(_inp_bit(INDUCTION1BD))
		   _outp_bit(LOAD_VERT,~_outp_stus(LOAD_VERT));
		port=1;
		break;
	    case VALVE2:    // LOAD_HORN	out2
		if(_inp_bit(LOAD_VERTUP)&&_inp_bit(INDUCTION1BD)&&_inp_bit(ARM1UP))
		   {
		      if(_inp_bit(LOAD_HORNBD))
			{
			   _outp_bit(LOAD_HORN11,OFF);
			   _outp_bit(LOAD_HORN10,ON);	    //forward
			}
		   }
		if(_inp_bit(LOAD_VERTDN)&&_inp_bit(INDUCTION1BD))
		   {
		      if(_inp_bit(LOAD_HORNFD))
			{
			   _outp_bit(LOAD_HORN10,OFF);
			   _outp_bit(LOAD_HORN11,ON);	    //backward
			}
		   }
		port=2;
		break;

	    case VALVE3:       // INDUCTION1		out4
		if(_inp_bit(LOAD_VERTDN)&&_inp_bit(ARM1UP) )
		   _outp_bit(INDUCTION1,~_outp_stus(INDUCTION1));
		port=4;
		break;
	    case VALVE4:       //  ARM1			 out6
		   port=6;
		   _outp_bit(ARM1,~_outp_stus(ARM1) );
		break;
	    case VALVE5:       // ARM2			  out7
		if(_inp_bit(COMM_INSERTFD))
		_outp_bit(ARM2,~_outp_stus(ARM2) );
		port=7;
		break;

	    case VALVE6:      //ARM3	out8
		if(_inp_bit(COMM_INSERTFD)&&_inp_bit(INDUCTION2BD))
		   _outp_bit(ARM3,~_outp_stus(ARM3));
		port=8;
		break;
	    case VALVE7:      //AIR_MAGNET1		    out9

		   _outp_bit(AIR_MAGNET1,~_outp_stus(AIR_MAGNET1) );
		port=9;
		break;
	    case VALVE8:       //AIR_MAGNET2	   out11
		   _outp_bit(AIR_MAGNET2,~_outp_stus(AIR_MAGNET2) );
		port=11;
		break;
	    case VALVE9:      //AIR_CHUCK	    out13
		   _outp_bit(AIR_CHUCK,~_outp_stus(AIR_CHUCK) );
		port=13;
		break;
	    case VALVE10:     //TRAN_HORN	    out15

		if( _inp_bit(ARM1UP)&&_inp_bit(ARM2UP)&&_inp_bit(ARM3UP) )
		   {
			if(_inp_bit(TRAN_HORNFD))
			{
			   _outp_bit(TRAN_HORN10,OFF);
			   _outp_bit(TRAN_HORN11,ON);
			}
		      if(_inp_bit(TRAN_HORNBD))
			{
			   _outp_bit(TRAN_HORN11,OFF);
			   _outp_bit(TRAN_HORN10,ON);
			}
		   }
		port=15;
		break;
	    case VALVE11:   //SHAFT_HOLD	out17
		    _outp_bit(SHAFT_HOLD,~_outp_stus(SHAFT_HOLD));
		 port=17;
		break;
	    case VALVE12:   //SPRAY_L	 out18
		_outp_bit(SPRAY_L,~_outp_stus(SPRAY_L));
		port=18;
		break;
	    case VALVE13:     //SPRAY_R	   out20
		_outp_bit(SPRAY_R,~_outp_stus(SPRAY_R));
		port=20;
		break;
	    case VALVE14:     //JIG_EJECT	   21
		_outp_bit(JIG_EJECT,~_outp_stus(JIG_EJECT) );
		port=21;
		break;
	    case VALVE15:      //JIG_REMOVE	    22
		   _outp_bit(JIG_REMOVE,~_outp_stus(JIG_REMOVE));
		port=22;
		break;
	    case VALVE16:      //COMM_LOAD	23
		if(_inp_bit(COMM_INSERTFD))
		   {
		      if(_inp_bit(COMM_LOADFD))
			{
			   _outp_bit(COMM_LOAD10,OFF);
			   _outp_bit(COMM_LOAD11,ON);
			}
		      if(_inp_bit(COMM_LOADBD))
			{
			   _outp_bit(COMM_LOAD11,OFF);
			   _outp_bit(COMM_LOAD10,ON);
			}

		   }
		port=23;
		break;

	    case VALVE17:    //COMM_INSERT		25
		if(_inp_bit(ARM3UP)&&_inp_bit(ARM2UP))
		_outp_bit(COMM_INSERT,~_outp_stus(COMM_INSERT));
		port=25;
		break;
	    case VALVE18:     //INDUCTION2		27
		if(_inp_bit(UNLOADDN))
		_outp_bit(INDUCTION2,~_outp_stus(INDUCTION2));
		port=27;
		break;
	    case VALVE19:     //UNLOAD:		    29
		if(_inp_bit(INDUCTION2BD))
		_outp_bit(UNLOAD,~_outp_stus(UNLOAD));
		port=29;
		break;
	    case VALVE20:
		_outp_bit(DELIVER,~_outp_stus(DELIVER));	//32
		port=32;
		break;
	    case 37:
		_outp_bit(ALARM,~_outp_stus(ALARM));	//5
		port=5;
		break;
	    case VIBRATE:
		_outp_bit(VIBRATE,~_outp_stus(VIBRATE));	//30
		_outp_bit(SPRAY_L,_outp_stus(VIBRATE));
		_outp_bit(SPRAY_R,_outp_stus(VIBRATE));
		port=30;
		break;
	    case ROTATE:
		_outp_bit(ROTATE,~_outp_stus(ROTATE));	  //31
		port=31;
		break;
	    case 35:
		_outp_bit(MAGFORCE1,~_outp_stus(MAGFORCE1));  //10
		port=10;
		break;
	    case 36:
		_outp_bit(MAGFORCE2,~_outp_stus(MAGFORCE2));  //12
		port=12;
		break;
	    default:port=0x7f;	//invalid number
	  }
	 _set_delay(5);
	 if(port==0x7f)
	    TranStream.datablk[1] = 0x7f;
	 else
	    TranStream.datablk[1] = _outp_stus(port);
	 _trf_msge (ID_Panel,Datatrans,0x02);
      }   // if loop
    }	  // while loop
    if(rece_com==Exit)
       rece_com=OFF;
}
//-------------------------------------------------------
//-----------------------------------------------------
void _setup(void)
{
    TranStream.datablk[2] = _read_eepbyte(&datalist[2]);
    TranStream.datablk[3] = _read_eepbyte(&datalist[3]);
    TranStream.datablk[4] = _read_eepbyte(&datalist[4]);
    TranStream.datablk[5] = _read_eepbyte(&datalist[5]);
    _trf_msge (ID_Panel,Datatrans,0x06);
    _set_delay(10);
    while(rece_com!=Exit)
	{
	    if(rece_com==Datatrans)
	      {
		 rece_com=OFF;
		if(rece_data[2]!=_read_eepbyte(&datalist[2]));
		   _write_eepbyte(&datalist[2],rece_data[2]);

		if(rece_data[3]!=_read_eepbyte(&datalist[3]));
		   _write_eepbyte(&datalist[3],rece_data[3]);

		if(rece_data[4]!=_read_eepbyte(&datalist[4]));
		   _write_eepbyte(&datalist[4],rece_data[4]);

		if(rece_data[5]!=_read_eepbyte(&datalist[5]));
		   _write_eepbyte(&datalist[5],rece_data[5]);
	      }
	}

}
//----------------------------------------------------
void _init_machine()
{
    _outp_port (0x88,0x00);
    _outp_port (0x89,0x00);
    _outp_port (0x8a,0x00);
    _outp_port (0x8b,0x00);
}

⌨️ 快捷键说明

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