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

📄 main_1027.c

📁 基于485的51单片机多机通讯程序
💻 C
📖 第 1 页 / 共 5 页
字号:
	{
		POINTER1=0;
		RSUM=0;
		r_byte_nums=4;
		urgent_stop=0;
		EX0=1;
	}
	IEN1=IEN1&0XEF;
	p_send=0;
	work=0;				//工作状态
//	err=0;				//错误编号
	editing=0;			//正在编程
	change_sec_num=0;
	edit_finish=0;			//编程结束
	temp_edit_finish=0;
	param=0;
	p_out=0;
	change_prg=0;
	savePRG=0;
	copy=0;
	start=0;
	start_again=0;
	ignit_ok=0;			//引弧成功信号
	c_flow=0;
	c_sum=0;
	c_current=0;
	c_end=0;
	in_sector=0;
	nonce_sec=0;			//当前区间号
	t31OK=0;			//送丝已经开始=1
	t41OK=0;			//横摆已经开始=1
	t51OK=0;			//弧长已经开始=1
	wire_stoped=0;
	avc_stoped=0;
	pc_edit=0;
	
	CURRENT=0;
	VOLTAGE=0;
//	AVC=0;
	decrease=0;
	decrease_ok=0;
	lift_ok=0;
//	auto_return=0;
//	return_ok=0;

	writeEEPbyte=0;
	writeEEPword=0;
	writeEEPpage=0;
	
	S_ANSW=0;
	ans=0;
	R_ANSW=0;
	r_byte_nums=4;
	noans_ok=1;
	overtime=0;
	wait_ans=0;
	s_p=0;				//1,发送参数
	resend=0;
	c_c_t1=0;

	current_add=0;
	current_dec=0;
	rot_front=0;
	rot_reverse=0;
	wire_add=0;
	wire_dec=0;
	osc_l=0;
	osc_r=0;
	breadth_add=0;
	breadth_dec=0;
	avc_up=0;
	avc_down=0;
	motor_stop=0;
	new_switch11=0;
	new_switch22=0;
	delt_switch=0;
	rc_demand=0;
	c_ex1=0;
	enter=0;
	scan=0;	
	touch_ok=0;
	c_cm1=0;
	tight=0;
	lose=0;
	

	CML0=TML2+0XD4;
	if(CML0<TML2)
		CMH0=TMH2+1+0X30;
	else
		CMH0=TMH2+0X30;			//CM0 100ms
	SLA=0X40;
	COMM=0X03;
	start_i2a();
	CTCON=CTCON|0X02;
	IEN1=IEN1|0X01;

	REN=1;
	while(start==0)
	{
		if(change_prg==1&&editing==0)	//程序号改变
		{
			PRG=rbuffer[2];
			save_prg();
			delay(2);
			ini_ram();
			delay(2);
			p_changed=1;

			temp_t=pp.d*3.14;
			temp_t=temp_t/60;
			temp_t=temp_t/pp.v21_p;
			if(pp.t13_sd==1)
			{
				n_t13=pp.t13*temp_t;
				if(n_t13==0)
					n_t13=1;
			}
			else
				n_t13=pp.t13;		
			if(pp.t21_sd==1)
			{
				n_t21=pp.t21*temp_t;
				if(n_t21==0)
					n_t21=1;
			}
			if(pp.t32_sd==1)
			{
				n_t32=pp.t32*temp_t;
				if(n_t32==0)
					n_t32=1;
			}
			ini_sbuf(M_ALL,command,com_send_p,0,0,0,0);
			s_byte_nums=4;
			TR_noans();
			send_param();
			if(urgent_stop==1)
				goto AA;
			delay(2);
			send_param1();
			if(urgent_stop==1)
				goto AA;
			ini_sbuf(M_ALL,command,com_send_p_ok,0,0,0,0);
			s_byte_nums=4;
			TR_noans();

			ini_sbuf(M_P_RC,program,PRG,0,0,0,0);
			s_byte_nums=4;
			TR_noans();
			change_prg=0;
			REN=1;
		}

		if(editing==1)		//编程
		{
			ini_sbuf(M_ALL,command,com_edit,0,0,0,0);
			s_byte_nums=4;
			TR_noans();
			work=1;
			edit();
			edited=1;
			temp_t=pp.d*3.14;
			temp_t=temp_t/60;
			temp_t=temp_t/pp.v21_p;
			if(pp.t13_sd==1)
			{
				n_t13=pp.t13*temp_t;
				if(n_t13==0)
					n_t13=1;
			}
			else
				n_t13=pp.t13;		
			if(pp.t21_sd==1)
			{
				n_t21=pp.t21*temp_t;
				if(n_t21==0)
					n_t21=1;
			}
			if(pp.t32_sd==1)
			{
				n_t32=pp.t32*temp_t;
				if(n_t32==0)
					n_t32=1;
			}
			ini_sbuf(M_ALL,command,com_send_p,0,0,0,0);
			s_byte_nums=4;
			TR_noans();
			send_param();
			if(urgent_stop==1)
				goto AA;
			delay(2);
			send_param1();
			if(urgent_stop==1)
				goto AA;
			ini_sbuf(M_ALL,command,com_send_p_ok,0,0,0,0);
			s_byte_nums=4;
			TR_noans();
			if(urgent_stop==1)
				goto BEGIN;
			REN=1;
		}
		
		if(pc_edit==1)
		{
			temp_t=pp.d*3.14;
			temp_t=temp_t/60;
			temp_t=temp_t/pp.v21_p;
			if(pp.t13_sd==1)
			{
				n_t13=pp.t13*temp_t;
				if(n_t13==0)
					n_t13=1;
			}
			else
				n_t13=pp.t13;		
			if(pp.t21_sd==1)
			{
				n_t21=pp.t21*temp_t;
				if(n_t21==0)
					n_t21=1;
			}
			if(pp.t32_sd==1)
			{
				n_t32=pp.t32*temp_t;
				if(n_t32==0)
					n_t32=1;
			}
			ini_sbuf(M_ALL,command,com_send_p,0,0,0,0);
			s_byte_nums=4;
			TR_noans();
			send_param();
			if(urgent_stop==1)
				goto AA;
			delay(2);
			PRG=pp.pn%256;
			save_prg();
			ini_sbuf(M_P_RC,program,PRG,0,0,0,0);
			s_byte_nums=4;
			TR_noans();
			send_param1();
			if(urgent_stop==1)
				goto AA;
			ini_sbuf(M_ALL,command,com_send_p_ok,0,0,0,0);
			s_byte_nums=4;
			TR_noans();
			if(urgent_stop==1)
				goto BEGIN;
			pc_edit=0;
			REN=1;
		}

		if(rot_front==1)
		{
			ini_sbuf(M_RW,command,com_rot_front,0,0,0,0);
			s_byte_nums=4;
			TR_noans();
			REN=1;
			rot_front=0;
		}

		if(rot_reverse==1)
		{
			ini_sbuf(M_RW,command,com_rot_reverse,0,0,0,0);
			s_byte_nums=4;
			TR_noans();
			REN=1;
			rot_reverse=0;
		}
		if(wire_add==1)
		{
			ini_sbuf(M_RW,command,com_wire_add,0,0,0,0);
			s_byte_nums=4;
			TR_noans();
			REN=1;
			wire_add=0;
		}
		if(wire_dec==1)
		{
			ini_sbuf(M_RW,command,com_wire_dec,0,0,0,0);
			s_byte_nums=4;
			TR_noans();
			REN=1;
			wire_dec=0;
		}
		if(osc_l==1)
		{
			ini_sbuf(M_OSC,command,com_osc_l,0,0,0,0);
			s_byte_nums=4;
			TR_noans();
			REN=1;
			osc_l=0;
		}
		if(osc_r==1)
		{
			ini_sbuf(M_OSC,command,com_osc_r,0,0,0,0);
			s_byte_nums=4;
			TR_noans();
			REN=1;
			osc_r=0;
		}
		if(avc_up==1)
		{
			ini_sbuf(M_AVC,command,com_avc_up,0,0,0,0);
			s_byte_nums=4;
			TR_noans();
			REN=1;
			avc_up=0;
		}
		if(avc_down==1)
		{
			ini_sbuf(M_AVC,command,com_avc_down,0,0,0,0);
			s_byte_nums=4;
			TR_noans();
			REN=1;
			avc_down=0;
		}
		if(tight==1)
		{
			ini_sbuf(M_current,command,com_tight,0,0,0,0);
			s_byte_nums=4;
			TR_noans();
			REN=1;
			tight=0;
		}
		if(lose==1)
		{
			ini_sbuf(M_current,command,com_lose,0,0,0,0);
			s_byte_nums=4;
			TR_noans();
			REN=1;
			lose=0;
		}
		if(motor_stop==1)
		{
			ini_sbuf(M_ALL,command,com_motor_stop,0,0,0,0);
			s_byte_nums=4;
			TR_noans();
			REN=1;
			motor_stop=0;
		}
		if(new_switch11==1)
		{
			ini_sbuf(M_RC,answer,S_ANSW,0,0,0,0);
			s_byte_nums=4;
			TR_noans();

			if(S_ANSW==OK)
			{
				YOUHU=rbuffer[3];
				ini_sbuf(M_current,infor,com_weld_simu,YOUHU,0,0,0);
				s_byte_nums=6;
				TR_noans();
				ini_sbuf(M_P,infor,com_weld_simu,YOUHU,0,0,0);
				s_byte_nums=6;
				TR_noans();
			}
			new_switch11=0;
			REN=1;
		}
		
		if(new_switch22==1)
		{
			ini_sbuf(M_RC,answer,S_ANSW,0,0,0,0);
			s_byte_nums=4;
			TR_noans();

			if(S_ANSW==OK)
			{
				WIRE=rbuffer[3];
				ini_sbuf(M_RW,infor,com_wire_on_off,WIRE,0,0,0);
				s_byte_nums=6;
				TR_noans();
				ini_sbuf(M_P,infor,com_wire_on_off,WIRE,0,0,0);
				s_byte_nums=6;
				TR_noans();
			}
			new_switch22=0;
			REN=1;
		}
		
		if(delt_switch==1)
		{
			ini_sbuf(M_RC,answer,S_ANSW,0,0,0,0);
			s_byte_nums=4;
			TR_noans();
			
			if(S_ANSW==OK)
			{
				delt_state=rbuffer[3];
				ini_sbuf(M_ALL,infor,com_delt_switch,delt_state,0,0,0);
				s_byte_nums=6;
				TR_noans();
				ini_sbuf(M_P,infor,com_delt_switch,delt_state,0,0,0);
				s_byte_nums=6;
				TR_noans();
			}
			delt_switch=0;
			REN=1;
		}
		if(urgent_stop==1)
			goto BEGIN;
	}
	REN=0;
	count();
	EX1=1;
	if(pp.pgj==ON)
	{
		ini_sbuf(M_AVC,command,com_pgj,0,0,0,0);
		s_byte_nums=4;
		TR_ans();
		REN=1;
		while(lift_ok==0)
		{
			if(rc_demand==1)		//响应线控器
			{
				if(ans==0&&noans_ok==1)
				{
					sbuffer1[0]=M_RC;
					sbuffer1[1]=command;
					sbuffer1[2]=com_rc_demand;
					sbuffer1[3]=0;
					s_p=1;
					s_byte_nums=4;
					TR_ans();
					s_p=0;
				}
				rc_demand=0;
				EX1=1;
			}
			if(urgent_stop==1)
				goto BEGIN;
		}
		REN=0;
		lift_ok=0;
		ini_sbuf(M_AVC,answer,S_ANSW,0,0,0,0);
		s_byte_nums=4;
		TR_noans();
	}
	delay(10);
	ini_sbuf(M_ALL,command,com_start,0,0,0,0);
	s_byte_nums=4;
	TR_noans();

	work=3;				//进入焊接过程
	c_sum=0;
	IEN1=IEN1|0X10;			//允许CM0

	if(pp.gas2==ON)
	{
		if(pp.t03>pp.t01)
		{
			ini_sbuf(M_current,command,com_open_gas2,0,0,0,0);//Open Gas2
			s_byte_nums=4;
			wait_ans=1;
			TR_ans();
			wait_ans=0;
			c_sum=c_flow+n_t03-n_t01;
			while(c_flow<c_sum)
			{
				if(rc_demand==1)		//响应线控器
				{
					if(ans==0&&noans_ok==1)
					{
						sbuffer1[0]=M_RC;
						sbuffer1[1]=command;
						sbuffer1[2]=com_rc_demand;
						sbuffer1[3]=0;
						s_p=1;
						s_byte_nums=4;
						TR_ans();
						s_p=0;
					}
					rc_demand=0;
					EX1=1;
				}
				if(urgent_stop==1)
					goto BEGIN;
			}
			ini_sbuf(M_current,command,com_open_gas1,0,0,0,0);//Open Gas1
			s_byte_nums=4;
			wait_ans=1;
			TR_ans();
			wait_ans=0;
			c_sum=c_flow+n_t03;
			while(c_flow<c_sum)
			{
				if(rc_demand==1)		//响应线控器
				{
					if(ans==0&&noans_ok==1)
					{
						sbuffer1[0]=M_RC;
						sbuffer1[1]=command;
						sbuffer1[2]=com_rc_demand;
						sbuffer1[3]=0;
						s_p=1;
						s_byte_nums=4;
						TR_ans();
						s_p=0;
					}
					rc_demand=0;
					EX1=1;
				}
				if(urgent_stop==1)
					goto BEGIN;
			}
		}
		else
		{
			ini_sbuf(M_current,command,com_open_gas1,0,0,0,0);//Open Gas1
			s_byte_nums=4;
			wait_ans=1;
			TR_ans();
			wait_ans=0;
			c_sum=c_flow+n_t01-n_t03;
			while(c_flow<c_sum)
			{
				if(rc_demand==1)		//响应线控器
				{
					if(ans==0&&noans_ok==1)
					{
						sbuffer1[0]=M_RC;
						sbuffer1[1]=command;
						sbuffer1[2]=com_rc_demand;
						sbuffer1[3]=0;
						s_p=1;
						s_byte_nums=4;
						TR_ans();
						s_p=0;
					}
					rc_demand=0;
					EX1=1;
				}
				if(urgent_stop==1)
					goto BEGIN;
			}
			ini_sbuf(M_current,command,com_open_gas2,0,0,0,0);//Open Gas2
			s_byte_nums=4;
			wait_ans=1;
			TR_ans();
			wait_ans=0;
			c_sum=c_flow+n_t01;
			while(c_flow<c_sum)
			{
				if(rc_demand==1)		//响应线控器
				{
					if(ans==0&&noans_ok==1)
					{
						sbuffer1[0]=M_RC;
						sbuffer1[1]=command;
						sbuffer1[2]=com_rc_demand;
						sbuffer1[3]=0;
						s_p=1;
						s_byte_nums=4;
						TR_ans();
						s_p=0;
					}
					rc_demand=0;
					EX1=1;
				}
				if(urgent_stop==1)
					goto BEGIN;
			}
		}
	}
	else
	{
		ini_sbuf(M_current,command,com_open_gas1,0,0,0,0);//Open Gas1
		s_byte_nums=4;
		wait_ans=1;
		TR_ans();
		wait_ans=0;
		c_sum=c_flow+n_t01;
		while(c_flow<c_sum)
		{
			if(rc_demand==1)		//响应线控器
			{
				if(ans==0&&noans_ok==1)
				{
					sbuffer1[0]=M_RC;
					sbuffer1[1]=command;
					sbuffer1[2]=com_rc_demand;
					sbuffer1[3]=0;
					s_p=1;
					s_byte_nums=4;
					TR_ans();
					s_p=0;
				}
				rc_demand=0;
				EX1=1;
			}
			if(urgent_stop==1)
				goto BEGIN;
		}
	}

	if(YOUHU==1)
	{
		ini_sbuf(M_current,command,com_ignit,0,0,0,0);//引弧过程
		s_byte_nums=4;
		wait_ans=1;
		TR_ans();
		wait_ans=0;
		if(pp.ignit==TOUCH)				//引弧方式touch
		{
			ini_sbuf(M_AVC,command,com_touch,0,0,0,0);
			s_byte_nums=4;
			wait_ans=1;
			TR_ans();
			wait_ans=0;				//枪头下移
			REN=1;
			while(touch_ok==0);
			REN=0;
			
			touch_ok=0;
		}	
		ini_sbuf(M_current,command,com_ignit_ok,0,0,0,0);
		s_byte_nums=4;
		TR_noans();
		REN=1;
		c_sum=c_flow+30;
		while(c_flow<c_sum)
		{	
			if(rc_demand==1)			//响应线控器
			{
				if(ans==0&&noans_ok==1)
				{
					sbuffer1[0]=M_RC;
					sbuffer1[1]=command;
					sbuffer1[2]=com_rc_demand;
					sbuffer1[3]=0;
					s_p=1;
					s_byte_nums=4;
					TR_ans();
					s_p=0;
				}
				REN=1;
				rc_demand=0;
				EX1=1;
			}
			if(urgent_stop==1)
				goto BEGIN;
			if(ignit_ok==1)
			{
				REN=0;
				c_current=c_flow;		//I>0时,时钟个数
				ignit_ok=0;
				goto over_ignit;
			}	
		}
		REN=0;
		err=3;
		main_err=1;
		stop=0;
		while(urgent_stop==0);
		if(urgent_stop==1)
			goto BEGIN;
	}
	

⌨️ 快捷键说明

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