Erklärung des AWL Befehls B in Bezug auf Datenworte

steffen21m

Level-1
Beiträge
71
Reaktionspunkte
3
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute :)
Ich habe mal wieder eine Frage an euch.
Bei einer Simatic S5 CPU 942 liegt im Datenbaustein 9 Datenwort 11 ein Wert ab. Dieser wechselt nach einer bestimmten Zeit immer um +1. Diesen Wert möchte mit einem Datenwort verknüpfen und Daten aus diesem einlesen oder auslagern.
Beispiel:
DW 11 hat den Wert 2 = Datenwort 2
DW 11 hat den Wert 3 = Datenwort 3
DW 11 hat den Wert x = Datenwort x
Wie kann ich das ganze jetzt in AWL verknüfen und Daten in das beliebige Datenwort auslagern (Transferieren) oder auslesen (Laden) ??

L einen bestimmten Wert, der ins Datenwort geschrieben werden soll
B DW 11
T DW 0

Wird der Wert dann in das entsprechende Datenwort geschrieben ?

Wie kann ich dann das entsprechende Datenwort wieder laden ?
B DW 11
L DW 0

Funktioniert das so ?
Vielen Dank für eure Hilfe.

Gruß Steffen
 
so ungefähr.


Code:
L KF 20
T DW 1

L KF 5

B DW 1

T DW 0 //Transferiere den Inhalt von AKKU 1 (5) in das Datenwort, dessen Adresse im DW 1 (20) hinterlegt ist.

// ist also das gleiche wie
L KF 5
T DW 20
anstatt T DW 1 kannst du genauso T DW 0 oder sonstwas schreiben. Die Zahl ist nur ein 'Platzhalter'

Ich bevorzuge B-Operationen immer mit DW0 zu machen. Im Normalen Programmcode lasse ich DW0 immer ungenutzt. So weiss ich, wenn ich in der QL ein DW0 finde, das dort eine indirekte Operation stattfindet.

Code:
L   KF 20                               
T   DW   1
B   DW   1
L   DW   0                              
T   DW   1                              

// ist das gleiche wie

L DW 20
T DW 1
 
Zurück
Oben