📄 7188.c
字号:
#include<stdio.h>
#include"7188.h"
#include"math.h"
void rec_to_plc();
void sc_to_plc();
void Check_rec();
void modulecheck_flag();
void read_7018();
void send_to_plc();
void read_7018_mea();
void send_to_plc_mea();
static char strplc[20];
static char strplc1[20];
static char cmd7018[5];
static char str7018[140];
static char str70181[120];
static char cmdplc[50];
int Check_error=0;
int Verify_error=0;
int measure_flag=0;
int search_flag=0;
int modify_flag=0;
int module_flag=0;
int read_error=0;
int iji[21]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
void main()
{
int quit=0;
int i=0;
int k=0,k1=0;
int reci=0;
int modul_number=1;
int search_total=10;
int total_modul=10;
int j=0;
int sk=0,sk1=0,sk2=0;
int iErrorNo;
InitLib();
DisableWDT();
InstallCom(1,9600L,8,0,1);
InstallCom(2,9600L,8,0,1);
LedOn();
DelayMs(10);
while(!quit)
{
printf("\n\n/*******************************************/" );
printf("\n/** TEMPERATURE CONTROLLER PROGRAMM **/" );
printf("\n/*** yun tong ***/" );
printf("\n/***** 03/04/2007 *****/" );
printf("\n/**** Ver 5.0 YUNTONG GLASS ENGINEERING ****/" );
printf("\n/*******************************************/" );
LedOff();
printf("\n\nBEGIN TO LOOP !!!!");
/*数据采集*/
while(IsCom1())
{
LedOff();
/*strplc[0]=ReadCom1();
printf("strplc0=%d",strplc[0]); ) */
for(reci=0;reci<5;reci=reci+1)
{
strplc[reci]=ReadCom1();
printf("%c",strplc[reci]);
}
Check_rec();
modulecheck_flag();
}
if(module_flag==0)
{
for(j=0;j<=total_modul;j++)
{
LedOn();
modul_number=j;
printf("\nmodul_counter=%d",modul_number);
read_7018(modul_number);
send_to_plc(modul_number,0);
}
}
if(modify_flag==1)
{
LedOn();
cmd7018[0]='%';
cmd7018[1]=strplc[1];cmd7018[2]=strplc[2];
cmd7018[3]=strplc[3];cmd7018[4]=strplc[4];
cmd7018[5]='0'; cmd7018[6]='F';
cmd7018[7]='0'; cmd7018[8]='6';
cmd7018[9]='8'; cmd7018[10]='0';
cmd7018[11]=0; /* 0x0D; */
SendCmdTo7000(2,cmd7018,0);
iErrorNo=ReceiveResponseFrom7000(2,str7018,4000L,0);
if(iErrorNo==NoError)
{
printf("\nResponce_set_7018=");
for(i=0;i<20;i=i+1){printf("%c",str7018[i]);}
/* wrt_to_plc();*/
/* rec_to_plc_7018();)*/
DelayMs(2000);
}
else printf("\n!!!!!!!!!! ERROR at Setup To 7018 !!!!!!!!!");
if(str7018[0]=='!')
{
cmdplc[0]='!';
}
/*else{cmdplc[0]=k; cmdplc[1]='F'; cmdplc[2]='F';}*/
printf("\nTo_WRITE_7018_NO=");
SendCmdTo7000(1, cmdplc,1);
Delay(2000);
}
if(search_flag==1)
{
LedOn();
for(k=0;k<=search_total;k++)
{
for(i=0;i<5;i=i+1){cmd7018[i]=0;}
for(i=0;i<60;i=i+1){str7018[i]=0;}
sk=k;
sk2=(sk & 0x00f0)>>4;
sk1=(sk & 0x000f);
cmd7018[0]='$'; cmd7018[1]=hex_to_ascii[sk2];
cmd7018[2]=hex_to_ascii[sk1];
cmd7018[3]='2'; cmd7018[4]=0;/* 0x0d */
printf("\nTo Search 7018NO[%d]=%d ",k,k);
SendCmdTo7000(2,cmd7018,0);
iErrorNo=ReceiveResponseFrom7000(2,str7018,4000L,0);
if(iErrorNo==NoError)
{
printf("\nResponce_7018=");
for(i=0;i<10;i=i+1){printf("%c",str7018[i]);}
}
else printf("\n!!!!!!!!!! ERROR at Search To 7018[%d] !!!!!!!!!",k);
if(str7018[0]=='!')
{
cmdplc[0]=k+48; cmdplc[1]=hex_to_ascii[sk2]; cmdplc[2]=hex_to_ascii[sk1];
}
else{cmdplc[0]=k+48; cmdplc[1]='8'; cmdplc[2]='5'; }
printf("\nTo_WRITE_7018_NO=");
SendCmdTo7000(1, cmdplc,3);
/* ToCom1Bufn(cmdplc,2);*/
WaitTransmitOver1();
/* for(i=0;i<13;i=i+1){printf("%c",cmdplc[i]);}*/
DelayMs(10);
}
}
if(measure_flag==1)
{
LedOn();
modul_number=0;
printf("\nmodul_counter=%d",modul_number);
read_7018_mea(modul_number);
send_to_plc_mea(modul_number,0);
}
if(measure_flag==2)
{
LedOn();
modul_number=1;
printf("\nmodul_counter=%d",modul_number);
read_7018_mea(modul_number);
send_to_plc_mea(modul_number,0);
}
if(measure_flag==3)
{
LedOn();
modul_number=2;
printf("\nmodul_counter=%d",modul_number);
read_7018_mea(modul_number);
send_to_plc_mea(modul_number,0);
}
if(measure_flag==4)
{
LedOn();
modul_number=3;
printf("\nmodul_counter=%d",modul_number);
read_7018_mea(modul_number);
send_to_plc_mea(modul_number,0);
}
if(measure_flag==5)
{
LedOn();
modul_number=4;
printf("\nmodul_counter=%d",modul_number);
read_7018_mea(modul_number);
send_to_plc_mea(modul_number,0);
}
if(measure_flag==6)
{
LedOn();
modul_number=5;
printf("\nmodul_counter=%d",modul_number);
read_7018_mea(modul_number);
send_to_plc_mea(modul_number,0);
}
if(measure_flag==7)
{
LedOn();
modul_number=6;
printf("\nmodul_counter=%d",modul_number);
read_7018_mea(modul_number);
send_to_plc_mea(modul_number,0);
}
if(measure_flag==8)
{
LedOn();
modul_number=7;
printf("\nmodul_counter=%d",modul_number);
read_7018_mea(modul_number);
send_to_plc_mea(modul_number,0);
}
if(measure_flag==9)
{
LedOn();
modul_number=8;
printf("\nmodul_counter=%d",modul_number);
read_7018_mea(modul_number);
send_to_plc_mea(modul_number,0);
}
if(measure_flag==10)
{
LedOn();
modul_number=9;
printf("\nmodul_counter=%d",modul_number);
read_7018_mea(modul_number);
send_to_plc_mea(modul_number,0);
}
}
}/*main is over*/
void Check_rec()
{
int CheckQ=0;
int checki=0;
int checkj=0;
int csum=0,csum1=0,csum2=0;
/*while(!CheckQ)
{
if(strplc[checki]==0x02){checkj=checki;CheckQ=1;}
checki++;
if(checki >=20){Check_error=1;printf("\n\nReceive Communicate Error !!!\n");CheckQ=1;}
}*/
/*if(!Check_error)
{
printf("\ncheckj=%d\n",checkj);
for(checki=0;checki<20;checki++)
{
strplc1[checki]=strplc[checki+checkj];
}
for(checki=0;checki<20;checki++)
{
strplc[checki]=strplc1[checki];
}
csum=strplc[1]+strplc[2]+strplc[3];
csum2=(csum & 0x00f0)>>4;
csum1=csum & 0x000f;*/
/*if(strplc[4] != hex_to_ascii[csum2] || strplc[5] != hex_to_ascii[csum1])
{
printf("\n\nReceive Verify Error !!!\n");
Verify_error=1;
}*/
/* printf("\n\nVerify_error=%d Check_error=%d\n",Verify_error,Check_error);*/
Check_error=0;
Verify_error==0;
}
void modulecheck_flag()
{
if(Check_error==0 && Verify_error==0)
{
if(strplc[0]=='a'){module_flag=0;modify_flag=0;search_flag=0;measure_flag=0;}
if(strplc[0]=='b'){modify_flag=1;module_flag=1;search_flag=0;measure_flag=0;}
if(strplc[0]=='c'){search_flag=1;module_flag=1;measure_flag=0;modify_flag=0;}
if(strplc[0]=='0'){measure_flag=1;module_flag=1;search_flag=0;modify_flag=0;}
if(strplc[0]=='1'){measure_flag=2;module_flag=1;search_flag=0;modify_flag=0;}
if(strplc[0]=='2'){measure_flag=3;module_flag=1;search_flag=0;modify_flag=0;}
if(strplc[0]=='3'){measure_flag=4;module_flag=1;search_flag=0;modify_flag=0;}
if(strplc[0]=='4'){measure_flag=5;module_flag=1;search_flag=0;modify_flag=0;}
if(strplc[0]=='5'){measure_flag=6;module_flag=1;search_flag=0;modify_flag=0;}
if(strplc[0]=='6'){measure_flag=7;module_flag=1;search_flag=0;modify_flag=0;}
if(strplc[0]=='7'){measure_flag=8;module_flag=1;search_flag=0;modify_flag=0;}
if(strplc[0]=='8'){measure_flag=9;module_flag=1;search_flag=0;modify_flag=0;}
if(strplc[0]=='9'){measure_flag=10;module_flag=1;search_flag=0;modify_flag=0;}
}
else{module_flag=0;modify_flag=0;search_flag=0;measure_flag=0;}
/*printf("\n\nmodule_flag=%d \nmodify_flag=%d \nsearch_flag=%d \nmeasure_flag=%d \n",module_flag,modify_flag,search_flag,measure_flag);*/
}
void read_7018(int modul_num)
{
int i=0;
int iErrorNo;
int mo_numh,mo_numh1,mo_numh2;
int ij=0;
int read_flag=0;
for(i=0;i<5;i=i+1){cmd7018[i]=0;}
for(i=0;i<120;i=i+1){str7018[i]=0;}
mo_numh=modul_num;
mo_numh2=(mo_numh & 0x00f0)>>4;
mo_numh1=mo_numh & 0x000f;
cmd7018[0]='#';
cmd7018[1]=hex_to_ascii[mo_numh2];
cmd7018[2]=hex_to_ascii[mo_numh1];
cmd7018[3]=0x0; /* x0D; */
printf("\nTo7018[%d]=%d %d \n",mo_numh,mo_numh2,mo_numh1);
for(i=0;i<4;i=i+1){printf("%c",cmd7018[i]);}
SendCmdTo7000(2,cmd7018,0);
DelayMs(10);
iErrorNo=ReceiveResponseFrom7000(2,str7018,4000L,0);
if(iErrorNo==NoError)
{
printf("\nResponce_7018=");
i=0;
while(!read_flag)
{
printf("%c",str7018[i]);
if(str7018[i] == '>'){ij=i;read_flag=1;}
i++;
if(i>=120){read_flag=1;read_error=1;printf("\n\nCommunicate to 7018 Error !!! \n");}
}
for(i=0;i<120;i=i+1){str70181[i]=str7018[i+ij];}
for(i=0;i<120;i=i+1){str70181[i]=str7018[i];}
}
else
{
read_error=1;
printf("\n\n!!!!!!!!!! ERROR at COMM to 7018 !!!!!!!!!\n");
iji[modul_num]=iji[modul_num]+1;
for(i=0;i<120;i=i+1){str7018[i]='0';}
}
}
void send_to_plc(int modul_num,int state)
{
int i=0;
int data_number=0;
int dn1=0,dn2=0,dn3=0,dn4=0;
int checknum=0;
int cn1=0,cn2=0;
for(i=0;i<50;i=i+1){cmdplc[i]='0';}
for(i=0;i<20;i=i+1){strplc[i]='0';}
if(state==1){modul_num=1;}
/* cmdplc[0]='\02'; cmdplc[1]='1';*/
cmdplc[0]=modul_num+48;
/*data_number=(384+8*(modul_num-1))*2+0x1000;
dn1=data_number & 0x000f;
dn2=(data_number & 0x00f0)>>4;
dn3=(data_number & 0x0f00)>>8;
dn4=(data_number & 0xf000)>>12;
cmdplc[2]=hex_to_ascii[dn4];
cmdplc[3]=hex_to_ascii[dn3];
cmdplc[4]=hex_to_ascii[dn2];
cmdplc[5]=hex_to_ascii[dn1];
cmdplc[6]='1';
cmdplc[7]='0';*/
cmdplc[3]=str7018[4]; cmdplc[4]=str7018[5];
cmdplc[1]=str7018[2]; cmdplc[2]=str7018[3];
cmdplc[7]=str7018[11]; cmdplc[8]=str7018[12];
cmdplc[5]=str7018[9]; cmdplc[6]=str7018[10];
cmdplc[11]=str7018[18]; cmdplc[12]=str7018[19];
cmdplc[9]=str7018[16]; cmdplc[10]=str7018[17];
cmdplc[15]=str7018[25]; cmdplc[16]=str7018[26];
cmdplc[13]=str7018[23]; cmdplc[14]=str7018[24];
cmdplc[19]=str7018[32]; cmdplc[20]=str7018[33];
cmdplc[17]=str7018[30]; cmdplc[18]=str7018[31];
cmdplc[23]=str7018[39]; cmdplc[24]=str7018[40];
cmdplc[21]=str7018[37]; cmdplc[22]=str7018[38];
cmdplc[27]=str7018[46]; cmdplc[28]=str7018[47];
cmdplc[25]=str7018[44]; cmdplc[26]=str7018[45];
cmdplc[31]=str7018[53]; cmdplc[32]=str7018[54];
cmdplc[29]=str7018[51]; cmdplc[30]=str7018[52];
/* cmdplc[40]=0x03;
for(i=1;i<=40;i++){checknum=cmdplc[i]+checknum;}
cn1=checknum & 0x000f;
cn2=(checknum & 0x00f0)>>4;*/
/* printf("\nchecknum %x=%d %d",checknum,cn2,cn1);*/
/* cmdplc[41]=hex_to_ascii[cn2];
cmdplc[42]=hex_to_ascii[cn1];*/
printf("\nTo_PLC=");
if(read_error==0)
{
SendCmdTo7000(1, cmdplc,31);
WaitTransmitOver1();
DelayMs(5);
for(i=0;i<31;i=i+1){printf("%c",cmdplc[i]);}
}
read_error=0;
DelayMs(5);
}
void read_7018_mea(int modul_num)
{
int i=0;
int iErrorNo;
int mo_numh,mo_numh1,mo_numh2;
int ij=0;
int read_flag=0;
for(i=0;i<5;i=i+1){cmd7018[i]=0;}
for(i=0;i<120;i=i+1){str7018[i]=0;}
mo_numh=modul_num;
mo_numh2=(mo_numh & 0x00f0)>>4;
mo_numh1=mo_numh & 0x000f;
cmd7018[0]='#';
cmd7018[1]='0';
cmd7018[2]=modul_num+48;
cmd7018[3]=0x0; /* x0D; */
printf("\nTo7018[%d]=%d %d \n",mo_numh,mo_numh2,mo_numh1);
for(i=0;i<4;i=i+1){printf("%c",cmd7018[i]);}
SendCmdTo7000(2,cmd7018,0);
DelayMs(10);
iErrorNo=ReceiveResponseFrom7000(2,str7018,4000L,0);
if(iErrorNo==NoError)
{
printf("\nResponce_7018=");
i=0;
while(!read_flag)
{
printf("%c",str7018[i]);
if(str7018[i] == '>'){ij=i;read_flag=1;}
i++;
if(i>=120){read_flag=1;read_error=1;printf("\n\nCommunicate to 7018 Error !!! \n");}
}
for(i=0;i<120;i=i+1){str70181[i]=str7018[i+ij];}
for(i=0;i<120;i=i+1){str70181[i]=str7018[i];}
}
else
{
read_error=1;
printf("\n\n!!!!!!!!!! ERROR at COMM to 7018 !!!!!!!!!\n");
iji[modul_num]=iji[modul_num]+1;
for(i=0;i<120;i=i+1){str7018[i]='0';}
}
}
void send_to_plc_mea(int modul_num,int state)
{
int i=0;
int data_number=0;
int dn1=0,dn2=0,dn3=0,dn4=0;
int checknum=0;
int cn1=0,cn2=0;
for(i=0;i<50;i=i+1){cmdplc[i]='0';}
for(i=0;i<20;i=i+1){strplc[i]='0';}
if(state==1){modul_num=1;}
/* cmdplc[0]='\02'; cmdplc[1]='1';*/
cmdplc[0]=strplc[2];
/*data_number=(384+8*(modul_num-1))*2+0x1000;
dn1=data_number & 0x000f;
dn2=(data_number & 0x00f0)>>4;
dn3=(data_number & 0x0f00)>>8;
dn4=(data_number & 0xf000)>>12;
cmdplc[2]=hex_to_ascii[dn4];
cmdplc[3]=hex_to_ascii[dn3];
cmdplc[4]=hex_to_ascii[dn2];
cmdplc[5]=hex_to_ascii[dn1];
cmdplc[6]='1';
cmdplc[7]='0';*/
cmdplc[3]=str7018[4]; cmdplc[4]=str7018[5];
cmdplc[1]=str7018[2]; cmdplc[2]=str7018[3];
cmdplc[7]=str7018[11]; cmdplc[8]=str7018[12];
cmdplc[5]=str7018[9]; cmdplc[6]=str7018[10];
cmdplc[11]=str7018[18]; cmdplc[12]=str7018[19];
cmdplc[9]=str7018[16]; cmdplc[10]=str7018[17];
cmdplc[15]=str7018[25]; cmdplc[16]=str7018[26];
cmdplc[13]=str7018[23]; cmdplc[14]=str7018[24];
cmdplc[19]=str7018[32]; cmdplc[20]=str7018[33];
cmdplc[17]=str7018[30]; cmdplc[18]=str7018[31];
cmdplc[23]=str7018[39]; cmdplc[24]=str7018[40];
cmdplc[21]=str7018[37]; cmdplc[22]=str7018[38];
cmdplc[27]=str7018[46]; cmdplc[28]=str7018[47];
cmdplc[25]=str7018[44]; cmdplc[26]=str7018[45];
cmdplc[31]=str7018[53]; cmdplc[32]=str7018[54];
cmdplc[29]=str7018[51]; cmdplc[30]=str7018[52];
/* cmdplc[40]=0x03;
for(i=1;i<=40;i++){checknum=cmdplc[i]+checknum;}
cn1=checknum & 0x000f;
cn2=(checknum & 0x00f0)>>4;*/
/* printf("\nchecknum %x=%d %d",checknum,cn2,cn1);*/
/* cmdplc[41]=hex_to_ascii[cn2];
cmdplc[42]=hex_to_ascii[cn1];*/
printf("\nTo_PLC=");
if(read_error==0)
{
SendCmdTo7000(1, cmdplc,31);
WaitTransmitOver1();
DelayMs(5);
for(i=0;i<31;i=i+1){printf("%c",cmdplc[i]);}
}
read_error=0;
DelayMs(5);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -