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

📄 plc_gshd.cld

📁 华中机床的plc程序
💻 CLD
📖 第 1 页 / 共 5 页
字号:
				if((mod_T_buf<=0)||(mod_T_buf>16)){
					mod_M_code(0)=-1;
					break;
				}
			}

			if(mod_T_buf==(*cutter_in_mag(0))){
				mod_M_code(0)=-1;
				atc_fin=0;
				break;
			}


			spdl_ctrl=4;

				atc_ctrl=atc_fin=0;
				atc_ctrl=1;
				new_cutter_t=mod_T_buf;
				new_cutter_p=mod_T_buf;
			break;

/*		case 6:
			if((mod_T_buf<=0)||(mod_T_buf>16))
			{
				mod_M_code(0)=-1;
				break;
			}
			if(mod_T_buf==(*cutter_in_mag(0))){
				mod_M_code(0)=-1;
				atc_fin=0;
				break;
			}
			if(den==0&&mod_T_code(0)!=-1) break;
			 msthold_dis(0)|=CH_M_HDIS;
			 spdl_ctrl=0;
			if(atc_enable()==0) {
			 *sys_ext_alm()|=0x8;
			 break;
			}
			else *sys_ext_alm()&=~0x8;

			if(atc_fin) {
					 atc_ctrl=atc_fin=0;
					 mod_M_code(0)=-1;
					 break;
			}
			else if(atc_ctrl==0){
				atc_ctrl=1;
				new_cutter_t=mod_T_buf;
				new_cutter_p=mod_T_buf;
			}
			spdl_ctrl=4;//zibian
			break;       */
/*		case 60:
//			if(get_axis_den(2)==0) break;
//			if(R[680]==0)
			{
				set_axis_moveto(2,1000,to_pp8ms(1000));
				R[680]=1;
			}
			if(get_axis_den(2)==0) break;
			if((*F_l[23]/100)==10)
			{
				R[680]=0;
				mod_M_code(0)=-1;
			}
			else                  				set_axis_moveto(2,1000,to_pp8ms(1000));
			break;       */
			case 60:
			if(atc_old_pos==-1)  //z zhou dao huan dao wei,zhu zhou dingxiang
//			atc_old_pos=get_axis_pos(2);
			l=-PMatc_z_pos1*100L;
			set_axis_moveto(2,l,to_pp8ms(5000));
			l=*F_l[23]/100;    //2004
			if((l+PMatc_z_pos1>=-1)&&(l+PMatc_z_pos1<=1))
			{
			mod_M_code(0)=-1;
			break;
			}
			else
			{
			l=-PMatc_z_pos1*100L;
			set_axis_moveto(2,l,to_pp8ms(2000));
			break;
			}

			case 71:
			if(atc_old_pos==-1)  //z zhou dao huan dao wei,zhu zhou dingxiang
//			atc_old_pos=get_axis_pos(2);
//			l=-PMatc_z_pos1*100L;
			set_axis_moveto(2,-80000,to_pp8ms(5000));
			l=*F_l[23]/100;    //2004
			if((l==(-800))||(l==(-799)))
			{
			mod_M_code(0)=-1;
			break;
			}
			else
			{
//			l=-PMatc_z_pos1*100L;
			set_axis_moveto(2,-80000,to_pp8ms(2000));
			break;
			}

			case 72:
			if(atc_old_pos==-1)  //z zhou dao huan dao wei,zhu zhou dingxiang
//			atc_old_pos=get_axis_pos(2);
//?			l=-PMatc_z_pos1*100L;
			set_axis_moveto(2,-90000,to_pp8ms(5000));
			l=*F_l[23]/100;    //2004
			if(l==(-900))
			{
			mod_M_code(0)=-1;
			break;
			}
			else
			{
//?			l=-PMatc_z_pos1*100L;
			set_axis_moveto(2,-90000,to_pp8ms(2000));
			break;
			}


		 case 70:
			if(atc_old_pos==-1)  //z zhou dao huan dao wei,zhu zhou dingxiang
//			atc_old_pos=get_axis_pos(2);
			l=-PMatc_z_pos2*100L;
			set_axis_moveto(2,0,to_pp8ms(4000));
