In der vorherigen Lektion haben wir gelernt was ein Bit-Byte-Word-Dword ist und heute zeige ich dir wie diese Einheiten adressiert werden, damit unsere SPS diese auch verwenden kann.
Warum muss eine SPS die Adressen der E/As kennen?
Um dieser Frage auf den Grund zu gehen, sehen wir uns ein ganz alltägliches Beispiel an:
Ein Postbote möchte uns gerne einen Brief zustellen. Damit er das machen kann, muss er natürlich auch wissen in welcher Straße wir wohnen und welche Hausnummer wir haben.
Ähnlich ist es mit einem an der SPS angeschlossen Taster. Dieser benötigt genau wie der Postbote eine eindeutige Adresse.
Über diese Adresse kann der Eingang identifiziert und im SPS Programm verarbeitet werden.
Folgende Adressen sind vorhanden:
- Bitadressen und Byteadressen
- Wortadressen
- Doppelwortadressen
Bit und Byteadressen
Um beim vorherigen Beispiel zu bleiben, nehmen wir nun an, dass das Byte unseren Straßennamen darstellt und jedes einzelne Bit eine Hausnummer wiedergibt.
Somit können wir eindeutig sagen, dass der Taster an der "Hafenstraße" Hausnummer "23" angeschlossen ist.
Selbstverständlich arbeiten wir in einer SPS nicht mit Straßennamen und Hausnummern, sondern mit Zahlen.
Deshalb siehst du im Bild das Eingangsbyte 0 (Byteadresse).
In diesem Byte enthalten sind 8 Bits, die von 0 bis 7 durchnummeriert sind (Bitadresse).
Wie du siehst, wurde auch der Taster wieder angeschlossen.
Dieser ist auf der Byteadresse 0 und auf der Bitadresse 0.
Somit können wir eindeutig sagen, dass dieser Taster am E0.0 angeschlossen ist (E steht für Eingang)
- Merker (M)
- Lokaldaten (L)
- Datenbausteine (DB) oder
- Ausgänge (A)
verwenden. Für dich wichtig ist dabei nur, dass du das Grundprinzip der Adressierung verinnerlichst.
Doppelwortadressen
Wenn du das Grundprinzip bis hierhin verstanden hast, wird dir der Umgang mit den Doppelwortadressen kaum Probleme bereiten.
Ausgehend von der Eingangs Doppelwortadresse 0 (ED 0) sind darin die Eingangswörter 0 und 2 (EW 0 und EW 2).
Wie bekannt sind darin die Eingangsbytes 0-3 (EB 0 bis EB 3).
Die Bytes wiederum beinhalten jeweils 8 Eingangs Bits.
- EB 0 = E0.0 - E0.7
- EB 1 = E1.0 - E1.7
- EB 2 = E2.0 - E2.7
- EB 3 = E3.0 - E3.7
Soweit ganz klar. Jetzt aber eine Frage an dich.
Welche Wortadresse ergibt das EB 1 und das EB 2?
Genau das EW 1!
Damit wir nicht immer nur Eingangsadressen von 0 an verwenden, habe ich das Ausgangsdoppelwort 8 (AW 8) vorbereitet.
Wie du im Bild siehst, bleibt das grundsätzliche Prinzip aber gleich.
Somit können wir das Thema SPS Adressierung zum Abschluss bringen und du bist für die nächsten Aufgaben gerüstet.
Sollten noch Fragen offen sein, kannst du sehr gerne die Kommentarfunktion nutzen oder mir eine E-Mail schreiben.
12 Comments
Hallo Rene, ich habe folgendes nicht verstanden, kannst es bitte noch mal erklären?
„Welche Wortadresse ergibt das EB 1 und das EB 2?
Genau das EW 1!“
MfG, Max
Hallo Max,
ein Word ergibt sich ja immer aus 2 Byte.
EW 0 = EB 0 und EB 1
EW 2 = EB 2 und EB 3
EW 4 = EB 4 und EB 5
Du könntest aber auch die Bytes 1 & 2 ansprechen und das würde das Eingangswort 1 ergeben wobei ungerade Zahlen eher unüblich sind.
Hoffe ich konnte deine Frage beantworten und wenn nicht las es mich Wissen.
mit freundlichen Grüßen
Rene
Hallo Rene,
ich habe eine Frage und zwar wie komm man darauf, wen man EW 0 und EW 2 hat auf ED 0 nimmt man immer die kleinere Zahl oder die Gerade Zahl, weil im zweiten Beispiel gibt es ein EW 8 und EW 10 diese Zahlen sind beide gerade. Nach was muss ich gehen ?
MfG, Dorian
Hallo Dorian,
man kann sich das nicht ganz aussuchen, was man nimmt :).
Es ist so das ein Doppelwort (z.B. ED0) eine Gesamtdatenbreite von 32 einzelnen Bit hat.
Wenn du aber nur die ersten 16 Bit dieses Doppelwort betrachtest, wäre es das Eingangswort 0.
Die nächsten 16 Bit sind dann folglich das EW2 weil die ersten 16 Bit ja schon „verwendet“ werden.
Im Prinzip hast du aber schon gut erkannt, das du die niedrigere Zahl betrachtest.
mit freundlichen Grüßen
Rene
Hallöchen,
soweit hab ich das auch verstanden, aber wieso gibt es nicht EW 1? Auf das Beispiel von Dorian bezogen.
MfG
Steffie
Hallo Steffie,
es ist so das du dir mehr oder weniger aussuchen kannst wie du die 16 Bits eines Wortes betrachtest.
Im EW 1 sind dann entsprechend das EB 1 und 2 bzw. E1.0 – E2.7.
Beim Programmieren musst du dann darauf achten das sich keine Bereiche überschneiden.
Angenommen du lädst die Zahl 32767 in das Wort 1 (1.0 – 2.7) und
den Wert 0 in das Wort 0 (0.0 – 1.7) dann….
überschneiden sich die Bereiche, auf denen du zugreifen möchtest beim Byte 1
Wort 1 = 1.0 – 2.7
Wort 0 = 0.0 – 1.7
Ich hoffe konnte deine Frage dazu beantworten :).
Wenn nicht dann lass es mich wissen und ich erstell einfach ein eigenes Video dazu.
mit freundlichen Grüßen
Rene
Hi Rene,
1 ) Zuerst wird 32767 in Wort 1 geschrieben wird und anschließend 0 in das Word 0.
Würde in deinem Beispiel sich die Werte überschreiben? (Byte1 – mit nullen gefüllt)
Oder wie würde das zutrage kommen?
2) Kann man es sich explizit aussuchen in welches Word man Werte speichert?
2.1) Falls man es sich aussuchen kann: Wird es Hinweis vom Compiler erzeugt, dass sich Bereiche überschneiden?
Vielen Dank für die Antworten 🙂
Hallo Luca,
1. genau in diesem Fall würden sich die Bereiche überschreiben.
2. ja du kannst selbst bestimmen in welchen Bereichen du schreibst und liest
3. Nein da gibt es keinen Hinweis aber bei neueren CPUs arbeitet man ohnehin kaum mehr mit den Adressen dirket, sondern nur mit dem Variablennamen, sodass es keine unbeabsichtigten Überschneidungen mehr geben sollte.
mit freundlichen Grüßen
Rene
Hallo Rene,
wenn ich zum Beispiel das EW0 anspreche, welches Bit ist dann das höchstwertige und welches das niedrigste? Ich hätte jetzt angenommen, E0.0 ist das niedrigste, E1.7 das höchste. Liege ich richtig?
Danke und freundliche Grüße
Hallo Christoph,
ja das ist absolut richtig 🙂
mit freundlichen Grüßen
Rene
Hi,
Ich wollte fragen, ob man nach der Schulung eine Zertifikat bekommt mit dem man arbeiten kann.
Mit freundlichen Grüßen
Hallo,
selbstverständlich bekommst du zu deinem Kurs auch ein Zertifikat.
Am Ende der Seite des jeweiligen Kurses findest du den Download.
mit freundlichen Grüßen
Rene