@enervance/insight-cim-model 0.0.37 → 0.0.38

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 (177) hide show
  1. package/dist/analysis/analysis-neplan/digi-ons.js +15 -0
  2. package/dist/analysis/analysis-neplan/digi-ons.js.map +1 -1
  3. package/dist/config/westnetz-neplan/callbacks/cb-connectivitynode.d.ts +4 -4
  4. package/dist/config/westnetz-neplan/callbacks/cb-connectivitynode.js +8 -13
  5. package/dist/config/westnetz-neplan/callbacks/cb-connectivitynode.js.map +1 -1
  6. package/dist/config/westnetz-neplan/property-handler-westenergy.config.d.ts +3 -3
  7. package/dist/constants/cim-class-names.js.map +1 -1
  8. package/dist/converter/integral7/ConverterIntegral7.js +0 -2
  9. package/dist/converter/integral7/ConverterIntegral7.js.map +1 -1
  10. package/dist/converter/integral7/converter-i7.d.ts +2 -2
  11. package/dist/converter/integral7/converter-i7.js +156 -106
  12. package/dist/converter/integral7/converter-i7.js.map +1 -1
  13. package/dist/converter/integral7/utils.js +1 -1
  14. package/dist/converter/integral7/utils.js.map +1 -1
  15. package/dist/etl/etl-neplan/etl-neplan-csv.d.ts +5 -0
  16. package/dist/etl/etl-neplan/etl-neplan-csv.js +56 -8
  17. package/dist/etl/etl-neplan/etl-neplan-csv.js.map +1 -1
  18. package/dist/etl/etl-neplan/etl-neplan.js.map +1 -1
  19. package/dist/factory/factory-interfaces.d.ts +26 -0
  20. package/dist/factory/factory-interfaces.js +3 -0
  21. package/dist/factory/factory-interfaces.js.map +1 -0
  22. package/dist/factory/object-factory.d.ts +7 -0
  23. package/dist/factory/object-factory.js +37 -0
  24. package/dist/factory/object-factory.js.map +1 -0
  25. package/dist/factory/sparql-factory.d.ts +6 -0
  26. package/dist/factory/sparql-factory.js +16 -0
  27. package/dist/factory/sparql-factory.js.map +1 -0
  28. package/dist/index.d.ts +2 -0
  29. package/dist/index.js +4 -0
  30. package/dist/index.js.map +1 -1
  31. package/dist/interfaces/model/wires/IExternalNetworkInjection.d.ts +6 -0
  32. package/dist/model/alternate-models/AlternateModel.d.ts +10 -0
  33. package/dist/model/alternate-models/AlternateModel.js +17 -0
  34. package/dist/model/alternate-models/AlternateModel.js.map +1 -0
  35. package/dist/model/alternate-models/AlternateModelGroup.d.ts +8 -0
  36. package/dist/model/alternate-models/AlternateModelGroup.js +22 -0
  37. package/dist/model/alternate-models/AlternateModelGroup.js.map +1 -0
  38. package/dist/model/assets/Asset.js +1 -4
  39. package/dist/model/assets/Asset.js.map +1 -1
  40. package/dist/model/assets/Facility.js.map +1 -1
  41. package/dist/model/core/Bay.d.ts +1 -1
  42. package/dist/model/core/Bay.js +2 -2
  43. package/dist/model/core/Bay.js.map +1 -1
  44. package/dist/model/core/ConductingEquipment.d.ts +1 -1
  45. package/dist/model/core/ConductingEquipment.js +2 -2
  46. package/dist/model/core/ConductingEquipment.js.map +1 -1
  47. package/dist/model/core/ConnectivityNodeContainer.d.ts +1 -1
  48. package/dist/model/core/ConnectivityNodeContainer.js +2 -2
  49. package/dist/model/core/ConnectivityNodeContainer.js.map +1 -1
  50. package/dist/model/core/Equipment.d.ts +1 -1
  51. package/dist/model/core/Equipment.js +3 -3
  52. package/dist/model/core/Equipment.js.map +1 -1
  53. package/dist/model/core/EquipmentContainer.d.ts +1 -1
  54. package/dist/model/core/EquipmentContainer.js +2 -2
  55. package/dist/model/core/EquipmentContainer.js.map +1 -1
  56. package/dist/model/core/IdentifiedObject.d.ts +7 -2
  57. package/dist/model/core/IdentifiedObject.js +3 -1
  58. package/dist/model/core/IdentifiedObject.js.map +1 -1
  59. package/dist/model/core/PowerSystemResource.d.ts +1 -1
  60. package/dist/model/core/PowerSystemResource.js +2 -2
  61. package/dist/model/core/PowerSystemResource.js.map +1 -1
  62. package/dist/model/core/Substation.d.ts +2 -1
  63. package/dist/model/core/Substation.js +10 -2
  64. package/dist/model/core/Substation.js.map +1 -1
  65. package/dist/model/core/VoltageLevel.d.ts +1 -1
  66. package/dist/model/core/VoltageLevel.js +2 -2
  67. package/dist/model/core/VoltageLevel.js.map +1 -1
  68. package/dist/model/extensions/amprion/assets/AMPRIONSpanField.js +2 -2
  69. package/dist/model/extensions/amprion/assets/AMPRIONSpanField.js.map +1 -1
  70. package/dist/model/extensions/amprion/assets/AMPRIONTower.d.ts +4 -2
  71. package/dist/model/extensions/amprion/assets/AMPRIONTower.js +18 -0
  72. package/dist/model/extensions/amprion/assets/AMPRIONTower.js.map +1 -1
  73. package/dist/model/extensions/amprion/model/AMPRIONModel.js +3 -0
  74. package/dist/model/extensions/amprion/model/AMPRIONModel.js.map +1 -1
  75. package/dist/model/extensions/amprion/wires/AMPRIONACLineSegment.d.ts +1 -1
  76. package/dist/model/extensions/amprion/wires/AMPRIONACLineSegment.js +2 -2
  77. package/dist/model/extensions/amprion/wires/AMPRIONACLineSegment.js.map +1 -1
  78. package/dist/model/extensions/enervance/assetinfo/EVPowerTransformerEndInfo.d.ts +2 -3
  79. package/dist/model/extensions/enervance/assetinfo/EVPowerTransformerEndInfo.js +5 -9
  80. package/dist/model/extensions/enervance/assetinfo/EVPowerTransformerEndInfo.js.map +1 -1
  81. package/dist/model/extensions/enervance/assetinfo/EVPowerTransformerInfo.d.ts +2 -0
  82. package/dist/model/extensions/enervance/assetinfo/EVPowerTransformerInfo.js +8 -1
  83. package/dist/model/extensions/enervance/assetinfo/EVPowerTransformerInfo.js.map +1 -1
  84. package/dist/model/extensions/enervance/assetinfo/EVTapChangerInfo.d.ts +2 -0
  85. package/dist/model/extensions/enervance/assetinfo/EVTapChangerInfo.js +11 -2
  86. package/dist/model/extensions/enervance/assetinfo/EVTapChangerInfo.js.map +1 -1
  87. package/dist/model/extensions/enervance/assets/EVWireObject.d.ts +3 -0
  88. package/dist/model/extensions/enervance/assets/EVWireObject.js +40 -0
  89. package/dist/model/extensions/enervance/assets/EVWireObject.js.map +1 -1
  90. package/dist/model/extensions/enervance/model/EVModel.d.ts +5 -0
  91. package/dist/model/extensions/enervance/model/EVModel.js +8 -0
  92. package/dist/model/extensions/enervance/model/EVModel.js.map +1 -0
  93. package/dist/model/extensions/enervance/wires/EVACLineSegment.d.ts +2 -1
  94. package/dist/model/extensions/enervance/wires/EVACLineSegment.js +8 -2
  95. package/dist/model/extensions/enervance/wires/EVACLineSegment.js.map +1 -1
  96. package/dist/model/extensions/enervance/wires/EVACLineSubSegment.d.ts +1 -1
  97. package/dist/model/extensions/enervance/wires/EVACLineSubSegment.js +2 -2
  98. package/dist/model/extensions/enervance/wires/EVACLineSubSegment.js.map +1 -1
  99. package/dist/model/extensions/neplan-westnetz/assets/WNFacility.d.ts +2 -0
  100. package/dist/model/extensions/neplan-westnetz/assets/WNFacility.js +9 -0
  101. package/dist/model/extensions/neplan-westnetz/assets/WNFacility.js.map +1 -1
  102. package/dist/model/extensions/neplan-westnetz/assets/WNFacilityKind.d.ts +8 -1
  103. package/dist/model/extensions/neplan-westnetz/assets/WNFacilityKind.js +8 -1
  104. package/dist/model/extensions/neplan-westnetz/assets/WNFacilityKind.js.map +1 -1
  105. package/dist/model/extensions/neplan-westnetz/core/WNConnectivityNode.js +11 -4
  106. package/dist/model/extensions/neplan-westnetz/core/WNConnectivityNode.js.map +1 -1
  107. package/dist/model/extensions/neplan-westnetz/wires/WNACLineSegment.d.ts +1 -1
  108. package/dist/model/extensions/neplan-westnetz/wires/WNACLineSegment.js +2 -2
  109. package/dist/model/extensions/neplan-westnetz/wires/WNACLineSegment.js.map +1 -1
  110. package/dist/model/generic-data-set/ChangeSet.d.ts +8 -0
  111. package/dist/model/generic-data-set/ChangeSet.js +13 -0
  112. package/dist/model/generic-data-set/ChangeSet.js.map +1 -0
  113. package/dist/model/generic-data-set/ChangeSetMember.d.ts +8 -0
  114. package/dist/model/generic-data-set/ChangeSetMember.js +11 -0
  115. package/dist/model/generic-data-set/ChangeSetMember.js.map +1 -0
  116. package/dist/model/generic-data-set/DataSet.d.ts +10 -0
  117. package/dist/model/generic-data-set/DataSet.js +16 -0
  118. package/dist/model/generic-data-set/DataSet.js.map +1 -0
  119. package/dist/model/generic-data-set/InstanceSet.d.ts +8 -0
  120. package/dist/model/generic-data-set/InstanceSet.js +13 -0
  121. package/dist/model/generic-data-set/InstanceSet.js.map +1 -0
  122. package/dist/model/generic-data-set/ObjectCreation.d.ts +4 -0
  123. package/dist/model/generic-data-set/ObjectCreation.js +15 -0
  124. package/dist/model/generic-data-set/ObjectCreation.js.map +1 -0
  125. package/dist/model/generic-data-set/ObjectDeletion.d.ts +4 -0
  126. package/dist/model/generic-data-set/ObjectDeletion.js +15 -0
  127. package/dist/model/generic-data-set/ObjectDeletion.js.map +1 -0
  128. package/dist/model/generic-data-set/ObjectModification.d.ts +6 -0
  129. package/dist/model/generic-data-set/ObjectModification.js +11 -0
  130. package/dist/model/generic-data-set/ObjectModification.js.map +1 -0
  131. package/dist/model/generic-data-set/ObjectReverseModification.d.ts +6 -0
  132. package/dist/model/generic-data-set/ObjectReverseModification.js +11 -0
  133. package/dist/model/generic-data-set/ObjectReverseModification.js.map +1 -0
  134. package/dist/model/model-operations/DatasetArg.d.ts +6 -0
  135. package/dist/model/model-operations/DatasetArg.js +11 -0
  136. package/dist/model/model-operations/DatasetArg.js.map +1 -0
  137. package/dist/model/model-operations/IncrementalDatasetArg.d.ts +8 -0
  138. package/dist/model/model-operations/IncrementalDatasetArg.js +11 -0
  139. package/dist/model/model-operations/IncrementalDatasetArg.js.map +1 -0
  140. package/dist/model/model-operations/IncrementalDatasetArgDescription.d.ts +6 -0
  141. package/dist/model/model-operations/IncrementalDatasetArgDescription.js +12 -0
  142. package/dist/model/model-operations/IncrementalDatasetArgDescription.js.map +1 -0
  143. package/dist/model/model-operations/ModelOperation.d.ts +7 -0
  144. package/dist/model/model-operations/ModelOperation.js +11 -0
  145. package/dist/model/model-operations/ModelOperation.js.map +1 -0
  146. package/dist/model/model-operations/ModelOperationArg.d.ts +5 -0
  147. package/dist/model/model-operations/ModelOperationArg.js +11 -0
  148. package/dist/model/model-operations/ModelOperationArg.js.map +1 -0
  149. package/dist/model/model-operations/ModelOperationArgDescription.d.ts +8 -0
  150. package/dist/model/model-operations/ModelOperationArgDescription.js +11 -0
  151. package/dist/model/model-operations/ModelOperationArgDescription.js.map +1 -0
  152. package/dist/model/model-operations/ModelOperationDescription.d.ts +7 -0
  153. package/dist/model/model-operations/ModelOperationDescription.js +13 -0
  154. package/dist/model/model-operations/ModelOperationDescription.js.map +1 -0
  155. package/dist/model/wires/ACLineSegment.d.ts +1 -1
  156. package/dist/model/wires/ACLineSegment.js +2 -2
  157. package/dist/model/wires/ACLineSegment.js.map +1 -1
  158. package/dist/model/wires/BusbarSection.d.ts +1 -1
  159. package/dist/model/wires/BusbarSection.js +2 -2
  160. package/dist/model/wires/BusbarSection.js.map +1 -1
  161. package/dist/model/wires/Conductor.d.ts +1 -1
  162. package/dist/model/wires/Conductor.js +2 -2
  163. package/dist/model/wires/Conductor.js.map +1 -1
  164. package/dist/model/wires/Connector.d.ts +1 -1
  165. package/dist/model/wires/Connector.js +2 -2
  166. package/dist/model/wires/Connector.js.map +1 -1
  167. package/dist/model/wires/EnergySource.d.ts +1 -1
  168. package/dist/model/wires/EnergySource.js +2 -2
  169. package/dist/model/wires/EnergySource.js.map +1 -1
  170. package/dist/model/wires/ExternalNetworkInjection.d.ts +6 -0
  171. package/dist/model/wires/ExternalNetworkInjection.js +81 -63
  172. package/dist/model/wires/ExternalNetworkInjection.js.map +1 -1
  173. package/dist/util/util-create.js +18 -18
  174. package/package.json +1 -1
  175. package/dist/etl/etl-eagle/etl-eagle-cim.d.ts +0 -5
  176. package/dist/etl/etl-eagle/etl-eagle-cim.js +0 -17
  177. package/dist/etl/etl-eagle/etl-eagle-cim.js.map +0 -1
