Geräte mit E/A-Kanälen
Diese Registerkarte erscheint in Geräteeditoren für Geräte mit E/A-Kanälen. Sie zeigt die verfügbaren Kanäle und erlaubt die Abbildung der Eingangs-, Ausgangs- und Speicheradressen des Steuerungsgeräts auf Variablen oder ganze Funktionsbausteine der Applikation. Damit erstellen Sie das sogenannte "E/A-Abbild" ("Mapping").
Welche Applikation die E/A-Behandlung übernehmen soll, definieren Sie in der Registerkarte „SPS-Einstellungen“.
Wenn es vom Gerät unterstützt wird, können Sie den "Online-Konfigurationsmodus" verwenden. In diesem Modus können Sie auf die E/As der Hardware zugreifen ohne vorher eine reelle Applikation auf das Gerät geladen haben zu müssen.
Sie können das E/A-Abbild auch im Dialog „E/A-Abbild bearbeiten“ erstellen. Dort erhalten Sie eine Mapping-Liste mit Such- und Filterfunktionen für einen kompletten Gerätebaum.




HINWEIS

Abbilden "zu großer" Datentypen
Wenn Sie eine Variable eines Datentyps, der größer ist als ein Byte, auf eine Byteadresse abbilden, wird dort der Wert der Variablen auf Byte-Größe abgeschnitten! Für das Monitoring des Variablenwerts im Dialog „E/A-Abbild“ bedeutet dies: Im Wurzelelement der Adresse wird der Wert angezeigt, den die Variable im Projekt aktuell hat. In den Bit-Elementen darunter werden nacheinander die einzelnen aktuellen Bit-Werte des Bytes dargestellt, was aber gegebenenfalls nicht für den gesamten Variablenwert ausreicht.
Beispiel der Registerkarte „<Gerätename> E/A-Abbild“ für einen CAN-Bus Slave:

