SiVArc-Generierung - WinCC

SiVArc Openness

ft:publication_title
SiVArc Openness
Product
WinCC
Version
V20
Publication date
01/2025
Language
de-DE
SiVArc-Generierung

Voraussetzung

  • Starten Sie die TIA Portal Openness-Anwendung. Weitere Informationen zu Verbindungen finden Sie im Benutzerhandbuch zum TIA Portal.

  • Ein mit einem HMI-Gerät verbundenes TIA Portal-Projekt ist vorhanden und der PLC konfiguriert.

Wichtige Hinweise

  • Stellen Sie sicher, dass die SiVArc-Lizenz auf Ihrem PC installiert ist, andernfalls wird während der Generierung eine Ausnahme gemeldet - "SiVArc-Lizenz fehlt; eine SiVArc-Lizenz ist für die Änderung von Daten obligatorisch".

  • Stellen Sie sicher, dass ein gültiger Gerätename verwendet wird, andernfalls wird eine Ausnahme gemeldet - "HMI-Gerät 'Gerätename' nicht gefunden".

  • Stellen Sie sicher, dass ein gültiger PLC-Name aufgerufen wird, andernfalls wird eine Ausnahme gemeldet - "PLC-Gerät 'PLC-Gerätename' nicht gefunden".

  • Stellen Sie sicher, dass der Name eines unterstützten Geräts verwendet wird, andernfalls wird eine Ausnahme gemeldet - "HMI-Gerät 'Gerätename' wird nicht unterstützt".

  • Stellen Sie sicher, dass der Name eines unterstützten PLC verwendet wird, andernfalls wird eine Ausnahme gemeldet - "PLC-Gerät 'PLC-Gerätename' wird nicht unterstützt".

  • Stellen Sie sicher, dass Sie einen gültigen Parameter GenerationOption übergeben. Wird kein Parameter übergeben, erfolgt die SiVArc-Generierung, und standardmäßig werden dafür die TIA Portal-Projekteinstellungen verwendet.

  • Stellen Sie sicher, dass Sie einen gültigen PLC-Namen verwenden, der nicht bei der vorherigen Generierung verwendet wurde, da ansonsten das System einfriert.

Generierungsoptionen - Enum (Merker)

SiVArc unterstützt Enum-Optionen, und Sie können in der API Generate eine Kombination aus zwei Werten übergeben. Die folgende Tabelle zeigt die Enum-Optionen:

SN

Werte

Beschreibung

1

None

Keine Auswahl getroffen, für die Generierung werden die Standardeinstellungen übernommen

2

AllTags

Es werden alle Variablen generiert

3

UsedHmiTags

Es werden nur relevante (verwendete) Variablen generiert

4

FullGeneration

Wenn die Option FullGeneration nicht ausgewählt ist, entscheidet SiVArc intern basierend auf der Konfiguration, ob eine vollständige Generierung oder eine Delta-Generierung durchgeführt werden muss.

Wenn Sie den Parameter FullGeneration übergeben, führt SiVArc eine erzwungene vollständige Generierung durch.

5

UserCreatedRules

Nur vom Benutzer erstellte Regeln werden ausgeführt

6

EnergySuiteRules

Nur EnergySuite-Regeln werden ausgeführt

7

AllRules

Alle Regeln werden ausgeführt

Um SiVArc zu generieren, verwenden Sie die folgende API:

sivarc.Generate("HMI_1", new List<string> {PLC_1},

GenerateOptions.AllTags | GenerateOptions. FullGeneration);

SiVArcGenerationResult und SivarcFeedbackMessage

Bei der SiVArc-Generierung wird bei erfolgreicher Generierung auf die folgenden Eigenschaften zugegriffen:

  • IsGenerationSuccessful - Informiert darüber, ob die SiVArc-Generierung erfolgreich ist.

  • WarningCount - Gesamtzahl von Warnungen nach der SiVArc-Generierung

  • ErrorCount - Gesamtzahl der Fehler nach der SiVArc-Generierung

  • Messages - Zusammensetzung der Rückmeldung

Um das SiVArc-Ergebnis zu generieren, verwenden Sie die folgende API:

private void WriteSivarcGenerationResults(SivarcGenerationResult result)

{

Console.WriteLine("Is SiVArc generation successful:" + result.IsGenerationSuccessful);

Console.WriteLine("Tatal warning count:" + result.WarningCount);

Console.WriteLine("Total error count:" + result.ErrorCount);

RecursivelyWriteMessages(result.Messages);

}

Bei der SiVArc-Generierung wird bei erfolgreicher Generierung auf die folgenden Rückmeldungen zugegriffen:

  • Path: Header-Text der Rückmeldung (Header-Meldungen haben immer ein leeres Beschreibungsfeld)

  • DateTime: Datum und Uhrzeit der Rückmeldung

  • MessageType: Typ der Rückmeldung

  • Description: Beschreibung/Inhalt der Rückmeldung (nur wenn der Pfad leer ist, um sicherzustellen, dass es sich nicht um eine Header-Meldung handelt)

  • WarningCount: Anzahl der Warnungen für eine Header-Meldung

  • ErrorCount: Anzahl der Fehler für eine Header-Meldung

  • Messages: Zusammensetzung der Rückmeldung (SivarcFeedbackMessage)

