Keine Berechnung mit DWORD möglich

MPH

Well-known member
Beiträge
75
Punkte Reaktionen
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
 

sps-concept

Well-known member
Beiträge
2.236
Punkte Reaktionen
251
Dword

Hallo,

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

André
 

MSB

Well-known member
Beiträge
7.116
Punkte Reaktionen
1.601
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
 
OP
M

MPH

Well-known member
Beiträge
75
Punkte Reaktionen
1
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
 

PN/DP

User des Jahres 2011 - 2013; 2015 - 2017; 2020
Beiträge
17.557
Punkte Reaktionen
5.165
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
 

shadowdb

Well-known member
Beiträge
109
Punkte Reaktionen
7
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
 

MSB

Well-known member
Beiträge
7.116
Punkte Reaktionen
1.601
Da ist der Schatten aber schlecht informiert ...

Symboltabelle
mySSI PEDxxx DINT
Fertig.

Mfg
Manuel
 

PN/DP

User des Jahres 2011 - 2013; 2015 - 2017; 2020
Beiträge
17.557
Punkte Reaktionen
5.165
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
 
Oben