Step-7 Zahlenwerte lesen/überprüfen

Q-Dog

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

hänge bei folgendem Problem:
Ich versuche mich ein bisschen am Rechnen mit Step-7. Klappt auch soweit ganz gut, jedoch fehlt mir eine Kontrollinstanz / Operation, die mir nun die (bspw. gerundeten Real-Werte) ausgibt / anzeigt.

Beispiel:
LD I0.0
ITD 101, AC1
DTR AC1, VD0
MOVR VD0, VD8
*R 2.54, VD8
ROUND VD8, VD12

Umrechnung der Zahl 101 in Zoll.
Gibt es nun eine Möglichkeit, das Ergebnis (hier also 257) durch irgend ein Schaltsymbol o.ä auszugeben / anzuzeigen - Bzw. die Speicherstelle VD12 ?



Mit freundlichen Grüßen
Q-Dog
 
Zahlenwerte überprfen

Hallo
ohne angeschlossene S7-2xx geht das nicht!
Mit S7-200:
- Unterprogramm aufrufen und im RUN oben von rechts den 9. Button (Programmstatus) aktivieren oder
- Tabellenstatus aktivieren (oben, 7. Button von rechts) und dort die gewünschten Variablen eintragen. Im RUN-Betrieb werden dann die Ergebnisse ausgegeben.

eNDe
 
Zuviel Werbung?
-> Hier kostenlos registrieren
vielen Dank schonmal eNDe.

Stimmt du hast recht, da werden Zahlen ausgegeben, nur irgendwie leider die falschen (zumindest nicht die, die ich mit dem Taschenrechner errechne) ^^

Habe vergessen anzugeben, dass ich eine S7-200 habe.

Folgendes Programm habe ich geschrieben (willkürlich nur zum Rechnen mit Zahlen umwandeln usw):
LD I0.0
ITD 11165, AC1
DTR AC1, VD0
MOVR VD0, VD1
*R 0.004043, VD1
MOVR VD1, VD2
-R 32.08, VD2
ROUND VD2, VD3

Da bekomme ich mit dem TR: 11165*0,004043 = 45,14 - 32,08 =13,06
Round = 13

Die S7 zeigt mir ganz komische Werte (könnte sie hinzufügen, falls das weiterhilft) und zum Schluss 8.000000 an :-/

Woran liegt das?
 
Du hast Überschneidungen mit den VDs

VD0 = VB0 bis VB3 ....



vielen Dank schonmal eNDe.

Stimmt du hast recht, da werden Zahlen ausgegeben, nur irgendwie leider die falschen (zumindest nicht die, die ich mit dem Taschenrechner errechne) ^^

Habe vergessen anzugeben, dass ich eine S7-200 habe.

Folgendes Programm habe ich geschrieben (willkürlich nur zum Rechnen mit Zahlen umwandeln usw):
LD I0.0
ITD 11165, AC1
DTR AC1, VD0
MOVR VD0, VD1
*R 0.004043, VD1
MOVR VD1, VD2
-R 32.08, VD2
ROUND VD2, VD3

Da bekomme ich mit dem TR: 11165*0,004043 = 45,14 - 32,08 =13,06
Round = 13

Die S7 zeigt mir ganz komische Werte (könnte sie hinzufügen, falls das weiterhilft) und zum Schluss 8.000000 an :-/

Woran liegt das?
 
naja aber die Überschneidungen sind ja gewollt (vielleicht von mir falsch umgesetzt).

Denn es soll ja mit den Zwischenergebnissen weitergerechnet werden.

Oder ist das falsch?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
S7-2xx

Hallo Q-Dog
habe gar nicht bemerkt, dass du noch Unklarheiten hast.
Deine Ergebnisse können nicht stimmen, weil du die Anzahl der notwendigen Byte für das Format Real nicht beachtest. Dein Programm stimmt sofort, wenn du es wie folgt eingibst (Real erdordert 4 Byte)
Code:
LD I0.0
ITD 11165, AC1
DTR AC1, VD0
MOVR VD0, VD1
*R 0.004043, VD1
MOVR VD1, VD2
-R 32.08, VD2
ROUND VD2, VD3
Gruß eNDe
 
S7-200

Fehler --> Korrektur:
HTML:
LD     I0.0
ITD    +11165, AC1
DTR    AC1, VD0
MOVR   VD0, VD4
*R     0.004043, VD4
MOVR   VD4, VD8
-R     32.08, VD8
ROUND  VD8, VD12
Entschuldigung!
eNDe
 
Hmm, ich erkenne leider keinen Unterschied zu meinem Code :confused:

Oder wie ändere ich das mit den 4Byte?


/Edit
ahh ok ^^
Vielen vielen Dank eNDe, klappt 1a :)
 
Zurück
Oben