Step 7 Werte addieren, wenn Bit = 1

B@cke

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

komme bei meinem Problem nicht weiter. Aus diesem Grund habe ich mich an dieses Forum gewendet.

Ich möchte einen Wert X (z.B. 534) in ein Merkerwort schreiben, sobald der Eingang Ex.x gesetzt wurde. Dieser Wert soll so lange bestehen bleiben, bis das Bit auf 0 wechselt, dann soll 0 angezeigt werden.
Möchte als Gesamtes einige Analogwerte und Werte, welche sich aus binären Zuständen ergeben, addieren und diese als Analogwert ausgeben.

Habe nun schon viele viele Stunden damit verbracht eine Lösung zu finden. Leider ohne Erfolg!
Ich habe z.B. Varianten mit MOVE und Addierern ausprobiert. Auch mit einem Zähler bin ich nicht zum Erfolg gekommen.

Vieleicht hat jemand eine gute Idee und würde diese mir verraten.

Danke im Voraus!
 
Hi,

zuerstmal wäre es schön wenn du sagen könntest in welcher Sprache du die Lösung gerne hättest.
In FUP könnte die Lösung zum Beispiel so aussehen. Sorry für die etwas primitive Art, dass soll ein SELECT-Baustein in FUP sein. Am ersten Eingang hat er deinen Eingang, am zweiten die gewünschte 0 und an der dritten Stelle den wertX. Am Ausgang dein Merkerwort.
Code:
  Ex.x--[SEL   ]
     0--[      ]--MW0
 wertX--[      ]
In SCL kannst du das mit IF machen (ich bin in der Siemenswelt nicht ganz zu Hause, deshalb keine Garantie, dass der Syntax stimmt. Aber im Prinzip muss es so gehen.)
Code:
IF Ex.x THEN
    MW0:= wertx;
ELSE
   MW0 := 0;
END_IF


Falls du es für eine andere Sprache brauchst, helfen dir diese Denkanstöße vielleicht auch weiter.


Hallo,

Möchte als Gesamtes einige Analogwerte und Werte, welche sich aus binären Zuständen ergeben, addieren und diese als Analogwert ausgeben.

Hab ich die Aufgabe so richtig verstanden, oder wolltest du noch mehr machen? Was willst du mit was addieren?



Gruß
wonderfulworld
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Moin,
hier ein Beispiel in AWL

U M0.0
SPBN ENDE

L 1234
T MW2

ENDE: L 0
T MW2

Das kannst du dann zum einlesen deiner Werte benutzen zum Beispiel.


Und wenn die sich addiern sollen:


u(
L MW2
L 0
>I
)
u(
L MW4
L 0
>I
)
SPBN END1
L MW 2
L MW 4
+I
T MW6

END1: NOP 0


http://www.sps-lehrgang.de/awl-befehlsuebersicht-alphabetisch/
Hier hast du nochmal alle Befehle und auch Tuts zu Berechnungen.


Gruß

Dennis
 
Oh Stimmt
Ist wohl doch noch was zu früh:)



U M0.0
SPBN END0 // Wenn Meker 0.0 nicht aktiv dann springe ENDE
// Wenn Merker gesetzt dann gehe weiter
L 1234
T MW2
SPA ENDE


END0: L 0
T MW2


ENDE: NOP 0
 
Zurück
Oben