//?			l=*F_l[23]/100;    //2004
//?			if((l+PMatc_z_pos1>=-5)&&(l+PMatc_z_pos1<=5))
			mod_M_code(0)=-1;
		break;

		case 61:
			if(get_axis_den(2)==0) break;
			set_axis_moveto(2,-34000,to_pp8ms(1000));
			if(get_axis_den(2)==0) break;

			if((*F_l[23]/10)==-3400)
				mod_M_code(0)=-1;
			else
				set_axis_moveto(2,-34000,to_pp8ms(1000));
			break;
		case 62:
			set_axis_move(2,1000,to_pp8ms(1000));
			mod_M_code(0)=-1;
			break;
		case 55://test moveto and get axis position by xjc at 2004 04 02
			if(R_l[32/4]==0)R_l[32/4]=*F_l[23];
			switch(R[11])
			{
				case 0:
//					set_axis_moveto(2,-50000,to_pp8ms(4000));
					R_l[36/4]=(long) B_i[20]*(long) 1000;
					set_axis_moveto(2,R_l[36/4],to_pp8ms(4000));
					if((get_axis_den(2)==1))
					{ //			l=-get_axis_pos(2)/100;   //2004
						if((R_l[36/4]/100)==(*F_l[23]/100))
						{
							 R[30]=1;
							if(X[31]&0x40)R[11]=1;
						}
					}
					break;
				case 1:
					R_l[36/4]=(long) B_i[21]*(long) 1000;
					set_axis_moveto(2,R_l[36/4],to_pp8ms(4000));
					if((get_axis_den(2)==1))
					{ //			l=-get_axis_pos(2)/100;   //2004
						if((R_l[36/4]/100)==(*F_l[23]/100))
						{
							R[30]=2;
							if(X[31]&0x40)R[11]=2;
						}
					}
					break;
				case 2:
					R_l[36/4]=(long) B_i[22]*(long) 1000;
					set_axis_moveto(2,R_l[36/4],to_pp8ms(4000));
					if((get_axis_den(2)==1))
					{ //			l=-get_axis_pos(2)/100;   //2004
						if((R_l[36/4]/100)==(*F_l[23]/100))
						{
							R[30]=3;
							if(X[31]&0x40)
							{
							set_axis_moveto(2,R_l[32/4],to_pp8ms(4000));
							R_l[32/4]=0;
							mod_M_code(0)=-1;
							R[11]=0;
							}
						}
					}
					break;
			}
			break;
		case 56:
			R[11]=0;
			mod_M_code(0)=-1;
			break;
		case 63:
			set_axis_move(2,-1000,to_pp8ms(1000));
			mod_M_code(0)=-1;
			break;
		case 7:
		case 8:	Y[0]|= 0x20;	Y[30]|= 0x20;	mod_M_code(0)=-1;	break;
		case 9:	if(den==0) break;
						Y[0]&=~0x20;	Y[30]&=~0x20;	mod_M_code(0)=-1;	break;
		case 2:
		case 30:
			Y[0]&=~0x20;	Y[30]&=~0x20;					//Guan Leng Que
			if(spdl_ctrl!=0)                    //Guan Zhu Zhou
			{
				spdl_ctrl=0;
				if((Y[32]&0x80)==0){
					spdl_zddwll_ahead=Spdl_ZD_Dwell;
					spdl_zddwll=Spdl_ZD_Time;
				}
			}
			if(spdl_stat==0)  	mod_M_code(0)=-1;
			break;
	/*	case 19:
			if(((spdl_ctrl&3)==0)&&((Y[30]&0x40)==0)&&((Y[32]&0x80)==0))
			{
				//if(get_axis_pos(2)<=5)  {//031210
					if(*F_l[23]<=5)  {
				Y[32]|=0x20;
				dingxiang();
				if((X[i_Spdl_Ori_Fin1]&i_Spdl_Ori_Fin2)||(P[58]==0))mod_M_code(0)=-1;
			 }
		 }
			else	mod_M_code(0)=-1;
			break;
		case 20:Y[32]&=~0x20;	dingxiangstop();	mod_M_code(0)=-1;	break;*/
			case 19:
			Y[32]|=0x20;
			dingxiang();
			dx_dwell=0;
			if(spdl_stat==4)
			{
				 if(Cur_lock==1)
				 {
					if(dxwancheng==1)
					{ mod_M_code(0)=-1;
						Cur_lock=0;
						 }
				 }
				 else
				 {	Cur_lock=0;   break;  }
			}

			break;
		case 20:
			Y[32]&=~0x20;
			dingxiangstop();
			mod_M_code(0)=-1;
			break;

                case 25:
                        Y[1]&=~0x40;
                        Y[1]&=~0x80;
                        mod_M_code(0)=-1;
                        break;

								case 21:
			Y[1]&=~0x80;
			Y[1]|=0x40;
			if((((~X[1])&R[101])&0x80)==0x80){
				Y[1]&=~0xd0;
				mod_M_code(0)=-1;
				break;
			}
			break;
		case 22:
			Y[1]&=~0x40;
			Y[1]|=0x80;
