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.