@enervance/insight-cim-model 0.0.1 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (262) hide show
  1. package/dist/config/westnetz-neplan/neplan-load.config.js +0 -1
  2. package/dist/config/westnetz-neplan/neplan-load.config.js.map +1 -1
  3. package/dist/constants/cim-class-definition.js +6 -0
  4. package/dist/constants/cim-class-definition.js.map +1 -1
  5. package/dist/constants/cim-class-names.d.ts +6 -0
  6. package/dist/constants/cim-class-names.js +6 -0
  7. package/dist/constants/cim-class-names.js.map +1 -1
  8. package/dist/converter/integral7/ConverterIntegral7.d.ts +17 -4
  9. package/dist/converter/integral7/ConverterIntegral7.js +530 -39
  10. package/dist/converter/integral7/ConverterIntegral7.js.map +1 -1
  11. package/dist/converter/integral7/config/db-config.d.ts +3 -1
  12. package/dist/converter/integral7/model/integral/Hgueleitung.d.ts +9 -0
  13. package/dist/converter/integral7/model/integral/Hgueleitung.js +3 -0
  14. package/dist/converter/integral7/model/integral/Hgueleitung.js.map +1 -0
  15. package/dist/converter/integral7/model/integral/Kopfstation.d.ts +31 -0
  16. package/dist/converter/integral7/model/integral/Kopfstation.js +3 -0
  17. package/dist/converter/integral7/model/integral/Kopfstation.js.map +1 -0
  18. package/dist/converter/integral7/model/interfaces.d.ts +8 -0
  19. package/dist/converter/integral7/sql/integral.sql.d.ts +8 -0
  20. package/dist/converter/integral7/sql/integral.sql.js +22 -1
  21. package/dist/converter/integral7/sql/integral.sql.js.map +1 -1
  22. package/dist/converter/integral7/utils.d.ts +4 -1
  23. package/dist/converter/integral7/utils.js +26 -8
  24. package/dist/converter/integral7/utils.js.map +1 -1
  25. package/dist/etl-neplan/etl-neplan-contingency-analysis.js +22 -7
  26. package/dist/etl-neplan/etl-neplan-contingency-analysis.js.map +1 -1
  27. package/dist/etl-neplan/etl-neplan-feederline.d.ts +3 -1
  28. package/dist/etl-neplan/etl-neplan-feederline.js +73 -15
  29. package/dist/etl-neplan/etl-neplan-feederline.js.map +1 -1
  30. package/dist/etl-neplan/etl-neplan.js.map +1 -1
  31. package/dist/etl-neplan/neplan-contingency-analysis.d.ts +14 -0
  32. package/dist/etl-neplan/neplan-contingency-analysis.js +337 -0
  33. package/dist/etl-neplan/neplan-contingency-analysis.js.map +1 -0
  34. package/dist/graph/Types.d.ts +5 -0
  35. package/dist/graph/Types.js +10 -0
  36. package/dist/graph/Types.js.map +1 -0
  37. package/dist/graph/connections/connection.d.ts +11 -0
  38. package/dist/graph/connections/connection.js +17 -0
  39. package/dist/graph/connections/connection.js.map +1 -0
  40. package/dist/graph/edges/edge.d.ts +8 -0
  41. package/dist/graph/edges/edge.js +16 -0
  42. package/dist/graph/edges/edge.js.map +1 -0
  43. package/dist/graph/graph-interfaces.d.ts +15 -0
  44. package/dist/graph/graph-interfaces.js +3 -0
  45. package/dist/graph/graph-interfaces.js.map +1 -0
  46. package/dist/graph/graph-util.d.ts +13 -0
  47. package/dist/graph/graph-util.js +114 -0
  48. package/dist/graph/graph-util.js.map +1 -0
  49. package/dist/graph/graph.d.ts +15 -0
  50. package/dist/graph/graph.js +75 -0
  51. package/dist/graph/graph.js.map +1 -0
  52. package/dist/graph/nodes/node.d.ts +14 -0
  53. package/dist/graph/nodes/node.js +28 -0
  54. package/dist/graph/nodes/node.js.map +1 -0
  55. package/dist/index.d.ts +6 -0
  56. package/dist/index.js +12 -0
  57. package/dist/index.js.map +1 -1
  58. package/dist/model/core/ACDCTerminal.js +2 -2
  59. package/dist/model/core/ACDCTerminal.js.map +1 -1
  60. package/dist/model/core/ConnectivityNode.js +3 -2
  61. package/dist/model/core/ConnectivityNode.js.map +1 -1
  62. package/dist/model/core/PSRType.d.ts +0 -1
  63. package/dist/model/core/PSRType.js +3 -6
  64. package/dist/model/core/PSRType.js.map +1 -1
  65. package/dist/model/core/PowerSystemResource.js +3 -8
  66. package/dist/model/core/PowerSystemResource.js.map +1 -1
  67. package/dist/model/core/Substation.d.ts +3 -0
  68. package/dist/model/core/Substation.js +4 -0
  69. package/dist/model/core/Substation.js.map +1 -1
  70. package/dist/model/core/Terminal.d.ts +2 -0
  71. package/dist/model/core/Terminal.js +2 -2
  72. package/dist/model/core/Terminal.js.map +1 -1
  73. package/dist/model/core/VoltageLevel.js +0 -1
  74. package/dist/model/core/VoltageLevel.js.map +1 -1
  75. package/dist/model/dc/ACDCConverter.d.ts +23 -0
  76. package/dist/model/dc/ACDCConverter.js +33 -0
  77. package/dist/model/dc/ACDCConverter.js.map +1 -0
  78. package/dist/model/dc/ACDCConverterDCTerminal.d.ts +13 -0
  79. package/dist/model/dc/ACDCConverterDCTerminal.js +54 -0
  80. package/dist/model/dc/ACDCConverterDCTerminal.js.map +1 -0
  81. package/dist/model/dc/CsConverter.d.ts +21 -0
  82. package/dist/model/dc/CsConverter.js +43 -0
  83. package/dist/model/dc/CsConverter.js.map +1 -0
  84. package/dist/model/dc/CsOperatingModeKind.d.ts +4 -0
  85. package/dist/model/dc/CsOperatingModeKind.js +9 -0
  86. package/dist/model/dc/CsOperatingModeKind.js.map +1 -0
  87. package/dist/model/dc/CsPpccControlKind.d.ts +5 -0
  88. package/dist/model/dc/CsPpccControlKind.js +10 -0
  89. package/dist/model/dc/CsPpccControlKind.js.map +1 -0
  90. package/dist/model/dc/DCBaseTerminal.d.ts +8 -0
  91. package/dist/model/dc/DCBaseTerminal.js +30 -0
  92. package/dist/model/dc/DCBaseTerminal.js.map +1 -0
  93. package/dist/model/dc/DCConductingEquipment.d.ts +5 -0
  94. package/dist/model/dc/DCConductingEquipment.js +12 -0
  95. package/dist/model/dc/DCConductingEquipment.js.map +1 -0
  96. package/dist/model/dc/DCConverterOperatingModeKind.d.ts +5 -0
  97. package/dist/model/dc/DCConverterOperatingModeKind.js +10 -0
  98. package/dist/model/dc/DCConverterOperatingModeKind.js.map +1 -0
  99. package/dist/model/dc/DCConverterUnit.d.ts +14 -0
  100. package/dist/model/dc/DCConverterUnit.js +54 -0
  101. package/dist/model/dc/DCConverterUnit.js.map +1 -0
  102. package/dist/model/dc/DCEquipmentContainer.d.ts +5 -0
  103. package/dist/model/dc/DCEquipmentContainer.js +12 -0
  104. package/dist/model/dc/DCEquipmentContainer.js.map +1 -0
  105. package/dist/model/dc/DCLine.d.ts +11 -0
  106. package/dist/model/dc/DCLine.js +48 -0
  107. package/dist/model/dc/DCLine.js.map +1 -0
  108. package/dist/model/dc/DCLineSegment.d.ts +13 -0
  109. package/dist/model/dc/DCLineSegment.js +69 -0
  110. package/dist/model/dc/DCLineSegment.js.map +1 -0
  111. package/dist/model/dc/DCNode.d.ts +12 -0
  112. package/dist/model/dc/DCNode.js +41 -0
  113. package/dist/model/dc/DCNode.js.map +1 -0
  114. package/dist/model/dc/DCPolarityKind.d.ts +5 -0
  115. package/dist/model/dc/DCPolarityKind.js +10 -0
  116. package/dist/model/dc/DCPolarityKind.js.map +1 -0
  117. package/dist/model/dc/DCTerminal.d.ts +10 -0
  118. package/dist/model/dc/DCTerminal.js +38 -0
  119. package/dist/model/dc/DCTerminal.js.map +1 -0
  120. package/dist/model/dc/VsConverter.d.ts +18 -0
  121. package/dist/model/dc/VsConverter.js +33 -0
  122. package/dist/model/dc/VsConverter.js.map +1 -0
  123. package/dist/model/dc/VsPpccControlKind.d.ts +7 -0
  124. package/dist/model/dc/VsPpccControlKind.js +12 -0
  125. package/dist/model/dc/VsPpccControlKind.js.map +1 -0
  126. package/dist/model/dc/VsQpccControlKind.d.ts +5 -0
  127. package/dist/model/dc/VsQpccControlKind.js +10 -0
  128. package/dist/model/dc/VsQpccControlKind.js.map +1 -0
  129. package/dist/model/domain/UnitMultiplier.js.map +1 -1
  130. package/dist/model/extensions/amprion/model/AmprionModell.d.ts +25 -0
  131. package/dist/model/extensions/amprion/model/AmprionModell.js +64 -0
  132. package/dist/model/extensions/amprion/model/AmprionModell.js.map +1 -0
  133. package/dist/model/extensions/amprion/project/AMPRIONConstructionProject.d.ts +34 -0
  134. package/dist/model/extensions/amprion/project/AMPRIONConstructionProject.js +134 -0
  135. package/dist/model/extensions/amprion/project/AMPRIONConstructionProject.js.map +1 -0
  136. package/dist/model/extensions/amprion/project/AMPRIONConstructionProjectBundle.d.ts +17 -0
  137. package/dist/model/extensions/amprion/project/AMPRIONConstructionProjectBundle.js +77 -0
  138. package/dist/model/extensions/amprion/project/AMPRIONConstructionProjectBundle.js.map +1 -0
  139. package/dist/model/extensions/amprion/project/AMPRIONConstructionProjectPlan.d.ts +14 -0
  140. package/dist/model/extensions/amprion/project/AMPRIONConstructionProjectPlan.js +57 -0
  141. package/dist/model/extensions/amprion/project/AMPRIONConstructionProjectPlan.js.map +1 -0
  142. package/dist/model/extensions/amprion/project/AMPRIONErpProject.d.ts +7 -0
  143. package/dist/model/extensions/amprion/project/AMPRIONErpProject.js +17 -0
  144. package/dist/model/extensions/amprion/project/AMPRIONErpProject.js.map +1 -0
  145. package/dist/model/extensions/amprion/project/AMPRIONErpProjectPhase.d.ts +19 -0
  146. package/dist/model/extensions/amprion/project/AMPRIONErpProjectPhase.js +74 -0
  147. package/dist/model/extensions/amprion/project/AMPRIONErpProjectPhase.js.map +1 -0
  148. package/dist/model/extensions/amprion/project/AMPRIONErpProjectStructure.d.ts +15 -0
  149. package/dist/model/extensions/amprion/project/AMPRIONErpProjectStructure.js +26 -0
  150. package/dist/model/extensions/amprion/project/AMPRIONErpProjectStructure.js.map +1 -0
  151. package/dist/model/extensions/amprion/project/AMPRIONProjectPriorityKind.d.ts +5 -0
  152. package/dist/model/extensions/amprion/project/AMPRIONProjectPriorityKind.js +10 -0
  153. package/dist/model/extensions/amprion/project/AMPRIONProjectPriorityKind.js.map +1 -0
  154. package/dist/model/extensions/amprion/wires/AMPRIONSeriesCompensator.d.ts +9 -0
  155. package/dist/model/extensions/amprion/wires/AMPRIONSeriesCompensator.js +46 -0
  156. package/dist/model/extensions/amprion/wires/AMPRIONSeriesCompensator.js.map +1 -0
  157. package/dist/model/extensions/enervance/operations/EVTerminalAction.js.map +1 -1
  158. package/dist/model/extensions/neplan-westnetz/assets/WNFacility.js.map +1 -1
  159. package/dist/model/generation/WindGeneratingUnit.d.ts +5 -0
  160. package/dist/model/generation/WindGeneratingUnit.js +66 -0
  161. package/dist/model/generation/WindGeneratingUnit.js.map +1 -1
  162. package/dist/model/model/Model.d.ts +39 -1
  163. package/dist/model/model/Model.js +91 -1
  164. package/dist/model/model/Model.js.map +1 -1
  165. package/dist/model/wires/ACLineSegment.d.ts +1 -0
  166. package/dist/model/wires/ACLineSegment.js +15 -2
  167. package/dist/model/wires/ACLineSegment.js.map +1 -1
  168. package/dist/model/wires/AsynchronousMachine.d.ts +1 -0
  169. package/dist/model/wires/AsynchronousMachine.js +37 -1
  170. package/dist/model/wires/AsynchronousMachine.js.map +1 -1
  171. package/dist/model/wires/Disconnector.js +1 -1
  172. package/dist/model/wires/EnergySource.d.ts +2 -0
  173. package/dist/model/wires/EnergySource.js +28 -2
  174. package/dist/model/wires/EnergySource.js.map +1 -1
  175. package/dist/model/wires/SeriesCompensator.d.ts +18 -2
  176. package/dist/model/wires/SeriesCompensator.js +108 -5
  177. package/dist/model/wires/SeriesCompensator.js.map +1 -1
  178. package/dist/util/util-create.js.map +1 -1
  179. package/dist/util/util-topology.d.ts +2 -2
  180. package/dist/util/util-topology.js +14 -6
  181. package/dist/util/util-topology.js.map +1 -1
  182. package/package.json +1 -1
  183. package/src/config/westnetz-neplan/neplan-load.config.ts +1 -1
  184. package/src/constants/cim-class-definition.ts +20 -1
  185. package/src/constants/cim-class-names.ts +9 -0
  186. package/src/converter/integral7/ConverterIntegral7.ts +753 -345
  187. package/src/converter/integral7/config/db-config.ts +3 -2
  188. package/src/converter/integral7/model/integral/Hgueleitung.ts +12 -0
  189. package/src/converter/integral7/model/integral/Kopfstation.ts +46 -0
  190. package/src/converter/integral7/model/interfaces.ts +23 -16
  191. package/src/converter/integral7/sql/integral.sql.ts +27 -1
  192. package/src/converter/integral7/utils.ts +43 -11
  193. package/src/etl-neplan/etl-neplan-contingency-analysis.ts +30 -12
  194. package/src/etl-neplan/etl-neplan-feederline.ts +100 -17
  195. package/src/etl-neplan/etl-neplan.ts +1 -0
  196. package/src/etl-neplan/neplan-contingency-analysis.ts +572 -0
  197. package/src/graph/Types.ts +7 -0
  198. package/src/graph/connections/connection.ts +29 -0
  199. package/src/graph/edges/edge.ts +27 -0
  200. package/src/graph/graph-interfaces.ts +21 -0
  201. package/src/graph/graph-util.ts +158 -0
  202. package/src/graph/graph.ts +84 -0
  203. package/src/graph/nodes/node.ts +43 -0
  204. package/src/index.ts +8 -0
  205. package/src/model/core/ACDCTerminal.ts +2 -2
  206. package/src/model/core/ConnectivityNode.ts +2 -2
  207. package/src/model/core/PSRType.ts +3 -6
  208. package/src/model/core/PowerSystemResource.ts +3 -7
  209. package/src/model/core/Substation.ts +6 -0
  210. package/src/model/core/Terminal.ts +15 -6
  211. package/src/model/core/VoltageLevel.ts +0 -1
  212. package/src/model/dc/ACDCConverter.ts +66 -0
  213. package/src/model/dc/ACDCConverterDCTerminal.ts +64 -0
  214. package/src/model/dc/CsConverter.ts +68 -0
  215. package/src/model/dc/CsOperatingModeKind.ts +4 -0
  216. package/src/model/dc/CsPpccControlKind.ts +5 -0
  217. package/src/model/dc/DCBaseTerminal.ts +30 -0
  218. package/src/model/dc/DCConductingEquipment.ts +8 -0
  219. package/src/model/dc/DCConverterOperatingModeKind.ts +6 -0
  220. package/src/model/dc/DCConverterUnit.ts +60 -0
  221. package/src/model/dc/DCEquipmentContainer.ts +8 -0
  222. package/src/model/dc/DCLine.ts +56 -0
  223. package/src/model/dc/DCLineSegment.ts +81 -0
  224. package/src/model/dc/DCNode.ts +49 -0
  225. package/src/model/dc/DCPolarityKind.ts +5 -0
  226. package/src/model/dc/DCTerminal.ts +45 -0
  227. package/src/model/dc/VsConverter.ts +48 -0
  228. package/src/model/dc/VsPpccControlKind.ts +7 -0
  229. package/src/model/dc/VsQpccControlKind.ts +5 -0
  230. package/src/model/domain/UnitMultiplier.ts +12 -12
  231. package/src/model/equivalents/EquivalentBranch.ts +10 -10
  232. package/src/model/extensions/amprion/model/AmprionModell.ts +92 -0
  233. package/src/model/extensions/amprion/project/AMPRIONConstructionProject.ts +174 -0
  234. package/src/model/extensions/amprion/project/AMPRIONConstructionProjectBundle.ts +89 -0
  235. package/src/model/extensions/amprion/project/AMPRIONConstructionProjectPlan.ts +64 -0
  236. package/src/model/extensions/amprion/project/AMPRIONErpProject.ts +21 -0
  237. package/src/model/extensions/amprion/project/AMPRIONErpProjectPhase.ts +89 -0
  238. package/src/model/extensions/amprion/project/AMPRIONErpProjectStructure.ts +36 -0
  239. package/src/model/extensions/amprion/project/AMPRIONProjectPriorityKind.ts +5 -0
  240. package/src/model/extensions/amprion/wires/AMPRIONSeriesCompensator.ts +53 -0
  241. package/src/model/extensions/enervance/core/EVTerminal.ts +1 -1
  242. package/src/model/extensions/enervance/operations/EVTerminalAction.ts +0 -1
  243. package/src/model/extensions/neplan-westnetz/assets/WNFacility.ts +0 -1
  244. package/src/model/generation/WindGeneratingUnit.ts +73 -0
  245. package/src/model/model/Model.ts +131 -7
  246. package/src/model/wires/ACLineSegment.ts +244 -228
  247. package/src/model/wires/AsynchronousMachine.ts +38 -1
  248. package/src/model/wires/Disconnector.ts +1 -1
  249. package/src/model/wires/EnergySource.ts +256 -222
  250. package/src/model/wires/SeriesCompensator.ts +145 -19
  251. package/src/util/util-create.ts +2 -0
  252. package/src/util/util-topology.ts +18 -7
  253. package/test/apache-jena-fuseki-interface/{apache-jena-fuseki-neplan.tests.spec.ts → apache-jena-fuseki-neplan-1.tests.sp-ec.ts} +0 -26
  254. package/test/apache-jena-fuseki-interface/apache-jena-fuseki-neplan-2.tests.spec.ts +255 -0
  255. package/test/apache-jena-fuseki-interface/data/xml/finnentrop/Finnentrop_Rootnet_Area 1_EQ_V1.xml +20867 -0
  256. package/test/apache-jena-fuseki-interface/data/xml/finnentrop/Finnentrop_Rootnet_Area 1_SSH_V1.xml +3784 -0
  257. package/test/apache-jena-fuseki-interface/data/xml/ruhrau-katharina/Ruhrau_Katharina_Rootnet_Area 1_EQ_V1.xml +42546 -0
  258. package/test/apache-jena-fuseki-interface/data/xml/ruhrau-katharina/Ruhrau_Katharina_Rootnet_Area 1_SSH_V1.xml +10101 -0
  259. package/test/apache-jena-fuseki-interface/data/xml/ruhrau-katharina/Ruhrau_Katharina_Rootnet_Area 1_SV_V1.xml +6229 -0
  260. package/test/integral7-converter/integral7-converter.tests.spec.ts +12 -3
  261. package/test/power-system-data-model-converter/power-system-data-model-converter.tests.spec.ts +1 -1
  262. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/run/system/tdb.lock +0 -1
