MW,MD oder DB

hbedir

Level-1
Beiträge
98
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

kann mir einer sagen wann man einen DB oder MD nimmt?

Z.B. L DB50.DBD0

oder
L MD0.

Oder generell unterschied Merker zu DB's.


Danke.
 
einen unterschied gibt es grundsätzlich nicht.
Nur der Merkerbereich ist beschränkt, ein Datenbaustein
bei einer 315er kann bis zu 64kBytes groß und es können
bis zu 1024 DB's gangelegt werden. Der Merkerbereich kann
hier nur ca. 2kBytes groß sein.
Dw. kannst du dein Programm strukturierter aufbauen wenn
du deine Programm in Funktionseinheiten aufteilst und für
diese Einheit ein DB anlegst.
 
der einzige wirklich unterschied besteht in der zugriffszeit. Die ist bei einem merkerbit (z.bsp. Abfrage auf und) ca. 3 mal schneller als bei einem qualifizierten db-zugriff). Die genauen zahlen stehen in einem siemensheftchen aufgeschlüsselt nach cpu und befehl. Die anderen unterschiede betreffen eigentlich hauptsächlich die handhabung, symbolikmöglichkeiten etc.

Die zugriffszeit wir erst beim massenhaften einsatz von daten- statt merkerbist relevant, aber da ich fast nur noch mit datenbausteinen arbeite, spielt das bei meinen programmen schon eine rolle.

... ... ...
 
der unterschied ist aber trotzallem noch gegeben

Jetzt hab ich nochmal nachgeschaut in der Operationsliste für 300er V3.0.
Da steht jetzt folgendes beim Laden der Adressen und Operanden ist die
Ausführungszeit bei allen Typen der 3xx Reihe für die:
umiltelbare Adressierung 0µs
Ein. bzw Ausgänge 0µs
Merker 0µs
Lokaldaten 0µs
Global bzw. Instanzdaten (vollqualifiziert) 0µs
und bei den teilqualifizierten kommen ein paar µs
Das heißt wenn auf Variablen im Datenbaustein (Vollqualifiziert) zugegriffen
wird besteht kein Unterschied mehr zu den Merkern.

ist doch auch schon mal was :D
 
Ich glaube, dazu muss man noch etwas erklären

Hallo,

Helmut_aus_der_Reparatur schrieb:
umiltelbare Adressierung 0µs
Ein. bzw Ausgänge 0µs
Merker 0µs
Lokaldaten 0µs
Global bzw. Instanzdaten (vollqualifiziert) 0µs

Ich muss aber mal etwas hinzufügen, da bei manchen vielleicht an den angegeben Ausführungszeiten von 0µs Erklärungsbedarf aufkommt. Gemeint ist hier die Ausführungszeit nur für den Operandenzugriff, nicht die reine Ausführungszeit für die Ausführung der Anweisung. Nur so zur Erklärung, falls sich jemand über die 0µs wundert ...

Also die Gesamtzeit für die Befehlsausführung in der CPU ist die Summe von den Zeiten für die Ausführung des Operandenzugriffs und der Zeit für die Ausführung der Operation.

Gruß

Question_mark
 
Zurück
Oben