was bedeutet "ungenau" beim fahren auf berechnete Positionen. Ich habe das Problem, dass ich bei meinem Denso 10kg abweichungen von bis zu +/- 0.5mm habe. die geteachten punkte sind aber immer ganau genug. nur beim rechnen hapert es...
Beiträge von tekomat
-
-
hast du XdGetPalt aus der bibliotheke geladen und ist es aktiv?
-
Ich verliere jeweils die übersicht bei zuvielen Jumps, desshalb ziehe ich jeweils die boolsche variante vor... (geht zwar auch nicht ganz ohne jumps)
*Label1
DIN B000 IN#(1)
DIN B001 IN#(5)
OR B000 B001
jump *label1 IF B000=0 -
ich erlaube mir hier mal eine gegenüberstellung zu machen:
Hochsprache (z.B. Pascal)
SWITCH variable
CASE 1
Anweisung 1
CASE 2
Anweisung 2
CASE 3
Anweisung 3
DEFAULT
Anweisung 4
ENDSWITCHMotoman (steinzeitprogrammierung)
Jump *Label1 IF variable=1
Jump *Label2 IF variable=2
Jump *Label3 IF variable=3
Anweisung 4
Jump *Label4
*Label1:
Anweisung 1
Jump *Label4
*Label2:
Anweisung 2
Jump *Label4
*Label3:
Anweisung 3
Jump *Label4
*Label4: -
danke für die schnelle antwort. ich habe raus gefunden wie. nur habe ich jetzt das problem, dass bei denso nur 7 works zur verfügung stehen, ich aber deren 9 brauche.
kann man ein work im programm mit neuen punkten zuweisen?
z.B. dass ich in Work 7 einfach die jeweiligen 3 punkte schreibe -
hallöle
wenn ich ein WORK mit iner positionsvariable teache, ist mir de ausrichtung zu ungenau. gibt es da eine einfache möglichkeit, dass ich mit zwei oder drei punkten das WORK definiere?
-
Hallo Densoianer!
Kann man auf der Denso Console die Programme irgendwie sortieren, sprich Alphabetisch nach Dateiname anzeigen lassen? Im WinCaps gibt es ja diese Funktion, aber die Darstellung keinen Einfluss auf den Controller...
Gruss Tekomat
-
Hallo Leute,
habe da mal was festgestellt:
programmiert:
wait not io1080 -->Roboter lief durch obwohl das signal anwesend war.
schlussendlich habe ich die programmierung geändert auf
wait (io1080=0) -->roboter wartete bis das signal abgefallen war.
WARUM????????????
Ich habe schon diverse Denso mit dem wait not ioXY am laufen. da funktionierte es auch immer...Denso 10KG VM-60B1G A (6Achsen)
-
vielen Dank für die schnelle Antwort.
Habe noch was anderes gefunden:
P[1]=P[1],+(0,Variable,0)
gruss tekomat
-
Anfängerfrage:
Wie kann ich einem getachten Punkt einen belibigen Wert addieren?
z.b. P[1] in Y plus 100.... ???
wie sieht das aus bei Denso?
danke schon mal im voraus
-
ich habe mehr als nur diese zwei Bewegungen! Die 7te Achse muss schlussendlich endloss drehen, mit verschiedenen Geschwindigkeiten, ohne stopp zwischen den Bewegungen. Auch die Angabe über den Drehwinkel ist Variabel. D.h. ich muss z.B. 90° mit 6U/min drehen, dann fliessend 290° mit 10U/min, dann 360°mit 2U/min... etc.
codebeispiel:
pEins.E1=0
pZwei.E1=90
pDrei.E1=120
pVier.E1=170
...asyptp pEins c_ptp
asyptp pZwei c_ptp
asyptp pDrei c_ptp
asyptp pVier c_ptp
...etcProblem 1: Überschleifen nicht möglich,
Problem 2: Nur drei asyptp Bewegungen im "zwischenspeicher" möglich
Problem 3: wie Fahren wenn über 360°?
Problem 4: wie lese ich den aktuellen Wert aus, da der Sprung von 180° auf -179° ziemlich markant ist...Ich habe jetzt eine Lösung gefunden, dass ich mit JOG im Handmodus die Achse unabhängig drehen lassen kann. Damit habe ich Probleme 1-3 Behoben...
-
wie kann ich die AsyPTP bewegungen überschleifen?
er erkennt zwar die Zeilen
asyptp {e1 0} c_ptp
asyptp {e1 90} c_ptp
...aber er überschleift sie aber nicht.
$APO.CPTP ist 100. -
Vielen Dank, ich denke das reicht erstmal für einige Versuche. Habe sogar eine Dokumentation gefunden...
-
wo schalte ich diese um auf asynchron?
wie sieht dann die Bewegungsprogrammierung aus?
kann ich die achse dann auch einfach laufen lassen oder muss ich die bewegungen in 179grad schritten machen?
wie sieht die bewegungsprogrammierung dann aus? -
Hallo Kukaner!
Wie kann ich eine externe achse (rotativ) drehen lassen, wärend ich mit dem Roboter ein Programm abfahre?
Konkret geht es darum, dass ich sagen kann die Achse 7 soll mit z.B. 10 Umdrehungen pro Minuten drehen während der Roboter sein Programm abfährt.
geht sowas überhaupt mit KUKA? oder muss ich die achse 7 mit jedem Punkt verrechnen?
Besten Dank
-
ah, na logo, so gehts einfacher.
Laut Schnittstellenbeschreibung muss ich vorzeichenlos sein. Mal schauen was noch daraus wird!
Jedenfalls herzlichen Dank für deine Tipps!!!
-
ich muss die position in einen String einfügen. Das System braucht das Format"SFP000xxx.xxx" und "SFP000yyy.yyy" dazu muss ich "SFP000" als CHAR mit der Position verknüpfen.
ich dachte, wenn ich die Position in CHAR bringe kann ich das ganze dann zusammenpacken. Die Position ist auf 3 Stellen vor- und nach dem Komma Festgelegt. wenn ich die Position als REAL sende, habe ich keine Kontrolle, wieviel stellen gesendet werden.
-
Ah, jep! funktioniert. Aber die Beschreibung ist wirklich nicht ganz glücklich...
Habe da noch ne andere Frage, ich muss meine Roboterposition als ASCII Code senden, gibts da eine einfache Umwandlung (Real->CHAR[])? Die Zahlen des ASCII Codes entsprechen ja nicht den dezimal Zahlen...
Geht nicht: (SEND als CHAR[20])
SEND[]=$Pos_Act.X
oder
SEND[1]=$Pos_Act.X -
Der Rückgabewert ist doch die Variable StrComp? Diese habe ich als Boolian deklariert.
Deklarationen:
Decl bool StrComp
Decl CHAR StrComp1[20]
decl CHAR StrComp2[20]ich finde dies zwar ein bisschen seltsam... Aber so stehts im Manual.
Gibt es Bedingungen für die Abfrage der Antwort? Kann diese wie eine normale bool-Variable behandelt werden?
IF StrComp==TRUE THEN
irgendwas
ENDIFMuss diese im selben Programm sein oder kann die auch in anderen Programmen verarbeitet werden?
-
Hallo zusammen,
habe einen KR5 sixx V7.0.7, BOF Version 1.2.5401.0 B50, KS V7.0.50 RT.
Nun habe ich das Problem, dass ich Strings nicht vergleichen kann, obwohl ich mich ans CRead/write 5.2 halte... Die Fehlermeldung lautet "Unterprogramm nicht gefunden"
StrComp(StrComp1[], StrComp2[], #CASE_SENS)
habe auch ein bisschen mit den Deklarationen gespielt, was nichts brachte...
Gruss Tekomat
Gruss Tekomat