//			if(((X[1]&(~R[101]))&0x80)==0x80){
			if((((~X[1])&R[101])&0x80)==0x80){
				Y[1]&=~0xd0;
				mod_M_code(0)=-1;
				break;
				}
				break;
								case 23:
			Y[1]|=0X10;
			mod_M_code(0)=-1;
			break;
                case 24:
			Y[1]&=~0X10;
			mod_M_code(0)=-1;
			break;

/*
		//-------------- zi dong huan dang --------------
		case 11:
			if((P[25]==0)||(P[25]==1)){	mod_M_code(0)=-1; break;	}
			if(spdl_ctrl==0)
			{
				if(huandang_stag==0)
				{
					Y[5]|=0x80;
					huandang_dwell=huandang_dwelltime;huandang_stag=1;
				}
			}
			else {if(spdlcd_eng==0)mod_M_code(0)=-1;break;}

			if(((X[7]&0xc0)==0x80)&&(Y[5]&0x80))
			{
				huandang_stag=0;
				huandang_dwell=0;
				mod_M_code(0)=-1;
			}
			if(P_i[34]==0)
			{
				switch(huandang_stag)
				{
					case 1:	if(huandang_dwell){huandang_dwell-=1;Y[5]|=0x80;}
									else              {huandang_dwell=0;huandang_stag=2;}
									break;
					case 2:	if(((X[7]&0xc0)==0x80)&&(Y[5]&0x80))   mod_M_code(0)=-1;
									else  {Y[5]&=~0x80;huandang_dwell=huandang_dwelltime;huandang_stag=3;}
									break;
					case 3:	if(huandang_dwell){huandang_dwell-=1;}
									else              {huandang_dwell=0;huandang_stag=4;
									spdlcd_eng=1;spdlcd_time=Spdl_CD_Time;}
									break;
					case 4:	if((X[8]&R[18]&0x10)&&(spdlcd_eng==0)){
										huandang_dwell=huandang_dwelltime;huandang_stag=1;
									}
									break;
					default:huandang_stag=0;
				}
			}
			else
			{
				huandang_stag=0;
				huandang_dwell=0;
				if((X[7]&0xc0)==0x80)   mod_M_code(0)=-1;
			}
			break;
		case 13:
			if((P[25]==0)||(P[25]==1)){	mod_M_code(0)=-1; break;	}
			if(spdl_ctrl==0)
			{
				if(huandang_stag==0){Y[5]&=~0x80;huandang_dwell=huandang_dwelltime;huandang_stag=1;}
			}
			else {if(spdlcd_eng==0)mod_M_code(0)=-1;break;}

			if(((X[7]&0xc0)==0x40)&&((Y[5]&0x80)==0))
			{
				huandang_stag=0;
				huandang_dwell=0;
				mod_M_code(0)=-1;
			}
			if(P_i[34]==0)
			{
				switch(huandang_stag)
				{
					case 1:	if(huandang_dwell){huandang_dwell-=1;Y[5]&=~0x80;}
									else              {huandang_dwell=0;huandang_stag=2;}
									break;
					case 2:	if(((X[7]&0xc0)==0x40)&&((Y[5]&0x80)==0))mod_M_code(0)=-1;
									else{Y[5]|=0x80;huandang_dwell=huandang_dwelltime;huandang_stag=3;}
									break;
					case 3:	if(huandang_dwell){huandang_dwell-=1;}
									else{huandang_dwell=0;huandang_stag=4;
									spdlcd_eng=1;spdlcd_time=Spdl_CD_Time;}
									break;
					case 4:	if((X[8]&R[18]&0x10)&&(spdlcd_eng==0)){
										huandang_dwell=huandang_dwelltime;huandang_stag=1;
									}
									break;
					default:huandang_stag=0;
				}
			}
			else
			{
				huandang_stag=0;
				huandang_dwell=0;
				if((X[7]&0xc0)==0x40)   mod_M_code(0)=-1;
			}
			break;
		//-------------- zi dong huan dang --------------
*/
		default:
			R[680]=0;
			mod_M_code(0)=-1;
	}
	if(*sys_ext_alm()&0x7fff)
		msthold_dis(0)&=~CH_M_HDIS;
}

