📄 last5.c
字号:
}
if(key_value_main==9)//按shift键切换设置项
{key_flag+=1;
if(key_flag>2) key_flag=1;
for(timer0_10ms=0;timer0_10ms<20;);
key_value_main=0;
}
if(key_value_main==2)//查询步长值 “1、-1、10、-10”
{for(timer0_10ms=0;timer0_10ms<20;);
calculate=1;
key_value_main=0;
}
else if(key_value_main==10)
{for(timer0_10ms=0;timer0_10ms<20;);
calculate=-1;
key_value_main=0;
}
else if(key_value_main==7)
{for(timer0_10ms=0;timer0_10ms<20;);
calculate=10;
key_value_main=0;
}
else if(key_value_main==5)
{for(timer0_10ms=0;timer0_10ms<20;);
calculate=-10;
key_value_main=0;
}
switch (key_flag)//根据设置项的值将步长值加到相应的变量里
{
case 1:{chongci_num_set+=calculate;
if(chongci_num_set<chongci_num_min) chongci_num_set=chongci_num_min;
if(chongci_num_set>chongci_num_max) chongci_num_set=chongci_num_max;
calculate=0;
xianshi_spaces_data(1,10,3,1,chongci_num_set,0);
xianshi_spaces_data(2,12,3,1,chongcheng_speed_ratio_set,1);
break;
}
case 2:{chongcheng_speed_ratio_set+=calculate;
if(chongcheng_speed_ratio_set<7) chongcheng_speed_ratio_set=7;
if(chongcheng_speed_ratio_set>13) chongcheng_speed_ratio_set=13;
calculate=0;
xianshi_spaces_data(1,10,3,1,chongci_num_set,1);
xianshi_spaces_data(2,12,3,1,chongcheng_speed_ratio_set,0);
break;
}
}//end of switch
}//end of while
}//end of "if(key_value_main==2)"
//===========================================================
/*
if(key_value_main==1) //“设置”键处理,设置完成后要重新初始化相关参数
{key_set_dispose();
//......
}
if(key_value_main==3) //“查看”键处理
{key_look_dispose();
//......
}
if(key_value_main==4) //“翻屏”键处理
{key_browse_page_dispose();
//......
}
if(key_value_main==12) //“密码”键处理
{key_password_dispose();
//......
}
if(yemian_sensor_use==0) continue; // 如果启用液面传感器,则做如下操作
read_time();
if((change_bcd_hex(hour)%time_space)!=0) continue; // 没到时间不测量
if(hour_old!=hour)
{hour_old=hour;
// 控制液面传感器测量
// 计算并修正冲次数和冲程速度比
}
*/
}// 变频稳定运行监测结束
}// end of "if(bp_start_flag==1)"
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(gp_start_flag==1) // ---------------工频启动处理---------------
{
clear_lcd(0,0,0);
menu_gp_before_run();// 显示“工频启动监测...”
if(gp_study_flag==0) // 根据标志确定是否学习
{
for(timer0_10ms=0;timer0_10ms<200;); // 延时2秒
xianshi_spaces_hanzi(6,10,infor_hanzi56,7);//显示“学习工频冲次数”
for(timer0_10ms=0;timer0_10ms<200;); // 延时2秒
wz1_fault_timer=0;
wz1_fault_flag=0;
wz1_touch_flag=0;
while(1) // 等待周期测量开始
{if(wz1_touch_flag==1) // 第一次检测到位置传感器1可靠触发标志,测量开始
{cycle_measure_timer=0;
xianshi_hanzi_dan(6,18,85);//显示“一”
for(timer0_10ms=0;timer0_10ms<100;);//delay 1s
break;
}
if(wz1_fault_flag==1) break; // 如果位置传感器1故障则退出
if(in_gp_start==1) break; // 如果工频启动信号撤消则退出循环
}
wz1_touch_flag=0;
if(wz1_fault_flag!=1) // 如果位置传感器1故障则不继续学习
{while(1)
{if(wz1_touch_flag==1) // 再次检测到位置传感器1可靠触发标志,测量结束
{chongci_num_gp=(uchar)(60000/cycle_measure_timer);//(已经乘10)
xianshi_hanzi_dan(6,18,86);//显示“二”
// 通过周期定时器值计算冲次数,计算结果乘10后取整以方便显示
// 周期=cycle_measure_timer*10)/1000(单位:秒)
// 冲次数=60/周期(单位:次/分钟)
// 计算结果=(uchar)(冲次数*10)
// 简化前表达式为:(uchar)((60/((cycle_measure_timer*10)/1000))*10)
gp_study_flag=1;
SM_Send(CHIP_ROM,addr_gp_study_flag,(uchar)(gp_study_flag)); // 存储工频学习完成标志,只能键盘清除
SM_Send(CHIP_ROM,addr_chongci_num_gp,chongci_num_gp);// 存储学习的工频冲次数
break;
}
if(wz1_fault_flag==1) break; // 如果位置传感器1故障则退出
if(in_gp_start==1) break; // 如果工频启动信号撤消则退出循环
}
}
}// end of "if(gp_study_flag==0)"
//---------------工频稳定运行监测---------------
current_a_max_measure=0;
current_b_max_measure=0;
current_c_max_measure=0;
current_a_present_measure=0;
current_b_present_measure=0;
current_c_present_measure=0;
menu_gp_run();// 显示“工频启动静态界面”
xianshi_spaces_data(1,10,3,1,chongci_num_gp,1);// 测量的工频冲次数
xianshi_spaces_data(3,11,3,0,current_a_present_measure,1);//显示a,b,c三相电流瞬时值
xianshi_spaces_data(3,15,3,0,current_b_present_measure,1);
xianshi_spaces_data(3,19,3,0,current_c_present_measure,1);
xianshi_spaces_data(4,14,3,0,current_a_max_measure,1);//显示上冲程峰值电流
xianshi_spaces_data(5,14,3,0,current_b_max_measure,1);//显示下冲程峰值电流
xianshi_spaces_hanzi(7,11,infor_hanzi33,9);// 工作状态:“工频运行”
xianshi_spaces_hanzi(8,17,infor_hanzi34,2);// 位置传感器一:“正常”
xianshi_spaces_hanzi(9,17,infor_hanzi34,2);// 位置传感器二:“正常”
wz1_touch_flag=0; // 清位置传感器1可靠触发标志
bp_fault_flag = (bit)(SM_Receive (CHIP_ROM,addr_bp_fault_flag)); // 变频故障标志读取
bp_start_flag = (bit)(SM_Receive (CHIP_ROM,addr_bp_start_flag)); // 变频启动标志读取
while(1) // 工频稳定运行监测开始
{
if(in_gp_start==1)// 如果工频启动信号撤消则退出循环
{for(timer0_10ms=0;timer0_10ms<50;); // 延时500毫秒消抖
if(in_gp_start==1);
{gp_start_flag=0; //清工频标志
bp_start_flag=0; //清变频标志
out_bgt=1; //允许变频再次加电
SM_Send(CHIP_ROM,addr_bp_start_flag,0);//工频退出时清除变频启动标志
break;
}
}
if(wz1_fault_flag==1) // 判断位置传感器1故障情况
{xianshi_spaces_hanzi(8,17,infor_hanzi35,2);// 位置传感器一:“异常”
}
else xianshi_spaces_hanzi(8,17,infor_hanzi34,2);// 位置传感器一:“正常”
if(wz2_fault_flag==1) // 判断位置传感器2故障情况
{xianshi_spaces_hanzi(9,17,infor_hanzi35,2);// 位置传感器二:“异常”
}
else xianshi_spaces_hanzi(9,17,infor_hanzi34,2);// 位置传感器二:“正常”
if(bp_start_flag==1)
{xianshi_spaces_hanzi(7,11,infor_hanzi50,9);//显示“变频保护切换到工频”
}
if(bp_fault_flag==1)
{bp_start_flag=0;
xianshi_spaces_hanzi(7,11,infor_hanzi49,9);//显示“变频故障切换到工频”
}
if((bp_start_flag==0)&&(bp_fault_flag==0))
{xianshi_spaces_hanzi(7,11,infor_hanzi33,9);//显示“工频运行”
}
if(current_a_fault_flag||current_b_fault_flag||current_c_fault_flag)
{ //read_time();
while(1)
{out_jt=0;//只有掉电才能从头运行
xianshi_spaces_hanzi(10,11,infor_hanzi53,7);//显示“因电流故障停机”
for(timer0_10ms=0;timer0_10ms<10;);
}
}
if(volt_ab_fault_flag||volt_bc_fault_flag||volt_ca_fault_flag)
{ //read_time();
while(1)
{out_jt=0;//只有掉电才能从头运行
xianshi_spaces_hanzi(10,11,infor_hanzi52,7);//显示“因电压故障停机”
for(timer0_10ms=0;timer0_10ms<10;);
}
}
if(wz1_fault_flag==1)
{xianshi_spaces_hanzi(8,17,infor_hanzi35,2);//异常
}
else xianshi_spaces_hanzi(8,17,infor_hanzi34,2);//正常
if(wz2_fault_flag==1)
{xianshi_spaces_hanzi(9,17,infor_hanzi35,2);//异常
}
else xianshi_spaces_hanzi(9,17,infor_hanzi34,2);//正常
// 三相电流切换采样
iu_channel_select(1);//iu1
ad_channel_select(0);//ad0//采样a相电流
i=ad_sampling();
current_a_present_measure=(float)(i)*150/4095+i_a_compensate;
current_a_max_measure= (current_a_max_measure>current_a_present_measure)?
current_a_max_measure:current_a_present_measure;
// 筛选a相电流最大值current_a_max_measure
if((current_a_present_measure>current_max_set)||(current_a_present_measure<current_min_set))
{current_a_fault_counter+=1;} // 电流异常时电流故障计数器加1
else current_a_fault_counter=0;
ad_channel_select(1);//ad1//采样bc相电压
i=ad_sampling();
volt_ab_present_measure=(float)(i)*500/4095+u_ab_compensate;
if((volt_ab_present_measure>volt_max_set)||(volt_ab_present_measure<volt_min_set))
{volt_ab_fault_counter+=1;} // 电压异常时电压故障计数器加1
else volt_ab_fault_counter=0;
iu_channel_select(2);//iu2
ad_channel_select(0);//ad0//采样b相电流
i=ad_sampling();
current_b_present_measure=(float)(i)*150/4095+i_b_compensate;
current_b_max_measure= (current_b_max_measure>current_b_present_measure)?
current_b_max_measure:current_b_present_measure;
// 筛选b相电流最大值current_b_max_measure
if((current_b_present_measure>current_max_set)||(current_b_present_measure<current_min_set))
{current_b_fault_counter+=1;} // 电流异常时电流故障计数器加1
else current_b_fault_counter=0;
ad_channel_select(1);//ad1//采样ca相电压
i=ad_sampling();
volt_bc_present_measure=(float)(i)*500/4095+ u_bc_compensate;
if((volt_bc_present_measure>volt_max_set)||(volt_bc_present_measure<volt_min_set))
{volt_bc_fault_counter+=1;} // 电压异常时电压故障计数器加1
else volt_bc_fault_counter=0;
iu_channel_select(3);//iu3
ad_channel_select(0);//ad0//采样c相电流
i=ad_sampling();
current_c_present_measure=(float)(i)*150/4095+i_c_compensate;
current_c_max_measure= (current_c_max_measure>current_c_present_measure)?
current_c_max_measure:current_c_present_measure;
// 筛选c相电流最大值current_b_max_measure
if((current_c_present_measure>current_max_set)||(current_c_present_measure<current_min_set))
{current_c_fault_counter+=1;} // 电流异常时电流故障计数器加1
else current_c_fault_counter=0;
ad_channel_select(1);//ad1// 采样ab相电压
i=ad_sampling();
volt_ca_present_measure=(float)(i)*500/4095+ u_ca_compensate;
if((volt_ca_present_measure>volt_max_set)||(volt_ca_present_measure<volt_min_set))
{volt_ca_fault_counter+=1;} // 电压异常时电压故障计数器加1
else volt_ca_fault_counter=0;
xianshi_spaces_data(3,11,3,0,current_a_present_measure,1);//显示a,b,c三相电流瞬时值
xianshi_spaces_data(3,15,3,0,current_b_present_measure,1);
xianshi_spaces_data(3,19,3,0,current_c_present_measure,1);
if(wz1_touch_flag==1)//wz1触发判断和处理
{wz1_touch_flag=0;
xianshi_spaces_data(5,14,3,0,current_a_max_measure,1);//刷新下冲程峰值电流
current_a_max_measure=0;
}
if(wz2_touch_flag==1)//wz2触发判断和处理
{wz2_touch_flag=0;
xianshi_spaces_data(4,14,3,0,current_a_max_measure,1);//刷新上冲程峰值电流
current_a_max_measure=0;
}
if(current_a_fault_counter>5) // 如果电流故障连续5次以上(时间<6s),则置电流故障标志并退出
{current_a_fault_flag=1;}
if(current_b_fault_counter>5)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -