| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 |
- /********************************************************************
- 版权声明: Copyright (C),Yunda Tech.Co.,Ltd.
- 创 建 人: 张家华
- 创建时间: 2018/8/24 16:02
- 文件名称: ElectricEqpmt_BreakRailPotential
- 主要功能: 1.轨电位状态图元管理
- 其 他:
- 修改记录:
- *********************************************************************/
- #pragma once
- #include "ElectricEqpmt_SwicthEqpmt.h"
- #include "ElectricEqpmt_PowerBolt.h"
- #include "ElectricEqpmt_Breaker.h"
- class ElectricEqpmt_BreakRailPotential : //断路器
- public ElectricEqpmt_Breaker
- {
- public:
- ElectricEqpmt_BreakRailPotential();
- virtual ~ElectricEqpmt_BreakRailPotential(){};
- virtual void CalculateValue(double inputv,double inputI,ELEEQPMTMAP* PEqpmtMap);
- virtual bool handle_checkprotect(int eventOper,ELEEQPMTMAP& eqpmtmap,int errorid,int protectid);
- virtual int GetType(){return OCC_EQPMTTYPE_BreakRailPotential;}
- virtual bool handle_delaytime(int64_t& time,ELEEQPMTMAP& ElectricEqpmtMap,DelayTimeInfo& delayparm);
- virtual bool CheckProtect(ELEEQPMTMAP& ElectricEqpmtMap,int errorid,int protectid,bool bAutoRelation = true );
- virtual bool PowerCut(ELEEQPMTMAP& eqpmtmap,string sourceid,int offcase);
- //virtual void ClearProtect(ELEEQPMTMAP& ElectricEqpmtMap,int errorid);
- //virtual void ClearSingleProtect(ELEEQPMTMAP& ElectricEqpmtMap,int errorid, const string& strProtecResetType = _T("")); //added by zhangjh on 2017.5.18
- //virtual void SetShield(ELEEQPMTMAP& ElectricEqpmtMap);
- //virtual void CancleShield(ELEEQPMTMAP& ElectricEqpmtMap);
- virtual bool PowerIn(ELEEQPMTMAP& eqpmtmap,string sourceid);
- virtual void SetRemoteLock(ELEEQPMTMAP& ElectricEqpmtMap,int status,int ctrlArea,int lockType);
- virtual void CancleRemoteLock(ELEEQPMTMAP& ElectricEqpmtMap,int status,int ctrlArea);
- virtual void SetCommunicationStatus(map<string,BaseElectricEqpmt*>& ElectricEqpmtMap);
- virtual void CancleCommunicationStatus(map<string,BaseElectricEqpmt*>& ElectricEqpmtMap);
- int CheckAutoUnionStatus(int errorid,ELEEQPMTMAP& ElectricEqpmtMap, const ProtectValue& protectValue, bool bAutoRelation = true );
- bool AddProtectRelation(ProtectValue& protect); //增加保护关系
- void SetBreakHandID(string id); //设置断路器手车
- string GetBreakHandleID();
- /*void SetAutoBoltID(string id)
- {
- AutoBoltID = id;
- }
- string GetAutoBoltID()
- {
- return AutoBoltID;
- }*/
- void SetRepeatShut(int shutstatus); //设置重合闸
- int GetActiveProtectID(); //获取主保护ID
- int EqpmtAutoBreak(ELEEQPMTMAP& ElectricEqpmtMap,const ProtectValue& protectValue, bool bAutoRelation = true ); //设备自断
- ElectricEqpmt_PowerBolt* GetBoltInShut(ELEEQPMTMAP& eqpmtmap); //获取合闸的备自投设备
- ElectricEqpmt_PowerBolt* GetBoltInOff(ELEEQPMTMAP& eqpmtmap); //获取分闸的备自投设备
- /*
- 故障发生时联跳设备处理方法 Add By XYX 2017 12 21
- */
- virtual bool CheckTripping( ELEEQPMTMAP& ElectricEqpmtMap, const ProtectValue& protectValue );
- /*
- 判断断路器当前是否故障
- */
- bool IsFault();
- /*
- 联跳设备故障恢复:解除锁闭状态
- */
- void UnLockTrippingEqpmt( ELEEQPMTMAP& ElectricEqpmtMap );
- virtual void EqpmtCtrl(int status,ELEEQPMTMAP& ElectricEqpmtMap,string Stdid,int CtrlType, int nMark = 0);
- /*
- 检查出线设备是否需要断开:手动分闸时调用
- */
- void CheckOutLineElectricEqpmt( ELEEQPMTMAP& ElectricEqpmtMap, int nMark /*= 0*/ );
- /*
- 35KV出线设备自断逻辑处理
- */
- void PowerCutOutLineElectricEqpmt_35KV( ELEEQPMTMAP& ElectricEqpmtMap, const string& strOutLineElectricEqpmtStrID );
- /*
- 400V出线设备自断逻辑处理
- */
- void PowerCutOutLineElectricEqpmt_400V( ELEEQPMTMAP& ElectricEqpmtMap, const string& strOutLineElectricEqpmtStrID );
- /*
- 400V出线设备自断
- */
- void PowerCutCurElectricEqpmt_400V( ELEEQPMTMAP& ElectricEqpmtMap );
- /*
- 35KV目联是否投入
- */
- bool BoltPowerIn_35KV( ELEEQPMTMAP& ElectricEqpmtMap, const string& strOutLineElectricEqpmtStrID );
- /*
- 目联备自投要特殊处理
- */
- virtual int CheckEqpmtCtrlCase(int status,ELEEQPMTMAP& ElectricEqpmtMap,int stdid,int subsysid,int trianid,int stationid,int viewid, int CtrlType, int nMark = 0);
- private:
- std::vector<ProtectValue> SettingProtects;
- int ActiveProtectIndex; //主保护索引
- string BreakHandleID; //断路器手车ID
- /* string AutoBoltID;*/ //备自投ID
- int RepeatShut; //重合闸
- int64_t RepeatShutST; //重合闸开始时间
- int64_t LastShutST; //最后一次重合闸的时间
- /*
- 重合闸执行次数及时间间隔
- */
- static map<int, BreakerDelayTime> mapBreakerDelayTime;
- int RepeatShutIndex;
- static map<string,string> m_mapCheckedEqpmtStrID;
- public:
- /*
- 根据项目不同设置重合闸执行次数以及时间间隔 ADD BY XYX 2017-12-27
- */
- static void AddRepeatShut( int nEqpmtType, int nIndex, int nDelayTime, int nOneTime );
- int GetAllRepeatShutTime( );
- int GetDelayTime( int nIndex );
- int GetOneTime();
- int GetCurIndexDelayTime();
- void ResetRepeatShutIndex()
- {
- RepeatShutIndex = 1;
- }
- void MoveNextRepeatShutIndex()
- {
- RepeatShutIndex++;
- }
- int GetRepeatShutIndex()
- {
- return RepeatShutIndex;
- }
- };
|