VAR_TEMP
...
mIW_Raw_RL : REAL;
mIW_Raw_DD AT mIW_Raw_RL : DWORD;
...
END_VAR
...
DB_NR.DD[mDB_ADR_IL] := mIW_Raw_DD;
...
DB_NR.DD [mDB_ADR_IL] := REAL_to_DWORD(mIW_Raw_RL) ;
... oder alternativ :
GrußCode:DB_NR.DD [mDB_ADR_IL] := REAL_to_DWORD(mIW_Raw_RL) ;
LL
Ich hätte vermutet, daß REAL_TO_DWORD rundet?... oder alternativ :
Code:DB_NR.DD [mDB_ADR_IL] := REAL_to_DWORD(mIW_Raw_RL) ;
Gruß
LL
Ich habe Deine alternative gerade getestet und sie funktioniert. Was mich allerdings ehrlich verwundert. Ich hätte jetzt erwartet das Step7 da ein vorzeichenlose Ganzzahl daraus macht. Da die S7 je kein UDINT kennt und dafür ein DWORD nimmt.
Bin auch gerade am Testen. Und dieser Typ ist echt hilfreich für weitere Manipulationen mit Realwerten.
Danke
Nee, es rundet wirklich. Ich arbeite nicht oft mit SCL, deshalb habe ich es gerade mal probiert. Die SCL-Anweisungen:Ich und auch Zottel hätten erwartet das REAL_TO_DWORD aus einem Real eine Ganzzahl macht (also die Kommastellen weg rundet).
Ich habe es gerade noch mit CoDeSys getestet und auch da wird bei REAL_TO_DWORD eine Ganzzahl daraus (wie ich es auch erwartet habe).
Step7 verwundert mich immer wieder.
FUNCTION FC3 : VOID
VAR_TEMP
myReal :REAL;
myDWORD:DWORD;
END_VAR
myReal := 1.0;
myDWORD := REAL_TO_DWORD(myREAL);
END_FUNCTION
SET
SAVE
= L 8.1
L 1.000000e+000
T #myReal
T #myDWORD
SAVE
BE
Ich habe V5.4, Release 5.4.0.0 benutztMir kam die Alternative gleich komisch vor. Darum hatte ich sie ja auch getestet.
Also mein Test (Kurzform):
SCL:
ergibt in AWL:Code:FUNCTION FC3 : VOID VAR_TEMP myReal :REAL; myDWORD:DWORD; END_VAR myReal := 1.0; myDWORD := REAL_TO_DWORD(myREAL); END_FUNCTION
IMHO ist das ein Bug und wahrscheinlich hast Du eine neuere Version von Step7 als ich (SCL V5.1+SP4) in der dieser Bug beseitigt wurde.Code:SET SAVE = L 8.1 L 1.000000e+000 T #myReal T #myDWORD SAVE BE
@Larry: Welche Version hast Du?
Hallo Zottel und Zotos,
ich benutze SCL 5.3.SP4.
Die Routinen, die ich benutze und die diese Variablen-Wandlung machen sind allerdinngs mit SP1 erstellt und noch nicht wieder neu "compiliert". Somit danke ich euch beiden für diesen Hinweis, denn damit laufe ich ja Gefahr, dass einer meiner "Standard"-Bausteine nach einer neuen "Compilierung" nicht mehr funktioniert.
Gruß
LL
Es ist also anscheinend auf jeden Fall wichtig, hin und wieder mal über die Dinge zu sprechen. Manche Sachen bekommt man nicht immer so direkt mit ...
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?