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