Voraussetzung
-
Die TIA Portal Openness-Anwendung ist mit dem TIA Portal verbunden. Weitere Informationen zu Verbindungen finden Sie im Benutzerhandbuch zum TIA Portal.
-
Ein TIA Portal-Projekt mit HMI-Geräten, Panel-Geräten und PLCs ist vorhanden.
Lesen und Schreiben eines PLC/HMI-Geräts
Dynamische Eigenschaften bestehen ausschließlich aus PLC-Gerätespalten und HMI-Gerätespalten.
Fall 1: Betrachten wir das Lesen dynamischer Eigenschaften für ein Regelobjekt. Sie können Attribute wie den Status des PLC- und HMI-Geräts wie im folgenden Code gezeigt lesen:
Um den Status des PLC-Geräts zu überprüfen, sofern für eine bestimmte Regel ausgewählt, müssen Sie den PLC-Namen an die Methode GetAttribute übergeben.
if (sivarc != null)
{
ScreenRule screenRule = sivarc.ScreenRules.Tables.Find("Default screen rule table").Rules.Find("ScreenRule")
var plcStatus = screenRule.GetAttribute("PLC_1");
Console.WriteLine ("PLC_1 status: " + plcStatus);
}
Um den Status des HMI-Geräts zu überprüfen, sofern für eine bestimmte Regel ausgewählt, müssen Sie den Runtime-Namen des HMI-Geräts an die Methode GetAttribute übergeben.
Bei Panels müssen Sie nur den Gerätenamen übergeben.
var hmiDeviceStatus = screenRule.GetAttribute("HMI_RT_2");
Console.WriteLine ("HMI_RT_2 status: " + HMIDeviceStatus);
Um den Status für alle Geräte zu lesen, gehen Sie folgendermaßen vor:
var devicestatus = screenRule.GetAttribute new List<string>
{
"PLC_1", "PLC_2", "HMI_RT_1", "HMI_RT_2";
}
foreach (var devicestatus in devicestatus)
{
Console.WriteLine ("PLC & HMI device status: " + devicestatus);
}
}
Fall 2: Betrachten wir das Schreiben dynamischer Eigenschaften für ein Regelobjekt. Sie können folgendermaßen Attribute wie PLC-Gerätespalten lesen, um den Status des PLC-Geräts zu überprüfen, sofern für eine Regel ausgewählt:
Um den Status des PLC-Geräts zu aktualisieren, sofern für eine bestimmte Regel ausgewählt, stellen Sie sicher, dass Sie den PLC-Namen an die Methode SetAttribute mit einem boolschen Wert übergeben.
if (sivarc != null)
{
ScreenRule screenRule = sivarc.ScreenRules.Tables.Find("Default screen rule table").Rules.Find("ScreenRule")
screenRule.SetAttribute("PLC_1", false);
}
Um den Status des HMI-Geräts zu aktualisieren, sofern für eine bestimmte Regel ausgewählt, stellen Sie sicher, dass Sie den Runtime-Namen des HMI-Geräts an die Methode SetAttribute mit einem boolschen Wert übergeben.
Bei Panels müssen Sie nur den Gerätenamen übergeben.
if (sivarc != null)
{
ScreenRule screenRule = sivarc.ScreenRules.Tables.Find("Default screen rule table").Rules.Find("ScreenRule");
screenRule.SetAttribute("HMI_RT_1", true);
}
Um den Status für alle Geräte zu aktualisieren, gehen Sie folgendermaßen vor:
if (sivarc != null)
{
var valuesToBeUpdate = new[]
{
new KeyValuePair<string, object>("PLC_2", true),
new KeyValuePair<string, object>("PLC_3", true),
new KeyValuePair<string, object>("HMI_RT_1", false),
new KeyValuePair<string, object>("HMI_1", true),
};
ScreenRule screenRule = sivarc.ScreenRules.Rules.Find("ScreenRule");
screenRule.SetAttributes(valuesToBeUpdate);
Ausnahmefälle
-
Wiederherstellbare Ausnahme: Beim Zugriff auf PLC/HMI-Gerätespalten über
GetAttributesfür ein anderes Regelobjekt, bei dem dynamische Attribute nicht unterstützt werden (Variablen- und Textlistenregel), zeigt das System eine wiederherstellbare Ausnahme an, z. B. {‘HMI_RT_1'wird vom Typ'Siemens.Engineering.SiVArc.TagRule’nicht unterstützt}. -
Nicht wiederherstellbare Ausnahme – Bei ungültigen PLC/HMI-Gerätenamen, die nicht auf ein Regelobjekt anwendbar sind, zeigt das System eine nicht wiederherstellbare (
NonRecoverable) Ausnahme an; dies gilt nur für Bild-, Melde- und Kopierregeln.
|
Hinweis Bei Kopierregeln können Sie den PLC-Status abfragen, obwohl die PLC-Spalte nicht unterstützt wird. Grund dafür ist das allgemeine Verhalten von Editoren, die Funktionalität von SiVArc wird dadurch nicht beeinflusst. |
Für den Zugriff auf den PLC-/HMI-Gerätestatus für Regel-/Regelgruppenobjekte wird das folgende dynamische Attribut verwendet: objectstatus = screenRule.GetAttribute("PLC device name");
Einschränkungen:
-
HMI-Gerätenamen mit alphanumerischen Zeichen dürfen keine Sonderzeichen enthalten, außer ‘_’
-
Um den HMI-Gerätestatus abzufragen, sind die Namen mit "HMI_" als Präfix, gefolgt vom aufgelösten Gerätenamen anzugeben. Beispiel: HMI-Gerätename: HMI_@#$RT_1, Für den Zugriff auf den Gerätenamen müssen Sie Parameter HMI_HMI_RT_1 angeben.
-
Projekt mit mehreren HMI-Geräten mit nur "_" als Sonderzeichen wird in den gleichen Gerätenamen aufgelöst, das System hängt die Zahl zusammen mit dem HMI-Gerätenamen an. Beispiel: Device_PLC_XYZ steht für das erste Gerät in der Projekthierarchie.
Die gleiche Vorgehensweise gilt für den Zugriff auf PLC-Gerätestatusdaten. -
Projekt mit zwei Geräten – HMI_@#RT_1 & HMI_%^RT_@#1; wenn beide in den gleichen Namen aufgelöst werden, also HMI_RT_1 nach Entfernen der Sonderzeichen (Projekt HMI_@#RT_1 HMI_%^RT_@#). Für den Zugriff auf den Status des ersten Geräts müssen Sie HMI_HMI_RT_1 als Parameter angeben, für den Zugriff auf den Status des zweiten Geräts müssen Sie HMI_HMI_RT_1_1 als Parameter angeben. Die gleiche Vorgehensweise gilt für den Zugriff auf PLC-Gerätestatusdaten.