Ladbare Datei für 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 Software Units erzeugen

Voraussetzung

Einleitung

Sie können mit TIA Portal Openness über die folgende Methode eine ladbare Datei für Software Units erzeugen: GenerateLoadable(FileInfo path, IEnumerable<PlcUnit> unit, TargetOption targetOption)

Hinweis

Das Erzeugen einer ladbaren Datei für Software Units wird bei der PLC1518 oder einem Untertyp und PLCs mit einer Firmware ab V2.8 unterstützt.

Einschränkung

Ladbare Dateien können nur für Software Units erstellt werden, die

  • keine Systembausteine enthalten

  • keine ProDiag-Bausteine enthalten

  • keine fehlersicheren Bausteine enthalten

  • keine OBs eines anderen Typs als ProgramCycle enthalten

  • keinen Baustein mit dynamischer Bindung enthalten

  • keine technologischen Objekte enthalten

  • keine Benutzer-Datentypen enthalten

Parameter und Enum-Werte

GenerateLoadable() akzeptiert zur Erzeugung einer ladbaren Datei für Software Units 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.

units

System.Collections.Generic.IEnumerable<Siemens.Engineering.SW.Units.PlcUnit>

Gibt die Software Units an, die in die ladbare Datei aufgenommen werden sollen.

PlcProgramLoader V1.0 unterstützt nur das Laden einer Software Unit.

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 Software Units zu erzeugen:

Kopiert den nachfolgenden Programmcode in die Zwischenablage.

private void GenerateLoadableFileSoftwareUnit(string loadablePath)

{

PlcSoftware plc = GetPlc();

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

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

var file = new FileInfo(loadablePath);

// Create a variable with name "unitProvider" to access the unit by calling

// the GetService() with the PlcUnitProvider type.

var unitProvider = plc.GetService<PlcUnitProvider>();

// Create a variable with name "units" for a list of software units.

var units = new List<PlcUnit>

{

// Accessing a specific unit with name "Unit_1"

unitProvider.UnitGroup.Units.Find("Unit_1") ?? throw new InvalidOperationException()

};

// The loadableProviderService generates a loadable file for units by calling

// the GenerateLoadable() with respective parameters.

try

{

loadableProviderService.GenerateLoadable(file, units, TargetOption.PlcSim);

}

// An EngineeringTargetInvocation exception is thrown

// if generation of the loadable file fails.

// The exception message contains hints on

// what caused the loadable file creation to fail.

catch (EngineeringTargetInvocationException e)

{

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 Dienstes 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.