📄 main_1027.c
字号:
#pragma la
#include <main.h>
#define uchar unsigned char
#define uint unsigned int
sbit stop=P3^5;
/**********err information**********/
/*
err=0 正常
err=1 急停
err=2 通讯出错
err=3 引弧失败
err=4 电源出错
err=5 过温
err=6 缺水
err=7 缺气1
err=8 缺气2
err=9 旋转过流
err=10 送丝过流
err=11 旋转限位
err=12 横摆左限位
err=13 横摆右限位
err=14 横摆过流
err=15 弧长上限位
err=16 弧长下限位
err=17 弧长过流
err=18 弧长短路
err=19 缺电流板
err=20 失弧
*/
/**********err information**********/
bit ignit_ok,lift_ok,editing,readEEPbyte,readEEPpage,
writeEEPpage,writeEEPword,writeEEPbyte,edit_finish,copy,change_prg,
overtime,getPRG,in_sector,send,current_ok,rw_ok,oa_ok,rc_ok,p_absent,
t31OK,t41OK,t51OK,resend,param,ans,s_p,rc_demand,wire_stoped,avc_stoped,
savePRG,noans_ok,calling,current_absent,rw_absent,oa_absent,main_err,current_err,rw_err,oa_err,
osc_absent,avc_absent,p_out,p_send,temp_edit_finish,enter,rc_err;
bit p_absent,rc_absent,change_sec_num,urgent_stop,p_forbid,rc_forbid,p_active,rc_active,wait_ans,
tight,lose;
xdata uchar start _at_ 0x0800;
xdata uchar start_again _at_ 0x0801;
xdata uchar decrease _at_ 0x0802;
xdata uchar err_ok _at_ 0x0803;
xdata uchar YOUHU _at_ 0x0804;
xdata uchar WIRE _at_ 0x0805;
xdata uchar decrease_ok _at_ 0x0806;
//xdata uchar weld_switch _at_ 0x0807;
//xdata uchar wire_switch _at_ 0x0808;
xdata uchar current_add _at_ 0x0809;
xdata uchar current_dec _at_ 0x080A;
xdata uchar rot_front _at_ 0x080B;
xdata uchar rot_reverse _at_ 0x080C;
xdata uchar wire_add _at_ 0x080D;
xdata uchar wire_dec _at_ 0x080E;
xdata uchar osc_l _at_ 0x080F;
xdata uchar osc_r _at_ 0x0810;
xdata uchar breadth_add _at_ 0x0811;
xdata uchar breadth_dec _at_ 0x0812;
xdata uchar avc_up _at_ 0x0813;
xdata uchar avc_down _at_ 0x0814;
xdata uchar motor_stop _at_ 0x0815;
xdata uchar delt_switch _at_ 0x0816;
//xdata uchar return_ok _at_ 0x0817;
xdata uchar nonce_sec _at_ 0X0818;
xdata uint FINISH _at_ 0X0819;
//xdata uint CURRENT _at_ 0X081B;
//xdata uint VOLTAGE _at_ 0X081D;
//xdata uint AVC _at_ 0X081F;
xdata uchar new_switch11 _at_ 0x0821;
xdata uchar new_switch22 _at_ 0x0822;
xdata uchar pc_edit _at_ 0x0823;
//xdata uint last_FINISH _at_ 0x0824;
xdata uchar pc_stop _at_ 0x0826;
xdata uchar edited _at_ 0x0827;
xdata uchar p_changed _at_ 0x0828;
xdata uchar scan _at_ 0x0829;
xdata uchar err _at_ 0x082A;
xdata uchar sbuffer[7] _at_ 0x0000;
xdata uchar rbuffer[64] _at_ 0x0007;
xdata uchar sbuffer1[55] _at_ 0x0047;
xdata uchar existent[6] _at_ 0x007E;
xdata uchar S_ANSW _at_ 0x0084;
xdata uchar R_ANSW _at_ 0x0085;
xdata uchar POINTER0 _at_ 0x0086;
xdata uchar POINTER1 _at_ 0x0087;
xdata uchar work _at_ 0x0088;
xdata uchar Rn _at_ 0x0089;
xdata uchar Wn _at_ 0x008A;
xdata uchar OA _at_ 0x008B;
xdata uchar RSUM _at_ 0x008C;
xdata uchar SSUM _at_ 0x008D;
xdata uchar sw _at_ 0x008E;
xdata uchar PRG _at_ 0x008F;
//xdata uchar err _at_ 0x0090;
xdata uchar temp_PRG _at_ 0x0091;
xdata uchar p_name _at_ 0x0092;
xdata uchar s_byte_nums _at_ 0x0093;
xdata uchar r_byte_nums _at_ 0x0094;
xdata uchar times _at_ 0x0095;
xdata uchar p_sec _at_ 0x0096;
xdata uchar c_ex1 _at_ 0x0097;
xdata uchar delt_state _at_ 0x0098;
xdata uchar c_c_t1 _at_ 0x0099;
xdata uchar key _at_ 0x009A;
//xdata uchar r_byte_nums _at_ 0x009B;
xdata uchar COMM _at_ 0x009C;
xdata uchar SLA _at_ 0x009D;
xdata uchar FF _at_ 0x009E;
xdata uchar GET _at_ 0x009F;
xdata uchar touch_ok _at_ 0x00A0;
xdata uchar c_cm1 _at_ 0x00A1;
xdata uint *point _at_ 0x0200;
xdata uint n_n11 _at_ 0x0202;
xdata uint n_t21 _at_ 0x0204;
xdata uint n_t31 _at_ 0x0206;
xdata uint n_t13 _at_ 0x0208;
xdata uint n_t32 _at_ 0x020A;
xdata uint n_t33 _at_ 0x020C;
xdata uint n_t41 _at_ 0x020E;
//xdata uint n_t43 _at_ 0x0212;
xdata uint n_t51 _at_ 0x0214;
xdata uint n_t52 _at_ 0x0216;
xdata uint n_t01 _at_ 0x0218;
xdata uint n_t02 _at_ 0x021A;
xdata uint n_t03 _at_ 0x021C;
xdata uint n_t04 _at_ 0x021E;
xdata uint n_t12 _at_ 0x0220;
xdata uint n_t17 _at_ 0x0222;
xdata uint n_t34 _at_ 0x0224;
xdata uint c_flow _at_ 0x0226;
xdata uint c_sum _at_ 0x0228;
xdata uint c_current _at_ 0x022A;
xdata uint c_end _at_ 0x022C;
xdata uint temp_GET _at_ 0x022E;
xdata uint general_param _at_ 0x0230;
xdata uint mainDDR _at_ 0x0232;
xdata uint secondDDR _at_ 0x0234;
xdata uint nums _at_ 0x0236;
xdata uint nums1 _at_ 0x0238;
xdata uint delt _at_ 0x023A;
xdata uint c_t1 _at_ 0x023C;
xdata float temp_t _at_ 0x023E;
xdata uint n_t13_bb _at_ 0x0242;
xdata uint n_t21_bb _at_ 0x0244;
xdata uint n_t32_bb _at_ 0x0246;
xdata uint CURRENT _at_ 0x0248;
xdata uint VOLTAGE _at_ 0x024A;
xdata uint last_FINISH _at_ 0x024C;
void delay(unsigned int num)
{
data unsigned int i,ii;
for(i=0;i<num;i++)
{
for(ii=0;ii<255;ii++);
}
}
void start_i2()
{
data unsigned int time;
P1_6=1; //SCL
P1_7=1; //SDA
S1CON=0x47; //ENS1=1 STA=0 STO=0 SI=0 AA=1
PS1=1;FF=0;
EA=1;
ES1=1;
STA=1;
time=0;
do
{
time++;
if(time>10000)
{
FF=1;
}
}while(FF==0);
FF=0;
ES1=0;
}
void ini_sbuf(unsigned char a,b,c,d,e,f,g)
{
sbuffer[0]=a;
sbuffer[1]=b;
sbuffer[2]=c;
sbuffer[3]=d;
sbuffer[4]=e;
sbuffer[5]=f;
sbuffer[6]=g;
}
unsigned char get_byte_nums(unsigned char type)
{
unsigned char numbers;
switch(type)
{
case command:
case program:
case answer: numbers=4;
break;
case err_infor:
case parameter1: numbers=5;
break;
case parameter:
case infor: numbers=6;
break;
case parameter2: numbers=7;
break;
case call_result: numbers=9;
break;
case p_out_sec: numbers=55;
break;
case p_in_sec: numbers=24;
break;
case edit_sec: numbers=64;
break;
case p_section:
case p_edit_finish: numbers=8;
break;
default: break;
}
return numbers;
}
void start_i2a()
{
P1_6=1; //SCL
P1_7=1; //SDA
S1CON=0x47; //ENS1=1 STA=0 STO=0 SI=0 AA=1
PS1=1;
EA=1;
ES1=1;
STA=1;
}
void get_SLA()
{
if(PRG<50)
{
SLA=0xA0;
temp_PRG=PRG;
}
else
{
if(PRG<100)
{
SLA=0XA2;
temp_PRG=PRG-50;
}
}
mainDDR=temp_PRG*768;
}
void get_SLA1()
{
if(PRG<50)
{
SLA=0XA0;
temp_PRG=PRG;
}
else
{
if(PRG<100)
{
SLA=0XA2;
temp_PRG=PRG-50;
}
else
{
if(PRG<150)
{
SLA=0XA4;
temp_PRG=PRG-100;
}
else
{
SLA=0XA6;
temp_PRG=PRG-150;
}
}
}
mainDDR=temp_PRG*768;
}
void readEEP_byte()
{
nums=0;
readEEPbyte=1;
SLA=0XA0;
COMM=0xFF;
start_i2a();
while(readEEPbyte==1)
{
if(urgent_stop==1)
readEEPbyte=0;
}
}
void readEEP_page()
{
nums=0;
nums1=0;
delt=2;
point=&pp.pn;
readEEPpage=1;
get_SLA1();
COMM=(mainDDR+times*128)/256;
start_i2a();
while(readEEPpage==1)
{
if(urgent_stop==1)
readEEPpage=0;
}
}
void writeEEP_byte()
{
nums=0;
writeEEPbyte=1;
SLA=0XA0;
COMM=0XFF;
start_i2a();
while(writeEEPbyte==1)
{
if(urgent_stop==1)
writeEEPbyte=0;
}
}
void writeEEP_word()
{
nums=0;
writeEEPword=1;
start_i2a();
while(writeEEPword==1)
{
if(urgent_stop==1)
writeEEPword=0;
}
}
void writeEEP_page(unsigned char t) //将指定专家参数复制到目的程序号下
{
nums=0;
delt=2;
writeEEPpage=1;
get_SLA1();
COMM=(mainDDR+t*128)/256;
start_i2a();
while(writeEEPpage==1)
{
if(urgent_stop==1)
writeEEPpage=0;
}
}
void save_prg()
{
savePRG=1;
SLA=0XA0;
COMM=0XFF;
writeEEP_byte();
}
void TR_noans()
{
noans_ok=0;
TB8=1;
POINTER0=0;
SSUM=0;
send=1;
c_t1=0;
TR1=1;
while(POINTER0<s_byte_nums);
TR1=0;
noans_ok=1;
}
void TR_ans()
{
REN=0;
ans=1;
POINTER1=0;
RSUM=0;
TB8=1;
POINTER0=0;
SSUM=0;
send=1;
c_t1=0;
TR1=1;
while(POINTER0<s_byte_nums);
TR1=0;
REN=1;
send=0;
c_t1=0;
TR1=1;
while(POINTER1<r_byte_nums&&overtime==0);
TR1=0;
POINTER1=0;
RSUM=0;
c_t1=0;
if(overtime==1)
{
if(wait_ans==1)
{
err=2;
main_err=1;
}
c_t1=0;
}
ans=0;
REN=0;
}
void get_secondDDR()
{
switch(p_name)
{
case T01: secondDDR=2;break;
case T02: secondDDR=4;break;
case GAS2: secondDDR=6;break;
case T03: secondDDR=8;break;
case T04: secondDDR=10;break;
case K1: secondDDR=12;break;
case Ignit: secondDDR=14;break;
case I11: secondDDR=16;break;
case T12: secondDDR=18;break;
case I12: secondDDR=20;break;
case T13: secondDDR=22;break;
case T13_SD: secondDDR=24;break;
case T14: secondDDR=26;break;
case I14: secondDDR=28;break;
case T15: secondDDR=30;break;
case I15: secondDDR=32;break;
case DI: secondDDR=34;break;
case AHF: secondDDR=36;break;
case I16: secondDDR=38;break;
case F: secondDDR=40;break;
case T16: secondDDR=42;break;
case N11: secondDDR=44;break;
case N11_SD: secondDDR=46;break;
case T17: secondDDR=48;break;
case I17: secondDDR=50;break;
case K2: secondDDR=52;break;
case RN: secondDDR=54;break;
case D: secondDDR=56;break;
case K21: secondDDR=58;break;
case V21_P: secondDDR=60;break;
case V21_B: secondDDR=62;break;
case T21: secondDDR=64;break;
case T21_SD: secondDDR=66;break;
case DV21: secondDDR=68;break;
case B : secondDDR=70;break;
case K3: secondDDR=72;break;
case K31: secondDDR=74;break;
case WN: secondDDR=76;break;
case T31: secondDDR=78;break;
case T31_SD: secondDDR=80;break;
case T32: secondDDR=82;break;
case T32_SD: secondDDR=84;break;
case V31_P: secondDDR=86;break;
case V31_B: secondDDR=88;break;
case DV31: secondDDR=90;break;
case T33: secondDDR=92;break;
case T33_SD: secondDDR=94;break;
case V32: secondDDR=96;break;
case T34: secondDDR=98;break;
case K4: secondDDR=100;break;
case Syn_type: secondDDR=102;break;
case T41: secondDDR=104;break;
case T41_SD: secondDDR=106;break;
case T42_L: secondDDR=108;break;
case T42_R: secondDDR=110;break;
case V41: secondDDR=112;break;
case A41: secondDDR=114;break;
case DC41: secondDDR=116;break;
case DA41: secondDDR=118;break;
case T43: secondDDR=120;break;
case T43_SD: secondDDR=122;break;
case K5: secondDDR=124;break;
case PGJ: secondDDR=126;break;
case H51: secondDDR=128;break;
case T51: secondDDR=130;break;
case T51_SD: secondDDR=132;break;
case T52: secondDDR=134;break;
case T52_SD: secondDDR=136;break;
case AVC_type: secondDDR=138;break;
case U51_P: secondDDR=140;break;
case U51_B: secondDDR=142;break;
case SENS: secondDDR=144;break;
case DU51: secondDDR=146;break;
case H52: secondDDR=148;break;
case NUM_BB: secondDDR=150;break;
case N_BB: secondDDR=150+nonce_sec*60+2;break;
case T13_BB: secondDDR=150+nonce_sec*60+4;break;
case T14_BB: secondDDR=150+nonce_sec*60+6;break;
case I14_BB: secondDDR=150+nonce_sec*60+8;break;
case T15_BB: secondDDR=150+nonce_sec*60+10;break;
case I15_BB: secondDDR=150+nonce_sec*60+12;break;
case AHF_BB: secondDDR=150+nonce_sec*60+14;break;
case I16_BB: secondDDR=150+nonce_sec*60+16;break;
case F_BB: secondDDR=150+nonce_sec*60+18;break;
case T16_BB: secondDDR=150+nonce_sec*60+20;break;
case D_BB: secondDDR=150+nonce_sec*60+22;break;
case K21_BB: secondDDR=150+nonce_sec*60+24;break;
case V21P_BB: secondDDR=150+nonce_sec*60+26;break;
case V21B_BB: secondDDR=150+nonce_sec*60+28;break;
case T21_BB: secondDDR=150+nonce_sec*60+30;break;
case K3_BB: secondDDR=150+nonce_sec*60+32;break;
case K31_BB: secondDDR=150+nonce_sec*60+34;break;
case T32_BB: secondDDR=150+nonce_sec*60+36;break;
case V31P_BB: secondDDR=150+nonce_sec*60+38;break;
case V31B_BB: secondDDR=150+nonce_sec*60+40;break;
case K4_BB: secondDDR=150+nonce_sec*60+42;break;
case T42L_BB: secondDDR=150+nonce_sec*60+44;break;
case T42R_BB: secondDDR=150+nonce_sec*60+46;break;
case V41_BB: secondDDR=150+nonce_sec*60+48;break;
case A41_BB: secondDDR=150+nonce_sec*60+50;break;
case T43_BB: secondDDR=150+nonce_sec*60+52;break;
case U51P_BB: secondDDR=150+nonce_sec*60+54;break;
case U51B_BB: secondDDR=150+nonce_sec*60+56;break;
case SENS_BB: secondDDR=150+nonce_sec*60+58;break;
case DU51_BB: secondDDR=150+nonce_sec*60+60;break;
default:break;
}
}
void para_table()
{
switch(p_name)
{
case T01: {
pp.t01=rbuffer[3]*256+rbuffer[4];
general_param=pp.t01;
}break;
case T02: {
pp.t02=rbuffer[3]*256+rbuffer[4];
general_param=pp.t02;
}break;
case GAS2: {
pp.gas2=rbuffer[3]*256+rbuffer[4];
general_param=pp.gas2;
}break;
case T03: {
pp.t03=rbuffer[3]*256+rbuffer[4];
general_param=pp.t03;
}break;
case T04: {
pp.t04=rbuffer[3]*256+rbuffer[4];
general_param=pp.t04;
}break;
case K1: {
pp.k1=rbuffer[3]*256+rbuffer[4];
if(pp.k1==DC)
{
pp.k21=OFF;
pp.k31=OFF;
}
general_param=pp.k1;
}break;
case Ignit: {
pp.ignit=rbuffer[3]*256+rbuffer[4];
general_param=pp.ignit;
}break;
case I11: {
pp.i11=rbuffer[3]*256+rbuffer[4];
general_param=pp.i11;
}break;
case T12: {
pp.t12=rbuffer[3]*256+rbuffer[4];
general_param=pp.t12;
}break;
case I12: {
pp.i12=rbuffer[3]*256+rbuffer[4];
general_param=pp.i12;
}break;
case T13: {
pp.t13=rbuffer[3]*256+rbuffer[4];
general_param=pp.t13;
}break;
case T13_SD: {
pp.t13_sd=rbuffer[3]*256+rbuffer[4];
general_param=pp.t13_sd;
}break;
case T14: {
pp.t14=rbuffer[3]*256+rbuffer[4];
general_param=pp.t14;
}break;
case I14: {
pp.i14=rbuffer[3]*256+rbuffer[4];
general_param=pp.i14;
}break;
case T15: {
pp.t15=rbuffer[3]*256+rbuffer[4];
general_param=pp.t15;
}break;
case I15: {
pp.i15=rbuffer[3]*256+rbuffer[4];
general_param=pp.i15;
}break;
case DI: {
pp.di=rbuffer[3]*256+rbuffer[4];
general_param=pp.di;
}break;
case AHF: {
pp.ahf=rbuffer[3]*256+rbuffer[4];
general_param=pp.ahf;
}break;
case I16: {
pp.i16=rbuffer[3]*256+rbuffer[4];
general_param=pp.i16;
}break;
case F: {
pp.f=rbuffer[3]*256+rbuffer[4];
general_param=pp.f;
}break;
case T16: {
pp.t16=rbuffer[3]*256+rbuffer[4];
general_param=pp.t16;
}break;
case N11: {
pp.n11=rbuffer[3]*256+rbuffer[4];
general_param=pp.n11;
}break;
case N11_SD: {
pp.n11_sd=rbuffer[3]*256+rbuffer[4];
general_param=pp.n11_sd;
}break;
case T17: {
pp.t17=rbuffer[3]*256+rbuffer[4];
general_param=pp.t17;
}break;
case I17: {
pp.i17=rbuffer[3]*256+rbuffer[4];
general_param=pp.i17;
}break;
case K2: {
pp.k2=rbuffer[3]*256+rbuffer[4];
general_param=pp.k2;
}break;
case RN: {
pp.rn=rbuffer[3]*256+rbuffer[4];
general_param=pp.rn;
}break;
case D: {
pp.d=rbuffer[3]*256+rbuffer[4];
general_param=pp.d;
}break;
case K21: {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -