Ausgabe einer $PSER_3 Variable über COM3 Schnittstelle

  • Hallo Forumsmitglieder,
    auf dem Weg in die Anwendung einer KRC2 Robotershabe ich folgendes Problem.
    Wie kann ich die $PSER System Variable über eine COM3 Schnittstelle übertragen ?
    Folgendes Programm läuft. Nur nicht mit der SystemVariablen.


    &ACCESS RVP
    &REL 37
    &PARAM TEMPLATE = C:\KRC\Roboter\Template\vorgabe
    &PARAM EDITMASK = *
    DEF test2( )
    DECL INT HANDLE1
    DECL STATE_T SCHREIBSTATUS
    DECL MODUS_T SCHREIBEN
    DECL INT I
    DECL CHAR STRING[50]


    SCHREIBEN = #SYNC
    ;STRING[] = {$PSER_3}


    STRING[] = "DIESER TEXT WIRD AUF DER COM 3 AUSGEGEBEN "


    COPEN(:SER_3, HANDLE1)
    FOR I = 1 TO 5


    CWRITE(HANDLE1,SCHREIBSTATUS,SCHREIBEN, "%s" , STRING[])
    WAIT sec 1
    ENDFOR
    CCLOSE (HANDLE1 , SCHREIBSTATUS)


    END


    Was müsste in der auskommentierten Zeile geändert werden.
    Vielen Dank für die Unterstützung
    Christoph

    Ich bin Maschinen geil. Verzeihung aber ich finde die CNC - Technik super. Inzwischen plädiere ich für einen Roboter Rummel auf der Leipziger Messe

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


    $PSER_3 ist eine Struktur des Typs SER und besteht aus verschieden zusammengesetzten Datentypen.
    DECL SER $PSER_3={PROTO 0,PROC 3,RCO 0,BL 0,BAUD 9600,NOC 7,NOS 2,PARITY 2,TRC 0,FLP 1,LLP 60,RT 0,PT 0,DSR 0,WCCXON 0,VXON 11,VXOFF 13, WEOBC 1,VEOBC 3};SCHNITTSTELLE 2


    Direkt einem CHAR-Feld zuweisen geht so natürlich nicht.
    Was willst Du nun übertragen davon?
    Den Namen $PSER_3? Einzelner Wert daraus (z.B. $PSER_3.BAUD)? Alle Werte (Wenn ja, getrennt mit Steuerzeichen?) ?
    Typumwandlungen in CHAR siehe mal nach Stichwort SWRITE im Forum.


    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 SJX


    ja das hilft mir weiter. Vielen Dank. Klar wenn ich die Variable abfrage kommen ja die ganzen Einzelheiten . Jetzt habe ich verstanden was eine Struktur ist.


    Die Kinder wird es wenig interessieren aber wir können jetzt noch mehr Attraktionen bieten !


    Gruß Christoph

  • Hallo SJX


    jetzt habe ich es probiert. Leider mit einer Fehlermeldung
    2033 Satzende oder Kommentar erwartet. Ich habe einiges probiert um es zu verstehen. Wird die DECL mit Werten belegt ? Ich habe das eingetragen welche bei mir in der Variablenabfrage steht.
    ..
    DECL SER $PSER_3 = {PROTO 3,PROC 2,RCO 0,BL 0,BAUD 9600,NOC 8,NOS 1,PARITY 2,TRC 0,FLP 1,LLP 60,RT 0,PT 0,DSR 0,WCCXON 0,VXON 11,VXOFF 13,WEOBC 1,VEOBC 3}
    SCHREIBEN = #SYNC
    ;$PSER_3.BAUD = 9600
    COPEN(:SER_3, HANDLE1)
    FOR I = 1 TO 5
    ;CWRITE(HANDLE1,SCHREIBSTATUS,SCHREIBEN, "%s" , STRING[])
    CWRITE(HANDLE1,SCHREIBSTATUS,SCHREIBEN, "%s" ,$PSER_3.BAUD)
    ENDFOR
    ..
    Kannst Du mir auf die Sprünge helfen.
    Danke
    Christoph

    Ich bin Maschinen geil. Verzeihung aber ich finde die CNC - Technik super. Inzwischen plädiere ich für einen Roboter Rummel auf der Leipziger Messe

  • Hallo Bombastino,


    Schau mal in die custom.dat Datei.
    Da findest Du fixfertig die Deklaration der $PSER_3 Systemvariabeln mit den zugewiesenen Werten.
    Also raus damit aus dem .src.


    Wenn Du wirklich nun einen Wert davon 5 mal, z.B. die Baudrate, also die 9600, rausschreiben willst in den seriellen Kanal, sollte es schlussendlich so gehen.
    Kann es aber gerade nicht testen.



    Sonst schau bitte mal in die CReadCwrite Doku. Da hat es Beispiele drin.



    ….. Leider mit einer Fehlermeldung 2033 Satzende oder Kommentar erwartet....


    Solche Fehlermeldungen beziehen sich immer auf eine angegebene Satzzeile.
    Bitte nächstes mal angeben, auf welche diese sich bezieht. Wir sehen es nicht, können also nur raten.


    Gruss SJX

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

    Einmal editiert, zuletzt von SJX ()

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