@enervance/insight-cim-model 0.0.30 → 0.0.32
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/analysis/analysis-neplan/digi-ons.d.ts +48 -1
- package/dist/analysis/analysis-neplan/digi-ons.js +268 -70
- package/dist/analysis/analysis-neplan/digi-ons.js.map +1 -1
- package/dist/constants/cim-class-definition.js +25 -0
- package/dist/constants/cim-class-definition.js.map +1 -1
- package/dist/constants/cim-class-names.d.ts +13 -0
- package/dist/constants/cim-class-names.js +13 -0
- package/dist/constants/cim-class-names.js.map +1 -1
- package/dist/constants/rdf-xml.d.ts +2 -2
- package/dist/constants/rdf-xml.js +2 -2
- package/dist/converter/integral7/ConverterIntegral7.d.ts +54 -56
- package/dist/converter/integral7/ConverterIntegral7.js +2470 -1837
- package/dist/converter/integral7/ConverterIntegral7.js.map +1 -1
- package/dist/converter/integral7/config/integral-prefix.d.ts +6 -1
- package/dist/converter/integral7/config/integral-prefix.js +7 -2
- package/dist/converter/integral7/config/integral-prefix.js.map +1 -1
- package/dist/converter/integral7/converter-i7.d.ts +29 -61
- package/dist/converter/integral7/converter-i7.js +1231 -545
- package/dist/converter/integral7/converter-i7.js.map +1 -1
- package/dist/converter/integral7/interface-i7/IDefaultValuesConfig.d.ts +22 -0
- package/dist/converter/integral7/interface-i7/IObjectMappingConfig.d.ts +3 -0
- package/dist/converter/integral7/interface-i7/data-structures-i7.d.ts +62 -5
- package/dist/converter/integral7/interface-i7/data-structures-i7.js +6 -0
- package/dist/converter/integral7/interface-i7/data-structures-i7.js.map +1 -1
- package/dist/converter/integral7/interface-i7/export-frame-i7.d.ts +52 -4
- package/dist/converter/integral7/interface-i7/export-frame-i7.js +117 -14
- package/dist/converter/integral7/interface-i7/export-frame-i7.js.map +1 -1
- package/dist/converter/integral7/model/interfaces.d.ts +14 -0
- package/dist/converter/integral7/sql/integral.sql.d.ts +8 -0
- package/dist/converter/integral7/sql/integral.sql.js +41 -4
- package/dist/converter/integral7/sql/integral.sql.js.map +1 -1
- package/dist/converter/integral7/utils-cgmes-export.js +17 -3
- package/dist/converter/integral7/utils-cgmes-export.js.map +1 -1
- package/dist/converter/integral7/utils-trafo3w.js +51 -21
- package/dist/converter/integral7/utils-trafo3w.js.map +1 -1
- package/dist/converter/integral7/utils.d.ts +5 -3
- package/dist/converter/integral7/utils.js +194 -106
- package/dist/converter/integral7/utils.js.map +1 -1
- package/dist/index.d.ts +21 -1
- package/dist/index.js +42 -2
- package/dist/index.js.map +1 -1
- package/dist/interfaces/model/core/IPowerSystemResource.d.ts +2 -0
- package/dist/interfaces/model/core/ITerminal.d.ts +2 -0
- package/dist/model/assetinfo/SwitchInfo.d.ts +10 -0
- package/dist/model/assetinfo/SwitchInfo.js +51 -0
- package/dist/model/assetinfo/SwitchInfo.js.map +1 -0
- package/dist/model/assets/Asset.js +4 -2
- package/dist/model/assets/Asset.js.map +1 -1
- package/dist/model/common/Location.js +22 -22
- package/dist/model/core/ConductingEquipment.d.ts +2 -0
- package/dist/model/core/ConductingEquipment.js +9 -0
- package/dist/model/core/ConductingEquipment.js.map +1 -1
- package/dist/model/core/ConnectivityNode.d.ts +7 -2
- package/dist/model/core/ConnectivityNode.js +71 -0
- package/dist/model/core/ConnectivityNode.js.map +1 -1
- package/dist/model/core/GeographicalRegion.d.ts +1 -0
- package/dist/model/core/GeographicalRegion.js +5 -0
- package/dist/model/core/GeographicalRegion.js.map +1 -1
- package/dist/model/core/IdentifiedObject.js +13 -9
- package/dist/model/core/IdentifiedObject.js.map +1 -1
- package/dist/model/core/PowerSystemResource.d.ts +1 -0
- package/dist/model/core/PowerSystemResource.js +7 -0
- package/dist/model/core/PowerSystemResource.js.map +1 -1
- package/dist/model/core/Substation.js +1 -0
- package/dist/model/core/Substation.js.map +1 -1
- package/dist/model/core/Terminal.d.ts +1 -1
- package/dist/model/core/Terminal.js +50 -33
- package/dist/model/core/Terminal.js.map +1 -1
- package/dist/model/dc/ACDCConverter.js +1 -2
- package/dist/model/dc/ACDCConverter.js.map +1 -1
- package/dist/model/dc/DCConductingEquipment.d.ts +2 -2
- package/dist/model/dc/DCConductingEquipment.js +2 -2
- package/dist/model/dc/DCConductingEquipment.js.map +1 -1
- package/dist/model/dc/DCEquipmentContainer.js.map +1 -1
- package/dist/model/extensions/amprion/assets/AMPRIONAssetCommunicationEquipment.d.ts +8 -0
- package/dist/model/extensions/amprion/assets/AMPRIONAssetCommunicationEquipment.js +48 -0
- package/dist/model/extensions/amprion/assets/AMPRIONAssetCommunicationEquipment.js.map +1 -0
- package/dist/model/extensions/amprion/assets/AMPRIONAssetConstructionMaintenance.d.ts +8 -0
- package/dist/model/extensions/amprion/assets/AMPRIONAssetConstructionMaintenance.js +48 -0
- package/dist/model/extensions/amprion/assets/AMPRIONAssetConstructionMaintenance.js.map +1 -0
- package/dist/model/extensions/amprion/assets/AMPRIONAssetPrimaryEquipment.d.ts +8 -0
- package/dist/model/extensions/amprion/assets/AMPRIONAssetPrimaryEquipment.js +48 -0
- package/dist/model/extensions/amprion/assets/AMPRIONAssetPrimaryEquipment.js.map +1 -0
- package/dist/model/extensions/amprion/assets/AMPRIONAssetSecondaryEquipment.d.ts +8 -0
- package/dist/model/extensions/amprion/assets/AMPRIONAssetSecondaryEquipment.js +48 -0
- package/dist/model/extensions/amprion/assets/AMPRIONAssetSecondaryEquipment.js.map +1 -0
- package/dist/model/extensions/amprion/assets/AMPRIONContractingAuthority.d.ts +8 -0
- package/dist/model/extensions/amprion/assets/AMPRIONContractingAuthority.js +48 -0
- package/dist/model/extensions/amprion/assets/AMPRIONContractingAuthority.js.map +1 -0
- package/dist/model/extensions/amprion/assets/AMPRIONCountry.d.ts +11 -0
- package/dist/model/extensions/amprion/assets/AMPRIONCountry.js +49 -0
- package/dist/model/extensions/amprion/assets/AMPRIONCountry.js.map +1 -0
- package/dist/model/extensions/amprion/assets/AMPRIONFacility.d.ts +3 -0
- package/dist/model/extensions/amprion/assets/AMPRIONFacility.js +16 -4
- package/dist/model/extensions/amprion/assets/AMPRIONFacility.js.map +1 -1
- package/dist/model/extensions/amprion/assets/AMPRIONLeaseholder.d.ts +8 -0
- package/dist/model/extensions/amprion/assets/AMPRIONLeaseholder.js +48 -0
- package/dist/model/extensions/amprion/assets/AMPRIONLeaseholder.js.map +1 -0
- package/dist/model/extensions/amprion/assets/AMPRIONLineDistrict.d.ts +8 -0
- package/dist/model/extensions/amprion/assets/AMPRIONLineDistrict.js +48 -0
- package/dist/model/extensions/amprion/assets/AMPRIONLineDistrict.js.map +1 -0
- package/dist/model/extensions/amprion/assets/AMPRIONServiceProvider.d.ts +8 -0
- package/dist/model/extensions/amprion/assets/AMPRIONServiceProvider.js +48 -0
- package/dist/model/extensions/amprion/assets/AMPRIONServiceProvider.js.map +1 -0
- package/dist/model/extensions/amprion/assets/AMPRIONState.d.ts +13 -0
- package/dist/model/extensions/amprion/assets/AMPRIONState.js +58 -0
- package/dist/model/extensions/amprion/assets/AMPRIONState.js.map +1 -0
- package/dist/model/extensions/amprion/core/AMPRIONBay.d.ts +3 -2
- package/dist/model/extensions/amprion/core/AMPRIONBay.js +7 -4
- package/dist/model/extensions/amprion/core/AMPRIONBay.js.map +1 -1
- package/dist/model/extensions/amprion/core/AMPRIONLine.d.ts +8 -1
- package/dist/model/extensions/amprion/core/AMPRIONLine.js +38 -1
- package/dist/model/extensions/amprion/core/AMPRIONLine.js.map +1 -1
- package/dist/model/extensions/amprion/core/AMPRIONSubstation.d.ts +5 -2
- package/dist/model/extensions/amprion/core/AMPRIONSubstation.js +18 -12
- package/dist/model/extensions/amprion/core/AMPRIONSubstation.js.map +1 -1
- package/dist/model/extensions/amprion/model/AMPRIONModel.d.ts +31 -0
- package/dist/model/extensions/amprion/model/AMPRIONModel.js +65 -3
- package/dist/model/extensions/amprion/model/AMPRIONModel.js.map +1 -1
- package/dist/model/extensions/neplan-westnetz/core/WNConnectivityNode.js.map +1 -1
- package/dist/model/meas/Analog.d.ts +7 -0
- package/dist/model/meas/Analog.js +8 -0
- package/dist/model/meas/Analog.js.map +1 -0
- package/dist/model/meas/Measurement.d.ts +8 -0
- package/dist/model/meas/Measurement.js +8 -0
- package/dist/model/meas/Measurement.js.map +1 -0
- package/dist/model/model/Model.d.ts +11 -1
- package/dist/model/model/Model.js +23 -6
- package/dist/model/model/Model.js.map +1 -1
- package/dist/model/operationallimits/CurrentLimit.d.ts +2 -1
- package/dist/model/operationallimits/CurrentLimit.js +13 -0
- package/dist/model/operationallimits/CurrentLimit.js.map +1 -1
- package/dist/model/operationallimits/OperationalLimit.js +1 -1
- package/dist/model/operationallimits/OperationalLimit.js.map +1 -1
- package/dist/model/operations/ControlArea.d.ts +9 -0
- package/dist/model/operations/ControlArea.js +37 -0
- package/dist/model/operations/ControlArea.js.map +1 -0
- package/dist/model/operations/ControlAreaTypeKind.d.ts +5 -0
- package/dist/model/operations/ControlAreaTypeKind.js +10 -0
- package/dist/model/operations/ControlAreaTypeKind.js.map +1 -0
- package/dist/model/wires/ACLineSegment.js +1 -1
- package/dist/model/wires/Breaker.js +4 -2
- package/dist/model/wires/Breaker.js.map +1 -1
- package/dist/model/wires/EnergyConnection.d.ts +7 -0
- package/dist/model/wires/EnergyConnection.js +20 -0
- package/dist/model/wires/EnergyConnection.js.map +1 -0
- package/dist/model/wires/EnergyConsumer.d.ts +4 -4
- package/dist/model/wires/EnergyConsumer.js +5 -5
- package/dist/model/wires/EnergyConsumer.js.map +1 -1
- package/dist/model/wires/EnergySource.d.ts +5 -2
- package/dist/model/wires/EnergySource.js +26 -4
- package/dist/model/wires/EnergySource.js.map +1 -1
- package/dist/model/wires/Line.js +2 -6
- package/dist/model/wires/Line.js.map +1 -1
- package/dist/model/wires/PhaseTapChanger.js.map +1 -1
- package/dist/model/wires/PowerTransformer.js +1 -1
- package/dist/model/wires/PowerTransformer.js.map +1 -1
- package/dist/model/wires/RotatingMachine.d.ts +2 -0
- package/dist/model/wires/RotatingMachine.js +6 -0
- package/dist/model/wires/RotatingMachine.js.map +1 -1
- package/dist/model/wires/TapChanger.d.ts +2 -0
- package/dist/model/wires/TapChanger.js +36 -8
- package/dist/model/wires/TapChanger.js.map +1 -1
- package/dist/util/collection/util-excel.js +35 -19
- package/dist/util/collection/util-excel.js.map +1 -1
- package/dist/util/collection/util-graph.d.ts +8 -1
- package/dist/util/collection/util-graph.js +8 -2
- package/dist/util/collection/util-graph.js.map +1 -1
- package/dist/util/collection/util-graph2tree.js +69 -1
- package/dist/util/collection/util-graph2tree.js.map +1 -1
- package/dist/util/collection/util-tree.d.ts +0 -34
- package/dist/util/collection/util-tree.js +1 -179
- package/dist/util/collection/util-tree.js.map +1 -1
- package/dist/util/util-create.d.ts +3 -1
- package/dist/util/util-create.js +51 -8
- package/dist/util/util-create.js.map +1 -1
- package/dist/util/utils.d.ts +10 -0
- package/dist/util/utils.js +17 -1
- package/dist/util/utils.js.map +1 -1
- package/dist/util/xml/xml.serializer.d.ts +1 -0
- package/dist/util/xml/xml.serializer.js +9 -9
- package/dist/util/xml/xml.serializer.js.map +1 -1
- package/package.json +2 -1
- package/dist/converter/integral7/interface-i7/IUkzExportConfig.d.ts +0 -5
- package/dist/converter/integral7/interface-i7/IUkzExportConfig.js +0 -3
- package/dist/converter/integral7/interface-i7/IUkzExportConfig.js.map +0 -1
|
@@ -4,6 +4,7 @@ exports.ConverterI7 = void 0;
|
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const Model_1 = require("../../model/model/Model");
|
|
6
6
|
const export_frame_i7_1 = require("./interface-i7/export-frame-i7");
|
|
7
|
+
const data_structures_i7_1 = require("./interface-i7/data-structures-i7");
|
|
7
8
|
const mysql_controller_1 = require("../../util/database/mysql-controller");
|
|
8
9
|
const rdf_xml_1 = require("../../constants/rdf-xml");
|
|
9
10
|
const utils_1 = require("../../util/utils");
|
|
@@ -104,16 +105,23 @@ const DCLineSegment_1 = require("../../model/dc/DCLineSegment");
|
|
|
104
105
|
const DCConverterOperatingModeKind_1 = require("../../model/dc/DCConverterOperatingModeKind");
|
|
105
106
|
const DCTerminal_1 = require("../../model/dc/DCTerminal");
|
|
106
107
|
const AMPRIONSeriesCompensator_1 = require("../../model/extensions/amprion/wires/AMPRIONSeriesCompensator");
|
|
108
|
+
const jszip_1 = tslib_1.__importDefault(require("jszip"));
|
|
109
|
+
const path_1 = tslib_1.__importDefault(require("path"));
|
|
110
|
+
const fs_1 = tslib_1.__importDefault(require("fs"));
|
|
111
|
+
const AsynchronousMachine_1 = require("../../model/wires/AsynchronousMachine");
|
|
112
|
+
const EquivalentBranch_1 = require("../../model/equivalents/EquivalentBranch");
|
|
113
|
+
const AMPRIONLine_1 = require("../../model/extensions/amprion/core/AMPRIONLine");
|
|
114
|
+
const ControlArea_1 = require("../../model/operations/ControlArea");
|
|
107
115
|
class ConverterI7 {
|
|
108
116
|
constructor() {
|
|
109
117
|
this.exportFrames = new Map();
|
|
118
|
+
this.exportFramesBoundary = new Map();
|
|
110
119
|
this.cimModelDefault = new Model_1.Model();
|
|
111
120
|
this.availableTableNames = [];
|
|
112
121
|
this.integralID2Type = new Map();
|
|
113
122
|
this.coordinateSystem = 'EPSG:4326';
|
|
114
123
|
this.integralID2UUID = new Map();
|
|
115
124
|
this.UUID2Integral7ID = new Map();
|
|
116
|
-
this.integral7Modells = new Map();
|
|
117
125
|
this.kdrosseltypen = new Map();
|
|
118
126
|
this.leitungAnschlussKnotenIDs = new Set();
|
|
119
127
|
this.trafo2wAnschlussKnotenIDs = new Set();
|
|
@@ -122,18 +130,15 @@ class ConverterI7 {
|
|
|
122
130
|
this.lDrosselAnschlussKnotenIDs = new Set();
|
|
123
131
|
this.lKondensatorAnschlussKnotenIDs = new Set();
|
|
124
132
|
this.ersatzZweigAnschlussKnotenIDs = new Set();
|
|
133
|
+
this.blocktransformatoren = [];
|
|
125
134
|
}
|
|
126
|
-
convert(objectMappingConfig, defaultValuesConfig, energyTypesConfig,
|
|
135
|
+
convert(objectMappingConfig, defaultValuesConfig, energyTypesConfig, exportConfig, tempDirPath) {
|
|
127
136
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
128
137
|
return new Promise((resolve, reject) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
138
|
+
var _a, _b;
|
|
129
139
|
try {
|
|
130
140
|
yield this.createColumnIndex();
|
|
131
|
-
|
|
132
|
-
SELECT gr.id AS georegion_id, sgr.id AS subgeoregion_id, group_concat(DISTINCT standort.ukz) AS ukzCSV
|
|
133
|
-
FROM netz_subgeoregion sgr
|
|
134
|
-
LEFT OUTER JOIN netz_georegion gr ON sgr.georegion = gr.id
|
|
135
|
-
LEFT OUTER JOIN netz_standort standort ON sgr.id = standort.subgeoregion
|
|
136
|
-
GROUP BY georegion_id; `);
|
|
141
|
+
yield this.configExportFrames(exportConfig, defaultValuesConfig, tempDirPath);
|
|
137
142
|
yield this.convertBetriebsmitteltypenKdrossel();
|
|
138
143
|
yield this.convertBetriebsmitteltypenLeitung();
|
|
139
144
|
yield this.convertBetriebsmitteltypenTrafo();
|
|
@@ -143,257 +148,258 @@ class ConverterI7 {
|
|
|
143
148
|
yield this.queryLDroselAnschlussIDs();
|
|
144
149
|
yield this.queryErsatzLaengsAnschlussIDs();
|
|
145
150
|
yield this.queryLkondensatorAnschlussIDs();
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
for (const ukzRegionMap of ukz2GeoregionMapping) {
|
|
152
|
-
for (const bdUkz of ukzExportConfig.boundaryUkz) {
|
|
153
|
-
const geoRegionUUID = this.integralID2UUID.get(ukzRegionMap.georegion_id);
|
|
154
|
-
const geoRegion = allGeoRegions.find(elem => elem.mrid === geoRegionUUID);
|
|
155
|
-
if (!geoRegion)
|
|
156
|
-
continue;
|
|
157
|
-
if (ukzRegionMap.ukzArray.indexOf(bdUkz.name) > -1) {
|
|
158
|
-
if (!boundaryGeoRegionSet.has(geoRegion)) {
|
|
159
|
-
boundaryGeoRegionSet.add(geoRegion);
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
else {
|
|
163
|
-
internalGeoRegionSet.add(geoRegion);
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
const boundaryGeoRegions = Array.from(boundaryGeoRegionSet);
|
|
168
|
-
const profileGeoRegions = Array.from(internalGeoRegionSet);
|
|
169
|
-
this.logger.debug(`BoundaryGeoRegions ${boundaryGeoRegions.map(elem => elem.name).join()}`);
|
|
170
|
-
this.logger.debug(`ProfileGeoRegions ${profileGeoRegions.map(elem => elem.name).join()}`);
|
|
171
|
-
const bdExportFrame = new export_frame_i7_1.I7ExportFrame('Boundary', [rdf_xml_1.RDF_XML.PROFILE_EQ, rdf_xml_1.RDF_XML.PROFILE_SSH, rdf_xml_1.RDF_XML.PROFILE_GL, rdf_xml_1.RDF_XML.PROFILE_EQ_BD], tempDirPath, new Map());
|
|
172
|
-
for (const bdRegion of boundaryGeoRegions) {
|
|
173
|
-
bdExportFrame.cimModel.addGeographicalRegion(bdRegion);
|
|
174
|
-
for (const subGeoRegion of bdRegion.regions) {
|
|
175
|
-
bdExportFrame.cimModel.addSubGeographicalRegion(subGeoRegion);
|
|
176
|
-
}
|
|
177
|
-
this.addDefaultObjectsGeo(bdExportFrame.cimModel, defaultValuesConfig);
|
|
178
|
-
this.exportFrames.set(bdRegion.mrid, bdExportFrame);
|
|
179
|
-
}
|
|
180
|
-
const cgmesExportProfiles = [rdf_xml_1.RDF_XML.PROFILE_EQ, rdf_xml_1.RDF_XML.PROFILE_SSH, rdf_xml_1.RDF_XML.PROFILE_SV, rdf_xml_1.RDF_XML.PROFILE_DL, rdf_xml_1.RDF_XML.PROFILE_GL, rdf_xml_1.RDF_XML.PROFILE_AMPI7];
|
|
181
|
-
const dependentOnModels = new Map();
|
|
182
|
-
dependentOnModels.set(rdf_xml_1.RDF_XML.PROFILE_EQ_BD, [bdExportFrame.getModelUUID(rdf_xml_1.RDF_XML.PROFILE_EQ_BD)]);
|
|
183
|
-
for (const pRegion of profileGeoRegions) {
|
|
184
|
-
if (!ukzExportConfig.exportGeoRegion.find(elem => elem.name === pRegion.name))
|
|
151
|
+
for (const entry of this.exportFramesBoundary.entries()) {
|
|
152
|
+
const geoRegionUUID = entry[0];
|
|
153
|
+
const frame = entry[1];
|
|
154
|
+
const geoRegion = frame.cimModel.getGeographicalRegion(geoRegionUUID);
|
|
155
|
+
if (!geoRegion)
|
|
185
156
|
continue;
|
|
186
|
-
|
|
187
|
-
exportFrame.cimModel.addGeographicalRegion(pRegion);
|
|
188
|
-
for (const subGeoRegion of pRegion.regions) {
|
|
189
|
-
exportFrame.cimModel.addSubGeographicalRegion(subGeoRegion);
|
|
190
|
-
}
|
|
191
|
-
this.addDefaultObjectsLoadModel(exportFrame.cimModel, defaultValuesConfig);
|
|
192
|
-
this.addDefaultObjectsGeo(exportFrame.cimModel, defaultValuesConfig);
|
|
193
|
-
this.exportFrames.set(pRegion.mrid, exportFrame);
|
|
157
|
+
yield this.convertFrame(frame, geoRegion, objectMappingConfig, energyTypesConfig, defaultValuesConfig);
|
|
194
158
|
}
|
|
195
159
|
for (const entry of this.exportFrames.entries()) {
|
|
196
160
|
const geoRegionUUID = entry[0];
|
|
197
161
|
const frame = entry[1];
|
|
198
|
-
const
|
|
199
|
-
const geoRegion = cimModel.getGeographicalRegion(geoRegionUUID);
|
|
162
|
+
const geoRegion = frame.cimModel.getGeographicalRegion(geoRegionUUID);
|
|
200
163
|
if (!geoRegion)
|
|
201
164
|
continue;
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
stpSchieneJunctionUUIDs: new Map(),
|
|
223
|
-
stpSchieneTerminal: new Map(),
|
|
224
|
-
junctionUUIDstpImp: new Map(),
|
|
225
|
-
petersenCoils: new Map(),
|
|
226
|
-
junctions: new Map(),
|
|
227
|
-
groundingImpedances: new Map(),
|
|
228
|
-
connectivityNodes: new Map(),
|
|
229
|
-
},
|
|
230
|
-
};
|
|
231
|
-
this.integral7Modells.set(geoRegionUUID, integral7Modell);
|
|
232
|
-
const subGeoRegionsUUIDs = geoRegion.regions.map(elem => elem.mrid);
|
|
233
|
-
const subGeoRegionsI7IDs = [];
|
|
234
|
-
for (const uuid of subGeoRegionsUUIDs) {
|
|
235
|
-
subGeoRegionsI7IDs.push(...this.UUID2Integral7ID.get(uuid));
|
|
236
|
-
}
|
|
237
|
-
let startTime = perf_hooks_1.performance.now();
|
|
238
|
-
yield this.convertStandorte(cimModel, integral7Modell, subGeoRegionsI7IDs, defaultValuesConfig);
|
|
239
|
-
logExecutionTime(this.logger, startTime, `convertStandorte(${cimModel.substations.size + cimModel.lines.size})`);
|
|
240
|
-
startTime = perf_hooks_1.performance.now();
|
|
241
|
-
const standortIDs = [...integral7Modell.integralStandorte.keys()];
|
|
242
|
-
if (standortIDs.length)
|
|
243
|
-
yield this.covertSchaltanlagen(cimModel, integral7Modell, standortIDs, defaultValuesConfig);
|
|
244
|
-
logExecutionTime(this.logger, startTime, `covertSchaltanlagen(${standortIDs.length})`);
|
|
245
|
-
startTime = perf_hooks_1.performance.now();
|
|
246
|
-
const schaltanlagenIDs = [...integral7Modell.integralSchaltanlagen.keys()];
|
|
247
|
-
if (schaltanlagenIDs.length)
|
|
248
|
-
yield this.convertSchaltanlagenAbschnitte(cimModel, integral7Modell, schaltanlagenIDs);
|
|
249
|
-
logExecutionTime(this.logger, startTime, `convertSchaltanlagenAbschnitte(${schaltanlagenIDs.length})`);
|
|
250
|
-
startTime = perf_hooks_1.performance.now();
|
|
251
|
-
const schaltanlagenAbschnittIDs = [...integral7Modell.integralSchaltanlagenAbschnitte.keys()];
|
|
252
|
-
if (schaltanlagenAbschnittIDs.length > 0)
|
|
253
|
-
yield this.convertSchaltfelder(cimModel, integral7Modell, schaltanlagenAbschnittIDs);
|
|
254
|
-
logExecutionTime(this.logger, startTime, `convertSchaltfelder()`);
|
|
255
|
-
startTime = perf_hooks_1.performance.now();
|
|
256
|
-
if (schaltanlagenAbschnittIDs.length > 0) {
|
|
257
|
-
yield this.convertQuerkupplungen(cimModel, integral7Modell, schaltanlagenAbschnittIDs);
|
|
258
|
-
yield this.convertLaegskupplungen(cimModel, integral7Modell, schaltanlagenAbschnittIDs);
|
|
259
|
-
}
|
|
260
|
-
logExecutionTime(this.logger, startTime, `convertKupplungen()`);
|
|
261
|
-
startTime = perf_hooks_1.performance.now();
|
|
262
|
-
if (standortIDs.length)
|
|
263
|
-
yield this.convertKnotenSo(cimModel, integral7Modell, standortIDs, defaultValuesConfig);
|
|
264
|
-
logExecutionTime(this.logger, startTime, `convertKupplungen()`);
|
|
265
|
-
const knotenSoIDs = [...integral7Modell.integralKnotenSo.keys()];
|
|
266
|
-
startTime = perf_hooks_1.performance.now();
|
|
267
|
-
const schaltfeldIDs = [...integral7Modell.integralSchaltfelder.keys()];
|
|
268
|
-
if (knotenSoIDs.length)
|
|
269
|
-
yield this.convertKnotenSf(cimModel, integral7Modell, schaltfeldIDs);
|
|
270
|
-
logExecutionTime(this.logger, startTime, `convertKnotenSf()`);
|
|
271
|
-
startTime = perf_hooks_1.performance.now();
|
|
272
|
-
if (integral7Modell.querkupplungIDs.length > 0) {
|
|
273
|
-
yield this.convertKnotenKf(cimModel, integral7Modell.querkupplungIDs);
|
|
274
|
-
}
|
|
275
|
-
logExecutionTime(this.logger, startTime, `convertKnotenKf()`);
|
|
276
|
-
startTime = perf_hooks_1.performance.now();
|
|
277
|
-
if (integral7Modell.laengskupplungIDs.length > 0) {
|
|
278
|
-
yield this.convertKnotenLk(cimModel, integral7Modell.laengskupplungIDs);
|
|
279
|
-
}
|
|
280
|
-
logExecutionTime(this.logger, startTime, `convertKnotenLk()`);
|
|
281
|
-
startTime = perf_hooks_1.performance.now();
|
|
282
|
-
if (knotenSoIDs.length > 0)
|
|
283
|
-
yield this.convertSchlaufen(cimModel, integral7Modell, knotenSoIDs);
|
|
284
|
-
logExecutionTime(this.logger, startTime, `convertSchlaufen()`);
|
|
285
|
-
startTime = perf_hooks_1.performance.now();
|
|
286
|
-
if (schaltanlagenAbschnittIDs.length > 0)
|
|
287
|
-
yield this.convertSammelschienenAbschnitte(cimModel, integral7Modell, schaltanlagenAbschnittIDs);
|
|
288
|
-
logExecutionTime(this.logger, startTime, `convertSammelschienenAbschnitte(${cimModel.busbarSections.size})`);
|
|
289
|
-
startTime = perf_hooks_1.performance.now();
|
|
290
|
-
const eqiupmentContainerIDs = [...schaltfeldIDs, ...integral7Modell.querkupplungIDs, ...integral7Modell.laengskupplungIDs];
|
|
291
|
-
if (eqiupmentContainerIDs.length > 0) {
|
|
292
|
-
yield this.convertStarreVerbindungen(cimModel, eqiupmentContainerIDs);
|
|
293
|
-
}
|
|
294
|
-
logExecutionTime(this.logger, startTime, `convertStarreVerbindungen(${cimModel.junctions.size})`);
|
|
295
|
-
const soSfKonoten = [...knotenSoIDs, ...integral7Modell.knotenSfIDs];
|
|
296
|
-
startTime = perf_hooks_1.performance.now();
|
|
297
|
-
if (knotenSoIDs.length > 0 || integral7Modell.knotenSfIDs.length > 0) {
|
|
298
|
-
yield this.convertBelastungen(cimModel, soSfKonoten, defaultValuesConfig, objectMappingConfig.Belastung.class);
|
|
299
|
-
}
|
|
300
|
-
logExecutionTime(this.logger, startTime, `convertBelastungen()`);
|
|
301
|
-
startTime = perf_hooks_1.performance.now();
|
|
302
|
-
if (knotenSoIDs.length > 0 || integral7Modell.knotenSfIDs.length > 0) {
|
|
303
|
-
yield this.convertEinspeisungen(cimModel, soSfKonoten, objectMappingConfig.Einspeisung.class);
|
|
304
|
-
}
|
|
305
|
-
logExecutionTime(this.logger, startTime, `convertEinspeisungen()`);
|
|
306
|
-
if (knotenSoIDs.length > 0 || integral7Modell.knotenSfIDs.length > 0) {
|
|
307
|
-
yield this.convertGeneratoren(cimModel, soSfKonoten, energyTypesConfig);
|
|
308
|
-
}
|
|
309
|
-
if (knotenSoIDs.length > 0 || integral7Modell.knotenSfIDs.length > 0) {
|
|
310
|
-
yield this.convertKraftwerksbloecke(cimModel, soSfKonoten, energyTypesConfig);
|
|
311
|
-
}
|
|
312
|
-
if (knotenSoIDs.length > 0 || integral7Modell.knotenSfIDs.length > 0) {
|
|
313
|
-
yield this.convertErsatzQuerZweige(cimModel, soSfKonoten);
|
|
314
|
-
}
|
|
315
|
-
if (knotenSoIDs.length > 0 || integral7Modell.knotenSfIDs.length > 0) {
|
|
316
|
-
yield this.convertBoundaryInjections(cimModel, soSfKonoten);
|
|
317
|
-
}
|
|
318
|
-
if (knotenSoIDs.length > 0 || integral7Modell.knotenSfIDs.length > 0) {
|
|
319
|
-
yield this.convertKompensationsdrossel(cimModel, soSfKonoten);
|
|
320
|
-
}
|
|
321
|
-
if (knotenSoIDs.length > 0 || integral7Modell.knotenSfIDs.length > 0) {
|
|
322
|
-
yield this.convertKompensationskondensatoren(cimModel, soSfKonoten);
|
|
323
|
-
}
|
|
324
|
-
startTime = perf_hooks_1.performance.now();
|
|
325
|
-
if (eqiupmentContainerIDs.length > 0) {
|
|
326
|
-
yield this.convertTrenner3f(cimModel, eqiupmentContainerIDs);
|
|
327
|
-
}
|
|
328
|
-
logExecutionTime(this.logger, startTime, `convertTrenner3f()`);
|
|
329
|
-
startTime = perf_hooks_1.performance.now();
|
|
330
|
-
if (eqiupmentContainerIDs.length > 0) {
|
|
331
|
-
yield this.convertTrennerFi3f(cimModel, eqiupmentContainerIDs);
|
|
332
|
-
}
|
|
333
|
-
logExecutionTime(this.logger, startTime, `convertTrennerFi3f(`);
|
|
334
|
-
startTime = perf_hooks_1.performance.now();
|
|
335
|
-
if (eqiupmentContainerIDs.length > 0) {
|
|
336
|
-
yield this.convertLeistungsschalter(cimModel, eqiupmentContainerIDs);
|
|
337
|
-
}
|
|
338
|
-
logExecutionTime(this.logger, startTime, `convertLeistungsschalter(${cimModel.breakers.size})`);
|
|
339
|
-
if (standortIDs.length > 0) {
|
|
340
|
-
startTime = perf_hooks_1.performance.now();
|
|
341
|
-
const stpSchieneID = yield this.convertSternpunktSchienen(cimModel, integral7Modell, standortIDs);
|
|
342
|
-
yield this.convertKdrossel(cimModel, integral7Modell, stpSchieneID);
|
|
343
|
-
yield this.convertStpSchaltelemente(integral7Modell, stpSchieneID);
|
|
344
|
-
logExecutionTime(this.logger, startTime, `convertSternpunktImp-Modell()`);
|
|
345
|
-
}
|
|
346
|
-
if (standortIDs.length > 0) {
|
|
347
|
-
startTime = perf_hooks_1.performance.now();
|
|
348
|
-
yield this.convertTrafo2W(cimModel, integral7Modell, defaultValuesConfig, standortIDs);
|
|
349
|
-
logExecutionTime(this.logger, startTime, `convertTrafo2W-Modell`);
|
|
350
|
-
}
|
|
351
|
-
if (standortIDs.length > 0) {
|
|
352
|
-
startTime = perf_hooks_1.performance.now();
|
|
353
|
-
yield this.convertTrafo3W(cimModel, integral7Modell, defaultValuesConfig, standortIDs);
|
|
354
|
-
logExecutionTime(this.logger, startTime, `convertTrafo3W-Modell`);
|
|
355
|
-
}
|
|
356
|
-
if (knotenSoIDs.length > 0 || integral7Modell.knotenSfIDs.length > 0) {
|
|
357
|
-
yield this.convertStatcom(cimModel, soSfKonoten);
|
|
358
|
-
}
|
|
359
|
-
if (knotenSoIDs.length > 0 || integral7Modell.knotenSfIDs.length > 0) {
|
|
360
|
-
yield this.convertSVC(cimModel, soSfKonoten);
|
|
361
|
-
}
|
|
362
|
-
if (knotenSoIDs.length > 0 || integral7Modell.knotenSfIDs.length > 0) {
|
|
363
|
-
yield this.convertCsConverterDC(cimModel, soSfKonoten);
|
|
364
|
-
}
|
|
365
|
-
if (knotenSoIDs.length > 0 || integral7Modell.knotenSfIDs.length > 0) {
|
|
366
|
-
yield this.convertVsConverterDC(cimModel, soSfKonoten);
|
|
367
|
-
}
|
|
368
|
-
if (bdExportFrame !== frame) {
|
|
369
|
-
startTime = perf_hooks_1.performance.now();
|
|
370
|
-
yield this.convertLeitungen(cimModel, integral7Modell, defaultValuesConfig);
|
|
371
|
-
logExecutionTime(this.logger, startTime, `convertLeitungen`);
|
|
372
|
-
}
|
|
373
|
-
yield this.convertDCLines(cimModel, integral7Modell, defaultValuesConfig);
|
|
374
|
-
yield this.convertLaengskondensatoren(cimModel, integral7Modell, defaultValuesConfig);
|
|
375
|
-
if (boundaryGeoRegions.indexOf(geoRegion) > -1) {
|
|
376
|
-
yield this.transformBoundaryModel(frame.cimModel, defaultValuesConfig);
|
|
377
|
-
}
|
|
378
|
-
startTime = perf_hooks_1.performance.now();
|
|
165
|
+
frame.addDependentModel(rdf_xml_1.RDF_XML.PROFILE_EQ_BD, (_a = this.exportFramesBoundary.entries().next()) === null || _a === void 0 ? void 0 : _a.value[1].getModelUUID(rdf_xml_1.RDF_XML.PROFILE_EQ_BD));
|
|
166
|
+
yield this.convertFrame(frame, geoRegion, objectMappingConfig, energyTypesConfig, defaultValuesConfig);
|
|
167
|
+
frame.validateCIMModel();
|
|
168
|
+
const startTime = perf_hooks_1.performance.now();
|
|
169
|
+
frame.openXMLModel();
|
|
170
|
+
frame.serializeModel(defaultValuesConfig);
|
|
171
|
+
yield frame.closeXMLModel();
|
|
172
|
+
let endTime = perf_hooks_1.performance.now();
|
|
173
|
+
frame.cimModel.purgeData();
|
|
174
|
+
console.log(`\nSerializeModel ${geoRegion.name} ${(endTime - startTime) / 1000} seconds\n`);
|
|
175
|
+
}
|
|
176
|
+
for (const entry of this.exportFramesBoundary.entries()) {
|
|
177
|
+
const geoRegionUUID = entry[0];
|
|
178
|
+
const frame = entry[1];
|
|
179
|
+
const geoRegion = frame.cimModel.getGeographicalRegion(geoRegionUUID);
|
|
180
|
+
if (!geoRegion)
|
|
181
|
+
continue;
|
|
182
|
+
yield this.transformBoundaryModel(frame, (_b = this.exportFrames.entries().next()) === null || _b === void 0 ? void 0 : _b.value[1]);
|
|
183
|
+
frame.validateCIMModel();
|
|
184
|
+
const startTime = perf_hooks_1.performance.now();
|
|
379
185
|
frame.openXMLModel();
|
|
380
186
|
frame.serializeModel(defaultValuesConfig);
|
|
381
187
|
yield frame.closeXMLModel();
|
|
382
188
|
let endTime = perf_hooks_1.performance.now();
|
|
383
|
-
console.log(`\
|
|
189
|
+
console.log(`\nSerializeModel ${geoRegion.name} ${(endTime - startTime) / 1000} seconds\n`);
|
|
384
190
|
}
|
|
191
|
+
const zip = new jszip_1.default();
|
|
192
|
+
const gridFrames = [...this.exportFrames.values(), ...this.exportFramesBoundary.values()]
|
|
193
|
+
.filter((value, index, self) => self.indexOf(value) === index);
|
|
194
|
+
for (const frame of gridFrames) {
|
|
195
|
+
for (const xmlSerializer of frame.profileXmlSerializers.values()) {
|
|
196
|
+
const readStreamEq = fs_1.default.createReadStream(xmlSerializer.filePath);
|
|
197
|
+
zip.file(`${xmlSerializer.fileName}`, readStreamEq);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
resolve(yield utils_2.generateNodeStream(zip));
|
|
385
201
|
}
|
|
386
202
|
catch (e) {
|
|
387
203
|
this.logger.error(e);
|
|
388
204
|
console.error("ERROR:" + e);
|
|
205
|
+
reject({ status: 'error', message: e.toString() });
|
|
389
206
|
}
|
|
390
207
|
finally {
|
|
391
208
|
yield this.dropColumnIndex();
|
|
392
|
-
resolve();
|
|
393
209
|
}
|
|
394
210
|
}));
|
|
395
211
|
});
|
|
396
212
|
}
|
|
213
|
+
convertFrame(frame, geoRegion, objectMappingConfig, energyTypesConfig, defaultValuesConfig) {
|
|
214
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
215
|
+
const integral7Modell = frame.getI7Model();
|
|
216
|
+
const cimModel = frame.cimModel;
|
|
217
|
+
const subGeoRegionsUUIDs = geoRegion.regions.map(elem => elem.mrid);
|
|
218
|
+
const subGeoRegionsI7IDs = [];
|
|
219
|
+
for (const uuid of subGeoRegionsUUIDs) {
|
|
220
|
+
subGeoRegionsI7IDs.push(...this.UUID2Integral7ID.get(uuid));
|
|
221
|
+
}
|
|
222
|
+
let startTime = perf_hooks_1.performance.now();
|
|
223
|
+
logExecutionTime(this.logger, startTime, `convertRegelzone(${cimModel.controlArea.size})`);
|
|
224
|
+
startTime = perf_hooks_1.performance.now();
|
|
225
|
+
yield this.convertStandorte(cimModel, integral7Modell, subGeoRegionsI7IDs, defaultValuesConfig);
|
|
226
|
+
logExecutionTime(this.logger, startTime, `convertStandorte(${cimModel.substations.size + cimModel.lines.size})`);
|
|
227
|
+
startTime = perf_hooks_1.performance.now();
|
|
228
|
+
const standortIDs = [...integral7Modell.integralStandorte.keys()];
|
|
229
|
+
if (standortIDs.length)
|
|
230
|
+
yield this.covertSchaltanlagen(cimModel, integral7Modell, standortIDs, defaultValuesConfig);
|
|
231
|
+
logExecutionTime(this.logger, startTime, `covertSchaltanlagen(${standortIDs.length})`);
|
|
232
|
+
startTime = perf_hooks_1.performance.now();
|
|
233
|
+
const schaltanlagenIDs = [...integral7Modell.integralSchaltanlagen.keys()];
|
|
234
|
+
if (schaltanlagenIDs.length)
|
|
235
|
+
yield this.convertSchaltanlagenAbschnitte(cimModel, integral7Modell, schaltanlagenIDs);
|
|
236
|
+
logExecutionTime(this.logger, startTime, `convertSchaltanlagenAbschnitte(${schaltanlagenIDs.length})`);
|
|
237
|
+
startTime = perf_hooks_1.performance.now();
|
|
238
|
+
const schaltanlagenAbschnittIDs = [...integral7Modell.integralSchaltanlagenAbschnitte.keys()];
|
|
239
|
+
if (schaltanlagenAbschnittIDs.length > 0)
|
|
240
|
+
yield this.convertSchaltfelder(cimModel, integral7Modell, schaltanlagenAbschnittIDs);
|
|
241
|
+
logExecutionTime(this.logger, startTime, `convertSchaltfelder()`);
|
|
242
|
+
if (schaltanlagenAbschnittIDs.length > 0) {
|
|
243
|
+
startTime = perf_hooks_1.performance.now();
|
|
244
|
+
yield this.convertQuerkupplungen(cimModel, integral7Modell, schaltanlagenAbschnittIDs);
|
|
245
|
+
logExecutionTime(this.logger, startTime, `convertQuerkupplungen()`);
|
|
246
|
+
}
|
|
247
|
+
if (schaltanlagenIDs.length > 0) {
|
|
248
|
+
startTime = perf_hooks_1.performance.now();
|
|
249
|
+
yield this.convertLaengskupplungen(cimModel, integral7Modell, schaltanlagenIDs);
|
|
250
|
+
logExecutionTime(this.logger, startTime, `convertLaengskupplungen()`);
|
|
251
|
+
}
|
|
252
|
+
startTime = perf_hooks_1.performance.now();
|
|
253
|
+
if (standortIDs.length)
|
|
254
|
+
yield this.convertKnotenSo(frame, integral7Modell, standortIDs, defaultValuesConfig);
|
|
255
|
+
logExecutionTime(this.logger, startTime, `convertKnotenSO()`);
|
|
256
|
+
const knotenSoIDs = [...integral7Modell.integralKnotenSo.keys()];
|
|
257
|
+
startTime = perf_hooks_1.performance.now();
|
|
258
|
+
const schaltfeldIDs = [...integral7Modell.integralSchaltfelder.keys()];
|
|
259
|
+
if (schaltfeldIDs.length)
|
|
260
|
+
yield this.convertKnotenSf(cimModel, integral7Modell, schaltfeldIDs);
|
|
261
|
+
logExecutionTime(this.logger, startTime, `convertKnotenSf()`);
|
|
262
|
+
if (integral7Modell.querkupplungIDs.length > 0) {
|
|
263
|
+
startTime = perf_hooks_1.performance.now();
|
|
264
|
+
yield this.convertKnotenKf(cimModel, integral7Modell.querkupplungIDs);
|
|
265
|
+
logExecutionTime(this.logger, startTime, `convertKnotenKf`);
|
|
266
|
+
}
|
|
267
|
+
if (integral7Modell.laengskupplungIDs.length > 0) {
|
|
268
|
+
startTime = perf_hooks_1.performance.now();
|
|
269
|
+
yield this.convertKnotenLk(cimModel, integral7Modell.laengskupplungIDs);
|
|
270
|
+
logExecutionTime(this.logger, startTime, `convertKnotenLk`);
|
|
271
|
+
}
|
|
272
|
+
startTime = perf_hooks_1.performance.now();
|
|
273
|
+
if (knotenSoIDs.length > 0)
|
|
274
|
+
yield this.convertSchlaufen(cimModel, integral7Modell, knotenSoIDs);
|
|
275
|
+
logExecutionTime(this.logger, startTime, `convertSchlaufen()`);
|
|
276
|
+
startTime = perf_hooks_1.performance.now();
|
|
277
|
+
if (schaltanlagenAbschnittIDs.length > 0)
|
|
278
|
+
yield this.convertSammelschienenAbschnitte(cimModel, integral7Modell, schaltanlagenAbschnittIDs);
|
|
279
|
+
logExecutionTime(this.logger, startTime, `convertSammelschienenAbschnitte(${cimModel.busbarSections.size})`);
|
|
280
|
+
const eqiupmentContainerIDs = [...schaltfeldIDs, ...integral7Modell.querkupplungIDs, ...integral7Modell.laengskupplungIDs];
|
|
281
|
+
if (eqiupmentContainerIDs.length > 0) {
|
|
282
|
+
startTime = perf_hooks_1.performance.now();
|
|
283
|
+
yield this.convertStarreVerbindungen(cimModel, eqiupmentContainerIDs);
|
|
284
|
+
logExecutionTime(this.logger, startTime, `convertStarreVerbindungen(${cimModel.junctions.size})`);
|
|
285
|
+
}
|
|
286
|
+
const soSfKnoten = [...knotenSoIDs, ...integral7Modell.knotenSfIDs];
|
|
287
|
+
if (knotenSoIDs.length > 0 || integral7Modell.knotenSfIDs.length > 0) {
|
|
288
|
+
startTime = perf_hooks_1.performance.now();
|
|
289
|
+
yield this.convertBelastungen(cimModel, soSfKnoten, defaultValuesConfig, objectMappingConfig.Belastung.class);
|
|
290
|
+
logExecutionTime(this.logger, startTime, `convertBelastungen()`);
|
|
291
|
+
}
|
|
292
|
+
if (knotenSoIDs.length > 0 || integral7Modell.knotenSfIDs.length > 0) {
|
|
293
|
+
startTime = perf_hooks_1.performance.now();
|
|
294
|
+
yield this.convertAsynchronmotor(cimModel, soSfKnoten, defaultValuesConfig);
|
|
295
|
+
logExecutionTime(this.logger, startTime, `convertAsynchronmotor`);
|
|
296
|
+
}
|
|
297
|
+
if (knotenSoIDs.length > 0 || integral7Modell.knotenSfIDs.length > 0) {
|
|
298
|
+
startTime = perf_hooks_1.performance.now();
|
|
299
|
+
yield this.convertEinspeisungen(cimModel, soSfKnoten, objectMappingConfig.Einspeisung.class);
|
|
300
|
+
logExecutionTime(this.logger, startTime, `convertEinspeisungen`);
|
|
301
|
+
}
|
|
302
|
+
if (knotenSoIDs.length > 0 || integral7Modell.knotenSfIDs.length > 0) {
|
|
303
|
+
startTime = perf_hooks_1.performance.now();
|
|
304
|
+
yield this.convertGeneratoren(cimModel, soSfKnoten, energyTypesConfig);
|
|
305
|
+
logExecutionTime(this.logger, startTime, `convertGeneratoren`);
|
|
306
|
+
}
|
|
307
|
+
if (knotenSoIDs.length > 0 || integral7Modell.knotenSfIDs.length > 0) {
|
|
308
|
+
startTime = perf_hooks_1.performance.now();
|
|
309
|
+
yield this.convertKraftwerksbloecke(cimModel, soSfKnoten, energyTypesConfig);
|
|
310
|
+
logExecutionTime(this.logger, startTime, `convertKraftwerksbloecke`);
|
|
311
|
+
}
|
|
312
|
+
if (knotenSoIDs.length > 0 || integral7Modell.knotenSfIDs.length > 0) {
|
|
313
|
+
startTime = perf_hooks_1.performance.now();
|
|
314
|
+
yield this.convertErsatzQuerZweige(cimModel, soSfKnoten);
|
|
315
|
+
logExecutionTime(this.logger, startTime, `convertErsatzQuerZweige`);
|
|
316
|
+
}
|
|
317
|
+
if (knotenSoIDs.length > 0 || integral7Modell.knotenSfIDs.length > 0) {
|
|
318
|
+
startTime = perf_hooks_1.performance.now();
|
|
319
|
+
yield this.convertBoundaryInjections(cimModel, soSfKnoten, objectMappingConfig.Randnetzeinspeisung.class);
|
|
320
|
+
logExecutionTime(this.logger, startTime, `convertBoundaryInjections`);
|
|
321
|
+
}
|
|
322
|
+
if (knotenSoIDs.length > 0 || integral7Modell.knotenSfIDs.length > 0) {
|
|
323
|
+
startTime = perf_hooks_1.performance.now();
|
|
324
|
+
yield this.convertKompensationsdrossel(cimModel, soSfKnoten);
|
|
325
|
+
logExecutionTime(this.logger, startTime, `convertKompensationsdrossel`);
|
|
326
|
+
}
|
|
327
|
+
if (knotenSoIDs.length > 0 || integral7Modell.knotenSfIDs.length > 0) {
|
|
328
|
+
startTime = perf_hooks_1.performance.now();
|
|
329
|
+
yield this.convertKompensationskondensatoren(cimModel, soSfKnoten);
|
|
330
|
+
logExecutionTime(this.logger, startTime, `convertKompensationskondensatoren`);
|
|
331
|
+
}
|
|
332
|
+
if (eqiupmentContainerIDs.length > 0) {
|
|
333
|
+
startTime = perf_hooks_1.performance.now();
|
|
334
|
+
yield this.convertTrenner3f(cimModel, eqiupmentContainerIDs);
|
|
335
|
+
logExecutionTime(this.logger, startTime, `convertTrenner3f()`);
|
|
336
|
+
}
|
|
337
|
+
if (eqiupmentContainerIDs.length > 0) {
|
|
338
|
+
startTime = perf_hooks_1.performance.now();
|
|
339
|
+
yield this.convertTrennerFi3f(cimModel, eqiupmentContainerIDs);
|
|
340
|
+
logExecutionTime(this.logger, startTime, `convertTrennerFi3f`);
|
|
341
|
+
}
|
|
342
|
+
if (eqiupmentContainerIDs.length > 0) {
|
|
343
|
+
startTime = perf_hooks_1.performance.now();
|
|
344
|
+
yield this.convertLeistungsschalter(cimModel, eqiupmentContainerIDs);
|
|
345
|
+
logExecutionTime(this.logger, startTime, `convertLeistungsschalter(${cimModel.breakers.size})`);
|
|
346
|
+
}
|
|
347
|
+
if (standortIDs.length > 0) {
|
|
348
|
+
startTime = perf_hooks_1.performance.now();
|
|
349
|
+
const stpSchieneID = yield this.convertSternpunktSchienen(cimModel, integral7Modell, standortIDs);
|
|
350
|
+
yield this.convertKdrossel(cimModel, integral7Modell, stpSchieneID);
|
|
351
|
+
yield this.convertStpSchaltelemente(integral7Modell, stpSchieneID);
|
|
352
|
+
logExecutionTime(this.logger, startTime, `convertSternpunkte`);
|
|
353
|
+
}
|
|
354
|
+
if (standortIDs.length > 0) {
|
|
355
|
+
startTime = perf_hooks_1.performance.now();
|
|
356
|
+
yield this.convertTrafo2W(frame, integral7Modell, defaultValuesConfig, standortIDs);
|
|
357
|
+
logExecutionTime(this.logger, startTime, `convertTrafo2W`);
|
|
358
|
+
}
|
|
359
|
+
if (standortIDs.length > 0) {
|
|
360
|
+
startTime = perf_hooks_1.performance.now();
|
|
361
|
+
yield this.convertTrafo3W(frame, integral7Modell, defaultValuesConfig, standortIDs);
|
|
362
|
+
logExecutionTime(this.logger, startTime, `convertTrafo3W`);
|
|
363
|
+
}
|
|
364
|
+
if (knotenSoIDs.length > 0 || integral7Modell.knotenSfIDs.length > 0) {
|
|
365
|
+
startTime = perf_hooks_1.performance.now();
|
|
366
|
+
yield this.convertStatcom(cimModel, soSfKnoten);
|
|
367
|
+
logExecutionTime(this.logger, startTime, `convertStatcom`);
|
|
368
|
+
}
|
|
369
|
+
if (knotenSoIDs.length > 0 || integral7Modell.knotenSfIDs.length > 0) {
|
|
370
|
+
startTime = perf_hooks_1.performance.now();
|
|
371
|
+
yield this.convertSVC(cimModel, soSfKnoten);
|
|
372
|
+
logExecutionTime(this.logger, startTime, `convertSVC`);
|
|
373
|
+
}
|
|
374
|
+
if (knotenSoIDs.length > 0 || integral7Modell.knotenSfIDs.length > 0) {
|
|
375
|
+
startTime = perf_hooks_1.performance.now();
|
|
376
|
+
yield this.convertCsConverterDC(cimModel, integral7Modell, soSfKnoten);
|
|
377
|
+
logExecutionTime(this.logger, startTime, `convertCsConverterDC`);
|
|
378
|
+
}
|
|
379
|
+
if (knotenSoIDs.length > 0 || integral7Modell.knotenSfIDs.length > 0) {
|
|
380
|
+
startTime = perf_hooks_1.performance.now();
|
|
381
|
+
yield this.convertVsConverterDC(cimModel, integral7Modell, soSfKnoten);
|
|
382
|
+
logExecutionTime(this.logger, startTime, `convertVsConverterDC`);
|
|
383
|
+
}
|
|
384
|
+
if (!frame.boundary) {
|
|
385
|
+
startTime = perf_hooks_1.performance.now();
|
|
386
|
+
yield this.convertLeitungen(frame, integral7Modell, defaultValuesConfig);
|
|
387
|
+
logExecutionTime(this.logger, startTime, `convertLeitungen`);
|
|
388
|
+
startTime = perf_hooks_1.performance.now();
|
|
389
|
+
yield this.convertErsatzLaengszweige(cimModel, integral7Modell, defaultValuesConfig);
|
|
390
|
+
logExecutionTime(this.logger, startTime, `convertErsatzlaengszweige`);
|
|
391
|
+
}
|
|
392
|
+
startTime = perf_hooks_1.performance.now();
|
|
393
|
+
yield this.convertDCLines(cimModel, integral7Modell, defaultValuesConfig);
|
|
394
|
+
logExecutionTime(this.logger, startTime, `convertDCLines`);
|
|
395
|
+
startTime = perf_hooks_1.performance.now();
|
|
396
|
+
yield this.convertLaengsdrosseln(cimModel, integral7Modell, defaultValuesConfig);
|
|
397
|
+
logExecutionTime(this.logger, startTime, `convertLaengsdrosseln`);
|
|
398
|
+
startTime = perf_hooks_1.performance.now();
|
|
399
|
+
yield this.convertLaengskondensatoren(cimModel, integral7Modell, defaultValuesConfig);
|
|
400
|
+
logExecutionTime(this.logger, startTime, `convertLaengskondensatoren`);
|
|
401
|
+
});
|
|
402
|
+
}
|
|
397
403
|
convertGeoRegionen() {
|
|
398
404
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
399
405
|
return new Promise((resolve) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
@@ -402,7 +408,8 @@ class ConverterI7 {
|
|
|
402
408
|
this.mysqlController.execQuery(integral_sql_1.getNetzQuery(integral_sql_1.I7Objects.REGION, 0, 0, []))
|
|
403
409
|
.then((result) => {
|
|
404
410
|
for (const i7Data of result) {
|
|
405
|
-
const
|
|
411
|
+
const i7Schluesel = integral_prefix_1.GEOREGION_PRAEFIX + utils_2.ueberpruefeZeichenkette(i7Data.bezeichner);
|
|
412
|
+
const region = new GeographicalRegion_1.GeographicalRegion(utils_1.getUUID(i7Data.guid), utils_2.ueberpruefeZeichenkette(i7Data.bezeichner), utils_2.ueberpruefeZeichenkette(i7Data.kurzname), i7Schluesel);
|
|
406
413
|
this.addIdMapping(i7Data.id, region.mrid, integral_sql_1.Integral7TableNames.REGION);
|
|
407
414
|
regions.push(region);
|
|
408
415
|
}
|
|
@@ -421,6 +428,22 @@ class ConverterI7 {
|
|
|
421
428
|
}));
|
|
422
429
|
});
|
|
423
430
|
}
|
|
431
|
+
convertRegelzone(cimModel, defaultValuesConfig) {
|
|
432
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
433
|
+
if (this.isTableAvailable(integral_sql_1.Integral7TableNames.REGELZONE)) {
|
|
434
|
+
const result = yield this.mysqlController.execQuery(integral_sql_1.getNetzQuery(integral_sql_1.I7Objects.REGELZONE, 0, 0, []));
|
|
435
|
+
for (const i7Data of result) {
|
|
436
|
+
const i7Schluesel = integral_prefix_1.REGELZONE_PRAEFIX + utils_2.ueberpruefeZeichenkette(i7Data.bezeichner);
|
|
437
|
+
const ctrlarea = new ControlArea_1.ControlArea(utils_1.getUUID(i7Data.guid), 'RZ_' + utils_2.ueberpruefeZeichenkette(i7Data.bezeichner), utils_2.ueberpruefeZeichenkette(i7Data.kurzname), i7Schluesel);
|
|
438
|
+
cimModel.addControlArea(ctrlarea);
|
|
439
|
+
this.addIdMapping(i7Data.id, ctrlarea.mrid, integral_sql_1.Integral7TableNames.REGELZONE);
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
else {
|
|
443
|
+
this.logger.debug(`Tabelle ${integral_sql_1.Integral7TableNames.REGELZONE} ist nicht vorhanden.`);
|
|
444
|
+
}
|
|
445
|
+
});
|
|
446
|
+
}
|
|
424
447
|
convertSubGeoRegionen(regions, defaultValuesConfig) {
|
|
425
448
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
426
449
|
return new Promise((resolve) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
@@ -429,7 +452,8 @@ class ConverterI7 {
|
|
|
429
452
|
this.mysqlController.execQuery(integral_sql_1.getNetzQuery(integral_sql_1.I7Objects.SUBREGION, 0, 0, []))
|
|
430
453
|
.then((result) => {
|
|
431
454
|
for (const i7Data of result) {
|
|
432
|
-
const
|
|
455
|
+
const i7Schluesel = integral_prefix_1.SUBGEOREGION_PRAEFIX + utils_2.ueberpruefeZeichenkette(i7Data.bezeichner);
|
|
456
|
+
const subregion = new SubGeographicalRegion_1.SubGeographicalRegion(utils_1.getUUID(i7Data.guid), utils_2.ueberpruefeZeichenkette(i7Data.bezeichner), utils_2.ueberpruefeZeichenkette(i7Data.kurzname), i7Schluesel);
|
|
433
457
|
const regionUUID = this.integralID2UUID.get(i7Data.georegion);
|
|
434
458
|
let region = regions.find(elem => elem.mrid === regionUUID);
|
|
435
459
|
if (!region) {
|
|
@@ -465,7 +489,8 @@ class ConverterI7 {
|
|
|
465
489
|
utils_2.ueberpruefeZeichenkette(i7Data.ukz) +
|
|
466
490
|
integral_prefix_1.MITTIGER_PUNKT +
|
|
467
491
|
utils_2.ueberpruefeZeichenkette(i7Data.bezeichner);
|
|
468
|
-
const
|
|
492
|
+
const i7name = util_create_1.createNotation([utils_2.getName(i7Data), utils_2.ueberpruefeZeichenkette(i7Data.ukz)], 32);
|
|
493
|
+
const substation = new AMPRIONSubstation_1.AMPRIONSubstation(utils_1.getUUID(i7Data.guid), i7name, i7Data.id + '', i7Schluessel, i7Data.stationsnummer, i7Data.ukz);
|
|
469
494
|
let subregion = cimModel.getSubGeographicalRegion(this.integralID2UUID.get(i7Data.subgeoregion));
|
|
470
495
|
if (!subregion) {
|
|
471
496
|
const region = utils_1.createIfNotExitsGeoregionByName(cimModel, defaultValuesConfig.GeographicalRegion.name);
|
|
@@ -518,7 +543,7 @@ class ConverterI7 {
|
|
|
518
543
|
utils_2.ueberpruefeZeichenkette(i7Data.bezeichner);
|
|
519
544
|
const vl = new VoltageLevel_1.VoltageLevel(utils_1.getUUID(i7Data.guid), utils_2.getName(i7Data), i7Data.kurzname, i7Schluessel);
|
|
520
545
|
const un = utils_2.getU(i7Data.un, defaultValuesConfig.DefaultVoltage);
|
|
521
|
-
const baseVoltage = util_create_1.createBaseVoltageIfNotExists(cimModel, un);
|
|
546
|
+
const baseVoltage = util_create_1.createBaseVoltageIfNotExists(cimModel, un, this.exportFramesBoundary);
|
|
522
547
|
vl.baseVoltage = baseVoltage;
|
|
523
548
|
cimModel.addVoltageLevel(vl);
|
|
524
549
|
this.addIdMapping(i7Data.id, vl.mrid, integral_sql_1.Integral7TableNames.SCHALTANLAGE);
|
|
@@ -569,7 +594,7 @@ class ConverterI7 {
|
|
|
569
594
|
integral_prefix_1.SCHALTFELD_PRAEFIX +
|
|
570
595
|
utils_2.ueberpruefeZeichenkette(i7Data.bezeichner);
|
|
571
596
|
const bay = new AMPRIONBay_1.AMPRIONBay(utils_1.getUUID(i7Data.guid), utils_2.getName(i7Data), i7Data.kurzname, i7Schluessel);
|
|
572
|
-
bay.number = i7Data.feldnummer;
|
|
597
|
+
bay.number = i7Data.feldnummer + '';
|
|
573
598
|
bay.locationID = i7Data.ips_folder_id;
|
|
574
599
|
bay.voltageLevel = voltageLevel;
|
|
575
600
|
voltageLevel.addBay(bay);
|
|
@@ -588,19 +613,23 @@ class ConverterI7 {
|
|
|
588
613
|
}
|
|
589
614
|
});
|
|
590
615
|
}
|
|
591
|
-
convertKnotenSo(
|
|
616
|
+
convertKnotenSo(frame, integral7, standortIDs, defaultValuesConfig) {
|
|
592
617
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
618
|
+
const cimModel = frame.cimModel;
|
|
593
619
|
if (this.isTableAvailable(integral_sql_1.Integral7TableNames.KNOTEN_SO)) {
|
|
594
620
|
const result = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.KNOTEN_SO, standortIDs));
|
|
595
621
|
for (const i7Data of result) {
|
|
596
622
|
const substation = cimModel.getSubstation(this.integralID2UUID.get(i7Data.standort));
|
|
597
|
-
const vl = new VoltageLevel_1.VoltageLevel(utils_1.
|
|
598
|
-
const connectivityNode = new AMPRIONConnectivityNode_1.AMPRIONConnectivityNode(utils_1.
|
|
599
|
-
connectivityNode.
|
|
600
|
-
connectivityNode.nodeNumber = i7Data.id_psse_cape;
|
|
623
|
+
const vl = new VoltageLevel_1.VoltageLevel(utils_1.generateUUID(), substation.name + "/" + utils_2.getName(i7Data), i7Data.kurzname);
|
|
624
|
+
const connectivityNode = new AMPRIONConnectivityNode_1.AMPRIONConnectivityNode(utils_1.getUUID(i7Data.guid), 'Abzweig', String(i7Data.id));
|
|
625
|
+
connectivityNode.setConnectivityNodeContainer(vl);
|
|
601
626
|
vl.addConnectivityNode(connectivityNode);
|
|
627
|
+
connectivityNode.nodeNumber = i7Data.id_psse_cape;
|
|
628
|
+
if (frame.boundary) {
|
|
629
|
+
connectivityNode.boundaryPoint = true;
|
|
630
|
+
}
|
|
602
631
|
const un = utils_2.getU(i7Data.un, defaultValuesConfig.DefaultVoltage);
|
|
603
|
-
const baseVoltage = util_create_1.createBaseVoltageIfNotExists(cimModel, un);
|
|
632
|
+
const baseVoltage = util_create_1.createBaseVoltageIfNotExists(cimModel, un, this.exportFramesBoundary);
|
|
604
633
|
integral7.targetVoltages.set(i7Data.id, { usoll: i7Data.usoll, umin: i7Data.umin, umax: i7Data.umax });
|
|
605
634
|
vl.baseVoltage = baseVoltage;
|
|
606
635
|
if (substation) {
|
|
@@ -624,6 +653,7 @@ class ConverterI7 {
|
|
|
624
653
|
object.standort = integral7.integralStandorte.get(object.standortid);
|
|
625
654
|
cimModel.addVoltageLevel(vl);
|
|
626
655
|
cimModel.addConnectivityNode(connectivityNode);
|
|
656
|
+
this.checkAnschlussIDs(i7Data.id, integral7);
|
|
627
657
|
this.addIdMapping(i7Data.id, connectivityNode.mrid, integral_sql_1.Integral7TableNames.KNOTEN_SO);
|
|
628
658
|
}
|
|
629
659
|
}
|
|
@@ -637,12 +667,13 @@ class ConverterI7 {
|
|
|
637
667
|
if (this.isTableAvailable(integral_sql_1.Integral7TableNames.SAMMELSCHIENE)) {
|
|
638
668
|
const result = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.SAMMELSCHIENE, schaltanlagenAbschnittIDs));
|
|
639
669
|
for (const i7Data of result) {
|
|
640
|
-
const
|
|
670
|
+
const i7Schaltanlagenabschnitt = integral7.integralSchaltanlagenAbschnitte.get(i7Data.saabschnitt);
|
|
671
|
+
const busbarSection = new BusbarSection_1.BusbarSection(utils_1.generateUUID(), utils_2.getName(i7Schaltanlagenabschnitt), i7Schaltanlagenabschnitt.kurzname);
|
|
641
672
|
busbarSection.ipMax = i7Data.limit_ip;
|
|
642
673
|
busbarSection.aggregate = false;
|
|
643
|
-
const connectivityNode = new AMPRIONConnectivityNode_1.AMPRIONConnectivityNode(utils_1.
|
|
674
|
+
const connectivityNode = new AMPRIONConnectivityNode_1.AMPRIONConnectivityNode(utils_1.getUUID(i7Data.guid), utils_2.getName(i7Data), i7Data.kurzname);
|
|
644
675
|
const terminal = this.createConnection(cimModel, busbarSection, connectivityNode, PhaseCode_1.PhaseCode.ABC, true, 1);
|
|
645
|
-
const voltageLevel = cimModel.getVoltageLevel(this.integralID2UUID.get(
|
|
676
|
+
const voltageLevel = cimModel.getVoltageLevel(this.integralID2UUID.get(i7Schaltanlagenabschnitt.id));
|
|
646
677
|
connectivityNode.nodeNumber = i7Data.id_psse_cape;
|
|
647
678
|
if (voltageLevel) {
|
|
648
679
|
busbarSection.equipmentContainer = voltageLevel;
|
|
@@ -761,7 +792,7 @@ class ConverterI7 {
|
|
|
761
792
|
const connectivityNode = cimModel.getConnectivityNode(this.integralID2UUID.get(i7Data.eknoten));
|
|
762
793
|
if (connectivityNode) {
|
|
763
794
|
connectivityNode.addTerminal(terminal);
|
|
764
|
-
terminal.connectivityNode
|
|
795
|
+
terminal.setConnectivityNode(connectivityNode);
|
|
765
796
|
}
|
|
766
797
|
else {
|
|
767
798
|
this.logger.debug(`Schlaufe ${i7Data.id} besitzt keinen anschluss.`);
|
|
@@ -827,8 +858,24 @@ class ConverterI7 {
|
|
|
827
858
|
const synchronousMachine = new SynchronousMachine_1.SynchronousMachine(utils_1.getUUID(i7Data.guid), utils_2.getName(i7Data), i7Data.kurzname, i7Data.nameprimaertyp);
|
|
828
859
|
synchronousMachine.type = SynchronousMachineKind_1.SynchronousMachineKind.generator;
|
|
829
860
|
synchronousMachine.operatingMode = SynchronousMachineOperatingMode_1.SynchronousMachineOperatingMode.generator;
|
|
861
|
+
if (utils_2.convertToNumberI7(i7Data.blocktrafo_1)) {
|
|
862
|
+
this.blocktransformatoren.push(utils_2.convertToNumberI7(i7Data.blocktrafo_1));
|
|
863
|
+
}
|
|
864
|
+
if (utils_2.convertToNumberI7(i7Data.blocktrafo_2)) {
|
|
865
|
+
this.blocktransformatoren.push(utils_2.convertToNumberI7(i7Data.blocktrafo_2));
|
|
866
|
+
}
|
|
867
|
+
if (utils_2.convertToNumberI7(i7Data.blocktrafo_3)) {
|
|
868
|
+
this.blocktransformatoren.push(utils_2.convertToNumberI7(i7Data.blocktrafo_3));
|
|
869
|
+
}
|
|
870
|
+
if (utils_2.convertToNumberI7(i7Data.blocktrafo_4)) {
|
|
871
|
+
this.blocktransformatoren.push(utils_2.convertToNumberI7(i7Data.blocktrafo_4));
|
|
872
|
+
}
|
|
873
|
+
if (utils_2.convertToNumberI7(i7Data.blocktrafo_5)) {
|
|
874
|
+
this.blocktransformatoren.push(utils_2.convertToNumberI7(i7Data.blocktrafo_5));
|
|
875
|
+
}
|
|
830
876
|
synchronousMachine.referencePriority = utils_2.isNumericI7(i7Data.einspprio) ? utils_2.convertToNumberI7(i7Data.einspprio) : undefined;
|
|
831
877
|
const maxP = utils_2.isNumericI7(i7Data.p_max) ? utils_2.convertToNumberI7(i7Data.p_max) : 0;
|
|
878
|
+
const minP = utils_2.isNumericI7(i7Data.p_min) ? utils_2.convertToNumberI7(i7Data.p_min) : 0;
|
|
832
879
|
const maxQ = utils_2.isNumericI7(i7Data.q_max) ? utils_2.convertToNumberI7(i7Data.q_max) : undefined;
|
|
833
880
|
const minQ = utils_2.isNumericI7(i7Data.q_min) ? utils_2.convertToNumberI7(i7Data.q_min) : undefined;
|
|
834
881
|
const maxQvonPmax = utils_2.isNumericI7(i7Data.qmax_von_pmax) ? utils_2.convertToNumberI7(i7Data.qmax_von_pmax) : undefined;
|
|
@@ -838,8 +885,8 @@ class ConverterI7 {
|
|
|
838
885
|
const powerData = utils_2.getActiveReactivePower(i7Data);
|
|
839
886
|
const p = powerData[0];
|
|
840
887
|
const q = powerData[1];
|
|
841
|
-
synchronousMachine.p
|
|
842
|
-
synchronousMachine.q
|
|
888
|
+
synchronousMachine.setActivePower(p * -1);
|
|
889
|
+
synchronousMachine.setReactivePower(q * -1);
|
|
843
890
|
const sr = utils_2.isNumericI7(i7Data.sr) ? utils_2.convertToNumberI7(i7Data.sr) : undefined;
|
|
844
891
|
if (sr && sr >= 0) {
|
|
845
892
|
synchronousMachine.ratedS = sr;
|
|
@@ -847,9 +894,6 @@ class ConverterI7 {
|
|
|
847
894
|
else {
|
|
848
895
|
synchronousMachine.ratedS = Math.sqrt(Math.pow(maxP, 2) + Math.pow(maxQvonPmax, 2));
|
|
849
896
|
}
|
|
850
|
-
if (!utils_2.isNumericI7(synchronousMachine.ratedS)) {
|
|
851
|
-
console.log();
|
|
852
|
-
}
|
|
853
897
|
const ur = utils_2.isNumericI7(i7Data.ur) ? utils_2.convertToNumberI7(i7Data.ur) : undefined;
|
|
854
898
|
const usoll = utils_2.isNumericI7(i7Data.usoll) ? utils_2.convertToNumberI7(i7Data.usoll) : undefined;
|
|
855
899
|
synchronousMachine.ratedU = usoll ? usoll : ur;
|
|
@@ -876,18 +920,25 @@ class ConverterI7 {
|
|
|
876
920
|
cimModel.addReactiveCapabilityCurve(reactiveCapabilityCurve);
|
|
877
921
|
synchronousMachine.initialReactiveCapabilityCurveUUID = reactiveCapabilityCurve.mrid;
|
|
878
922
|
const inBetrieb = utils_2.convertToBooleanI7(i7Data.betrieb);
|
|
879
|
-
const regulatingControl = new RegulatingControl_1.RegulatingControl(utils_1.generateUUID(), `
|
|
923
|
+
const regulatingControl = new RegulatingControl_1.RegulatingControl(utils_1.generateUUID(), `RC_Gen_${i7Data.id}`);
|
|
880
924
|
regulatingControl.enabled = inBetrieb;
|
|
881
925
|
regulatingControl.targetValue = usoll;
|
|
882
926
|
switch (i7Data.spannungsgeregelt) {
|
|
883
927
|
case 1: {
|
|
884
928
|
regulatingControl.mode = RegulatingControlModeKind_1.RegulatingControlModeKind.voltage;
|
|
929
|
+
regulatingControl.discrete = false;
|
|
930
|
+
regulatingControl.enabled = inBetrieb;
|
|
931
|
+
synchronousMachine.controlEnabled = inBetrieb;
|
|
885
932
|
break;
|
|
886
933
|
}
|
|
887
934
|
default: {
|
|
888
935
|
regulatingControl.mode = RegulatingControlModeKind_1.RegulatingControlModeKind.voltage;
|
|
936
|
+
regulatingControl.discrete = false;
|
|
937
|
+
regulatingControl.enabled = inBetrieb;
|
|
938
|
+
synchronousMachine.controlEnabled = inBetrieb;
|
|
889
939
|
}
|
|
890
940
|
}
|
|
941
|
+
regulatingControl.addRegulatingCondEq(synchronousMachine);
|
|
891
942
|
synchronousMachine.regulatingControlUUID = regulatingControl.mrid;
|
|
892
943
|
const generatingUnitConfig = energyTypesConfig[i7Data.nameprimaertyp];
|
|
893
944
|
let generatingUnit;
|
|
@@ -936,7 +987,6 @@ class ConverterI7 {
|
|
|
936
987
|
if (!generatingUnit) {
|
|
937
988
|
generatingUnit = new GeneratingUnit_1.GeneratingUnit(utils_1.getUUID(''), 'Generator_' + i7Data.bezeichner, i7Data.kurzname);
|
|
938
989
|
}
|
|
939
|
-
generatingUnit.genControlSource = GeneratorControlSource_1.GeneratorControlSource.unavailable;
|
|
940
990
|
generatingUnit.initialP = utils_2.isNumericI7(i7Data.p0) ? utils_2.convertToNumberI7(i7Data.p0) : undefined;
|
|
941
991
|
generatingUnit.maxOperatingP = utils_2.isNumericI7(i7Data.p_max) ? utils_2.convertToNumberI7(i7Data.p_max) : undefined;
|
|
942
992
|
generatingUnit.minOperatingP = utils_2.isNumericI7(i7Data.p_min) ? utils_2.convertToNumberI7(i7Data.p_min) : undefined;
|
|
@@ -971,6 +1021,47 @@ class ConverterI7 {
|
|
|
971
1021
|
}
|
|
972
1022
|
});
|
|
973
1023
|
}
|
|
1024
|
+
convertAsynchronmotor(cimModel, knotenSfIDs, defaultValuesConfig) {
|
|
1025
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
1026
|
+
if (this.isTableAvailable(integral_sql_1.Integral7TableNames.ASYNCHRONMOTOR)) {
|
|
1027
|
+
const result = yield this.mysqlController.execQuery(integral_sql_1.getNetzQuery(integral_sql_1.I7Objects.ASYNCHRONMOTOR, 0, 0, knotenSfIDs));
|
|
1028
|
+
for (const i7Data of result) {
|
|
1029
|
+
const asynchronousMachine = new AsynchronousMachine_1.AsynchronousMachine(utils_1.getUUID(i7Data.guid), utils_2.getName(i7Data), i7Data.kurzname, 'SO-' + i7Data.ukz + integral_prefix_1.MITTIGER_PUNKT + i7Data.bezeichner);
|
|
1030
|
+
asynchronousMachine.efficiency = i7Data.wirkungsgrad * 100;
|
|
1031
|
+
asynchronousMachine.iaIrRatio = i7Data.ilr_ir;
|
|
1032
|
+
asynchronousMachine.polePairNumber = i7Data.polpaarz;
|
|
1033
|
+
asynchronousMachine.ratedMechanicalPower = i7Data.p_mech;
|
|
1034
|
+
asynchronousMachine.ratedPowerFactor = i7Data.cos_phir;
|
|
1035
|
+
asynchronousMachine.ratedS = i7Data.sr;
|
|
1036
|
+
asynchronousMachine.ratedU = i7Data.ur;
|
|
1037
|
+
asynchronousMachine.setActivePower(i7Data.p0 * -1);
|
|
1038
|
+
asynchronousMachine.setReactivePower((i7Data.flag_ind === 1 ? i7Data.q0_ind : i7Data.q0_kap) * -1);
|
|
1039
|
+
asynchronousMachine.controlEnabled = false;
|
|
1040
|
+
const inBetrieb = utils_2.convertToBooleanI7(i7Data.betrieb);
|
|
1041
|
+
util_create_1.createSvStatus(cimModel, inBetrieb, asynchronousMachine);
|
|
1042
|
+
const connectivityNode = cimModel.objects.get(this.integralID2UUID.get(i7Data.anschluss));
|
|
1043
|
+
if (connectivityNode) {
|
|
1044
|
+
util_create_1.createConnection(cimModel, asynchronousMachine, connectivityNode, PhaseCode_1.PhaseCode.ABC);
|
|
1045
|
+
const equipmentContainer = this.determineEquipmentContainer('VoltageLevel', cimModel, cimModel.getObject(connectivityNode.getConnectivityNodeContainerUUID()));
|
|
1046
|
+
if (equipmentContainer) {
|
|
1047
|
+
asynchronousMachine.equipmentContainerUUID = equipmentContainer === null || equipmentContainer === void 0 ? void 0 : equipmentContainer.mrid;
|
|
1048
|
+
cimModel.addAsynchronousMachine(asynchronousMachine);
|
|
1049
|
+
this.addIdMapping(i7Data.id, asynchronousMachine.mrid, integral_sql_1.Integral7TableNames.ASYNCHRONMOTOR);
|
|
1050
|
+
}
|
|
1051
|
+
else {
|
|
1052
|
+
this.logger.debug(`AsynchronousMachine ${i7Data.id} besitzt keinen EquipmentContainer.`);
|
|
1053
|
+
}
|
|
1054
|
+
}
|
|
1055
|
+
else {
|
|
1056
|
+
this.logger.debug(`AsynchronousMachine ${i7Data.id} besitzt keinen ConnectivityNode.`);
|
|
1057
|
+
}
|
|
1058
|
+
}
|
|
1059
|
+
}
|
|
1060
|
+
else {
|
|
1061
|
+
this.logger.debug(`Tabelle ${integral_sql_1.Integral7TableNames.ASYNCHRONMOTOR} ist nicht vorhanden.`);
|
|
1062
|
+
}
|
|
1063
|
+
});
|
|
1064
|
+
}
|
|
974
1065
|
convertKraftwerksbloecke(cimModel, knotenSfIDs, energyTypesConfig) {
|
|
975
1066
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
976
1067
|
if (this.isTableAvailable(integral_sql_1.Integral7TableNames.KWBLOCK)) {
|
|
@@ -990,7 +1081,7 @@ class ConverterI7 {
|
|
|
990
1081
|
const ur = utils_2.isNumericI7(i7Data.urg) ? utils_2.convertToNumberI7(i7Data.urg) : undefined;
|
|
991
1082
|
synchronousMachine.ratedU = ur;
|
|
992
1083
|
synchronousMachine.aggregate = true;
|
|
993
|
-
const regulatingControl = new RegulatingControl_1.RegulatingControl(utils_1.generateUUID(), `
|
|
1084
|
+
const regulatingControl = new RegulatingControl_1.RegulatingControl(utils_1.generateUUID(), `RC_KWBlock ${i7Data.id}`);
|
|
994
1085
|
switch (i7Data.spannungsgeregelt) {
|
|
995
1086
|
case 1: {
|
|
996
1087
|
regulatingControl.mode = RegulatingControlModeKind_1.RegulatingControlModeKind.voltage;
|
|
@@ -1086,34 +1177,109 @@ class ConverterI7 {
|
|
|
1086
1177
|
}
|
|
1087
1178
|
});
|
|
1088
1179
|
}
|
|
1089
|
-
convertBoundaryInjections(cimModel, knotenSfIDs) {
|
|
1180
|
+
convertBoundaryInjections(cimModel, knotenSfIDs, targetClass) {
|
|
1090
1181
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
1091
1182
|
if (this.isTableAvailable(integral_sql_1.Integral7TableNames.BOUNDARYINJECTION)) {
|
|
1092
1183
|
const result = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.BOUNDARYINJECTION, knotenSfIDs));
|
|
1184
|
+
switch (targetClass) {
|
|
1185
|
+
case cim_class_names_1.CIM_CLASS_NAMES.EquivalentInjection: {
|
|
1186
|
+
yield this.convertBoundaryInjections2EquivalentInjection(cimModel, result);
|
|
1187
|
+
break;
|
|
1188
|
+
}
|
|
1189
|
+
case cim_class_names_1.CIM_CLASS_NAMES.ExternalNetworkInjection: {
|
|
1190
|
+
yield this.convertEinspeisungen2ExternalNetworkInjection(cimModel, result);
|
|
1191
|
+
break;
|
|
1192
|
+
}
|
|
1193
|
+
default: {
|
|
1194
|
+
yield this.convertBoundaryInjections2EquivalentInjection(cimModel, result);
|
|
1195
|
+
}
|
|
1196
|
+
}
|
|
1197
|
+
}
|
|
1198
|
+
else {
|
|
1199
|
+
this.logger.debug(`Tabelle ${integral_sql_1.Integral7TableNames.BOUNDARYINJECTION} ist nicht vorhanden.`);
|
|
1200
|
+
}
|
|
1201
|
+
});
|
|
1202
|
+
}
|
|
1203
|
+
convertBoundaryInjections2EquivalentInjection(cimModel, result) {
|
|
1204
|
+
for (const i7Data of result) {
|
|
1205
|
+
const equivalentInjection = new EquivalentInjection_1.EquivalentInjection(utils_1.getUUID(i7Data.guid), utils_2.getName(i7Data), i7Data.kurzname);
|
|
1206
|
+
const inBetrieb = utils_2.convertToBooleanI7(i7Data.betrieb);
|
|
1207
|
+
const einspeisePrio = utils_2.convertToNumberI7(i7Data.einspprio);
|
|
1208
|
+
equivalentInjection.p = utils_2.convertToNumberI7(i7Data.p_ersatznetz) + utils_2.convertToNumberI7(i7Data.p_restnetz);
|
|
1209
|
+
equivalentInjection.q = utils_2.convertToNumberI7(i7Data.q_ersatznetz) + utils_2.convertToNumberI7(i7Data.q_restnetz);
|
|
1210
|
+
const kr = 0;
|
|
1211
|
+
this.setTopologyEnergySourceConsumerObject(cimModel, equivalentInjection, i7Data);
|
|
1212
|
+
cimModel.addEquivalentInjection(equivalentInjection);
|
|
1213
|
+
this.addIdMapping(i7Data.id, equivalentInjection.mrid, integral_sql_1.Integral7TableNames.BOUNDARYINJECTION);
|
|
1214
|
+
}
|
|
1215
|
+
}
|
|
1216
|
+
convertBoundaryInjections2ExternalNetworkInjection(cimModel, result) {
|
|
1217
|
+
for (const i7Data of result) {
|
|
1218
|
+
const externalNetworkInjection = new ExternalNetworkInjection_1.ExternalNetworkInjection(utils_1.getUUID(i7Data.guid), utils_2.getName(i7Data), i7Data.kurzname);
|
|
1219
|
+
const inBetrieb = utils_2.convertToBooleanI7(i7Data.betrieb);
|
|
1220
|
+
const einspeisePrio = utils_2.convertToNumberI7(i7Data.einspprio);
|
|
1221
|
+
externalNetworkInjection.p = utils_2.convertToNumberI7(i7Data.p_ersatznetz) + utils_2.convertToNumberI7(i7Data.p_restnetz);
|
|
1222
|
+
externalNetworkInjection.q = utils_2.convertToNumberI7(i7Data.q_ersatznetz) + utils_2.convertToNumberI7(i7Data.q_restnetz);
|
|
1223
|
+
const kr = 0;
|
|
1224
|
+
externalNetworkInjection.governorSCD = kr;
|
|
1225
|
+
externalNetworkInjection.referencePriority = einspeisePrio;
|
|
1226
|
+
externalNetworkInjection.maxZ0ToZ1Ratio = utils_2.convertToNumberI7(i7Data.z0_z1);
|
|
1227
|
+
const regulatingControl = new RegulatingControl_1.RegulatingControl(utils_1.generateUUID(), `RC_BI_${i7Data.id}`);
|
|
1228
|
+
regulatingControl.mode = RegulatingControlModeKind_1.RegulatingControlModeKind.voltage;
|
|
1229
|
+
regulatingControl.discrete = true;
|
|
1230
|
+
regulatingControl.enabled = inBetrieb;
|
|
1231
|
+
regulatingControl.targetValueUnitMultiplier = UnitMultiplier_1.UnitMultiplier.k;
|
|
1232
|
+
externalNetworkInjection.regulatingControl = regulatingControl;
|
|
1233
|
+
this.setTopologyEnergySourceConsumerObject(cimModel, externalNetworkInjection, i7Data, regulatingControl);
|
|
1234
|
+
cimModel.addExternalNetworkInjection(externalNetworkInjection);
|
|
1235
|
+
cimModel.addRegulatingControl(regulatingControl);
|
|
1236
|
+
this.addIdMapping(i7Data.id, externalNetworkInjection.mrid, integral_sql_1.Integral7TableNames.BOUNDARYINJECTION);
|
|
1237
|
+
}
|
|
1238
|
+
}
|
|
1239
|
+
convertErsatzLaengszweige(cimModel, knotenSfIDs, defaultValuesConfig) {
|
|
1240
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
1241
|
+
if (this.isTableAvailable(integral_sql_1.Integral7TableNames.ERSATZLAENGSZWEIG)) {
|
|
1242
|
+
const result = yield this.mysqlController.execQuery(integral_sql_1.getNetzQuery(integral_sql_1.I7Objects.ERSATZLAENGSZWEIG, 0, 0, []));
|
|
1093
1243
|
for (const i7Data of result) {
|
|
1094
|
-
const
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
const
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1244
|
+
const i7Schluessel = integral_prefix_1.ERSATZLAENGSZWEIG_PRAEFIX +
|
|
1245
|
+
utils_2.ueberpruefeZeichenkette(i7Data.ukz) +
|
|
1246
|
+
integral_prefix_1.MITTIGER_PUNKT +
|
|
1247
|
+
utils_2.ueberpruefeZeichenkette(i7Data.kurzname) +
|
|
1248
|
+
integral_prefix_1.MITTIGER_PUNKT +
|
|
1249
|
+
utils_2.ueberpruefeZeichenkette(i7Data.bezeichner) +
|
|
1250
|
+
integral_prefix_1.MITTIGER_PUNKT +
|
|
1251
|
+
utils_2.ueberpruefeZeichenkette(i7Data.stkabname);
|
|
1252
|
+
const equivalentBranch = new EquivalentBranch_1.EquivalentBranch(utils_1.getUUID(i7Data.guid), i7Data.bezeichner, i7Data.kurzname, i7Schluessel);
|
|
1253
|
+
const ur1 = utils_2.getU(i7Data.ur1, defaultValuesConfig.DefaultVoltage);
|
|
1254
|
+
const ur2 = utils_2.getU(i7Data.ur2, defaultValuesConfig.DefaultVoltage);
|
|
1255
|
+
const baseVoltageUr1 = util_create_1.createBaseVoltageIfNotExists(cimModel, ur1, this.exportFramesBoundary);
|
|
1256
|
+
const baseVoltageUr2 = util_create_1.createBaseVoltageIfNotExists(cimModel, ur2, this.exportFramesBoundary);
|
|
1257
|
+
if (baseVoltageUr1) {
|
|
1258
|
+
equivalentBranch.baseVoltage = baseVoltageUr1;
|
|
1259
|
+
}
|
|
1260
|
+
else if (baseVoltageUr2) {
|
|
1261
|
+
equivalentBranch.baseVoltage = baseVoltageUr2;
|
|
1262
|
+
}
|
|
1263
|
+
const start = cimModel.objects.get(this.integralID2UUID.get(i7Data.aknoten));
|
|
1264
|
+
if (start) {
|
|
1265
|
+
util_create_1.createConnection(cimModel, equivalentBranch, start, PhaseCode_1.PhaseCode.ABC, 1);
|
|
1266
|
+
}
|
|
1267
|
+
else {
|
|
1268
|
+
this.logger.debug(`Leitung ${i7Data.id} ${equivalentBranch.mrid} besitzt keinen Anfangsknoten. ${i7Data.aknoten} ${this.integralID2UUID.get(i7Data.aknoten)}`);
|
|
1269
|
+
}
|
|
1270
|
+
const target = cimModel.objects.get(this.integralID2UUID.get(i7Data.eknoten));
|
|
1271
|
+
if (target) {
|
|
1272
|
+
util_create_1.createConnection(cimModel, equivalentBranch, target, PhaseCode_1.PhaseCode.ABC, 2);
|
|
1273
|
+
}
|
|
1274
|
+
else {
|
|
1275
|
+
this.logger.debug(`Leitung ${i7Data.id} ${equivalentBranch.mrid} besitzt keinen Zielknoten.`);
|
|
1276
|
+
}
|
|
1277
|
+
cimModel.addEquivalentBranch(equivalentBranch);
|
|
1278
|
+
this.addIdMapping(i7Data.id, equivalentBranch.mrid, integral_sql_1.Integral7TableNames.ERSATZLAENGSZWEIG);
|
|
1113
1279
|
}
|
|
1114
1280
|
}
|
|
1115
1281
|
else {
|
|
1116
|
-
this.logger.debug(`Tabelle ${integral_sql_1.Integral7TableNames.
|
|
1282
|
+
this.logger.debug(`Tabelle ${integral_sql_1.Integral7TableNames.ERSATZLAENGSZWEIG} ist nicht vorhanden.`);
|
|
1117
1283
|
}
|
|
1118
1284
|
});
|
|
1119
1285
|
}
|
|
@@ -1122,7 +1288,7 @@ class ConverterI7 {
|
|
|
1122
1288
|
if (this.isTableAvailable(integral_sql_1.Integral7TableNames.KOMPENSATIONSDROSSEL)) {
|
|
1123
1289
|
const result = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.KOMPENSATIONSDROSSEL, knotenSfIDs));
|
|
1124
1290
|
for (const i7Data of result) {
|
|
1125
|
-
const shunt = new LinearShuntCompensator_1.LinearShuntCompensator(utils_1.getUUID(i7Data.guid), utils_2.getName(i7Data), i7Data.kurzname
|
|
1291
|
+
const shunt = new LinearShuntCompensator_1.LinearShuntCompensator(utils_1.getUUID(i7Data.guid), utils_2.getName(i7Data), i7Data.kurzname);
|
|
1126
1292
|
shunt.normalSections = i7Data.aktstufe;
|
|
1127
1293
|
shunt.maximumSections = i7Data.maxstufe;
|
|
1128
1294
|
shunt.nomU = i7Data.ur;
|
|
@@ -1132,7 +1298,7 @@ class ConverterI7 {
|
|
|
1132
1298
|
const spannungsregelungRemote = utils_2.isBooleanI7(i7Data.rpv_geregelt) ? utils_2.convertToBooleanI7(i7Data.rpv_geregelt) : false;
|
|
1133
1299
|
let regulatingControl;
|
|
1134
1300
|
if (spannungsregelungLokal || spannungsregelungRemote) {
|
|
1135
|
-
regulatingControl = new RegulatingControl_1.RegulatingControl(utils_1.generateUUID(), `
|
|
1301
|
+
regulatingControl = new RegulatingControl_1.RegulatingControl(utils_1.generateUUID(), `RC_Kompdrossel ${i7Data.id}`);
|
|
1136
1302
|
regulatingControl.mode = RegulatingControlModeKind_1.RegulatingControlModeKind.voltage;
|
|
1137
1303
|
regulatingControl.discrete = true;
|
|
1138
1304
|
regulatingControl.targetDeadband = i7Data.uband;
|
|
@@ -1156,7 +1322,7 @@ class ConverterI7 {
|
|
|
1156
1322
|
if (this.isTableAvailable(integral_sql_1.Integral7TableNames.KOMPENSATIONSKONDENSATOR)) {
|
|
1157
1323
|
const result = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.KOMPENSATIONSKONDENSATOR, knotenSfIDs));
|
|
1158
1324
|
for (const i7Data of result) {
|
|
1159
|
-
const shunt = new LinearShuntCompensator_1.LinearShuntCompensator(utils_1.getUUID(i7Data.guid), utils_2.getName(i7Data), i7Data.kurzname
|
|
1325
|
+
const shunt = new LinearShuntCompensator_1.LinearShuntCompensator(utils_1.getUUID(i7Data.guid), utils_2.getName(i7Data), i7Data.kurzname);
|
|
1160
1326
|
shunt.normalSections = i7Data.aktstufe;
|
|
1161
1327
|
shunt.maximumSections = i7Data.maxstufe;
|
|
1162
1328
|
shunt.nomU = i7Data.ur;
|
|
@@ -1166,7 +1332,7 @@ class ConverterI7 {
|
|
|
1166
1332
|
const spannungsregelungRemote = utils_2.isBooleanI7(i7Data.rpv_geregelt) ? utils_2.convertToBooleanI7(i7Data.rpv_geregelt) : false;
|
|
1167
1333
|
let regulatingControl;
|
|
1168
1334
|
if (spannungsregelungLokal || spannungsregelungRemote) {
|
|
1169
|
-
regulatingControl = new RegulatingControl_1.RegulatingControl(utils_1.generateUUID(), `
|
|
1335
|
+
regulatingControl = new RegulatingControl_1.RegulatingControl(utils_1.generateUUID(), `RC_${i7Data.bezeichner}`);
|
|
1170
1336
|
regulatingControl.mode = RegulatingControlModeKind_1.RegulatingControlModeKind.voltage;
|
|
1171
1337
|
regulatingControl.discrete = true;
|
|
1172
1338
|
regulatingControl.enabled = inBetrieb;
|
|
@@ -1192,7 +1358,7 @@ class ConverterI7 {
|
|
|
1192
1358
|
for (const i7Data of result) {
|
|
1193
1359
|
const statVarCom = new StaticVarCompensator_1.StaticVarCompensator(utils_1.getUUID(i7Data.guid), utils_2.getName(i7Data), i7Data.kurzname);
|
|
1194
1360
|
const inBetrieb = utils_2.convertToBooleanI7(i7Data.betrieb);
|
|
1195
|
-
const regulatingControl = utils_2.createRegulatingControl(`
|
|
1361
|
+
const regulatingControl = utils_2.createRegulatingControl(`RC_Statcom ${i7Data.id}`, inBetrieb, UnitMultiplier_1.UnitMultiplier.k, RegulatingControlModeKind_1.RegulatingControlModeKind.voltage, cimModel, statVarCom);
|
|
1196
1362
|
this.setTopologyEnergySourceConsumerObject(cimModel, statVarCom, i7Data, regulatingControl);
|
|
1197
1363
|
const uref = utils_2.isNumericI7(i7Data.uref) ? utils_2.convertToNumberI7(i7Data.uref) : undefined;
|
|
1198
1364
|
regulatingControl.targetValue = uref;
|
|
@@ -1232,7 +1398,7 @@ class ConverterI7 {
|
|
|
1232
1398
|
for (const i7Data of result) {
|
|
1233
1399
|
const statVarCom = new StaticVarCompensator_1.StaticVarCompensator(utils_1.getUUID(i7Data.guid), utils_2.getName(i7Data), i7Data.kurzname);
|
|
1234
1400
|
const inBetrieb = utils_2.convertToBooleanI7(i7Data.betrieb);
|
|
1235
|
-
const regulatingControl = utils_2.createRegulatingControl(`
|
|
1401
|
+
const regulatingControl = utils_2.createRegulatingControl(`RC_SVC ${i7Data.id}`, inBetrieb, UnitMultiplier_1.UnitMultiplier.k, RegulatingControlModeKind_1.RegulatingControlModeKind.voltage, cimModel, statVarCom);
|
|
1236
1402
|
this.setTopologyEnergySourceConsumerObject(cimModel, statVarCom, i7Data, regulatingControl);
|
|
1237
1403
|
const uref = utils_2.isNumericI7(i7Data.uref) ? utils_2.convertToNumberI7(i7Data.uref) : undefined;
|
|
1238
1404
|
regulatingControl.targetValue = uref;
|
|
@@ -1265,7 +1431,7 @@ class ConverterI7 {
|
|
|
1265
1431
|
}
|
|
1266
1432
|
});
|
|
1267
1433
|
}
|
|
1268
|
-
convertCsConverterDC(cimModel, knotenSfIDs) {
|
|
1434
|
+
convertCsConverterDC(cimModel, integral7, knotenSfIDs) {
|
|
1269
1435
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
1270
1436
|
if (this.isTableAvailable(integral_sql_1.Integral7TableNames.HGUE_KOPFSTATION_KLASSISCH)) {
|
|
1271
1437
|
const result = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.HGUE_KOPFSTATION_KLASSISCH, knotenSfIDs));
|
|
@@ -1309,7 +1475,7 @@ class ConverterI7 {
|
|
|
1309
1475
|
const inBetrieb = utils_2.convertToBooleanI7(i7Data.betrieb);
|
|
1310
1476
|
util_create_1.createSvStatus(cimModel, inBetrieb, csConverter);
|
|
1311
1477
|
if (acConnectivityNode) {
|
|
1312
|
-
this.createConnection(cimModel, csConverter, acConnectivityNode, PhaseCode_1.PhaseCode.ABC, true, 1);
|
|
1478
|
+
csConverter.pccTerminal = this.createConnection(cimModel, csConverter, acConnectivityNode, PhaseCode_1.PhaseCode.ABC, true, 1);
|
|
1313
1479
|
}
|
|
1314
1480
|
else {
|
|
1315
1481
|
this.logger.debug(`CsConverter ${i7Data.id} ${csConverter.mrid} besitzt keinen AC Anschluss.`);
|
|
@@ -1327,12 +1493,13 @@ class ConverterI7 {
|
|
|
1327
1493
|
cimModel.addCSConverter(csConverter);
|
|
1328
1494
|
cimModel.addDCNode(dcNode);
|
|
1329
1495
|
cimModel.addACDCConverterDCTerminal(acDCConverterDCTerminal);
|
|
1496
|
+
this.checkAnschlussIDs(i7Data.id, integral7);
|
|
1330
1497
|
this.addIdMapping(i7Data.id, csConverter.mrid, integral_sql_1.Integral7TableNames.HGUE_KOPFSTATION_KLASSISCH);
|
|
1331
1498
|
}
|
|
1332
1499
|
}
|
|
1333
1500
|
});
|
|
1334
1501
|
}
|
|
1335
|
-
convertVsConverterDC(cimModel, knotenSfIDs) {
|
|
1502
|
+
convertVsConverterDC(cimModel, integral7, knotenSfIDs) {
|
|
1336
1503
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
1337
1504
|
if (this.isTableAvailable(integral_sql_1.Integral7TableNames.HGUE_KOPFSTATION_VSC)) {
|
|
1338
1505
|
const result = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.HGUE_KOPFSTATION_VSC, knotenSfIDs));
|
|
@@ -1355,7 +1522,7 @@ class ConverterI7 {
|
|
|
1355
1522
|
const vsConverter = new VsConverter_1.VsConverter(utils_1.getUUID(i7Data.guid), utils_2.getName(i7Data), i7Data.kurzname);
|
|
1356
1523
|
vsConverter.equipmentContainer = dcConverterUnit;
|
|
1357
1524
|
vsConverter.baseS = i7Data.pr;
|
|
1358
|
-
vsConverter.ratedUdc = i7Data.ur;
|
|
1525
|
+
utils_2.isNumericI7(i7Data.udc) ? vsConverter.ratedUdc = i7Data.udc : vsConverter.ratedUdc = i7Data.ur;
|
|
1359
1526
|
vsConverter.idleLoss = i7Data.p_leer;
|
|
1360
1527
|
vsConverter.maxUdc = vsConverter.ratedUdc * 1.05;
|
|
1361
1528
|
vsConverter.minUdc = vsConverter.ratedUdc * 0.95;
|
|
@@ -1379,7 +1546,7 @@ class ConverterI7 {
|
|
|
1379
1546
|
const inBetrieb = utils_2.convertToBooleanI7(i7Data.betrieb);
|
|
1380
1547
|
util_create_1.createSvStatus(cimModel, inBetrieb, vsConverter);
|
|
1381
1548
|
if (acConnectivityNode) {
|
|
1382
|
-
util_create_1.createConnection(cimModel, vsConverter, acConnectivityNode, PhaseCode_1.PhaseCode.ABC, 1);
|
|
1549
|
+
vsConverter.pccTerminal = util_create_1.createConnection(cimModel, vsConverter, acConnectivityNode, PhaseCode_1.PhaseCode.ABC, 1);
|
|
1383
1550
|
}
|
|
1384
1551
|
else {
|
|
1385
1552
|
this.logger.debug(`VsConverter ${i7Data.id} ${vsConverter.mrid} besitzt keinen AC Anschluss.`);
|
|
@@ -1389,11 +1556,14 @@ class ConverterI7 {
|
|
|
1389
1556
|
const acDCConverterDCTerminal = new ACDCConverterDCTerminal_1.ACDCConverterDCTerminal(utils_1.generateUUID(), 'ACDCConvTerminal');
|
|
1390
1557
|
acDCConverterDCTerminal.sequenceNumber = 1;
|
|
1391
1558
|
acDCConverterDCTerminal.dCConductingEquipmentUUID = vsConverter.mrid;
|
|
1392
|
-
acDCConverterDCTerminal.
|
|
1559
|
+
acDCConverterDCTerminal.dcNode = dcNode;
|
|
1560
|
+
vsConverter.dCTerminals.set(acDCConverterDCTerminal.getUUID(), acDCConverterDCTerminal);
|
|
1561
|
+
dcNode.dcTerminals.set(acDCConverterDCTerminal.getUUID(), acDCConverterDCTerminal);
|
|
1393
1562
|
cimModel.addDCConverterUnit(dcConverterUnit);
|
|
1394
1563
|
cimModel.addVSConverter(vsConverter);
|
|
1395
1564
|
cimModel.addDCNode(dcNode);
|
|
1396
1565
|
cimModel.addACDCConverterDCTerminal(acDCConverterDCTerminal);
|
|
1566
|
+
this.checkAnschlussIDs(i7Data.id, integral7);
|
|
1397
1567
|
this.addIdMapping(i7Data.id, vsConverter.mrid, integral_sql_1.Integral7TableNames.HGUE_KOPFSTATION_VSC);
|
|
1398
1568
|
}
|
|
1399
1569
|
}
|
|
@@ -1453,6 +1623,7 @@ class ConverterI7 {
|
|
|
1453
1623
|
const powerData = utils_2.getActiveReactivePower(i7Data);
|
|
1454
1624
|
externalNetworkInjection.p = powerData[0];
|
|
1455
1625
|
externalNetworkInjection.q = powerData[1];
|
|
1626
|
+
externalNetworkInjection.controlEnabled = false;
|
|
1456
1627
|
this.setTopologyEnergySourceConsumerObject(cimModel, externalNetworkInjection, i7Data);
|
|
1457
1628
|
cimModel.addExternalNetworkInjection(externalNetworkInjection);
|
|
1458
1629
|
this.addIdMapping(i7Data.id, externalNetworkInjection.mrid, integral_sql_1.I7Objects.EINSPEISUNG);
|
|
@@ -1498,7 +1669,7 @@ class ConverterI7 {
|
|
|
1498
1669
|
const result = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.QUERKUPPLUNG, schaltanlagenAbschnittIDs));
|
|
1499
1670
|
for (const i7Data of result) {
|
|
1500
1671
|
const bay = new AMPRIONBay_1.AMPRIONBay(utils_1.getUUID(i7Data.guid), utils_2.getName(i7Data), 'Querkupplung');
|
|
1501
|
-
bay.number = i7Data.feldnummer;
|
|
1672
|
+
bay.number = i7Data.feldnummer + '';
|
|
1502
1673
|
bay.locationID = i7Data.ips_folder_id;
|
|
1503
1674
|
const voltageLevel = cimModel.getVoltageLevel(this.integralID2UUID.get(i7Data.saabschnitt));
|
|
1504
1675
|
if (voltageLevel) {
|
|
@@ -1529,7 +1700,7 @@ class ConverterI7 {
|
|
|
1529
1700
|
for (const i7Data of result) {
|
|
1530
1701
|
const bay = new AMPRIONBay_1.AMPRIONBay(utils_1.getUUID(i7Data.guid), utils_2.getName(i7Data), i7Data.kurzname, 'Laengskupplung');
|
|
1531
1702
|
const voltageLevel = cimModel.getVoltageLevel(this.integralID2UUID.get(i7Data.schaltanlage));
|
|
1532
|
-
bay.number = i7Data.feldnummer;
|
|
1703
|
+
bay.number = i7Data.feldnummer + '';
|
|
1533
1704
|
bay.locationID = i7Data.ips_folder_id;
|
|
1534
1705
|
if (voltageLevel) {
|
|
1535
1706
|
bay.voltageLevel = voltageLevel;
|
|
@@ -1605,7 +1776,7 @@ class ConverterI7 {
|
|
|
1605
1776
|
if (this.isTableAvailable(integral_sql_1.Integral7TableNames.TRENNERFI_3P)) {
|
|
1606
1777
|
const result = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.TRENNERFI_3P, containerIDs));
|
|
1607
1778
|
for (const i7Data of result) {
|
|
1608
|
-
const disconnector = new Disconnector_1.Disconnector(utils_1.
|
|
1779
|
+
const disconnector = new Disconnector_1.Disconnector(utils_1.getUUID(i7Data.guid), i7Data.bezeichner);
|
|
1609
1780
|
yield this.convertSwitch(disconnector, cimModel, i7Data);
|
|
1610
1781
|
cimModel.addDisconnector(disconnector);
|
|
1611
1782
|
this.addIdMapping(i7Data.id, disconnector.mrid, integral_sql_1.Integral7TableNames.TRENNERFI_3P);
|
|
@@ -1637,7 +1808,7 @@ class ConverterI7 {
|
|
|
1637
1808
|
if (this.isTableAvailable(integral_sql_1.Integral7TableNames.LEISTUNGSSCHALTER)) {
|
|
1638
1809
|
const result = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.LEISTUNGSSCHALTER, containerIDs));
|
|
1639
1810
|
for (const i7Data of result) {
|
|
1640
|
-
const breaker = new Breaker_1.Breaker(utils_1.
|
|
1811
|
+
const breaker = new Breaker_1.Breaker(utils_1.getUUID(i7Data.guid), i7Data.bezeichner);
|
|
1641
1812
|
yield this.convertSwitch(breaker, cimModel, i7Data);
|
|
1642
1813
|
cimModel.addBreaker(breaker);
|
|
1643
1814
|
this.addIdMapping(i7Data.id, breaker.mrid, integral_sql_1.Integral7TableNames.LEISTUNGSSCHALTER);
|
|
@@ -1685,6 +1856,64 @@ class ConverterI7 {
|
|
|
1685
1856
|
}
|
|
1686
1857
|
});
|
|
1687
1858
|
}
|
|
1859
|
+
convertLaengsdrosseln(cimModel, knotenSfIDs, defaultValuesConfig) {
|
|
1860
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
1861
|
+
if (this.isTableAvailable(integral_sql_1.Integral7TableNames.LAENGSDROSSEL)) {
|
|
1862
|
+
const result = yield this.mysqlController.execQuery(integral_sql_1.getNetzQuery(integral_sql_1.I7Objects.LAENGSDROSSEL, 0, 0, []));
|
|
1863
|
+
for (const i7Data of result) {
|
|
1864
|
+
const seriesCompensator = new AMPRIONSeriesCompensator_1.AMPRIONSeriesCompensator(utils_1.getUUID(i7Data.guid), utils_2.getName(i7Data), i7Data.id + '', 'LD-' + i7Data.bezeichner);
|
|
1865
|
+
const start = cimModel.objects.get(this.integralID2UUID.get(i7Data.aknoten));
|
|
1866
|
+
let startTerminal;
|
|
1867
|
+
if (start) {
|
|
1868
|
+
startTerminal = util_create_1.createConnection(cimModel, seriesCompensator, start, PhaseCode_1.PhaseCode.ABC, 1);
|
|
1869
|
+
}
|
|
1870
|
+
else {
|
|
1871
|
+
this.logger.debug(`Längsdrossel ${i7Data.id} ${seriesCompensator.mrid} besitzt keinen Anfangsknoten.`);
|
|
1872
|
+
}
|
|
1873
|
+
const target = cimModel.objects.get(this.integralID2UUID.get(i7Data.eknoten));
|
|
1874
|
+
let targetTerminal;
|
|
1875
|
+
if (target) {
|
|
1876
|
+
targetTerminal = util_create_1.createConnection(cimModel, seriesCompensator, target, PhaseCode_1.PhaseCode.ABC, 2);
|
|
1877
|
+
}
|
|
1878
|
+
else {
|
|
1879
|
+
this.logger.debug(`Längsdrossel ${i7Data.id} ${seriesCompensator.mrid} besitzt keinen Zielknoten.`);
|
|
1880
|
+
}
|
|
1881
|
+
const ur = utils_2.getU(i7Data.ur, defaultValuesConfig.DefaultVoltage);
|
|
1882
|
+
const baseVoltage = util_create_1.createBaseVoltageIfNotExists(cimModel, ur, this.exportFramesBoundary);
|
|
1883
|
+
const i = utils_2.isNumericI7(i7Data.ir) ? utils_2.convertToNumberI7(i7Data.ir) : defaultValuesConfig.SeriesCompensator.varistorRatedCurrent;
|
|
1884
|
+
const ukr = utils_2.isNumericI7(i7Data.ukr) ? utils_2.convertToNumberI7(i7Data.ukr) : 0;
|
|
1885
|
+
if (i > 0 && ukr > 0) {
|
|
1886
|
+
const voltage = baseVoltage.nominalVoltage.value * 1000;
|
|
1887
|
+
const z = (ukr / 100) * Math.pow(voltage, 2) / (voltage * i * Math.sqrt(3));
|
|
1888
|
+
seriesCompensator.x = z;
|
|
1889
|
+
}
|
|
1890
|
+
seriesCompensator.varistorRatedCurrent = i;
|
|
1891
|
+
const terminal = startTerminal;
|
|
1892
|
+
if (terminal) {
|
|
1893
|
+
this.setConductingEquipmentCurrentLimit(cimModel, 'Rating ' + seriesCompensator.name, terminal.mrid, i);
|
|
1894
|
+
}
|
|
1895
|
+
else {
|
|
1896
|
+
this.logger.debug(`Längsdrossel ${i7Data.id} ${seriesCompensator.mrid} besitzt keine Terminalinstanz.`);
|
|
1897
|
+
}
|
|
1898
|
+
const vlObject = this.determineEquipmentContainer('VoltageLevel', cimModel, cimModel.getObject(startTerminal.connectivityNode.getConnectivityNodeContainerUUID()));
|
|
1899
|
+
if (vlObject) {
|
|
1900
|
+
seriesCompensator.equipmentContainer = vlObject;
|
|
1901
|
+
seriesCompensator.baseVoltage = baseVoltage;
|
|
1902
|
+
}
|
|
1903
|
+
else {
|
|
1904
|
+
this.logger.debug(`Längsdrossel ${i7Data.id} besitzt kein VoltageLevel Ur ${i7Data.ur}.`);
|
|
1905
|
+
}
|
|
1906
|
+
const psrType = utils_1.createIfNotExitsPSRType(cimModel, 'Längsdrossel');
|
|
1907
|
+
seriesCompensator.psrTypeUUID = psrType.mrid;
|
|
1908
|
+
cimModel.addSeriesCompensator(seriesCompensator);
|
|
1909
|
+
this.addIdMapping(i7Data.id, seriesCompensator.mrid, integral_sql_1.Integral7TableNames.LAENGSDROSSEL);
|
|
1910
|
+
}
|
|
1911
|
+
}
|
|
1912
|
+
else {
|
|
1913
|
+
this.logger.debug(`Tabelle ${integral_sql_1.Integral7TableNames.LAENGSDROSSEL} ist nicht vorhanden.`);
|
|
1914
|
+
}
|
|
1915
|
+
});
|
|
1916
|
+
}
|
|
1688
1917
|
convertBetriebsmitteltypenKdrossel() {
|
|
1689
1918
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
1690
1919
|
if (this.isTableAvailable(integral_sql_1.Integral7TableNames.TYP_KDROSSEL)) {
|
|
@@ -1709,6 +1938,14 @@ class ConverterI7 {
|
|
|
1709
1938
|
stpSchieneIDs.push(i7DataSchiene.id);
|
|
1710
1939
|
const connectivityNode = new ConnectivityNode_1.ConnectivityNode(utils_1.generateUUID(), utils_2.getName(i7DataSchiene), `StpSchiene_${i7DataSchiene.id}`);
|
|
1711
1940
|
const junction = new Junction_1.Junction(utils_1.generateUUID(), `StpSchiene/${i7DataSchiene.id}`, `${i7DataSchiene.bezeichner}`);
|
|
1941
|
+
const equipmentContainer = this.determineEquipmentContainer('VoltageLevel', cimModel, cimModel.getObject(this.integralID2UUID.get(i7DataSchiene.id)));
|
|
1942
|
+
if (equipmentContainer) {
|
|
1943
|
+
equipmentContainer.addEquipment(junction);
|
|
1944
|
+
junction.equipmentContainer = equipmentContainer;
|
|
1945
|
+
}
|
|
1946
|
+
else {
|
|
1947
|
+
this.logger.debug(`Sternpunktschiene ${i7DataSchiene.id} besitzt keinen EquipmentContainer.`);
|
|
1948
|
+
}
|
|
1712
1949
|
const terminal = this.createConnection(cimModel, junction, connectivityNode, PhaseCode_1.PhaseCode.N, true);
|
|
1713
1950
|
integral7.sternPunktImpModel.connectivityNodes.set(connectivityNode.mrid, connectivityNode);
|
|
1714
1951
|
integral7.sternPunktImpModel.junctions.set(junction.mrid, junction);
|
|
@@ -1780,13 +2017,13 @@ class ConverterI7 {
|
|
|
1780
2017
|
}));
|
|
1781
2018
|
});
|
|
1782
2019
|
}
|
|
1783
|
-
convertStpSchaltelemente(integral7,
|
|
2020
|
+
convertStpSchaltelemente(integral7, stpSchienenID) {
|
|
1784
2021
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
1785
2022
|
return new Promise((resolve) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
1786
2023
|
try {
|
|
1787
2024
|
if (this.isTableAvailable(integral_sql_1.Integral7TableNames.STERNPUNKT_SCHALTER)) {
|
|
1788
|
-
if (
|
|
1789
|
-
const result = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.STERNPUNKT_SCHALTER,
|
|
2025
|
+
if (stpSchienenID.length) {
|
|
2026
|
+
const result = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.STERNPUNKT_SCHALTER, stpSchienenID));
|
|
1790
2027
|
for (const i7Data of result) {
|
|
1791
2028
|
const terminal = integral7.sternPunktImpModel.stpSchieneTerminal.get(i7Data.eknoten);
|
|
1792
2029
|
if (terminal) {
|
|
@@ -1813,6 +2050,36 @@ class ConverterI7 {
|
|
|
1813
2050
|
}));
|
|
1814
2051
|
});
|
|
1815
2052
|
}
|
|
2053
|
+
convertLaengskupplungen(cimModel, integral7, schaltanlagenIDs) {
|
|
2054
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
2055
|
+
if (this.isTableAvailable(integral_sql_1.Integral7TableNames.LAENGSKUPPLUNG)) {
|
|
2056
|
+
const result = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.LAENGSKUPPLUNG, schaltanlagenIDs));
|
|
2057
|
+
for (const i7Data of result) {
|
|
2058
|
+
const bay = new AMPRIONBay_1.AMPRIONBay(utils_1.getUUID(i7Data.guid), utils_2.getName(i7Data), i7Data.kurzname, 'Laengskupplung');
|
|
2059
|
+
const voltageLevel = cimModel.getVoltageLevel(this.integralID2UUID.get(i7Data.schaltanlage));
|
|
2060
|
+
bay.number = i7Data.feldnummer + '';
|
|
2061
|
+
bay.locationID = i7Data.ips_folder_id;
|
|
2062
|
+
if (voltageLevel) {
|
|
2063
|
+
bay.voltageLevel = voltageLevel;
|
|
2064
|
+
voltageLevel.addBay(bay);
|
|
2065
|
+
const i7Schluessel = voltageLevel.description +
|
|
2066
|
+
'/LK-' +
|
|
2067
|
+
utils_2.ueberpruefeZeichenkette(i7Data.bezeichner);
|
|
2068
|
+
bay.description = i7Schluessel;
|
|
2069
|
+
}
|
|
2070
|
+
else {
|
|
2071
|
+
this.logger.debug(`Laengskupplung ${i7Data.id} besitzt keine Anlage.`);
|
|
2072
|
+
}
|
|
2073
|
+
integral7.laengskupplungIDs.push(i7Data.id);
|
|
2074
|
+
this.addIdMapping(i7Data.id, bay.mrid, integral_sql_1.Integral7TableNames.LAENGSKUPPLUNG);
|
|
2075
|
+
cimModel.addBay(bay);
|
|
2076
|
+
}
|
|
2077
|
+
}
|
|
2078
|
+
else {
|
|
2079
|
+
this.logger.debug(`Tabelle ${integral_sql_1.Integral7TableNames.LAENGSKUPPLUNG} ist nicht vorhanden.`);
|
|
2080
|
+
}
|
|
2081
|
+
});
|
|
2082
|
+
}
|
|
1816
2083
|
convertBetriebsmitteltypenLeitung() {
|
|
1817
2084
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
1818
2085
|
if (this.isTableAvailable(integral_sql_1.Integral7TableNames.TYP_FREILEITUNG)) {
|
|
@@ -1851,21 +2118,33 @@ class ConverterI7 {
|
|
|
1851
2118
|
object.c0 = +data.c0;
|
|
1852
2119
|
object.ratedCurrent = +data.ir;
|
|
1853
2120
|
}
|
|
1854
|
-
convertLeitungen(
|
|
1855
|
-
var _a, _b;
|
|
2121
|
+
convertLeitungen(frame, integral7, defaultValuesConfig) {
|
|
2122
|
+
var _a, _b, _c;
|
|
1856
2123
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
1857
2124
|
if (this.isTableAvailable(integral_sql_1.Integral7TableNames.LEITUNG) && integral7.leitungsAnschlussIDs.length) {
|
|
1858
|
-
const
|
|
2125
|
+
const cimModel = frame.cimModel;
|
|
1859
2126
|
const result = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.LEITUNG, integral7.leitungsAnschlussIDs));
|
|
1860
2127
|
const leitungIDs = result.map(elem => elem.id);
|
|
1861
|
-
const
|
|
2128
|
+
const cableAvailable = this.isTableAvailable(integral_sql_1.Integral7TableNames.KABEL);
|
|
2129
|
+
const overheadAvailable = this.isTableAvailable(integral_sql_1.Integral7TableNames.FREILEITUNG);
|
|
2130
|
+
let type = integral_sql_1.I7Objects.STROMKREISABSCHNITT;
|
|
2131
|
+
if (cableAvailable && overheadAvailable) {
|
|
2132
|
+
type = integral_sql_1.I7Objects.STROMKREISABSCHNITT_KABEL_FREILEITUNG;
|
|
2133
|
+
}
|
|
2134
|
+
else if (cableAvailable) {
|
|
2135
|
+
type = integral_sql_1.I7Objects.STROMKREISABSCHNITT_KABEL;
|
|
2136
|
+
}
|
|
2137
|
+
else if (overheadAvailable) {
|
|
2138
|
+
type = integral_sql_1.I7Objects.STROMKREISABSCHNITT_FREILEITUNG;
|
|
2139
|
+
}
|
|
2140
|
+
const leitungStromkreisabschnitt = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(type, leitungIDs));
|
|
1862
2141
|
for (const i7Data of result) {
|
|
1863
2142
|
const stromkreisabschnitte = leitungStromkreisabschnitt.filter(elem => elem.leitung === i7Data.id);
|
|
1864
2143
|
if (!(stromkreisabschnitte === null || stromkreisabschnitte === void 0 ? void 0 : stromkreisabschnitte.length))
|
|
1865
2144
|
continue;
|
|
1866
2145
|
const leitung = new Leitung_1.LeitungImpl(i7Data);
|
|
1867
2146
|
integral7.integralLeitungen.set(i7Data.id, leitung);
|
|
1868
|
-
|
|
2147
|
+
let i7Schluessel = integral_prefix_1.LEITUNG_PRAEFIX +
|
|
1869
2148
|
utils_2.ueberpruefeZeichenkette(i7Data.ukz) +
|
|
1870
2149
|
integral_prefix_1.MITTIGER_PUNKT +
|
|
1871
2150
|
utils_2.ueberpruefeZeichenkette(i7Data.kurzname) +
|
|
@@ -1873,81 +2152,135 @@ class ConverterI7 {
|
|
|
1873
2152
|
utils_2.ueberpruefeZeichenkette(i7Data.bezeichner) +
|
|
1874
2153
|
integral_prefix_1.MITTIGER_PUNKT +
|
|
1875
2154
|
utils_2.ueberpruefeZeichenkette(i7Data.stkabname);
|
|
1876
|
-
|
|
2155
|
+
let name = integral_prefix_1.LEITUNG_PRAEFIX +
|
|
1877
2156
|
utils_2.ueberpruefeZeichenkette(i7Data.ukz) +
|
|
1878
|
-
|
|
2157
|
+
'-' +
|
|
1879
2158
|
utils_2.ueberpruefeZeichenkette(i7Data.bezeichner) +
|
|
1880
|
-
|
|
2159
|
+
'-' +
|
|
1881
2160
|
utils_2.ueberpruefeZeichenkette(i7Data.stkabname);
|
|
1882
|
-
const line = new
|
|
1883
|
-
|
|
2161
|
+
const line = new AMPRIONLine_1.AMPRIONLine(utils_1.getUUID(i7Data.guid), name, i7Data.stkabname, i7Schluessel);
|
|
2162
|
+
line.ukz = i7Data.ukz;
|
|
2163
|
+
let acLineSegments = [];
|
|
1884
2164
|
for (const stk of stromkreisabschnitte) {
|
|
2165
|
+
i7Schluessel += integral_prefix_1.LEITUNGSABSCHNITT_PRAEFIX + utils_2.ueberpruefeZeichenkette(stk.bezeichner);
|
|
2166
|
+
name = utils_2.ueberpruefeZeichenkette(i7Data.ukz) +
|
|
2167
|
+
'-' +
|
|
2168
|
+
utils_2.ueberpruefeZeichenkette(i7Data.bezeichner) +
|
|
2169
|
+
'-' +
|
|
2170
|
+
utils_2.ueberpruefeZeichenkette(stk.bezeichner);
|
|
1885
2171
|
const acLineSegment = new ACLineSegment_1.ACLineSegment(utils_1.generateUUID(), name, i7Data.stkabname, i7Schluessel);
|
|
1886
|
-
this.setACLineSegmentProperties(cimModel, acLineSegment, stk, defaultValuesConfig);
|
|
1887
|
-
acLineSegment.description = stk.nametyp;
|
|
1888
2172
|
acLineSegment.equipmentContainer = line;
|
|
1889
2173
|
line.addEquipment(acLineSegment);
|
|
1890
2174
|
acLineSegments.push(acLineSegment);
|
|
1891
2175
|
this.addIdMapping(stk.id, acLineSegment.mrid, integral_sql_1.Integral7TableNames.LEITUNG);
|
|
1892
|
-
cimModel.addACLineSegment(acLineSegment);
|
|
1893
2176
|
}
|
|
1894
|
-
|
|
2177
|
+
let tmp_sequence_number = 1;
|
|
2178
|
+
const acLineSegmentStart = acLineSegments[0];
|
|
2179
|
+
const startTerminal = this.createBoundaryConnection(frame, acLineSegmentStart, i7Data.aknoten, PhaseCode_1.PhaseCode.ABC, tmp_sequence_number);
|
|
2180
|
+
let equivalentInjection = undefined;
|
|
2181
|
+
if (startTerminal) {
|
|
2182
|
+
this.setACLineSegmentCurrentLimt(cimModel, acLineSegmentStart, acLineSegmentStart.description, startTerminal);
|
|
2183
|
+
tmp_sequence_number++;
|
|
2184
|
+
let bdf = this.getConnectedBoundaryModel(this.integralID2UUID.get(i7Data.aknoten));
|
|
2185
|
+
let tmp_cn = bdf === null || bdf === void 0 ? void 0 : bdf.cimModel.getConnectivityNode(startTerminal.getConnectivityNodeUUID());
|
|
2186
|
+
if (tmp_cn && tmp_cn.boundaryPoint) {
|
|
2187
|
+
equivalentInjection = this.createBoundaryEquivalentInjection(frame, tmp_cn);
|
|
2188
|
+
}
|
|
2189
|
+
if (!acLineSegmentStart.baseVoltage) {
|
|
2190
|
+
if (startTerminal.getConnectedNode())
|
|
2191
|
+
acLineSegmentStart.baseVoltage = (_a = startTerminal.getConnectivityNode()) === null || _a === void 0 ? void 0 : _a.getBaseVoltage();
|
|
2192
|
+
if (!acLineSegmentStart.baseVoltage) {
|
|
2193
|
+
this.logger.debug(`(acLineSegmentStart) Anschlussknoten ${i7Data.aknoten} ${this.integralID2UUID.get(i7Data.aknoten)} besitzt keine Spannungsangabe in Knotenspannungen Map.`);
|
|
2194
|
+
}
|
|
2195
|
+
}
|
|
2196
|
+
}
|
|
2197
|
+
else {
|
|
2198
|
+
this.logger.debug(`Leitung ${i7Data.id} ${acLineSegmentStart.mrid} besitzt keinen Anfangsknoten. ${i7Data.aknoten} ${this.integralID2UUID.get(i7Data.aknoten)}`);
|
|
2199
|
+
}
|
|
2200
|
+
cimModel.addACLineSegment(acLineSegmentStart);
|
|
1895
2201
|
const anzahl = acLineSegments.length;
|
|
2202
|
+
let tmp_terminal = undefined;
|
|
1896
2203
|
for (let i = 0; i < anzahl - 1; i++) {
|
|
1897
2204
|
const cn = new ConnectivityNode_1.ConnectivityNode(utils_1.generateUUID(), 'CN_Lt');
|
|
1898
2205
|
const acLineSegment1 = acLineSegments[i];
|
|
1899
|
-
|
|
1900
|
-
this.setACLineSegmentCurrentLimt(cimModel, acLineSegment1, acLineSegment1.description,
|
|
2206
|
+
tmp_terminal = this.createConnection(cimModel, acLineSegment1, cn, PhaseCode_1.PhaseCode.ABC, true, tmp_sequence_number);
|
|
2207
|
+
this.setACLineSegmentCurrentLimt(cimModel, acLineSegment1, acLineSegment1.description, tmp_terminal);
|
|
2208
|
+
cimModel.addACLineSegment(acLineSegment1);
|
|
2209
|
+
if (tmp_terminal) {
|
|
2210
|
+
tmp_sequence_number++;
|
|
2211
|
+
tmp_terminal = undefined;
|
|
2212
|
+
}
|
|
2213
|
+
this.setACLineSegmentProperties(cimModel, acLineSegments[i], stromkreisabschnitte[i], defaultValuesConfig);
|
|
1901
2214
|
const acLineSegment2 = acLineSegments[i + 1];
|
|
1902
|
-
|
|
1903
|
-
this.setACLineSegmentCurrentLimt(cimModel, acLineSegment2, acLineSegment2.description,
|
|
2215
|
+
tmp_terminal = this.createConnection(cimModel, acLineSegment2, cn, PhaseCode_1.PhaseCode.ABC, true, tmp_sequence_number);
|
|
2216
|
+
this.setACLineSegmentCurrentLimt(cimModel, acLineSegment2, acLineSegment2.description, tmp_terminal);
|
|
2217
|
+
cimModel.addACLineSegment(acLineSegment1);
|
|
2218
|
+
if (tmp_terminal) {
|
|
2219
|
+
tmp_sequence_number++;
|
|
2220
|
+
tmp_terminal = undefined;
|
|
2221
|
+
}
|
|
1904
2222
|
cn.connectivityNodeContainer = acLineSegment1.equipmentContainer;
|
|
1905
2223
|
cimModel.addConnectivityNode(cn);
|
|
1906
2224
|
}
|
|
1907
|
-
const start = cimModel.getObject(this.integralID2UUID.get(i7Data.aknoten));
|
|
1908
|
-
const acLineSegmentStart = acLineSegments[0];
|
|
1909
|
-
if (start) {
|
|
1910
|
-
const terminal = this.createConnection(cimModel, acLineSegmentStart, start, PhaseCode_1.PhaseCode.ABC, acLineSegmentStart.terminalsUUIDs.length + 1);
|
|
1911
|
-
this.setACLineSegmentCurrentLimt(cimModel, acLineSegmentStart, acLineSegmentStart.description, terminal);
|
|
1912
|
-
if (!acLineSegmentStart.baseVoltage) {
|
|
1913
|
-
acLineSegmentStart.baseVoltage = (_a = terminal === null || terminal === void 0 ? void 0 : terminal.connectivityNode) === null || _a === void 0 ? void 0 : _a.getBaseVoltage();
|
|
1914
|
-
;
|
|
1915
|
-
}
|
|
1916
|
-
}
|
|
1917
|
-
else {
|
|
1918
|
-
this.logger.debug(`Leitung ${i7Data.id} ${acLineSegmentStart.mrid} besitzt keinen Anfangsknoten. ${i7Data.aknoten} ${this.integralID2UUID.get(i7Data.aknoten)}`);
|
|
1919
|
-
}
|
|
1920
|
-
const target = cimModel.getObject(this.integralID2UUID.get(i7Data.eknoten));
|
|
1921
2225
|
const acLineSegmentZiel = acLineSegments[anzahl - 1];
|
|
1922
|
-
|
|
1923
|
-
|
|
1924
|
-
this.setACLineSegmentCurrentLimt(cimModel, acLineSegmentZiel, acLineSegmentZiel.description,
|
|
2226
|
+
const targetTerminal = this.createBoundaryConnection(frame, acLineSegmentZiel, i7Data.eknoten, PhaseCode_1.PhaseCode.ABC, tmp_sequence_number);
|
|
2227
|
+
if (targetTerminal) {
|
|
2228
|
+
this.setACLineSegmentCurrentLimt(cimModel, acLineSegmentZiel, acLineSegmentZiel.description, targetTerminal);
|
|
2229
|
+
let bdf = this.getConnectedBoundaryModel(this.integralID2UUID.get(i7Data.eknoten));
|
|
2230
|
+
let tmp_cn = bdf === null || bdf === void 0 ? void 0 : bdf.cimModel.getConnectivityNode(targetTerminal.getConnectivityNodeUUID());
|
|
2231
|
+
if (tmp_cn && 'boundaryPoint' in tmp_cn && tmp_cn.boundaryPoint) {
|
|
2232
|
+
equivalentInjection = this.createBoundaryEquivalentInjection(frame, tmp_cn);
|
|
2233
|
+
}
|
|
1925
2234
|
if (!acLineSegmentZiel.baseVoltage) {
|
|
1926
|
-
acLineSegmentZiel.baseVoltage = (_b =
|
|
2235
|
+
acLineSegmentZiel.baseVoltage = (_b = targetTerminal.getConnectivityNode()) === null || _b === void 0 ? void 0 : _b.getBaseVoltage();
|
|
2236
|
+
if (!acLineSegmentZiel.baseVoltage) {
|
|
2237
|
+
this.logger.debug(`(acLineSegmentZiel) Anschlussknoten ${i7Data.aknoten} ${this.integralID2UUID.get(i7Data.aknoten)} besitzt keine Spannungsangabe in Knotenspannungen Map.`);
|
|
2238
|
+
}
|
|
1927
2239
|
}
|
|
1928
2240
|
}
|
|
1929
2241
|
else {
|
|
1930
2242
|
this.logger.debug(`Leitung ${i7Data.id} ${acLineSegmentZiel.mrid} besitzt keinen Zielknoten.`);
|
|
1931
2243
|
}
|
|
2244
|
+
cimModel.addACLineSegment(acLineSegmentZiel);
|
|
1932
2245
|
const stkBaseVoltage = acLineSegments.find(elem => elem.baseVoltage !== undefined);
|
|
1933
2246
|
if (!stkBaseVoltage) {
|
|
1934
|
-
this.logger.error(`Leitung ${i7Data.id}: Spannung konnte nicht bestimmt werden.`);
|
|
1935
|
-
continue;
|
|
2247
|
+
this.logger.error(`Leitung ${i7Data.id} ${acLineSegmentStart.mrid}: Spannung konnte nicht bestimmt werden.`);
|
|
1936
2248
|
}
|
|
1937
|
-
|
|
1938
|
-
acLineSegment
|
|
1939
|
-
|
|
1940
|
-
}
|
|
1941
|
-
|
|
1942
|
-
|
|
1943
|
-
|
|
1944
|
-
|
|
1945
|
-
|
|
2249
|
+
else {
|
|
2250
|
+
for (const acLineSegment of acLineSegments) {
|
|
2251
|
+
acLineSegment.baseVoltage = stkBaseVoltage.baseVoltage;
|
|
2252
|
+
}
|
|
2253
|
+
if (equivalentInjection) {
|
|
2254
|
+
equivalentInjection.baseVoltage = stkBaseVoltage.baseVoltage;
|
|
2255
|
+
}
|
|
2256
|
+
}
|
|
2257
|
+
let idx = 0;
|
|
2258
|
+
while (idx < acLineSegments.length && !(line.subGeographicalRegion)) {
|
|
2259
|
+
let jdx = 0;
|
|
2260
|
+
let values = acLineSegments[idx].terminals.values();
|
|
2261
|
+
let tmp_terminal = values.next();
|
|
2262
|
+
while (tmp_terminal.value && !(line.subGeographicalRegion)) {
|
|
2263
|
+
let terminal = tmp_terminal.value;
|
|
2264
|
+
const connectivityNodeContainer = (_c = terminal.connectivityNode) === null || _c === void 0 ? void 0 : _c.connectivityNodeContainer;
|
|
2265
|
+
if (connectivityNodeContainer && !(connectivityNodeContainer instanceof Line_1.Line)) {
|
|
2266
|
+
const substation = this.determineEquipmentContainer('Substation', cimModel, connectivityNodeContainer);
|
|
2267
|
+
if (substation) {
|
|
2268
|
+
line.subGeographicalRegion = substation.subGeographicalRegion;
|
|
2269
|
+
substation.subGeographicalRegion.addLine(line);
|
|
2270
|
+
}
|
|
2271
|
+
}
|
|
2272
|
+
else {
|
|
2273
|
+
this.logger.error(`Leitung ${line.getUUID()} with Terminal ${terminal.getUUID()}: ConnectivityNode konnte nicht bestimmt werden.`);
|
|
2274
|
+
}
|
|
2275
|
+
tmp_terminal = values.next();
|
|
1946
2276
|
}
|
|
2277
|
+
idx++;
|
|
2278
|
+
}
|
|
2279
|
+
cimModel.addLine(line);
|
|
2280
|
+
this.addIdMapping(i7Data.id, line.getUUID(), integral_sql_1.Integral7TableNames.LEITUNG);
|
|
2281
|
+
if (!line.subGeographicalRegion) {
|
|
2282
|
+
this.logger.error(`Leitung ${i7Data.id} ${acLineSegmentStart.mrid}: SubGeographicalRegion konnte nicht bestimmt werden.`);
|
|
1947
2283
|
}
|
|
1948
|
-
const region = utils_1.createIfNotExitsGeoregionByName(cimModel, defaultValuesConfig.GeographicalRegion.name);
|
|
1949
|
-
const subregion = utils_1.createIfNotExitsSubGeoregionByName(cimModel, defaultValuesConfig.SubGeographicalRegion.name, region);
|
|
1950
|
-
line.subGeographicalRegion = subregion;
|
|
1951
2284
|
}
|
|
1952
2285
|
}
|
|
1953
2286
|
else {
|
|
@@ -1979,7 +2312,7 @@ class ConverterI7 {
|
|
|
1979
2312
|
this.logger.debug(`Längskondensator ${i7Data.id} ${seriesCompensator.mrid} besitzt keinen Zielknoten.`);
|
|
1980
2313
|
}
|
|
1981
2314
|
const ur = utils_2.getU(i7Data.ur, defaultValuesConfig.DefaultVoltage);
|
|
1982
|
-
const baseVoltage = util_create_1.createBaseVoltageIfNotExists(cimModel, ur);
|
|
2315
|
+
const baseVoltage = util_create_1.createBaseVoltageIfNotExists(cimModel, ur, this.exportFramesBoundary);
|
|
1983
2316
|
const i = utils_2.isNumericI7(i7Data.ir) ? utils_2.convertToNumberI7(i7Data.ir) : undefined;
|
|
1984
2317
|
const ukr = utils_2.isNumericI7(i7Data.ukr) ? utils_2.convertToNumberI7(i7Data.ukr) : undefined;
|
|
1985
2318
|
if (i > 0 && ukr > 0) {
|
|
@@ -2024,14 +2357,10 @@ class ConverterI7 {
|
|
|
2024
2357
|
if (this.isTableAvailable(integral_sql_1.Integral7TableNames.HGUE_LEITUNG) && integral7.hgueAnschlussKnotenIDs.length) {
|
|
2025
2358
|
const result = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.HGUE_LEITUNG, integral7.hgueAnschlussKnotenIDs));
|
|
2026
2359
|
for (const i7Data of result) {
|
|
2027
|
-
const dcLine = new DCLine_1.DCLine(utils_1.getUUID(i7Data['guid_dcline']),
|
|
2028
|
-
const i7Schluessel = integral_prefix_1.
|
|
2029
|
-
utils_2.ueberpruefeZeichenkette(i7Data.ukz) +
|
|
2030
|
-
integral_prefix_1.MITTIGER_PUNKT +
|
|
2031
|
-
utils_2.ueberpruefeZeichenkette(i7Data.kurzname) +
|
|
2032
|
-
integral_prefix_1.MITTIGER_PUNKT +
|
|
2360
|
+
const dcLine = new DCLine_1.DCLine(utils_1.getUUID(i7Data['guid_dcline']), i7Data.bezeichner);
|
|
2361
|
+
const i7Schluessel = integral_prefix_1.HGUELEITUNG_PRAEFIX +
|
|
2033
2362
|
utils_2.ueberpruefeZeichenkette(i7Data.bezeichner);
|
|
2034
|
-
const dcLineSegment = new DCLineSegment_1.DCLineSegment(utils_1.
|
|
2363
|
+
const dcLineSegment = new DCLineSegment_1.DCLineSegment(utils_1.generateUUID(), i7Data.bezeichner, i7Data.id.toString(), i7Schluessel);
|
|
2035
2364
|
dcLineSegment.resistance = i7Data.rdc;
|
|
2036
2365
|
dcLineSegment.equipmentContainer = dcLine;
|
|
2037
2366
|
const bipol = utils_2.convertToBooleanI7(i7Data.bipol);
|
|
@@ -2039,16 +2368,22 @@ class ConverterI7 {
|
|
|
2039
2368
|
const acDCConverterTarget = cimModel.getObject(this.integralID2UUID.get(i7Data.enetzobjekt));
|
|
2040
2369
|
const converterUnitStart = (_a = acDCConverterStart) === null || _a === void 0 ? void 0 : _a.equipmentContainer;
|
|
2041
2370
|
const converterUnitTarget = (_b = acDCConverterTarget) === null || _b === void 0 ? void 0 : _b.equipmentContainer;
|
|
2042
|
-
|
|
2043
|
-
|
|
2044
|
-
|
|
2045
|
-
|
|
2046
|
-
|
|
2047
|
-
|
|
2048
|
-
|
|
2049
|
-
|
|
2371
|
+
if (converterUnitStart && converterUnitTarget) {
|
|
2372
|
+
switch (bipol) {
|
|
2373
|
+
case (true): {
|
|
2374
|
+
converterUnitStart.operationMode = DCConverterOperatingModeKind_1.DCConverterOperatingModeKind.bipolar;
|
|
2375
|
+
converterUnitTarget.operationMode = DCConverterOperatingModeKind_1.DCConverterOperatingModeKind.bipolar;
|
|
2376
|
+
break;
|
|
2377
|
+
}
|
|
2378
|
+
default: {
|
|
2379
|
+
converterUnitStart.operationMode = DCConverterOperatingModeKind_1.DCConverterOperatingModeKind.monopolarGroundReturn;
|
|
2380
|
+
converterUnitTarget.operationMode = DCConverterOperatingModeKind_1.DCConverterOperatingModeKind.monopolarGroundReturn;
|
|
2381
|
+
}
|
|
2050
2382
|
}
|
|
2051
2383
|
}
|
|
2384
|
+
else {
|
|
2385
|
+
this.logger.debug(`HGÜ-Leitung ${i7Data.id} ${dcLineSegment.mrid}: zugehörende/r Konverter konnte nicht ermittelt werden.`);
|
|
2386
|
+
}
|
|
2052
2387
|
const startDCNode = getDCNodeFromConverter(acDCConverterStart);
|
|
2053
2388
|
if (startDCNode) {
|
|
2054
2389
|
const dcTerminal = new DCTerminal_1.DCTerminal(utils_1.generateUUID(), 'DCTerminal_HGÜ_Leitung');
|
|
@@ -2056,18 +2391,20 @@ class ConverterI7 {
|
|
|
2056
2391
|
dcTerminal.sequenceNumber = 1;
|
|
2057
2392
|
dcTerminal.dCConductingEquipment = dcLineSegment;
|
|
2058
2393
|
dcTerminal.dcNode = startDCNode;
|
|
2394
|
+
startDCNode.dcTerminals.set(dcTerminal.getUUID(), dcTerminal);
|
|
2059
2395
|
cimModel.addDCTerminal(dcTerminal);
|
|
2060
2396
|
}
|
|
2061
2397
|
else {
|
|
2062
2398
|
this.logger.debug(`HGÜ-Leitung ${i7Data.id} ${dcLineSegment.mrid} besitzt keinen Anfangsknoten. ${i7Data.anetzobjekt} ${this.integralID2UUID.get(i7Data.anetzobjekt)}`);
|
|
2063
2399
|
}
|
|
2064
|
-
const
|
|
2065
|
-
if (
|
|
2400
|
+
const targetDCNode = getDCNodeFromConverter(acDCConverterTarget);
|
|
2401
|
+
if (targetDCNode) {
|
|
2066
2402
|
const dcTerminal = new DCTerminal_1.DCTerminal(utils_1.generateUUID(), 'DCTerminal_HGÜ_Leitung');
|
|
2067
2403
|
dcTerminal.connected = true;
|
|
2068
2404
|
dcTerminal.sequenceNumber = 2;
|
|
2069
2405
|
dcTerminal.dCConductingEquipment = dcLineSegment;
|
|
2070
|
-
dcTerminal.dcNode =
|
|
2406
|
+
dcTerminal.dcNode = targetDCNode;
|
|
2407
|
+
targetDCNode.dcTerminals.set(dcTerminal.getUUID(), dcTerminal);
|
|
2071
2408
|
cimModel.addDCTerminal(dcTerminal);
|
|
2072
2409
|
}
|
|
2073
2410
|
else {
|
|
@@ -2149,10 +2486,11 @@ class ConverterI7 {
|
|
|
2149
2486
|
}
|
|
2150
2487
|
});
|
|
2151
2488
|
}
|
|
2152
|
-
convertTrafo2W(
|
|
2489
|
+
convertTrafo2W(frame, integral7, defaultValuesConfig, standortIDs) {
|
|
2153
2490
|
var _a;
|
|
2154
2491
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
2155
2492
|
if (this.isTableAvailable(integral_sql_1.Integral7TableNames.TRAFO2W)) {
|
|
2493
|
+
const cimModel = frame.cimModel;
|
|
2156
2494
|
const result = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.TRAFO2W, standortIDs));
|
|
2157
2495
|
const trafoIDs = result.map(obj => obj['id']);
|
|
2158
2496
|
const sternpunktKnotenMap = new Map();
|
|
@@ -2175,6 +2513,13 @@ class ConverterI7 {
|
|
|
2175
2513
|
this.logger.debug(`Trafo2W ${i7Data.id} besitzt keine Umspannanlage.`);
|
|
2176
2514
|
}
|
|
2177
2515
|
const powerTransformerInfo = this.cimModelDefault.getPowerTransformerInfoByName(i7Data.nametyp);
|
|
2516
|
+
if (this.blocktransformatoren.includes(utils_2.convertToNumberI7(i7Data.id))) {
|
|
2517
|
+
powerTransformer.isPartOfGeneratorUnit = true;
|
|
2518
|
+
}
|
|
2519
|
+
else {
|
|
2520
|
+
powerTransformer.isPartOfGeneratorUnit = false;
|
|
2521
|
+
}
|
|
2522
|
+
const schaltgruppe = i7Data.schaltgr;
|
|
2178
2523
|
const powerTransformerEnd1 = new PowerTransformerEnd_1.PowerTransformerEnd(utils_1.getUUID(i7Data.guid_w1), `W1${powerTransformer.name}`);
|
|
2179
2524
|
powerTransformerEnd1.endNumber = 1;
|
|
2180
2525
|
const pkr = utils_2.getPkrTrafo(i7Data, powerTransformerInfo, '');
|
|
@@ -2186,16 +2531,24 @@ class ConverterI7 {
|
|
|
2186
2531
|
const iLeer = utils_2.isNumericI7(i7Data.i_leer) ? utils_2.convertToNumberI7(i7Data.i_leer) : 0;
|
|
2187
2532
|
powerTransformerEnd1.r = utils_2.calculateR(ur, pkr, sr);
|
|
2188
2533
|
powerTransformerEnd1.x = utils_2.calculateX(ur, ukr, sr, powerTransformerEnd1.r);
|
|
2189
|
-
powerTransformerEnd1.g = utils_2.calculateG(ur, p0)
|
|
2190
|
-
powerTransformerEnd1.b = utils_2.calculateB(ur, sr, iLeer, p0)
|
|
2534
|
+
powerTransformerEnd1.g = utils_2.calculateG(ur, p0);
|
|
2535
|
+
powerTransformerEnd1.b = utils_2.calculateB(ur, sr, iLeer, p0);
|
|
2191
2536
|
powerTransformerEnd1.ratedU = ur;
|
|
2192
2537
|
powerTransformerEnd1.ratedS = sr;
|
|
2193
|
-
const
|
|
2194
|
-
const startTerminal = start ? this.createConnection(cimModel, powerTransformer, start, PhaseCode_1.PhaseCode.ABC, true, 1) : undefined;
|
|
2538
|
+
const startTerminal = this.createBoundaryConnection(frame, powerTransformer, i7Data.aknoten, PhaseCode_1.PhaseCode.ABC, 1);
|
|
2195
2539
|
if (!startTerminal)
|
|
2196
2540
|
this.logger.debug(`PowerTransformer2W ${i7Data.id} ${powerTransformer.mrid} besitzt keinen Anfangsknoten.`);
|
|
2197
|
-
this.setPowerTransformerEndProperties(
|
|
2198
|
-
|
|
2541
|
+
this.setPowerTransformerEndProperties(frame, powerTransformerEnd1, powerTransformer, startTerminal, sternpunktKnotenMap, integral7, ir1, i7Data, defaultValuesConfig);
|
|
2542
|
+
let equivalentInjection = undefined;
|
|
2543
|
+
if (startTerminal) {
|
|
2544
|
+
let bdf = this.getConnectedBoundaryModel(this.integralID2UUID.get(i7Data.aknoten));
|
|
2545
|
+
let tmp_cn = bdf === null || bdf === void 0 ? void 0 : bdf.cimModel.getConnectivityNode(startTerminal.getConnectivityNodeUUID());
|
|
2546
|
+
if (tmp_cn && tmp_cn.boundaryPoint) {
|
|
2547
|
+
equivalentInjection = this.createBoundaryEquivalentInjection(frame, tmp_cn);
|
|
2548
|
+
let baseVoltage = powerTransformerEnd1.getBaseVoltage();
|
|
2549
|
+
equivalentInjection.baseVoltage = baseVoltage;
|
|
2550
|
+
}
|
|
2551
|
+
}
|
|
2199
2552
|
const powerTransformerEnd2 = new PowerTransformerEnd_1.PowerTransformerEnd(utils_1.getUUID(i7Data.guid_w2), `W2${powerTransformer.name}`);
|
|
2200
2553
|
powerTransformerEnd2.endNumber = 2;
|
|
2201
2554
|
const sr2 = utils_2.getSrTrafo(i7Data, powerTransformerInfo, powerTransformerEnd2.endNumber, false);
|
|
@@ -2204,16 +2557,24 @@ class ConverterI7 {
|
|
|
2204
2557
|
powerTransformerEnd2.x = 0;
|
|
2205
2558
|
powerTransformerEnd2.ratedS = sr2;
|
|
2206
2559
|
powerTransformerEnd2.ratedU = ur2;
|
|
2207
|
-
const ir2 = (sr * Math.pow(10, 6) /
|
|
2208
|
-
const
|
|
2209
|
-
const zielTerminal = ziel ? this.createConnection(cimModel, powerTransformer, ziel, PhaseCode_1.PhaseCode.ABC, true, 2) : undefined;
|
|
2560
|
+
const ir2 = (sr * Math.pow(10, 6) / ur2 * 1000) / Math.sqrt(3);
|
|
2561
|
+
const zielTerminal = this.createBoundaryConnection(frame, powerTransformer, i7Data.eknoten, PhaseCode_1.PhaseCode.ABC, 2);
|
|
2210
2562
|
if (!zielTerminal)
|
|
2211
2563
|
this.logger.debug(`PowerTransformer2W ${i7Data.id} ${powerTransformer.mrid} besitzt keinen Zielknoten.`);
|
|
2212
|
-
this.setPowerTransformerEndProperties(
|
|
2213
|
-
|
|
2214
|
-
|
|
2215
|
-
|
|
2216
|
-
|
|
2564
|
+
this.setPowerTransformerEndProperties(frame, powerTransformerEnd2, powerTransformer, zielTerminal, sternpunktKnotenMap, integral7, ir2, i7Data, defaultValuesConfig);
|
|
2565
|
+
if (zielTerminal) {
|
|
2566
|
+
let bdf = this.getConnectedBoundaryModel(this.integralID2UUID.get(i7Data.aknoten));
|
|
2567
|
+
let tmp_cn = bdf === null || bdf === void 0 ? void 0 : bdf.cimModel.getConnectivityNode(zielTerminal.getConnectivityNodeUUID());
|
|
2568
|
+
if (tmp_cn && tmp_cn.boundaryPoint) {
|
|
2569
|
+
equivalentInjection = this.createBoundaryEquivalentInjection(frame, tmp_cn);
|
|
2570
|
+
let baseVoltage = powerTransformerEnd2.getBaseVoltage();
|
|
2571
|
+
equivalentInjection.baseVoltage = baseVoltage;
|
|
2572
|
+
}
|
|
2573
|
+
}
|
|
2574
|
+
powerTransformerEnd1.connectionKind = utils_2.getSchaltgruppe(schaltgruppe, powerTransformerEnd1.endNumber, powerTransformerEnd1.grounded);
|
|
2575
|
+
powerTransformerEnd1.phaseAngleClock = utils_2.getSchaltgruppeAngleClock(schaltgruppe, powerTransformerEnd1.endNumber);
|
|
2576
|
+
powerTransformerEnd2.connectionKind = utils_2.getSchaltgruppe(schaltgruppe, powerTransformerEnd2.endNumber, powerTransformerEnd2.grounded);
|
|
2577
|
+
powerTransformerEnd2.phaseAngleClock = utils_2.getSchaltgruppeAngleClock(schaltgruppe, powerTransformerEnd2.endNumber);
|
|
2217
2578
|
powerTransformer.sortTransformerEnd('ratedU', 'desc');
|
|
2218
2579
|
const powerTransformerEnds = [powerTransformerEnd1, powerTransformerEnd2];
|
|
2219
2580
|
const terminals = [startTerminal, zielTerminal];
|
|
@@ -2243,9 +2604,8 @@ class ConverterI7 {
|
|
|
2243
2604
|
}
|
|
2244
2605
|
}
|
|
2245
2606
|
}
|
|
2246
|
-
for (let i =
|
|
2247
|
-
|
|
2248
|
-
powerTransformerEnd.endNumber = i + 1;
|
|
2607
|
+
for (let i = 1; i <= powerTransformer.powerTransformerEnds.length; i++) {
|
|
2608
|
+
powerTransformer.powerTransformerEnds[i - 1].endNumber = i;
|
|
2249
2609
|
}
|
|
2250
2610
|
cimModel.addPowerTransformerEnd(powerTransformerEnd1);
|
|
2251
2611
|
cimModel.addPowerTransformerEnd(powerTransformerEnd2);
|
|
@@ -2258,9 +2618,11 @@ class ConverterI7 {
|
|
|
2258
2618
|
}
|
|
2259
2619
|
});
|
|
2260
2620
|
}
|
|
2261
|
-
convertTrafo3W(
|
|
2621
|
+
convertTrafo3W(frame, integral7, defaultValuesConfig, standortIDs) {
|
|
2622
|
+
var _a;
|
|
2262
2623
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
2263
2624
|
if (this.isTableAvailable(integral_sql_1.Integral7TableNames.TRAFO3W)) {
|
|
2625
|
+
const cimModel = frame.cimModel;
|
|
2264
2626
|
const result = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.TRAFO3W, standortIDs));
|
|
2265
2627
|
const trafoIDs = result.map(obj => obj['id']);
|
|
2266
2628
|
const trafoWicklungen = new Map();
|
|
@@ -2276,10 +2638,13 @@ class ConverterI7 {
|
|
|
2276
2638
|
this.logger.debug(`Tabelle ${integral_sql_1.Integral7TableNames.TRAFO3_WICKLUNG} ist nicht vorhanden.`);
|
|
2277
2639
|
}
|
|
2278
2640
|
const sternpunktKnotenMap = new Map();
|
|
2279
|
-
|
|
2280
|
-
|
|
2641
|
+
for (const elem of trafoIDs) {
|
|
2642
|
+
sternpunktKnotenMap.set(elem, new Map());
|
|
2643
|
+
}
|
|
2644
|
+
if (this.isTableAvailable(integral_sql_1.Integral7TableNames.STERNPUNKT_KNOTEN) && trafoIDs.length) {
|
|
2645
|
+
const sternpunktKnotenResult = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.STERNPUNKT_KNOTEN, trafoIDs));
|
|
2281
2646
|
for (const spKnoten of sternpunktKnotenResult) {
|
|
2282
|
-
sternpunktKnotenMap.set(spKnoten.
|
|
2647
|
+
(_a = sternpunktKnotenMap.get(spKnoten.netzobjekt)) === null || _a === void 0 ? void 0 : _a.set(spKnoten.id, spKnoten);
|
|
2283
2648
|
}
|
|
2284
2649
|
}
|
|
2285
2650
|
for (const i7Data of result) {
|
|
@@ -2292,6 +2657,13 @@ class ConverterI7 {
|
|
|
2292
2657
|
this.logger.debug(`Trafo3W ${i7Data.id} besitzt keine Umspannanlage.`);
|
|
2293
2658
|
}
|
|
2294
2659
|
const powerTransformerInfo = this.cimModelDefault.getPowerTransformerInfoByName(i7Data.nametyp);
|
|
2660
|
+
const schaltgruppe = i7Data.schaltgr;
|
|
2661
|
+
if (this.blocktransformatoren.includes(utils_2.convertToNumberI7(i7Data.id))) {
|
|
2662
|
+
powerTransformer.isPartOfGeneratorUnit = true;
|
|
2663
|
+
}
|
|
2664
|
+
else {
|
|
2665
|
+
powerTransformer.isPartOfGeneratorUnit = false;
|
|
2666
|
+
}
|
|
2295
2667
|
const pkr12 = utils_2.getPkrTrafo(i7Data, powerTransformerInfo, '12');
|
|
2296
2668
|
const pkr13 = utils_2.getPkrTrafo(i7Data, powerTransformerInfo, '13');
|
|
2297
2669
|
const pkr23 = utils_2.getPkrTrafo(i7Data, powerTransformerInfo, '23');
|
|
@@ -2304,100 +2676,91 @@ class ConverterI7 {
|
|
|
2304
2676
|
const ur1 = utils_2.getUrTrafo(i7Data, powerTransformerInfo, 1);
|
|
2305
2677
|
const ur2 = utils_2.getUrTrafo(i7Data, powerTransformerInfo, 2);
|
|
2306
2678
|
const ur3 = utils_2.getUrTrafo(i7Data, powerTransformerInfo, 3);
|
|
2307
|
-
const ir1 = sr1 *
|
|
2308
|
-
const ir2 = sr2 *
|
|
2309
|
-
const ir3 = sr3 *
|
|
2679
|
+
const ir1 = sr1 * Math.pow(10, 6) / ((ur1 * Math.pow(10, 3)) * Math.sqrt(3));
|
|
2680
|
+
const ir2 = sr2 * Math.pow(10, 6) / ((ur2 * Math.pow(10, 3)) * Math.sqrt(3));
|
|
2681
|
+
const ir3 = sr3 * Math.pow(10, 6) / ((ur3 * Math.pow(10, 3)) * Math.sqrt(3));
|
|
2310
2682
|
const pLeer = utils_2.getTrafoPleer(i7Data, powerTransformerInfo);
|
|
2311
2683
|
const iLeer = utils_2.getTrafoIleer(i7Data, powerTransformerInfo);
|
|
2312
2684
|
const impedanzW1 = utils_trafo3w_1.calculateImpedanzenTrafo3W(1, ur1, ur2, ur3, sr1, sr2, sr3, pkr12, pkr13, pkr23, ukr12, ukr13, ukr23, pLeer, iLeer);
|
|
2313
|
-
const impedanzW2 = utils_trafo3w_1.calculateImpedanzenTrafo3W(2, ur1, ur2, ur3, sr1, sr2, sr3, pkr12, pkr13, pkr23, ukr12, ukr13, ukr23,
|
|
2314
|
-
const impedanzW3 = utils_trafo3w_1.calculateImpedanzenTrafo3W(3, ur1, ur2, ur3, sr1, sr2, sr3, pkr12, pkr13, pkr23, ukr12, ukr13, ukr23,
|
|
2315
|
-
const schaltgruppe = i7Data.schaltgr;
|
|
2685
|
+
const impedanzW2 = utils_trafo3w_1.calculateImpedanzenTrafo3W(2, ur1, ur2, ur3, sr1, sr2, sr3, pkr12, pkr13, pkr23, ukr12, ukr13, ukr23, 0, 0);
|
|
2686
|
+
const impedanzW3 = utils_trafo3w_1.calculateImpedanzenTrafo3W(3, ur1, ur2, ur3, sr1, sr2, sr3, pkr12, pkr13, pkr23, ukr12, ukr13, ukr23, 0, 0);
|
|
2316
2687
|
const powerTransformerEnd1 = new PowerTransformerEnd_1.PowerTransformerEnd(utils_1.getUUID(i7Data.guid_w1), `W1 ${powerTransformer.name}`);
|
|
2317
2688
|
powerTransformerEnd1.endNumber = 1;
|
|
2318
2689
|
const wicklung1 = trafoWicklungen.get(i7Data.trafowicklung3w1);
|
|
2319
|
-
const
|
|
2320
|
-
const start = cimModel.getObject(knotenUUID);
|
|
2321
|
-
const terminal1 = start ? this.createConnection(cimModel, powerTransformer, start, PhaseCode_1.PhaseCode.ABC, true, 1) : undefined;
|
|
2690
|
+
const terminal1 = this.createBoundaryConnection(frame, powerTransformer, wicklung1.aknoten, PhaseCode_1.PhaseCode.ABC, 1);
|
|
2322
2691
|
if (!terminal1)
|
|
2323
2692
|
this.logger.debug(`PowerTransformer3W ${i7Data.id} ${powerTransformer.mrid} besitzt keinen Anfangsknoten.`);
|
|
2324
2693
|
powerTransformerEnd1.r = impedanzW1.r;
|
|
2325
2694
|
powerTransformerEnd1.x = impedanzW1.x;
|
|
2326
|
-
powerTransformerEnd1.g = impedanzW1.g
|
|
2327
|
-
powerTransformerEnd1.b = impedanzW1.b
|
|
2695
|
+
powerTransformerEnd1.g = impedanzW1.g;
|
|
2696
|
+
powerTransformerEnd1.b = impedanzW1.b;
|
|
2328
2697
|
powerTransformerEnd1.ratedU = ur1;
|
|
2329
2698
|
powerTransformerEnd1.ratedS = sr1;
|
|
2330
|
-
this.
|
|
2331
|
-
|
|
2332
|
-
powerTransformer.addPowerTransformerEnd(powerTransformerEnd1);
|
|
2699
|
+
this.setPowerTransformerEndProperties(frame, powerTransformerEnd1, powerTransformer, terminal1, sternpunktKnotenMap, integral7, ir1, i7Data, defaultValuesConfig);
|
|
2700
|
+
let equivalentInjection = undefined;
|
|
2333
2701
|
if (terminal1) {
|
|
2334
|
-
|
|
2335
|
-
|
|
2336
|
-
if (
|
|
2337
|
-
|
|
2702
|
+
let bdf = this.getConnectedBoundaryModel(this.integralID2UUID.get(wicklung1.aknoten));
|
|
2703
|
+
let tmp_cn = bdf === null || bdf === void 0 ? void 0 : bdf.cimModel.getConnectivityNode(terminal1.getConnectivityNodeUUID());
|
|
2704
|
+
if (tmp_cn && tmp_cn.boundaryPoint) {
|
|
2705
|
+
equivalentInjection = this.createBoundaryEquivalentInjection(frame, tmp_cn);
|
|
2706
|
+
let baseVoltage = powerTransformerEnd1.getBaseVoltage();
|
|
2707
|
+
equivalentInjection.baseVoltage = baseVoltage;
|
|
2338
2708
|
}
|
|
2339
2709
|
}
|
|
2340
|
-
|
|
2341
|
-
|
|
2342
|
-
}
|
|
2710
|
+
powerTransformerEnd1.connectionKind = utils_2.getSchaltgruppe(schaltgruppe, powerTransformerEnd1.endNumber, powerTransformerEnd1.grounded);
|
|
2711
|
+
powerTransformerEnd1.phaseAngleClock = utils_2.getSchaltgruppeAngleClock(schaltgruppe, powerTransformerEnd1.endNumber);
|
|
2343
2712
|
const wicklung2 = trafoWicklungen.get(i7Data.trafowicklung3w2);
|
|
2344
|
-
const
|
|
2345
|
-
const terminal2 = start ? this.createConnection(cimModel, powerTransformer, start2, PhaseCode_1.PhaseCode.ABC, true, 2) : undefined;
|
|
2713
|
+
const terminal2 = this.createBoundaryConnection(frame, powerTransformer, wicklung2.aknoten, PhaseCode_1.PhaseCode.ABC, 2);
|
|
2346
2714
|
if (!terminal2)
|
|
2347
2715
|
this.logger.debug(`PowerTransformer3W ${i7Data.id} ${powerTransformer.mrid} besitzt keinen Anfangsknoten.`);
|
|
2348
2716
|
const powerTransformerEnd2 = new PowerTransformerEnd_1.PowerTransformerEnd(utils_1.getUUID(i7Data.guid_w2), `W2 ${powerTransformer.name}`);
|
|
2349
2717
|
powerTransformerEnd2.endNumber = 2;
|
|
2350
2718
|
powerTransformerEnd2.r = impedanzW2.r;
|
|
2351
2719
|
powerTransformerEnd2.x = impedanzW2.x;
|
|
2352
|
-
powerTransformerEnd2.g = impedanzW2.g
|
|
2353
|
-
powerTransformerEnd2.b = impedanzW2.b
|
|
2720
|
+
powerTransformerEnd2.g = impedanzW2.g;
|
|
2721
|
+
powerTransformerEnd2.b = impedanzW2.b;
|
|
2354
2722
|
powerTransformerEnd2.ratedS = sr2;
|
|
2355
2723
|
powerTransformerEnd2.ratedU = ur2;
|
|
2356
|
-
this.setBaseVoltagePowerTransformerEnd(cimModel, powerTransformerEnd2);
|
|
2357
2724
|
powerTransformerEnd2.powerTransformer = powerTransformer;
|
|
2358
|
-
|
|
2725
|
+
this.setPowerTransformerEndProperties(frame, powerTransformerEnd2, powerTransformer, terminal2, sternpunktKnotenMap, integral7, ir1, i7Data, defaultValuesConfig);
|
|
2726
|
+
equivalentInjection = undefined;
|
|
2359
2727
|
if (terminal2) {
|
|
2360
|
-
|
|
2361
|
-
|
|
2362
|
-
if (
|
|
2363
|
-
|
|
2728
|
+
let bdf = this.getConnectedBoundaryModel(this.integralID2UUID.get(wicklung2.aknoten));
|
|
2729
|
+
let tmp_cn = bdf === null || bdf === void 0 ? void 0 : bdf.cimModel.getConnectivityNode(terminal2.getConnectivityNodeUUID());
|
|
2730
|
+
if (tmp_cn && tmp_cn.boundaryPoint) {
|
|
2731
|
+
equivalentInjection = this.createBoundaryEquivalentInjection(frame, tmp_cn);
|
|
2732
|
+
let baseVoltage = powerTransformerEnd2.getBaseVoltage();
|
|
2733
|
+
equivalentInjection.baseVoltage = baseVoltage;
|
|
2364
2734
|
}
|
|
2365
2735
|
}
|
|
2366
|
-
|
|
2367
|
-
|
|
2368
|
-
}
|
|
2736
|
+
powerTransformerEnd2.connectionKind = utils_2.getSchaltgruppe(schaltgruppe, powerTransformerEnd2.endNumber, powerTransformerEnd2.grounded);
|
|
2737
|
+
powerTransformerEnd2.phaseAngleClock = utils_2.getSchaltgruppeAngleClock(schaltgruppe, powerTransformerEnd2.endNumber);
|
|
2369
2738
|
const wicklung3 = trafoWicklungen.get(i7Data.trafowicklung3w3);
|
|
2370
|
-
const
|
|
2371
|
-
const terminal3 = start ? this.createConnection(cimModel, powerTransformer, start3, PhaseCode_1.PhaseCode.ABC, true, 3) : undefined;
|
|
2739
|
+
const terminal3 = this.createBoundaryConnection(frame, powerTransformer, wicklung3.aknoten, PhaseCode_1.PhaseCode.ABC, 3);
|
|
2372
2740
|
if (!terminal3)
|
|
2373
2741
|
this.logger.debug(`PowerTransformer3W ${i7Data.id} ${powerTransformer.mrid} besitzt keinen Anfangsknoten.`);
|
|
2374
2742
|
const powerTransformerEnd3 = new PowerTransformerEnd_1.PowerTransformerEnd(utils_1.getUUID(i7Data.guid_w3), `Wicklung 3 ${powerTransformer.name}`);
|
|
2375
2743
|
powerTransformerEnd3.endNumber = 3;
|
|
2376
2744
|
powerTransformerEnd3.r = impedanzW3.r;
|
|
2377
2745
|
powerTransformerEnd3.x = impedanzW3.x;
|
|
2378
|
-
powerTransformerEnd3.g = impedanzW3.g
|
|
2379
|
-
powerTransformerEnd3.b = impedanzW3.b
|
|
2746
|
+
powerTransformerEnd3.g = impedanzW3.g;
|
|
2747
|
+
powerTransformerEnd3.b = impedanzW3.b;
|
|
2380
2748
|
powerTransformerEnd3.ratedS = sr3;
|
|
2381
2749
|
powerTransformerEnd3.ratedU = ur3;
|
|
2382
|
-
this.setBaseVoltagePowerTransformerEnd(cimModel, powerTransformerEnd3);
|
|
2383
2750
|
powerTransformerEnd3.powerTransformer = powerTransformer;
|
|
2384
|
-
|
|
2751
|
+
this.setPowerTransformerEndProperties(frame, powerTransformerEnd3, powerTransformer, terminal3, sternpunktKnotenMap, integral7, ir1, i7Data, defaultValuesConfig);
|
|
2752
|
+
equivalentInjection = undefined;
|
|
2385
2753
|
if (terminal3) {
|
|
2386
|
-
|
|
2387
|
-
|
|
2388
|
-
if (
|
|
2389
|
-
|
|
2754
|
+
let bdf = this.getConnectedBoundaryModel(this.integralID2UUID.get(wicklung3.aknoten));
|
|
2755
|
+
let tmp_cn = bdf === null || bdf === void 0 ? void 0 : bdf.cimModel.getConnectivityNode(terminal3.getConnectivityNodeUUID());
|
|
2756
|
+
if (tmp_cn && tmp_cn.boundaryPoint) {
|
|
2757
|
+
equivalentInjection = this.createBoundaryEquivalentInjection(frame, tmp_cn);
|
|
2758
|
+
let baseVoltage = powerTransformerEnd3.getBaseVoltage();
|
|
2759
|
+
equivalentInjection.baseVoltage = baseVoltage;
|
|
2390
2760
|
}
|
|
2391
2761
|
}
|
|
2392
|
-
|
|
2393
|
-
|
|
2394
|
-
}
|
|
2395
|
-
powerTransformerEnd1.connectionKind = utils_2.getSchaltgruppe(schaltgruppe, powerTransformerEnd1.endNumber, [powerTransformerEnd1.ratedU, powerTransformerEnd2.ratedU, powerTransformerEnd3.ratedU]);
|
|
2396
|
-
powerTransformerEnd1.phaseAngleClock = utils_2.getSchaltgruppeAngleClock(schaltgruppe, powerTransformerEnd1.endNumber, [powerTransformerEnd1.ratedU, powerTransformerEnd2.ratedU, powerTransformerEnd3.ratedU]);
|
|
2397
|
-
powerTransformerEnd2.connectionKind = utils_2.getSchaltgruppe(schaltgruppe, powerTransformerEnd1.endNumber, [powerTransformerEnd1.ratedU, powerTransformerEnd2.ratedU, powerTransformerEnd3.ratedU]);
|
|
2398
|
-
powerTransformerEnd2.phaseAngleClock = utils_2.getSchaltgruppeAngleClock(schaltgruppe, powerTransformerEnd1.endNumber, [powerTransformerEnd1.ratedU, powerTransformerEnd2.ratedU, powerTransformerEnd3.ratedU]);
|
|
2399
|
-
powerTransformerEnd3.connectionKind = utils_2.getSchaltgruppe(schaltgruppe, powerTransformerEnd1.endNumber, [powerTransformerEnd1.ratedU, powerTransformerEnd2.ratedU, powerTransformerEnd3.ratedU]);
|
|
2400
|
-
powerTransformerEnd3.phaseAngleClock = utils_2.getSchaltgruppeAngleClock(schaltgruppe, powerTransformerEnd1.endNumber, [powerTransformerEnd1.ratedU, powerTransformerEnd2.ratedU, powerTransformerEnd3.ratedU]);
|
|
2762
|
+
powerTransformerEnd3.connectionKind = utils_2.getSchaltgruppe(schaltgruppe, powerTransformerEnd3.endNumber, powerTransformerEnd3.grounded);
|
|
2763
|
+
powerTransformerEnd3.phaseAngleClock = utils_2.getSchaltgruppeAngleClock(schaltgruppe, powerTransformerEnd3.endNumber);
|
|
2401
2764
|
powerTransformer.sortTransformerEnd('ratedU', 'desc');
|
|
2402
2765
|
const terminals = [terminal1, terminal2, terminal3];
|
|
2403
2766
|
const powerTransformerEnds = [powerTransformerEnd1, powerTransformerEnd2, powerTransformerEnd3];
|
|
@@ -2427,8 +2790,8 @@ class ConverterI7 {
|
|
|
2427
2790
|
}
|
|
2428
2791
|
}
|
|
2429
2792
|
}
|
|
2430
|
-
for (let i =
|
|
2431
|
-
powerTransformer.powerTransformerEnds[i].endNumber = i
|
|
2793
|
+
for (let i = 1; i <= powerTransformer.powerTransformerEnds.length; i++) {
|
|
2794
|
+
powerTransformer.powerTransformerEnds[i - 1].endNumber = i;
|
|
2432
2795
|
}
|
|
2433
2796
|
cimModel.addPowerTransformer(powerTransformer);
|
|
2434
2797
|
cimModel.addPowerTransformerEnd(powerTransformerEnd1);
|
|
@@ -2444,7 +2807,7 @@ class ConverterI7 {
|
|
|
2444
2807
|
}
|
|
2445
2808
|
setTransformerEndInfoProperties(wicklung, data, endNumber) {
|
|
2446
2809
|
const minstufe = `minstufe_s${endNumber}`;
|
|
2447
|
-
const
|
|
2810
|
+
const neutralstufe = `mittelstufe_s${endNumber}`;
|
|
2448
2811
|
const maxstufe = `maxstufe_s${endNumber}`;
|
|
2449
2812
|
const umax = `umax_s${endNumber}`;
|
|
2450
2813
|
const umin = `umin_s${endNumber}`;
|
|
@@ -2454,14 +2817,15 @@ class ConverterI7 {
|
|
|
2454
2817
|
wicklung.ratedU = new Voltage_1.Voltage(data[ur], UnitMultiplier_1.UnitMultiplier.k, UnitSymbol_1.UnitSymbol.V);
|
|
2455
2818
|
wicklung.tapActive = utils_2.convertToBooleanI7(data[gestufte_seite]);
|
|
2456
2819
|
const tapChangerInfo = new TapChangerInfo_1.TapChangerInfo(utils_1.generateUUID(), `TapChangerInfo_${data['id']}`);
|
|
2457
|
-
tapChangerInfo.highStep = data[maxstufe];
|
|
2458
|
-
tapChangerInfo.lowStep = data[minstufe];
|
|
2459
|
-
tapChangerInfo.neutralStep = data[
|
|
2820
|
+
tapChangerInfo.highStep = utils_2.convertToNumberI7(data[maxstufe]);
|
|
2821
|
+
tapChangerInfo.lowStep = utils_2.convertToNumberI7(data[minstufe]);
|
|
2822
|
+
tapChangerInfo.neutralStep = utils_2.convertToNumberI7(data[neutralstufe]);
|
|
2460
2823
|
wicklung.uMax = data[umax];
|
|
2461
2824
|
wicklung.uMin = data[umin];
|
|
2462
2825
|
}
|
|
2463
|
-
transformBoundaryModel(
|
|
2826
|
+
transformBoundaryModel(frame, masFrame) {
|
|
2464
2827
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
2828
|
+
const cimModel = frame.cimModel;
|
|
2465
2829
|
const substations = Array.from(cimModel.substations.values());
|
|
2466
2830
|
for (const substation of substations) {
|
|
2467
2831
|
const line = new Line_1.Line(substation.mrid, substation.name, substation.shortName, substation.description);
|
|
@@ -2503,84 +2867,149 @@ class ConverterI7 {
|
|
|
2503
2867
|
equipment.equipmentContainer = undefined;
|
|
2504
2868
|
cimModel.removeObject(equipment);
|
|
2505
2869
|
}
|
|
2870
|
+
let cnt = 1;
|
|
2506
2871
|
for (const connectivityNode of connectivityNodes) {
|
|
2507
2872
|
connectivityNode.connectivityNodeContainer = line;
|
|
2508
2873
|
line.addConnectivityNode(connectivityNode);
|
|
2874
|
+
const junction = new Junction_1.Junction(utils_1.generateUUID(), `${line.name} BD_Junc`, `Junction`, 'Junction for Geo');
|
|
2875
|
+
junction.equipmentContainer = line;
|
|
2876
|
+
const terminal = new Terminal_1.Terminal(utils_1.generateUUID(), 'boundary_junction_label', 'bd_jct_lab', 'terminal to connect junction to associated boundary ConnectivityNode', 1);
|
|
2877
|
+
terminal.conductingEquipment = junction;
|
|
2878
|
+
terminal.connectivityNode = connectivityNode;
|
|
2879
|
+
junction.terminals.set(terminal.getUUID(), terminal);
|
|
2880
|
+
line.addEquipment(junction);
|
|
2881
|
+
const location = substation.location;
|
|
2882
|
+
if (location) {
|
|
2883
|
+
const clonedLocation = new Location_1.Location(utils_1.generateUUID(), `Location ${cnt}`);
|
|
2884
|
+
clonedLocation.addPowerSystemResource(junction);
|
|
2885
|
+
clonedLocation.coordinateSystem = location.coordinateSystem;
|
|
2886
|
+
const clonedPositionPoint = new PositionPoint_1.PositionPoint(utils_1.generateUUID(), `PositionPoint ${cnt}`);
|
|
2887
|
+
clonedPositionPoint.xPosition = location.positionPoints[0].xPosition;
|
|
2888
|
+
clonedPositionPoint.yPosition = location.positionPoints[0].yPosition;
|
|
2889
|
+
clonedPositionPoint.location = clonedLocation;
|
|
2890
|
+
clonedLocation.addPositionPoint(clonedPositionPoint);
|
|
2891
|
+
masFrame.cimModel.addLocation(clonedLocation);
|
|
2892
|
+
}
|
|
2893
|
+
if (location && location.powerSystemResources.size && location.powerSystemResources.get(substation.mrid) !== undefined) {
|
|
2894
|
+
location.addPowerSystemResource(junction);
|
|
2895
|
+
junction.location = location;
|
|
2896
|
+
masFrame.addDependentModel(rdf_xml_1.RDF_XML.PROFILE_EQ_BD, frame.getModelUUID(rdf_xml_1.RDF_XML.PROFILE_EQ_BD));
|
|
2897
|
+
location.powerSystemResources.delete(substation.mrid);
|
|
2898
|
+
substation.location = undefined;
|
|
2899
|
+
cimModel.locations.delete(location.mrid);
|
|
2900
|
+
cimModel.removeObject(location);
|
|
2901
|
+
for (const positionPoint of location.positionPoints) {
|
|
2902
|
+
const idx = frame.cimModel.positionPoints.indexOf(positionPoint);
|
|
2903
|
+
if (idx > -1) {
|
|
2904
|
+
frame.cimModel.positionPoints.splice(idx, 1);
|
|
2905
|
+
}
|
|
2906
|
+
}
|
|
2907
|
+
masFrame.cimModel.addLocation(location);
|
|
2908
|
+
}
|
|
2909
|
+
else if (location) {
|
|
2910
|
+
const additionalLocation = new Location_1.Location(utils_1.generateUUID(), `Location ${cnt}`);
|
|
2911
|
+
additionalLocation.addPowerSystemResource(junction);
|
|
2912
|
+
additionalLocation.coordinateSystem = location.coordinateSystem;
|
|
2913
|
+
const additionalPositionPoint = new PositionPoint_1.PositionPoint(utils_1.generateUUID(), `PositionPoint ${cnt}`);
|
|
2914
|
+
additionalPositionPoint.xPosition = location.positionPoints[0].xPosition;
|
|
2915
|
+
additionalPositionPoint.yPosition = location.positionPoints[0].yPosition;
|
|
2916
|
+
additionalPositionPoint.location = additionalLocation;
|
|
2917
|
+
additionalLocation.addPositionPoint(additionalPositionPoint);
|
|
2918
|
+
masFrame.cimModel.addLocation(additionalLocation);
|
|
2919
|
+
}
|
|
2920
|
+
cimModel.addJunction(junction);
|
|
2921
|
+
cnt++;
|
|
2509
2922
|
}
|
|
2510
2923
|
cimModel.substations.delete(substation.mrid);
|
|
2511
2924
|
cimModel.removeObject(substation);
|
|
2512
|
-
const junction = new Junction_1.Junction(utils_1.generateUUID(), `BD_Junc/`, `Junction`, 'Junction for Geo');
|
|
2513
|
-
junction.equipmentContainer = line;
|
|
2514
|
-
line.addEquipment(junction);
|
|
2515
|
-
const location = substation.location;
|
|
2516
|
-
if (!location)
|
|
2517
|
-
continue;
|
|
2518
|
-
location.powerSystemResources.delete(substation.mrid);
|
|
2519
|
-
location.addPowerSystemResource(junction);
|
|
2520
|
-
junction.location = location;
|
|
2521
|
-
cimModel.addJunction(junction);
|
|
2522
2925
|
cimModel.addLine(line);
|
|
2523
2926
|
}
|
|
2524
2927
|
});
|
|
2525
2928
|
}
|
|
2526
2929
|
setACLineSegmentProperties(cimModel, acLineSegment, data, defaultValuesConfig) {
|
|
2527
|
-
|
|
2528
|
-
|
|
2529
|
-
if (!acLineSegment.baseVoltage) {
|
|
2530
|
-
if (data.un && data.un > 0) {
|
|
2531
|
-
voltage = data.un;
|
|
2532
|
-
}
|
|
2533
|
-
else if (assetType === null || assetType === void 0 ? void 0 : assetType.voltage) {
|
|
2534
|
-
voltage = assetType.voltage;
|
|
2535
|
-
}
|
|
2536
|
-
const baseVoltage = util_create_1.createBaseVoltageIfNotExists(cimModel, voltage);
|
|
2537
|
-
acLineSegment.baseVoltage = baseVoltage;
|
|
2930
|
+
if (utils_2.isNumericI7(data.laenge) && data.laenge <= 0) {
|
|
2931
|
+
data.flag_impedanzlos = 1;
|
|
2538
2932
|
}
|
|
2539
|
-
if (data.laenge) {
|
|
2933
|
+
if (utils_2.isNumericI7(data.laenge) && data.laenge > 0 && !data.flag_impedanzlos) {
|
|
2540
2934
|
acLineSegment.length = data.laenge;
|
|
2541
2935
|
}
|
|
2542
|
-
|
|
2543
|
-
acLineSegment.
|
|
2936
|
+
else {
|
|
2937
|
+
acLineSegment.length = 1;
|
|
2938
|
+
}
|
|
2939
|
+
const assetType = cimModel.getWireInfoByName(data.nametyp);
|
|
2940
|
+
if (utils_2.isNumericI7(data.r0) && data.r0 > 0 && !data.flag_impedanzlos) {
|
|
2941
|
+
acLineSegment.r0 = data.r0;
|
|
2942
|
+
}
|
|
2943
|
+
else if (assetType && !data.flag_impedanzlos) {
|
|
2944
|
+
acLineSegment.r0 = assetType.r0 * acLineSegment.length;
|
|
2544
2945
|
}
|
|
2545
2946
|
else {
|
|
2546
|
-
|
|
2547
|
-
acLineSegment.r0 = assetType.r0 * acLineSegment.length;
|
|
2548
|
-
}
|
|
2947
|
+
acLineSegment.r0 = 0;
|
|
2549
2948
|
}
|
|
2550
|
-
if (data.x0 && data.x0
|
|
2551
|
-
acLineSegment.x0 = data.
|
|
2949
|
+
if (utils_2.isNumericI7(data.x0) && data.x0 > 0 && !data.flag_impedanzlos) {
|
|
2950
|
+
acLineSegment.x0 = data.x0;
|
|
2951
|
+
}
|
|
2952
|
+
else if (assetType && !data.flag_impedanzlos) {
|
|
2953
|
+
acLineSegment.x0 = assetType.x0 * acLineSegment.length;
|
|
2552
2954
|
}
|
|
2553
2955
|
else {
|
|
2554
|
-
|
|
2555
|
-
|
|
2556
|
-
|
|
2956
|
+
acLineSegment.x0 = 0;
|
|
2957
|
+
}
|
|
2958
|
+
if (utils_2.isNumericI7(data.c0) && data.c0 > 0 && !data.flag_impedanzlos) {
|
|
2959
|
+
acLineSegment.b0ch = utils_2.calculateBC(data.c0, 50);
|
|
2557
2960
|
}
|
|
2558
|
-
if (
|
|
2559
|
-
acLineSegment.
|
|
2961
|
+
else if (assetType && !data.flag_impedanzlos) {
|
|
2962
|
+
acLineSegment.b0ch = utils_2.calculateBC(assetType.c0, 50) * data.laenge;
|
|
2560
2963
|
}
|
|
2561
2964
|
else {
|
|
2562
|
-
|
|
2563
|
-
|
|
2564
|
-
|
|
2965
|
+
acLineSegment.b0ch = 0;
|
|
2966
|
+
}
|
|
2967
|
+
if (utils_2.isNumericI7(data.c0) && data.c0 > 0 && !data.flag_impedanzlos) {
|
|
2968
|
+
acLineSegment.g0ch = utils_2.calculateG0ch(data.r0);
|
|
2565
2969
|
}
|
|
2566
|
-
if (
|
|
2567
|
-
acLineSegment.
|
|
2970
|
+
else if (assetType && !data.flag_impedanzlos) {
|
|
2971
|
+
acLineSegment.g0ch = utils_2.calculateG0ch(assetType.r0) * data.laenge;
|
|
2568
2972
|
}
|
|
2569
2973
|
else {
|
|
2570
|
-
|
|
2571
|
-
|
|
2572
|
-
|
|
2974
|
+
acLineSegment.g0ch = 0;
|
|
2975
|
+
}
|
|
2976
|
+
if (utils_2.isNumericI7(data.r1) && data.r1 > 0 && !data.flag_impedanzlos) {
|
|
2977
|
+
acLineSegment.r = data.r1;
|
|
2978
|
+
}
|
|
2979
|
+
else if (assetType && !data.flag_impedanzlos) {
|
|
2980
|
+
acLineSegment.r = assetType.r1 * data.laenge;
|
|
2981
|
+
}
|
|
2982
|
+
else {
|
|
2983
|
+
acLineSegment.r = 0;
|
|
2984
|
+
}
|
|
2985
|
+
if (utils_2.isNumericI7(data.x1) && data.x1 > 0 && !data.flag_impedanzlos) {
|
|
2986
|
+
acLineSegment.x = data.x1;
|
|
2987
|
+
}
|
|
2988
|
+
else if (assetType && !data.flag_impedanzlos) {
|
|
2989
|
+
acLineSegment.x = assetType.x1 * data.laenge;
|
|
2990
|
+
}
|
|
2991
|
+
else {
|
|
2992
|
+
acLineSegment.x = 0;
|
|
2993
|
+
}
|
|
2994
|
+
if (utils_2.isNumericI7(data.c1) && data.c1 > 0 && !data.flag_impedanzlos) {
|
|
2995
|
+
acLineSegment.bch = utils_2.calculateBC(data.c1, 50);
|
|
2573
2996
|
}
|
|
2574
|
-
|
|
2575
|
-
|
|
2576
|
-
|
|
2997
|
+
else if (assetType && !data.flag_impedanzlos) {
|
|
2998
|
+
acLineSegment.bch = utils_2.calculateBC(assetType.c1, 50) * data.laenge;
|
|
2999
|
+
}
|
|
3000
|
+
else {
|
|
3001
|
+
acLineSegment.bch = 0;
|
|
3002
|
+
}
|
|
3003
|
+
for (const terminalUUID of acLineSegment.terminalsUUIDs) {
|
|
3004
|
+
if (utils_2.isNumericI7(data.ir) && data.ir > 0) {
|
|
3005
|
+
this.setConductingEquipmentCurrentLimit(cimModel, acLineSegment.name, cimModel.terminals.get(terminalUUID), data.ir);
|
|
2577
3006
|
}
|
|
2578
3007
|
else if (assetType && assetType.ratedCurrent && assetType.ratedCurrent !== 0) {
|
|
2579
|
-
this.setConductingEquipmentCurrentLimit(cimModel, acLineSegment.name,
|
|
3008
|
+
this.setConductingEquipmentCurrentLimit(cimModel, acLineSegment.name, cimModel.terminals.get(terminalUUID), assetType.ratedCurrent);
|
|
2580
3009
|
}
|
|
3010
|
+
const psrType = utils_1.createIfNotExitsPSRType(cimModel, data.typ);
|
|
3011
|
+
acLineSegment.psrTypeUUID = psrType.mrid;
|
|
2581
3012
|
}
|
|
2582
|
-
const psrType = utils_1.createIfNotExitsPSRType(cimModel, data.typ);
|
|
2583
|
-
acLineSegment.psrTypeUUID = psrType.mrid;
|
|
2584
3013
|
}
|
|
2585
3014
|
setConductingEquipmentCurrentLimit(cimModel, name, terminal, ir) {
|
|
2586
3015
|
const currentLimit = new CurrentLimit_1.CurrentLimit(utils_1.generateUUID(), `${name}`);
|
|
@@ -2629,7 +3058,7 @@ class ConverterI7 {
|
|
|
2629
3058
|
if (object instanceof ConnectivityNode_1.ConnectivityNode) {
|
|
2630
3059
|
const cn = object;
|
|
2631
3060
|
terminal = new Terminal_1.Terminal(utils_1.generateUUID(), 'T');
|
|
2632
|
-
terminal.
|
|
3061
|
+
terminal.setConnectivityNode(cn);
|
|
2633
3062
|
cn.addTerminal(terminal);
|
|
2634
3063
|
cimModel.addTerminal(terminal);
|
|
2635
3064
|
}
|
|
@@ -2645,37 +3074,137 @@ class ConverterI7 {
|
|
|
2645
3074
|
}
|
|
2646
3075
|
return terminal;
|
|
2647
3076
|
}
|
|
3077
|
+
createBoundaryConnection(frame, conductingEquipment, i7ObjectID, phase, sequenceNumber) {
|
|
3078
|
+
const cimModel = frame.cimModel;
|
|
3079
|
+
const anschlussUUID = this.integralID2UUID.get(i7ObjectID);
|
|
3080
|
+
let terminal;
|
|
3081
|
+
if (cimModel.objects.has(anschlussUUID)) {
|
|
3082
|
+
terminal = this.createConnection(cimModel, conductingEquipment, cimModel.getObject(anschlussUUID), phase, true, sequenceNumber);
|
|
3083
|
+
}
|
|
3084
|
+
else {
|
|
3085
|
+
const frameBD = this.getConnectedBoundaryModel(anschlussUUID);
|
|
3086
|
+
if (frameBD) {
|
|
3087
|
+
const cimModelBD = frameBD.cimModel;
|
|
3088
|
+
const object = cimModelBD.getObject(anschlussUUID);
|
|
3089
|
+
let cn;
|
|
3090
|
+
if (object instanceof ConnectivityNode_1.ConnectivityNode) {
|
|
3091
|
+
cn = object;
|
|
3092
|
+
terminal = new Terminal_1.Terminal(utils_1.generateUUID(), 'T');
|
|
3093
|
+
terminal.connectivityNodeUUID = cn.mrid;
|
|
3094
|
+
terminal.phases = phase;
|
|
3095
|
+
terminal.connected = true;
|
|
3096
|
+
terminal.sequenceNumber = sequenceNumber ? sequenceNumber : 1;
|
|
3097
|
+
cimModel.addTerminal(terminal);
|
|
3098
|
+
}
|
|
3099
|
+
else if (object instanceof Terminal_1.Terminal) {
|
|
3100
|
+
terminal = object;
|
|
3101
|
+
cn = terminal.connectivityNode;
|
|
3102
|
+
cn === null || cn === void 0 ? void 0 : cn.terminals.delete(terminal.mrid);
|
|
3103
|
+
terminal.setConnectivityNode(undefined);
|
|
3104
|
+
terminal.setConnectivityNodeUUID(cn.getUUID());
|
|
3105
|
+
cimModelBD.terminals.delete(terminal.mrid);
|
|
3106
|
+
cimModel.addTerminal(terminal);
|
|
3107
|
+
}
|
|
3108
|
+
if (cn) {
|
|
3109
|
+
this.annotateBoundaryNode(frame.name, frame.isoCode, frame.tsoName, cn);
|
|
3110
|
+
}
|
|
3111
|
+
else {
|
|
3112
|
+
this.logger.error(`Für das Objekt ${conductingEquipment.constructor.name} ${conductingEquipment.getUUID()} konnte am I7-Objekt ${i7ObjectID} kein Grenz ConnenctivityNode bestimmt werden`);
|
|
3113
|
+
}
|
|
3114
|
+
if (terminal) {
|
|
3115
|
+
terminal.conductingEquipment = conductingEquipment;
|
|
3116
|
+
conductingEquipment.addTerminal(terminal);
|
|
3117
|
+
}
|
|
3118
|
+
}
|
|
3119
|
+
else {
|
|
3120
|
+
this.logger.error(`Für das Objekt ${conductingEquipment.constructor.name} ${conductingEquipment.getUUID()} konnte am I7-Objekt ${i7ObjectID} kein Grenzknoten bestimmt werden`);
|
|
3121
|
+
}
|
|
3122
|
+
}
|
|
3123
|
+
return terminal;
|
|
3124
|
+
}
|
|
3125
|
+
getConnectedBoundaryModel(anschlussUUID) {
|
|
3126
|
+
for (const frame of this.exportFramesBoundary.values()) {
|
|
3127
|
+
if (frame.cimModel.objects.has(anschlussUUID)) {
|
|
3128
|
+
return frame;
|
|
3129
|
+
}
|
|
3130
|
+
}
|
|
3131
|
+
return undefined;
|
|
3132
|
+
}
|
|
3133
|
+
createBoundaryEquivalentInjection(frame, cn) {
|
|
3134
|
+
let equivinj_exists = false;
|
|
3135
|
+
let equivalentInjection = undefined;
|
|
3136
|
+
frame.cimModel.equivalentInjections.forEach((equivinj, uuid) => {
|
|
3137
|
+
var _a;
|
|
3138
|
+
if (equivinj.name.match(frame.tsoName).length > 0 && ((_a = equivinj.terminals.values()) === null || _a === void 0 ? void 0 : _a.next().value.getConnectivityNodeUUID()) === cn.getUUID()) {
|
|
3139
|
+
equivinj_exists = true;
|
|
3140
|
+
}
|
|
3141
|
+
});
|
|
3142
|
+
if (!equivinj_exists) {
|
|
3143
|
+
let tmp_terminal = new Terminal_1.Terminal(utils_1.generateUUID(), 'T');
|
|
3144
|
+
tmp_terminal.setConnectivityNodeUUID(cn.mrid);
|
|
3145
|
+
tmp_terminal.phases = PhaseCode_1.PhaseCode.ABC;
|
|
3146
|
+
tmp_terminal.connected = true;
|
|
3147
|
+
tmp_terminal.sequenceNumber = 1;
|
|
3148
|
+
equivalentInjection = new EquivalentInjection_1.EquivalentInjection(utils_1.generateUUID(), `BDInj_${frame.tsoName}`);
|
|
3149
|
+
equivalentInjection.p = 0;
|
|
3150
|
+
equivalentInjection.q = 0;
|
|
3151
|
+
equivalentInjection.regulationStatus = false;
|
|
3152
|
+
equivalentInjection.addTerminal(tmp_terminal);
|
|
3153
|
+
tmp_terminal.setConductingEquipment(equivalentInjection);
|
|
3154
|
+
cn.addTerminal(tmp_terminal);
|
|
3155
|
+
frame.cimModel.addEquivalentInjection(equivalentInjection);
|
|
3156
|
+
if (tmp_terminal.getConductingEquipmentUUID() !== undefined) {
|
|
3157
|
+
frame.cimModel.addTerminal(tmp_terminal);
|
|
3158
|
+
}
|
|
3159
|
+
else {
|
|
3160
|
+
let stop = true;
|
|
3161
|
+
}
|
|
3162
|
+
}
|
|
3163
|
+
return equivalentInjection;
|
|
3164
|
+
}
|
|
2648
3165
|
determineEquipmentContainer(equipmentContainerType, cimModel, equipmentContainer) {
|
|
3166
|
+
let ret_val;
|
|
2649
3167
|
switch (equipmentContainerType) {
|
|
2650
3168
|
case ('Bay'): {
|
|
2651
|
-
|
|
3169
|
+
if (equipmentContainer instanceof Bay_1.Bay) {
|
|
3170
|
+
ret_val = equipmentContainer;
|
|
3171
|
+
}
|
|
3172
|
+
else {
|
|
3173
|
+
ret_val = undefined;
|
|
3174
|
+
}
|
|
3175
|
+
break;
|
|
2652
3176
|
}
|
|
2653
3177
|
case ('VoltageLevel'): {
|
|
2654
3178
|
if (equipmentContainer instanceof Bay_1.Bay) {
|
|
2655
|
-
|
|
3179
|
+
ret_val = equipmentContainer.getVoltageLevel();
|
|
3180
|
+
}
|
|
3181
|
+
else if (equipmentContainer instanceof VoltageLevel_1.VoltageLevel) {
|
|
3182
|
+
ret_val = equipmentContainer;
|
|
2656
3183
|
}
|
|
2657
|
-
|
|
3184
|
+
else {
|
|
3185
|
+
ret_val = undefined;
|
|
3186
|
+
}
|
|
3187
|
+
break;
|
|
2658
3188
|
}
|
|
2659
3189
|
case ('Substation'): {
|
|
2660
3190
|
if (equipmentContainer instanceof Bay_1.Bay) {
|
|
2661
3191
|
const voltageLevel = equipmentContainer.getVoltageLevel();
|
|
2662
|
-
|
|
3192
|
+
const subst_uuid = voltageLevel === null || voltageLevel === void 0 ? void 0 : voltageLevel.getSubstationUUID();
|
|
3193
|
+
ret_val = cimModel.getObject(subst_uuid);
|
|
2663
3194
|
}
|
|
2664
3195
|
else if (equipmentContainer instanceof VoltageLevel_1.VoltageLevel) {
|
|
2665
|
-
|
|
3196
|
+
ret_val = cimModel.getObject(equipmentContainer.getSubstationUUID());
|
|
2666
3197
|
}
|
|
2667
3198
|
else {
|
|
2668
|
-
|
|
3199
|
+
ret_val = equipmentContainer;
|
|
2669
3200
|
}
|
|
3201
|
+
break;
|
|
2670
3202
|
}
|
|
2671
3203
|
default: {
|
|
2672
|
-
|
|
3204
|
+
ret_val = undefined;
|
|
2673
3205
|
}
|
|
2674
3206
|
}
|
|
2675
|
-
|
|
2676
|
-
return cimModel.getObject(equipmentContainer.voltageLevelUUID);
|
|
2677
|
-
}
|
|
2678
|
-
return equipmentContainer;
|
|
3207
|
+
return ret_val;
|
|
2679
3208
|
}
|
|
2680
3209
|
getSpannungsbandTrafo2W(i7Data) {
|
|
2681
3210
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
@@ -2766,6 +3295,83 @@ class ConverterI7 {
|
|
|
2766
3295
|
resolve(status);
|
|
2767
3296
|
}));
|
|
2768
3297
|
}
|
|
3298
|
+
configExportFrames(exportConfig, defaultValuesConfig, tempDirPath) {
|
|
3299
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
3300
|
+
const geoRegions = yield this.convertGeoRegionen();
|
|
3301
|
+
const allSubGeoRegions = yield this.convertSubGeoRegionen(geoRegions, defaultValuesConfig);
|
|
3302
|
+
const boundaryExports = exportConfig.filter(elem => elem.boundary === true);
|
|
3303
|
+
const gridExports = exportConfig.filter(elem => elem.boundary === false);
|
|
3304
|
+
const boundaryFrames = this.initExportFrames(boundaryExports, geoRegions, allSubGeoRegions);
|
|
3305
|
+
for (const frame of boundaryFrames) {
|
|
3306
|
+
this.addDefaultObjectsLoadModel(frame.cimModel, defaultValuesConfig);
|
|
3307
|
+
this.addDefaultObjectsGeo(frame.cimModel, defaultValuesConfig);
|
|
3308
|
+
frame.initProfileXmlSerializers([rdf_xml_1.RDF_XML.PROFILE_GL, rdf_xml_1.RDF_XML.PROFILE_EQ_BD], tempDirPath);
|
|
3309
|
+
}
|
|
3310
|
+
this.exportFramesBoundary = this.associateGeoRegionsToExportFrames(boundaryFrames);
|
|
3311
|
+
const gridFrames = this.initExportFrames(gridExports, geoRegions, allSubGeoRegions);
|
|
3312
|
+
for (const frame of gridFrames) {
|
|
3313
|
+
this.addDefaultObjectsLoadModel(frame.cimModel, defaultValuesConfig);
|
|
3314
|
+
this.addDefaultObjectsGeo(frame.cimModel, defaultValuesConfig);
|
|
3315
|
+
frame.initProfileXmlSerializers([rdf_xml_1.RDF_XML.PROFILE_EQ, rdf_xml_1.RDF_XML.PROFILE_SSH, rdf_xml_1.RDF_XML.PROFILE_GL, rdf_xml_1.RDF_XML.PROFILE_AMPI7, rdf_xml_1.RDF_XML.PROFILE_DY], tempDirPath);
|
|
3316
|
+
}
|
|
3317
|
+
this.exportFrames = this.associateGeoRegionsToExportFrames(gridFrames);
|
|
3318
|
+
});
|
|
3319
|
+
}
|
|
3320
|
+
initExportFrames(exportConfig, geoRegions, subGeoRegions) {
|
|
3321
|
+
const frames = [];
|
|
3322
|
+
for (const exportEntry of exportConfig) {
|
|
3323
|
+
const exportFrame = new export_frame_i7_1.I7ExportFrame(exportEntry.name);
|
|
3324
|
+
exportFrame.tsoName = exportEntry.tsoName;
|
|
3325
|
+
exportFrame.isoCode = exportEntry.isoCode;
|
|
3326
|
+
exportFrame.boundary = exportEntry.boundary;
|
|
3327
|
+
for (const exportObject of exportEntry.objects) {
|
|
3328
|
+
switch (exportEntry.objectType) {
|
|
3329
|
+
case data_structures_i7_1.ExportObjectType.georegion: {
|
|
3330
|
+
const geoRegion = geoRegions.find(elem => elem.name === exportObject.name);
|
|
3331
|
+
if (!geoRegion) {
|
|
3332
|
+
this.logger.error(`Kein ${exportEntry.objectType} mit dem Namen ${exportObject.name} gefunden.`);
|
|
3333
|
+
continue;
|
|
3334
|
+
}
|
|
3335
|
+
exportFrame.cimModel.addGeographicalRegion(geoRegion);
|
|
3336
|
+
for (const subGeoRegion of geoRegion.regions) {
|
|
3337
|
+
exportFrame.cimModel.addSubGeographicalRegion(subGeoRegion);
|
|
3338
|
+
}
|
|
3339
|
+
break;
|
|
3340
|
+
}
|
|
3341
|
+
case data_structures_i7_1.ExportObjectType.subgeoregion: {
|
|
3342
|
+
const subGeoRegion = subGeoRegions.find(elem => elem.name === exportObject.name);
|
|
3343
|
+
if (!subGeoRegion) {
|
|
3344
|
+
this.logger.error(`Kein ${exportEntry.objectType} mit dem Namen ${exportObject.name} gefunden.`);
|
|
3345
|
+
continue;
|
|
3346
|
+
}
|
|
3347
|
+
const geoRegionNew = util_create_1.createGeoregion(utils_1.generateUUID(), exportObject.name, exportObject.name, 'Default GeographicalRegion');
|
|
3348
|
+
subGeoRegion.region.removeSubGeographicalRegion(subGeoRegion);
|
|
3349
|
+
geoRegionNew.addSubGeographicalRegion(subGeoRegion);
|
|
3350
|
+
subGeoRegion.region = geoRegionNew;
|
|
3351
|
+
exportFrame.cimModel.addGeographicalRegion(geoRegionNew);
|
|
3352
|
+
exportFrame.cimModel.addSubGeographicalRegion(subGeoRegion);
|
|
3353
|
+
break;
|
|
3354
|
+
}
|
|
3355
|
+
}
|
|
3356
|
+
}
|
|
3357
|
+
if (exportFrame.cimModel.subgeographicalRegions.size > 0) {
|
|
3358
|
+
frames.push(exportFrame);
|
|
3359
|
+
}
|
|
3360
|
+
else {
|
|
3361
|
+
this.logger.error(`Kein Export für ${exportEntry.name} möglich, da keine I7 ${exportEntry.objectType}-Objekte für ${exportEntry.objects.map(elem => elem.name).join(', ')} gefunden werden konnten`);
|
|
3362
|
+
}
|
|
3363
|
+
}
|
|
3364
|
+
return frames;
|
|
3365
|
+
}
|
|
3366
|
+
associateGeoRegionsToExportFrames(frames) {
|
|
3367
|
+
const exportFrames = new Map();
|
|
3368
|
+
for (const frame of frames) {
|
|
3369
|
+
for (const geoRegion of frame.cimModel.geographicalRegions.values()) {
|
|
3370
|
+
exportFrames.set(geoRegion.getUUID(), frame);
|
|
3371
|
+
}
|
|
3372
|
+
}
|
|
3373
|
+
return exportFrames;
|
|
3374
|
+
}
|
|
2769
3375
|
queryDataInChuncks(objectName, ids) {
|
|
2770
3376
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
2771
3377
|
const limit = 500;
|
|
@@ -2865,31 +3471,46 @@ class ConverterI7 {
|
|
|
2865
3471
|
coordinateSystem.crsUrn = crsUrn;
|
|
2866
3472
|
cimModel.addCoordinateSystem(coordinateSystem);
|
|
2867
3473
|
}
|
|
2868
|
-
setPowerTransformerEndProperties(
|
|
3474
|
+
setPowerTransformerEndProperties(frame, powerTransformerEnd, powerTransformer, terminal, sternpunktKnotenMap, integral7, ir, i7Data, defaultValuesConfig, windings) {
|
|
3475
|
+
const cimModel = frame.cimModel;
|
|
2869
3476
|
if (terminal) {
|
|
2870
3477
|
powerTransformerEnd.terminal = terminal;
|
|
2871
3478
|
this.setConductingEquipmentCurrentLimit(cimModel, 'W1 ' + powerTransformer.name, terminal, ir);
|
|
2872
|
-
if (sternpunktKnotenMap.has(i7Data.id)) {
|
|
3479
|
+
if (sternpunktKnotenMap.has(i7Data.id) && i7Data) {
|
|
2873
3480
|
if (sternpunktKnotenMap.get(i7Data.id).has(i7Data.aknknoten1p)) {
|
|
2874
|
-
this.convertTrafoGrounding(
|
|
3481
|
+
this.convertTrafoGrounding(frame, powerTransformer, powerTransformerEnd, integral7, sternpunktKnotenMap.get(i7Data.id).get(i7Data.aknknoten1p), defaultValuesConfig);
|
|
3482
|
+
}
|
|
3483
|
+
}
|
|
3484
|
+
else if (sternpunktKnotenMap.has(i7Data.id) && i7Data) {
|
|
3485
|
+
let winding = undefined;
|
|
3486
|
+
if (powerTransformerEnd.endNumber === 1) {
|
|
3487
|
+
winding = windings.get(i7Data.trafowicklung3w1);
|
|
3488
|
+
}
|
|
3489
|
+
else if (powerTransformerEnd.endNumber === 2) {
|
|
3490
|
+
winding = windings.get(i7Data.trafowicklung3w2);
|
|
3491
|
+
}
|
|
3492
|
+
else if (powerTransformerEnd.endNumber === 3) {
|
|
3493
|
+
winding = windings.get(i7Data.trafowicklung3w3);
|
|
3494
|
+
}
|
|
3495
|
+
if (sternpunktKnotenMap.get(i7Data.id).has(winding)) {
|
|
3496
|
+
this.convertTrafoGrounding(frame, powerTransformer, powerTransformerEnd, integral7, sternpunktKnotenMap.get(i7Data.id).get(winding.id), defaultValuesConfig);
|
|
2875
3497
|
}
|
|
2876
3498
|
}
|
|
3499
|
+
else {
|
|
3500
|
+
this.logger.debug(`Transformator ${i7Data.id} ${powerTransformer.mrid} hat eine unerwartete Wicklungszahl.`);
|
|
3501
|
+
}
|
|
2877
3502
|
}
|
|
2878
3503
|
else {
|
|
2879
3504
|
this.logger.debug(`Wicklung2W ${i7Data.id} ${powerTransformerEnd.endNumber} ${powerTransformerEnd.mrid} keine Terminalinstanz.`);
|
|
2880
3505
|
}
|
|
2881
|
-
this.setBaseVoltagePowerTransformerEnd(cimModel, powerTransformerEnd);
|
|
2882
|
-
powerTransformerEnd.powerTransformer = powerTransformer;
|
|
2883
|
-
powerTransformer.addPowerTransformerEnd(powerTransformerEnd);
|
|
2884
|
-
}
|
|
2885
|
-
setBaseVoltagePowerTransformerEnd(cimModel, powerTransformerEnd) {
|
|
2886
3506
|
if (powerTransformerEnd.ratedU) {
|
|
2887
|
-
|
|
2888
|
-
powerTransformerEnd.baseVoltage = baseVoltage;
|
|
3507
|
+
powerTransformerEnd.baseVoltage = util_create_1.createBaseVoltageIfNotExists(cimModel, powerTransformerEnd.ratedU, this.exportFramesBoundary);
|
|
2889
3508
|
}
|
|
2890
3509
|
else {
|
|
2891
3510
|
this.logger.debug(`Wicklung ${powerTransformerEnd.mrid} Nr. ${powerTransformerEnd.endNumber} keine Spannungsangabe.`);
|
|
2892
3511
|
}
|
|
3512
|
+
powerTransformerEnd.powerTransformer = powerTransformer;
|
|
3513
|
+
powerTransformer.addPowerTransformerEnd(powerTransformerEnd);
|
|
2893
3514
|
}
|
|
2894
3515
|
createPhaseTapChanger(i7Data, transformerEnd, cimModel, neutralU, connectivityNode, spannungsband) {
|
|
2895
3516
|
var _a, _b;
|
|
@@ -2914,11 +3535,11 @@ class ConverterI7 {
|
|
|
2914
3535
|
}
|
|
2915
3536
|
}
|
|
2916
3537
|
phaseTapChanger.ltcFlag = false;
|
|
2917
|
-
phaseTapChanger.lowStep = i7Data[`minstufe_s${transformerEnd.endNumber}`];
|
|
2918
|
-
phaseTapChanger.highStep = i7Data[`maxstufe_s${transformerEnd.endNumber}`];
|
|
2919
|
-
phaseTapChanger.neutralStep = i7Data[`mittelstufe_s${transformerEnd.endNumber}`];
|
|
2920
|
-
phaseTapChanger.normalStep = phaseTapChanger.neutralStep;
|
|
2921
|
-
phaseTapChanger.step = i7Data[`aktstufe_s${transformerEnd.endNumber}`];
|
|
3538
|
+
phaseTapChanger.lowStep = utils_2.convertToNumberI7(i7Data[`minstufe_s${transformerEnd.endNumber}`]);
|
|
3539
|
+
phaseTapChanger.highStep = utils_2.convertToNumberI7(i7Data[`maxstufe_s${transformerEnd.endNumber}`]);
|
|
3540
|
+
phaseTapChanger.neutralStep = utils_2.convertToNumberI7(i7Data[`mittelstufe_s${transformerEnd.endNumber}`]);
|
|
3541
|
+
phaseTapChanger.normalStep = utils_2.convertToNumberI7(phaseTapChanger.neutralStep);
|
|
3542
|
+
phaseTapChanger.step = utils_2.convertToNumberI7(i7Data[`aktstufe_s${transformerEnd.endNumber}`]);
|
|
2922
3543
|
phaseTapChanger.neutralU = neutralU;
|
|
2923
3544
|
transformerEnd.phaseTapChanger = phaseTapChanger;
|
|
2924
3545
|
phaseTapChanger.transformerEndUUID = transformerEnd.mrid;
|
|
@@ -2988,38 +3609,54 @@ class ConverterI7 {
|
|
|
2988
3609
|
tapChanger.tapChangerControl.terminal = terminal;
|
|
2989
3610
|
}
|
|
2990
3611
|
}
|
|
2991
|
-
convertTrafoGrounding(
|
|
2992
|
-
var _a, _b;
|
|
3612
|
+
convertTrafoGrounding(frame, powerTransformer, powerTransformerEnd, i7Modell, stpKnoten, defaultValuesConfig) {
|
|
3613
|
+
var _a, _b, _c, _d, _e, _f;
|
|
3614
|
+
const cimModel = frame.cimModel;
|
|
2993
3615
|
if (stpKnoten) {
|
|
2994
3616
|
const junctionUUID = i7Modell.sternPunktImpModel.stpSchieneJunctionUUIDs.get(stpKnoten.schaltelement1pelem);
|
|
2995
3617
|
const junction = i7Modell.sternPunktImpModel.junctions.get(junctionUUID);
|
|
2996
3618
|
powerTransformerEnd.grounded = true;
|
|
2997
3619
|
powerTransformerEnd.rground = defaultValuesConfig.TransformerEnd.rground;
|
|
2998
3620
|
if (!junctionUUID) {
|
|
3621
|
+
powerTransformerEnd.xground = defaultValuesConfig.TransformerEnd.xground;
|
|
2999
3622
|
}
|
|
3000
3623
|
else {
|
|
3001
|
-
|
|
3002
|
-
terminal.
|
|
3003
|
-
|
|
3004
|
-
|
|
3005
|
-
const pSpuleGroundImpedance = i7Modell.sternPunktImpModel.junctionUUIDstpImp.get(junctionUUID);
|
|
3006
|
-
const voltageLevel = this.getVoltageLevelByVoltage((_b = powerTransformer.equipmentContainer) === null || _b === void 0 ? void 0 : _b.voltageLevels, powerTransformerEnd.ratedU);
|
|
3007
|
-
if (!voltageLevel) {
|
|
3008
|
-
this.logger.debug(`Trafo ${powerTransformer === null || powerTransformer === void 0 ? void 0 : powerTransformer.mrid} hat kein EquipmentContainer`);
|
|
3009
|
-
}
|
|
3010
|
-
if (junction && voltageLevel) {
|
|
3011
|
-
junction.baseVoltage = (voltageLevel === null || voltageLevel === void 0 ? void 0 : voltageLevel.baseVoltage) ? voltageLevel === null || voltageLevel === void 0 ? void 0 : voltageLevel.baseVoltage : powerTransformerEnd.baseVoltage;
|
|
3012
|
-
junction.equipmentContainer = voltageLevel;
|
|
3624
|
+
let terminal;
|
|
3625
|
+
if (!((_a = powerTransformerEnd.terminal) === null || _a === void 0 ? void 0 : _a.connectivityNode) && this.UUID2Integral7ID.has((_b = powerTransformerEnd.terminal) === null || _b === void 0 ? void 0 : _b.connectivityNodeUUID)) {
|
|
3626
|
+
const i7ObjectID = (_d = this.UUID2Integral7ID.get((_c = powerTransformerEnd.terminal) === null || _c === void 0 ? void 0 : _c.connectivityNodeUUID)) === null || _d === void 0 ? void 0 : _d.find(elem => elem);
|
|
3627
|
+
terminal = this.createBoundaryConnection(frame, junction, i7ObjectID, PhaseCode_1.PhaseCode.ABC, 1);
|
|
3013
3628
|
}
|
|
3014
3629
|
else {
|
|
3015
|
-
this.
|
|
3016
|
-
}
|
|
3017
|
-
if (
|
|
3018
|
-
|
|
3019
|
-
|
|
3630
|
+
terminal = this.createConnection(cimModel, junction, (_e = powerTransformerEnd.terminal) === null || _e === void 0 ? void 0 : _e.connectivityNode, PhaseCode_1.PhaseCode.ABC, true, 1);
|
|
3631
|
+
}
|
|
3632
|
+
if (terminal) {
|
|
3633
|
+
terminal.name = 't_stp_trafo';
|
|
3634
|
+
if (junction)
|
|
3635
|
+
junction.name = (junction === null || junction === void 0 ? void 0 : junction.name) + '/Trafo';
|
|
3636
|
+
const pSpuleGroundImpedance = i7Modell.sternPunktImpModel.junctionUUIDstpImp.get(junctionUUID);
|
|
3637
|
+
const voltageLevel = this.getVoltageLevelByVoltage((_f = powerTransformer.equipmentContainer) === null || _f === void 0 ? void 0 : _f.voltageLevels, powerTransformerEnd.ratedU);
|
|
3638
|
+
if (!voltageLevel) {
|
|
3639
|
+
this.logger.debug(`Trafo ${powerTransformer === null || powerTransformer === void 0 ? void 0 : powerTransformer.mrid} hat kein EquipmentContainer`);
|
|
3640
|
+
}
|
|
3641
|
+
if (junction && voltageLevel) {
|
|
3642
|
+
junction.baseVoltage = (voltageLevel === null || voltageLevel === void 0 ? void 0 : voltageLevel.baseVoltage) ? voltageLevel.baseVoltage : powerTransformerEnd.baseVoltage;
|
|
3643
|
+
junction.equipmentContainer = voltageLevel;
|
|
3644
|
+
cimModel.addJunction(junction);
|
|
3645
|
+
}
|
|
3646
|
+
else {
|
|
3647
|
+
this.logger.debug(`TrafoObjektID ${powerTransformer === null || powerTransformer === void 0 ? void 0 : powerTransformer.mrid} hat keine Junction ${junctionUUID} oder VoltageLevel`);
|
|
3648
|
+
}
|
|
3649
|
+
if (pSpuleGroundImpedance) {
|
|
3650
|
+
pSpuleGroundImpedance.baseVoltage = (voltageLevel === null || voltageLevel === void 0 ? void 0 : voltageLevel.baseVoltage) ? voltageLevel.baseVoltage : powerTransformerEnd.baseVoltage;
|
|
3651
|
+
pSpuleGroundImpedance.equipmentContainer = voltageLevel;
|
|
3652
|
+
cimModel.addGroundingImpedance(pSpuleGroundImpedance);
|
|
3653
|
+
}
|
|
3654
|
+
else {
|
|
3655
|
+
this.logger.debug(`TrafoObjektID ${powerTransformer === null || powerTransformer === void 0 ? void 0 : powerTransformer.mrid} hat keine pSpuleGroundImpedance.`);
|
|
3656
|
+
}
|
|
3020
3657
|
}
|
|
3021
3658
|
else {
|
|
3022
|
-
this.logger.
|
|
3659
|
+
this.logger.error(`Die Erdnung TrafoObjekts ID ${powerTransformer === null || powerTransformer === void 0 ? void 0 : powerTransformer.mrid} konnte nicht abgebildet werden, da der Anschluss nicht bestimmt werden konnte.`);
|
|
3023
3660
|
}
|
|
3024
3661
|
}
|
|
3025
3662
|
}
|
|
@@ -3158,6 +3795,55 @@ class ConverterI7 {
|
|
|
3158
3795
|
this.UUID2Integral7ID.set(uuid, [i7ID]);
|
|
3159
3796
|
}
|
|
3160
3797
|
}
|
|
3798
|
+
annotateBoundaryNode(name, isoCode, tsoName, connectivityNode) {
|
|
3799
|
+
if (connectivityNode.fromEndName === undefined) {
|
|
3800
|
+
connectivityNode.boundaryPoint = true;
|
|
3801
|
+
connectivityNode.fromEndName = name;
|
|
3802
|
+
connectivityNode.fromEndIsoCode = isoCode;
|
|
3803
|
+
connectivityNode.fromEndNameTso = tsoName;
|
|
3804
|
+
}
|
|
3805
|
+
else if (connectivityNode.toEndName === undefined) {
|
|
3806
|
+
connectivityNode.boundaryPoint = true;
|
|
3807
|
+
connectivityNode.toEndName = name;
|
|
3808
|
+
connectivityNode.toEndIsoCode = isoCode;
|
|
3809
|
+
connectivityNode.toEndNameTso = tsoName;
|
|
3810
|
+
}
|
|
3811
|
+
else {
|
|
3812
|
+
this.logger.error(`Grenzknoten ${connectivityNode.name} mit der UUID ${connectivityNode.mrid} ist bereits belegt:
|
|
3813
|
+
fromEndName ${connectivityNode.fromEndName}
|
|
3814
|
+
fromEndIsoCode ${connectivityNode.fromEndIsoCode}
|
|
3815
|
+
fromEndNameTso ${connectivityNode.fromEndNameTso}
|
|
3816
|
+
toEndName ${connectivityNode.toEndName}
|
|
3817
|
+
toEndIsoCode ${connectivityNode.toEndIsoCode}
|
|
3818
|
+
toEndNameTso ${connectivityNode.toEndNameTso}
|
|
3819
|
+
name ${name}
|
|
3820
|
+
isoCode ${isoCode}
|
|
3821
|
+
tsoName ${tsoName}`);
|
|
3822
|
+
}
|
|
3823
|
+
}
|
|
3824
|
+
release(tempDirPath) {
|
|
3825
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
3826
|
+
return new Promise((resolve, reject) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
3827
|
+
try {
|
|
3828
|
+
this.mysqlController.closeConnection();
|
|
3829
|
+
this.cimModelDefault.purgeData();
|
|
3830
|
+
if (tempDirPath) {
|
|
3831
|
+
try {
|
|
3832
|
+
fs_1.default.rmdirSync(tempDirPath, { recursive: true });
|
|
3833
|
+
this.logger.debug(`${path_1.default} is deleted!`);
|
|
3834
|
+
}
|
|
3835
|
+
catch (err) {
|
|
3836
|
+
console.error(`Error while deleting ${path_1.default}.`);
|
|
3837
|
+
}
|
|
3838
|
+
}
|
|
3839
|
+
resolve({ status: 'successful', message: 'ok' });
|
|
3840
|
+
}
|
|
3841
|
+
catch (e) {
|
|
3842
|
+
reject({ status: 'error', message: JSON.stringify(e) });
|
|
3843
|
+
}
|
|
3844
|
+
}));
|
|
3845
|
+
});
|
|
3846
|
+
}
|
|
3161
3847
|
}
|
|
3162
3848
|
exports.ConverterI7 = ConverterI7;
|
|
3163
3849
|
function getDCNodeFromConverter(acDcConverter) {
|