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

📄 plc_gshd.cld

📁 华中机床的plc程序
💻 CLD
📖 第 1 页 / 共 5 页
字号:
			break;
		case 4:         //song dao
			Y[0]|=0x40;
			Y[30]|=0x80;
			Y[1]|=4;
			if((X[2]&R[102]&2)!=2)  {       atc_stag=4;      break;			}

			if(((X[31]&0x40)==0)&&(P[34]==1)) break;//test
			if(P[34]==1)
			{
				l=(long) (-PMatc_z_pos1+30)*100L;
				set_axis_moveto(2,l,to_pp8ms(600));         //    2004 .3.26

//			if(((X[31]&0x40)==0)&&(P[34]==1)) break;//test
				atc_stag=41;
			}
			else
			{
				atc_stag=141;
				atc_dwell=40;
			}
			break;
		case 41:            //song dao
			if((get_axis_den(2)==0))     break;
			atc_dwell=40;
			atc_stag=141;
			break;
		case 141:
//   pend                     Y[1]&=~4;//guan chui qi
			if((X[2]&R[102]&2)==2)
			set_axis_moveto(2,0,to_pp8ms(4000));         //    2004 .3.26
			if(((X[31]&0x40)==0)&&(P[34]==1)) break;//test
			atc_stag=42;
			break;    //?     }
		case 42:         //song dao
			if((get_axis_den(2)==0))     break;
			Y[0]|=0x40;
			atc_dwell=20;
			atc_stag=142;
			break;
		case 142:
			l=*F_l[23]/100;//2004
			if(l==0)//(-PMatc_z_pos2))
			{
				if(((X[31]&0x40)==0)&&(P[34]==1)) break;
				atc_stag=5;  break;
			}
			else
			{
//				l=(long) (-PMatc_z_pos2)*100L;
					set_axis_moveto(2,0,to_pp8ms(4000));
					atc_stag=42;
				break;
			}

//			break;
		case 5:        //guan chui qi
			old_cutter=new_cutter_t;
			mag_ctrl=1;
			mag_fin=0;
			if(((X[31]&0x40)==0)&&(P[34]==1)) break;    //pend add
			atc_stag=6;
			break;
		case 6:       //zhua dao
			if(mag_fin==0)	break;
			if((X[2]&R[102]&2)==2)    //pend add
			if(((X[31]&0x40)==0)&&(P[34]==1)) break;    //pend add
//			if(P[34]==1)
			{
			l=(long) (-PMatc_z_pos1+20)*100L;
			set_axis_moveto(2,l,to_pp8ms(4000));         //2004.3.26  111
			atc_stag=62;
			}
//			else
//			atc_stag=7;
			break;
		case 61:     //jin dao
			if(get_axis_den(2)==0)    break;
			l=*F_l[23]/100;//2004
			if(l==(-PMatc_z_pos1+200))      //pend 200 changed 20
			{
				if(((X[31]&0x40)==0)&&(P[34]==1)) break;//test
				l=(long) (-PMatc_z_pos1+20)*100L;
				set_axis_moveto(2,l,to_pp8ms(4000));         //2004.3.26  111
				Y[1]|=4;
				atc_stag=62;
				break;
			}
			else
			{
																l=(long) (-PMatc_z_pos1+200)*100L;    //pend 200 changed 20
																set_axis_moveto(2,l,to_pp8ms(4000));
				break;
			}

		case 62:     //jin dao
			l=*F_l[23]/100;//2004
			if(l<=(-PMatc_z_pos1+500))	Y[1]|=4;

			if(get_axis_den(2)==0)    break;
			atc_dwell=20;
			atc_stag=162;
			break;
		case 162:
			l=*F_l[23]/100;//2004
			//if(l==(-PMatc_z_pos1+20))
			if((l==(-PMatc_z_pos1+20))||((l-1)==(-PMatc_z_pos1+20)))
//			if(((*F_l[23]+(PMatc_z_pos1*100-2000))/100)==0)
			{
				if(((X[31]&0x40)==0)&&(P[34]==1)) break;//test
				atc_stag=7;
				break;
			}
			else
			{
				l=(long) (-PMatc_z_pos1+20)*100L;
				set_axis_moveto(2,l,to_pp8ms(4000));
				atc_stag=62;
				break;
			}

		case 7:     //jin dao
			l=(long) ((long)(-PMatc_z_pos1)*100L);

			R_l[32/4]=-l/1000;
			R_l[36/4]=-l%1000/10;

			set_axis_moveto(2,l,to_pp8ms(600));
			Y[1]|=4;//chui qi
//      Y[0]&=~0x40;                        //jin dao
			Y[30]&=~0x80;

			if(((X[31]&0x40)==0)&&(P[34]==1)) break;//test
			{
				atc_stag=8;
				break;
			}
		case 8:
			R[705]++;
			if(get_axis_den(2)==0)     break;
			atc_dwell=20;
			atc_stag=182;
			break;
		case 182:
			l=*F_l[23]/100;//2004
			R_l[36/4]=l;

