📄 current.c.bak
字号:
urgent_stop=0;
err_ok=0;
EX1=1;
EX0=1;
}
IEN1=IEN1&0x40;
current_out=1;
current_enable=0;
con_hf=1;
con_gas1=1;
con_gas2=1;
work=0; //等待状态
called=0;
start=0;
need_para=0;
open_gas1=0;
open_gas2=0;
ignit_ok=0;
decrease=0;
igniting=0;
pre_melt_ok=0;
R_ANSW=0;
S_ANSW=0;
POINTER1=0;
RSUM=0;
POINTER0=0;
SSUM=0;
r_byte_nums=4;
demand=0;
overtime=0;
resend=0;
ans=0;
receive_p_out=0;
receive_p_in=0;
edge=0;
ad_v=0;
ad_i=0;
AD1=0;
AD2=0;
AD3=0;
AD4=0;
AD5=0;
tab2=0;
tab3=0;
IM8=0;
IM4=0;
IB8=0;
IB4=0;
UPD=0;
ad_finish=0;
i_slope_ok=0;
nonce_sec=0;
in_sector=0;
new_sec=0;
close_gas1=0;
close_gas2=0;
close_gas1_ok=0;
close_gas2_ok=0;
close_gas_ok=0;
c_cm1=0;
to_begin=0;
PWMP=51; //产生采样保持脉冲,1K
PWM0=128;
PWM1=128;
EX1=1;
EX0=1;
while(start==0)
{
if(called==1)
{
ini_sbuf(M_main,infor,com_calling,S_ANSW,0,0,0);
s_byte_nums=6;
TR_noans();
called=0;
}
if(receive_p_out==1)
{
point=&pp.t01;
for(p_sec=0;p_sec<25;p_sec++)
*(point+p_sec)=rbuffer[p_sec*2+2]*256+rbuffer[p_sec*2+3];
pp.syn_type=rbuffer[52];
ini_sbuf(M_main,answer,OK,0,0,0,0);
s_byte_nums=4;
TR_noans();
demand=0;
receive_p_out=0;
}
if(receive_p_in==1)
{
point=&pp.x[nonce_sec][0];
for(p_sec=0;p_sec<10;p_sec++)
*(point+p_sec)=rbuffer[p_sec*2+3]*256+rbuffer[p_sec*2+4];
ini_sbuf(M_main,answer,OK,0,0,0,0);
s_byte_nums=4;
TR_noans();
demand=0;
receive_p_in=0;
}
/*
if(new_switch==1)
{
ini_sbuf(M_main,answer,S_ANSW,0,0,0,0);
s_byte_nums=4;
TR_noans();
new_switch=0;
}
*/
if(urgent_stop==1)
goto BEGIN;
}
n_pulse=pp.t14%256;
n_base=pp.t15%256;
if(pp.syn_type==ON)
{
CTCON=CTCON|0x02;
IEN1=IEN1|0x01;
}
work=3; //进入焊接过程
IEN1=IEN1&0xBF; //禁止CM2,停水计时
CML1=TML2+0XE2; //峰值时间
if(CML1<TML2)
CMH1=(TMH2+1)+0X04;
else
CMH1=TMH2+0X04;
CML2=TML2+0x24;
if(CML2<TML2)
CMH2=TMH2+1+0xF4;
else
CMH2=TMH2+0xF4;
delt1=(pp.t13*1000000)/(pp.i14-pp.i12);
if(delt1%256>=200)
delt1=delt1/256+1;
else
delt1=delt1/256;
if(YOUHU==1)
{
while(igniting==0)
{
if(urgent_stop==1)
goto BEGIN;
if(open_gas1==1)
{
ini_sbuf(M_main,answer,S_ANSW,0,0,0,0);
s_byte_nums=4;
TR_noans();
con_gas1=0; //开气1
con_water=0; //开水
open_gas1=0;
}
if(open_gas2==1)
{
ini_sbuf(M_main,answer,S_ANSW,0,0,0,0);
s_byte_nums=4;
TR_noans();
con_gas2=0; //开气2
con_water=0; //开水
open_gas2=0;
}
if(resend==1)
{
ini_sbuf(M_main,answer,S_ANSW,0,0,0,0);
s_byte_nums=4;
TR_noans();
resend=0;
}
}
}
else
{
while(ignit_ok==0)
{
if(urgent_stop==1)
goto BEGIN;
if(open_gas1==1)
{
ini_sbuf(M_main,answer,S_ANSW,0,0,0,0);
s_byte_nums=4;
TR_noans();
con_gas1=0; //开气1
con_water=0; //开水
open_gas1=0;
}
if(open_gas2==1)
{
ini_sbuf(M_main,answer,S_ANSW,0,0,0,0);
s_byte_nums=4;
TR_noans();
con_gas2=0; //开气2
con_water=0; //开水
open_gas2=0;
}
if(resend==1)
{
ini_sbuf(M_main,answer,S_ANSW,0,0,0,0);
s_byte_nums=4;
TR_noans();
resend=0;
}
}
}
ini_sbuf(M_main,answer,S_ANSW,0,0,0,0);
s_byte_nums=4;
TR_noans();
I1=pp.i11;
I2=pp.i11;
IM=(unsigned int)(I1*0.4096);
IB=(unsigned int)(I2*0.4096);
IM8=IM%256; //(I1*4096/10000)%256
IM4=IM/256; //(I1*4096/10000)/256
IB8=IB%256; //((I2*4096/10000)%256
IB4=IB/256; //(I2*4096/10000)/256
UPD=0X00; //引弧电流
if(YOUHU==1)
{
current_enable=1; //开电源使能
if(pp.ignit==HF)
con_hf=0; //开高频
avc_ok=P5;
avc_ok=avc_ok&0X04;
while(avc_ok==4)
{
avc_ok=P5;
avc_ok=avc_ok&0X04;
if(urgent_stop==1)
goto BEGIN;
}
delay(2);
RE_IGNIT: avc_ok=P5;
avc_ok=avc_ok&0X04;
if(avc_ok==4)
goto RE_IGNIT;
else
{
if(pp.ignit==HF) //引弧方式HF
con_hf=1; //关高频
ini_sbuf(M_main,command,com_ignit_ok,0,0,0,0);
s_byte_nums=4;
TR_ans();
// answer_judge();
}
}
if(urgent_stop==1)
goto BEGIN;
I1=pp.i12;
I2=pp.i12;
IM=(unsigned int)(I1*0.4096);
IB=(unsigned int)(I2*0.4096);
IM8=IM%256; //(I1*10/10)%256
IM4=IM/256; //(I1*10/10)/256
IB8=IB%256; //(I2*10/10)%256
IB4=IB/256; //(I2*10/10)/256
UPD=0X00; //预熔电流
ad_finish=1;
if(YOUHU==1) //焊接时进行电压、电流采样
{
c_adc=0;
i_v=0;
CTCON=CTCON|0X20; //捕捉下降沿
IEN1=IEN1|0X04; //允许CT2
}
while(pre_melt_ok==0) //预熔时间
{
if(urgent_stop==1)
goto BEGIN;
if(need_para==1) //显示焊接电流、焊接电压
{
sbuffer[0]=M_main;
sbuffer[1]=parameter2;
sbuffer[2]=ad_i/256;
sbuffer[3]=ad_i%256;
sbuffer[4]=ad_v/256;
sbuffer[5]=ad_v%256;
s_byte_nums=7;
TR_noans();
need_para=0;
}
/*
if(resend==1)
{
ini_sbuf(M_main,answer,S_ANSW,0,0,0,0);
s_byte_nums=4;
TR_noans();
resend=0;
}
*/
}
ini_sbuf(M_main,answer,S_ANSW,0,0,0,0);
s_byte_nums=4;
TR_noans();
c_t0=0;
while(i_slope_ok==0) //电流上升
{
TR0=1;
while(c_t0<delt1) //电流增加1A
{
if(urgent_stop==1)
goto BEGIN;
}
TR0=0;
c_t0=0;
if(I1<pp.i14)
{
if((I1+10)>=pp.i14)
I1=pp.i14;
else
I1=I1+10;
}
if(pp.k1==PDC)
{
if(I2<pp.i15)
{
if((I2+10)>=pp.i15)
I2=pp.i15;
else
I2=I2+10;
}
}
IM=(unsigned int)(I1*0.4096);
IB=(unsigned int)(I2*0.4096);
IM8=IM%256; //(I1*10/10)%256
IM4=IM/256; //(I1*10/10)/256
IB8=IB%256; //(I2*10/10)%256
IB4=IB/256; //(I2*10/10)/256
UPD=0X00;
if(urgent_stop==1)
goto BEGIN;
}
ini_sbuf(M_main,answer,S_ANSW,0,0,0,0);
s_byte_nums=4;
TR_noans();
I1=pp.i14; //峰值电流
I2=pp.i15; //基值电流
IM=(unsigned int)(I1*0.4096);
IB=(unsigned int)(I2*0.4096);
IM8=IM%256; //(I1*10/10)%256
IM4=IM/256; //(I1*10/10)/256
IB8=IB%256; //(I2*10/10)%256
IB4=IB/256; //(I2*10/10)/256
UPD=0X00;
if(pp.k1==PDC)
IEN1=IEN1|0X20; //允许CM1,电流脉冲输出(峰、基值时间))
k=1;
nonce_sec=0; //当前区间号
//main circle
do
{
work=3;
if(urgent_stop==1) //急停后返回
goto BEGIN;
if(need_para==1) //显示焊接电流、焊接电压
{
sbuffer[0]=M_main;
sbuffer[1]=parameter2;
sbuffer[2]=ad_i/256;
sbuffer[3]=ad_i%256;
sbuffer[4]=ad_v/256;
sbuffer[5]=ad_v%256;
sbuffer[6]=0;
s_byte_nums=7;
TR_noans();
need_para=0;
}
if(current_add==1) //电流加
{
if(delt_state==0||delt_state==1)
{
if(I1+pp.di<4000) //峰值
I1=I1+pp.di;
else
I1=4000;
IM=(unsigned int)(I1*0.4096);
IM8=IM%256;
IM4=IM/256;
}
if(delt_state==1||delt_state==2)
{
if(pp.k1==PDC)
{
if(I2+pp.di<4000) //基值
I2=I2+pp.di;
else
I2=4000;
IB=(unsigned int)(I2*0.4096);
IB8=IB%256;
IB4=IB/256;
}
}
UPD=0X00;
current_add=0;
}
if(urgent_stop==1) //急停后返回
goto BEGIN;
if(current_dec==1) //电流减
{
if(delt_state==0||delt_state==1)
{
if(I1>=pp.i17&&I1-pp.i17>pp.di) //峰值
I1=I1-pp.di;
else
I1=pp.i17;
IM=(unsigned int)(I1*0.4096);
IM8=IM%256;
IM4=IM/256;
}
if(delt_state==1||delt_state==2)
{
if(pp.k1==PDC)
{
if(I2>=pp.i17&&I2-pp.i17>pp.di) //基值
I2=I2-pp.di;
else
I2=pp.i17;
IB=(unsigned int)(I2*0.4096);
IB8=IB%256;
IB4=IB/256;
}
}
UPD=0X00;
current_dec=0;
}
if(urgent_stop==1) //急停后返回
goto BEGIN;
if(in_sector==1&&new_sec==1)
{
delt1=pp.x[nonce_sec][1]*1000000;
if(nonce_sec==0)
{
if(pp.x[nonce_sec][3]>=I1)
temp_delt_p=pp.x[nonce_sec][3]-I1;
else
temp_delt_p=I1-pp.x[nonce_sec][3];
}
else
{
if(pp.x[nonce_sec][3]>=pp.x[nonce_sec-1][3])
temp_delt_p=pp.x[nonce_sec][3]-pp.x[nonce_sec-1][3];
else
temp_delt_p=pp.x[nonce_sec-1][3]-pp.x[nonce_sec][3];
}
if(pp.k1==PDC)
{
if(nonce_sec==0)
{
if(pp.x[nonce_sec][5]>=I2)
temp_delt_b=pp.x[nonce_sec][5]-I2;
else
temp_delt_b=I2-pp.x[nonce_sec][5];
}
else
{
if(pp.x[nonce_sec][5]>=pp.x[nonce_sec-1][5])
temp_delt_p=pp.x[nonce_sec][5]-pp.x[nonce_sec-1][5];
else
temp_delt_p=pp.x[nonce_sec-1][5]-pp.x[nonce_sec][5];
}
}
if(temp_delt_p>=temp_delt_b)
delt1=delt1/temp_delt_p;
else
delt1=delt1/temp_delt_b;
if(delt1%256>=200)
delt1=delt1/256+1;
else
delt1=delt1/256;
k1=0;
k2=0;
i_slope_ok=0;
c_t0=0;
while(i_slope_ok==0)
{
TR0=1;
while(c_t0<delt1)
{
if(urgent_stop==1)
goto BEGIN;
}
TR0=0;
c_t0=0;
if(I1!=pp.x[nonce_sec][3])
{
if(I1<pp.x[nonce_sec][3])
{
if((I1+10)>=pp.x[nonce_sec][3])
I1=pp.x[nonce_sec][3];
else
I1=I1+10;
}
else
{
if(I1-10<=pp.x[nonce_sec][3])
I1=pp.x[nonce_sec][3];
else
I1=I1-10;
}
}
else
k1=1;
if(pp.k1==PDC)
{
if(I2!=pp.x[nonce_sec][5])
{
if(I2<pp.x[nonce_sec][5])
{
if((I2+10)>=pp.x[nonce_sec][5])
I2=pp.x[nonce_sec][5];
else
I2=I2+10;
}
else
{
if(I2-10<=pp.x[nonce_sec][5])
I2=pp.x[nonce_sec][5];
else
I2=I2-10;
}
}
else
k2=1;
}
IM=(unsigned int)(I1*0.4096);
IB=(unsigned int)(I2*0.4096);
IM8=IM%256; //(I1*10/10)%256
IM4=IM/256; //(I1*10/10)/256
IB8=IB%256; //(I2*10/10)%256
IB4=IB/256; //(I2*10/10)/256
UPD=0X00;
if(pp.k1==0&&k1==1||pp.k1==1&&k1==1&&k2==1)
i_slope_ok=1;
if(urgent_stop==1)
goto BEGIN;
}
c_cm1=0;
n_pulse=pp.x[nonce_sec][2]%256;
n_base=pp.x[nonce_sec][4]%256;
new_sec=0;
}
if(decrease==1) //衰减
k=0;
}while(k==1);
if(urgent_stop==1) //急停后返回
goto BEGIN;
work=4;
kk=1;
k1=0;
k2=0;
if(I1>pp.i17)
{
delt=(pp.t17*1000000)/(I1-pp.i17);
if(delt%256>=200)
delt=delt/256+1;
else
delt=delt/256;
}
else
delt=0;
c_t0=0;
work=4;
do //电流衰减
{
TR0=1;
while(c_t0<delt)
{
if(urgent_stop==1)
goto BEGIN;
}
TR0=0;
c_t0=0;
if(pp.k1==PDC)
{
if(I1>pp.i17)
{
if((I1-10)<=pp.i17)
I1=pp.i17;
else
I1=I1-10;
IM=(unsigned int)(I1*0.4096);
IM8=IM%256;
IM4=IM/256;
}
else
k1=1;
if(I2>pp.i17)
{
if((I2-10)<=pp.i17)
I2=pp.i17;
else
I2=I2-10;
IB=(unsigned int)(I2*0.4096);
IB8=IB%256;
IB4=IB/256;
}
else
k2=1;
UPD=0;
if(k1==1&&k2==1)
kk=0;
}
else
{
if(I1>pp.i17)
{
if((I1-10)<=pp.i17)
I1=pp.i17;
else
I1=I1-10;
IM=(unsigned int)(I1*0.4096);
IM8=IM%256;
IM4=IM/256;
UPD=0;
}
else
kk=0;
}
if(need_para==1) //显示焊接电流、焊接电压
{
sbuffer[0]=M_main;
sbuffer[1]=parameter2;
sbuffer[2]=ad_i/256;
sbuffer[3]=ad_i%256;
sbuffer[4]=ad_v/256;
sbuffer[5]=ad_v%256;
sbuffer[6]=0;
s_byte_nums=7;
TR_noans();
need_para=0;
}
if(urgent_stop==1) //急停后返回
goto BEGIN;
}while(kk==1);
if(YOUHU==1)
current_enable=0; //关电源使能
IEN1=IEN1&0XDF; //禁止CM1
c_cm2=0;
IEN1=IEN1|0x40; //允许CM2,停水计时
while(close_gas_ok==0)
{
if(close_gas2==1)
{
ini_sbuf(M_main,answer,S_ANSW,0,0,0,0);
s_byte_nums=4;
TR_noans();
con_gas2=1; //关气2
close_gas2=0;
close_gas2_ok=1;
}
if(close_gas1==1)
{
ini_sbuf(M_main,answer,S_ANSW,0,0,0,0);
s_byte_nums=4;
TR_noans();
con_gas1=1; //关气1
close_gas1=0;
close_gas1_ok=1;
}
/*
if(resend==1)
{
ini_sbuf(M_main,answer,S_ANSW,0,0,0,0);
s_byte_nums=4;
TR_noans();
resend=0;
}
*/
if((pp.gas2==OFF&&close_gas1_ok==1)||(pp.gas2==ON&&close_gas1_ok==1&&close_gas2_ok==1))
close_gas_ok=1;
if(urgent_stop==1) //急停后返回
goto BEGIN;
}
while(to_begin==0)
{
if(urgent_stop==1)
goto BEGIN;
}
goto BEGIN;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -