Welcome to our new forum
All users of the legacy CODESYS Forums, please create a new account at account.codesys.com. But make sure to use the same E-Mail address as in the old Forum. Then your posts will be matched. Close

Fehler 4010: "Kann REAL nicht in DWORD konvertieren" ??????

2012-03-01
2012-03-01
  • Florian03091988 - 2012-03-01

    Hallo liebes Forum,

    ich habe ein Problem, für welches mich alle für blöd halten werden und zu dem ich nirgendwo etwas gefunden habe.

    Hier ist der Code meines Simulationsprogrammes:

    (*Analogwertverarbeitung / Klimasteuerung*)
    (*Erstellungsdatum: 01.03.2012*)
    (*Steuerung Raumtemperatur*)
    Instanz1_Analogsimulation_ST(
    Sollwert_WORD:=Merkerwort_TEMP_SOLL ,
    Impulsdauer_Hochzaehlen:= Laufzeit_Hoch,
    Pausendauer_Hochzaehlen:=Laufzeit_Hoch ,
    Impulsdauer_Runterzaehlen:=Laufzeit_Runter ,
    Pausendauer_Runterzaehlen:= Laufzeit_Runter,
    Zaehler_Reset:= FALSE,
    Initialwert_setzen:= Initialwert_Setzen,
    Merker_Initialwert:=Merkerwort_INITIAL ,
    Ausgabe_Istwert=>Zwischenwert_TEMP );
    Ausgabewert_TEMP:=( WORD_TO_REAL(Zwischenwert_TEMP)/10.0);
    (*Steuerung Luftfeuchte*)
    Instanz2_Analogsimulation_ST(
    Sollwert_WORD:=Merkerwort_FEU_SOLL ,
    Impulsdauer_Hochzaehlen:= Laufzeit_Hoch,
    Pausendauer_Hochzaehlen:=Laufzeit_Hoch ,
    Impulsdauer_Runterzaehlen:=Laufzeit_Runter ,
    Pausendauer_Runterzaehlen:= Laufzeit_Runter,
    Zaehler_Reset:= FALSE,
    Initialwert_setzen:= Initialwert_Setzen,
    Merker_Initialwert:=Merkerwort_INITIAL ,
    Ausgabe_Istwert=>Zwischenwert_FEU );
    Ausgabewert_FEU:=( WORD_TO_REAL(Zwischenwert_TEMP)/10.0);
    (*Programmende*)
    

    So, nun seht ihr in der letzten Zeile der beiden Programmteile die Zeile:

    Ausgabewert_FEU:=( WORD_TO_REAL(Zwischenwert_TEMP)/10.0);
    

    Diesen Ausgabewert lasse ich im PLC_PRG auf einen Merker schreiben.
    Ich weiß gerade ums verecken nicht, welche Art von Merker für diese REAL-Zahl benutzt werden muss.

    Die REAL-Zahl wird ja mit 32bit Speicher belegt, deshalb dachte ich, ich nehme ein Doppelwort, sprich: %MD8
    Der angezeigte Fehler: Fehler 4010: Unverträgliche Typen, kann REAL nicht in DWORD konvertieren.

    Alles andere, was mir eingefallen ist, hat auch nicht wirklich gut funktioniert.

    Könnt ihr mir weiterhelfen??

    VIELEN Dank schon mal!

    Verzweifelte Grüße, Florian

     
  • KlOis - 2012-03-01

    Als was hast du deklariert?
    Als DWORD?
    Dann musst du schreiben:

    Ausgabewert_FEU:=REAL_TO_DWORD( WORD_TO_REAL(Zwischenwert_TEMP)/10.0);
    
     

Log in to post a comment.