21. Januar 2019, 06:26:08
Roboterforum.de - Die Industrieroboter- Anwender und Experten Community

[offen] Bildverarbeitungsdaten in KRL-Code schreiben


normal_post Autor Thema: [offen] Bildverarbeitungsdaten in KRL-Code schreiben  (Gelesen 3516 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

15. Mai 2018, 14:23:33
Gelesen 3516 mal
Offline

steffenl


Hallo liebe Robotler,
ich bin neu hier und hoffe das meine Frage hier angemessen ist.
ich befasse mich momentan  mit flexiblen Sortiervorgängen von Platten mittels eines Roboters. Es sollen von einem unsortierten Plattenstapel, Platten, die ohne Orientierung gestapelt sind, aufgenommen werden. Dafür liefert eine Kamera und dessen zugehörige Bilderverarbeitungssoftware  Daten (Mittelpunkt der Platte: X,Y,Z Wert; Länge und Breite der Platte und den Drehwinkel). Diese Daten werden mittels eines TCP/IP-Protokoll an eine Beckhoff-SPS (nicht die KRC interne SPS) übertragen. Das bedeutet diese Daten/variablen Werte sind schon da und müssen nun in den KRL-Code geschrieben werden.  Der Greifer soll nun mittels einer PTP-Bewegung diesen Mittelpunkt mit seinem TCP anfahren.
Ist hier ein Zusatzmodul für die Protokollübertragung nötig?
Ist dies ein Thema, wo man CREAD/CWRITE anwendet?
Beziehungsweise hat ihr jemand vielleicht einen Lösungsansatz für dieses Problem?
Vielen Dank für eure Hilfen und ein schönes Pfingsten.



« Letzte Änderung: 15. Mai 2018, 15:20:01 von steffenl »
  • gefällt mir    Danke

Heute um 06:26:08
Antwort #1

Werbung

Gast

15. Mai 2018, 15:53:55
Antwort #1
Offline

SJX

Global Moderator
Hallo Steffenl,
was für eine KRC? Softwareversion?
Welche Bussysteme / Softwareoptionen hast Du schon?
Wenn Bussystem zwischen Deiner Beckhoff und KRC schon besteht, Datenaustausch in Bitgruppen in Signalvereinbarungen auf KRC übernehmen und danach Deiner Greifposition zuweisen.
Nachkommastellen werden oft SPS-seitig mal 100 // KRC seitig geteilt durch 100 gerechnet.
+- mit separatem Bit handeln oder mit 32bit Signalvereinbarungen.
Base noch abgleichen mit Deiner Kamera nicht vergessen.
CREAD/CWRITE wäre Variante bei KRC1 /2 mit serieller Schnittstelle möglich.

Weitere Infos müssten schon mehrfach über Suche im Forum findbar sein.
Gruss SJX
  • gefällt mir    Danke
Manche Maenner bemuehen sich lebenslang, das Wesen einer Frau zu verstehen. Andere befassen sich mit weniger schwierigen Dingen z.B. der Relativitaetstheorie.

24. Mai 2018, 11:59:15
Antwort #2
Offline

steffenl


Hallo SJX,
vielen Dank für die Antwort.
Unsere Zelle basiert auf einer KRC 4 Steuerung und die Softwareversion ist KR C V 8.3.32. Die Datenübertragung soll über eine Ethercat Modul EK 1100 von Beckhoff laufen. Diese wird primär für die Sicherheitstechnik verwendet. Nun ist die Frage, ob es möglich ist über diese Schnittstelle auch die Datenübertragung für die Positionswerte laufen zu lassen, da unsere Zelle auch Roboter intern mit Ethercat Modulen von Beckhoff arbeitet. Unsere SPS (Beckhoff CX5130) wird als Server fungieren und der Roboter soll als Client die Daten bekommen.
Ist es möglich die Daten in einem String-Format zu übertragen?
Als weitere Optionen haben wir noch die Möglichkeit von Profi Net und das Ethernet mit TCP/IP Protokoll.


Danke für eure Zeit

Gruß Steffenl
« Letzte Änderung: 24. Mai 2018, 12:35:46 von steffenl »
  • gefällt mir    Danke

24. Mai 2018, 15:01:29
Antwort #3
Offline

SJX

Global Moderator
Zitat
Die Datenübertragung soll über eine Ethercat Modul EK 1100 von Beckhoff laufen. Diese wird primär für die Sicherheitstechnik verwendet.
Das heisst, Du hast ne Bridge-Klemme EL6695 am EK1100 für Safety zu Roboter ?
Da könntest Du die Positionswerte parallel mit den konfigurierbaren Standard-IO's als 32bit-Gruppen zum  Roboter senden.
Wäre am simpelsten und für jedermann verständlich.

Bei WoV 5.0 liegt eine Doku bei. "KR_C4_EtherCAT_KSS_VSS_82_83_84_85_de.pdf"
Hat Beschrieb drin über Zugriff via EtherCAT-SDO aus KRL.
Sieht so aus, dass Funktionen vorhanden sein sollen für Kommunikation VoE, CoE, FoE, AoE, was sehr interessant wäre und kommunikationstechnisch absolut toll wäre.
Hab diesen Beschrieb aber auch das erste mal gesehen. (Hat's schon jemand versucht?)

Gruss SJX
  • gefällt mir    Danke
Manche Maenner bemuehen sich lebenslang, das Wesen einer Frau zu verstehen. Andere befassen sich mit weniger schwierigen Dingen z.B. der Relativitaetstheorie.

25. Mai 2018, 11:58:40
Antwort #4
Offline

steffenl


Hallo SJX,
da liegst du richtig. Es ist eine EL6695 Bridge-Klemme.
Roboterseitig hätten wir die Möglichkeit von EthernetKRL.
Ist es dir möglich mir einen kleinen Denkanstoß zu schicken wie man die Werte über über die Standard IO's sendet?
Wie werden die Standard IO's angesprochen TwinCat und Roboter seitig?

Ligt die oben benannten Doku auch bei WoV 4.0 bei?

Danke dir und eine schönes Wochenende,
Gruß, Steffenl
« Letzte Änderung: 25. Mai 2018, 13:12:48 von steffenl »
  • gefällt mir    Danke

Heute um 06:26:08
Antwort #5

Werbung

Gast

25. Mai 2018, 14:22:54
Antwort #5
Offline

SJX

Global Moderator
auf die schnelle als Ideengabe:
in config.dat
SIGNAL pPICK_X $IN[1] TO $IN[32] ;WERT VON SPS x100
SIGNAL pPICK_Y $IN[33] TO $IN[64] ;WERT VON SPS x100
SIGNAL pPICK_Z $IN[65] TO $IN[96] ;WERT VON SPS x100
SIGNAL pPICK_A $IN[97] TO $IN[128] ;WERT VON SPS x100
SIGNAL pPICK_B $IN[129] TO $IN[160] ;WERT VON SPS x100
SIGNAL pPICK_C $IN[161] TO $IN[192] ;WERT VON SPS x100
in*.src:
DECL FRAME pPICK_POS

;UEBERNAHME DER DATEN IN POSITION NACH ANFORDERUNG
pPICK_POS.X = pPICK_X/100.
pPICK_POS.Y = pPICK_Y/100.
pPICK_POS.Z = pPICK_Z/100.
pPICK_POS.A = pPICK_A/100.
pPICK_POS.B = pPICK_B/100.
pPICK_POS.C = pPICK_C/100.

PTP VORPOS
LIN pPICK_POS



Ps:Hinweis habe ich nur in der WoV5.0 Doku gefunden. Downloadbar auf Homepage

Gruss SJX
« Letzte Änderung: 25. Mai 2018, 14:36:19 von SJX »
  • gefällt mir    Danke
Manche Maenner bemuehen sich lebenslang, das Wesen einer Frau zu verstehen. Andere befassen sich mit weniger schwierigen Dingen z.B. der Relativitaetstheorie.

21. August 2018, 10:39:55
Antwort #6
Offline

steffenl


Hallo liebe Community,
nachdem wir nun die Kommunikation zwischen Beckhoff SPS und KRC 4 via Ethercat hinbekommen haben, möchten wir nun Digitale Eingänge auslesen. 
Wir haben unter Digitalen Ein-/ Ausgängen Zugriff auf ein DWORD, dass wir von der SPS erhalten. Dass DWORD_0 zum Beispiel ist auf den Eingängen 150-181 belegt. Dieser Bereich sind die einzelnen Bits des DWORD. Die SPS schickt beispielsweise den Dezimalwert 100. Wir können nur die einzelnen Bits des DWORD in den jeweiligen Eingängen einsehen, ob der Eingang gesetzt ist oder nicht. 
Wir möchten aber die Dezimalzahl des DWORD in unserem KRL-CODE verwenden. 
Code Beispiel fürs Verständnis:

IF DWORD_BEISPIEL(dez. Wert des dword) = 100 THEN 
        'Programmablauf
END IF
  • gefällt mir    Danke

21. August 2018, 21:33:24
Antwort #7
Offline

SJX

Global Moderator
Dies geht mit den Signalvereinbarungen.
Zuerst Deklarieren, z.B. Global in der config.dat oder Lokal in der .dat deines .src oder direkt im Deklarationsteil deines .src:
SIGNAL DWORD_BEISPIEL $IN[150] TO $IN[181]

Dann im Ablauf wie Du geschrieben hast:
IF DWORD_BEISPIEL== 100 THEN
       'Programmablauf
END IF

Gruss SJX
« Letzte Änderung: 21. August 2018, 21:35:18 von SJX »
  • gefällt mir    Danke
Manche Maenner bemuehen sich lebenslang, das Wesen einer Frau zu verstehen. Andere befassen sich mit weniger schwierigen Dingen z.B. der Relativitaetstheorie.

14. Januar 2019, 09:35:17
Antwort #8
Offline

steffenl


Hallo SJX,

erstmal fettes  :danke:

mit deinen Tipps wird sind nun noch einen Schritt weiter gekommen und können mittlerweile Koordinaten von der SPS schicken.
Wir übersenden folgende Daten aus der Bildverarbeitung: X,Y,Z-Koordinaten des Mittelpunkts des Brettes (welches mittels Vakuumgreifer aufgenommen werden soll) und den Drehwinkel wie das Brett orientiert ist im Bassiskoordinatesystem des Aufnahmetisches.
Nun würden wir gerne mittels PTP-Bewegung den besagten Punkt anfahren.

Hast du/ihr eine Idee, wie man das Problem der nötigen A,B,C, (Status and turn) Thematik umgehen kann?
  • gefällt mir    Danke

Heute um 06:26:08
Antwort #9

Werbung

Gast

14. Januar 2019, 14:42:17
Antwort #9
Offline

Hermann


Linear fahren.

Und rein Interessehalber mal eine Frage: Wann soll denn die Anlage laufen? Die erste Frage ist schon fast ein Jahr her, was ist denn das für eine Projektlaufzeit??
  • gefällt mir    Danke

14. Januar 2019, 14:58:23
Antwort #10
Offline

steffenl


Hallo Hermann,

ok dachte vielleicht das es da eine Alternative zur Lin Bewegung gibt.

zur info:

das ist ein Hochschulprojekt und es gab immer wieder Veränderungen an der Zelle, was uns teilweise zurückgeworfen hat und mehrere Studenten daran arbeiten
  • gefällt mir    Danke


Teile per facebook Teile per linkedin Teile per pinterest Teile per reddit Teile per twitter
 

über das Roboterforum

Nutzungsbedingungen Impressum Datenschutzerklärung

Sponsoren des Roboterforums

ROBTEC GmbH