confBusiness.py 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. from enum import Enum
  2. # 全局变量
  3. charset_unify = 'utf-8'
  4. CSVSuffix = '.csv'
  5. Const_Output_Total='total'
  6. Const_TimeGranularity_Second="second"
  7. Const_TimeGranularity_Minute="minute"
  8. ### SCADA ###
  9. Field_DeviceCode="wind_turbine_number" #风机编号
  10. Field_ActiverPower="active_power" #有功功率
  11. Field_GeneratorTorque = "actual_torque" #实际扭矩
  12. Field_GeneratorSpeed = "generator_speed" #发电机转速
  13. Field_RotorSpeed = "rotor_speed" #风轮转速
  14. Field_WindSpeed = "wind_velocity" #风速
  15. Field_WindDirection="true_wind_direction" # 绝对风向
  16. Field_AngleIncluded = "yaw_error1" # 对风角度
  17. Field_PitchAngel1="pitch_angle_blade_1" # 桨距角1
  18. Field_PitchAngel2="pitch_angle_blade_2" # 桨距角2
  19. Field_PitchAngel3="pitch_angle_blade_3" # 桨距角3
  20. Field_Time="time_stamp" # .strftime('%Y-%m-%d %H:%M:%S')
  21. Field_EnvTemp="outside_cabin_temperature" # 环境温度
  22. Field_NacTemp="cabin_temperature" # 机舱内温度
  23. Field_NacPos="cabin_position" # 机舱位置
  24. Field_GeneratorDE="generatordrive_end_bearing_temperature" # 发电机驱动端轴承温度/发电机低速轴温度
  25. Field_GeneratorNDE="generatornon_drive_end_bearing_temperature" # 发电机非驱动端轴承温度/发电机高速轴温度
  26. Field_MainBearTemp="main_bearing_temperature" # 主轴承轴承温度
  27. Field_GbHsBearTemp="gearbox_high_speed_shaft_bearing_temperature" # 齿轮箱高速轴轴承温度
  28. Field_GbMsBearTemp="gearboxmedium_speed_shaftbearing_temperature" # 齿轮箱中速轴轴承温度
  29. Field_GbLsBearTemp="gearbox_low_speed_shaft_bearing_temperature" # 齿轮箱低速轴轴承温度
  30. Field_GenWiTemp1="generator_winding1_temperature" # 发电机绕组1温度
  31. Field_GenWiTemp2="generator_winding2_temperature" # 发电机绕组2温度
  32. Field_GenWiTemp3="generator_winding3_temperature" # 发电机绕组3温度
  33. Field_GbOilTemp="gearbox_oil_temperature" # 齿轮箱油温
  34. Field_PCA="power_curve_available" # 功率曲线可用
  35. Field_APSet="set_value_of_active_power" # 有功功率设定值
  36. Field_NacFbVib="front_back_vibration_of_the_cabin" # 机舱前后振动
  37. Field_NacLrVib="side_to_side_vibration_of_the_cabin" # 机舱左右振动
  38. Field_StatusOfTurbine="wind_turbine_status" # 风机状态1
  39. # 故障/告警数据
  40. Field_DeviceCode="wind_turbine_number" #风机编号
  41. Field_DeviceName="wind_turbine_name"#风机名称
  42. Field_FaultTime="time_diff"#故障时长
  43. Field_FaultDetail="fault_detail"#故障类型
  44. Field_BeginTime="begin_time"#故障开始时间
  45. Field_EndTime="end_time"#故障开始时间
  46. ### 二次计算 ###
  47. Field_Cp = "cp"
  48. Field_CpMedian = "cp_median"
  49. Field_CpMax = "cp_max"
  50. Field_CpMin = "cp_min"
  51. Field_TSR = "tsr"
  52. Field_TSRModified = "tsr_modified"
  53. Field_TSRMax = "tsr_max"
  54. Field_TSRMin = "tsr_min"
  55. Field_TSRMedian = "tsr_median"
  56. Field_Year="year"
  57. Field_Month="month"
  58. Field_UnixYearMonth="monthIntTime"
  59. Field_YearMonth = "year-month"
  60. Field_YearMonthDay = "year-month-day"
  61. Field_PowerFloor= "power_floor"
  62. Field_Power="power"
  63. Field_WindSpeedFloor= "wind_speed_floor"
  64. Field_YawError="yaw_error1"
  65. Field_LableFlag="lab"
  66. ### 风场信息表 wind_field ###
  67. Field_PowerFarmCode="field_code"
  68. Field_PowerFarmName="field_name"
  69. Field_ProvinceID="province_id"
  70. Field_ProvinceName="province_name"
  71. Field_CityID="city_id"
  72. Field_CityName="city_name"
  73. Field_CompanyCode="company_code" # 企业编号
  74. Field_CreateBy="create_by" # 创建人
  75. Field_CreateTime="create_time" # 创建时间
  76. Field_AirDensity="density" # 空气密度-合同功率曲线
  77. Field_NumberOfTurbine="engine_number" # 风机数量
  78. Field_PowerContractURL="power_contract_url" # 合同功率曲线地址
  79. Field_RatedPowerSUM="rated_capacity_number" # 总额定容量-sum机组
  80. ### 风机机组信息表 wind_engine_group ###
  81. Field_NameOfTurbine="engine_name"
  82. Field_CodeOfTurbine="engine_code"
  83. Field_RatedPower="rated_capacity" # 额定功率
  84. Field_RatedWindSpeed="rated_wind_speed" # 额定风速
  85. Field_Elevation="elevation_height"
  86. Field_HubHeight="hub_height" # 轮毂高度
  87. Field_Latitude="latitude" # wind_engine_mill 也有
  88. Field_Longitude="longitude" # wind_engine_mill 也有
  89. Field_Sightcing="sightcing" # 是否标杆风机
  90. ### 风机机型信息表 wind_engine_mill ###
  91. Field_RotorDiameter="rotor_diameter" # 叶轮直径
  92. Field_Brand="brand" # 品牌名称(风机)
  93. Field_Combination="combination" # 组合字段
  94. Field_MotionType="curved_motion_type" # 驱动方式
  95. Field_DelState="del_state" # 删除方式
  96. Field_MachineTypeCode="machine_type_code" # 机型型号
  97. Field_MillTypeCode="mill_type_code" # 编号
  98. Field_ManufacturerCode="manufacturer_code" # 厂商编号
  99. Field_ManufacturerName="manufacturer_name" # 厂商名称
  100. Field_PowerCriterionURL="power_criterion_url" # 标准功率曲线地址
  101. Field_TowerHeight="tower_height"
  102. Field_VaneLong="vane_long" # 叶片长度
  103. Field_RSR="rotational_speed_ratio" # 传动比-转速比
  104. Field_CutInWS="rated_cut_in_windspeed" # 切入风速
  105. Field_CutOutWS="rated_cut_out_windspeed" # 切出风速
  106. ### 测风塔信息 anemometer_tower -> anemometer_tower_relation ###
  107. Field_AnemometerCode="anemometer_code"
  108. Field_AnemometerName="anemometer_name"
  109. ### 数据转换
  110. Field_TransferType="transfer_type" # 转换类型 (枚举值:second、minute)
  111. Field_TimeGranularity="time_granularity" # 时间粒度(秒)
  112. Field_State="state"
  113. Field_UpdateTime="update_time"
  114. Field_UpdateBy="update_by"
  115. Field_Return_TypeAnalyst="typeAnalyst"
  116. Field_Return_BatchCode="batch_code"
  117. Field_Return_FilePath="localFilePath"
  118. Field_Return_IsSaveDatabase:bool=True
  119. class ErrorState(Enum):
  120. NotErr=0
  121. Err=1 # 异常
  122. class AnalysisState(Enum):
  123. NotAnalyzed=-1 # 未分析
  124. RequstQueue=10 # 请求队列中
  125. Analyzing=20 # 分析中
  126. Analyzed=30 # 已分析
  127. class CustomError(Exception):
  128. ERROR_CODES = {
  129. -1:"未知异常,请联系技术人员排查问题",
  130. 100: "未获得业务基础数据,或基础数据缺失",
  131. 101: "未获得业务数据,或业务数据与基础数据不匹配",
  132. 102: "缺少风电机组运行数据",
  133. 103: "算法模型未输出结果",
  134. 104: "缺失场站基础信息",
  135. 105: "缺失机组基础信息",
  136. 106: "缺失场站的数据批次信息",
  137. 107: "场站存在未配置机型信息(额定风速、切入风速、切出风速)的机组",
  138. 108: "缺失机组的合同功率曲线信息",
  139. 109: "场站存在未配置额定功率的机组",
  140. 110: "场站未配置空气密度",
  141. 111: "场站所属风电机组存在未配置叶轮直径",
  142. 112: "SCADA数据不包含风速或其全无值",
  143. 113: "SCADA数据不包含有功功率或其全无值",
  144. 114: "机组未配置机型信息",
  145. 115: "机组未配置基础信息",
  146. }
  147. def __init__(self, code,msg=""):
  148. self.code = code
  149. self.message =f"{msg} {self.ERROR_CODES.get(code, CustomError.ERROR_CODES.get(-1))}"
  150. super().__init__(self.message)
  151. def __str__(self):
  152. return f"[Error Code: {self.code}] {self.message}"