Skip to main content

Siemenslib

Read what DIGSI writes into an SCL file beside the standard.

pip install siemenslib
from pathlib import Path
from siemenslib import digsi

scd = Path("station.scd")

for ied in digsi.read_ieds(scd):
    print(ied.name, ied.device, ied.digsi_name, ied.application_template)
# QPC2_TR1_AL11 7SJ85 AL11_UPC1 7SJ85_Non_Directional_OC
# QPC1_TR1_UPC1 7UT85 TR1_UPC1  7UT8x_2WindTransformer_Basic

for app in digsi.read_goose_applications(scd):
    print(app.name, app.app_id, app.ied_names)
# 138 kV  0001 ['QPC1_LT1_UPC1', 'QPC1_LT2_UPC1', ...]
# 34,5 kV 0002 ['QPC2_TR1_AL11', 'QPC2_TR1_AL12', ...]
module what it reads
siemenslib.digsi the Siemens-* privates and the siedig namespace in an SCD/ICD: SIPROTEC product codes, application templates, DIGSI names and revisions, and the GOOSE applications

Why this exists

An SCD from the Siemens IEC 61850 System Configurator is ordinary SCL with a second layer folded into it. The reference station — 14 IEDs — carries 2,473 <Private type="Siemens-*"> elements, and no vendor-neutral reader looks at one of them. They hold what a commissioning engineer actually asks about a SIPROTEC: which device it is, which application template it was built from, what DIGSI calls it, and when it last changed.

The GOOSE applications are the part that earns the library. DIGSI groups datasets into named applications — "138 kV", "34,5 kV" — and the grouping is by GUID:

<siedig:GooseApplication name="138 kV">
    <siedig:DataSet guidRef="1f741f02..." />        <!-- an opaque hex string -->

<IED name="QPC1_TR1_UPC1">  <LN0> <DataSet>
    <Private type="Siemens-GUID">1f741f02...</Private>    <!-- lives over here -->

Walking that link turns a list of hex strings into the IEDs that publish in each application. On the reference station all 14 datasets resolve, and the two applications split cleanly by voltage level.

What this does not do

It does not read the standard half of IEC 61850. An SCD's IEDs, GOOSE control blocks, addressing and data model are ordinary SCL, and SELlib's scl module reads them for any vendor — the reference station parses with it unchanged. A second reader for one standard format would be two things to keep right instead of one. This library is for what is Siemens' own.

It does not write. Reading is what a commissioning job needs from these privates; nothing here modifies a project DIGSI owns.

Status

Alpha, and proven against one real station: 14 IEDs, 2 GOOSE applications, read in 324 ms.

Licence

AGPL-3.0-or-later.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

siemenslib-0.1.0.tar.gz (20.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

siemenslib-0.1.0-py3-none-any.whl (19.3 kB view details)

Uploaded Python 3

File details

Details for the file siemenslib-0.1.0.tar.gz.

File metadata

  • Download URL: siemenslib-0.1.0.tar.gz
  • Upload date:
  • Size: 20.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for siemenslib-0.1.0.tar.gz
Algorithm Hash digest
SHA256 1e891599aa626c5648a137a44f1b539cb40361515b3995c3e8b1327a9b45b421
MD5 8452457bb7caf2e2df5133547baa78c4
BLAKE2b-256 155d5e3967fe6b34a9cef554857fe110a582c56201e89e7fe952ff1f1422a408

See more details on using hashes here.

Provenance

The following attestation bundles were made for siemenslib-0.1.0.tar.gz:

Publisher: release.yml on GuilhermeMarini/Siemenslib

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file siemenslib-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: siemenslib-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 19.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for siemenslib-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3306b52f3982aa16fbb4f93fc98cb89bde0019a035161c56c0c9b01f99a47929
MD5 447b2691b0e16f9268d825c55a9d1b77
BLAKE2b-256 41b722a65036f3714449494241c5d6223541c20c69f510d144446d18e5a5884d

See more details on using hashes here.

Provenance

The following attestation bundles were made for siemenslib-0.1.0-py3-none-any.whl:

Publisher: release.yml on GuilhermeMarini/Siemenslib

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page