Voraussetzung
-
Die TIA Portal Openness-Anwendung ist mit dem TIA Portal verbunden.
Siehe Verbindung zum TIA Portal aufbauen -
Ein Projekt ist geöffnet.
Siehe Projekt öffnen -
Für Schreibzugriff ist der PLC offline.
Verwendung
Mit der Schnittstelle TIA Portal Openness API können Sie Attribute des Adressobjekts abrufen oder festlegen.
Ferner können Sie das aktuelle Prozessabbild einem OB zuweisen.
Auf die folgenden Attribute kann zugegriffen werden:
|
Attributname |
Datentyp |
Schreibbar |
Zugriff |
Beschreibung |
|---|---|---|---|---|
|
|
Bool |
r/w |
Dynamisches Attribut |
Isochronen Modus aktivieren/deaktivieren |
|
|
Int32 |
r/w |
Dynamisches Attribut |
Partitionsnummer des Prozessabbilds festlegen/abrufen |
|
|
Int64 |
r/w |
Dynamisches Attribut |
Nummer des Alarm-Organisationsbausteins festlegen/abrufen (nur klassischer Controller) |
|
|
Int32 |
r/w |
Modelliertes Attribut |
Neuen Wert für StartAddress festlegen/abrufen |
Einschränkung
-
Attribut
StartAddress-
Durch Festlegen von
StartAddresskann implizit dieStartAddressdes gegenteiligen IO-Typs am Namensmodul geändert werden. Durch Ändern der Eingangsadresse wird die Ausgangsadresse geändert. -
Der Schreibzugriff wird nicht für alle Geräte unterstützt.
-
Gepackte Adressen werden in TIA Portal Openness nicht unterstützt.
-
Durch Ändern der Adresse über TIA Portal Openness werden die zugewiesenen Variablen nicht neu verdrahtet.
-
-
Attribut
InterruptObNumber-
Nur zugänglich in Einstellungen mit S7-300 oder S7-400 Controllern. Bei S7-400 Controllern wird der Schreibzugriff unterstützt.
-
Programmcode: Attribute eines Adressobjekts abrufen oder festlegen
Um auf den isochronen Modus eines Adressobjekts zuzugreifen, ändern Sie den folgenden Programmcode:
|
Address address= ...; // read attribute bool attributeValue = (bool)address.GetAttribute("IsochronousMode"); // write attribute address.SetAttribute("IsochronousMode", true); |
Um auf das Attribut ProcessImage eines Adressobjekts zuzugreifen, ändern Sie folgenden Programmcode:
|
Address address= ...; // read attribute int attributeValue = (int)address.GetAttribute("ProcessImage"); // write attribute address.SetAttribute("ProcessImage", 7); |
Um auf das Attribut InterruptObNumber eines Adressobjekts zuzugreifen, ändern Sie folgenden Programmcode:
|
Address address= ...; // read attribute long attributeValue = (long)address.GetAttribute("InterrruptObNumber"); // write attribute address.SetAttribute("InterrruptObNumber", 42L); //default value = 40 |
Um auf das Attribut StartAddress eines Adressobjekts zuzugreifen, ändern Sie folgenden Programmcode:
|
Address address= ...; // read attribute int attributeValue = (int)address.GetAttribute("StartAddress"); // write attribute address.StartAddress = IntValueStartAddress; |
Programmcode: Das aktuelle Prozessabbild einem OB zuweisen
Um das aktuelle Prozessabbild einem OB zuweisen, ändern Sie den folgenden Programmcode:
|
OB obX =… Address address= ...; // assign PIP 5 to obX address.SetAttribute("ProcessImage", 5); try { address.AssignProcessImageToOrganizationBlock(obX); } catch(RecoverableException e) { Console.WriteLine(e.Message); } // remove this PIP-OB assignment try { address.AssignProcessImageToOrganizationBlock(null); } catch(RecoverableException e) { Console.WriteLine(e.Message); } |