📄 control.c
字号:
/*
电机保护方式时该函数用于停车状态时的界面显示
测控方式时的默认界面显示
保护方式断开时的界面显示
双电源方式下的断开界面显示
所有工作方式均适用,界面包含接线状态、起动和工作方式、操作权限、转换方式等系统状态信息
*/
void stop_show(/*0*/) //停车界面显示
{
if(union_state.state_buf[0]&0x01) //停车状态
{
if(key==ok_key) //如果有确认键,立即处理键
{
dis_number=33; //转向察看参数界面号
show_bit=1; //第一次进入标志
remote_sign.furbish=1;//刷新标志
dis_message_count=0;
arrow_state1=0;
}
/******************先显示横线************************/
else if(remote_sign.furbish==0) //数据接受完成开始刷新
{
remote_sign.furbish=1;
remote_type.value=1;
dis_message_count=3;
if(show_bit) //第一次刷新显示固定信息
{
clr_fullscreen();
show_bit=0;
}
/**************起动方式显示***********************/
//双电源方式显示
if(union_state.state_buf[11]==two_power) //读取起动方式
{
lcd_partclr(0,51,39);
lcd_partclr(1,51,39);
switch(union_vlaue.revalue_buf[3]) //读取双电源操作方式
{
case 0x00:
lcdwrite_chinese(0,0,13,&shou[0]); //显示手投手复
lcdwrite_chinese(0,12,13,&tou[0]);
lcdwrite_chinese(0,25,13,&shou[0]);
lcdwrite_chinese(0,38,13,&fu[0]);
break;
case 0x01:
lcdwrite_chinese(0,0,13,&shou[0]); //显示手投自复
lcdwrite_chinese(0,13,13,&tou[0]);
lcdwrite_chinese(0,26,13,&zi[0]);
lcdwrite_chinese(0,39,13,&fu[0]);
break;
case 0x02:
lcdwrite_chinese(0,0,13,&zi[0]); //显示自投手复
lcdwrite_chinese(0,13,13,&tou[0]);
lcdwrite_chinese(0,26,13,&shou[0]);
lcdwrite_chinese(0,39,13,&fu[0]);
break;
case 0x03:
lcdwrite_chinese(0,0,13,&zi[0]); //显示自投自复
lcdwrite_chinese(0,13,13,&tou[0]);
lcdwrite_chinese(0,26,13,&zi[0]);
lcdwrite_chinese(0,39,13,&fu[0]);
break;
default : break;
}
if(union_state.state_buf[0]&0x04) //读权限标志
{
lcdwrite_chinese(0,96,13,&yuanjin_yuan[0]);//显示远程
lcdwrite_chinese(0,109,13,&cheng[0]);
}
else
{
lcdwrite_chinese(0,96,13,&beng[0]);//显示本地
lcdwrite_chinese(0,109,13,&dadi_di[0]);
}
lcd_partclr(2,9,113);
lcd_partclr(3,9,113);
if(union_state.state_buf[1]&0x01)
{
lcdwrite_chinese(2,35,13,&jie[0]); //显示接线错误
lcdwrite_chinese(2,48,13,&xian[0]);
lcdwrite_chinese(2,62,13,&cuo[0]);
lcdwrite_chinese(2,75,13,&cuowu_wu[0]);
}
else
{
if(union_vlaue.revalue_buf[5]&0x01) //读取故障状态
{
lcdwrite_chinese(2,35,13,&he[0]); //显示合闸失败
lcdwrite_chinese(2,48,13,&zha[0]);
lcdwrite_chinese(2,62,13,&shibai_shi[0]);
lcdwrite_chinese(2,75,13,&bai[0]);
}
else if(union_vlaue.revalue_buf[5]&0x02)
{
lcdwrite_chinese(2,35,13,&fen[0]);//显示分闸失败
lcdwrite_chinese(2,48,13,&zha[0]);
lcdwrite_chinese(2,62,13,&shibai_shi[0]);
lcdwrite_chinese(2,75,13,&bai[0]);
}
else if(union_state.state_buf[0]&0x02)
{
lcdwrite_chinese(2,35,13,&jianxiu_jian[0]);//显示检修状态
lcdwrite_chinese(2,48,13,&xiu[0]);
lcdwrite_chinese(2,61,13,&zhuang[0]);
lcdwrite_chinese(2,74,13,&tai[0]);
}
else
{
switch(union_state.state_buf[1]&0x06)
{
case 0x02:
lcdwrite_chinese(2,15,13,&zhu[0]);//显示主电源准备就绪
lcdwrite_chinese(2,28,13,&dian[0]);
lcdwrite_chinese(2,41,13,&yuan[0]);
lcdwrite_chinese(2,54,13,&zhun[0]);
lcdwrite_chinese(2,67,13,&bei[0]);
lcdwrite_chinese(2,80,13,&jiu[0]);
lcdwrite_chinese(2,93,13,&xu[0]);
break;
case 0x04:
lcdwrite_chinese(2,15,13,&bei[0]);//显示备电源准备就绪
lcdwrite_chinese(2,28,13,&dian[0]);
lcdwrite_chinese(2,41,13,&yuan[0]);
lcdwrite_chinese(2,54,13,&zhun[0]);
lcdwrite_chinese(2,67,13,&bei[0]);
lcdwrite_chinese(2,80,13,&jiu[0]);
lcdwrite_chinese(2,93,13,&xu[0]);
break;
case 0x06:
lcdwrite_chinese(2,9,13,&zhu[0]); //显示主备电源准备就绪
lcdwrite_chinese(2,22,13,&bei[0]);
lcdwrite_chinese(2,35,13,&dian[0]);
lcdwrite_chinese(2,48,13,&yuan[0]);
lcdwrite_chinese(2,61,13,&zhun[0]);
lcdwrite_chinese(2,74,13,&bei[0]);
lcdwrite_chinese(2,87,13,&jiu[0]);
lcdwrite_chinese(2,100,13,&xu[0]);
break;
default : break;
}
}
}
}
//显示测控方式
else if (union_state.state_buf[11]==protect)
{
lcd_partclr(0,0,35);
lcd_partclr(1,0,35);
lcd_partclr(0,89,32);
lcd_partclr(1,89,32);
lcdwrite_chinese(0,35,13,&baohu[0]); //显示保护方式
lcdwrite_chinese(0,48,13,&hu[0]);
lcdwrite_chinese(0,62,13,&fang[0]);
lcdwrite_chinese(0,75,13,&shi[0]);
lcd_partclr(2,9,113);
lcd_partclr(3,9,113);
if(union_state.state_buf[1]&0x01)
{
lcdwrite_chinese(2,35,13,&jie[0]); //显示接线错误
lcdwrite_chinese(2,48,13,&xian[0]);
lcdwrite_chinese(2,62,13,&cuo[0]);
lcdwrite_chinese(2,75,13,&cuowu_wu[0]);
}
else
{
if(union_vlaue.revalue_buf[5]&0x01) //读取故障状态
{
lcdwrite_chinese(2,35,13,&he[0]); //显示合闸失败
lcdwrite_chinese(2,48,13,&zha[0]);
lcdwrite_chinese(2,62,13,&shibai_shi[0]);
lcdwrite_chinese(2,75,13,&bai[0]);
}
else if(union_vlaue.revalue_buf[5]&0x02)
{
lcdwrite_chinese(2,35,13,&fen[0]);//显示分闸失败
lcdwrite_chinese(2,48,13,&zha[0]);
lcdwrite_chinese(2,62,13,&shibai_shi[0]);
lcdwrite_chinese(2,75,13,&bai[0]);
}
else
{
lcdwrite_chinese(2,22,13,&he[0]);//合闸准备就绪
lcdwrite_chinese(2,35,13,&zha[0]);
lcdwrite_chinese(2,48,13,&zhun[0]);
lcdwrite_chinese(2,61,13,&bei[0]);
lcdwrite_chinese(2,74,13,&jiu[0]);
lcdwrite_chinese(2,87,13,&xu[0]);
}
}
}
//显示起动方式和保护方式
else if(union_state.state_buf[11]==measure_control)
{
clr_fullscreen();
lcdwrite_chinese(2,35,13,&ce[0]);//显示测控方式
lcdwrite_chinese(2,48,13,&kong[0]);
lcdwrite_chinese(2,62,13,&fang[0]);
lcdwrite_chinese(2,75,13,&shi[0]);
}
else
{
lcd_partclr(0,51,39);
lcd_partclr(1,51,39);
switch(union_state.state_buf[11]) //根据起动方式处理显示界面
{
case direct_start:
lcdwrite_chinese(0,0,13,&zhijie_zhi[0]);//显示直接起动
lcdwrite_chinese(0,13,13,&jie[0]);
lcdwrite_chinese(0,26,13,&qidong[0]);
lcdwrite_chinese(0,39,13,&dong[0]);
break;
case double_start:
lcdwrite_chinese(0,0,13,&zheng[0]); //显示正反起动
lcdwrite_chinese(0,13,13,&fan[0]);
lcdwrite_chinese(0,26,13,&qidong[0]);
lcdwrite_chinese(0,39,13,&dong[0]);
break;
case two_speed_start:
lcdwrite_chinese(0,0,13,&shuang[0]); //显示双速起动
lcdwrite_chinese(0,13,13,&su[0]);
lcdwrite_chinese(0,26,13,&qidong[0]);
lcdwrite_chinese(0,39,13,&dong[0]);
break;
case res_start:
lcdwrite_chinese(0,0,13,&dian[0]); //显示电阻降压
lcdwrite_chinese(0,13,13,&zu[0]);
lcdwrite_chinese(0,26,13,&jiang[0]);
lcdwrite_chinese(0,39,13,&dianya_ya[0]);
if(union_vlaue.revalue_buf[1]&0x02)
{
lcdwrite_chinese(0,61,13,&dian[0]);//显示电流方式
lcdwrite_chinese(0,74,13,&liu[0]);
}
else
{
lcdwrite_chinese(0,61,13,&shijian_shi[0]);//显示时间方式
lcdwrite_chinese(0,74,13,&shijian_jian[0]);
}
break;
case ydelta_start:
lcdwrite_chinese(0,0,13,&y_delta[0]); //显示星三角起动
lcdwrite_chinese(0,12,13,&delta[0]);
lcdwrite_chinese(0,26,13,&qidong[0]);
lcdwrite_chinese(0,39,13,&dong[0]);
if(union_vlaue.revalue_buf[1]&0x02)
{
lcdwrite_chinese(0,61,13,&dian[0]);//显示电流方式
lcdwrite_chinese(0,74,13,&liu[0]);
}
else
{
lcdwrite_chinese(0,61,13,&shijian_shi[0]);//显示时间方式
lcdwrite_chinese(0,74,13,&shijian_jian[0]);
}
break;
case auto_transfor:
lcdwrite_chinese(0,0,13,&zi[0]); //显示自耦降压
lcdwrite_chinese(0,13,13,&ou[0]);
lcdwrite_chinese(0,26,13,&jiang[0]);
lcdwrite_chinese(0,39,13,&dianya_ya[0]);
if(union_vlaue.revalue_buf[1]&0x02)
{
lcdwrite_chinese(0,61,13,&dian[0]);//显示电流方式
lcdwrite_chinese(0,74,13,&liu[0]);
}
else
{
lcdwrite_chinese(0,61,13,&shijian_shi[0]);//显示时间方式
lcdwrite_chinese(0,74,13,&shijian_jian[0]);
}
break;
default : break;
}
if(union_state.state_buf[0]&0x04)
{
lcdwrite_chinese(0,96,13,&yuanjin_yuan[0]);//显示远程
lcdwrite_chinese(0,109,13,&cheng[0]);
}
else
{
lcdwrite_chinese(0,96,13,&beng[0]);//显示本地
lcdwrite_chinese(0,109,13,&dadi_di[0]);
}
lcd_partclr(2,9,113);
lcd_partclr(3,9,113);
if(union_vlaue.revalue_buf[5]&0x01) //读取故障状态
{
lcdwrite_chinese(2,35,13,&qidong[0]);//显示起动失败
lcdwrite_chinese(2,48,13,&dong[0]);
lcdwrite_chinese(2,61,13,&shibai_shi[0]);
lcdwrite_chinese(2,74,13,&bai[0]);
}
else if(union_vlaue.revalue_buf[5]&0x02)
{
lcdwrite_chinese(2,35,13,&ting[0]); //显示停车失败
lcdwrite_chinese(2,48,13,&che[0]);
lcdwrite_chinese(2,62,13,&shibai_shi[0]);
lcdwrite_chinese(2,75,13,&bai[0]);
}
else
{
if(union_state.state_buf[1]&0x01)
{
lcdwrite_chinese(2,35,13,&jie[0]); //显示接线错误
lcdwrite_chinese(2,48,13,&xian[0]);
lcdwrite_chinese(2,62,13,&cuo[0]);
lcdwrite_chinese(2,75,13,&cuowu_wu[0]);
}
else if(union_state.state_buf[1]&0x02)
{
lcdwrite_chinese(2,22,13,&qidong[0]);//显示起动准备就绪
lcdwrite_chinese(2,35,13,&dong[0]);
lcdwrite_chinese(2,48,13,&zhun[0]);
lcdwrite_chinese(2,61,13,&bei[0]);
lcdwrite_chinese(2,74,13,&jiu[0]);
lcdwrite_chinese(2,87,13,&xu[0]);
}
else
{
lcdwrite_chinese(2,35,13,&wan[0]); //显示万龙电器
lcdwrite_chinese(2,48,13,&wanlong[0]);
lcdwrite_chinese(2,62,13,&dian[0]);
lcdwrite_chinese(2,75,13,&dianqi_qi[0]);
}
}
}
}
}
else //非停车状态
{
if((union_state.state_buf[11]&0x07)>=two_power)
{
dis_number=7; //转向察看参数界面号
show_bit=1; //第一次进入标志
set_bit=0;
remote_sign.furbish=1;//刷新标志
dis_message_count=5;
remote_type.value=1;
}
else
{
dis_number=3;//转向察看参数界面号
show_bit=1; //第一次进入标志
set_bit=0;
remote_sign.furbish=1;//刷新标志
dis_message_count=4;
remote_type.value=1;
}
}
}
/*
电机保护方式起动和运行界面显示
显示操作类型、起动运行状态,起动及运行参数等
测控方式没有此界面,因此,不包含在内
*/
void motor_run_show()
{
unsigned char a;
if(union_state.state_buf[0]&0x01) //停车状态
{
dis_number=0; //转向察看参数界面号
show_bit=1; //第一次进入标志
set_bit=0;
remote_sign.furbish=1;//刷新标志
dis_message_count=3;
remote_type.value=1;
}
else //非停车状态
{
if((union_state.state_buf[11]&0x07)>=two_power)
{
dis_number=7; //转向察看参数界面号
show_bit=1; //第一次进入标志
set_bit=0;
remote_sign.furbish=1;//刷新标志
dis_message_count=5;
remote_type.value=1;
}
else
{
if(key==ok_key) //如果有确认键,立即处理键
{
dis_number=33; //转向察看参数界面号
show_bit=1; //第一次进入标志
remote_sign.furbish=1;//刷新标志
dis_message_count=0;
arrow_state1=0;
}
if(remote_sign.furbish==0)
{
remote_sign.furbish=1;//刷新标志
dis_message_count=4;
remote_type.value=1;
if(show_bit)
{
clr_fullscreen();
lcdwrite(1,0,1,&pointline[0]);
lcdwrite(1,1,1,&pointline[0]);
lcdwrite(1,119,1,&pointline[0]);
lcdwrite(1,120,1,&pointline[0]);
for(a=2;a<119;a++)
{
lcdwrite(1,a,1,&dline[0]); //显示线
}
lcdwrite(0,0,6,&ascI[0]); //显示I
lcdwrite(0,6,4,&mh[0]); //显示:
lcdwrite(0,43,6,&bfh[0]); //显示%
lcdwrite(0,67,6,&ascC[0]); //显示C
lcdwrite(0,73,6,&asciic[0]);
lcdwrite(0,79,4,&mh[0]); //显示:
lcdwrite(0,115,6,&bfh[0]); //显示%
show_bit=0;
point_row=0;
}
lcd_partclr(2,39,14);
lcd_partclr(3,39,14);
switch (union_state.state_buf[11]) //读起动方式
{
case direct_start:
switch (union_vlaue.revalue_buf[13]) //读操作方式
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -