@enervance/insight-cim-model 0.0.46 → 0.0.47

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 (273) hide show
  1. package/dist/analysis/analysis-neplan/digi-ons.js +0 -11
  2. package/dist/analysis/analysis-neplan/digi-ons.js.map +1 -1
  3. package/dist/config/westnetz-neplan/callbacks/cb-connectivitynode.d.ts +5 -5
  4. package/dist/config/westnetz-neplan/callbacks/cb-connectivitynode.js +13 -8
  5. package/dist/config/westnetz-neplan/callbacks/cb-connectivitynode.js.map +1 -1
  6. package/dist/config/westnetz-neplan/callbacks/cb-psr.d.ts +1 -1
  7. package/dist/config/westnetz-neplan/callbacks/cb-psr.js +1 -1
  8. package/dist/config/westnetz-neplan/callbacks/cb-wnenergyconsumer.d.ts +1 -1
  9. package/dist/config/westnetz-neplan/neplan-load.config.js +1 -1
  10. package/dist/config/westnetz-neplan/neplan-load.config.js.map +1 -1
  11. package/dist/config/westnetz-neplan/property-handler-westenergy.config.d.ts +3 -3
  12. package/dist/constants/cim-class-definition.js +0 -2
  13. package/dist/constants/cim-class-definition.js.map +1 -1
  14. package/dist/constants/cim-class-names.d.ts +1 -3
  15. package/dist/constants/cim-class-names.js +1 -3
  16. package/dist/constants/cim-class-names.js.map +1 -1
  17. package/dist/constants/init-data/ASSET_HEALTH_EVENTS.d.ts +1 -1
  18. package/dist/constants/init-data/ASSET_HEALTH_EVENTS.js +1 -55
  19. package/dist/constants/init-data/ASSET_HEALTH_EVENTS.js.map +1 -1
  20. package/dist/constants/init-data/ASSSET_OWNER.d.ts +1 -1
  21. package/dist/constants/init-data/ASSSET_OWNER.js +1 -18
  22. package/dist/constants/init-data/ASSSET_OWNER.js.map +1 -1
  23. package/dist/constants/init-data/PSR_TYPES.d.ts +1 -1
  24. package/dist/constants/init-data/PSR_TYPES.js +1 -99
  25. package/dist/constants/init-data/PSR_TYPES.js.map +1 -1
  26. package/dist/constants/init-data/RZ.d.ts +1 -1
  27. package/dist/constants/init-data/RZ.js +0 -54
  28. package/dist/constants/init-data/RZ.js.map +1 -1
  29. package/dist/constants/init-data/xml/settings.d.ts +1 -1
  30. package/dist/constants/init-data/xml/settings.js +0 -64
  31. package/dist/constants/init-data/xml/settings.js.map +1 -1
  32. package/dist/constants/util-init.js +0 -8
  33. package/dist/constants/util-init.js.map +1 -1
  34. package/dist/converter/integral7/converter-i7.d.ts +1 -1
  35. package/dist/converter/integral7/converter-i7.js +277 -171
  36. package/dist/converter/integral7/converter-i7.js.map +1 -1
  37. package/dist/converter/integral7/interface-i7/data-structures-i7.js.map +1 -1
  38. package/dist/converter/integral7/interface-i7/export-frame-i7.d.ts +0 -1
  39. package/dist/converter/integral7/interface-i7/export-frame-i7.js +8 -33
  40. package/dist/converter/integral7/interface-i7/export-frame-i7.js.map +1 -1
  41. package/dist/converter/integral7/model/integral/Multiplikationsfaktor.d.ts +7 -0
  42. package/dist/converter/integral7/model/integral/Multiplikationsfaktor.js +11 -0
  43. package/dist/converter/integral7/model/integral/Multiplikationsfaktor.js.map +1 -0
  44. package/dist/converter/integral7/model/integral/NetzObjektBez.d.ts +10 -0
  45. package/dist/converter/integral7/model/integral/NetzObjektBez.js +13 -0
  46. package/dist/converter/integral7/model/integral/NetzObjektBez.js.map +1 -0
  47. package/dist/converter/integral7/model/interfaces.d.ts +11 -0
  48. package/dist/converter/integral7/model/interfaces.js.map +1 -1
  49. package/dist/converter/integral7/sql/integral.sql.js +6 -6
  50. package/dist/converter/integral7/sql/integral.sql.js.map +1 -1
  51. package/dist/converter/integral7/utils-cgmes-export.js +22 -0
  52. package/dist/converter/integral7/utils-cgmes-export.js.map +1 -1
  53. package/dist/converter/integral7/utils.js +115 -33
  54. package/dist/converter/integral7/utils.js.map +1 -1
  55. package/dist/etl/etl-neplan/etl-neplan-csv.js +42 -48
  56. package/dist/etl/etl-neplan/etl-neplan-csv.js.map +1 -1
  57. package/dist/etl/etl-neplan/etl-neplan-geo.js +16 -16
  58. package/dist/etl/etl-neplan/etl-neplan.js +17 -17
  59. package/dist/index.d.ts +1 -6
  60. package/dist/index.js +1 -11
  61. package/dist/index.js.map +1 -1
  62. package/dist/interfaces/model/core/IIdentifiedObject.d.ts +1 -1
  63. package/dist/interfaces/{persistence.interfaces.js → persistence-interfaces.js} +1 -1
  64. package/dist/interfaces/persistence-interfaces.js.map +1 -0
  65. package/dist/model/assetinfo/SwitchInfo.js +19 -19
  66. package/dist/model/assetinfo/WireInfo.js +3 -3
  67. package/dist/model/assets/Asset.js +30 -30
  68. package/dist/model/assets/AssetDeployment.js +48 -48
  69. package/dist/model/assets/Facility.js +36 -36
  70. package/dist/model/common/CoordinateSystem.js +17 -17
  71. package/dist/model/common/Location.js +22 -22
  72. package/dist/model/common/PositionPoint.js +25 -25
  73. package/dist/model/core/BaseVoltage.js +22 -22
  74. package/dist/model/core/Bay.d.ts +1 -1
  75. package/dist/model/core/Bay.js +2 -2
  76. package/dist/model/core/Bay.js.map +1 -1
  77. package/dist/model/core/ConductingEquipment.d.ts +1 -1
  78. package/dist/model/core/ConductingEquipment.js +2 -2
  79. package/dist/model/core/ConductingEquipment.js.map +1 -1
  80. package/dist/model/core/ConnectivityNode.js +24 -24
  81. package/dist/model/core/ConnectivityNodeContainer.d.ts +1 -1
  82. package/dist/model/core/ConnectivityNodeContainer.js +2 -2
  83. package/dist/model/core/ConnectivityNodeContainer.js.map +1 -1
  84. package/dist/model/core/Equipment.d.ts +1 -1
  85. package/dist/model/core/Equipment.js +3 -3
  86. package/dist/model/core/Equipment.js.map +1 -1
  87. package/dist/model/core/EquipmentContainer.d.ts +1 -1
  88. package/dist/model/core/EquipmentContainer.js +2 -2
  89. package/dist/model/core/EquipmentContainer.js.map +1 -1
  90. package/dist/model/core/Feeder.js +29 -29
  91. package/dist/model/core/IdentifiedObject.d.ts +3 -8
  92. package/dist/model/core/IdentifiedObject.js +1 -3
  93. package/dist/model/core/IdentifiedObject.js.map +1 -1
  94. package/dist/model/core/PowerSystemResource.d.ts +2 -2
  95. package/dist/model/core/PowerSystemResource.js +2 -2
  96. package/dist/model/core/PowerSystemResource.js.map +1 -1
  97. package/dist/model/core/Substation.d.ts +1 -2
  98. package/dist/model/core/Substation.js +2 -10
  99. package/dist/model/core/Substation.js.map +1 -1
  100. package/dist/model/core/Terminal.js +31 -31
  101. package/dist/model/core/VoltageLevel.d.ts +1 -1
  102. package/dist/model/core/VoltageLevel.js +2 -2
  103. package/dist/model/core/VoltageLevel.js.map +1 -1
  104. package/dist/model/dc/DCLine.js +17 -17
  105. package/dist/model/diagram/Diagram.d.ts +1 -1
  106. package/dist/model/diagram/Diagram.js +22 -22
  107. package/dist/model/diagram/Diagram.js.map +1 -1
  108. package/dist/model/diagram/DiagramObject.js +26 -26
  109. package/dist/model/diagram/DiagramObjectPoint.js +47 -47
  110. package/dist/model/equivalents/EquivalentInjection.js +15 -15
  111. package/dist/model/equivalents/EquivalentInjection.js.map +1 -1
  112. package/dist/model/extensions/amprion/assets/AMPRIONAssetCommunicationEquipment.js +22 -22
  113. package/dist/model/extensions/amprion/assets/AMPRIONAssetConstructionMaintenance.js +22 -22
  114. package/dist/model/extensions/amprion/assets/AMPRIONAssetPrimaryEquipment.js +22 -22
  115. package/dist/model/extensions/amprion/assets/AMPRIONAssetSecondaryEquipment.js +22 -22
  116. package/dist/model/extensions/amprion/assets/AMPRIONContractingAuthority.js +22 -22
  117. package/dist/model/extensions/amprion/assets/AMPRIONCountry.js +19 -19
  118. package/dist/model/extensions/amprion/assets/AMPRIONFacility.js +60 -60
  119. package/dist/model/extensions/amprion/assets/AMPRIONLeaseholder.js +22 -22
  120. package/dist/model/extensions/amprion/assets/AMPRIONLineDistrict.js +22 -22
  121. package/dist/model/extensions/amprion/assets/AMPRIONServiceProvider.js +22 -22
  122. package/dist/model/extensions/amprion/assets/AMPRIONSpanField.js +49 -49
  123. package/dist/model/extensions/amprion/assets/AMPRIONState.js +21 -21
  124. package/dist/model/extensions/amprion/assets/AMPRIONTower.js +50 -50
  125. package/dist/model/extensions/amprion/assets/AMPRIONWire.js +68 -68
  126. package/dist/model/extensions/amprion/core/AMPRIONBay.js +26 -26
  127. package/dist/model/extensions/amprion/core/AMPRIONSubstation.js +25 -25
  128. package/dist/model/extensions/amprion/wires/AMPRIONACLineSegment.d.ts +1 -1
  129. package/dist/model/extensions/amprion/wires/AMPRIONACLineSegment.js +2 -2
  130. package/dist/model/extensions/amprion/wires/AMPRIONACLineSegment.js.map +1 -1
  131. package/dist/model/extensions/enervance/assetinfo/EVWireInfo.js +38 -38
  132. package/dist/model/extensions/enervance/wires/EVACLineSegment.d.ts +1 -1
  133. package/dist/model/extensions/enervance/wires/EVACLineSegment.js +2 -2
  134. package/dist/model/extensions/enervance/wires/EVACLineSegment.js.map +1 -1
  135. package/dist/model/extensions/enervance/wires/EVACLineSubSegment.d.ts +1 -1
  136. package/dist/model/extensions/enervance/wires/EVACLineSubSegment.js +2 -2
  137. package/dist/model/extensions/enervance/wires/EVACLineSubSegment.js.map +1 -1
  138. package/dist/model/extensions/integral/equivalents/INTEGRALEquivalentInjection.d.ts +9 -0
  139. package/dist/model/extensions/integral/equivalents/INTEGRALEquivalentInjection.js +32 -0
  140. package/dist/model/extensions/integral/equivalents/INTEGRALEquivalentInjection.js.map +1 -0
  141. package/dist/model/extensions/integral/loadmodel/INTEGRALConformLoad.d.ts +3 -2
  142. package/dist/model/extensions/integral/loadmodel/INTEGRALConformLoad.js +12 -2
  143. package/dist/model/extensions/integral/loadmodel/INTEGRALConformLoad.js.map +1 -1
  144. package/dist/model/extensions/integral/wires/INTEGRALAsynchronousMachine.d.ts +4 -0
  145. package/dist/model/extensions/integral/wires/INTEGRALAsynchronousMachine.js +16 -0
  146. package/dist/model/extensions/integral/wires/INTEGRALAsynchronousMachine.js.map +1 -1
  147. package/dist/model/extensions/integral/wires/INTEGRALExternalNetworkInjection.d.ts +6 -0
  148. package/dist/model/extensions/integral/wires/INTEGRALExternalNetworkInjection.js +22 -0
  149. package/dist/model/extensions/integral/wires/INTEGRALExternalNetworkInjection.js.map +1 -1
  150. package/dist/model/extensions/integral/wires/INTEGRALSynchronousMachine.d.ts +3 -0
  151. package/dist/model/extensions/integral/wires/INTEGRALSynchronousMachine.js +10 -0
  152. package/dist/model/extensions/integral/wires/INTEGRALSynchronousMachine.js.map +1 -1
  153. package/dist/model/extensions/neplan-westnetz/assets/WNFacility.js +33 -33
  154. package/dist/model/extensions/neplan-westnetz/assets/WNFacilityKind.d.ts +1 -1
  155. package/dist/model/extensions/neplan-westnetz/assets/WNFacilityKind.js +1 -1
  156. package/dist/model/extensions/neplan-westnetz/assets/WNFacilityKind.js.map +1 -1
  157. package/dist/model/extensions/neplan-westnetz/assets/WNWireInfo.js +40 -40
  158. package/dist/model/extensions/neplan-westnetz/core/WNConnectivityNode.js +31 -31
  159. package/dist/model/extensions/neplan-westnetz/core/WNFeeder.js +34 -34
  160. package/dist/model/extensions/neplan-westnetz/wires/WNACLineSegment.d.ts +1 -1
  161. package/dist/model/extensions/neplan-westnetz/wires/WNACLineSegment.js +2 -2
  162. package/dist/model/extensions/neplan-westnetz/wires/WNACLineSegment.js.map +1 -1
  163. package/dist/model/extensions/neplan-westnetz/wires/WNEnergyConsumer.d.ts +1 -1
  164. package/dist/model/generation/GeneratingUnit.js +36 -36
  165. package/dist/model/loadmodel/ConformLoadGroup.js +22 -22
  166. package/dist/model/loadmodel/LoadArea.js +21 -21
  167. package/dist/model/loadmodel/SubLoadArea.js +22 -22
  168. package/dist/model/operationallimits/CurrentLimit.js +19 -19
  169. package/dist/model/operationallimits/OperationalLimitSet.js +18 -18
  170. package/dist/model/operationallimits/OperationalLimitType.js +16 -16
  171. package/dist/model/statevariables/SvPowerFlow.js +20 -20
  172. package/dist/model/topology/TopologicalNode.js +25 -25
  173. package/dist/model/wires/ACLineSegment.d.ts +1 -1
  174. package/dist/model/wires/ACLineSegment.js +2 -2
  175. package/dist/model/wires/ACLineSegment.js.map +1 -1
  176. package/dist/model/wires/BusbarSection.d.ts +1 -1
  177. package/dist/model/wires/BusbarSection.js +2 -2
  178. package/dist/model/wires/BusbarSection.js.map +1 -1
  179. package/dist/model/wires/Conductor.d.ts +1 -1
  180. package/dist/model/wires/Conductor.js +2 -2
  181. package/dist/model/wires/Conductor.js.map +1 -1
  182. package/dist/model/wires/Connector.d.ts +1 -1
  183. package/dist/model/wires/Connector.js +2 -2
  184. package/dist/model/wires/Connector.js.map +1 -1
  185. package/dist/model/wires/EnergySource.d.ts +1 -1
  186. package/dist/model/wires/EnergySource.js +2 -2
  187. package/dist/model/wires/EnergySource.js.map +1 -1
  188. package/dist/model/wires/PowerTransformer.js +27 -27
  189. package/dist/model/wires/PowerTransformerEnd.js +31 -31
  190. package/dist/model/wires/RegulatingControl.js +31 -31
  191. package/dist/model/wires/Switch.js +32 -32
  192. package/dist/model/wires/SynchronousMachine.d.ts +1 -1
  193. package/dist/util/sparql/sparql-utils.d.ts +1 -1
  194. package/dist/util/util-create.js +18 -25
  195. package/dist/util/util-create.js.map +1 -1
  196. package/package.json +1 -1
  197. package/dist/constants/cim.sourcesystem.d.ts +0 -6
  198. package/dist/constants/cim.sourcesystem.js +0 -11
  199. package/dist/constants/cim.sourcesystem.js.map +0 -1
  200. package/dist/factory/factory-interfaces.d.ts +0 -26
  201. package/dist/factory/factory-interfaces.js +0 -3
  202. package/dist/factory/factory-interfaces.js.map +0 -1
  203. package/dist/factory/object-factory.d.ts +0 -7
  204. package/dist/factory/object-factory.js +0 -37
  205. package/dist/factory/object-factory.js.map +0 -1
  206. package/dist/factory/sparql-factory.d.ts +0 -6
  207. package/dist/factory/sparql-factory.js +0 -16
  208. package/dist/factory/sparql-factory.js.map +0 -1
  209. package/dist/interfaces/persistence.interfaces.js.map +0 -1
  210. package/dist/model/alternate-models/AlternateModel.d.ts +0 -10
  211. package/dist/model/alternate-models/AlternateModel.js +0 -17
  212. package/dist/model/alternate-models/AlternateModel.js.map +0 -1
  213. package/dist/model/alternate-models/AlternateModelGroup.d.ts +0 -8
  214. package/dist/model/alternate-models/AlternateModelGroup.js +0 -22
  215. package/dist/model/alternate-models/AlternateModelGroup.js.map +0 -1
  216. package/dist/model/extensions/enervance/diagram/EVDiagram.d.ts +0 -5
  217. package/dist/model/extensions/enervance/diagram/EVDiagram.js +0 -17
  218. package/dist/model/extensions/enervance/diagram/EVDiagram.js.map +0 -1
  219. package/dist/model/extensions/enervance/model/EVModel.d.ts +0 -11
  220. package/dist/model/extensions/enervance/model/EVModel.js +0 -45
  221. package/dist/model/extensions/enervance/model/EVModel.js.map +0 -1
  222. package/dist/model/extensions/integral/wires/INTEGRALSynchronousMachine copy.d.ts +0 -8
  223. package/dist/model/extensions/integral/wires/INTEGRALSynchronousMachine copy.js +0 -34
  224. package/dist/model/extensions/integral/wires/INTEGRALSynchronousMachine copy.js.map +0 -1
  225. package/dist/model/generic-data-set/ChangeSet.d.ts +0 -8
  226. package/dist/model/generic-data-set/ChangeSet.js +0 -13
  227. package/dist/model/generic-data-set/ChangeSet.js.map +0 -1
  228. package/dist/model/generic-data-set/ChangeSetMember.d.ts +0 -8
  229. package/dist/model/generic-data-set/ChangeSetMember.js +0 -11
  230. package/dist/model/generic-data-set/ChangeSetMember.js.map +0 -1
  231. package/dist/model/generic-data-set/DataSet.d.ts +0 -10
  232. package/dist/model/generic-data-set/DataSet.js +0 -16
  233. package/dist/model/generic-data-set/DataSet.js.map +0 -1
  234. package/dist/model/generic-data-set/InstanceSet.d.ts +0 -8
  235. package/dist/model/generic-data-set/InstanceSet.js +0 -13
  236. package/dist/model/generic-data-set/InstanceSet.js.map +0 -1
  237. package/dist/model/generic-data-set/ObjectCreation.d.ts +0 -4
  238. package/dist/model/generic-data-set/ObjectCreation.js +0 -15
  239. package/dist/model/generic-data-set/ObjectCreation.js.map +0 -1
  240. package/dist/model/generic-data-set/ObjectDeletion.d.ts +0 -4
  241. package/dist/model/generic-data-set/ObjectDeletion.js +0 -15
  242. package/dist/model/generic-data-set/ObjectDeletion.js.map +0 -1
  243. package/dist/model/generic-data-set/ObjectModification.d.ts +0 -6
  244. package/dist/model/generic-data-set/ObjectModification.js +0 -11
  245. package/dist/model/generic-data-set/ObjectModification.js.map +0 -1
  246. package/dist/model/generic-data-set/ObjectReverseModification.d.ts +0 -6
  247. package/dist/model/generic-data-set/ObjectReverseModification.js +0 -11
  248. package/dist/model/generic-data-set/ObjectReverseModification.js.map +0 -1
  249. package/dist/model/model-operations/DatasetArg.d.ts +0 -6
  250. package/dist/model/model-operations/DatasetArg.js +0 -11
  251. package/dist/model/model-operations/DatasetArg.js.map +0 -1
  252. package/dist/model/model-operations/IncrementalDatasetArg.d.ts +0 -8
  253. package/dist/model/model-operations/IncrementalDatasetArg.js +0 -11
  254. package/dist/model/model-operations/IncrementalDatasetArg.js.map +0 -1
  255. package/dist/model/model-operations/IncrementalDatasetArgDescription.d.ts +0 -6
  256. package/dist/model/model-operations/IncrementalDatasetArgDescription.js +0 -12
  257. package/dist/model/model-operations/IncrementalDatasetArgDescription.js.map +0 -1
  258. package/dist/model/model-operations/ModelOperation.d.ts +0 -7
  259. package/dist/model/model-operations/ModelOperation.js +0 -11
  260. package/dist/model/model-operations/ModelOperation.js.map +0 -1
  261. package/dist/model/model-operations/ModelOperationArg.d.ts +0 -5
  262. package/dist/model/model-operations/ModelOperationArg.js +0 -11
  263. package/dist/model/model-operations/ModelOperationArg.js.map +0 -1
  264. package/dist/model/model-operations/ModelOperationArgDescription.d.ts +0 -8
  265. package/dist/model/model-operations/ModelOperationArgDescription.js +0 -11
  266. package/dist/model/model-operations/ModelOperationArgDescription.js.map +0 -1
  267. package/dist/model/model-operations/ModelOperationDescription.d.ts +0 -7
  268. package/dist/model/model-operations/ModelOperationDescription.js +0 -13
  269. package/dist/model/model-operations/ModelOperationDescription.js.map +0 -1
  270. package/dist/util/cim.model.util.d.ts +0 -4
  271. package/dist/util/cim.model.util.js +0 -257
  272. package/dist/util/cim.model.util.js.map +0 -1
  273. /package/dist/interfaces/{persistence.interfaces.d.ts → persistence-interfaces.d.ts} +0 -0
@@ -96,7 +96,6 @@ const ReactiveCapabilityCurve_1 = require("../../model/wires/ReactiveCapabilityC
96
96
  const RegulatingControl_1 = require("../../model/wires/RegulatingControl");
97
97
  const RegulatingControlModeKind_1 = require("../../model/wires/RegulatingControlModeKind");
98
98
  const StaticVarCompensator_1 = require("../../model/wires/StaticVarCompensator");
99
- const SynchronousMachine_1 = require("../../model/wires/SynchronousMachine");
100
99
  const SynchronousMachineKind_1 = require("../../model/wires/SynchronousMachineKind");
101
100
  const SynchronousMachineOperatingMode_1 = require("../../model/wires/SynchronousMachineOperatingMode");
102
101
  const TapChangerControl_1 = require("../../model/wires/TapChangerControl");
@@ -133,6 +132,8 @@ const SsabNsg_1 = require("./model/dl-utils/SsabNsg");
133
132
  const Laengskupplung_1 = require("./model/integral/Laengskupplung");
134
133
  const INTEGRALConformLoad_1 = require("../../model/extensions/integral/loadmodel/INTEGRALConformLoad");
135
134
  const AngleDegrees_1 = require("../../model/domain/AngleDegrees");
135
+ const AsynchronousMachineKind_1 = require("../../model/wires/AsynchronousMachineKind");
136
+ const INTEGRALEquivalentInjection_1 = require("../../model/extensions/integral/equivalents/INTEGRALEquivalentInjection");
136
137
  class ConverterI7 {
137
138
  constructor() {
138
139
  this.exportFrames = new Map();
@@ -192,7 +193,6 @@ class ConverterI7 {
192
193
  console.log(`Convert MAS profile: ${frame.mas}`);
193
194
  yield this.convertFrame(frame, geoRegion, objectMappingConfig, energyTypesConfig, defaultValuesConfig);
194
195
  frame.validateCIMModel();
195
- frame.purgeData();
196
196
  const startTime = perf_hooks_1.performance.now();
197
197
  frame.openXMLModel();
198
198
  console.log(`Serialize MAS profile: ${frame.mas}`);
@@ -433,9 +433,6 @@ class ConverterI7 {
433
433
  startTime = perf_hooks_1.performance.now();
434
434
  yield this.assignTerminalSequenceNumber(cimModel);
435
435
  logExecutionTime(this.logger, startTime, `assignment of sequence number`);
436
- startTime = perf_hooks_1.performance.now();
437
- yield this.convertNetzvarianten(cimModel, integral7Modell);
438
- logExecutionTime(this.logger, startTime, `convertNetzvarianten`);
439
436
  });
440
437
  }
441
438
  assignTerminalSequenceNumber(cimModel) {
@@ -929,7 +926,7 @@ class ConverterI7 {
929
926
  const substation = cimModel.getSubstation(this.integralID2UUID.get(i7Data.standort));
930
927
  const object = cimModel.getObject(this.integralID2UUID.get(i7Data.standort));
931
928
  if (!object) {
932
- this.logger.warn(`Schaltanlage ${i7Data.id}/${i7Data.guid} ist keinem Standort (${i7Data.standort}) zugeornet.`);
929
+ this.logger.warn(`Schaltanlage ${i7Data.id}/${i7Data.guid} ist keinem Standort (${i7Data.standort}) zugeordnet.`);
933
930
  continue;
934
931
  }
935
932
  else if (!(object instanceof Substation_1.Substation)) {
@@ -995,7 +992,8 @@ class ConverterI7 {
995
992
  const i7Schluessel = voltageLevel.description +
996
993
  integral_prefix_1.SCHALTFELD_PRAEFIX +
997
994
  utils_2.ueberpruefeZeichenkette(i7Data.bezeichner);
998
- const bay = new AMPRIONBay_1.AMPRIONBay(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), "_B"], 32, true), i7Data.kurzname, i7Schluessel);
995
+ const cimrdfid = utils_1.getUUID(i7Data.guid);
996
+ const bay = new AMPRIONBay_1.AMPRIONBay(cimrdfid, util_create_1.createNotation([utils_2.getName(i7Data), '_', cimrdfid.substring(0, 8), '_B'], 32, true), i7Data.kurzname, i7Schluessel);
999
997
  bay.number = utils_2.isNumericI7(i7Data.feldnummer) ? utils_2.convertToNumberI7(i7Data.feldnummer).toString() : undefined;
1000
998
  bay.locationID = i7Data.ips_folder_id;
1001
999
  bay.voltageLevel = voltageLevel;
@@ -1023,7 +1021,8 @@ class ConverterI7 {
1023
1021
  for (const i7Data of result) {
1024
1022
  const substation = cimModel.getSubstation(this.integralID2UUID.get(i7Data.standort));
1025
1023
  const vl = new VoltageLevel_1.VoltageLevel(utils_1.generateUUID(), util_create_1.createNotation([utils_2.getName(i7Data), i7Data.un.toString(), "_VL"]), i7Data.kurzname);
1026
- const connectivityNode = new AMPRIONConnectivityNode_1.AMPRIONConnectivityNode(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), "_CN"]), i7Data.kurzname, i7Data.kommentar);
1024
+ const rdfid = utils_1.getUUID(i7Data.guid);
1025
+ const connectivityNode = new AMPRIONConnectivityNode_1.AMPRIONConnectivityNode(rdfid, util_create_1.createNotation([utils_2.getName(i7Data), '_', rdfid.substring(0, 8), '_CN']), i7Data.kurzname, i7Data.kommentar);
1027
1026
  connectivityNode.setConnectivityNodeContainer(vl);
1028
1027
  vl.addConnectivityNode(connectivityNode);
1029
1028
  connectivityNode.nodeNumber = i7Data.id_psse_cape;
@@ -1073,8 +1072,8 @@ class ConverterI7 {
1073
1072
  const busbarSection = new BusbarSection_1.BusbarSection(utils_1.generateUUID(), util_create_1.createNotation([utils_2.getName(i7Schaltanlagenabschnitt), "_BBS"]), i7Schaltanlagenabschnitt.kurzname);
1074
1073
  busbarSection.ipMax = i7Data.limit_ip;
1075
1074
  busbarSection.aggregate = false;
1076
- const connectivityNode = new AMPRIONConnectivityNode_1.AMPRIONConnectivityNode(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), i7Data.pos.toString(), "_CN"]), i7Data.kurzname);
1077
- const terminal = this.createConnection(cimModel, busbarSection, connectivityNode, PhaseCode_1.PhaseCode.ABC, true);
1075
+ const rdfid = utils_1.getUUID(i7Data.guid);
1076
+ const connectivityNode = new AMPRIONConnectivityNode_1.AMPRIONConnectivityNode(rdfid, util_create_1.createNotation([utils_2.getName(i7Data), '_' + i7Data.pos.toString(), '_' + rdfid.substring(0, 8), '_CN'], 32, true), i7Data.kurzname);
1078
1077
  const voltageLevel = cimModel.getVoltageLevel(this.integralID2UUID.get(i7Schaltanlagenabschnitt.id));
1079
1078
  connectivityNode.nodeNumber = i7Data.id_psse_cape;
1080
1079
  if (voltageLevel) {
@@ -1094,6 +1093,7 @@ class ConverterI7 {
1094
1093
  else {
1095
1094
  this.logger.debug('Sammelschiene ' + i7Data.id + ' besitzt keine Schaltanlage.');
1096
1095
  }
1096
+ this.createConnection(cimModel, busbarSection, connectivityNode, PhaseCode_1.PhaseCode.ABC, true);
1097
1097
  this.addIdMapping(i7Data.id, connectivityNode.mrid, integral_sql_1.Integral7TableNames.SAMMELSCHIENE);
1098
1098
  cimModel.addConnectivityNode(connectivityNode);
1099
1099
  cimModel.addBusbarSection(busbarSection);
@@ -1113,7 +1113,7 @@ class ConverterI7 {
1113
1113
  const result = yield this.queryDataInChuncks(integral_sql_1.I7Objects.KNOTEN_SF, schaltfeldIDs);
1114
1114
  for (const i7Data of result) {
1115
1115
  const bay = cimModel.getBay(this.integralID2UUID.get(i7Data.schaltfeld));
1116
- const connectivityNode = new ConnectivityNode_1.ConnectivityNode(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), "_CN"]), 'knotensf', `${bay.description}/${i7Data.bezeichner}`);
1116
+ const connectivityNode = new ConnectivityNode_1.ConnectivityNode(utils_1.getUUID(i7Data.guid_cn), util_create_1.createNotation([utils_2.getName(i7Data), "_CN"]), 'knotensf', `${bay.description}/${i7Data.bezeichner}`);
1117
1117
  if (bay) {
1118
1118
  connectivityNode.connectivityNodeContainer = bay;
1119
1119
  bay.addConnectivityNode(connectivityNode);
@@ -1195,7 +1195,6 @@ class ConverterI7 {
1195
1195
  if (connectivityNode) {
1196
1196
  connectivityNode.addTerminal(terminal);
1197
1197
  terminal.setConnectivityNode(connectivityNode);
1198
- terminal.name = util_create_1.createNotation([connectivityNode.name, "_Schlaufe_T"]);
1199
1198
  }
1200
1199
  else {
1201
1200
  this.logger.debug(`Schlaufe ${i7Data.id} besitzt keinen anschluss.`);
@@ -1217,11 +1216,13 @@ class ConverterI7 {
1217
1216
  const mf = this.cimModelDefault.multiplierFactors.get(this.integralID2UUID.get(i7Data.multfaktor));
1218
1217
  if (mf && targetClass === cim_class_names_1.CIM_CLASS_NAMES.ConformLoad) {
1219
1218
  cimModel.addMultiplierFactor(mf);
1220
- load.multiplierFactor = mf;
1219
+ load.multiplierFactorUUID = mf.getUUID();
1221
1220
  }
1222
1221
  const powerData = utils_2.getActiveReactivePower(i7Data, mf);
1223
1222
  load.p = powerData[0];
1224
1223
  load.q = powerData[1];
1224
+ load.p_mf = powerData[2] ? powerData[2] : undefined;
1225
+ load.q_mf = powerData[3] ? powerData[3] : undefined;
1225
1226
  if (targetClass === cim_class_names_1.CIM_CLASS_NAMES.ConformLoad) {
1226
1227
  const conformLoadGroup = cimModel.getObjectByName(defaultValuesConfig.ConformLoadGroup.name, cim_class_names_1.CIM_CLASS_NAMES.ConformLoadGroup);
1227
1228
  load.loadGroup = conformLoadGroup;
@@ -1287,16 +1288,66 @@ class ConverterI7 {
1287
1288
  const result = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.GENERATOR, knotenSfIDs));
1288
1289
  for (const i7Data of result) {
1289
1290
  const genType = this.generatorTypen.get(i7Data.nametyp);
1290
- const synchronousMachine = new SynchronousMachine_1.SynchronousMachine(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), "_SM"]), i7Data.kurzname, i7Data.nameprimaertyp);
1291
- const isRotatingPhaseShifter = utils_2.isBooleanI7(i7Data.flag_phasenschieber) ? utils_2.convertToBooleanI7(i7Data.flag_phasenschieber) : false;
1291
+ const synchronousMachine = new INTEGRALSynchronousMachine_1.INTEGRALSynchronousMachine(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), "_SM"], 32, true), i7Data.kurzname, i7Data.nameprimaertyp);
1292
1292
  const inBetrieb = utils_2.convertToBooleanI7(i7Data.betrieb);
1293
- if (isRotatingPhaseShifter) {
1294
- synchronousMachine.operatingMode = SynchronousMachineOperatingMode_1.SynchronousMachineOperatingMode.condenser;
1293
+ const maxP = utils_2.isNumericI7(i7Data.p_max) ? utils_2.convertToNumberI7(i7Data.p_max) : 0;
1294
+ const minP = utils_2.isNumericI7(i7Data.p_min) ? utils_2.convertToNumberI7(i7Data.p_min) : 0;
1295
+ const mf = this.cimModelDefault.multiplierFactors.get(this.integralID2UUID.get(i7Data.multfaktor));
1296
+ const powerData = utils_2.getActiveReactivePower(i7Data, mf);
1297
+ const p = powerData[0];
1298
+ const q = powerData[1];
1299
+ const flagCondenserOperationMode = utils_2.isBooleanI7(i7Data.flag_phasenschieber) ? utils_2.convertToBooleanI7(i7Data.flag_phasenschieber) : true;
1300
+ const isRotatingPhaseShifter = mf !== undefined && flagCondenserOperationMode && maxP === 0 && minP === 0;
1301
+ const isGenerator = (maxP >= 0 || maxP === undefined) && (minP >= 0 || minP === undefined);
1302
+ const isMotor = (maxP <= 0 || maxP === undefined) && (minP <= 0 || minP === undefined);
1303
+ synchronousMachine.nameprimaertyp = i7Data.nameprimaertyp;
1304
+ if (isRotatingPhaseShifter && isGenerator && isMotor) {
1305
+ synchronousMachine.type = SynchronousMachineKind_1.SynchronousMachineKind.generatorOrCondenserOrMotor;
1306
+ }
1307
+ else if (isRotatingPhaseShifter && isGenerator && !isMotor) {
1308
+ synchronousMachine.type = SynchronousMachineKind_1.SynchronousMachineKind.generatorOrCondenser;
1309
+ }
1310
+ else if (isRotatingPhaseShifter && !isGenerator && !isMotor) {
1295
1311
  synchronousMachine.type = SynchronousMachineKind_1.SynchronousMachineKind.condenser;
1296
1312
  }
1313
+ else if (isRotatingPhaseShifter && !isGenerator && isMotor) {
1314
+ synchronousMachine.type = SynchronousMachineKind_1.SynchronousMachineKind.motorOrCondenser;
1315
+ }
1316
+ else if (!isRotatingPhaseShifter && isGenerator && !isMotor) {
1317
+ synchronousMachine.type = SynchronousMachineKind_1.SynchronousMachineKind.generator;
1318
+ }
1319
+ else if (!isRotatingPhaseShifter && !isGenerator && isMotor) {
1320
+ synchronousMachine.type = SynchronousMachineKind_1.SynchronousMachineKind.motor;
1321
+ }
1322
+ else if (!isRotatingPhaseShifter && isGenerator && isMotor) {
1323
+ synchronousMachine.type = SynchronousMachineKind_1.SynchronousMachineKind.generatorOrMotor;
1324
+ }
1297
1325
  else {
1326
+ synchronousMachine.type = undefined;
1327
+ }
1328
+ const condenserOperationMode = p !== undefined && p === 0 && (synchronousMachine.type === SynchronousMachineKind_1.SynchronousMachineKind.condenser
1329
+ || synchronousMachine.type === SynchronousMachineKind_1.SynchronousMachineKind.motorOrCondenser
1330
+ || synchronousMachine.type === SynchronousMachineKind_1.SynchronousMachineKind.generatorOrCondenser
1331
+ || synchronousMachine.type === SynchronousMachineKind_1.SynchronousMachineKind.generatorOrCondenserOrMotor);
1332
+ const generatorOperationMode = p !== undefined && p >= 0 && (synchronousMachine.type === SynchronousMachineKind_1.SynchronousMachineKind.generator
1333
+ || synchronousMachine.type === SynchronousMachineKind_1.SynchronousMachineKind.generatorOrMotor
1334
+ || synchronousMachine.type === SynchronousMachineKind_1.SynchronousMachineKind.generatorOrCondenser
1335
+ || synchronousMachine.type === SynchronousMachineKind_1.SynchronousMachineKind.generatorOrCondenserOrMotor);
1336
+ const motorOperationMode = p !== undefined && p <= 0 && (synchronousMachine.type === SynchronousMachineKind_1.SynchronousMachineKind.motor
1337
+ || synchronousMachine.type === SynchronousMachineKind_1.SynchronousMachineKind.generatorOrMotor
1338
+ || synchronousMachine.type === SynchronousMachineKind_1.SynchronousMachineKind.motorOrCondenser
1339
+ || synchronousMachine.type === SynchronousMachineKind_1.SynchronousMachineKind.generatorOrCondenserOrMotor);
1340
+ if (condenserOperationMode && !generatorOperationMode && !motorOperationMode) {
1341
+ synchronousMachine.operatingMode = SynchronousMachineOperatingMode_1.SynchronousMachineOperatingMode.condenser;
1342
+ }
1343
+ else if (!condenserOperationMode && generatorOperationMode && !motorOperationMode) {
1298
1344
  synchronousMachine.operatingMode = SynchronousMachineOperatingMode_1.SynchronousMachineOperatingMode.generator;
1299
- synchronousMachine.type = SynchronousMachineKind_1.SynchronousMachineKind.generator;
1345
+ }
1346
+ else if (!condenserOperationMode && !generatorOperationMode && motorOperationMode) {
1347
+ synchronousMachine.operatingMode = SynchronousMachineOperatingMode_1.SynchronousMachineOperatingMode.motor;
1348
+ }
1349
+ else {
1350
+ synchronousMachine.operatingMode = undefined;
1300
1351
  }
1301
1352
  if (utils_2.convertToNumberI7(i7Data.blocktrafo_1)) {
1302
1353
  this.blocktransformatoren.push(utils_2.convertToNumberI7(i7Data.blocktrafo_1));
@@ -1315,8 +1366,6 @@ class ConverterI7 {
1315
1366
  }
1316
1367
  const prio = utils_2.isNumericI7(i7Data.einspprio) ? utils_2.convertToNumberI7(i7Data.einspprio) : undefined;
1317
1368
  synchronousMachine.referencePriority = prio;
1318
- const maxP = utils_2.isNumericI7(i7Data.p_max) ? utils_2.convertToNumberI7(i7Data.p_max) : 0;
1319
- const minP = utils_2.isNumericI7(i7Data.p_min) ? utils_2.convertToNumberI7(i7Data.p_min) : 0;
1320
1369
  const maxQ = utils_2.isNumericI7(i7Data.q_max) ? utils_2.convertToNumberI7(i7Data.q_max) : undefined;
1321
1370
  const minQ = utils_2.isNumericI7(i7Data.q_min) ? utils_2.convertToNumberI7(i7Data.q_min) : undefined;
1322
1371
  const maxQvonPmax = utils_2.isNumericI7(i7Data.qmax_von_pmax) ? utils_2.convertToNumberI7(i7Data.qmax_von_pmax) : undefined;
@@ -1325,11 +1374,10 @@ class ConverterI7 {
1325
1374
  synchronousMachine.minQ = minQ ? minQ : minQvonPmin;
1326
1375
  const pType = (genType === null || genType === void 0 ? void 0 : genType.sr) * (genType === null || genType === void 0 ? void 0 : genType.cosphir);
1327
1376
  const qType = Math.sqrt(Math.pow(genType === null || genType === void 0 ? void 0 : genType.sr, 2) - Math.pow(pType, 2));
1328
- const powerData = utils_2.getActiveReactivePower(i7Data);
1329
- const p = powerData[0];
1330
- const q = powerData[1];
1331
1377
  synchronousMachine.setActivePower(p * -1);
1332
1378
  synchronousMachine.setReactivePower(q * -1);
1379
+ synchronousMachine.p_mf = powerData[2] ? powerData[2] * -1 : undefined;
1380
+ synchronousMachine.q_mf = powerData[3] ? powerData[3] * -1 : undefined;
1333
1381
  const sr = utils_2.isNumericI7(i7Data.sr) ? utils_2.convertToNumberI7(i7Data.sr) : genType === null || genType === void 0 ? void 0 : genType.sr;
1334
1382
  if (sr && sr >= 0) {
1335
1383
  synchronousMachine.ratedS = sr;
@@ -1337,14 +1385,14 @@ class ConverterI7 {
1337
1385
  else {
1338
1386
  synchronousMachine.ratedS = Math.sqrt(Math.pow(maxP, 2) + Math.pow(maxQvonPmax, 2));
1339
1387
  }
1340
- const ur = utils_2.isNumericI7(i7Data.ur) ? utils_2.convertToNumberI7(i7Data.ur) : genType.ur;
1341
- const usoll = utils_2.isNumericI7(i7Data.usoll) ? utils_2.convertToNumberI7(i7Data.usoll) : undefined;
1388
+ const ur = utils_2.isNumericI7(i7Data.ur) ? utils_2.convertToNumberI7(i7Data.ur) : utils_2.isNumericI7(genType === null || genType === void 0 ? void 0 : genType.ur) ? genType.ur : undefined;
1389
+ const usoll = utils_2.isNumericI7(i7Data.usoll) ? utils_2.convertToNumberI7(i7Data.usoll) : ur;
1342
1390
  const cosphir = utils_2.isNumericI7(i7Data.cosphir) ? utils_2.convertToNumberI7(i7Data.cosphir) : genType.cosphir;
1343
- synchronousMachine.ratedU = usoll ? usoll : ur;
1391
+ synchronousMachine.ratedU = ur ? ur : usoll;
1344
1392
  synchronousMachine.aggregate = true;
1345
1393
  synchronousMachine.ratedPowerFactor = cosphir ? cosphir : undefined;
1346
1394
  synchronousMachine.r = utils_2.isNumericI7(i7Data.rg) ? utils_2.convertToNumberI7(i7Data.rg) : genType === null || genType === void 0 ? void 0 : genType.rg;
1347
- if (!isRotatingPhaseShifter) {
1395
+ if (minP && maxP && minQvonPmin && maxQvonPmax) {
1348
1396
  const reactiveCapabilityCurve = new ReactiveCapabilityCurve_1.ReactiveCapabilityCurve(utils_1.generateUUID(), util_create_1.createNotation(['CurveData', synchronousMachine.mrid, "_RCC"]));
1349
1397
  reactiveCapabilityCurve.curveStyle = CurveStyle_1.CurveStyle.straightLineYValues;
1350
1398
  reactiveCapabilityCurve.xUnit = UnitSymbol_1.UnitSymbol.W;
@@ -1352,15 +1400,15 @@ class ConverterI7 {
1352
1400
  reactiveCapabilityCurve.y2Unit = UnitSymbol_1.UnitSymbol.VAr;
1353
1401
  const curveData1 = new CurveData_1.CurveData(utils_1.generateUUID());
1354
1402
  curveData1.curve = reactiveCapabilityCurve;
1355
- curveData1.xvalue = i7Data.p_min;
1356
- curveData1.y1value = i7Data.qmin_von_pmin;
1357
- curveData1.y2value = i7Data.qmax_von_pmin;
1403
+ curveData1.xvalue = minP;
1404
+ curveData1.y1value = minQvonPmin;
1405
+ curveData1.y2value = maxQvonPmax;
1358
1406
  cimModel.addCurveData(curveData1);
1359
1407
  const curveData2 = new CurveData_1.CurveData(utils_1.generateUUID());
1360
1408
  curveData2.curve = reactiveCapabilityCurve;
1361
- curveData2.xvalue = i7Data.p_max;
1362
- curveData2.y1value = i7Data.qmin_von_pmax;
1363
- curveData2.y2value = i7Data.qmax_von_pmax;
1409
+ curveData2.xvalue = minP;
1410
+ curveData2.y1value = minQvonPmin;
1411
+ curveData2.y2value = maxQvonPmax;
1364
1412
  cimModel.addCurveData(curveData2);
1365
1413
  cimModel.addReactiveCapabilityCurve(reactiveCapabilityCurve);
1366
1414
  synchronousMachine.initialReactiveCapabilityCurveUUID = reactiveCapabilityCurve.mrid;
@@ -1368,7 +1416,7 @@ class ConverterI7 {
1368
1416
  let regulatingControl = undefined;
1369
1417
  switch (i7Data.spannungsgeregelt) {
1370
1418
  case 1: {
1371
- regulatingControl = new RegulatingControl_1.RegulatingControl(utils_1.generateUUID(), `RC_Gen_${synchronousMachine.getUUID().substring(0, 8)}`);
1419
+ regulatingControl = new RegulatingControl_1.RegulatingControl(utils_1.generateUUID(), util_create_1.createNotation(['GEN'], 32, true));
1372
1420
  regulatingControl.targetValue = usoll;
1373
1421
  regulatingControl.mode = RegulatingControlModeKind_1.RegulatingControlModeKind.voltage;
1374
1422
  regulatingControl.discrete = false;
@@ -1384,7 +1432,7 @@ class ConverterI7 {
1384
1432
  }
1385
1433
  }
1386
1434
  let generatingUnit;
1387
- if (!isRotatingPhaseShifter) {
1435
+ if (synchronousMachine.type !== SynchronousMachineKind_1.SynchronousMachineKind.condenser) {
1388
1436
  const generatingUnitConfig = energyTypesConfig[i7Data.nameprimaertyp];
1389
1437
  if (generatingUnitConfig) {
1390
1438
  switch (generatingUnitConfig.class) {
@@ -1436,8 +1484,8 @@ class ConverterI7 {
1436
1484
  generatingUnit = new GeneratingUnit_1.GeneratingUnit(utils_1.getUUID(''), util_create_1.createNotation([i7Data.bezeichner, "_GU"]), i7Data.kurzname);
1437
1485
  }
1438
1486
  generatingUnit.initialP = utils_2.isNumericI7(i7Data.p0) ? utils_2.convertToNumberI7(i7Data.p0) : undefined;
1439
- generatingUnit.maxOperatingP = utils_2.isNumericI7(i7Data.p_max) ? utils_2.convertToNumberI7(i7Data.p_max) : undefined;
1440
- generatingUnit.minOperatingP = utils_2.isNumericI7(i7Data.p_min) ? utils_2.convertToNumberI7(i7Data.p_min) : undefined;
1487
+ generatingUnit.maxOperatingP = maxP;
1488
+ generatingUnit.minOperatingP = minP;
1441
1489
  generatingUnit.nominalP = utils_2.isNumericI7(cosphir) && utils_2.isNumericI7(sr) ? cosphir * sr : generatingUnit.maxOperatingP;
1442
1490
  const kr = utils_2.isNumericI7(i7Data.kr) ? utils_2.convertToNumberI7(i7Data.kr) : undefined;
1443
1491
  const fn = 50;
@@ -1460,6 +1508,10 @@ class ConverterI7 {
1460
1508
  smtcr.xQuadSubtrans = utils_2.isNumericI7(i7Data.xqu2s) ? utils_2.convertToNumberI7(i7Data.xqu2s) : undefined;
1461
1509
  smtcr.synchronousMachine = synchronousMachine;
1462
1510
  synchronousMachine.synchronousMachineDynamics = smtcr;
1511
+ if (mf) {
1512
+ cimModel.addMultiplierFactor(mf);
1513
+ synchronousMachine.multiplierFactorUUID = mf.getUUID();
1514
+ }
1463
1515
  cimModel.addGeneratingUnit(generatingUnit);
1464
1516
  cimModel.addSynchronousMachine(synchronousMachine);
1465
1517
  cimModel.addSynchronousMachineTimeConstantReactance(smtcr);
@@ -1480,6 +1532,7 @@ class ConverterI7 {
1480
1532
  cimModel.addMultiplierFactor(mf);
1481
1533
  asynchronousMachine.multiplierFactorUUID = mf.getUUID();
1482
1534
  }
1535
+ asynchronousMachine.asynchronousMachineType = AsynchronousMachineKind_1.AsynchronousMachineKind.motor;
1483
1536
  asynchronousMachine.efficiency = i7Data.wirkungsgrad * 100;
1484
1537
  asynchronousMachine.iaIrRatio = utils_2.isNumericI7(i7Data.ilr_ir) ? i7Data.ilr_ir : assetType === null || assetType === void 0 ? void 0 : assetType.ilr_ir;
1485
1538
  asynchronousMachine.polePairNumber = utils_2.isNumericI7(i7Data.polpaarz) ? i7Data.polpaarz : assetType === null || assetType === void 0 ? void 0 : assetType.polpaarz;
@@ -1487,12 +1540,13 @@ class ConverterI7 {
1487
1540
  asynchronousMachine.ratedPowerFactor = utils_2.isNumericI7(i7Data.cos_phir) ? i7Data.cos_phir : assetType === null || assetType === void 0 ? void 0 : assetType.cosphir;
1488
1541
  asynchronousMachine.ratedS = utils_2.isNumericI7(i7Data.sr) ? i7Data.sr : assetType === null || assetType === void 0 ? void 0 : assetType.sr;
1489
1542
  asynchronousMachine.ratedU = utils_2.isNumericI7(i7Data.ur) ? i7Data.ur : assetType === null || assetType === void 0 ? void 0 : assetType.ur;
1490
- const s0 = i7Data.s0;
1491
- const cosPhi = i7Data.cos_phi;
1492
- const cosPhiR = utils_2.isNumericI7(i7Data.cos_phir) ? i7Data.cos_phir : assetType === null || assetType === void 0 ? void 0 : assetType.cosphir;
1493
- asynchronousMachine.setActivePower(i7Data.p0 * -1);
1494
- const fag_ind = utils_2.isNumericI7(i7Data.flag_ind) ? i7Data.flag_ind : assetType === null || assetType === void 0 ? void 0 : assetType.flag_ind;
1495
- asynchronousMachine.setReactivePower((fag_ind === 1 ? i7Data.q0_ind : i7Data.q0_kap) * -1);
1543
+ const powerData = utils_2.getActiveReactivePower(i7Data, mf);
1544
+ const p = powerData[0];
1545
+ const q = powerData[1];
1546
+ asynchronousMachine.setActivePower(p * -1);
1547
+ asynchronousMachine.setReactivePower(q * -1);
1548
+ asynchronousMachine.p_mf = powerData[2] ? powerData[2] * -1 : undefined;
1549
+ asynchronousMachine.q_mf = powerData[3] ? powerData[3] * -1 : undefined;
1496
1550
  asynchronousMachine.controlEnabled = false;
1497
1551
  const inBetrieb = utils_2.isBooleanI7(i7Data.betrieb) ? utils_2.convertToBooleanI7(i7Data.betrieb) : true;
1498
1552
  asynchronousMachine.normallyInService = inBetrieb;
@@ -1644,18 +1698,20 @@ class ConverterI7 {
1644
1698
  const usoll = utils_2.isNumericI7(i7Data.usoll) ? utils_2.convertToNumberI7(i7Data.usoll) : undefined;
1645
1699
  const r_ext = utils_2.isNumericI7(i7Data.r_ext) ? utils_2.convertToNumberI7(i7Data.r_ext) : undefined;
1646
1700
  const x_ext = utils_2.isNumericI7(i7Data.x_ext) ? utils_2.convertToNumberI7(i7Data.x_ext) : undefined;
1647
- const equivalentInjection = new EquivalentInjection_1.EquivalentInjection(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), "_EI"]), i7Data.kurzname);
1701
+ const equivalentInjection = new INTEGRALEquivalentInjection_1.INTEGRALEquivalentInjection(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), "_EI"]), i7Data.kurzname);
1648
1702
  equivalentInjection.normallyInService = inBetrieb;
1649
1703
  if (flag_lfl && usoll && (r_ext || x_ext)) {
1650
1704
  equivalentInjection.regulationCapability = true;
1651
1705
  equivalentInjection.regulationStatus = true;
1652
1706
  equivalentInjection.regulationTarget = usoll;
1653
- equivalentInjection.r = r_ext;
1654
- equivalentInjection.r0 = 0;
1655
- equivalentInjection.r2 = 0;
1656
- equivalentInjection.x = x_ext;
1657
- equivalentInjection.x0 = 0;
1658
- equivalentInjection.x2 = 0;
1707
+ equivalentInjection.rExt = r_ext;
1708
+ equivalentInjection.r = 1e9;
1709
+ equivalentInjection.r0 = 1e9;
1710
+ equivalentInjection.r2 = 1e9;
1711
+ equivalentInjection.xExt = x_ext;
1712
+ equivalentInjection.x = 1e9;
1713
+ equivalentInjection.x0 = 1e9;
1714
+ equivalentInjection.x2 = 1e9;
1659
1715
  }
1660
1716
  equivalentInjection.aggregate = true;
1661
1717
  this.setTopologyEnergySourceConsumerObject(cimModel, equivalentInjection, i7Data);
@@ -1726,8 +1782,7 @@ class ConverterI7 {
1726
1782
  convertErsatzLaengszweige(frame, integral7, defaultValuesConfig) {
1727
1783
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
1728
1784
  const cimModel = frame.cimModel;
1729
- if (this.isTableAvailable(integral_sql_1.Integral7TableNames.ERSATZLAENGSZWEIG) && integral7.ersatzZweigAnschlussKnotenIDs.length) {
1730
- integral_sql_1.I7Objects.ERSATZLAENGSZWEIGDIFF;
1785
+ if (this.isTableAvailable(integral_sql_1.Integral7TableNames.ERSATZLAENGSZWEIG) && integral7.ersatzZweigAnschlussKnotenIDs.length > 0) {
1731
1786
  const result = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.ERSATZLAENGSZWEIG, integral7.ersatzZweigAnschlussKnotenIDs));
1732
1787
  for (const i7Data of result) {
1733
1788
  const i7Schluessel = integral_prefix_1.ERSATZLAENGSZWEIG_PRAEFIX +
@@ -1738,7 +1793,8 @@ class ConverterI7 {
1738
1793
  utils_2.ueberpruefeZeichenkette(i7Data.bezeichner) +
1739
1794
  integral_prefix_1.MITTIGER_PUNKT +
1740
1795
  utils_2.ueberpruefeZeichenkette(i7Data.stkabname);
1741
- const equivalentBranch = new EquivalentBranch_1.EquivalentBranch(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([i7Data.bezeichner, '_EB', `_${cimModel.equivalentBranches.size}`]), i7Data.kurzname, i7Schluessel);
1796
+ const rdfid = utils_1.getUUID(i7Data.guid);
1797
+ const equivalentBranch = new EquivalentBranch_1.EquivalentBranch(rdfid, util_create_1.createNotation([i7Data.bezeichner, '_', rdfid.substring(0, 8), '_EB'], 32, true), i7Data.kurzname, i7Schluessel);
1742
1798
  const ur1 = utils_2.getU(i7Data.ur1, defaultValuesConfig.DefaultVoltage);
1743
1799
  const ur2 = utils_2.getU(i7Data.ur2, defaultValuesConfig.DefaultVoltage);
1744
1800
  const baseVoltageUr1 = util_create_1.createBaseVoltageIfNotExists(cimModel, ur1, this.exportFramesBoundary);
@@ -1752,6 +1808,7 @@ class ConverterI7 {
1752
1808
  this.createBoundaryConnection(frame, equivalentBranch, i7Data.aknoten, PhaseCode_1.PhaseCode.ABC);
1753
1809
  this.createBoundaryConnection(frame, equivalentBranch, i7Data.eknoten, PhaseCode_1.PhaseCode.ABC);
1754
1810
  cimModel.addEquivalentBranch(equivalentBranch);
1811
+ this.checkErsatzZweigID(i7Data.id, integral7);
1755
1812
  this.addIdMapping(i7Data.id, equivalentBranch.mrid, integral_sql_1.Integral7TableNames.ERSATZLAENGSZWEIG);
1756
1813
  }
1757
1814
  }
@@ -1773,9 +1830,9 @@ class ConverterI7 {
1773
1830
  const inBetrieb = utils_2.convertToBooleanI7(i7Data.betrieb);
1774
1831
  const spannungsregelungLokal = utils_2.isBooleanI7(i7Data.flag_lf) ? utils_2.convertToBooleanI7(i7Data.flag_lf) : false;
1775
1832
  const spannungsregelungRemote = utils_2.isBooleanI7(i7Data.rpv_geregelt) ? utils_2.convertToBooleanI7(i7Data.rpv_geregelt) : false;
1776
- let regulatingControl;
1833
+ let regulatingControl = undefined;
1777
1834
  if (spannungsregelungLokal || spannungsregelungRemote) {
1778
- regulatingControl = new RegulatingControl_1.RegulatingControl(utils_1.generateUUID(), `RC_Kompdrossel_${i7Data.id}`);
1835
+ regulatingControl = new RegulatingControl_1.RegulatingControl(utils_1.generateUUID(), util_create_1.createNotation(['LSC']));
1779
1836
  regulatingControl.mode = RegulatingControlModeKind_1.RegulatingControlModeKind.voltage;
1780
1837
  regulatingControl.discrete = true;
1781
1838
  regulatingControl.targetDeadband = i7Data.uband;
@@ -1975,6 +2032,7 @@ class ConverterI7 {
1975
2032
  });
1976
2033
  }
1977
2034
  convertVsConverterDC(cimModel, integral7, knotenSfIDs) {
2035
+ var _a;
1978
2036
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
1979
2037
  if (this.isTableAvailable(integral_sql_1.Integral7TableNames.HGUE_KOPFSTATION_VSC)) {
1980
2038
  const result = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.HGUE_KOPFSTATION_VSC, knotenSfIDs));
@@ -2017,6 +2075,13 @@ class ConverterI7 {
2017
2075
  vsConverter.pPccControl = VsPpccControlKind_1.VsPpccControlKind.pPcc;
2018
2076
  vsConverter.qPccControl = VsQpccControlKind_1.VsQpccControlKind.powerFactorPcc;
2019
2077
  }
2078
+ vsConverter.droop = 0;
2079
+ vsConverter.droopCompensation = 0;
2080
+ vsConverter.qShare = 0;
2081
+ vsConverter.targetQpcc = 0;
2082
+ vsConverter.targetUpcc = (_a = acConnectivityNode === null || acConnectivityNode === void 0 ? void 0 : acConnectivityNode.getVoltageLevel()) === null || _a === void 0 ? void 0 : _a.getBaseVoltageAsNumber();
2083
+ vsConverter.targetPpcc = vsConverter.baseS;
2084
+ vsConverter.targetUdc = vsConverter.ratedUdc;
2020
2085
  const inBetrieb = utils_2.convertToBooleanI7(i7Data.betrieb);
2021
2086
  vsConverter.normallyInService = inBetrieb;
2022
2087
  if (acConnectivityNode) {
@@ -2047,7 +2112,8 @@ class ConverterI7 {
2047
2112
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
2048
2113
  for (const i7Data of result) {
2049
2114
  try {
2050
- const energySource = new EnergySource_1.EnergySource(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), "_ES"]), i7Data.kurzname);
2115
+ const rdfid = utils_1.getUUID(i7Data.guid);
2116
+ const energySource = new EnergySource_1.EnergySource(rdfid, util_create_1.createNotation([utils_2.getName(i7Data), rdfid.substring(0, 8), '_ES'], 32, true), i7Data.kurzname);
2051
2117
  this.setTopologyEnergySourceConsumerObject(cimModel, energySource, i7Data);
2052
2118
  energySource.nominalVoltage = (_c = (_b = (_a = energySource.equipmentContainer) === null || _a === void 0 ? void 0 : _a.baseVoltage) === null || _b === void 0 ? void 0 : _b.nominalVoltage) === null || _c === void 0 ? void 0 : _c.value;
2053
2119
  const prio = i7Data.einspprio;
@@ -2069,7 +2135,8 @@ class ConverterI7 {
2069
2135
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
2070
2136
  for (const i7Data of result) {
2071
2137
  try {
2072
- const equivalentInjection = new EquivalentInjection_1.EquivalentInjection(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), '_EI', `_${cimModel.equivalentInjections.size}`]), i7Data.kurzname);
2138
+ const rdfid = utils_1.getUUID(i7Data.guid);
2139
+ const equivalentInjection = new EquivalentInjection_1.EquivalentInjection(rdfid, util_create_1.createNotation([utils_2.getName(i7Data), '_', rdfid.substring(0, 8), '_EI'], 32, true), i7Data.kurzname);
2073
2140
  const prio = i7Data.einspprio;
2074
2141
  const usoll = i7Data.usoll;
2075
2142
  const powerData = utils_2.getActiveReactivePower(i7Data);
@@ -2089,31 +2156,49 @@ class ConverterI7 {
2089
2156
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
2090
2157
  for (const i7Data of result) {
2091
2158
  try {
2092
- const externalNetworkInjection = new INTEGRALExternalNetworkInjection_1.INTEGRALExternalNetworkInjection(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), "_ENI"]), i7Data.kurzname);
2159
+ const cn = cimModel.objects.get(this.integralID2UUID.get(i7Data.anschluss));
2160
+ const cimrdfid = utils_1.getUUID(i7Data.guid);
2161
+ const externalNetworkInjection = new INTEGRALExternalNetworkInjection_1.INTEGRALExternalNetworkInjection(cimrdfid, util_create_1.createNotation([utils_2.getName(i7Data), "_" + cimrdfid, "_ENI"], 32, true), i7Data.kurzname);
2162
+ const un = cn.getVoltageLevel().getBaseVoltageAsNumber();
2163
+ externalNetworkInjection.nameprimaertyp = i7Data.nameprimaertyp;
2093
2164
  let mf = undefined;
2094
2165
  mf = this.cimModelDefault.multiplierFactors.get(this.integralID2UUID.get(i7Data.multfaktor));
2095
2166
  if (mf) {
2096
2167
  cimModel.addMultiplierFactor(mf);
2097
2168
  externalNetworkInjection.multiplierFactorUUID = mf.getUUID();
2098
2169
  }
2099
- const governorscd = utils_2.isNumericI7(i7Data.kr) ? utils_2.convertToNumberI7(i7Data.kr) : undefined;
2100
- externalNetworkInjection.governorSCD = governorscd;
2101
2170
  const maxP = utils_2.isNumericI7(i7Data.p_max) ? utils_2.convertToNumberI7(i7Data.p_max) : undefined;
2102
2171
  externalNetworkInjection.maxP = maxP;
2172
+ const governorscd = utils_2.isNumericI7(i7Data.kr) && maxP ? utils_2.calculateSigma(50, externalNetworkInjection.maxP, utils_2.convertToNumberI7(i7Data.kr)) : undefined;
2173
+ externalNetworkInjection.governorSCD = governorscd;
2103
2174
  const maxQ = utils_2.isNumericI7(i7Data.q_max) ? utils_2.convertToNumberI7(i7Data.q_max) : undefined;
2104
2175
  externalNetworkInjection.maxQ = maxQ;
2105
2176
  const minP = utils_2.isNumericI7(i7Data.p_min) ? utils_2.convertToNumberI7(i7Data.p_min) : undefined;
2106
2177
  externalNetworkInjection.minP = minP;
2107
2178
  const minQ = utils_2.isNumericI7(i7Data.q_min) ? utils_2.convertToNumberI7(i7Data.q_min) : undefined;
2108
2179
  externalNetworkInjection.minQ = minQ;
2109
- const maxR0X0Ratio = undefined;
2180
+ const r0X0 = utils_2.isNumericI7(i7Data.x0_r0) ? 1 / utils_2.convertToNumberI7(i7Data.x0_r0) : undefined;
2181
+ const r1X1 = utils_2.isNumericI7(i7Data.x1_r1) ? 1 / utils_2.convertToNumberI7(i7Data.x1_r1) : undefined;
2182
+ const z0Z1 = utils_2.isNumericI7(i7Data.z0_z1) ? utils_2.convertToNumberI7(i7Data.z0_z1) : undefined;
2183
+ const maxR0X0Ratio = utils_2.isNumericI7(i7Data.x0_r0_max) ? 1 / utils_2.convertToNumberI7(i7Data.x0_r0_max) : r0X0;
2110
2184
  externalNetworkInjection.maxR0ToX0Ratio = maxR0X0Ratio;
2111
- const maxR1X1Ratio = undefined;
2185
+ const maxR1X1Ratio = utils_2.isNumericI7(i7Data.x1_r1_max) ? 1 / utils_2.convertToNumberI7(i7Data.x1_r1_max) : r1X1;
2112
2186
  externalNetworkInjection.maxR1ToX1Ratio = maxR1X1Ratio;
2113
- const maxZ0Z1Ratio = undefined;
2187
+ const maxZ0Z1Ratio = utils_2.isNumericI7(i7Data.z0_z1_max) ? utils_2.convertToNumberI7(i7Data.z0_z1_max) : z0Z1;
2114
2188
  externalNetworkInjection.maxZ0ToZ1Ratio = maxZ0Z1Ratio;
2115
- const minIkSecond = undefined;
2189
+ const minR0X0Ratio = utils_2.isNumericI7(i7Data.x0_r0_min) ? 1 / utils_2.convertToNumberI7(i7Data.x0_r0_min) : r0X0;
2190
+ externalNetworkInjection.minR0ToX0Ratio = minR0X0Ratio;
2191
+ const minR1X1Ratio = utils_2.isNumericI7(i7Data.x1_r1_min) ? utils_2.convertToNumberI7(i7Data.x1_r1_min) : r1X1;
2192
+ externalNetworkInjection.minR1ToX1Ratio = minR1X1Ratio;
2193
+ const minZ0Z1Ratio = utils_2.isNumericI7(i7Data.z0_z1_min) ? utils_2.convertToNumberI7(i7Data.z0_z1_min) : z0Z1;
2194
+ externalNetworkInjection.minZ0ToZ1Ratio = minZ0Z1Ratio;
2195
+ const skAkt = utils_2.isNumericI7(i7Data.sk_akt) ? utils_2.convertToNumberI7(i7Data.sk_akt) : undefined;
2196
+ const skMin = utils_2.isNumericI7(i7Data.sk_min) ? utils_2.convertToNumberI7(i7Data.sk_min) : skAkt;
2197
+ const skMax = utils_2.isNumericI7(i7Data.sk_max) ? utils_2.convertToNumberI7(i7Data.sk_max) : skAkt;
2198
+ const minIkSecond = utils_2.isNumericI7(i7Data.sk_min) ? utils_2.convertToNumberI7(skMin) / Math.sqrt(3) * skMin : undefined;
2116
2199
  externalNetworkInjection.minInitialSymShCCurrent = minIkSecond;
2200
+ const maxIkSecond = utils_2.isNumericI7(i7Data.sk_max) ? utils_2.convertToNumberI7(skMax) / Math.sqrt(3) * skMax : undefined;
2201
+ externalNetworkInjection.maxInitialSymShCCurrent = maxIkSecond;
2117
2202
  const usoll = utils_2.isNumericI7(i7Data.usoll) ? utils_2.convertToNumberI7(i7Data.usoll) : undefined;
2118
2203
  const inBetrieb = utils_2.isBooleanI7(i7Data.betrieb) ? utils_2.convertToBooleanI7(i7Data.betrieb) : false;
2119
2204
  let regulatingControl = undefined;
@@ -2136,14 +2221,22 @@ class ConverterI7 {
2136
2221
  }
2137
2222
  }
2138
2223
  this.setTopologyEnergySourceConsumerObject(cimModel, externalNetworkInjection, i7Data, regulatingControl);
2139
- const prio = utils_2.isNumericI7(i7Data.einspprio) ? utils_2.convertToNumberI7(i7Data.einspprio) : undefined;
2140
- externalNetworkInjection.referencePriority = prio;
2224
+ let prio = utils_2.isNumericI7(i7Data.einspprio) ? utils_2.convertToNumberI7(i7Data.einspprio) : undefined;
2141
2225
  if ((regulatingControl === null || regulatingControl === void 0 ? void 0 : regulatingControl.mode) === RegulatingControlModeKind_1.RegulatingControlModeKind.voltage) {
2142
- externalNetworkInjection.referencePriority = prio;
2226
+ if (prio && prio > 0) {
2227
+ externalNetworkInjection.referencePriority = prio + 1;
2228
+ }
2229
+ else {
2230
+ prio = undefined;
2231
+ }
2143
2232
  }
2144
- const powerData = utils_2.getActiveReactivePower(i7Data);
2145
- externalNetworkInjection.p = powerData[0];
2146
- externalNetworkInjection.q = powerData[1];
2233
+ const powerData = utils_2.getActiveReactivePower(i7Data, mf);
2234
+ const p = powerData[0];
2235
+ const q = powerData[1];
2236
+ externalNetworkInjection.setActivePower(p * -1);
2237
+ externalNetworkInjection.setReactivePower(q * -1);
2238
+ externalNetworkInjection.p_mf = powerData[2] ? powerData[2] * -1 : undefined;
2239
+ externalNetworkInjection.q_mf = powerData[3] ? powerData[3] * -1 : undefined;
2147
2240
  cimModel.addExternalNetworkInjection(externalNetworkInjection);
2148
2241
  this.addIdMapping(i7Data.id, externalNetworkInjection.mrid, integral_sql_1.I7Objects.EINSPEISUNG);
2149
2242
  }
@@ -2154,14 +2247,16 @@ class ConverterI7 {
2154
2247
  });
2155
2248
  }
2156
2249
  setTopologyEnergySourceConsumerObject(cimModel, condEquip, i7Data, regulatingControl, generatingUnit) {
2157
- var _a, _b;
2250
+ var _a, _b, _c;
2158
2251
  const inBetrieb = utils_2.convertToBooleanI7(i7Data.betrieb);
2159
2252
  condEquip.normallyInService = inBetrieb;
2160
2253
  const connectivityNode = cimModel.objects.get(this.integralID2UUID.get(i7Data.anschluss));
2161
2254
  if (connectivityNode) {
2162
2255
  const terminal = this.createConnection(cimModel, condEquip, connectivityNode, PhaseCode_1.PhaseCode.ABC, true);
2163
- if (regulatingControl)
2256
+ if (regulatingControl) {
2257
+ regulatingControl.name = util_create_1.createNotation([regulatingControl.name, '_', (_a = connectivityNode.getVoltageLevel()) === null || _a === void 0 ? void 0 : _a.getUUID().substring(0, 8), '_RC'], 32, true);
2164
2258
  regulatingControl.terminal = terminal;
2259
+ }
2165
2260
  const equipmentContainer = this.determineEquipmentContainer('VoltageLevel', cimModel, connectivityNode.connectivityNodeContainer);
2166
2261
  if (equipmentContainer) {
2167
2262
  condEquip.equipmentContainer = equipmentContainer;
@@ -2190,11 +2285,11 @@ class ConverterI7 {
2190
2285
  }
2191
2286
  }
2192
2287
  else {
2193
- this.logger.error(`${(_a = condEquip === null || condEquip === void 0 ? void 0 : condEquip.constructor) === null || _a === void 0 ? void 0 : _a.name} ${i7Data.id} besitzt keinen EquipmentContainer.`);
2288
+ this.logger.error(`${(_b = condEquip === null || condEquip === void 0 ? void 0 : condEquip.constructor) === null || _b === void 0 ? void 0 : _b.name} ${i7Data.id} besitzt keinen EquipmentContainer.`);
2194
2289
  }
2195
2290
  }
2196
2291
  else {
2197
- this.logger.error(`${(_b = condEquip === null || condEquip === void 0 ? void 0 : condEquip.constructor) === null || _b === void 0 ? void 0 : _b.name} ${i7Data.id} besitzt keinen ConnectivityNode.`);
2292
+ this.logger.error(`${(_c = condEquip === null || condEquip === void 0 ? void 0 : condEquip.constructor) === null || _c === void 0 ? void 0 : _c.name} ${i7Data.id} besitzt keinen ConnectivityNode.`);
2198
2293
  }
2199
2294
  }
2200
2295
  convertQuerkupplungen(cimModel, integral7, schaltanlagenAbschnittIDs) {
@@ -2202,7 +2297,8 @@ class ConverterI7 {
2202
2297
  if (this.isTableAvailable(integral_sql_1.Integral7TableNames.QUERKUPPLUNG)) {
2203
2298
  const result = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.QUERKUPPLUNG, schaltanlagenAbschnittIDs));
2204
2299
  for (const i7Data of result) {
2205
- const bay = new AMPRIONBay_1.AMPRIONBay(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), "_B"]), 'Querkupplung');
2300
+ const cimrdfid = utils_1.getUUID(i7Data.guid);
2301
+ const bay = new AMPRIONBay_1.AMPRIONBay(cimrdfid, util_create_1.createNotation([utils_2.getName(i7Data), '_', cimrdfid.substring(0, 8), '_B']), 'Querkupplung');
2206
2302
  bay.number = utils_2.isNumericI7(i7Data.feldnummer) ? utils_2.convertToNumberI7(i7Data.feldnummer).toString() : undefined;
2207
2303
  bay.locationID = i7Data.ips_folder_id;
2208
2304
  const voltageLevel = cimModel.getVoltageLevel(this.integralID2UUID.get(i7Data.saabschnitt));
@@ -2232,7 +2328,8 @@ class ConverterI7 {
2232
2328
  if (this.isTableAvailable(integral_sql_1.Integral7TableNames.LAENGSKUPPLUNG)) {
2233
2329
  const result = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.LAENGSKUPPLUNG, schaltanlagenIDs));
2234
2330
  for (const i7Data of result) {
2235
- const bay = new AMPRIONBay_1.AMPRIONBay(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), "_B"]), i7Data.kurzname, 'Laengskupplung');
2331
+ const cimrdfid = utils_1.getUUID(i7Data.guid);
2332
+ const bay = new AMPRIONBay_1.AMPRIONBay(cimrdfid, util_create_1.createNotation([utils_2.getName(i7Data), '_', cimrdfid.substring(0, 8), '_B']), i7Data.kurzname, 'Laengskupplung');
2236
2333
  const voltageLevel = cimModel.getVoltageLevel(this.integralID2UUID.get(i7Data.schaltanlage));
2237
2334
  bay.number = utils_2.isNumericI7(i7Data.feldnummer) ? utils_2.convertToNumberI7(i7Data.feldnummer).toString() : undefined;
2238
2335
  bay.locationID = i7Data.ips_folder_id;
@@ -2440,9 +2537,10 @@ class ConverterI7 {
2440
2537
  for (const i7DataSchiene of stpSchiene) {
2441
2538
  try {
2442
2539
  stpSchieneIDs.push(i7DataSchiene.id);
2443
- const connectivityNode = new ConnectivityNode_1.ConnectivityNode(utils_1.generateUUID(), util_create_1.createNotation([utils_2.getName(i7DataSchiene), "_CN"]), `StpSchiene_${i7DataSchiene.id}`);
2444
- const junction = new Junction_1.Junction(utils_1.generateUUID(), util_create_1.createNotation([utils_2.getName(i7DataSchiene), "_J"]), `StpSchiene/${i7DataSchiene.id}`);
2540
+ const connectivityNode = new ConnectivityNode_1.ConnectivityNode(utils_1.generateUUID(), util_create_1.createNotation([utils_2.getName(i7DataSchiene), "_CN"]));
2541
+ const junction = new Junction_1.Junction(utils_1.generateUUID(), util_create_1.createNotation([utils_2.getName(i7DataSchiene), "_J"]));
2445
2542
  const equipmentContainer = this.determineEquipmentContainer('VoltageLevel', cimModel, cimModel.getObject(this.integralID2UUID.get(i7DataSchiene.id)));
2543
+ connectivityNode.setConnectivityNodeContainer(equipmentContainer);
2446
2544
  if (equipmentContainer) {
2447
2545
  equipmentContainer.addEquipment(junction);
2448
2546
  junction.equipmentContainer = equipmentContainer;
@@ -2559,7 +2657,8 @@ class ConverterI7 {
2559
2657
  if (this.isTableAvailable(integral_sql_1.Integral7TableNames.LAENGSKUPPLUNG)) {
2560
2658
  const result = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.LAENGSKUPPLUNG, schaltanlagenIDs));
2561
2659
  for (const i7Data of result) {
2562
- const bay = new AMPRIONBay_1.AMPRIONBay(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), "_B"]), i7Data.kurzname, 'Laengskupplung');
2660
+ const cimrdfid = utils_1.getUUID(i7Data.guid);
2661
+ const bay = new AMPRIONBay_1.AMPRIONBay(cimrdfid, util_create_1.createNotation([utils_2.getName(i7Data), '_', cimrdfid.substring(0, 8), '_B']), i7Data.kurzname, 'Laengskupplung');
2563
2662
  const voltageLevel = cimModel.getVoltageLevel(this.integralID2UUID.get(i7Data.schaltanlage));
2564
2663
  bay.number = utils_2.isNumericI7(i7Data.feldnummer) ? utils_2.convertToNumberI7(i7Data.feldnummer).toString() : undefined;
2565
2664
  bay.locationID = i7Data.ips_folder_id;
@@ -2646,8 +2745,11 @@ class ConverterI7 {
2646
2745
  const leitungStromkreisabschnitt = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(type, leitungIDs));
2647
2746
  for (const i7Data of result) {
2648
2747
  const stromkreisabschnitte = leitungStromkreisabschnitt.filter(elem => elem.leitung === i7Data.id);
2649
- if (!(stromkreisabschnitte === null || stromkreisabschnitte === void 0 ? void 0 : stromkreisabschnitte.length))
2748
+ if (!((stromkreisabschnitte === null || stromkreisabschnitte === void 0 ? void 0 : stromkreisabschnitte.length) > 0))
2650
2749
  continue;
2750
+ stromkreisabschnitte.sort(function (stka, stkb) {
2751
+ return stka['pos'] - stkb['pos'];
2752
+ });
2651
2753
  const leitung = new Leitung_1.LeitungImpl(i7Data);
2652
2754
  integral7.integralLeitungen.set(i7Data.id, leitung);
2653
2755
  let i7Schluessel = integral_prefix_1.LEITUNG_PRAEFIX +
@@ -2663,7 +2765,7 @@ class ConverterI7 {
2663
2765
  utils_2.ueberpruefeZeichenkette(i7Data.bezeichner) +
2664
2766
  '-' +
2665
2767
  utils_2.ueberpruefeZeichenkette(i7Data.stkabname);
2666
- const line = new AMPRIONLine_1.AMPRIONLine(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([name, "_L"]), i7Data.stkabname, i7Schluessel);
2768
+ const line = new AMPRIONLine_1.AMPRIONLine(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([name, i7Data.guid.substring(0, 8), "_L"], 32, true), i7Data.stkabname, i7Schluessel);
2667
2769
  line.ukz = i7Data.ukz;
2668
2770
  let acLineSegments = [];
2669
2771
  for (const stk of stromkreisabschnitte) {
@@ -2673,7 +2775,7 @@ class ConverterI7 {
2673
2775
  utils_2.ueberpruefeZeichenkette(i7Data.bezeichner) +
2674
2776
  '-' +
2675
2777
  utils_2.ueberpruefeZeichenkette(stk.bezeichner);
2676
- const acLineSegment = new INTEGRALACLineSegment_1.INTEGRALACLineSegment(utils_1.getUUID(stk.custom_guid_0120 + stk.custom_guid_2137), util_create_1.createNotation([name, stk.pos.toString(), "_ACLS"]), i7Data.stkabname, i7Schluessel);
2778
+ const acLineSegment = new INTEGRALACLineSegment_1.INTEGRALACLineSegment(utils_1.getUUID(stk.custom_guid_0120 + stk.custom_guid_2137), util_create_1.createNotation([name, "_" + stk.pos.toString(), stk.custom_guid_0120.substring(0, 8), "_ACLS"], 32, true), i7Data.stkabname, i7Schluessel);
2677
2779
  let mf = this.cimModelDefault.multiplierFactors.get(this.integralID2UUID.get(stk.multfaktor));
2678
2780
  if (mf) {
2679
2781
  cimModel.addMultiplierFactor(mf);
@@ -2686,12 +2788,11 @@ class ConverterI7 {
2686
2788
  }
2687
2789
  const acLineSegmentStart = acLineSegments[0];
2688
2790
  const startTerminal = this.createBoundaryConnection(frame, acLineSegmentStart, i7Data.aknoten, PhaseCode_1.PhaseCode.ABC);
2689
- let equivalentInjection = undefined;
2690
2791
  if (startTerminal) {
2691
2792
  let bdf = this.getConnectedBoundaryModel(this.integralID2UUID.get(i7Data.aknoten));
2692
2793
  let tmp_cn = bdf === null || bdf === void 0 ? void 0 : bdf.cimModel.getConnectivityNode(startTerminal.getConnectivityNodeUUID());
2693
2794
  if (tmp_cn && tmp_cn.boundaryPoint) {
2694
- equivalentInjection = this.createBoundaryEquivalentInjection(frame, tmp_cn);
2795
+ this.createBoundaryEquivalentInjection(frame, tmp_cn);
2695
2796
  }
2696
2797
  if (!acLineSegmentStart.baseVoltage) {
2697
2798
  if (startTerminal.getConnectedNode())
@@ -2704,19 +2805,20 @@ class ConverterI7 {
2704
2805
  else {
2705
2806
  this.logger.debug(`Leitung ${i7Data.id} ${acLineSegmentStart.mrid} besitzt keinen Anfangsknoten. ${i7Data.aknoten} ${this.integralID2UUID.get(i7Data.aknoten)}`);
2706
2807
  }
2808
+ this.setACLineSegmentProperties(this.cimModelDefault, cimModel, acLineSegmentStart, stromkreisabschnitte[0], defaultValuesConfig);
2707
2809
  cimModel.addACLineSegment(acLineSegmentStart);
2708
- this.setACLineSegmentProperties(this.cimModelDefault, acLineSegments[0], stromkreisabschnitte[0], defaultValuesConfig);
2709
2810
  const anzahl = acLineSegments.length;
2710
2811
  let tmp_terminal = undefined;
2711
2812
  for (let i = 0; i < anzahl - 1; i++) {
2712
- const cn = new ConnectivityNode_1.ConnectivityNode(utils_1.generateUUID(), util_create_1.createNotation([name, "_CN"]));
2713
2813
  const acLineSegment1 = acLineSegments[i];
2814
+ const cn = new ConnectivityNode_1.ConnectivityNode(utils_1.generateUUID(), util_create_1.createNotation([acLineSegment1.name, '_', acLineSegment1.getUUID().substring(0, 8), '_CN'], 32, true));
2815
+ cn.connectivityNodeContainer = acLineSegment1.equipmentContainer;
2714
2816
  tmp_terminal = this.createConnection(cimModel, acLineSegment1, cn, PhaseCode_1.PhaseCode.ABC, true);
2715
2817
  cimModel.addACLineSegment(acLineSegment1);
2716
2818
  if (tmp_terminal) {
2717
2819
  tmp_terminal = undefined;
2718
2820
  }
2719
- this.setACLineSegmentProperties(this.cimModelDefault, acLineSegments[i], stromkreisabschnitte[i], defaultValuesConfig);
2821
+ this.setACLineSegmentProperties(this.cimModelDefault, cimModel, acLineSegments[i], stromkreisabschnitte[i], defaultValuesConfig);
2720
2822
  const acLineSegment2 = acLineSegments[i + 1];
2721
2823
  tmp_terminal = this.createConnection(cimModel, acLineSegment2, cn, PhaseCode_1.PhaseCode.ABC, true);
2722
2824
  cimModel.addACLineSegment(acLineSegment1);
@@ -2732,7 +2834,7 @@ class ConverterI7 {
2732
2834
  let bdf = this.getConnectedBoundaryModel(this.integralID2UUID.get(i7Data.eknoten));
2733
2835
  let tmp_cn = bdf === null || bdf === void 0 ? void 0 : bdf.cimModel.getConnectivityNode(targetTerminal.getConnectivityNodeUUID());
2734
2836
  if (tmp_cn && 'boundaryPoint' in tmp_cn && tmp_cn.boundaryPoint) {
2735
- equivalentInjection = this.createBoundaryEquivalentInjection(frame, tmp_cn);
2837
+ this.createBoundaryEquivalentInjection(frame, tmp_cn);
2736
2838
  }
2737
2839
  if (!acLineSegmentZiel.baseVoltage) {
2738
2840
  acLineSegmentZiel.baseVoltage = (_b = targetTerminal.getConnectivityNode()) === null || _b === void 0 ? void 0 : _b.getBaseVoltage();
@@ -2744,6 +2846,7 @@ class ConverterI7 {
2744
2846
  else {
2745
2847
  this.logger.debug(`Leitung ${i7Data.id} ${acLineSegmentZiel.mrid} besitzt keinen Zielknoten.`);
2746
2848
  }
2849
+ this.setACLineSegmentProperties(this.cimModelDefault, cimModel, acLineSegmentZiel, stromkreisabschnitte[stromkreisabschnitte.length - 1], defaultValuesConfig);
2747
2850
  cimModel.addACLineSegment(acLineSegmentZiel);
2748
2851
  const stkBaseVoltage = acLineSegments.find(elem => elem.baseVoltage !== undefined);
2749
2852
  if (!stkBaseVoltage) {
@@ -2791,7 +2894,7 @@ class ConverterI7 {
2791
2894
  convertLaengskondensatoren(cimModel, integral7, defaultValuesConfig) {
2792
2895
  var _a;
2793
2896
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
2794
- if (this.isTableAvailable(integral_sql_1.Integral7TableNames.LAENGSKONDENSATOR) && integral7.lKondensatorAnschlussKnotenIDs) {
2897
+ if (this.isTableAvailable(integral_sql_1.Integral7TableNames.LAENGSKONDENSATOR) && integral7.lKondensatorAnschlussKnotenIDs.length > 0) {
2795
2898
  const result = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.LAENGSKONDENSATOR, integral7.lKondensatorAnschlussKnotenIDs));
2796
2899
  for (const i7Data of result) {
2797
2900
  const seriesCompensator = new AMPRIONSeriesCompensator_1.AMPRIONSeriesCompensator(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), "_SC"]), i7Data.kurzname);
@@ -2854,21 +2957,25 @@ class ConverterI7 {
2854
2957
  convertDCLines(cimModel, integral7, defaultValuesConfig) {
2855
2958
  var _a, _b;
2856
2959
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
2857
- if (this.isTableAvailable(integral_sql_1.Integral7TableNames.HGUE_LEITUNG) && integral7.hgueAnschlussKnotenIDs.length) {
2960
+ if (this.isTableAvailable(integral_sql_1.Integral7TableNames.HGUE_LEITUNG) && integral7.hgueAnschlussKnotenIDs.length > 0) {
2858
2961
  const result = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.HGUE_LEITUNG, integral7.hgueAnschlussKnotenIDs));
2859
2962
  for (const i7Data of result) {
2963
+ console.log(utils_1.getUUID(i7Data.guid_dcline));
2964
+ if (utils_1.getUUID(i7Data.guid_dcline) === '6a5b7e1e-f8be-4165-9752-2e2359d9b4f8') {
2965
+ let stop = true;
2966
+ }
2860
2967
  const dcLine = new DCLine_1.DCLine(utils_1.getUUID(i7Data.guid_dcline), util_create_1.createNotation([utils_2.getName(i7Data), "_DCL"]));
2861
2968
  const i7Schluessel = integral_prefix_1.HGUELEITUNG_PRAEFIX +
2862
2969
  utils_2.ueberpruefeZeichenkette(i7Data.bezeichner);
2863
2970
  const dcLineSegment = new DCLineSegment_1.DCLineSegment(utils_1.getUUID(i7Data.guidp), util_create_1.createNotation([utils_2.getName(i7Data), "_DCLS"]), i7Data.kurzname, i7Schluessel);
2864
- dcLineSegment.resistance = i7Data.rdc;
2971
+ dcLineSegment.resistance = i7Data.rdc / 2;
2865
2972
  dcLineSegment.equipmentContainer = dcLine;
2866
2973
  const bipol = utils_2.convertToBooleanI7(i7Data.bipol);
2867
2974
  const acDCConverterStart = cimModel.getObject(this.integralID2UUID.get(i7Data.anetzobjekt));
2868
2975
  const acDCConverterTarget = cimModel.getObject(this.integralID2UUID.get(i7Data.enetzobjekt));
2869
- const converterUnitStart = (_a = acDCConverterStart) === null || _a === void 0 ? void 0 : _a.equipmentContainer;
2870
- const converterUnitTarget = (_b = acDCConverterTarget) === null || _b === void 0 ? void 0 : _b.equipmentContainer;
2871
- if (converterUnitStart && converterUnitTarget) {
2976
+ if (acDCConverterStart && acDCConverterTarget) {
2977
+ const converterUnitStart = (_a = acDCConverterStart) === null || _a === void 0 ? void 0 : _a.equipmentContainer;
2978
+ const converterUnitTarget = (_b = acDCConverterTarget) === null || _b === void 0 ? void 0 : _b.equipmentContainer;
2872
2979
  switch (bipol) {
2873
2980
  case (true): {
2874
2981
  converterUnitStart.operationMode = DCConverterOperatingModeKind_1.DCConverterOperatingModeKind.bipolar;
@@ -2880,37 +2987,37 @@ class ConverterI7 {
2880
2987
  converterUnitTarget.operationMode = DCConverterOperatingModeKind_1.DCConverterOperatingModeKind.monopolarGroundReturn;
2881
2988
  }
2882
2989
  }
2990
+ const startDCNode = getDCNodeFromConverter(acDCConverterStart);
2991
+ if (startDCNode) {
2992
+ const dcTerminal = new DCTerminal_1.DCTerminal(utils_1.generateUUID(), util_create_1.createNotation([utils_2.getName(i7Data), "_DCT"]));
2993
+ dcTerminal.connected = true;
2994
+ dcTerminal.dCConductingEquipment = dcLineSegment;
2995
+ dcTerminal.dcNode = startDCNode;
2996
+ startDCNode.dcTerminals.set(dcTerminal.getUUID(), dcTerminal);
2997
+ cimModel.addDCTerminal(dcTerminal);
2998
+ }
2999
+ else {
3000
+ this.logger.debug(`HGÜ-Leitung ${i7Data.id} ${dcLineSegment.mrid} besitzt keinen Anfangsknoten. ${i7Data.anetzobjekt} ${this.integralID2UUID.get(i7Data.anetzobjekt)}`);
3001
+ }
3002
+ const targetDCNode = getDCNodeFromConverter(acDCConverterTarget);
3003
+ if (targetDCNode) {
3004
+ const dcTerminal = new DCTerminal_1.DCTerminal(utils_1.generateUUID(), util_create_1.createNotation([utils_2.getName(i7Data), "_DCT"]));
3005
+ dcTerminal.connected = true;
3006
+ dcTerminal.dCConductingEquipment = dcLineSegment;
3007
+ dcTerminal.dcNode = targetDCNode;
3008
+ targetDCNode.dcTerminals.set(dcTerminal.getUUID(), dcTerminal);
3009
+ cimModel.addDCTerminal(dcTerminal);
3010
+ }
3011
+ else {
3012
+ this.logger.debug(`HGÜ-Leitung ${i7Data.id} ${dcLineSegment.mrid} besitzt keinen Zielknoten. ${i7Data.enetzobjekt} ${this.integralID2UUID.get(i7Data.enetzobjekt)}`);
3013
+ }
3014
+ cimModel.addDCLine(dcLine);
3015
+ cimModel.addDCLineSegment(dcLineSegment);
3016
+ this.addIdMapping(i7Data.id, dcLineSegment.mrid, integral_sql_1.Integral7TableNames.HGUE_LEITUNG);
2883
3017
  }
2884
3018
  else {
2885
- this.logger.debug(`HGÜ-Leitung ${i7Data.id} ${dcLineSegment.mrid}: zugehörende/r Konverter konnte nicht ermittelt werden.`);
2886
- }
2887
- const startDCNode = acDCConverterStart ? getDCNodeFromConverter(acDCConverterStart) : undefined;
2888
- if (startDCNode) {
2889
- const dcTerminal = new DCTerminal_1.DCTerminal(utils_1.generateUUID(), util_create_1.createNotation([utils_2.getName(i7Data), "_DCT"]));
2890
- dcTerminal.connected = true;
2891
- dcTerminal.dCConductingEquipment = dcLineSegment;
2892
- dcTerminal.dcNode = startDCNode;
2893
- startDCNode.dcTerminals.set(dcTerminal.getUUID(), dcTerminal);
2894
- cimModel.addDCTerminal(dcTerminal);
2895
- }
2896
- else {
2897
- this.logger.debug(`HGÜ-Leitung ${i7Data.id} ${dcLineSegment.mrid} besitzt keinen Anfangsknoten. ${i7Data.anetzobjekt} ${this.integralID2UUID.get(i7Data.anetzobjekt)}`);
2898
- }
2899
- const targetDCNode = acDCConverterTarget ? getDCNodeFromConverter(acDCConverterTarget) : undefined;
2900
- if (targetDCNode) {
2901
- const dcTerminal = new DCTerminal_1.DCTerminal(utils_1.generateUUID(), util_create_1.createNotation([utils_2.getName(i7Data), "_DCT"]));
2902
- dcTerminal.connected = true;
2903
- dcTerminal.dCConductingEquipment = dcLineSegment;
2904
- dcTerminal.dcNode = targetDCNode;
2905
- targetDCNode.dcTerminals.set(dcTerminal.getUUID(), dcTerminal);
2906
- cimModel.addDCTerminal(dcTerminal);
2907
- }
2908
- else {
2909
- this.logger.debug(`HGÜ-Leitung ${i7Data.id} ${dcLineSegment.mrid} besitzt keinen Zielknoten. ${i7Data.enetzobjekt} ${this.integralID2UUID.get(i7Data.enetzobjekt)}`);
3019
+ this.logger.debug(`HGÜ-Leitung ${i7Data.id} ${dcLineSegment.mrid}: Es konnten nicht alle zugehörende/r Konverter ermittelt werden. Gefundene Konverter: ${acDCConverterStart === null || acDCConverterStart === void 0 ? void 0 : acDCConverterStart.mrid}, ${acDCConverterTarget === null || acDCConverterTarget === void 0 ? void 0 : acDCConverterTarget.mrid}`);
2910
3020
  }
2911
- cimModel.addDCLine(dcLine);
2912
- cimModel.addDCLineSegment(dcLineSegment);
2913
- this.addIdMapping(i7Data.id, dcLineSegment.mrid, integral_sql_1.Integral7TableNames.HGUE_LEITUNG);
2914
3021
  }
2915
3022
  }
2916
3023
  else {
@@ -3018,11 +3125,11 @@ class ConverterI7 {
3018
3125
  const result = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.MULTIPLIKATIONSFAKTOR, []));
3019
3126
  for (const i7Data of result) {
3020
3127
  const multFaktor = new INTEGRALMultiplierFactor_1.INTEGRALMultiplierFactor(utils_1.getUUID(undefined), utils_2.getName(i7Data), i7Data.kurzname, i7Data.kommentar);
3021
- multFaktor.p = utils_2.isNumericI7(i7Data.p) ? utils_2.convertToNumberI7(i7Data.p) : 1;
3022
- multFaktor.qInd = utils_2.isNumericI7(i7Data.q_ind) ? utils_2.convertToNumberI7(i7Data.q_ind) : 1;
3023
- multFaktor.qKap = utils_2.isNumericI7(i7Data.q_kap) ? utils_2.convertToNumberI7(i7Data.q_kap) : 1;
3024
- multFaktor.cosPhiInd = utils_2.isNumericI7(i7Data.cos_phi_ind) ? utils_2.convertToNumberI7(i7Data.cos_phi_ind) : 1;
3025
- multFaktor.cosPhiKap = utils_2.isNumericI7(i7Data.cos_phi_kap) ? utils_2.convertToNumberI7(i7Data.cos_phi_kap) : 1;
3128
+ multFaktor.p = utils_2.isNumericI7(i7Data.p) ? utils_2.convertToNumberI7(i7Data.p) : undefined;
3129
+ multFaktor.qInd = utils_2.isNumericI7(i7Data.q_ind) ? utils_2.convertToNumberI7(i7Data.q_ind) : undefined;
3130
+ multFaktor.qKap = utils_2.isNumericI7(i7Data.q_kap) ? utils_2.convertToNumberI7(i7Data.q_kap) : undefined;
3131
+ multFaktor.cosPhiInd = utils_2.isNumericI7(i7Data.cos_phi_ind) ? utils_2.convertToNumberI7(i7Data.cos_phi_ind) : undefined;
3132
+ multFaktor.cosPhiKap = utils_2.isNumericI7(i7Data.cos_phi_kap) ? utils_2.convertToNumberI7(i7Data.cos_phi_kap) : undefined;
3026
3133
  this.cimModelDefault.addMultiplierFactor(multFaktor);
3027
3134
  this.addIdMapping(i7Data.id, multFaktor.mrid, integral_sql_1.Integral7TableNames.MULTIPLIKATIONSFAKTOR);
3028
3135
  }
@@ -3050,7 +3157,8 @@ class ConverterI7 {
3050
3157
  }
3051
3158
  }
3052
3159
  for (const i7Data of result) {
3053
- const powerTransformer = new PowerTransformer_1.PowerTransformer(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), "_PT"]), i7Data.kurzname, i7Data.kommentar);
3160
+ const cimrdfid = utils_1.getUUID(i7Data.guid);
3161
+ const powerTransformer = new PowerTransformer_1.PowerTransformer(cimrdfid, util_create_1.createNotation([utils_2.getName(i7Data), '_', cimrdfid.substring(0, 8), '_PT']), i7Data.kurzname, i7Data.kommentar);
3054
3162
  const substation = cimModel.getSubstation(this.integralID2UUID.get(i7Data.standort));
3055
3163
  if (substation) {
3056
3164
  powerTransformer.equipmentContainer = substation;
@@ -3093,7 +3201,7 @@ class ConverterI7 {
3093
3201
  equivalentInjection = this.createBoundaryEquivalentInjection(frame, tmp_cn);
3094
3202
  }
3095
3203
  }
3096
- const powerTransformerEnd2 = new PowerTransformerEnd_1.PowerTransformerEnd(utils_1.getUUID(i7Data.guid_w2), `W2${powerTransformer.name}`);
3204
+ const powerTransformerEnd2 = new PowerTransformerEnd_1.PowerTransformerEnd(utils_1.getUUID(i7Data.guid_w2), `W2${powerTransformer === null || powerTransformer === void 0 ? void 0 : powerTransformer.name}`);
3097
3205
  powerTransformerEnd2.endNumber = 2;
3098
3206
  const sr2 = utils_2.getSrTrafo(i7Data, powerTransformerInfo, powerTransformerEnd2.endNumber, false);
3099
3207
  const ur2 = utils_2.getUrTrafo(i7Data, powerTransformerInfo, powerTransformerEnd2.endNumber);
@@ -3118,18 +3226,12 @@ class ConverterI7 {
3118
3226
  powerTransformerEnd2.connectionKind = utils_2.getSchaltgruppe(schaltgruppe, powerTransformerEnd2.endNumber, powerTransformerEnd2.grounded);
3119
3227
  powerTransformerEnd2.phaseAngleClock = utils_2.getSchaltgruppeAngleClock(schaltgruppe, powerTransformerEnd2.endNumber);
3120
3228
  this.sortTransformerEnd(powerTransformer, 'ratedU', 'desc');
3121
- const powerTransformerEnds = [powerTransformerEnd1, powerTransformerEnd2];
3229
+ const powerTransformerEnds = [powerTransformer.powerTransformerEnds[0], powerTransformer.powerTransformerEnds[1]];
3122
3230
  const spRegKnoten = yield this.getSpannungsbandTrafo2W(i7Data);
3123
3231
  const spannungsband = integral7.targetVoltages.get(spRegKnoten.id);
3124
3232
  const cnUUID = this.integralID2UUID.get(spRegKnoten.id);
3125
3233
  const connectivityNode = cimModel.getObject(cnUUID);
3126
- try {
3127
- this.convertTapChangers(i7Data, powerTransformerEnds, cimModel, powerTransformerInfo, connectivityNode, spannungsband);
3128
- }
3129
- catch (err) {
3130
- console.log('convertTapChangers');
3131
- console.log(err);
3132
- }
3234
+ this.convertTapChangers(i7Data, powerTransformerEnds, cimModel, powerTransformerInfo, connectivityNode, spannungsband);
3133
3235
  cimModel.addPowerTransformerEnd(powerTransformerEnd1);
3134
3236
  cimModel.addPowerTransformerEnd(powerTransformerEnd2);
3135
3237
  cimModel.addPowerTransformer(powerTransformer);
@@ -3171,7 +3273,8 @@ class ConverterI7 {
3171
3273
  }
3172
3274
  }
3173
3275
  for (const i7Data of result) {
3174
- const powerTransformer = new PowerTransformer_1.PowerTransformer(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), "_PT"]), i7Data.kurzname, i7Data.kommentar);
3276
+ const cimrdfid = utils_1.getUUID(i7Data.guid);
3277
+ const powerTransformer = new PowerTransformer_1.PowerTransformer(cimrdfid, util_create_1.createNotation([utils_2.getName(i7Data), '_', cimrdfid.substring(0, 8), '_PT']), i7Data.kurzname, i7Data.kommentar);
3175
3278
  const substation = cimModel.getSubstation(this.integralID2UUID.get(i7Data.standort));
3176
3279
  if (substation) {
3177
3280
  powerTransformer.equipmentContainer = substation;
@@ -3207,7 +3310,7 @@ class ConverterI7 {
3207
3310
  const impedanzW1 = utils_trafo3w_1.calculateImpedanzenTrafo3W(1, ur1, ur2, ur3, sr1, sr2, sr3, pkr12, pkr13, pkr23, ukr12, ukr13, ukr23, pLeer, iLeer);
3208
3311
  const impedanzW2 = utils_trafo3w_1.calculateImpedanzenTrafo3W(2, ur1, ur2, ur3, sr1, sr2, sr3, pkr12, pkr13, pkr23, ukr12, ukr13, ukr23, 0, 0);
3209
3312
  const impedanzW3 = utils_trafo3w_1.calculateImpedanzenTrafo3W(3, ur1, ur2, ur3, sr1, sr2, sr3, pkr12, pkr13, pkr23, ukr12, ukr13, ukr23, 0, 0);
3210
- const powerTransformerEnd1 = new PowerTransformerEnd_1.PowerTransformerEnd(utils_1.getUUID(i7Data.guid_w1), `W1 ${powerTransformer.name}`);
3313
+ const powerTransformerEnd1 = new PowerTransformerEnd_1.PowerTransformerEnd(utils_1.getUUID(i7Data.guid_w1), `W1 ${powerTransformer === null || powerTransformer === void 0 ? void 0 : powerTransformer.name}`);
3211
3314
  powerTransformerEnd1.endNumber = 1;
3212
3315
  const wicklung1 = trafoWicklungen.get(i7Data.trafowicklung3w1);
3213
3316
  const terminal1 = this.createBoundaryConnection(frame, powerTransformer, wicklung1.aknoten, PhaseCode_1.PhaseCode.ABC);
@@ -3234,7 +3337,7 @@ class ConverterI7 {
3234
3337
  const terminal2 = this.createBoundaryConnection(frame, powerTransformer, wicklung2.aknoten, PhaseCode_1.PhaseCode.ABC);
3235
3338
  if (!terminal2)
3236
3339
  this.logger.debug(`PowerTransformer3W ${i7Data.id} ${powerTransformer.mrid} besitzt keinen Anfangsknoten.`);
3237
- const powerTransformerEnd2 = new PowerTransformerEnd_1.PowerTransformerEnd(utils_1.getUUID(i7Data.guid_w2), `W2 ${powerTransformer.name}`);
3340
+ const powerTransformerEnd2 = new PowerTransformerEnd_1.PowerTransformerEnd(utils_1.getUUID(i7Data.guid_w2), `W2 ${powerTransformer === null || powerTransformer === void 0 ? void 0 : powerTransformer.name}`);
3238
3341
  powerTransformerEnd2.endNumber = 2;
3239
3342
  powerTransformerEnd2.r = impedanzW2.r;
3240
3343
  powerTransformerEnd2.x = impedanzW2.x;
@@ -3258,7 +3361,7 @@ class ConverterI7 {
3258
3361
  const terminal3 = this.createBoundaryConnection(frame, powerTransformer, wicklung3.aknoten, PhaseCode_1.PhaseCode.ABC);
3259
3362
  if (!terminal3)
3260
3363
  this.logger.debug(`PowerTransformer3W ${i7Data.id} ${powerTransformer.mrid} besitzt keinen Anfangsknoten.`);
3261
- const powerTransformerEnd3 = new PowerTransformerEnd_1.PowerTransformerEnd(utils_1.getUUID(i7Data.guid_w3), `Wicklung 3 ${powerTransformer.name}`);
3364
+ const powerTransformerEnd3 = new PowerTransformerEnd_1.PowerTransformerEnd(utils_1.getUUID(i7Data.guid_w3), `Wicklung 3 ${powerTransformer === null || powerTransformer === void 0 ? void 0 : powerTransformer.name}`);
3262
3365
  powerTransformerEnd3.endNumber = 3;
3263
3366
  powerTransformerEnd3.r = impedanzW3.r;
3264
3367
  powerTransformerEnd3.x = impedanzW3.x;
@@ -3284,13 +3387,7 @@ class ConverterI7 {
3284
3387
  const spannungsband = integral7.targetVoltages.get(spRegKnoten.id);
3285
3388
  const cnUUID = this.integralID2UUID.get(spRegKnoten.id);
3286
3389
  const connectivityNode = cimModel.getObject(cnUUID);
3287
- try {
3288
- this.convertTapChangers(i7Data, powerTransformerEnds, cimModel, powerTransformerInfo, connectivityNode, spannungsband);
3289
- }
3290
- catch (err) {
3291
- console.log('convertTapChangers');
3292
- console.log(err);
3293
- }
3390
+ this.convertTapChangers(i7Data, powerTransformerEnds, cimModel, powerTransformerInfo, connectivityNode, spannungsband);
3294
3391
  cimModel.addPowerTransformer(powerTransformer);
3295
3392
  cimModel.addPowerTransformerEnd(powerTransformerEnd1);
3296
3393
  cimModel.addPowerTransformerEnd(powerTransformerEnd2);
@@ -3383,7 +3480,7 @@ class ConverterI7 {
3383
3480
  line.addConnectivityNode(connectivityNode);
3384
3481
  const junction = new Junction_1.Junction(utils_1.generateUUID(), `${line.name}_BD-J`, `Junction`, 'Junction for Geo');
3385
3482
  junction.equipmentContainer = line;
3386
- let terminal = new Terminal_1.Terminal(utils_1.generateUUID(), util_create_1.createNotation([line.name, '_BD-T']), 'bd_jct_lab', 'terminal to connect junction to associated boundary ConnectivityNode', 1);
3483
+ let terminal = new Terminal_1.Terminal(utils_1.generateUUID(), util_create_1.createNotation([line.getUUID().substring(0, 8), '_BD-JCT-T']), 'bd_jct_lab', 'terminal to connect junction to associated boundary ConnectivityNode', 1);
3387
3484
  junction.terminals.set(terminal.getUUID(), terminal);
3388
3485
  terminal.conductingEquipment = junction;
3389
3486
  line.addEquipment(junction);
@@ -3435,19 +3532,17 @@ class ConverterI7 {
3435
3532
  const winding1_guid = winding_guids[0];
3436
3533
  const winding2 = powerTransformer.powerTransformerEnds[0];
3437
3534
  if (!(winding1_guid === winding2.getUUID())) {
3438
- const winding1 = powerTransformer.powerTransformerEnds.find(e => e.mrid === winding1_guid[0]);
3439
- if (winding1) {
3440
- let val = winding2.phaseAngleClock;
3441
- winding2.phaseAngleClock = 0;
3442
- winding1.phaseAngleClock = 12 - val;
3443
- }
3444
- else {
3445
- const isNull = true;
3446
- }
3535
+ powerTransformer.powerTransformerEnds[0].endNumber = 1;
3536
+ powerTransformer.powerTransformerEnds[1].endNumber = 2;
3537
+ powerTransformer.powerTransformerEnds[1].phaseAngleClock = 12 - powerTransformer.powerTransformerEnds[0].phaseAngleClock;
3538
+ powerTransformer.powerTransformerEnds[0].phaseAngleClock = 0;
3447
3539
  }
3448
3540
  }
3449
- setACLineSegmentProperties(defaultModel, acLineSegment, data, defaultValuesConfig) {
3450
- if (utils_2.isNumericI7(data.laenge) && data.laenge <= 0) {
3541
+ setACLineSegmentProperties(defaultModel, cimModel, acLineSegment, data, defaultValuesConfig) {
3542
+ if (acLineSegment.getUUID() === 'e2505f0f-c764-44da-b88b-d40e048193c9') {
3543
+ let stop = true;
3544
+ }
3545
+ if ((utils_2.isNumericI7(data.laenge) && data.laenge <= 0) || (utils_2.isBooleanI7(data.flag_impedanzlos) && utils_2.convertToBooleanI7(data.flag_impedanzlos))) {
3451
3546
  data.flag_impedanzlos = 1;
3452
3547
  }
3453
3548
  if (utils_2.isNumericI7(data.laenge) && data.laenge > 0 && !data.flag_impedanzlos) {
@@ -3522,12 +3617,12 @@ class ConverterI7 {
3522
3617
  }
3523
3618
  for (const terminal of acLineSegment.terminals.values()) {
3524
3619
  if (utils_2.isNumericI7(data.ir) && data.ir > 0) {
3525
- this.setConductingEquipmentCurrentLimit(defaultModel, acLineSegment.name, terminal, data.ir);
3620
+ this.setConductingEquipmentCurrentLimit(cimModel, acLineSegment.name, terminal, data.ir);
3526
3621
  }
3527
3622
  else if (assetType && assetType.ratedCurrent && assetType.ratedCurrent !== 0) {
3528
- this.setConductingEquipmentCurrentLimit(defaultModel, acLineSegment.name, terminal, assetType.ratedCurrent);
3623
+ this.setConductingEquipmentCurrentLimit(cimModel, acLineSegment.name, terminal, assetType.ratedCurrent);
3529
3624
  }
3530
- const psrType = utils_1.createIfNotExitsPSRType(defaultModel, data.typ);
3625
+ const psrType = utils_1.createIfNotExitsPSRType(cimModel, data.typ);
3531
3626
  acLineSegment.psrTypeUUID = psrType.mrid;
3532
3627
  }
3533
3628
  }
@@ -3574,10 +3669,12 @@ class ConverterI7 {
3574
3669
  return operationalLimitType;
3575
3670
  }
3576
3671
  createConnection(cimModel, conductingEquipment, object, phase, connected) {
3672
+ let isNameSet = false;
3577
3673
  let terminal;
3578
3674
  if (object instanceof ConnectivityNode_1.ConnectivityNode) {
3579
3675
  const cn = object;
3580
- terminal = new Terminal_1.Terminal(utils_1.generateUUID(), util_create_1.createNotation([cn.name, '_T']));
3676
+ terminal = new Terminal_1.Terminal(utils_1.generateUUID(), util_create_1.createNotation([conductingEquipment.getUUID().substring(0, 8), '_T']));
3677
+ isNameSet = true;
3581
3678
  terminal.setConnectivityNode(cn);
3582
3679
  cn.addTerminal(terminal);
3583
3680
  cimModel.addTerminal(terminal);
@@ -3590,7 +3687,9 @@ class ConverterI7 {
3590
3687
  terminal.conductingEquipment = conductingEquipment;
3591
3688
  conductingEquipment.addTerminal(terminal);
3592
3689
  terminal.connected = connected;
3593
- terminal.name = util_create_1.createNotation([conductingEquipment.name, terminal.name], 32, true);
3690
+ if (!isNameSet) {
3691
+ terminal.name = util_create_1.createNotation([conductingEquipment.getUUID().substring(0, 8), '_' + terminal.name], 32, true);
3692
+ }
3594
3693
  }
3595
3694
  return terminal;
3596
3695
  }
@@ -3610,7 +3709,7 @@ class ConverterI7 {
3610
3709
  const object = cimModelBD.getObject(anschlussUUID);
3611
3710
  if (object instanceof ConnectivityNode_1.ConnectivityNode) {
3612
3711
  cn = object;
3613
- terminal = new Terminal_1.Terminal(utils_1.generateUUID(), util_create_1.createNotation([cn.name, '_T']));
3712
+ terminal = new Terminal_1.Terminal(utils_1.generateUUID(), util_create_1.createNotation([conductingEquipment.getUUID().substring(0, 8), '_', cn.getUUID().substring(0, 8), '_BD_T']));
3614
3713
  terminal.connectivityNodeUUID = cn.mrid;
3615
3714
  terminal.phases = phase;
3616
3715
  terminal.connected = true;
@@ -3627,6 +3726,7 @@ class ConverterI7 {
3627
3726
  terminal.setConnectivityNodeUUID(cn.getUUID());
3628
3727
  terminal.setConnectivityNode(undefined);
3629
3728
  }
3729
+ terminal.name = util_create_1.createNotation([conductingEquipment.getUUID().substring(0, 8), '_' + terminal.name], 32, true);
3630
3730
  cimModelBD.terminals.delete(terminal.mrid);
3631
3731
  cimModel.addTerminal(terminal);
3632
3732
  }
@@ -3679,7 +3779,7 @@ class ConverterI7 {
3679
3779
  equivalentInjection.baseVoltage = cn.getBaseVoltage();
3680
3780
  equivalentInjection.normallyInService = false;
3681
3781
  tmp_terminal.setConductingEquipment(equivalentInjection);
3682
- tmp_terminal.name = util_create_1.createNotation([cn.name.substring(0, 8), '_', equivalentInjection.name, '_BD-T'], 32, true);
3782
+ tmp_terminal.name = util_create_1.createNotation([frame.tsoName, '_BD-EI-T'], 32, true);
3683
3783
  cn.addTerminal(tmp_terminal);
3684
3784
  frame.cimModel.addEquivalentInjection(equivalentInjection);
3685
3785
  if (tmp_terminal.getConductingEquipmentUUID() !== undefined) {
@@ -4004,7 +4104,7 @@ class ConverterI7 {
4004
4104
  const cimModel = frame.cimModel;
4005
4105
  if (terminal) {
4006
4106
  powerTransformerEnd.terminal = terminal;
4007
- this.setConductingEquipmentCurrentLimit(cimModel, 'W1 ' + powerTransformer.name, terminal, ir);
4107
+ this.setConductingEquipmentCurrentLimit(cimModel, 'W1 ' + (powerTransformer === null || powerTransformer === void 0 ? void 0 : powerTransformer.name), terminal, ir);
4008
4108
  if (sternpunktKnotenMap.has(i7Data.id) && i7Data) {
4009
4109
  if (sternpunktKnotenMap.get(i7Data.id).has(i7Data.aknknoten1p)) {
4010
4110
  this.convertTrafoGrounding(frame, powerTransformer, powerTransformerEnd, integral7, sternpunktKnotenMap.get(i7Data.id).get(i7Data.aknknoten1p), defaultValuesConfig);
@@ -4042,7 +4142,7 @@ class ConverterI7 {
4042
4142
  powerTransformer.addPowerTransformerEnd(powerTransformerEnd);
4043
4143
  }
4044
4144
  convertTapChangers(i7Data, transformerEnds, cimModel, transformerinfo, connectivityNode, spannungsband) {
4045
- var _a, _b;
4145
+ var _a, _b, _c;
4046
4146
  for (let tapChangerNumber = 1; tapChangerNumber <= 2; tapChangerNumber++) {
4047
4147
  const transformerEndInfo = (_a = transformerinfo === null || transformerinfo === void 0 ? void 0 : transformerinfo.transformerEndInfos) === null || _a === void 0 ? void 0 : _a.find(elem => elem.endNumber === tapChangerNumber);
4048
4148
  const transformerEnd = transformerEnds.find(elem => elem.endNumber === tapChangerNumber);
@@ -4055,10 +4155,14 @@ class ConverterI7 {
4055
4155
  this.logger.error(`Trafo ${i7Data.id}: Zum Stufenschalter ${gestufteSeite} keine Wicklung gefunden.`);
4056
4156
  continue;
4057
4157
  }
4158
+ else if (!gestufteSeite) {
4159
+ this.logger.error(`Trafo ${i7Data.id}: Kein Stufenschalter ${gestufteSeite} zur Wicklung ${transformerEnd.getUUID()} an Transformator ${(_b = transformerEnd.powerTransformer) === null || _b === void 0 ? void 0 : _b.getUUID()} gefunden.`);
4160
+ continue;
4161
+ }
4058
4162
  const tapChangerInfo = transformerEndInfo === null || transformerEndInfo === void 0 ? void 0 : transformerEndInfo.tapChangerInfo;
4059
4163
  const angle = utils_2.isNumericI7(i7Data[`uzus_winkel_s${tapChangerNumber}`])
4060
4164
  ? utils_2.convertToNumberI7(i7Data[`uzus_winkel_s${tapChangerNumber}`])
4061
- : (_b = tapChangerInfo === null || tapChangerInfo === void 0 ? void 0 : tapChangerInfo.stepPhaseIncrement) === null || _b === void 0 ? void 0 : _b.value;
4165
+ : (_c = tapChangerInfo === null || tapChangerInfo === void 0 ? void 0 : tapChangerInfo.stepPhaseIncrement) === null || _c === void 0 ? void 0 : _c.value;
4062
4166
  const neutralU = transformerEnd.ratedU;
4063
4167
  let tapChanger;
4064
4168
  if (isFinite(angle) && angle !== 0) {
@@ -4423,6 +4527,7 @@ class ConverterI7 {
4423
4527
  addIdMapping(i7ID, uuid, type) {
4424
4528
  if (this.integralID2UUID.has(i7ID)) {
4425
4529
  console.log(`ID ${i7ID} existiert bereits. Typ ${this.integralID2Type.get(i7ID)} neuer Typ ${type}`);
4530
+ this.logger.debug(`ID ${i7ID} existiert bereits. Typ ${this.integralID2Type.get(i7ID)} neuer Typ ${type}`);
4426
4531
  }
4427
4532
  else {
4428
4533
  this.integralID2UUID.set(i7ID, uuid);
@@ -4487,7 +4592,8 @@ class ConverterI7 {
4487
4592
  }
4488
4593
  exports.ConverterI7 = ConverterI7;
4489
4594
  function getDCNodeFromConverter(acDcConverter) {
4490
- for (const terminal of acDcConverter.dCTerminals.values()) {
4595
+ var _a;
4596
+ for (const terminal of (_a = acDcConverter === null || acDcConverter === void 0 ? void 0 : acDcConverter.dCTerminals) === null || _a === void 0 ? void 0 : _a.values()) {
4491
4597
  if (terminal.dcNode)
4492
4598
  return terminal.dcNode;
4493
4599
  }