ABB Roboterschulung von praxiserfahrenen Trainern
in unserem Schulungszentrum in Mainburg oder vor Ort bei Ihnen
Bediener und Expertenschulungen anfragen

Neueste Beiträge

Seiten: [1] 2 3 ... 10
1
KUKA Roboter / Re: Eine Struktur Global nutzen und beschreiben.
« Letzter Beitrag von Hahni85 am Gestern um 23:07:11 »
Hallo,
CHAR/STRING im Kuka sind immer etwas umständlich. (SWRITE etc.)
In einer globalen Struktur kann man leider keine zweidimensionalen CHAR Arrays einsetzen.
Entweder du kommst mit einem Zeichen hin oder du musst ein weiteres zweidimensionales Feld deklarieren.
Ich mach meist Strukturen mit ENUMs. Kannst dann halt nur die möglichen deklarierten ENUMS zuweisen.
Wobei ich den Sinn der Variable stName nicht ganz nachvollziehen kann. (System\$Config.dat DECL CHAR TOOL_NAME[16,24] ??)


DEFDAT  Test_Struc PUBLIC

;Merkerfeld zum An und Abwaehlen der Stationen
;GLOBAL ToolData_R1 Aktiv_Tool [16]
;INT Tool_Nr: Toolnummer
;CHAR stName: Tool Name
;CHAR Workdirection: u = unten / o = oben Tool Ausrichtung
;BOOL bAktiv: Tool verbaut
;BOOL bTeached: Tool mit Spitze aufgenommen
;REAL ToolLength: letzte eingelesene Tool Laenge
;REAL ToolWear: letzter eingelesene Verschleis

GLOBAL STRUC ToolData_R1 INT iTool_Nr,CHAR cStName,CHAR cWorkdirection,BOOL bAktiv,BOOL bTeached,REAL rToolLength,REAL rToolWear
DECL GLOBAL ToolData_R1 Aktiv_Tool[10]

Aktiv_Tool[1]={iTool_Nr 1,cStName "1",cWorkdirection "u",bAktiv TRUE,bTeached FALSE,rToolLength 0.0,rToolWear 0.0}
Aktiv_Tool[2]={iTool_Nr 2,cStName "2",cWorkdirection "u",bAktiv FALSE,bTeached FALSE,rToolLength 0.0,rToolWear 0.0}
Aktiv_Tool[3]={iTool_Nr 2,cStName "3",cWorkdirection "u",bAktiv FALSE,bTeached FALSE,rToolLength 0.0,rToolWear 0.0}

GLOBAL CHAR cStNameAktiv_Tool[10,20] ; TOOL-Feld
cStNameAktiv_Tool[1,]="Tool 1"
cStNameAktiv_Tool[2,]="Tool 1"
cStNameAktiv_Tool[3,]="Tool 3"

GLOBAL ENUM ToolName Tool_1,Tool_2,Tool_3
DECL GLOBAL ToolName nToolName

GLOBAL STRUC ToolData_R2 INT iTool_Nr,ToolName nToolName,CHAR cWorkdirection,BOOL bAktiv,BOOL bTeached,REAL rToolLength,REAL rToolWear
DECL GLOBAL ToolData_R2 Aktiv_Tool2[10]

