PC-System laden - 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
PC-System laden

Voraussetzung

Einleitung

Sie können mit TIA Portal Openness die PC-Station Plus und die SW-CPU unabhängig voneinander laden. Um die Konfiguration der PC-Station Plus zu laden, müssen Sie das Geräteelement stationmanager des Baugruppenträgers des Geräts abrufen und den download provider als Dienst abrufen. Die SW-CPU selbst muss für den gleichen Vorgang als Geräteelement abgerufen werden.

Das Laden der SW-CPU ähnelt dem Laden eines regulären PC. Weitere Informationen zum Laden einer SW-CPU finden Sie unter Herunterladen zu den PLCs.

Einschränkung

Das Laden von F-aktivierten PLCs wird derzeit bei einer SW-CPU genau wie bei einer HW-CPU nicht unterstützt.

Programmcode: Software- und Hardware-Komponenten laden

Sie können Software- und Hardware-Komponenten über den Dienst DownloadProvider, der über ein angegebenes DeviceItem angefordert werden kann, auf ein Gerät laden. Wenn ein DeviceItem ein ladbares Ziel darstellt, wird bei Aufruf von GetService call eine Instanz von DownloadProvider zurückgegeben. Andernfalls wird null zurückgegeben.

Kopiert den nachfolgenden Programmcode in die Zwischenablage.

DeviceItem stationManager = dev.DeviceItems.First(p => p.PositionNumber == 0).DeviceItems.First(a => a.PositionNumber == 125);

DownloadProvider downloadProviderStationManager = stationManager.GetService<DownloadProvider>();

if (downloadProviderStationManager == null)

{

  //no download is possible for PC-Station

}

DeviceItem swCpu = dev.DeviceItems.First(p => p.Name == "Software PLC_1");

DownloadProvider downloadProviderSwCpu = swCpu.GetService<DownloadProvider>();

Ändern Sie folgenden Programmcode, um Netzwerkparameter zu konfigurieren:

Kopiert den nachfolgenden Programmcode in die Zwischenablage.

ConnectionConfiguration connConfig = downloadProviderStationManager.Configuration;

ConfigurationMode configurationMode = connConfig.Modes.Find("PN/IE");

ConfigurationPcInterface pcInterface = configurationMode.PcInterfaces.Find("ASIX AX88179 USB 3.0 to Gigabit Ethernet Adapter", 1);

ConfigurationTargetInterface targetInterface = pcInterface.TargetInterfaces.Find("2 X2");

IConfiguration targetConfiguration = pcInterface.TargetInterfaces[0];

bool isConfigured = connConfig.ApplyConfiguration(targetInterface);

if (isConfigured)

...

Es ist zu beachten, dass bei einem Neustart des Zielsystems nach dem Laden der Konfiguration von PC-Station Plus das Standardverhalten von Openness Warten ist. Das bedeutet, dass der Openness-Codefluss gestoppt wird, bis das Laden der ersten Stufe erfolgreich ist (und das Zielsystem neu gestartet ist) oder die Zeit überschritten oder ein Fehler aufgetreten ist.

Falls Sie nicht auf den Neustart warten wollen, können Sie eine Post-Ladeoption wählen, die sich WaitOnReboot nennt.

Kopiert den nachfolgenden Programmcode in die Zwischenablage.

//Post Download Configuration Delegate

 DownloadConfigurationDelegate postDownloadForPcStation = downloadConfiguration =>

 {

 WaitOnReboot waitOnReboot = downloadConfiguration as WaitOnReboot;

 if (waitOnReboot != null)

 {

 //In case user does not want to wait...

 waitOnReboot.CurrentSelection = WaitOnRebootSelections.NoAction;

 //In case user wants to wait... This is the default option anyway...

 //waitOnReboot.CurrentSelection = WaitOnRebootSelections.Wait;

 return;

 }

 };

Sie müssen die SW-CPU weiterhin separat laden, aber es muss sichergestellt werden, dass zuvor die PC-Station geladen wurde.

Kopiert den nachfolgenden Programmcode in die Zwischenablage.

DownloadResult downloadResult = null;

try

{

//WE FIRST DOWNLOAD PC-STATION

downloadResult = downloadProviderStationManager.Download(targetConfiguration, preDownloadForPcStation, postDownloadForPcStation, DownloadOptions.Hardware);

if (DownloadResultState.Error != downloadResult.State)

{

Console.WriteLine("The download is successful for pc-station");

}

}

catch (EngineeringTargetInvocationException e)

{

Console.WriteLine("Exception Thrown, Message: " + e.Message.ToString());

}

downloadResult = null;

try

{

downloadResult = downloadProviderSwCpu.Download(targetConfiguration, preDownloadForSwCpu, postDownloadForWinac, DownloadOptions.Hardware | DownloadOptions.Software);

if (DownloadResultState.Error != downloadResult.State)

{

Console.WriteLine("The download is successful for SW-CPU");

}

}

catch (EngineeringTargetInvocationException e)

{

Console.WriteLine("Exception Thrown, Message: " + e.Message.ToString());

 }

Das Laden der SW-CPU ähnelt dem Laden eines regulären PC. Weitere Informationen zum Laden einer SW-CPU finden Sie unter Herunterladen zu den PLCs.

Hinweis

Das Laden von F-aktivierten PLCs wird derzeit bei einer SW-CPU genau wie bei einer HW-CPU nicht unterstützt.

Eine Lademethode stößt auch die Übersetzung an. Es ist auch möglich, ein Geräteelement unabhängig zu übersetzen, und zwar mit dem folgenden Code-Snippet:

Kopiert den nachfolgenden Programmcode in die Zwischenablage.

ICompilable compileServiceSwCpu = swCpu.GetService<ICompilable>();

ICompilable compileServiceStationManager = stationManager.GetService<ICompilable>();

CompilerResult compileResultStationManager = compileServiceStationManager.Compile();

CompilerResult compileResultSwCpu = compileServiceStationManager.Compile();

bool compileCheck = !compileResultStationManager.State.Equals(CompilerResultState.Error);

if (compileCheck != true)

{

...

}