Da bleibt wohl erstmal nichts anderes übrig, als Kontakt zu Fanuc aufzunehmen.
Danke allerseits!
Da bleibt wohl erstmal nichts anderes übrig, als Kontakt zu Fanuc aufzunehmen.
Danke allerseits!
Also, wenn ich das so lese, fällt mir nur eins ein:
Konfiguration des Roboters (State/Turn bei Kuka genannt) gegebenenfalls falsch im Positionsregister gesetzt? Setzt du diese Werte mit oder übernimmst du nur X, Y, Z, W, P, R?
Bei Fanuc müssen Werte im Positionsregister immer mit der Achskonfiguration angegeben werden - ist anders als bei z.B. KUKA.
Wieso setzt du das Positionsregister nicht auf den Punkt, an dem der Roboter steht, anstatt die Werte per Hand einzutragen? So müsste auch die Achskonfiguration des Roboters übernommen werden.
Wenn ich von einer Zykluszeit von 4ms ausgehe, habe ich bei einem 3-way-Handshake mindestens (3*2) Zyklen zur Übermittlung. Das würde bedeuten, dass ich bei einer separaten Übertragung von 7 Posen auf grob 200ms komme.
Hierbei handelt es sich um eine aktive Übertragung, bei der der Roboter stehen muss. Dafür habe ich ehrlich gesagt keine Zeit..
Die Daten müssen leider irgendwie anders in den Roboter kommen..
Hallo allerseits,
ich stehe aktuell vor einem kleineren Problem. Ich soll eine Roboteranwendung für Fanuc projektieren (mein erstes Mail mit Fanuc, Grundkenntnisse sind vorhanden), bei der 7 Roboterposen und einige Nebeninformationen (ca. 170 Byte) auf einmal zu einer R30iA-Steuerung (Volkswagen MQB-Standard) übermittelt werden sollen.
Die Posen sollen entweder von einer PC-Software oder eine Siemens S7-300-Steuerung übermittelt werden. Die Daten sollen per Ethernet übermittelt werden.
Wichtig ist mir, dass zunächst die Übermittlung entweder im Hintergrund oder zumindest während einer bestimmten Bewegung möglich ist (Taktzeitproblem). Weiterhin soll es möglichst kostengünstig sein (Roboguide ist vorhanden, PC-Interface nicht.). Ebenso möchte ich ungern ein eigenes Protokoll auf TCP/IP-Ebene implementieren.
Schön wäre eine vollständige Entkopplung von Bewegungsprogramm und Empfangsprogramm.
Zur Information: Es gibt eine Applikation, bei der eine Bahn von einer Software generiert wird. Diese soll zwischen zwei Zyklen, bei dem diese Bahn mit definierten Aufgaben und Parametern (Geschwindigkeit, Beschleunigung, etc.) ausgeführt werden soll, übermittelt werden. Der Roboter soll dann diese 7 Positionen nacheinander anfahren und hiernach eine andere Aufgabe erledigen. Während er die andere Aufgabe erledigt, sollen die neue Bahn übermittelt werden.
Gibt es hierfür eine einfache schnelle Möglichkeit ohne großen Programmieraufwand die Daten in die Steuerung zu schieben?
Kann man beide Dinge vollständig voneinander entkoppeln?
Ich danke euch vorab für Eure Hilfe!
Grüße,
jodel
Ich beschäftige mich aktuell berufsbedingt mit diesem Thema.
Hierbei sind viele Randbedingungen zu klären, um überhaupt festzustellen, ob eine Automatisierung möglich, sinnvoll und wirtschaftlich ist.
Die Fragen, die mir sofort in den Kopf kommen, sind:
- Taktzeit?
- Was für Werkstücke (Gewicht, Form, Größe, Symetrieeigenschaften, etc.)?
- Welche Behältnisse? (verschiedene, Anzahl Werkstücke, Abmäße des Behälters, ..)
- Welcher Zustand der Bauteile? (Schüttgut, geordnete Anlieferung)
...(viele viele mehr)...
- zu guter letzt: Welcher Kostenrahmen?
Was habt ihr genau vor, falls man fragen darf?
Grüße,
jodel.
Wo man seinen Kopf nur hat und vor allem wozu..
Also, Danke nochmal! Denke, dass das Problem gelöst ist..
Das mit dem 25. Februar versteh ich ehrlich gesagt nich ganz, aber es war leider verlorene Zeit.
Danke für den Ratschlag, hat funktioniert!
Alles anzeigen
Hallo Jodel,
jetzt hast Du es geschafft
Die COM3 ist ein 9-poliger Stecker mit der Bezeichnung ST5 (bei einer KUKA KRC)
und verarbeitet RS232 Signale. Der serielle Chip befindet sich auf der MFC3 und hat mit Windows gar nichts am Hut.
Im Telnet siehst Du nur die serielle Kommunikation wenn CWRITE oder CREAD durchlaufen wird.
Gut, das erklärt einiges. Ich muss zu meiner Verteidigung sagen, dass ich nur versucht habe bei dem Projekt zu helfen und das eigentlich nicht meine Hauptaufgabe ist..
Asche auf mein Haupt! Jetzt wäre wohl die richtige Zeit für ne Verneigung, oder? Danke für die freundliche Hilfe!
Tut mir Leid für die verlorene Zeit. Werde noch morgen kurz schreiben, dass es funktioniert, hoffe ich.
Grüße,
jodel.
Du konntest an COM3 mit dem Hyperterminal arbeiten ?
Respekt, wie hast Du das gemacht ? Die COM3 ist nämlich unter Windows nicht ansprechbar !
Com3 ist ein USB-RS422-Umsetzer. Und das Ansprechen verlief problemlos solange die Schnittsetlle nicht vom Kuka geöffnet war (vor/nach Programmarbarbeitung). Zwischendrin erhält man eine Fehlermeldung, dass es nicht möglich ist, korrekt.
Da es sich um das USB-Gerät handelt und unter HyperTerminal der Empfang einwandfrei läuft, schließe ich einmal aus, dass es Hardware-Probleme gibt.
Ich bin jetzt absolut ratlos. In der Telnet-Diagnose wird auch nichts als empfangen angezeigt. Zum Senden kann die Schnitstelle aber geöffnet werden..
Das serielle Logging ist nicht mit dabei.
Danke erstmal für deine Hilfe..
Grüße,
jodel
Ich habe nun ein frisches Image des Roboters aufgespielt, nichts in der $custom.dat geändert und die übrigen Einstellungen gesetzt. Leider hat das nicht die erhoffte Wirkung gezeigt.
Testweise habe ich von COM2 auf COM3 eine Drahtbrücke (wie vorgeschlagen) gelegt und so von HyperTerminal zu HyperTerminal geschrieben. Das lief problemlos.
Irgendwie scheint es so, als würde hier kein einziges Datenpaket im Roboter ankommen.
Ich hatte einmal was von seriellem Logging bei den E/A-Treibern gelesen. Gilt das auch für die neue Version und falls ja, finde ich hier keinen Eintrag? Deutet das auf einen Fehler?
Grüße,
jodel
3. was willst Du überhaupt machen ?
auf der VKRC2 von Windows COM2 mittel Hyperterminal über eine Kabelbrücke
auf COM3 dem Roboter Werte schicken ?
Es soll letztlich seriell eine Positionsangabe, die extern erfasst wird, an den Roboter übertragen werden. Hierfür habe ich testweise Com2 und Com3 ausprobiert.
Danke für dienen Ratschlag, werde die Backups der custom.dat sowie der hw_inf.ini aufspielen und nur an der serial.ini änderungen vornehmen.
Timeout werde ich auch erhöhen.
Danke erstmal, melde mich dann bald zurück.
Hallo allerseits,
ich habe gerade ein Problem mit meinem Kuka, das mich an den Rande des Wahnsinns treibt. Ich habe bis jetzt schon alle Threads zum Thema serielle Kommunikation und Kuka mehrfach durchforstet und keiner konnte mir leider wirklich weiterhelfen mit meinem Problem.
Ich möchte folgende serielle Kommunikation zum Laufen bringen:
serielles Gerät <--> COM2 (interne Schnittstelle)
alternativ, falls nicht möglich:
serielles gerät <--> COM3 (externe USB-RS232-Schnittstelle)
Parameter serielle Schnittselle:
Geschwindigkeit: 9600Bit/s
Datenbits: 8
Stoppbits: 1
Parität: keine
Protokoll: keins (XON/XOFF ohne Start/Stopzeichen)
Grundsätzlich ist zu sagen, dass beide Schnittstellen beim Empfang über Hyperterminal und keiner Aktivierung im VKRC die korrekten Daten im folgenden Format ausgeben:
"XXX.XX / YYY.YY"
Bei Aktivierung vom COM3 ist diese auch nicht mehr über Windows ansprechbar (ist ja gewollt). Anbei finden sich Auszüge aller von mir geänderten Konfigurationsdateien und das Anwenderprogramm:
serial.ini
...
[COM2]
BAUD=9600
CHAR_LEN=8 ; 7,8
STOP_BIT=1 ; 1,2 at time not changeable
PARITY=2 ; EVEN=2, ODD=1, NONE=0
PROC=1 ; 3964R=1, SRVT=2, WTC=3, XONXOFF=4
[COM3]
BAUD=9600
CHAR_LEN=8 ; 7,8
STOP_BIT=1 ; 1,2 at time not changeable
PARITY=0 ; EVEN=2, ODD=1, NONE=0
PROC=4 ; 3964R=1, SRVT=2, WTC=3, XONXOFF=4
...
[XONXOFF]
CHAR_TIMEOUT=50 ; msec Timeout after last received character
; to recognize the end of telegram
MAX_TX_BUFFER=2 ; 1..5
MAX_RX_BUFFER=2 ; 1..20
SIZE_RX_BUFFER=100 ; 1..2048 longest expected telegram length + 15 characters
XON_VAL=0 ; 0..255 XON character (decimal)
XOFF_VAL=0 ; 0..255 XOFF character (decimal)
; if XON_VAL=0 and XOFF_VAL=0 then XON/XOFF protocol
; is disabled (pure serial communication)
DSR_LINE=0 ; 0 = DSR line not connected, 1 = DSR line must be high
...
Alles anzeigen
$custom.dat
...
DECL SER $PSER_2={PROTO 4,PROC 2,RCO 5,BL 0,BAUD 9600,NOC 8,NOS 1,PARITY 0,TRC 0,FLP 0,LLP 0,RT 0,PT 0,DSR 0,WCCXON 0,VXON 0,VXOFF 0,WEOBC 0,VEOBC 0} ;SCHNITTSTELLE 2
DECL SER $PSER_3={PROTO 4,PROC 2,RCO 5,BL 0,BAUD 9600,NOC 8,NOS 1,PARITY 0,TRC 0,FLP 0,LLP 0,RT 0,PT 0,DSR 0,WCCXON 0,VXON 0,VXOFF 0,WEOBC 0,VEOBC 0} ;SCHNITTSTELLE 2
...
CHANNEL :SER_2 :SER_2 $PSER_2
CHANNEL :SER_3 :SER_3 $PSER_3
...
hw_inf.ini
...
[SERIAL]
;ENABLE: COM is accessible by robot (vxWorks)
;DISABLE: COM is accessible by Win95
;CONSOLE: for developer only
COM3=ENABLE ;[ENABLE, DISABLE, CONSOLE]
COM2=ENABLE_EX ;only useable with special ENABLE
...
Aufruf
;-----------------------------------------------------------
DEF USER_MAIN (PAR1 :IN,PAR2 :IN, PAR3 :IN,PAR4 :IN,PAR5 :IN,PAR6 :IN,PAR7 :IN)
;Aufruf im Hauptlauf
INT PAR1,PAR2,PAR3,PAR4,PAR5,PAR6
BOOL PAR7
INT HANDLE,OFFSET
DECL STATE_T SW_T,SC_T,SR_T
DECL MODUS_T MW_T,MR_T
REAL TIMEOUT,XPOS,YPOS
MW_T=#SYNC
MR_T=#ABS
TIMEOUT=10.0
COPEN(:SER_3,HANDLE)
IF HANDLE==0 THEN
HALT
ENDIF
OFFSET=0
;Über diesen Punkt kommt das Programme NIE(!) hinaus.
WAIT FOR $DATA_SER3>0
CREAD(HANDLE,SR_T,MR_T,TIMEOUT,OFFSET,"%f / %f",XPOS,YPOS)
CCLOSE(HANDLE,SC_T)
END
...
Alles anzeigen
Ist die von mir gewählte Variable $DATA_SER3 falsch bzw. falsch abgefragt? Ich weiß mir wirklich keinen Rat mehr!
Ich möchte mich jetzt schon einmal für eure Hilfe/Mühe bedanken!
Grüße,
jodel
Ich möchte gar nicht schreiben, woran es lag..
Angeblich soll die Anlage in der Konfiguration mal gelaufen sein. Ich sage jetzt nicht, dass jemand auf den falschen Kontakt des Profibussteckers die Busleitung aufgelegt hat und man so immer, sofern der Abschlusswiderstand eingeschaltet war, man den Busteilnehmer vom Netz getrennt hat.
Danke trotzdem!
Vielleicht noch zur Ergänzung:
Ich nutze den VKR C2 edition05. Hier soll auf Steckplatz 1 eine "Profibus Master/Slave-Karte" benutzbar sein.
Hallo allerseits!
Ich lese schon seit einiger Zeit hier im Forum, nur jetzt bin ich zu einem Problem gekommen, bei dem ich leider selber nicht mehr weiterweiss.
Ich möchte gerne eine Siemens CPU315-2DP (PB Master) mit einem Kuka-Roboter (PB Slave) über ProfiBUS DP (KS V4.5.7) verbinden. Testweise möchte ich erstmal ein Byte auf der SPS von diesem Roboter einlesen.
Hierzu habe ich zunächst ein leeres SPS-Projekt mit der CPU und dem Kuka-Roboter über eine GSD-Datei (CP6514 Slave) projektiert. Ist diese evtl. falsch? [s0100008.gsd]
Als ProfiBUS-Koppler in dem Kuka-Roboter sitzt eine CP5614 A2. Ich habe hier den "inneren" Steckplatz für den ProfiBUS-Stecker (näher am PCI Slot) gewählt. Dieser sollte der Anschluss für den Slave-Verbinder sein.
Die Firmware-Dateien sind beide vorhanden und werden auch scheinbar geladen. Nach meiner Recherche ist kein zusätzlicher Windows-Treiber notwendig, aber korrigiert mich bitte, sofern ich mich irre.
Leider kommt so keinerlei Kommunikation zu stande. Unten finden sich hoffentlich alle nötigen Konfigurationsdateien (ausschnittsweise) sowie die PBMASL.log. Per ProfiBUS-Diagnose über Step7 findet sich der Teilnehmer auch nicht im BUS-System
Habt schon einmal Dank für Eure Hilfe!
Im Hinblick auf dieses Topic
http://www.roboterforum.de/rob…_siemens_sps-t2765.0.html
wollte ich fragen, ob mir evtl. jemand die aktuelle Dokumentation für diesen Bereich und die aktuelle Firmware der Karte bitte zukommenlassen könnte. Vielen Dank schonmal!
Grüße,
jodel
IOSYS.INI
[DRIVERS]
PBMASL=11,pbmsInit,pfbmsdrv.o
...
[PBMASL]
;INB16=127,0 ;$IN[129-136]
;INB17=127,1 ;$IN[137-144]
;INB18=127,2 ;$IN[145-152]
;INB19=127,3 ;$IN[153-160]
;INB20=127,4 ;$IN[161-168]
;INB21=127,5 ;$IN[169-176]
;INB22=127,6 ;$IN[177-184]
;INB23=127,7 ;$IN[185-192]
OUTB16=127,0 ;$OUT[129-136]
;OUTB17=127,1 ;$OUT[137-144]
;OUTB18=127,2 ;$OUT[145-152]
;OUTB19=127,3 ;$OUT[153-160]
;OUTB20=127,4 ;$OUT[161-168]
;OUTB21=127,5 ;$OUT[169-176]
;OUTB22=127,6 ;$OUT[177-184]
;OUTB23=127,7 ;$OUT[185-192]
Alles anzeigen
PFBMS.INI
[MASTER]
MASTER_USED=0
DATABASE_PATH=init/
FIRMWARE_PATH_A1=drivers/FW_5613.bin
FIRMWARE_PATH_A2=drivers/FW5613A2.bin
WATCHDOG_TIME=3
MAPPING_USED=0
MAPPING_PATH=init/
;DEACTIVATED_SLAVES=
...
[SLAVE]
MODUL_USED=1
MODUL_ADDRESS=13
START_TIME=20
ERROR_ACTION=0
STANDBY=0
SLAVE_TIMEOUT=0
CHECK_CONFIGURATION_DATA=0
ACCEPTABLE_INPUT_LENGTH=244
ACCEPTABLE_OUTPUT_LENGTH=244
IO_DATA_BASE=0
CONSISTENCE=0
Alles anzeigen
PFBMS.LOG
FILE_PTR_POS=001154
26/01/09 11:38:42 : Logfile for Profibus CP5613/14 (V2.01.0.8)
26/01/09 11:38:42 : use default DATABASE_PATH=init/slave.ldb
26/01/09 11:38:42 : Downloading Firmware and Database.........
26/01/09 11:38:43 : CP5613/14 started!
26/01/09 11:38:43 : Slave Application registered at the CP!
26/01/09 11:38:43 : Slave started!
26/01/09 11:38:43 : Accessed pointer to DPR from CP!
26/01/09 11:38:43 : SLAVE_MODUL: State = WAIT_FOR_PARAMETER
26/01/09 11:38:45 : Slavemodul is not in mode data_exchange within 2000 millisec
>onds!
26/01/09 11:38:45 : Slave is stopped!
26/01/09 11:38:45 : DP_Pointer released!
26/01/09 11:38:46 : Slave Application cancelled at the CP!
26/01/09 11:38:46 : CP is resetted!
===== LAST_ENTRY =====
Alles anzeigen