Aktiv_Tool2[1]={iTool_Nr 1,nToolName #Tool_1,cWorkdirection "u",bAktiv TRUE,bTeached FALSE,rToolLength 0.0,rToolWear 0.0}
Aktiv_Tool2[2]={iTool_Nr 2,nToolName #Tool_2,cWorkdirection "u",bAktiv FALSE,bTeached FALSE,rToolLength 0.0,rToolWear 0.0}
Aktiv_Tool2[3]={iTool_Nr 2,nToolName #Tool_3,cWorkdirection "u",bAktiv FALSE,bTeached FALSE,rToolLength 0.0,rToolWear 0.0}

ENDDAT

Auf jedenfall kannst du so deine Werte (Struktur) in jedem SRC beschreiben.
Bsp.
Aktiv_Tool[2].bAktiv=TRUE


Ich hoffe das hilf dir weiter.
Viele Grüße
2
andere Roboterhersteller / Re: Schweißroboter IGM K6, TCP wechseln
« Letzter Beitrag von davidkelly am Gestern um 16:26:00 »
Was meinst du mit "während der Schweißbahn"? Willst du per Tastendruck während dem Schweißen den TCP beliebig rauf/runter und links/rechts korrigieren?
3
Hi,
vielen Dank für die Tipps. Bezüglich der Funktion des Gruppeneinganges hätte ich noch fragen. Kann ich das auch in RobotStudio definieren und dann auf den Roboter laden. Zur Erklärung: Ich habe mir ein Backup von der Steuerung gezogen und hab begonnen in dem Backup das Programm zu bearbeiten. Unter Rapid - Konfiguration - I/O hab ich die Signale gefunden und dort das Beckhoff Modul, das wir verwenden. Unter Signale sind die ganzen digitalen inputs bereits angelegt. Dort kann ich den Signaltyp auf Group Input ändern. Was mir aber nicht ganz klar ist, ist was ich jetzt in die Parameter schreiben muss, damit ich mehrere Eingänge von dem Modul zu einem Group Input zusammenfassen kann. 
4
Moin,
die immer gleichen Punktnamen mit Parametern bekommst Du aus der Offline?
Dann würde ich diese Punktnamen global in der /system/$config.dat (User Bereich) anlegen. Diese definierten Positionen kannst Du dann in allen Programmen über den Punktnamen anfahren. Die Programme brauchst Du dann nicht mehr anfassen. Lediglich die Definitionen müssen ggf. geändert werden.
5
KUKA Roboter / Eine Struktur Global nutzen und beschreiben.
« Letzter Beitrag von ToGe4811 am 20. April 2018, 16:06:30  »
Hallo Zusammen,

Muss mich an euch Wenden weil ich vielleicht bereits im Wochenendemodus bin und ich vor lauter Bäumen den Wald nicht mehr sehe.

Ich habe folgendes vor.

In einem DAT File möchte ich Werte für verschiedene Stationen deklarieren und von verschiedenen SRC Programmen darauf zu greifen. Zum Beispiel ob eine Station aktiv ist oder nicht. Genauso möchte ich darin Längenwerte, die ich von der SPS bekomme, speichern.
Wenn ich die Struktur als CONST deklariere ist das DAT fehlerfrei. Doch dann kann ich die Längenwerte nicht zu weisen. Das geht  ja nicht weil ich es als CONST deklariert habe.

Wie muss ich die Struktur deklarieren das ich sie beschreiben kann. Oder geht das gra nicht?

Hier der Auszug aus dem DAT File:

; Merkerfeld zum An und Abwaehlen der Stationen
GLOBAL CONST ToolData_R1 Aktiv_Tool [16]
;INT Tool_Nr: Toolnummer
;CHAR stName: Tool Name
;CHAR Workdirection: u = unten / o = oben Tool Ausrichtung
;BOOL bAktiv: Tool verbaut
;BOOL bTeached: Tool mit Spitze aufgenommen
;REAL ToolLength: letzte eingelesene Tool Laenge
;REAL ToolWear: letzter eingelesene Verschleis

Aktiv_Tool[1]={Tool_Nr 1,stName [] "Tool 1",Workdirection [] "u",bAktiv FALSE,bTeached FALSE,ToolLength 0.0,ToolWear 0.0}
Aktiv_Tool[2]={Tool_Nr 2,stName [] "Tool 2",Workdirection [] "u",bAktiv FALSE,bTeached FALSE,ToolLength 0.0,ToolWear 0.0}
Aktiv_Tool[3]={Tool_Nr 3,stName [] "Tool 3",Workdirection [] "u",bAktiv FALSE,bTeached FALSE,ToolLength 0.0,ToolWear 0.0}
Aktiv_Tool[4]={Tool_Nr 4,stName [] "Tool 4",Workdirection [] "u",bAktiv FALSE,bTeached FALSE,ToolLength 0.0,ToolWear 0.0}
Aktiv_Tool[5]={Tool_Nr 5,stName [] "Tool 5",Workdirection [] "u",bAktiv FALSE,bTeached FALSE,ToolLength 0.0,ToolWear 0.0}
Aktiv_Tool[6]={Tool_Nr 6,stName [] "Tool 6",Workdirection [] "u",bAktiv FALSE,bTeached FALSE,ToolLength 0.0,ToolWear 0.0}
Aktiv_Tool[7]={Tool_Nr 7,stName [] "Tool 7",Workdirection [] "u",bAktiv FALSE,bTeached FALSE,ToolLength 0.0,ToolWear 0.0}
Aktiv_Tool[8]={Tool_Nr 8,stName [] "Tool 8",Workdirection [] "u",bAktiv FALSE,bTeached FALSE,ToolLength 0.0,ToolWear 0.0}
Aktiv_Tool[9]={Tool_Nr 9,stName [] "Tool 9",Workdirection [] "u",bAktiv FALSE,bTeached FALSE,ToolLength 0.0,ToolWear 0.0}


Vielleicht komme ich auch Montag aus dem Wochenende und denke "Was bist Du für ein D....!".

Oder andere denken man ist der blöd.
Aber das Wochenende steht vor der Türe und zerrt mich aus dem Büro raus.
Die Sonne ist einfach zu verlockend.
6
ABB Roboter / Re: Eingänge zu Signal verbinden und in Integer umwandeln
« Letzter Beitrag von Martl am 20. April 2018, 14:44:01  »
Servus,
du kannst sogar noch weiter gehen.
z.B. Kommazahl  6,73  
den Wert den dir die SPS schicken möchte mal 100 in der SPS
=> von der SPS wird dann der Wert 673 über deinen Gruppeneingang
übermittelt
=> du teilst einfach wieder durch 100.
iEingangszahl = giCode
iBerechwert = (iEingangszahl/100)
oder
z.B. Minuswert -8
=> in der SPS 1000 dazuzählen => 9992 als Endwert
=> 9992 an Roboter über giCode übermitteln
=> im Roboter einfach wieder 1000 abziehen => -8
iEingangszahl = giCode
iBerechwert = (iEingangszahl - 1000)
=> dann brauchst du kein Negierungsbit dazuschalten
Grüße
Martl
7
ABB Roboter / Re: Eingänge zu Signal verbinden und in Integer umwandeln
« Letzter Beitrag von Micky am 20. April 2018, 13:27:50  »
Hallo,
Du kannst in der ABB Steuerung mehrere Eingangsbits als Gruppeneingang in den Systemparametern deklarieren.
Hierzu wird bei der Signaldeklaration als Signaltyp "GI" ausgewählt und die verwendeten Bits beim Devicemapping angegeben (z.B. "1-4")
Im Rapid-Programm wird der deklarierte Signalname (z.B. IF giCode = 5) direkt verwendet, da er bereits den dezimalen Zahlenwert enthält.
Durch das Ändern der Bit-Reihenfolge beim Deivcemapping kan mann Bit und Byte-Swaps realisieren die später im Programm nicht berücksichtigt werden müssen, da dies bereits die Steuerung übernimmt.
Nähere Information findest Du im Handbuch für die Systemparameter.
Gruß
Micky


8
ABB Roboter / Eingänge zu Signal verbinden und in Integer umwandeln
« Letzter Beitrag von newbiemechatronic am 20. April 2018, 13:07:04  »
Hallo zusammen,
ich habe von einem Kollegen eine Zelle für ein Forschungsprojekt bei uns übernommen. In dieser Zelle wird ein IRB-2400 als Fräsroboter verwendet. Eigentlich funktioniert alles hervorragend. Das Einzige was etwas hinderlich ist, dass der Benutzer über das Handbediengerät den gewünschten Prozess (insgesamt stehen 8 zur Verfügung) auswählen muss und der dann vom Roboter ausgeführt wird. 
Meine Aufgabe ist es jetzt ein von uns entwickeltes Datenmodell mit dem Roboter zu verbinden. Künftig soll der Prozess über das Datenmodell übermittelt werden. Dafür würden wir im ersten Schritt die digitalen Eingänge verwenden. Das Problem ist,  das ich aus dem KUKA Bereich komme und bei ABB noch nie mehrere Eingänge zu einem Signal verschaltet habe. 
Mein Frage wäre daher, wenn ich vier Eingänge habe, wie muss ich diese verschalten, sodass ich sie wie ein einziges Signal auswerten kann? Eine Folgefrage wäre dann, wie kann ich dann dieses binäre 4-Bit Signal in eine Zahl umwandeln?
Ich bin für alle Vorschläge dankbar und kann gerne auch Teile des Codes zur Verfügung stellen, wenn dies benötigt wird.
lg
Bernhard
9
KUKA Roboter / Re: Textlänge in Benachrichtigungen
« Letzter Beitrag von Programmiersklave am 20. April 2018, 10:46:25  »
Ich hab' mir in einem Fall mal die Mühe gemacht, einen Pseudo-Zufallsgenerator einzubauen, um dann die Reihenfolge der Antwortbuttons zu würfeln, so dass die jedesmal anders sortiert sind. So muss man wenigstens die Button-Beschriftungen lesen, bevor man draufdatscht. 

Insofern... manche sind schon mit 8 Zeichen überfordert... :-) 

Grüße,
Michael
10
KUKA Roboter / Re: Bewegungspunkte von Programm->Programm kopieren ohne Namen zu verändern
« Letzter Beitrag von owni am 20. April 2018, 10:35:33  »
Diese Variante kann ich meistens leider so auch nicht nutzen, da ich z.B. aus Process Simulate ein Offlineprogramm bekomme, welches nur eine Menge Bewegungspunkte enthält.
Diese möchte ich in ein komplexes Bestandsprogramm, welches auch schon Bewegungspunkte enthält, an verschiedenen Stellen einfügen. Wobei natürlich die Namen aus der OLP behalten werden sollen.
Seiten: [1] 2 3 ... 10

über das Roboterforum

Nutzungsbedingungen Impressum
Sitemap