Chinaunix首页 | 论坛 | 博客
  • 博客访问: 309367
  • 博文数量: 60
  • 博客积分: 2579
  • 博客等级: 大尉
  • 技术积分: 570
  • 用 户 组: 普通用户
  • 注册时间: 2006-12-17 14:54
文章分类

全部博文(60)

文章存档

2011年(1)

2010年(1)

2009年(35)

2008年(23)

分类:

2008-07-19 23:29:50

几年前用gawk写的脚本,当时为了偷懒,不想用鼠标一个一个的加,特学习awk,然后做了如下脚本,自动生成项目的参数的配置文件。脚本也就我在用,有消失的危险,记到这里
学习awk的也可以看看,虽然写的不怎么样,但是还是达到了效果(偷懒^_^)
 

#!/usr/bin/gawk -f

#

#USAGE:

# paraFile station=xxx rtu=xxx yx.conf >yxstation

# paraFile [Help|help]

#

#NOTE:

# 脚本生成导入遥信、遥测参数的配置文件yxstation,只能通过gawk运行,

# 请检查gawk是否安装在系统/usr/local/bin目录下,配置文件名中请不要含

# <, >, {, }, [, ],.,=等特殊符号,脚本目前不支持特殊字符,也不能叫

# help的所有大小写的组合,配置文件名最好用字母,数字表示

#

#DESCRIPTION:

#yx.conf,该配置文件每行代表一个遥信的配置,其分五个域,每个的说明如下:

# PointName PointDesc DataCat DevName MeasName

# K3502jd 3502开关接地保护 PROTECT K3502 接地

#如果有些遥信不知道关联哪个设备,可以将DevName省略不填,不会影响遥信参数脚本的生成(遥测不行)

#

#配置文件每行代表一个遥测的配置,其分五个域,每个的说明如下:

# PointName PointDesc ConvFactA1/Max DevName MeasName savePeriod/MaxScope

# K1150P 1150有功 0.330000/20.48 K1150 有功 5/2048

#

#

#生成的参数脚本InRtuPointNo默认从0开始递增,若不想从0开始指定,请在脚本执行时命令行中加上count=num

#这样会按指定的num递增生成InRtuPointNo

#该生成遥信、遥测的配置文件,必须按照InRtuPointNo由从小到大的顺序来写配置文件,

#在不连续的InRtuPointNo时,请用"IGNORE"代替该行

#

#

#若要生成遥测,配置文件开头应有这样一行"#91yc"or"#91YC",如果指定用最大工程值生成,需在"#91yc"or"#91YC"

#加上" max"or" MAX "

#example:#91yc max

#

#以后若要生成其它非采集遥信等等的脚本,可以按照遥测的做法进行扩展

#

# lifei 2005.9.5 initial

#

