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 |
|
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
|
Ausnahme- und Sonderfälle
-
Wenn die API
Generatemit 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
Generatenicht 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
Generatemit einem ungültigen Gerätenamen aufgerufen wird, wird eine Ausnahme gemeldet - "HMI-Gerät 'Gerätename' nicht gefunden". -
Wenn die API
Generatemit einem ungültigen PLC-Namen aufgerufen wird, wird eine Ausnahme gemeldet - "PLC-Gerät 'PLC-Gerätename' nicht gefunden". -
Wenn die API
Generatemit einem nicht unterstützten Gerätenamen aufgerufen wird, wird eine Ausnahme gemeldet - "HMI-Gerät 'Gerätename' wird nicht unterstützt". -
Wenn die API
Generatemit 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
Generatemit 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
Generatemit 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.