Anfänger Frage submit interpreter

  • Hallo zusammen


    Ich möchte gerne parallel zu meiner Roboter Bewegung einen Dreh Teller steuern


    Steuerung KRC 4

    Roboter Kr6r2010

    Dreh Teller besteht aus einer Schunk Einheit mit 2 Zylindern. Einer über Schalter abgefragt einer ohne Schalter


    Eine Referenzabfrage ist auch vorhanden


    Was habe ich bisher gemacht:


    Ein Flag als Startbedingung festgelegt


    Ein Test Programm (nicht im sub) geschrieben


    Alles im Test Programm in eine Schleife gepackt (Loop/endloop)


    Alles getestet. Läuft auch soweit


    Meine Fragen:


    Darf ich im sub Wait 0.3sec verwenden. Das ist so die Zeit die die Zylinder benötigen


    Ist ein wait for zulässig


    Wie sieht bei euch Profis folgender Befehl aus


    Einen digitalen Ausgang für einen Zylinder ansteuern und auf den Eingang vom passenden Schalter warten


    Für eure Hilfe wäre ich sehr dankbar

  • wait und wait for wird nicht empfohlen, da solang die sps.sub eben steht und wartet...


    setz das ventil und lass es sitzen

    Dann frag mit if den kontakt ab...


    kannst noch nen zähler einsetzen, der bei jedem durchlauf eins hochzählt. das sind dann jeweils so 8 ,16, 24 oder mehr Millisekunden. Je, nachdem, wie groß die sps.sub wird.

    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."

    https://www.xing.com/go/invite/5634410.eb15e5

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

    Diese Fragen und die Antworten interessieren jeden hier im Forum.

  • Ich würde es im Moment so machen


    IF ($IN[22] == false) then

    Goto Ende_ Dreh

    ENDIF


    Ich frage immer auf false und den Ausgang vom Drehteller Programm ab.


    Hab gerade noch keinen Plan wie die Syntax aussieht wenn das Programm weiterlaufen soll wenn meine Bedingung erfüllt ist. Ich also auf true Abfrage


    Danke für eure Mühe

  • Also ich schließe mich dem Vorredner an. Wenn du nicht in der SPS.sub bist, sondern dir eine separate z.B. Drehteller.sub gemacht hast, kannst du da mit Waits arbeiten.


    Was mir an Wait For nicht gefällt ist, dass im Zweifel da einfach nichts passiert und der Zeiger endlos wartet. Ich nehme da im Moment eine REPEAT ... UNTIL Schleife in der ich einen Zähler erhöhe. Das gibt mir zumindest die Möglichkeit auf eine aussergewöhnlich lange Wartezeit zu reagieren und eine entsprechende Fehlerbehandlung zu betreiben.

  • Wenn kein Multisubmit, dann macht man sowas etwa so:

  • Hallo zusammen


    Bisher bin ich leider erfolglos. Habe im Moment den Teller in mein Haupt Programm eingebaut. Das läuft ist halt langsam. Hermann Danke für deine Mühe. Aber ich bin mit meinen Programmier Kenntnissen noch nicht so weit um alles nachvollziehen zu können.


    In euren Antworten schreibt ihr immer wieder von einer extra sub für den Drehteller.


    Wie erstelle ich eine extra sub ?

  • Wie erstelle ich eine extra sub ?

    hallo ,

    Ab einem bestimmten Softwarestand kann ma einen Multisubmitinterpreter verwenden. Sprich parallel zu deinem Hauptprogramm kann man zyklisch ein Programm im Hintergrund ablaufen lassen.

    Der Multisubmit kann bis zu (8 glaube ich) Prozesse gleichzeitig ablaufen lassen. Wenn du keinen Multisubmit hast, dann kannst du im SPS.SUB (Ordner -->R1/ System ) das besagte von Herrman einfügen. Durch den startbefehl aus deinem src. Programm wird dein Zylinder automatisch angesteuert. Das passende Ventil oder Zylinder solltest du auch haben....