void exec_MST_mod(){	spdl_cmd=mod_S_buf;	}

void exec_S()
{
	if(Y[34]&0x10)								{	mod_S_code(0)=-1;	return;	}
	if(mod_S_code(0)<0)						{	mod_S_code(0)=-1;	return;	}
	if(*sys_ext_alm()&1)					{	mod_S_code(0)=-1;	return; }
	if((spdl_ctrl&3)&&(P[25]==1))	{ mod_S_code(0)=-1;	return;	}

	if(mod_S_buf==mod_S_code(0)){	mod_S_code(0)=-1;	return;	}

	if(s_code_dwell>0){s_code_dwell--;return;}

	if(P[25]==1)
	{
		switch(mod_S_code(0))
		{
			case 1:
				if((Y[1]&0x20)==0x20){ Y[1]&=~0x20;	s_code_dwell=60;break;}
				if((Y[1]&0x10)==0x00){ Y[1]|= 0x10;	s_code_dwell=60;break;}
				mod_S_buf=mod_S_code(0);
				mod_S_code(0)=-1;
				break;
			case 2:
				if((Y[1]&0x10)==0x10){ Y[1]&=~0x10;	s_code_dwell=60;break;}
//				if((Y[1]&0x20)==0x00){ Y[1]|= 0x20;	s_code_dwell=60;break;}
				if((Y[1]&0x20)==0x00){ Y[1]&=~0x20;	s_code_dwell=60;break;}
				mod_S_buf=mod_S_code(0);
				mod_S_code(0)=-1;
				break;
			default:
				mod_S_code(0)=-1;
				break;
		}
	}
	else if(P[25]<5)
	{
		mod_S_buf=mod_S_code(0);
		mod_S_code(0)=-1;
	}
}

void exec_T()
{
	if(atc_enable()==0)
	{
		mod_T_code(0)=-1;
		*sys_ext_alm()|=0x8;
		return;
	}
	if(mod_T_code(0)!=-1)
		mod_T_buf=mod_T_code(0);
	mod_T_code(0)=-1;

}

void init(void)
{
	set_mst_func(0,'M',exec_M);
	set_mst_func(0,'T',exec_T);
	set_mst_func(0,'S',exec_S);
	set_mst_func(0,'E',exec_MST_mod);

	asm cli
		*ch_ctrl(0)&=~CH_MODE_MSK;
		mode_sel=MODE_REF_RETURN;
		Y[30]&=~0x1f;Y[30]|=0x10;
		if(P[90])
		{
			mode_sel=MODE_JOG;
			Y[30]&=~0x1f;Y[30]|=4;
		}
		*ch_ctrl(0)|=mode_sel;
	asm sti

	step_mul=1;		Y[32]&=~0X1E;	Y[32]|=0x02;
	spdl_override=50;
	*ch_feedover(0)=10;
	*ch_rapidover(0)=10;
	reset_dwell=8000; 											//First Reset Time
	runhua_opentime=P[71]*100;
	runhua_closetime=0;
	atc_old_pos=-1;     //2004.3.24

	reset();

	if(P[25]==1){	mod_S_buf=1;		spdl_cmd=1;	Y[1]&=~0x20;	Y[1]|= 0x10;	}
	else if(P[25]<5)
							{	mod_S_buf=500;	spdl_cmd=500;	}

	if((P_i[17]>P_i[16])&&(P_i[17]>0))  Spdl_Moter_Count_Max_Speed=P_i[17];
	else if(P_i[16]>0)									Spdl_Moter_Count_Max_Speed=P_i[16];
	else            										Spdl_Moter_Count_Max_Speed=1500;

	i_estop1=P[50]/10;            	i_estop2=1<<(P[50]%10);

	if(((P[51]/100)==0)&&(P[53]==0))
	{

⌨️ 快捷键说明

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