Not a number

  • Hallo,


    wir stehen zur Zeit vor folgendem Problem:


    Wir möchten uns die Variable $Vel_c.cp auf die Schnittstelle über die sps.sub übertragen, die Logik ist soweit auch fertig. Jedoch haben wir das Problem wenn wir ein Programm anwählen, wird der Fehler CP Wert ungültig generiert.
    Heißt das die Variable beim anwählen des Programms keine Zahl beinhaltet, sondern folgenden Wert (““).
    Kann man auf der Robotersteuerung beim Anwählen eines Programms einen Wert auf die Variable $Vel_c.cp beschreiben? Oder ist es in der KRL möglich „not a number“ zu definieren?
    Wir haben zu diesem Thema leider nichts in der Dokumentation des Roboters gefunden.
    Es handelt sich um eine KRC 4 Version mit folgendem Softwarestand: V8.2.19



    Ich hoffe das Forum kann uns bei der Fehlerbehebung unterstützen.
    Vielen Dank im vorraus.
    Grüße
    Alex

  • Schritt für Schritt zum Roboterprofi!
  • Vielleicht kannst du ja das Programm, welches in der sps.sub aufgerufen wird und für die Auswertung zuständig ist erst dann starten wenn $vel_c.cp einen Wert hat? Vermute mal nach der Initialisierung.
    Könntest du einfach mit einem bool machen


    nach ini:
    AUSWERTUNG= TRUE


    und in sps.sub


    IF AUSWERTUNG==TRUE THEN
    AuswerteProgramm()
    ENDIF

  • Hallo Alex,
    Dein Problem kommt daher, dass bei der Anwahl Tool verworfen wird und daher keine lineare Geschwindigkeit angezeigt werden kann (Auf was soll sich die denn beziehen?)
    Würde dies mit ON_ERROR_PROCEED lösen. Ignoriert Fehler in der nächsten Zeile, schreibt in $err.number Fehlernummer, wo Du nachher sehr einfach auswerten kannst.


    ON_ERROR_PROCEED
    aoausgangsvariablexyz=$Vel_c.cp
    IF $ERR.NUMBER == 0 THEN
    ; alles i.O.
    ELSE
    ERR_CLEAR($ERR)
    ENDIF


    Gruss SJX

    Manche Maenner bemuehen sich lebenslang, das Wesen einer Frau zu verstehen. Andere befassen sich mit weniger schwierigen Dingen z.B. der Relativitaetstheorie.

  • Hallo zusammen,


    Danke für eure Mithilfe, ich habe das Problem nun wie folgt gelöst:


    IF Varstate("$Vel_C.CP")==#INITIALIZED Then
    IOSignale=$Vel_C.CP
    ENDIF


    Danke für eure Mithilfe. Ihr habt mir den passenden Denkanstoß zur Fehlerbehebung geben können!


    Wie schließt man nun ein offenes Thema? :beerchug:

  • Würde dies mit ON_ERROR_PROCEED lösen. Ignoriert Fehler in der nächsten Zeile, schreibt in $err.number Fehlernummer, wo Du nachher sehr einfach auswerten kannst.


    ON_ERROR_PROCEED
    aoausgangsvariablexyz=$Vel_c.cp
    IF $ERR.NUMBER == 0 THEN
    ; alles i.O.
    ELSE
    ERR_CLEAR($ERR)
    ENDIF




    Sachen gibt's ...
    Gut zu wissen!

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