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.
Siehe Öffnen eines Projekts -
Die PLC muss sauber übersetzt sein
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:
|
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.
Siehe auch