S5 zu S7, Verständnis Frage zu LIR/TIR

mordillo

Level-2
Beiträge
19
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
ich bin grad dabei ein S5 Programm nach S7 zu konvertieren, soweit so gut.
Einige Sachen sind, natürlich, nicht vom Konvertierungstool übersetzbar, einige Bausteine und einige Befehle.

Bausteine ist ja kein Thema, entweder gibt es einen Vergleichstyp, oder ich muss selber schreiben.

Wo ich aber noch nicht hintergekommen bin, ist die LIR / TIR Geschichte. Also das Prinzip ist klar. Werte von Register in Speicherwort, dessen Adresse im Akku 1 steht, schreiben und umgekehrt, das ist ja nicht so schwer zu verstehen, aber:

Was ist mit Speicherwort explizit gemeint?

Datenwort, Merkerwort...

Wenn obiges gemeint ist, wo befindet sich die Information, welche Art von Speicherwort das ist, eben Daten, oder Merker, oder wasauchimmer...

Und noch eins: Wie errechnet sich die Adresse jenen Speicherwortes...


In S7 ist man ja gewohnt, das indirekte Adressierung Bitorientiert ist, scheint hier, das es Wortorientiert ist, ist eh egal, das kann man eh nicht vergleichen, doch relativ unterschiedlich ...


Danke für Antwort.

Gruß
m.



P.S.: Zu konvertierende S5 ist: 115U / CPU 943B --> S7 315-2PNDP
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Die Register selbst sind schon klar (0-15)
Aber woher kommen diese Wert (Speicherwort) und von wo aus werden sie geschrieben (Speicherwort) wenn man LIR, respektive TIR benutzt.

Das Handbuch hab ich schon mehrmals geprüft und es wird immer wieder bezug auf das "Speicherwort" genommen, allerdings nirgendwo näher erklärt

Also:

L KH 399
LIR 2

Lädt hex 399 in akku1
lädt den wert des speicherwortes mit der adresse 0x399(Akku1) in register 2

Ja aber wo um Himmels willen ist das Speicherwort mit der Adresse 0x399 ???
 
Zuletzt bearbeitet:
Hi,

schau dir mal im Handbuch Kapitel 6 Adressenbelegung der Zentralbaugruppen an.

Beispiel: du willst wissen in welcher Speicherzelle dein DB100 liegt.
Die Bausteinadressliste für Dbs fängt bei deiner CPU in Speicherwort E400h an.
E400h plus 100d ergibt das Speicherwort in der die Anfangsadresse (DW0) des DB100 liegt.
Wenn du dir den Inhalt der Speicherzelle lädts kannst du damit das DW0 laden.
Dies erfolgt alles mit LIR-Befehlen.

Wie der Speicher genau zusammengestellt ist, ist CPU-spezifisch.

Normalerweise kannst du deine LIR und TIR auch konventionell mit indirekter Adressierung ausprogrammieren.
Hat auch den Vorteil der besseren Lesbarkeit.

Gruß,
Centi
 
Zuletzt bearbeitet:
Zurück
Oben