//			if(l==(-PMatc_z_pos1))
//			if(((*F_l[23]+(PMatc_z_pos1*100))/100)==0)
			if((l==(-PMatc_z_pos1))||((l-1)==(-PMatc_z_pos1)))
//			if((l+PMatc_z_pos1>=-1)&&(l+PMatc_z_pos1<=1))    //2004
			{
				Y[0]&=~0x40;                        //jin dao
				Y[30]&=~0x80;
				if((X[2]&R[102]&1)!=1)
				{
					//atc_stag=7;
					break;
				}
				Y[1]&=~4;
				atc_stag=9;
				break;
			}
			else
			{
				l=(long) (-PMatc_z_pos1)*100L;
				set_axis_moveto(2,l,to_pp8ms(600));
				atc_stag=8;

				Y[1]|=4;//chui qi
				Y[0]&=~0x40;                        //jin dao
				Y[30]&=~0x80;
				break;
			}

		case 9:
			if(((X[31]&0x40)==0)&&(P[34]==1)) break;//test
			atc_dwell=66*2/3;
			atc_stag=10;
			break;
		case 10:         //z zhou  hui wei
			if((X[2]&R[102]&4)!=4){ Y[1]|=0X10;	 atc_stag=10;break;}
			else if(R[500]==0)Y[1]&=~0X10;
			dingxiangstop();
			Y[1]&=~0x0f;
			l=atc_old_pos;
//      set_axis_moveto(2,l,to_pp8ms(4000));
			set_axis_moveto(2,0,to_pp8ms(4000));
			atc_stag=11;
			break;
		case 11:
			if(get_axis_den(2)==0) break;
			atc_dwell=33;
			atc_stag=121;
			break;
		case 121:
			l=*F_l[23]/100;//2004

//      if((l==(atc_old_pos/100))||((l-1)==(atc_old_pos/100)))
			if(l==0)
			{
				Y[32]&=~0x20;
				Y[30]&=~0x80;
				atc_old_pos=-1;
				atc_stag=12;
			}
			else
			{
				l=atc_old_pos;
//				set_axis_moveto(2,l,to_pp8ms(4000));
				set_axis_moveto(2,0,to_pp8ms(4000));
				atc_stag=11;
			}
			break;
		case 12:
			*cutter_in_mag(0)=new_cutter_t;
			*sys_ctrl()|=SYS_SAVE_BBUF;///test
			atc_fin=1;
			atc_ctrl=0;
			atc_stag=0;
			atc_stat=0;
			spdl_ctrl=0;
			R[152]=0;
			R[153]=0;
			dxwancheng=0;
			baodao=0;
			break;
	}

	return;
}