@@ -8,7 +8,6 @@ const utils_1 = require("../../util/utils");
8
8
  const integral_prefix_1 = require("./config/integral-prefix");
9
9
  const utils_2 = require("./utils");
10
10
  const utils_trafo3w_1 = require("./utils-trafo3w");
11
- const generation_unit_fuel_types_1 = require("./config/generation-unit-fuel-types");
12
11
  const integral_sql_1 = require("./sql/integral.sql");
13
12
  const path_1 = tslib_1.__importDefault(require("path"));
14
13
  const fs_1 = tslib_1.__importDefault(require("fs"));
@@ -30,8 +29,22 @@ const Leitung_1 = require("./model/integral/Leitung");
30
29
  const TapChangerInfo_1 = require("../../model/assetinfo/TapChangerInfo");
31
30
  const AMPRIONBay_1 = require("../../model/extensions/amprion/core/AMPRIONBay");
32
31
  const AMPRIONConnectivityNode_1 = require("../../model/extensions/amprion/core/AMPRIONConnectivityNode");
32
+ const AMPRIONSeriesCompensator_1 = require("../../model/extensions/amprion/wires/AMPRIONSeriesCompensator");
33
+ const CsConverter_1 = require("../../model/dc/CsConverter");
34
+ const DCConverterUnit_1 = require("../../model/dc/DCConverterUnit");
35
+ const DCNode_1 = require("../../model/dc/DCNode");
36
+ const DCLine_1 = require("../../model/dc/DCLine");
37
+ const ACDCConverterDCTerminal_1 = require("../../model/dc/ACDCConverterDCTerminal");
38
+ const DCTerminal_1 = require("../../model/dc/DCTerminal");
39
+ const DCLineSegment_1 = require("../../model/dc/DCLineSegment");
40
+ const DCConverterOperatingModeKind_1 = require("../../model/dc/DCConverterOperatingModeKind");
41
+ const VsConverter_1 = require("../../model/dc/VsConverter");
42
+ const CsOperatingModeKind_1 = require("../../model/dc/CsOperatingModeKind");
43
+ const VsPpccControlKind_1 = require("../../model/dc/VsPpccControlKind");
44
+ const VsQpccControlKind_1 = require("../../model/dc/VsQpccControlKind");
33
45
  class ConverterIntegral7 {
34
46
  constructor() {
47
+ this.deafultUn = 110;
35
48
  this.integralID2UUID = new Map();
36
49
  this.UUID2IntegralID = new Map();
37
50
  this.limit = 100;
@@ -52,10 +65,10 @@ class ConverterIntegral7 {
52
65
  this.knotenSoIDs = [];
53
66
  this.knotenSfIDs = [];
54
67
  this.leitungsIDs = [];
55
- this.trafo2WIDs = [];
56
68
  this.memoryObjects = new Map();
57
69
  this.leitungAnschlussKnotenIDs = new Set();
58
70
  this.knotenSpannung = new Map();
71
+ this.substationVoltagelevels = new Map();
59
72
  this.cimModel = new __1.Model();
60
73
  this.availableTableNames = [];
61
74
  }
@@ -68,6 +81,9 @@ class ConverterIntegral7 {
68
81
  yield this.getAvailableTableNames(mySqlConfig.database);
69
82
  this.standortAnzahl = yield this.queryObjectCount(integral_sql_1.Integral7TableNames.STANDORT);
70
83
  this.leitungsAnzahl = yield this.queryObjectCount(integral_sql_1.Integral7TableNames.LEITUNG);
84
+ this.hgueLeitungsAnzahl = yield this.queryObjectCount(integral_sql_1.Integral7TableNames.HGUE_LEITUNG);
85
+ this.ersatzlaengszweigAnzahl = yield this.queryObjectCount(integral_sql_1.Integral7TableNames.ERSATZLAENGSZWEIG);
86
+ this.laengsdrosselAnzahl = yield this.queryObjectCount(integral_sql_1.Integral7TableNames.LAENGSDROSSEL);
71
87
  this.trafo2WAnzahl = yield this.queryObjectCount(integral_sql_1.Integral7TableNames.TRAFO2W);
72
88
  this.trafo3WAnzahl = yield this.queryObjectCount(integral_sql_1.Integral7TableNames.TRAFO3W);
73
89
  yield this.queryAnschlussIDs();
@@ -79,11 +95,10 @@ class ConverterIntegral7 {
79
95
  }));
80
96
  });
