Beiträge von SJX

    Hallo roemhild,


    Automatik Extern Schnittstelle beinhaltet die Möglichkeit der Kommunikation mit Paritätsbit.
    Zu konfigurieren in der Maske von Automatik Extern:


    PGNO_PARITY:
    Wert 0 / keine Auswertung Parität
    Negativer Wert / Ungerade Parität
    Positiver Wert / Gerade Parität
    Wert ist dann gleich Paritätsbit.


    Aus Deinem Beschrieb ist leider nicht ersichtlich, ob Du Mit oder Ohne, Gerade oder Ungerade kommunizierst.


    Gruss SJX


    If Pro_state1 ==#P_Free then
    Einrichten = false
    Endif


    Mein Problem ist aber wie oben beschrieben wenn ich einrichten auf true setze... Uns ich setze das Programm zurück ohne Abwahl dann ist die Variable auf false! Was nicht sein kann...


    100% Sicher, dass es nur von dieser IF.... Abfrage kommen kann?
    Keine Interrupts oder so, die dies auch auslösen könnten? (Prog von Dir geschrieben?)
    Sonst würde ich ne Dummyvariable kreieren und diese auch in die IF Anweisung schreiben und verfolgen, ob das gleiche verhalten erkennbar ist.


    Ab V8.3 muss es noch $PROG_INFO[] geben. Kamm mit Multisubmit.
    Solltest das gleiche erreichen können mit:


    IF $PROG_INFO[1].P_STATE == #P_FREE THEN


    Gruss SJX

    Hallo Peschelli,


    eigentlich steht ja alles schon oben..... für KRC2, heisst SW V4.0 -V5.6
    bitte nächstes mal unbedingt Softwareversion und Steuerung angeben.



    am besten Maus und Tastatur ran.
    Als Experte anmelden.
    Wechsel ins Windows über CTRL + ESC
    Windows Explorer C:\KRC\UTIL\KRCCONFIGURATOR\
    KRCCONFIGURATOR.EXE starten
    GUI startet, unter Reiter Archive kannst Du die entsprechenden Einstellungen tätigen:
    LW:\%ROBNAME%.zip übernimmt aktuellen Roboternamen als Namen der .zip Datei, kannst aber eigenen wählen.
    Laufwerk kannst Du hier auch bestimmen.


    Netzwerk besteht schon oder Teile davon ??


    Gruss SJX

    Hallo woodys,


    Überprüfst Du den Status von $PRO_STATE1 über die Variablenkorrektur oder wie kommst Du darauf?
    Da auf "Aktualisieren" gestellt?
    Wenn Du dann startest, stoppst, etc, nimmt er da mindestens die entsprechenden Statis an?


    Laut Dokubeschrieb sollte dies definitiv nicht so sein.


    Oder verstehe ich Dein Problem nicht, hast es nicht eindeutig geschrieben...…
    Code würde vieles klären...



    Gruss SJX


    Wie setze ich eine neu auf und mache die WoV Einstellungen?



    ……... und die neueste 8.2.XX Version installieren und alles was man nicht braucht weg lassen.
    Also ein nacktes System.


    Denk dran, wenn Du die neueste V8.2.x aufspielst, dass auch die Softwareoptionen den passenden Versionsstand haben.


    Wie man ihn prinzipiell neu aufsetzt mit Optionen, steht im KSS_82_SI_de.pdf, Kapitel Installation.
    Brauchst den KUKA Recovery-Stick und die entsprechenden Images im .wim-Format für C+D + Optionen.


    Danach Kommunikation einrichten zu WoV, Infos dazu hast Du im readme.rtf des WoV 2.4
    Zieh Dir das aktive Projekt runter, speichere es am besten gleich unter neuem Namen.


    Wirst dann vermutlich unter Projektstruktur nichts haben, Sonst sei glücklich und vergiss nächsten Abschnitt.
    Müsstest dann den Controllerbus mit den Komponenten selbst hinzufügen.
    Dito Systembus. Infos dazu findest Du in der WoV Doku des 2.4.
    Mach Dir eventuell Printscreens Deiner jetzigen Projektstruktur und deren Komponenten, und wie sie verkettet sind (Doppelklick Controllerbus, Topologie). Erleichtert es Dir das zusammenzuflicken.
    Danach Wagon-Driver nicht vergessen. Sollte auch in WoV2.4 Doku zu finden sein.
    Katalogelemente der Mechanik laden.
    Robotermechanik einfügen in die Projektstruktur.
    Code erzeugen...
    Laden... und …..hoffen.... und....hoffen.... und beantworten.....und...evtl. Neustart/Kaltstart und :D :D :D


    Irgendwo müsste ich noch ne geschriebene Anleitung haben. Evtl. findet man auch für die V8.2 was im KUKA.Xpert.
    Für die V8.3 hats was spezielles drin.(Ist aber anders zu Handeln als V8.2)


    Gruss SJX

    Hallo run03,



    Als Anhang ein Bild von einem funktionierenden Projekt. Wo ich aber die Mechanik nicht ändern kann.


    Ist noch guter alter V8.2-er Softwarestand. Da war üblich, keinen Roboter in der Projektstruktur zu haben.


    Datei / Katalogverwaltung => Füge den entsprechenden Katalog dem Projekt bei.
    Danach kannst Du über Rechtsklick auf ".....aktive Steuerung"/ Hinzufügen entsprechende Mechanik auswählen.


    Dito werden Dir vermutlich auch die GSDML Dateien der Buskomponenten fehlen.
    Solange Du da nichts machst, sollte es kein Prob sein.
    Selber fügte ich die immer im DTM Management dazu.


    Gruss SJX

    Hallo run03,


    hast Du ein PC in der KRC4 mit Grafikkarte?
    Dann Monitor ran und Maus / Tastatur direkt an Rechner.


    Das Smartpad ist ja wie ein Remote-PC auf der KRC4 Steuerung.
    Wenn Du direkt ran gehst, siehst Du wirklich den Status, wie der PC steht.
    Wenn die KUKA HMI startet, kannst Du darüber Dein Projekt wieder zurückladen.
    Sonst Zustand mal posten.


    Wie es aussieht (V8.2.17), sind's schon ältere KRC4.
    Kein Thema, die upzudaten mindestens auf letzten V8.2.x Stand (inkl. Optionen) und gleich mit neuer Platte ?



    ...Es lässt sich die Hardware nicht ändern und wird im WorkVisual auch nicht angezeigt.
    2. was muss ich tun um die Hardware anzupassen zu können.


    Kannst Du dies genauer erläutern?
    WorkVisual-Version?
    Runterladen ging ?
    "Konvertierte" er das Projekt bei Steuerung aktiv schalten?
    Was exakt willst Du ändern?
    Kannst Du ein schon runtergeladenes Projekt mal posten, oder mind. Bild der Projektstruktur mit Steuerung aktiv?


    Gruss SJX

    Hallo EddiFox,


    je nach KRC2 Mainboard wirst Du ein Problem haben bei der Erkennung der Festplatte (160GB Grösse).
    Unterliegen dem allgemein gängigen 32/64 GB BIOS Bug von damals.


    Gruss SJX

    Hallo Woodys,


    Du meinst wohl die Systemvariable $DRIVES_ENABLE bei einer KRC4 Steuerung, oder ?


    Wenn ja, würde es dem entsprechen, wie wenn Du im Fenster "Fahrbedingungen" auf die Taste "Antriebe "I" " hämmern würdest im Durchlaufzyklus des Submitinterpreters. Egal, wie der aktuelle Status der Steuerung ist.


    Wie es ausschaut, haben sie es aber in der Grundsoftware gut abgefangen, sonst wäre Dir die Steuerung vermutlich schon öfters "abgekackt".
    Ich selbst würde es so ohne Bedingung nicht programmieren. Aber wenn's stabil läuft....


    "Antriebe Ein" heisst bei einer KRC4 nicht automatisch, dass die KSP's in Regelung gehen und Motoren mit Strom versorgen. Hierzu muss zusätzlich noch die Antriebsfreigabe der Sicherheitssteuerung vorliegen, was, zusammen mit Fahrfreigabe Safety dem Status $Could_Start_Motion=TRUE (Grün) entsprechen würde.


    Gruss SJX

    Hallo Ibrahim,


    Unter "Inkremental programmieren" verstehe ich "relative Programmierung", bzw. Kettenmasseingabe oder CNC G91...


    Wäre dann bei KUKA:
    PTP_REL
    LIN_REL
    CIRC_REL
    SLIN_REL
    SCIRC_REL
    SPL_REL
    SPTP_REL


    Für Deinen Fall wäre es eventuell einfacher, Base zu schieben oder Offset auf Positionen via Geometrischer Operator aufzurechnen.


    Gruss SJX

    Hallo Mott_Hebbet,


    wann lief die Steuerung letztes mal?


    - MFC Karte steckt sauber im Mainboardslot / Kontakt gereinigt?
    - Was macht die DSE LED?
    - besteht ein .Freeze file? Wenn ja, mal gelöscht?
    - Irgendwelche Optionskarten im Rechner? Diese Testweise mal entfernt?
    - Installiertes Image ist wirklich ok? (Lief auf anderer Steuerung mit gleicher Rechnerausstattung?)



    Eigentlich sollte die KUKA BOF hochlaufen mit Fehler auf Kommunikation DSE-RDW.



    Gruss SJX

    Hallo TCT,


    Ja haste in der Zwischenzeit Automatik Extern Schnittstelle generell in Betrieb genommen?
    Aus anderen Posts war doch Thema, dass Du keine SPS dran hast?


    Gruss SJX

    Hallo TCT,


    In den beiden Switch Instruktionen hast Du den Aufruf auskommentiert schon drin. Einfach ; entfernen.
    Je nachdem, was Du in der Automatik extern Konfiguration als Typ angewählt hast (Integer, 1 aus 0), variert es.


    ;FOLD Folge starten ;%{SE}%MKUKATPVW,%C,%V
    SWITCH P_TYPE
    CASE 0 ;FOLGENUMMER INTEGER
    SWITCH PGNO
    CASE 1
    ;FOLGE1 ( )
    CASE 2
    ;FOLGE2 ( )
    ENDSWITCH
    CASE 1 ;FOLGENUMMER 1 AUS N
    SWITCH PGNO
    CASE 1,2,4,8,16,32,64,128
    SWITCH PGNO
    CASE 1
    ;FOLGE1 ( )
    CASE 2
    ;FOLGE2 ( )
    CASE 4
    ;FOLGE3 ( )
    CASE 8
    ;FOLGE4 ( )
    CASE 16
    ;FOLGE5 ( )
    CASE 32
    ;FOLGE6 ( )
    CASE 64
    ;FOLGE7 ( )
    CASE 128
    ;FOLGE8 ( )
    ENDSWITCH
    ENDSWITCH
    ENDSWITCH
    ENDLOOP


    Gruss SJX

    Hallo bf


    Ich hätte nun die Bewegung an sich und das zyklische abfragen und senden der Ist-Position in zwei separate Interrupt Routinen gegeben.


    Da Du Dein Code nicht postest, und keine Hintergrundinfo gibst, was das werden soll,ist es schwer zu Erkennen, was Du zusammen gebastelt hast.


    Bewegung generell in Interrupt zu Handeln kann man, aber sicher nicht sinnvoll.
    Für das haben wir ja den Roboterinterpreter. Z.B. Überschleifen von Positionen ist nicht möglich im Interrupt, da Du kein Vorlauf hast.


    Wenn Du aber Dein Gerippe stehen lassen willst, kannst auch über die sps.sub die Position senden.


    Wäre nicht RSI für Dich die geeignetere Option?



    Gruss SJX


    Das ist z.B.bei ABB möglich. Sobald sich der Roboter innerhalb eines bestimmten Bereichs befindet meldet er die Home.
    Das kann ein kubischer Raum oder eine Kugel sein.
    Bei KUKA ist mir das nicht bekannt.


    Wenn's nur um die Meldung (Ausgang) geht..... ist das KUKA "Home" ja eigentlich ein "achsspezifischer"Raum.
    Hast ja die Toleranzen in den Madas drin. Evtl. sogar beschreibbar aus Prog.


    E6AXIS $H_POS_TOL={A1 2.00000,A2 2.00000,A3 2.00000,A4 2.00000,A5 2.00000,A6 2.00000,E1 2.00000,E2 2.00000,E3 2.00000,E4 2.00000,E5 2.00000,E6 2.00000};TOLERANZFENSTER FUER ERREICHEN DER HOME-STELLUNG.


    Wenn's nur um die Meldung (Ausgang) geht.....lässt sich auch ein kubischer Standardarbeitsbereich um die HomePos konfigurieren, verknüpft mit Ausgang ohne Stop Funktionalität. Verknüpfen könnte man's im Submit, Workspaces sind beschreibbar, so könnte man bei umteachen Homepos diesen auch gleich mitschieben.


    ABB..... Kugel ? :kopfkratz: evtl. 1:0 ABB


    Gruss SJX


    Vom meinem Verständnis her habe ich allerdings nur die Möglichkeit das Statusbit der Schutztür zu übergeben und die Flanke des Quittiertasters. Die Anforderung des Quittierens sollte ja von der Robotersteuerung ausgehen. Scheinbar geschieht das aber nicht nach dem Öffnen der Schutztür oder der Anwahl eines neuen Programms.


    Habe ich irgendwas übersehen oder eine Möglichkeit die Quittierung zurückzusetzen?? Das Verhalten kann ja so nicht gewollt sein.


    Attached mal Beschrieb aus der Doku zum Verhalten Bedienerschutz.


    Was hast Du eingestellt betreffend der erwähnten Hardware Option? Per Quittiertaste oder externe Baugruppe?
    Hier müsste es meiner Meinung nach bei Deinem Fall auf Quittiertaste stehen. Nur dann schaut der Roboter intern auch die Quittierung an. Und das möchtest Du ja anscheinend.


    Andere Möglichkeit wäre, Du wertest Türschalter und Quittierung in Deiner Safe_SPS aus und stellst dem Roboter erst dann BS an, wenn beides erfüllt ist. Dann muss der Roboter ja nicht nochmals die Quittierung auswerten. Das wäre dann Fall "externe Baugruppe".


    Per sicheren Ausgang BSQ teilt er Dir einfach mit, ob Sicherheit gewährleistet ist oder nicht.
    Hier hast Du auch den Hinweis in der Doku auf "und,falls konfiguriert, auch auf Eingang QBS quittiert)


    Programmanwahl ist kein Thema Sicherheit betreffend Bedienerschutz. Solange BS zubleibt, ist für Ihn alles ok innerhalb Schutzzaun. Wieso willst Du dass?


    Gruss SJX


    Das Brücken... Ist das so gemeint dass ich einfach eine drahtbrücke von den E/A Karten nehme? Also eine Ader von der ausgangskarte auf die eingangskarte?


    Genau, Direkt Ausgang auf Eingang brücken.
    Hintergrund ist, Du kannst nur Eingänge den benötigten Funktionen in der Konfiguration von Automatik extern zuordnen.
    Eingänge direkt kannst Du aber nicht Setzen im SPS.sub, nur Ausgänge. So umgehst Du diese Problematik.



    Es ist so ich würde es schon gerne selber schreiben aber da ich es noch nie gemacht habe wäre es mir lieber wenn ich schon was in der hand hätte. Den Rest schaffe ich dann schon alleine. Muss insgesamt 25 das ganze realisieren!


    Submitinterpreter auszuprogrammieren ist schon bisschen anders als Roboterinterpreter.
    Werd Dir was zusammenstiefeln. Eilts?
    Ist aktuell schon was ausprogrammiert darin? Hast Du per Zufall Multisubmitinterpreter installiert?
    Zur Kontrolle wäre es toll, wenn Du mal von Deinem ersten Kandidaten die sps.sub posten könntest.


    So als Tipp noch dazu.
    Wenn Du Taster hättest mit Lampen,Start z.B. grün, Stop rot, verdrahtet Lampen auf 2 weitere Ausgänge, könnte man noch gewisse Statis rausgeben (Muss ja nicht schon in erster Version sein).


    Gruss SJX

    Hallo Woodys,


    Hardware also 1 Start Taster / 1 Stop Taster.
    Würde heissen hardwaretechnisch:
    Stop Taster über Öffner auf Eingang (1) verdrahten. (Funktion Stop)
    Start Taster über Schliesser auf Eingang (2) verdrahten. (Funktion Startprozedere SPS.sub)
    1. Brücke zwischen Ausgang (3) und Eingang (3). (Funktion Antriebe Ein)
    2. Brücke zwischen Ausgang (4) und Eingang (4). (Funktion Fehlerquittierung)
    3. Brücke zwischen Ausgang (5) und Eingang (5). (Funktion Start)


    Softwaretechnisch:
    Stopfunktion: Eingang (1) direkt in Autoext. Konfiguration $Move_enable zuweisen.


    Startfunktion und Anforderung an SPS.sub Baustein:
    Eingang (3) in Autoext. Konfiguration $Drives_On zuweisen.
    Eingang (4) in Autoext. Konfiguration $Conf_Mess zuweisen.
    Eingang (5) in Autoext. Konfiguration $Ext_Start zuweisen.


    SPS.Sub Baustein / Schrittkette, mal stark vereinfacht:
    Wenn Eingang (2), prüfen Startkonditionen wie Betriebart, Programm angewählt, Fehler ansteht, weitere Anlagenspezifisch
    Schritt 1: Ausgang (4) pulsen
    Schritt 2: Ausgang (3) Pulsen
    Schritt 3: Ausgang (4) Pulsen
    Schritt 4: Ausgang (5) Pulsen


    Kannst Du / willst Du diesen selber schreiben?
    Hast Du Testequipment?


    Irgendwo müsste ich was haben, müsste aber suchen.


    Gruss SJX

    Hallo Woodys,


    Es ist viel einfacher, als Du es Dir vorstellst.
    Dem Roboter ists egal, ob die Eingänge via SPS oder via Taster in die Steuerung kommen.
    Was aber sein Muss: Schlüsselschalterstellung Automatik extern!


    Mal eine einfache Art und am besten zu verstehen für ein KRC4:
    Dazu brauchst Du:
    4 konfigurierte Eingänge auf einem Buskoppler, wo Dir die Eingangsnummern bekannt sind.
    3 Eingänge verdrahtest Du über Schliesser (Taster), Funktion $Conf_Mess, $Drives_On, $Ext_Start
    1 Eingang über Öffner (Taster), Funktion $Move_Enable (Stop)


    Danach gehst Du in die Konfiguration von Automatik extern
    Weisst unter "Wert" die entsprechende Eingangsnummer der Funktion zu und übernimmst es.



    Zum Testen:
    In T1 Programm anwählen, SAK ausführen auf Ausgangsposition.
    Türe Schliessen und Quittieren
    Auf EXT umschalten:
    Taster mit Funktion $Drives_On drücken
    Taster mit Funktion $Conf_Mess drücken
    Taster mit Funktion $Ext_Start drücken, Programm läuft
    …..
    Für Stop:
    Taster mit Funktion $Move_Enable drücken


    Erneuter Start:
    Taster mit Funktion $Conf_Mess drücken
    Taster mit Funktion $Ext_Start drücken, Programm läuft


    Reihenfolge ist die gleiche wie in den Ablaufdiagrammen in der Doku zu Automatik extern.


    Wenn Du verschiedene Statis der Steuerung über Lampen dazu willst, müsste man einfach pro Status einen Ausgang dazu haben.



    Wenn Du die Anzahl Taster reduzieren möchtest:
    $Conf_Mess müsste kombinierbar sein als Schliesser zusammen mit $Drives_on als Öffner auf einem Taster.
    In gewissen Situationen kann es aber sein, dass er 2x gedrückt werden muss hintereinander.



    Weitere Reduktionen der Taster liessen sich reduzieren über sps.sub Programm.
    Da würde dann Brücken zum Tragen kommen Ausgang auf Eingang. Würde aber heissen, dass Du zusätzlich bis zu 4 Ausgänge dazu benötigst.


    Mit nem simplen Testaufbau kannst Du dies gut erforschen.


    Gruss SJX