---
title: "Add or update an IED"
---

# Add or update an IED

Add a new IED to an SCD from its ICD, IID or CID with addresses given out and a full preview, and take an IID from the IED configurator back into the SCD with its types merged.

**State:** modelled. Add IED from ICD/IID was run by adding seven committed ICD and IID files of seven makers (among them ABB REF620, OMICRON ISIO 200 and Siemens 7UT86) to a Siemens IEC 61850 System Configurator 7.20.50 SCD: the checks and the IEC schema found nothing new that the source did not have itself, all 30 addresses given out were unique, and xmllint validates the results. No vendor tool has opened the result, and no IID from a real configurator has been imported yet.

## Add an IED from its ICD, IID or CID

1. Open the SCD and run **Add IED from ICD/IID...**.
2. Pick the ICD, IID or CID and type the new IED name. A name that is taken, not a valid 2007B4 IED name, or `TEMPLATE` is refused as you type.
3. Connect each access point to a subnetwork (or a new one), and give an IP or leave it empty for the next free one.
4. Optionally bind the IED to a bay of the Substation section.
5. Read the preview: every value given out and where it came from (the ICD, the subnetwork, the station or the module's defaults), the references renamed, the types added or renamed on a clash, and anything the checks or the IEC schema find new. An IED the source names that the station does not have is listed: "IED X is not in the station; what names it stays unresolved".
6. Confirm. The change is one Undo step, and the changes are listed in the Energy log.

What the module does:

- **Names:** every reference inside the source that carries its own name follows the new name: the IED, its own inputs, its connected access points, report clients naming it, the source's `LNode` bindings, and the GoID, smvID, rptID and ldName that begin with it. Vendor `Private` data is left as it is.
- **Addresses:** the IP is the first free one of a range you give, or the next after the subnetwork's highest; mask and gateway are those most members have. Every GOOSE and Sampled Values control block gets a MAC address and APPID no control block of the station uses (see [Data sets and control blocks](https://neuralinverse.com/docs/modules/energy/control-blocks/)). VLAN-ID, VLAN-PRIORITY, MinTime and MaxTime come from you, the ICD, the subnetwork or station, or the defaults 000, 4, 4 ms and 1000 ms.
- **Types:** merged. A type the SCD has with the same content is reused; a type whose id the SCD uses for other content is renamed.
- **Place:** the IED goes after the last IED.

A second instance of one ICD gets its own equal copy of the types rather than reusing the first instance's, and vendor attributes on a source `LNode` are not kept.

## Update an IED from its IID

When the IED configurator hands back an IID:

1. Open the SCD and run **Update IED from IID...**.
2. Pick the IID.
3. The IED of the same name is replaced and its types merged. A type the SCD has with the same content is reused; a type whose id the SCD uses for other content is added as `<id>_<IED name>` (then `_2`, and so on) with every reference to it rewritten.
4. The change is one Undo step; what changed is listed in the **Energy** output channel from the semantic compare.

The IID's Communication and Substation sections are not taken, and types the SCD no longer uses are kept. An imported IED and its types carry the declarations of the vendor namespace prefixes their source declared, so copied vendor elements keep their meaning. Importing the same file again changes nothing. A CID exported by the module can be taken back the same way, for the IED it was cut for: on the public files, every CID taken back changed nothing, byte for byte.

## Not verified

- A vendor tool opening an SCD after either command, and an IID from a real configurator.
- The IED name rule against the standard's text.
- References from other IEDs to what an IID removed are left to the [checks](https://neuralinverse.com/docs/modules/energy/checks/).
- Windows.
