aktueller und vorhergehender Wert überschreiben

G

Gast

Guest
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi, ich hab da nen Problem und zwar...

ich habe auf nem MD 200 einen "aktuellen Wert" sagen wir mal 500 als DINT diesen möchte ich jetzt speichern unter der Bezeichnung "vorheriger Wert" auf MD 220. Wie kann ich das anstellen?

Jetzt kommt ein neuer DINT Wert nach zum Beispiel 800 auf MD 200 diese beiden ( MD 200 und MD 220) möchte ich jetzt Vergleichen lassen.

Wie kann ich den MD 220 überschreiben lassen erst wenn der neue aktuelle Wert nachkommt?

Die DINT Werte sind nicht statisch.
 
Was willst du denn genau machen ?

Mal ganz pauschal:

Da die SPS zyklisch arbeitet kannst du in jedem Zyklus MD 200 mit MD220 vergleichen (Sprung je nach Ergebnis zu deiner gewünschten Bearbeitungsroutine), danach MD200 in MD220 transferrieren und im nächsten Zyklus das Ganze von vorne.

L MD200

... mach was damit

T MD220



Willst du nur bei Wertänderungen reagieren, Vergleichst du MD200 mit MD220, wenn beide gleich machst du nichts (Sprung ans Ende), wenn unterschiedlich reagierst du mit einem Sprung in deine gewünschte Bearbeitungsroutine, danach Transfer von MD200 in MD220 und das Ganze im nächsten Zyklus von vorne.

L MD200
L MD220
==D
SPB ENDE

... mach was, die Werte waren ungleich

L MD200
T MD220

ENDE: NOP 0
 
Zuletzt bearbeitet:
Gast schrieb:
Wie kann ich den MD 220 überschreiben lassen erst wenn der neue aktuelle Wert nachkommt?

Meinst du wenn der aktuell Wert erneuert wird dann soll MD 220 den Wert übernehmen den der aktuelle Wert vorm aktualisieren hatte?

Probiers mal so:
Code:
      U     E      1.0                  //Wenn 1 dann Lade 800 sonst 500
      SPB   m1
      L     500
      T     MD   200
      SPA   m2
m1:   L     800
      T     MD   200
m2:   L     MD   240                    //Zwischenspeicher
      ==D                               //Vergleiche ob aktueller Wert = Zwischnespeicher ist                 
      SPB   m3                          //Wenn aktualwert aktualisiert wurde dann Transferier
      L     MD   240                    //zwischenspeicher in
      T     MD   220                    //vorheriger Wert
      S     M      1.0
m3:   SET   
      L     MD   200
      T     MD   240                    //aktualisiere Zwischenspeicher
 
      L     MD   220                    //zur kontrolle ob Wert auch übernommen wurde

Mfg Godi
 
Zurück
Oben