Die Registerkarte enthält eine Tabelle zum Bearbeiten des E/A-Abbilds. Die dargestellten Informationen zu den Eingängen und Ausgängen stammen aus der Gerätebeschreibung.
„Suche“ (1) |
Eingabefeld für eine Zeichenfolge, nach der die Mapping-Tabelle durchsucht werden soll. Die Suchergebnisse werden gelb markiert. |
„Filter“ (2) |
Auswahlliste mit Filtern für die in der Mapping-Tabelle dargestellten E/A-Zuweisungen:
|
|
Geräteabhängig verfügbar, wenn ein Kanaleintrag in der Mapping-Tabelle selektiert ist. Öffnet den Dialog „Funktionsbaustein auswählen“ zur Auswahl des Bausteins, der mit dem Kanal direkt verknüpft werden soll. |
|
Verfügbar, wenn ein Eintrag in der Mapping-Tabelle selektiert ist. Springt zum entsprechenden Eintrag in der Registerkarte „<Gerätename> IEC-Objekte“. |
„Variable“ |
Abhängig vom Gerät erscheinen die Eingänge und Ausgänge des Geräts als Knoten, darunter eingerückt die zugehörigen Kanäle, oder je nach Gerät nur die implizit angelegte Geräteinstanz. Das Symbol zeigt den Kanaltyp an:
Ein Doppelklick auf die Zelle öffnet ein Eingabefeld.
Abhängig vom Gerät können Eingänge oder Ausgänge direkt mit einem Funktionsbaustein
verknüpft werden. In diesem Fall ist die Schaltfläche |
„Mapping“ (3) |
Typ des Abbilds:
|
„ Kanal“ (4) |
Symbolischer Name des Kanals. |
„Adresse“ (5) |
Adresse des Kanals, beispielsweise Durchgestrichene Adresse: Zeigt an, dass Sie dieser Adresse keine weitere Variable zuweisen sollten. Grund: Die hier angegebene Variable wird - als bereits bestehende - zwar an einem anderen Speicherplatz verwaltet, aber es könnten Mehrdeutigkeiten beim Schreiben der Werte entstehen, speziell bei Ausgängen.
|
„Typ“ (6) |
Datentyp des Kanals, beispielweise In der Gerätebeschreibung definierte Strukturen oder Bitfelder werden nur angezeigt, wenn sie Teil der IEC-Norm sind und als IEC-Datentyp in der Gerätebeschreibung gekennzeichnet sind. Ansonsten bleibt die Tabellenzelle leer. Beim Abbilden von strukturierten Variablen verhindert der Editor, dass Sie sowohl
die Strukturvariable (beispielsweise auf |
„Standardwert“ |
Standardwert des Parameters, der auf dem Kanal anliegt: Erscheint nur, wenn in den „SPS-Einstellungen“ für das Verhalten der Ausgänge bei Stop die Option „Alle Ausgänge auf Standardwert setzen“ aktiviert ist. Hinweis: Ab Compilerversion V3.5 SP11 wird für ein Mapping auf eine bestehende Variable automatisch der Initialisierungswert der Variablen als Standardwert verwendet. Das Feld „Standardwert“ können Sie nur noch bearbeiten, wenn Sie ein Mapping auf eine neu erzeugte Variable vornehmen, oder wenn kein Mapping eingetragen ist. In älteren Versionen musste der Anwender explizit dafür sorgen, dass Standardwert und Initialisierungswert identisch sind. |
„Einheit“ (7) |
Einheit für den Parameterwert, beispielweise |
„Beschreibung“ (8) |
Kurzbeschreibung des Parameters. |
„Aktueller Wert“ |
Istwert des auf dem Kanal anliegenden Parameters, erscheint nur im Onlinebetrieb. |
Die Änderung des Standardwerts durch einen Online-Change ist erlaubt, jedoch wird der Wert erst nach einem "Reset kalt" oder "Reset warm" angewendet.
„Mapping zurücksetzen“ (9) |
CODESYS setzt die Mapping-Einstellungen auf die durch die Gerätebeschreibungsdatei definierten Standardwerte zurück. |
„Variablen aktualisieren“ (10) |
Festlegung für das Geräteobjekt bezüglich der Aktualisierung der E/A-Variablen. Der Standardwert ist in der Gerätebeschreibung definiert:
|
Wenn eine UNION durch E/A-Kanäle im Mapping-Dialog vertreten ist, hängt es vom Gerät ab, ob auch ein Abbilden auf das Wurzelelement möglich ist.
Geräte mit E/A-Treiber
Bei Geräten mit E/A-Treiber können Sie hier auf der Registerkarte „E/A-Abbild“ die Buszyklus-Task einstellen, wenn nicht die allgemeine Einstellung (Registerkarte „SPS-Einstellungen“) verwendet werden soll.
„Buszyklus-Task “ |
Die Auswahlliste bietet alle Tasks an, die in der Task-Konfiguration der aktiven Applikation definiert sind, wie biespielsweise „MainTask“. Im Fall von „Zykluseinstellungen des übergeordneten Busses verwenden“ werden die Einstellungen des Vaterknotens verwendet. |
Allgemeine Informationen zur Buszyklus-Task
Grundsätzlich werden für jede IEC-Task die verwendeten Eingangsdaten am Beginn jeder Task gelesen (1) und die geschriebenen Ausgangsdaten am Ende der Task (3) zum E/A-Treiber übertragen. Die Implementierung im E/A-Treiber ist entscheidend für den weiteren Transport der E/A-Daten. Sie ist verantwortlich dafür, in welchem Zeitraster und zu welchem Zeitpunkt die tatsächliche Übertragung auf das jeweilige Bussystem stattfindet.
Die Buszyklustask der SPS kann für alle Feldbusse global in den SPS-Einstellungen festgelegt werden. Bei einigen Feldbussen können Sie diese jedoch unabhängig von der globalen Einstellung verändern. Als Buszyklustask wird automatisch die Task mit der kürzesten Zykluszeit verwendet (Einstellung: „unspezifiziert“ in den SPS-Einstellungen). In dieser Task werden normalerweise die Nachrichten auf den Bus gesendet.
Weitere Tasks kopieren nur die E/A-Daten aus einem internen Puffer, der nur in der Buszyklustask mit der realen Hardware ausgetauscht wird.

(1) Lesen der Eingänge vom Eingangspuffer (2) IEC-Task (3) Schreiben der Ausgänge in den Ausgangspuffer (4) Buszyklus (5) Eingangspuffer (6) Ausgangspuffer (7) Daten vom/zum Bus kopieren (9) Buszyklustask, Priorität 1, 1ms (10) Buszyklustask, Priorität 5 (11) Buszyklustask, Priorität 10, unterbrochen durch Task 5
Taskverwendung
In der Registerkarte „Taskaufstellung“ steht Ihnen eine Übersicht der verwendeten E/A-Kanäle, der eingestellten Buszyklustask und der Verwendung der Kanäle zur Verfügung




WARNUNG

Wenn ein Ausgang in verschiedenen Tasks geschrieben wird, so ist der Zustand undefiniert, da dieser jeweils überschrieben werden kann.
Bei Verwendung von gleichen Eingängen in verschiedenen Tasks kann es passieren, dass sich der Eingang während der Abarbeitung einer Task verändert. Dies geschieht, wenn die Task durch eine Task mit höherer Priorität unterbrochen und damit das Prozessabbild erneut eingelesen wird. Abhilfe: Am Beginn der IEC-Task die Eingangsvariablen in Variablen kopieren und dann im weiteren Code nur noch mit den lokalen Variablen arbeiten.
Fazit: Eine Verwendung von gleichen Ein- und Ausgängen in mehreren Tasks ist nicht sinnvoll und kann in manchen Fällen zu unvorhergesehenen Zuständen führen.