📄 current3.c.bak
字号:
}
}
// if(pp.k1==PDC)
// IEN1=IEN1|0X20; //允许CM1,电流脉冲输出(峰、基值时间))
k=1;
nonce_sec=0; //当前区间号
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||delt_state==2&&pp.k1==DC)
{
if(I1+pp.di<4000) //峰值
{
I1=I1+pp.di;
if(ahf_ok==1)
{
if(I1+delt_ahf<4000)
I11=I1+delt_ahf;
else
I11=4000;
if(I1>delt_ahf+pp.i17)
I12=I1-delt_ahf;
else
I12=pp.i17;
}
}
else
{
I1=4000;
if(ahf_ok==1)
{
I11=4000;
if(I1>pp.i17+delt_ahf)
I12=I1-delt_ahf;
else
I12=pp.i17;
}
}
if(ahf_ok==1)
{
IM_ahf=(unsigned int)(I11*0.41);
IMM_ahf=(unsigned int)(I12*0.41);
IML_ahf=IM_ahf%256;
IMH_ahf=IM_ahf/256;
IMML_ahf=IMM_ahf%256;
IMMH_ahf=IMM_ahf/256;
}
else
{
IM=(unsigned int)(I1*0.41);
// IM8=IM%256;
// IM4=IM/256;
// UPD=0X00;
IML=IM%256;
IMH=IM/256;
}
}
if(pp.k1==DC)
{
if(ahf_ok==1)
{
IM8=IML_ahf;
IM4=IMH_ahf;
IB8=IMML_ahf;
IB4=IMMH_ahf;
UPD=0X00;
}
else
{
IM8=IML;
IM4=IMH;
UPD=0X00;
}
}
if(delt_state==1||delt_state==2)
{
if(pp.k1==PDC)
{
if(I2+pp.di<4000) //基值
{
I2=I2+pp.di;
if(ahf_ok==1)
{
if(I2+delt_ahf<4000)
I21=I2+delt_ahf;
else
I21=4000;
if(I2>delt_ahf+pp.i17)
I22=I2-delt_ahf;
else
I22=pp.i17;
}
}
else
{
I2=4000;
if(ahf_ok==1)
{
I21=4000;
if(I2>pp.i17+delt_ahf)
I22=I2-delt_ahf;
else
I22=pp.i17;
}
}
if(ahf_ok==1)
{
IB_ahf=(unsigned int)(I21*0.41);
IBB_ahf=(unsigned int)(I22*0.41);
IBL_ahf=IB_ahf%256;
IBH_ahf=IB_ahf/256;
IBBL_ahf=IBB_ahf%256;
IBBH_ahf=IBB_ahf/256;
}
else
{
IB=(unsigned int)(I2*0.41);
// IB8=IB%256;
// IB4=IB/256;
// UPD=0X00;
IBL=IB%256;
IBH=IB/256;
}
}
}
current_add=0;
}
if(urgent_stop==1) //急停后返回
goto BEGIN;
if(current_dec==1) //电流减
{
if(delt_state==0||delt_state==1||delt_state==2&&pp.k1==DC)
{
if(I1>pp.di+pp.i17) //峰值
{
I1=I1-pp.di;
if(ahf_ok==1)
{
if(I1+delt_ahf<4000)
I11=I1+delt_ahf;
else
I11=4000;
if(I1>delt_ahf+pp.i17)
I12=I1-delt_ahf;
else
I12=pp.i17;
}
}
else
{
I1=pp.i17;
if(ahf_ok==1)
{
if(I1+delt_ahf<4000)
I11=I1+delt_ahf;
else
I11=4000;
I12=pp.i17;
}
}
if(ahf_ok==1)
{
IM_ahf=(unsigned int)(I11*0.41);
IMM_ahf=(unsigned int)(I12*0.41);
IML_ahf=IM_ahf%256;
IMH_ahf=IM_ahf/256;
IMML_ahf=IMM_ahf%256;
IMMH_ahf=IMM_ahf/256;
}
else
{
IM=(unsigned int)(I1*0.41);
// IM8=IM%256;
// IM4=IM/256;
// UPD=0X00;
IML=IM%256;
IMH=IM/256;
}
}
if(pp.k1==DC)
{
if(ahf_ok==1)
{
IM8=IML_ahf;
IM4=IMH_ahf;
IB8=IMML_ahf;
IB4=IMMH_ahf;
UPD=0X00;
}
else
{
IM8=IML;
IM4=IMH;
UPD=0X00;
}
}
if(delt_state==1||delt_state==2)
{
if(pp.k1==PDC)
{
if(I2>pp.di+pp.i17) //基值
{
I2=I2-pp.di;
if(ahf_ok==1)
{
if(I2+delt_ahf<4000)
I21=I2+delt_ahf;
else
I21=4000;
if(I2>delt_ahf+pp.i17)
I22=I2-delt_ahf;
else
I22=pp.i17;
}
}
else
{
I2=pp.i17;
if(ahf_ok==1)
{
if(I2+delt_ahf<4000)
I21=I2+delt_ahf;
else
I21=4000;
I22=pp.i17;
}
}
if(ahf_ok==1)
{
IB_ahf=(unsigned int)(I21*0.41);
IBB_ahf=(unsigned int)(I22*0.41);
IBL_ahf=IB_ahf%256;
IBH_ahf=IB_ahf/256;
IBBL_ahf=IBB_ahf%256;
IBBH_ahf=IBB_ahf/256;
}
else
{
IB=(unsigned int)(I2*0.41);
// IB8=IB%256;
// IB4=IB/256;
// UPD=0X00;
IBL=IB%256;
IBH=IB/256;
}
}
}
current_dec=0;
}
if(urgent_stop==1) //急停后返回
goto BEGIN;
if(in_sector==1&&new_sec==1)
{
// TR0=0;
if(ahf_ok==1)
{
gate=1;
COM=0X74;
COUNT1=0;
COUNT1=0;
COM=0XB2;
COUNT2=0;
COUNT2=0;
ahf_ok=0;
}
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_b=pp.x[nonce_sec][5]-pp.x[nonce_sec-1][5];
else
temp_delt_b=pp.x[nonce_sec-1][5]-pp.x[nonce_sec][5];
}
}
if(temp_delt_p>=temp_delt_b)
{
if(temp_delt_p!=0)
{
delt1=delt1/temp_delt_p;
if(delt1%256>=200)
delt1=delt1/256+1;
else
delt1=delt1/256;
}
}
else
{
if(temp_delt_b!=0)
{
delt1=delt1/temp_delt_b;
if(delt1%256>=200)
delt1=delt1/256+1;
else
delt1=delt1/256;
}
}
if(temp_delt_p!=0||temp_delt_b!=0)
{
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<=pp.x[nonce_sec][3]+10)
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<=pp.x[nonce_sec][5]+10)
I2=pp.x[nonce_sec][5];
else
I2=I2-10;
}
}
else
k2=1;
}
IM=(unsigned int)(I1*0.41);
IB=(unsigned int)(I2*0.41);
IML=IM%256; //(I1*10/10)%256
IMH=IM/256; //(I1*10/10)/256
IBL=IB%256; //(I2*10/10)%256
IBH=IB/256; //(I2*10/10)/256
if(pp.k1==DC)
{
IM8=IML;
IM4=IMH;
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;
}
TR0=0;
current_out=1;
}
if(pp.k1==PDC)
{
c_cm1=0;
n_pulse=pp.x[nonce_sec][2]%256;
n_base=pp.x[nonce_sec][4]%256;
}
if(pp.x[nonce_sec][6]==ON)
{
delt_ahf=pp.x[nonce_sec][7]/2;
if(I1+delt_ahf<4000)
I11=I1+delt_ahf;
else
I11=4000;
if(I1>delt_ahf+pp.i17)
I12=I1-delt_ahf;
else
I12=pp.i17;
IM_ahf=(unsigned int)(I11*0.41);
IMM_ahf=(unsigned int)(I12*0.41);
IML_ahf=IM_ahf%256;
IMH_ahf=IM_ahf/256;
IMML_ahf=IMM_ahf%256;
IMMH_ahf=IMM_ahf/256;
if(pp.k1==PDC)
{
if(I2+delt_ahf<4000)
I21=I2+delt_ahf;
else
I21=4000;
if(I2>delt_ahf+pp.i17)
I22=I2-delt_ahf;
else
I22=pp.i17;
IB_ahf=(unsigned int)(I21*0.41);
IBB_ahf=(unsigned int)(I22*0.41);
IBL_ahf=IB_ahf%256;
IBH_ahf=IB_ahf/256;
IBBL_ahf=IBB_ahf%256;
IBBH_ahf=IBB_ahf/256;
}
IM8=IML_ahf;
IM4=IMH_ahf;
IB8=IMML_ahf;
IB4=IMMH_ahf;
UPD=0X00;
out1=4000000/pp.x[nonce_sec][8];
out2=out1*(100-pp.x[nonce_sec][9])/100;
COM=0X74;
COUNT1=out1%256;
COUNT1=out1/256;
COM=0XB2;
COUNT2=out2%256;
COUNT2=out2/256;
gate=0;
ahf_p_b=1;
ahf_ok=1;
// TR0=1;
}
// else
// ahf_ok=0;
new_sec=0;
}
if(decrease==1) //衰减
k=0;
}while(k==1);
if(ahf_ok==1)
{
// TR0=0;
gate=1;
COM=0X74;
COUNT1=0;
COUNT1=0;
COM=0XB2;
COUNT2=0;
COUNT2=0;
ahf_ok=0;
/*
if(in_sector==0)
{
I1=pp.i14;
I2=pp.i15;
}
else
{
I1=pp.x[nonce_sec][3];
I2=pp.x[nonce_sec][5];
}
*/
IM=(unsigned int)(I1*0.41);
IB=(unsigned int)(I2*0.41);
IML=IM%256;
IMH=IM/256;
IBL=IB%256;
IBH=IB/256;
IM8=IML;
IM4=IMH;
// IB8=IML;
// IB4=IMH;
UPD=0x00;
}
if(pp.k1==PDC)
IEN1=IEN1|0X20;
if(urgent_stop==1) //急停后返回
goto BEGIN;
IEN1=IEN1&0xFA;
work=4;
kk=1;
k1=0;
k2=0;
if(I1>pp.i17)
{
temp_delt=pp.t17*1000000;
temp_delt=temp_delt/(I1-pp.i17);
delt=temp_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<=pp.i17+10)
I1=pp.i17;
else
I1=I1-10;
IM=(unsigned int)(I1*0.41);
// IM8=IM%256;
// IM4=IM/256;
IML=IM%256;
IMH=IM/256;
}
else
k1=1;
if(I2>pp.i17)
{
if(I2<=pp.i17+10)
I2=pp.i17;
else
I2=I2-10;
IB=(unsigned int)(I2*0.41);
// IB8=IB%256;
// IB4=IB/256;
IBL=IB%256;
IBH=IB/256;
}
else
k2=1;
UPD=0;
if(k1==1&&k2==1)
kk=0;
}
else
{
if(I1>pp.i17)
{
if(I1<=pp.i17+10)
I1=pp.i17;
else
I1=I1-10;
IM=(unsigned int)(I1*0.41);
IM8=IM%256;
IM4=IM/256;
// IB8=IM%256;
// IB4=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((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 + -