$PRO_NAME1[] abfragen

  • Hej Leutle,


    ist wahrscheinlich ne total banale Frage, aber trotzdem....


    System KRC4.
    Vorhaben: Ich möchte gerne abfragen, natürlich im Submitinterpreter, welches Programm gerade angewählt ist. Gedacht habe ich mir, dass ich die Systemvariable $PRO_NAME1[] auswerte.
    Folgenden Code hatte ich probiert


    IF $PRO_NAME1[]==XXX THEN


    TUE WAS


    ENDIF


    Das funktioniert nicht! Fehler 2259 "linker Operand: Feld bzw. Pfad unzulässig"
    Auch wenn ich den Namen in "" setze, das gleiche. Fehler 2241 "Rechter Operand ungleich INT, REAL, BOOL, CHAR, ENUM".


    Dann habe ich gedacht, mach es doch mit einer Switch abfrage


    Folgenden Code hatte ich probiert


    SWITCH $PRO_NAME1[]


    CASE XXX


    TU WAS



    CASE XYZ


    TU WAS ANDERES


    ENDSWITCH


    Das funktioniert nicht! Auch wenn ich den Namen in "" setze, das gleiche. Fehler 2273 "Feld unzulässig".



    Bin ich zu doof? Man kann doch CHAR Variablen auf diesem Wege abfragen, oder???


    :wallbash:


    Schönen Gruß und danke schon mal


    Robotiker

    Wenn die Menschen Flügel hätten und schwarze Federn, wären die wenigsten schlau genug, um Krähen zu sein! Henry Ward Beecher

    Einmal editiert, zuletzt von Robotiker ()

  • Schritt für Schritt zum Roboterprofi!
  • Hallo,


    versuch doch mal


    BOOL StrComp (CHAR strComp1[470] :IN, CHAR strComp2[470] :IN, CASE_SENSE_T CaseSens :IN)


    strComp1 - string to compare with strComp2
    strComp2 - string to compare with strComp1
    CaseSens - case sensitive or not (#CASE_SENS, #NOT_CASE_SENS)
    return value - Returns TRUE if the strings are equal


    Examples:
    StrComp ("ABC”, "ABC”, (#CASE_SENS)) ? =>TRUE
    StrComp ("ABC”, "abc”, (#NOT_CASE_SENS)) =>TRUE
    StrComp ("ABC”, "abc”, (#CASE_SENS)) => FALSE
    StrComp ("ABC”, "acb”, (#NOT_CASE_SENS)) =>FALSE


    siehe 11.15.6 Inhalt von Stringvariablen vergleichen in der "KUKA System Software 8.3 Bedien- und Programmieranleitung für Systemintegratoren"


    Fubini

    Einmal editiert, zuletzt von fubini ()

  • Hej,


    danke für die Antworten,


    @tealmaster: Habe das noch nicht probiert, denke aber es klappt auch nicht, da er Probleme mit der Auswertung der Systemvariable hat.


    fubini: Danke für den Tipp. Habe es mir direkt mal angeschaut und probiert, aber leider kriege ich den aktuellen Programmnamen nicht verglichen. Er hat anscheinend Probleme die $PRO_NAME1[] zu verwerten. Habe in einem alten Beitrag mal etwas gelesen von wegen Laufzeitvariablen. Ich denke das hat damit was zu tun.


    Danke trotzdem, und schöne WE.


    Robotiker

    Wenn die Menschen Flügel hätten und schwarze Federn, wären die wenigsten schlau genug, um Krähen zu sein! Henry Ward Beecher

  • Hallo Robotiker,
    laut Doku kannst du bei einem Switch Case Fall nur einen einzelnen "Charakter" auswerten.
    Auszug aus der Doku:
    SWITCH NAME
    CASE "A"
    UP_1()
    CASE "B","C"
    UP_2()
    UP_3()
    CASE "C"
    UP_5()
    ENDSWITCH


    Wie die Kollegen schon geschrieben haben....Da must mit StrComp() arbeiten.
    Gruß Paulaner

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

  • die Variable $PRO_NAME1[] vor demm auswerten auf eigene Variable kopieren und dann vergleichen dann sollts mit StrComp gehen. einige Systemvariablen sind da bissel empfindlich.


    Gruß Loipe

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