A couple of humble Python scripts that I use sometimes to extract variables from SCL files.
Put together in a rush and clunky as hell, but they seem to do the job.
No external dependencies, only the Python standard lib.
Support all the SCL formats e.g. .icd, .cid. iid and .scd, if there are several IEDs into an scd file, it will extract all of them.
To extract the Data Objects (DO):
python icd_DO_extractor.py SCL_file_name
It is going to produce two files:
-
variables_extract_DO.csv -> all the DOs in the IEDs
-
variables_report.csv -> only the DOs linked to the reports set up in the IEDs
To extract the Data Objects (DO) with all their Data Attributes (DA) but also the dataset contents of teh GOOSE and SV control blocks:
python icd_DA_extractor.py SCL_file_name
It is going to produce three file:
- variables_extract_DA.csv -> all the DOs with their DAs in the IEDs
- variables_goose.csv -> content of the datasets linked to the GOOSE control blocks
- variables_sv.csv -> content of the datasets linked to the Sampled Values control blocks