Übersicht der Speicherbereiche
Hier also die verschiedenen Speicherbereiche, die auch genau so in der Programmierumgebung adressiert werden:
- X0 ... X777 - der Digitaleingangsbereich
- Je nach Modell und Anzahl der Erweiterungen: die Eingangsbits der CPU-Einheit können je nach Modell X0 bis X99 belegen, die der ersten Erweiterung X100 bis X199, Erweiterung 2 belegt X200 bis X299 usw. bis zu Erweiterung 7 mit X7...; Insgesamt 512 Eingangssignale können verarbeitet werden. Per XD0 bis XD7.. kann die Eingangsbelegung auch als Word ausgelesen werden.
- Y0 ... Y777 - der Digitalausgangsbereich
- Wie der Eingangsbereich, je nach Modell und Anzahl der Erweiterungen: die Ausgänge der CPU-Einheit liegen je nach Modell zwischen Y0 bis Y99, die der ersten Erweiterung Y100 bis Y199, Erweiterung 2 belegt Y200 bis Y299 usw. bis zu Erweiterung 7 mit Y7...; Bis zu insgesamt 512 Ausgangssignale werden unterstützt. Per YD0 bis YD7.. kann die Ausgangsbelegung auch als Word gelesen oder beschrieben werden.
- ID0 ... ID777 - der Analogeingangsbereich
- Wie der Digitaleingangsbereich, je nach Modell und Anzahl der Erweiterungen: eventuell vorhandende Analogeingänge der CPU beginnen bei ID0, die der ersten Erweiterung bei ID100, Erweiterung 2 belegt ID200 usw.
- QD0 ... QD777 - der Analogausgangsbereich
- Wie der Eingangsbereich, je nach Modell und Anzahl der Erweiterungen: eventuell vorhandende Analogausgänge der CPU beginnen bei QD0, die der ersten Erweiterung bei QD100, Erweiterung 2 belegt QD200 usw.
- M0 ... M8767 - die Merker
- Im Bereich M0 ... M3999 befinden sich die klassischen Merker, im Bereich M4000 ... M7999 die batteriegepufferten Merker. Der batteriegepufferte Bereich kann für alle Speicherbereich vor- und zurück verschoben werden, um ihn zu erweitern oder im anderen Fall, die Batterie zu schonen. Über die Adressierung als MD... kann auf Merkerbereiche auch als Word zugegriffen werden.
Im Bereich M8000 - M8767 befinden sich verschiedene Systembits, auf M8000 z.B. der wichtige "Always-on", auf M8002 eine Flanke im ersten SPS-Zyklus, die zur Initialisierung genutzt werden kann.
Eine kommentierte Liste der Systembits findet ihr in der Software, dazu einfach links im Projektbaum den "Comment Editor" starten. Die englischen Beschreibungen sind wirklich lesenswert ;-) ... wer erwartet schon, dass M8013 im Cycle von 1s "shaked" ... turn the music on ... ihr ahnt sicher was gemeint ist ... wer's nicht herausfindet schickt mir eine Email.- S0 ... S1023 - die Statusbits oder Ablaufsteuerungsrelais
- Im Bereich S0 ... S1023 befinden sich Statusbits, die für Schrittlogik (Step Ladder) vorgesehen sind. Der variable batteriegepufferte Bereich beginnt soweit nichts anderes konfiguriert ist bei S512.
Die Funktionsweise und Befehle der Schrittlogik sind in Kapitel 5 dieses Kurses beschrieben. Der S-Bereich kann auch als normaler Merker verwendet werden. Auch die Statusbits untersützen mit SD Word-Adressierung. - T0 ... T639 - die Timer
- Im Bereich T0 ... T639 befinden sich verschiedene Timerbits. Eine genaue Übersicht und Infos zur Anwendung, findet ihr im Kapitel 4 Timer & Zähler. Per Adressierung TD0 ... TD639 lassen sich die Timerinhalte als Word auslesen.
- C0 ... C639 - die Zähler
- Im Bereich C0 ... C639 befinden sich verschiedener Zähler. Eine genaue Übersicht und Infos zur Funktionsweise, findet ihr im Kapitel 4 Timer & Zähler. Mit CD0 ... CD 639 lassen sich die Zählerstände als Word auslesen.
- D0 ... D9023 - die Datenregister (Words)
- Im Bereich D0 ... D9032 befinden sich Register zu je 16 Bit (Word). Die batteriegepufferten Register beginnen per Standardeinstellung bei D4000.
Im Bereich D8000 - D9023 befinden sich verschiedene Systemregister, auf D8010 z.B. die aktuelle Zykluszeit in ms und auf D8005 praktischerweise die Batteriespannung. Eine Übersicht dazu findet ihr ebenfalls im "Comment Editor".- FD0 ... FD9023 - die FlashROM-Register (Words)
- Der Flash-Speicher eignet sich gut, um Daten sicher zu speichern z.B. für Initialwerte und feste Parameter; Im Bereich FD0 ... FD1535 befinden sich die FlashROM-Register, die der Nutzer frei verwenden kann. Nicht mit allen Befehlen kann auf Flash-Register geschrieben werden, zur Vorsicht, da die Lebensdauer dieses Bereichs nur etwa 1 Million Schreibzyklen beträgt, bei Zykluszeiten im einstelligen Millisekundenbereich schnell erreicht.
Im Bereich FD8000 ... FD8512 können bestimmte Systemeinstellungen wie z.B. Filterzeiten, Kommunikationsparameter etc. vorgenommen werden. Der Comment Editor (Tab FD) verrät hier wieder mehr. (Die lange Liste "X.. corresponds with I**" ist Teil der Möglichkeit EA Kanäle umzuleiten, ohne das Programm zu ändern, z.B. bei defekten Eingängen oder Ausgangsrelais.)- Systembereiche beginnen also immer mit 8000, lässt sich leicht merken;
- ED0 ... ED16383 - die Erweiterungs-Register (Words)
- Zusätzliche Word-Register für datenintensive Aufgaben, z.B. einfaches Datenlogging; Achtung: auf diesen Bereich kann nur mit sehr wenigen Befehlen zugegriffen werden. Dateils dazu findet ihr im Programmierhandbuch. Dort ist beschrieben, welche Befehle in ihren Parametern welche Speicherbereiche annehmen.
Adressierung
Noch ein paar Infos zur Adressierung. Speicherbereiche können direkt adressiert werden, X3 zum Beispiel für Eingang 4 (klar, die Nummerierung der Eingänge beginnt bei 0). Indirekte Adressierung ist einfach über Offset [] möglich, falls D10=5 dann ist X0[D10] zum Beispiel X5. Über Zähler oder Timer lassen sich so z.B. einfach Datenbereiche nacheinander verarbeiten (verwendet dazu einfach die Datenbereiche CD oder TD für den aktuellen Zähler oder Timer-Stände).
Wichtig ist die Schreibweise für die Eingabe von Werten als Konstanten. Dazu einfach wie bei auch bei anderen Herstellern mitunter üblich die entsprechenden Werte als K für Dezimal, B für Binary oder H für Hexadezimal auszeichnen. K100 ist also eine einfache 100 als Dezimalzahl.
Einzelne Bits in Words werden einfach über einen Punkt angesprochen, das lässt sich auch mit indirekter Adressierung kombinieren. D0[CD10].1 ist zum Beispiel das erste Bit im Datenregister Dx, auf das Zähler C10 zeigt. Falls ihr Fragen zur Adressierung habt, schickt mir eine Email.