void exec_M()
{
	unsigned den;
	long l;
	if(Y[34]&0x10){  mod_M_code(0)=-1;  return;  }
	den=*ch_stat(0)&CH_DEN;

	switch(mod_M_code(0)) {
    case 17:
      set_axis_moveto(2,-100000,to_pp8ms(1000));
      if(R_i[680/2]<200){R_i[680/2]++;break;}
      R_i[680/2]=0;
      mod_M_code(0)=-1;
      break;
    case 18:
      set_axis_moveto(2,-B[31]*1000,to_pp8ms(1000));
      if(R_i[680/2]<200){R_i[680/2]++;break;}
      R_i[680/2]=0;
      mod_M_code(0)=-1;
      break;
		case 3:
			if((Y[32]&0xa0)||(spdl_ctrl&2)||(Y[30]&0xc0))
			{
				mod_M_code(0)=-1;
				break;
			}
			if(mod_S_code(0)!=-1)	break;
			//if(get_axis_pos(2)<=5)//031210
			if(*F_l[23]<=5)
			spdl_ctrl=1;
			if(spdl_stat==1)		mod_M_code(0)=-1;
			break;
		case 4:
			if((Y[32]&0xa0)||(spdl_ctrl&1)||(Y[30]&0xc0)
				||(Spdl_Dir_Change_Mode==2))
			{
				mod_M_code(0)=-1;
				break;
			}
			if(mod_S_code(0)!=-1)	break;
			//if(get_axis_pos(2)<=5)//031210
			if(*F_l[23]<=5)
			spdl_ctrl=2;
			if(spdl_stat==2)		mod_M_code(0)=-1;
			break;
		case 5:
			if(den==0) break;                   // fang zhi chuang dao
			msthold_dis(0)|=CH_M_HDIS;
			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 100:
			if(GS_Mark!=0)
			{
				spdl_ctrl=GS_Spdl_Old_Dir;
				GS_Mark=0;
				mod_M_code(0)=-1;
			}
			break;
		case 103:
		case 104:
		case 105:
			if(GS_Mark==0)
			{
				GS_Mark=1;
				GS_Spdl_Old_Dir=spdl_ctrl;
			}
			if(mod_M_code(0)==103){R_l[508/4]=0;		spdl_ctrl=1;}
			else if(mod_M_code(0)==104)		spdl_ctrl=2;
			else
			{
				if(R_l[508/4]==0)	R_l[508/4]=-*axis_pact(2)/1000;
				spdl_ctrl=0;
			}
			if(spdl_ctrl==spdl_stat)	mod_M_code(0)=-1;
			break;

/*20040703
		case 103:
		case 104:
			if(GS_Mark==0)
			{
				if(mod_M_code(0)==103)	GS_Mark=spdl_ctrl=1;
				if(mod_M_code(0)==104)	GS_Mark=spdl_ctrl=2;
				mod_M_code(0)=-1;
				break;
			}
			if(((mod_M_code(0)==103)&&(GS_Mark==1))||
				 ((mod_M_code(0)==104)&&(GS_Mark==2)))
			{
				mod_M_code(0)=-1;
				break;
			}

//			if(GS_Z_Begin_Pos==0)	GS_Z_Begin_Pos= get_axis_pos(2)/2;
			if(GS_Z_Begin_Pos==0)	GS_Z_Begin_Pos=*axis_pact(2);//*F_l[23];//get_axis_pos(2);
			if(GS_Z_Begin_Pos<0)	GS_Z_Begin_Pos=-GS_Z_Begin_Pos;

			if(GS_Spdl_Begin_Pos==0)
			{
				GS_Spdl_Now_Pos_N=0;
				GS_Spdl_Now_Pos_R=*ch_sp_pos(0)/1000;//F_l[176];
				GS_Spdl_Begin_Pos=*ch_sp_pos(0)/1000;//F_l[176];//Spindle begin pos
			}
			//zheng xiang gongsi
			if((*ch_sp_rpm(0)>=0)&&(GS_Mark==1))
			{
				if((*ch_sp_pos(0)/1000+5)<(GS_Spdl_Now_Pos_R))	GS_Spdl_Now_Pos_N+=1;///36000;
				GS_Spdl_Now_Pos_R=*ch_sp_pos(0)/1000;
				GS_Spdl_End_Pos=*ch_sp_pos(0)/1000;//Spindle stop pos
				GS_Spdl_Move_Lenth=(GS_Spdl_Now_Pos_N*360)+(GS_Spdl_End_Pos-GS_Spdl_Begin_Pos);

				//zhuzhou cong jiansu dao dadao zhiding sudu zhuan de jiaodu
				if((*ch_sp_rpm(0)<=(GS_Spdl_Speed_AtBottom+10))&&
					 (GS_ToEndSpeed_Spdl_Move_Lenth==0))
				GS_ToEndSpeed_Spdl_Move_Lenth=GS_Spdl_Move_Lenth;
			}
			//fan xiang gongsi
			if((*ch_sp_rpm(0)<=0)&&(GS_Mark==2))
			{
				if((*ch_sp_pos(0)/1000)>(GS_Spdl_Now_Pos_R+5))	GS_Spdl_Now_Pos_N+=1;///36000;
				GS_Spdl_Now_Pos_R=*ch_sp_pos(0)/1000;
				GS_Spdl_End_Pos=*ch_sp_pos(0)/1000;//Spindle stop pos
				GS_Spdl_Move_Lenth=(GS_Spdl_Now_Pos_N*360)+(GS_Spdl_Begin_Pos-GS_Spdl_End_Pos);

				//zhuzhou cong jiansu dao dadao zhiding sudu zhuan de jiaodu
				if(((-*ch_sp_rpm(0))<=(GS_Spdl_Speed_AtBottom+10))&&
					 (GS_ToEndSpeed_Spdl_Move_Lenth==0))
				GS_ToEndSpeed_Spdl_Move_Lenth=GS_Spdl_Move_Lenth;
			}

//			if(((*ch_sp_rpm(0)<=0)&&(R[199]==1)&&(GS_Mark==1))||
//				 ((*ch_sp_rpm(0)>=0)&&(R[199]==2)&&(GS_Mark==2)))
			if(((*ch_sp_rpm(0)>=0)&&(GS_Mark==1))||
				 ((*ch_sp_rpm(0)<=0)&&(GS_Mark==2)))
			{
//				GS_Z_End_Pos=get_axis_pos(2)/2;//z moved len
				GS_Z_End_Pos=*axis_pact(2);//*F_l[23];//get_axis_pos(2);//z moved len
				if(GS_Z_End_Pos<0)	GS_Z_End_Pos=-GS_Z_End_Pos;

				GS_Z_Move_Lenth=GS_Z_End_Pos-GS_Z_Begin_Pos;
				if(GS_Z_Move_Lenth<0)	GS_Z_Move_Lenth=-GS_Z_Move_Lenth;

				//zhuzhou cong jiansu dao dadao zhiding sudu Z zhou yidong de juli
				if((*ch_sp_rpm(0)<=(GS_Spdl_Speed_AtBottom+10))&&
					 (*ch_sp_rpm(0)>=(-GS_Spdl_Speed_AtBottom-10))&&
					 (GS_ToEndSpeed_Z_Move_Lenth==0))
				GS_ToEndSpeed_Z_Move_Lenth=GS_Z_Move_Lenth;
			}
			//GS_Spdl_End_Pos=*ch_sp_pos(0);//Spindle stop pos
			//GS_Spdl_Now_Pos=(GS_Spdl_Now_Pos_N*360)+((GS_Spdl_End_Pos-GS_Spdl_Begin_Pos)/1000);

			if(*ch_sp_rpm(0)>0)		R[199]=1;
			if(*ch_sp_rpm(0)<=0)	R[199]=2;

			if(spdl_ctrl!=GS_Mark)	GS_Spdl_AtBottom=0;

			if(((*ch_sp_rpm(0)>=0)&&(GS_Mark==1))||
				 ((*ch_sp_rpm(0)<=0)&&(GS_Mark==2)))
			{
				R[670]+=1;//test xjc 666
				if(GS_Spdl_Move_Lenth<=GS_Spdl_Yuting_Pos)//||(GS_Spdl_Yuting_Pos==0))
				{
					R[677]++;
					if(spdl_ctrl==GS_Mark)	GS_Spdl_AtBottom=1;
				}//out_dac(470);}
				else if(GS_Spdl_AtBottom==1)
				{
					GS_Spdl_AtBottom=0;
					if(GS_Delay_AtBottom<=plc1_time)
					{
						R[672]++;
						GS_Spdl_AtBottom=0;//test xjc 666
						if(GS_Mark==1) 	spdl_ctrl=2;
						if(GS_Mark==2) 	spdl_ctrl=1;
					}
					else if(spdl_ctrl!=0)
					{
						R[674]++;
						spdl_ctrl=0;
						GS_Delay_AtBottomR=GS_Delay_AtBottom;
					}
				}
			}
			R[676]++;
			if(spdl_ctrl==0)
			{
				R[675]++;
				if(GS_Delay_AtBottomR>16)//plc1_time)
				{
					if(*ch_sp_rpm(0)<=5)
						GS_Delay_AtBottomR-=16;//plc1_time;
//					spdl_ctrl=0;
					R[671]++;//test xjc
				}
				else
				{
					R[673]++;
					GS_Delay_AtBottomR=0;
					if(GS_Mark==1) 	spdl_ctrl=2;
					if(GS_Mark==2) 	spdl_ctrl=1;
				}
			}

			if(((*ch_sp_rpm(0)<(-10))&&(GS_Mark==1))||
				 ((*ch_sp_rpm(0)>10)&&(GS_Mark==2)))
			{
				R[680]++;
				if(R[680]>50)	mod_M_code(0)=-1;
			}
			else R[680]=0;

			break;
		case 105:
			GS_Spdl_Old_Dir=spdl_ctrl;
			spdl_ctrl=0;
			GS_Mark=0;
			GS_ToEndSpeed_Spdl_Move_Lenth=0;
			GS_ToEndSpeed_Z_Move_Lenth=0;
			GS_Spdl_Begin_Pos=0;
			GS_Z_Begin_Pos=0;
			mod_M_code(0)=-1;
			break;
		case 100:
			GS_Mark=0;
			GS_Spdl_AtBottom=0;
			GS_ToEndSpeed_Spdl_Move_Lenth=0;
			GS_ToEndSpeed_Z_Move_Lenth=0;
			spdl_ctrl=GS_Spdl_Old_Dir;
			if(GS_Spdl_Old_Dir==0)				mod_M_code(0)=5;   //test 20031119
			else if(GS_Spdl_Old_Dir==1)		mod_M_code(0)=3;   //test 20031119
			else if(GS_Spdl_Old_Dir==2)		mod_M_code(0)=4;   //test 20031119
			*ch_M_code(0)=mod_M_code(0);
			//mod_M_code(0)=-1;
			break;
*/		case 6:
			if((*axis_stat(2)&AX_COORD_SETUP)==0)
			{
				*sys_ext_alm()|=0x40;
				break;
			}
			else
				*sys_ext_alm()&=~0x40;


			if(((((X[1])&(R[101]))&0x80)!=0)&&(atc_fin!=0))
			{
				mod_M_code(0)=-1;
				break;
			}

			if((mod_T_code(0)<=0)||(mod_T_code(0)>16)){

⌨️ 快捷键说明

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