FU Danfoss Steuerwort je nach Betriebswahl

SPS_olala

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

ich bin ein Newbie in SPS, aba muss gleich am Anfang mit einem ganz schwierig Thema anfangen, und zwar FU von Danfoss. Die folgende Code (am Anfang des Netzwerk für Steuerwort nach Betriebswahl eingesetzt) ist zu erklären und ich hab wirklich keine Ahnung davon.

L #PAW
L W#16#8
+I
SLW 3
T #P_ADR


Hier ist PAW = 256, P_ADR ist einer Doppelwort Pointer und PPO Typ 1 ist ausgewählt. Meine Frage lautet:

+++. Warum wird am Anfang den Wert 256 in AKKU 1 geladen und danach wieder mit 8 addiert?

Danke

Jakob
 
Weil er auf ein Bestimmtes Byte schreiben möchte

L #PAW
L W#16#8
+I
SLW 3
T #P_ADR

L 256
L W#16#8
+I
SLW 3
T [P#264.0]

Warum er das macht kann ich dir bei so einem Codefetzen auch nicht sagen. Leider kenn ich die FU's auch nicht. Aber er erhöht auf allefälle die eingegebene Adresse = Byte 256 um 8 byte.


Kann aber natürlich sein das ich ein honk bin un PN/DP mich in ein paar minuten verbessert.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
bei PPO Typ 1 werden ja 4 Wörter PKW und 2 Wörter PZW übertragen. Wenn die Startadresse des Antriebs 256 ist, liegt das Steuerwort bei 264.

Wenn PPO Typ 3 verwendet werden würde, entfällt die PKW übertragung und das Steuerwort hat Adresse 256.
 
bei PPO Typ 1 werden ja 4 Wörter PKW und 2 Wörter PZW übertragen. Wenn die Startadresse des Antriebs 256 ist, liegt das Steuerwort bei 264.

Wenn PPO Typ 3 verwendet werden würde, entfällt die PKW übertragung und das Steuerwort hat Adresse 256.


Danke dir für den Hinweis, hab' auch schon nachgeschaut. PPO Typ 1 enthält 12Byte String, PKW 8 Byte, also wie ich verstanden habe, wenn ich auf den Bereich für HSW/HIW (Hauptsollwert und Hauptistwert) zugreifen möchte, dann lautet die Code wie folgt oder???

L #PAW
L W#16#A
+I
SLW 3
T #P_ADR


 
Der Code zur Ausgabe des Hauptsollwertes ist nicht komplett und eigentlich auch nicht ganz korrekt.

Wenn der Hauptsollwert in das 11. und 12. Byte der PPO geschrieben werden soll, dann sollte der Code so lauten:
Code:
L     #PAW      // 256 = Anfangsadresse der PPO zum FU
L     10        // 10 = Offset des HSW im PPO
+D
SLD   3
T     #P_ADR

L     #HSW_Ausgabewert
T     PAW [#P_ADR]

Wenn Du den Hauptistwert vom FU einlesen willst, dann wäre der Code dafür etwa so:
(Eingabeadresse PEW... und Offset kontrollieren und ggf. anpassen!)
Code:
L     #PEW      // muß die Eingabe-Anfangsadresse enthalten
L     10        // 10 = Offset des HIW im PPO
+D
SLD   3
T     #P_ADR

L     PEW [#P_ADR]
T     #Istwert

Ob HSW und HIW tatsächlich an Offset 10 liegen, kann ich nicht beurteilen. Ich habe das entsprechende Danfoss-Handbuch nicht vorliegen.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Probiert habe ich mit der folgenden Code, und die funktioniert wunderbar:

L #PAW
L W#16#A
+I
SLW 3
T #P_ADR

L #SET
L 1.000000e+002
/R
L 1.638400e+004
*R
RND-
T PAW [#P_ADR]



Hier wird der Sollwert durch #SET festgelegt. Der Wert 1.638400e+004 ist das Format in Dezimal von 100% HSW bzw. HIW (in Hex ist 4000). Mir ist immer noch nicht klar, warum man statt Offset "L 10" den Befehl L W#16#A benutzen kann.

Danke
 
Zuletzt bearbeitet:
10 dez = A hex

mit L 10 lädt man dezimal 10 in den Akku 1
mit L W#16#A lädt man hexadezimal A in den Akku 1
 
Zurück
Oben