Azyklische Daten
Bei Funktionsblöcken, die die azyklische Kommunikation mit TeSys™ island verwenden, ist für den Funktionsblock eine Referenz zu einem Hardware-Modul erforderlich, das die azyklischen Daten enthält. Diese Referenz wird normalerweise an der Funktionsblock-Schnittstelle als Eingabe des Typs „HW_IO“ genannt „i_hwSubmHWID“ bereitgestellt. Wenn ein Gerät im Siemens TIA Portal erstellt wird (z. B. durch Importieren einer AML-Datei), werden automatisch für alle Geräte, Module und Untermodule die Systemkonstanten mit den Werten für die Hardware-ID erstellt. Diese können direkt für die Parametrisierung des Zugriffs auf die azyklischen Daten eines Avatars oder Geräts verwendet werden. Die Bezeichnungen dieser Konstanten werden normalerweise nach dem folgenden Muster erstellt: <Gerätename>~<Modulname>~<Untermodul-Name> (Beispiel: „mytesysisland~AvPump02~Acyclic“).
Für den Zugriff auf die Asset-Management-Daten der TeSys™ island-Geräte werden diese im TeSys™ island ebenfalls als Module dargestellt. Für PROFINET IO und PROFIBUS DP werden die Gerätemodule jeweils in die Steckplätze beginnend mit Steckplatznummer 101 eingesetzt.
-
Bei PROFIBUS DP sind innerhalb eines Moduls keine Untermodule vorhanden. Deshalb gehören alle zyklischen und azyklischen Daten zum Modul selber und nicht zu den einzelnen Untermodulen. Das bedeutet, dass bei den PROFIBUS DP-Funktionsblöcken, die sowohl die zyklische als auch die azyklische Kommunikation umfassen, die Hardware-ID direkt von der Eingabe-Startadresse abgeleitet werden kann. Es muss keine zusätzliche Hardware-ID parametrisiert werden. Für die Funktionsblöcke, die nur die azyklische Kommunikation verwenden (hauptsächlich die Geräte-Asset-Management-Funktionsblöcke), muss die Hardware-ID des Moduls jedoch für die Funktionsblock-Schnittstelle bereitgestellt werden (Schnittstellenvariable „i_hwModuleHWID“).
-
Die Funktionsblöcke können nicht erkennen, ob es eine Übereinstimmung gibt zwischen dem Modul, das die Hardware-ID in den Funktionsblock-Schnittstellenreferenzen bereitgestellt hat, und dem Avatar- oder Gerätetyp, für den der Funktionsblock erstellt wurde. Daher liegt die Verantwortung bei Ihnen, sicherzustellen, dass die korrekten Hardware-IDs zusammen mit den entsprechenden Funktionsblöcken verwendet werden. Geschieht das nicht, kann das Ergebnis ein unerwartetes Verhalten des TeSys™ island sein.
Das Lesen oder Schreiben der azyklischen Daten muss mit einer steigenden Flanke am Funktionsblock-Eingang „i_xExecute“ ausgelöst werden. Das azyklische Lesen oder Schreiben wird jedoch nur gestartet, wenn der Funktionsblock aktiviert ist („i_xEnable“), kein Fehler erkannt wurde und die Eingangsvariable „i_xAzyklischeBusy“ „falsch“ ist. Mit der Variable „i_xAcyclicBusy„ können mehrere Instanzen von Funktionsblöcken, die die azyklische Kommunikation verwenden (entweder von der TeSys™ island-Bibliothek aus für das TIA Portal oder von jedem anderen Teil des SPS-Programms, der die Funktionen RDREC oder WRREC nutzt) gesperrt werden, um erkannte Fehler zu vermeiden. Das kann aufgrund der begrenzten Ressourcen für die azyklische Kommunikation der Siemens-SPS erforderlich sein. Jeder Funktionsblock mit azyklischer Kommunikation stellt auch einen Ausgang „q_xAcyclicBusy“ bereit, der auf „wahr“ eingestellt ist, während eine azyklische Lesen- oder Schreiben-Anforderung vom Funktionsblock ausgeführt wird. Dieser Ausgang kann zum Sperren von anderen Funktionsblöcken verwendet werden.
Wenn während der azyklischen Kommunikation ein Fehler erkannt wird, zeigt der Funktionsblock das durch eine steigende Flanke am Ausgang „q_xError“ zusammen mit einem entsprechenden Code „Fehler erkannt“ vom Datenblock „ConstTeSysIsland“ auf „q_dwErrorID“ an. Alle auf Kommunikationsergebnissen basierenden Ausgänge werden auf ihre Standardwerte zurückgesetzt werden (die gleiche Reaktion wie bei allen anderen erkannten Fehlern – siehe auch Zyklische Daten; für Informationen zu den Werten von „ConstTeSysIsland“ siehe Datenblock ConstTeSysIsland). Zusätzlich zu der ID des erkannten Fehlers stellt der Funktionsblock in einigen Fällen in der Variable „q_dwAcyclicStatus“ außerdem einen Statuscode für die azyklische Kommunikation bereit. Die nachstehende Tabelle enthält eine Übersicht über die azyklischen Statuscodes, die in Gebrauch sind.
Azyklische Statuscodes
Azyklischer Statuscode |
Beschreibung |
---|---|
Cdw_StsNoMsg |
Keine Angaben zum Status verfügbar (siehe auch Datenblock ConstTeSysIsland) |
Alle anderen |
TIA-Portal-spezifischer Status-/Fehlercode der verwendeten Systemfunktion
Weitere Informationen über die TIA-spezifischen Codes für erkannte Fehler finden Sie im Siemens TIA Portal-Informationssystem und in der Dokumentation des Herstellers. |
Wenn der Funktionsblock die azyklische Kommunikation erfolgreich abschließt, hat „q_xAcyclicBusy“ wieder den Status „falsch“, „q_dwErrorID“ zeigt den entsprechenden Statuscode an (siehe Datenblock ConstTeSysIsland) und die Daten, die von der Insel azyklisch gelesen wurden, werden zu den Ausgangsvariablen kopiert. Die Daten verbleiben an den Ausgängen, bis sie nach dem Abschluss einer neuen azyklischen Anforderung überschrieben werden, bis der Funktionsblock deaktiviert wird oder bis ein Fehler erkannt wird und die Ausgangsdaten mit Standardwerten überschrieben werden.