Das ist nicht falsch, aber bei der Benutzung von MW1 beachte, dass es die BYTES MB1 und MB2 umfasst. Das nächste benutzbare Merkerwort ist dann MW3. Die meisten Leute ziehen es vor, Merkerworte auf gerade Adressen (0,2,4,6..) zu legen.
liegen DW1 und MW1 in gleiche Speicherbereich
Nein
oder wenn schreibe ich MW1 , dann soll ich DW3 schreiben
könnten Sie bitte unterschied in speicher bereich zwischen MW udn DW erklären
gruß waldy
Es sind verschiedene Speicherbereiche. MWs existieren immer,
DWs nur innerhalb von Datenbausteinen(DB), die Du erst erzeugen musst (entweder auf dem Programmiergerät oder mit Systemfunktionen z.B. beim Programmstart oder vor dem ersten Gebrauch). Jeder DB erhält einen eigenen Speicherbereich entsprechend seiner Länge. Daher ist das Datenwort DW2 in DB4 ein anderes als das DW2 in DB3.
Du must angeben, welcher DB gemeint ist. Bei der S5 benutzt Du den Befehl
A DB 4
und ab jetzt werden alle Datenworte aus DB4 genommen, bis Du einen anderen Baustein benutzt.
Bei der S7 heißt das AUF DB 4. Zusätzlich kannst Du noch bei jedem Befehl ausdrücklich angeben, welcher DB gemeint ist: DB4.DBW 12 benutzt Datenwort 12 aus DB4.
Bei der S7 werden DB-Adressen byteweise gezählt wie die Merkeradressen auch.
Bei der S5 ist das anders: Die Adresse zählt wortweise hoch. Es gibt also ein Datenwort 0 und ein Datenwort 1, die beide komplette 2-Byte Worte sind und sich nicht überschneiden. Um auf Bytes der S5-Datenworte zuzugreifen, gibt es die Adressierung linker und rechter Hälften: DL1 und DR1 meinen das linke oder rechte Byte im DW1.