Keine Berechnung mit DWORD möglich

MPH

Level-1
Beiträge
75
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi Leute,

ich weiss nicht ob ich einen Denkfehler habe aber ich wollte eine Berechnung von 2 Variablen machen. Diese sind als DWORD deklariert.

Wenn ich nun aber eine normal Berechnung machen möchte, wie zum Beispiel

a:=b+c (alles in DWORD)

bekomme ich die Fehlermeldung: Operation "+" nicht kompatibel mit den Datentypen DWORD.

Kann in Step 7 keine Berrechnung mit DWORD machen. Und wenn nein warum nicht?????

Hoffe mir kann jemand helfen.

Vielen Dank

Grüße
 
Dword

Hallo,

DWORD ist keine Zahlenformat - deswegen meckert hier die Typprüfung. Bei Berechnungen wird von Zahlen ausgegangen.

André
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ein DWORD ist bei strenger Betrachtung keine Zahl, sondern halt nur "32 Bit".
In Step7 gibt es auch allgemein keinen Unsigned-Datentyp.

Ergo: Du muss deine beiden DWORD einen Typecast unterziehen (DWORD_TO_DINT).

Mfg
Manuel
 
Hi Leute,

danke für die schnellen Antworten.
Dann verstehe ich aber nicht warum im Handbuch der Win AC bei Befehlsätzen steht, dass eine arithmetische Berechnung von Doppelwort eine Ausführungszeit von 8 µs hat.
Wie haben die des dann gemacht, wenn eine Berechnung nicht möglich ist. Weil eine Typenumwandlung kostet ja auch Zeit!!!!

Vielen Dank

Grüße
 
Eine Typumwandlung DWORD_TO_DINT kostet keine Zeit und keinen Programmspeicher, es ist einfach eine Anweisung für den Compiler, den Inhalt eines 32-Bit-Doppelwords als 32-Bit-Integer zu betrachten.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
DINT Variablen lassen sich nicht verwenden, wenn man die Werte vorher aus einem PED, z.B. aus einer SSI Karte holen will.
Dann kann man nur DWORD an den weiterverarbeitenden Baustein übergeben. Big S Idiotie halt...

Euer Schatten
 
Da ist der Schatten aber schlecht informiert ...

Symboltabelle
mySSI PEDxxx DINT
Fertig.

Mfg
Manuel
 
Wenn das PED als DWORD deklariert sein muß:

@shadowdb
In FUP/KOP: Notfalls kann man einen MOVE vom als DWORD deklarierten PED auf eine DINT-Zwischenvariable machen.
In SCL reicht das DWORD_TO_DINT.

Harald
 
Zurück
Oben