AS-i-Bus und Programm-Organisationseinheiten

Zwei Betriebsmodi kennt die Ablaufkontrollebene des Masters, die das Verhalten von Slaves beeinflussen:

  • Projektierungsmodus: In diesem werden die Slaves adressiert (mit einer Adresse versehen) und parametriert (Eigenschaften eingestellt). Alle angeschlossenen Slaves werden unabhängig von der Projektierungskonfiguration in den Datenaustausch einbezogen (aktiviert). Mit einem Befehl werden die neu projektierten Daten in die Liste der projektierten Slaves übernommen. Diese Betriebsart dient der Inbetriebnahme eines AS-i-Systems.
  • Geschützter Betriebsmodus: In dieser Betriebsart kommuniziert der Master mit den Slaves unter Prüfung der Listen LPS und LES auf Übereinstimmung und unter Ausgabe evtl. Fehlermeldungen. Der geschützte Betriebsmodus ist der normale Betriebsfall.

Datensicherung

Da gestörte Datentelegramme zu unübersehbaren Schäden in Anlageprozessen führen könnten, muss der AS-i-Bus fehlererkennend sein. Die Fehlererkennung liegt hauptsächlich in der verwendeten Codierungs- und Modulationsmethode, die es gestattet, Störungsbits zu entdecken. Ein sogenanntes Prüfbit ist zusätzlich noch im Telegrammformat vorgesehen. Das Analogwertübertragungsprinzip der Spezifikation 2.1 behält die Spezifikation 3.0 bei. Allerdings ist es nun auch möglich, eine Analogwertübertragung mit A/B-Slaves durchzuführen.
Weitere Neuerungen der Spezifikation 3.0:

  • Slaves mit digitalen und analogen Eingängen bzw. Ausgängen.
  • Übertragung serieller Daten bidirektional bei einem Slave. Diese Funktion ist zur Übertragung von Parametrierungs- bzw. Diagnosedaten für intelligente Slaves oder zur Einbindung von Displays zur Anzeige von Prozesszuständen etc. erforderlich.
  • Synchronmodus der Ein/Ausgabe. Das bedeutet, dass Slaves am gleichen AS-i-Stang, welche den Synchronmodus unterstützen, bei Bedarf alle gleichzeitig ihre Ein- und Ausgänge aktivieren bzw. deaktivieren.

Projektierung eines AS-i-Bus-Systems

Übersicht

Die Projektierung eines eigenständigen AS-i-Systems mit CoDeSys erfordert folgende Arbeitsschritte:

  1. Konfigurierung des AS-i-Slave-Systems
  2. Anlegen eines neuen Projektes
  3. Slave-Adressierung, -Parametrierung, -Projektierung und Funktionstest
  4. Erstellen und Testen des Anwenderprogramms
  5. Kleinprojekt AS-i-Bus

Aufgabenstellung

Am Beispiel eines „Stand-alone“- Systems wird die Projektierung von AS-Interface dargestellt. Sie besteht aus einem AS-i-Master mit integriertem Steuerungsprozessor (AS-i-Master mit Control), vier AS-i-Slaves und einem AS-i-Netzteil. Als AS-i-Slaves werden folgende Module eingesetzt:

  • Standard-Slave E/A-Modul 4E/4A,
  • Standard-Slave induktiver Näherungsschalter; Schließer/Öffner parametrierbar,
  • A/B-Slave Kompaktmodul 4E/3A
  • AS-i-Modul 2 AI (Analog Input) für 0 bis 10 V.

Auf einem PC mit der Projektierungssoftware CoDeSys und dem für das verwendete Zielsystem (IFM AS-i-Controller E) installierten Target „ifm electronic Controller E9“ erfolgt die Projektierung. Die digitalen Ausgänge des Slaves 5 von den digitalen Eingängen der Slaves 3, 4 und über einen Vergleicher vom Analogeingang Slave 6 werden zum Test der Projektierung angesteuert.
Zum Abschluss der Projektierung wird als Kleinprojekt das Beispiel 11.3 „Biegemaschine“ aus dem Ablauf-Funktionsplan-Kapitel 11.5.8 mit AS-i-Slaves und dem Programmiersystem CoDeSys durchgeführt. Als AS-i-Master und PLC-Controller wird dabei die Baugruppe AC1306 der Firma „ifm-elektronik“ verwendet.

Programm-Organisationseinheiten