BEGIN {
      MeasTypeCfg="/yh9100/.config/para_Meas.conf"
      MeasStatCfg="/yh9100/.config/MeasStat.conf"
      exitFlag=0
     CheckArg()
     InitMeas()
     InitMeasStat(1)
     count=0
     }
{
#判断是否生成遥测脚本

    if($1~/^#91(yc|YC)/)

     {
          line++
          if($2 ~/(^MAX)|(^max)/)
          maxFlag = 1
             Flag = 1
     }
     else if($1~/^#/||NF==0)

     {
     line++
     next
     }
     else if($1~/^IGNORE/) ##跳过不用的yc、yx的点号

     {
        line++
         count++
         next
     }
     else    if( Flag==0 ) ##遥信

     {
        checkPoint()
         printYx()
         
     }
     else if( Flag==1 ) ##遥测

     {
     if(maxFlag)
     {
     checkPoint()
          printYc(maxFlag)
     }
     else
     {
          checkPoint()
          printYc(maxFlag)
        }
      }
}

END    {
     if(exitFlag)
      exit(1)
     else
     {
      SaveMeasStat()
      if(numError==0&&numWarning==0)
       printf "paraFile execute sucessfully\n">"/dev/stderr"
      else
       {
       printf "\nparaFile execute unsucessfully:\n\tError number:%4d\n\tWarning number:%4d\n",numError,numWarning>"/dev/stderr"
       if(measError>0)
       LookMeasStatTable()
       }
     }
   }
#

#支持函数 检查整个文件中点名是否重复

#

function checkPoint()
{
    line++
    if(++pointName[$1]>1)
      {
       printf "Error:\n\tPointName: %s in Line:%d相同Line:%d in File %s!\n",$1,line,nameOfline[$1],FILENAME>"/dev/stderr"
       numError++
      }
    if(pointName[$1]==1)
     nameOfline[$1]=line
}

#

#支持函数 检查设备名和点名及点描述是否一致

#

function checkDev(pointName,pointDesc,devName,temp)
{
    if(match(devName,/[0-9]+/))
    temp=substr($4,RSTART,RLENGTH)
    
    if(match(pointName,temp)&&match(pointDesc,temp))
    return
    else
    {
    printf "Warning:\n\tDevname \"%s\" 不匹配 pointName \"%s\" or pointDesc \"%s\" in line %d\n",devName,pointName,pointDesc,line >"/dev/stderr"
    numWarning++
    }
}
#

#支持函数 检查脚本配置文件是否存在

#

function CheckCfgFile(CfgFile,tmpCmd,tmpRes,retSts,idx,rep)
{
  
 if(CfgFile~/[/][/]+/)
  {
   printf "ERROR: The path of \"%s\" is not true!\n",CfgFile>"/dev/stderr"
   printf "\tPlease check the path of \"%s\"\n" ,CfgFile>"/dev/stderr"
   retSts =1
   return retSts
  }
  else if(CfgFile~/[^/]\/$/)
  {
   printf "ERROR: \"%s\" is not a ordinary file!\n",CfgFile>"/dev/stderr"
   printf "\tIt's maybe a directory file!\n" >"/dev/stderr"
   retSts =2
   return retSts
  }
  
  idx=match(CfgFile,/[^/]+$/)
  #if(CfgFile!~/^\.\//)

  if(idx&&index(CfgFile,"/"))
  {
   tmpCmd=sprintf("echo %s%s",substr(CfgFile,1,idx-1),"*")
   #printf "tmpCmd %s\n",tmpCmd

  }
  else
  {
   tmpCmd=sprintf("echo %s","*")
   #printf "tmpCmd %s\n",tmpCmd

  }
  #tmpCmd=sprintf("ls -ld %s ",CfgFile)

  tmpCmd | getline tmpRes
  #printf "tmpRes %s\n",tmpRes

  close(tmpCmd)
  #if(CfgFile~/^\.\//)

  #{rep=sprintf("./%s\\>",substr(CfgFile,3));printf "rep %s\n",rep}

  #else

  #rep="\\<[ \t]*" CfgFile "\\>"

  rep=sprintf("%s\\>",CfgFile)
  if(tmpRes!~rep)
  {
   printf "ERROR: \"%s\" is not exist!\n",CfgFile>"/dev/stderr"
   printf "\tPlease check it!\n" >"/dev/stderr"
   retSts =3
   return retSts
   }
   
  tmpCmd=sprintf("ls -ld %s",CfgFile)
  tmpCmd | getline tmpRes
  close(tmpCmd)
  if(tmpRes !~/^-/)
  {
   printf "ERROR: \"%s\" is not a ordinary file!\n",CfgFile>"/dev/stderr"
   printf "\t\"%s\" maybe a directory file,Please check it!\n",CfgFile>"/dev/stderr"
   retSts =4
   return retSts
   }
  return retSts
}
#

#支持函数 检查脚本参数表

#

function CheckArg(tmpCnt,tmpFlag,tmpCheck)
{
    if(ARGC==1)
      tmpFlag=1
    else
     {
      for(tmpCnt=1;tmpCnt<ARGC;tmpCnt++)
      {
       if(tolower(ARGV[tmpCnt])~/\<help\>/)
       {
        tmpFlag = 1
        #break

        }
        else if(index(ARGV[tmpCnt],"=")==0)
         tmpCheck=CheckCfgFile(ARGV[tmpCnt])
      }
     }
    if(tmpCheck)
     {
      exitFlag=1
      exit(1)
     }
    if(tmpFlag)
     {
     printf "\n">"/dev/stderr"
     while((getline info<"/yh9100/.script/paraFile")>0)
     {
     if(info !~/^#/)

     {
     close("/yh9100/.script/paraFile")
     break
     }
     else if(info ~/(^#!)|(^#+$)/)

     ;
     else
     {
     info = substr(info,2)
     printf "%s\n",info >"/dev/stderr"
     }    
     }
     LookMeasStatTable()
      exitFlag=1
      exit(1)    
   }
}
#

#支持函数 查看量测类型统计表

#

function LookMeasStatTable(tmpFlag)
{
 printf "\n你想查看常用的measType吗?[Yy]:">"/dev/stderr"
     getline tmpFlag<"-"
     if(tmpFlag~/[Yy]/)
     {
     printf "\n">"/dev/stderr"
     InitMeasStat(2)
     printf "\n如果想看更详细的量测类型信息,情参考%s\n",MeasTypeCfg>"/dev/stderr"
     #close("/dev/stderr")

      }
}
#

#支持函数 初始化量测类型表

#

function InitMeas(tmpToken)
{
 while(getline tmpToken < MeasTypeCfg >0)
 {
  
  if(tmpToken~/^#+/||tmpToken~/^$/)

  continue
  else
  {
  #去除多余字符、赋值、添加进量测类型表

  #match(tmpToken,/[ \t\n]+/)

  #tmpToken=substr(tmpToken,1,RSTART-1)

  Meas[tmpToken]=1
  }
 }
 close(MeasTypeCfg)
}
#

#支持函数 核对量测类型

#

function CheckMeas( measIn )
{
 #去除多余字符

 #match(measIn,/[ \t\n]+/)

 #measIn=substr(measIn,1,RSTART-1)

 #print MeasIn>"/dev/stderr"

 if(Meas[measIn]>=1)
 {
  MeasStat[measIn]++
  total++
  return
 }
 else
 {
 printf "Error:\n\tMeastype \"%s\"不正确,在line %d,请参考%s文件\n",measIn,line,MeasTypeCfg>"/dev/stderr"
 numError++
 measError++
 }
}
#

#支持函数 初始化量测类型统计

#

function InitMeasStat(flag,tmpToken,tmpCnt)
{
  while(getline <MeasStatCfg >0)
  {
   if(flag!=1)
   {
    if($0~/^#/)

    printf ("\t%s\n", substr($0,2)) >"/dev/stderr"
    else if($0~/^$/)
    ;
    else
    printf "\t%s\n", $0 >"/dev/stderr"
   }
   else
   {
    if($0~/^#+/||$0~/^$/)

     continue
    if($0~/^Total/)
     total=$2
    else
     {
      #去除多余字符、赋值、添加进量测类型表

      tmpToken=$1
      MeasStatPre[tmpToken]=$2
     }
     for(tmpCnt in MeasStatPre)
     {
      MeasStat[tmpCnt]=sprintf("%d",total*MeasStatPre[tmpCnt]/100)
     }
   }
  }
  close(MeasStatCfg)
}
#

#支持函数 保存量测类型统计

#

function SaveMeasStat(tmpToken,cnt)
{
 printf "#下面显示常用量测类型统计表:\n\n"> MeasStatCfg
 printf "#Meas stat(%):\n">MeasStatCfg
 printf "#-------------------------------------\n">MeasStatCfg
 close(MeasStatCfg)
 for(cnt in MeasStat)
 {
  MeasStatPre[cnt]=sprintf("%.6f",MeasStat[cnt]*100/total)
  printf "%-18s %-.6f\n",cnt,MeasStatPre[cnt]|"sort -r -n +1 +0 -1 >>" MeasStatCfg
 }
 close("sort -r -n +1 +0 -1 >>" MeasStatCfg)
 printf "#-------------------------------------\n">>MeasStatCfg
 printf "\nTotal %d\n",total>>MeasStatCfg
 close(MeasStatCfg)
}
#

#支持函数 生成遥信

#

function printYx(Divalue,NormalState)
{
   if($3~/(PROTECT)|(SGZ)/)
   {
     Divalue = 98
     NomalState = 0
   }
   else if($3~/STATUS/)
   {
     Divalue = 22
     NomalState = 0
   }
   else if($3=="SWITCH"||$3=="BREAK")
   {
     Divalue = 1
     NomalState = 0
   }
   else
     {
       #line++

     #count++

     printf "\tError:Check \"%s\" 3th filed in Line %d\n",$3,line>"/dev/stderr"
     numError++
     }
    
   printf("PointDiTel\n");
   printf("\tPointName = %s\n"),$1;
   printf("\tPointDesc = %s\n"),$2;
   printf("\tStationName = %s\n"),station;
   printf("\tAlmModPrn = 1\n");
   printf("\tAlmModAud = 1\n");
   printf("\tAlmModLog = 1\n");
   printf("\tAlmModTel = 1\n");
   printf("\tAlmModDis = 1\n");
   printf("\tAlmModSav = 1\n");
   printf("\tDataCat = %s\n"),$3;
   printf("\tPointClass = DI\n");
   printf("\tManEntryFlag = 0\n");
   printf("\tPmrFlag = 1\n");
   printf("\tDisturbFlag = 0\n");
   printf("\tAccidentJudgeName = 事故总或保护\n");
   printf("\tDiValue = %d\n"),Divalue;
   printf("\tNormalState = %d\n"),NomalState;
   printf("\tDiAlarmDelay = 0\n");
   printf("\tInGRtuName = %s\n"),rtu;
   printf("\tInRtuPointNo[1] = %s\n"),count++;
   if(NF>4)
    {
     printf("\tDevName = %s.%s\n"),station,$4;
     checkDev($1,$2,$4)
    }
   printf("\tMeasName = %s\n"),$NF;
   CheckMeas($NF)
   printf("\tPointPrior = 1\n");
   printf("\tPointCtlLevel = 0\n");
   printf("\tStatFlag = 1\n");
   printf("\tAoPName = SCADA\n\n");
}

#

#支持函数 生成遥测

#

function printYc(tmpFlag)
{
      if(tmpFlag)
        {
          printf"PointAiTel\n"
          printf" AnaValueConv = 1\n"
          printf" PointName = %s\n",$1
          printf" PointDesc = %s\n",$2
          printf" StationName = %s\n",station
          printf" AlmModPrn = 0\n"
          printf" AlmModAud = 1\n"
          printf" AlmModLog = 0\n"
          printf" AlmModTel = 0\n"
          printf" AlmModDis = 0\n"
          printf" AlmModSav = 1\n"
          printf" DataCat = ANALOG\n"
          printf" PointClass = AI\n"
          printf" ManEntryFlag = 0\n"
          printf" PmrFlag = 1\n"
          printf" DisturbFlag = 1\n"
          printf" IntervalFlag = 0\n"
          printf" HiReason = 999999.000000\n"
          printf" HiShortEmerg[1] = 0.000000\n"
          printf" HiShortEmerg[2] = 0.000000\n"
          printf" HiShortEmerg[3] = 0.000000\n"
          printf" HiShortEmerg[4] = 0.000000\n"
          printf" HiLongEmerg[1] = 0.000000\n"
          printf" HiLongEmerg[2] = 0.000000\n"
          printf" HiLongEmerg[3] = 0.000000\n"
          printf" HiLongEmerg[4] = 0.000000\n"
          printf" HiOper[1] = 0.000000\n"
          printf" HiOper[2] = 0.000000\n"
          printf" HiOper[3] = 0.000000\n"
          printf" HiOper[4] = 0.000000\n"
          printf" LoOper[1] = 0.000000\n"
          printf" LoOper[2] = 0.000000\n"
          printf" LoOper[3] = 0.000000\n"
          printf" LoOper[4] = 0.000000\n"
          printf" LoLongEmerg[1] = 0.000000\n"
          printf" LoLongEmerg[2] = 0.000000\n"
          printf" LoLongEmerg[3] = 0.000000\n"
          printf" LoLongEmerg[4] = 0.000000\n"
          printf" LoShortEmerg[1] = 0.000000\n"
          printf" LoShortEmerg[2] = 0.000000\n"
          printf" LoShortEmerg[3] = 0.000000\n"
          printf" LoShortEmerg[4] = 0.000000\n"
                    printf" LoReason = -999999.000000\n"
          printf" AlarmDelay = 0\n"
          printf" SaveFlag = 1\n"
          #if($NF~/\<[0-9]+\>/)

          #printf" SavePeriod = %d\n",$NF

          #else

          printf" SavePeriod = 5\n"
          printf" SaveMethod = 1\n"
          printf" SaveMaxFlag = 1\n"
          printf" SaveMinFlag = 1\n"
          if(NF>5)
          printf" MaxScope = %.6f\n",$NF
          else
          printf" MaxScope = 2048.000000\n"
          printf" MaxEngineerUnits = %.6f\n",$3
          printf" InGRtuName = %s\n",rtu
          printf" InRtuPointNo = %d\n",count++
          printf" DevName = %s.%s\n",station,$4
          printf" MeasName = %s\n",$5
          CheckMeas($5)
          printf" PointPrior = 1\n"
          printf" PointCtlLevel = 0\n"
          printf" StatFlag = 1\n"
          printf" AoPName = SCADA\n\n"
          checkDev($1,$2,$4)
          }
        else
          {
          printf"PointAiTel\n"
          printf" AnaValueConv = 1\n"
          printf" PointName = %s\n",$1
          printf" PointDesc = %s\n",$2
          printf" StationName = %s\n",station
          printf" AlmModPrn = 0\n"
          printf" AlmModAud = 1\n"
          printf" AlmModLog = 0\n"
          printf" AlmModTel = 0\n"
          printf" AlmModDis = 0\n"
          printf" AlmModSav = 1\n"
          printf" DataCat = ANALOG\n"
          printf" PointClass = AI\n"
          printf" ManEntryFlag = 0\n"
          printf" PmrFlag = 1\n"
          printf" DisturbFlag = 1\n"
          printf" IntervalFlag = 0\n"
          printf" HiReason = 999999.000000\n"
          printf" HiShortEmerg[1] = 0.000000\n"
          printf" HiShortEmerg[2] = 0.000000\n"
          printf" HiShortEmerg[3] = 0.000000\n"
          printf" HiShortEmerg[4] = 0.000000\n"
          printf" HiLongEmerg[1] = 0.000000\n"
          printf" HiLongEmerg[2] = 0.000000\n"
          printf" HiLongEmerg[3] = 0.000000\n"
          printf" HiLongEmerg[4] = 0.000000\n"
          printf" HiOper[1] = 0.000000\n"
          printf" HiOper[2] = 0.000000\n"
          printf" HiOper[3] = 0.000000\n"
          printf" HiOper[4] = 0.000000\n"
          printf" LoOper[1] = 0.000000\n"
          printf" LoOper[2] = 0.000000\n"
          printf" LoOper[3] = 0.000000\n"
          printf" LoOper[4] = 0.000000\n"
          printf" LoLongEmerg[1] = 0.000000\n"
          printf" LoLongEmerg[2] = 0.000000\n"
          printf" LoLongEmerg[3] = 0.000000\n"
          printf" LoLongEmerg[4] = 0.000000\n"
          printf" LoShortEmerg[1] = 0.000000\n"
          printf" LoShortEmerg[2] = 0.000000\n"
          printf" LoShortEmerg[3] = 0.000000\n"
          printf" LoShortEmerg[4] = 0.000000\n"
                    printf" LoReason = -999999.000000\n"
          printf" AlarmDelay = 0\n"
          printf" SaveFlag = 1\n"
          if(NF>5)
          printf" SavePeriod = %d\n",$NF
          else
          printf" SavePeriod = 5\n"
          printf" SaveMethod = 1\n"
          printf" SaveMaxFlag = 1\n"
          printf" SaveMinFlag = 1\n"
          printf" ConvFactA1 = %.6f\n",$3
          printf" InGRtuName = %s\n",rtu
          printf" InRtuPointNo = %d\n",count++
          printf" DevName = %s.%s\n",station,$4
          printf" MeasName = %s\n",$5
          CheckMeas($5)
          printf" PointPrior = 1\n"
          printf" PointCtlLevel = 0\n"
          printf" StatFlag = 1\n"
          printf" AoPName = SCADA\n\n"
          checkDev($1,$2,$4)
          }
}

 

para_Meas.conf如下:

 

#目前系统中有效的量测类型

电流
A相电流
B相电流
C相电流
零序电流
始端电流
末端电流
电压
A相电压
B相电压
C相电压
零序电压
AB线电压
BC线电压
CA线电压
有功
A相有功
B相有功
C相有功
零序有功
机组有功
联络线有功
始端有功
末端有功
无功
A相无功
B相无功
C相无功
零序无功
始端无功
末端无功
角度
相位
频率
功率因数
档位
温度
压力
水头
流量
湿度
时钟误差
电压相角差
电压幅值差
视在功率
始端视在功率
末端视在功率
有功电度
正向有功电度
负向有功电度
无功电度
正向无功电度
负向无功电度
始端有功电度
末端有功电度
开关状态
A相开关状态
B相开关状态
C相开关状态
刀闸状态
状态
机组状态
PLC控制状态
状态1
状态2
状态3
状态4
状态5
状态6
状态7
状态8
状态9
状态10
状态11
状态12
状态13
状态14
状态15
状态16
状态17
状态18
状态19
状态20
状态21
状态22
状态23
状态24
状态25
状态26
状态27
状态28
状态29
状态30
状态31
状态32
事故总
保护动作
掉牌未复归
过流
过负荷
重合闸
零序
电流过大
速断
速断后加速
过流后加速
故障总出口
自投动作
自投装置异常
开关拒动
后加速跳
保护跳闸
电压异常
电压切换动作
母联保护动作
母线过流
零序电压保护
零序电流保护
低压保护动作
过压
主变保护动作
主变保护异常
主变信号复归
后备保护动作
后备保护异常
后备故障
温度过高
风扇运转
风扇故障
重瓦斯动作
有载重瓦斯动作
轻瓦斯动作
瓦斯
释压阀动作
调压闭锁
连调
中性点地刀信号
发变组保护动作
差动异常
差速
差动
差速故障
低周保护动作
低周装置异常
低周保险熔断
一轮低周
二轮低周
三轮低周
四轮低周
低周复归
微机保护装置异常
微机保护
微机高频方向
微机高频闭锁
微机呼唤
光纤差动
高频闭锁
距离保护
远方跳闸
开关合闸位置
开关位置
分闸闭锁
合闸闭锁
油泵电机启动
油泵电机闭锁
超时运行
自动开关报警
电机过热
漏氮
电机过流
空气压力降低
SF6压力降低闭锁
SF6压力降低报警
空气低气压报警
空气低气压闭锁
其它SF6低气压报警
SF6压力第一报警
空气压力降低K1
空气压力降低K5
CBSF6低气压报警
CBSF6低气压闭锁
压力异常
机构压力异常
PT断线
CT断线
控制回路断线
控制屏电源消失24V
控制屏电源消失12V
监控电源消失
控制电源消失
控制母线故障
音响电源消失
保护电源消失
1号机故障
2号机故障
1,2号机故障
事故试验
预告试验
事故复归
预告复归
事故解除
事故喇叭
预告喇叭
音响试验
事故动作
事故音响解除
远方复归
保护装置异常
中央信号保险熔断
保险熔断
电度表电压消失
预告
母差保护直流电消失
母差电压电流回路异常
母差保护动作
直流母线电压异常
直流母线接地
浮充电源消失
直流绝缘降低
直流馈线RD熔断
直流电池RD熔断
充电装置异常
直流消失
直流供电异常
直流接地
小电流接地
10KV接地
35KV接地
小电流接地1
小电流接地2
小电流接地3
小电流接地4
小电流接地5
小电流接地6
小电流接地装置故障
交流接地
交流供电故障
UPS故障
逆变异常
电池故障
充电过流
交流故障
通讯故障
机构打压超时
母线接地1
母线接地2
母线接地3
母线接地4
有载轻瓦斯动作
光纤距离
非全相动作
联索解除
监控装置故障
掉电报警
装置故障
Ⅰ段距离保护出口
Ⅱ段距离保护出口
Ⅲ段距离保护出口
零序Ⅰ段保护出口
零序Ⅱ段保护出口
零序Ⅲ段保护出口
过流Ⅰ段
过流Ⅱ段
过流Ⅲ段
零序过流Ⅰ段
零序过流Ⅱ段
失压保护
联调声光报警
直流母线电压过高
直流母线电压过低
低周解列
距离保护阻抗相边加速出口
振荡中Ⅰ段距离保护出口
距离保护转换出口
测距
距离保护后备永跳出口
零序不灵敏Ⅰ段出口
零序不灵敏Ⅱ段出口
零序Ⅱ段加速出口
零序Ⅲ段加速出口
零序Ⅳ段加速出口
零序后备三跳出口
零序后备永跳出口
零序永跳失败
间隙
零序跳不接地
不平衡电流
不平衡电压
备自投跳1号
备自投跳2号
备自投合1号
备自投合2号
零序Ⅳ段保护出口
分合闸闭锁
本体重瓦斯动作
本体轻瓦斯动作
温度过低
备自投动作
事故照明切换动作
低周控制回路断线
方向高频保护跳闸
方向高频保护合闸
不对应启动重合闸
控故障
本机故障
手车运行位置
手车实验位置
弹簧已储能
加速
低周
调压重瓦斯
调压轻瓦斯
油位高
油位低
火灾报警
机构电源失电
外变跳内变
过流ⅡT2时限
过流ⅡT1时限
过流ⅠT1时限
过流ⅠT2时限
SF6密度异常降低
不平衡保护
测量PT断线
计量PT断线
高压侧过负荷
高频装置异常
高频装置动作
保护交流电压消失
充电保护动作
压力释放动作
通风故障
小电流接地交流消失
小电流接地直流消失
小电流接地装置动作
差动装置故障
低周继电器故障
信号总保险熔断
PT并列
直流装置内部故障报警
直流装置失电报警
直流装置总报警
电机回路故障
加热电源跳闸
跳闸失败
测量状态
自动状态
手动状态
档位出错
单相接地
谐振过压
汇控屏断电信号
1-9气室补气
1气室过压
2-9气室过压
OLS低气压
操作监视
闭锁投切
电源正常
运行状态
进线跳闸
交流切换直流
通信告警
脱谐度越限
均充
浮充
数据有效
开机
接地监测
无功调节动作
保护装置告警
过流启动通风
过负荷告警
低频保护动作
备自投告警
联切动作
挂牌
返校
欠压
弹簧未储能
接地
过励磁
比率差动
FTU监测到故障
A相过短路限
B相过短路限
C相过短路限
A相过流
B相过流
C相过流
开关端电压
开关端A相电压
开关端B相电压
开关端C相电压
开关端零序电压
开关端AB线电压
开关端BC线电压
开关端CA线电压

阅读(2222) | 评论(0) | 转发(0) |
0

上一篇:明天出差

下一篇:104规约笔记1

给主人留下些什么吧!~~