String vergleichen mit KR5sixx

  • Hallo zusammen,


    habe einen KR5 sixx V7.0.7, BOF Version 1.2.5401.0 B50, KS V7.0.50 RT.


    Nun habe ich das Problem, dass ich Strings nicht vergleichen kann, obwohl ich mich ans CRead/write 5.2 halte... Die Fehlermeldung lautet "Unterprogramm nicht gefunden"


    StrComp(StrComp1[], StrComp2[], #CASE_SENS)


    habe auch ein bisschen mit den Deklarationen gespielt, was nichts brachte...


    Gruss Tekomat


    Gruss Tekomat

  • Schritt für Schritt zum Roboterprofi!
  • Der Rückgabewert ist doch die Variable StrComp? Diese habe ich als Boolian deklariert.


    Deklarationen:
    Decl bool StrComp
    Decl CHAR StrComp1[20]
    decl CHAR StrComp2[20]


    ich finde dies zwar ein bisschen seltsam... Aber so stehts im Manual. :oops:


    Gibt es Bedingungen für die Abfrage der Antwort? Kann diese wie eine normale bool-Variable behandelt werden?
    IF StrComp==TRUE THEN
    irgendwas
    ENDIF


    Muss diese im selben Programm sein oder kann die auch in anderen Programmen verarbeitet werden?

  • Ah, jep! funktioniert. Aber die Beschreibung ist wirklich nicht ganz glücklich...
    :danke:



    Habe da noch ne andere Frage, ich muss meine Roboterposition als ASCII Code senden, gibts da eine einfache Umwandlung (Real->CHAR[])? Die Zahlen des ASCII Codes entsprechen ja nicht den dezimal Zahlen...


    Geht nicht: (SEND als CHAR[20])
    SEND[]=$Pos_Act.X
    oder
    SEND[1]=$Pos_Act.X


    :huh:

  • wenn Du die Position seriell versenden willst -
    CWRITE(..,..,..,..,"%f",$pos_act.x)
    oder nur umwandeln mit -
    SWRITE(ziel,..,..,"%f",$pos_act.x)

    Wer nach allen Seiten offen ist kann nicht ganz dicht sein

  • ich muss die position in einen String einfügen. Das System braucht das Format"SFP000xxx.xxx" und "SFP000yyy.yyy" dazu muss ich "SFP000" als CHAR mit der Position verknüpfen.


    ich dachte, wenn ich die Position in CHAR bringe kann ich das ganze dann zusammenpacken. Die Position ist auf 3 Stellen vor- und nach dem Komma Festgelegt. wenn ich die Position als REAL sende, habe ich keine Kontrolle, wieviel stellen gesendet werden.

  • wie schaut es mit einem Vorzeichen aus ???


    SWRITE(ziel,..,..,"SP000%+#07.3f",$pos_act.x)


    Das Format sagt: + = Vorzeichen immer, #0 = führende Nullen,
    7 = 5 Stellen mit Punkt und Vorzeichen(gesamt), 3 = 3 Nachkomma


    .x = 1.3 -> SP000+01.300
    .x = -1.1234 -> SP000-01.124 ; scheint da falsch zu runden
    .x = -5001.1234 -> SP000-5001.124 ; Wert zwar grösser 3 Stellen (vor Komma) wird aber
    nichts verschluckt

    Wer nach allen Seiten offen ist kann nicht ganz dicht sein

  • ah, na logo, so gehts einfacher. :wallbash:


    Laut Schnittstellenbeschreibung muss ich vorzeichenlos sein. Mal schauen was noch daraus wird!


    Jedenfalls herzlichen Dank für deine Tipps!!!


    :beerchug:

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