Übergabevariable #ANYTYPE

  • Hallo miteinander,


    Die Funktion ValToStr() kennt vermutlich jeder der schonmal Debugging betrieben hat.


    Das schöne daran ist, dass man diese mit nahezu jedem Datentyp (#ANYTYPE) füttern kann.



    Jetzt würde ich genau dieses #ANYTYPE für eine eigene Funktion umsetzen.

    Hintergrund ist der, dass ich eine RMQ-Schnittstelle bauen möchte, die ich variablenunabhängig füttern will.

    Soll heißen, es muss der Funktion (Prozedur) egal sein dürften, ob nun eine num,string,wobjdata oder sonstetwas kommt was sie versenden soll. solange am anderen Ende der selbe Datentyp abgefragt wird, sollte die Kommunikation klappen.


    Leider habe ich bisher in der Doku nichts weiter finden können was einen Hinweis darauf gibt, ob und vor allem wie man dies für seine persönlichen Schweinereien nutzen kann.



    Hat das schonmal jemand benutzt oder zumindest einen Ansatz?=O

  • ANZEIGE
    • Hilfreich

    Hallo,

    die Doku sagt dazu folgendes:



    Heißt auf deutsch leider geht nicht


    edit:

    Könntest evtl. mit verschiedenen Parametern arbeiten wenn das für dich praktikabel ist.


    Gruß

    Z

    Einmal editiert, zuletzt von Z750 ()

  • ah die passage habe ich wohl übersehen - ich dachte ich hätte alles durchgeackert. so täuscht man sich -.-


    die nummer mit den parametern habe ich jetzt als "notlösung" implementiert. das eigentliche ziel jedoch war, dass ich auch mit eigenen records arbeiten kann (haben da aktuell einen ziemlich tief strukturierten datencontainer)


    aber vielen dank :)

  • Hallo,

    den Datentyp "anytype" steht für die Programmierung nicht zur Verfügung.
    Die RAPID-Befehle können diesen intern nutzen genauso wie einen alternativen Parameter (z.B. num bzw. dnum).


    Uns als User stehen diese Möglichkeiten aber leider nicht zur Verfügung.
    Du könntest eventuell mit alternativen optionalen Parameter arbeiten, die Du aber dann explizit angeben musst:


    Beispiel:
    PROC MyRoutine(\num nValue|dnum dnValue|string stValue)


    MyRoutine\dnValue:=33;



    Wichtig bei Verwendung der alternativen optionalen Parameter ist, dass man das Zeichen "|" ab dem zweiten Parameter anstelle des Zeichens "\" verwendet, so dass man nur einen der zur Auswahl stehenden Parameter verwenden kann und nicht alle optionalen Parameter.

    Übrigens, die gleiche Frage wurde bereits in dem ABB User Forum gestellt:
    https://forums.robotstudio.com…data-type-function#latest

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

    2 Mal editiert, zuletzt von Micky ()

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