@ StefanM
Das stimmt, wie ich das beschrieben habe geht es ja nicht, da das Signal Stopmess negiert ist.
Danke für die Programmvorlage für die SPS.sub. Werde das so in der Art mal probieren.
Gruß HarryH
@ StefanM
Das stimmt, wie ich das beschrieben habe geht es ja nicht, da das Signal Stopmess negiert ist.
Danke für die Programmvorlage für die SPS.sub. Werde das so in der Art mal probieren.
Gruß HarryH
Ich meinte eine Kommentarzeile in der Ansicht.
Danke für den Tipp! Aber schön ist es wirklich nicht mit der Variablen als Kommentar.
Aber man kann wohl nicht alles haben ... Werde das dann so machen müssen.
Gruß HarryH
Habe da nochmal ne Frage,
ist es möglich in der Variablenübersicht-Ansicht (ConfigMon.ini) eine Kommentarzeile einzufügen. Ich wollte dort gerne eine kleine Legende einfügen, damit der Bediener nicht vergisst, was er bei den Variablen einzugenben hat.
Gruß HarryH
Hallo Stefan,
du schriebst:
ZitatAlles anzeigen
Du hast keine SPS, kannst aber "extern" trortzdem verwenden. dazu brauchst du ein paar freie EA´s und eine Routine im SPS.Sub, die dir die Sache anwirft.
DI_DrivesOff - 24V (Statisch 1)
DI_DrivesOn - DO_DrivesOn (Drahtbruecke)
DI_ConfMess - DO_ConfMess (Drahtbruecke)
DI_ExtStart - DO_ExtStart (Drahtbruecke)
Wenn ich das richtig verstanden habe funktioniert das anstarten wie folgt:
1. Den Programmstart-Taster verbinde ich mit "DI_DrivesOn" (Konfiguration AutExt)
2. Mit der Rückmeldung "DO_DrivesOn" quittiere ich die StoppMeldungen "DI_ConfMess" (Drahtbrücke zw. "DO_DrivesOn" und "DI_ConfMess")
3. Mit der Rückmeldung "DO_ConfMess" starte ich das Programm "DI_ExtStart" (Drahtbrücke zw. "DO_ConfMess" und "DI_ExtStart")
4. "DO_ExtStart " zeigt mir an das das Programm läuft
--> Ist das so richtig?
Was meinst du mit "eine Routine im SPS.Sub, die dir die Sache anwirft." Was muss ich noch "anwerfen"?
Muss ich den Programmstart-Taster in der SPS.sub irgendwie verriegeln. z.B. wenn das Programm schon läuft, oder mit dem Schutzgitter?
@ LindePaul: Das man MoveEnable mit $CHCK_MOVENA = FALSE deaktivieren kann wußte ich auch noch nicht, danke
Gruß HarryH
Hallo zusammen,
ich habe erstmalig einen Roboter ohne SPS-Anbindung zu projektieren/programmieren. (KRC2, KR180-2PA).
Zur Info: Es ist ne Palettierzelle, in welcher Kanister auf einer auf dem Boden stehenden Palette palettiert werden. Es gibt zu der Anlage einen zusätzlichen Bedienkasten mit Bedienelementen um dem Roboter gewisse Anwahlen zu geben. Zu steuern vom Roboter ist der Greifer (ca. 10 E/A's), der Kanistereinförderer (ca. 10 E/A's), sowie die Bedienelemente im Bedienkasten (ca. 15 E/A's). Abgesichert ist die Palettierzelle über eine Sicherheitslichtschranke.
Nun zurück zu meiner Frage: Da ich keine SPS habe läuft der Roboter im Automatik-Modus (nicht Ext). Wenn der Bediener die SI-Lichtschranke auslöst, stoppt das Roboterprogramm. Ist es möglich, das Roboterprogramm über einen Taster im zusätzlichen Bedienkasten wieder zu starten? Oder geht es nur am KCP?
Der Bediener muß sowieso zum Bedienkasten gehen um die SI-Lichtschranke wieder zu aktivieren. So wäre es schön, wenn er dort auch das Prog. wieder starten kann.
Ich bin über jede Anregung dankbar!
Gruß HarryH
Hallo David,
könnte es vielleicht sein, das du deine 10 Unterprogramme jedesmal manuell über Satzanwahl anwählst? Dann ist es klar das auch jedesmal eine SAK-Fahrt erforderlich ist (Finde die SAK-Fahrt auch total sinnlos! ). Am besten du machst dir ein Hauptprogramm in welchem du in einer (Endlos-)Schleife abhängig von irgendwelchen Bedingungen (Eingänge, Variable) deine Unterprogramme aufrufst. Z.B.:
DEF Hauptprogramm()
...
LOOP
IF Eingang01==TRUE THEN
Unterprogramm01()
ENDIF
IF Eingang02==TRUE THEN
Unterprogramm02()
ENDIF
usw...
ENDLOOP
END
Alles anzeigen
Dann ist nur einmalig (wie schon gesagt wurde) nach dem Anwählen des Hauptprogramms die SAK-Fahrt nötig.
Gruß HarryH
Nein, hat sich nichts geändert. Deswegen wundert es mich ja auch.
Kann eine höhere Umgebungstemperatur oder andere geänderten Randbedingungen als vor 3 Wochen dafür verantwortlich sein?
Gruß HarryH
Hallo zusammen,
es geht um einen KR180-2PA (Palettierer) mit KRC2 Steuerung der jetzt drei Wochen beim Endkunden in Produktion ist. Bei der IBN vor drei Wochen hatte ich die oben beschriebene Fehlermeldung, --> die (defaultmäßige) Beschleunigung von 100% für Achse 6 war zu groß --> wurde über "BAS (#INITMOV,0 )" zugewiesen. Habe daraufhin die ACC für Achse 6 soweit reduziert ($ACC_AXIS[6]=60), das die Meldung nicht mehr gekommen ist. In diesem Zustand lief der Roboter jetzt 3Wochen. Gestern kam die Meldung wieder Woran kann das liegen?
Oder, welche (Rand-) Bedingungen müssen da sein / sich geändert haben, damit diese Meldung kommt.
Gruß HarryH
Danke für die Antworten,
Das mit dem GLOBAL scheint mir weniger aufwendig. --> Hatte ich auch schon probiert. Habe wohl das GLOBAL mit dem DECL vertauscht gehabt.
DANKE nochmal!
Gruß HarryH
Hallo Michel,
im Kopf der dat-datei steht:
&ACCESS RVO
&REL 258
&COMMENT Moving Routines
&PARAM TEMPLATE = C:\KRC\Roboter\Template\ExpertVorgabe
&PARAM EDITMASK = *
DEFDAT PALMOVE PUBLIC
Die scheint Public zu sein, oder?
Aber wie mache ich den Punkt global? Wenn ich in der dat-datei vor
die "DECL E6POS XTestpos ..." ein GLOBAL vorschreibe wird das nicht akzeptiert.
Gruß HarryH
Hallo Forum,
irgendwie kriege ich es noch nicht hin, Positionen die ich über Inlineformular erstellt habe in einer anderen src-Datei zu verwenden. --> Zur Erlklärung was ich meine -> Beispiel:
Habe Dateien: "Testmove.src" mit der dazugehörigen "Testmove.dat". In der "Testmove.src" erzeuge ich über Inlineformular die Position "Testpos" erzeugt. Diese ist ja bekanntlich dann in der "Testmove.dat" als "XTestpos" gespeichert. Nun möchte ich in einer anderen src-Datei z.B. "FahreGST.src" die "XTestpos" verwenden. Bekomme aber immer die Meldung (Sinngemäß) "Objekt nicht vorhanden". Was kann ich tun.
Gruß HarryH
Hallo zusammen,
bei der KRC2 Steuerung kann man im Menü "Inbetriebn./Justieren/" den Menüpunkt "Justage--Daten sichern" anwählen. Was bedeutet das? Kann ich damit bei Justageverlust einer Achse die Justage wieder herstellen, ohne ein EMT oder mech. Messuhr zu verwenden? --> Die KUKA Doku ist in diesem Punkt etwas sparsam
Gruß HarryH
Danke LindePaul für die Rückmeldung.
ZitatSo oft wird die Sprache an der Steuerung doch nicht gewechselt, oder ?
Na klar, wird nicht oft gewechselt. Wäre halt nett gewesen.
Gruß HarryH
Hallo zusammen,
gibt es eine Systemvariable in der die aktuell eingestellte BOF-Sprache gespeichert wird? Z.B. als INT (1= deutsch, 2= englisch, 3= französisch usw.)
Möchte damit Folgendes realisieren:
Ich habe in meinem Roboterprogramm eine Menge Meldungen die ich mit $MSG_T programmiert habe. Ich führe die Meldungstexte immer deutsch und englisch und kann mit einer boolschen Variablen die beiden Sprachen umschalten. Super wäre es, wenn ich abhängig von der BOF-Sprache auch meine Meldungstexte umschalten kann. D.h. ...
... BOF-Sprache deutsch --> Meldungstexte deutsch
... BOF-Sprache nicht deutsch --> Meldungstexte englisch
Bin für jeden Tipp dankbar!
Gruß HarryH
Hallo,
ich hab ne Frage zur KCL.
1. Ist es möglich wie in der nächsten Zeile angedeutet, dem x-Wert
eine Variable zuzuweisen, oder womöglich eine Operation mehrerer
Variablen?
2. Ist es möglich wie in der nächsten Zeile angedeutet eine Operation
(hier "Zaehler+1") in der Parameterübergabe zu verwenden?
Gruß HarryH
Hatte noch vergessen zu sagen, das die
Einheit von ori1 und ori2 bei beiden [grad/sec] ist.
Bei dem letzen Roboter den ich hatte (KR180-2PA, KRC2) sind die default-Werte für
VelOri1/2 auf jeweils 200.0Grad/sec gesetzt (INI). Die default-mäßigen Werte stehen in der Config.dat ziemlich am Anfang unter CP - MOVEMENTS:
REAL DEF_VEL_ORI1=200.0
REAL DEF_VEL_ORI2=200.0
Kannst du bei dir ja mal gucken was bei dir default-mäßig eingestellt. Um ein Gefühl dafür zu bekommen, auf was für einen Wert du in deinem Anwendungsfall gehen musst.
Gruß HarryH
Hallo Hennes Bender,
laut Doku gibt es noch folgende Geschwindigkeitszuweisungen:
$VEL.ORI1 = Schwenkgeschwindigkeit
$VEL.ORI2 = Drehgeschwindigkeit
Hab es selber aber noch nie verwendet. Weiß nicht ob es damit funktioniert. "Probieren geht über studieren".
Gruß
HarryH
Ganz einfach, du läßt die BRAKE-Anweisung weg. Dann setzt der Roboter seine Bewegung zum Zeitpunkt des Interrupts bis zum Zielpunkt fort, führt die Interruptroutine beim Eintreten des Interrupts aber aus.
Gruß HarryH
Hallo Holger,
die Routine "haupt" im Programm direkt aufrufen geht nicht. Es funktioniert ein paar mal, aber dann kommt die Fehlermeldung:
Fehler 40222 Laufzeit Stack Überlauf
Das Programm ist zu komplex. Warscheinlich enthält
das Programm Routinen, die sich selbst aufrufen.
Die Version über EXIT ist ohne weiteres möglich. Der Programmzeiger wird auf die erste Anweisung in der Routine Haupt gesetzt. Jedoch ist das Programm dadurch gestoppt und muss erneut gestartet werden.
IF diRack=0 EXIT; ODER
IF diRack=0 THEN
EXIT;
ENDIF
Gruß HarryH
Hallo Mr Robotik,
auch bei den Robotern die ich immer unter die Hände bekomme (KR180-2PA, KRC2, 5.2.12), ist die Geschwindigkeitszuweisung CP mittels der BAS auf 2.0 m/s begrenzt (Übrigens der max. Beschleunigungswert CP auf 2.3m/s2).
In den Maschinendaten findest du aber die speziell für deinen Robotertyp zulässige max. Geschwindigkeit und Beschleunigung. Datei: KRC\R1\Mada\$machine.dat
Dort in der Zeile 1037:
DECL CP $ACC_MA={CP 10.0,ORI1 1000.0,ORI2 1000.0} ;CP = MAX.
BAHNBESCHLEUNIGUNG [M/SEC2], ORI1 = MAX. SCHWENKBESCHLEUNIGUNG
[GRAD/SEC2], ORI2 = MAX. DREHBESCHLEUNIGUNG [GRAD/SEC2]
DECL CP $VEL_MA={CP 3.0,ORI1 400.0,ORI2 400.0} ;CP = MAX.
BAHNGESCHWINDIGKEIT [M/SEC], ORI1 = MAX. SCHWENKGESCHWINDIGKEIT
[GRAD/SEC], ORI2 = MAX. DREHGESCHWINDIGKEIT [GRAD/SEC]
--> Hier max. Geschw. CP = 3.0
--> Hier max. Beschl. CP = 10.0
ACHTUNG: Das sind jetzt Zeilen aus der $machine.dat von einem KR180-2PA mit KRC2 Version 5.2.12! Außerdem weiß ich nicht ob das bei deinem Roboter an der selben Stelle steht. Der ist ja schon ein paar Jahre alt.
Du kannst die Geschwindigkeit bis zu diesem max. Grenzwert direkt zuweisen mit
$VEL.CP=3.0
Oder eine Beschleunigung
$ACC.CP=4.5
Meine Erfahrung ist gerade bei Änderungen der Beschleunigungswerte über die Grenzwerte der BAS hinaus, das der Roboter manchmal mit Fehlermeldungen "Max. Getriebemoment überschritten" (sinngemäß) stoppt. Dann muss man die Geschw.- und Beschl.-Werte wieder verringern.
Wie das mit der Geschwindigkeitszuweisung und dem Grenzwert über Inline-Formulare sich verhält weiß ich nicht. Verwende die nie.
Gruß HarryH