Syntaxfehler NumToString!!

  • Hallo,


    ich habe folgendes Problem mit der Funktion "NumToString"!
    Es kommt jedesmall Syntaxfehler bei folgendes Beispiel:


    VAR string strmi;
    strmi := NumToStr(4711);


    als Fehler bekomme ich dann das ausgegeben:


    Fehler 40136 : Syntaxfehler : Unerwartet: identifier ':=' identifier ... 30.03.2011 10:10:15 RAPID
    überprüft. 1 Syntaxfehler 0 Semantikfehler. 30.03.2011 10:10:15 RAPID



    Hat jemand ein Tip für mich?



    lg klausii

  • ANZEIGE
  • Hi,


    du musst noch die Dezimalstellen mit angeben die du haben willst , also z.B. strmi := NumToStr(4711,2);!

  • Hallo Erazor,


    die Funktion "NumToStr" erwartet zusätzlich zum eigentlichen Wert auch die Anzahl der Dezimalstellen:


    Hier ein paar Beispiele aus dem Referenzhandbuch:


    Beispiel 1:

    Code
    VAR string str;
    str := NumToStr(0.38521,3);


    Die Variable str erhält den Wert "0,385".


    Beispiel 2:

    Code
    reg1 := 0.38521;
    str := NumToStr(reg1, 2\Exp);


    Die Variable str erhält den Wert "3,85E-01".


    Beispiel 3:

    Code
    VAR dnum ex3 := 1234567890.123456;
    str := NumToStr(ex3, 15\Exp);


    Die Variable str erhält den Wert "1.234567890123456E+09".


    Falls Du keine Nachkommstellen angegebn möchtest, kannst Du auch die Funktion "ValToStr" benutzen.


    strmi := NumToStr(4711,0);
    oder
    strmi := ValToStr(4711);



    Tip:
    Manchmal hilft ein Blick in das Referenzhandbuch !


    Gruß
    Micky

    Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind. (Albert Einstein)

  • Hallo,


    danke erstmal, das Problem bleibt aber gleich auch mit dem Beispiel des Referenzhandbuchs...
    Ich bekomme bei den Beispiel vom Refbuch auch den gleichen Fehler:



    (168,3): Fehler 40136 : Syntaxfehler : Unerwartet: identifier ':=' identifier ...
    1 Syntaxfehler 0 Semantikfehler.


    Der Fehler ist immer noch irgendwo in der Zeile:


    str := NumToStr(0.38521,3);


    ich weiß wirklich nicht warum!!!!

  • Hi, könnte das dein Problem lösen?


    VAR string strmi:="";

    strmi := NumToStr(4711,0);


    Also der Variable beim Erzeugen einen Wert zuweisen.
    Gruß Paulaner

    Für seine Arbeit muß man Zustimmung suchen, aber niemals Beifall.<br />Zitat: Charles-Louis Baron de Montesquieu

  • Hallo Paulaner,


    das gleiche habe ich ebenfalls probiert - ich habe auch die Variable schon an der
    TPU angelegt und es dann versucht. Ich bekomme immer wieder den Syntaxfehler.

  • Wenn du diese Zeile
    strmi := NumToStr(4711,0);


    einkommentierst also


    !strmi := NumToStr(4711,0);
    verschwindet auch deine Fehlermeldung?

    Für seine Arbeit muß man Zustimmung suchen, aber niemals Beifall.<br />Zitat: Charles-Louis Baron de Montesquieu

  • Ist ja mal Lustig :denk:
    Hast du eine S4 oder schon die IRC5-Steuerung?
    Wird bei der Fehlermeldung keine Zeilennummer angegeben?
    Meiner Meinung nach hast du irgendwo ein Fehler bei der String-Variable weil ja die Programmzeile korrekt ist.
    Wo hast du deine Variable deklariert, im Modul oder direkt im Programm wo du auch diese Funktion nutzen willst?

    Für seine Arbeit muß man Zustimmung suchen, aber niemals Beifall.<br />Zitat: Charles-Louis Baron de Montesquieu

  • ich habe eine IRC5....


    bei den Fehler wird die Zeilennummer angegeben:


    (168,3): Fehler 40136 : Syntaxfehler : Unerwartet: identifier ':=' identifier ...
    ^^
    das ist bei mir jetzt z.B. die Zeile 168
    also genau diese Zeile:


    str := NumToStr(0.38521,3);


    und als Fehler kommt:


    Fehler 40136 : Syntaxfehler : Unerwartet: identifier ':=' identifier ...


    Ich habe die Variablen im Modul deklariert....

  • Bei solchen Meldungen kann auch dein Syntaxfehler vor der eigentlichen Zeile sein. Also da musst du schon etwas mehr hier reinschreiben.
    Wie sehen die Zeilen vor der str := NumToStr(0.38521,3); Zeile aus?
    Zeig mal bitte einen Ausschnitt wo du die Variabele deklariert hast und einen Ausschnitt vor der NumToStr Funktion.
    Würde mal Tippen das vor der NumToStr Funktion ein Tippfehler ist.
    Gruß Paulaner.

    Für seine Arbeit muß man Zustimmung suchen, aber niemals Beifall.<br />Zitat: Charles-Louis Baron de Montesquieu

  • Hi,


    da ist irgendwas nicht wirklich gerade, die Syntax ist so korrekt! Genauso kann ich das ganze im Robotstudio (IRC5) ohne Fehlermeldung nachvollziehen!


  • Bei solchen Meldungen kann auch dein Syntaxfehler vor der eigentlichen Zeile sein.


    Müsste sogar, sonst würde die Fehlermeldung nicht lauten: "unerwartet".
    Der Compiler wird von diesem Ausdruck also überrascht, weil er sie nicht erwartet hat. Erwartet hat er was anderes.
    Zu bedenken ist, dass dem ABB Zeilenumbrüche egal sind. Man kann innerhalb von "Programmzeilen" Umbrüche machen. Befehle werden abgeschlossen durch ";". Weitere Klammern sind die bekannten Schlüsselwörter, die Schleifengrenzen oder Funktionsgrenzen definieren.
    Es reicht also, wenn irgendwo oberhalb was falsch geschachtelt ist.


    Grüße,
    Michael

Hilfe und Support für ABB Roboter Programmierung, Konfiguration, Inbetriebnahme finden Sie hier im ABB Roboter Forum. ABB Rapid Programmierung ist einfach, die Roboterforum Community hilft sehr gerne.

Erstelle ein Benutzerkonto oder melde dich an um zu kommentieren

Du musst ein Benutzerkonto haben um einen Kommentar hinterlassen zu können

Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Geht einfach!
Neues Benutzerkonto erstellen
Anmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden