Voraussetzung
-
Die TIA Portal Openness-Anwendung ist mit dem TIA Portal verbunden
Siehe Verbindung zum TIA Portal aufbauen -
Das TIA Portal-Projekt ist geöffnet
SieheProjekt öffnen -
Die PLC muss sauber übersetzt sein
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:
|
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.