Step7- Wie Istwert per Schleife in AR schreiben?

Polecat

Level-1
Beiträge
6
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
vielleicht kann mir hier jemand helfen.
Ich versuche während einer Drehung einen Enfernungsistwert aufzuzeichnen, um diesen dann später weiter auszuwerten. Bei der Drehung wollte ich gern den Istwert per Schleife in ein Array schreiben. Wollte halt gern 4 verschiedene Messwerte haben um später nen Mittelwert zu erstellen.
Leider habe ich irgendwo nen Fehler, der mir immer den aktuellen gleichen Istwert in die 4 DW - Array legt.

Hier mal mein Programmauszug
Code:
        UN A8.0   // Drehung 
        SPB ENDE

        L AR1 P#8.0  // STAT-Array [0...4] as int

        L 4
ANF: T #Schleifenzaehler 

        L DB100.DBW8  // aktueller Istwert
        T DIW[AR1,P#0.0]

        L P#2.0
        +AR1

        L #Schleifenzaehler
        LOOP ANF

ENDE: NOP 0
Hoffe es ist verständlich.

Danke für Hilfe
 
Bei deinem Programm wird folgendes gemacht:

Solange der Ausgang = true ist wird die Schleife in jedem SPS-Zyklus angestossen.

In der Schleife werden 4 Istwerte in den DI geschrieben.
Dies geschieht direkt hintereinander während eines SPS-Zyklus mit dem
selben Istwert.

=> wenn der Ausgang = false wird steht im DI der letzte Istwert in allen
4 Wörtern

Du solltest Dir überlegen wann Du den Istwert speichern willst.
Soll das jeden Zyklus einmal passieren oder oder oder?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
genau das ist mein Problem, der zyklus.
Ich brauch nicht immer die gleichen Werte sondern verschiedene.
also jeden zyklus einen neuen wert im array. der alte halt im register aufgeschoben.
muß ich nen Timer oder so vorsetzen und die Schleife anzuschubsen oder?
Anders würde es sich ja nicht lohnen die Werte überhaupt zu speichern.
 
Zuletzt bearbeitet:
Hallo Polecat,

versuchs doch mal mit einem "Schreibzeiger" der je nach Bedingung erhöht wird:
Code:
UN Bedingung
SPB NERH
L Schreibzeiger
+ 1
T Schreibzeiger
NERH: NOP 0
 
L Schreibzeiger
L Altwert_Schreibzeiger
==I
ON A 8.0
SPB NSP
L AR1 P#8.0
L Schreibzeiger
SLD 3
+AR1
 
L DB100.DBW 8
T [ar1,P#0.0]
 
L Schreibzeiger
T Altwert_Schreibzeiger
 
L Schreibzeiger
L 3
<I
SPB NLoe
L 0
T Schreibzeiger
NLoe: NOP 0
NSP:  NOP 0
Sollte so funktionieren.

Grüße
Gebs
 
Zuletzt bearbeitet:
Der Begriff Schreibzeiger sagt mir zwar mal gar nichts :) aber ich werde es einfach mal an der SPS heute abend probieren.
Verständlich ist es auch soweit...
Vielen Dank schonmal.

Funktionsbericht folgt!
 
Zurück
Oben