📄 plc_gshd.cld
字号:
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 + -