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

📄 current3.c.bak

📁 基于485的51单片机多机通讯程序
💻 BAK
📖 第 1 页 / 共 3 页
字号:
		}
	}
//	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 + -