Ein Steuerungsprogramm (Anwenderprogramm) ist ein in Programm-Organisationseinheiten (POE) gegliederte logische Anordnung von Sprachelementen und -konstrukten, die so genannten Bausteintypen.
Funktion: Dieser POE-Typ ist geeignet, wenn ein Funktionsergebnis ausschließlich aus den Eingangsvariablen des Bausteins ermittelt werden kann und unter dem Funktionsnamen des Bausteins zur Verfügung gestellt werden soll. Der Aufruf einer Funktion mit denselben Werten der Eingangsvariablen liefert deshalb immer denselben Ausgangswert zurück. Die SPS-Norm enthält einen Katalog von Standardfunktionen für SPS-Systeme, die zur Verfügung stehen sollten.
Für das eigene Anwenderprogramm können spezielle Funktionen durch Deklaration selbst erzeugt werden. Allerdings ist dabei zu beachten, dass keine internen Zustandsvariablen deklarierbar sind, weil der Bausteintyp Funktion (FC) dafür keine Speicherfähigkeit (Gedächtnis) besitzt.
unter dem deklarierten Funktionsnamen stellt Eine Funktion das Funktionsergebnis zur Verfügung, so muss keine Ausgangsvariable deklariert werden. Jedoch ist es erlaubt, Funktionen mit mehreren Ausgangsvariablen zu bilden. innerhalb eines Programmzyklus können Funktionen mehrfach aufgerufen werden, damit mit unterschiedlichen Werten der Eingangsvariablen entsprechende Funktionsergebnisse ermittelt werden können.
Funktionsbaustein: Wenn aus den Werten von Eingangs- und Ausgansvariablen sowie bausteininterner Zustandsvariablen neue Ergebnisse für eine oder mehrere Ausgangsvariablen ermittelt werden sollen, ist dieser POE-Typ geeignet. Bis zur folgenden bleiben alle Werte der Ausgangs- und Zustandsvariablen von einer Bearbeitung des Funktionsbausteins erhalten. Damit ist gemeint, dass es bei einer nochmaligen Bearbeitung des Funktionsbausteins mit denselben Werten der Eingangsvariablen zu anderen Ausgangsergebnissen kommen kann. In diesem Fall spricht man von einem Baustein mit Gedächtnis.
Damit man die Fähigkeiten eines Funktionsbausteins in einem Programm auch mehrfach nutzen kann, ist es erforderlich, die Funktionsbausteine zu instanziieren. Unter Instanziierung versteht man das Erzeugen einer Kopie (Instanz) des Bausteins, wobei jede Instanz mit einem eigenen Namen versehen werden muss. Unter diesem Namen werden die letztgültigen Variablenwerte auf entsprechenden Speicherplätzen verwaltet.
Die SPS-Norm schlägt viele Standardfunktionsbausteine für SPS-Systeme vor. Außerdem können eigene Funktionsbausteine für das Anwenderprogramm selbst erzeugt werden.
Programm: Dieser POE-Typ bildet die oberste Hierarchieebene der Programm-Organisationseinheiten. Einige SPS-Systeme verwenden den Bausteintyp Programm (PRG) ausschließlich als Hauptprogramm zur Organisation des Anwenderprogramms. Der Programminhalt eines solchen (Haupt)-Programms besteht dann nur aus Aufrufen der Funktionen (FC) und Funktionsbausteine FB und um deren Eingangs-/Ausgangs-Variablen mit SPS-Ein-/Ausgängen zu verbinden. Die Nutzung von Programmen ist identisch mit dem von Funktionsbausteinen.

Deklaration von Programm-Organisationseinheiten

Anwenderprogramme setzen sich aus so genannten abgeleiteten Funktionen (FC) und/oder Funktionsbausteinen (FB) zusammen. Sie müssen jedoch erst durch Deklaration und Programmierung erzeugt werden. Dabei müssen Vorschriften beachtet werden. Die Deklaration bezieht sich im Bausteinkopf auf die Festlegung des Bausteintyps und auf die Bildung der Außenschnittstelle mit ihren Eingangs- und Ausgangsvariablen sowie den von außen nicht erkennbaren internen Zustandsvariablen. Solche Deklarationen erfolgen unter Verwendung von festgelegten Schlüsselwörtern. Diese sind im Folgetext durch Fettdruck hervorgehoben. Die Programmierung bezieht sich auf den Bausteinrumpf, der die Steuerungslogik enthalten muss. Deklaration und Programmierung kann in Textform oder in Grafik erfolgen.

Deklaration eine Funktion mit dem Funktionsnamen FC 1

Die Text-Deklaration muss aus folgenden Elementen bestehen:
Dem einleitenden Schlüsselwort FUNCTION gefolgt vom Funktionsnamen, einem Doppelpunkt und dem Datentyp des Funktionswertes,
Der Konstruktion VAR_INPUT … END_VAR, mit der die Namen und Datentypen der Eingangsvariablen der Funktion festgelegt werden,
Der Konstruktion VAR … END_VAR (falls erforderlich) mit der die Namen und Datentypen von internen temporären Hilfsvariablen festgelegt werden können, deren Daten jedoch bei Beendigung der Funktion verloren gehen.
Dem Bausteinrumpf mit dem auszuführenden Programm, geschrieben in einer der unter 3.1 erwähnten oder einer weiteren Programmiersprache.
Dem abschließenden Schlüsselwort END_FUNCTION.
Optional können auch die beiden folgenden Konstruktionen verwendet werden:
VAR_OUT … END_VAR, mit der die Namen und Datentypen von Ausgangsvariablen der Funktion festgelegt werden, deren Werte innerhalb des Bausteins durch das Programm verändert werden dürfen,
VAR_IN_OUT … END_VAR, mit der die Namen und Datentypen von Durchgangsvariablen der Funktion festgelegt werden, deren Werte innerhalb des Bausteins durch das Programm verändert werden dürfen.