Mit dem folgenden Code-Snippet können Sie rekursive Rückmeldungen anzeigen:

private void RecursivelyWriteMessages(SivarcFeedbackMessageComposition messages)

{

foreach (SivarcFeedbackMessage message in messages)

{

Console.WriteLine("Path: " + message.Path);

Console.WriteLine("DateTime: " + message.DateTime);

Console.WriteLine("State: " + message.MessageType);

Console.WriteLine("Description: " + message.Description);

Console.WriteLine("Warning Count: " + message.WarningCount);

Console.WriteLine("Error Count: " + message.ErrorCount);

RecursivelyWriteMessages(message.Messages);

}

}

SiVArc-Generierung für mehrere HMI-Geräte

Mit der API Generate können Sie die SiVArc-Generierung ausführen, wenn mehrere HMI-Geräte mit mehreren PLCs mit projektierten Alarmregeln, Variablenregeln, Textlistenregeln, Kopierregeln, Bildregeln verbunden sind. Die API-Methode Generate besteht aus drei Argumenten:

  • Devices - Sammlung der Geräte, für die die SiVArc-Generierung ausgelöst wird

  • PLCs - Liste der für die SiVArc-Generierung erforderlichen PLCs

  • Generate Options - Liste der Einstellungen für die SiVArc-Generierung

Der folgende Code verdeutlicht die Methode Generate, die für die Generierung mit mehreren projektierten HMI-Geräten und PLCs verwendet wird:

if (sivarc != null)

{

SivacGenerationResult result = sivarc.Generate(

new List<string> {"HMI RT_1", "HMI_RT_2"},

new List<string> {"PLC_1", "PLC_2"}, GenerateOptions.AllTags | GenerationOptions.FullGeneration);

WriteGenerationResults(result);

}

  • Bei der SivarcGeneration API legt das System bei Ausführung mit GenerationOpions.none "All Rules" als Default-Regelsatz fest, wenn kein Regelsatz ausgewählt ist, was bedeutet, dass für das ausgewählte Gerät keine SiVArc-Generierung durchgeführt wird und HMI-Objekte für alle Regeln generiert werden.

SivarcGenerationResult result = sivarc.Generate(device name: “HMI_RT_1”, plcs: new List<string>() {“PLC_1”}, GenerationOpions.none);

  • Bei der SivarcGeneration API betrachtet das System bei Ausführung mit "User created rules" das als Regelsatz und generiert entsprechende Bilder mit Objekten.

Hinweis

  • Wenn "All Rules" mit "User created Rules" oder "Energy Suite Rules" ausgewählt ist, gibt das System während der Generierung "All Rules" den Vorrang und führt das als Regelsatz aus.

  • Wenn "User created Rules" mit "Energy Suite Rules" ausgewählt ist, gibt das System während der Generierung "User created Rules" den Vorrang und führt das als Regelsatz aus.

Ausnahme- und Sonderfälle

  • Wenn die API Generate mit dem Parameter Null aufgerufen wird, wird eine Ausnahme gemeldet - "Das Argument 'Argumentname' darf nicht null sein".

  • Wenn ein beliebiges HMI-Panel/Gerät während der Übergabe der PLC- und HMI-Geräte an die API Generate nicht mit der PLC verbunden ist, wird eine Ausnahme gemeldet - "Das HMI-Panel/Gerät '{0}' ist nicht mit den ausgewählten PLC-Geräten verbunden."

  • Wenn die API Generate mit einem ungültigen Gerätenamen aufgerufen wird, wird eine Ausnahme gemeldet - "HMI-Gerät 'Gerätename' nicht gefunden".

  • Wenn die API Generate mit einem ungültigen PLC-Namen aufgerufen wird, wird eine Ausnahme gemeldet - "PLC-Gerät 'PLC-Gerätename' nicht gefunden".

  • Wenn die API Generate mit einem nicht unterstützten Gerätenamen aufgerufen wird, wird eine Ausnahme gemeldet - "HMI-Gerät 'Gerätename' wird nicht unterstützt".

  • Wenn die API Generate mit einem nicht unterstützten PLC-Namen aufgerufen wird, wird eine Ausnahme gemeldet - "PLC-Gerät 'PLC-Gerätename' wird nicht unterstützt".

  • Wenn die API Generate mit einer Liste der PLC-Namen aufgerufen wird, die den PLC-Namen nicht enthält, der bei der vorherigen SiVArc-Generierung verwendet wurde, berücksichtigt das System die zuvor eingefrorene und neu

    übergebene Liste der PLC-Gerätenamen für die Generierung.

  • Wenn die API Generate mit einer Liste der HMI-Geräte/Panels aufgerufen wird und jedes HMI-Gerät/Panel mit einer PLC verbunden ist, wird die SiVArc-Generierung erfolgreich ausgeführt.