📄 main.c
字号:
{
write(0x0021, 56);
Byte_Try= read(0x0021);//read E2prom
Display_Acord_Value( 0x8000,Byte_Try,0);
} */
//unsigned char Temp;
// Write_Para();///////////////////////
// Read_Para();
Temp_Output=0x07;//0x8008输出初始化
XBYTE[0x8008]=Temp_Output;
Code_Input=5555;
// Init_Para_Setting();//初始化各个参数
// Write_Para_SetSelf();//写入
Read_Para_SetSelf();//读出
Byte_Sign_First_Alarm_StartStop=0;
//////////////////////////输出电源灯
Temp_Output=Temp_Output&0xfb;//lamp
XBYTE[0x8008]=Temp_Output;///////输出
Count_Start_Machine_15s=0;
Get_Key_bit=0;
Para_Setting_TemOil_Kongyaji530=Para_Setting_TemOil;
Para_Setting_PreOil_Kongyaji530=Para_Setting_PreOil;
// while(1);
while(1)
{
unsigned int Temp_Time_Display;//显示时间的临时量
///////////////////////530柳州
if(XBYTE[0x8009]&0x20)////显示空压机或发动机的油温油压 状态位
Bit_Motor_TemPre=1;
else
Bit_Motor_TemPre=0;
if(Capture_Count>50)//capture one time
{
// i++;
// if(i>3) i=0;
for( i=0;i<4;i++)
{
Tem_Oil[i]=Calculate_Tem ( read1543(0) ,1);
Pre_Oil[i]=Calculate_Pre ( read1543(1) );
Tem_Water[i]=Calculate_Tem ( read1543(2),0);
Voltage_28v[i]=read1543(3);
}
Tem_Water[4]= ( (int)((float)(Tem_Water[0]+Tem_Water[1]+Tem_Water[2]+Tem_Water[3])/4)) ;//;//;
Pre_Oil[4]=(int)((float)(Pre_Oil[0]+Pre_Oil[1]+Pre_Oil[2]+Pre_Oil[3])/4);
Tem_Oil[4]= ( (int)((float)(Tem_Oil[0]+Tem_Oil[1]+Tem_Oil[2]+Tem_Oil[3])/4) ) ;//;//;
Voltage_28v[4]=(Voltage_28v[0]+Voltage_28v[1]+Voltage_28v[2]+Voltage_28v[3])/4;
Value_Test_24v=Voltage_28v[4]* Calculate_Line_k( 0,0,0X3ff,5)/0.14163 +1;
////////////////////
/////////////////////////增加530柳州监控仪软件
for( i=0;i<4;i++)
{
Tem_Oil[i]=Calculate_Tem ( read1543(4),1 );//空压机油温
Pre_Oil[i]=Calculate_Pre ( read1543(5) );//空压机油压
// Tem_Water[i]=Calculate_Tem ( read1543(2));
// Tem_Oil_Ave+=read1543(0);
// Tem_Water_Ave+=read1543(2);
//Pre_Oil_Ave+=read1543(1);
}
Tem_Kongyaji_530=( (int)((float)(Tem_Oil[0]+Tem_Oil[1]+Tem_Oil[2]+Tem_Oil[3])/4) ) ;
Pre_Kongyaji_530=(int)((float)(Pre_Oil[0]+Pre_Oil[1]+Pre_Oil[2]+Pre_Oil[3])/4);
for( i=0;i<4;i++)
{
Tem_Oil[i]=Calculate_Pre ( read1543(6) );//空压机油温
Pre_Oil[i]=Calculate_Pre ( read1543(7) );//空压机油压
// Tem_Water[i]=Calculate_Tem ( read1543(2));
// Tem_Oil_Ave+=read1543(0);
// Tem_Water_Ave+=read1543(2);
//Pre_Oil_Ave+=read1543(1);
}
Pre_Jinqiguan_530=(int)((float)(Tem_Oil[0]+Tem_Oil[1]+Tem_Oil[2]+Tem_Oil[3])/4);
Pre_Chuqiguan_530=(int)((float)(Pre_Oil[0]+Pre_Oil[1]+Pre_Oil[2]+Pre_Oil[3])/4);
// Temp_Pre_Oil=Pre_Oil_Ave/4;
Capture_Count=0;
}
/////////////////////////任何 时候都能停机
if( GetKey_Count_ForUse_Stop>40)
{
if( ((Key==TINGJI)||(Key==TINGJI1))&&(Key==XBYTE[0x8009])&&(Bit_NO_Start_15s_Setting==0))//for stop
{
Bit_OilValve_Start=0;//启动机组
Bit_Stop=1;//停机
Bit_Stop_Sure=1;
Count__Stop_Sure=0;
Temp_Output=Temp_Output|0x10;//jidianqi
// Display_Acord_Value( 0x8000,456,0 );
// Output_Sign();
}
else
{
Bit_OilValve_Start=0;//启动机组
Bit_Stop=0;//停机
// Temp_Output=Temp_Output&0xef;
GetKey_Count_ForUse_Stop=0;
// Get_Key_bit=0;
// Output_Sign();
}
// XBYTE[0x8008]=Temp_Output;
}
////////////////停机确认后送5s继电器
// if( (Bit_Stop_Sure)&&(Count__Stop_Sure>1000) )
// if( (Bit_Stop_Sure)&&(Count__Stop_Sure>1000) )
if( (Bit_Stop_Sure)&&(Count__Stop_Sure> (Para_Setting_Stop_SureTime*1000/5) ) )
{
Temp_Output=Temp_Output&0xef;
// XBYTE[0x8008]=Temp_Output;
Bit_Stop_Sure=0;
}
XBYTE[0x8008]=Temp_Output;///////输出
////////////////启动 过程 中
if( (Bit_Protection_Start==1)&&(Bit_Sign_SettingPara==0)&&(Bit_NO_Start_15s_Setting==0) )
{
///////////////////////////////////////
if(Capture_Count>50)//capture one time
{
// i++;
// if(i>3) i=0;
for( i=0;i<4;i++)
{
Tem_Oil[i]=Calculate_Tem ( read1543(0),1 );
Pre_Oil[i]=Calculate_Pre ( read1543(1) );
Tem_Water[i]=Calculate_Tem ( read1543(2),0);
}
Tem_Water[4]= ( (int)((float)(Tem_Water[0]+Tem_Water[1]+Tem_Water[2]+Tem_Water[3])/4)) ;//;//;
Pre_Oil[4]=(int)((float)(Pre_Oil[0]+Pre_Oil[1]+Pre_Oil[2]+Pre_Oil[3])/4);
Tem_Oil[4]= ( (int)((float)(Tem_Oil[0]+Tem_Oil[1]+Tem_Oil[2]+Tem_Oil[3])/4) ) ;//;//;
Capture_Count=0;
}
if(Display_Count>200)
{
///////////////////////////////////
///////////////////////柳州监控仪530
if(Bit_Motor_TemPre)
{
Display_Acord_Value(0x800D,Pre_Oil[4]/10,1);
Display_Acord_Value(0x800A ,Tem_Oil[4],0);
}
else
{
Display_Acord_Value(0x800D,Pre_Kongyaji_530/10 ,1);
Display_Acord_Value(0x800A ,Tem_Kongyaji_530,0);
}
Display_Acord_Value(0x8004,Pre_Chuqiguan_530 ,0);
Display_Acord_Value( 0x8000,Speed ,0);
Display_Count=0;
}
////////////////////////////////
if( (Speed>300) )
{
Signed_Sound_Off=0;
Count_Start_Machine_15s=0;
Get_Key_bit=0;
Bit_Sign_Running=1;
while(Count_Start_Machine_15s<3000)//15s start ,no protection
{
///////////////////////530柳州
if(XBYTE[0x8009]&0x20)////显示空压机或发动机的油温油压 状态位
Bit_Motor_TemPre=1;
else
Bit_Motor_TemPre=0;
if(Speed<301)
{
Bit_Protection_Start=1;
Bit_Sign_Running=0;
break;//在此、过程中必须一直保持大于300,才处于启动过程
}
if(!Get_Key_bit)
Get_KeyBoard();//read keyboard
/////////////////////////此过程表示停机
if( GetKey_Count_ForUse_Stop>40)
{
if( ((Key==TINGJI)||(Key==TINGJI1))&&(Key==XBYTE[0x8009]))//for stop
{
Bit_OilValve_Start=0;//启动机组
Bit_Stop=1;//停机
Bit_Stop_Sure=1;
Count__Stop_Sure=0;
Temp_Output=Temp_Output|0x10;//jidianqi
// Display_Acord_Value( 0x8000,456,0 );
// Output_Sign();
}
else
{
Bit_OilValve_Start=0;//启动机组
Bit_Stop=0;//停机
// Temp_Output=Temp_Output&0xef;
GetKey_Count_ForUse_Stop=0;
// Get_Key_bit=0;
// Output_Sign();
}
// XBYTE[0x8008]=Temp_Output;
}
////////////////停机确认后送5s继电器
// if( (Bit_Stop_Sure)&&(Count__Stop_Sure>1000) )
// if( (Bit_Stop_Sure)&&(Count__Stop_Sure>1000) )
if( (Bit_Stop_Sure)&&(Count__Stop_Sure> (Para_Setting_Stop_SureTime*1000/5) ) )
{
Temp_Output=Temp_Output&0xef;
// XBYTE[0x8008]=Temp_Output;
Bit_Stop_Sure=0;
}
XBYTE[0x8008]=Temp_Output;///////输出
if(Capture_Count>50)//capture one time
{
// Tem_Oil_Ave=0;
// Tem_Water_Ave=0;
// Pre_Oil_Ave=0;
for( i=0;i<4;i++)
// i++;
// if(i>3) i=0;
{
Tem_Oil[i]=Calculate_Tem ( read1543(0) ,1);
Pre_Oil[i]=Calculate_Pre ( read1543(1) );
Tem_Water[i]=Calculate_Tem ( read1543(2),0);
}
Tem_Water[4]= ( (int)((float)(Tem_Water[0]+Tem_Water[1]+Tem_Water[2]+Tem_Water[3])/4)) ;//;//;
Pre_Oil[4]=(int)((float)(Pre_Oil[0]+Pre_Oil[1]+Pre_Oil[2]+Pre_Oil[3])/4);
Tem_Oil[4]= ( (int)((float)(Tem_Oil[0]+Tem_Oil[1]+Tem_Oil[2]+Tem_Oil[3])/4) ) ;//;//;
////////////////////
/////////////////////////增加530柳州监控仪软件
for( i=0;i<4;i++)
{
Tem_Oil[i]=Calculate_Tem ( read1543(4),1 );//空压机油温
Pre_Oil[i]=Calculate_Pre ( read1543(5) );//空压机油压
// Tem_Water[i]=Calculate_Tem ( read1543(2));
// Tem_Oil_Ave+=read1543(0);
// Tem_Water_Ave+=read1543(2);
//Pre_Oil_Ave+=read1543(1);
}
Tem_Kongyaji_530=( (int)((float)(Tem_Oil[0]+Tem_Oil[1]+Tem_Oil[2]+Tem_Oil[3])/4) ) ;
Pre_Kongyaji_530=(int)((float)(Pre_Oil[0]+Pre_Oil[1]+Pre_Oil[2]+Pre_Oil[3])/4);
for( i=0;i<4;i++)
{
Tem_Oil[i]=Calculate_Pre ( read1543(6) );//空压机油温
Pre_Oil[i]=Calculate_Pre ( read1543(7) );//空压机油压
// Tem_Water[i]=Calculate_Tem ( read1543(2));
// Tem_Oil_Ave+=read1543(0);
// Tem_Water_Ave+=read1543(2);
//Pre_Oil_Ave+=read1543(1);
}
Pre_Jinqiguan_530=(int)((float)(Tem_Oil[0]+Tem_Oil[1]+Tem_Oil[2]+Tem_Oil[3])/4);
Pre_Chuqiguan_530=(int)((float)(Pre_Oil[0]+Pre_Oil[1]+Pre_Oil[2]+Pre_Oil[3])/4);
Capture_Count=0;
}
if(Display_Count>200)
{
///////////////////////////////////
///////////////////////柳州监控仪530
if(Bit_Motor_TemPre)
{
Display_Acord_Value(0x800D,Pre_Oil[4]/10,1);
Display_Acord_Value(0x800A ,Tem_Oil[4],0);
}
else
{
Display_Acord_Value(0x800D,Pre_Kongyaji_530/10 ,1);
Display_Acord_Value(0x800A ,Tem_Kongyaji_530,0);
}
Display_Acord_Value(0x8004,Pre_Chuqiguan_530 ,0);
Display_Acord_Value( 0x8000,Speed ,0);
Display_Count=0;
}
}
if(Count_Start_Machine_15s>2999)
{
Count_Start_Machine_15s=0;
Bit_Protection_Start=0;//没有进行启动保护
}
Get_Key_bit=0;
}//大于 300转 时,处于 启动过程 中
else
{
Bit_Protection_Start=1;//启动保护 开启
}
}
/*
if(Recieve_Para_Stop)
{
CPU_NO=CPU_NO1;
Para_Tem_Oil=Para_Tem_Oil1;
Para_Tem_water=Para_Tem_water1;
Para_Speed_Divide=Para_Speed_Divide1;
Para_Speed_Alarm_Percent=Para_Speed_Alarm_Percent1;
Para_Speed_Standard=Para_Speed_Standard1;
Para_Speed_Percent=Para_Speed_Percent1;
Para_Pre_Oil=Para_Pre_Oil1;
Para_Pre_Oil_Zoom_k=Para_Pre_Oil_Zoom_k1;
Para_Pre_Oil_Shift_b=Para_Pre_Oil_Shift_b1;
Write_Para();
// Read_Para();
Recieve_Para_Stop=0;
Recieve_Para_Start=0;
//Read_Para();
}
*/
// if( (Recieve_Para_Start)&&(!Recieve_Para_Stop) )
/////test motorsign 检测机组的状态 (运行或停机)
else////////////////没有在启动保护状态 中
{
if( (Speed>Para_Setting_ReferenceSpeed_StopStart) )//处于运行状态
{
Bit_Sign_Running=1;
Bit_Sign_SettingParaDisplay=0;
Bit_Sign_SettingPara_Sure=0;
Bit_Sign_InputCode=0;
Bit_Sign_SettingPara_Normal=0;
Bit_Sign_Modify=0;
// if( (P1_5)||( (read1543(3)* Calculate_Line_k( 0,0,0X3ff,5)/0.1304 +1)>28) )
// if( (P1_5) || ( read1543(3)* Calculate_Line_k( 0,0,0X3ff,5)/0.1304 +1 )>28 )
// if(P1_5==0)
{
// Temp_Output=Temp_Output|0x40;//jidianqi
// Temp_Output=Temp_Output&0xfd;//lamp
}
// else
{//*/
// Temp_Output=Temp_Output&0xbf;
// Temp_Output=Temp_Output|0x02;
// if( (P1_5) || ( ( (unsigned int )Value_Test_24v )>28 ) )
// Value_Test_24v=(float)read1543(3)* Calculate_Line_k( 0,0,0X3ff,5)/0.14163 +1;
if(Value_Test_24v< 28.0 )
{ ////////////////////充电
// if((!Bit_Sign_Charging))
// {
Temp_Output=Temp_Output&0xfd;//lamp
Temp_Output=Temp_Output|0x08;//jidianqi
Bit_Sign_Charging=1;
// }
}
if(Value_Test_24v > 28.4 )
{ // duan dian
// if(Bit_Sign_Charging)
// {
Temp_Output=Temp_Output&0xf7;//jidianqi
Temp_Output=Temp_Output|0x02;//lamp
Bit_Sign_Charging=0;
// }
}
// Temp_Output=Temp_Output&0xbd;//lamp
// Temp_Output=Temp_Output|0x40;//jidianq
//if( ( (unsigned int )Value_Test_24v )< 28 )
// { ////////////////////充电
// if((!Bit_Sign_Charging))
// {
// Temp_Output=Temp_Output|0x40;//jidianqi
// Temp_Output=Temp_Output&0xfd;//lamp
// Bit_Sign_Charging=1;
// }
// }
// if(!Bit_Sign_Charging)
// {
// Temp_Output=Temp_Output&0xbf;
// Temp_Output=Temp_Output|0x02;
// }
// if( ( ( (unsigned int )Value_Test_24v )> 28 ) )
// {
// if(Bit_Sign_Charging)
// {
// Temp_Output=Temp_Output&0xbf;
// Temp_Output=Temp_Output|0x02;
// Bit_Sign_Charging=0;
// }
// }
// else
// if( ( (unsigned int )Value_Test_24v )< 29 )
// { ////////////////////充电
//
// if((!Bit_Sign_Charging))
// {
// Temp_Output=Temp_Output|0x40;//jidianqi
// Temp_Output=Temp_Output&0xfd;//lamp
// Bit_Sign_Charging=1;
// }
// }
}
///////////////////////////运行灯
Temp_Output=Temp_Output&0xfe;//lamp
}
else
{
Bit_Sign_Running=0;
Temp_Output=Temp_Output|0x01;//lamp运行灯
Temp_Output=Temp_Output|0x02;//lamp
if(Speed<300)
{
Bit_Protection_Start=1;//停机,可以重新进行启动
Byte_Sign_First_Alarm_StartStop=0;
Temp_Output=Temp_Output&0xef;//tingji
Temp_Output=Temp_Output&0x7f;//D7\
// Temp_Output=Temp_Output&0xdf;//\D5
}
///////////////////////////运行灯
// Bit_Sign_SettingParaDisplay=1;
// Display_Acord_Value( 0x8000,0,0);
}
// Temp_Output=Temp_Output&0xfe;//lamp运行
// Temp_Output=Temp_Output&0xfd;//lamp
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -