Beiträge von Robo_Tom

    Hallo, ich hätte da mal eine recht simple Frage
    Was ist eigentlich der Unterschied zwischen einem KR125/1 und einem KR125/2 ?
    und noch eine Frage: Inwiefern unterscheiden sich KR125 und KR150? Tragfähigkeit ist klar, aber wo liegt genau der Unterschied?


    Danke und Gruß
    TOM

    Guten Morgen,
    ich habe einen Interrupt programmiert der eine Benutzermeldung ausgibt. Dabei habe ich mich an die Dokumentation gehalten:

    DECL INT ANSWER
    DECL INT OFFSET
    DECL STATE_T STATE
    DECL MSG_T EMPTY_MSG
    EMPTY_MSG={MSG_T: VALID FALSE,RELEASE FALSE,TYP #NOTIFY,MODUL[] ”
    ”,KEY[] ””,PARAM_TYP #VALUE,PARAM[] ””,DLG_FORMAT[] ””,ANSWER 0}
    ;------------------------------------------QUITTIERUNGSMELDUNG--------------------
    $MSG_T=EMPTY_MSG ;Reinitialisierung
    $MSG_T.MODUL[]=””
    $MSG_T.KEY[]=”DEMO: QUIT--MESSAGE + %1”
    $MSG_T.PARAM[]=”PARAM”
    $MSG_T.PARAM_TYP=#WORDS
    $MSG_T.TYP=#QUIT
    $MSG_T.VALID=TRUE ;feuern
    WHILE $MSG_T.VALID ;auf Quittierung warten
    WAIT SEC 0.05
    ENDWHILE


    Es funktioniert auch alles soweit, nur muss ich diese Meldung immer über das KCP quittieren. Ich möchte aber im AutExt-Modus diese Meldung über die SPS quittieren können.
    Wenn ich von der SPS „Meldungen quittieren“ sende, geht nix weg.

    Woran liegt das denn?
    Viele Grüße
    Tom

    Guten Morgen,
    ich habe bei meinem KRC1 vor kurzem meine Automatik_Extern-Schnittstelle eingerichtet. Die Anbindung und der Programmstart von der SPS aus klappt auch wunderbar, allerdings habe ich irgendwie einen Fehler generiert und ich komme einfach nicht drauf woran es liegt.

    Wenn ich den Roboter hochfahre und drücke in T1/T2 den Totmannschalter, dann lassen sich die Antriebe nicht einschalten. Auch in Automatik (AUT) lassen sich die Antriebe nicht einschalten. Wenn ich allerdings kurz mit dem Schlüssel in Aut_Ext gehe und die SPS übernimmt (Antriebe EIN und Programmstart) kann ich nach einer Rückkehr in T1/T2 auch hier wieder die Antriebe einschalten. Woran könnte das denn liegen?

    Die Eingänge „Fahrfreigabe“ und „Schnittstelle aktiviert“ sind von der SPS her dauerhaft auf HI.
    „Antriebe AUS“ ist ebenfalls immer auf HI.

    Woran könnte es liegen?

    Gruß
    Tom

    Guten Morgen,
    das wäre kein Problem weil der Roboter vorher seinen Arm in eine unkritische Stellung bringt und dann eben mit E1 und A1 verfahren soll.
    Leider geht der oben vorgeschlagene Weg nicht. Meine Steuerung meldet: Konstante erwartet. Variablen gehen nicht. Ich hab eine KRC1 evtl. konnte die das noch nicht. Ist nicht auch das Problem dass es sich um Winkel und Punkt handelt? Kann man PTP {A1 90,E1 2000} überhaupt schreiben?
    Sonst irgendeinen Geheimtipp?

    Guten Morgen,
    und schon wieder eine Frage auf die ich keine Antwort finde:
    Mein Roboter hat eine externe Achse (Linearachse, wo er draufsitzt). Ich möchte E1 und A1 gleichzeitig verfahren. Geht das überhaupt? Weil vom Typ her sind die Achsen ja unterschiedlich A1 braucht eine Winkelangabe und E1 einen Punkt in mm.


    Wie kann ich PTP A1 auf 90° und E1 auf 2000mm fahren, gleichzeitig?


    Bisher sieht mein Code so aus. Die Bewegungen werden nacheinander gemacht.


    DECL AXIS DREHWINKEL
    DECL E6POS pos_schiene


    ;__Mit A1 und E1 auf Tabellenwert
    pos_schiene.e1 = LAGER[PLNR,11]
    PTP pos_schiene
    drehwinkel.a1 = LAGER[PLNR,12]
    PTP drehwinkel

    Guten Morgen,


    Danke, soweit habe ich das verstanden. Meine SPS weiß dass der Roboter nichts mehr zu tun hat und würde dann so das Programm stoppen (EINGANGSSINGNAL => ENDLOSSCHLEIFE BEENDEN => HALT)
    Hintergrund ist wiegesagt dass ich auch die Antriebe Ausschalten kann und die Lüfter stoppen kann. => Ich möchte Strom sparen , solange der Roboter nichts tut.
    Wenn er 1 Stunde später wieder Arbeit bekommt müsste Ihn die SPS nun wieder starten. Dafür muss doch der Programmzeiger wieder an den Anfang oder? Weil von HALT komme ich ja nicht wieder zurück in meine Endlosschleife.


    Gruß
    Tom

    Hallo. Habe eine Frage zur Automatik Extern Funktion.
    Wie in einem vorherigen Beitrag geschildert hat mein Roboter oft lange Wartezeiten. In dieser Zeit möchte ich das Programm stoppen, Antriebe ausschalten und Lüfter ausschalten.


    Wie löse ich das nun mit der AutoExt-Funktion?


    Ich würde mein Programm per Hand (KCP) laden und dann folgendes von der SPS über die definierten I/Os kommunizieren


    Motoren ein pulsen
    Warten auf Rückmeldung $PERY_RDY
    Fehler quittieren pulsen
    Warten, dass kein Fehler mehr anliegt $STOPMESS
    Start pulsen


    ENDLOSSCHLEIFE
    Roboter arbeitet



    Wenn er nun längere Zeit nichts zu tun hat möchte ich von der SPS das Programm stoppen lassen und Antriebe/Lüfter ausschalten und dann auch bei Bedarf wieder starten.


    Wie kann ich das lösen? Mit der HALT Funktion? Aber damit kann ich nicht wieder von Beginn starten oder? Der Programmzeiger müsste doch quasi wieder an den Programmanfang odeR?
    Antriebe aus ist doch einfach ANTEIN=0 von der SPS oder?


    Achja, meine Lüfter hängen mittlerweile an einem Schütz, welches ich per SPS schalten kann. Ist also das kleinste aller Probleme :)


    Dank und Gruß
    TOM

    [size=2][font=Arial","sans-serif]Hi,
    So langsam glaube ich ein bisschen Unglück beim Roboterkauf gehabt zu haben. Obwohl er 2013 angeblich generalüberholt wurde, verreckt ein Teil nach dem anderen.
    Nachdem ich meinen KRC1 erst kürzlich mit einer neuen Leistungskarte im PM6-600 bestückt habe ist nun evtl. die RDW-Karte an der Reihe.


    Seit vorgestern fährt der PC nicht mehr sauber runter sondern ist kurz nach dem Drehen des Haupschalters schwarz. Beim Einschalten meldet die Steuerung Betriebsstundenzähler zwischen RDW und Registry unterschiedlich. UND: Justuge verloren. MIST!


    Akkus habe ich erst vor zwei Wochen neue reingebaut und es kommt keine Meldung zur Unterspannung.
    Ist wirklich die RDW-Platine defekt? Müsste der PC nicht auch b ei einem Defekt sauber herunterfahren?


    Kann ich den Fehler noch irgendwie eingrenzen, bzw. ggf. kostengünstig beheben.


    Vielen Dank für Eure Tips


    Gruß[/font][/size]

    Guten Morgen.
    Ich möchte einen Wert 0-15 über 4 Bits dem Roboter mitteilen.
    Genaugenommen ist es ein binär codierter Drehschalter
    0000=0
    0001=1
    ....
    1111=15


    Funktioniert das so?
    WERT = $IN[10] TO IN[13]


    Gruß
    Tom

    Guten Morgen,


    So ich habe nun.


    1. SPS mit dem Profibus-Master ausgestattet


    2. Den Roboter als Slave angestöpselt


    3. Die .gsd aus dem Internet besorgt und im TIA Portal importiert


    4. pfbms.ini : [SLAVE] mit MODUL_USED=1 aktiviert (und Master deaktiviert)


    5. iosys.ini: zunächst mal für ein Byte konfiguriert.


    INB0=127,0,x1


    OUTB0=127,0,x1


    6. Im TIA-Portal meinem KUKA die Adresse 0 zugeordnet (siehe Bild)




    RESULTAT: Es funktioniert noch nicht so wirklich.


    So wie es aussieht sind Master und Slave einwandfrei verbunden. Keines der Geräte zeigt einen Busfehler an.


    So wie ich das projektiert habe müsste doch jetzt mein Bit 0.0 in der SPS den Eingang 1 in der Roboteranzeige aufleuchten lassen oder? Tut es nämlich nicht.


    Muss ich noch etwas beachten? Übertragungsgeschwindigkeiten oder ähnliches festlegen?


    Gruß


    Thomas

    Hallo,
    Ich habe in meinem .dat-File ein zweidimensionales Array deklariert und beschreibe es gleich mit Werten. Mein Code sieht wie folgt aus. Leider bekomme ich ab er Zeile mit LAGER[1,2]= einen Fehler. Er sagt mir der Feldindex ist hier nicht zulässig. Also genau ab dem Zeitprunkt wo ich beginne die Zeile 2 meines Feldes zu beschreiben gibt er für jede Zeile diesen Fehler aus. Komischerweise passiert das gleiche, wenn ich erst Zeile 2 und dann Zeile 1 beschreibe. Dann meckert er erst beim Wechseln des Zeilenindex von LAGER[20,2] auf LAGER [1,1].

    Wo ist der Fehler? Ich komm einfach nicht drauf.

    DEFDAT TEST
    DECL INT LAGER[20,2]
    ;__________________________PLATZ 1
    LAGER[1,1]=1
    LAGER[2,1]=0
    …..
    LAGER[20,1]=1
    ;__________________________PLATZ 2
    LAGER[1,2]=0
    LAGER[2,2]=2
    …..
    LAGER[20,2]=0
    ENDDAT