@@ -59,11 +59,11 @@ export declare class ConverterI7 {
59
59
  convertSchlaufen(cimModel: Model, integral7: Integral7Model, knotenSoIDs: number[]): Promise<void>;
60
60
  convertBelastungen(cimModel: INTEGRALModel, knotenSfIDs: number[], defaultValuesConfig: IDefaultValuesConfig, targetClass: string): Promise<any>;
61
61
  convertEinspeisungen(cimModel: INTEGRALModel, knotenSfIDs: number[], targetClass: string): Promise<void>;
62
- convertErsatzQuerZweige(cimModel: Model, knotenSfIDs: number[], targetClass: string): Promise<void>;
62
+ convertErsatzQuerZweige(cimModel: INTEGRALModel, knotenSfIDs: number[], targetClass: string): Promise<void>;
63
63
  convertGeneratoren(cimModel: Model, knotenSfIDs: number[], energyTypesConfig: any): Promise<void>;
64
64
  convertAsynchronmotor(cimModel: INTEGRALModel, knotenSfIDs: number[], defaultValuesConfig: IDefaultValuesConfig): Promise<void>;
65
65
  convertKraftwerksbloecke(cimModel: INTEGRALModel, knotenSfIDs: number[], energyTypesConfig: any): Promise<void>;
66
- convertErsatzQuerZweige2ExternalNetworkInjection(cimModel: Model, result: Ersatzquerzweig[]): Promise<void>;
66
+ convertErsatzQuerZweige2ExternalNetworkInjection(cimModel: INTEGRALModel, result: Ersatzquerzweig[]): Promise<void>;
67
67
  convertErsatzQuerZweige2EquivalentInjection(cimModel: Model, result: Ersatzquerzweig[]): Promise<void>;
68
68
  convertBoundaryInjections(cimModel: INTEGRALModel, knotenSfIDs: number[], targetClass: string): Promise<void>;
69
69
  private convertBoundaryInjections2EquivalentInjection;
@@ -132,6 +132,7 @@ const constants_1 = require("./model/dl-utils/constants");
132
132
  const SsabNsg_1 = require("./model/dl-utils/SsabNsg");
133
133
  const Laengskupplung_1 = require("./model/integral/Laengskupplung");
134
134
  const INTEGRALConformLoad_1 = require("../../model/extensions/integral/loadmodel/INTEGRALConformLoad");
135
+ const AngleDegrees_1 = require("../../model/domain/AngleDegrees");
135
136
  class ConverterI7 {
136
137
  constructor() {
137
138
  this.exportFrames = new Map();
@@ -536,8 +537,8 @@ class ConverterI7 {
536
537
  this.mysqlController.execQuery(integral_sql_1.getNetzQuery(integral_sql_1.I7Objects.REGION, 0, 0, []))
537
538
  .then((result) => {
538
539
  for (const i7Data of result) {
539
- const i7Schluesel = integral_prefix_1.GEOREGION_PRAEFIX + utils_2.ueberpruefeZeichenkette(i7Data.bezeichner);
540
- const region = new GeographicalRegion_1.GeographicalRegion(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.ueberpruefeZeichenkette(i7Data.bezeichner), "_GR"]), utils_2.ueberpruefeZeichenkette(i7Data.kurzname), i7Schluesel);
540
+ const i7Schluessel = integral_prefix_1.GEOREGION_PRAEFIX + utils_2.ueberpruefeZeichenkette(i7Data.bezeichner);
541
+ const region = new GeographicalRegion_1.GeographicalRegion(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.ueberpruefeZeichenkette(i7Data.bezeichner), "_GR"]), utils_2.ueberpruefeZeichenkette(i7Data.kurzname), i7Schluessel);
541
542
  this.addIdMapping(i7Data.id, region.mrid, integral_sql_1.Integral7TableNames.REGION);
542
543
  regions.push(region);
543
544
  }
@@ -734,26 +735,26 @@ class ConverterI7 {
734
735
  if (schaltanlagenabschnittIDs.length <= 0)
735
736
  return;
736
737
  const isEingeblendet = 1;
737
- const innerSQLisEingeblendet = `IFNULL(
738
- (SELECT max(slotnummer) + 1
739
- FROM nsg_nsgschaltfeld AS nsg_nsgsf
740
- WHERE nsg_nsgsf.nsgsaa = nsg_nsgsaab.id
741
- AND nsg_nsgsf.eingeblendet = ${isEingeblendet}),
738
+ const innerSQLisEingeblendet = `IFNULL(
739
+ (SELECT max(slotnummer) + 1
740
+ FROM nsg_nsgschaltfeld AS nsg_nsgsf
741
+ WHERE nsg_nsgsf.nsgsaa = nsg_nsgsaab.id
742
+ AND nsg_nsgsf.eingeblendet = ${isEingeblendet}),
742
743
  1)`;
743
744
  const outerSQLisEingeblendet = `AND nsg_nsgsaab.eingeblendet = ${isEingeblendet}`;
744
- const sqlStatement = `SELECT nsg_nsgsaab.variantennr,
745
- nsg_nsgsaab.id,
746
- ${onlyEingeblendet ? innerSQLisEingeblendet : 'nsg_nsgsaab.laenge'} as laenge,
747
- nsg_nsgsaab.nslots,
748
- nsg_nsgsaab.saabschnitt,
749
- nsg_nsgsaab.nsgsa,
750
- nsg_nsgsaab.eingeblendet,
751
- nsg_nsgsaab.nsglkp,
752
- netz_ssab.pos AS posSSAB,
753
- netz_ssab.id AS idSSAB
754
- FROM nsg_nsgsaabschnitt AS nsg_nsgsaab
755
- LEFT JOIN netz_ssab ON nsg_nsgsaab.saabschnitt = netz_ssab.saabschnitt
756
- WHERE (${integral_sql_1.getWhereIDs('nsg_nsgsaab.saabschnitt', schaltanlagenabschnittIDs).join(' OR ')})
745
+ const sqlStatement = `SELECT nsg_nsgsaab.variantennr,
746
+ nsg_nsgsaab.id,
747
+ ${onlyEingeblendet ? innerSQLisEingeblendet : 'nsg_nsgsaab.laenge'} as laenge,
748
+ nsg_nsgsaab.nslots,
749
+ nsg_nsgsaab.saabschnitt,
750
+ nsg_nsgsaab.nsgsa,
751
+ nsg_nsgsaab.eingeblendet,
752
+ nsg_nsgsaab.nsglkp,
753
+ netz_ssab.pos AS posSSAB,
754
+ netz_ssab.id AS idSSAB
755
+ FROM nsg_nsgsaabschnitt AS nsg_nsgsaab
756
+ LEFT JOIN netz_ssab ON nsg_nsgsaab.saabschnitt = netz_ssab.saabschnitt
757
+ WHERE (${integral_sql_1.getWhereIDs('nsg_nsgsaab.saabschnitt', schaltanlagenabschnittIDs).join(' OR ')})
757
758
  ${onlyEingeblendet ? outerSQLisEingeblendet : ''};`;
758
759
  const queryResults = yield this.mysqlController.execQuery(sqlStatement);
759
760
  const filteredResults = queryResults.filter(elem => elem.variantennr === variantenNr);
@@ -1371,7 +1372,7 @@ class ConverterI7 {
1371
1372
  synchronousMachine.ratedU = usoll ? usoll : ur;
1372
1373
  synchronousMachine.aggregate = true;
1373
1374
  synchronousMachine.ratedPowerFactor = cosphir ? cosphir : undefined;
1374
- synchronousMachine.r = utils_2.isNumericI7(i7Data.rg) ? utils_2.convertToNumberI7(i7Data.rg) : undefined;
1375
+ synchronousMachine.r = utils_2.isNumericI7(i7Data.rg) ? utils_2.convertToNumberI7(i7Data.rg) : genType === null || genType === void 0 ? void 0 : genType.rg;
1375
1376
  if (!isRotatingPhaseShifter) {
1376
1377
  const reactiveCapabilityCurve = new ReactiveCapabilityCurve_1.ReactiveCapabilityCurve(utils_1.generateUUID(), util_create_1.createNotation(['CurveData', synchronousMachine.mrid, "_RCC"]));
1377
1378
  reactiveCapabilityCurve.curveStyle = CurveStyle_1.CurveStyle.straightLineYValues;
@@ -1717,7 +1718,7 @@ class ConverterI7 {
1717
1718
  }
1718
1719
  convertBoundaryInjections2EquivalentInjection(cimModel, result) {
1719
1720
  for (const i7Data of result) {
1720
- const equivalentInjection = new EquivalentInjection_1.EquivalentInjection(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), 'BD_EI', `_${cimModel.equivalentInjections.size}`]), i7Data.kurzname);
1721
+ const equivalentInjection = new EquivalentInjection_1.EquivalentInjection(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), 'BD_EI']), i7Data.kurzname);
1721
1722
  const inBetrieb = utils_2.convertToBooleanI7(i7Data.betrieb);
1722
1723
  const einspeisePrio = utils_2.convertToNumberI7(i7Data.einspprio);
1723
1724
  equivalentInjection.p = utils_2.convertToNumberI7(i7Data.p_ersatznetz) + utils_2.convertToNumberI7(i7Data.p_restnetz);
@@ -2134,6 +2135,14 @@ class ConverterI7 {
2134
2135
  externalNetworkInjection.minP = minP;
2135
2136
  const minQ = utils_2.isNumericI7(i7Data.q_min) ? utils_2.convertToNumberI7(i7Data.q_min) : undefined;
2136
2137
  externalNetworkInjection.minQ = minQ;
2138
+ const maxR0X0Ratio = undefined;
2139
+ externalNetworkInjection.maxR0ToX0Ratio = maxR0X0Ratio;
2140
+ const maxR1X1Ratio = undefined;
2141
+ externalNetworkInjection.maxR1ToX1Ratio = maxR1X1Ratio;
2142
+ const maxZ0Z1Ratio = undefined;
2143
+ externalNetworkInjection.maxZ0ToZ1Ratio = maxZ0Z1Ratio;
2144
+ const minIkSecond = undefined;
2145
+ externalNetworkInjection.minInitialSymShCCurrent = minIkSecond;
2137
2146
  const usoll = utils_2.isNumericI7(i7Data.usoll) ? utils_2.convertToNumberI7(i7Data.usoll) : undefined;
2138
2147
  const inBetrieb = utils_2.isBooleanI7(i7Data.betrieb) ? utils_2.convertToBooleanI7(i7Data.betrieb) : false;
2139
2148
  let regulatingControl = undefined;
@@ -2157,6 +2166,7 @@ class ConverterI7 {
2157
2166
  }
2158
2167
  this.setTopologyEnergySourceConsumerObject(cimModel, externalNetworkInjection, i7Data, regulatingControl);
2159
2168
  const prio = utils_2.isNumericI7(i7Data.einspprio) ? utils_2.convertToNumberI7(i7Data.einspprio) : undefined;
2169
+ externalNetworkInjection.referencePriority = prio;
2160
2170
  if ((regulatingControl === null || regulatingControl === void 0 ? void 0 : regulatingControl.mode) === RegulatingControlModeKind_1.RegulatingControlModeKind.voltage) {
2161
2171
  externalNetworkInjection.referencePriority = prio;
2162
2172
  }
@@ -2947,6 +2957,8 @@ class ConverterI7 {
2947
2957
  typTrafo.pkr12 = i7Data.pkr;
2948
2958
  typTrafo.pLeer = i7Data.p_leer;
2949
2959
  typTrafo.iLeer = i7Data.i_leer;
2960
+ typTrafo.schaltgruppe = i7Data.schaltgr;
2961
+ typTrafo.spezialRegelung = i7Data.trafo_spezial;
2950
2962
  const typWicklung1 = new EVPowerTransformerEndInfo_1.EVPowerTransformerEndInfo(utils_1.generateUUID());
2951
2963
  typWicklung1.ratedS = new ApparentPower_1.ApparentPower(i7Data.sr, UnitMultiplier_1.UnitMultiplier.m, UnitSymbol_1.UnitSymbol.VA);
2952
2964
  this.setTransformerEndInfoProperties(typWicklung1, i7Data, 1);
@@ -3050,7 +3062,7 @@ class ConverterI7 {
3050
3062
  });
3051
3063
  }
3052
3064
  convertTrafo2W(frame, integral7, defaultValuesConfig, standortIDs) {
3053
- var _a;
3065
+ var _a, _b;
3054
3066
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
3055
3067
  if (this.isTableAvailable(integral_sql_1.Integral7TableNames.TRAFO2W)) {
3056
3068
  const cimModel = frame.cimModel;
@@ -3082,8 +3094,8 @@ class ConverterI7 {
3082
3094
  else {
3083
3095
  powerTransformer.isPartOfGeneratorUnit = false;
3084
3096
  }
3085
- const schaltgruppe = i7Data.schaltgr;
3086
- const powerTransformerEnd1 = new PowerTransformerEnd_1.PowerTransformerEnd(utils_1.getUUID(i7Data.guid_w1), `W1${powerTransformer.name}`);
3097
+ const schaltgruppe = ((_b = i7Data.schaltgr) === null || _b === void 0 ? void 0 : _b.length) ? i7Data.schaltgr : powerTransformerInfo === null || powerTransformerInfo === void 0 ? void 0 : powerTransformerInfo.schaltgruppe;
3098
+ const powerTransformerEnd1 = new PowerTransformerEnd_1.PowerTransformerEnd(utils_1.getUUID(i7Data.guid_w1), `W1${powerTransformer === null || powerTransformer === void 0 ? void 0 : powerTransformer.name}`);
3087
3099
  powerTransformerEnd1.endNumber = 1;
3088
3100
  const pkr = utils_2.getPkrTrafo(i7Data, powerTransformerInfo, '');
3089
3101
  const ukr = utils_2.getUkrTrafo(i7Data, powerTransformerInfo, '') / 100;
@@ -3140,7 +3152,7 @@ class ConverterI7 {
3140
3152
  const spannungsband = integral7.targetVoltages.get(spRegKnoten.id);
3141
3153
  const cnUUID = this.integralID2UUID.get(spRegKnoten.id);
3142
3154
  const connectivityNode = cimModel.getObject(cnUUID);
3143
- this.convertTapChangers(i7Data, powerTransformerEnds, cimModel, connectivityNode, spannungsband);
3155
+ this.convertTapChangers(i7Data, powerTransformerEnds, cimModel, powerTransformerInfo, connectivityNode, spannungsband);
3144
3156
  cimModel.addPowerTransformerEnd(powerTransformerEnd1);
3145
3157
  cimModel.addPowerTransformerEnd(powerTransformerEnd2);
3146
3158
  cimModel.addPowerTransformer(powerTransformer);
@@ -3290,13 +3302,12 @@ class ConverterI7 {
3290
3302
  powerTransformerEnd3.connectionKind = utils_2.getSchaltgruppe(schaltgruppe, powerTransformerEnd3.endNumber, powerTransformerEnd3.grounded);
3291
3303
  powerTransformerEnd3.phaseAngleClock = utils_2.getSchaltgruppeAngleClock(schaltgruppe, powerTransformerEnd3.endNumber);
3292
3304
  this.sortTransformerEnd(powerTransformer, 'ratedU', 'desc');
3293
- const terminals = [terminal1, terminal2, terminal3];
3294
3305
  const powerTransformerEnds = [powerTransformerEnd1, powerTransformerEnd2, powerTransformerEnd3];
3295
3306
  const spRegKnoten = yield this.getSpannungsbandTrafo2W(i7Data);
3296
3307
  const spannungsband = integral7.targetVoltages.get(spRegKnoten.id);
3297
3308
  const cnUUID = this.integralID2UUID.get(spRegKnoten.id);
3298
3309
  const connectivityNode = cimModel.getObject(cnUUID);
3299
- this.convertTapChangers(i7Data, powerTransformerEnds, cimModel, connectivityNode, spannungsband);
3310
+ this.convertTapChangers(i7Data, powerTransformerEnds, cimModel, powerTransformerInfo, connectivityNode, spannungsband);
3300
3311
  cimModel.addPowerTransformer(powerTransformer);
3301
3312
  cimModel.addPowerTransformerEnd(powerTransformerEnd1);
3302
3313
  cimModel.addPowerTransformerEnd(powerTransformerEnd2);
@@ -3315,17 +3326,19 @@ class ConverterI7 {
3315
3326
  const maxstufe = `maxstufe_s${endNumber}`;
3316
3327
  const umax = `umax_s${endNumber}`;
3317
3328
  const umin = `umin_s${endNumber}`;
3318
- const gestufte_seite = `gestufte_seite_s${endNumber}`;
3329
+ const gestufteSeite = `gestufte_seite_s${endNumber}`;
3330
+ const winkel = `uzus_winkel_s${endNumber}`;
3319
3331
  const ur = `ur${endNumber}`;
3320
3332
  powerTransformerEndInfo.endNumber = endNumber;
3321
3333
  powerTransformerEndInfo.ratedU = new Voltage_1.Voltage(data[ur], UnitMultiplier_1.UnitMultiplier.k, UnitSymbol_1.UnitSymbol.V);
3322
- powerTransformerEndInfo.tapActive = utils_2.convertToBooleanI7(data[gestufte_seite]);
3334
+ powerTransformerEndInfo.gestufteSeite = utils_2.convertToNumberI7(data[gestufteSeite]);
3323
3335
  const tapChangerInfo = new EVTapChangerInfo_1.EVTapChangerInfo(utils_1.generateUUID(), `TapChangerInfo_${data['id']}`);
3324
3336
  tapChangerInfo.highStep = utils_2.convertToNumberI7(data[maxstufe]);
3325
3337
  tapChangerInfo.lowStep = utils_2.convertToNumberI7(data[minstufe]);
3326
3338
  tapChangerInfo.neutralStep = utils_2.convertToNumberI7(data[neutralstufe]);
3327
- powerTransformerEndInfo.uMax = data[umax];
3328
- powerTransformerEndInfo.uMin = data[umin];
3339
+ tapChangerInfo.stepPhaseIncrement = utils_2.isNumericI7(data[winkel]) ? new AngleDegrees_1.AngleDegrees(data[winkel], UnitMultiplier_1.UnitMultiplier.none, UnitSymbol_1.UnitSymbol.deg) : undefined;
3340
+ tapChangerInfo.uMax = data[umax];
3341
+ tapChangerInfo.uMin = data[umin];
3329
3342
  tapChangerInfo.setPowerTransfomerEndInfo(powerTransformerEndInfo);
3330
3343
  powerTransformerEndInfo.setTapChangerInfo(tapChangerInfo);
3331
3344
  }
@@ -3660,32 +3673,35 @@ class ConverterI7 {
3660
3673
  return undefined;
3661
3674
  }
3662
3675
  createBoundaryEquivalentInjection(frame, cn) {
3663
- let equivinj_exists = false;
3664
3676
  let equivalentInjection = undefined;
3665
- frame.cimModel.equivalentInjections.forEach((equivinj, uuid) => {
3666
- var _a;
3667
- if (equivinj.name.match(frame.tsoName) && equivinj.name.match(frame.tsoName).length > 0 && ((_a = equivinj.terminals.values()) === null || _a === void 0 ? void 0 : _a.next().value.getConnectivityNodeUUID()) === cn.getUUID()) {
3668
- equivinj_exists = true;
3669
- }
3670
- });
3671
- if (!equivinj_exists) {
3672
- let tmp_terminal = new Terminal_1.Terminal(utils_1.generateUUID());
3673
- tmp_terminal.setConnectivityNodeUUID(cn.mrid);
3674
- tmp_terminal.phases = PhaseCode_1.PhaseCode.ABC;
3675
- tmp_terminal.connected = true;
3676
- tmp_terminal.sequenceNumber = 1;
3677
- equivalentInjection = new EquivalentInjection_1.EquivalentInjection(utils_1.generateUUID(), util_create_1.createNotation([frame.tsoName, '_BD-EI', cn.mrid], 32, true));
3678
- equivalentInjection.p = 0;
3679
- equivalentInjection.q = 0;
3680
- equivalentInjection.regulationStatus = false;
3681
- equivalentInjection.addTerminal(tmp_terminal);
3682
- equivalentInjection.baseVoltage = cn.getBaseVoltage();
3683
- tmp_terminal.setConductingEquipment(equivalentInjection);
3684
- tmp_terminal.name = util_create_1.createNotation([cn.name, '_', equivalentInjection.name, '_BD-T'], 32, true);
3685
- cn.addTerminal(tmp_terminal);
3686
- frame.cimModel.addEquivalentInjection(equivalentInjection);
3687
- if (tmp_terminal.getConductingEquipmentUUID() !== undefined) {
3688
- frame.cimModel.addTerminal(tmp_terminal);
3677
+ if (!frame.boundary) {
3678
+ let equivinj_exists = false;
3679
+ frame.cimModel.equivalentInjections.forEach((equivinj, uuid) => {
3680
+ var _a;
3681
+ if (equivinj.name.match(frame.tsoName) && equivinj.name.match(frame.tsoName).length > 0 && ((_a = equivinj.terminals.values()) === null || _a === void 0 ? void 0 : _a.next().value.getConnectivityNodeUUID()) === cn.getUUID()) {
3682
+ equivinj_exists = true;
3683
+ }
3684
+ });
3685
+ if (!equivinj_exists) {
3686
+ let tmp_terminal = new Terminal_1.Terminal(utils_1.generateUUID());
3687
+ tmp_terminal.setConnectivityNodeUUID(cn.mrid);
3688
+ tmp_terminal.phases = PhaseCode_1.PhaseCode.ABC;
3689
+ tmp_terminal.connected = true;
3690
+ tmp_terminal.sequenceNumber = 1;
3691
+ equivalentInjection = new EquivalentInjection_1.EquivalentInjection(utils_1.generateUUID(), util_create_1.createNotation([frame.tsoName, '_BD-EI', '_' + cn.mrid.substring(0, 8)], 32, true));
3692
+ equivalentInjection.p = 0;
3693
+ equivalentInjection.q = 0;
3694
+ equivalentInjection.regulationStatus = false;
3695
+ equivalentInjection.addTerminal(tmp_terminal);
3696
+ equivalentInjection.baseVoltage = cn.getBaseVoltage();
3697
+ equivalentInjection.normallyInService = false;
3698
+ tmp_terminal.setConductingEquipment(equivalentInjection);
3699
+ tmp_terminal.name = util_create_1.createNotation([cn.name.substring(0, 8), '_', equivalentInjection.name, '_BD-T'], 32, true);
3700
+ cn.addTerminal(tmp_terminal);
3701
+ frame.cimModel.addEquivalentInjection(equivalentInjection);
3702
+ if (tmp_terminal.getConductingEquipmentUUID() !== undefined) {
3703
+ frame.cimModel.addTerminal(tmp_terminal);
3704
+ }
3689
3705
  }
3690
3706
  }
3691
3707
  return equivalentInjection;
@@ -3747,10 +3763,10 @@ class ConverterI7 {
3747
3763
  const tabName_NetzSSAB = integral_sql_1.Integral7TableNames[integral_sql_1.I7Objects.SAMMELSCHIENE];
3748
3764
  const tabName_NetzSchaltfeld = integral_sql_1.Integral7TableNames[integral_sql_1.I7Objects.SCHALTFELD];
3749
3765
  const tabName_NetzKnotenSf = integral_sql_1.Integral7TableNames[integral_sql_1.I7Objects.KNOTEN_SF];
3750
- const sqlStatement = `SELECT ${tabName_NetzSSAB}.id, ${tabName_NetzSSAB}.umin, ${tabName_NetzSSAB}.umax, ${tabName_NetzSSAB}.usoll
3751
- FROM ${tabName_NetzSSAB}
3752
- LEFT JOIN ${tabName_NetzSchaltfeld} ON ${tabName_NetzSSAB}.saabschnitt = ${tabName_NetzSchaltfeld}.saabschnitt
3753
- LEFT JOIN ${tabName_NetzKnotenSf} ON ${tabName_NetzKnotenSf}.schaltfeld = ${tabName_NetzSchaltfeld}.id
3766
+ const sqlStatement = `SELECT ${tabName_NetzSSAB}.id, ${tabName_NetzSSAB}.umin, ${tabName_NetzSSAB}.umax, ${tabName_NetzSSAB}.usoll
3767
+ FROM ${tabName_NetzSSAB}
3768
+ LEFT JOIN ${tabName_NetzSchaltfeld} ON ${tabName_NetzSSAB}.saabschnitt = ${tabName_NetzSchaltfeld}.saabschnitt
3769
+ LEFT JOIN ${tabName_NetzKnotenSf} ON ${tabName_NetzKnotenSf}.schaltfeld = ${tabName_NetzSchaltfeld}.id
3754
3770
  WHERE ${tabName_NetzKnotenSf}.id = ${tempKnotenId}`;
3755
3771
  minMaxSollResult = yield this.mysqlController.execQuery(sqlStatement);
3756
3772
  }
@@ -3760,12 +3776,12 @@ class ConverterI7 {
3760
3776
  const tabName_NetzSo = integral_sql_1.Integral7TableNames[integral_sql_1.I7Objects.KNOTEN_SO];
3761
3777
  const tabName_NetzSchlaufe = integral_sql_1.Integral7TableNames[integral_sql_1.I7Objects.SCHLAUFE];
3762
3778
  const tabName_NetzKnotenZw = integral_sql_1.Integral7TableNames[integral_sql_1.I7Objects.KNOTEN_ZW];
3763
- minMaxSollResult = yield this.mysqlController.execQuery(`SELECT ${tabName_NetzSo}.id, ${tabName_NetzSo}.umin, ${tabName_NetzSo}.umax, ${tabName_NetzSo}.usoll
3764
- FROM ${tabName_NetzKnotenZw}
3765
- LEFT JOIN ${tabName_NetzSchlaufe} ON
3766
- ${tabName_NetzSchlaufe}.id = ${tabName_NetzKnotenZw}.schlaufe
3767
- LEFT JOIN ${tabName_NetzSo} ON
3768
- ${tabName_NetzSchlaufe}.eknoten = ${tabName_NetzSo}.id
3779
+ minMaxSollResult = yield this.mysqlController.execQuery(`SELECT ${tabName_NetzSo}.id, ${tabName_NetzSo}.umin, ${tabName_NetzSo}.umax, ${tabName_NetzSo}.usoll
3780
+ FROM ${tabName_NetzKnotenZw}
3781
+ LEFT JOIN ${tabName_NetzSchlaufe} ON
3782
+ ${tabName_NetzSchlaufe}.id = ${tabName_NetzKnotenZw}.schlaufe
3783
+ LEFT JOIN ${tabName_NetzSo} ON
3784
+ ${tabName_NetzSchlaufe}.eknoten = ${tabName_NetzSo}.id
3769
3785
  WHERE ${tabName_NetzKnotenZw}.id = ${tempKnotenId};`);
3770
3786
  }
3771
3787
  else {
@@ -3776,10 +3792,10 @@ class ConverterI7 {
3776
3792
  else if (spgKnotenId !== undefined) {
3777
3793
  const tabName_NetzSo = integral_sql_1.Integral7TableNames[integral_sql_1.I7Objects.KNOTEN_SO];
3778
3794
  const tabName_NetzSSAB = integral_sql_1.Integral7TableNames[integral_sql_1.I7Objects.SAMMELSCHIENE];
3779
- const query = ` SELECT Voltage.id, Voltage.umin, Voltage.umax, Voltage.usoll
3780
- FROM (
3781
- SELECT id, umin, umax, usoll FROM ${tabName_NetzSo} WHERE ${tabName_NetzSo}.id = ${spgKnotenId}
3782
- UNION
3795
+ const query = ` SELECT Voltage.id, Voltage.umin, Voltage.umax, Voltage.usoll
3796
+ FROM (
3797
+ SELECT id, umin, umax, usoll FROM ${tabName_NetzSo} WHERE ${tabName_NetzSo}.id = ${spgKnotenId}
3798
+ UNION
3783
3799
  SELECT id, umin, umax, usoll FROM ${tabName_NetzSSAB} WHERE ${tabName_NetzSSAB}.id = ${spgKnotenId}) as Voltage`;
3784
3800
  minMaxSollResult = yield this.mysqlController.execQuery(query);
3785
3801
  }
@@ -4042,40 +4058,59 @@ class ConverterI7 {
4042
4058
  powerTransformerEnd.powerTransformer = powerTransformer;
4043
4059
  powerTransformer.addPowerTransformerEnd(powerTransformerEnd);
4044
4060
  }
4045
- convertTapChangers(i7Data, transformerEnds, cimModel, connectivityNode, spannungsband) {
4061
+ convertTapChangers(i7Data, transformerEnds, cimModel, transformerinfo, connectivityNode, spannungsband) {
4062
+ var _a, _b;
4046
4063
  for (let tapChangerNumber = 1; tapChangerNumber <= 2; tapChangerNumber++) {
4047
- const gestufteSeite = i7Data[`gestufte_seite_s${tapChangerNumber}`] === 0 ? 1 : i7Data[`gestufte_seite_s${tapChangerNumber}`];
4048
- const transformerEnd = transformerEnds.find(elem => elem.endNumber === gestufteSeite);
4064
+ const transformerEndInfo = (_a = transformerinfo === null || transformerinfo === void 0 ? void 0 : transformerinfo.transformerEndInfos) === null || _a === void 0 ? void 0 : _a.find(elem => elem.endNumber === tapChangerNumber);
4065
+ const transformerEnd = transformerEnds.find(elem => elem.endNumber === tapChangerNumber);
4066
+ let gestufteSeite = utils_2.isNumericI7(i7Data[`gestufte_seite_s${tapChangerNumber}`])
4067
+ ? i7Data[`gestufte_seite_s${tapChangerNumber}`]
4068
+ : transformerEndInfo === null || transformerEndInfo === void 0 ? void 0 : transformerEndInfo.gestufteSeite;
4069
+ if (utils_2.isNumericI7(gestufteSeite))
4070
+ gestufteSeite = gestufteSeite === 0 ? 1 : gestufteSeite;
4049
4071
  if (!transformerEnd) {
4050
4072
  this.logger.error(`Trafo ${i7Data.id}: Zum Stufenschalter ${gestufteSeite} keine Wicklung gefunden.`);
4051
4073
  continue;
4052
4074
  }
4053
- const angle = utils_2.convertToNumberI7(i7Data[`uzus_winkel_s${tapChangerNumber}`]);
4075
+ const tapChangerInfo = transformerEndInfo === null || transformerEndInfo === void 0 ? void 0 : transformerEndInfo.tapChangerInfo;
4076
+ const angle = utils_2.isNumericI7(i7Data[`uzus_winkel_s${tapChangerNumber}`])
4077
+ ? utils_2.convertToNumberI7(i7Data[`uzus_winkel_s${tapChangerNumber}`])
4078
+ : (_b = tapChangerInfo === null || tapChangerInfo === void 0 ? void 0 : tapChangerInfo.stepPhaseIncrement) === null || _b === void 0 ? void 0 : _b.value;
4054
4079
  const neutralU = transformerEnd.ratedU;
4055
4080
  let tapChanger;
4056
4081
  if (isFinite(angle) && angle !== 0) {
4057
- tapChanger = this.createPhaseTapChanger(i7Data, transformerEnds, cimModel, tapChangerNumber);
4082
+ tapChanger = this.createPhaseTapChanger(i7Data, transformerEnds, cimModel, tapChangerNumber, transformerinfo);
4058
4083
  }
4059
4084
  else {
4060
- tapChanger = this.createRatioTapChanger(i7Data, transformerEnd, cimModel, connectivityNode, tapChangerNumber, spannungsband);
4085
+ tapChanger = this.createRatioTapChanger(i7Data, transformerEnd, cimModel, connectivityNode, tapChangerNumber, spannungsband, transformerinfo);
4061
4086
  }
4062
- this.setTapChangerVoltageProperties(i7Data, cimModel, tapChanger, tapChangerNumber);
4087
+ this.setTapChangerVoltageProperties(i7Data, cimModel, tapChanger, tapChangerNumber, tapChangerInfo);
4063
4088
  tapChanger.transformerEnd = transformerEnd;
4064
4089
  tapChanger.neutralU = neutralU;
4065
4090
  }
4066
4091
  }
4067
- setTapChangerVoltageProperties(i7Data, cimModel, tapChanger, tapChangerNumber) {
4068
- let lowStep = i7Data[`minstufe_s${tapChangerNumber}`];
4069
- let highStep = i7Data[`maxstufe_s${tapChangerNumber}`];
4070
- let neutralStep = i7Data[`mittelstufe_s${tapChangerNumber}`];
4092
+ setTapChangerVoltageProperties(i7Data, cimModel, tapChanger, tapChangerNumber, tapChangerInfo) {
4093
+ let lowStep = utils_2.isNumericI7(i7Data[`minstufe_s${tapChangerNumber}`])
4094
+ ? i7Data[`minstufe_s${tapChangerNumber}`]
4095
+ : tapChangerInfo === null || tapChangerInfo === void 0 ? void 0 : tapChangerInfo.lowStep;
4096
+ let highStep = utils_2.isNumericI7(i7Data[`maxstufe_s${tapChangerNumber}`])
4097
+ ? i7Data[`maxstufe_s${tapChangerNumber}`]
4098
+ : tapChangerInfo === null || tapChangerInfo === void 0 ? void 0 : tapChangerInfo.highStep;
4099
+ let neutralStep = utils_2.isNumericI7(i7Data[`mittelstufe_s${tapChangerNumber}`])
4100
+ ? i7Data[`mittelstufe_s${tapChangerNumber}`]
4101
+ : tapChangerInfo === null || tapChangerInfo === void 0 ? void 0 : tapChangerInfo.neutralStep;
4071
4102
  let currentStep = i7Data[`aktstufe_s${tapChangerNumber}`];
4072
4103
  const i7TapArray = utils_2.getTapChangerStepArray(lowStep, highStep);
4073
- const tapStepCount = i7TapArray.length;
4074
- const neutralStepIndex = i7TapArray.indexOf(neutralStep);
4075
4104
  const lowerVoltageStepCount = utils_2.getTapChangerStepCount(lowStep, neutralStep);
4076
4105
  const increaseVoltageStepCount = utils_2.getTapChangerStepCount(neutralStep, highStep);
4077
- const lowerVoltageStepIncrement = Math.abs(i7Data[`umin_s${tapChangerNumber}`]) / lowerVoltageStepCount * -1;
4078
- let increaseVoltageStepIncrement = Math.abs(i7Data[`umax_s${tapChangerNumber}`]) / increaseVoltageStepCount;
4106
+ const uMin = utils_2.isNumericI7(i7Data[`umin_s${tapChangerNumber}`])
4107
+ ? i7Data[`umin_s${tapChangerNumber}`]
4108
+ : tapChangerInfo === null || tapChangerInfo === void 0 ? void 0 : tapChangerInfo.uMin;
4109
+ const uMax = utils_2.isNumericI7(i7Data[`umax_s${tapChangerNumber}`])
4110
+ ? i7Data[`umax_s${tapChangerNumber}`]
4111
+ : tapChangerInfo === null || tapChangerInfo === void 0 ? void 0 : tapChangerInfo.uMax;
4112
+ const lowerVoltageStepIncrement = Math.abs(uMin) / lowerVoltageStepCount * -1;
4113
+ let increaseVoltageStepIncrement = Math.abs(uMax) / increaseVoltageStepCount;
4079
4114
  increaseVoltageStepIncrement = isNaN(increaseVoltageStepIncrement) ? 1 : increaseVoltageStepIncrement;
4080
4115
  if (tapChanger instanceof RatioTapChanger_1.RatioTapChanger) {
4081
4116
  const ratioTapChanger = tapChanger;
@@ -4111,9 +4146,14 @@ class ConverterI7 {
4111
4146
  this.logger.error(`Trafo ${i7Data.id}: Zusatzspannung Min/Max sind nicht symmetrisch MIN ${lowerVoltageStepIncrement} MAX ${increaseVoltageStepIncrement}. Das Attribut voltageStepIncrement i.H.v ${increaseVoltageStepIncrement} könnte inkorrekt sein.`);
4112
4147
  }
4113
4148
  }
4114
- createRatioTapChanger(i7Data, transformerEnd, cimModel, regulatingConnectivityNode, tapChangerNumber, spannungsband) {
4115
- var _a, _b;
4116
- const gestufteSeite = i7Data[`gestufte_seite_s${tapChangerNumber}`] === 0 ? 1 : i7Data[`gestufte_seite_s${tapChangerNumber}`];
4149
+ createRatioTapChanger(i7Data, transformerEnd, cimModel, regulatingConnectivityNode, tapChangerNumber, spannungsband, transformerinfo) {
4150
+ var _a, _b, _c;
4151
+ const transformerEndInfo = (_a = transformerinfo === null || transformerinfo === void 0 ? void 0 : transformerinfo.transformerEndInfos) === null || _a === void 0 ? void 0 : _a.find(elem => elem.endNumber === tapChangerNumber);
4152
+ const tapChangerInfo = transformerEndInfo === null || transformerEndInfo === void 0 ? void 0 : transformerEndInfo.tapChangerInfo;
4153
+ let gestufteSeite = utils_2.isNumericI7(i7Data[`gestufte_seite_s${tapChangerNumber}`])
4154
+ ? i7Data[`gestufte_seite_s${tapChangerNumber}`]
4155
+ : transformerEndInfo === null || transformerEndInfo === void 0 ? void 0 : transformerEndInfo.gestufteSeite;
4156
+ gestufteSeite = gestufteSeite === 0 ? 1 : gestufteSeite;
4117
4157
  const ratioTapChanger = new RatioTapChanger_1.RatioTapChanger(utils_1.generateUUID(), `${transformerEnd.name} W_${transformerEnd.endNumber}`);
4118
4158
  ratioTapChanger.ltcFlag = false;
4119
4159
  ratioTapChanger.transformerEnd = transformerEnd;
@@ -4121,7 +4161,7 @@ class ConverterI7 {
4121
4161
  ratioTapChanger.neutralU = transformerEnd.ratedU;
4122
4162
  ratioTapChanger.tculControlMode = TransformerControlMode_1.TransformerControlMode.volt;
4123
4163
  const regelung = +i7Data[`regelung_s${gestufteSeite}`];
4124
- const regulatingTerminal = ((_a = regulatingConnectivityNode === null || regulatingConnectivityNode === void 0 ? void 0 : regulatingConnectivityNode.terminals) === null || _a === void 0 ? void 0 : _a.size) ? [...(_b = regulatingConnectivityNode === null || regulatingConnectivityNode === void 0 ? void 0 : regulatingConnectivityNode.terminals) === null || _b === void 0 ? void 0 : _b.values()].find(elem => elem.connected) : undefined;
4164
+ const regulatingTerminal = ((_b = regulatingConnectivityNode === null || regulatingConnectivityNode === void 0 ? void 0 : regulatingConnectivityNode.terminals) === null || _b === void 0 ? void 0 : _b.size) ? [...(_c = regulatingConnectivityNode === null || regulatingConnectivityNode === void 0 ? void 0 : regulatingConnectivityNode.terminals) === null || _c === void 0 ? void 0 : _c.values()].find(elem => elem.connected) : undefined;
4125
4165
  if (isFinite(spannungsband === null || spannungsband === void 0 ? void 0 : spannungsband.usoll) && regulatingTerminal) {
4126
4166
  const tapChangerControl = new TapChangerControl_1.TapChangerControl(utils_1.generateUUID(), `${transformerEnd.name} W_${transformerEnd.endNumber}`);
4127
4167
  tapChangerControl.discrete = true;
@@ -4143,12 +4183,22 @@ class ConverterI7 {
4143
4183
  cimModel.addRatioTapChanger(ratioTapChanger);
4144
4184
  return ratioTapChanger;
4145
4185
  }
4146
- createPhaseTapChanger(i7Data, transformerEnds, cimModel, tapChangerNumber) {
4147
- const gestufteSeite = i7Data[`gestufte_seite_s${tapChangerNumber}`] === 0 ? 1 : i7Data[`gestufte_seite_s${tapChangerNumber}`];
4186
+ createPhaseTapChanger(i7Data, transformerEnds, cimModel, tapChangerNumber, transformerinfo) {
4187
+ var _a;
4188
+ const transformerEndInfo = (_a = transformerinfo === null || transformerinfo === void 0 ? void 0 : transformerinfo.transformerEndInfos) === null || _a === void 0 ? void 0 : _a.find(elem => elem.endNumber === tapChangerNumber);
4189
+ const tapChangerInfo = transformerEndInfo === null || transformerEndInfo === void 0 ? void 0 : transformerEndInfo.tapChangerInfo;
4190
+ let gestufteSeite = utils_2.isNumericI7(i7Data[`gestufte_seite_s${tapChangerNumber}`])
4191
+ ? i7Data[`gestufte_seite_s${tapChangerNumber}`]
4192
+ : transformerEndInfo === null || transformerEndInfo === void 0 ? void 0 : transformerEndInfo.gestufteSeite;
4193
+ gestufteSeite = gestufteSeite === 0 ? 1 : gestufteSeite;
4148
4194
  const transformerEnd = transformerEnds.find(elem => elem.endNumber === gestufteSeite);
4149
4195
  const is3WTransformer = transformerEnds.length > 2 ? true : false;
4150
4196
  let phaseTapChanger;
4151
- const spezialregelung = i7Data.trafo_spezial ? i7Data.trafo_spezial : (is3WTransformer ? 2 : undefined);
4197
+ let spezialregelung = utils_2.isNumericI7(i7Data.trafo_spezial) ? i7Data.trafo_spezial : transformerinfo === null || transformerinfo === void 0 ? void 0 : transformerinfo.spezialRegelung;
4198
+ spezialregelung = spezialregelung ? spezialregelung : (is3WTransformer ? 2 : undefined);
4199
+ const winkel = utils_2.isNumericI7(i7Data[`uzus_winkel_s${tapChangerNumber}`])
4200
+ ? i7Data[`uzus_winkel_s${tapChangerNumber}`]
4201
+ : tapChangerInfo === null || tapChangerInfo === void 0 ? void 0 : tapChangerInfo.stepPhaseIncrement;
4152
4202
  switch (spezialregelung) {
4153
4203
  case (1): {
4154
4204
  const phaseTapChangerSync = new PhaseTapChangerSymmetrical_1.PhaseTapChangerSymmetrical(utils_1.generateUUID(), `${transformerEnd.name} W_${transformerEnd.endNumber}`);
@@ -4158,14 +4208,14 @@ class ConverterI7 {
4158
4208
  }
4159
4209
  case (2): {
4160
4210
  const phaseTapChangerAsync = new PhaseTapChangerAsymmetrical_1.PhaseTapChangerAsymmetrical(utils_1.generateUUID(), `${transformerEnd.name} W_${transformerEnd.endNumber}`);
4161
- phaseTapChangerAsync.windingConnectionAngle = utils_2.convertToNumberI7(i7Data[`uzus_winkel_s${tapChangerNumber}`]);
4211
+ phaseTapChangerAsync.windingConnectionAngle = winkel;
4162
4212
  phaseTapChanger = phaseTapChangerAsync;
4163
4213
  cimModel.addPhaseTapChangerAsymmetrical(phaseTapChangerAsync);
4164
4214
  break;
4165
4215
  }
4166
4216
  default: {
4167
4217
  const phaseTapChangerAsync = new PhaseTapChangerAsymmetrical_1.PhaseTapChangerAsymmetrical(utils_1.generateUUID(), `${transformerEnd.name} W_${transformerEnd.endNumber}`);
4168
- phaseTapChangerAsync.windingConnectionAngle = utils_2.convertToNumberI7(i7Data[`uzus_winkel_s${tapChangerNumber}`]);
4218
+ phaseTapChangerAsync.windingConnectionAngle = winkel;
4169
4219
  phaseTapChanger = phaseTapChangerAsync;
4170
4220
  cimModel.addPhaseTapChangerAsymmetrical(phaseTapChangerAsync);
4171
4221
  break;
@@ -4270,13 +4320,13 @@ class ConverterI7 {
4270
4320
  }
4271
4321
  queryTrafosAnschlussIDs() {
4272
4322
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
4273
- let results = this.isTableAvailable(integral_sql_1.Integral7TableNames.TRAFO2W) ? yield this.mysqlController.execQuery(`SELECT DISTINCT aknoten, eknoten
4323
+ let results = this.isTableAvailable(integral_sql_1.Integral7TableNames.TRAFO2W) ? yield this.mysqlController.execQuery(`SELECT DISTINCT aknoten, eknoten
4274
4324
  FROM ${integral_sql_1.Integral7TableNames[integral_sql_1.I7Objects.TRAFO2W]}`) : [];
4275
4325
  for (const result of results) {
4276
4326
  this.trafo2wAnschlussKnotenIDs.add(result[`aknoten`]);
4277
4327
  this.trafo2wAnschlussKnotenIDs.add(result[`eknoten`]);
4278
4328
  }
4279
- results = this.isTableAvailable(integral_sql_1.Integral7TableNames.TRAFO3_WICKLUNG) ? yield this.mysqlController.execQuery(`SELECT DISTINCT aknoten, eknoten
4329
+ results = this.isTableAvailable(integral_sql_1.Integral7TableNames.TRAFO3_WICKLUNG) ? yield this.mysqlController.execQuery(`SELECT DISTINCT aknoten, eknoten
4280
4330
  FROM ${integral_sql_1.Integral7TableNames[integral_sql_1.I7Objects.TRAFO3_WICKLUNG]}`) : [];
4281
4331
  for (const result of results) {
4282
4332
  this.trafo3wAnschlussKnotenIDs.add(result[`aknoten`]);
@@ -4416,15 +4466,15 @@ class ConverterI7 {
4416
4466
  connectivityNode.toEndNameTso = tsoName;
4417
4467
  }
4418
4468
  else {
4419
- this.logger.error(`Grenzknoten ${connectivityNode.name} mit der UUID ${connectivityNode.mrid} ist bereits belegt:
4420
- fromEndName ${connectivityNode.fromEndName}
4421
- fromEndIsoCode ${connectivityNode.fromEndIsoCode}
4422
- fromEndNameTso ${connectivityNode.fromEndNameTso}
4423
- toEndName ${connectivityNode.toEndName}
4424
- toEndIsoCode ${connectivityNode.toEndIsoCode}
4425
- toEndNameTso ${connectivityNode.toEndNameTso}
4426
- name ${name}
4427
- isoCode ${isoCode}
4469
+ this.logger.error(`Grenzknoten ${connectivityNode.name} mit der UUID ${connectivityNode.mrid} ist bereits belegt:
4470
+ fromEndName ${connectivityNode.fromEndName}
4471
+ fromEndIsoCode ${connectivityNode.fromEndIsoCode}
4472
+ fromEndNameTso ${connectivityNode.fromEndNameTso}
4473
+ toEndName ${connectivityNode.toEndName}
4474
+ toEndIsoCode ${connectivityNode.toEndIsoCode}
4475
+ toEndNameTso ${connectivityNode.toEndNameTso}
4476
+ name ${name}
4477
+ isoCode ${isoCode}
4428
4478
  tsoName ${tsoName}`);
4429
4479
  }
4430
4480
  }