Ausgänge pulsen im TP

  • Hallo,


    Ich möchte einen Ausgang im TP Programm pulsen.Aber ich will die Zeit variabel einstellen können.Über ein Register,dann brauch ich nicht jedesmal anzuhalten,wenn ich die Zeit verändern will.
    Wartezeit kann ich ja mit einem Register steuern.Aber auch Ausgänge pulsen ?
    Geht das ?



    Gruß


    Mike

    Hubraum ist durch nichts zu ersetzen, außer durch noch mehr Ladedruck

  • ANZEIGE
  • Hi Mike,
    würde das auf dem ersten Blick mal mit einem Macro probieren und dann über eine der Funktionstasten. Im Macro selbst kannst Du ja dann zum Puls oder Setze/Rücksetze Dein Register einbinden welches Du dann variabel verändern kannst.
    Sollte das nicht gehen mit der indirekten Wertzuweisung für eine Pulselänge gibt es da sicherlich den Zugriff über Systemvariablen.


    Hoffe ich konnte Dir etwas helfen.


    robotic74


    P.S.: Was mir da noch einfällt. Bei den Funktionstasten lässt sich auch noch etwas einstellen mit Ausgängen etc. schau doch da mal nach ob es dort nicht schon eine Einstellung gibt. Aber variabel lässt sich die nicht einstellen. Da bist Du mit dem Macro sicherlich besser drann.

    Wer nichts macht, macht keine Fehler!

    Wer keine Fehler macht, kann nichts daraus lernen!

    Wer nichts lernen kann, kann sich nicht weiterentwickeln!

    Wer sich nicht entwickelt, geht unter!

    Einmal editiert, zuletzt von robotic74 ()

  • Hallo Mike
    Mit Karel wäre das kein Thema aber ich denke mal du willst das in TPE haben.
    Pulslänge indirekt angeben geht leider nicht,gibt auch keine Systemvariabeln dazu.
    Es wäre aber machbar das ganze mit Multitasking oder zur not nen Makroaufruf zu realisieren.
    Man kann bei der WAIT...(sec) Anweisung die Zeit indirekt angeben.
    z.B
    DO[1]=ON
    WAIT R[1] --------im Register 1 steht die Zeit in Sekunden
    DO[1]=OFF
    Wenn du sowas mit Multitasking nebenbei ausführst sollte das funktionieren.
    Wenn der Roboter während des pulsens eh steht gehts natürlich auch ohne.





    Gruß Rob76

    Einmal editiert, zuletzt von rob76 ()

  • Vielleicht sollte man ihm einfach ein kleines Karelproggi geben, das er dann als "Makro" verwenden kann. Ein Register für Impuls und eins für Pausendauer...


    Eben die "Zehn-Zeilen-Lususvariante"...

    Wolfram (Cat) Henkel

    never forget Asimov's Laws at the programming of robots...

    "Safety is an integral part of function. No safety, no production. I don't buy a car without brakes."


    Messages und Mails mit Anfragen wie "Wie geht das..." werden nicht beantwortet.

    Diese Fragen und die Antworten interessieren jeden hier im Forum.


    Messages and Mails with questions like "how to do..." will not be answered.

    These questions and the answers are interesting for everyone here in the forum.

  • So was wäre nicht schlecht,langsam muß ich mal mit Karel anfangen,und im Betrieb haben wir niemanden der sowas kann.
    Wenn`s nicht zuviel Mühe macht..........




    Gruß


    Mike

    Hubraum ist durch nichts zu ersetzen, außer durch noch mehr Ladedruck

  • hier....



    226 Zeilen (140 ohne Kommentare) 4106 Byte ausführbarar Karel PC-Code



    Zipfile mit PC-Code anbei


    Keine Garantie auf Funktion, Nutzen, Lauffähigkeit oder was auch immer!


    Das PC-File auf den Robbi laden und starten
    (ggf. vorher $karel_enb auf 1 setzen)


    Beim Ersten Start fragt das Programm nach Registernummern , Ein und Ausgängen und Zeiten


    Merk Dir diese Nummern, Register und Ausgänge werden hier NICHT automatisch beschriftet (Kann gerne jemand anders implementieren)


    Register werden zwingend 4 Stück benötigt
    Eins mit der Nummer des Blinkausgangs, eins mit dem Freigabeeingang, eins mit der Impulszeit (in Millisekunden) und eins mit der Pausenzeit (wieder in ms)
    Die Zeiten sind immer auf 8 ms genau (Siehe Handbuch)


    Wenn kein Freigabeeingang gebraucht wird MUSS das Register trotzdem verwandt werden. Wenn da aber dann eine 0 drin ist, wird der Eingang nicht abgefragt.


    Nach dem Ersten Abfragen der Daten läuft das Programm bis zum "Abort All" oder zum Neustart oder bis die Impulszeit auf 0 gesetzt wird...


    Gestartet kann es werden durch einen TP-Aufruf (bei neueren Geräten mit "run" bei älteren mit einem bedingten "call" (die Bedingung ist dann der Inhalt des Impulszeitregisters)
    Ebenfalls gestartet wird durch Konfigurieren


    Konfigurieren (Initialisieren/Neustart)
    Ein Start mit eingeschaltetem TP UND Impulszeitregister enthält "0" führt zum einer Abfrage, ob Du konfigurieren oder beenden willst. Es kann dadurch immer eine Konfiguration ausgelöst werden.


    Löschen:
    Wenn $karel_enb = 1 kann man Karel-Programme im TP sehen.
    takter.pc löschen.
    Danach erscheint eine Variablenliste (takter.vr heißt die glaub ich)
    ebenfalls löschen (sollte möglich sein, auch wenn die Variablen z.T. im CMOS liegen)
    Nu isses weg... ;)

    Wenn der Takter läuft, ist die "BUSY"-Lampe am TP "Ein".
    Das kann geändert werden. Außerdem kann eine der übrigen TP-Leds den Takter visualisieren. Also einfach sagen was....


    NOCHMAL: Keine Garantie, Verwendung auf eigenes Risiko!

    Wolfram (Cat) Henkel

    never forget Asimov's Laws at the programming of robots...

    "Safety is an integral part of function. No safety, no production. I don't buy a car without brakes."


    Messages und Mails mit Anfragen wie "Wie geht das..." werden nicht beantwortet.

    Diese Fragen und die Antworten interessieren jeden hier im Forum.


    Messages and Mails with questions like "how to do..." will not be answered.

    These questions and the answers are interesting for everyone here in the forum.

    Einmal editiert, zuletzt von WolfHenk ()


  • Ich kann Dir einiges davon zeigen.
    Habe voraussichtlich kommende Woche Zeit. Frag mal meinen Boß danach.


    Infos ggf. per PM

    Wolfram (Cat) Henkel

    never forget Asimov's Laws at the programming of robots...

    "Safety is an integral part of function. No safety, no production. I don't buy a car without brakes."


    Messages und Mails mit Anfragen wie "Wie geht das..." werden nicht beantwortet.

    Diese Fragen und die Antworten interessieren jeden hier im Forum.


    Messages and Mails with questions like "how to do..." will not be answered.

    These questions and the answers are interesting for everyone here in the forum.

  • Hallo an alle,


    WolfHenk, laut dir:

    Zitat

    Gestartet kann es werden durch einen TP-Aufruf (bei neueren Geräten mit "run" bei älteren mit einem bedingten "call" (die Bedingung ist dann der Inhalt des Impulszeitregisters)
    Ebenfalls gestartet wird durch Konfigurieren


    soll er den Aufruff mit RUN ausführen.
    Meine erste Frage, wenn du kein Multitasking hast, kannst du dann den Befehl trotzdem irgendwie ausführen?
    Ich hab auf meinem jetzigen RJ3iB geschaut ich hab nur CALL zu Verfügung.


    Das mit CALL hab ich auch irgend wie nicht verstanden, ist es auch nicht so bei KAREL wie ein UP-Aufruff, so dass erst das UP durchgerattert wird und dann erst zurück gesprungen wird, und bei DELAY auch die Haupttask stehen wird?
    Wird da etwa extra Task aufgemacht :kopfkratz:


    Versteht ihr mich nicht falsch, möchte nicht angeben, oder so, ich raf das wirklich nicht :(


    MfG heini

  • hmm...


    call... Guter Einwand. Wäre zu prüfen.


    Also müßte noch eine Startmichselbst-Einrichtung dazu.


    Starte es einfach mal als makro


    [edit] Multi-task (Run) ist die Option A05B-2400-J600. Sie liegt im TP unter 14. Multiple Control versteckt (Da wo auch SEMAPHORE und WAIT SEMAPHORE sind[/edit]

    Wolfram (Cat) Henkel

    never forget Asimov's Laws at the programming of robots...

    "Safety is an integral part of function. No safety, no production. I don't buy a car without brakes."


    Messages und Mails mit Anfragen wie "Wie geht das..." werden nicht beantwortet.

    Diese Fragen und die Antworten interessieren jeden hier im Forum.


    Messages and Mails with questions like "how to do..." will not be answered.

    These questions and the answers are interesting for everyone here in the forum.

    Einmal editiert, zuletzt von WolfHenk ()

  • Hallo,


    das mit Karel war schon kein schlechter Tipp.


    Aber warum nicht so:


    TP Prog ruft mit 2 Parametern ein Karel Programm (ohne zugeordnete Bewegungsgruppe) auf.


    z.B. CALL PULSEN(P1, P2)
    P1 = Constant = Ausgang der gepulst werden soll (also 12 für DO[12])
    P2 = Constant = Zeiger auf das Register, das die Pulsdauer in ms enthält (also z.B. 100 für Register R[100] in dem z.B. der Wert 200 für 0,2s steht)


    Im Karelprogamm -> PULSEN.KL


    1. Aufgabe
    zwei Variablen definieren (z.B. ausgang & dauer beide vom Typ Integer) und mit Hilfe des zweiten Parameters (Zeiger auf R) den Wert mittels BUILT IN Routine GET_REG ermitteln.


    Anmerkung: natürlich sind zur Ermittlung des Datentyps der übergebenen Parameter weitere Variablen erforderlich -> siehe Handbuch...


    2.
    Mit den ermittelten Parametern...
    PULSE DOUT[ausgang] FOR dauer NOWAIT


    3.
    Programm übersetzen und auf die Steuerung laden.


    4.
    Flasche Bier öffnen...und genießen :beerchug:

    Einmal editiert, zuletzt von ChrisFTR ()

  • jo.
    Das wäre die "Light-Version" gewesen.


    Ich wollte aber die Luxusvariante liefern (mein vierter Beitrag)

    Wolfram (Cat) Henkel

    never forget Asimov's Laws at the programming of robots...

    "Safety is an integral part of function. No safety, no production. I don't buy a car without brakes."


    Messages und Mails mit Anfragen wie "Wie geht das..." werden nicht beantwortet.

    Diese Fragen und die Antworten interessieren jeden hier im Forum.


    Messages and Mails with questions like "how to do..." will not be answered.

    These questions and the answers are interesting for everyone here in the forum.

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