@enervance/insight-cim-model 0.0.214-next → 0.0.215-dev

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 (78) hide show
  1. package/dist/converter/integral7/config/integral-prefix.d.ts +0 -5
  2. package/dist/converter/integral7/config/integral-prefix.js +1 -6
  3. package/dist/converter/integral7/config/integral-prefix.js.map +1 -1
  4. package/dist/converter/integral7/converter.integral7.d.ts +2 -3
  5. package/dist/converter/integral7/converter.integral7.js +343 -589
  6. package/dist/converter/integral7/converter.integral7.js.map +1 -1
  7. package/dist/converter/integral7/dl-convert/dl-converter-i7.d.ts +0 -3
  8. package/dist/converter/integral7/dl-convert/dl-converter-i7.js +9 -7
  9. package/dist/converter/integral7/dl-convert/dl-converter-i7.js.map +1 -1
  10. package/dist/converter/integral7/dl-convert/executor.d.ts +1 -15
  11. package/dist/converter/integral7/dl-convert/executor.js +25 -57
  12. package/dist/converter/integral7/dl-convert/executor.js.map +1 -1
  13. package/dist/converter/integral7/interface-i7/data-structures-i7.d.ts +11 -17
  14. package/dist/converter/integral7/interface-i7/data-structures-i7.js.map +1 -1
  15. package/dist/converter/integral7/interface-i7/default-values-config.interface.d.ts +0 -3
  16. package/dist/converter/integral7/interface-i7/export-frame-i7.d.ts +8 -10
  17. package/dist/converter/integral7/interface-i7/export-frame-i7.js +10 -17
  18. package/dist/converter/integral7/interface-i7/export-frame-i7.js.map +1 -1
  19. package/dist/converter/integral7/model/interfaces.d.ts +0 -26
  20. package/dist/converter/integral7/model/interfaces.js.map +1 -1
  21. package/dist/converter/integral7/sql/integral.sql.d.ts +0 -3
  22. package/dist/converter/integral7/sql/integral.sql.js +4 -18
  23. package/dist/converter/integral7/sql/integral.sql.js.map +1 -1
  24. package/dist/converter/integral7/utils-cgmes-export.js +0 -2
  25. package/dist/converter/integral7/utils-cgmes-export.js.map +1 -1
  26. package/dist/converter/integral7/utils.d.ts +3 -12
  27. package/dist/converter/integral7/utils.js +14 -91
  28. package/dist/converter/integral7/utils.js.map +1 -1
  29. package/dist/etl/etl-neplan/etl-neplan.js +1 -1
  30. package/dist/etl/etl-neplan/etl-neplan.js.map +1 -1
  31. package/dist/interfaces/model/core/ITerminal.d.ts +1 -1
  32. package/dist/model/core/ConductingEquipment.js +1 -1
  33. package/dist/model/core/ConductingEquipment.js.map +1 -1
  34. package/dist/model/dc/ACDCConverter.js +2 -0
  35. package/dist/model/dc/ACDCConverter.js.map +1 -1
  36. package/dist/model/dc/DCLineSegment.d.ts +0 -2
  37. package/dist/model/dc/DCLineSegment.js +0 -16
  38. package/dist/model/dc/DCLineSegment.js.map +1 -1
  39. package/dist/model/dc/VsCapabilityCurve.js.map +1 -1
  40. package/dist/model/dc/VsConverter.d.ts +0 -1
  41. package/dist/model/dc/VsConverter.js +0 -13
  42. package/dist/model/dc/VsConverter.js.map +1 -1
  43. package/dist/model/diagram/Diagram.js +2 -2
  44. package/dist/model/diagram/Diagram.js.map +1 -1
  45. package/dist/model/extensions/amprion/core/AMPRIONConnectivityNode.d.ts +0 -1
  46. package/dist/model/extensions/amprion/core/AMPRIONConnectivityNode.js +0 -1
  47. package/dist/model/extensions/amprion/core/AMPRIONConnectivityNode.js.map +1 -1
  48. package/dist/model/extensions/integral/assetinfo/INTEGRALPowerTransformer2WInfo.d.ts +0 -1
  49. package/dist/model/extensions/integral/assetinfo/INTEGRALPowerTransformer2WInfo.js.map +1 -1
  50. package/dist/model/extensions/integral/assetinfo/INTEGRALPowerTransformer3WInfo.d.ts +0 -3
  51. package/dist/model/extensions/integral/assetinfo/INTEGRALPowerTransformer3WInfo.js +0 -14
  52. package/dist/model/extensions/integral/assetinfo/INTEGRALPowerTransformer3WInfo.js.map +1 -1
  53. package/dist/model/extensions/integral/assetinfo/INTEGRALPowerTransformerInfo.js.map +1 -1
  54. package/dist/model/extensions/integral/wires/INTEGRALACLineSegment.d.ts +0 -2
  55. package/dist/model/extensions/integral/wires/INTEGRALACLineSegment.js +0 -8
  56. package/dist/model/extensions/integral/wires/INTEGRALACLineSegment.js.map +1 -1
  57. package/dist/model/operationallimits/ApparentPowerLimit.js +2 -2
  58. package/dist/model/operationallimits/ApparentPowerLimit.js.map +1 -1
  59. package/dist/model/wires/GroundDisconnector.d.ts +1 -4
  60. package/dist/model/wires/GroundDisconnector.js +1 -15
  61. package/dist/model/wires/GroundDisconnector.js.map +1 -1
  62. package/dist/model/wires/PowerTransformer.js +1 -1
  63. package/dist/model/wires/PowerTransformer.js.map +1 -1
  64. package/dist/model/wires/SeriesCompensator.js +4 -6
  65. package/dist/model/wires/SeriesCompensator.js.map +1 -1
  66. package/dist/model/wires/Switch.js +1 -1
  67. package/dist/model/wires/Switch.js.map +1 -1
  68. package/dist/model-container/model/ModelContainer.d.ts +1 -5
  69. package/dist/model-container/model/ModelContainer.js +0 -14
  70. package/dist/model-container/model/ModelContainer.js.map +1 -1
  71. package/dist/util/util-create.js +1 -9
  72. package/dist/util/util-create.js.map +1 -1
  73. package/dist/utils2/parser.utils.js +2 -2
  74. package/dist/utils2/parser.utils.js.map +1 -1
  75. package/package.json +3 -2
  76. package/dist/model/extensions/integral/dc/DCLineSegment.d.ts +0 -10
  77. package/dist/model/extensions/integral/dc/DCLineSegment.js +0 -31
  78. package/dist/model/extensions/integral/dc/DCLineSegment.js.map +0 -1
@@ -27,6 +27,7 @@ const CsConverter_1 = require("../../model/dc/CsConverter.js");
27
27
  const CsOperatingModeKind_1 = require("../../model/dc/CsOperatingModeKind.js");
28
28
  const DCConverterOperatingModeKind_1 = require("../../model/dc/DCConverterOperatingModeKind.js");
29
29
  const DCLine_1 = require("../../model/dc/DCLine.js");
30
+ const DCLineSegment_1 = require("../../model/dc/DCLineSegment.js");
30
31
  const DCNode_1 = require("../../model/dc/DCNode.js");
31
32
  const DCTerminal_1 = require("../../model/dc/DCTerminal.js");
32
33
  const VsConverter_1 = require("../../model/dc/VsConverter.js");