81
97
  }
82
- start() {
98
+ convert(energyTypesConfig, tempDirPath) {
83
99
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
84
100
  return new Promise((resolve, reject) => tslib_1.__awaiter(this, void 0, void 0, function* () {
85
101
  try {
86
- const tempDirPath = yield utils_2.createTempDirPath();
87
102
  const filePathEQ = path_1.default.join(tempDirPath, 'eq.xml');
88
103
  const writeStreamEQ = fs_1.default.createWriteStream(filePathEQ);
89
104
  const xmlWriterEQ = new xml_writer_1.default(true, (string, encoding) => {
@@ -120,7 +135,7 @@ class ConverterIntegral7 {
120
135
  const modelSVUUID = __1.generateUUID();
121
136
  const profilesSV = [__1.RDF_XML.SV_OPER_PROFILE_URI];
122
137
  this.cimModel.toCIMXML(xmlWriterSV, modelSVUUID, profilesSV, [modelEQUUID, modelSSHUUID], __1.RDF_XML.AMP_MAS);
123
- const filePathAmpI7 = path_1.default.join(tempDirPath, 'AMP_I7.xml');
138
+ const filePathAmpI7 = path_1.default.join(tempDirPath, 'amp_i7.xml');
124
139
  const writeStreamAmpI7 = fs_1.default.createWriteStream(filePathAmpI7);
125
140
  const xmlWriterAmpI7 = new xml_writer_1.default(true, (string, encoding) => {
126
141
  writeStreamAmpI7.write(string, encoding);
@@ -188,7 +203,10 @@ class ConverterIntegral7 {
188
203
  yield this.convertEinspeisungen([...knotenSoIDs, ...this.knotenSfIDs]);
189
204
  }
190
205
  if (knotenSoIDs.length > 0 || this.knotenSfIDs.length > 0) {
191
- yield this.convertGeneratoren([...knotenSoIDs, ...this.knotenSfIDs]);
206
+ yield this.convertGeneratoren([...knotenSoIDs, ...this.knotenSfIDs], energyTypesConfig);
207
+ }
208
+ if (knotenSoIDs.length > 0 || this.knotenSfIDs.length > 0) {
209
+ yield this.convertAsynchronmotor([...knotenSoIDs, ...this.knotenSfIDs]);
192
210
  }
193
211
  const containerStarreVerbindungen = [...this.schaltfeldIDs, ...this.querkupplungIDs, ...this.laengskupplungIDs];
194
212
  if (containerStarreVerbindungen.length > 0) {
@@ -203,6 +221,12 @@ class ConverterIntegral7 {
203
221
  if (containerStarreVerbindungen.length > 0) {
204
222
  yield this.convertLeistungsschalter(containerStarreVerbindungen);
205
223
  }
224
+ if (knotenSoIDs.length > 0 || this.knotenSfIDs.length > 0) {
225
+ yield this.convertCsConverterDC([...knotenSoIDs, ...this.knotenSfIDs]);
226
+ }
227
+ if (knotenSoIDs.length > 0 || this.knotenSfIDs.length > 0) {
228
+ yield this.convertVsConverterDC([...knotenSoIDs, ...this.knotenSfIDs]);
229
+ }
206
230
  yield this.convertSchemaStandorte(standortIDs);
207
231
  if (knotenSoIDs.length > 0) {
208
232
  yield this.convertSchemaKnotenSo(knotenSoIDs);
@@ -228,6 +252,7 @@ class ConverterIntegral7 {
228
252
  this.objectToCIMXML(xmlWriterEQ, this.cimModel.disconnectors, __1.RDF_XML.PROFILE_EQ);
229
253
  this.objectToCIMXML(xmlWriterEQ, this.cimModel.breakers, __1.RDF_XML.PROFILE_EQ);
230
254
  this.objectToCIMXML(xmlWriterEQ, this.cimModel.synchronousMachine, __1.RDF_XML.PROFILE_EQ);
255
+ this.objectToCIMXML(xmlWriterEQ, this.cimModel.asynchronousMachine, __1.RDF_XML.PROFILE_EQ);
231
256
  this.objectToCIMXML(xmlWriterEQ, this.cimModel.generatingUnit, __1.RDF_XML.PROFILE_EQ);
232
257
  this.objectToCIMXML(xmlWriterEQ, this.cimModel.thermalGeneratingUnit, __1.RDF_XML.PROFILE_EQ);
233
258
  this.objectToCIMXML(xmlWriterEQ, this.cimModel.nuclearGeneratingUnit, __1.RDF_XML.PROFILE_EQ);
@@ -261,6 +286,7 @@ class ConverterIntegral7 {
261
286
  this.cimModel.energyConsumers.clear();
262
287
  this.cimModel.energySources.clear();
263
288
  this.cimModel.synchronousMachine.clear();
289
+ this.cimModel.asynchronousMachine.clear();
264
290
  this.cimModel.generatingUnit.clear();
265
291
  this.cimModel.thermalGeneratingUnit.clear();
266
292
  this.cimModel.nuclearGeneratingUnit.clear();
@@ -295,10 +321,26 @@ class ConverterIntegral7 {
295
321
  this.integralNsgKnotenSo.clear();
296
322
  console.log(`Offset ${offset} done`);
297
323
  }
324
+ const restCountELZ = this.ersatzlaengszweigAnzahl < this.limit ? this.ersatzlaengszweigAnzahl : (this.ersatzlaengszweigAnzahl % this.limit);
325
+ const intervalCountELZ = (this.ersatzlaengszweigAnzahl - restCountELZ) / this.limit;
326
+ const numberOfIntervalsELZ = restCountELZ > 0 ? intervalCountELZ + 1 : intervalCountELZ;
327
+ console.log('Convert Ersatzlaengszweige ' + this.ersatzlaengszweigAnzahl);
328
+ for (let i = 0; i < numberOfIntervalsELZ; i++) {
329
+ const offset = i * this.limit;
330
+ const currentLimit = (i + 1 === numberOfIntervalsELZ && restCountELZ > 0) ? restCountELZ : this.limit;
331
+ yield this.convertErsatzLaengszweige(currentLimit, offset);
332
+ this.objectToCIMXML(xmlWriterEQ, this.cimModel.equivalentBranches, __1.RDF_XML.PROFILE_EQ);
333
+ this.objectToCIMXML(xmlWriterEQ, this.cimModel.terminals, __1.RDF_XML.PROFILE_EQ);
334
+ this.objectToCIMXML(xmlWriterSV, this.cimModel.terminals, __1.RDF_XML.PROFILE_SSH);
335
+ this.cimModel.equivalentBranches.clear();
336
+ this.cimModel.connectivityNodes.clear();
337
+ this.cimModel.terminals.clear();
338
+ this.cimModel.objects.clear();
339
+ }
298
340
  const restCountLeitung = this.leitungsAnzahl < this.limit ? this.leitungsAnzahl : (this.leitungsAnzahl % this.limit);
299
341
  const intervalCountLeitung = (this.leitungsAnzahl - restCountLeitung) / this.limit;
300
342
  const numberOfIntervalsLeitung = restCountLeitung > 0 ? intervalCountLeitung + 1 : intervalCountLeitung;
301
- console.log('Convert ACLineSegments ' + this.leitungsAnzahl + ' restCountLeitung ' + restCountLeitung);
343
+ console.log('Convert ACLineSegments ' + this.leitungsAnzahl);
302
344
  for (let i = 0; i < numberOfIntervalsLeitung; i++) {
303
345
  const offset = i * this.limit;
304
346
  const currentLimit = (i + 1 === numberOfIntervalsLeitung && restCountLeitung > 0) ? restCountLeitung : this.limit;
@@ -309,6 +351,7 @@ class ConverterIntegral7 {
309
351
  this.objectToCIMXML(xmlWriterEQ, this.cimModel.acLineSegments, __1.RDF_XML.PROFILE_EQ);
310
352
  this.objectToCIMXML(xmlWriterEQ, this.cimModel.terminals, __1.RDF_XML.PROFILE_EQ);
311
353
  this.objectToCIMXML(xmlWriterSV, this.cimModel.terminals, __1.RDF_XML.PROFILE_SSH);
354
+ this.objectToCIMXML(xmlWriterAmpI7, this.cimModel.acLineSegments, __1.RDF_XML.PROFILE_AMPI7);
312
355
  this.cimModel.acLineSegments.clear();
313
356
  this.cimModel.connectivityNodes.clear();
314
357
  this.cimModel.terminals.clear();
@@ -317,6 +360,42 @@ class ConverterIntegral7 {
317
360
  this.integralLeitungen.clear();
318
361
  this.leitungsIDs.length = 0;
319
362
  }
363
+ const restCountHgueLeitung = this.hgueLeitungsAnzahl < this.limit ? this.hgueLeitungsAnzahl : (this.hgueLeitungsAnzahl % this.limit);
364
+ const intervalCountHgueLeitung = (this.hgueLeitungsAnzahl - restCountHgueLeitung) / this.limit;
365
+ const numberOfIntervalsHgueLeitung = restCountHgueLeitung > 0 ? intervalCountHgueLeitung + 1 : intervalCountHgueLeitung;
366
+ console.log('Convert ACLineSegments ' + this.hgueLeitungsAnzahl);
367
+ for (let i = 0; i < numberOfIntervalsHgueLeitung; i++) {
368
+ const offset = i * this.limit;
369
+ const currentLimit = (i + 1 === numberOfIntervalsHgueLeitung && restCountHgueLeitung > 0) ? restCountHgueLeitung : this.limit;
370
+ yield this.convertDCLines(currentLimit, offset);
371
+ this.objectToCIMXML(xmlWriterEQ, this.cimModel.dcLines, __1.RDF_XML.PROFILE_EQ);
372
+ this.objectToCIMXML(xmlWriterEQ, this.cimModel.dcLineSegment, __1.RDF_XML.PROFILE_EQ);
373
+ this.objectToCIMXML(xmlWriterEQ, this.cimModel.dcTerminals, __1.RDF_XML.PROFILE_EQ);
374
+ this.cimModel.dcLines.clear();
375
+ this.cimModel.dcLineSegment.clear();
376
+ this.cimModel.dcTerminals.clear();
377
+ }
378
+ const restCountLD = this.laengsdrosselAnzahl < this.limit ? this.laengsdrosselAnzahl : (this.laengsdrosselAnzahl % this.limit);
379
+ const intervalCountLD = (this.laengsdrosselAnzahl - restCountLD) / this.limit;
380
+ const numberOfIntervalsLD = restCountLD > 0 ? intervalCountLD + 1 : intervalCountLD;
381
+ console.log('Convert Längsdrossel ' + this.laengsdrosselAnzahl);
382
+ for (let i = 0; i < numberOfIntervalsLD; i++) {
383
+ const offset = i * this.limit;
384
+ const currentLimit = (i + 1 === numberOfIntervalsLD && restCountLD > 0) ? restCountLD : this.limit;
385
+ yield this.convertLaengsdrosseln(currentLimit, offset);
386
+ console.log('Export Längsdrossel ' + this.cimModel.seriesCompensators.size);
387
+ this.objectToCIMXML(xmlWriterEQ, this.cimModel.seriesCompensators, __1.RDF_XML.PROFILE_EQ);
388
+ this.objectToCIMXML(xmlWriterEQ, this.cimModel.operationalLimitSets, __1.RDF_XML.PROFILE_EQ);
389
+ this.objectToCIMXML(xmlWriterEQ, this.cimModel.currentLimits, __1.RDF_XML.PROFILE_EQ);
390
+ this.objectToCIMXML(xmlWriterEQ, this.cimModel.terminals, __1.RDF_XML.PROFILE_EQ);
391
+ this.objectToCIMXML(xmlWriterSV, this.cimModel.terminals, __1.RDF_XML.PROFILE_SSH);
392
+ this.objectToCIMXML(xmlWriterAmpI7, this.cimModel.seriesCompensators, __1.RDF_XML.PROFILE_AMPI7);
393
+ this.cimModel.seriesCompensators.clear();
394
+ this.cimModel.operationalLimitSets.clear();
395
+ this.cimModel.currentLimits.clear();
396
+ this.cimModel.terminals.clear();
397
+ this.cimModel.objects.clear();
398
+ }
320
399
  const restCountTrafo2W = this.trafo2WAnzahl < this.limit ? this.trafo2WAnzahl : (this.trafo2WAnzahl % this.limit);
321
400
  const intervalCountTrafo2W = (this.trafo2WAnzahl - restCountTrafo2W) / this.limit;
322
401
  const numberOfIntervalsTrafo2W = restCountTrafo2W > 0 ? intervalCountTrafo2W + 1 : intervalCountTrafo2W;
@@ -376,18 +455,32 @@ class ConverterIntegral7 {
376
455
  this.cimModel.objects.clear();
377
456
  }
378
457
  const memoryTerminals = new Map();
379
- for (const value of this.memoryObjects.values()) {
458
+ for (const entry of this.memoryObjects.entries()) {
459
+ const value = entry[1];
380
460
  if (value instanceof __1.Terminal) {
381
461
  const terminal = value;
382
462
  if (terminal.conductingEquipment || terminal.conductingEquipmentUUID) {
383
463
  memoryTerminals.set(value.mrid, value);
384
464
  }
465
+ else {
466
+ console.log(`Terminal ohne conductingEquipment UUID ${terminal.mrid} shortName ${terminal.shortName} ID | ${entry[0]}`);
467
+ }
385
468
  }
386
469
  }
387
470
  this.objectToCIMXML(xmlWriterEQ, this.cimModel.operationalLimitTypes, __1.RDF_XML.PROFILE_EQ);
388
471
  this.objectToCIMXML(xmlWriterEQ, this.cimModel.baseVoltages, __1.RDF_XML.PROFILE_EQ);
389
472
  this.objectToCIMXML(xmlWriterEQ, memoryTerminals, __1.RDF_XML.PROFILE_EQ);
390
473
  this.objectToCIMXML(xmlWriterSSH, memoryTerminals, __1.RDF_XML.PROFILE_SSH);
474
+ this.objectToCIMXML(xmlWriterEQ, this.cimModel.dcConverterUnit, __1.RDF_XML.PROFILE_EQ);
475
+ this.objectToCIMXML(xmlWriterEQ, this.cimModel.vsConverter, __1.RDF_XML.PROFILE_EQ);
476
+ this.objectToCIMXML(xmlWriterEQ, this.cimModel.csConverter, __1.RDF_XML.PROFILE_EQ);
477
+ this.objectToCIMXML(xmlWriterEQ, this.cimModel.acDCConverterDCTerminals, __1.RDF_XML.PROFILE_EQ);
478
+ this.objectToCIMXML(xmlWriterEQ, this.cimModel.dcNodes, __1.RDF_XML.PROFILE_EQ);
479
+ this.cimModel.dcConverterUnit.clear();
480
+ this.cimModel.vsConverter.clear();
481
+ this.cimModel.csConverter.clear();
482
+ this.cimModel.acDCConverterDCTerminals.clear();
483
+ this.cimModel.dcNodes.clear();
391
484
  this.objectToCIMXML(xmlWriterAmpI7, this.cimModel.psrTypes, __1.RDF_XML.PROFILE_AMPI7);
392
485
  this.cimModel.operationalLimitTypes.clear();
393
486
  this.cimModel.baseVoltages.clear();
@@ -415,7 +508,6 @@ class ConverterIntegral7 {
415
508
  utils_2.createWriteStreamPromise(writeStreamAmpI7),
416
509
  ]);
417
510
  const zip = new jszip_1.default();
418
- const filePathZip = path_1.default.join(tempDirPath, 'cgmes.zip');
419
511
  const readStreamEq = fs_1.default.createReadStream(filePathEQ);
420
512
  zip.file('EQ.xml', readStreamEq);
421
513
  const readStreamDl = fs_1.default.createReadStream(filePathDL);
@@ -426,27 +518,34 @@ class ConverterIntegral7 {
426
518
  zip.file('SV.xml', readStreamSV);
427
519
  const readStreamAmpI7 = fs_1.default.createReadStream(filePathAmpI7);
428
520
  zip.file('AMP_I7.xml', readStreamAmpI7);
429
- yield utils_2.writeZipFile(zip, filePathZip);
430
- resolve({ status: 'successful', message: 'ok' });
431
- console.log('path ' + tempDirPath);
521
+ resolve(yield utils_2.generateNodeStream(zip));
522
+ reject({ status: 'error', message: 'GenerateNodeStream failed.' });
432
523
  }
433
524
  catch (e) {
434
- console.log(e);
435
525
  reject({ status: 'error', message: e.toString() });
436
526
  }
437
527
  }));
438
528
  });
439
529
  }
440
- end() {
530
+ release(tempDirPath) {
441
531
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
442
532
  return new Promise((resolve, reject) => tslib_1.__awaiter(this, void 0, void 0, function* () {
443
533
  try {
444
534
  this.closeConnection();
445
535
  this.cimModel.purgeData();
536
+ if (tempDirPath) {
537
+ try {
538
+ fs_1.default.rmdirSync(tempDirPath, { recursive: true });
539
+ console.log(`${path_1.default} is deleted!`);
540
+ }
541
+ catch (err) {
542
+ console.error(`Error while deleting ${path_1.default}.`);
543
+ }
544
+ }
446
545
  resolve({ status: 'successful', message: 'ok' });
447
546
  }
448
547
  catch (e) {
449
- reject({ status: 'error', message: e.toString() });
548
+ reject({ status: 'error', message: JSON.stringify(e) });
450
549
  }
451
550
  }));
452
551
  });
@@ -467,16 +566,21 @@ class ConverterIntegral7 {
467
566
  queryObjectCount(tableName) {
468
567
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
469
568
  return new Promise((resolve, reject) => {
470
- this.queryFunctionWrapper(`SELECT COUNT(id) FROM ${tableName}`).then(results => {
471
- try {
472
- for (const result of results) {
473
- return resolve(Number(result[`COUNT(id)`]));
569
+ if (this.isTableAvailable(tableName)) {
570
+ this.queryFunctionWrapper(`SELECT COUNT(id) FROM ${tableName}`).then(results => {
571
+ try {
572
+ for (const result of results) {
573
+ return resolve(Number(result[`COUNT(id)`]));
574
+ }
474
575
  }
475
- }
476
- catch (e) {
477
- return reject(0);
478
- }
479
- });
576
+ catch (e) {
577
+ return reject(0);
578
+ }
579
+ });
580
+ }
581
+ else {
582
+ return resolve(0);
583
+ }
480
584
  });
481
585
  });
482
586
  }
@@ -488,6 +592,11 @@ class ConverterIntegral7 {
488
592
  this.leitungAnschlussKnotenIDs.add(result[`aknoten`]);
489
593
  this.leitungAnschlussKnotenIDs.add(result[`eknoten`]);
490
594
  }
595
+ results = yield this.queryFunctionWrapper(`SELECT DISTINCT anetzobjekt, enetzobjekt FROM ${integral_sql_1.Integral7TableNames[integral_sql_1.I7Objects.HGUE_LEITUNG]}`);
596
+ for (const result of results) {
597
+ this.leitungAnschlussKnotenIDs.add(result[`anetzobjekt`]);
598
+ this.leitungAnschlussKnotenIDs.add(result[`enetzobjekt`]);
599
+ }
491
600
  results = yield this.queryFunctionWrapper(`SELECT DISTINCT aknoten, eknoten FROM ${integral_sql_1.Integral7TableNames[integral_sql_1.I7Objects.TRAFO2W]}`);
492
601
  for (const result of results) {
493
602
  this.leitungAnschlussKnotenIDs.add(result[`aknoten`]);
@@ -498,6 +607,16 @@ class ConverterIntegral7 {
498
607
  this.leitungAnschlussKnotenIDs.add(result[`aknoten`]);
499
608
  this.leitungAnschlussKnotenIDs.add(result[`eknoten`]);
500
609
  }
610
+ results = yield this.queryFunctionWrapper(`SELECT DISTINCT aknoten, eknoten FROM ${integral_sql_1.Integral7TableNames[integral_sql_1.I7Objects.LAENGSDROSSEL]}`);
611
+ for (const result of results) {
612
+ this.leitungAnschlussKnotenIDs.add(result[`aknoten`]);
613
+ this.leitungAnschlussKnotenIDs.add(result[`eknoten`]);
614
+ }
615
+ results = yield this.queryFunctionWrapper(`SELECT DISTINCT aknoten, eknoten FROM ${integral_sql_1.Integral7TableNames[integral_sql_1.I7Objects.ERSATZLAENGSZWEIG]}`);
616
+ for (const result of results) {
617
+ this.leitungAnschlussKnotenIDs.add(result[`aknoten`]);
618
+ this.leitungAnschlussKnotenIDs.add(result[`eknoten`]);
619
+ }
501
620
  }
502
621
  catch (e) {
503
622
  console.error("ERROR:" + e);
@@ -561,6 +680,7 @@ class ConverterIntegral7 {
561
680
  subregion = utils_1.createIfNotExitsSubGeoregionByName(this.cimModel, 'Deutschland', region);
562
681
  }
563
682
  substation.subGeographicalRegion = subregion;
683
+ this.substationVoltagelevels.set(i7Data.id, []);
564
684
  this.cimModel.addSubstation(substation);
565
685
  this.integralID2UUID.set(i7Data.id, substation.mrid);
566
686
  utils_2.putUUIDtoI7Ids(substation.mrid, i7Data.id, this.UUID2IntegralID);
@@ -586,7 +706,8 @@ class ConverterIntegral7 {
586
706
  connectivityNode.connectivityNodeContainer = vl;
587
707
  connectivityNode.nodeNumber = i7Data.id_psse_cape;
588
708
  vl.addConnectivityNode(connectivityNode);
589
- const baseVoltage = __1.createBaseVoltageIfNotExists(this.cimModel, i7Data.un);
709
+ const un = utils_2.getU(i7Data.un, this.deafultUn);
710
+ const baseVoltage = __1.createBaseVoltageIfNotExists(this.cimModel, un);
590
711
  vl.baseVoltage = baseVoltage;
591
712
  const substation = this.cimModel.getSubstation(this.integralID2UUID.get(i7Data.standort));
592
713
  if (substation) {
@@ -624,7 +745,8 @@ class ConverterIntegral7 {
624
745
  const result = yield this.queryFunctionWrapper(integral_sql_1.getNetzQuery(integral_sql_1.I7Objects.SCHALTANLAGE, 0, 0, standortIDs));
625
746
  for (const i7Data of result) {
626
747
  const vl = new __1.VoltageLevel(__1.getUUID(i7Data.guid), utils_2.getName(i7Data), i7Data.kurzname);
627
- const baseVoltage = __1.createBaseVoltageIfNotExists(this.cimModel, i7Data.un);
748
+ const un = utils_2.getU(i7Data.un, this.deafultUn);
749
+ const baseVoltage = __1.createBaseVoltageIfNotExists(this.cimModel, un);
628
750
  vl.baseVoltageUUID = baseVoltage.mrid;
629
751
  this.cimModel.addVoltageLevel(vl);
630
752
  this.integralID2UUID.set(i7Data.id, vl.mrid);
@@ -641,6 +763,11 @@ class ConverterIntegral7 {
641
763
  const schaltanlage = new Schaltanlage_1.SchaltanlageImpl(i7Data);
642
764
  schaltanlage.addStandort(this.integralStandorte.get(schaltanlage.standortid));
643
765
  this.integralSchaltanlagen.set(i7Data.id, schaltanlage);
766
+ const subVlData = this.substationVoltagelevels.get(i7Data.standort);
767
+ subVlData.push({
768
+ un: i7Data.un,
769
+ vlUUID: vl.mrid,
770
+ });
644
771
  }
645
772
  else {
646
773
  console.log(`VoltageLevel ${i7Data.id} ${vl.mrid} besitzt keine Umspannanlage.`);
@@ -881,7 +1008,7 @@ class ConverterIntegral7 {
881
1008
  }
882
1009
  });
883
1010
  }
884
- convertGeneratoren(knotenSfIDs) {
1011
+ convertGeneratoren(knotenSfIDs, energyTypesConfig) {
885
1012
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
886
1013
  if (this.isTableAvailable(integral_sql_1.Integral7TableNames.GENERATOR)) {
887
1014
  const result = yield this.queryFunctionWrapper(integral_sql_1.getNetzQuery(integral_sql_1.I7Objects.GENERATOR, 0, 0, knotenSfIDs));
@@ -937,7 +1064,7 @@ class ConverterIntegral7 {
937
1064
  }
938
1065
  }
939
1066
  synchronousMachine.regulatingControlUUID = regulatingControl.mrid;
940
- const generatingUnitConfig = generation_unit_fuel_types_1.FUEL_TYPE_CONFIG[i7Data.nameprimaertyp];
1067
+ const generatingUnitConfig = energyTypesConfig[i7Data.nameprimaertyp];
941
1068
  let generatingUnit;
942
1069
  if (generatingUnitConfig) {
943
1070
  switch (generatingUnitConfig.class) {
@@ -955,12 +1082,18 @@ class ConverterIntegral7 {
955
1082
  case 'WindGeneratingUnit': {
956
1083
  generatingUnit = new __1.WindGeneratingUnit(__1.getUUID(''), 'Generator_' + i7Data.bezeichner, i7Data.kurzname, i7Data.nameprimaertyp);
957
1084
  switch (generatingUnitConfig.fuelType) {
958
- case 'onshore':
1085
+ case 'onshore': {
959
1086
  generatingUnit.windGenUnitType = __1.WindGenUnitKind.onshore;
960
1087
  break;
961
- case 'offshore':
1088
+ }
1089
+ case 'offshore': {
962
1090
  generatingUnit.windGenUnitType = __1.WindGenUnitKind.offshore;
963
1091
  break;
1092
+ }
1093
+ default: {
1094
+ generatingUnit.windGenUnitType = __1.WindGenUnitKind.onshore;
1095
+ break;
1096
+ }
964
1097
  }
965
1098
  break;
966
1099
  }
@@ -1415,6 +1548,69 @@ class ConverterIntegral7 {
1415
1548
  }
1416
1549
  });
1417
1550
  }
1551
+ convertErsatzLaengszweige(limit, offset) {
1552
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
1553
+ if (this.isTableAvailable(integral_sql_1.Integral7TableNames.ERSATZLAENGSZWEIG)) {
1554
+ const result = yield this.queryFunctionWrapper(integral_sql_1.getNetzQuery(integral_sql_1.I7Objects.ERSATZLAENGSZWEIG, limit, offset, []));
1555
+ for (const i7Data of result) {
1556
+ const i7Schluessel = integral_prefix_1.ERSATZLAENGSZWEIG_PRAEFIX +
1557
+ utils_2.ueberpruefeZeichenkette(i7Data.ukz) +
1558
+ integral_prefix_1.MITTIGER_PUNKT +
1559
+ utils_2.ueberpruefeZeichenkette(i7Data.kurzname) +
1560
+ integral_prefix_1.MITTIGER_PUNKT +
1561
+ utils_2.ueberpruefeZeichenkette(i7Data.bezeichner) +
1562
+ integral_prefix_1.MITTIGER_PUNKT +
1563
+ utils_2.ueberpruefeZeichenkette(i7Data.stkabname);
1564
+ const equivalentBranch = new __1.EquivalentBranch(__1.getUUID(i7Data.guid), i7Data.bezeichner, i7Data.kurzname, i7Schluessel);
1565
+ equivalentBranch.negativeR12 = isNaN(i7Data.r12_lfl) ? 0.1 : i7Data.r12_lfl;
1566
+ equivalentBranch.negativeR21 = isNaN(i7Data.r21_lfl) ? 0.1 : i7Data.r21_lfl;
1567
+ equivalentBranch.negativeX12 = isNaN(i7Data.x12_lfl) ? 0.1 : i7Data.x12_lfl;
1568
+ equivalentBranch.negativeX21 = isNaN(i7Data.x21_lfl) ? 0.1 : i7Data.x21_lfl;
1569
+ equivalentBranch.positiveR12 = isNaN(i7Data.r12_lfl) ? 0.1 : i7Data.r12_lfl;
1570
+ equivalentBranch.positiveR21 = isNaN(i7Data.r21_lfl) ? 0.1 : i7Data.r21_lfl;
1571
+ equivalentBranch.positiveX12 = isNaN(i7Data.x12_lfl) ? 0.1 : i7Data.x12_lfl;
1572
+ equivalentBranch.positiveX21 = isNaN(i7Data.x21_lfl) ? 0.1 : i7Data.x21_lfl;
1573
+ equivalentBranch.r = equivalentBranch.negativeR12;
1574
+ equivalentBranch.x = equivalentBranch.negativeX21;
1575
+ equivalentBranch.r21 = equivalentBranch.positiveR12;
1576
+ equivalentBranch.x21 = equivalentBranch.negativeX21;
1577
+ equivalentBranch.zeroR12 = isNaN(i7Data.r12_ks) ? 0.1 : i7Data.r12_ks;
1578
+ equivalentBranch.zeroR21 = isNaN(i7Data.r12_ks) ? 0.1 : i7Data.r12_ks;
1579
+ equivalentBranch.zeroX12 = isNaN(i7Data.x12_ks) ? 0.1 : i7Data.x12_ks;
1580
+ equivalentBranch.zeroX21 = isNaN(i7Data.x12_ks) ? 0.1 : i7Data.x12_ks;
1581
+ const ur1 = utils_2.getU(i7Data.ur1, this.deafultUn);
1582
+ const ur2 = utils_2.getU(i7Data.ur2, this.deafultUn);
1583
+ const baseVoltageUr1 = __1.createBaseVoltageIfNotExists(this.cimModel, ur1);
1584
+ const baseVoltageUr2 = __1.createBaseVoltageIfNotExists(this.cimModel, ur2);
1585
+ if (baseVoltageUr1) {
1586
+ equivalentBranch.baseVoltage = baseVoltageUr1;
1587
+ }
1588
+ else if (baseVoltageUr2) {
1589
+ equivalentBranch.baseVoltage = baseVoltageUr2;
1590
+ }
1591
+ const start = this.memoryObjects.get(i7Data.aknoten);
1592
+ if (start) {
1593
+ __1.createConnection(this.cimModel, equivalentBranch, start, __1.PhaseCode.ABC, 1);
1594
+ }
1595
+ else {
1596
+ console.log(`Leitung ${i7Data.id} ${equivalentBranch.mrid} besitzt keinen Anfangsknoten. ${i7Data.aknoten} ${this.integralID2UUID.get(i7Data.aknoten)}`);
1597
+ }
1598
+ const target = this.memoryObjects.get(i7Data.eknoten);
1599
+ if (target) {
1600
+ __1.createConnection(this.cimModel, equivalentBranch, target, __1.PhaseCode.ABC, 2);
1601
+ }
1602
+ else {
1603
+ console.log(`Leitung ${i7Data.id} ${equivalentBranch.mrid} besitzt keinen Zielknoten.`);
1604
+ }
1605
+ this.cimModel.addEquivalentBranch(equivalentBranch);
1606
+ this.integralID2UUID.set(i7Data.id, equivalentBranch.mrid);
1607
+ }
1608
+ }
1609
+ else {
1610
+ console.log(`Tabelle ${integral_sql_1.Integral7TableNames.ERSATZLAENGSZWEIG} ist nicht vorhanden.`);
1611
+ }
1612
+ });
1613
+ }
1418
1614
  convertStromkreise() {
1419
1615
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
1420
1616
  if (this.isTableAvailable(integral_sql_1.Integral7TableNames.LEITUNG)) {
@@ -1527,7 +1723,7 @@ class ConverterIntegral7 {
1527
1723
  for (const i7Data of result) {
1528
1724
  const acLineSegment = this.cimModel.getACLineSegment(this.integralID2UUID.get(i7Data.leitung));
1529
1725
  if (acLineSegment) {
1530
- this.setACLineSegmentProperties(acLineSegment, i7Data, 'OverheadLine');
1726
+ this.setACLineSegmentProperties(acLineSegment, i7Data, 'Freileitung');
1531
1727
  }
1532
1728
  else {
1533
1729
  console.log(`Freileitung ${i7Data.id} besitzt kein Leitungsobjekt.`);
@@ -1542,7 +1738,7 @@ class ConverterIntegral7 {
1542
1738
  for (const i7Data of result) {
1543
1739
  const acLineSegment = this.cimModel.getACLineSegment(this.integralID2UUID.get(i7Data.leitung));
1544
1740
  if (acLineSegment) {
1545
- this.setACLineSegmentProperties(acLineSegment, i7Data, 'Cable');
1741
+ this.setACLineSegmentProperties(acLineSegment, i7Data, 'Kabel');
1546
1742
  }
1547
1743
  else {
1548
1744
  console.log(`Kabel ${i7Data.id} besitzt kein Leitungsobjekt.`);
@@ -1912,6 +2108,67 @@ class ConverterIntegral7 {
1912
2108
  }
1913
2109
  });
1914
2110
  }
2111
+ convertLaengsdrosseln(limit, offset) {
2112
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
2113
+ console.log('isTableAvailable ' + this.isTableAvailable(integral_sql_1.Integral7TableNames.LAENGSDROSSEL));
2114
+ if (this.isTableAvailable(integral_sql_1.Integral7TableNames.LAENGSDROSSEL)) {
2115
+ const result = yield this.queryFunctionWrapper(integral_sql_1.getNetzQuery(integral_sql_1.I7Objects.LAENGSDROSSEL, limit, offset, []));
2116
+ for (const i7Data of result) {
2117
+ const seriesCompensator = new AMPRIONSeriesCompensator_1.AMPRIONSeriesCompensator(__1.getUUID(i7Data.guid), utils_2.getName(i7Data), i7Data.id + '', i7Data.bezeichner);
2118
+ const start = this.memoryObjects.get(i7Data.aknoten);
2119
+ let startTerminal;
2120
+ if (start) {
2121
+ startTerminal = __1.createConnection(this.cimModel, seriesCompensator, start, __1.PhaseCode.ABC, 1);
2122
+ }
2123
+ else {
2124
+ console.log(`Längsdrossel ${i7Data.id} ${seriesCompensator.mrid} besitzt keinen Anfangsknoten.`);
2125
+ }
2126
+ const target = this.memoryObjects.get(i7Data.eknoten);
2127
+ let targetTerminal;
2128
+ if (target) {
2129
+ targetTerminal = __1.createConnection(this.cimModel, seriesCompensator, target, __1.PhaseCode.ABC, 2);
2130
+ }
2131
+ else {
2132
+ console.log(`Längsdrossel ${i7Data.id} ${seriesCompensator.mrid} besitzt keinen Zielknoten.`);
2133
+ }
2134
+ const ur = utils_2.getU(i7Data.ur, this.deafultUn);
2135
+ const baseVoltage = __1.createBaseVoltageIfNotExists(this.cimModel, ur);
2136
+ seriesCompensator.baseVoltage = baseVoltage;
2137
+ let ira = 100;
2138
+ if (i7Data.ir && i7Data.ir > 0) {
2139
+ ira = i7Data.ir;
2140
+ }
2141
+ const voltage = baseVoltage.nominalVoltage.value * 1000;
2142
+ const z = (i7Data.ukr / 100) * Math.pow(voltage, 2) / (voltage * ira * Math.sqrt(3));
2143
+ seriesCompensator.x = z;
2144
+ seriesCompensator.varistorRatedCurrent = ira;
2145
+ const terminal = startTerminal;
2146
+ if (terminal) {
2147
+ this.setConductingEquipmentCurrentLimit('Rating ' + seriesCompensator.name, terminal.mrid, ira);
2148
+ }
2149
+ else {
2150
+ console.log(`Längsdrossel ${i7Data.id} ${seriesCompensator.mrid} besitzt keine Terminalinstanz.`);
2151
+ }
2152
+ const substationUUID = this.integralID2UUID.get(i7Data.standort);
2153
+ const subVlData = this.substationVoltagelevels.get(i7Data.standort);
2154
+ const vlUUID = subVlData.find(elem => elem.un === i7Data.ur);
2155
+ if (vlUUID) {
2156
+ seriesCompensator.equipmentContainerUUID = vlUUID.vlUUID;
2157
+ }
2158
+ else {
2159
+ console.log(`Längsdrossel ${i7Data.id} besitzt kein VoltageLevel Ur ${i7Data.ur}.`);
2160
+ }
2161
+ const psrType = utils_1.createIfNotExitsPSRType(this.cimModel, 'Längsdrossel');
2162
+ seriesCompensator.psrTypeUUID = psrType.mrid;
2163
+ this.cimModel.addSeriesCompensator(seriesCompensator);
2164
+ this.integralID2UUID.set(i7Data.id, seriesCompensator.mrid);
2165
+ }
2166
+ }
2167
+ else {
2168
+ console.log(`Tabelle ${integral_sql_1.Integral7TableNames.LAENGSDROSSEL} ist nicht vorhanden.`);
2169
+ }
2170
+ });
2171
+ }
1915
2172
  convertTrenner3f(containerIDs) {
1916
2173
  var _a;
1917
2174
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
@@ -2044,6 +2301,245 @@ class ConverterIntegral7 {
2044
2301
  }
2045
2302
  });
2046
2303
  }
2304
+ convertCsConverterDC(knotenSfIDs) {
2305
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
2306
+ if (this.isTableAvailable(integral_sql_1.Integral7TableNames.HGUE_KOPFSTATION_KLASSISCH)) {
2307
+ const result = yield this.queryFunctionWrapper(integral_sql_1.getNetzQuery(integral_sql_1.I7Objects.HGUE_KOPFSTATION_KLASSISCH, 0, 0, knotenSfIDs));
2308
+ for (const i7Data of result) {
2309
+ const dcConverterUnit = new DCConverterUnit_1.DCConverterUnit(__1.generateUUID(), 'DCConverterUnit');
2310
+ const acConnectivityNode = this.cimModel.connectivityNodes.get(this.integralID2UUID.get(i7Data.anschluss));
2311
+ if (acConnectivityNode) {
2312
+ const equipmentContainer = utils_2.determineEquipmentContainer('Substation', this.cimModel, this.cimModel.getObject(acConnectivityNode.getConnectivityNodeContainerUUID()));
2313
+ if (equipmentContainer) {
2314
+ dcConverterUnit.name = `DCConverterUnit ${equipmentContainer.name}`;
2315
+ dcConverterUnit.setSubstation(equipmentContainer);
2316
+ }
2317
+ else {
2318
+ console.log(`DCConverterUnit ${i7Data.id} besitzt keinen EquipmentContainer.`);
2319
+ }
2320
+ }
2321
+ else {
2322
+ console.log(`DCConverterUnit ${i7Data.id} besitzt keinen ConnectivityNode.`);
2323
+ }
2324
+ const csConverter = new CsConverter_1.CsConverter(__1.getUUID(i7Data.guid), utils_2.getName(i7Data), i7Data.kurzname);
2325
+ csConverter.equipmentContainer = dcConverterUnit;
2326
+ csConverter.baseS = i7Data.pr;
2327
+ csConverter.ratedUdc = i7Data.ur;
2328
+ csConverter.idleLoss = i7Data.p_leer;
2329
+ csConverter.maxUdc = i7Data.ur;
2330
+ csConverter.minUdc = 0;
2331
+ csConverter.resistiveLoss = 0;
2332
+ csConverter.switchingLoss = 0;
2333
+ const regelungU = utils_2.convertToBooleanI7(i7Data.u_geregelt);
2334
+ const regelungP = utils_2.convertToBooleanI7(i7Data.p_geregelt);
2335
+ const regelungW = utils_2.convertToBooleanI7(i7Data.grad_geregelt);
2336
+ if (regelungU) {
2337
+ csConverter.operatingMode = CsOperatingModeKind_1.CsOperatingModeKind.inverter;
2338
+ }
2339
+ else if (regelungP) {
2340
+ csConverter.operatingMode = CsOperatingModeKind_1.CsOperatingModeKind.rectifier;
2341
+ }
2342
+ else {
2343
+ csConverter.operatingMode = CsOperatingModeKind_1.CsOperatingModeKind.rectifier;
2344
+ }
2345
+ const inBetrieb = utils_2.convertToBooleanI7(i7Data.betrieb);
2346
+ __1.createSvStatus(this.cimModel, inBetrieb, csConverter);
2347
+ if (acConnectivityNode) {
2348
+ __1.createConnection(this.cimModel, csConverter, acConnectivityNode, __1.PhaseCode.ABC, 1);
2349
+ }
2350
+ else {
2351
+ console.log(`CsConverter ${i7Data.id} ${csConverter.mrid} besitzt keinen AC Anschluss.`);
2352
+ }
2353
+ const dcNode = new DCNode_1.DCNode(__1.generateUUID(), 'DCNode');
2354
+ dcNode.dcEquipmentContainerUUID = dcConverterUnit.mrid;
2355
+ const acDCConverterDCTerminal = new ACDCConverterDCTerminal_1.ACDCConverterDCTerminal(__1.generateUUID(), 'ACDCConvTerminal');
2356
+ acDCConverterDCTerminal.sequenceNumber = 1;
2357
+ acDCConverterDCTerminal.dCConductingEquipmentUUID = csConverter.mrid;
2358
+ acDCConverterDCTerminal.dcNodeUUID = dcNode.mrid;
2359
+ this.checkMemoryObject(i7Data.id, dcNode);
2360
+ this.cimModel.addDCConverterUnit(dcConverterUnit);
2361
+ this.cimModel.addCSConverter(csConverter);
2362
+ this.cimModel.addDCNode(dcNode);
2363
+ this.cimModel.addACDCConverterDCTerminal(acDCConverterDCTerminal);
2364
+ this.integralID2UUID.set(i7Data.id, csConverter.mrid);
2365
+ }
2366
+ }
2367
+ });
2368
+ }
2369
+ convertVsConverterDC(knotenSfIDs) {
2370
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
2371
+ if (this.isTableAvailable(integral_sql_1.Integral7TableNames.HGUE_KOPFSTATION_VSC)) {
2372
+ const result = yield this.queryFunctionWrapper(integral_sql_1.getNetzQuery(integral_sql_1.I7Objects.HGUE_KOPFSTATION_VSC, 0, 0, knotenSfIDs));
2373
+ for (const i7Data of result) {
2374
+ const dcConverterUnit = new DCConverterUnit_1.DCConverterUnit(__1.generateUUID(), 'DCConverterUnit');
2375
+ const acConnectivityNode = this.cimModel.connectivityNodes.get(this.integralID2UUID.get(i7Data.anschluss));
2376
+ if (acConnectivityNode) {
2377
+ const equipmentContainer = utils_2.determineEquipmentContainer('Substation', this.cimModel, this.cimModel.getObject(acConnectivityNode.getConnectivityNodeContainerUUID()));
2378
+ if (equipmentContainer) {
2379
+ dcConverterUnit.name = `DCConverterUnit ${equipmentContainer.name}`;
2380
+ dcConverterUnit.setSubstation(equipmentContainer);
2381
+ }
2382
+ else {
2383
+ console.log(`DCConverterUnit ${i7Data.id} besitzt keinen EquipmentContainer.`);
2384
+ }
2385
+ }
2386
+ else {
2387
+ console.log(`DCConverterUnit ${i7Data.id} besitzt keinen ConnectivityNode.`);
2388
+ }
2389
+ const vsConverter = new VsConverter_1.VsConverter(__1.getUUID(i7Data.guid), utils_2.getName(i7Data), i7Data.kurzname);
2390
+ vsConverter.equipmentContainer = dcConverterUnit;
2391
+ vsConverter.baseS = i7Data.pr;
2392
+ vsConverter.ratedUdc = i7Data.ur;
2393
+ vsConverter.idleLoss = i7Data.p_leer;
2394
+ vsConverter.maxUdc = i7Data.ur;
2395
+ vsConverter.minUdc = 0;
2396
+ vsConverter.resistiveLoss = 0;
2397
+ vsConverter.switchingLoss = 0;
2398
+ const regelungU = utils_2.convertToBooleanI7(i7Data.u_geregelt);
2399
+ const regelungP = utils_2.convertToBooleanI7(i7Data.p_geregelt);
2400
+ const regelungW = utils_2.convertToBooleanI7(i7Data.grad_geregelt);
2401
+ if (regelungU) {
2402
+ vsConverter.pPccControl = VsPpccControlKind_1.VsPpccControlKind.pPcc;
2403
+ vsConverter.qPccControl = VsQpccControlKind_1.VsQpccControlKind.powerFactorPcc;
2404
+ }
2405
+ else if (regelungP) {
2406
+ vsConverter.pPccControl = VsPpccControlKind_1.VsPpccControlKind.pPcc;
2407
+ vsConverter.qPccControl = VsQpccControlKind_1.VsQpccControlKind.powerFactorPcc;
2408
+ }
2409
+ else {
2410
+ vsConverter.pPccControl = VsPpccControlKind_1.VsPpccControlKind.pPcc;
2411
+ vsConverter.qPccControl = VsQpccControlKind_1.VsQpccControlKind.powerFactorPcc;
2412
+ }
2413
+ const inBetrieb = utils_2.convertToBooleanI7(i7Data.betrieb);
2414
+ __1.createSvStatus(this.cimModel, inBetrieb, vsConverter);
2415
+ if (acConnectivityNode) {
2416
+ __1.createConnection(this.cimModel, vsConverter, acConnectivityNode, __1.PhaseCode.ABC, 1);
2417
+ }
2418
+ else {
2419
+ console.log(`VsConverter ${i7Data.id} ${vsConverter.mrid} besitzt keinen AC Anschluss.`);
2420
+ }
2421
+ const dcNode = new DCNode_1.DCNode(__1.generateUUID(), 'DCNode');
2422
+ dcNode.dcEquipmentContainerUUID = dcConverterUnit.mrid;
2423
+ const acDCConverterDCTerminal = new ACDCConverterDCTerminal_1.ACDCConverterDCTerminal(__1.generateUUID(), 'ACDCConvTerminal');
2424
+ acDCConverterDCTerminal.sequenceNumber = 1;
2425
+ acDCConverterDCTerminal.dCConductingEquipmentUUID = vsConverter.mrid;
2426
+ acDCConverterDCTerminal.dcNodeUUID = dcNode.mrid;
2427
+ this.checkMemoryObject(i7Data.id, dcNode);
2428
+ this.cimModel.addDCConverterUnit(dcConverterUnit);
2429
+ this.cimModel.addVSConverter(vsConverter);
2430
+ this.cimModel.addDCNode(dcNode);
2431
+ this.cimModel.addACDCConverterDCTerminal(acDCConverterDCTerminal);
2432
+ this.integralID2UUID.set(i7Data.id, vsConverter.mrid);
2433
+ }
2434
+ }
2435
+ });
2436
+ }
2437
+ convertDCLines(limit, offset) {
2438
+ var _a, _b;
2439
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
2440
+ if (this.isTableAvailable(integral_sql_1.Integral7TableNames.HGUE_LEITUNG)) {
2441
+ const result = yield this.queryFunctionWrapper(integral_sql_1.getNetzQuery(integral_sql_1.I7Objects.HGUE_LEITUNG, limit, offset, []));
2442
+ for (const i7Data of result) {
2443
+ const dcLine = new DCLine_1.DCLine(__1.getUUID(i7Data['guid_dcline']), 'DCLine');
2444
+ const i7Schluessel = integral_prefix_1.LEITUNG_PRAEFIX +
2445
+ utils_2.ueberpruefeZeichenkette(i7Data.ukz) +
2446
+ integral_prefix_1.MITTIGER_PUNKT +
2447
+ utils_2.ueberpruefeZeichenkette(i7Data.kurzname) +
2448
+ integral_prefix_1.MITTIGER_PUNKT +
2449
+ utils_2.ueberpruefeZeichenkette(i7Data.bezeichner);
2450
+ const dcLineSegment = new DCLineSegment_1.DCLineSegment(__1.getUUID(i7Data.guid), i7Data.bezeichner, i7Data.kurzname, i7Schluessel);
2451
+ dcLineSegment.resistance = i7Data.rdc;
2452
+ dcLineSegment.equipmentContainerUUID = dcLine.mrid;
2453
+ const bipol = utils_2.convertToBooleanI7(i7Data.bipol);
2454
+ const acDCConverterStart = this.cimModel.getObject(this.integralID2UUID.get(i7Data.anetzobjekt));
2455
+ const acDCConverterTarget = this.cimModel.getObject(this.integralID2UUID.get(i7Data.enetzobjekt));
2456
+ const converterUnitStart = (_a = acDCConverterStart) === null || _a === void 0 ? void 0 : _a.equipmentContainer;
2457
+ const converterUnitTarget = (_b = acDCConverterTarget) === null || _b === void 0 ? void 0 : _b.equipmentContainer;
2458
+ switch (bipol) {
2459
+ case (true): {
2460
+ converterUnitStart.operationMode = DCConverterOperatingModeKind_1.DCConverterOperatingModeKind.bipolar;
2461
+ converterUnitTarget.operationMode = DCConverterOperatingModeKind_1.DCConverterOperatingModeKind.bipolar;
2462
+ }
2463
+ default: {
2464
+ converterUnitStart.operationMode = DCConverterOperatingModeKind_1.DCConverterOperatingModeKind.monopolarGroundReturn;
2465
+ converterUnitTarget.operationMode = DCConverterOperatingModeKind_1.DCConverterOperatingModeKind.monopolarGroundReturn;
2466
+ }
2467
+ }
2468
+ const startDCNode = this.memoryObjects.get(i7Data.anetzobjekt);
2469
+ if (startDCNode) {
2470
+ const dcTerminal = new DCTerminal_1.DCTerminal(__1.generateUUID(), 'DCTerminal_HGÜ_Leitung');
2471
+ dcTerminal.sequenceNumber = 2;
2472
+ dcTerminal.dCConductingEquipmentUUID = dcLineSegment.mrid;
2473
+ dcTerminal.dcNodeUUID = startDCNode.mrid;
2474
+ this.cimModel.addDCTerminal(dcTerminal);
2475
+ }
2476
+ else {
2477
+ console.log(`HGÜ-Leitung ${i7Data.id} ${dcLineSegment.mrid} besitzt keinen Anfangsknoten. ${i7Data.anetzobjekt} ${this.integralID2UUID.get(i7Data.anetzobjekt)}`);
2478
+ }
2479
+ const tartgetDCNode = this.memoryObjects.get(i7Data.enetzobjekt);
2480
+ if (tartgetDCNode) {
2481
+ const dcTerminal = new DCTerminal_1.DCTerminal(__1.generateUUID(), 'DCTerminal_HGÜ_Leitung');
2482
+ dcTerminal.sequenceNumber = 2;
2483
+ dcTerminal.dCConductingEquipmentUUID = dcLineSegment.mrid;
2484
+ dcTerminal.dcNodeUUID = tartgetDCNode.mrid;
2485
+ this.cimModel.addDCTerminal(dcTerminal);
2486
+ }
2487
+ else {
2488
+ console.log(`HGÜ-Leitung ${i7Data.id} ${dcLineSegment.mrid} besitzt keinen Zielknoten. ${i7Data.enetzobjekt} ${this.integralID2UUID.get(i7Data.enetzobjekt)}`);
2489
+ }
2490
+ this.cimModel.addDCLine(dcLine);
2491
+ this.cimModel.addDCLineSegment(dcLineSegment);
2492
+ this.integralID2UUID.set(i7Data.id, dcLineSegment.mrid);
2493
+ }
2494
+ }
2495
+ else {
2496
+ console.log(`Tabelle ${integral_sql_1.Integral7TableNames.HGUE_LEITUNG} ist nicht vorhanden.`);
2497
+ }
2498
+ });
2499
+ }
2500
+ convertAsynchronmotor(knotenSfIDs) {
2501
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
2502
+ if (this.isTableAvailable(integral_sql_1.Integral7TableNames.ASYNCHRONMOTOR)) {
2503
+ const result = yield this.queryFunctionWrapper(integral_sql_1.getNetzQuery(integral_sql_1.I7Objects.ASYNCHRONMOTOR, 0, 0, knotenSfIDs));
2504
+ for (const i7Data of result) {
2505
+ const asynchronousMachine = new __1.AsynchronousMachine(__1.getUUID(i7Data.guid), utils_2.getName(i7Data), i7Data.bezeichner, i7Data.kurzname);
2506
+ asynchronousMachine.efficiency = i7Data.wirkungsgrad * 100;
2507
+ asynchronousMachine.iaIrRatio = i7Data.ilr_ir;
2508
+ asynchronousMachine.rxLockedRotorRatio = 0;
2509
+ asynchronousMachine.polePairNumber = i7Data.polpaarz;
2510
+ asynchronousMachine.ratedMechanicalPower = i7Data.p_mech;
2511
+ asynchronousMachine.ratedPowerFactor = i7Data.cos_phir;
2512
+ asynchronousMachine.ratedS = i7Data.sr;
2513
+ asynchronousMachine.ratedU = i7Data.ur;
2514
+ asynchronousMachine.p = i7Data.p0;
2515
+ asynchronousMachine.q = i7Data.flag_ind === 1 ? i7Data.q0_ind : i7Data.q0_kap;
2516
+ asynchronousMachine.asynchronousMachineType = __1.AsynchronousMachineKind.motor;
2517
+ asynchronousMachine.controlEnabled = false;
2518
+ const inBetrieb = utils_2.convertToBooleanI7(i7Data.betrieb);
2519
+ __1.createSvStatus(this.cimModel, inBetrieb, asynchronousMachine);
2520
+ const connectivityNode = this.cimModel.objects.get(this.integralID2UUID.get(i7Data.anschluss));
2521
+ if (connectivityNode) {
2522
+ __1.createConnection(this.cimModel, asynchronousMachine, connectivityNode, __1.PhaseCode.ABC);
2523
+ const equipmentContainer = utils_2.determineEquipmentContainer('VoltageLevel', this.cimModel, this.cimModel.getObject(connectivityNode.getConnectivityNodeContainerUUID()));
2524
+ if (equipmentContainer) {
2525
+ asynchronousMachine.equipmentContainerUUID = equipmentContainer === null || equipmentContainer === void 0 ? void 0 : equipmentContainer.mrid;
2526
+ this.cimModel.addAsynchronousMachine(asynchronousMachine);
2527
+ this.integralID2UUID.set(i7Data.id, asynchronousMachine.mrid);
2528
+ }
2529
+ else {
2530
+ console.log(`AsynchronousMachine ${i7Data.id} besitzt keinen EquipmentContainer.`);
2531
+ }
2532
+ }
2533
+ else {
2534
+ console.log(`AsynchronousMachine ${i7Data.id} besitzt keinen ConnectivityNode.`);
2535
+ }
2536
+ }
2537
+ }
2538
+ else {
2539
+ console.log(`Tabelle ${integral_sql_1.Integral7TableNames.ASYNCHRONMOTOR} ist nicht vorhanden.`);
2540
+ }
2541
+ });
2542
+ }
2047
2543
  convertNetzvarianten() {
2048
2544
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
2049
2545
  if (this.isTableAvailable(integral_sql_1.Integral7TableNames.NETZVARIANTEN)) {
@@ -2074,13 +2570,8 @@ class ConverterIntegral7 {
2074
2570
  }
2075
2571
  setACLineSegmentProperties(acLineSegment, data, psrTypeName) {
2076
2572
  if (!acLineSegment.baseVoltage) {
2077
- let baseVoltage;
2078
- if (data.un && data.un > 0) {
2079
- baseVoltage = __1.createBaseVoltageIfNotExists(this.cimModel, data.un);
2080
- }
2081
- else {
2082
- baseVoltage = __1.createBaseVoltageIfNotExists(this.cimModel, 110);
2083
- }
2573
+ const un = utils_2.getU(data.un, this.deafultUn);
2574
+ const baseVoltage = __1.createBaseVoltageIfNotExists(this.cimModel, un);
2084
2575
  acLineSegment.baseVoltage = baseVoltage;
2085
2576
  }
2086
2577
  if (data.laenge) {