Ladbare Datei für Bausteine außerhalb von Software Units erzeugen - TIAPortal

TIA Portal Openness: API für die Automatisierung von Engineering-Workflows

ft:publication_title
TIA Portal Openness: API für die Automatisierung von Engineering-Workflows
Product
TIAPortal
Version
V20
Publication date
01/2025
Language
de-DE
Ladbare Datei für Bausteine außerhalb von Software Units erzeugen

Voraussetzung

Einleitung

Sie können mit TIA Portal Openness über die folgende Methode eine ladbare Datei für Bausteine außerhalb von Software Units erzeugen: GenerateLoadable(FileInfo path, IEnumerable<PlcBlock> blocks, TargetOption targetOption)

Hinweis

Das Erzeugen einer ladbaren Datei für Bausteine wird bei der PLC1518 oder einem Untertyp und PLCs mit einer Firmware V2.8 oder höher unterstützt.

Einschränkung

Bei der Auswahl des Bausteins gelten folgende Einschränkungen:

  • Der Baustein darf kein Systembaustein sein

  • Der Baustein darf kein PRODIAG-Baustein sein

  • Der Baustein darf kein Baustein mit Fehlersicherheit sein

  • Wenn der Baustein ein OB ist, darf er nur vom Typ ProgramCycle sein

  • Der Baustein darf keine dynamische Bindung aufweisen

  • Der Baustein darf kein Technologieobjekt (TO) sein

Parameter und Enum-Werte

GenerateLoadable() akzeptiert zur Erzeugung einer ladbaren Datei für Bausteine folgende Parameter:

Parametername

Datentyp

Beschreibung

Hinweis

path

FileInfo

Gibt Namen und Speicherort der ladbaren Datei an.

Bereits vorhandene ladbare Dateien können nicht ersetzt werden und das Erstellen des übergeordneten Verzeichnisses ist nicht möglich.

blocks

System.Collections.Generic.IEnumerable<Siemens.Engineering.SW.Blocks.PlcBlock>

Gibt die Liste der Programmbausteine außerhalb von Software Units zur Erzeugung der ladbaren Datei an

 

targetOption

Siemens.Engineering.SW.Loader.TargetOption

Gibt an, ob die ladbare Datei für eine echte oder simulierte PLC erstellt werden soll.

Wenn TargetOption.PlcSim übergeben wird, müssen alle Bausteine mit Simulationsunterstützung übersetzt worden sein

Der Parameter TargetOption verwendet zur Erzeugung einer ladbaren Datei folgende Enum-Werte:

Wert

Beschreibung

TargetOption.None

Der Standardwert sollte nicht verwendet werden.

TargetOption.Plc

Zur Erzeugung einer ladbaren Datei für eine echte PLC.

TargetOption.PlcSim

Zur Erzeugung einer ladbaren Datei für eine simulierte PLC.

Programmcode

Ändern Sie folgenden Programmcode, um eine ladbare Datei für Bausteine außerhalb von Software Units zu erzeugen:

Kopiert den nachfolgenden Programmcode in die Zwischenablage.

private void GenerateLoadableProgramBlock(string loadablePath)

{

// Getting an access to the PLC device of the project

PlcSoftware plc = GetPlc();

// The GetService() will return null if the PLC is not supported.

var loadableProviderService = plc.GetService<LoadableProvider>();

// Create a variable file with name "file" to access the loadable path

var file = new FileInfo(loadablePath);

// Create a variable with name "blocks" for a list of program blocks

// from the non-software unit program.

var blocks = new List<PlcBlock>

{

// Accessing a specific block

// with name "Block_1" under plc

plc.BlockGroup.Blocks.Find("Block_1") ?? throw new InvalidOperationException()

};

// The loadableProviderService generates a loadable file for program block

// by calling the GenerateLoadable() with respective parameters.

try

{

loadableProviderService.GenerateLoadable(file, blocks, TargetOption.Plc);

}

catch (EngineeringTargetInvocationException e)

{

// An EngineeringTargetInvocation exception is thrown

// if the generation of the loadable file fails.

// The exception message contains hints on

// what caused the loadable file creation to fail.

Console.WriteLine("Generating the loadable file failed.");

Console.WriteLine(e);

}

}

Ausnahme

Die folgenden möglichen Ausnahmemeldungen sind unten aufgeführt:

  • Eine ladbare Datei kann nur aus einer ganzen Software Unit, nicht aus einem einzelnen Baustein innerhalb einer Unit erstellt werden.

  • Die ausgewählten Bausteine stammen aus verschiedenen PLCs.

  • Zielverzeichnis nicht gefunden: '{0}'.

  • Es ist nicht möglich, eine ladbare Datei aus einem fehlersicheren Baustein zu erstellen: '{0}'.

  • Zieldatei ist bereits vorhanden: '{0}'.

  • Auf die ladbare Datei kann nicht zugegriffen werden.

  • Ein interner Fehler ist aufgetreten.

  • Die PLC muss übersetzt werden.

  • Interne Serialisierung der ladbaren Datei fehlgeschlagen.

  • Die interne Serialisierung ist fehlgeschlagen, weil die ladbare Datei entfernt wurde.

  • Der angegebene Pfad oder Dateiname oder beides überschreitet die vom System definierte maximale Länge.

  • Die PLC '{0}' wird nicht unterstützt.

  • Die übergeordnete PLC des Diensts und des Ziels weichen voneinander ab.

  • Ein(ige) Baustein(e) kann (können) nicht simuliert werden. Wenn es sich bei dem Baustein um einen Bibliotheksbaustein handelt, verwenden Sie eine Bibliothek mit Simulationsunterstützung. Andernfalls wählen Sie in den Projekteigenschaften die Option "Beim Übersetzen von Bausteinen Simulierbarkeit unterstützen" ("Support simulation during block compilation") und übersetzen Sie den Baustein erneut.

  • Es ist nicht möglich, eine ladbare Datei aus einem Systembaustein zu erstellen: '{0}'.

  • Der Zugriff auf die Datei wird verweigert.

  • Software Units, die PLC-Datentypen enthalten, werden nicht unterstützt.

  • Es ist nicht möglich, eine ladbare Datei aus (einem) ausgewählten Objekt(en) zu erstellen.

  • Es ist nicht möglich, eine ladbare Datei aus dem OB '{0}' zu erstellen, weil er nicht die Ereignisklasse 'Programmzyklus' aufweist.

  • Es ist nicht möglich, eine ladbare Datei aus einem ProDiag-Baustein zu erstellen: '{0}'.

  • Es ist nicht möglich, eine ladbare Datei aus dem ausgewählten Objekt zu erstellen: '{0}.

  • Es ist nicht möglich, eine ladbare Datei aus dem Baustein '{0}' mit aktivierter dynamischer Bindung zu erstellen.