@@ -141,9 +142,6 @@ const INTEGRALPowerTransformer2WInfo_1 = require("../../model/extensions/integra
141
142
  const impedance_utils_1 = require("./impedance.utils.js");
142
143
  const util_cim_model_1 = require("./util-cim.model.js");
143
144
  const EVAssetOriginKind_1 = require("../../model/extensions/enervance/assets/EVAssetOriginKind.js");
144
- const PetersenCoilModeKind_1 = require("../../model/wires/PetersenCoilModeKind.js");
145
- const GroundDisconnector_1 = require("../../model/wires/GroundDisconnector.js");
146
- const DCLineSegment_1 = require("../../model/extensions/integral/dc/DCLineSegment.js");
147
145
  class ConverterIntegral7 {
148
146
  constructor() {
149
147
  /** Exportnetze gemäß Konfiguration */
@@ -208,7 +206,6 @@ class ConverterIntegral7 {
208
206
  yield this.queryErsatzLaengsAnschlussIDs();
209
207
  yield this.queryLkondensatorAnschlussIDs();
210
208
  /** BD Profile */
211
- this.logger.debug('Convert BD Profiles');
212
209
  console.log('Convert BD Profiles');
213
210
  let boundaryEqUUId = undefined;
214
211
  for (const entry of this.exportFramesBoundary.entries()) {
@@ -220,7 +217,6 @@ class ConverterIntegral7 {
220
217
  continue;
221
218
  yield this.convertFrame(frame, geoRegion, objectMappingConfig, energyTypesConfig, defaultValuesConfig, energySourceTypeMappingConfig);
222
219
  }
223
- this.logger.debug('Convert MAS Profiles');
224
220
  console.log('Convert MAS Profiles');
225
221
  for (const entry of this.exportFrames.entries()) {
226
222
  const geoRegionUUID = entry[0];
@@ -229,7 +225,6 @@ class ConverterIntegral7 {
229
225
  if (!geoRegion)
230
226
  continue;
231
227
  // frame.addDependentModel(RDF_XML.PROFILE_EQ_BD, this.exportFramesBoundary.entries().next()?.value[1].getModelUUID(RDF_XML.PROFILE_EQ_BD));
232
- this.logger.debug(`Convert MAS profile: ${frame.mas}`);
233
228
  console.log(`Convert MAS profile: ${frame.mas}`);
234
229
  yield this.convertFrame(frame, geoRegion, objectMappingConfig, energyTypesConfig, defaultValuesConfig, energySourceTypeMappingConfig);
235
230
  if (boundaryEqUUId) {
@@ -239,7 +234,6 @@ class ConverterIntegral7 {
239
234
  frame.purgeData();
240
235
  const startTime = perf_hooks.performance.now();
241
236
  frame.openXMLModel();
242
- this.logger.debug(`Serialize MAS profile: ${frame.mas}`);
243
237
  console.log(`Serialize MAS profile: ${frame.mas}`);
244
238
  frame.serializeModel(defaultValuesConfig);
245
239
  yield frame.closeXMLModel();
@@ -247,7 +241,7 @@ class ConverterIntegral7 {
247
241
  frame.cimModel.purgeData();
248
242
  console.log(`\nSerializeModel ${geoRegion.name} ${(endTime - startTime) / 1000} seconds\n`);
249
243
  }
250
- this.logger.debug('Serialize BD Profiles');
244
+ console.log('Serialize BD Profiles');
251
245
  for (const entry of this.exportFramesBoundary.entries()) {
252
246
  const geoRegionUUID = entry[0];
253
247
  const frame = entry[1];
@@ -266,7 +260,7 @@ class ConverterIntegral7 {
266
260
  let endTime = perf_hooks.performance.now();
267
261
  console.log(`\nSerializeModel ${geoRegion.name} ${(endTime - startTime) / 1000} seconds\n`);
268
262
  }
269
- this.logger.debug('Serialize Default Profile');
263
+ console.log('Serialize Default Profile');
270
264
  this.exportFrameDefault.openXMLModel();
271
265
  this.exportFrameDefault.serializeModel(defaultValuesConfig);
272
266
  yield this.exportFrameDefault.closeXMLModel();
@@ -404,22 +398,6 @@ class ConverterIntegral7 {
404
398
  yield this.convertLeistungsschalter(cimModel, eqiupmentContainerIDs);
405
399
  logExecutionTime(this.logger, startTime, `convertLeistungsschalter(${cimModel.breakers.size})`);
406
400
  }
407
- /** Sternpunktimp Modell
408
- * 1) netz_knoten1pso
409
- * 2) netz_schaltelement1pelem -> Junction/Terminal
410
- * 3) netz_kdrossel */
411
- /** Sternpunktschienen -> ConnectivityNodes */
412
- if (standortIDs.length > 0) {
413
- startTime = perf_hooks.performance.now();
414
- const stpSchieneID = yield this.convertSternpunktSchienen(cimModel, integral7Modell, standortIDs);
415
- /** KDrossel -> GroundingImpedance/PetersenCoil */
416
- yield this.convertKdrossel(cimModel, integral7Modell, stpSchieneID, defaultValuesConfig);
417
- /** Schaltzustand der Schaltelemente */
418
- yield this.convertStpSchaltelemente(cimModel, integral7Modell, stpSchieneID);
419
- /** Sternpunktschienenkupplung*/ // ToDo: Wie kann so etwas in CGMES abgebildet werden?
420
- //await this.convertStpSchienenKupplung(cimModel, integral7Modell, stpSchieneID);
421
- logExecutionTime(this.logger, startTime, `convertSternpunkte`);
422
- }
423
401
  /** Trafo2W */
424
402
  if (standortIDs.length > 0) {
425
403
  startTime = perf_hooks.performance.now();
@@ -498,6 +476,20 @@ class ConverterIntegral7 {
498
476
  yield this.convertKompensationskondensatoren(cimModel, integral7Modell.targetVoltages, soSfKnoten);
499
477
  logExecutionTime(this.logger, startTime, `convertKompensationskondensatoren`);
500
478
  }
479
+ /** Sternpunktimp Modell
480
+ * 1) netz_knoten1pso
481
+ * 2) netz_schaltelement1pelem -> Junction/Terminal
482
+ * 3) netz_kdrossel */
483
+ /** Sternpunktschienen -> ConnectivityNodes */
484
+ if (standortIDs.length > 0) {
485
+ startTime = perf_hooks.performance.now();
486
+ const stpSchieneID = yield this.convertSternpunktSchienen(cimModel, integral7Modell, standortIDs);
487
+ /** KDrossel -> GroundingImpedance/PetersenCoil */
488
+ yield this.convertKdrossel(cimModel, integral7Modell, stpSchieneID);
489
+ /** Schaltzustand der Schaltelemente */
490
+ yield this.convertStpSchaltelemente(integral7Modell, stpSchieneID);
491
+ logExecutionTime(this.logger, startTime, `convertSternpunkte`);
492
+ }
501
493
  /** Statcom -> StaticVarCompensator */
502
494
  /** Sonderfall mit Trafo
503
495
  * Trafos müssen zuertst konvertiert werden. */
@@ -558,7 +550,6 @@ class ConverterIntegral7 {
558
550
  const netz_standortIds = standortIDs.map(standortId => {
559
551
  return { id: standortId };
560
552
  });
561
- const boundary_standortIds = [];
562
553
  const netz_knotensoIds = knotenSoIDs.map(knotenSoId => {
563
554
  return { id: knotenSoId };
564
555
  });
@@ -568,7 +559,6 @@ class ConverterIntegral7 {
568
559
  });
569
560
  entry[1].integral7Modell.integralKnotenSo.forEach((_, key) => {
570
561
  netz_knotensoIds.push({ id: key });
571
- boundary_standortIds.push({ id: key });
572
562
  });
573
563
  }
574
564
  const netzLeitungIds = [...integral7Modell.integralLeitungen.keys()];
@@ -578,8 +568,6 @@ class ConverterIntegral7 {
578
568
  const allLeitungIds = [...new Set([...netzLeitungIds, ...netzHgueLeitungIds, ...netzErsatzlaengszweigIds, ...netzStreckenlastIds]).values()];
579
569
  const convertOptions = {
580
570
  visible_only: true,
581
- boundary_standortIds,
582
- nsg_standort_treshold_percentage: 25,
583
571
  only: {
584
572
  netz_standortIds,
585
573
  netz_knotensoIds,
@@ -597,7 +585,6 @@ class ConverterIntegral7 {
597
585
  })
598
586
  }
599
587
  };
600
- frame.cimModel.addDiagramStyle(this.executor.dlConverter.diagramStyles[cim_constants_1.DiagramLayoutTypes.NODE_BREAKER]);
601
588
  const resultingObjects = yield this.executor.convert(convertOptions);
602
589
  for (const resultingObject of resultingObjects) {
603
590
  if (resultingObject instanceof Diagram_1.Diagram) {
@@ -708,7 +695,7 @@ class ConverterIntegral7 {
708
695
  .then((result) => {
709
696
  for (const i7Data of result) {
710
697
  const i7Schluessel = integral_prefix_1.GEOREGION_PRAEFIX + (0, utils_2.ueberpruefeZeichenkette)(i7Data.bezeichner);
711
- const region = new GeographicalRegion_1.GeographicalRegion((0, parser_utils_1.getUUID)(i7Data.guid, this.objectMappingConfig.standardiseUuid), (0, util_create_1.createNotation)([(0, utils_2.ueberpruefeZeichenkette)(i7Data.bezeichner)]), (0, utils_2.ueberpruefeZeichenkette)(i7Data.kurzname), i7Schluessel);
698
+ const region = new GeographicalRegion_1.GeographicalRegion((0, parser_utils_1.getUUID)(i7Data.guid, this.objectMappingConfig.standardiseUuid), (0, util_create_1.createNotation)([(0, utils_2.ueberpruefeZeichenkette)(i7Data.bezeichner), '_GR']), (0, utils_2.ueberpruefeZeichenkette)(i7Data.kurzname), i7Schluessel);
712
699
  //region.i7key = i7Schluessel;
713
700
  this.addIdMapping(i7Data.id, region.mrid, integral_sql_1.Integral7TableNames.REGION);
714
701
  regions.push(region);
@@ -756,12 +743,11 @@ class ConverterIntegral7 {
756
743
  .then((result) => {
757
744
  for (const i7Data of result) {
758
745
  const i7Schluesel = integral_prefix_1.SUBGEOREGION_PRAEFIX + (0, utils_2.ueberpruefeZeichenkette)(i7Data.bezeichner);
759
- const subregion = new SubGeographicalRegion_1.SubGeographicalRegion((0, parser_utils_1.getUUID)(i7Data.guid, this.objectMappingConfig.standardiseUuid), (0, util_create_1.createNotation)([(0, utils_2.ueberpruefeZeichenkette)(i7Data.bezeichner)
760
- ]), (0, utils_2.ueberpruefeZeichenkette)(i7Data.kurzname), i7Schluesel);
746
+ const subregion = new SubGeographicalRegion_1.SubGeographicalRegion((0, parser_utils_1.getUUID)(i7Data.guid, this.objectMappingConfig.standardiseUuid), (0, util_create_1.createNotation)([(0, utils_2.ueberpruefeZeichenkette)(i7Data.bezeichner), '_SGR']), (0, utils_2.ueberpruefeZeichenkette)(i7Data.kurzname), i7Schluesel);
761
747
  const regionUUID = this.integralID2UUID.get(i7Data.georegion);
762
748
  let region = regions.find(elem => elem.mrid === regionUUID);
763
749
  if (!region) {
764
- region = (0, utils_1.createIfNotExitsGeoregionByName)(this.cimModelDefault, (0, util_create_1.createNotation)([defaultValuesConfig.GeographicalRegion.name]), this.configUuid);
750
+ region = (0, utils_1.createIfNotExitsGeoregionByName)(this.cimModelDefault, (0, util_create_1.createNotation)([defaultValuesConfig.GeographicalRegion.name, '_GR']), this.configUuid);
765
751
  this.logger.debug(`SubGeographicalRegion UUID ${subregion.mrid} I7-ID ${i7Data.id} Name ${i7Data.bezeichner} hat keine Region.`);
766
752
  }
767
753
  subregion.region = region;
@@ -852,7 +838,7 @@ class ConverterIntegral7 {
852
838
  i7Data.un +
853
839
  integral_prefix_1.MITTIGER_PUNKT +
854
840
  (0, utils_2.ueberpruefeZeichenkette)(i7Data.bezeichner);
855
- const vl = new VoltageLevel_1.VoltageLevel((0, parser_utils_1.getUUID)(i7Data.guid, this.objectMappingConfig.standardiseUuid), i7Data.bezeichner, i7Data.kurzname);
841
+ const vl = new VoltageLevel_1.VoltageLevel((0, parser_utils_1.getUUID)(i7Data.guid, this.objectMappingConfig.standardiseUuid), i7Data.bezeichner, i7Data.kurzname, i7Schluessel);
856
842
  vl.key = i7Schluessel;
857
843
  const facility = util_cim_model_1.UtilCimModel.createFacilityInstanceForPsr(cimModel, vl, cim_constants_1.CimAssetAliasNames.VoltageLevel, this.configUuid);
858
844
  if (i7Data.baujahr) {
@@ -941,31 +927,23 @@ class ConverterIntegral7 {
941
927
  });
942
928
  }
943
929
  convertKnotenSo(frame, integral7, standortIDs, defaultValuesConfig) {
944
- var _a, _b;
945
930
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
946
931
  const cimModel = frame.cimModel;
947
932
  if (this.isTableAvailable(integral_sql_1.Integral7TableNames.KNOTEN_SO)) {
948
933
  const result = yield this.mysqlController.execQuery((0, integral_sql_1.getI7Query)(integral_sql_1.I7Objects.KNOTEN_SO, this.getAvailableColumnNames(integral_sql_1.Integral7TableNames.KNOTEN_SO), standortIDs));
949
- const netzGruppe = yield this.mysqlController.execQuery((0, integral_sql_1.getI7Query)(integral_sql_1.I7Objects.NETZGRUPPE, this.getAvailableColumnNames(integral_sql_1.Integral7TableNames.NETZGRUPPE), []));
950
934
  for (const i7Data of result) {
951
- const netzgruppe = netzGruppe.filter(elem => elem.id === i7Data.netzgruppe);
952
935
  const substation = cimModel.getSubstation(this.integralID2UUID.get(i7Data.standort));
953
936
  const rdfid = (0, parser_utils_1.getUUID)(i7Data.guid_cn, this.objectMappingConfig.standardiseUuid);
937
+ // const vl = new VoltageLevel(getUUID(i7Data.guid_v, this.objectMappingConfig.standardiseUuid), createNotation([getName(i7Data), i7Data.un.toString(), '_VL']), i7Data.kurzname);
954
938
  const vl = new VoltageLevel_1.VoltageLevel(common_utils_1.CommonUtils.generateUUIDv5(cim_class_names_1.ClassNames.VoltageLevel, this.configUuid, rdfid), i7Data.bezeichner, i7Data.kurzname);
939
+ //const rdfid = getUUID(i7Data.guid); /**This is the mrid for TopologicalNode */
955
940
  const connectivityNode = new AMPRIONConnectivityNode_1.AMPRIONConnectivityNode(rdfid, i7Data.bezeichner, i7Data.kurzname, i7Data.kommentar);
956
- if (connectivityNode.getUUID() === '98d0e9eb-bfb0-4da4-9700-660626da1c56' || connectivityNode.getName() === 'XDU_SL12') {
957
- let stop = true;
958
- }
959
941
  connectivityNode.setConnectivityNodeContainer(vl);
960
942
  vl.addConnectivityNode(connectivityNode);
961
943
  connectivityNode.nodeNumber = i7Data.id_psse_cape;
962
- connectivityNode.netzGruppe = (_a = netzgruppe === null || netzgruppe === void 0 ? void 0 : netzgruppe.at(0)) === null || _a === void 0 ? void 0 : _a.bezeichner;
963
944
  if (frame.boundary) {
964
945
  connectivityNode.boundaryPoint = true;
965
946
  }
966
- const key = integral_sql_1.I7Objects.KNOTEN_SO + ((_b = connectivityNode === null || connectivityNode === void 0 ? void 0 : connectivityNode.getUUID()) !== null && _b !== void 0 ? _b : '');
967
- const junction = new Junction_1.Junction(common_utils_1.CommonUtils.generateUUIDv5(cim_class_names_1.ClassNames.VoltageLevel, this.configUuid, key), (0, util_create_1.createNotation)([(0, utils_2.getName)(i7Data), connectivityNode.getUUID().substring(0, 8), "_J"]));
968
- this.createConnection(cimModel, junction, connectivityNode, PhaseCode_1.PhaseCode.ABC, true);
969
947
  const un = (0, utils_2.getU)(i7Data.un);
970
948
  const baseVoltage = (0, util_create_1.createBaseVoltageIfNotExists)(cimModel, un, this.configUuid, this.exportFramesBoundary);
971
949
  /** Spannungsband */
@@ -981,7 +959,7 @@ class ConverterIntegral7 {
981
959
  integral_prefix_1.MITTIGER_PUNKT +
982
960
  (0, utils_2.ueberpruefeZeichenkette)(i7Data.bezeichner);
983
961
  vl.key = i7Schluessel;
984
- connectivityNode.key = i7Schluessel;
962
+ connectivityNode.description = i7Schluessel;
985
963
  }
986
964
  else {
987
965
  this.logger.debug(`KnotenSo ${i7Data.id} ${vl.mrid} besitzt keine Substation.`);
@@ -1023,27 +1001,21 @@ class ConverterIntegral7 {
1023
1001
  });
1024
1002
  }
1025
1003
  convertSammelschienenAbschnitte(cimModel, integral7, schaltanlagenAbschnittIDs) {
1026
- var _a, _b, _c;
1004
+ var _a, _b;
1027
1005
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
1028
1006
  if (this.isTableAvailable(integral_sql_1.Integral7TableNames.SAMMELSCHIENE)) {
1029
1007
  const result = yield this.mysqlController.execQuery((0, integral_sql_1.getI7Query)(integral_sql_1.I7Objects.SAMMELSCHIENE, this.getAvailableColumnNames(integral_sql_1.Integral7TableNames.SAMMELSCHIENE), schaltanlagenAbschnittIDs));
1030
- const netzGruppe = yield this.mysqlController.execQuery((0, integral_sql_1.getI7Query)(integral_sql_1.I7Objects.NETZGRUPPE, this.getAvailableColumnNames(integral_sql_1.Integral7TableNames.NETZGRUPPE), []));
1031
1008
  for (const i7Data of result) {
1032
1009
  const i7Schaltanlagenabschnitt = integral7.integralSchaltanlagenAbschnitte.get(i7Data.saabschnitt);
1033
- const netzgruppe = netzGruppe.filter(elem => elem.id === i7Data.netzgruppe);
1034
- let saab = undefined;
1035
- if (integral7.integralSchaltanlagenAbschnitte.has(i7Data.saabschnitt)) {
1036
- saab = integral7.integralSchaltanlagenAbschnitte.get(i7Data.saabschnitt);
1037
- }
1010
+ //const rdfid: string = getUUID(i7Data.guid); /** this is the mrid for TopologicalNode*/
1038
1011
  const rdfid = (0, parser_utils_1.getUUID)(i7Data.guid_cn, this.objectMappingConfig.standardiseUuid);
1039
1012
  const connectivityNode = new AMPRIONConnectivityNode_1.AMPRIONConnectivityNode(rdfid, i7Data.bezeichner, i7Data.kurzname);
1040
1013
  const voltageLevel = cimModel.getVoltageLevel(this.integralID2UUID.get(i7Schaltanlagenabschnitt.id));
1041
1014
  connectivityNode.nodeNumber = i7Data.id_psse_cape;
1042
- connectivityNode.netzGruppe = (_a = netzgruppe === null || netzgruppe === void 0 ? void 0 : netzgruppe.at(0)) === null || _a === void 0 ? void 0 : _a.bezeichner;
1043
1015
  const keyBusbarSection = [
1044
1016
  integral_sql_1.I7Objects.SAMMELSCHIENE,
1045
- (_b = voltageLevel === null || voltageLevel === void 0 ? void 0 : voltageLevel.getUUID()) !== null && _b !== void 0 ? _b : '',
1046
- (_c = connectivityNode === null || connectivityNode === void 0 ? void 0 : connectivityNode.getUUID()) !== null && _c !== void 0 ? _c : ''
1017
+ (_a = voltageLevel === null || voltageLevel === void 0 ? void 0 : voltageLevel.getUUID()) !== null && _a !== void 0 ? _a : '',
1018
+ (_b = connectivityNode === null || connectivityNode === void 0 ? void 0 : connectivityNode.getUUID()) !== null && _b !== void 0 ? _b : ''
1047
1019
  ].join('');
1048
1020
  const uuidBusbarSection = common_utils_1.CommonUtils.generateUUIDv5(cim_class_names_1.ClassNames.BusbarSection, this.configUuid, keyBusbarSection);
1049
1021
  const busbarSection = new BusbarSection_1.BusbarSection(uuidBusbarSection, i7Data.bezeichner, i7Schaltanlagenabschnitt.kurzname);
@@ -1059,15 +1031,11 @@ class ConverterIntegral7 {
1059
1031
  voltageLevel.highVoltageLimit = (0, parser_utils_1.isNumericI7)(i7Data.umax) ? (0, parser_utils_1.convertToNumberI7)(i7Data.umax) : voltageLevel.highVoltageLimit;
1060
1032
  // umin
1061
1033
  voltageLevel.lowVoltageLimit = (0, parser_utils_1.isNumericI7)(i7Data.umin) ? (0, parser_utils_1.convertToNumberI7)(i7Data.umin) : voltageLevel.lowVoltageLimit;
1062
- //define INTEGRAL Schluessel for ConnectivityNode
1063
- if (saab !== undefined) {
1064
- const i7Schluessel = voltageLevel.key +
1065
- integral_prefix_1.SCHALTANLAGENABSCHNITT_PRAEFIX +
1066
- (0, utils_2.ueberpruefeZeichenkette)(saab.bezeichner) +
1067
- integral_prefix_1.SAMMELSCHIENENABSCHNITT_PRAEFIX +
1068
- (0, utils_2.ueberpruefeZeichenkette)(i7Data.bezeichner);
1069
- connectivityNode.key = i7Schluessel;
1070
- }
1034
+ /**const i7Schluessel = voltageLevel.substation.name +
1035
+ SAMMELSCHIENENABSCHNITT_PRAEFIX +
1036
+ ueberpruefeZeichenkette(i7Data.bezeichner);
1037
+ busbarSection.description = i7Schluessel;
1038
+ connectivityNode.description = i7Schluessel;*/
1071
1039
  /** Spannungsband */
1072
1040
  integral7.targetVoltages.set(i7Data.id, { usoll: i7Data.usoll, umin: i7Data.umin, umax: i7Data.umax });
1073
1041
  // TODO VoltageLimits?
@@ -1080,7 +1048,7 @@ class ConverterIntegral7 {
1080
1048
  cimModel.addConnectivityNode(connectivityNode);
1081
1049
  cimModel.addBusbarSection(busbarSection);
1082
1050
  /** Integral 7 Modell erstellen zur Berechnung der Netzschema */
1083
- if (saab !== undefined) {
1051
+ if (integral7.integralSchaltanlagenAbschnitte.has(i7Data.saabschnitt)) {
1084
1052
  integral7.integralSchaltanlagenAbschnitte.get(i7Data.saabschnitt).ssab.push(i7Data);
1085
1053
  }
1086
1054
  }
@@ -1097,11 +1065,10 @@ class ConverterIntegral7 {
1097
1065
  const result = yield this.queryDataInChuncks(integral_sql_1.I7Objects.KNOTEN_SF, schaltfeldIDs);
1098
1066
  for (const i7Data of result) {
1099
1067
  const bay = cimModel.getBay(this.integralID2UUID.get(i7Data.schaltfeld));
1100
- const connectivityNode = new ConnectivityNode_1.ConnectivityNode((0, parser_utils_1.getUUID)(i7Data.guid_cn, this.objectMappingConfig.standardiseUuid), (0, util_create_1.createNotation)([i7Data.bezeichner, '_CN'], 32, false), (0, util_create_1.createNotation)([i7Data.bezeichner, '_CN'], 32, false));
1101
- if (bay !== undefined) {
1068
+ const connectivityNode = new ConnectivityNode_1.ConnectivityNode((0, parser_utils_1.getUUID)(i7Data.guid_cn, this.objectMappingConfig.standardiseUuid), i7Data.bezeichner, 'knotensf', `${bay.description}/${i7Data.bezeichner}`);
1069
+ if (bay) {
1102
1070
  connectivityNode.connectivityNodeContainer = bay;
1103
1071
  bay.addConnectivityNode(connectivityNode);
1104
- connectivityNode.key = bay.key + integral_prefix_1.KNOTEN_SF_PRAEFIX + i7Data.bezeichner;
1105
1072
  }
1106
1073
  else {
1107
1074
  this.logger.debug(`KnotenSf ${i7Data.id} besitzt kein Schaltfeld.`);
@@ -1126,11 +1093,11 @@ class ConverterIntegral7 {
1126
1093
  const bay = cimModel.getBay(this.integralID2UUID.get(i7Data.kpfeld));
1127
1094
  const key = integral_sql_1.I7Objects.KNOTEN_KF + ((_a = bay === null || bay === void 0 ? void 0 : bay.getUUID()) !== null && _a !== void 0 ? _a : '') + String(i7Data.id) + String(i7Data.kpfeld);
1128
1095
  const uuid = common_utils_1.CommonUtils.generateUUIDv5(cim_class_names_1.ClassNames.ConnectivityNode, this.configUuid, key);
1129
- const connectivityNode = new ConnectivityNode_1.ConnectivityNode(uuid, (0, util_create_1.createNotation)([i7Data.bezeichner, '_CN'], 32, false), (0, util_create_1.createNotation)([i7Data.bezeichner, '_CN'], 32, false));
1096
+ // const connectivityNode = new ConnectivityNode(getUUID(i7Data.guid, this.objectMappingConfig.standardiseUuid), createNotation([getName(i7Data), '_CN']), 'knotenkf');
1097
+ const connectivityNode = new ConnectivityNode_1.ConnectivityNode(uuid, i7Data.bezeichner, 'knotenkf');
1130
1098
  if (bay) {
1131
1099
  connectivityNode.connectivityNodeContainer = bay;
1132
1100
  bay.addConnectivityNode(connectivityNode);
1133
- connectivityNode.key = bay.key + integral_prefix_1.KNOTEN_KF_PRAEFIX + i7Data.bezeichner;
1134
1101
  }
1135
1102
  else {
1136
1103
  this.logger.debug(`KnotenKf ${i7Data.id} besitzt kein Schaltfeld.`);
@@ -1153,12 +1120,11 @@ class ConverterIntegral7 {
1153
1120
  const bay = cimModel.getBay(this.integralID2UUID.get(i7Data.lkupplung));
1154
1121
  const key = integral_sql_1.I7Objects.KNOTEN_LK + ((_a = bay === null || bay === void 0 ? void 0 : bay.getUUID()) !== null && _a !== void 0 ? _a : '') + String(i7Data.id) + String(i7Data.lkupplung);
1155
1122
  const uuid = common_utils_1.CommonUtils.generateUUIDv5(cim_class_names_1.ClassNames.ConnectivityNode, this.configUuid, key);
1156
- const name = (0, util_create_1.createNotation)([i7Data.bezeichner, '_CN'], 32, false);
1157
- const connectivityNode = new ConnectivityNode_1.ConnectivityNode(uuid, name, name);
1123
+ const connectivityNode = new ConnectivityNode_1.ConnectivityNode(uuid, i7Data.bezeichner, 'KnotenLk');
1124
+ // const connectivityNode = new ConnectivityNode(CommonUtils.generateUUID(), createNotation([getName(i7Data), '_CN']), 'KnotenLk');
1158
1125
  if (bay) {
1159
1126
  connectivityNode.connectivityNodeContainer = bay;
1160
1127
  bay.addConnectivityNode(connectivityNode);
1161
- connectivityNode.key = bay.key + integral_prefix_1.KNOTEN_LK_PRAEFIX + i7Data.bezeichner;
1162
1128
  }
1163
1129
  else {
1164
1130
  this.logger.debug(`KnotenLk ${i7Data.id} besitzt kein Schaltfeld.`);
@@ -1181,12 +1147,8 @@ class ConverterIntegral7 {
1181
1147
  const key = integral_sql_1.I7Objects.SCHLAUFE + String(i7Data.id);
1182
1148
  const uuid = common_utils_1.CommonUtils.generateUUIDv5(cim_class_names_1.ClassNames.Terminal, this.configUuid, key);
1183
1149
  const terminal = new Terminal_1.Terminal(uuid, i7Data.bezeichner, i7Data.kurzname, i7Data.kommentar);
1184
- if (terminal.getUUID() === '7564eef1-6cd6-59c2-957e-825c6593fdf2') {
1185
- const stop = true;
1186
- }
1187
1150
  terminal.connected = (0, parser_utils_1.convertToBooleanI7)(i7Data.schaltzustand);
1188
1151
  terminal.phases = PhaseCode_1.PhaseCode.ABC;
1189
- terminal.key = integral_prefix_1.SCHLAUFE_PRAEFIX + i7Data.bezeichner;
1190
1152
  this.addIdMapping(i7Data.id, terminal.mrid, integral_sql_1.Integral7TableNames.SCHLAUFE);
1191
1153
  this.addIdMapping(i7Data.knotenzw, terminal.mrid, integral_sql_1.Integral7TableNames.SCHLAUFE);
1192
1154
  integral7.kontenZwIDs.push(i7Data.knotenzw);
@@ -1292,101 +1254,6 @@ class ConverterIntegral7 {
1292
1254
  }
1293
1255
  });
1294
1256
  }
1295
- convertVollUmrichterEinspeisung(cimModel, targetVoltages, knotenSfIDs, objectMappingConfig, energySourceTypeMappingConfig) {
1296
- var _a;
1297
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
1298
- const targetClass = objectMappingConfig.Einspeisung.class;
1299
- if (this.isTableAvailable(integral_sql_1.Integral7TableNames.VOLLUMRICHTEREINSPEISUNG)) {
1300
- const result = yield this.mysqlController.execQuery((0, integral_sql_1.getI7Query)(integral_sql_1.I7Objects.VOLLUMRICHTEREINSPEISUNG, this.getAvailableColumnNames(integral_sql_1.Integral7TableNames.VOLLUMRICHTEREINSPEISUNG), knotenSfIDs));
1301
- for (const i7Data of result) {
1302
- try {
1303
- const uuid = (0, parser_utils_1.getUUID)(i7Data.guid, this.objectMappingConfig.standardiseUuid);
1304
- const externalNetworkInjection = new INTEGRALExternalNetworkInjection_1.INTEGRALExternalNetworkInjection(uuid, (0, util_create_1.createNotation)([(0, utils_2.getName)(i7Data), '_', uuid.substring(0, 8), '_ENI'], 32, true), i7Data.kurzname);
1305
- externalNetworkInjection.nameprimaertyp = 'Wind Onshore';
1306
- let mf = undefined;
1307
- mf = this.cimModelDefault.multiplierFactors.get(this.integralID2UUID.get(i7Data.multfaktor));
1308
- if (mf) {
1309
- cimModel.addMultiplierFactor(mf);
1310
- externalNetworkInjection.multiplierFactorUUID = mf.getUUID();
1311
- }
1312
- /** Convert EQ-profile dataset. */
1313
- const maxP = (0, parser_utils_1.isNumericI7)(i7Data.p_max) ? (0, parser_utils_1.convertToNumberI7)(i7Data.p_max) : undefined;
1314
- externalNetworkInjection.maxP = maxP;
1315
- const governorscd = (0, parser_utils_1.isNumericI7)(i7Data.kr) ? (0, parser_utils_1.convertToNumberI7)(i7Data.kr) : undefined;
1316
- externalNetworkInjection.governorSCD = governorscd;
1317
- const maxQ = (0, parser_utils_1.isNumericI7)(i7Data.q_max) ? (0, parser_utils_1.convertToNumberI7)(i7Data.q_max) : undefined;
1318
- externalNetworkInjection.maxQ = maxQ;
1319
- const minP = (0, parser_utils_1.isNumericI7)(i7Data.p_min) ? (0, parser_utils_1.convertToNumberI7)(i7Data.p_min) : undefined;
1320
- externalNetworkInjection.minP = minP;
1321
- const minQ = (0, parser_utils_1.isNumericI7)(i7Data.q_min) ? (0, parser_utils_1.convertToNumberI7)(i7Data.q_min) : undefined;
1322
- externalNetworkInjection.minQ = minQ;
1323
- this.setTopologyEnergySourceConsumerObject(cimModel, externalNetworkInjection, i7Data, targetVoltages);
1324
- /**Convert short circuit constants */
1325
- const r0X0 = undefined;
1326
- const r1X1 = undefined;
1327
- const z0Z1 = undefined;
1328
- const maxR0X0Ratio = r0X0;
1329
- externalNetworkInjection.maxR0ToX0Ratio = maxR0X0Ratio;
1330
- const maxR1X1Ratio = r1X1;
1331
- externalNetworkInjection.maxR1ToX1Ratio = maxR1X1Ratio;
1332
- const maxZ0Z1Ratio = z0Z1;
1333
- externalNetworkInjection.maxZ0ToZ1Ratio = maxZ0Z1Ratio;
1334
- const minR0X0Ratio = r0X0;
1335
- externalNetworkInjection.minR0ToX0Ratio = minR0X0Ratio;
1336
- const minR1X1Ratio = r1X1;
1337
- externalNetworkInjection.minR1ToX1Ratio = minR1X1Ratio;
1338
- const minZ0Z1Ratio = z0Z1;
1339
- externalNetworkInjection.minZ0ToZ1Ratio = minZ0Z1Ratio;
1340
- const i2sk1 = (0, parser_utils_1.isNumericI7)(i7Data.i2sk1) ? (0, parser_utils_1.convertToNumberI7)(i7Data.i2sk1) : undefined;
1341
- const i2sk2 = (0, parser_utils_1.isNumericI7)(i7Data.i2sk2) ? (0, parser_utils_1.convertToNumberI7)(i7Data.i2sk2) : undefined;
1342
- const i2sk2e = (0, parser_utils_1.isNumericI7)(i7Data.i2sk2e) ? (0, parser_utils_1.convertToNumberI7)(i7Data.i2sk2e) : undefined;
1343
- const i2sk3 = (0, parser_utils_1.isNumericI7)(i7Data.i2sk3) ? (0, parser_utils_1.convertToNumberI7)(i7Data.i2sk3) : undefined;
1344
- const ikMin = (0, utils_2.transformShortCircuitCurrent)(Math.min(i2sk1, i2sk2, i2sk2e, i2sk3));
1345
- const ikMax = (0, utils_2.transformShortCircuitCurrent)(Math.max(i2sk1, i2sk2, i2sk2e, i2sk3));
1346
- externalNetworkInjection.minInitialSymShCCurrent = ikMin;
1347
- externalNetworkInjection.maxInitialSymShCCurrent = ikMax;
1348
- const inBetrieb = (0, parser_utils_1.isBooleanI7)(i7Data.betrieb) ? (0, parser_utils_1.convertToBooleanI7)(i7Data.betrieb) : false;
1349
- /** Convert SSH-profile dataset. */
1350
- /**
1351
- * @description Set einspprio as referencePriority. PowerFactory sets external network injections with referencePriority == 1, to slack control mode. In regular case referencePriority for externalnetworkextensions is set to value '0'.
1352
- * einspprio having no effect in loadflow calculation if voltage control does not exists.
1353
- * */
1354
- let prio = (0, parser_utils_1.isNumericI7)(i7Data.einspprio) ? (0, parser_utils_1.convertToNumberI7)(i7Data.einspprio) : undefined;
1355
- if (((_a = externalNetworkInjection.regulatingControl) === null || _a === void 0 ? void 0 : _a.mode) === RegulatingControlModeKind_1.RegulatingControlModeKind.voltage) {
1356
- if (prio !== undefined && prio > 0) {
1357
- externalNetworkInjection.referencePriority = prio + 1; //TODO: SLACK is a injection with maximum prio in the network section and active voltage control.
1358
- }
1359
- else if (prio !== undefined && prio === 0) {
1360
- externalNetworkInjection.referencePriority = prio;
1361
- }
1362
- else {
1363
- externalNetworkInjection.referencePriority = undefined;
1364
- }
1365
- }
1366
- const powerData = (0, utils_2.getActiveReactivePower)(i7Data, mf);
1367
- const p = powerData[0];
1368
- const q = powerData[1];
1369
- externalNetworkInjection.setActivePower(p * -1); //convert to load sign system
1370
- externalNetworkInjection.setReactivePower(q * -1); //convert to load sign system
1371
- // AMPI7 profile
1372
- const cosPhi = (0, parser_utils_1.isNumericI7)(i7Data.cos_phi) ? ((0, parser_utils_1.convertToNumberI7)(i7Data.cos_phi) !== 0 ? (0, parser_utils_1.convertToNumberI7)(i7Data.cos_phi) : 1) : undefined;
1373
- externalNetworkInjection.cos_phi = cosPhi;
1374
- externalNetworkInjection.p_mf = (mf && powerData[2]) ? powerData[2] * -1 : undefined;
1375
- externalNetworkInjection.q_mf = (mf && powerData[3]) ? powerData[3] * -1 : undefined;
1376
- externalNetworkInjection.normallyInService = inBetrieb;
1377
- cimModel.addExternalNetworkInjection(externalNetworkInjection);
1378
- this.addIdMapping(i7Data.id, externalNetworkInjection.mrid, integral_sql_1.I7Objects.EINSPEISUNG);
1379
- }
1380
- catch (err) {
1381
- this.logger.error(`error --- convertVollumrichtereinspeisung ${i7Data.id} ${err}`);
1382
- }
1383
- }
1384
- }
1385
- else {
1386
- this.logger.debug(`Tabelle ${integral_sql_1.Integral7TableNames.VOLLUMRICHTEREINSPEISUNG} ist nicht vorhanden.`);
1387
- }
1388
- });
1389
- }
1390
1257
  convertErsatzQuerZweige(cimModel, targetVoltages, knotenSfIDs, targetClass) {
1391
1258
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
1392
1259
  if (this.isTableAvailable(integral_sql_1.Integral7TableNames.ERSATZQUERZWEIG)) {
@@ -1419,9 +1286,6 @@ class ConverterIntegral7 {
1419
1286
  for (const i7Data of result) {
1420
1287
  const genType = this.generatorTypen.get(i7Data.nametyp);
1421
1288
  const synchronousMachine = new INTEGRALSynchronousMachine_1.INTEGRALSynchronousMachine((0, parser_utils_1.getUUID)(i7Data.guid, this.objectMappingConfig.standardiseUuid), (0, util_create_1.createNotation)([(0, utils_2.getName)(i7Data), '_SM'], 32, true), i7Data.kurzname, i7Data.nameprimaertyp);
1422
- if (synchronousMachine.getUUID() === '10409E08-E2C0-4EBD-AD4C-5370178ED62F') {
1423
- let stop = true;
1424
- }
1425
1289
  const inBetrieb = (0, parser_utils_1.convertToBooleanI7)(i7Data.betrieb);
1426
1290
  const cosPhi = (0, parser_utils_1.isNumericI7)(i7Data.cos_phi) ? (0, parser_utils_1.convertToNumberI7)(i7Data.cos_phi) : undefined;
1427
1291
  const maxP = (0, parser_utils_1.isNumericI7)(i7Data.p_max) ? (0, parser_utils_1.convertToNumberI7)(i7Data.p_max) : undefined;
@@ -1523,7 +1387,7 @@ class ConverterIntegral7 {
1523
1387
  const qType = Math.sqrt(Math.pow(genType === null || genType === void 0 ? void 0 : genType.sr, 2) - Math.pow(pType, 2));
1524
1388
  // AMP I7 Profil
1525
1389
  synchronousMachine.cos_phi = i7Data.cos_phi;
1526
- if (synchronousMachine.getUUID() === '69718d2d-5988-49a9-b5c8-d53d0cf0e89a') {
1390
+ if (synchronousMachine.getUUID() === '03ee3f18-9984-48eb-bc26-09e8c182fbda') {
1527
1391
  let stop = true;
1528
1392
  }
1529
1393
  if (synchronousMachine.getUUID() === 'f6d81d19-dca0-48e9-a43e-4ab1f6bf697d') {
@@ -1575,7 +1439,7 @@ class ConverterIntegral7 {
1575
1439
  // synchronousMachine.voltageRegulationRange: number;
1576
1440
  /** Create ReactiveCapabilityCurves */
1577
1441
  if (minP !== undefined && maxP !== undefined && minQvonPmin !== undefined && maxQvonPmax !== undefined) {
1578
- const reactiveCapabilityCurve = new ReactiveCapabilityCurve_1.ReactiveCapabilityCurve((0, parser_utils_1.getUUID)(i7Data.guid_rcc, this.objectMappingConfig.standardiseUuid), (0, util_create_1.createNotation)(['CurveData', '_', synchronousMachine.getUUID().substring(0, 8), '_RCC']));
1442
+ const reactiveCapabilityCurve = new ReactiveCapabilityCurve_1.ReactiveCapabilityCurve((0, parser_utils_1.getUUID)(i7Data.guid_rcc, this.objectMappingConfig.standardiseUuid), (0, util_create_1.createNotation)(['CurveData', synchronousMachine.mrid, '_RCC']));
1579
1443
  reactiveCapabilityCurve.curveStyle = CurveStyle_1.CurveStyle.straightLineYValues;
1580
1444
  reactiveCapabilityCurve.xUnit = UnitSymbol_1.UnitSymbol.W;
1581
1445
  reactiveCapabilityCurve.y1Unit = UnitSymbol_1.UnitSymbol.VAr;
@@ -1658,9 +1522,6 @@ class ConverterIntegral7 {
1658
1522
  // TODO: genControlSource is not required.
1659
1523
  //generatingUnit.genControlSource = GeneratorControlSource.onAGC;
1660
1524
  /**Complete GeneratingUnit data */
1661
- if (generatingUnit.getUUID() === '70810e1e74aa4359b387bef9158f4767' || synchronousMachine.getUUID() === '70810e1e74aa4359b387bef9158f4767') {
1662
- const stop = true;
1663
- }
1664
1525
  generatingUnit.initialP = (0, parser_utils_1.isNumericI7)(i7Data.p0) ? (0, parser_utils_1.convertToNumberI7)(i7Data.p0) : undefined;
1665
1526
  // generatingUnit.longPF
1666
1527
  // generatingUnit.maximumAllowableSpinningReserve
@@ -1812,7 +1673,7 @@ class ConverterIntegral7 {
1812
1673
  //EQ core profile content
1813
1674
  const connectivityNode = cimModel.objects.get(this.integralID2UUID.get(i7Data.anschluss));
1814
1675
  if (connectivityNode) {
1815
- this.createConnection(cimModel, asynchronousMachine, connectivityNode, PhaseCode_1.PhaseCode.ABC, true);
1676
+ (0, util_create_1.createConnection)(cimModel, asynchronousMachine, connectivityNode, PhaseCode_1.PhaseCode.ABC);
1816
1677
  const equipmentContainer = this.determineEquipmentContainer('VoltageLevel', cimModel, cimModel.getObject(connectivityNode.getConnectivityNodeContainerUUID()));
1817
1678
  if (equipmentContainer) {
1818
1679
  equipmentContainer.addEquipment(asynchronousMachine);
@@ -2075,12 +1936,12 @@ class ConverterIntegral7 {
2075
1936
  }
2076
1937
  else if (flag_lfl || flag_ks) {
2077
1938
  equivalentInjection.regulationCapability = false;
2078
- equivalentInjection.r = (0, parser_utils_1.isNumericI7)(r1) ? r1 : 1e9;
2079
- equivalentInjection.r0 = (0, parser_utils_1.isNumericI7)(r0) ? r0 : 1e9;
2080
- equivalentInjection.r2 = (0, parser_utils_1.isNumericI7)(r1) ? r1 : 1e9;
2081
- equivalentInjection.x = (0, parser_utils_1.isNumericI7)(x1) ? x1 : 1e9;
2082
- equivalentInjection.x0 = (0, parser_utils_1.isNumericI7)(x0) ? x0 : 1e9;
2083
- equivalentInjection.x2 = (0, parser_utils_1.isNumericI7)(x1) ? x1 : 1e9;
1939
+ equivalentInjection.r = (0, parser_utils_1.isNumericI7)(r1) ? 1e9 : r1;
1940
+ equivalentInjection.r0 = (0, parser_utils_1.isNumericI7)(r0) ? 1e9 : r0;
1941
+ equivalentInjection.r2 = (0, parser_utils_1.isNumericI7)(r1) ? 1e9 : r1;
1942
+ equivalentInjection.x = (0, parser_utils_1.isNumericI7)(x1) ? 1e9 : x1;
1943
+ equivalentInjection.x0 = (0, parser_utils_1.isNumericI7)(x0) ? 1e9 : x0;
1944
+ equivalentInjection.x2 = (0, parser_utils_1.isNumericI7)(x1) ? 1e9 : x1;
2084
1945
  }
2085
1946
  /** Export Extended Ward equivalent with no voltage regulation */
2086
1947
  else if (((r_ext !== undefined && r_ext !== 0) || (x_ext !== undefined && x_ext !== 0))) {
@@ -2376,9 +2237,6 @@ class ConverterIntegral7 {
2376
2237
  const qr = (0, parser_utils_1.isNumericI7)(i7Data.qr) ? (0, parser_utils_1.convertToNumberI7)(i7Data.qr) : undefined;
2377
2238
  const pr = (0, parser_utils_1.isNumericI7)(i7Data.pr) ? (0, parser_utils_1.convertToNumberI7)(i7Data.pr) : undefined;
2378
2239
  shunt.nomU = (0, parser_utils_1.isNumericI7)(i7Data.ur) ? (0, parser_utils_1.convertToNumberI7)(i7Data.ur) : undefined;
2379
- if (shunt.getUUID() === '547B9591-C41B-4496-9954-2215B8945124') {
2380
- let stop = true;
2381
- }
2382
2240
  // Set electrical properties (EQ core)
2383
2241
  if ((0, parser_utils_1.isNumericI7)(i7Data.aktstufe) && (0, parser_utils_1.isNumericI7)(i7Data.maxstufe)) {
2384
2242
  shunt.sections = (0, parser_utils_1.convertToNumberI7)(i7Data.aktstufe);
@@ -2518,7 +2376,7 @@ class ConverterIntegral7 {
2518
2376
  /** EQ */
2519
2377
  statVarCom.capacitiveRating = (0, utils_2.calculateStatVarComRating)(ur, qkapr);
2520
2378
  statVarCom.inductiveRating = Math.abs((0, utils_2.calculateStatVarComRating)(ur, qindr)) * -1;
2521
- statVarCom.slope = (0, parser_utils_1.isNumericI7)(mrez) && mrez !== 0 ? 1 / (0, parser_utils_1.convertToNumberI7)(mrez) : 0;
2379
+ statVarCom.slope = mrez !== 0 ? 1 / mrez : 0;
2522
2380
  statVarCom.sVCControlMode = SVCControlMode_1.SVCControlMode.voltage;
2523
2381
  statVarCom.aggregate = false;
2524
2382
  /** EQ-SC */
@@ -2527,6 +2385,7 @@ class ConverterIntegral7 {
2527
2385
  /** SV */
2528
2386
  //statVarCom.svpowerflow
2529
2387
  /** Regelung */
2388
+ const uuid = (0, parser_utils_1.getUUID)(i7Data.guid_rc);
2530
2389
  const regulatingControl = this.setTopologyEnergySourceConsumerObject(cimModel, statVarCom, i7Data, targetVoltages, undefined, true);
2531
2390
  /** EQ */
2532
2391
  if (regulatingControl) {
@@ -2554,7 +2413,7 @@ class ConverterIntegral7 {
2554
2413
  /** EQ */
2555
2414
  statVarCom.capacitiveRating = (0, utils_2.calculateStatVarComRating)(ur, qkapr);
2556
2415
  statVarCom.inductiveRating = Math.abs((0, utils_2.calculateStatVarComRating)(ur, qindr)) * -1;
2557
- statVarCom.slope = (0, parser_utils_1.isNumericI7)(mrez) && mrez !== 0 ? 1 / (0, parser_utils_1.convertToNumberI7)(mrez) : 0;
2416
+ statVarCom.slope = mrez !== 0 ? 1 / mrez : 0;
2558
2417
  statVarCom.sVCControlMode = SVCControlMode_1.SVCControlMode.voltage;
2559
2418
  statVarCom.aggregate = false;
2560
2419
  /** EQ-SC */
@@ -2566,11 +2425,11 @@ class ConverterIntegral7 {
2566
2425
  /** EQ */
2567
2426
  statVarCom.voltageSetPoint = regulatingControl.targetValue ? regulatingControl.targetValue : ur;
2568
2427
  cimModel.addStaticVarCompensator(statVarCom);
2569
- this.addIdMapping(i7Data.id, statVarCom.mrid, integral_sql_1.Integral7TableNames.SVC);
2428
+ this.addIdMapping(i7Data.id, statVarCom.mrid, integral_sql_1.Integral7TableNames.STATCOM);
2570
2429
  }
2571
2430
  }
2572
2431
  else {
2573
- this.logger.debug(`Tabelle ${integral_sql_1.Integral7TableNames.SVC} ist nicht vorhanden.`);
2432
+ this.logger.debug(`Tabelle ${integral_sql_1.Integral7TableNames.STATCOM} ist nicht vorhanden.`);
2574
2433
  }
2575
2434
  });
2576
2435
  }
@@ -2623,10 +2482,9 @@ class ConverterIntegral7 {
2623
2482
  csConverter.ratedIdc = (0, utils_2.calculateRatedIdc)(csConverter.ratedUdc, pr);
2624
2483
  /** spannungsabhängige Wirk-Verluste in kW bei Leerlauf mit Bemessungsspannung in kV*/
2625
2484
  csConverter.idleLoss = (0, parser_utils_1.isNumericI7)(i7Data.p_leer) ? (0, parser_utils_1.convertToNumberI7)(i7Data.p_leer) * Math.pow(10, -3) : undefined;
2626
- csConverter.maxUdc = csConverter.ratedUdc * 1.08; // +5% * ratedUdc
2627
- csConverter.minUdc = csConverter.ratedUdc * 0.98; // -5% * ratedUdc
2628
- //R=U^2/P
2629
- csConverter.resistiveLoss = (0, parser_utils_1.isNumericI7)(i7Data.pkr) ? Math.pow(csConverter.ratedUdc, 2) / ((0, parser_utils_1.convertToNumberI7)(i7Data.pkr) * Math.pow(10, 3)) : undefined;
2485
+ csConverter.maxUdc = csConverter.ratedUdc * 1.05; // +5% * ratedUdc
2486
+ csConverter.minUdc = csConverter.ratedUdc * 0.95; // -5% * ratedUdc
2487
+ csConverter.resistiveLoss = (0, parser_utils_1.isNumericI7)(i7Data.pkr) ? (0, parser_utils_1.convertToNumberI7)(i7Data.pkr) * Math.pow(10, -3) : undefined;
2630
2488
  csConverter.switchingLoss = 0;
2631
2489
  /* csConverter.numberOfValves
2632
2490
  csConverter.valveU0*/
@@ -2720,21 +2578,21 @@ class ConverterIntegral7 {
2720
2578
  /** Bemessungsleistung (Gleichstromseite) in MW
2721
2579
  * im CS-Fall S = P?
2722
2580
  * Abhängig vom */
2723
- vsConverter.baseS = (0, parser_utils_1.isNumericI7)(i7Data.pr) ? (0, parser_utils_1.convertToNumberI7)(i7Data.pr) : undefined;
2581
+ vsConverter.baseS = i7Data.pr;
2724
2582
  /** Bemessungsspannung (Gleichstromseite) in kV*/
2725
2583
  //If udc is set in Integral data model set converter.ratedUdc as i7Data.udc else take the data value for i7Data.ur (Bemessungsspannung)
2726
2584
  vsConverter.ratedUdc = (0, parser_utils_1.isNumericI7)(i7Data.udc) ? (0, parser_utils_1.convertToNumberI7)(i7Data.udc) : ((0, parser_utils_1.isNumericI7)(i7Data.ur) ? (0, parser_utils_1.convertToNumberI7)(i7Data.ur) : undefined);
2727
- /** spannungsabhängige Wirk-Verluste in MW bei Leerlauf mit Bemessungsspannung in kV*/
2585
+ /** spannungsabhängige Wirk-Verluste bei Leerlauf mit Bemessungsspannung in kV*/
2728
2586
  vsConverter.idleLoss = (0, parser_utils_1.isNumericI7)(i7Data.p_leer) ? (0, parser_utils_1.convertToNumberI7)(i7Data.p_leer) * Math.pow(10, -3) : undefined;
2729
- vsConverter.maxUdc = vsConverter.ratedUdc * 1.08; // +8% * ratedUdc
2730
- vsConverter.minUdc = vsConverter.ratedUdc * 0.98; // -2% * ratedUdc
2731
- vsConverter.resistiveLoss = (0, parser_utils_1.isNumericI7)(i7Data.pkr) ? Math.pow(vsConverter.ratedUdc, 2) / ((0, parser_utils_1.convertToNumberI7)(i7Data.pkr) * Math.pow(10, 3)) : undefined;
2587
+ vsConverter.maxUdc = vsConverter.ratedUdc * 1.08; // +5% * ratedUdc
2588
+ vsConverter.minUdc = vsConverter.ratedUdc * 0.98; // -5% * ratedUdc
2589
+ vsConverter.resistiveLoss = (0, parser_utils_1.isNumericI7)(i7Data.pkr) ? (0, parser_utils_1.convertToNumberI7)(i7Data.pkr) * Math.pow(10, -3) : undefined;
2732
2590
  vsConverter.switchingLoss = undefined;
2733
2591
  /* csConverter.maxModulationIndex = ;
2734
2592
  csConverter.maxValveCurrent = */
2735
2593
  /** CapabilityCurveData */
2736
- const maxP = (0, parser_utils_1.isNumericI7)(i7Data.p_max) ? (0, parser_utils_1.convertToNumberI7)(i7Data.p_max) : vsConverter.baseS;
2737
- const minP = (0, parser_utils_1.isNumericI7)(i7Data.p_min) ? (0, parser_utils_1.convertToNumberI7)(i7Data.p_min) : -1 * vsConverter.baseS;
2594
+ const maxP = (0, parser_utils_1.isNumericI7)(i7Data.p_max) ? (0, parser_utils_1.convertToNumberI7)(i7Data.p_max) : undefined;
2595
+ const minP = (0, parser_utils_1.isNumericI7)(i7Data.p_min) ? (0, parser_utils_1.convertToNumberI7)(i7Data.p_min) : undefined;
2738
2596
  const maxQ = (0, parser_utils_1.isNumericI7)(i7Data.q_max) ? (0, parser_utils_1.convertToNumberI7)(i7Data.q_max) : undefined;
2739
2597
  const minQ = (0, parser_utils_1.isNumericI7)(i7Data.q_min) ? (0, parser_utils_1.convertToNumberI7)(i7Data.q_min) : undefined;
2740
2598
  /** SSH export values */
@@ -2757,11 +2615,11 @@ class ConverterIntegral7 {
2757
2615
  vsConverter.dCTerminals.set(acDCConverterDCTerminal.getUUID(), acDCConverterDCTerminal);
2758
2616
  acDCConverterDCTerminal.dcNode = dcNode;
2759
2617
  dcNode.dcTerminals.set(acDCConverterDCTerminal.getUUID(), acDCConverterDCTerminal);
2760
- /** Create VsCapabilityCurves */
2618
+ /** Create ReactiveCapabilityCurves */
2761
2619
  if (minP !== undefined && maxP !== undefined && minQ != undefined && maxQ !== undefined) {
2762
2620
  let keyVsCapabilityCurve = cim_class_names_1.ClassNames.VsCapabilityCurve + i7Data.id + vsConverter.getUUID();
2763
2621
  let uuidVsCapabilityCurve = common_utils_1.CommonUtils.generateUUIDv5(cim_class_names_1.ClassNames.VsCapabilityCurve, this.configUuid, keyVsCapabilityCurve);
2764
- const vsCapabilityCurve = new VsCapabilityCurve_1.VsCapabilityCurve(uuidVsCapabilityCurve, (0, util_create_1.createNotation)(['CurveData', '_', vsConverter.getUUID().substring(0, 8), '_VCC']));
2622
+ const vsCapabilityCurve = new VsCapabilityCurve_1.VsCapabilityCurve(uuidVsCapabilityCurve, (0, util_create_1.createNotation)(['CurveData', vsConverter.getUUID().substring(0, 8), '_VCC']));
2765
2623
  vsCapabilityCurve.curveStyle = CurveStyle_1.CurveStyle.straightLineYValues;
2766
2624
  vsCapabilityCurve.xUnit = UnitSymbol_1.UnitSymbol.W;
2767
2625
  vsCapabilityCurve.y1Unit = UnitSymbol_1.UnitSymbol.VAr;
@@ -2772,7 +2630,7 @@ class ConverterIntegral7 {
2772
2630
  const curveData1 = new CurveData_1.CurveData(uuidCurveData);
2773
2631
  curveData1.curve = vsCapabilityCurve;
2774
2632
  curveData1.xvalue = minP; //pMin
2775
- curveData1.y1value = minQ; //qMin pMax
2633
+ curveData1.y1value = minQ; //qMin
2776
2634
  curveData1.y2value = maxQ; //qMax pMin
2777
2635
  cimModel.addCurveData(curveData1);
2778
2636
  //reactive capability curve data for pmax
@@ -2782,7 +2640,7 @@ class ConverterIntegral7 {
2782
2640
  curveData2.curve = vsCapabilityCurve;
2783
2641
  curveData2.xvalue = maxP; //pMax
2784
2642
  curveData2.y1value = minQ; //qMin pMax
2785
- curveData2.y2value = maxQ; //qMax pMax
2643
+ curveData2.y2value = maxQ; //qMin pMax
2786
2644
  cimModel.addCurveData(curveData2);
2787
2645
  cimModel.addVsCapabilityCurve(vsCapabilityCurve);
2788
2646
  vsConverter.capabilityCurve = vsCapabilityCurve;
@@ -2905,6 +2763,7 @@ class ConverterIntegral7 {
2905
2763
  if (i7Data.guid === '_ab64e281-72d0-45fb-8cb3-da4ae99a4f8c') {
2906
2764
  const stop = true;
2907
2765
  }
2766
+ let einspeisePrioritaet = (0, parser_utils_1.isNumericI7)(i7Data.einspprio) ? (0, parser_utils_1.convertToNumberI7)(i7Data.einspprio) : undefined;
2908
2767
  const maxP = (0, parser_utils_1.isNumericI7)(i7Data.p_max) ? (0, parser_utils_1.convertToNumberI7)(i7Data.p_max) : undefined;
2909
2768
  externalNetworkInjection.maxP = maxP;
2910
2769
  const governorscd = (0, parser_utils_1.isNumericI7)(i7Data.kr) ? (0, parser_utils_1.convertToNumberI7)(i7Data.kr) : undefined;
@@ -2936,10 +2795,9 @@ class ConverterIntegral7 {
2936
2795
  const skAkt = (0, parser_utils_1.isNumericI7)(i7Data.sk_akt) ? (0, parser_utils_1.convertToNumberI7)(i7Data.sk_akt) : undefined;
2937
2796
  const skMin = (0, parser_utils_1.isNumericI7)(i7Data.sk_min) ? (0, parser_utils_1.convertToNumberI7)(i7Data.sk_min) : skAkt;
2938
2797
  const skMax = (0, parser_utils_1.isNumericI7)(i7Data.sk_max) ? (0, parser_utils_1.convertToNumberI7)(i7Data.sk_max) : skAkt;
2939
- const nomV = externalNetworkInjection.getTerminals().values().next().value.getConnectivityNode().getBaseVoltageAsNumber();
2940
- const minIkSecond = (0, parser_utils_1.isNumericI7)(i7Data.sk_min) ? (0, utils_2.calculateShortCircuitCurrent)(skMin, nomV) : undefined;
2798
+ const minIkSecond = (0, parser_utils_1.isNumericI7)(i7Data.sk_min) ? (0, parser_utils_1.convertToNumberI7)(skMin) / Math.sqrt(3) * skMin : undefined;
2941
2799
  externalNetworkInjection.minInitialSymShCCurrent = minIkSecond;
2942
- const maxIkSecond = (0, parser_utils_1.isNumericI7)(i7Data.sk_max) ? (0, utils_2.calculateShortCircuitCurrent)(skMax, nomV) : undefined;
2800
+ const maxIkSecond = (0, parser_utils_1.isNumericI7)(i7Data.sk_max) ? (0, parser_utils_1.convertToNumberI7)(skMax) / Math.sqrt(3) * skMax : undefined;
2943
2801
  externalNetworkInjection.maxInitialSymShCCurrent = maxIkSecond;
2944
2802
  const inBetrieb = (0, parser_utils_1.isBooleanI7)(i7Data.betrieb) ? (0, parser_utils_1.convertToBooleanI7)(i7Data.betrieb) : false;
2945
2803
  /** Convert SSH-profile dataset. */
@@ -3002,9 +2860,6 @@ class ConverterIntegral7 {
3002
2860
  if (condEquip instanceof RotatingMachine_1.RotatingMachine || condEquip instanceof ExternalNetworkInjection_1.ExternalNetworkInjection || condEquip instanceof EquivalentInjection_1.EquivalentInjection) {
3003
2861
  i7DataEinsp = i7Data;
3004
2862
  i7DataRQ = i7Data;
3005
- if (condEquip.getUUID() === '10409E08-E2C0-4EBD-AD4C-5370178ED62F' || condEquip.getUUID() === '0c67bf21-a557-46ea-af63-2a3ac116bd2e') {
3006
- const stop = true;
3007
- }
3008
2863
  }
3009
2864
  if (condEquip instanceof SynchronousMachine_1.SynchronousMachine) {
3010
2865
  suffix = '_SM';
@@ -3025,26 +2880,16 @@ class ConverterIntegral7 {
3025
2880
  suffix = '_EI';
3026
2881
  }
3027
2882
  else if (condEquip instanceof StaticVarCompensator_1.StaticVarCompensator) {
3028
- if (condEquip.getUUID() === '18e12018-03dd-4d6e-a626-ea404017050f' || condEquip.getUUID() === '4352ad9f-c841-4dcb-9a42-3ccabcb56487'
3029
- || condEquip.getUUID() === '3d060069-9253-4e68-bb75-74d92982bb1a' || condEquip.getUUID() === '03c53185-aaa7-4040-8b43-76f79fac82b9' || condEquip.getUUID() === '02ba5072-a387-47c6-b9ce-b9d3def21964') {
3030
- let stop = true;
3031
- }
3032
2883
  i7DataSVC = i7Data;
3033
2884
  i7DataRQ = i7Data;
3034
2885
  suffix = '_SVC';
3035
2886
  }
3036
2887
  else if (condEquip instanceof LinearShuntCompensator_1.LinearShuntCompensator) {
3037
- if (condEquip.getUUID() === '547B9591-C41B-4496-9954-2215B8945124') {
3038
- let stop = true;
3039
- }
3040
2888
  i7DataKomp = i7Data;
3041
2889
  i7DataRQ = i7Data;
3042
2890
  suffix = '_LSC';
3043
2891
  }
3044
2892
  else if (condEquip instanceof ACDCConverter_1.ACDCConverter) {
3045
- if (condEquip.getUUID() === '71331a6b-000d-4049-89cc-9319a69367f6') {
3046
- let stop = true;
3047
- }
3048
2893
  i7DataHgue = i7Data;
3049
2894
  suffix = '_ACDCC';
3050
2895
  }
@@ -3081,61 +2926,62 @@ class ConverterIntegral7 {
3081
2926
  let tVMax = undefined; //maximum target voltage
3082
2927
  let tVMin = undefined; //minimum target voltage
3083
2928
  const regCondEquip = condEquip;
3084
- //get rated voltage of controlled node.
3085
- if (knotenSpgGeregelt && spannungsregelungRemote) {
3086
- cterminal = (0, util_graph2tree_1.getControlledNode)(connectivityNode, knotenSpgGeregelt);
3087
- if (cterminal === undefined) {
3088
- let stop = true;
3089
- }
3090
- if (cterminal) {
3091
- tCn = cterminal.getConnectivityNode();
3092
- if (tCn) {
3093
- tVMax = targetVoltages.get(this.UUID2Integral7ID.get(tCn.getUUID()).find(elem => elem))['umax'];
3094
- tVMin = targetVoltages.get(this.UUID2Integral7ID.get(tCn.getUUID()).find(elem => elem))['umin'];
3095
- usoll = targetVoltages.get(this.UUID2Integral7ID.get(tCn.getUUID()).find(elem => elem))['usoll'];
2929
+ if (spannungsregelungLokal || spannungsregelungRemote) {
2930
+ //get rated voltage of controlled node.
2931
+ if (knotenSpgGeregelt && spannungsregelungRemote) {
2932
+ cterminal = (0, util_graph2tree_1.getControlledNode)(connectivityNode, knotenSpgGeregelt);
2933
+ if (cterminal === undefined) {
2934
+ let stop = true;
2935
+ }
2936
+ if (cterminal) {
2937
+ tCn = cterminal.getConnectivityNode();
2938
+ if (tCn) {
2939
+ tVMax = targetVoltages.get(this.UUID2Integral7ID.get(tCn.getUUID()).find(elem => elem))['umax'];
2940
+ tVMin = targetVoltages.get(this.UUID2Integral7ID.get(tCn.getUUID()).find(elem => elem))['umin'];
2941
+ usoll = targetVoltages.get(this.UUID2Integral7ID.get(tCn.getUUID()).find(elem => elem))['usoll'];
2942
+ }
2943
+ else {
2944
+ this.logger.debug(`debug --- ${i7Data.constructor.name} ${i7Data.id} Entfernt geregelter Knoten konnte nicht ermittelt werden.`);
2945
+ }
3096
2946
  }
3097
2947
  else {
3098
- this.logger.debug(`debug --- ${i7Data.constructor.name} ${i7Data.id} Entfernt geregelter Knoten konnte nicht ermittelt werden.`);
2948
+ this.logger.debug(`debug --- ${i7Data.constructor.name} ${i7Data.id} Anschlusspunkt (Terminal) des entfernt geregelter Knoten konnte nicht ermittelt werden.`);
3099
2949
  }
3100
2950
  }
3101
- else {
3102
- this.logger.debug(`debug --- ${i7Data.constructor.name} ${i7Data.id} Anschlusspunkt (Terminal) des entfernt geregelter Knoten konnte nicht ermittelt werden.`);
3103
- }
3104
- }
3105
- if ((knotenSpgGeregelt || connectivityNode) && spannungsregelungLokal) {
3106
- switch (knotenSpgGeregelt) {
3107
- case undefined: {
3108
- if (cpTerminal.connectivityNode.getConnectivityNodeContainer() instanceof Bay_1.Bay) {
3109
- cterminal = (0, util_graph2tree_1.getNextBusbar)(connectivityNode);
2951
+ if ((knotenSpgGeregelt || connectivityNode) && spannungsregelungLokal) {
2952
+ switch (knotenSpgGeregelt) {
2953
+ case undefined: {
2954
+ if (cpTerminal.connectivityNode.getConnectivityNodeContainer() instanceof Bay_1.Bay) {
2955
+ cterminal = (0, util_graph2tree_1.getNextBusbar)(connectivityNode);
2956
+ }
2957
+ if (cterminal === undefined) {
2958
+ cterminal = (0, util_graph2tree_1.getControlledNode)(cimModel.objects.get(this.integralID2UUID.get(i7Data.anschluss)), cimModel.objects.get(this.integralID2UUID.get(i7Data.anschluss)));
2959
+ }
2960
+ break;
3110
2961
  }
3111
- if (cterminal === undefined) {
3112
- cterminal = (0, util_graph2tree_1.getControlledNode)(cimModel.objects.get(this.integralID2UUID.get(i7Data.anschluss)), cimModel.objects.get(this.integralID2UUID.get(i7Data.anschluss)));
2962
+ default: {
2963
+ cterminal = (0, util_graph2tree_1.getControlledNode)(connectivityNode, knotenSpgGeregelt);
3113
2964
  }
3114
- break;
3115
2965
  }
3116
- default: {
3117
- cterminal = (0, util_graph2tree_1.getControlledNode)(connectivityNode, knotenSpgGeregelt);
2966
+ if (cterminal) {
2967
+ tCn = cterminal.getConnectivityNode();
2968
+ if (tCn) {
2969
+ tVMax = targetVoltages.get(this.UUID2Integral7ID.get(tCn.getUUID()).find(elem => elem))['umax'];
2970
+ tVMin = targetVoltages.get(this.UUID2Integral7ID.get(tCn.getUUID()).find(elem => elem))['umin'];
2971
+ usoll = targetVoltages.get(this.UUID2Integral7ID.get(tCn.getUUID()).find(elem => elem))['usoll'];
2972
+ }
2973
+ else {
2974
+ this.logger.debug(`debug --- ${i7Data.constructor.name} ${i7Data.id} Lokal geregelter Knoten konnte nicht ermittelt werden.`);
2975
+ }
3118
2976
  }
3119
2977
  }
3120
- if (cterminal) {
3121
- tCn = cterminal.getConnectivityNode();
2978
+ uband = (0, parser_utils_1.isNumericI7)(tVMax) && (0, parser_utils_1.isNumericI7)(tVMin) ? (0, parser_utils_1.convertToNumberI7)(tVMax) - (0, parser_utils_1.convertToNumberI7)(tVMin) : undefined;
2979
+ if (uband === undefined) {
3122
2980
  if (tCn) {
3123
- tVMax = targetVoltages.get(this.UUID2Integral7ID.get(tCn.getUUID()).find(elem => elem))['umax'];
3124
- tVMin = targetVoltages.get(this.UUID2Integral7ID.get(tCn.getUUID()).find(elem => elem))['umin'];
3125
- usoll = targetVoltages.get(this.UUID2Integral7ID.get(tCn.getUUID()).find(elem => elem))['usoll'];
3126
- }
3127
- else {
3128
- this.logger.debug(`debug --- ${i7Data.constructor.name} ${i7Data.id} Lokal geregelter Knoten konnte nicht ermittelt werden.`);
2981
+ uband = tCn.getBaseVoltageAsNumber() * 0.1;
3129
2982
  }
3130
2983
  }
3131
2984
  }
3132
- uband = (0, parser_utils_1.isNumericI7)(tVMax) && (0, parser_utils_1.isNumericI7)(tVMin) ? (0, parser_utils_1.convertToNumberI7)(tVMax) - (0, parser_utils_1.convertToNumberI7)(tVMin) : undefined;
3133
- if (uband === undefined) {
3134
- if (tCn) {
3135
- uband = tCn.getBaseVoltageAsNumber() * 0.1;
3136
- }
3137
- }
3138
- usoll = (0, parser_utils_1.isNumericI7)(i7Data.usoll) ? (0, parser_utils_1.convertToNumberI7)(i7Data.usoll) : usoll;
3139
2985
  //Create and define regulating control for voltage control
3140
2986
  if (cterminal !== undefined) {
3141
2987
  rControl = (0, utils_2.createRegulatingControl)((0, parser_utils_1.getUUID)(i7DataRQ.guid_rc), (0, util_create_1.createNotation)([regCondEquip.getUUID().substring(0, 8), suffix]), true, UnitMultiplier_1.UnitMultiplier.k, RegulatingControlModeKind_1.RegulatingControlModeKind.voltage);
@@ -3148,9 +2994,6 @@ class ConverterIntegral7 {
3148
2994
  rControl.targetDeadband = (0, parser_utils_1.isNumericI7)(uband) ? uband : undefined; //zulässiges Spannungsband
3149
2995
  /** Spannung in kilo*/
3150
2996
  //TODO TEMP FIX bei lokaler Regelegung bleibt usoll = null.
3151
- if (cterminal !== undefined && cterminal.getUUID() === '7564eef1-6cd6-59c2-957e-825c6593fdf2') {
3152
- const stop = true;
3153
- }
3154
2997
  rControl.targetValue = (0, parser_utils_1.isNumericI7)(usoll) ? usoll : ((0, parser_utils_1.isNumericI7)(i7DataEinsp === null || i7DataEinsp === void 0 ? void 0 : i7DataEinsp.usoll) ? (0, parser_utils_1.convertToNumberI7)(i7DataEinsp.usoll) : tCn.getBaseVoltageAsNumber());
3155
2998
  const guidSuffix = (_a = tCn === null || tCn === void 0 ? void 0 : tCn.getVoltageLevel()) === null || _a === void 0 ? void 0 : _a.getUUID().substring(0, 8);
3156
2999
  rControl.name = (0, util_create_1.createNotation)([rControl.name, '_', guidSuffix, '_RC'], 32, true);
@@ -3166,7 +3009,7 @@ class ConverterIntegral7 {
3166
3009
  }
3167
3010
  }
3168
3011
  }
3169
- else if (isRegulatingControl && i7DataSVC !== undefined) {
3012
+ else if (isRegulatingControl && i7DataSVC) {
3170
3013
  /** Regelung */
3171
3014
  const regCondEquip = condEquip;
3172
3015
  const cterminal = (0, util_graph2tree_1.getNextBusbar)(connectivityNode);
@@ -3187,12 +3030,12 @@ class ConverterIntegral7 {
3187
3030
  uband = (0, parser_utils_1.isNumericI7)(tVMax) && (0, parser_utils_1.isNumericI7)(tVMin) ? (0, parser_utils_1.convertToNumberI7)(tVMax) - (0, parser_utils_1.convertToNumberI7)(tVMin) : undefined;
3188
3031
  if (uband === undefined) {
3189
3032
  if (tCn) {
3190
- uband = (0, parser_utils_1.isNumericI7)(uref) ? uref * 0.1 : ((0, parser_utils_1.isNumericI7)(usoll) ? usoll * 0.1 : tCn.getBaseVoltageAsNumber() * 0.1);
3033
+ uband = tCn.getBaseVoltageAsNumber() * 0.1;
3191
3034
  }
3192
3035
  }
3193
3036
  if (cterminal !== undefined) {
3194
3037
  const uuid = (0, parser_utils_1.getUUID)(i7DataSVC.guid_rc);
3195
- rControl = (0, utils_2.createRegulatingControl)(uuid, (0, util_create_1.createNotation)([condEquip.getUUID().substring(0, 8), suffix]), true, UnitMultiplier_1.UnitMultiplier.k, RegulatingControlModeKind_1.RegulatingControlModeKind.voltage);
3038
+ rControl = (0, utils_2.createRegulatingControl)(uuid, (0, util_create_1.createNotation)([condEquip.getUUID().substring(0, 8), suffix]), inBetrieb, UnitMultiplier_1.UnitMultiplier.k, RegulatingControlModeKind_1.RegulatingControlModeKind.voltage);
3196
3039
  rControl.enabled = true;
3197
3040
  if (isStatcom) {
3198
3041
  rControl.discrete = true;
@@ -3265,23 +3108,20 @@ class ConverterIntegral7 {
3265
3108
  usoll = (0, parser_utils_1.isNumericI7)(i7DataHgue.usoll) ? (0, parser_utils_1.convertToNumberI7)(i7DataHgue.usoll) : undefined;
3266
3109
  if (regelungU) {
3267
3110
  condEquip.pPccControl = VsPpccControlKind_1.VsPpccControlKind.udc;
3268
- condEquip.qPccControl = VsQpccControlKind_1.VsQpccControlKind.powerFactorPcc;
3269
- condEquip.targetUdc = (0, parser_utils_1.isNumericI7)(i7DataHgue.udc) ? (0, parser_utils_1.convertToNumberI7)(i7DataHgue.udc) : condEquip.ratedUdc;
3111
+ condEquip.qPccControl = VsQpccControlKind_1.VsQpccControlKind.voltagePcc;
3270
3112
  }
3271
3113
  else if (regelungP) {
3272
3114
  condEquip.pPccControl = VsPpccControlKind_1.VsPpccControlKind.pPcc;
3273
- condEquip.qPccControl = VsQpccControlKind_1.VsQpccControlKind.powerFactorPcc;
3115
+ condEquip.qPccControl = VsQpccControlKind_1.VsQpccControlKind.voltagePcc;
3274
3116
  }
3275
- if (isRegulatingControl) { //voltage control for AC-side
3117
+ if ((spannungsregelungLokal || spannungsregelungRemote) && usoll == undefined) {
3118
+ //get rated voltage of controlled node.
3276
3119
  let cterminal = undefined; //connection point terminal of this device
3277
3120
  let tVMax = undefined; //maximum target voltage
3278
3121
  let tVMin = undefined; //minimum target voltage
3279
- //get rated voltage of controlled node.
3122
+ //get target voltage of controlled node.
3280
3123
  if (knotenSpgGeregelt && spannungsregelungRemote) {
3281
3124
  cterminal = (0, util_graph2tree_1.getControlledNode)(connectivityNode, knotenSpgGeregelt);
3282
- if (cterminal === undefined) {
3283
- let stop = true;
3284
- }
3285
3125
  if (cterminal) {
3286
3126
  tCn = cterminal.getConnectivityNode();
3287
3127
  if (tCn) {
@@ -3300,9 +3140,7 @@ class ConverterIntegral7 {
3300
3140
  if ((knotenSpgGeregelt || connectivityNode) && spannungsregelungLokal) {
3301
3141
  switch (knotenSpgGeregelt) {
3302
3142
  case undefined: {
3303
- if (cpTerminal.connectivityNode.getConnectivityNodeContainer() instanceof Bay_1.Bay) {
3304
- cterminal = (0, util_graph2tree_1.getNextBusbar)(connectivityNode);
3305
- }
3143
+ cterminal = (0, util_graph2tree_1.getNextBusbar)(connectivityNode);
3306
3144
  if (cterminal === undefined) {
3307
3145
  cterminal = (0, util_graph2tree_1.getControlledNode)(cimModel.objects.get(this.integralID2UUID.get(i7Data.anschluss)), cimModel.objects.get(this.integralID2UUID.get(i7Data.anschluss)));
3308
3146
  }
@@ -3324,10 +3162,10 @@ class ConverterIntegral7 {
3324
3162
  }
3325
3163
  }
3326
3164
  }
3327
- condEquip.qPccControl = VsQpccControlKind_1.VsQpccControlKind.voltagePcc;
3328
3165
  }
3329
3166
  condEquip.targetUpcc = usoll;
3330
- //(condEquip as VsConverter).targetQpcc = 0; //ReactivePower, ReactivePowerCapabilityCurve is set in advance
3167
+ condEquip.targetQpcc = 0; //ReactivePower, TODO: define ReactivePowerCapabilityCurve
3168
+ condEquip.targetUdc = (0, parser_utils_1.isNumericI7)(i7DataHgue.udc) ? (0, parser_utils_1.convertToNumberI7)(i7DataHgue.udc) : condEquip.ratedUdc;
3331
3169
  condEquip.targetPpcc = condEquip.baseS * -1;
3332
3170
  }
3333
3171
  }
@@ -3427,10 +3265,47 @@ class ConverterIntegral7 {
3427
3265
  if (this.isTableAvailable(integral_sql_1.Integral7TableNames.KNOTEN_STARR)) {
3428
3266
  const result = yield this.mysqlController.execQuery((0, integral_sql_1.getI7Query)(integral_sql_1.I7Objects.KNOTEN_STARR, this.getAvailableColumnNames(integral_sql_1.Integral7TableNames.KNOTEN_STARR), containerIDs));
3429
3267
  for (const i7Data of result) {
3268
+ //const junction = new Junction(getUUID(i7Data.guid, this.objectMappingConfig.standardiseUuid), createNotation([getName(i7Data),"_J",`_${cimModel.junctions]), 'JNCT', 'starre Verbindung');
3430
3269
  const breaker = new Breaker_1.Breaker((0, parser_utils_1.getUUID)(i7Data.guid, this.objectMappingConfig.standardiseUuid), i7Data.bezeichner, 'Breaker', 'starre Verbindung');
3431
3270
  yield this.convertSwitch(breaker, cimModel, i7Data);
3432
3271
  cimModel.addBreaker(breaker);
3433
3272
  this.addIdMapping(i7Data.id, breaker.mrid, integral_sql_1.Integral7TableNames.LEISTUNGSSCHALTER);
3273
+ /**const schaltzustand = convertToBooleanI7(i7Data.schaltzustand);
3274
+
3275
+ const equipmentContainer = this.determineEquipmentContainer('VoltageLevel', cimModel, cimModel.getObject(this.integralID2UUID.get(i7Data.seliste)) as EquipmentContainer);
3276
+
3277
+ if (equipmentContainer) {
3278
+ equipmentContainer.addEquipment(junction);
3279
+ junction.equipmentContainer = equipmentContainer;
3280
+ } else {
3281
+ this.logger.debug(`Starre verbindung ${i7Data.id} besitzt keinen EquipmentContainer.`);
3282
+ }
3283
+ const cnStart = cimModel.getConnectivityNode(this.integralID2UUID.get(i7Data.aknoten));
3284
+ const cnZiel = cimModel.getConnectivityNode(this.integralID2UUID.get(i7Data.eknoten));
3285
+
3286
+ if (cnStart) {
3287
+ const terminal = this.createConnection(cimModel, junction, cnStart, PhaseCode.ABC, true, 1);
3288
+ if (schaltzustand === false) {
3289
+ terminal.connected = schaltzustand;
3290
+ }
3291
+ } else {
3292
+ this.logger.debug(`Starre verbindung ${i7Data.id} besitzt keinen Anfangsknoten.`);
3293
+ }
3294
+ if (cnZiel) {
3295
+ const terminal = this.createConnection(cimModel, junction, cnZiel, PhaseCode.ABC, true, 2);
3296
+ if (schaltzustand === false) {
3297
+ terminal.connected = schaltzustand;
3298
+ }
3299
+ } else {
3300
+ this.logger.debug(`Starre verbindung ${i7Data.id} besitzt keinen Zielknoten.`);
3301
+ }
3302
+ const baseVoltage = getTerminalUn(cimModel, junction);
3303
+ if (baseVoltage) {
3304
+ junction.baseVoltage = baseVoltage;
3305
+ }
3306
+ this.addIdMapping(i7Data.id, junction.mrid, Integral7TableNames.KNOTEN_STARR);
3307
+ cimModel.addJunction(junction);
3308
+ **/
3434
3309
  }
3435
3310
  }
3436
3311
  else {
@@ -3539,7 +3414,7 @@ class ConverterIntegral7 {
3539
3414
  const start = cimModel.objects.get(this.integralID2UUID.get(i7Data.aknoten));
3540
3415
  let startTerminal;
3541
3416
  if (start) {
3542
- startTerminal = this.createConnection(cimModel, seriesCompensator, start, PhaseCode_1.PhaseCode.ABC, true);
3417
+ startTerminal = (0, util_create_1.createConnection)(cimModel, seriesCompensator, start, PhaseCode_1.PhaseCode.ABC, 1);
3543
3418
  }
3544
3419
  else {
3545
3420
  this.logger.debug(`Längsdrossel ${i7Data.id} ${seriesCompensator.mrid} besitzt keinen Anfangsknoten.`);
@@ -3548,7 +3423,7 @@ class ConverterIntegral7 {
3548
3423
  const target = cimModel.objects.get(this.integralID2UUID.get(i7Data.eknoten));
3549
3424
  let targetTerminal;
3550
3425
  if (target) {
3551
- targetTerminal = this.createConnection(cimModel, seriesCompensator, target, PhaseCode_1.PhaseCode.ABC, true);
3426
+ targetTerminal = (0, util_create_1.createConnection)(cimModel, seriesCompensator, target, PhaseCode_1.PhaseCode.ABC, 2);
3552
3427
  }
3553
3428
  else {
3554
3429
  this.logger.debug(`Längsdrossel ${i7Data.id} ${seriesCompensator.mrid} besitzt keinen Zielknoten.`);
@@ -3565,7 +3440,7 @@ class ConverterIntegral7 {
3565
3440
  const ukr = (0, parser_utils_1.isNumericI7)(i7Data.ukr) ? (0, parser_utils_1.convertToNumberI7)(i7Data.ukr) : undefined;
3566
3441
  const pkr = (0, parser_utils_1.isNumericI7)(i7Data.pkr) ? (0, parser_utils_1.convertToNumberI7)(i7Data.pkr) : undefined;
3567
3442
  seriesCompensator.r = (0, utils_2.calculateRSeriesCompensator)(ir, pkr);
3568
- seriesCompensator.x = (0, utils_2.calculateXSeriesCompensator)(ur, ukr, ir, seriesCompensator.r);
3443
+ seriesCompensator.x = (0, utils_2.calculateXSeriesCompensator)(ur, ukr, ir);
3569
3444
  seriesCompensator.varistorPresent = false;
3570
3445
  /** EQ-SC */
3571
3446
  seriesCompensator.r0 = seriesCompensator.r;
@@ -3651,8 +3526,8 @@ class ConverterIntegral7 {
3651
3526
  const ukr = (0, parser_utils_1.isNumericI7)(i7Data.ukr) ? (0, parser_utils_1.convertToNumberI7)(i7Data.ukr) : undefined;
3652
3527
  const pkr = (0, parser_utils_1.isNumericI7)(i7Data.pkr) ? (0, parser_utils_1.convertToNumberI7)(i7Data.pkr) : undefined;
3653
3528
  seriesCompensator.r = (0, utils_2.calculateRSeriesCompensator)(ir, pkr);
3654
- seriesCompensator.x = (0, utils_2.calculateXSeriesCompensator)(ur, ukr, ir * -1, seriesCompensator.r);
3655
- //seriesCompensator.varistorPresent = false;
3529
+ seriesCompensator.x = (0, utils_2.calculateXSeriesCompensator)(ur, ukr, ir * -1);
3530
+ seriesCompensator.varistorPresent = false;
3656
3531
  /** EQ-SC */
3657
3532
  seriesCompensator.r0 = seriesCompensator.r;
3658
3533
  seriesCompensator.x0 = seriesCompensator.x;
@@ -3717,14 +3592,28 @@ class ConverterIntegral7 {
3717
3592
  for (const i7DataSchiene of stpSchiene) {
3718
3593
  try {
3719
3594
  stpSchieneIDs.push(i7DataSchiene.id);
3720
- const keyConnectivityNode = cim_class_names_1.ClassNames.ConnectivityNode + i7DataSchiene.id;
3595
+ const equipmentContainer = this.determineEquipmentContainer('VoltageLevel', cimModel, cimModel.getObject(this.integralID2UUID.get(i7DataSchiene.id)));
3596
+ const keyConnectivityNode = cim_class_names_1.ClassNames.ConnectivityNode + i7DataSchiene.id + (equipmentContainer === null || equipmentContainer === void 0 ? void 0 : equipmentContainer.getUUID()) || '';
3721
3597
  const uuidConnectivityNode = common_utils_1.CommonUtils.generateUUIDv5(cim_class_names_1.ClassNames.ConnectivityNode, this.configUuid, keyConnectivityNode);
3722
- const name = (0, util_create_1.createNotation)([(0, utils_2.getName)(i7DataSchiene), '_CN'], 32, false);
3723
- const connectivityNode = new ConnectivityNode_1.ConnectivityNode(uuidConnectivityNode, name, name);
3724
- connectivityNode.key = integral_prefix_1.CKnoten1PSO_PRAEFIX + i7DataSchiene.bezeichner;
3598
+ const connectivityNode = new ConnectivityNode_1.ConnectivityNode(uuidConnectivityNode, (0, util_create_1.createNotation)([(0, utils_2.getName)(i7DataSchiene), '_CN']));
3599
+ const keyJunction = cim_class_names_1.ClassNames.Junction + i7DataSchiene.id + (equipmentContainer === null || equipmentContainer === void 0 ? void 0 : equipmentContainer.getUUID()) || '';
3600
+ const uuidJunction = common_utils_1.CommonUtils.generateUUIDv5(cim_class_names_1.ClassNames.Junction, this.configUuid, keyJunction);
3601
+ const junction = new Junction_1.Junction(uuidJunction, (0, util_create_1.createNotation)([(0, utils_2.getName)(i7DataSchiene), '_J']));
3602
+ connectivityNode.setConnectivityNodeContainer(equipmentContainer);
3603
+ if (equipmentContainer) {
3604
+ equipmentContainer.addEquipment(junction);
3605
+ junction.equipmentContainer = equipmentContainer;
3606
+ }
3607
+ else {
3608
+ this.logger.debug(`Sternpunktschiene ${i7DataSchiene.id} besitzt keinen EquipmentContainer.`);
3609
+ }
3725
3610
  // Verbindung herstellen
3726
- integral7.sternPunktImpModel.stpSchieneIdConnectivityNode.set(i7DataSchiene.id, connectivityNode);
3611
+ const terminal = this.createConnection(cimModel, junction, connectivityNode, PhaseCode_1.PhaseCode.N, true);
3612
+ cimModel.terminals.delete(terminal.mrid); //TODO: complete/repair implementation of star point connections.
3727
3613
  integral7.sternPunktImpModel.connectivityNodes.set(connectivityNode.mrid, connectivityNode);
3614
+ integral7.sternPunktImpModel.junctions.set(junction.mrid, junction);
3615
+ integral7.sternPunktImpModel.stpSchieneJunctionUUIDs.set(i7DataSchiene.id, junction.mrid);
3616
+ integral7.sternPunktImpModel.stpSchieneTerminal.set(i7DataSchiene.id, terminal);
3728
3617
  this.addIdMapping(i7DataSchiene.id, connectivityNode.mrid, integral_sql_1.Integral7TableNames.STERNPUNKT_SCHIENE);
3729
3618
  }
3730
3619
  catch (e) {
@@ -3739,63 +3628,41 @@ class ConverterIntegral7 {
3739
3628
  }));
3740
3629
  });
3741
3630
  }
3742
- convertKdrossel(cimModel, integral7, stpSchienenID, defaultValuesConfig) {
3631
+ convertKdrossel(cimModel, integral7, stpScheinenID) {
3743
3632
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
3744
3633
  try {
3745
3634
  if (this.isTableAvailable(integral_sql_1.Integral7TableNames.STERNPUNKT_IMPEDANZ)) {
3746
- if (stpSchienenID !== undefined && stpSchienenID.length > 0) {
3747
- const result = yield this.mysqlController.execQuery((0, integral_sql_1.getI7Query)(integral_sql_1.I7Objects.STERNPUNKT_IMPEDANZ, this.getAvailableColumnNames(integral_sql_1.Integral7TableNames.STERNPUNKT_IMPEDANZ), stpSchienenID));
3635
+ if (stpScheinenID.length) {
3636
+ const result = yield this.mysqlController.execQuery((0, integral_sql_1.getI7Query)(integral_sql_1.I7Objects.STERNPUNKT_IMPEDANZ, this.getAvailableColumnNames(integral_sql_1.Integral7TableNames.STERNPUNKT_IMPEDANZ), stpScheinenID));
3748
3637
  for (const i7Data of result) {
3749
3638
  const kdType = this.kdrosseltypen.get(i7Data.nametyp);
3750
- const iakt = (0, parser_utils_1.isNumericI7)(i7Data.iakt) ? i7Data.iakt : ((0, parser_utils_1.isNumericI7)(kdType === null || kdType === void 0 ? void 0 : kdType.iakt) ? kdType === null || kdType === void 0 ? void 0 : kdType.iakt : undefined);
3751
- const xne = (0, parser_utils_1.isNumericI7)(i7Data.xne) ? i7Data.xne : ((0, parser_utils_1.isNumericI7)(kdType === null || kdType === void 0 ? void 0 : kdType.xne) ? kdType === null || kdType === void 0 ? void 0 : kdType.xne : undefined);
3752
- const ur = (0, parser_utils_1.isNumericI7)(i7Data.ur) ? (0, parser_utils_1.convertToNumberI7)(i7Data.ur) : ((0, parser_utils_1.isNumericI7)(kdType === null || kdType === void 0 ? void 0 : kdType.xne) ? (0, parser_utils_1.convertToNumberI7)(kdType === null || kdType === void 0 ? void 0 : kdType.xne) : undefined);
3753
3639
  const imax = (0, parser_utils_1.isNumericI7)(i7Data.imax) ? i7Data.imax : ((0, parser_utils_1.isNumericI7)(kdType === null || kdType === void 0 ? void 0 : kdType.imax) ? kdType === null || kdType === void 0 ? void 0 : kdType.imax : undefined);
3754
3640
  const imin = (0, parser_utils_1.isNumericI7)(i7Data.imin) ? i7Data.imin : ((0, parser_utils_1.isNumericI7)(kdType === null || kdType === void 0 ? void 0 : kdType.imin) ? kdType === null || kdType === void 0 ? void 0 : kdType.imin : undefined);
3755
3641
  const connectivityNode = integral7.sternPunktImpModel.connectivityNodes.get(this.integralID2UUID.get(i7Data.anschluss));
3756
- let conductingEquip = undefined;
3757
- if (iakt !== undefined && xne !== undefined || xne !== undefined && ur !== undefined || iakt !== undefined && ur !== undefined) {
3642
+ const junctionUUID = integral7.sternPunktImpModel.stpSchieneJunctionUUIDs.get((i7Data.anschluss));
3643
+ let conductingEquip;
3644
+ if (imax && imin) {
3758
3645
  /** PetersenCoil */
3759
3646
  const petersenCoil = new PetersenCoil_1.PetersenCoil((0, parser_utils_1.getUUID)(i7Data.guid, this.objectMappingConfig.standardiseUuid), i7Data.bezeichner, i7Data.kurzname);
3760
- if (xne !== undefined && ur !== undefined) {
3761
- petersenCoil.xGroundNominal = xne;
3762
- petersenCoil.nominalU = ur;
3763
- petersenCoil.xGroundMax = (0, parser_utils_1.isNumericI7)(imin) && (0, parser_utils_1.isNumericI7)(petersenCoil.nominalU) ? petersenCoil.nominalU * Math.pow(10, 3) / imin : undefined;
3764
- petersenCoil.xGroundMin = (0, parser_utils_1.isNumericI7)(imax) && (0, parser_utils_1.isNumericI7)(petersenCoil.nominalU) ? petersenCoil.nominalU * Math.pow(10, 3) / imax : undefined;
3765
- }
3766
- else if (iakt !== undefined && xne !== undefined) {
3767
- petersenCoil.xGroundNominal = xne;
3768
- petersenCoil.nominalU = iakt * xne * Math.pow(10, -3);
3769
- petersenCoil.xGroundMax = (0, parser_utils_1.isNumericI7)(imin) && (0, parser_utils_1.isNumericI7)(petersenCoil.nominalU) ? petersenCoil.nominalU * Math.pow(10, 3) / imin : undefined;
3770
- petersenCoil.xGroundMin = (0, parser_utils_1.isNumericI7)(imax) && (0, parser_utils_1.isNumericI7)(petersenCoil.nominalU) ? petersenCoil.nominalU * Math.pow(10, 3) / imax : undefined;
3771
- }
3772
- else if (iakt !== undefined && ur !== undefined) {
3773
- petersenCoil.nominalU = ur;
3774
- petersenCoil.xGroundNominal = petersenCoil.nominalU * Math.pow(10, 3) / iakt;
3775
- petersenCoil.xGroundMax = (0, parser_utils_1.isNumericI7)(imin) && (0, parser_utils_1.isNumericI7)(petersenCoil.nominalU) ? petersenCoil.nominalU * Math.pow(10, 3) / imin : undefined;
3776
- petersenCoil.xGroundMin = (0, parser_utils_1.isNumericI7)(imax) && (0, parser_utils_1.isNumericI7)(petersenCoil.nominalU) ? petersenCoil.nominalU * Math.pow(10, 3) / imax : undefined;
3777
- }
3778
- petersenCoil.mode = PetersenCoilModeKind_1.PetersenCoilModeKind.automaticPositioning;
3647
+ integral7.sternPunktImpModel.petersenCoils.set(petersenCoil.mrid, petersenCoil);
3648
+ integral7.sternPunktImpModel.junctionUUIDstpImp.set(junctionUUID, petersenCoil);
3779
3649
  this.addIdMapping(i7Data.id, petersenCoil.mrid, integral_sql_1.Integral7TableNames.STERNPUNKT_IMPEDANZ);
3780
3650
  conductingEquip = petersenCoil;
3781
3651
  }
3782
3652
  else {
3783
3653
  /** GroundingImpedance */
3784
3654
  const groundingImpedance = new GroundingImpedance_1.GroundingImpedance((0, parser_utils_1.getUUID)(i7Data.guid, this.objectMappingConfig.standardiseUuid), (0, util_create_1.createNotation)([(0, utils_2.getName)(i7Data), '_GI']), i7Data.kurzname);
3785
- groundingImpedance.r = (0, parser_utils_1.isNumericI7)(i7Data.rne) ? (0, parser_utils_1.convertToNumberI7)(i7Data.rne) : ((0, parser_utils_1.isNumericI7)(kdType === null || kdType === void 0 ? void 0 : kdType.rne) ? (0, parser_utils_1.convertToNumberI7)(kdType === null || kdType === void 0 ? void 0 : kdType.rne) : undefined);
3786
- groundingImpedance.x = xne;
3655
+ groundingImpedance.r = (0, parser_utils_1.isNumericI7)(i7Data.rne) ? i7Data.rne : ((0, parser_utils_1.isNumericI7)(kdType === null || kdType === void 0 ? void 0 : kdType.rne) ? kdType === null || kdType === void 0 ? void 0 : kdType.rne : undefined);
3656
+ groundingImpedance.x = (0, parser_utils_1.isNumericI7)(i7Data.xne) ? i7Data.xne : ((0, parser_utils_1.isNumericI7)(kdType === null || kdType === void 0 ? void 0 : kdType.xne) ? kdType === null || kdType === void 0 ? void 0 : kdType.xne : undefined);
3787
3657
  integral7.sternPunktImpModel.groundingImpedances.set(groundingImpedance.mrid, groundingImpedance);
3788
- //integral7.sternPunktImpModel.junctionUUIDstpImp.set(junctionUUID, groundingImpedance);
3658
+ integral7.sternPunktImpModel.junctionUUIDstpImp.set(junctionUUID, groundingImpedance);
3789
3659
  this.addIdMapping(i7Data.id, groundingImpedance.mrid, integral_sql_1.Integral7TableNames.STERNPUNKT_IMPEDANZ);
3790
3660
  conductingEquip = groundingImpedance;
3791
3661
  }
3792
- // Create connection for PetersenCoil and GroundingImpedance connected with 'Sternpunktschiene'. PetersenCoil and GroundingImpedance connected to 'Sternpunktknoten' is connected during convertTrafo2w and convertTrafo3w
3662
+ // Verbindung herstellen
3793
3663
  if (connectivityNode) {
3794
- this.createConnection(cimModel, conductingEquip, connectivityNode, PhaseCode_1.PhaseCode.N, true);
3795
- integral7.sternPunktImpModel.stpSchieneUUIDStpImp.set(connectivityNode.getUUID(), conductingEquip);
3796
- }
3797
- else {
3798
- integral7.sternPunktImpModel.stpKnotenStpImp.set(i7Data.anschluss, conductingEquip);
3664
+ const terminal = this.createConnection(cimModel, conductingEquip, connectivityNode, PhaseCode_1.PhaseCode.N, true);
3665
+ cimModel.terminals.delete(terminal.mrid); //TODO: complete/repair implementation of star point connections.
3799
3666
  }
3800
3667
  }
3801
3668
  }
@@ -3816,37 +3683,26 @@ class ConverterIntegral7 {
3816
3683
  });
3817
3684
  }
3818
3685
  /** Den Schaltzuszand bestimmen und zuvor angelegten (convertSternpunktSchienen) Terminalinstanz zuweisen. */
3819
- convertStpSchaltelemente(cimModel, integral7, stpSchienenID) {
3686
+ convertStpSchaltelemente(integral7, stpSchienenID) {
3820
3687
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
3821
3688
  try {
3822
3689
  if (this.isTableAvailable(integral_sql_1.Integral7TableNames.STERNPUNKT_SCHALTER)) {
3823
- if (stpSchienenID !== undefined && stpSchienenID.length > 0) {
3690
+ if (stpSchienenID.length) {
3824
3691
  const result = yield this.mysqlController.execQuery((0, integral_sql_1.getI7Query)(integral_sql_1.I7Objects.STERNPUNKT_SCHALTER, this.getAvailableColumnNames(integral_sql_1.Integral7TableNames.STERNPUNKT_SCHALTER), stpSchienenID));
3825
3692
  for (const i7Data of result) {
3826
- const connectivityNodeAbcn = cimModel.connectivityNodes.get(this.integralID2UUID.get(i7Data.aknoten)); //connection point of 'PowerTransformerEnd' is assigned during convertTrafo2w and convertTrafo3w
3827
- const connectivityNodeN = integral7.sternPunktImpModel.connectivityNodes.get(this.integralID2UUID.get(i7Data.eknoten)); //connection point of 'Sternpunktschiene'
3828
- if (connectivityNodeN != undefined) {
3829
- const schaltzustand = (0, parser_utils_1.convertToBooleanI7)(i7Data.schaltzustand);
3830
- const keyGroundDisconnector = cim_class_names_1.ClassNames.GroundDisconnector + i7Data.aknoten + i7Data.eknoten;
3831
- const uuidGroundDisconnector = common_utils_1.CommonUtils.generateUUIDv5(cim_class_names_1.ClassNames.GroundDisconnector, this.configUuid, keyGroundDisconnector);
3832
- const groundDisconnector = new GroundDisconnector_1.GroundDisconnector(uuidGroundDisconnector, i7Data.bezeichner, i7Data.kurzname, i7Data.kommentar, schaltzustand, false);
3833
- //Set connection to ConnectivityNode at neutral side to GroundingImpedance or PetersenCoil
3834
- this.createConnection(cimModel, groundDisconnector, connectivityNodeN, PhaseCode_1.PhaseCode.N, true);
3835
- //cimModel.addGroundDisconnector(groundDisconnector);
3836
- integral7.sternPunktImpModel.groundDisconnectors.set(groundDisconnector.getUUID(), groundDisconnector);
3837
- /** SchaltelementID mit GroundDisconnector UUID verknüpfen, um Topologie des netz_knoten1pelem-Elements herstellen zu können */
3838
- integral7.sternPunktImpModel.stpSchaltelementeIdGroundDisconnectorUUID.set(i7Data.id, groundDisconnector.getUUID());
3839
- /** SchaltelementID mit GroundDisconnector UUID verknüpfen, um Topologie des netz_knoten1pelem-Elements herstellen zu können */
3840
- integral7.sternPunktImpModel.groundDisconnectorsUUIDsStpSchieneUUID.set(groundDisconnector.getUUID(), connectivityNodeN.getUUID());
3841
- /** SternpunktknotenID mit GroundDisconnector UUID verknüpfen, um Topologie der AssetElemente herstellen zu können */
3842
- integral7.sternPunktImpModel.GroundDisconnectorUuidStpSchieneId.set(groundDisconnector.getUUID(), i7Data.eknoten);
3843
- /** set connection to terminal of powertransformerend*/
3844
- let earthFaultCompensator = integral7.sternPunktImpModel.stpSchieneUUIDStpImp.get(connectivityNodeN.getUUID());
3845
- integral7.sternPunktImpModel.groundDisconnectorUUIDstpImp.set(groundDisconnector.getUUID(), earthFaultCompensator);
3846
- this.addIdMapping(i7Data.id, groundDisconnector.mrid, integral_sql_1.Integral7TableNames.STERNPUNKT_SCHALTER);
3693
+ const terminal = integral7.sternPunktImpModel.stpSchieneTerminal.get(i7Data.eknoten);
3694
+ if (terminal) {
3695
+ terminal.connected = (0, parser_utils_1.isBooleanI7)(i7Data.schaltzustand) ? (0, parser_utils_1.convertToBooleanI7)(i7Data.schaltzustand) : true;
3847
3696
  }
3697
+ /** SchaltelementID mit Junstion UUID verknüpfen, um Topologie des netz_knoten1pelem-Elements herstellen zu können */
3698
+ integral7.sternPunktImpModel.stpSchieneJunctionUUIDs.set(i7Data.id, integral7.sternPunktImpModel.stpSchieneJunctionUUIDs.get(i7Data.eknoten));
3699
+ /** Sternpunktknoten mit Junstion UUID verknüpfen, um Topologie der AssetElemente herstellen zu können */
3700
+ integral7.sternPunktImpModel.stpSchieneJunctionUUIDs.set(i7Data.aknoten, integral7.sternPunktImpModel.stpSchieneJunctionUUIDs.get(i7Data.eknoten));
3848
3701
  }
3849
3702
  }
3703
+ else {
3704
+ this.logger.debug(`StpSchaltelemente Keine Sternpunktschienen vorhanden.`);
3705
+ }
3850
3706
  }
3851
3707
  else {
3852
3708
  this.logger.debug(`Tabelle ${integral_sql_1.Integral7TableNames.STERNPUNKT_SCHALTER} ist nicht vorhanden.`);
@@ -3964,7 +3820,6 @@ class ConverterIntegral7 {
3964
3820
  result_ohl = yield this.mysqlController.execQuery((0, integral_sql_1.getI7Query)(integral_sql_1.I7Objects.STROMKREISABSCHNITT_FREILEITUNG, this.getAvailableColumnNames(integral_sql_1.Integral7TableNames.FREILEITUNG), leitungIDs));
3965
3821
  }
3966
3822
  for (const i7Data of result) {
3967
- let lineNames = new Map;
3968
3823
  /** Alle Stromkreisabschnitte */
3969
3824
  const stromkreisabschnitte = leitungStromkreisabschnitt.filter(elem => elem.leitung === i7Data.id);
3970
3825
  if (!((stromkreisabschnitte === null || stromkreisabschnitte === void 0 ? void 0 : stromkreisabschnitte.length) > 0))
@@ -3988,9 +3843,8 @@ class ConverterIntegral7 {
3988
3843
  '-' +
3989
3844
  (0, utils_2.ueberpruefeZeichenkette)(i7Data.stkabname);
3990
3845
  /** Wenn kein Stromkreisobjekt vorhanden ist, dann erstelle ein neues Objekt. */
3991
- const uuidString = common_utils_1.CommonUtils.generateUUIDv5(cim_class_names_1.ClassNames.Line, this.configUuid, i7Schluessel);
3992
- let lineName = createLineName(i7Data, uuidString, lineNames);
3993
- const line = new AMPRIONLine_1.AMPRIONLine(uuidString, lineName);
3846
+ const uuidString = (0, parser_utils_1.getUUID)(i7Data.guid, this.objectMappingConfig.standardiseUuid);
3847
+ const line = new AMPRIONLine_1.AMPRIONLine(uuidString, i7Schluessel);
3994
3848
  line.ukz = i7Data.ukz;
3995
3849
  line.key = i7Schluessel;
3996
3850
  let acLineSegments = [];
@@ -4003,7 +3857,7 @@ class ConverterIntegral7 {
4003
3857
  '-' +
4004
3858
  (0, utils_2.ueberpruefeZeichenkette)(stk.bezeichner);
4005
3859
  const uuid = (0, parser_utils_1.getUUID)(stk.custom_guid_0120 + stk.custom_guid_2137, this.objectMappingConfig.standardiseUuid);
4006
- const acLineSegment = new INTEGRALACLineSegment_1.INTEGRALACLineSegment(uuid, stk.bezeichner, i7Data.stkabname, i7Data.kommentar);
3860
+ const acLineSegment = new INTEGRALACLineSegment_1.INTEGRALACLineSegment(uuid, stk.bezeichner, i7Data.stkabname, i7Schluessel);
4007
3861
  const key = acLineSegment.getUUID();
4008
3862
  const uuidWireObject = common_utils_1.CommonUtils.generateUUIDv5(cim_class_names_1.ClassNames.EVWireObject, this.configUuid, key);
4009
3863
  acLineSegment.key = i7Schluessel;
@@ -4066,7 +3920,7 @@ class ConverterIntegral7 {
4066
3920
  /**Connectivity Node to connect end of line and start of neighbouring line.*/
4067
3921
  const key = acLineSegment1.getUUID() + acLineSegment2.getUUID();
4068
3922
  const uuid = common_utils_1.CommonUtils.generateUUIDv5(cim_class_names_1.ClassNames.ConnectivityNode, this.configUuid, key);
4069
- const cn = new ConnectivityNode_1.ConnectivityNode(uuid, (0, util_create_1.createNotation)([acLineSegment1.getUUID().substring(0, 8), '_CN'], 32, false));
3923
+ const cn = new ConnectivityNode_1.ConnectivityNode(uuid, (0, util_create_1.createNotation)([acLineSegment1.name, '_', acLineSegment1.getUUID().substring(0, 8), '_CN'], 32, true));
4070
3924
  /**Connect end of aclinesegment i*/
4071
3925
  cn.connectivityNodeContainer = acLineSegment1.equipmentContainer;
4072
3926
  tmp_terminal = this.createConnection(cimModel, acLineSegment1, cn, PhaseCode_1.PhaseCode.ABC, true);
@@ -4125,6 +3979,7 @@ class ConverterIntegral7 {
4125
3979
  /** In any case assign Georegion to aclinesegments */
4126
3980
  let idx = 0;
4127
3981
  while (idx < acLineSegments.length && !(line.subGeographicalRegion)) {
3982
+ let jdx = 0;
4128
3983
  let values = acLineSegments[idx].terminals.values();
4129
3984
  let tmp_terminal = values.next();
4130
3985
  while (tmp_terminal.value && !(line.subGeographicalRegion)) {
@@ -4194,9 +4049,6 @@ class ConverterIntegral7 {
4194
4049
  let dcLineNeutral = undefined;
4195
4050
  const i7Schluessel = integral_prefix_1.HGUELEITUNG_PRAEFIX +
4196
4051
  (0, utils_2.ueberpruefeZeichenkette)(i7Data.bezeichner);
4197
- if (dcLine.getUUID() === 'f125f0f3-a621-43e7-8af7-9873d52239a0') {
4198
- const stop = true;
4199
- }
4200
4052
  /** operationMode der Anfangs- und Zielkopfstation setzen */
4201
4053
  let converterStart = false;
4202
4054
  let converterStartNeg = false;
@@ -4211,7 +4063,7 @@ class ConverterIntegral7 {
4211
4063
  let dcNodeStartMiddle = undefined;
4212
4064
  let dcNodeTargetMiddle = undefined;
4213
4065
  //Parameter "guidp" is available for monopolar and bipolar dc systems. Thus create DCLineSegment with positive sign property in any case.
4214
- const dcLineSegment = new DCLineSegment_1.INTEGRALDCLineSegment((0, parser_utils_1.getUUID)(i7Data.guidp, this.objectMappingConfig.standardiseUuid), i7Data.bezeichner, i7Data.kurzname, i7Schluessel);
4066
+ const dcLineSegment = new DCLineSegment_1.DCLineSegment((0, parser_utils_1.getUUID)(i7Data.guidp, this.objectMappingConfig.standardiseUuid), i7Data.bezeichner, i7Data.kurzname, i7Schluessel);
4215
4067
  dcLineSegmentSet.push(dcLineSegment);
4216
4068
  let dcLineSegmentNeg = undefined;
4217
4069
  let dcLineSegmentNeutral = undefined;
@@ -4220,21 +4072,19 @@ class ConverterIntegral7 {
4220
4072
  dcLineSegment.capacitance = undefined;
4221
4073
  dcLineSegment.inductance = undefined;
4222
4074
  /**EQ: given directly by the INTEGRAL system model */
4223
- dcLineSegment.resistance = (0, parser_utils_1.isNumericI7)(i7Data.rdc) ? (bipole ? (0, parser_utils_1.convertToNumberI7)(i7Data.rdc) : (0, parser_utils_1.convertToNumberI7)(i7Data.rdc) / 2) : undefined;
4224
- dcLineSegment.ur = (0, parser_utils_1.isNumericI7)(i7Data.ur) ? (0, parser_utils_1.convertToNumberI7)(i7Data.ur) : undefined;
4075
+ dcLineSegment.resistance = (0, parser_utils_1.isNumericI7)(i7Data.rdc) ? (0, parser_utils_1.convertToNumberI7)(i7Data.rdc) : undefined;
4225
4076
  dcLineSegment.equipmentContainer = dcLine;
4226
4077
  //create second dcLineSegment in case this dcLine is a bipol.
4227
4078
  if (bipole) {
4228
4079
  const dcLineKey = dcLine.getUUID();
4229
4080
  const dcLineUuid = common_utils_1.CommonUtils.generateUUIDv5(cim_class_names_1.ClassNames.DCLine, this.configUuid, dcLineKey);
4230
4081
  dcLineNeg = new DCLine_1.DCLine(dcLineUuid, i7Data.bezeichner);
4231
- dcLineSegmentNeg = new DCLineSegment_1.INTEGRALDCLineSegment((0, parser_utils_1.getUUID)(i7Data.guidn, this.objectMappingConfig.standardiseUuid), i7Data.bezeichner, (0, util_create_1.createNotation)([i7Data.kurzname, '_neg'], 12, true), i7Schluessel);
4082
+ dcLineSegmentNeg = new DCLineSegment_1.DCLineSegment((0, parser_utils_1.getUUID)(i7Data.guidn, this.objectMappingConfig.standardiseUuid), i7Data.bezeichner, (0, util_create_1.createNotation)([i7Data.kurzname, '_neg'], 12, true), i7Schluessel);
4232
4083
  dcLineSegmentSet.push(dcLineSegmentNeg);
4233
4084
  dcLineSegmentNeg.length = dcLineSegment.length;
4234
4085
  dcLineSegmentNeg.capacitance = undefined;
4235
4086
  dcLineSegmentNeg.inductance = undefined;
4236
- dcLineSegmentNeg.resistance = dcLineSegment.resistance;
4237
- dcLineSegmentNeg.ur = dcLineSegment.ur;
4087
+ dcLineSegmentNeg.resistance = (0, parser_utils_1.isNumericI7)(i7Data.rdc) ? (0, parser_utils_1.convertToNumberI7)(i7Data.rdc) : undefined;
4238
4088
  dcLineSegmentNeg.equipmentContainer = dcLineNeg;
4239
4089
  }
4240
4090
  //create metallic return
@@ -4242,13 +4092,12 @@ class ConverterIntegral7 {
4242
4092
  const dcLineNeutralUuid = common_utils_1.CommonUtils.generateUUIDv5(cim_class_names_1.ClassNames.DCLine, this.configUuid, dcLineKey);
4243
4093
  const dcLineSegmentUuid = common_utils_1.CommonUtils.generateUUIDv5(cim_class_names_1.ClassNames.DCLineSegment, this.configUuid, dcLineNeutralUuid);
4244
4094
  dcLineNeutral = new DCLine_1.DCLine(dcLineNeutralUuid, (0, util_create_1.createNotation)([(0, utils_2.getName)(i7Data), '_mid', '_DCL']));
4245
- dcLineSegmentNeutral = new DCLineSegment_1.INTEGRALDCLineSegment(dcLineSegmentUuid, (0, util_create_1.createNotation)([(0, utils_2.getName)(i7Data), '_mid', '_DCLS'], 32, true), (0, util_create_1.createNotation)([i7Data.kurzname, '_mid'], 12, true), i7Schluessel);
4095
+ dcLineSegmentNeutral = new DCLineSegment_1.DCLineSegment(dcLineSegmentUuid, (0, util_create_1.createNotation)([(0, utils_2.getName)(i7Data), '_mid', '_DCLS'], 32, true), (0, util_create_1.createNotation)([i7Data.kurzname, '_mid'], 12, true), i7Schluessel);
4246
4096
  dcLineSegmentSet.push(dcLineSegmentNeutral);
4247
4097
  dcLineSegmentNeutral.length = dcLineSegment.length;
4248
4098
  dcLineSegmentNeutral.capacitance = undefined;
4249
4099
  dcLineSegmentNeutral.inductance = undefined;
4250
- dcLineSegmentNeutral.resistance = dcLineSegment.resistance;
4251
- dcLineSegmentNeutral.ur = dcLineSegment.ur;
4100
+ dcLineSegmentNeutral.resistance = (0, parser_utils_1.isNumericI7)(i7Data.rdc) ? (0, parser_utils_1.convertToNumberI7)(i7Data.rdc) : undefined;
4252
4101
  dcLineSegmentNeutral.equipmentContainer = dcLineNeutral;
4253
4102
  //get ACDCConverter at both ends of DCLine
4254
4103
  const acDCConverterStart = cimModel.getObject(this.integralID2UUID.get(i7Data.anetzobjekt)) ? cimModel.getObject(this.integralID2UUID.get(i7Data.anetzobjekt)) : undefined;
@@ -4426,10 +4275,8 @@ class ConverterIntegral7 {
4426
4275
  const equipmentKey = dcTerminal.getUUID();
4427
4276
  for (const elem of dcTerminal.dcNode.dcTerminals.values()) {
4428
4277
  if (elem instanceof ACDCConverterDCTerminal_1.ACDCConverterDCTerminal) {
4429
- //const pR: number = (elem as ACDCConverterDCTerminal).dCConductingEquipment.baseS; //apparent power is set equal to active power in MVA
4430
- //const uR: number = acDCConverterStart.ratedUdc; //voltage in kV
4431
- const pR = (0, parser_utils_1.isNumericI7)(i7Data.pr) ? (0, parser_utils_1.convertToNumberI7)(i7Data.pr) : undefined;
4432
- const uR = (0, parser_utils_1.isNumericI7)(i7Data.ur) ? (0, parser_utils_1.convertToNumberI7)(i7Data.ur) : undefined;
4278
+ const pR = elem.dCConductingEquipment.baseS; //apparent power is set equal to active power in MVA
4279
+ const uR = acDCConverterStart.ratedUdc; //voltage in kV
4433
4280
  if (pR != undefined && uR != undefined) {
4434
4281
  let ir = (pR * Math.pow(10, 6)) / (uR * Math.pow(10, 3)); //assumption: pr is BaseS
4435
4282
  if (bipole) {
@@ -4489,7 +4336,6 @@ class ConverterIntegral7 {
4489
4336
  typTrafo.r0kr2 = i7Data.r0kr2;
4490
4337
  typTrafo.r00r1 = i7Data.r00r1;
4491
4338
  typTrafo.r00r2 = i7Data.r00r2;
4492
- typTrafo.s_dauer = i7Data.s_dauer;
4493
4339
  const typWicklung1 = new INTEGRALPowerTransformerEndInfo_1.INTEGRALPowerTransformerEndInfo(common_utils_1.CommonUtils.generateUUID());
4494
4340
  typWicklung1.ratedS = new ApparentPower_1.ApparentPower(i7Data.sr, UnitMultiplier_1.UnitMultiplier.m, UnitSymbol_1.UnitSymbol.VA);
4495
4341
  this.setTransformerEndInfoProperties(typWicklung1, i7Data, 1);
@@ -4541,9 +4387,6 @@ class ConverterIntegral7 {
4541
4387
  typTrafo.r0kr2 = i7Data.r0kr2;
4542
4388
  typTrafo.r00r1 = i7Data.r00r1;
4543
4389
  typTrafo.r00r2 = i7Data.r00r2;
4544
- typTrafo.s_dauer_1 = i7Data.s_dauer_1;
4545
- typTrafo.s_dauer_2 = i7Data.s_dauer_2;
4546
- typTrafo.s_dauer_3 = i7Data.s_dauer_3;
4547
4390
  const typWicklung1 = new INTEGRALPowerTransformerEndInfo_1.INTEGRALPowerTransformerEndInfo(common_utils_1.CommonUtils.generateUUID());
4548
4391
  typWicklung1.ratedS = new ApparentPower_1.ApparentPower(i7Data.sr1, UnitMultiplier_1.UnitMultiplier.m, UnitSymbol_1.UnitSymbol.VA);
4549
4392
  this.setTransformerEndInfoProperties(typWicklung1, i7Data, 1);
@@ -4662,18 +4505,30 @@ class ConverterIntegral7 {
4662
4505
  integral_prefix_1.TRAFO2W_PRAEFIX +
4663
4506
  (0, utils_2.ueberpruefeZeichenkette)(i7Data.bezeichner);
4664
4507
  powerTransformer.key = i7Schluessel;
4665
- if (powerTransformer.getUUID() === '21def4394e814e77b3f25acbad7bda16') {
4508
+ if (powerTransformer.getUUID() === '515508dc-5982-4686-ad26-08d39db91421') {
4666
4509
  let stop = true;
4667
- }
4510
+ } // kein Typ in D4
4511
+ if (powerTransformer.getUUID() === '012416f2d9584971baa93360fcf40be2') {
4512
+ let stop = true;
4513
+ } //Typ in D8
4514
+ if (powerTransformer.getUUID() === '00ebe00e-50fa-4fc0-9ed6-557528a9b460') {
4515
+ let stop = true;
4516
+ } //kein Typ in BE
4517
+ if (powerTransformer.getUUID() === '11e7be86-8bb7-41ba-898a-74cd5e8efbb9') {
4518
+ let stop = true;
4519
+ } //Typ in D7
4668
4520
  if (powerTransformer.getUUID() === '8eca3fedd32c49369f8946ac4ce70e17') { //Stufenstellerkonvertierung fehlgeschlagen
4669
4521
  let stop = true;
4670
4522
  }
4671
4523
  if (powerTransformer.getUUID() === 'b9d8bd48e1554af7b6153c1f7da052e1') {
4672
4524
  let stop = true;
4673
4525
  } //Phasenschieber zu falscher Winkel und falsches stepIncrement.
4674
- if (powerTransformer.getUUID() === '012416f2d9584971baa93360fcf40be2') { //pkr, ukr, ... konnte nicht aus Typ ermittelt werden.
4526
+ if (powerTransformer.getUUID() === '2ACF34B9-9DC9-4607-9B8A-032EBC2C31A5') {
4675
4527
  let stop = true;
4676
4528
  } //Längsregeltransformator mit symmetrischem Phasenschieber.
4529
+ if (i7Data.nametyp) {
4530
+ const stop = true;
4531
+ }
4677
4532
  const powerTransformerInfo = this.cimModelDefault.getPowerTransformerInfoByName(i7Data.nametyp);
4678
4533
  if (powerTransformerInfo) {
4679
4534
  facility.setAssetInfo(powerTransformerInfo);
@@ -4691,13 +4546,12 @@ class ConverterIntegral7 {
4691
4546
  // Wicklung 1
4692
4547
  const powerTransformerEnd1 = new PowerTransformerEnd_1.PowerTransformerEnd((0, parser_utils_1.getUUID)(i7Data.guid_w1, this.objectMappingConfig.standardiseUuid), `W1-${powerTransformer === null || powerTransformer === void 0 ? void 0 : powerTransformer.name}`);
4693
4548
  powerTransformerEnd1.endNumber = 1;
4694
- const pkr = (0, utils_2.getPkrTrafo)(i7Data, powerTransformerInfo, undefined, false);
4695
- const ukr = (0, utils_2.getUkrTrafo)(i7Data, powerTransformerInfo, undefined, false);
4549
+ const pkr = (0, utils_2.getPkrTrafo)(i7Data, powerTransformerInfo, '12', false);
4550
+ const ukr = (0, utils_2.getUkrTrafo)(i7Data, powerTransformerInfo, '12', false);
4696
4551
  const sr = (0, utils_2.getSrTrafo)(i7Data, powerTransformerInfo, powerTransformerEnd1.endNumber, false);
4697
4552
  const ur = (0, utils_2.getUrTrafo)(i7Data, powerTransformerInfo, 1);
4698
4553
  const ur2 = (0, utils_2.getUrTrafo)(i7Data, powerTransformerInfo, 2);
4699
- const sdauer1 = (0, utils_2.getSdauerTrafo)(i7Data, powerTransformerInfo, 1, false);
4700
- const sdauer2 = (0, utils_2.getSdauerTrafo)(i7Data, powerTransformerInfo, 2, false);
4554
+ const sdauer = (0, parser_utils_1.isNumericI7)(i7Data.s_dauer) ? (0, parser_utils_1.convertToNumberI7)(i7Data.s_dauer) : sr;
4701
4555
  // P0 Lastverluste im I7 Modell p_leer
4702
4556
  const pLeer = (0, utils_2.getTrafoPleer)(i7Data, powerTransformerInfo);
4703
4557
  // Leerlaufverluste
@@ -4745,7 +4599,7 @@ class ConverterIntegral7 {
4745
4599
  const startTerminal = start ? this.createConnection(cimModel, powerTransformer, start, PhaseCode.ABC, true, 1) : undefined;*/
4746
4600
  if (!startTerminal)
4747
4601
  this.logger.debug(`PowerTransformer2W ${i7Data.id} ${powerTransformer.mrid} besitzt keinen Anfangsknoten.`);
4748
- this.setPowerTransformerEndProperties(frame, powerTransformerEnd1, powerTransformer, startTerminal, sternpunktKnotenMap, integral7, sdauer1, i7Data, defaultValuesConfig);
4602
+ this.setPowerTransformerEndProperties(frame, powerTransformerEnd1, powerTransformer, startTerminal, sternpunktKnotenMap, integral7, sdauer, i7Data, defaultValuesConfig);
4749
4603
  /**Add boundary equivalent injection if terminal is connected to boudary point. */
4750
4604
  let equivalentInjection = undefined;
4751
4605
  if (startTerminal) {
@@ -4777,7 +4631,7 @@ class ConverterIntegral7 {
4777
4631
  const zielTerminal = this.createBoundaryConnection(frame, powerTransformer, i7Data.eknoten, PhaseCode_1.PhaseCode.ABC);
4778
4632
  if (!zielTerminal)
4779
4633
  this.logger.debug(`PowerTransformer2W ${i7Data.id} ${powerTransformer.mrid} besitzt keinen Zielknoten.`);
4780
- this.setPowerTransformerEndProperties(frame, powerTransformerEnd2, powerTransformer, zielTerminal, sternpunktKnotenMap, integral7, sdauer2, i7Data, defaultValuesConfig);
4634
+ this.setPowerTransformerEndProperties(frame, powerTransformerEnd2, powerTransformer, zielTerminal, sternpunktKnotenMap, integral7, undefined, i7Data, defaultValuesConfig);
4781
4635
  /**Add boundary equivalent injection if terminal is connected to boudary point. */
4782
4636
  if (zielTerminal) {
4783
4637
  let bdf = this.getConnectedBoundaryModel(this.integralID2UUID.get(i7Data.aknoten));
@@ -4792,6 +4646,9 @@ class ConverterIntegral7 {
4792
4646
  powerTransformerEnd1.phaseAngleClock = (0, utils_2.getSchaltgruppeAngleClock)(schaltgruppe, powerTransformerEnd1.endNumber);
4793
4647
  powerTransformerEnd2.connectionKind = (0, utils_2.getSchaltgruppe)(schaltgruppe, powerTransformerEnd2.endNumber, powerTransformerEnd2.grounded);
4794
4648
  powerTransformerEnd2.phaseAngleClock = (0, utils_2.getSchaltgruppeAngleClock)(schaltgruppe, powerTransformerEnd2.endNumber);
4649
+ if (uuid === '402aec99-ba2c-42fa-b4ed-b4928901f47b') {
4650
+ let stop = true;
4651
+ }
4795
4652
  // NullSystem Impedanzen (nur Reaktanzen)
4796
4653
  let starconnectionCount = (0, utils_2.getGroundingCountFromWindingConnection)(powerTransformer) <= 1 ? (0, utils_2.getGroundingCountFromWindingConnection)(powerTransformer) : 1;
4797
4654
  const retVal = (0, utils_2.calculateComplexZeroSequImpedanzenTrafo)([r0kr1, x0kr1, r0kr2, x0kr2], [r00r1, x00r1, r00r2, x00r2], [ur, ur2], starconnectionCount, powerTransformer);
@@ -4804,7 +4661,7 @@ class ConverterIntegral7 {
4804
4661
  powerTransformerEnd2.x0 = zeroSequImpedanzWx.x02;
4805
4662
  powerTransformerEnd2.r0 = zeroSequImpedanzWx.r02;
4806
4663
  /** Transormator Anschlusspunkte nach Spannungsebene sortieren */
4807
- //this.sortTransformerEnd(powerTransformer, 'ratedU', 'desc');
4664
+ this.sortTransformerEnd(powerTransformer, 'ratedU', 'desc');
4808
4665
  // TODO
4809
4666
  /** Stufenschalter werden vor der Sortierung der Wicklung nach der Spannungsebene angelegt,
4810
4667
  * da sonst die Wicklungsnummern nicht mehr übereinstimmen könnten */
@@ -4878,9 +4735,6 @@ class ConverterIntegral7 {
4878
4735
  for (const i7Data of result) {
4879
4736
  const sternpunktKnotenMap = new Map();
4880
4737
  const uuid = (0, parser_utils_1.getUUID)(i7Data.guid, this.objectMappingConfig.standardiseUuid);
4881
- if (uuid === 'b81485dd-5115-4241-b31a-c87a3eec9803' || uuid === '4eadc602-7dc5-41e4-bb8b-38993c03a80a') {
4882
- const stop = true;
4883
- }
4884
4738
  const powerTransformer = new PowerTransformer_1.PowerTransformer(uuid, (0, util_create_1.createNotation)([(0, utils_2.getName)(i7Data), '_', uuid.substring(0, 8), '_PT']), i7Data.kurzname, i7Data.kommentar);
4885
4739
  const substation = cimModel.getSubstation(this.integralID2UUID.get(i7Data.standort));
4886
4740
  if (substation) {
@@ -4931,16 +4785,13 @@ class ConverterIntegral7 {
4931
4785
  const ur1 = (0, utils_2.getUrTrafo)(i7Data, powerTransformerInfo, 1);
4932
4786
  const ur2 = (0, utils_2.getUrTrafo)(i7Data, powerTransformerInfo, 2);
4933
4787
  const ur3 = (0, utils_2.getUrTrafo)(i7Data, powerTransformerInfo, 3);
4934
- const sdauer1 = (0, utils_2.getSdauerTrafo)(i7Data, powerTransformerInfo, 1, true);
4935
- const sdauer2 = (0, utils_2.getSdauerTrafo)(i7Data, powerTransformerInfo, 2, true);
4936
- const sdauer3 = (0, utils_2.getSdauerTrafo)(i7Data, powerTransformerInfo, 3, true);
4788
+ const sdauer1 = (0, parser_utils_1.isNumericI7)(i7Data.s_dauer_1) ? (0, parser_utils_1.convertToNumberI7)(i7Data.s_dauer_1) : sr1;
4789
+ const sdauer2 = (0, parser_utils_1.isNumericI7)(i7Data.s_dauer_2) ? (0, parser_utils_1.convertToNumberI7)(i7Data.s_dauer_2) : sr2;
4790
+ const sdauer3 = (0, parser_utils_1.isNumericI7)(i7Data.s_dauer_3) ? (0, parser_utils_1.convertToNumberI7)(i7Data.s_dauer_3) : sr3;
4937
4791
  //Leerlaufverluste in kW
4938
4792
  const pLeer = (0, utils_2.getTrafoPleer)(i7Data, powerTransformerInfo);
4939
4793
  // Leerlaufstrom bezogen auf Wicklung mit dem grössten Sr in %
4940
4794
  const iLeer = (0, utils_2.getTrafoIleer)(i7Data, powerTransformerInfo);
4941
- if (powerTransformer.getUUID() === 'c589d314-fb31-4efb-a463-edd3cb508347') {
4942
- const stop = true;
4943
- }
4944
4795
  if (powerTransformer.getUUID() === '3f58ef46-918f-44d4-8b53-d4078caa2d92') {
4945
4796
  const stop = true;
4946
4797
  }
@@ -4991,7 +4842,7 @@ class ConverterIntegral7 {
4991
4842
  powerTransformerEnd1.r = impedanzW1.r;
4992
4843
  powerTransformerEnd1.x = impedanzW1.x;
4993
4844
  powerTransformerEnd1.g = impedanzW1.g;
4994
- powerTransformerEnd1.b = -1 * impedanzW1.b;
4845
+ powerTransformerEnd1.b = impedanzW1.b;
4995
4846
  powerTransformerEnd1.ratedU = ur1;
4996
4847
  powerTransformerEnd1.ratedS = sr1;
4997
4848
  this.setPowerTransformerEndProperties(frame, powerTransformerEnd1, powerTransformer, terminal1, sternpunktKnotenMap, integral7, sdauer1, i7Data, defaultValuesConfig, trafoWicklungen);
@@ -5038,7 +4889,7 @@ class ConverterIntegral7 {
5038
4889
  powerTransformerEnd2.r = impedanzW2.r;
5039
4890
  powerTransformerEnd2.x = impedanzW2.x;
5040
4891
  powerTransformerEnd2.g = impedanzW2.g;
5041
- powerTransformerEnd2.b = -1 * impedanzW2.b;
4892
+ powerTransformerEnd2.b = impedanzW2.b;
5042
4893
  powerTransformerEnd2.ratedS = sr2;
5043
4894
  powerTransformerEnd2.ratedU = ur2;
5044
4895
  powerTransformerEnd2.powerTransformer = powerTransformer;
@@ -5086,7 +4937,7 @@ class ConverterIntegral7 {
5086
4937
  powerTransformerEnd3.r = impedanzW3.r;
5087
4938
  powerTransformerEnd3.x = impedanzW3.x;
5088
4939
  powerTransformerEnd3.g = impedanzW3.g;
5089
- powerTransformerEnd3.b = -1 * impedanzW3.b;
4940
+ powerTransformerEnd3.b = impedanzW3.b;
5090
4941
  powerTransformerEnd3.ratedS = sr3;
5091
4942
  powerTransformerEnd3.ratedU = ur3;
5092
4943
  powerTransformerEnd3.powerTransformer = powerTransformer;
@@ -5118,15 +4969,6 @@ class ConverterIntegral7 {
5118
4969
  powerTransformerEnd3.r0 = zeroSequImpedanzWx.r03;
5119
4970
  // Transormator Anschlusspunkte nach Spannungsebene sortieren
5120
4971
  this.sortTransformerEnd(powerTransformer, 'ratedU', 'desc');
5121
- // Set grounding for autotransformer
5122
- const pTEnds = powerTransformer.getPowerTransformerEnd().filter(elem => elem.connectionKind === 'A');
5123
- if (pTEnds.length > 0) {
5124
- if (pTEnds.filter(elem => elem.grounded === true).length > 0) {
5125
- for (const end of pTEnds) {
5126
- end.grounded = true;
5127
- }
5128
- }
5129
- }
5130
4972
  //TODO
5131
4973
  /** Stufenschalter werden vor der Sortierung der Wicklung nach der Spannungsebene angelegt,
5132
4974
  * da sonst die Wicklungsnummern, nicht mehr übereinstimmen könnten */
@@ -5321,8 +5163,10 @@ class ConverterIntegral7 {
5321
5163
  sortTransformerEnd(powerTransformer, sortProperty, order) {
5322
5164
  // Store current order of power transformer ends.
5323
5165
  let winding_guids = new Array(powerTransformer.powerTransformerEnd.length);
5166
+ let winding_guids_fixed = new Array(powerTransformer.powerTransformerEnd.length);
5324
5167
  for (let i = 0; i < powerTransformer.powerTransformerEnd.length; i++) {
5325
5168
  winding_guids[i] = powerTransformer.powerTransformerEnd[i].getUUID();
5169
+ winding_guids_fixed[i] = powerTransformer.powerTransformerEnd[i].getUUID();
5326
5170
  }
5327
5171
  //Sort: This step maybe changes power transformer ends order for this power transformer.
5328
5172
  powerTransformer.powerTransformerEnd.sort(function (w1, w2) {
@@ -5346,19 +5190,8 @@ class ConverterIntegral7 {
5346
5190
  // const isNull = true;
5347
5191
  //}
5348
5192
  }
5349
- let tmpMapping = new Array(powerTransformer.powerTransformerEnd.length);
5350
- for (let i = 0; i < winding_guids.length; i++) {
5351
- tmpMapping[i] = (winding_guids.indexOf(powerTransformer.powerTransformerEnd[i].getUUID()) + 1).toString();
5352
- }
5353
- return tmpMapping; //return mapping
5354
5193
  }
5355
5194
  setACLineSegmentProperties(defaultModel, cimModel, acLineSegment, data, cable, defaultValuesConfig) {
5356
- if ((0, parser_utils_1.isBooleanI7)(data.ltgmonitoring) && (0, parser_utils_1.convertToBooleanI7)(data.ltgmonitoring)) {
5357
- acLineSegment.ltgmonitoring = (0, parser_utils_1.convertToBooleanI7)(data.ltgmonitoring);
5358
- }
5359
- else {
5360
- acLineSegment.ltgmonitoring = false;
5361
- }
5362
5195
  if ((0, parser_utils_1.isBooleanI7)(data.flag_impedanzlos) && (0, parser_utils_1.convertToBooleanI7)(data.flag_impedanzlos)) {
5363
5196
  data.flag_impedanzlos = 1;
5364
5197
  }
@@ -5459,8 +5292,8 @@ class ConverterIntegral7 {
5459
5292
  * @param equipmentKey Generierung einer persistenter UUID v5. Für PowerTransformer wird UUID des PowerTransformerEnds verwendet. Andernfalls die UUID des ConductingEquipments
5460
5293
  * */
5461
5294
  setConductingEquipmentOperationalLimit(cimModel, name, terminal, equipmentKey, limit, limitType, igrenz) {
5462
- if (!(limit !== undefined && limit > 0) || !(igrenz !== undefined && igrenz > 0))
5463
- return; //if 'limit' and 'igrenz' is not given leave
5295
+ if ((limit !== undefined && limit > 0) && (igrenz !== undefined && igrenz > 0))
5296
+ return;
5464
5297
  /** OperationalLimitSet erstellen */
5465
5298
  const operationalLimitSetKey = terminal.getUUID() + equipmentKey;
5466
5299
  const operationalLimitSetUUID = common_utils_1.CommonUtils.generateUUIDv5(cim_class_names_1.ClassNames.OperationalLimitSet, this.configUuid, operationalLimitSetKey);
@@ -5545,9 +5378,6 @@ class ConverterIntegral7 {
5545
5378
  terminal.name = (0, util_create_1.createNotation)([conductingEquipment.getUUID().substring(0, 8), '_' + terminal.name], 32, true);
5546
5379
  }
5547
5380
  }
5548
- if (terminal !== undefined && terminal.getUUID() === '7564eef1-6cd6-59c2-957e-825c6593fdf2') {
5549
- const stop = true;
5550
- }
5551
5381
  return terminal;
5552
5382
  }
5553
5383
  createBoundaryConnection(frame, conductingEquipment, i7ObjectID, phase) {
@@ -6064,7 +5894,7 @@ class ConverterIntegral7 {
6064
5894
  // Topologie
6065
5895
  powerTransformerEnd.terminal = terminal;
6066
5896
  this.setConductingEquipmentOperationalLimit(cimModel, `W${powerTransformerEnd.endNumber}${powerTransformer === null || powerTransformer === void 0 ? void 0 : powerTransformer.name}`, terminal, powerTransformer.getUUID(), sdauer, cim_class_names_1.ClassNames.ApparentPowerLimit);
6067
- if (powerTransformer.getUUID() === '3c3928be-e691-453d-8216-df30bd11845e') {
5897
+ if (powerTransformer.getUUID() === '4d14cd95-215c-45f3-8136-b06d69ee0191') {
6068
5898
  const stop = true;
6069
5899
  }
6070
5900
  let isTrafo2w = i7Data.trafowicklung3w3 === undefined ? true : false;
@@ -6120,34 +5950,36 @@ class ConverterIntegral7 {
6120
5950
  }
6121
5951
  convertTapChangers(i7Data, transformerEnds, cimModel, transformerinfo, connectivityNode, spannungsband) {
6122
5952
  var _a, _b, _c, _d, _e, _f, _g, _h;
6123
- if ((0, parser_utils_1.getUUID)(i7Data.guid) === 'c0ba4bd1102c4f4fa4fc66865a60f462') { //Zeile53 - Typ Meeden'
6124
- let stop = true;
6125
- }
6126
- if ((0, parser_utils_1.getUUID)(i7Data.guid) === '2e8057ed695147f9903023cb5e9d4a0c') { //Zeile55 - SR und LR'
6127
- let stop = true;
5953
+ /*if(getUUID(i7Data.guid) === '11e7be86-8bb7-41ba-898a-74cd5e8efbb9'){ //Zeile50
5954
+ let stop = true; DONE
6128
5955
  }
6129
- if ((0, parser_utils_1.getUUID)(i7Data.guid).toLowerCase() === 'd7a25b80-b439-48a0-b67e-108903063237') { //Zeile81 - SR statt LR'
5956
+ if(getUUID(i7Data.guid) === '1239F03C-ED5B-4FDF-9453-D97E611FCC36'){ //Zeile52 - Datenfehler: Transformatoren mit definierter Zusatzspannung und Stufungsbereich, jedoch 'Stufensteller nicht vorhanden'
5957
+ let stop = true; DONE
5958
+ }*/
5959
+ /*if(getUUID(i7Data.guid)=== 'CFDAA56A-A0DA-4C5B-92CC-21138B6D6D07'){ //Standard LR
5960
+ let stop = true;
5961
+ }*/
5962
+ if ((0, parser_utils_1.getUUID)(i7Data.guid) === '00ebe00e-50fa-4fc0-9ed6-557528a9b460') { //Zeile53 - Typ Meeden'
6130
5963
  let stop = true;
6131
5964
  }
6132
- if ((0, parser_utils_1.getUUID)(i7Data.guid) === 'b81485dd-5115-4241-b31a-c87a3eec9803') {
5965
+ /*if(getUUID(i7Data.guid) === '012416f2d9584971baa93360fcf40be2'){ //Zeile55 - SR statt LR'
5966
+ let stop = true;
5967
+ }*/
5968
+ if ((0, parser_utils_1.getUUID)(i7Data.guid) === '515508dc-5982-4686-ad26-08d39db91421') { //Zeile81 - SR statt LR'
6133
5969
  let stop = true;
6134
5970
  }
5971
+ /*if(getUUID(i7Data.guid) === '5ec82d14-ee64-43b6-86ff-c7615d96f7ad'){ //Zeile58
5972
+ let stop = true;
5973
+ }*/
6135
5974
  let ratioPhaseTapChangerPresent = false;
6136
5975
  //Check if tap changer exists. (power transformer winding)
6137
5976
  let tapChangerNumberI7 = []; //Number of tap changer
6138
5977
  let tapChangerNumber = [];
6139
- //collect information about tap changers (without type)
5978
+ //let transformerEndInfo:EVPowerTransformerEndInfo[] = [];
6140
5979
  for (let tapChangerPos = 1; tapChangerPos <= 2; tapChangerPos++) {
6141
5980
  if ((0, parser_utils_1.isNumericI7)(i7Data[`gestufte_seite_s${tapChangerPos}`])) {
6142
- if (i7Data[`gestufte_seite_s${tapChangerPos}`] !== 0) {
6143
- tapChangerNumberI7.push(i7Data[`gestufte_seite_s${tapChangerPos}`]);
6144
- tapChangerNumber.push(i7Data[`gestufte_seite_s${tapChangerPos}`]);
6145
- }
6146
- else if (i7Data[`gestufte_seite_s${tapChangerPos}`] === 0) {
6147
- const controlledSide = getHVSideNumber(transformerEnds);
6148
- tapChangerNumberI7.push(controlledSide);
6149
- tapChangerNumber.push(controlledSide);
6150
- }
5981
+ tapChangerNumberI7.push(i7Data[`gestufte_seite_s${tapChangerPos}`]);
5982
+ tapChangerNumber.push(i7Data[`gestufte_seite_s${tapChangerPos}`]);
6151
5983
  }
6152
5984
  }
6153
5985
  //collect information about tap changers (type)
@@ -6162,15 +5994,15 @@ class ConverterIntegral7 {
6162
5994
  //If there is a phase tap changer and a ratio tap changer reorder the tap changers to process ratio tap changer first.
6163
5995
  let index = undefined;
6164
5996
  if (tapChangerNumberI7.length > 1) {
6165
- for (let i = 0; i < tapChangerNumberI7.length; i++) {
5997
+ for (let entry of tapChangerNumberI7) {
6166
5998
  const spezialRegelung = (0, parser_utils_1.isNumericI7)(i7Data.trafo_spezial) ? i7Data.trafo_spezial : transformerinfo === null || transformerinfo === void 0 ? void 0 : transformerinfo.spezialRegelung;
6167
- const transformerEndInfo = (_d = transformerinfo === null || transformerinfo === void 0 ? void 0 : transformerinfo.transformerEndInfos) === null || _d === void 0 ? void 0 : _d.find(elem => elem.endNumber === tapChangerNumberI7[i]);
5999
+ const transformerEndInfo = (_d = transformerinfo === null || transformerinfo === void 0 ? void 0 : transformerinfo.transformerEndInfos) === null || _d === void 0 ? void 0 : _d.find(elem => elem.endNumber === entry);
6168
6000
  const tapChangerInfo = transformerEndInfo === null || transformerEndInfo === void 0 ? void 0 : transformerEndInfo.tapChangerInfo;
6169
- const angle = (0, parser_utils_1.isNumericI7)(i7Data[`uzus_winkel_s${i + 1}`])
6170
- ? (0, parser_utils_1.convertToNumberI7)(i7Data[`uzus_winkel_s${i + 1}`])
6001
+ const angle = (0, parser_utils_1.isNumericI7)(i7Data[`uzus_winkel_s${entry}`])
6002
+ ? (0, parser_utils_1.convertToNumberI7)(i7Data[`uzus_winkel_s${entry}`])
6171
6003
  : (_e = tapChangerInfo === null || tapChangerInfo === void 0 ? void 0 : tapChangerInfo.stepPhaseIncrement) === null || _e === void 0 ? void 0 : _e.value;
6172
- if (!((0, parser_utils_1.isNumericI7)(angle) && (0, parser_utils_1.convertToNumberI7)(angle) != 0 || spezialRegelung) && i > 0) {
6173
- index = i; //This only works for two tapchanger definitions per power transformer
6004
+ if (!((0, parser_utils_1.isNumericI7)(angle) && (0, parser_utils_1.convertToNumberI7)(angle) != 0 || spezialRegelung) && tapChangerNumberI7.indexOf(entry) > 0) {
6005
+ index = tapChangerNumberI7.indexOf(entry);
6174
6006
  ratioPhaseTapChangerPresent = true;
6175
6007
  }
6176
6008
  }
@@ -6180,15 +6012,15 @@ class ConverterIntegral7 {
6180
6012
  tapChangerNumber[1] = tapChangerNumberI7[0];
6181
6013
  }
6182
6014
  /** I7 Modell max. 2 Stufenschalter */
6183
- for (let i = 0; i < tapChangerNumber.length; i++) {
6015
+ for (let entry of tapChangerNumber) {
6184
6016
  /**
6185
6017
  * 0 Oberspannungsseite
6186
6018
  * 1 Seite 1
6187
6019
  * 2 Seite 2
6188
6020
  * - Stufenschalter nicht vorhanden
6189
6021
  */
6190
- let entryI7 = i + 1;
6191
- let gestufteSeite = tapChangerNumberI7[i];
6022
+ let entryI7 = tapChangerNumberI7.indexOf(entry) + 1;
6023
+ let gestufteSeite = tapChangerNumberI7[entryI7 - 1];
6192
6024
  const transformerEndInfo = (_f = transformerinfo === null || transformerinfo === void 0 ? void 0 : transformerinfo.transformerEndInfos) === null || _f === void 0 ? void 0 : _f.find(elem => elem.endNumber === entryI7);
6193
6025
  const transformerEnd = transformerEnds.find(elem => elem.endNumber === entryI7);
6194
6026
  if ((0, parser_utils_1.isNumericI7)(gestufteSeite)) {
@@ -6208,8 +6040,8 @@ class ConverterIntegral7 {
6208
6040
  continue;
6209
6041
  }
6210
6042
  const tapChangerInfo = transformerEndInfo === null || transformerEndInfo === void 0 ? void 0 : transformerEndInfo.tapChangerInfo;
6211
- const angle = (0, parser_utils_1.isNumericI7)(i7Data[`uzus_winkel_s${i + 1}`])
6212
- ? (0, parser_utils_1.convertToNumberI7)(i7Data[`uzus_winkel_s${i + 1}`])
6043
+ const angle = (0, parser_utils_1.isNumericI7)(i7Data[`uzus_winkel_s${entryI7}`])
6044
+ ? (0, parser_utils_1.convertToNumberI7)(i7Data[`uzus_winkel_s${entryI7}`])
6213
6045
  : (_h = tapChangerInfo === null || tapChangerInfo === void 0 ? void 0 : tapChangerInfo.stepPhaseIncrement) === null || _h === void 0 ? void 0 : _h.value;
6214
6046
  const spezialRegelung = (0, parser_utils_1.isNumericI7)(i7Data.trafo_spezial) ? i7Data.trafo_spezial : transformerinfo === null || transformerinfo === void 0 ? void 0 : transformerinfo.spezialRegelung;
6215
6047
  //const neutralU = transformerEnd.ratedU;
@@ -6496,99 +6328,65 @@ class ConverterIntegral7 {
6496
6328
  * @param sternpunktKnotenMap Map mit den Sterpunktknoten aus der I7 Datenbank
6497
6329
  * */
6498
6330
  convertTrafoGrounding(frame, powerTransformer, powerTransformerEnd, i7Modell, stpKnoten, defaultValuesConfig) {
6499
- /**
6500
- * Five cases for transformer grounding model has to be checked:
6501
- * Case 1: no grounding ... no 'Sternpunktknoten' is present ... ''
6502
- * Case 2: no grounding ... 'Sternpunktknoten', 'SternpunktSchaltelement', 'Sternpunktschiene' is present but no 'KDrossel' ... 'isoliert'
6503
- * Case 3: grounding is present ... only 'Sternpunktknoten' is present and 'Sternpunktknoten.geerdet' == 1 ... 'starr' or 'direkt'
6504
- * Case 4: grounding is present ... only 'Sternpunktknoten' and 'Kdrossel' is present ... 'über Impedanz'
6505
- * Case 5: grounding is present ... 'Sternpunktknoten', 'Sternpunktschaltelement', 'Sternpunktschiene' and 'Kdrossel' is present ... 'über Impedanz'
6506
- * Case 6: no grounding ... only 'Sternpunktknoten' is present and 'Sternpunktknoten.geerdet' == 0 ... ''
6507
- */
6331
+ var _a, _b, _c, _d, _e, _f;
6332
+ /** Trafo ist geerdet */
6508
6333
  const cimModel = frame.cimModel;
6509
- let groundDisconnectorUUID = undefined;
6510
- let connectivityNodeN = undefined;
6511
- let groundDisconnector = undefined;
6512
- let voltageLevel = undefined;
6513
6334
  if (stpKnoten) {
6514
- groundDisconnectorUUID = i7Modell.sternPunktImpModel.stpSchaltelementeIdGroundDisconnectorUUID.get(stpKnoten.schaltelement1pelem);
6515
- connectivityNodeN = i7Modell.sternPunktImpModel.stpSchieneIdConnectivityNode.get(i7Modell.sternPunktImpModel.GroundDisconnectorUuidStpSchieneId.get(groundDisconnectorUUID));
6516
- groundDisconnector = i7Modell.sternPunktImpModel.groundDisconnectors.get(groundDisconnectorUUID);
6517
- if (groundDisconnector !== undefined && groundDisconnector.getTerminals().size === 1) {
6518
- const cn = powerTransformerEnd.getTerminal().getConnectivityNode();
6519
- this.createConnection(cimModel, groundDisconnector, cn, PhaseCode_1.PhaseCode.ABCN, true);
6520
- }
6521
- else if (groundDisconnector !== undefined && groundDisconnector.getTerminals().size < 1) {
6522
- this.logger.debug(`GroundDisconnector of PowerTransformerEnd ${powerTransformerEnd === null || powerTransformerEnd === void 0 ? void 0 : powerTransformerEnd.mrid} is not successfully connected.`);
6523
- }
6524
- else if (groundDisconnector !== undefined && groundDisconnector.getTerminals().size > 2) {
6525
- this.logger.debug(`GroundDisconnector of PowerTransformerEnd ${powerTransformerEnd === null || powerTransformerEnd === void 0 ? void 0 : powerTransformerEnd.mrid} is referenced by more than two Terminal objects.`);
6526
- }
6527
- /** EquipmentContainer - Voltage Level*/
6528
- voltageLevel = (this.determineEquipmentContainer('VoltageLevel', cimModel, powerTransformerEnd.getTerminal().connectivityNode.connectivityNodeContainer));
6529
- }
6530
- if (stpKnoten && groundDisconnector === undefined) { //Case 3 and Case 4
6531
- const earthFaultCompensator = i7Modell.sternPunktImpModel.stpKnotenStpImp.get(stpKnoten.id);
6532
- if (earthFaultCompensator instanceof GroundingImpedance_1.GroundingImpedance) { //Case 4 ... 'Kdrossel' is modelled as a GroundingImpedanz
6533
- //cimModel.addGroundingImpedance(earthFaultCompensator as GroundingImpedance);//set grounded to 'true' if PetersenCoil is present
6534
- const groundingImpedance = earthFaultCompensator;
6535
- powerTransformerEnd.xground = groundingImpedance.x;
6536
- powerTransformerEnd.rground = groundingImpedance.r;
6537
- powerTransformerEnd.grounded = true;
6538
- }
6539
- else if (earthFaultCompensator instanceof PetersenCoil_1.PetersenCoil) { //Case 4 ... 'Kdrossel' is modelled as a PetersenCoil
6540
- //cimModel.addPetersenCoil(earthFaultCompensator as PetersenCoil); //set grounded to 'true' if GroundingImpedance is present
6541
- const petersenCoil = earthFaultCompensator;
6542
- powerTransformerEnd.xground = (0, parser_utils_1.isNumericI7)(petersenCoil.xGroundNominal) ? petersenCoil.xGroundNominal : (((0, parser_utils_1.isNumericI7)(petersenCoil.xGroundMax) && (0, parser_utils_1.isNumericI7)(petersenCoil.xGroundMin)) ? (petersenCoil.xGroundMax + petersenCoil.xGroundMin) / 2 : defaultValuesConfig.TransformerEnd.xground);
6543
- powerTransformerEnd.rground = petersenCoil.r;
6544
- powerTransformerEnd.grounded = true;
6545
- }
6546
- else if (stpKnoten.geerdet === 1) { //Case 3
6547
- powerTransformerEnd.rground = defaultValuesConfig.TransformerEnd.rground; //it is assumed that rground and xground is zero in case of solidly grounding
6548
- powerTransformerEnd.xground = defaultValuesConfig.TransformerEnd.xground; //it is assumed that rground and xground is zero in case of solidly grounding
6549
- powerTransformerEnd.grounded = true;
6550
- }
6551
- else { //Case 6
6552
- powerTransformerEnd.grounded = false;
6553
- }
6554
- }
6555
- else if (connectivityNodeN !== undefined && groundDisconnector !== undefined) {
6556
- const earthFaultCompensator = i7Modell.sternPunktImpModel.groundDisconnectorUUIDstpImp.get(groundDisconnectorUUID);
6557
- if (earthFaultCompensator instanceof GroundingImpedance_1.GroundingImpedance) { //Case 5 ... 'Kdrossel' is modelled as a GroundingImpedanz
6558
- cimModel.addGroundingImpedance(earthFaultCompensator);
6559
- cimModel.addGroundDisconnector(groundDisconnector);
6560
- cimModel.addConnectivityNode(connectivityNodeN);
6561
- powerTransformerEnd.grounded = true; //set grounded to 'true' if GroundingImpedance is present
6562
- }
6563
- else if (earthFaultCompensator instanceof PetersenCoil_1.PetersenCoil) { //Case 5 ... 'Kdrossel' is modelled as a PetersenCoil
6564
- cimModel.addPetersenCoil(earthFaultCompensator);
6565
- cimModel.addGroundDisconnector(groundDisconnector);
6566
- cimModel.addConnectivityNode(connectivityNodeN);
6567
- powerTransformerEnd.grounded = true; //set grounded to 'true' if PetersenCoil is present
6568
- }
6569
- else { //Case 2
6570
- powerTransformerEnd.grounded = false; //set grounded to 'false' if no GroundingImpedance or PetersenCoil is present ... 'isolierte Sternpunktschiene'
6571
- }
6572
- /** BaseVoltage */
6573
- if (voltageLevel !== undefined) {
6574
- groundDisconnector.baseVoltage = voltageLevel.baseVoltage ? voltageLevel.baseVoltage : powerTransformerEnd.baseVoltage;
6575
- groundDisconnector.equipmentContainer = voltageLevel;
6576
- if (earthFaultCompensator !== undefined) {
6577
- earthFaultCompensator.equipmentContainer = voltageLevel;
6578
- }
6579
- connectivityNodeN.connectivityNodeContainer = voltageLevel;
6580
- connectivityNodeN.key = voltageLevel.key + connectivityNodeN.key;
6335
+ const junctionUUID = i7Modell.sternPunktImpModel.stpSchieneJunctionUUIDs.get(stpKnoten.schaltelement1pelem);
6336
+ const junction = i7Modell.sternPunktImpModel.junctions.get(junctionUUID);
6337
+ powerTransformerEnd.grounded = true;
6338
+ // TODO
6339
+ powerTransformerEnd.rground = defaultValuesConfig.TransformerEnd.rground;
6340
+ if (!junctionUUID) {
6341
+ /** Fall 1 Wenn der Knoten kein Schaltelement hat, dann direkte Erdung */
6342
+ //TODO
6343
+ // rground und xground aus der default-config verwenden?
6344
+ powerTransformerEnd.xground = defaultValuesConfig.TransformerEnd.xground;
6581
6345
  }
6582
6346
  else {
6583
- this.logger.debug(`PowerTransformerEnd ${powerTransformerEnd === null || powerTransformerEnd === void 0 ? void 0 : powerTransformerEnd.mrid} hat kein VoltageLevel`);
6347
+ /** Fall 2 Trafo ist über eine Sternpunktschiene geerdet
6348
+ * Nur Verbindung zur Junction herstellen */
6349
+ let terminal;
6350
+ if (!((_a = powerTransformerEnd.terminal) === null || _a === void 0 ? void 0 : _a.connectivityNode) && this.UUID2Integral7ID.has((_b = powerTransformerEnd.terminal) === null || _b === void 0 ? void 0 : _b.connectivityNodeUUID)) {
6351
+ const i7ObjectID = (_d = this.UUID2Integral7ID.get((_c = powerTransformerEnd.terminal) === null || _c === void 0 ? void 0 : _c.connectivityNodeUUID)) === null || _d === void 0 ? void 0 : _d.find(elem => elem);
6352
+ terminal = this.createBoundaryConnection(frame, junction, i7ObjectID, PhaseCode_1.PhaseCode.ABC);
6353
+ }
6354
+ else {
6355
+ terminal = this.createConnection(cimModel, junction, (_e = powerTransformerEnd.terminal) === null || _e === void 0 ? void 0 : _e.connectivityNode, PhaseCode_1.PhaseCode.ABC, true);
6356
+ }
6357
+ if (terminal) {
6358
+ terminal.name = 't_stp_trafo';
6359
+ if (junction)
6360
+ junction.name = (junction === null || junction === void 0 ? void 0 : junction.name) + '/Trafo';
6361
+ const pSpuleGroundImpedance = i7Modell.sternPunktImpModel.junctionUUIDstpImp.get(junctionUUID);
6362
+ /** EquipmentContainer - Voltage Level*/
6363
+ const voltageLevel = this.getVoltageLevelByVoltage((_f = powerTransformer.equipmentContainer) === null || _f === void 0 ? void 0 : _f.voltageLevels, powerTransformerEnd.ratedU);
6364
+ if (!voltageLevel) {
6365
+ this.logger.debug(`Trafo ${powerTransformer === null || powerTransformer === void 0 ? void 0 : powerTransformer.mrid} hat kein EquipmentContainer`);
6366
+ }
6367
+ /** BaseVoltage */
6368
+ if (junction && voltageLevel) {
6369
+ junction.baseVoltage = (voltageLevel === null || voltageLevel === void 0 ? void 0 : voltageLevel.baseVoltage) ? voltageLevel.baseVoltage : powerTransformerEnd.baseVoltage;
6370
+ junction.equipmentContainer = voltageLevel;
6371
+ cimModel.addJunction(junction);
6372
+ }
6373
+ else {
6374
+ this.logger.debug(`TrafoObjektID ${powerTransformer === null || powerTransformer === void 0 ? void 0 : powerTransformer.mrid} hat keine Junction ${junctionUUID} oder VoltageLevel`);
6375
+ }
6376
+ if (pSpuleGroundImpedance) {
6377
+ pSpuleGroundImpedance.baseVoltage = (voltageLevel === null || voltageLevel === void 0 ? void 0 : voltageLevel.baseVoltage) ? voltageLevel.baseVoltage : powerTransformerEnd.baseVoltage;
6378
+ pSpuleGroundImpedance.equipmentContainer = voltageLevel;
6379
+ cimModel.addGroundingImpedance(pSpuleGroundImpedance);
6380
+ }
6381
+ else {
6382
+ this.logger.debug(`TrafoObjektID ${powerTransformer === null || powerTransformer === void 0 ? void 0 : powerTransformer.mrid} hat keine pSpuleGroundImpedance.`);
6383
+ }
6384
+ }
6385
+ else {
6386
+ this.logger.error(`Die Erdnung TrafoObjekts ID ${powerTransformer === null || powerTransformer === void 0 ? void 0 : powerTransformer.mrid} konnte nicht abgebildet werden, da der Anschluss nicht bestimmt werden konnte.`);
6387
+ }
6584
6388
  }
6585
6389
  }
6586
- else { //Case 1
6587
- powerTransformerEnd.grounded = false; //set grounded to 'false' if there is no 'Sternpunktknoten'
6588
- }
6589
- if (powerTransformerEnd.grounded) {
6590
- powerTransformerEnd.terminal.phases = PhaseCode_1.PhaseCode.ABCN;
6591
- }
6592
6390
  }
6593
6391
  /** Equipment grounding
6594
6392
  * @param shnt ShuntCompensator object
@@ -6938,48 +6736,4 @@ function logExecutionTime(logger, startTime, text) {
6938
6736
  logger.debug(`${text} ${(perf_hooks.performance.now() - startTime) / 1000} seconds`);
6939
6737
  console.log(`${text} ${(perf_hooks.performance.now() - startTime) / 1000} seconds`);
6940
6738
  }
6941
- function getHVSideNumber(transformerEnds) {
6942
- let retVal = undefined;
6943
- let urHv = 0;
6944
- for (let i = 0; i < transformerEnds.length; i++) {
6945
- if (urHv < transformerEnds[i].ratedU) {
6946
- retVal = transformerEnds[i].endNumber;
6947
- urHv = transformerEnds[i].ratedU;
6948
- }
6949
- }
6950
- return retVal;
6951
- }
6952
- function createLineName(i7Data, uuid, lineNames) {
6953
- let retVal = (0, util_create_1.createNotation)([i7Data.bezeichner], 32, false);
6954
- if (lineNames[retVal] === true) { //try to find another name with i7Data.stkabname as suffix
6955
- if (i7Data.bezeichner.length > 0 && i7Data.stkabname.length > 0) {
6956
- retVal = i7Data.bezeichner.substring(0, i7Data.bezeichner.length - (i7Data.bezeichner.length + (i7Data.stkabname.length + 1) - 32)) + '_' + i7Data.stkabname;
6957
- }
6958
- else if (i7Data.bezeichner.length > 0 && i7Data.stkabname.length <= 0) {
6959
- retVal = i7Data.bezeichner.substring(0, i7Data.stkabname.length - (i7Data.bezeichner.length - 32));
6960
- }
6961
- else if (i7Data.bezeichner.length <= 0 && i7Data.stkabname.length > 0) {
6962
- retVal = i7Data.stkabname.substring(0, i7Data.stkabname.length - (i7Data.stkabname.length - 32));
6963
- }
6964
- }
6965
- if (lineNames[retVal] === true) { //use uuid to create a unique name
6966
- if (retVal.length + 9 <= 32) {
6967
- retVal = retVal + '_' + normalizeUUID(uuid).substring(0, 8);
6968
- }
6969
- else {
6970
- retVal = retVal.substring(0, retVal.length - (retVal.length + 9 - 32)) + '_' + normalizeUUID(uuid).substring(0, 8);
6971
- }
6972
- }
6973
- return retVal;
6974
- }
6975
- function normalizeUUID(uuid) {
6976
- let retVal = '';
6977
- if (uuid != undefined && uuid.length > 0) {
6978
- retVal = uuid.replaceAll('_', '');
6979
- retVal = retVal.replaceAll('-', '');
6980
- retVal = retVal.toLowerCase();
6981
- retVal = retVal.trim();
6982
- }
6983
- return retVal;
6984
- }
6985
6739
  //# sourceMappingURL=converter.integral7.js.map