ElectricEqpmt_PowerBolt.h 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. /********************************************************************
  2. 版权声明: Copyright (C),Yunda Tech.Co.,Ltd.
  3. 创 建 人: 张家华
  4. 创建时间: 2019/4/9 20:26
  5. 文件名称: ElectricEqpmt_PowerBolt
  6. 主要功能: 1.备自投设备类
  7. 2.
  8. 3.
  9. 其 他:
  10. 修改记录:
  11. *********************************************************************/
  12. #pragma once
  13. #include "ElectricEqpmt_SwicthEqpmt.h"
  14. #include "PublicEqpmtID.h"
  15. #include "ElectricBaseDefine.h"
  16. class ElectricEqpmt_PowerBolt : //电源备自投
  17. public CElectricEqpmt_SwicthEqpmt
  18. {
  19. public:
  20. ElectricEqpmt_PowerBolt();
  21. ~ElectricEqpmt_PowerBolt();
  22. virtual void CalculateValue(double inputv,double inputI,ELEEQPMTMAP* PEqpmtMap);
  23. virtual int GetType(){return OCC_EQPMTTYPE_AUTOBOLT;}
  24. virtual bool handle_delaytime(int64_t& time,ELEEQPMTMAP& eqpmtmap,DelayTimeInfo& delayparm);
  25. int AutoBoltCheckEqpmtCtrlCase(int trainid,ELEEQPMTMAP& ElectricEqpmtMap,int subsysid,int stationid,int viewid,int stdid);
  26. bool CheckSelfShut(ELEEQPMTMAP& eqpmtmap,string sbreaker);
  27. bool CheckSelfOff(ELEEQPMTMAP& eqpmtmap,string sbreaker);
  28. bool AutoBlotShut(ELEEQPMTMAP& eqpmtmap);
  29. bool AutoBlotOff(ELEEQPMTMAP& eqpmtmap);
  30. int CheckInPower();
  31. void SetNextBolt(string nextbolt)
  32. {
  33. m_NextBolt = nextbolt;
  34. }
  35. void SetRelationBreaker(string breaker)
  36. {
  37. m_RelationBreak= breaker;
  38. }
  39. string GetRelationBreaker()
  40. {
  41. return m_RelationBreak;
  42. }
  43. void SetLeftInputBreak(string leftbreak)
  44. {
  45. m_LeftInputBreak.push_back(leftbreak);//added by zhangjh on 2017.3.21
  46. //m_LeftInputBreak=leftbreak;
  47. }
  48. void SetRightInputBreak(string rightbreak)
  49. {
  50. //m_RightInputBreak = rightbreak;
  51. m_RightInputBreak.push_back(rightbreak);//added by zhangjh on 2017.3.21
  52. }
  53. /*
  54. 判断备自投是否符合三合两闭:自动合闸
  55. */
  56. bool CheckBoltRelationLRBreak_On( ELEEQPMTMAP& eqpmtmap );
  57. /*
  58. 判断备自投是否符合三合两闭:自动分闸
  59. */
  60. bool CheckBoltRelationLRBreak_Off( ELEEQPMTMAP& eqpmtmap );
  61. //判断设备是否是断路器
  62. bool IsBreakType( int nType );
  63. virtual void EqpmtCtrl(int status,ELEEQPMTMAP& ElectricEqpmtMap,string Stdid,int CtrlType,int nMark = 0);
  64. //手动操作母联、左进线、右进线断路器时,三合两闭逻辑校验
  65. int GetEqpmtCtrlCaseStatus_CircuitBreaker_OnByHand(int status,ELEEQPMTMAP& ElectricEqpmtMap); //母联断路器操作校验
  66. int GetEqpmtCtrlCaseStatus_LInputBreaker_OnByHand(int status,ELEEQPMTMAP& ElectricEqpmtMap); //左进线断路器操作校验
  67. int GetEqpmtCtrlCaseStatus_RInputBreaker_OnByHand(int status,ELEEQPMTMAP& ElectricEqpmtMap); //右进线断路器操作校验
  68. bool CheckBoltRelationLRBreak_OnByHand( ELEEQPMTMAP& eqpmtmap ); //母联断路器三合两闭逻辑判断 added by zhangjiahua on 2018.7.31
  69. bool CheckBoltRelation_L_Break_OnByHand( ELEEQPMTMAP& eqpmtmap ); //左进线断路器三合两闭逻辑判断added by xyx on 2019.6.19
  70. bool CheckBoltRelation_R_Break_OnByHand( ELEEQPMTMAP& eqpmtmap ); //右进线断路器三合两闭逻辑判断added by xyx on 2019.6.19
  71. protected:
  72. string m_NextBolt; //下一个备自投
  73. string m_RelationBreak; //关联断路器
  74. //string m_LeftInputBreak; //左边输入断路器
  75. vector<string> m_LeftInputBreak; //左边输入断路器 added by zhangjh on 2017.3.21
  76. //string m_RightInputBreak; //右边输入断路器
  77. vector<string> m_RightInputBreak; //右边输入断路器
  78. string m_strAA_ModeStatus ; //自投自复状态显示
  79. string m_strAM_ModeStatus; //自投手复状态显示
  80. string m_strMM_ModeStatus; //手投手复状态显示
  81. private:
  82. int m_nCtrlMode; //备自投工作模式->30 :自投自复 31:自投手复 32:手投手复 33手投自复 默认状态为30即自投自复
  83. public:
  84. void SetCtrlMode(int mode) //设置备自投工作模式
  85. {
  86. m_nCtrlMode = mode;
  87. }
  88. int GetCtrlMode() //获取备自投工作模式
  89. {
  90. return m_nCtrlMode;
  91. }
  92. void SetModeStatusShowEqpmt(string strEqpmt, int modeType);
  93. void UpdateModeStatusShow(ELEEQPMTMAP& ElectricEqpmtMap, int modeType);
  94. private:
  95. string m_strLeftInputLine; //左侧进线
  96. string m_strRightInputLine; //右侧进线
  97. string m_strLeftMotherLine; //左侧母线
  98. string m_strRightMotherLine; //右侧母线
  99. public:
  100. void SetLeftInputLine(string leftInputLine) //设置左侧进线
  101. {
  102. m_strLeftInputLine=leftInputLine;
  103. }
  104. string GetLeftInputLine() //获得左侧进线
  105. {
  106. return m_strLeftInputLine;
  107. }
  108. void SetRightInputLine(string rightInputLine) //设置右侧进线
  109. {
  110. m_strRightInputLine=rightInputLine;
  111. }
  112. string GetRightInputLine() //获得右侧进线
  113. {
  114. return m_strRightInputLine;
  115. }
  116. void SetLeftMotherLine(string leftMotherLine) //设置左侧母线
  117. {
  118. m_strLeftMotherLine=leftMotherLine;
  119. }
  120. string GetLeftMotherLine() //获得左侧母线
  121. {
  122. return m_strLeftMotherLine;
  123. }
  124. void SetRightMotherLine(string rightMotherLine) //设置左侧母线
  125. {
  126. m_strRightMotherLine=rightMotherLine;
  127. }
  128. string GetRightMotherLine() //获得左侧进线
  129. {
  130. return m_strRightMotherLine;
  131. }
  132. };