8. Peripheriegeräte
8.1. Benutzerdefiniertes offenes Protokoll für die Flanschseite (Lua)
8.1.1. Überblick
An der Flanschseite des Roboters sind Hardwareschnittstellen für den Anschluss von Peripheriegeräten mit 485-Kommunikation vorhanden. Derzeit unterstützte Peripheriegeräte umfassen Greifer, Drehgreifer, Kraftsensoren, Schweißgriffe usw. Alle diese Flanschgeräte können durch das Schreiben eines offenen Lua-Protokolls angepasst werden, um die Peripherie zu steuern und ihren Status abzurufen. Insbesondere für den SmartTool-Schweißgriff können Benutzer auch wählen, die Tastenfunktionen über eine Webseite zu konfigurieren, um automatisch eine offene Protokolldatei zu generieren. Das generierte Protokoll wird automatisch auf die Flanschseite angewendet.
8.1.2. Vorgehen
Schritt 1: Gehen Sie zu Systemeinstellungen -> Über -> Firmware-Upgrade-Oberfläche, wählen Sie die Flansch-Firmware-Datei (.bin) aus und führen Sie ein Upgrade der Flansch-Firmware durch.
Wichtig
Zuerst muss überprüft werden, ob die Flansch-Firmware-Version FV2.010.06 oder höher ist. Wenn die Version nicht ausreicht, muss die entsprechende Software-Firmware aktualisiert werden; andernfalls ist kein Firmware-Upgrade erforderlich.
Bevor Sie das Flansch-Firmware-Upgrade-Paket hochladen, müssen Sie den Roboter zuerst deaktivieren (Enable entfernen) und dann in den Boot-Modus versetzen.
Abbildung 8.1‑1 Flansch-Firmware aktualisieren
Schritt 2: Öffnen Sie die WebApp, klicken Sie nacheinander auf „Initiale Einstellungen“, „Peripherie“ und wählen Sie die zu konfigurierende Flanschperipherie (z. B. Greifer). Es gibt zwei Steuerungstypen für Peripheriegeräte: „Bereits angepasste Geräte“ und „Offenes Peripherieprotokoll“:
Bereits angepasste Geräte: Die Kommunikation erfolgt über die Robotersteuerung, kein Hochladen und Anwenden erforderlich.
Offenes Peripherieprotokoll: Der Benutzer schreibt ein offenes Flanschprotokoll basierend auf Lua, das angepasst werden muss, um die Kommunikationssteuerung zu realisieren. Die Flanschprotokolle werden in zwei Kategorien unterteilt: eine sind vom Benutzer selbst hochgeladene Protokolle, die andere sind vom Roboter voreingestellte integrierte Protokolle. Ab Version 3.9.2 müssen Benutzer das auf die Flanschseite hochzuladende Lua-Protokoll nicht mehr mit zusätzlicher Software überprüfen und verschlüsseln; sie können es direkt hochladen. Zuvor überprüfte und verschlüsselte Protokolle können weiterhin normal hochgeladen und verwendet werden. Der Roboter erkennt automatisch, ob die Datei überprüft und verschlüsselt wurde. Wenn nicht, wird sie überprüft, verschlüsselt und dann auf die Flanschseite hochgeladen und angewendet; wenn sie bereits verschlüsselt ist, wird sie direkt hochgeladen und auf die Flanschseite angewendet.
Abbildung 8.1‑2 Steuerungstyp für Greifer
Schritt 3: Gehen Sie zur Inhaltsoberfläche von Peripherie -> Greifer/Kraftsensor/Schweißgriff, klicken Sie auf die Karte „Benutzerdefiniertes Protokoll“, um zur Oberfläche zu gelangen. Laden Sie das offene Lua-Flanschprotokoll hoch, wählen Sie das gewünschte Lua-Flanschprotokoll aus und führen Sie den Upload-Vorgang durch.
Wichtig
Der Dateiname für den Upload muss mit AXLE_LUA_ beginnen.
Schritt 4: Konfigurieren Sie die Flansch-Kommunikationsparameter. Diese umfassen Baudrate, Datenbits, Stoppbits usw. Nach der Konfiguration klicken Sie auf die Schaltfläche „Konfigurieren“.
Abbildung 8.1‑3 Flansch-Kommunikationsparameter konfigurieren
Die detaillierten Flansch-Kommunikationsparameter sind wie folgt:
Baudrate: Unterstützt 1-9600, 2-14400, 3-19200, 4-38400, 5-56000, 6-67600, 7-115200, 8-128000. Der RS485-Treiberchip an der Flanschseite ist ein Low-Speed-485, die Baudrate darf 200 k nicht überschreiten.
Datenbits: Unterstützt (8,9), üblich ist 8.
Stoppbits: 1-1, 2-0,5, 3-2, 4-1,5, üblich ist 1.
Parität: 0-Keine, 1-Ungerade, 2-Gerade, üblich ist 0.
Timeout: 1~1000 ms, dieser Wert muss in Verbindung mit der Peripherie sinnvoll eingestellt werden.
Timeout-Anzahl: 1~10, dient hauptsächlich zur Wiederholung bei Zeitüberschreitung, um sporadische Anomalien zu reduzieren und die Benutzererfahrung zu verbessern.
Zyklischer Befehlsintervall: 1~1000 ms, hauptsächlich für das Zeitintervall zwischen der Übermittlung zyklischer Befehle.
Schritt 5: Aktivieren Sie das Flansch-Lua. Klicken Sie auf die Schaltfläche „Aktivieren“.
Abbildung 8.1‑4 Flansch-Lua aktivieren
Wenn die Lua-Datei eine Anomalie aufweist, wird die Warnung „Flansch-Lua-Datei anomal“ angezeigt. Es kann mit „Nicht wiederherstellen/Wiederherstellen“ umgegangen werden. Schalten Sie die Lua-Aktivierungsschaltfläche aus, die Warnung erlischt.
Abbildung 8.1‑5 Lua-Datei anomal
Wenn der Gerätetyp Greifer ist, kann eine Statusüberwachung durchgeführt werden.
„Statusüberwachung“ einschalten: Die Greifer-Statusleiste auf der rechten Seite zeigt in Echtzeit Betriebsinformationen wie Geschwindigkeit, Drehmoment und Position des Greifers an.
„Statusüberwachung“ ausschalten: Die Greifer-Datenstatusleiste auf der rechten Seite wird geschlossen.
Abbildung 8.1‑6 Statusüberwachung
8.2. Greifer
In der Oberfläche „Initiale Einstellungen“ -> „Peripherie“ -> „Greifer“ können Greifer derzeit über „Bereits angepasste Geräte“ und das „Benutzerdefinierte offene Flansch-Lua-Protokoll“ verwendet werden.
8.2.1. Bereits angepasste Geräte
Schritt 1: Klicken Sie auf „Bereits angepasste Geräte“, um zur Konfigurationsoberfläche für die Flanschperipherie zu gelangen. Die Konfigurationsinformationen für den Greifer umfassen Greiferhersteller, Greifertyp, Softwareversion und Montageposition. Der Benutzer kann die entsprechenden Greiferinformationen je nach spezifischem Produktionsbedarf konfigurieren. Wenn der Benutzer die Konfiguration ändern muss, kann er zuerst die entsprechende Greifernummer auswählen, auf die Schaltfläche „Löschen“ klicken, um die entsprechende Schaltfläche zu löschen, und dann je nach Bedarf neu konfigurieren.
Abbildung 8.2‑1 Greifer konfigurieren
Wichtig
Bevor Sie auf „Konfiguration löschen“ klicken, sollte sich der entsprechende Greifer im deaktivierten Zustand befinden.
Schritt 2: Nach Abschluss der Greiferkonfiguration kann der Benutzer die entsprechenden Greiferinformationen in der Greiferinformationstabelle unten auf der Seite einsehen. Wenn ein Konfigurationsfehler festgestellt wird, kann er auf die Schaltfläche „Löschen“ klicken und den Greifer neu konfigurieren.
Abbildung 8.2‑2 Greiferkonfigurationsinformationen
Schritt 3: Wählen Sie den konfigurierten Greifer aus, klicken Sie auf die Schaltfläche „Reset“. Nachdem auf der Seite der erfolgreiche Befehlssendevorgang angezeigt wurde, klicken Sie auf die Schaltfläche „Aktivieren“. Überprüfen Sie den Aktivierungsstatus in der Greiferinformationstabelle, um festzustellen, ob die Aktivierung erfolgreich war.
Wichtig
Beim Aktivieren des Greifers darf dieser kein Objekt halten.
Schritt 4: Wählen Sie in der Programmierbefehlsoberfläche den Befehl „Gripper“. In der Greiferbefehlsoberfläche kann der Benutzer die zu steuernde Greifernummer auswählen (die konfigurierten und aktivierten Greifer), den entsprechenden Öffnungs-/Schließzustand, die Öffnungs-/Schließgeschwindigkeit, das Öffnungs-/Schließmoment und die maximale Wartezeit für die Greiferaktion einstellen. Nach der Einstellung kann auf „Hinzufügen“ und „Anwenden“ geklickt werden. Darüber hinaus können Greiferaktivierungs- und Rücksetzbefehle hinzugefügt werden, um den Greifer während der Programmausführung zu aktivieren/zurückzusetzen.
Abbildung 8.2‑3 Greiferbefehl bearbeiten
8.2.1.1. Greifer-Programmierung (Teach)
Nr. |
Befehlsformat |
Kommentar |
|---|---|---|
1 |
PTP(template2,100,-1,0) |
#Auf Greifpunkt warten |
2 |
PTP(template1,100,-1,0) |
#Greifpunkt |
3 |
MoveGripper(1,255,255,0,1000,0) |
#Greifer schließen |
4 |
PTP(template2,100,-1,0) |
/ |
5 |
PTP(template3,100,-1,0) |
#Auf Ablegepunkt warten |
6 |
PTP(template3,100,-1,0) |
#Ablegepunkt |
7 |
MoveGripper(1,0,255,0,1000,0) |
#Greifer öffnen |
8.2.2. Konfiguration des Greifer-Lua-Flanschprotokolls
Öffnen Sie die WebApp, klicken Sie nacheinander auf „Initiale Einstellungen“, „Peripherie“, „Greifer“, „Benutzerdefiniertes Protokoll“. Klicken Sie auf „Protokollverwaltung“, um die Konfiguration des Flanschprotokolls durchzuführen.
Der vom Benutzer hochgeladene Dateiname muss mit „AXLE_LUA_End“ beginnen. Nach dem Hochladen wird der Protokollname in der Liste mit „Custom_End“ beginnen. Diese Art von Protokollen kann heruntergeladen und gelöscht werden. Dateien mit demselben Namen, die vom Benutzer hochgeladen werden, überschreiben automatisch das neueste Lua.
Abbildung 8.2‑4-1 Hochladen eines benutzerdefinierten Greiferprotokolls
Die vom Roboter voreingestellten und eingebetteten Protokolle haben das Präfix End_ und können nur heruntergeladen, nicht gelöscht werden. Die eingebetteten Protokolle für Greifer (Drehgreifer, Sauggreifer) sind in der folgenden Abbildung dargestellt.
Abbildung 8.2‑4-2 Voreingestellte eingebettete Protokolle für Greifer (Drehgreifer, Sauggreifer)
Nachdem sichergestellt wurde, dass das ausgewählte Protokoll korrekt ist, kann der Roboter deaktiviert (Enable entfernen) und das offene Protokoll angewendet werden. Nach dem Anwenden wechselt der Roboter automatisch in den Boot-Modus und wendet das ausgewählte Protokoll auf die Flanschseite an. Wenn die Seite „Upgrade erfolgreich, bitte Steuerschrank neu starten“ anzeigt, kann der Steuerschrank neu gestartet werden.
Abbildung 8.2‑4-3 Anwenden des offenen Flanschprotokolls auf die Flanschplatine
Nach dem Neustart und dem Zugriff auf die WebApp-Seite wird der Name des aktuell angewendeten Protokolls angezeigt. Nachdem das Flanschprotokoll aktiviert und das Gerät aktiviert wurde, beginnt das Flanschprotokoll zu laufen. Die Geräte-ID ist die Modbus-Slave-Adresse der Flanschperipherie und muss mit dem Inhalt des Protokolls abgestimmt werden.
Abbildung 8.2‑4-4 Anzeige und Aktivierung der Greifer-Flanschprotokollkonfiguration
Die Flanschplatine überprüft das hochgeladene Lua-Protokoll. Wenn die Lua-Datei eine Anomalie aufweist, wird die Warnung „Flansch-Lua-Datei anomal“ angezeigt. Es kann mit „Nicht wiederherstellen/Wiederherstellen“ umgegangen werden. Schalten Sie die Lua-Aktivierungsschaltfläche aus, die Warnung erlischt.
Abbildung 8.2‑4-5 Anzeige und Aktivierung der Greifer-Flanschprotokollkonfiguration
8.2.2.1. Beispiel für ein Greifer-Lua-Flanschprotokoll
function Getbit(X,Bit)-- Getbit(), Funktion zum Extrahieren eines Bits aus einem Byte. Parameter: X: das Byte, aus dem das Bit extrahiert werden soll; Bit: das zu extrahierende Bit (0-7)
return ((X&(1<<Bit))>>Bit)
end
function GetOneByte(U32)-- GetOneByte(), extrahiert aus Daten wie 0x1234 das niederwertige Byte, Rückgabewert ist 0x34
return ((U32>>0)&0xFF)
end
function GetTwoByte(U32)-- GetTwoByte(), extrahiert aus Daten wie 0x1234 das höherwertige Byte, Rückgabewert ist 0x12
return ((U32>>8)&0xFF)
end
function GetThreeByte(U32)-- GetThreeByte(), extrahiert aus Daten wie 0x56781234 das Byte, Rückgabewert ist 0x78
return ((U32>>16)&0xFF)
end
function GetFourByte(U32)-- GetFourByte(), extrahiert aus Daten wie 0x56781234 das Byte, Rückgabewert ist 0x56
return ((U32>>24)&0xFF)
end
X,Speed,Torque=0,0,0
while(1)
do
IwdgTaskHandle()
MainLoop()
UpDownLoadHandle()
SdoRwPara()
EndErrClear()
local BFlag=LuaBreak()
if(BFlag==1)then
break
end-- Hier bis zum Dateiende LuaGc(), end ist feste Verwendung
T1={0x01,0x06,0x03,0xE8,0x00,0x09,0xC9,0xBC}-- Greiferbefehle eintragen (Modbus RTU Befehle). T1-T5 sind nacheinander: Greifer-Ausführungsbefehl, Greifer-Initialisierungsbefehl, Greifer-Positionsbefehl, Greifer-Geschwindigkeitsbefehl, Greifer-Drehmomentbefehl.
--/Befehlsanalyse: T1[1]=0X01, Greiferadresse; T1[2]=0x06, Funktionscode "Einzelnes Halteregister schreiben"; T1[3],T1[4]: 0x03,0xE8, Adresse des Registers, das der Ausführungsbefehl manipulieren soll; T1[5],T1[6]: 0x00,0x09, in das Register zu schreibende Daten; T1[7],T1[8]: 0xC9,0xBC, CRC-Prüfsumme, muss gemäß Greiferhandbuch geändert werden.
T2={}
T3={}
T4={}
T5={}
T7={0x01,0x03,0x07,0xD0,0x00,0x01,0x84,0x87}-- T7-T12, Greiferstatus-Lesebefehle. Nacheinander: Greiferstatus lesen, Greiferinitialisierung lesen, Greiferfehlercode lesen, Greiferposition lesen, Greifergeschwindigkeit lesen, Greiferdrehmoment lesen.
T8={}
T9={}
T10={}
T11={}
T12={}
Rcmd1,Rcmd2,Rcmd3,Rcmd4=GetGripCmd()-- Feste Verwendung, muss nicht geändert werden. Rcmd2 ist die von der Steuerung übergebene Greiferadresse, Rcmd4 sind die von der Steuerung übergebenen Daten.
if(Rcmd1==1) then
T1[1]=Rcmd2
T2[1]=Rcmd2
T3[1]=Rcmd2
T4[1]=Rcmd2
T5[1]=Rcmd2
T7[1]=Rcmd2
T8[1]=Rcmd2
T9[1]=Rcmd2
T10[1]=Rcmd2
T11[1]=Rcmd2
T12[1]=Rcmd2 --**Greiferadresse aktualisieren
if (Rcmd3==1) then --Greifer-Ausführungsbefehl
T1[7],T1[8]=CrcValue(T1[1],T1[2],T1[3],T1[4],T1[5],T1[6])--CRC-Wert für Modbus RTU Befehl berechnen, zwei Bytes.
EndTxGripData(T1[1],T1[2],T1[3],T1[4],T1[5],T1[6],T1[7],T1[8])--Flanschseite sendet Befehl an Greifer.
DelayMs(10) --10 ms verzögern.
A,Rxd1,Rxd2,Rxd3,Rxd4,Rxd5,Rxd6,Rxd7=EndRxGripData()--Flanschseite gibt die vom Greifer empfangenen Rückmeldedaten an Lua zurück. Der genaue Inhalt der Rückmeldung ist dem Greiferhandbuch zu entnehmen.
GripStateBack(Rxd3)
end
if (Rcmd3==2) then
T2[7],T2[8]=CrcValue(T2[1],T2[2],T2[3],T2[4],T2[5],T2[6])
EndTxGripData(T2[1],T2[2],T2[3],T2[4],T2[5],T2[6],T2[7],T2[8])
DelayMs(10)
A,Rxd1,Rxd2,Rxd3,Rxd4,Rxd5,Rxd6,Rxd7=EndRxGripData()
GripStateBack(Rxd3)
end
if(Rcmd3==3) then
X=Rcmd4
T3[5]=0x00
T3[6]=X
T3[7],T3[8]=CrcValue(T3[1],T3[2],T3[3],T3[4],T3[5],T3[6])
EndTxGripData(T3[1],T3[2],T3[3],T3[4],T3[5],T3[6],T3[7],T3[8])
DelayMs(10)
A,Rxd1,Rxd2,Rxd3,Rxd4,Rxd5,Rxd6,Rxd7=EndRxGripData()
GripStateBack(Rxd3)
end
if (Rcmd3==4) then
Speed=Rcmd4
T4[5]=Torque
T4[6]=Speed
T4[7],T4[8]=CrcValue(T4[1],T4[2],T4[3],T4[4],T4[5],T4[6])
EndTxGripData(T4[1],T4[2],T4[3],T4[4],T4[5],T4[6],T4[7],T4[8])
DelayMs(10)
A,Rxd1,Rxd2,Rxd3,Rxd4,Rxd5,Rxd6,Rxd7=EndRxGripData()
GripStateBack(Rxd3)
end
if(Rcmd3==5) then
Torque=Rcmd4
T5[5]=Torque
T5[6]=Speed
T5[7],T5[8]=CrcValue(T5[1],T5[2],T5[3],T5[4],T5[5],T5[6])
EndTxGripData(T5[1],T5[2],T5[3],T5[4],T5[5],T5[6],T5[7],T5[8])
DelayMs(10)
A,Rxd1,Rxd2,Rxd3,Rxd4,Rxd5,Rxd6,Rxd7=EndRxGripData()
GripStateBack(Rxd3)
end
if(Rcmd3 == 7) then
T7[7],T7[8]=CrcValue(T7[1],T7[2],T7[3],T7[4],T7[5],T7[6])
EndTxGripData(T7[1],T7[2],T7[3],T7[4],T7[5],T7[6],T7[7],T7[8])
DelayMs(10)
A,Rxd1,Rxd2,Rxd3,Rxd4,Rxd5,Rxd6,Rxd7=EndRxGripData()
RxdCrcH,RxdCrcL = CrcValue(Rxd1,Rxd2,Rxd3,Rxd4,Rxd5)
if((A==8)and(Rxd1==Rcmd2)and(Rxd2==0x03)and(Rxd3==0x02)and(Rxd6==RxdCrcH)and(Rxd7==RxdCrcL))then
GripStateBack(Rxd4)
end
end
if(Rcmd3==8) then
T8[7],T8[8]=CrcValue(T8[1],T8[2],T8[3],T8[4],T8[5],T8[6])
EndTxGripData(T8[1],T8[2],T8[3],T8[4],T8[5],T8[6],T8[7],T8[8])
DelayMs(10)
A,Rxd1,Rxd2,Rxd3,Rxd4,Rxd5,Rxd6,Rxd7=EndRxGripData()
RxdCrcH,RxdCrcL = CrcValue(Rxd1,Rxd2,Rxd3,Rxd4,Rxd5)
if((A==8)and(Rxd1==Rcmd2)and(Rxd2==0x03)and(Rxd3==0x02)and(Rxd6==RxdCrcH)and(Rxd7 ==RxdCrcL)) then
GripStateBack(Rxd5)
end
end
if(Rcmd3 == 9) then
T9[7],T9[8]=CrcValue(T9[1],T9[2],T9[3],T9[4],T9[5],T9[6])
EndTxGripData(T9[1],T9[2],T9[3],T9[4],T9[5],T9[6],T9[7],T9[8])
DelayMs(10)
A,Rxd1,Rxd2,Rxd3,Rxd4,Rxd5,Rxd6,Rxd7=EndRxGripData()
RxdCrcH,RxdCrcL = CrcValue(Rxd1,Rxd2,Rxd3,Rxd4,Rxd5)
if((A==8)and(Rxd1==Rcmd2)and(Rxd2==0x03)and(Rxd3==0x02)and(Rxd6==RxdCrcH)and(Rxd7==RxdCrcL)) then
GripStateBack(Rxd5)
end
end
if(Rcmd3 == 10) then
T10[7],T10[8]=CrcValue(T10[1],T10[2],T10[3],T10[4],T10[5],T10[6])
EndTxGripData(T10[1],T10[2],T10[3],T10[4],T10[5],T10[6],T10[7],T10[8])
DelayMs(10)
A,Rxd1,Rxd2,Rxd3,Rxd4,Rxd5,Rxd6,Rxd7=EndRxGripData()
RxdCrcH,RxdCrcL = CrcValue(Rxd1,Rxd2,Rxd3,Rxd4,Rxd5)
if((A==8)and(Rxd1==Rcmd2)and(Rxd2==0x03)and(Rxd3==0x02)and(Rxd6==RxdCrcH)and(Rxd7==RxdCrcL)) then
GripStateBack(Rxd4)
end
end
if(Rcmd3 == 11) then
T11[7],T11[8]=CrcValue(T11[1],T11[2],T11[3],T11[4],T11[5],T11[6])
EndTxGripData(T11[1],T11[2],T11[3],T11[4],T11[5],T11[6],T11[7],T11[8])
DelayMs(10)
A,Rxd1,Rxd2,Rxd3,Rxd4,Rxd5,Rxd6,Rxd7=EndRxGripData()
RxdCrcH,RxdCrcL = CrcValue(Rxd1,Rxd2,Rxd3,Rxd4,Rxd5)
if((A==8)and(Rxd1==Rcmd2)and(Rxd2==0x03)and(Rxd3==0x02)and(Rxd6==RxdCrcH)and(Rxd7==RxdCrcL)) then
GripStateBack(Rxd5)
end
end
if(Rcmd3 == 12) then
T12[7],T12[8]=CrcValue(T12[1],T12[2],T12[3],T12[4],T12[5],T12[6])
EndTxGripData(T12[1],T12[2],T12[3],T12[4],T12[5],T12[6],T12[7],T12[8])
DelayMs(10)
A,Rxd1,Rxd2,Rxd3,Rxd4,Rxd5,Rxd6,Rxd7=EndRxGripData()
RxdCrcH,RxdCrcL = CrcValue(Rxd1,Rxd2,Rxd3,Rxd4,Rxd5)
if((A==8)and(Rxd1==Rcmd2)and(Rxd2==0x03)and(Rxd3==0x02)and(Rxd6==RxdCrcH)and(Rxd7==RxdCrcL)) then
GripStateBack(Rxd4)
end
end
end
LuaGc()
end
8.2.2.2. Geräteaktivierung
Schritt 1: Greifer aktivieren -> Greifer-ID auswählen -> die zum Greifer passenden Funktionscodes auswählen -> auf Konfigurieren klicken. In den konfigurierten Geräten werden die ID und die Funktionscodes des Greifers angezeigt.
Abbildung 8.2‑4 Greifer konfigurieren
Bemerkung
Da die offene Flanschfunktion derzeit Greiferadressen im Bereich 1~8 unterstützt, sollte die Greiferadresse vor der Verwendung mit der PC-Software des Greiferherstellers eingestellt werden.
Die Auswahl der Funktionscodes sollte anhand des Produkthandbuchs des Greiferherstellers erfolgen, um die vom Greifer unterstützten Funktionen zu ermitteln. Sie müssen mit den Lua-Funktionscodes der Flanschseite übereinstimmen. Einzelheiten entnehmen Sie bitte dem „Handbuch zur Anpassung von Flansch-Lua an Greifer“.
Schritt 2: Greifer-ID auswählen -> Zurücksetzen -> Aktivieren. Der Greifer wird einmal initialisiert. Einzelheiten zur Initialisierung entnehmen Sie bitte dem Produkthandbuch des Greiferherstellers.
Abbildung 8.2‑5 Greifer aktivieren
Schritt 3: Gehen Sie zu Teach-Programm -> Programmierung -> Greifer-Bewegungsbefehl hinzufügen.
Abbildung 8.2‑6 Greifer-Bewegungsbefehl hinzufügen
Abbildung 8.2‑7 Beispiel für einen Greifer-Bewegungsbefehl
8.2.2.3. Mehrere Greifer
Aktivierung und Bewegungssteuerung siehe Schritte für einen einzelnen Greifer.
Abbildung 8.2‑8 Mehrere Greifer konfigurieren
Bemerkung
Da die offene Flanschfunktion derzeit Greiferadressen im Bereich 1~8 unterstützt, sollte die Greiferadresse vor der Verwendung mit der PC-Software des Greiferherstellers eingestellt werden.
8.2.2.4. Drehgreifer
Schritt 1: Greifer aktivieren -> Greifer-ID auswählen -> die zum Greifer passenden Funktionscodes auswählen -> auf Konfigurieren klicken. In den konfigurierten Geräten werden die ID und die Funktionscodes des Greifers angezeigt.
Abbildung 8.2‑9 Greifer und Funktionscodes konfigurieren
Bemerkung
Die Auswahl der Funktionscodes sollte anhand des Produkthandbuchs des Greiferherstellers erfolgen, um die vom Greifer unterstützten Funktionen zu ermitteln. Sie müssen mit den Lua-Funktionscodes der Flanschseite übereinstimmen. Einzelheiten entnehmen Sie bitte der „FR05-Complete Flanschperipherie-Protokoll-V2.5-20241101.xlsx“.
Schritt 2: Greifer-ID auswählen -> Zurücksetzen -> Aktivieren. Der Greifer wird einmal initialisiert. Einzelheiten zur Initialisierung entnehmen Sie bitte dem Produkthandbuch des Greiferherstellers.
Abbildung 8.2‑10 Greifer aktivieren
Schritt 3: Gehen Sie zu Teach-Programm -> Programmierung -> Greifer-Bewegungsbefehl hinzufügen.
Abbildung 8.2‑11 Drehgreifer-Bewegungsbefehl hinzufügen
Abbildung 8.2‑12 Beispiel für einen Drehgreifer-Bewegungsbefehl
Bemerkung
Die Anzahl der Umdrehungen bezieht sich auf die absolute Anzahl der Umdrehungen. Die maximale Anzahl für Vorwärts- und Rückwärtsdrehungen beträgt 90 Umdrehungen. Nach einer Drehung muss ein Reset durchgeführt werden.
8.3. Kraftsensor
In der Oberfläche „Initiale Einstellungen“ -> „Peripherie“ -> „Kraftsensor“ können Kraftsensoren derzeit über „Bereits angepasste Geräte“ und das „Benutzerdefinierte offene Flansch-Lua-Protokoll“ verwendet werden.
8.3.1. Bereits angepasste Geräte
Schritt 1: Klicken Sie auf „Bereits angepasste Geräte“, um zur Konfigurationsoberfläche für die Flanschperipherie zu gelangen.
Die Konfigurationsinformationen für den Kraftsensor umfassen Hersteller, Typ, Softwareversion und Montageposition. Der Benutzer kann die entsprechenden Kraftsensorinformationen je nach spezifischem Produktionsbedarf konfigurieren. Wenn der Benutzer die Konfiguration ändern muss, kann er zuerst die entsprechende Nummer auswählen, auf die Schaltfläche „Löschen“ klicken, um die entsprechenden Informationen zu löschen, und dann je nach Bedarf neu konfigurieren.
Abbildung 8.3‑1 Kraftsensor konfigurieren
Wichtig
Bevor Sie auf „Konfiguration löschen“ klicken, sollte sich der entsprechende Sensor im deaktivierten Zustand befinden.
Schritt 2: Nach Abschluss der Kraftsensorkonfiguration kann der Benutzer die entsprechenden Kraftsensorinformationen in der Informationstabelle unten auf der Seite einsehen. Wenn ein Konfigurationsfehler festgestellt wird, kann er auf die Schaltfläche „Löschen“ klicken und neu konfigurieren.
Abbildung 8.3‑2 Kraftsensor-Konfigurationsinformationen
Schritt 3: Wählen Sie die konfigurierte Kraftsensornummer aus, klicken Sie auf die Schaltfläche „Reset“. Nachdem auf der Seite der erfolgreiche Befehlssendevorgang angezeigt wurde, klicken Sie auf die Schaltfläche „Aktivieren“. Überprüfen Sie den Aktivierungsstatus in der Kraftsensorinformationstabelle, um festzustellen, ob die Aktivierung erfolgreich war. Darüber hinaus hat der Kraftsensor einen Anfangswert. Der Benutzer kann je nach Bedarf „Nullpunktkorrektur“ und „Nullpunkt entfernen“ wählen. Für die Nullpunktkorrektur des Kraftsensors muss sichergestellt sein, dass der Sensor horizontal und vertikal nach unten ausgerichtet ist und der Roboter keine Nutzlast konfiguriert hat.
Schritt 4: Nach der Konfiguration des Kraftsensors muss das Werkzeugkoordinatensystem für den Sensortyp konfiguriert werden. Der Wert des Sensor-Werkzeugkoordinatensystems kann direkt basierend auf dem Abstand zwischen Sensor und Werkzeugmittelpunkt eingegeben und angewendet werden.
8.3.2. Lua-Flanschprotokoll für Kraftsensoren
Öffnen Sie die WebApp, klicken Sie nacheinander auf „Initiale Einstellungen“, „Peripherie“, „Kraftsensor“, „Benutzerdefiniertes Protokoll“. Klicken Sie auf „Protokollverwaltung“, um die Konfiguration des Flanschprotokolls durchzuführen. Die derzeit voreingestellten eingebetteten Protokolle für Kraftsensoren sind in der folgenden Abbildung dargestellt. Version 3.9.2 fügt zwei eingebettete Kombinationsprotokolle für Greifer + Kraftsensor hinzu: End_JD_XJC_V1.0.lua und End_JD_GZCX_V1.0.lua.
Abbildung 8.3‑2-2 Voreingestellte eingebettete Protokolle für Kraftsensoren
8.3.3. Lua-Flanschprotokoll für Schweißgriffe
Öffnen Sie die WebApp, klicken Sie nacheinander auf „Initiale Einstellungen“, „Peripherie“, „Schweißgriff“, „Benutzerdefiniertes Protokoll“. Klicken Sie auf „Protokollverwaltung“, um die Konfiguration des Flanschprotokolls durchzuführen. Die derzeit voreingestellten eingebetteten Protokolle für Schweißgriffe sind in der folgenden Abbildung dargestellt. Version 3.9.2 fügt drei eingebettete Kombinationsprotokolle für SmartTool + Greifer oder Kraftsensor hinzu: End_SM_JD_V1.3.lua, End_SM_GZCX_V1.3.lua, End_SM_XJC_V1.3.lua.
Abbildung 8.3‑2-3 Voreingestellte eingebettete Protokolle für Schweißgriffe
8.3.3.1. Automatische Generierung des Flansch-Lua-Protokolls
Diese neue Funktion ermöglicht die automatische Generierung von Protokollen, die mit dem eingebetteten SmartTool-Schweißgriff in Zusammenhang stehen (derzeit nur für vier Protokolle konfigurierbar: End_SmartTool_V1.3.lua, End_SM_JD_V1.3.lua, End_SM_GZCX_V1.3.lua, End_SM_XJC_V1.3.lua). Nach der Konfiguration über die Webseite wird das Flansch-Lua-Protokoll automatisch generiert, hochgeladen und auf die Flanschseite angewendet. Der Benutzer muss kein Protokoll mehr schreiben. Der Benutzer konfiguriert die Tasten A, B, C, D, E, IO des SmartTool-Schweißgriffs nach Bedarf. Nach der Konfiguration muss der Roboter deaktiviert (Enable entfernen) werden und auf „Anwenden“ geklickt werden. Die Seite fragt dann: „Boot-Modus betreten und offenes Protokoll anwenden?“. Nach der Bestätigung wechselt der Roboter in den Boot-Modus, lädt das automatisch generierte Flansch-Lua-Protokoll hoch und nach dem Neustart des Roboters kann der SmartTool gemäß den konfigurierten Tasten verwendet werden.
Abbildung 8.3‑2-4 Automatische Generierung des Konfigurationsprotokolls für den SmartTool-Schweißgriff
Abbildung 8.3‑2-5 Seitenabfrage „Boot-Modus betreten und offenes Protokoll anwenden?“
8.3.3.2. Import einer Vorlage für die SmartTool-Programmgenerierung
Wenn die Funktion „Programmgenerierung“ für eine SmartTool-Taste konfiguriert ist, können basierend auf dem offenen Protokoll zwei Arten von generierten Programmen bereitgestellt werden. Standardmäßig wird ein leeres Lua-Programm generiert, oder der Benutzer kann eine Vorlage mit dem Namen template_ als Vorlage für neue Programme hochladen. Wenn ein neues Programm mit einer Vorlage erstellt wird, enthält die durch die SmartTool-Funktion „Neues Programm“ generierte Lua-Datei den Inhalt der hochgeladenen Vorlagendatei. Später hinzugefügte Befehle werden nach dem Vorlageninhalt eingefügt.
Abbildung 8.3‑2-6 Import einer Vorlage für die SmartTool-Programmgenerierung
8.3.3.3. Konfiguration der SmartTool-Bewegungsbefehlspunkte
Bei der Konfiguration der drei Befehle „PTP“, „LIN“, „ARC“ für den SmartTool kann ausgewählt werden, ob die generierten Befehlspunkte in der Datenbank „Globale Teach-Punkte“ oder „Lokale Teach-Punkte“ gespeichert werden. Bei Auswahl von „Globale Teach-Punkte“ können die generierten Befehlspunkte unter „Teach-Programm“ und „Teach-Punkte“ eingesehen werden. Bei Auswahl von „Lokale Teach-Punkte“ können die generierten Befehlspunkte unter „Teach-Programm“, „Programmierung“ und „Lokale Teach-Punkte“ eingesehen werden.
Abbildung 8.3‑2-7 Konfiguration „Globale Teach-Punkte“ und „Lokale Teach-Punkte“ für SmartTool-Bewegungsbefehle
8.3.3.4. SmartTool Anti-Fehlbedienungsmodus
Dem SmartTool basierend auf dem offenen Protokoll wurde ein Anti-Fehlbedienungsmodus hinzugefügt. Klicken Sie nacheinander auf „Initiale Einstellungen“, „Peripherie“, „Schweißgriff“, „Benutzerdefiniertes Protokoll“. Nach der Aktivierung des Flanschprotokolls ist ein Schalter für den „Anti-Fehlbedienungsmodus“ sichtbar. Wenn diese Funktion aktiviert ist, müssen die beiden Tasten „Programm widerrufen“ und „Programm leeren“ des SmartTool zweimal gedrückt werden, um ausgelöst zu werden.
Abbildung 8.3‑2-8 SmartTool „Anti-Fehlbedienungsmodus“ Funktion
8.3.3.5. Beispiel für ein Lua-Flanschprotokoll eines Schweißgriffs
Die Funktionen der sechs Tasten A, B, C, D, E, IO können durch den key-Wert in Zeile 31 des Codes geändert und definiert werden. Dabei sind K38=Getbit(R[7],1) und K0=Getbit(R[7],2) für „Programm leeren“ und „Taste widerrufen“ festgelegt und dürfen nicht geändert werden. Die folgenden 5 K-Werte können gemäß den Definitionen im Dokument „Vollständiges Flanschperipherie-Protokoll“ geändert werden. In diesem Beispiel (eingebettetes SmartTool-Protokoll) entsprechen die Tastenfunktionen: A:LIN, B:PTP, C:Programm erstellen, D:Schweißunterbrechung fortsetzen, E:Schweißunterbrechung beenden, IO: LIN + Schweißen + Pendeln.
Beispiel für ein Lua-Flanschprotokoll eines Schweißgriffs (SmartTool)
1function Getbit(X,Bit)
2return ((X&(1<<Bit))>>Bit)
3end
4
5if(Getbit(GetRobotState(),0)==1)then
6local SetParams={B6=3}-- B6 - Operations-DO-Portnummer ist DO3
7SetWeldParams(SetParams)
8while(1)
9do
10IwdgTaskHandle()
11MainLoop()
12UpDownLoadHandle()
13SdoRwPara()
14EndErrClear()
15local BFlag=LuaBreak()
16if(BFlag==1)then
17break
18end
19local R={0}
20local T={0x7D,0x01,0x30,0xC0,0x00,0x04,0x00,0x00,0x00,0x00}
21DelayMs(100)
22T[7],T[8],T[9],T[10]=GetIoCmd()
23Dword=GetRobotState()
24T[7]=Getbit(Dword,4)
25T[12],T[11]=WeldToolCrcValue(T)
26T[13]=0x0E
27WeldToolSlaveSetCmd(T)
28DelayMs(3)
29Len=EndRxWeldData(R)
30if((Len==13)and(R[1]==0x7D)and(R[2]==0x01)and(R[3]==0x30))then
31local key={K38=Getbit(R[7],1),K0=Getbit(R[7],2),K3=Getbit(R[7],3),K25=Getbit(R[7],4),K39=Getbit(R[7],5),K27=Getbit(R[7],6),K28=Getbit(R[7],7), K44=Getbit(R[8],0),
32K6=Getbit(R[8],1),K7=Getbit(R[8],2)}-- Einstellung der SmartTool-Schweißgrifftasten: Widerrufen-K38: Programm widerrufen; Leeren-K0: Programm leeren; A-Taste-K3: LIN; B-Taste-K25: PTP; C-Taste-K39: Programm erstellen; D-Taste-K27: Schweißunterbrechung fortsetzen; E-Taste-K28: Schweißunterbrechung beenden; IO-Taste-K44: LIN + Schweißen + Pendeln; Hand/Auto-Taste-K6: Hand/Auto; Start/Pause-Taste-K7: Start/Pause
33SetWeldToolKeys(key)
34end
35LuaGc()
36end
37end
8.3.4. Nutzlastidentifikation mit Sensor
Klicken Sie im Menü „Initiale Einstellungen“ -> „Basis“ -> „Nutzlast“ auf „Sensoridentifikation“, um zur Oberfläche für die Sensor-Nutzlastidentifikation zu gelangen.
Positionsspezifische Identifikation: Löschen Sie die Endnutzlastdaten, konfigurieren Sie den Kraftsensor, richten Sie das Sensorkoordinatensystem ein, stellen Sie die Endausrichtung des Roboters senkrecht nach unten ein, führen Sie eine „Nullpunktkorrektur“ durch und montieren Sie dann die Endnutzlast. Wählen Sie zuerst das entsprechende Sensor-Werkzeugkoordinatensystem aus, stellen Sie den Roboter so ein, dass Sensor und Werkzeug senkrecht nach unten zeigen, zeichnen Sie die Daten auf und berechnen Sie die Masse. Stellen Sie als nächstes den Roboter in 3 verschiedene Positionen ein, zeichnen Sie jeweils drei Datensätze auf, berechnen Sie den Schwerpunkt und klicken Sie nach Überprüfung auf „Anwenden“.
Dynamische Identifikation: Löschen Sie die Endnutzlastdaten, konfigurieren Sie den Kraftsensor, richten Sie das Sensorkoordinatensystem ein, stellen Sie die Endausrichtung des Roboters senkrecht nach unten ein, führen Sie eine „Nullpunktkorrektur“ durch und montieren Sie dann die Endnutzlast. Klicken Sie auf „Identifikation starten“, bewegen Sie den Roboter per Hand (Drag), klicken Sie dann auf „Identifikation beenden“. Die Nutzlastdaten werden automatisch auf den Roboter angewendet.
Automatische Nullpunktkorrektur: Nachdem der Sensor die Anfangsposition aufgezeichnet hat, kann eine automatische Nullpunktkorrektur durchgeführt werden.
Abbildung 8.3‑3 Sensor-Nutzlastidentifikation
8.3.5. Unterstütztes Ziehen (Drag) mit Kraftsensor
Nach der Konfiguration des Sensors kann dieser das Ziehen des Roboters (Drag-Modus) besser unterstützen. Bei der ersten Verwendung können die Daten gemäß dem Bild rechts konfiguriert werden. Nachdem die Einstellungen übernommen wurden, kann der Roboter direkt durch Ziehen am Endkraftsensor bewegt werden, ohne den Drag-Modus zu aktivieren. Der Roboter bewegt sich dann mit beibehaltener Ausrichtung. (Die Daten im folgenden Bild dienen als Referenzstandard)
Abbildung 8.3‑4 Ziehen mit Kraft-/Drehmomentsensor (Sperre)
Bemerkung
Die Singularitätsstrategie ist eine Funktion zur Durchquerung und Vermeidung von Singularitäten, die für das unterstützte Ziehen mit Kraftsensor entwickelt wurde.
Die Strategie zur Singularitätsvermeidung ist die Standardfunktion. Nach Aktivierung des unterstützten Ziehens ist die Vermeidungsfunktion standardmäßig aktiv. Die Singularitätsvermeidung wendet eine virtuelle Kraft an, um den Roboter von einer singulären Konfiguration wegzubewegen.
Singuläre Konfigurationen:
Ellenbogen-Singularität: Die Drehachsen 2, 3 und 4 liegen in derselben Ebene. Der Ellenbogen ist vollständig gestreckt oder vollständig gebeugt. Aufgrund der mechanischen Endanschläge von FR-Robotern ist die vollständig gebeugte Position nicht erreichbar.
Handgelenks-Singularität: Die Drehachsen 4 und 6 sind parallel. Aufgrund der mechanischen Endanschläge von FR-Robotern ist diese Position nicht erreichbar.
Schulter-Singularität: Der Handgelenksmittelpunkt liegt in der Ebene, die von den Drehachsen 1 und 2 gebildet wird.
Funktion zum Durchqueren von Singularitäten: Wählen Sie „Singularitätsstrategie“ auf „Durchqueren“ und wenden Sie es an. Wenn der Roboter erkennt, dass sich die aktuelle Pose in einer singulären Konfiguration befindet, wechselt er automatisch in den Stromregelungs-Drag-Modus. Wenn er die singuläre Konfiguration verlässt, wechselt der Drag-Modus zurück zum unterstützten Ziehen mit Kraftsensor.
Adaptive Auswahl: Bei Bedarf während der Montage einschalten. Nach dem Einschalten wird das Ziehen schwerer.
Trägheitsparameter: Passen das haptische Feedback während des Ziehvorgangs an. Nur unter Anleitung von Fachpersonal vorsichtig einstellen.
Dämpfungsparameter:
Translationsrichtung: Empfohlene Einstellung zwischen [100-200].
Rotationsrichtung: Empfohlene Einstellung zwischen [3-10], wobei der Einstellbereich für die RZ-Richtung [0,1-5] ist.
Effekt: Beim Ziehen mit Sensor erschwert eine Erhöhung der Dämpfung das Ziehen, eine Verringerung der Dämpfung macht das Ziehen zu leicht (nicht zu klein einstellen).
Gesamtbereich Dämpfungsparameter: Translation XYZ: [100-1000]; Rotation RX, RY: [3-50], RZ: [2-10].
Maximale Zugkraft ist 50, maximale Ziehgeschwindigkeit ist 180.
Steifigkeitsparameter: Alle auf 0 setzen.
Zugkraftschwelle: Translation XYZ: [5-10]; Rotation RX, RY, RZ: [0,5-5].
Wichtig
Die Sperrung wird durch Erhöhen der Kraftschwellen für die Translationsrichtung XYZ oder die Rotationsrichtungen RX, RY, RZ erreicht.
8.3.6. Kollisionserkennung mit Kraft-/Drehmomentsensor
Befehlsbeschreibung: Der Befehl „FT_Guard“ ist ein Kollisionserkennungsbefehl. Wählen Sie das entsprechende Sensorkoordinatensystem, aktivieren Sie die zu überwachenden Kraft-/Momentenrichtungen, stellen Sie den aktuellen Wert, die maximale Kollisionsschwelle und die minimale Kollisionsschwelle ein. Der normale Bereich für die Kollisionserkennung ist (aktueller Wert - minimale Schwelle, aktueller Wert + maximale Schwelle). Fügen Sie die Befehle „Aktivieren“ und „Deaktivieren“ in das Programm ein.
Abbildung 8.3‑5 FT_Guard Befehl bearbeiten
Programmbeispiel:
Nr. |
Befehlsformat |
Kommentar |
1 |
FT_Guard(1,1,1,1,1,0,0,0,5,0,0,0,0,0,10,0,0,0,0,0,5,0,0,0,0,0) |
#Kraft-/Moment-Kollisionserkennung aktivieren |
2 |
PTP(template1,100,-1,0) |
#Bewegungsbefehl |
3 |
FT_Guard(0,1,1,1,1,0,0,0,5,0,0,0,0,0,10,0,0,0,0,0,5,0,0,0,0,0) |
#Kraft-/Moment-Kollisionserkennung deaktivieren |
8.3.7. Kraftgeregelte Bewegung mit Kraft-/Drehmomentsensor
Befehlsbeschreibung: Der Befehl „FT_Control“ ist ein kraftgeregelter Bewegungsbefehl. Er ermöglicht es dem Roboter, sich in der Nähe einer eingestellten Kraft zu bewegen, was häufig in Schleifanwendungen verwendet wird. Wählen Sie das entsprechende Sensorkoordinatensystem, aktivieren Sie die zu überwachenden Kraft-/Momentenrichtungen, stellen Sie die Erkennungsschwellen und die PID-Proportionalbeiwerte (p) in jeder Richtung ein (üblich ist p=0,001), stellen Sie die maximale Anpassungsstrecke (für X, Y, Z) und den maximalen Anpassungswinkel (für RX, RY, RZ) ein. Fügen Sie die Befehle „Aktivieren“ und „Deaktivieren“ in das Programm ein.
Abbildung 8.3‑6 FT_Control Befehl bearbeiten
Programmbeispiel:
Nr. |
Befehlsformat |
Kommentar |
1 |
FT_Control(1,11,1,0,1,0,0,0,10,0,5,0,0,0,0.001,0,0,0,0,0,0,0,0,10,5) |
#Kraft-/Moment-Bewegungsregelung aktivieren |
2 |
Lin(template3,100,-1,0,0) |
#Bewegungsbefehl |
3 |
FT_Control(0,11,1,0,1,0,0,0,10,0,5,0,0,0,0.001,0,0,0,0,0,0,0,10,5) |
#Kraft-/Moment-Bewegungsregelung deaktivieren |
8.3.8. Spiralförmiges Einführen mit Kraft-/Drehmomentsensor
Befehlsbeschreibung: Der Befehl „FT_Spiral“ dient der spiralförmigen Erkundung und Einführung, üblicherweise für die Wellen-Loch-Montage von zylindrischen Wellen. Vor der Ausführung muss das Roboterende grob in die Nähe der Bohrungsposition gebracht werden. Stellen Sie die Befehlsparameter entsprechend der aktuellen Szene ein, fügen Sie sie zum Programm hinzu. Nach der Ausführung erkundet der Roboter die Umgebung mit einer spiralförmigen Bewegung.
Abbildung 8.3‑7 FT_Spiral Befehl bearbeiten
Programmbeispiel:
Nr. |
Befehlsformat |
Kommentar |
1 |
FT_Control(1,10,0,0,1,0,0,0,0,0,5,0,0,0,0.0005,0,0,0,0,0,0,10,0) |
#Kraft-/Moment-Bewegungsregelung aktivieren |
2 |
FT_SpiralSearch(0,0.7,0,60000,5) |
#Spiraleinführung |
3 |
FT_Control(0,10,0,0,1,0,0,0,0,0,5,0,0,0,0.0005,0,0,0,0,0,0,10,0) |
#Kraft-/Moment-Bewegungsregelung deaktivieren |
8.3.9. Drehendes Einführen mit Kraft-/Drehmomentsensor
Befehlsbeschreibung: Der Befehl „FT_Rot“ dient der rotierenden Erkundung und Einführung. Er wird üblicherweise im Anschluss an die Spiraleinführung für die Wellen-Loch-Montage verwendet. Vor der Ausführung muss das Roboterende an die durch die Spirale gefundene Position oder an eine exakt angeteachtete Bohrungsposition bewegt werden. Stellen Sie die Befehlsparameter entsprechend der aktuellen Szene ein, fügen Sie sie zum Programm hinzu. Nach der Ausführung erkundet der Roboter die Umgebung mit einer langsamen Drehbewegung.
Abbildung 8.3‑8 FT_Rot Befehl bearbeiten
Programmbeispiel:
Nr. |
Befehlsformat |
Kommentar |
1 |
FT_Control(1,10,0,0,1,0,0,0,0,0,5,0,0,0,0.0005,0,0,0,0,0,0,10,0) |
#Kraft-/Moment-Bewegungsregelung aktivieren |
2 |
FT_RotInsertion(0,3,0,5,1,0,1) |
#Dreheinführung |
3 |
FT_Control(0,10,0,0,1,0,0,0,0,0,5,0,0,0,0.0005,0,0,0,0,0,0,10,0) |
#Kraft-/Moment-Bewegungsregelung deaktivieren |
8.3.10. Lineares Einführen mit Kraft-/Drehmomentsensor
Befehlsbeschreibung: Der Befehl „FT_Lin“ dient der linearen Erkundung und Einführung. Er wird üblicherweise im Anschluss an die Spiraleinführung oder die Dreheinführung für die Wellen-Loch-Montage verwendet. Vor der Ausführung muss das Roboterende an die durch die Spirale gefundene Position, an die Position nach der Dreheinführung oder an eine exakt angeteachtete Bohrungsposition bewegt werden. Stellen Sie die Befehlsparameter entsprechend der aktuellen Szene ein, fügen Sie sie zum Programm hinzu. Nach der Ausführung bewegt sich der Roboter linear in der eingestellten Richtung.
Abbildung 8.3‑9 FT_Lin Befehl bearbeiten
Programmbeispiel:
Nr. |
Befehlsformat |
Kommentar |
1 |
FT_Control(1,10,0,0,1,0,0,0,0,0,5,0,0,0,0.0005,0,0,0,0,0,0,10,0) |
#Kraft-/Moment-Bewegungsregelung aktivieren |
2 |
FT_LinInsertion(0,50,1,0,100,1) |
#Lineareinführung |
3 |
FT_Control(0,10,0,0,1,0,0,0,0,0,5,0,0,0,0.0005,0,0,0,0,0,0,10,0) |
#Kraft-/Moment-Bewegungsregelung deaktivieren |
8.3.11. Oberflächenlokalisierung mit Kraft-/Drehmomentsensor
Befehlsbeschreibung: Der Befehl „FT_FindSurface“ dient der Oberflächenlokalisierung, üblicherweise zum Auffinden einer Werkstückoberfläche. Stellen Sie je nach aktueller Szene das entsprechende Koordinatensystem, die Bewegungsrichtung, die Bewegungsachse, die lineare Erkundungsgeschwindigkeit, die lineare Erkundungsbeschleunigung, die maximale Erkundungsstrecke und die Kraftschwelle für die Aktionsbeendigung ein. Fügen Sie sie zum Programm hinzu. Nach der Programmausführung beginnt die Bewegung und das Roboterende bewegt sich langsam in Richtung der vermuteten Oberfläche.
Abbildung 8.3‑10 FT_FindSurface Befehl bearbeiten
Programmbeispiel:
Nr. |
Befehlsformat |
Kommentar |
1 |
PTP(1,30,-1,0) |
#Startposition |
2 |
FT_FindSurface(0,1,3,1,0,100,5) |
#Ebenenlokalisierung |
8.3.12. Zentrumslokalisierung mit Kraft-/Drehmomentsensor
Befehlsbeschreibung: Der Befehl „FT_CalCenter“ dient der Zentrumslokalisierung, üblicherweise zum Auffinden der Mittelebene zwischen zwei Oberflächen. Stellen Sie je nach aktueller Szene das entsprechende Koordinatensystem, die Bewegungsrichtung, die Bewegungsachse, die lineare Erkundungsgeschwindigkeit, die lineare Erkundungsbeschleunigung, die maximale Erkundungsstrecke und die Kraftschwelle für die Aktionsbeendigung ein. Lokalisieren Sie nacheinander die Ebene A und die Ebene B. Fügen Sie sie zum Programm hinzu. Nach der Programmausführung beginnt die Bewegung: Der Roboter bewegt sich langsam in Richtung der Oberfläche A. Nach der Lokalisierung von A bewegt er sich langsam in Richtung der Oberfläche B. Nach der Lokalisierung von B wird die Position der Mittelebene berechnet.
Abbildung 8.3‑11 FT_CalCenter Befehl bearbeiten
Programmbeispiel:
Nr. |
Befehlsformat |
Kommentar |
1 |
PTP(1,30,-1,0) |
#Startposition |
2 |
FT_CalCenterStart() |
#Oberflächenlokalisierung starten |
3 |
FT_Control(1,10,0,0,1,0,0,0,0,0,-10,0,0,0,0.00001,0,0,0,0,0,0,100,0) |
#Kraft-/Moment-Bewegungsregelung aktivieren |
4 |
FT_FindSurface(1,2,2,10,0,200,5) |
#Ebene A lokalisieren |
5 |
FT_Control(0,10,0,0,1,0,0,0,0,0,-10,0,0,0,0.00001,0,0,0,0,0,0,100,0) |
#Kraft-/Moment-Bewegungsregelung deaktivieren |
6 |
PTP(1,30,-1,0) |
#Startposition |
7 |
FT_Control(1,10,0,0,1,0,0,0,0,0,-10,0,0,0,0.00001,0,0,0,0,0,0,100,0) |
#Kraft-/Moment-Bewegungsregelung aktivieren |
8 |
FT_FindSurface(1,1,2,20,0,200,5) |
#Ebene B lokalisieren |
9 |
FT_Control(0,10,0,0,1,0,0,0,0,0,10,0,0,0,0.00001,0,0,0,0,0,0,100,0) |
#Kraft-/Moment-Bewegungsregelung deaktivieren |
10 |
pos={} |
#Array pos definieren |
11 |
pos = FT_CalCenterEnd() |
#Kartesische Pose des lokalisierten Zentrums abrufen |
12 |
MoveCart(pos,GetActualTCPNum(),GetActualWObjNum(),30,10,100,-1,0) |
#Zur lokalisierten Mittelposition bewegen |
8.3.13. Benutzerdefiniertes offenes Protokoll
Klicken Sie auf die Karte „Benutzerdefiniertes Protokoll“, um zur Oberfläche zu gelangen. Aktivieren Sie den Kraftsensor. In den konfigurierten Geräten wird der Kraftsensor angezeigt. Klicken Sie, um zur FT-Oberfläche zu gelangen und die Kraftsensordaten abzufragen.
Abbildung 8.3‑12 Kraftsensor aktivieren
8.4. Schweißgriff
In der Oberfläche „Initiale Einstellungen“ -> „Peripherie“ -> „Schweißgriff“ können Schweißgriffe derzeit über „Bereits angepasste Geräte“ und das „Benutzerdefinierte offene Flansch-Lua-Protokoll“ verwendet werden.
8.4.1. Bereits angepasste Geräte
8.4.1.1. Konfigurationsschritte
Schritt 1: Klicken Sie auf die Karte „Bereits angepasste Geräte“, um zur Oberfläche für bereits angepasste Geräte zu gelangen. Die Konfigurationsinformationen umfassen Hersteller, Typ, Softwareversion und Montageposition. Der Benutzer kann die entsprechenden Informationen je nach spezifischem Produktionsbedarf konfigurieren. Wenn der Benutzer die Konfiguration ändern muss, kann er zuerst den entsprechenden Hersteller auswählen, auf die Schaltfläche „Löschen“ klicken, um die entsprechenden Informationen zu löschen, und dann je nach Bedarf neu konfigurieren.
Abbildung 8.4‑1 Konfiguration bereits angepasster Geräte für Schweißgriff
Wichtig
Bevor Sie auf „Konfiguration löschen“ klicken, sollte sich das entsprechende Gerät im deaktivierten Zustand befinden.
Schritt 2: Konfigurieren Sie nacheinander die A-E Tasten und die IO-Taste. Nach Abschluss der SmartTool-Konfiguration verwaltet der Task-Manager intern die jeder Taste zugeordnete Funktion. Wenn ein Tastendruck erkannt wird, wird die entsprechende Funktion automatisch ausgeführt.
Funktionen der A-E Tasten:
- Bewegungsbefehl: Bei Auswahl von PTP, LIN, ARC Bewegungsbefehlen muss die entsprechende Punktgeschwindigkeit eingegeben werden. Für LIN- und ARC-Befehle kann zwischen „Prozentsatz“ oder „Physikalische Geschwindigkeit“ gewählt werden:
Prozentsatz: Eingabe des Geschwindigkeitsprozentsatzes. Der Roboter bewegt sich mit diesem Prozentsatz der Maximalgeschwindigkeit. Die tatsächliche Robotergeschwindigkeit wird berechnet als: V = Maximale Robotergeschwindigkeit × Globaler Geschwindigkeitsprozentsatz × Punktgeschwindigkeitsprozentsatz. Wenn Sie den Mauszeiger über das kleine Auge rechts neben dem Eingabefeld „Punktgeschwindigkeit“ bewegen, wird die tatsächliche physikalische Geschwindigkeit (in mm/s) des Roboters im Hand- und Automatikmodus bei der eingestellten Geschwindigkeit angezeigt.
Abbildung 8.4‑2-1 Eingabe eines Prozentsatzes zeigt die tatsächliche physikalische Geschwindigkeit an
Physikalische Geschwindigkeit: Die eingegebene Geschwindigkeit ist die tatsächliche Bewegungsgeschwindigkeit des Roboters in mm/s. Die eingegebene Beschleunigung ist üblicherweise das Doppelte der Geschwindigkeit. (Die maximale physikalische Geschwindigkeit des LIN-Befehls ist durch den globalen Geschwindigkeitsprozentsatz begrenzt. Wenn die maximale Robotergeschwindigkeit 1000 mm/s beträgt und die globale Geschwindigkeit 50 %, dann beträgt die maximale physikalische Geschwindigkeit des LIN-Befehls 1000 × 50 % = 500 mm/s).
Abbildung 8.4‑2-2 Eingabe der tatsächlichen physikalischen Geschwindigkeit
Nach erfolgreicher Konfiguration wird dem Teach-Programm ein entsprechender Bewegungsbefehl hinzugefügt. Bei der Konfiguration eines ARC-Bewegungsbefehls müssen zuerst PTP/LIN-Befehle konfiguriert werden.
DO-Ausgang: Bei Auswahl von „DO-Ausgang“ erscheint ein Dropdown-Menü zur Auswahl der Ausgänge DO0 bis DO7.
Abbildung 8.4‑2-3 SmartTool Konfiguration (A-E Tasten)
Funktionen der IO-Taste:
IO-Signalkonfiguration: Dropdown-Menü zur Auswahl von DO0~DO7, CO0~CO7, End-DO0, End-DO1 und Erweiterungs-IO (Aux-DO0~Aux-DO127).
Kombinationsbefehl: Nach Auswahl von „IO-Signal“ werden unter bestimmten Bedingungen die Konfigurationselemente „Schweißgeräteauswahl“ und „Punktgeschwindigkeit“ angezeigt, um verschiedene Programmbefehle zu generieren.
Wichtig
Wenn das IO-Signal als DO0~DO7 oder CO0~CO7 konfiguriert ist (ohne „Lichtbogenzündung“), fügt das Programm SetDO hinzu. „Schweißgeräteauswahl“ und „Punktgeschwindigkeit“ werden ausgeblendet.
Wenn das IO-Signal als End-DO0, End-DO1 konfiguriert ist, fügt das Programm SetToolDO hinzu. „Schweißgeräteauswahl“ und „Punktgeschwindigkeit“ werden ausgeblendet.
Wenn das IO-Signal als Erweiterungs-IO konfiguriert ist (ohne „Lichtbogenzündung Schweißgerät“), fügt das Programm SetAuxDO hinzu. „Schweißgeräteauswahl“ und „Punktgeschwindigkeit“ werden ausgeblendet.
Wenn das IO-Signal als CO0~CO7 konfiguriert ist (mit „Lichtbogenzündung“) und die „Schweißgeräteauswahl“ auf „Kein“ steht, fügt das Programm SetDO hinzu. „Schweißgeräteauswahl“ und „Punktgeschwindigkeit“ werden ausgeblendet.
Wenn das IO-Signal als Erweiterungs-IO konfiguriert ist (mit „Lichtbogenzündung Schweißgerät“) und die „Schweißgeräteauswahl“ auf „Kein“ steht, fügt das Programm SetAuxDO hinzu. „Schweißgeräteauswahl“ und „Punktgeschwindigkeit“ werden ausgeblendet.
Wenn das IO-Signal als CO0~CO7 (mit „Lichtbogenzündung“) oder Erweiterungs-IO (mit „Lichtbogenzündung Schweißgerät“) konfiguriert ist und die „Schweißgeräteauswahl“ auf „Schweißen“ steht, fügt das Programm beim ersten Tastendruck ARCStart hinzu, beim zweiten Tastendruck ARCEnd, beim dritten Tastendruck ARCStart, beim vierten Tastendruck ARCEnd, usw. (abwechselnd). „Schweißgeräteauswahl“ und „Punktgeschwindigkeit“ werden ausgeblendet.
Wenn das IO-Signal als CO0~CO7 (mit „Lichtbogenzündung“) oder Erweiterungs-IO (mit „Lichtbogenzündung Schweißgerät“) konfiguriert ist und die „Schweißgeräteauswahl“ auf „LIN+Schweißen“ steht, fügt das Programm beim ersten Tastendruck LIN und ARCStart hinzu, beim zweiten Tastendruck LIN und ARCEnd, beim dritten Tastendruck LIN und ARCStart, beim vierten Tastendruck LIN und ARCEnd, usw. (abwechselnd). „Schweißgeräteauswahl“ und „Punktgeschwindigkeit“ werden angezeigt.
Wenn das IO-Signal als CO0~CO7 (mit „Lichtbogenzündung“) oder Erweiterungs-IO (mit „Lichtbogenzündung Schweißgerät“) konfiguriert ist und die „Schweißgeräteauswahl“ auf „LIN+Schweißen+Pendeln“ steht, fügt das Programm beim ersten Tastendruck LIN, ARCStart und WeaveStart hinzu, beim zweiten Tastendruck LIN, ARCEnd und WeaveEnd, beim dritten Tastendruck LIN, ARCStart und WeaveStart, beim vierten Tastendruck LIN, ARCEnd und WeaveEnd, usw. (abwechselnd). „Schweißgeräteauswahl“ und „Punktgeschwindigkeit“ werden ausgeblendet.
Abbildung 8.4‑3 IO-Taste
8.4.2. Lua-Flanschprotokoll für Schweißgriffe
Klicken Sie auf „Benutzerdefiniertes Protokoll“, um zur Funktionsoberfläche für die Anpassung von Schweißgriffen über das offene Lua-Flanschprotokoll zu gelangen.
8.4.2.1. Protokollverwaltung
Öffnen Sie die WebApp, klicken Sie nacheinander auf „Initiale Einstellungen“, „Peripherie“, „Schweißgriff“, „Benutzerdefiniertes Protokoll“. Klicken Sie auf „Protokollverwaltung“, um die Konfiguration des Flanschprotokolls durchzuführen. Die derzeit voreingestellten eingebetteten Protokolle für Schweißgriffe sind in der folgenden Abbildung dargestellt.
Abbildung 8.4‑4 Voreingestellte eingebettete Protokolle für Schweißgriffe
Aktivieren Sie den Schieberegler „Flanschprotokoll aktivieren“, um den Schweißgriff anzupassen. Nach der Aktivierung bleiben die Parameter nach einem Neustart erhalten.
Abbildung 8.4‑5 Offenes Flanschprotokoll aktivieren
8.4.2.2. Beispiel für ein kombiniertes Lua-Flanschprotokoll
Die Funktionen der fünf Tasten A, B, C, D, E können durch den key-Wert in Zeile 30 des Codes geändert und definiert werden. Dabei sind K38=Getbit(R[7],1) und K0=Getbit(R[7],2) für „Programm leeren“ und „Taste widerrufen“ festgelegt und dürfen nicht geändert werden. Die folgenden 5 K-Werte können gemäß den Definitionen im Dokument „Vollständiges Flanschperipherie-Protokoll“ geändert werden.
In diesem Beispiel (eingebettetes SmartTool-Protokoll) entsprechen die Tastenfunktionen: A:MoveL, B:ArcStart, C:ArcEnd, D:rewelding start, E:rewelding quit.
function Getbit(X,Bit)
return ((X&(1<<Bit))>>Bit)
end
if(Getbit(GetRobotState(),0)==1)then
local SetParams={A3=2000,B6=3}-- Schweißparameter einstellen, A3 - Lichtbogen starten/beenden Timeout 2000 ms, B6 - Operations-DO-Portnummer ist 3. Für die Konfiguration von Schweißparametern siehe "RD36-Tabelle der benutzerdefinierten Schweißgriffparameter-V0.2-20250903".
SetWeldParams(SetParams)
while(1)
do
IwdgTaskHandle()
MainLoop()
UpDownLoadHandle()
SdoRwPara()
EndErrClear()
local BFlag=LuaBreak()
if(BFlag==1)then
break
end
local R={0}
local T={0x7D,0x01,0x30,0xC0,0x00,0x04,0x00,0x00,0x00,0x00}
DelayMs(100)
T[7],T[8],T[9],T[10]=GetIoCmd()
T[7]=Getbit(T[7],3)
T[12],T[11]=WeldToolCrcValue(T)
T[13]=0x0E
WeldToolSlaveSetCmd(T)
DelayMs(3)
Len=EndRxWeldData(R)
if((Len==13)and(R[1]==0x7D)and(R[2]==0x01)and(R[3]==0x30))then
local key={K38=Getbit(R[7],1),K0=Getbit(R[7],2),K3=Getbit(R[7],3),K32=Getbit(R[7],4),K33=Getbit(R[7],5),K27=Getbit(R[7],6),K28=Getbit(R[7],7),
K6=Getbit(R[8],1),K7=Getbit(R[8],2)}-- Einstellung der SmartTool-Schweißgrifftasten: Widerrufen-K38: Programm widerrufen; Leeren-K0: Programm leeren; A-Taste-K3: LIN; B-Taste-K32: ArcStart; C-Taste-K33: ArcEnd; D-Taste-K27: Schweißunterbrechung fortsetzen; E-Taste-K28: Schweißunterbrechung beenden; Hand/Auto-Taste-K6: Hand/Auto; Start/Pause-Taste-K7: Start/Pause
SetWeldToolKeys(key)
end
LuaGc()
end
end
8.4.2.3. Vorlage für offenes Protokoll
Am Beispiel des angepassten offenen Protokolls für Jiashida:
function Getbit(X,Bit) --Extrahiert das entsprechende Bit von X
return ((X&(1<<Bit))>>Bit)
end
while(1)
do
IwdgTaskHandle()
MainLoop()
UpDownLoadHandle()
SdoRwPara()
EndErrClear()
local BFlag=LuaBreak()
if(BFlag==1)then
break
end
RxData={}
T0={0x7D,0x08,0x22,0xB3,0x01,0x00}
T1={0x7D,0x08,0x22,0xB4,0x03,0x00}
T2={0x7D,0X08,0X22,0XB5,0x1E,0x00}
DelayMs(5)
RxLen=WeldToolMasterGetCmd(RxData) --Die Funktion WeldToolMasterGetCmd() wird verwendet, um die vom Schweißgriff gesendeten Befehle abzurufen (für den Fall, dass der Schweißgriff als Master fungiert). Bei der Verwendung muss eine leere Tabelle als Parameter übergeben werden (X={}).
if (RxData[1]==0x7D)and(RxData[2]==0x08)and(RxData[3]==0x22) then
if(RxData[4] == 0xB3)then
--Am Beispiel des Funktionscodes des Jiashida-Schweißgriffs, hier 0xB3 (Schweißparameter einstellen).
local SetParams={A2=RxData[7],A1=RxData[8],A6=(ByteToDwFloat(RxData[9],RxData[10],RxData[11],RxData[12]))*1000,
A8=(ByteToDwFloat(RxData[13],RxData[14],RxData[15],RxData[16])),A7=(ByteToDwFloat(RxData[17],RxData[18],RxData[19],RxData[20])),
A4=(ByteToDwFloat(RxData[21],RxData[22],RxData[23],RxData[24]))*1000,A5=(ByteToDwFloat(RxData[25],RxData[26],RxData[27],RxData[28]))*1000}
SetWeldParams(SetParams) --Die Funktion SetWeldParams() wird verwendet, um die Schweißparameter der Steuerung einzustellen. Es muss die Tabelle der benutzerdefinierten Schweißgriffparameter konsultiert werden, um zu bestimmen, welche Schweißparameter geändert werden müssen (es gibt insgesamt 3 Bereiche A, B, C).
Dword=GetRobotState() --Die Funktion GetRobotState() wird verwendet, um den Roboterstatus abzurufen. Derzeit ist Bit0 der Aktivierungszustand des Roboters, Bit1 der Fehlerstatus, Bit2 der Bewegungsstatus, Bit3 das Signal für Lichtbogen starten/beenden. Siehe Vollständiges Flanschperipherie-Protokoll V2.7.
T0[7]=((Dword)&(1<<1))
T0[8],T0[9]=WeldToolCrcValue(T0) --WeldToolCrcValue() FAIRINO benutzerdefinierte Protokoll-CRC-Prüfung
T0[10]=0x0E
EndTxWeldData(T0) --Die Funktion EndTxWeldData() wird verwendet, um gepackte Daten zu senden (hier als Antwort auf den Befehl zur Einstellung der Schweißparameter des Schweißgriffs).
DelayMs(5)
end
if(RxData[4] == 0xB4)then --0xB4 Echtzeit-Steuerbefehl
local key={K0=Getbit(RxData[7],0),K1=Getbit(RxData[7],1),K2=Getbit(RxData[7],2),K3=Getbit(RxData[7],3),
K4=Getbit(RxData[7],4),K5=Getbit(RxData[7],5),K6=Getbit(RxData[7],6),K7=Getbit(RxData[7],7),
K8=Getbit(RxData[8],0),K9=Getbit(RxData[8],1),K10=Getbit(RxData[8],2),K11=Getbit(RxData[8],3),
K12=Getbit(RxData[8],4),K13=Getbit(RxData[8],5),K14=Getbit(RxData[8],6),K15=Getbit(RxData[9],0),
K16=Getbit(RxData[9],1),K17=Getbit(RxData[9],2),K18=Getbit(RxData[9],3),K19=Getbit(RxData[9],4),
K20=Getbit(RxData[9],5),K21=Getbit(RxData[9],6),K22=Getbit(RxData[9],7),K23=Getbit(RxData[10],0),
K24=Getbit(RxData[10],1)} --Die Tastenwerte müssen in Tabelle 26 des Vollständigen Flanschperipherie-Protokolls V2.7 nachgeschlagen werden. K0-K31 entsprechen den Bits 0-31 von DWordInput10, K32-K63 entsprechen den Bits 0-31 von DWordInput9.
SetWeldToolKeys(key) --Die Funktion SetWeldToolKeys() wird verwendet, um den Status der Schweißgrifftasten zu übergeben. Die in der Tabelle eingetragenen Tastenwerte können je nach tatsächlichem Schweißgriff angepasst werden.
Dword=GetRobotState()
T1[7]=(Dword)&(0x1)
T1[8]=(Dword>>1)&(0x1)
T1[9]=(Dword>>2)&(0x1)
T1[10],T1[11]=WeldToolCrcValue(T1)
T1[12]=0X0E
EndTxWeldData(T1)
DelayMs(5)
end
if(RxData[4] == 0xB5)then
--Schweißparameter lesen (von der Steuerung abrufen, an den Schweißgriff senden)
local wldpams={"A2","A1","A6","A8","A7","A4","A5"}
--Gemäß den tatsächlich benötigten Schweißparametern des Schweißgriffs ausfüllen. Hier benötigt Jiashida diese. Siehe Tabelle 26 des Vollständigen Flanschperipherie-Protokolls V2.7.
GetWeldParams(wldpams) --GetWeldParams() ruft die entsprechenden Schweißparameter ab und ersetzt deren Werte in der Tabelle (Angenommen A2=100, dann nach dem Aufruf der Funktion wldpams[1]=100).
T2[7]=wldpams[1]
T2[8]=wldpams[2]
wldpams[3]=wldpams[3]/1000
wldpams[6]=wldpams[6]/1000
wldpams[7]=wldpams[7]/1000
for i=0,4 do
T2[9+(i*4)+3],T2[9+(i*4)+2],T2[9+(i*4)+1],T2[9+(i*4)+0]=DwFloatToByte(wldpams[3+i])
end
for i=0,7 do
T2[29+i]=0
end
T2[37],T2[38]=WeldToolCrcValue(T2)
T2[39]=0x0E
EndTxWeldData(T2)
DelayMs(5)
end
end
LuaGc()
end
8.4.2.4. Unterstützte Befehle im offenen Protokoll
Die folgenden Befehle können im offenen Protokoll konfiguriert werden. Die Bits 39-63 sind reserviert und können später erweitert werden.
Tabelle 8.4-1 Unterstützte Befehle im offenen Protokoll
Bit |
Beschreibung |
0 |
Programm leeren |
1 |
Programm speichern |
2 |
Sicherheitspunkt generieren (LIN-Befehl) |
3 |
Linearbewegungspunkt generieren (LIN-Befehl) |
4 |
Kreisbogen-Zwischenpunkt hinzufügen |
5 |
Kreisbogen-Endpunkt hinzufügen und ARC-Befehl generieren |
6 |
Modus umschalten, standardmäßig Handmodus |
7 |
Roboter-Betriebszustand umschalten |
8 |
Roboter-Ziehemodus (Drag) umschalten |
9 |
Punktschweißen starten |
10 |
Befehl zum Starten des Pendelns hinzufügen |
11 |
Befehl zum Beenden des Pendelns hinzufügen |
12 |
X positive Richtung Tippen (Jog) |
13 |
X negative Richtung Tippen (Jog) |
14 |
Y positive Richtung Tippen (Jog) |
15 |
Y negative Richtung Tippen (Jog) |
16 |
Z positive Richtung Tippen (Jog) |
17 |
Z negative Richtung Tippen (Jog) |
18 |
RX positive Richtung Tippen (Jog) |
19 |
RX negative Richtung Tippen (Jog) |
20 |
RY positive Richtung Tippen (Jog) |
21 |
RY negative Richtung Tippen (Jog) |
22 |
RZ positive Richtung Tippen (Jog) |
23 |
RZ negative Richtung Tippen (Jog) |
24 |
Startpunkt generieren |
25 |
PTP |
26 |
Ziehen mit fester Ausrichtung (Drag) |
27 |
Schweißunterbrechung fortsetzen |
28 |
Schweißunterbrechung beenden |
29 |
SetDO |
30 |
offline |
31 |
Konfigurationsparameter aktualisieren |
32 |
Lichtbogen starten ArcStart |
33 |
Lichtbogen beenden ArcEnd |
34 |
Lin + ArcStart + weaveStart |
35 |
Lin + ArcEnd + weaveEnd |
36 |
Lin + ArcStart |
37 |
Lin + ArcEnd |
38 |
Programm widerrufen |
39 |
Reserviert |
… |
Reserviert |
63 |
Reserviert |
8.4.2.5. Konfigurierbare Parameter im offenen Protokoll
Die folgenden Parameter können im offenen Protokoll konfiguriert werden.
Tabelle 8.4-2 Konfigurierbare Parameter im offenen Protokoll
Index |
Dateninhalt |
Datentyp |
Bereich |
0 |
Schweißgeschwindigkeit |
float |
0-100% |
1 |
Leerfahrtgeschwindigkeit |
float |
0-100% |
2 |
Timeout Lichtbogen starten/beenden |
float |
0-65535 (ms) |
3 |
Pendel-Verweilzeit links |
float |
0-99999 (ms) |
4 |
Pendel-Verweilzeit rechts |
float |
0-99999 (ms) |
5 |
Punktschweißzeit |
float |
0-99999 (ms) |
6 |
Pendelbreite |
float |
0-1000 (0,1 mm) |
7 |
Pendelfrequenz |
float |
0-100 (0,1 Hz) |
8 |
Steuerungstyp Schweißgerät; 0-Steuerschrank IO; 1-Digitales Kommunikationsprotokoll (UDP) |
float |
0-255 |
9 |
Schweißprozessnummer (0-99) |
float |
0-99 |
10 |
Pendeltyp |
float |
0-255 |
11 |
Analogausgangsport für Stromsteuerung |
float |
0-1 |
12 |
Analogausgangsport für Spannungssteuerung |
float |
0-1 |
13 |
Operations-DO-Portnummer |
float |
0-15 |
14 |
Pendelparameternummer |
float |
0-255 |
15 |
Globale Geschwindigkeit Handmodus |
float |
0-100% |
16 |
Globale Geschwindigkeit Automatikmodus |
float |
0-100% |
17 |
Schweißstrom |
float |
0-999990 (0,1 A) |
18 |
Schweißspannung |
float |
0-999990 (0,1 V) |
19 |
Maximale Distanz pro Tippbewegung (Jog) |
float |
0-1000 (0,1 mm) |
20 |
Erweiterungs-DI-Port für Schweißgerät bereit |
float |
0-127 |
21 |
Erweiterungs-DI-Port für erfolgreiche Lichtbogenzündung |
float |
0-127 |
22 |
Erweiterungs-DI-Port für Wiederaufnahme nach Schweißunterbrechung |
float |
0-127 |
23 |
Erweiterungs-DI-Port für Beenden nach Schweißunterbrechung |
float |
0-127 |
24 |
Erweiterungs-DO-Port für Schweißgerät Lichtbogenzündung |
float |
0-127 |
25 |
Erweiterungs-DO-Port für Gasprüfung |
float |
0-127 |
26 |
Erweiterungs-DO-Port für Vorwärtsdrahtvorschub |
float |
0-127 |
27 |
Erweiterungs-DO-Port für Rückwärtsdrahtvorschub |
float |
0-127 |
28 |
Aktivierung Wiederaufnahme nach Schweißunterbrechung |
float |
0-1 |
29 |
Punktgeschwindigkeit für Rückkehr und Wiederaufnahme |
float |
0-100% |
30 |
Bewegungsart |
float |
0-1 |
31 |
Aktivierung Erkennung Lichtbogenunterbrechung |
float |
0-1 |
32 |
Wartezeit inkludieren (ms) |
float |
0-1 |
33 |
Pendelrückrufverhältnis |
float |
0-100% |
34 |
Warteart an Pendelposition |
float |
0-255 |
35 |
Lichtbogenzündzeit |
float |
0-65535 (ms) |
36 |
Lichtbogenbeendzeit |
float |
0-65535 (ms) |
37 |
Bestätigungsdauer Lichtbogenunterbrechung |
float |
0-65535 (ms) |
38 |
Überlappungsabstand |
float |
0-1000 (0,1 mm) |
39 |
Lichtbogenzündstrom |
float |
0-999990 (0,1 A) |
40 |
Lichtbogenzündspannung |
float |
0-999990 (0,1 V) |
41 |
Lichtbogenbeendstrom |
float |
0-999990 (0,1 A) |
42 |
Lichtbogenbeendspannung |
float |
0-999990 (0,1 V) |
43 |
Minimaler Schweißstrom |
float |
0-999990 (0,1 A) |
44 |
Maximaler Schweißstrom |
float |
0-999990 (0,1 A) |
45 |
Ausgangsspannung für minimalen Schweißstrom |
float |
0-100 (0,1 A) |
46 |
Ausgangsspannung für maximalen Schweißstrom |
float |
0-100 (0,1 A) |
47 |
Minimale Schweißspannung |
float |
0-2000 (0,1 V) |
48 |
Maximale Schweißspannung |
float |
0-2000 (0,1 V) |
49 |
Ausgangsspannung für minimale Schweißspannung |
float |
0-100 (0,1 V) |
50 |
Ausgangsspannung für maximale Schweißspannung |
float |
0-100 (0,1 V) |
51 |
Länge der linken Sehne beim aufrechten Dreieckspendeln |
float |
0-1000 (0,1 mm) |
52 |
Länge der rechten Sehne beim aufrechten Dreieckspendeln |
float |
0-1000 (0,1 mm) |
53 |
Azimutwinkel der Pendelrichtung |
float |
-1800-1800 (0,1°) |
54 |
Rollwinkel der Pendelrichtung |
float |
-1800-1800 (0,1°) |
55 |
Wartezeit am Dreieckspunkt beim aufrechten Dreieckspendeln |
float |
0-99999 (ms) |
8.5. Spritzpistole
8.5.1. Konfigurationsschritte für Spritzpistolen-Peripherie
Schritt 1: Klicken Sie im Menü „Initiale Einstellungen“ -> „Peripherie“ auf „Spritzpistole“, um zur Konfigurationsoberfläche für die Spritzpistole zu gelangen.
Der Benutzer kann die Tasten über die Spritzfunktion mit einem Klick konfigurieren, um die für das Spritzen benötigten DOs schnell zu konfigurieren (Standardkonfiguration: DO10 für Spritzen Start/Stopp, DO11 für Spritzpistolenreinigung).
Der Benutzer kann die DOs auch nach seinen eigenen Bedürfnissen in „Initiale Einstellungen“ -> „Basis“ -> „I/O-Einstellungen“ individuell konfigurieren.
Wichtig
Vor der Verwendung der Spritzfunktion muss ein entsprechendes Werkzeugkoordinatensystem erstellt und bei der Programmerstellung (Teach) angewendet werden.
Schritt 2: Nach Abschluss der Konfiguration klicken Sie auf die vier Schaltflächen „Spritzen starten“, „Spritzen stoppen“, „Reinigung starten“ und „Reinigung stoppen“, um die Spritzpistole zu testen.
Abbildung 8.5‑1 Spritzpistolenkonfiguration
Schritt 3: Wählen Sie in der Programmierbefehlsoberfläche den Befehl „Spritzpistole“. Fügen Sie je nach spezifischem Programmierbedarf (Teach) die vier Befehle „Spritzen starten“, „Spritzen stoppen“, „Reinigung starten“ und „Reinigung stoppen“ an den entsprechenden Stellen ein und wenden Sie sie an.
Abbildung 8.5‑2 Spritzpistolenbefehle
8.5.2. Programmierung (Teach) für Spritzanwendungen
Nr. |
Befehlsformat |
Kommentar |
|---|---|---|
1 |
Lin(template1,100,-1,0,0) |
#Spritzbeginnpunkt |
2 |
SprayStart() |
#Spritzen starten |
3 |
Lin(template2,100,-1,0,0) |
#Spritzbahn |
4 |
Lin(template3,100,-1,0,0) |
#Spritzendpunkt |
5 |
SprayStop() |
#Spritzen stoppen |
6 |
Lin(template4,100,-1,0,0) |
#Reinigungspunkt |
7 |
PowerCleanStart() |
#Reinigung starten |
8 |
WaitTime(5000) |
#Reinigungszeit ms |
9 |
PowerCleanStop() |
#Reinigung stoppen |
8.6. Schweißgerät
Der Einsatz eines kollaborativen Roboters mit einem Schweißbrenner für Schweißarbeiten kann die Schweißeffizienz und -qualität erheblich verbessern. FAIRINO-kollaborative Roboter können die Schweißsteuerung über drei Methoden realisieren: „Steuerungs-IO“, „Digitales Kommunikationsprotokoll (UDP)“ oder „Digitales Kommunikationsprotokoll (Modbus TCP)“:
Steuerungs-IO: Der Roboter steuert die Schweißstrom- und Schweißspannungshöhe über die analogen Ausgänge (0-10 V) des Steuerschranks, steuert die Lichtbogenzündung, den Drahtvorschub und die Gaszufuhr über die digitalen Ausgänge des Steuerschranks und erfasst Signale wie Schweißgerät bereit und Lichtbogenzündung erfolgreich über die digitalen Eingänge des Steuerschranks.
Digitales Kommunikationsprotokoll (UDP): Der Roboter kommuniziert über UDP mit einer SPS, die dann über den CANOpen-Bus oder ein anderes Protokoll mit dem Schweißgerät kommuniziert, um so Schweißspannung, -strom, Lichtbogenzündung, Drahtvorschub, Gaszufuhr usw. zu steuern (Der Inhalt des UDP-Kommunikationsprotokolls des Roboters siehe Anhang 1).
Digitales Kommunikationsprotokoll (Modbus TCP): Dies ist das offene Peripherieprotokoll der Steuerung. Es handelt sich in der Regel um ein ausführbares LUA-Programm. Das Programm enthält Befehle zum Erstellen einer Kommunikation, zum zyklischen Schreiben von Steuerdaten an das Slave-Gerät und zum Lesen von Echtzeit-Statusdaten. Bei der Ausführung dieses LUA-Programms baut der Roboter eine Kommunikation mit dem Gerät auf und tauscht Daten aus. Im offenen Peripherieprotokoll (LUA-Programm) der Steuerung können Kommunikationsparameter wie IP-Adresse, Portnummer und Zykluszeit benutzerdefiniert eingestellt werden. Der Benutzer muss den Inhalt dieses Protokolls je nach tatsächlichem Gerät anpassen. Zu den Geräten, die das offene Peripherieprotokoll der Steuerung unterstützen, gehören Schleifköpfe, Lasersensoren, CNCs, Schweißgeräte usw. Der Dateiname für das offene Peripherieprotokoll der Steuerung muss mit CtrlDev_ beginnen, z. B. „CtrlDev_Welding.lua“. Es können maximal 4 offene Protokolle gleichzeitig ausgeführt werden.
Abbildung 8.6‑1 Schweißgerät
Die Schweißsteuerung über „Steuerungs-IO“ oder „Digitales Kommunikationsprotokoll (UDP)“ umfasst hauptsächlich die folgenden Schritte: ① Montage des Schweißbrenners und Signalverdrahtung; ② Konfiguration der Schweißgeräteparameter; ③ Erstellung des Schweißsteuerungsprogramms.
8.6.1. Montage des Schweißbrenners
Der Schweißbrenner wird über eine Adapterplatte am Roboterflansch montiert. Das Kabel des Schweißbrenners muss am Roboterarm befestigt werden.
Abbildung 8.6‑2 Schweißbrenner am Roboterflansch montiert
Nach der festen Montage des Schweißbrenners wird das Werkzeugkoordinatensystem des Schweißbrenners mit der Sechs-Punkt-Methode kalibriert und als aktuelles Werkzeugkoordinatensystem angewendet. Die Kalibriergenauigkeit des Schweißbrenner-Werkzeugkoordinatensystems beeinflusst die tatsächliche Schweißgenauigkeit.
Abbildung 8.6-3 Kalibrierung und Anwendung des Roboter-Werkzeugkoordinatensystems
8.6.2. Konfiguration der Schweißgeräteparameter
Der kollaborative Roboter kann den Schweißprozess über „Steuerungs-IO“-Signale oder ein „Digitales Kommunikationsprotokoll“ steuern. Die Konfigurationsschritte für die beiden Methoden unterscheiden sich hauptsächlich in zwei Punkten:
① Bei Verwendung von „Steuerungs-IO“ muss die Entsprechung zwischen dem tatsächlichen Schweißstrom/Schweißspannung und dem Ausgangswert des analogen Ausgangs des Steuerschranks eingestellt werden.
② Bei Verwendung eines „Digitalen Kommunikationsprotokolls“ müssen die Kommunikationsparameter konfiguriert werden.
8.6.2.1. Konfiguration der Schweißsteuerung über „Steuerungs-IO“
Klicken Sie im Menü „Initiale Einstellungen“ -> „Peripherie“ -> „Schweißgerät“ auf die Karte „Steuerungs-I/O“, um zur Oberfläche zu gelangen.
Abbildung 8.6-4 Steuerungs-I/O
8.6.2.1.1. Konfiguration der Schweiß-IO-Signale
Wie in der Abbildung gezeigt, wählen Sie die DI-Eingangsports für die Schweißgerätestatussignale und die DO-Ausgangsports für die Schweißgerätesteuerungssignale aus. Klicken Sie auf die Schaltfläche „Konfigurieren“. Die Bedeutung der einzelnen Signale ist wie folgt:
Abbildung 8.6-5 Einstellen der Schweißgeräte-Signalports
Schweißgerät bereit: Wenn das Schweißgerät für den Schweißbetrieb bereit ist, sendet es dieses Signal an den Roboter.
Wenn das Schweißgerät aufgrund einer Störung oder aus anderen Gründen nicht bereit ist, wird dieses Signal nicht an den Roboter gesendet. Daraufhin erscheint oben rechts in der WebApp die Meldung „Schweißgerät nicht bereit“. Wenn Ihr Schweißgerät kein „Bereit“-Signal hat, können Sie diesen Port auf „Kein“ setzen.
Abbildung 8.6-6 Fehler: Schweißgerät nicht bereit
Abbildung 8.6-7 Schweißgerät bereit auf „Kein“ gesetzt
Lichtbogenzündung erfolgreich: Die Lichtbogenzündung war erfolgreich. Nachdem der Roboter das Lichtbogenzünde-Signal an das Schweißgerät gesendet hat, wartet er auf das Rückmeldesignal „Lichtbogenzündung erfolgreich“. Wenn der Roboter dieses Signal innerhalb der eingestellten Zeitüberschreitung nicht empfängt, meldet er den Fehler „Lichtbogenzündung Zeitüberschreitung“.
Wenn Sie die Schweißfunktion des Roboters verwenden, können Sie auch ohne Konfiguration des „Lichtbogenzündung erfolgreich“-Signals schweißen, aber der Roboter gibt eine Warnung aus: „DI für Lichtbogenzündung erfolgreich nicht konfiguriert“. Wenn Ihr Schweißgerät ein „Lichtbogenzündung erfolgreich“-Signal ausgibt, empfehlen wir, dieses Signal für sichereres Schweißen zu konfigurieren.
Abbildung 8.6-8 Fehler: Lichtbogenzündung Zeitüberschreitung
Abbildung 8.6-9 Warnung: DI für Lichtbogenzündung erfolgreich nicht konfiguriert
Wiederaufnahme nach Schweißunterbrechung: Eine Schweißunterbrechung kann während des Schweißprozesses durch unbeabsichtigtes Erlöschen des Lichtbogens oder durch aktives Pausieren durch den Bediener ausgelöst werden. Wenn nach einer Unterbrechung dieses externe Signal an den Roboter von inaktiv auf aktiv wechselt, setzt der Roboter automatisch das Schweißen an der ursprünglichen Unterbrechungsstelle fort.
Beenden nach Schweißunterbrechung: Eine Schweißunterbrechung kann während des Schweißprozesses durch unbeabsichtigtes Erlöschen des Lichtbogens oder durch aktives Pausieren durch den Bediener ausgelöst werden. Wenn nach einer Unterbrechung dieses externe Signal an den Roboter von inaktiv auf aktiv wechselt, beendet der Roboter das Schweißen. Nach dem Beenden kann das Schweißen nicht wieder aufgenommen werden.
Schweißgerät Lichtbogenzündung: DO-Ausgangsport des Roboters zur Steuerung der Lichtbogenzündung des Schweißgeräts. Wenn das Roboterprogramm den Lichtbogenzünde-Befehl ausführt, wird der diesem Befehl entsprechende DO-Ausgangsport automatisch aktiv.
Gasprüfung: DO-Ausgangsport des Roboters zur Steuerung der Gaszufuhr des Schweißgeräts. Wenn das Roboterprogramm den Gaszufuhr-Befehl ausführt, wird der diesem Befehl entsprechende DO-Ausgangsport automatisch aktiv.
Vorwärtsdrahtvorschub: DO-Ausgangsport des Roboters zur Steuerung des Vorwärtsdrahtvorschubs des Schweißgeräts. Wenn das Roboterprogramm den Vorwärtsdrahtvorschub-Befehl ausführt, wird der diesem Befehl entsprechende DO-Ausgangsport automatisch aktiv.
Rückwärtsdrahtvorschub: DO-Ausgangsport des Roboters zur Steuerung des Rückwärtsdrahtvorschubs des Schweißgeräts. Wenn das Roboterprogramm den Rückwärtsdrahtvorschub-Befehl ausführt, wird der diesem Befehl entsprechende DO-Ausgangsport automatisch aktiv.
8.6.2.1.2. Konfiguration der Schweißprozessparameter
Wie in der Abbildung gezeigt, suchen Sie im Schweißkonfigurationsbereich den Abschnitt „Schweißprozessparameter“. Der kollaborative Roboter bietet insgesamt 100 Gruppen von Schweißprozessparametern (0 bis 99). Die Prozessnummer 0 bedeutet, dass keine Schweißprozesskurve verwendet wird. Die Prozessnummern 1-99 verwenden eine Schweißprozesskurve.
Abbildung 8.6-10 Konfiguration der Schweißprozessparameter
Bei Verwendung einer Schweißprozesskurve (z. B. Auswahl der Prozessnummer 1) geben Sie nacheinander die Parameter von „Lichtbogenzündstrom“ bis „Lichtbogenbeendzeit“ wie in Abbildung 8 ein und klicken auf „Konfigurieren“. Der tatsächliche Schweißprozess, der durch diese Prozessparameter dargestellt wird, ist wie folgt:
① Einstellen des Schweißstroms auf 200 A, der Schweißspannung auf 23 V.
② Lichtbogen zünden, auf Erfolgsmeldung warten.
③ Nach erfolgreicher Zündung brennt der Lichtbogen für 500 ms (Lichtbogenzündzeit, Roboter bewegt sich nicht).
④ Einstellen des Schweißstroms auf 150 A, der Schweißspannung auf 21 V. Dann beginnt der Roboter sich zu bewegen und zu schweißen.
⑤ Nach dem Schweißen bis zum Endpunkt wird der Schweißstrom auf 100 A, die Schweißspannung auf 19 V eingestellt (Lichtbogenbeendstrom, Lichtbogenbeendspannung).
⑥ Nach dem Einstellen von Strom und Spannung für die Lichtbogenbeendung brennt der Lichtbogen für 500 ms weiter (Roboter bewegt sich nicht). Schließlich erlischt der Lichtbogen.
Wenn keine Schweißprozesskurve verwendet wird (Auswahl der Prozessnummer 0), ist der Schweißprozess wie folgt:
① Einstellen des Schweißstroms und der Schweißspannung.
② Der Roboter steuert die Lichtbogenzündung des Schweißgeräts und wartet auf die Erfolgsmeldung.
③ Nach erfolgreicher Zündung beginnt der Roboter sich zu bewegen und zu schweißen.
④ Nach dem Schweißen bis zum Endpunkt erlischt der Lichtbogen sofort.
Abbildung 8.6-11 Keine Verwendung einer Schweißprozesskurve
8.6.2.1.3. Einstellung des Verhältnisses zwischen Schweißstrom/Spannung und Analogausgang
Wenn der Steuerungstyp für die Schweißsteuerung auf „Steuerungs-IO“ gesetzt ist, werden die Schweißstrom- und Schweißspannungswerte über die analogen Ausgänge des Steuerschranks gesteuert (Der analoge Ausgangsspannungsbereich des Steuerschranks beträgt 0 ~ 10 V). In diesem Fall muss die lineare Entsprechung zwischen dem Analogausgangswert des Steuerschranks und den tatsächlichen Schweißstrom-/Spannungswerten konfiguriert werden.
Wie in Abbildung 12 gezeigt, suchen Sie im Schweißkonfigurationsbereich das „Diagramm des Verhältnisses zwischen analogem Strom/Spannung“. „A-V“ steht für die Entsprechung zwischen Schweißstrom und der vom Steuerschrank ausgegebenen analogen Spannung. „V-V“ steht für die Entsprechung zwischen Schweißspannung und der vom Steuerschrank ausgegebenen analogen Spannung.
Wählen Sie „A-V“, geben Sie den Schweißstrombereich 0-1000 A, die analoge Ausgangsspannung 0-10 V und den Ausgangs-AO als „Ctrl-AO0“ (Analogausgangsport für Schweißstromsteuerung ist AO0) ein. Klicken Sie auf die Schaltfläche „Konfigurieren“. Mit diesen Parametern entspricht eine analoge Ausgangsspannung des Steuerschranks von 1,5 V einem Schweißstrom von 150 A.
Abbildung 8.6-12 Konfiguration der Entsprechung zwischen Schweißstrom und Analogausgang
Wie in Abbildung 13 gezeigt, klicken Sie auf „V-V“, um die Entsprechung zwischen Schweißspannung und der analogen Ausgangsspannung des Steuerschranks einzustellen. Geben Sie den Schweißspannungsbereich 0-60 V, die analoge Ausgangsspannung 0-10 V und den Ausgangs-AO als „Ctrl-AO1“ (Analogausgangsport für Schweißstromsteuerung ist AO1) ein. Klicken Sie auf „Konfigurieren“. Wenn der analoge Ausgang AO1 des Steuerschranks 3,5 V ausgibt, beträgt die tatsächlich gesteuerte Schweißspannung 21 V.
Abbildung 8.6-13 Konfiguration der Entsprechung zwischen Schweißspannung und Analogausgang
8.6.2.1.4. Schweißgerätetest (Debugging)
Suchen Sie im Schweißkonfigurationsbereich den Punkt „Schweißgerätetest“. Wählen Sie die Prozessnummer 1, geben Sie eine Zeitüberschreitung von 1000 ms ein und klicken Sie auf „Gas zu“. Der Roboter steuert dann das Schweißgerät an, um Schutzgas zuzuführen. Klicken Sie auf die Schaltfläche „Gas aus“, um die Schutzgaszufuhr zu stoppen. Die anderen Schaltflächen „Lichtbogen zünden“, „Vorwärtsdrahtvorschub“, „Rückwärtsdrahtvorschub“ usw. werden auf die gleiche Weise bedient und werden hier nicht wiederholt.
Abbildung 8.6-14 Schweißgerätetest
8.6.2.2. Konfiguration der Schweißsteuerung über „Digitales Kommunikationsprotokoll (UDP)“
Wenn der Roboter die Schweißsteuerung über ein „Digitales Kommunikationsprotokoll“ durchführt, kommuniziert er im Wesentlichen über UDP mit einer SPS. Der Roboter sendet Steuerdaten für Lichtbogenzündung, Drahtvorschub, Gaszufuhr, Strom, Spannung usw. per UDP an die SPS. Die SPS wiederum steuert das Schweißgerät über den CANOpen-Bus (oder auf andere Weise) und erfasst gleichzeitig die tatsächlichen Schweißstrom-/Spannungswerte sowie das „Lichtbogenzündung erfolgreich“-Signal und sendet sie zurück an den Roboter (Der Inhalt des UDP-Kommunikationsprotokolls des Roboters siehe Anhang 1).
Klicken Sie im Menü „Initiale Einstellungen“ -> „Peripherie“ auf „Schweißgerät“, um zur Schweißgerätekonfigurationsoberfläche zu gelangen. Wie unten gezeigt:
Abbildung 8.6-15 Digitales Kommunikationsprotokoll (UDP)
Da der Roboter über UDP mit der SPS kommuniziert, müssen die UDP-Kommunikationsparameter konfiguriert werden. Die Bedeutung der einzelnen Parameter ist wie folgt:
IP-Adresse: IP-Adresse der SPS für die UDP-Kommunikation.
Portnummer: UDP-Kommunikationsportnummer der SPS.
Kommunikationszyklus: Zykluszeit der UDP-Kommunikation zwischen Roboter und SPS, Standard 2 ms.
Paketverlust-Erkennungszyklus, Anzahl der Paketverluste: Wenn die Anzahl der Paketverluste innerhalb des Paketverlust-Erkennungszyklus einen eingestellten Wert überschreitet, meldet der Roboter den Fehler „Anormale UDP-Paketverluste“ und die Kommunikation wird automatisch getrennt.
Bestätigungsdauer Kommunikationsunterbrechung: Wenn der Roboter innerhalb dieser Zeit kein vollständiges Datenpaket von der SPS empfängt, meldet er den Alarm „UDP-Kommunikationsunterbrechung“ und trennt die UDP-Kommunikation.
Automatische Wiederverbindung nach Neustart (Strom aus/ein): Legt fest, ob der Roboter nach einem Neustart automatisch versuchen soll, die Verbindung wiederherzustellen.
Automatische Wiederverbindung bei Kommunikationsunterbrechung: Legt fest, ob der Roboter bei einer Unterbrechung der UDP-Kommunikation automatisch versuchen soll, die Verbindung wiederherzustellen.
Wiederverbindungszyklus, Anzahl der Wiederverbindungsversuche: Wenn die automatische Wiederverbindung bei Kommunikationsunterbrechung aktiviert ist und eine Unterbrechung erkannt wird, versucht der Roboter im eingestellten Zyklus, die Verbindung wiederherzustellen. Wenn die maximale Anzahl der Wiederverbindungsversuche erreicht ist und keine Verbindung hergestellt werden konnte, meldet der Roboter den Fehler „UDP-Kommunikationsunterbrechung“ und trennt die UDP-Kommunikation.
Nachdem die oben genannten Parameter konfiguriert wurden, klicken Sie auf die Schaltfläche „Konfigurieren“. Klicken Sie nach erfolgreicher Konfiguration auf die Schaltfläche „Laden“.
Abbildung 8.6-16 UDP-Kommunikationskonfiguration
Bemerkung
Bezeichnung: Schaltfläche „Bearbeiten“
Funktion: Öffnet/schließt die Konfiguration der UDP-Kommunikationsparameter.
8.6.2.2.1. Konfiguration der Schweiß-IO-Signale
Wählen Sie die DI-Eingangsports für die Schweißgerätestatussignale und die DO-Ausgangsports für die Schweißgerätesteuerungssignale aus. Klicken Sie auf die Schaltfläche „Konfigurieren“. Die Bedeutung der einzelnen Signale ist wie folgt:
Abbildung 8.6-17 Einstellen der Schweißgeräte-Signalports
Schweißgerät bereit: Wenn das Schweißgerät für den Schweißbetrieb bereit ist, sendet es dieses Signal an den Roboter.
Wenn das Schweißgerät aufgrund einer Störung oder aus anderen Gründen nicht bereit ist, wird dieses Signal nicht an den Roboter gesendet. Daraufhin erscheint oben rechts in der WebApp die Meldung „Schweißgerät nicht bereit“. Wenn Ihr Schweißgerät kein „Bereit“-Signal hat, können Sie diesen Port auf „-1“ setzen.
Abbildung 8.6-18 Fehler: Schweißgerät nicht bereit
Abbildung 8.6-19 Schweißgerät bereit auf „-1“ gesetzt
Lichtbogenzündung erfolgreich: Die Lichtbogenzündung war erfolgreich. Nachdem der Roboter das Lichtbogenzünde-Signal an das Schweißgerät gesendet hat, wartet er auf das Rückmeldesignal „Lichtbogenzündung erfolgreich“. Wenn der Roboter dieses Signal innerhalb der eingestellten Zeitüberschreitung nicht empfängt, meldet er den Fehler „Lichtbogenzündung Zeitüberschreitung“.
Wenn Sie die Schweißfunktion des Roboters verwenden, können Sie auch ohne Konfiguration des „Lichtbogenzündung erfolgreich“-Signals schweißen, aber der Roboter gibt eine Warnung aus: „DI für Lichtbogenzündung erfolgreich nicht konfiguriert“. Wenn Ihr Schweißgerät ein „Lichtbogenzündung erfolgreich“-Signal ausgibt, empfehlen wir, dieses Signal für sichereres Schweißen zu konfigurieren.
Abbildung 8.6-20 Fehler: Lichtbogenzündung Zeitüberschreitung
Abbildung 8.6-21 Fehler: DI für Lichtbogenzündung erfolgreich nicht konfiguriert
Wiederaufnahme nach Schweißunterbrechung: Eine Schweißunterbrechung kann während des Schweißprozesses durch unbeabsichtigtes Erlöschen des Lichtbogens oder durch aktives Pausieren durch den Bediener ausgelöst werden. Wenn nach einer Unterbrechung dieses externe Signal an den Roboter von inaktiv auf aktiv wechselt, setzt der Roboter automatisch das Schweißen an der ursprünglichen Unterbrechungsstelle fort.
Beenden nach Schweißunterbrechung: Eine Schweißunterbrechung kann während des Schweißprozesses durch unbeabsichtigtes Erlöschen des Lichtbogens oder durch aktives Pausieren durch den Bediener ausgelöst werden. Wenn nach einer Unterbrechung dieses externe Signal an den Roboter von inaktiv auf aktiv wechselt, beendet der Roboter das Schweißen. Nach dem Beenden kann das Schweißen nicht wieder aufgenommen werden.
Schweißgerät Lichtbogenzündung: DO-Ausgangsport des Roboters zur Steuerung der Lichtbogenzündung des Schweißgeräts. Wenn das Roboterprogramm den Lichtbogenzünde-Befehl ausführt, wird der diesem Befehl entsprechende DO-Ausgangsport automatisch aktiv.
Gasprüfung: DO-Ausgangsport des Roboters zur Steuerung der Gaszufuhr des Schweißgeräts. Wenn das Roboterprogramm den Gaszufuhr-Befehl ausführt, wird der diesem Befehl entsprechende DO-Ausgangsport automatisch aktiv.
Vorwärtsdrahtvorschub: DO-Ausgangsport des Roboters zur Steuerung des Vorwärtsdrahtvorschubs des Schweißgeräts. Wenn das Roboterprogramm den Vorwärtsdrahtvorschub-Befehl ausführt, wird der diesem Befehl entsprechende DO-Ausgangsport automatisch aktiv.
Rückwärtsdrahtvorschub: DO-Ausgangsport des Roboters zur Steuerung des Rückwärtsdrahtvorschubs des Schweißgeräts. Wenn das Roboterprogramm den Rückwärtsdrahtvorschub-Befehl ausführt, wird der diesem Befehl entsprechende DO-Ausgangsport automatisch aktiv.
8.6.2.2.2. Konfiguration der Schweißprozessparameter
Suchen Sie im Schweißkonfigurationsbereich den Abschnitt „Schweißprozessparameter“, wie in Abbildung 22 gezeigt. Der kollaborative Roboter bietet insgesamt 100 Gruppen von Schweißprozessparametern (0 bis 99). Die Prozessnummer 0 bedeutet, dass keine Schweißprozesskurve verwendet wird. Die Prozessnummern 1-99 verwenden eine Schweißprozesskurve.
Abbildung 8.6-22 Konfiguration der Schweißprozessparameter
Bei Verwendung einer Schweißprozesskurve (z. B. Auswahl der Prozessnummer 1) geben Sie nacheinander die Parameter von „Lichtbogenzündstrom“ bis „Lichtbogenbeendzeit“ wie in Abbildung 8 ein und klicken auf „Konfigurieren“. Der tatsächliche Schweißprozess, der durch diese Prozessparameter dargestellt wird, ist wie folgt:
① Einstellen des Schweißstroms auf 200 A, der Schweißspannung auf 23 V.
② Lichtbogen zünden, auf Erfolgsmeldung warten.
③ Nach erfolgreicher Zündung brennt der Lichtbogen für 500 ms (Lichtbogenzündzeit, Roboter bewegt sich nicht).
④ Einstellen des Schweißstroms auf 150 A, der Schweißspannung auf 21 V. Dann beginnt der Roboter sich zu bewegen und zu schweißen.
⑤ Nach dem Schweißen bis zum Endpunkt wird der Schweißstrom auf 100 A, die Schweißspannung auf 19 V eingestellt (Lichtbogenbeendstrom, Lichtbogenbeendspannung).
⑥ Nach dem Einstellen von Strom und Spannung für die Lichtbogenbeendung brennt der Lichtbogen für 500 ms weiter (Roboter bewegt sich nicht). Schließlich erlischt der Lichtbogen.
Wenn keine Schweißprozessparameter verwendet werden (Auswahl der Prozessnummer 0), ist der Schweißprozess wie folgt:
① Einstellen des Schweißstroms und der Schweißspannung über die entsprechenden Schnittstellen.
② Der Roboter steuert die Lichtbogenzündung des Schweißgeräts und wartet auf die Erfolgsmeldung.
③ Nach erfolgreicher Zündung beginnt der Roboter sich zu bewegen und zu schweißen.
④ Nach dem Schweißen bis zum Endpunkt erlischt der Lichtbogen sofort.
Abbildung 8.6-23 Keine Verwendung einer Schweißprozesskurve
8.6.2.2.3. Schweißgerätetest (Debugging)
Suchen Sie im Schweißkonfigurationsbereich den Punkt „Schweißgerätetest“. Wählen Sie die Prozessnummer 1, geben Sie eine Zeitüberschreitung von 1000 ms ein und klicken Sie auf „Gas zu“. Der Roboter steuert dann das Schweißgerät an, um Schutzgas zuzuführen. Klicken Sie auf die Schaltfläche „Gas aus“, um die Schutzgaszufuhr zu stoppen. Die anderen Schaltflächen „Lichtbogen zünden“, „Vorwärtsdrahtvorschub“, „Rückwärtsdrahtvorschub“ usw. werden auf die gleiche Weise bedient und werden hier nicht wiederholt.
Abbildung 8.5-24 Schweißgerätetest
8.6.3. Erstellung des Schweißprogramms
8.6.3.1. Programmierung mit Schweißprozesskurve
Bei Verwendung einer Schweißprozesskurve (Auswahl der Schweißprozessparameternummer 1 ~ 99) folgt die Steuerung von Spannung und Strom während des Schweißprozesses den Kurvenparametern der gewählten Prozessnummer. Es müssen keine separaten Befehle zum Einstellen von Schweißspannung und -strom hinzugefügt werden. Wie in Abbildung 25 gezeigt, klicken Sie auf „Teach-Programm“ -> „Programmierung“ und erstellen Sie ein neues Benutzerprogramm „testWeld.lua“.
Abbildung 8.6-25 Erstellen des Programms „testWeld.lua“
Wählen Sie in der geöffneten Oberfläche zum Hinzufügen von Schweißbefehlen den Steuerungstyp „Steuerungs-I/O“ (entsprechend der tatsächlich konfigurierten Schweißsteuerungsmethode). Wählen Sie die Schweißprozessnummer 1 (Nummer 0 verwendet keine Schweißprozesskurve, Nummern 1-99 verwenden eine Kurve). Geben Sie die maximale Wartezeit 10000 ms ein. Klicken Sie nacheinander auf die Schaltflächen „Lichtbogen zünden“ und „Lichtbogen beenden“. Klicken Sie abschließend auf „Anwenden“.
Abbildung 8.6-26 Schweißbefehl hinzufügen
Dem Programm „testWeld.lua“ wurden nun die Befehle zum Zünden und Beenden des Lichtbogens hinzugefügt. Da für das Zünden und Beenden die Schweißprozesskurve Nummer 1 verwendet wird, folgt die Steuerung von Spannung und Strom während des Schweißens den Kurvenparametern der Prozessnummer 1. Es müssen keine separaten Befehle zum Einstellen von Schweißspannung und -strom hinzugefügt werden.
Abbildung 8.6-27 Programm mit Lichtbogenzündung und -beendung
Fügen Sie zwei Linearbewegungsbefehle hinzu und passen Sie die Befehlsreihenfolge so an, dass der Roboter zuerst zum Punkt „P1“ fährt, den Lichtbogen zündet, dann zum Punkt „P2“ fährt und den Lichtbogen beendet. Dadurch schweißt der Roboter von Punkt „P1“ nach Punkt „P2“.
Abbildung 8.6-28 Roboter schweißt von Punkt P1 nach Punkt P2
8.6.3.2. Programmierung ohne Schweißprozesskurve
Bei Verwendung keiner Schweißprozesskurve (Auswahl der Schweißprozessparameternummer 0) müssen im Schweißprogramm Befehle zum Einstellen der Schweißspannung und des Schweißstroms hinzugefügt werden, um die tatsächlichen Schweißparameter zu steuern. Klicken Sie auf „Teach-Simulation“, „Programmierung (Teach)“ und erstellen Sie ein neues Benutzerprogramm „testWeld.lua“.
Abbildung 8.6-29 Erstellen des Programms „testWeld.lua“
Wählen Sie in der geöffneten Oberfläche zum Hinzufügen von Schweißbefehlen den Steuerungstyp „Steuerungs-I/O“ (entsprechend der tatsächlich konfigurierten Schweißsteuerungsmethode). Wählen Sie die Schweißprozessnummer 0 (Nummer 0 verwendet keine Schweißprozesskurve, Nummern 1-99 verwenden eine Kurve). Wählen Sie für die Schweißstromsteuerung den AO „Ctrl-AO0“, stellen Sie den Schweißstrom auf 150 A ein und klicken Sie auf „Hinzufügen“. Wählen Sie für die Schweißspannungssteuerung den AO „Ctrl-AO1“, stellen Sie die Schweißspannung auf 21 V ein und klicken Sie auf „Hinzufügen“. Geben Sie die maximale Wartezeit 10000 ms ein. Klicken Sie nacheinander auf die Schaltflächen „Lichtbogen zünden“ und „Lichtbogen beenden“. Klicken Sie abschließend auf „Anwenden“.
Abbildung 8.6-30 Schweißbefehl hinzufügen
Dem Programm „testWeld.lua“ wurden nun die Befehle zum Einstellen von Spannung/Strom sowie zum Zünden und Beenden des Lichtbogens hinzugefügt. Da für das Zünden und Beenden die Schweißprozessnummer 0 gewählt wurde, wird bei der Ausführung der Befehle zum Einstellen von Spannung/Strom der entsprechende Analogausgang des Steuerschranks automatisch entsprechend den eingestellten Spannungs-/Stromwerten und der auf der Schweißgeräte-Konfigurationsseite eingestellten „Entsprechung zwischen Schweißspannung/-strom und Analogausgang“ ausgegeben.
Abbildung 8.6-31 Programm zum Einstellen von Schweißspannung, -strom, Lichtbogenzündung und -beendung
Fügen Sie zwei Linearbewegungsbefehle hinzu und passen Sie die Befehlsreihenfolge so an, dass der Roboter zuerst zum Punkt „P1“ fährt, den Lichtbogen zündet, dann zum Punkt „P2“ fährt und den Lichtbogen beendet. Dadurch schweißt der Roboter von Punkt „P1“ nach Punkt „P2“.
Abbildung 8.6-32 Roboter schweißt von Punkt P1 nach Punkt P2
Durch Ausführen des obigen Programms wird eine gerade Schweißnaht von P1 nach P2 realisiert. Überprüfen Sie vor der Programmausführung Folgendes:
① Ist der Schweißbrenner korrekt montiert? Ist das Werkzeugkoordinatensystem des Brenners kalibriert und als aktuelles Werkzeugkoordinatensystem angewendet?
② Funktionieren die Schweißstromquelle, die Gasversorgung und der Drahtvorschub einwandfrei?
③ Sind alle Signalleitungen zwischen Roboter und Schweißgerät korrekt angeschlossen?
8.6.4. Schweißunterbrechung und Wiederaufnahme
Während des Schweißprozesses kann der Roboter in folgenden Fällen unterbrochen werden:
① Der Bediener pausiert das Schweißen aktiv, um die Schweißnaht zu überprüfen oder die Düse zu reinigen.
② Der Lichtbogen erlischt unbeabsichtigt.
③ Eine Kollision des Roboters führt zu einer Schweißunterbrechung.
Nach einer Unterbrechung während des Schweißens kann der Bediener den Roboter in den Handmodus schalten, ihn in eine sichere Position ziehen und die Ursache der Unterbrechung beheben.
Nach der Behebung des Problems kann der kollaborative Roboter automatisch von seiner aktuellen Position zur Position der Schweißunterbrechung fahren, den Lichtbogen erneut zünden und das Schweißen fortsetzen. Der genaue Ablauf ist:
① Konfiguration der Parameter für die Wiederaufnahme nach Schweißunterbrechung.
② Ausführen des Schweißprogramms und während des Schweißens pausieren, um eine Unterbrechung zu verursachen.
③ Den Roboter in den Handmodus schalten, das Problem beheben und dann wieder in den Automatikmodus schalten.
④ Auf die Schaltfläche „Schweißen fortsetzen“ klicken. Der Roboter setzt das Schweißen automatisch fort.
8.6.4.1. Konfiguration der Parameter für die Wiederaufnahme nach Schweißunterbrechung
Klicken Sie im Menü „Initiale Einstellungen“ -> „Peripherie“ auf „Schweißgerät“, um zur Schweißgerätekonfigurationsoberfläche zu gelangen. Suchen Sie den Abschnitt „Konfiguration der Parameter zur Erkennung von Lichtbogenunterbrechungen“. Aktivieren Sie „Funktion aktivieren“, geben Sie eine „Bestätigungsdauer“ von 20 ms ein und klicken Sie auf „Konfigurieren“. Dies bedeutet, dass der Roboter den Fehler „Schweißlichtbogen unterbrochen“ meldet, wenn das Signal „Lichtbogenzündung erfolgreich“ länger als 20 ms inaktiv ist.
Abbildung 8.6-33 Konfiguration der Parameter zur Erkennung von Lichtbogenunterbrechungen
Suchen Sie den Abschnitt „Konfiguration der Parameter für Wiederaufnahme nach Schweißunterbrechung“. Aktivieren Sie „Funktion aktivieren“, geben Sie einen „Überlappungsabstand“ von 5 mm, eine „Geschwindigkeit“ von 10 % und eine „Bewegungsart“ von „PTP“ ein. Klicken Sie auf „Konfigurieren“. Die Bedeutung der drei Parameter ist wie folgt:
Überlappungsabstand: Um die Kontinuität der Schweißnaht nach der Wiederaufnahme mit der Schweißnaht vor der Unterbrechung zu gewährleisten, muss der Wiederaufnahme-Lichtbogenstartpunkt einen gewissen Überlappungsabstand zur ursprünglichen Schweißnaht haben.
Geschwindigkeit: Nach einer Schweißunterbrechung muss der Roboter oft in eine sichere Position bewegt und die Schweißnaht bearbeitet werden. Wenn die Wiederaufnahme ausgeführt wird, fährt der Roboter von seiner aktuellen Position zum Wiederaufnahme-Lichtbogenstartpunkt. Diese „Geschwindigkeit“ ist die Geschwindigkeit, mit der der Roboter zum Wiederaufnahmepunkt fährt.
Bewegungsart: Nach einer Schweißunterbrechung muss der Roboter oft in eine sichere Position bewegt und die Schweißnaht bearbeitet werden. Wenn die Wiederaufnahme ausgeführt wird, fährt der Roboter von seiner aktuellen Position zum Wiederaufnahme-Lichtbogenstartpunkt. Diese „Bewegungsart“ ist die Art der Bewegung zum Wiederaufnahmepunkt, wahlweise „LIN“ oder „PTP“.
Abbildung 8.6-34 Konfiguration der Parameter für Wiederaufnahme nach Schweißunterbrechung
8.6.4.2. Anwendung der Wiederaufnahme nach Schweißunterbrechung
Am Beispiel des Programms „testWeld“. Schalten Sie den Roboter in den Automatikmodus und klicken Sie auf die Starttaste. Der Roboter beginnt mit dem Schweißen. Klicken Sie während des Schweißens auf die Pausentaste. Daraufhin wird der Schweißvorgang unterbrochen und oben rechts in der WebApp erscheint ein Hinweisfeld zur Wiederaufnahme. Klicken Sie auf die Schaltfläche „Schweißen fortsetzen“. Der Roboter fährt automatisch zum Wiederaufnahme-Lichtbogenstartpunkt und setzt den Schweißvorgang fort.
Abbildung 8.6-35 Ausführen des Schweißprogramms
Abbildung 8.6-36 Schweißen fortsetzen
Warnung
Die Funktion zur Wiederaufnahme nach Schweißunterbrechung des kollaborativen Roboters kann nur für gerade Schweißnähte oder Kreisbogenschweißnähte verwendet werden. Bei Verwendung einer while(1)-Schleife für das Schweißen werden keine verschachtelten mehrschichtigen while-Schleifen unterstützt. Sie darf keine bedingten Anweisungen mit lokalen Variablen enthalten. Bei Verwendung der Intervallschweißfunktion achten Sie darauf, die Schnittstelle zur Rückmeldung von Intervallschweißinformationen hinzuzufügen.
8.6.5. Kommunikationsanpassung für Roboter-Laserschweißgerät
8.6.5.1. Hintergrund
Dieses Benutzerhandbuch erklärt die Kommunikation am Beispiel des bereits angepassten Laserschweißgeräts REDSABERE 1500. Der Roboter steuert den Schweißprozess über das „Digitale Kommunikationsprotokoll“. Im Wesentlichen kommuniziert der Roboter über UDP mit der SPS. Der Roboter sendet Steuerungsdaten über UDP an die SPS, die dann das Laserschweißgerät weiter über Modbus RTU steuert. Gleichzeitig erfasst die SPS die tatsächlichen Laser-Schweißprozessparameter und Steuersignale und leitet sie an den Roboter zurück. Der Inhalt des UDP-Kommunikationsprotokolls des Roboters ist in Anhang I aufgeführt.
8.6.5.2. SPS-Konfiguration
Marke |
Modell |
Software |
IP-Adresse |
|---|---|---|---|
Inovance |
EASY521-0808TN |
AutoShopV4.11.0.1 |
192.168.58.88 |
Programm-Download: Öffnen Sie das Testprogramm. Die Standard-SPS-IP-Adresse ist „192.168.1.88“. Ändern Sie die SPS-IP-Adresse auf „192.168.58.88“.
Klicken Sie auf die Test-Taste, um die aktuelle SPS-Kommunikation zu verbinden, wie in der folgenden Abbildung dargestellt;
Abbildung 8.6-37 SPS-Kommunikationsverbindung
Nach erfolgreicher Verbindung mit der aktuellen SPS ändern Sie die IP-Adresse wie unten dargestellt;
Abbildung 8.6-38 SPS-IP-Adressänderung
Ändern Sie auf 192.168.58.88 und ändern Sie das Standard-Gateway auf 192.168.58.1, wie unten dargestellt;
Abbildung 8.6-39 SPS-Gateway-Adressänderung
Ändern Sie die lokale IP-Adresse des Computers auf das 58er Netzwerksegment und klicken Sie erneut auf die Test-Taste, um zu überprüfen, ob die Kommunikation erfolgreich ist, wie unten dargestellt;
Abbildung 8.6-40 SPS-Verbindungstest
Klicken Sie auf die Download-Taste, um das Programm herunterzuladen, wie unten dargestellt.
Abbildung 8.6-41 SPS-Programm-Download
8.6.5.3. Konfiguration der Laserschweißgerät-Parameter
Der kollaborative Roboter steuert den Schweißprozess über das „Digitale Kommunikationsprotokoll“. Bei Verwendung des „Digitalen Kommunikationsprotokolls“ müssen zuerst die Kommunikationsparameter konfiguriert werden.
8.6.5.3.1. „Digitales Kommunikationsprotokoll“ Konfiguration
Öffnen Sie wie in der folgenden Abbildung dargestellt die WebApp und klicken Sie nacheinander auf „Grundeinstellungen“, „Peripheriegeräte“, „Schweißgerät“, „Laserschweißen“, „Digitales Kommunikationsprotokoll (UDP)“, „UDP-Kommunikationskonfiguration“.
Abbildung 8.6-42 Kommunikationsprotokollkonfiguration
Die Bedeutung der einzelnen Parameter ist wie folgt:
IP-Adresse: IP-Adresse der SPS für die UDP-Kommunikation;
Port-Nummer: UDP-Kommunikationsportnummer der SPS;
Kommunikationszyklus: Der Zyklus der UDP-Kommunikation zwischen Roboter und SPS, Standard ist 2 ms;
Paketverlust-Erkennungszyklus, Paketverlustanzahl: Wenn die Anzahl der Paketverluste innerhalb des Paketverlust-Erkennungszyklus den eingestellten Wert überschreitet, meldet der Roboter einen „UDP-Kommunikationspaketverlust“ Fehler und unterbricht die Kommunikation automatisch;
Bestätigungsdauer für Kommunikationsunterbrechung: Wenn der Roboter innerhalb dieser Zeit kein vollständiges SPS-Rückmeldepaket erhält, meldet er einen „UDP-Kommunikationsunterbrechung“ Fehler und unterbricht die UDP-Kommunikation;
Automatische Wiederverbindung bei Kommunikationsunterbrechung: Ob der Roboter nach Erkennung einer UDP-Kommunikationsunterbrechung automatisch versucht, die Verbindung wiederherzustellen;
Wiederverbindungszyklus, Wiederverbindungsanzahl: Wenn die automatische Wiederverbindung bei Kommunikationsunterbrechung aktiviert ist und eine UDP-Kommunikationsunterbrechung erkannt wird, versucht der Roboter in den eingestellten Zyklen erneut zu verbinden. Wenn die Verbindung nach der maximal eingestellten Anzahl von Wiederverbindungsversuchen immer noch nicht erfolgreich ist, meldet der Roboter einen „UDP-Kommunikationsunterbrechung“ Fehler und unterbricht die UDP-Kommunikation.
Nach der Konfiguration der oben genannten Parameter klicken Sie nacheinander auf die Schaltflächen „Konfigurieren“ und „Laden“.
8.6.5.3.2. IO-Konfiguration der Schweißfunktion
Wählen Sie wie unten dargestellt den DI-Eingangsport für das Schweißgerät-Statussignal und den DO-Ausgangsport für das Schweißgerät-Steuersignal. Das aktuelle REDSABERE 1500 Laserschweißgerät unterstützt nur das Schweißstart (Laseremissions)-Signal; andere Signale sind noch nicht angepasst. Klicken Sie nach der Auswahl der Ports auf die Schaltfläche „Konfigurieren“.
Abbildung 8.6-43 Konfiguration der Schweißfunktion IO
Die Bedeutung der AUX-DI-Signale ist wie folgt:
Schweißgerät bereit: Wenn das Schweißgerät für Schweißarbeiten bereit ist, sendet es dieses Signal an den Roboter; wenn das Schweißgerät defekt ist oder aus anderen Gründen nicht bereit ist, wird dieses Signal nicht an den Roboter gesendet, und die obere rechte Ecke der Roboter-WebApp zeigt „Schweißgerät nicht bereit“ an. Das REDSABERE 1500 Laserschweißgerät unterstützt dieses Signal nicht und es wurde noch nicht angepasst.
Schweißgerät-Betriebszustand: Wenn das Schweißgerät in den Betriebszustand eintritt, sendet es dieses Signal an den Roboter. Das REDSABERE 1500 Laserschweißgerät unterstützt dieses Signal nicht und es wurde noch nicht angepasst.
Schweißgerät-Fehlerzustand: Wenn das Schweißgerät einen Fehler aufweist, gibt es dieses Signal an den Roboter weiter. Das REDSABERE 1500 Laserschweißgerät unterstützt dieses Signal nicht und es wurde noch nicht angepasst.
Die Bedeutung der AUX-DO-Signale ist wie folgt:
Schweißgerät-Freigabe: Der DO-Ausgangsport, über den der Roboter die Schweißgerät-Freigabe steuert. Wenn das Roboterprogramm den Schweißgerät-Freigabebefehl ausführt, wird der entsprechende DO-Ausgangsport für die Schweißgerät-Freigabe automatisch aktiv. Das REDSABERE 1500 Laserschweißgerät unterstützt dieses Signal nicht und es wurde noch nicht angepasst.
Schweißstart (Laseremission): Der DO-Ausgangsport, über den der Roboter den Schweißstart (Laseremission) steuert. Wenn das Roboterprogramm den Schweißstart (Laseremissions)-Befehl ausführt, wird der entsprechende DO-Ausgangsport für den Schweißstart (Laseremission) automatisch aktiv. Wenn der DO-Ausgangsport geändert wird, muss auch der entsprechende Steuerungsport im SPS-Programm geändert werden; die aktuelle SPS verwendet standardmäßig DO1.
Gasprüfung: Der DO-Ausgangsport, über den der Roboter die Gaszufuhr des Schweißgeräts steuert. Wenn der Roboter den Schweißgaszufuhrbefehl ausführt, wird der entsprechende DO-Ausgangsport für die Gaszufuhr automatisch aktiv. Das REDSABERE 1500 Laserschweißgerät unterstützt dieses Signal nicht und es wurde noch nicht angepasst.
Schweißgerät-Fehlerrücksetzung: Der DO-Ausgangsport, über den der Roboter die Fehlerrücksetzung des Schweißgeräts steuert. Wenn das Roboterprogramm den Schweißgerät-Fehlerrücksetzbefehl ausführt, wird der entsprechende DO-Ausgangsport für die Schweißgerät-Fehlerrücksetzung automatisch aktiv. Das REDSABERE 1500 Laserschweißgerät unterstützt dieses Signal nicht und es wurde noch nicht angepasst.
Vorwärtsdrahtvorschub: Der DO-Ausgangsport, über den der Roboter den Vorwärtsdrahtvorschub des Schweißgeräts steuert. Wenn der Roboter den Vorwärtsdrahtvorschubbefehl ausführt, wird der entsprechende DO-Ausgangsport für den Vorwärtsdrahtvorschub automatisch aktiv. Das REDSABERE 1500 Laserschweißgerät unterstützt dieses Signal nicht und es wurde noch nicht angepasst.
Rückwärtsdrahtvorschub: Der DO-Ausgangsport, über den der Roboter den Rückwärtsdrahtvorschub des Schweißgeräts steuert. Wenn der Roboter den Rückwärtsdrahtvorschubbefehl ausführt, wird der entsprechende DO-Ausgangsport für den Rückwärtsdrahtvorschub automatisch aktiv. Das REDSABERE 1500 Laserschweißgerät unterstützt dieses Signal nicht und es wurde noch nicht angepasst.
8.6.5.3.3. Konfiguration der Schweißprozessparameter
Suchen Sie wie unten dargestellt den Abschnitt „Schweißprozessparameter“ auf der Schweißkonfigurationsseite. Der kollaborative Roboter bietet 10 Gruppen von Schweißprozessparametern von 0 bis 10. Die Prozessnummer 0 bedeutet, dass keine Schweißprozesskurve verwendet wird, während die Prozessnummern 1-10 die Schweißprozesskurve verwenden.
Abbildung 8.6-44 Konfiguration der Schweißprozessparameter
Bei Verwendung der Schweißprozesskurve, nehmen Sie als Beispiel die Auswahl der Schweißprozessnummer 1. Geben Sie nacheinander „Scan-Geschwindigkeit (mm/s)“, „Scan-Breite (mm)“, „Spitzenleistung (W)“, „Tastverhältnis (%)“ und „Frequenz (Hz)“ ein.
Die Scan-Geschwindigkeit des REDSABERE 1500 Laserschweißgeräts wird durch die Scan-Breite begrenzt. Die Einschränkungsbeziehung lautet: 10 ≤ Scan-Geschwindigkeit / (Scan-Breite × 2) ≤ 500. Werte außerhalb dieses Bereichs werden automatisch auf die Grenzwerte geändert. Wenn die Scan-Breite auf 0 gesetzt wird, findet kein Scannen statt (d.h. punktförmige Lichtquelle). Andernfalls wird ein Fehler gemeldet, und die Web-Oberfläche zeigt „Schweißgerät-Kommunikationsstörung“ an. Sobald die Konfiguration korrekt ist, verschwindet der Fehler automatisch. Wie unten dargestellt.
Abbildung 8.6-45 Schweißgerät-Kommunikationsstörung
8.6.5.3.4. Schweißgerät-Debugging
Suchen Sie wie unten dargestellt den Abschnitt „Schweißgerät-Debugging“ auf der Schweißgerät-Konfigurationsseite. Das aktuelle REDSABERE 1500 Laserschweißgerät unterstützt nur das Debugging der Funktionen Laseremission stoppen und Laseremission starten. Andere Schaltflächen wie „Timeout-Zeit“ und „Freigabe“ sind noch nicht angepasst.
Abbildung 8.6-46 Schweißgerät-Debugging
8.6.5.4. Schweißprogrammierung
Die Schweißfunktionsbefehle sind im Teach-Programm integriert. Klicken Sie wie unten dargestellt auf „Teach-Programm“, „Programmierung“, um ein neues Benutzerprogramm „testWeld.lua“ zu erstellen.
Abbildung 8.6-47 Erstellen des Programms „testWeld.lua“
Wählen Sie wie unten dargestellt „Schweißbefehle“ und klicken Sie auf „Laserschweißen“.
Abbildung 8.6-48 Laserschweißbezogene Befehle
Wie unten dargestellt, ist der Standardsteuerungstyp für Laserschweißbefehle „Digitales Kommunikationsprotokoll (UDP)“. Sie können nacheinander Befehle zum Einstellen der Schweißprozessparameter (Lua-Programm), Abrufen der Schweißprozessparameter (Lua-Programm), Laseremission starten und Laseremission stoppen hinzufügen. Nach dem Hinzufügen der Lua-Befehle klicken Sie auf die Schaltfläche „Übernehmen“, um das Laserschweiß-Lua-Programm zu generieren. Klicken Sie auf die Schaltfläche „Speichern“, wechseln Sie in den Automatikmodus und führen Sie das Programm aus.
Abbildung 8.6-49 Generieren des Schweißprogramms
8.6.6. Anhang 1: UDP-Kommunikationsprotokoll des Roboters
Warnung
CRC-Prüfverfahren: Es wird die Modbus 16-Bit-Prüfung verwendet, aber nur die unteren 8 Bits werden zur Prüfung des Datenbereichs D100-D176, D200-D273 herangezogen.
Lichtbogenverfolgung: Die tatsächliche Stromrückmeldung wandelt den von der SPS erfassten tatsächlichen Schweißgerätestrom in einen Analogwert von 0-4095 um und überträgt ihn an den Analogkanal 0 des UDP-Datenprotokolls, d.h. D168.
Geschwindigkeitsumrechnungslogik:
Vom Roboter übermittelte Geschwindigkeit (in mm/s) V ÷ Spindelsteigung × 60 = V‘;
Die SPS wandelt die vom Roboter übermittelte Geschwindigkeit um: V‘ × Encoderauflösung ÷ 60 = V“ (Einheit Impulse/s).
8.6.6.1. Robotersteuerung -> SPS
Nr. |
Registeradresse |
Datentyp |
Datenwert |
Variablenname |
|---|---|---|---|---|
1 |
D199 |
INT |
0x5A5A |
Frame-Header |
2 |
D200 |
INT |
1# Motorsteuerwort |
|
3 |
D201 |
DINT |
1# Zielpositionseingabe |
|
4 |
D202 |
DINT |
1# Zielpositionseingabe |
|
5 |
D203 |
INT |
1# Referenzpunktfahrt-Steuerwort |
|
6 |
D204 |
DINT |
1# Referenzpunktfahrt hohe Geschwindigkeitseingabe |
|
7 |
D205 |
DINT |
1# Referenzpunktfahrt hohe Geschwindigkeitseingabe |
|
8 |
D206 |
DINT |
1# Referenzpunktfahrt niedrige Geschwindigkeitseingabe |
|
9 |
D207 |
DINT |
1# Referenzpunktfahrt niedrige Geschwindigkeitseingabe |
|
10 |
D208 |
DINT |
1# Positionsversatz (reserviert) |
|
11 |
D209 |
DINT |
1# Positionsversatz (reserviert) |
|
12 |
D210 |
DINT |
1# Geschwindigkeitsversatz (reserviert) |
|
13 |
D211 |
DINT |
1# Geschwindigkeitsversatz (reserviert) |
|
14 |
D212 |
DINT |
1# Drehmomentversatz (reserviert) |
|
15 |
D213 |
DINT |
1# Drehmomentversatz (reserviert) |
|
16 |
D214 |
INT |
2# Motorsteuerwort |
|
17 |
D215 |
DINT |
2# Zielpositionseingabe |
|
18 |
D216 |
DINT |
2# Zielpositionseingabe |
|
19 |
D217 |
INT |
2# Referenzpunktfahrt-Steuerwort |
|
20 |
D218 |
DINT |
2# Referenzpunktfahrt hohe Geschwindigkeitseingabe |
|
21 |
D219 |
DINT |
2# Referenzpunktfahrt hohe Geschwindigkeitseingabe |
|
22 |
D220 |
DINT |
2# Referenzpunktfahrt niedrige Geschwindigkeitseingabe |
|
23 |
D221 |
DINT |
2# Referenzpunktfahrt niedrige Geschwindigkeitseingabe |
|
24 |
D222 |
DINT |
2# Positionsversatz (reserviert) |
|
25 |
D223 |
DINT |
2# Positionsversatz (reserviert) |
|
26 |
D224 |
DINT |
2# Geschwindigkeitsversatz (reserviert) |
|
27 |
D225 |
DINT |
2# Geschwindigkeitsversatz (reserviert) |
|
28 |
D226 |
DINT |
2# Drehmomentversatz (reserviert) |
|
29 |
D227 |
DINT |
2# Drehmomentversatz (reserviert) |
|
30 |
D228 |
INT |
3# Motorsteuerwort |
|
31 |
D229 |
DINT |
3# Zielpositionseingabe |
|
32 |
D230 |
DINT |
3# Zielpositionseingabe |
|
33 |
D231 |
INT |
3# Referenzpunktfahrt-Steuerwort |
|
34 |
D232 |
DINT |
3# Referenzpunktfahrt hohe Geschwindigkeitseingabe |
|
35 |
D233 |
DINT |
3# Referenzpunktfahrt hohe Geschwindigkeitseingabe |
|
36 |
D234 |
DINT |
3# Referenzpunktfahrt niedrige Geschwindigkeitseingabe |
|
37 |
D235 |
DINT |
3# Referenzpunktfahrt niedrige Geschwindigkeitseingabe |
|
38 |
D236 |
DINT |
3# Positionsversatz (reserviert) |
|
39 |
D237 |
DINT |
3# Positionsversatz (reserviert) |
|
40 |
D238 |
DINT |
3# Geschwindigkeitsversatz (reserviert) |
|
41 |
D239 |
DINT |
3# Geschwindigkeitsversatz (reserviert) |
|
42 |
D240 |
DINT |
3# Drehmomentversatz (reserviert) |
|
43 |
D241 |
DINT |
3# Drehmomentversatz (reserviert) |
|
44 |
D242 |
INT |
Scangeschwindigkeit (Laserschweißgerät) |
|
45 |
D243 |
DINT |
Scanbreite (Laserschweißgerät) |
|
46 |
D244 |
DINT |
Spitzenleistung (Laserschweißgerät) |
|
47 |
D245 |
INT |
Tastverhältnis (Laserschweißgerät) |
|
48 |
D246 |
DINT |
Scangeschwindigkeit (Laserschweißgerät) |
|
49 |
D247 |
DINT |
Scangeschwindigkeit (Laserschweißgerät) |
|
50 |
D248 |
DINT |
Laserschweißgerät reserviert |
|
51 |
D249 |
DINT |
Laserschweißgerät reserviert |
|
52 |
D250 |
DINT |
Laserschweißgerät reserviert |
|
53 |
D251 |
DINT |
Laserschweißgerät reserviert |
|
54 |
D252 |
DINT |
Laserschweißgerät reserviert |
|
55 |
D253 |
DINT |
Laserschweißgerät reserviert |
|
56 |
D254 |
INT |
Laserschweißgerät reserviert |
|
57 |
D255 |
INT |
Schweißmodus-Einstellung (0-Gleichstrom-Einheit, 1-Impuls-Einheit, 2-JOB-Modus, 3-Nahbedienungsmodus, 4-Einzelmodus, 5-CC/CV, 6-TIG, 7-CMT-Modus) |
|
58 |
D256 |
INT |
Standardausgang DO (0-15) |
|
59 |
D257 |
INT |
Standardausgang DO (16-31) |
|
60 |
D258 |
INT |
Standardausgang DO (32-47) |
|
61 |
D259 |
INT |
Standardausgang DO (48-63) |
|
62 |
D260 |
INT |
Standardausgang DO (64-79) |
|
63 |
D261 |
INT |
Standardausgang DO (80-95) |
|
64 |
D262 |
INT |
Hochgeschwindigkeitsausgang DO (96-111) |
|
65 |
D263 |
INT |
Hochgeschwindigkeitsausgang DO (112-127) |
|
66 |
D264 |
INT |
Analogausgang AO0 |
|
67 |
D265 |
INT |
Analogausgang AO1 |
|
68 |
D266 |
INT |
Analogausgang AO2 |
|
69 |
D267 |
INT |
Analogausgang AO3 |
|
70 |
D268 |
REAL |
Übermittelte Schweißspannung |
|
71 |
D269 |
REAL |
Übermittelte Schweißspannung |
|
72 |
D270 |
REAL |
Übermittelter Schweißstrom |
|
73 |
D271 |
REAL |
Übermittelter Schweißstrom |
|
74 |
D272 |
REAL |
Paketverlust-Erkennungszyklus |
|
75 |
D273 |
INT |
Anzahl Paketverluste |
|
76 |
D274 |
INT |
Frame-Zähler (0-255) |
|
77 |
D275 |
INT |
CRC-Prüfcode |
8.6.6.2. SPS -> Robotersteuerung
Nr. |
Registeradresse |
Datentyp |
Datenwert |
Variablenname |
|---|---|---|---|---|
1 |
D99 |
INT |
0x5A5A |
Frame-Header |
2 |
D100 |
INT |
1# Motorstatuswort |
|
3 |
D101 |
DINT |
1# Aktuelle Position |
|
4 |
D102 |
DINT |
1# Aktuelle Position |
|
5 |
D103 |
INT |
1# Referenzpunktfahrt-Statuswort |
|
6 |
D104 |
DINT |
1# Rückmeldung hohe Geschwindigkeit Referenzpunktfahrt |
|
7 |
D105 |
DINT |
1# Rückmeldung hohe Geschwindigkeit Referenzpunktfahrt |
|
8 |
D106 |
DINT |
1# Rückmeldung niedrige Geschwindigkeit Referenzpunktfahrt |
|
9 |
D107 |
DINT |
1# Rückmeldung niedrige Geschwindigkeit Referenzpunktfahrt |
|
10 |
D108 |
INT |
1# Fehlercode |
|
11 |
D109 |
DINT |
1# Folgeabweichung (reserviert) |
|
12 |
D110 |
DINT |
1# Folgeabweichung (reserviert) |
|
13 |
D111 |
DINT |
1# Geschwindigkeitsrückmeldung (reserviert) |
|
14 |
D112 |
DINT |
1# Geschwindigkeitsrückmeldung (reserviert) |
|
15 |
D113 |
DINT |
1# Echtzeit-Drehmoment (reserviert) Das Motordrehmoment wird nach dem Getriebeuntersetzungsverhältnis mit 100 multipliziert und an die übergeordnete Steuerung übertragen |
|
16 |
D114 |
DINT |
1# Echtzeit-Drehmoment (reserviert) Das Motordrehmoment wird nach dem Getriebeuntersetzungsverhältnis mit 100 multipliziert und an die übergeordnete Steuerung übertragen |
|
17 |
D115 |
INT |
2# Motorstatuswort |
|
18 |
D116 |
DINT |
2# Aktuelle Position |
|
19 |
D117 |
DINT |
2# Aktuelle Position |
|
20 |
D118 |
INT |
2# Referenzpunktfahrt-Statuswort |
|
21 |
D119 |
DINT |
2# Rückmeldung hohe Geschwindigkeit Referenzpunktfahrt |
|
22 |
D120 |
DINT |
2# Rückmeldung hohe Geschwindigkeit Referenzpunktfahrt |
|
23 |
D121 |
DINT |
2# Rückmeldung niedrige Geschwindigkeit Referenzpunktfahrt |
|
24 |
D122 |
DINT |
2# Rückmeldung niedrige Geschwindigkeit Referenzpunktfahrt |
|
25 |
D123 |
INT |
2# Fehlercode |
|
26 |
D124 |
DINT |
2# Folgeabweichung (reserviert) |
|
27 |
D125 |
DINT |
2# Folgeabweichung (reserviert) |
|
28 |
D126 |
DINT |
2# Geschwindigkeitsrückmeldung (reserviert) |
|
29 |
D127 |
DINT |
2# Geschwindigkeitsrückmeldung (reserviert) |
|
30 |
D128 |
DINT |
2# Echtzeit-Drehmoment (reserviert) |
|
31 |
D129 |
DINT |
2# Echtzeit-Drehmoment (reserviert) |
|
32 |
D130 |
INT |
3# Motorstatuswort |
|
33 |
D131 |
DINT |
3# Aktuelle Position |
|
34 |
D132 |
DINT |
3# Aktuelle Position |
|
35 |
D133 |
INT |
3# Referenzpunktfahrt-Statuswort |
|
36 |
D134 |
DINT |
3# Rückmeldung hohe Geschwindigkeit Referenzpunktfahrt |
|
37 |
D135 |
DINT |
3# Rückmeldung hohe Geschwindigkeit Referenzpunktfahrt |
|
38 |
D136 |
DINT |
3# Rückmeldung niedrige Geschwindigkeit Referenzpunktfahrt |
|
39 |
D137 |
DINT |
3# Rückmeldung niedrige Geschwindigkeit Referenzpunktfahrt |
|
40 |
D138 |
INT |
3# Fehlercode |
|
41 |
D139 |
DINT |
3# Folgeabweichung (reserviert) |
|
42 |
D140 |
DINT |
3# Folgeabweichung (reserviert) |
|
43 |
D141 |
DINT |
3# Geschwindigkeitsrückmeldung (reserviert) |
|
44 |
D142 |
DINT |
3# Geschwindigkeitsrückmeldung (reserviert) |
|
45 |
D143 |
DINT |
3# Echtzeit-Drehmoment (reserviert) |
|
46 |
D144 |
DINT |
3# Echtzeit-Drehmoment (reserviert) |
|
47 |
D145 |
INT |
Scangeschwindigkeit (Laserschweißgerät) |
|
48 |
D146 |
DINT |
Scanbreite (Laserschweißgerät) |
|
49 |
D147 |
DINT |
Spitzenleistung (Laserschweißgerät) |
|
50 |
D148 |
INT |
Tastverhältnis (Laserschweißgerät) |
|
51 |
D149 |
DINT |
Scangeschwindigkeit (Laserschweißgerät) |
|
52 |
D150 |
DINT |
Scangeschwindigkeit (Laserschweißgerät) |
|
53 |
D151 |
DINT |
Laserschweißgerät reserviert |
|
54 |
D152 |
DINT |
Laserschweißgerät reserviert |
|
55 |
D153 |
DINT |
Laserschweißgerät reserviert |
|
56 |
D154 |
DINT |
Laserschweißgerät reserviert |
|
57 |
D155 |
DINT |
Laserschweißgerät reserviert |
|
58 |
D156 |
DINT |
Laserschweißgerät reserviert |
|
59 |
D157 |
DINT |
Laserschweißgerät reserviert |
|
60 |
D158 |
DINT |
Laserschweißgerät reserviert |
|
61 |
D159 |
DINT |
Laserschweißgerät reserviert |
|
62 |
D160 |
INT |
Standardeingang DI (0-15) |
|
63 |
D161 |
INT |
Standardeingang DI (16-31) |
|
64 |
D162 |
INT |
Standardeingang DI (32-47) |
|
65 |
D163 |
INT |
Standardeingang DI (48-63) |
|
66 |
D164 |
INT |
Standardeingang DI (64-79) |
|
67 |
D165 |
INT |
Standardeingang DI (80-95) |
|
68 |
D166 |
INT |
Hochgeschwindigkeitseingang DI (96-111) |
|
69 |
D167 |
INT |
Hochgeschwindigkeitseingang DI (112-127) |
|
70 |
D168 |
INT |
Analogeingang AI0 |
|
71 |
D169 |
INT |
Analogeingang AI1 |
|
72 |
D170 |
INT |
Analogeingang AI2 |
|
73 |
D171 |
INT |
Analogeingang AI3 |
|
74 |
D172 |
REAL |
Tatsächliche Stromrückmeldung |
|
75 |
D173 |
REAL |
Tatsächliche Stromrückmeldung |
|
76 |
D174 |
REAL |
Tatsächliche Spannungsrückmeldung |
|
77 |
D175 |
REAL |
Tatsächliche Spannungsrückmeldung |
|
78 |
D176 |
INT |
Fehlercode: 0-kein Fehler, 1-Datenverlust |
|
79 |
D177 |
INT |
Frame-Zähler |
|
80 |
D178 |
INT |
CRC-Prüfcode |
8.6.7. Digitales Kommunikationsprotokoll (Modbus TCP)
Klicken Sie auf „Initiale Einstellungen“ -> „Peripherie“ -> „Schweißgerät“, um zur Schweißgeräteoberfläche zu gelangen. Klicken Sie auf die Karte „Digitales Kommunikationsprotokoll (Modbus TCP)“, um zur Oberfläche des offenen Schweißgeräteprotokolls zu gelangen.
8.6.7.1. Protokollkonfiguration
Klicken Sie in der Konfiguration des offenen Protokolls auf die Schaltfläche „Hochladen“, um die fertig erstellte LUA-Programmdatei des offenen Protokolls in die Steuerung hochzuladen. Wählen Sie eine ID für das offene Protokoll und einen Namen für das offene Protokoll aus und klicken Sie auf die Schaltfläche „Konfigurieren“ (Die gewählte Protokoll-ID muss mit der im offenen Protokoll angegebenen ID übereinstimmen). Weisen Sie jedem offenen Protokoll eine ID zu.
Abbildung 8.6‑50 Hochladen und Konfigurieren des offenen Steuerungs-Peripherieprotokolls
Klicken Sie in den konfigurierten Protokollen auf die Schaltfläche „Laden“. Die Betriebsstatus-LED leuchtet auf und zeigt an, dass das offene Protokoll erfolgreich geladen wurde.
Abbildung 8.6-51 Laden und Betriebsanzeige des offenen Steuerungs-Peripherieprotokolls
8.6.7.2. Offenes Schweißgeräteprotokoll
Der Roboter kommuniziert mit dem Schweißgerät über das offene Peripherieprotokoll der Steuerung mittels ModbusTCP. Basierend auf der Registerdefinition des Schweißgeräte-Slaves wird eine entsprechende Kommunikations-LUA-Datei erstellt. In dieser Datei werden Kommunikationsparameter wie IP-Adresse und Portnummer des Schweißgeräts sowie Registeradressen für die Lichtbogenzündung, Drahtvorschubsteuerung usw. konfiguriert. Nach dem Hochladen dieses Protokolls in die Robotersteuerung und dem Laden des Protokolls wird die Kommunikation zwischen Roboter und Schweißgerät hergestellt.
8.6.7.2.1. Beispiel für ein offenes Schweißgeräteprotokoll
1local id = 1 --Protokollnummer, muss mit der in der WebApp konfigurierten Protokollnummer übereinstimmen.
2local ctrlValues = {0, 0, 0, 0, 0, 0}
3local realTimeState = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
4ModbusTCPMasterClose(id)
5ModbusTCPMasterCreate('192.168.58.45', 502, 1, id)
6while(1) do
7setArcStart, setWireForward, setWireReverse, setShieldingGas, setTouchEnable, setRobotError,setRobotEnableState,default1,default2, default3, default4, setCurrent, setVoltage, SetMode = WeldingGetCtrlState()
8local ctrlWord = 0
9ctrlWord = SetBitWithIndex(ctrlWord, 0, setArcStart)
10ctrlWord = SetBitWithIndex(ctrlWord, 1, setWireForward)
11ctrlWord = SetBitWithIndex(ctrlWord, 2, setWireReverse)
12ctrlWord = SetBitWithIndex(ctrlWord, 3, setShieldingGas)
13ctrlWord = SetBitWithIndex(ctrlWord, 4, setTouchEnable)
14ctrlWord = SetBitWithIndex(ctrlWord, 7, setRobotError)
15ctrlValues[1] = setRobotEnableState
16ctrlValues[2] = ctrlWord
17ctrlValues[3] = 0
18ctrlValues[4] = setCurrent
19ctrlValues[5] = setVoltage
20ctrlValues[6] = 0
21ModbusTCPMasterSetHoldRegs(id, 201, 6, ctrlValues, "U16")
22localtmpCtrlMode={0,0,0,0}
23tmpCtrlMode[1]=SetMode
24ModbusTCPMasterSetHoldRegs(id,0x1000,1,tmpCtrlMode,"U16")
25sleep_ms(10)
26
27getWeldState, getCurrent, getVoltage,default1, default2, getWelderErrorCode = ModbusTCPMasterGetHoldRegs(id, 211, 6, "U16")
28realTimeState[1] = GetBitWithIndex(getWeldState, 0) + GetBitWithIndex(getWeldState, 1) * 2 --welderType
29realTimeState[2] = GetBitWithIndex(getWeldState, 5) --arc state(WCR)
30realTimeState[3] = GetBitWithIndex(getWeldState, 4) --touch state
31realTimeState[4] = GetBitWithIndex(getWeldState, 7) --welder error state
32realTimeState[12] = getCurrent --current
33realTimeState[13] = getVoltage --voltage
34realTimeState[14] = getWelderErrorCode --welder error code
35realTimeState[15] = getWeldState / 255 --heart jump
36WeldingSetRealtimeState(realTimeState)
37
38local stopFlag = GetOpenLUAStopFlag(id)
39if(stopFlag ~= 0) then
40ModbusTCPMasterClose(id)
41break
42end
43
44sleep_ms(10)
45end
8.6.7.2.2. Analyse des offenen Schweißgeräteprotokolls
Das offene Schweißgeräteprotokoll besteht hauptsächlich aus drei Teilen:
① Kommunikationsverbindung herstellen: Parameter wie die spezifische Protokoll-ID (die beim Laden des offenen Protokolls eingestellte Protokollnummer muss mit der Nummer in der Protokolldatei übereinstimmen), die IP-Adresse des Schweißgeräts und die Portnummer werden angegeben. Mit dem Befehl „ModbusTCPMasterCreate()“ wird eine ModbusTCP-Verbindung zwischen Roboter und Schweißgerät hergestellt.
② Zyklisches Schreiben von Steuerdaten an das Schweißgerät: Bei der Ausführung des offenen Schweißgeräteprotokolls werden zunächst die aktuellen Schweißgeräte-Steuerdaten aus der Robotersteuerung gelesen und dann in das Schweißgerät geschrieben, um die Schweißgeräteaktionen zu steuern. Die Rückgabewerte des Befehls „WeldingGetCtrlState()“ zum Lesen der Roboter-Schweißsteuerdaten sind in Tabelle 2-1 definiert. Die Steuerdaten können je nach Definition der Steuerregister des tatsächlichen Schweißgeräts aufgeschlüsselt und dann per ModbusTCP in das Schweißgerät geschrieben werden.
Tabelle 8.19-1 Rückgabewerte von WeldingGetCtrlState()
Nr. |
Typ |
Name |
Beschreibung |
1 |
uint16_t |
setArcStart |
Lichtbogenzünde-Signal; 0-Lichtbogen aus; 1-Lichtbogen zünden |
2 |
uint16_t |
setWireForward |
Vorwärtsdrahtvorschub: 0-Drahtvorschub stoppen; 1-Vorwärtsdrahtvorschub |
3 |
uint16_t |
setWireReverse |
Rückwärtsdrahtvorschub: 0-Drahtvorschub stoppen; 1-Rückwärtsdrahtvorschub |
4 |
uint16_t |
setShieldingGas |
Schutzgassteuerung: 0-Gas aus; 1-Gas zu |
5 |
uint16_t |
setTouchEnable |
Aktivierung Schweißdraht-Positionssuche: 0-deaktivieren; 1-aktivieren |
6 |
uint16_t |
setRobotError |
Roboterfehler: 0-kein Fehler; 1-Fehler |
7 |
uint16_t |
setRobotEnableState |
Roboter-Aktivierungsstatus: 0-nicht aktiviert; 1-aktiviert |
8 |
uint16_t |
default1 |
Reserviert |
9 |
uint16_t |
default2 |
Reserviert |
10 |
uint16_t |
default3 |
Reserviert |
11 |
uint16_t |
default4 |
Reserviert |
12 |
uint16_t |
setCurrent |
Schweißstrom einstellen (0,1 A) |
13 |
uint16_t |
setVoltage |
Schweißspannung einstellen (0,01 V) |
14 |
uint16_t |
SetMode |
Schweißmodus einstellen: 0-Gleichstrom-Einheit, 1-Impuls-Einheit, 2-JOB-Modus, 3-Nahbedienungsmodus, 4-Einzelmodus, 5-CC/CV, 6-TIG, 7-CMT-Modus |
15 |
uint16_t |
default6 |
Reserviert |
16 |
uint16_t |
default7 |
Reserviert |
17 |
uint16_t |
default8 |
Reserviert |
18 |
uint16_t |
default9 |
Reserviert |
19 |
uint16_t |
default10 |
Reserviert |
20 |
uint16_t |
default11 |
Reserviert |
③ Zyklisches Lesen von Statusdaten vom Schweißgerät: Das offene Schweißgeräteprotokoll liest zunächst über ModbusTCP die Echtzeit-Statusdaten vom Schweißgerät und schreibt die relevanten Daten dann in die Robotersteuerung, damit der Roboter den Echtzeit-Aktionsstatus des Schweißgeräts überwachen kann. Der Parameter für die Schnittstelle „WeldingSetRealtimeState()“ zum Einstellen des Schweißgerätestatus im Roboter ist ein Array, das alle Schweißgerätestatus enthält (Hinweis: In Lua-Protokollen für offene Protokolle beginnt der Array-Index bei 1), wie in Tabelle 2-2 dargestellt. Je nach Definition der tatsächlichen Schweißgerätestatusregister können die Schweißgerätestatusdaten per ModbusTCP gelesen, zu einem Schweißgerätestatus-Array zusammengesetzt und in die Robotersteuerung geschrieben werden.
Tabelle 8.19-2 Detaillierte Parameter von WeldingSetRealtimeState()
Typ |
Name |
Array-Index |
Beschreibung |
uint16_t[20] |
realTimeState |
1 |
Schweißgerätemodell |
uint16_t[20] |
realTimeState |
2 |
Lichtbogenstatus: 0-Lichtbogen aus; 1-Lichtbogen an |
uint16_t[20] |
realTimeState |
3 |
Schweißdraht-Kontaktstatus: 0-kein Kontakt; 1-Kontakt |
uint16_t[20] |
realTimeState |
4 |
Schweißgeräte-Fehlerstatus: 0-kein Fehler; 1-Schweißgerätefehler |
uint16_t[20] |
realTimeState |
5 |
Reserviert |
uint16_t[20] |
realTimeState |
6 |
Reserviert |
uint16_t[20] |
realTimeState |
7 |
Reserviert |
uint16_t[20] |
realTimeState |
8 |
Reserviert |
uint16_t[20] |
realTimeState |
9 |
Reserviert |
uint16_t[20] |
realTimeState |
10 |
Reserviert |
uint16_t[20] |
realTimeState |
11 |
Reserviert |
uint16_t[20] |
realTimeState |
12 |
Echtzeit-Schweißstrom (0,1 A) |
uint16_t[20] |
realTimeState |
13 |
Echtzeit-Schweißspannung (0,01 V) |
uint16_t[20] |
realTimeState |
14 |
Schweißgeräte-Fehlercode |
uint16_t[20] |
realTimeState |
15 |
Schweißgeräte-Kommunikations-Herzschlagdaten |
uint16_t[20] |
realTimeState |
16 |
Reserviert |
uint16_t[20] |
realTimeState |
17 |
Reserviert |
uint16_t[20] |
realTimeState |
18 |
Reserviert |
uint16_t[20] |
realTimeState |
19 |
Reserviert |
uint16_t[20] |
realTimeState |
20 |
Reserviert |
8.6.7.2.3. Hochladen und Laden des offenen Schweißgeräteprotokolls
Klicken Sie nacheinander auf „Initiale Einstellungen“, „Peripherie“, „Steuerschrank“, „Offenes Peripherieprotokoll“. Klicken Sie auf die Schaltfläche „Hochladen“, um das offene Schweißgeräteprotokoll „CtrlDev_WELDING.lua“ hochzuladen (Der Dateiname des Protokolls muss mit CtrlDev_ beginnen und die Erweiterung „.lua“ haben).
Abbildung 8.6‑39 Hochladen des offenen Schweißgeräteprotokolls
Wählen Sie in der „Protokollkonfiguration“ eine „Protokollnummer“ (muss mit der Protokollnummer in der offenen Protokolldatei übereinstimmen). Hier wird als Beispiel Nummer 1 gewählt. Wählen Sie den „Protokollnamen“ als offenes Schweißgeräteprotokoll „CtrlDev_WELDING.lua“ aus und klicken Sie auf die Schaltfläche „Konfigurieren“. Das konfigurierte offene Schweißgeräteprotokoll wird nun unter „Gerätebetrieb und -status“ angezeigt.
Abbildung 8.6‑40 Konfiguration des offenen Schweißgeräteprotokolls
Klicken Sie auf die Schaltfläche „Verbinden“, um das offene Schweißgeräteprotokoll zu laden. Die Betriebsstatus-LED leuchtet auf und zeigt an, dass Roboter und Schweißgerät kommunizieren.
Abbildung 8.6‑41 Laden des offenen Schweißgeräteprotokolls
8.6.7.2.4. Schweißgerätetest (Debugging)
Stellen Sie vor dem Test des Schweißgeräts sicher, dass das offene Schweißgeräteprotokoll erfolgreich geladen wurde und die relevanten Registeradressen korrekt konfiguriert sind.
Klicken Sie nacheinander auf „Initiale Einstellungen“, „Peripherie“, „Schweißgerät“. Wählen Sie „Digitales Kommunikationsprotokoll (ModbusTcp)“.
Abbildung 8.6‑42 Auswahl „Digitales Kommunikationsprotokoll (ModbusTcp)“
Klicken Sie auf die Schaltflächen „Lichtbogen zünden“, „Lichtbogen beenden“, „Gas zu“, „Gas aus“ usw. und beobachten Sie, ob die Aktionen des tatsächlichen Schweißgeräts mit den Einstellungen übereinstimmen. Wenn das Schweißgerät die eingestellten Aktionen nicht ausführt, überprüfen Sie die Registerkonfiguration im offenen Schweißgeräteprotokoll auf Fehler und führen Sie weitere Tests durch.
Abbildung 8.6‑43 Schweißgerätetest
8.6.7.2.5. Erstellung des Schweißprogramms
Klicken Sie auf „Initiale Einstellungen“, „Teach-Programm“, „Programmierung“ und erstellen Sie ein neues Programm „testWeld.lua“.
Abbildung 8.6‑44 Erstellen eines Schweiß-LUA-Programms
Klicken Sie auf die Schaltfläche „Schweißen“. Wählen Sie in der eingeblendeten Oberfläche zum Hinzufügen von Schweißbefehlen „Digitales Kommunikationsprotokoll (Modbus Tcp)“. Wählen Sie nacheinander „Lichtbogen zünden“, klicken Sie auf „Hinzufügen“, wählen Sie „Lichtbogen beenden“, klicken Sie auf „Hinzufügen“ und klicken Sie abschließend auf die Schaltfläche „Anwenden“.
Abbildung 8.6‑45 Befehle für Lichtbogenzündung und -beendung hinzufügen
Nun wurden die Befehle zum Zünden und Beenden des Lichtbogens zu „testWeld.lua“ hinzugefügt.
Abbildung 8.6‑46 Befehle für Lichtbogenzündung und -beendung hinzufügen
Fügen Sie nacheinander den Schweißstartpunkt und den Schweißendpunkt hinzu. Schalten Sie den Roboter in den Automatikmodus und starten Sie das Programm unter sicheren Bedingungen. Der Roboter steuert das Schweißgerät an, um eine Schweißnaht zu schweißen.
Abbildung 8.6‑47 Schweißprogramm
8.6.7.2.6. Entladen des offenen Schweißgeräteprotokolls
Klicken Sie nacheinander auf „Initiale Einstellungen“, „Peripherie“, „Steuerschrank“, „Offenes Peripherieprotokoll“. Klicken Sie unter „Gerätebetrieb und -status“ auf die Schaltfläche „Entladen“.
Abbildung 8.6‑48 Offenes Protokoll entladen
Die Betriebsstatus-LED des Protokolls erlischt.
Abbildung 8.6‑49 Offenes Protokoll entladen
Wenn Sie nun Schweißtests durchführen oder ein Schweißprogramm ausführen, meldet der Roboter unten links in der WebApp einen Fehler: „Protokoll nicht geladen“.
Abbildung 8.6‑50 Fehler: Protokoll nicht geladen
8.7. Konfiguration der Erweiterungsachse
Klicken Sie in „Initiale Einstellungen“ -> „Peripherie“ auf „Erweiterungsachse“, um zur Konfigurationsoberfläche für die Erweiterungsachse zu gelangen. Diese umfasst die Konfiguration des Erweiterungsachsen-Koordinatensystems und die Konfiguration der Erweiterungsachsen-Peripherie. Die erste Ansicht der Erweiterungsachsen-Konfiguration ist wie folgt:
Abbildung 8.7‑1 Erste Ansicht der Erweiterungsachsen-Konfiguration
Derzeit wird die Konfiguration der Erweiterungsachsen-Peripherie nach der Kommunikationsart in zwei Typen unterteilt:
Steuerung + SPS (UDP-Kommunikation).
Steuerung + Servoantrieb (485-Kommunikation).
8.7.1. Koordinatensystem der Erweiterungsachse
In der Einstellungsoberfläche für das Erweiterungsachsen-Koordinatensystem können Erweiterungsachsen-Koordinaten angewendet, gelöscht und konfiguriert werden.
Bemerkung
Bezeichnung: Löschen
Funktion: Löscht die Daten des Erweiterungsachsen-Koordinatensystems.
Die Dropdown-Liste der Erweiterungsachsen-Koordinatensysteme enthält insgesamt 5 Nummern, von exaxis0 bis exaxis4. Wählen Sie das entsprechende Koordinatensystem aus, die entsprechenden Koordinatenwerte werden darunter angezeigt. Nach Auswahl eines Koordinatensystems klicken Sie auf die Schaltfläche „Anwenden“. Das aktuell verwendete Erweiterungsachsen-Koordinatensystem wechselt zu dem ausgewählten Koordinatensystem, wie in der folgenden Abbildung gezeigt.
Abbildung 8.7‑2 Erweiterungsachsen-Koordinatensystem
Wählen Sie ein Erweiterungsachsen-Koordinatensystem ungleich „exaxis0“ aus und klicken Sie auf „Konfigurieren“, um zur Konfigurationsoberfläche für das Erweiterungsachsen-Koordinatensystem zu gelangen. Hier können Sie das Koordinatensystem für diese Nummer neu einstellen. Wie unten gezeigt:
Wichtig
Löschen Sie vor der Kalibrierung das zu kalibrierende Erweiterungsachsen-Koordinatensystem und wenden Sie dieses Erweiterungsachsen-Koordinatensystem an.
Wählen Sie die Nummer der Erweiterungsachse aus. Mit „Informationen abrufen“ können die Antriebsinformationen der entsprechenden Erweiterungsachse abgerufen werden. Basierend auf diesen Informationen können wir die Parameter konfigurieren.
Abbildung 8.7‑3 Kalibrierung des Erweiterungsachsen-Koordinatensystems
Die aktuellen Erweiterungsachsen-Lösungen sind:
0 - Linearführung mit einem Freiheitsgrad
1 - L-förmiger Positionierer mit zwei Freiheitsgraden
2 - Drei Freiheitsgrade (derzeit nicht verfügbar)
3 - Vier Freiheitsgrade (derzeit nicht verfügbar)
4 - Positionierer mit einem Freiheitsgrad
5 - Wagen mit zwei Freiheitsgraden
Linearführung mit einem Freiheitsgrad: Stellen Sie zuerst die DH-Parameter ein. Stellen Sie dann die Position des Roboters relativ zur Erweiterungsachse ein. Die Linearführung befindet sich auf der Erweiterungsachse. Wenn keine Kalibrierung durchgeführt wird, klicken Sie einfach auf Speichern. In diesem Fall kann die Erweiterungsachse nur asynchron bewegt werden.
Abbildung 8.7-4 Konfiguration der DH-Parameter für Linearführung
Abbildung 8.7-5 Linearführung – Konfiguration der Roboterposition relativ zur Erweiterungsachse
Wenn eine synchrone Bewegung mit dem Roboter erforderlich ist, aktivieren Sie die Erweiterungsachse (Eaxis) im Bedienbereich am Nullpunkt der Erweiterungsachse. Richten Sie die Roboterflanschmitte (verwenden Sie die Werkzeugspitze im angewendeten Werkzeugkoordinatensystem) in zwei verschiedenen Posen auf einen festen Punkt auf der Erweiterungsachse aus und legen Sie Punkt 1 und Punkt 2 fest.
Abbildung 8.7‑6 Linearführung Kalibrierpunkte 1 und 2
Deaktivieren Sie die Erweiterungsachse (Enable entfernen), bewegen Sie sie ein Stück, aktivieren Sie sie wieder und richten Sie die Roboterflanschmitte erneut auf denselben festen Punkt aus, um Punkt 3 festzulegen. Deaktivieren Sie die Erweiterungsachse, bewegen Sie sie zurück zum Nullpunkt und aktivieren Sie sie wieder. Bewegen Sie die Roboterflanschmitte senkrecht nach oben über den festen Punkt, um Punkt 4 festzulegen. Berechnen Sie das Koordinatensystem und speichern Sie es.
Abbildung 8.7‑7 Linearführung Kalibrierpunkte 3 und 4
L-förmiger Positionierer mit zwei Freiheitsgraden: Der Positionierer besteht aus zwei Erweiterungsachsen. Stellen Sie zuerst die DH-Parameter ein. Messen Sie die DH-Parameter des Positionierers gemäß der Abbildung und tragen Sie sie in die Eingabefelder ein. Stellen Sie die Position des Roboters relativ zur Erweiterungsachse ein. Der Positionierer befindet sich außerhalb der Erweiterungsachse. Wenn keine Kalibrierung durchgeführt wird, klicken Sie einfach auf Speichern. In diesem Fall kann die Erweiterungsachse nur asynchron bewegt werden.
Abbildung 8.7‑8 Konfiguration der DH-Parameter für L-förmigen Positionierer mit zwei Freiheitsgraden
Abbildung 8.7‑9 L-förmiger Positionierer mit zwei Freiheitsgraden – Roboterposition relativ zur Erweiterungsachse
Wenn eine synchrone Bewegung mit dem Roboter erforderlich ist, aktivieren Sie die Erweiterungsachse (Eaxis) im Bedienbereich am Nullpunkt der Erweiterungsachse. Richten Sie auf dem Positionierer ein Koordinatensystem ein. Wählen Sie einen Punkt aus und geben Sie die kartesische Pose dieses Punktes in diesem Koordinatensystem ein. Wenn Sie z.B. einen Punkt in positiver Y-Richtung wählen und Y = 100 mm messen, geben Sie die Werte wie in der Abbildung gezeigt ein und klicken Sie auf „Referenzpunkt“. Damit ist der Referenzpunkt festgelegt. Für die folgenden vier Kalibrierpunkte muss die Roboterflanschmitte (verwenden Sie die Werkzeugspitze im angewendeten Werkzeugkoordinatensystem) auf diesen Referenzpunkt ausgerichtet werden.
Abbildung 8.7‑10 L-förmiger Positionierer mit zwei Freiheitsgraden – Referenzpunktkonfiguration
Richten Sie die Roboterflanschmitte auf den Referenzpunkt aus und legen Sie Punkt 1 fest. Bewegen Sie im Bedienbereich (Eaxis) die beiden Achsen ein kurzes Stück im Tippbetrieb (Jog). Richten Sie die Roboterflanschmitte erneut auf den Referenzpunkt aus und legen Sie Punkt 2 fest. Bewegen Sie die beiden Achsen weiter im Tippbetrieb, richten Sie die Roboterflanschmitte auf den Referenzpunkt aus und legen Sie Punkt 3 fest. Bewegen Sie schließlich die beiden Achsen weiter im Tippbetrieb, richten Sie die Roboterflanschmitte auf den Referenzpunkt aus und legen Sie Punkt 4 fest. Klicken Sie auf „Berechnen“, um das Koordinatensystem zu erhalten. Klicken Sie auf „Speichern“ und dann auf „Anwenden“.
Abbildung 8.7‑11 Kalibrierung des L-förmigen Positionierers mit zwei Freiheitsgraden
Positionierer mit einem Freiheitsgrad: Besteht aus einer rotierenden Erweiterungsachse. Die DH-Parameter werden auf 0 gesetzt. Stellen Sie die Roboterposition relativ zur Erweiterungsachse auf „außerhalb der Erweiterungsachse“. Wenn keine Kalibrierung durchgeführt wird, klicken Sie einfach auf Speichern. In diesem Fall kann die Erweiterungsachse nur asynchron bewegt werden.
Abbildung 8.7‑12 Konfiguration der DH-Parameter für Positionierer mit einem Freiheitsgrad
Abbildung 8.7‑13 Positionierer mit einem Freiheitsgrad – Roboterposition relativ zur Erweiterungsachse
Wenn eine synchrone Bewegung mit dem Roboter erforderlich ist, aktivieren Sie die Erweiterungsachse (Eaxis) im Bedienbereich am Nullpunkt der Erweiterungsachse. Richten Sie auf dem Positionierer ein Koordinatensystem ein. Wählen Sie einen Punkt aus und geben Sie die kartesische Pose dieses Punktes in diesem Koordinatensystem ein. Klicken Sie auf „Referenzpunkt“, um den Referenzpunkt festzulegen.
Abbildung 8.7‑14 Konfiguration des Referenzpunkts für Positionierer mit einem Freiheitsgrad
Für die folgenden vier Kalibrierpunkte muss die Roboterflanschmitte (verwenden Sie die Werkzeugspitze im angewendeten Werkzeugkoordinatensystem) auf diesen Referenzpunkt ausgerichtet werden. Richten Sie die Roboterflanschmitte auf den Referenzpunkt aus und legen Sie Punkt 1 fest. Bewegen Sie die Rotationsachse im Bedienbereich (Eaxis) ein kurzes Stück im Tippbetrieb. Richten Sie die Roboterflanschmitte erneut auf den Referenzpunkt aus und legen Sie Punkt 2 fest. Bewegen Sie die Rotationsachse weiter im Tippbetrieb, richten Sie die Roboterflanschmitte auf den Referenzpunkt aus und legen Sie Punkt 3 fest. Bewegen Sie schließlich die Rotationsachse weiter im Tippbetrieb, richten Sie die Roboterflanschmitte auf den Referenzpunkt aus und legen Sie Punkt 4 fest. Klicken Sie auf „Berechnen“, um das Koordinatensystem zu erhalten. Klicken Sie auf „Speichern“ und dann auf „Anwenden“.
Abbildung 8.7‑15 Kalibrierung des Positionierers mit einem Freiheitsgrad
Wichtig
Das Erweiterungsachsen-Koordinatensystem wird basierend auf dem Werkzeug kalibriert. Es muss auf der Grundlage eines bereits erstellten Werkzeugkoordinatensystems erstellt werden.
Für Erweiterungsachsen-Koordinatensysteme werden in der Regel exaxis1 bis exaxis4 verwendet. Die Anwendung von exaxis0 bedeutet, dass kein Erweiterungsachsen-Koordinatensystem verwendet wird. Bei der Kalibrierung eines Erweiterungsachsen-Koordinatensystems muss zunächst das Erweiterungsachsen-Koordinatensystem auf exaxis0 angewendet werden. Anschließend können andere Erweiterungsachsen-Koordinatensysteme ausgewählt, kalibriert und angewendet werden.
8.7.2. Steuerung + SPS (UDP-Kommunikation)
Bevor Sie die UDP-Kommunikation für die Erweiterungsachse verwenden, müssen Sie zuerst das entsprechende Erweiterungsachsen-Koordinatensystem erstellen, die entsprechende Erweiterungsachsen-Lösung in diesem Koordinatensystem konfigurieren und bei der Programmerstellung (Teach) das erstellte Werkzeugkoordinatensystem anwenden. Die Erweiterungsachsen-Funktion wird hauptsächlich in Verbindung mit der Schweißgerätefunktion und der Laser-Tracking-Sensorfunktion verwendet.
Abbildung 8.7‑16 Anwendung des Erweiterungsachsen-Koordinatensystems und Anzeige der aktuellen Erweiterungsachsen-Lösung
Wenn nur das aktuelle Erweiterungsachsen-Koordinatensystem geändert werden muss, wählen Sie es einfach in der Peripheriekonfigurationsoberfläche für die Erweiterungsachse aus, um es anzuwenden. Wenn die Erweiterungsachsen-Lösung geändert werden muss, gehen Sie zur Konfigurationsoberfläche des Erweiterungsachsen-Koordinatensystems, um sie zu ändern.
Wenn die Erweiterungsachsen-Lösung „0-Linearführung mit einem Freiheitsgrad“, „1-L-förmiger Positionierer mit zwei Freiheitsgraden“, „2-drei Freiheitsgrade“, „3-vier Freiheitsgrade“ oder „4-Positionierer mit einem Freiheitsgrad“ ist, werden nach erfolgreicher UDP-Kommunikationskonfiguration die Inhalte „UDP-Erweiterungsachse“ und „Positionierabschlusszeit einstellen“ angezeigt. Wenn die Erweiterungsachsen-Lösung „5-Wagen mit zwei Freiheitsgraden“ ist, wird auf der Oberfläche der Inhalt „Test des Wagens mit zwei Freiheitsgraden“ angezeigt.
8.7.2.1. UDP-Kommunikationskonfiguration
Bemerkung
Bezeichnung: Schaltfläche „Bearbeiten“
Funktion: Konfiguration der UDP-Kommunikationsparameter.
Schritt 1: Konfigurieren Sie die UDP-Kommunikationsparameter der Erweiterungsachse: Geben Sie IP-Adresse, Portnummer, Kommunikationszyklus, Paketverlust-Erkennungszyklus, Anzahl der Paketverluste usw. ein. Die Wiederverbindungsperiode und die Anzahl der Wiederverbindungsversuche können erst konfiguriert werden, wenn der Schalter „Automatische Wiederverbindung bei Kommunikationsunterbrechung“ aktiviert ist.
IP-Adresse: Benutzerdefinierte IP-Adresse.
Portnummer: Je nach tatsächlicher Situation definieren.
Kommunikationszyklus: Je nach tatsächlicher Situation definieren, Einheit ms.
Paketverlust-Erkennungszyklus: 10 ~ 1000 ms.
Anzahl Paketverluste: 1 ~ 100.
Bestätigungsdauer Kommunikationsunterbrechung: 0 ~ 500 ms.
Automatische Wiederverbindung nach Neustart (Strom aus/ein): Ein/Aus.
Automatische Wiederverbindung bei Kommunikationsunterbrechung: Ein/Aus.
Wiederverbindungsperiode: 1 ~ 1000 ms.
Anzahl der Wiederverbindungsversuche: 1 ~ 100.
Abbildung 8.7‑17 Konfiguration der UDP-Kommunikationsparameter für die Erweiterungsachse
Wichtig
Nach der Einstellung der Bestätigungsdauer für die Kommunikationsunterbrechung wird eine Kommunikationsunterbrechung erst dann bestätigt und ein Fehler gemeldet, wenn die Kommunikationsstörung diese Dauer überschreitet.
Nach einer UDP-Kommunikationsunterbrechung wird der Fehler „UDP unterbrochen“ ausgelöst (kann zurückgesetzt werden). Durch Klicken auf die Schaltfläche „Warnmeldung löschen“ kann die UDP-Kommunikation wiederhergestellt werden.
Schritt 2: Nach erfolgreicher Konfiguration der Kommunikationsparameter klicken Sie auf die Schaltfläche „Laden“, um die UDP-Kommunikation herzustellen. Bei erfolgreicher Kommunikation wird die Schaltfläche vor „UDP-Kommunikationskonfiguration“ grün. Im Erweiterungsachsenstatus unter „Roboterverschiedene Status“ kann überprüft werden, ob die Erweiterungsachse servogesteuert an ihrem Ziel ist.
Abbildung 8.7‑18 Herstellen der UDP-Kommunikation für die Erweiterungsachse
Abbildung 8.7‑19 Erweiterungsachse servogesteuert an Position
Wichtig
Wenn die UDP-Kommunikation nicht hergestellt ist, können die UDP-Erweiterungsachsen-Informationen nicht konfiguriert und angezeigt werden.
Vor dem Laden der UDP-Kommunikation für die Erweiterungsachse muss unbedingt ein Erweiterungsachsen-Koordinatensystem ungleich Nummer 0 konfiguriert und angewendet werden.
8.7.2.2. UDP-Erweiterungsachse
Bemerkung
Bezeichnung: Schaltfläche „Bearbeiten“
Funktion: Konfiguration der Erweiterungsachsen-Parameter.
Bemerkung
Bezeichnung: Schaltfläche „Aktivieren“
Funktion: Aktivierungsstatus der Erweiterungsachse. Ein Klick auf die Schaltfläche deaktiviert die Erweiterungsachse (Enable entfernen).
Bemerkung
Bezeichnung: Schaltfläche „Deaktivieren“
Funktion: Deaktivierungsstatus der Erweiterungsachse. Ein Klick auf die Schaltfläche aktiviert die Erweiterungsachse (Enable geben).
Bemerkung
Bezeichnung: Schaltfläche „Referenzpunktfahrt“
Funktion: Einstellung der Referenzpunktfahrt-Methode für die Erweiterungsachse.
Schritt 1: Wählen Sie eine beliebige Erweiterungsachsennummer aus (derzeit nur die Nummern 1, 2, 3, 4). Klicken Sie auf die Schaltfläche „Bearbeiten“ hinter der gewählten Erweiterungsachsennummer, um zur detaillierten Konfigurationsoberfläche zu gelangen. Stellen Sie Achstyp, Achsrichtung, Betriebsgeschwindigkeit, Beschleunigung, positive Endlagengrenze, negative Endlagengrenze, Spindelsteigung, Encoderauflösung, Startversatz, Hersteller, Modell und Modus ein. Klicken Sie auf „Konfigurieren“, um die Konfiguration abzuschließen.
Achstyp: Linearführung, Rotationsachse und unendliche Rotationsachse.
Achsrichtung: Positiv / Negativ.
Betriebsgeschwindigkeit: 0 ~ 2000 mm/s.
Beschleunigung: 0 ~ 2000 mm/s².
Positive Endlagengrenze: 0 ~ 50000.
Negative Endlagengrenze: -50000 ~ 0.
Spindelsteigung: 0 ~ 1000.
Encoderauflösung: 0 ~ 10000000.
Startversatz: 0 ~ 10000 mm.
Hersteller: Hechuan, Inovance, Panasonic.
Modell: Wird automatisch basierend auf dem Hersteller mit einer Modellliste abgeglichen.
Modus: Inkrementalsystem und Absolutpositionssystem.
Abbildung 8.7‑20 Konfiguration der Erweiterungsachsen-Parameter
Schritt 2: Nach Abschluss der Erweiterungsachsen-Parametereinstellung klicken Sie auf die Schaltfläche „Deaktivieren“, um die entsprechende Erweiterungsachsennummer zu aktivieren. Nach erfolgreicher Aktivierung können die Referenzpunktfahrt-Methode eingestellt und Tests der Erweiterungsachse durchgeführt werden. Wenn die Erweiterungsachse nicht aktiviert ist, können die Referenzpunktfahrt-Methode nicht eingestellt und keine Tests durchgeführt werden.
Abbildung 8.7‑21 Erweiterungsachse aktivieren/deaktivieren
Schritt 3: Wenn die Erweiterungsachse nicht erfolgreich aktiviert wurde, kann die Einstellungsoberfläche nicht aufgerufen werden; die Schaltfläche ist ausgegraut. Nach erfolgreicher Aktivierung der Erweiterungsachse klicken Sie auf die Schaltfläche „Referenzpunktfahrt“, um zur Einstellungsoberfläche für die Referenzpunktfahrt-Methode zu gelangen. Stellen Sie die Referenzpunktfahrt-Methode, die Suchgeschwindigkeit und die Nullpunkt-Einrastgeschwindigkeit ein. Klicken Sie auf die Schaltfläche „Einstellen“. Die Erweiterungsachse beginnt mit der Referenzpunktfahrt. Der Status der Referenzpunktfahrt wird im leeren Bereich unter der Achsrichtung angezeigt. Wenn die Meldung „Referenzpunktfahrt abgeschlossen“ erscheint, war die Nullpunkteinstellung der Erweiterungsachse erfolgreich.
Referenzpunktfahrt-Methode: Aktuelle Position als Nullpunkt, Negative Endlage als Nullpunkt, Positive Endlage als Nullpunkt.
Suchgeschwindigkeit: 0 ~ 2000 mm/s.
Nullpunkt-Einrastgeschwindigkeit: 0 ~ 2000 mm/s.
Abbildung 8.7‑22 Einstellung der Referenzpunktfahrt-Methode
Schritt 4: Wenn die Erweiterungsachse nicht erfolgreich aktiviert wurde, kann die Einstellungsoberfläche nicht aufgerufen werden; die Schaltfläche ist ausgegraut. Nach erfolgreicher Aktivierung der Erweiterungsachse und abgeschlossener Einstellung der Referenzpunktfahrt-Methode klicken Sie auf die Schaltfläche „Test“, um zur Testoberfläche der Erweiterungsachse zu gelangen. Stellen Sie Betriebsgeschwindigkeit, Beschleunigung und maximale Distanz ein. Führen Sie Drehungen in positiver und negativer Richtung durch, um die Erweiterungsachse zu testen. Während der Drehung können Sie auf die Schaltfläche „Stopp“ klicken, um zu testen, ob die Erweiterungsachse normal anhalten kann.
Abbildung 8.7‑23 Test der Erweiterungsachse
Schritt 5: Die Erweiterungsachse wird normalerweise in Verbindung mit einem Lasersensor verwendet. In diesem Fall wird der Lasersensor normalerweise extern montiert. Die Konfiguration des Sensor-Referenzpunkts muss mit der Drei-Punkt-Methode kalibriert werden, nicht mit der zuvor verwendeten Sechs-Punkt-Methode. Richten Sie die Werkzeugspitze auf den unteren Mittelpunkt des rechten Querschnitts (nahe der Kameraseite) aus, um Punkt 1 festzulegen. Richten Sie die Werkzeugspitze auf den unteren Mittelpunkt des anderen Querschnitts (linker Querschnitt) aus, um Punkt 2 festzulegen. Bewegen Sie die Werkzeugspitze zum oberen Mittelpunkt der Oberkante des rechten Sensorquerschnitts, um Punkt 3 festzulegen. Berechnen und speichern Sie, klicken Sie auf „Anwenden“, um die Drei-Punkt-Methode-Kalibrierung abzuschließen.
Abbildung 8.7‑24 Drei-Punkt-Methode Kalibrierung des Sensors
Schritt 6: Wählen Sie auf der Oberfläche „Teach-Programm“ -> „Programmierung“ den Befehl „Erweiterungsachse“ unter den Peripheriebefehlen aus. Fügen Sie den Befehl je nach spezifischem Programmierbedarf (Teach) an der entsprechenden Stelle ein.
Abbildung 8.7‑25 Bearbeiten des Erweiterungsachsen-Befehls
8.7.2.3. Teach-Programm für Erweiterungsachse in Kombination mit Laser-Tracking-Schweißen
Nr. |
Befehlsformat |
Kommentar |
1 |
EXT_AXIS_PTP(1,1,laserstart) |
#Externe Achse bewegt sich zum Startpunkt des Lasersensors |
2 |
PTP(laserstart,10,-1,0) |
#Roboter bewegt sich zum Startpunkt des Lasersensors |
3 |
LTSearchStart(3,20,10,10000) |
#Positionssuche starten |
4 |
LTSearchStop() |
#Positionssuche stoppen |
5 |
EXT_AXIS_PTP(1,1,seamPos) |
#Externe Achse bewegt sich zum Schweißnaht-Startpunkt |
6 |
Lin(seamPos,20,-1,0,0) |
#Roboter bewegt sich zum Schweißnaht-Startpunkt |
7 |
LTTrackOn() |
#Laser-Tracking einschalten |
8 |
ARCStart(0,10000) |
#Schweißgerät Lichtbogen zünden |
9 |
EXT_AXIS_PTP(1,1,laserend) |
#Externe Achse bewegt sich zum Schweißnaht-Endpunkt |
10 |
Lin(laserend,10,-1,0,0) |
#Roboter bewegt sich zum Schweißnaht-Endpunkt |
11 |
ARCEnd(0,10000) |
#Schweißgerät Lichtbogen beenden |
12 |
LTTrackOff |
#Laser-Tracking ausschalten |
8.7.2.4. Positionierabschlusszeit
Nachdem die UDP-Kommunikation für die Erweiterungsachse hergestellt wurde, geben Sie die Zeit ein und klicken Sie auf die Schaltfläche „Konfigurieren“, um die Einstellung abzuschließen. Dieser Konfigurationseintrag dient zum Überwachen der Zeit, die die Erweiterungsachse benötigt, um ihre Bewegung zu beenden.
Abbildung 8.7‑26 Konfiguration der Positionierabschlusszeit
8.7.3. Test des Wagens mit zwei Freiheitsgraden
Wenn die Erweiterungsachsen-Lösung in der Erweiterungsachsen-Koordinatensystemkonfiguration auf „5-Wagen mit zwei Freiheitsgraden“ gesetzt ist, wird dieser Inhalt nach dem Betreten der UDP-Kommunikationsoberfläche angezeigt, andernfalls ist er nicht sichtbar.
Abbildung 8.7‑27 Oberfläche bei Erweiterungsachsen-Lösung „5-Wagen mit zwei Freiheitsgraden“
Wichtig
Der Wagen mit zwei Freiheitsgraden verwendet standardmäßig die Erweiterungsachsennummern 1 und 2. Nach erfolgreicher UDP-Kommunikation kann über den Erweiterungsachsenstatus unter „Roboterverschiedene Status“ überprüft werden, ob die Erweiterungsachsen 1 und 2 servogesteuert an ihrem Ziel sind.
Abbildung 8.7‑28 Erweiterungsachsen des Wagens mit zwei Freiheitsgraden servogesteuert an Position
Bemerkung
Bezeichnung: Schaltfläche „Aktivieren“
Funktion: Aktivierungsstatus der Erweiterungsachse. Ein Klick auf die Schaltfläche deaktiviert die Erweiterungsachse (Enable entfernen).
Bemerkung
Bezeichnung: Schaltfläche „Deaktivieren“
Funktion: Deaktivierungsstatus der Erweiterungsachse. Ein Klick auf die Schaltfläche aktiviert die Erweiterungsachse (Enable geben).
Bemerkung
Bezeichnung: Schaltfläche „Referenzpunktfahrt“
Funktion: Referenzpunktfahrt der Erweiterungsachse von der aktuellen Position.
Bemerkung
Bezeichnung: Schaltfläche „Test“
Funktion: Funktionstest des Wagens mit zwei Freiheitsgraden.
Schritt 1: Nach erfolgreicher UDP-Kommunikation klicken Sie auf die Schaltfläche „Deaktivieren“, um die entsprechenden Erweiterungsachsen des Wagens mit zwei Freiheitsgraden zu aktivieren. Überprüfen Sie den Servoaktivierungsstatus der Erweiterungsachsen 1 und 2 über den Erweiterungsachsenstatus unter „Roboterverschiedene Status“.
Abbildung 8.7‑29 Aktivierung der Erweiterungsachsen des Wagens mit zwei Freiheitsgraden
Schritt 2: Nach erfolgreicher Aktivierung der Erweiterungsachse klicken Sie auf die Schaltfläche „Referenzpunktfahrt“, um die aktuelle Position der Erweiterungsachse als Nullpunkt zu setzen. Nach erfolgreicher Referenzpunktfahrt wird die Testschaltfläche hervorgehoben, andernfalls ist sie ausgegraut.
Abbildung 8.7‑30 Erfolgreiche Referenzpunktfahrt (aktuelle Position als Nullpunkt) für den Wagen mit zwei Freiheitsgraden
Schritt 3: Nach erfolgreicher Referenzpunktfahrt (aktuelle Position als Nullpunkt) des Wagens mit zwei Freiheitsgraden klicken Sie auf die Schaltfläche „Test“, um zur Oberfläche zu gelangen. Wählen Sie die Bewegungsart, geben Sie Parameter für den Bewegungstest ein und klicken Sie während der Bewegung auf die Schaltfläche „Stopp“, um die Stoppfunktion zu testen.
Bewegungsart: Gerade / Kreisbogen.
Strecke: -5000 ~ 5000 mm (bei gerader Bewegungsart).
Radius: 1 ~ 5000 mm (bei gerader Bewegungsart? Anmerkung: Dies scheint ein Fehler im Original zu sein, Radius gehört eher zur Kreisbogenbewegung. Wahrscheinlich ist gemeint: Radius: 1~5000mm (bei Kreisbogenbewegung)).
Winkel: -360 ~ 360° (bei Kreisbogenbewegung).
Geschwindigkeit: 1 ~ 100 %.
Abbildung 8.7‑31 Test des Wagens mit zwei Freiheitsgraden
8.7.4. Steuerung + Servoantrieb (485-Kommunikation)
8.7.4.1. Hardware-Verdrahtung
Bevor Sie die RS485-Kommunikation zur Steuerung der Servo-Erweiterungsachse verwenden, stellen Sie bitte zuerst eine Verbindung zwischen der RS485-Kommunikationsschnittstelle des Servoantriebs und der RS485-Kommunikationsschnittstelle am Robotersteuerschrank her. Das folgende Diagramm zeigt die elektrischen Schnittstellen des FAIRINO-Roboter-Ministeuerschranks (Easy-Made-Version):
Abbildung 8.7‑32 Elektrische Schnittstellen des FAIRINO-Roboter-Ministeuerschranks (Easy-Made)
Am Beispiel des Servoantriebs DYNATEC FD100-750C: Siehe die Klemmenbilder des Antriebspanels und die Definition der X3A-IN-Klemmen des FD100-750C. Wenn der Roboter für die Kommunikation mit dem FD100-750C-Servo-Erweiterungsantrieb konfiguriert wird, müssen die Klemmen 485-A0 und 485-B0 am Steuerschrank mit den Pins 4 bzw. 5 der X3A-IN-Klemmenleiste des Antriebs verbunden werden. (Bitte beachten Sie: Auf dem Servoantriebspanel befindet sich möglicherweise eine mit „485“ gekennzeichnete Klemmleiste. Diese ist derzeit nicht für die Benutzerverwendung freigegeben. Schließen Sie Ihr RS485-Kommunikationskabel nicht an diese Klemmen an.) Wenn mehrere Servoantriebe angeschlossen werden und dieser Antrieb der letzte in der Kette ist, muss der DIP-Schalter für den RS485-Kommunikationsabschlusswiderstand (DIP-Schalter Nr. 2) auf dem Panel geöffnet (eingeschaltet) werden.
Abbildung 8.7‑33 Bedienfeld des FD100-750C Antriebs
Abbildung 8.7‑34 Definition der X3A-IN-Klemmen des FD100-750C
8.7.4.2. Kommunikationskonfiguration
Stellen Sie sicher, dass Ihr RS485-Kommunikationskabel korrekt angeschlossen ist und sowohl der Roboter als auch die Servo-Erweiterungsachse ordnungsgemäß mit Strom versorgt sind. Öffnen Sie dann die Roboter-WebApp.
Klicken Sie auf das Bild mit der Kombinationsmethode „Steuerung + Servoantrieb“, um zur detaillierten Konfigurationsoberfläche zu gelangen. Wählen Sie in der Servoantriebskonfiguration die Nummer „1“ (Hinweis: Wenn mehrere Servos angeschlossen sind, dient diese Nummer zur Unterscheidung der verschiedenen Servos; wir werden später mehrfach darauf verweisen). Wählen Sie den Hersteller „DYNATEC“ und das entsprechende Servoantriebsmodell, hier „FD00-750C“. Die Softwareversion ist V1.0. Geben Sie die dem Servoantrieb entsprechende Auflösung ein, hier 131072. Geben Sie basierend auf Ihrem Mechanikmodell das mechanische Übersetzungsverhältnis ein, hier 15,45. Klicken Sie auf die Schaltfläche „Konfigurieren“.
Abbildung 8.7‑35 Servoantriebskonfiguration
Damit haben wir die 485-Kommunikationskonfiguration zwischen Roboter und Servoantrieb abgeschlossen. Sie können die Echtzeit-Statusinformationen des Servos in der „Servo-Statusleiste“ auf der rechten Seite der WebApp einsehen. Wie in der folgenden Abbildung dargestellt:
Abbildung 8.7‑36 Servo-Statusleiste
Jetzt müssen Sie der Reihe nach die Erweiterungsachse aktivieren und die Referenzpunktfahrt-Methode einstellen. Anschließend können Sie erste Bewegungstests durchführen. Führen Sie die folgenden Testschritte aus diesem Handbuch unter Sicherheitsvorkehrungen durch.
8.7.4.3. Bereits konfigurierte Servoantriebe
Bemerkung
Bezeichnung: Schaltfläche „Anzeigen“
Funktion: Klicken, um die Konfigurationsinformationen des Servoantriebs anzuzeigen.
Bemerkung
Bezeichnung: Schaltfläche „Aktivieren“
Funktion: Aktivierungsstatus des Servoantriebs. Ein Klick auf die Schaltfläche deaktiviert den Servoantrieb (Enable entfernen).
Bemerkung
Bezeichnung: Schaltfläche „Deaktivieren“
Funktion: Deaktivierungsstatus des Servoantriebs. Ein Klick auf die Schaltfläche aktiviert den Servoantrieb (Enable geben).
Bemerkung
Bezeichnung: Schaltfläche „Referenzpunktfahrt“
Funktion: Einstellung der Referenzpunktfahrt-Methode für den Servoantrieb.
Bemerkung
Bezeichnung: Schaltfläche „Servo-Fehler löschen“
Funktion: Bei einer Fehlermeldung des Servoantriebs hier klicken, um den Fehler zu löschen.
8.7.4.3.1. Servo-Steuerungsmodus und Aktivierung
Wählen Sie unter „Bereits konfigurierte Servoantriebe“ den Steuerungsmodus „Positionsmodus“. Wählen Sie die entsprechende Servonummer aus und klicken Sie auf die Schaltfläche „Deaktivieren“. Zuerst wird die Servonummer gesetzt. Nach erfolgreicher Einstellung wird der Steuerungsmodus gesetzt. Nach erfolgreicher Einstellung des Steuerungsmodus wird der Servoantrieb aktiviert (Bitte beachten Sie: Nach dem Umschalten des Steuerungsmodus muss der Servoantrieb zuerst deaktiviert (Enable entfernen) und dann wieder aktiviert werden, damit die Umschaltung des Steuerungsmodus wirksam wird. Nach erfolgreicher Aktivierung des Servos ist das Umschalten des Steuerungsmodus gesperrt).
Abbildung 8.7‑37 Servo-Steuerungsmodus und Aktivierung
Nach erfolgreicher Servoaktivierung können Sie in der „Servo“-Statusleiste unter „Roboterverschiedene Status“ beobachten, dass die Statusleuchte für „Servo aktiviert“ aufleuchtet. Dies zeigt an, dass der Servoantrieb aktiviert ist. Klicken Sie auf die Statustaste „Aktivieren“, um den Servoantrieb zu deaktivieren. Die Statusleuchte „Servo aktiviert“ erlischt.
Abbildung 8.7‑38 Servoantriebs-Statusleiste
8.7.4.3.2. Servo-Referenzpunktfahrt
Nach erfolgreicher Aktivierung des Servoantriebs wird die Schaltfläche „Referenzpunktfahrt“ hervorgehoben. Klicken Sie auf die Schaltfläche, um zur Einstellungsoberfläche zu gelangen. Wählen Sie die Referenzpunktfahrt-Methode „Aktuelle Position als Nullpunkt“. Stellen Sie die Suchgeschwindigkeit auf 5 mm/s und die Nullpunkt-Einrastgeschwindigkeit auf 1 mm/s ein. Klicken Sie auf die Schaltfläche „Einstellen“. Damit ist die Referenzpunktfahrt von der aktuellen Servoposition abgeschlossen. In der „Servo“-Statusleiste unter „Roboterverschiedene Status“ können Sie beobachten, dass die aktuelle „Servoposition“ 0 ist. (Bitte lesen Sie dieses Handbuch vollständig, bevor Sie die Referenzpunktfahrt-Methode auf „Negative Endlage als Nullpunkt“ oder „Positive Endlage als Nullpunkt“ für Tests umstellen).
Abbildung 8.7‑39 Servo-Referenzpunktfahrt
8.7.4.3.3. Servobewegung
Bevor Sie die Servomotorsteuerung tatsächlich steuern, machen Sie sich bitte mit dem „Positionsmodus“ und „Geschwindigkeitsmodus“ des Servomotors vertraut. Wir erinnern Sie noch einmal:
Positionsmodus: Sie können eine bestimmte Bewegungsgeschwindigkeit und Zielpositionsparameter eingeben. Der Servo bewegt sich mit der eingestellten Geschwindigkeit zur Zielposition und stoppt dort.
Geschwindigkeitsmodus: Sie können eine bestimmte Zielgeschwindigkeit eingeben. Der Servo bewegt sich kontinuierlich mit dieser Geschwindigkeit, bis Sie die Zielgeschwindigkeit auf 0 setzen oder den Servomotor deaktivieren.
Wenn der Steuerungsmodus umgeschaltet wird, wechselt die Anzeige „Aktueller Steuerungsmodus“ automatisch (Bitte beachten Sie: Nach dem Umschalten des Steuerungsmodus muss der Servo zuerst deaktiviert (Enable entfernen) und dann wieder aktiviert werden, damit die Umschaltung wirksam wird). Falls sich Ihr Servo derzeit nicht im „Positionsmodus“ befindet, schalten Sie ihn bitte in den Positionsmodus um. Geben Sie eine „Zielposition“ von 50 mm und eine Bewegungsgeschwindigkeit von 5 mm/s ein. Klicken Sie unter Sicherheitsvorkehrungen auf die Schaltfläche „Einstellen“. Der Servomotor bewegt sich nun gemäß Ihren Parametern. Sie können Position, Geschwindigkeit usw. des Servos in Echtzeit in der „Servo“-Statusleiste unter „Roboterverschiedene Status“ beobachten.
Abbildung 8.7‑40 Servobewegungstest (Positionsmodus)
Ändern Sie den Steuerungsmodus des Servos in „Geschwindigkeitsmodus“. Klicken Sie auf die Statustaste „Aktivieren“, um den Servoantrieb zu deaktivieren, und dann auf die Statustaste „Deaktivieren“, um ihn wieder zu aktivieren. Der Servo wechselt nun in den Geschwindigkeitsmodus (Bitte beachten Sie: Wenn sich der Servomotor bewegt, kann er nur durch Setzen der Zielgeschwindigkeit auf 0 gestoppt werden). Geben Sie eine Zielgeschwindigkeit von 5 mm/s ein und klicken Sie auf „Einstellen“. Der Servomotor bewegt sich nun kontinuierlich mit 5 mm/s. Auch hier können Sie Position, Geschwindigkeit usw. des Servos in Echtzeit in der „Servo“-Statusleiste beobachten.
Abbildung 8.7‑41 Servobewegungstest (Geschwindigkeitsmodus)
8.7.4.4. Erweiterte Einstellungen
In Notfallsituationen wie einer Roboterkollision oder einem Not-Halt soll die Erweiterungsachse ebenfalls einen Not-Halt auslösen und mit der eingestellten Not-Halt-Verzögerung zum Stillstand kommen. Nach der Behebung des Kollisionsalarms soll die Erweiterungsachse durch weitere Befehle den Betrieb wieder aufnehmen können. Dazu müssen in den erweiterten Einstellungen die Servo-Beschleunigungs- und -Verzögerungswerte sowie die Servo-Not-Halt-Beschleunigungs- und -Verzögerungswerte eingestellt werden, wie in der folgenden Abbildung gezeigt:
Abbildung 8.7‑42 Erweiterte Einstellungen
8.7.4.5. Erweiterungsachsen-Programmierung
Erstellen Sie in „Teach-Programm“ -> „Programmierung“ ein neues Benutzerprogramm „testServo.lua“. Wählen Sie „Peripheriebefehle“.
Abbildung 8.7‑43 Peripheriebefehle öffnen
Klicken Sie auf „Erweiterungsachse“, um die Oberfläche zum Hinzufügen von Erweiterungsachsen-Befehlen zu öffnen. Wählen Sie die Kombinationsmethode „Steuerung + Servoantrieb (485)“. Stellen Sie den Steuerungsmodus auf „Positionsmodus“ und klicken Sie auf die Schaltfläche „Hinzufügen“ auf der rechten Seite. Blättern Sie in der Oberfläche zum Hinzufügen von Erweiterungsachsen-Befehlen ganz nach unten und klicken Sie auf die Schaltfläche „Anwenden“.
Abbildung 8.7‑44 Steuerungsmodus der Erweiterungsachse einstellen
Daraufhin erscheint im Programm „testServo.lua“ eine Reihe von Befehlen zum Umschalten des Servo-Steuerungsmodus. Sie können den Roboter in den Automatikmodus schalten und dieses Programm ausführen.
Abbildung 8.7‑45 Programm zum Einstellen des Servo-Steuerungsmodus
Wie steuert man die Servobewegung über ein Benutzerprogramm? Öffnen Sie erneut die Oberfläche zum Hinzufügen von Erweiterungsachsen-Befehlen. Suchen Sie, wie unten gezeigt, den Bereich Parametereinstellung. Wählen Sie als Beispiel den Positionsmodus, geben Sie Zielposition und Bewegungsgeschwindigkeit ein und klicken Sie auf die Schaltfläche „Hinzufügen“. Blättern Sie ganz nach unten und klicken Sie auf „Anwenden“, und schließen Sie dann die Oberfläche zum Hinzufügen von Erweiterungsachsen-Befehlen.
Abbildung 8.7‑46 Bewegungsbefehl für Positionsmodus hinzufügen
Dem Programm „testServo.lua“ wird der Servo-Bewegungsbefehl hinzugefügt: „AuxServoSetTargetPos(1,50,5)“. Die Bedeutung der drei Parameter im Befehlsfunktion ist:
1: Die Servonummer ist 1.
50: Die Zielposition.
5: Die Zielgeschwindigkeit.
Abbildung 8.7‑47 Servo-Bewegungsprogramm im Positionsmodus
Schalten Sie den Roboter in den Automatikmodus und führen Sie dieses Programm aus. Ihr Servo bewegt sich nun mit 5 mm/s zur Position 50 mm.
Damit haben wir die grundlegende Konfiguration und Tests der RS485-gesteuerten Servo-Erweiterungsachse abgeschlossen. Sie können je nach tatsächlicher Situation Programme schreiben, die Roboterbewegungen und Servobewegungen kombinieren, wie im folgenden Beispielprogramm.
8.7.4.5.1. Beispiel für ein Programm mit koordinierter Bewegung von Erweiterungsachse und Roboter
Nr. |
Befehlsformat |
Kommentar |
1 |
AuxServoSetTargetPos(1,50,5) |
#Erweiterungsachse bewegt sich zum Referenzpunkt (Reset-Position) |
2 |
if(GetDI(8,0) == 1) then |
#Wenn CI0-Eingang aktiv ist |
3 |
AuxServoSetTargetPos(1,50,5) |
#Erweiterungsachse bewegt sich auf 50 mm |
4 |
PTP(testptp1,100,-1,0) |
#Roboter bewegt sich zu Punkt testptp1 |
5 |
elseif(GetDI(9,0) == 1) then |
#Wenn CI1-Eingang aktiv ist |
6 |
AuxServoSetTargetPos(1,150,5) |
#Erweiterungsachse bewegt sich auf 150 mm |
7 |
PTP(testptp2,100,-1,0) |
#Roboter bewegt sich zu Punkt testptp2 |
8 |
else |
#Wenn weder CI0 noch CI1 aktiv sind |
9 |
AuxServoSetTargetPos(1,300,5) |
#Erweiterungsachse bewegt sich auf 300 mm |
10 |
PTP(testptp3,100,-1,0) |
#Roboter bewegt sich zu Punkt testptp3 |
11 |
end |
#Ende |
8.7.4.6. Zusammenfassung
Zusammenfassend gibt es bei der Konfiguration der RS485-Kommunikation zwischen kollaborativem Roboter und Servo-Erweiterungsachse folgende wichtige Punkte zu beachten:
Korrekte Verbindung des RS485-Kommunikationskabels zwischen kollaborativem Roboter und Servoantrieb.
Korrekte Auswahl des Steuerungsmodus für die Servo-Erweiterungsachse.
Nach dem Umschalten des Steuerungsmodus muss der Servo zuerst deaktiviert (Enable entfernen) und dann wieder aktiviert werden, damit die Umschaltung wirksam wird.
8.8. Linienlasersensor
Der FAIRINO-kollaborative Roboter kann in Verbindung mit einem Lasersensor verwendet werden. Der Sensor erkennt charakteristische Positionen wie Schweißnähte, um die Programmierung zu vereinfachen und die Produktionseffizienz zu steigern. Der kollaborative Roboter kann mit Lasersensoren der Hersteller Ruiniu, Chuangxiang und Quanshi verwendet werden. Bei Verwendung verschiedener Sensoren muss nur das entsprechende Kommunikationsprotokoll geladen werden.
8.8.1. Hardware-Verdrahtung
Vor der Verwendung des Lasersensors muss dieser an einer geeigneten Position montiert werden. Verbinden Sie das Netzwerkkabel des Lasersensors direkt oder über einen Switch mit einer beliebigen RJ45-Schnittstelle des Robotersteuerschranks.
8.8.2. Sensorkonfiguration
Stellen Sie sicher, dass Ihr Lasersensor und Schweißbrenner fest am Roboterflansch montiert sind, der Lasersensor über ein Netzwerkkabel mit dem Robotersteuerschrank verbunden ist und die IP-Adressen von Lasersensor und Robotersteuerschrank im selben Netzwerksegment liegen. Schalten Sie den Roboter und den Sensor ein. Das folgende Bild zeigt die Montage eines Ruiniu-Lasersensors.
Abbildung 8.8‑1 Montage des Lasersensors
Geben Sie im Bereich Kommunikationskonfiguration die IP-Adresse und den Port des Sensors ein. Klicken Sie auf die Schaltfläche „Konfigurieren“. Die Abtastperiode ist standardmäßig 25. Wählen Sie als Koordinatensystem „Laserebenenkoordinatensystem“. Wählen Sie basierend auf Ihrem Sensormodell das entsprechende Kommunikationsprotokoll aus und klicken Sie auf die Schaltfläche „Laden“.
Abbildung 8.8‑2 Lasersensorkonfiguration
Klicken Sie im Bereich „Trackingsensor-Test“ nacheinander auf „Öffnen“ und „Schließen“ für den Sensor. Beobachten Sie, ob der Laser des Sensors ein- oder ausgeschaltet wird. Wenn der Laser normal ein- und ausgeschaltet wird, wurde die Kommunikation zwischen Roboter und Sensor erfolgreich hergestellt. Andernfalls überprüfen Sie bitte, ob Parameter wie IP-Adresse und Portnummer korrekt sind und ob die Netzwerkverbindung zwischen Sensor und Roboter korrekt ist.
Abbildung 8.8‑3 Lasersensor-Kommunikationstest
8.8.3. Sensorkalibrierung
Vor der Verwendung des Lasersensors muss dieser kalibriert werden. Die Kalibriergenauigkeit beeinflusst direkt die Tracking-Genauigkeit des Lasersensors. Die Kalibrierungsmethoden für Lasersensoren umfassen die Fünf-Punkt-Methode, die Sechs-Punkt-Methode und die Acht-Punkt-Methode. Am Beispiel der in Schweißanwendungen am häufigsten verwendeten Fünf-Punkt-Methode: Das Prinzip besteht darin, zuerst mit einem Werkzeug (Schweißbrenner) auf einen festen Kalibrierpunkt zu zeigen (siehe Abbildung 4) und dann mit dem Lasersensor diesen Punkt aus vier verschiedenen Ausrichtungen anzustrahlen und zu erkennen.
Bemerkung
Der Kalibrierpunkt muss vom Lasersensor genau erkannt werden können, andernfalls ist keine präzise Kalibrierung möglich.
Daraus wird die Koordinatenposition des Sensors berechnet. Der Kalibrierungsprozess wird im Folgenden detailliert beschrieben:
Abbildung 8.8‑4 Lasersensor-Kalibrierpunkt
Schritt 1: Öffnen Sie die Roboter-WebApp und klicken Sie nacheinander auf „Initiale Einstellungen“ -> „Basis“ -> „Werkzeugkoordinaten“, um zur Werkzeugkoordinaten-Oberfläche zu gelangen. Wählen Sie ein unbenutztes Werkzeugkoordinatensystem aus, klicken Sie auf „Ändern“, benennen Sie es in „Schweißbrenner“ um, wählen Sie den Werkzeugtyp „Werkzeug“ und die Einbauposition „Flansch“.
Abbildung 8.8‑5 Einstellen des Koordinatensystems „Schweißbrenner“
Wählen Sie erneut ein unbenutztes Koordinatensystem aus, benennen Sie es in „Lasersensor“ um, wählen Sie den Werkzeugtyp „Sensor“ und die Einbauposition „Flansch“.
Abbildung 8.8‑6 Einstellen des Koordinatensystems „Lasersensor“
Schritt 2: Kalibrieren Sie das Werkzeugkoordinatensystem des Schweißbrenners mit der Sechs-Punkt-Methode: Wählen Sie das Koordinatensystem „Schweißbrenner“ aus, klicken Sie auf die Schaltfläche „Ändern“ und kalibrieren Sie das Werkzeugkoordinatensystem des Schweißbrenners mit der Sechs-Punkt-Methode (Die spezifische Kalibrierungsmethode ist im FAIRINO-Dokument beschrieben und wird hier nicht wiederholt).
Abbildung 8.8‑7 Kalibrierung des Koordinatensystems „Schweißbrenner“
Schritt 3: Wählen Sie in der „Werkzeugkoordinatensystem-Einstellung“ das Koordinatensystem Nummer 0 (Basiskoordinatensystem), Standardname „toolcoord0“. Klicken Sie auf „Anwenden“, um das aktuelle Koordinatensystem auf das Basiskoordinatensystem umzustellen.
Abbildung 8.8‑8 Sensorkalibrierung Schritt 1
Schritt 4: Wählen Sie erneut das zuvor eingestellte Koordinatensystem „Lasersensor“ aus (nicht auf „Anwenden“ klicken). Klicken Sie auf die Schaltfläche „Bearbeiten“. Wählen Sie den Werkzeugtyp „Sensor“. Der Sensor ist „am Roboterflansch“ befestigt. Wählen Sie die Kalibrierungsmethode „Fünf-Punkt-Methode“.
Abbildung 8.8‑9 Sensorkalibrierung Schritt 2
Schritt 5: Bewegen Sie den Roboter per Hand (Drag), sodass die Spitze des Schweißbrenners auf den Kalibrierpunkt zeigt. Wählen Sie das Koordinatensystem „Schweißbrenner“ aus und klicken Sie auf „Anwenden“. Klicken Sie auf „Punkt 1 setzen“, wie in Abbildung 13.
Abbildung 8.8‑10 Sensorkalibrierung Schritt 3
Abbildung 8.8‑11 Sensorkalibrierung Schritt 4
Schritt 6: Wählen Sie erneut das Koordinatensystem Nummer 0 („toolcoord0“). Wählen Sie dann das Koordinatensystem „Sensor“ aus (nicht auf „Anwenden“ klicken). Sie können mit der Kalibrierung fortfahren.
Abbildung 8.8‑12 Sensorkalibrierung Schritt 5
Abbildung 8.8‑13 Sensorkalibrierung Schritt 6
Schritt 7: Bewegen Sie die Position des Lasersensors so, dass der Laserstrahl genau auf den Kalibrierpunkt trifft. Klicken Sie auf „Punkt 2 setzen“. Daraufhin werden an der entsprechenden Position links neben den Sensorausgangswerten die aktuellen Sensordaten angezeigt. Wenn die Daten normal erscheinen, war die Einstellung dieses Kalibrierpunkts erfolgreich; andernfalls muss erneut kalibriert werden.
Abbildung 8.8‑14 Sensorkalibrierung Schritt 7
Abbildung 8.8‑15 Sensorkalibrierung Schritt 8
Schritt 8: Lassen Sie den Laser nacheinander aus drei weiteren verschiedenen Ausrichtungen auf den Kalibrierpunkt strahlen und klicken Sie jeweils auf „Punkt 3 setzen“, „Punkt 4 setzen“ und „Punkt 5 setzen“. Klicken Sie abschließend auf die Schaltfläche „Berechnen“, nachdem Sie sichergestellt haben, dass die Daten für jeden Punkt normal sind.
Abbildung 8.8‑16 Sensorkalibrierung Schritt 9
Schritt 9: Die WebApp zeigt nun das Kalibrierungsergebnis und die Kalibriergenauigkeit des Sensors an. Klicken Sie auf die Schaltfläche „Anwenden“, um die Kalibrierung des Lasersensors abzuschließen. Wenn die Kalibriergenauigkeit zu schlecht ist, können Sie auf die Schaltfläche „Abbrechen“ klicken und die Kalibrierung wiederholen.
Abbildung 8.8‑17 Sensorkalibriergenauigkeit
8.8.4. Lasersensor-Anwendung
Wenden Sie vor der Verwendung des Lasersensors das Werkzeugkoordinatensystem „Schweißbrenner“ auf das aktuelle Werkzeugkoordinatensystem an.
Abbildung 8.8‑18 Anwenden des Schweißbrenner-Koordinatensystems
8.8.4.1. Teach-Punkte mit Lasersensor
Bewegen Sie den Roboter per Hand (Drag), sodass der Laserstrahl des Sensors auf den gewünschten Schweißnahtpunkt zeigt. Wählen Sie in der WebApp den Sensor als „Lasersensor“ aus, geben Sie den Sensorpunktnamen „laserPt“ ein und klicken Sie auf die Schaltfläche „Hinzufügen“. Erstellen Sie ein neues Benutzerprogramm „testLaser.lua“. Erstellen Sie einen Bewegungsbefehl PTP und wählen Sie als Zielpunkt „laserPt“. Führen Sie diesen Befehl einzeln aus. Der Schweißbrenner wird sich nun zu dem Punkt bewegen, auf den der Lasersensor zuvor gezeigt hat.
Abbildung 8.8‑19 Lasersensor-Schweißnahtpunkt
Abbildung 8.8‑20 Teach eines Sensorpunktes
Abbildung 8.8‑21 Schweißbrenner zeigt auf Schweißnahtpunkt
8.8.4.2. Laser-Positionssuche + Tracking
Die Kombination von kollaborativem Roboter und Lasersensor für Laser-Positionssuche und Laser-Tracking umfasst die folgenden Schritte:
Der Roboter bewegt sich zu einem Punkt außerhalb der Schweißnaht.
Die Laser-Positionssuche beginnt, und der Roboter bewegt sich mit dem Lasersensor in Richtung der Schweißnahtposition.
Der Lasersensor erkennt die Schweißnaht. Der Roboter bewegt den Schweißbrenner zum erkannten Schweißnahtpunkt.
Das Laser-Tracking beginnt, während sich der Roboter gleichzeitig zum Endpunkt der Schweißnaht bewegt. Der Lasersensor zeichnet während der Bewegung kontinuierlich die Position auf.
Der Schweißbrenner bewegt sich entlang der vom Lasersensor aufgezeichneten Bahn, wodurch der Tracking-Effekt erzielt wird.
Stellen Sie vor dem Testen der Positionssuche und des Trackings sicher, dass der Sensor korrekt montiert, das Werkzeugkoordinatensystem „Schweißbrenner“ korrekt kalibriert und der Lasersensor korrekt kalibriert wurde. Angenommen, die grüne Gerade in der Abbildung ist die zu schweißende Naht. Damit der Roboter automatisch den Schweißstartpunkt A findet und automatisch bis Punkt B schweißt, müssen die folgenden Befehle programmiert werden:
Abbildung 8.8‑22 Sensormontage
8.8.4.2.1. Positionssuch-Befehle schreiben
Erstellen Sie ein neues Benutzerprogramm „laserTrack.lua“. Wählen Sie „Schweißbefehle“. Klicken Sie auf „Lasertracking“. Es öffnet sich die Seite zum Hinzufügen von Lasertracking-Befehlen.
Abbildung 8.8‑23 Lasertracking-Befehl
Suchen Sie den Bereich „Positionssuchbefehl“. Wählen Sie als Koordinatensystemname „Lasersensor“. Wählen Sie die Richtung „+x“. Dies bedeutet, dass der Roboter mit dem Lasersensor von seiner aktuellen Position aus entlang der „+x“-Richtung des „Schweißbrenner“-Koordinatensystems fährt und dabei die Schweißnaht sucht. Die „Geschwindigkeit“ ist die Bewegungsgeschwindigkeit des Lasersensors während der Positionssuche. Die „Länge“ ist die maximale Suchstrecke des Lasersensors. Wenn der Roboter diese Strecke überschreitet, ohne die Schweißnaht gefunden zu haben, gibt er einen Fehler aus. Die maximale Suchzeit funktioniert ähnlich: Wird die Schweißnaht nicht innerhalb dieser Zeit gefunden, gibt der Roboter einen Fehler aus. Bitte geben Sie die oben genannten Parameter je nach tatsächlicher Szene korrekt ein. Klicken Sie nacheinander auf die Befehle „Positionssuche starten“ und „Positionssuche beenden“. Klicken Sie anschließend auf die Schaltfläche „Anwenden“.
Abbildung 8.8‑24 Positionssuch-Befehl hinzufügen
Daraufhin werden in „laserTrack.lua“ die entsprechenden Befehle zum Starten und Beenden der Laser-Positionssuche hinzugefügt.
Abbildung 8.8‑25 Positionssuch-Programm
8.8.4.2.2. Befehl zum Bewegen zum Suchpunkt schreiben
Fügen Sie einen Punkt-zu-Punkt-Bewegungsbefehl LIN hinzu. Der Zielpunkt ist „seamPos“, der Punkt der Laser-Positionssuche.
Bemerkung
Der Punkt „seamPos“ ist ein systeminterner Punktname im Roboter, der speziell für die Laser-Positionssuche reserviert ist. Dieser Punkt muss nicht angeteacht werden. Nach einer erfolgreichen Laser-Positionssuche werden die Suchpunktinformationen automatisch im Punkt „seamPos“ gespeichert.
Für den Suchpunkt kann ein Versatz eingestellt werden. Die Versatzarten können „Versatz im Basiskordinatensystem“, „Versatz im Werkzeugkoordinatensystem“ und „Versatz basierend auf Laserrohdaten“ sein.
Abbildung 8.8‑26 Optionen für Suchpunkt-Versatz
Wenn die Suchpunkt-Versatzfunktion aktiviert ist, können Versatzparameter eingestellt werden. „dx“ steht für den Versatzabstand in x-Richtung des gewählten Koordinatensystems, „drx“ für den Drehwinkel um die x-Achse. Klicken Sie auf die Schaltfläche „Hinzufügen“ und dann auf „Anwenden“.
Abbildung 8.8‑27 Einstellung der Suchpunkt-Versatzparameter
Daraufhin wird in „testTrack.lua“ ein Befehl zum Bewegen zum Suchpunkt hinzugefügt, wie in Abbildung 32.
Abbildung 8.8‑28 Programm mit Suchpunkt-Versatz
8.8.4.2.3. Laser-Tracking-Befehl schreiben
Öffnen Sie erneut die Seite zum Hinzufügen von „Lasertracking“-Befehlen. Klicken Sie nacheinander auf die Schaltflächen „Tracking starten“ und „Tracking stoppen“. Klicken Sie abschließend ganz unten auf der Seite auf die Schaltfläche „Anwenden“.
Abbildung 8.8‑29 Laser-Tracking starten und stoppen
Das Benutzerprogramm „testTrack.lua“ sieht nun so aus:
Abbildung 8.8‑30 Laser-Tracking-Programm
8.8.4.2.4. Befehle für Such-Startpunkt und Tracking-Endpunkt schreiben
Vor Beginn der Laser-Positionssuche muss ein Startpunkt für die Suche festgelegt werden. Der Roboter bewegt sich zuerst zu diesem Startpunkt und sucht dann entlang einer bestimmten Richtung und Geschwindigkeit. Teachen Sie den Such-Startpunkt „seamStartPt“ in der Nähe des Schweißnaht-Startpunkts A, wo der Laserstrahl hinfällt. Achten Sie darauf, dass der Such-Startpunkt und die Suchrichtung so gewählt werden, dass der Roboter die Schweißnaht innerhalb der eingestellten Strecke und maximalen Suchzeit finden kann.
Abbildung 8.8‑31 Such-Startpunkt
Teachen Sie am Ende der Schweißnaht den Tracking-Endpunkt „trackEndPt“.
Abbildung 8.8‑32 Such-Endpunkt (Tracking-Endpunkt)
Fügen Sie diese beiden Punkte zum Benutzerprogramm „testTrack.lua“ hinzu. Das endgültige Benutzerprogramm sieht wie folgt aus:
Abbildung 8.8‑33 Such- und Tracking-Programm
8.8.4.2.5. Schweißbezogene Befehle schreiben
Fügen Sie schließlich zwischen dem Schweiß-Suchpunkt „seampos“ und dem Tracking-Endpunkt „trackEndPt“ die Schweißbefehle ein. Das endgültige Programm sieht wie folgt aus:
Abbildung 8.8‑34 Such-, Tracking- und Schweißprogramm
Wenn Sie das obige Programm ausführen, bewegt sich der Roboter mit dem Lasersensor vom Such-Startpunkt aus, sucht die Naht. Sobald die Naht gefunden wurde, bewegt sich der Roboter sofort zum Naht-Startpunkt und zündet den Lichtbogen. Nach erfolgreicher Zündung bewegt sich der Roboter zum Naht-Endpunkt und verfolgt dabei die Nahtbahn. Am Naht-Endpunkt angekommen, beendet der Roboter das Schweißen.
8.8.4.3. Laser-Bahnaufzeichnung + Bahnreproduktion
Der Arbeitsablauf für Laser-Bahnaufzeichnung + Bahnreproduktion ist:
Der Roboter bewegt sich mit dem Lasersensor entlang einer Schweißnaht. Der Lasersensor zeichnet während der Bewegung die Bahndaten der Schweißnahtposition in Echtzeit auf.
Nach Abschluss der Bahnaufzeichnung bewegt sich der Roboter zum Startpunkt der aufgezeichneten Bahn.
Der Roboter reproduziert die Bewegung entlang der vom Lasersensor aufgezeichneten Bahn.
8.8.4.3.1. Befehle für die Roboter-Bahnaufzeichnung schreiben
Erstellen Sie ein neues Benutzerprogramm „testRecord.lua“. Klicken Sie auf „Laseraufzeichnung“, um die Seite zum Hinzufügen von Laseraufzeichnungs-Befehlen zu öffnen. Suchen Sie den Bereich „Schweißnaht-Datenaufzeichnung“. Wählen Sie „Aufzeichnung starten“ und klicken Sie auf die Schaltfläche „Hinzufügen“. Wählen Sie „Aufzeichnung stoppen“ und klicken Sie erneut auf „Hinzufügen“. Klicken Sie abschließend auf die Schaltfläche „Anwenden“.
Abbildung 8.8‑35 Laseraufzeichnung
Abbildung 8.8‑36 Aufzeichnung starten und stoppen
Auf der Seite erscheinen nun die Befehle zum Starten und Stoppen der Bahnaufzeichnung.
Abbildung 8.8‑37 Bahnaufzeichnungsprogramm
Angenommen, die grüne Linie AB in der Abbildung ist die Schweißnaht. Lassen Sie den Laserstrahl auf den Schweißnaht-Startpunkt A und den Schweißnaht-Endpunkt B zeigen. Teachen Sie den Startpunkt der Bahnaufzeichnung „recordStartPt“ und den Endpunkt „recordEndPt“.
Abbildung 8.8‑38 Start- und Endpunkt der Bahnaufzeichnung
Fügen Sie in „testRecord.lua“ zwei lineare (LIN) Bewegungsbefehle hinzu: einen zum Startpunkt der Bahnaufzeichnung „recordStartPt“ und einen zum Endpunkt „recordEndPt“. Ordnen Sie die Befehle so an, dass der Roboter folgende Aktionen ausführt: zuerst Bewegung zu „recordStartPt“, dann Start der Bahnaufzeichnung, Bewegung zu „recordEndPt“, dann Stopp der Bahnaufzeichnung.
Abbildung 8.8‑39 Bahnaufzeichnungsprogramm
8.8.4.3.2. Befehl zum Bewegen des Roboters zum Startpunkt der Bahnaufzeichnung schreiben
Klicken Sie auf „Laseraufzeichnung“, um die Seite zum Hinzufügen von Laseraufzeichnungs-Befehlen zu öffnen. Suchen Sie den Bereich „Bewegung zum Schweißnahtpunkt“. Wählen Sie die Bewegungsart PTP, geben Sie eine bestimmte Bewegungsgeschwindigkeit ein, klicken Sie auf „Bewegung zum Startpunkt“ und dann auf die Schaltfläche „Anwenden“.
Abbildung 8.8‑40 Bewegung zum Bahnstartpunkt
Das Benutzerprogramm „testRecord.lua“ sieht nun so aus:
Abbildung 8.8‑41 Programm zur Bewegung zum Bahnstartpunkt
8.8.4.3.3. Befehl für die Lasersensor-Bahnreproduktion schreiben
Klicken Sie auf „Laseraufzeichnung“, um die Seite zum Hinzufügen von Laseraufzeichnungs-Befehlen zu öffnen. Suchen Sie den Bereich „Schweißnaht-Datenaufzeichnung“. Wählen Sie „Bahnreproduktion“ und klicken Sie auf die Schaltfläche „Hinzufügen“. Klicken Sie auf die Schaltfläche „Lasertracking reproduzieren“. Klicken Sie abschließend auf die Schaltfläche „Anwenden“.
Abbildung 8.8‑42 Bahnreproduktion
Das Programm nach dem Hinzufügen sieht wie folgt aus:
Abbildung 8.8‑43 Bahnreproduktionsprogramm
8.8.4.3.4. Schweißbezogene Befehle schreiben
Fügen Sie schließlich vor dem Start der Bahnreproduktion und nach deren Ende die Schweißstart- und Schweißendbefehle ein:
Abbildung 8.8‑44 Bahnaufzeichnungs-, reproduktions- und Schweißprogramm
Wenn Sie das obige Programm ausführen, bewegt sich der Roboter zuerst mit dem Lasersensor entlang der Schweißnaht und zeichnet die gesamte Bahn auf. Dann bewegt sich der Roboter zum Startpunkt der aufgezeichneten Bahn, zündet den Lichtbogen und beginnt mit dem Schweißen entlang der vom Lasersensor aufgezeichneten Bahn. Nach Abschluss der Bahnreproduktion erlischt der Lichtbogen und der Schweißvorgang ist abgeschlossen.
8.8.5. Anpassung des Lasersensors an das offene Peripherieprotokoll der Steuerung
Schritt 1: Wenn eine „Verbindung über offenes Protokoll“ und „Steuerung des Lasersensors“ erforderlich ist, wählen Sie in der Sensortracking-Konfiguration unter „Protokolltyp“ die Option „Offenes Peripherieprotokoll“. Wenn das ursprüngliche Schema verwendet werden soll, wählen Sie „Bereits angepasste Geräte“. Konfigurieren und laden Sie die Laserperipherie in der Tracking-Sensor-Oberfläche.
Abbildung 8.8‑45 Konfigurationsoberfläche für „Verbindung über offenes Protokoll“ und „Steuerung des Lasersensors“
Schritt 2: Klicken Sie auf „Offenes Peripherieprotokoll“, um zur Oberfläche zu gelangen. Laden Sie in den „Einstellungen für offenes Protokoll“ das offene Peripherieprotokoll für den entsprechenden Lasersensor hoch. Wählen Sie nach erfolgreichem Upload die Protokollnummer und den hochgeladenen Dateinamen aus, klicken Sie auf „Konfigurieren“. Starten Sie dann unter „Gerätebetrieb und -status“ den hochgeladenen Lasersensor. Dadurch wird eine Verbindung mit dem entsprechenden Lasersensor hergestellt.
Abbildung 8.8‑46 Verbindung zum Lasersensor herstellen
8.9. Schleifen
In der Oberfläche „Initiale Einstellungen“ -> „Peripherie“ -> „Schleifen“ können Schleifgeräte derzeit über „Bereits angepasste Geräte“ und „Offenes Peripherieprotokoll“ verwendet werden.
Abbildung 8.9-1 Konfigurationsseite für Schleifstatus
8.9.1. Bereits angepasste Geräte
Kommunikationskonfiguration und -ladung: Konfigurieren Sie die Kommunikationsinformationen. Dazu müssen IP-Adresse, Port, Abtastperiode und Kommunikationsprotokoll eingestellt werden. Stellen Sie die Kommunikation mit dem Schleifgerät über die Schaltflächen „Laden/Entladen“ her.
Abbildung 8.9-2 Kommunikationskonfiguration und -ladung
Gerätefunktionen: Hier können Aktionen wie Geräteaktivierung, Fehler löschen und Kraftsensor nullen durchgeführt werden.
Abbildung 8.9-3 Gerätefunktionen
Parametereinstellung: Hier können Drehzahl, Kontaktkraft, Ausfahrstrecke und Steuerungsmodus des Schleifgeräts eingestellt werden. Nach erfolgreicher Einstellung werden die entsprechenden Daten und der Status in der rechten Statusleiste „Polish“ angezeigt.
Abbildung 8.9-4 Parametereinstellung
Abbildung 8.9-5 Parametereinstellung
8.9.2. Offenes Peripherieprotokoll
Klicken Sie auf „Offenes Peripherieprotokoll“, um zur Oberfläche zu gelangen. Laden Sie in den „Einstellungen für offenes Protokoll“ das offene Peripherieprotokoll für das entsprechende Schleifgerät hoch. Wählen Sie nach erfolgreichem Upload die Protokollnummer und den hochgeladenen Dateinamen aus, klicken Sie auf „Konfigurieren“. Starten Sie dann unter „Gerätebetrieb und -status“ das hochgeladene offene Peripherieprotokoll für das Schleifgerät. Dadurch wird eine Verbindung mit dem entsprechenden Schleifgerät hergestellt.
Abbildung 8.9‑6 Verbindung zum Lasersensor herstellen (Anmerkung: Bildtext scheint falsch, sollte „Schleifgerät“ heißen, aber Bild zeigt wahrscheinlich korrekte Stelle)
8.10. Hilfssensor
In der Oberfläche „Initiale Einstellungen“ -> „Peripherie“ -> „Hilfssensor“ können Hilfssensoren derzeit über „Bereits angepasste Geräte“ verwendet werden. Die Funktion „Benutzerdefiniertes Protokoll“ ist derzeit nicht verfügbar.
Abbildung 8.10‑1 Hilfssensor – Bereits angepasste Geräte
8.10.1. Bereits angepasste Geräte
Klicken Sie auf „Bereits angepasste Geräte“, um zur Konfigurationsoberfläche für Hilfssensoren zu gelangen.
Die Konfigurationsinformationen für den Hilfssensor umfassen Hersteller, Typ, Softwareversion und Montageposition. Der Benutzer kann die entsprechenden Hilfssensorinformationen je nach spezifischem Produktionsbedarf konfigurieren.
Wenn der Benutzer die Konfiguration ändern muss, kann er zuerst die entsprechende Hilfssensornummer auswählen, auf die Schaltfläche „Löschen“ klicken, um die entsprechenden Informationen zu löschen, und dann je nach Bedarf neu konfigurieren.
Abbildung 8.10‑2 Hilfssensor – Bereits angepasste Geräte
8.11. Kombinationsgerät (SmartTool + Kraftsensor-Kombination)
In der Oberfläche „Initiale Einstellungen“ -> „Peripherie“ -> „Kombinationsgerät“ können Kombinationsgeräte derzeit über „Bereits angepasste Geräte“ verwendet werden. „Benutzerdefiniertes Protokoll“ ist derzeit nicht verfügbar.
Abbildung 8.11-1 Kombinationsgerät
8.11.1. Bereits angepasste Geräte
Klicken Sie auf „Bereits angepasste Geräte“, um zur Konfigurationsoberfläche zu gelangen.
Die Konfigurationsinformationen umfassen Hersteller, Typ, Softwareversion und Montageposition. Verschiedene Hersteller entsprechen verschiedenen Typen. Der aktuelle Hersteller ist FR.
Der Benutzer kann die entsprechenden Geräteinformationen je nach spezifischem Produktionsbedarf konfigurieren. Nach erfolgreicher Konfiguration wird eine Tabelle mit den Geräteinformationen angezeigt. Wenn der Benutzer die Konfiguration ändern muss, kann er zuerst die entsprechende Nummer auswählen, auf die Schaltfläche „Löschen“ klicken, um die entsprechenden Informationen zu löschen, und dann je nach Bedarf neu konfigurieren.
Wichtig
Bevor Sie auf „Konfiguration löschen“ klicken, sollte sich das entsprechende Gerät im deaktivierten Zustand befinden.
Abbildung 8.11‑2 Bereits angepasste Geräte
8.11.1.1. FR
Der FR entsprechende Typ ist „SmartTool“ in Kombination mit einem Kraftsensor. Der kollaborative Roboter kann mit drei Kraftsensoren von Xinjingcheng, NSR und Gangzhichuangxin verwendet werden. Bei Verwendung verschiedener Sensoren muss nur das entsprechende Kommunikationsprotokoll geladen werden, wie folgt:
SmartTool + XJC-6F-D82 (Xinjingcheng).
SmartTool + NSR-FT Sensor A (NSR).
SmartTool + GZCX-6F-75A (Gangzhichuangxin).
Hardware-Montage
Zerlegen Sie den SmartTool-Griff, entnehmen Sie die mittlere Aufnahmevorrichtung und montieren Sie diese am Roboterflansch. Nach der Montage der Aufnahmevorrichtung setzen Sie den SmartTool-Griff wieder zusammen. Nach erfolgreichem Zusammenbau verbinden Sie das Verbindungskabel mit dem Roboterflansch.
Abbildung 8.11‑3 Montage der mittleren Aufnahmevorrichtung des SmartTool-Griffs
Abbildung 8.11‑4 SmartTool-Griff erfolgreich montiert
Nach der Montage des SmartTool-Griffs montieren Sie den Kraftsensor (am Beispiel Gangzhichuangxin) am Ende des SmartTool-Griffs und verbinden das Verbindungskabel mit dem SmartTool-Griff.
Abbildung 8.11‑5 Gangzhichuangxin-Kraftsensor am Ende des SmartTool-Griffs montiert
Gerätekonfiguration
Wichtig
Stellen Sie sicher, dass Ihr SmartTool-Griff fest am Roboterflansch montiert und korrekt mit dem Roboterflansch verbunden ist und dass der Kraftsensor fest am Ende des SmartTool-Griffs montiert und korrekt mit dem SmartTool-Griff verbunden ist.
Konfigurieren Sie den SmartTool-Griff (siehe Konfiguration der Schweißgrifftastenfunktionen).
Nach Abschluss der Tastenfunktionskonfiguration des SmartTool-Griffs wählen Sie den Hersteller „FR“. Wählen Sie die Informationen für „Typ“, „Softwareversion“ und „Montageposition“ aus und klicken Sie auf die Schaltfläche „Konfigurieren“.
Abbildung 8.11‑6 Konfigurationsoberfläche für FR-Geräteinformationen
Nach erfolgreicher Konfiguration der Geräteinformationen wählen Sie den konfigurierten Kraftsensor aus und klicken Sie auf die Schaltfläche „Aktivieren“, um den Kraftsensor zu aktivieren. Nach erfolgreicher Aktivierung klicken Sie auf die Schaltfläche „Nullpunktkorrektur“, um den Kraftsensor auf Null zu setzen, und überprüfen Sie die Daten in der Tabelle.
Abbildung 8.11‑7 Kraftsensor-Nullpunktkorrektur
Konfigurieren Sie basierend auf der aktuellen Flanschmontage die Nutzlastdaten auf der „Nutzlast“-Oberfläche und konfigurieren Sie die Werkzeugkoordinatendaten, den Werkzeugtyp und die Montageposition auf der „Werkzeugkoordinaten“-Oberfläche.
Abbildung 8.11‑8 „Endnutzlast“-Konfiguration
Abbildung 8.11‑9 „Werkzeugkoordinaten“-Konfiguration
Anwendung
Nach erfolgreicher Konfiguration der Geräteinformationen können die SmartTool-Tastenfunktionen und die Kraftsensorfunktionen unabhängig voneinander genutzt werden, z. B. zur Messung der Kraftgröße und -richtung sowie zum unterstützten Ziehen mit Sperre basierend auf dem Kraftsensor.
Abbildung 8.11‑10 Messung der Kraftgröße und -richtung
8.11.2. Lua-Flanschprotokoll für Kombinationsgeräte
Derzeit können auf der Flanschseite kombinierte Protokolle für zwei Geräte angewendet werden. Das zweite Gerät kann über ein Y-förmiges Kommunikationskabel oder die FAIRINO-SmartTool485-Schnittstelle angeschlossen werden. Derzeit voreingestellte eingebettete Kombinationsgeräteprotokolle umfassen: JUNEDO-Greifer + XJC-Kraftsensor, JUNEDO-Greifer + GZC-Kraftsensor, SmartTool + JUNEDO-Greifer, SmartTool + XJC-Kraftsensor, SmartTool + GZC-Kraftsensor. Das eingebettete Protokoll für Greifer + Kraftsensor ist unter „Initiale Einstellungen“, „Peripherie“, „Kraftsensor“ wählbar. Das eingebettete Protokoll für SmartTool + Greifer oder Kraftsensor ist unter „Initiale Einstellungen“, „Peripherie“, „Schweißgriff“ wählbar.
Die Vorgehensweise ist wie folgt:
Öffnen Sie die WebApp, klicken Sie nacheinander auf „Initiale Einstellungen“, „Peripherie“. Wählen Sie einen Gerätetyp aus, der kombiniert werden soll (z. B. Schweißgriff). Wählen Sie „Benutzerdefiniertes Protokoll“. Klicken Sie auf „Protokollverwaltung“, um die Konfiguration des Flanschprotokolls durchzuführen.
Derzeit voreingestellte eingebettete Kombinationsgeräteprotokolle umfassen: JUNEDO-Greifer + XJC-Kraftsensor, SmartTool + JUNEDO-Greifer, SmartTool + XJC-Kraftsensor. Diese voreingestellten Kombinationsprotokolle gehören zu den benutzerdefinierten Protokollen, beginnen mit „Custom_End“ und können heruntergeladen und gelöscht werden, wie in der folgenden Abbildung gezeigt.
Abbildung 8.11‑11 Voreingestellte eingebettete Protokolle für Schweißgriffe
8.12. Array-Saugnapf
8.12.1. Überblick
Die Montage eines Array-Saugnapfs am Roboterflansch ermöglicht eine schnelle Einrichtung von Werkstückaufnahmestationen für verschiedene Szenarien. Die Anzahl und Anordnung der Saugnäpfe kann je nach Größe und Form des Werkstücks angepasst werden, was die Effizienz und Stabilität verbessert.
Der kollaborative Roboter unterstützt Saugnapf-Arrays mit bis zu 20 Saugnäpfen. Es kann das Greifen und Loslassen eines einzelnen Saugnapfes separat gesteuert oder die synchrone Aktion aller Saugnäpfe des gesamten aktuell angeschlossenen Arrays gesteuert werden. Die Slave-Adresse jedes Saugnapfes kann von 1 bis 20 konfiguriert werden. Die Konfiguration erfolgt über die DynamicLAB-Software.
8.12.1.1. Hardware-Beschreibung
Der kollaborative Roboter kommuniziert und steuert das Saugnapf-Array über ein Ethernet-zu-485-Modul. Auf der WebApp wird das Kommunikationsprotokoll für das Array-Saugnapf generiert. Das Protokoll sendet die Steuerdaten per TCP/IP an das Ethernet-zu-485-Modul. Das Modul sendet die empfangenen Steuerdaten dann über 485 an die einzelnen Saugnäpfe und realisiert so die Steuerung des Array-Saugnapfs (Das obige Steuerdatenformat ist das ModbusRTU-Protokollformat).
Das Ethernet-zu-485-Modul fungiert dabei als Server für die Ethernet-Kommunikation und als Master für die 485-Kommunikation. Jeder Saugnapf im Array ist ein 485-Kommunikations-Slave, und jeder Saugnapf sollte eine unterschiedliche Slave-Adresse haben.
Abbildung 8.12-1 Anwendung eines Roboter-Saugnapf-Arrays mit Greifer
Das Ethernet-zu-485-Modul hat normalerweise zwei TCPServer-Ports, die mehreren 485-Slave-Ports entsprechen. Am Beispiel des CH9121: TCPServer-Port 1 entspricht den 485-Slave-Ports 1-10, TCPServer-Port 2 entspricht den 485-Slave-Ports 11-20. Der Roboter baut zwei TCP-Verbindungen mit dem Ethernet-zu-485-Modul auf und steuert so letztendlich die 20 Saugnäpfe.
Das oben genannte Ethernet-zu-485-Modul muss wie folgt konfiguriert werden:
① Die Ethernet-Seite wird als TCPServer konfiguriert, IP-Adresse: 192.168.58.10, Portnummer für Port 1 ist 50001, Portnummer für Port 2 ist 50002.
② Die 485-Seite wird mit einer Baudrate von 115200, 8 Datenbits, 1 Stoppbit, ohne Parität konfiguriert. Für das Ethernet-zu-485-Modul gibt es normalerweise eine Konfigurationssoftware, mit der die oben genannten Einstellungen vorgenommen werden können. Das folgende Bild zeigt die Konfigurationsoberfläche für das Ethernet-zu-485-Modul CH9121:
Abbildung 8.12-2 Konfigurationstool für Ethernet-zu-485-Modul
8.12.2. Funktionskonfiguration
Öffnen Sie die WebApp und klicken Sie nacheinander auf „Initiale Einstellungen“ -> „Peripherie“ -> „Array-Saugnapf“. Es gibt zwei Steuerungsmodi für Array-Saugnäpfe: Unicast-Modus und Broadcast-Modus:
Unicast-Modus: Das Kommunikationsprotokoll enthält Kommunikationssteuerungsinhalte für jeden einzelnen Saugnapf und ermöglicht so die unabhängige Steuerung jedes Saugnapfs im Array.
Broadcast-Modus: Ein Kommunikationsprotokoll wird für alle Saugnäpfe im Array generiert. Es kann das Greifen und Loslassen aller Saugnäpfe im Array synchron steuern, aber nicht einen einzelnen Saugnapf separat steuern.
Je nach tatsächlichem Szenario kann nur der Unicast-Modus konfiguriert werden, oder es können beide Modi gleichzeitig konfiguriert werden (wodurch sowohl die Einzelsteuerung als auch die Synchronsteuerung möglich ist).
Abbildung 8.12-3 Steuerungsmodi für Array-Saugnapf
8.12.2.1. Unicast-Modus Konfiguration
Öffnen Sie die WebApp und klicken Sie nacheinander auf „Initiale Einstellungen“ -> „Peripherie“ -> „Array-Saugnapf“ -> „Unicast-Modus“. Es gibt zwei Möglichkeiten, das Protokoll im Unicast-Modus zu konfigurieren: „Automatische Konfiguration“ und „Manuelle Konfiguration“:
Abbildung 8.12-4 Unicast-Konfigurationsmodus
Automatische Konfiguration: Eine vorhandene Protokolldatei wird direkt in die Robotersteuerung hochgeladen. Eine vorhandene Protokolldatei kann aus folgenden Quellen stammen: ① von einem anderen Roboter mit bereits konfiguriertem und getestetem Array-Saugnapf heruntergeladen; ② von Technikern basierend auf dem tatsächlichen Szenario erstellt (durch Schreiben einer eigenen Protokolldatei kann eine flexiblere und effizientere Saugnapfsteuerung erreicht werden). Wenn mehrere Geräte das gleiche Array-Saugnapf verwenden, kann die Bereitstellungsgeschwindigkeit durch direktes Hochladen des Protokolls über die automatische Konfiguration erhöht werden.
Manuelle Konfiguration: Das Kommunikationsprotokoll für jeden Saugnapf wird basierend auf der Slave-ID und den Vakuumwerten der Saugnäpfe im Array konfiguriert. Die Schritte für die manuelle Konfiguration sind wie folgt:
Wählen Sie die Slave-Adresse 1. Geben Sie den maximalen Vakuumwert, den minimalen Vakuumwert und die Greif-Timeout-Zeit ein (Timeout-Zeit derzeit nicht verfügbar). Klicken Sie auf die Schaltfläche „Konfigurieren“. Daraufhin erscheint im Bereich „Gerätebetrieb und -status“ das Saugnapfprotokoll mit der Protokollnummer 1. Gleichzeitig werden auf den Registerkarten „Manuelle Konfiguration“ und „Slave-Adresse“ alle derzeit konfigurierten Slave-Adressen angezeigt.
Abbildung 8.12-5 Konfiguration eines Unicast-Saugnapfs
Wiederholen Sie die obigen Schritte, um bei Bedarf Saugnäpfe mit mehreren Slave-Adressen zu konfigurieren. Jedes Mal, wenn ein Saugnapf konfiguriert wird, aktualisiert das Robotersystem automatisch den Inhalt des Saugnapf-Kommunikationsprotokolls für „Protokollnummer: 1“. Es können maximal 20 Saugnäpfe konfiguriert werden. Nachdem alle Saugnäpfe konfiguriert wurden, klicken Sie im Feld „Protokollnummer 1“ auf die Schaltfläche „Verbinden“. Die Kommunikation zwischen Roboter und Saugnapf beginnt, und die Betriebsstatus-LED leuchtet auf (Hinweis: Konfigurieren Sie zuerst alle Slave-Adressen und klicken Sie dann auf die Schaltfläche „Verbinden“. Eine Konfiguration von Saugnapf-Slaves nach dem Aufbau der Kommunikation ist ungültig).
Nach erfolgreichem Aufbau der Kommunikation zwischen Roboter und Saugnapf erscheint im Bereich „Gerätebetrieb und -status“ eine Liste mit den Bedienfeldern für alle konfigurierten Saugnapf-Slaves. Im Bedienfeld für die jedem Slave entsprechende Saugnapf können Sie den Saugnapf steuern und seinen Status überwachen (einschließlich „Saugstatus“, „Aktuelles Vakuum“, „Saugnapfdruck“ usw.). In der folgenden Abbildung sind die konfigurierten Saugnapf-Slave-IDs 2 und 11.
Abbildung 8.12-6 Unicast-Saugnapf-Verbindung
Klicken Sie in der oberen rechten Ecke des Bedienfelds für den Saugnapf mit Slave 1 auf die Schaltfläche „Saugen“. Der Saugnapf führt die Aktion „Saugen mit eingestelltem Vakuum“ aus. Daraufhin ändert sich die Schaltfläche „Saugen“ in „Loslassen“. Ein erneuter Klick auf diese Schaltfläche löst die Loslass-Aktion aus. Während der Ausführung dieser Aktionen werden die entsprechenden Statuspunkte wie „Saugstatus“, „Aktuelles Vakuum“ usw. in Echtzeit den Status des Saugnapfes anzeigen.
Bemerkung
Hinweis: Nach der Konfiguration des Saugnapfprotokolls und dem Verbindungsaufbau muss einmal auf die Schaltfläche „Saugen“ geklickt werden, um den Saugnapf zu aktivieren. Gleichzeitig kann so die Kommunikation zwischen Roboter und Saugnapf getestet werden.
Wenn die Verbindung zwischen Roboter und Saugnapf fehlschlägt, wird kein Saugnapf-Bedienfeld angezeigt und die Betriebsstatus-LED in „Protokollnummer: 1“ erlischt.
Bemerkung
Hinweis: Wenn während des Betriebs die physische Verbindung zwischen Saugnapf und Ethernet-zu-485-Modul getrennt und wieder verbunden wird, kann es vorkommen, dass keine Protokollverbindung hergestellt werden kann. In diesem Fall kann das Netzwerkkabel des Ethernet-zu-485-Moduls gezogen und wieder eingesteckt werden, um einen erneuten Verbindungsversuch zu starten.
Abbildung 8.12-7 Verbindung zwischen Roboter und Saugnapf fehlgeschlagen
8.12.2.2. Protokoll-Download im Unicast-Modus
Klicken Sie in der „Manuellen Konfiguration“ auf die Schaltfläche „Herunterladen“, um das Saugnapfprotokoll auf den lokalen Computer herunterzuladen. Das Saugnapfprotokoll ist ein zyklisch ausgeführtes LUA-Programm, das in jedem Zyklus die folgenden Schritte ausführt:
① Lesen der Saugnapf-Steuerdaten aus dem Roboter.
② Schreiben der Steuerdaten über einen Socket an den Saugnapf.
③ Lesen der Statusdaten über einen Socket vom Saugnapf.
④ Rückmeldung der Saugnapf-Statusdaten an den Roboter.
Durch die zyklische Ausführung des Saugnapf-Kommunikationsprotokolls wird die Kommunikationssteuerung zwischen Roboter und Saugnapf realisiert. Im Kommunikationsprotokoll können der Zyklus, die Adressen der Steuerdatenregister und die Adressen der Statusdatenregister benutzerdefiniert angepasst werden. Der Inhalt des Protokolls kann je nach tatsächlicher Situation geändert werden. Im Folgenden finden Sie ein Beispiel für einen Saugnapf-Kommunikationsprotokollcode:
Beispiel für ein Saugnapf-Protokollprogramm:
1local id = 1
2local ctrlValues = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
3local realTimeState = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
4local suckerConfig = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
5clearSuckerState()
6socket1 = TCPClientConnect('192.168.58.10', 50001, 500, 10, 2, 3)
7socket2 = TCPClientConnect('192.168.58.10', 50002, 500, 10, 2, 3)
8suckerConfig[1] = 30
9suckerConfig[2] = 20
10suckerConfig[3] = 100
11ModbusRTUOverTCPWriteMultiReg(socket1, 0, 0x0501, 3, suckerConfig)
12ModbusRTUOverTCPWriteMultiReg(socket2, 0, 0x0501, 3, suckerConfig)
13sleep_ms(10)
14while(1) do
15 setAllCtrl,ctrlValues[1],ctrlValues[2],ctrlValues[3],ctrlValues[4],ctrlValues[5],ctrlValues[6],ctrlValues[7],ctrlValues[8],ctrlValues[9], ctrlValues[10], ctrlValues[11], ctrlValues[12],ctrlValues[13],ctrlValues[14],ctrlValues[15],ctrlValues[16],ctrlValues[17],ctrlValues[18],ctrlValues[19], ctrlValues[20] = getSuckerCtrlState()
16 if(setAllCtrl ~= 0) then
17 ModbusRTUOverTCPWriteSingleReg(socket1, 0, 0x0500, setAllCtrl)
18 ModbusRTUOverTCPWriteSingleReg(socket2, 0, 0x0500, setAllCtrl)
19 ctrlValues = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
20 sleep_ms(1)
21 else
22 ModbusRTUOverTCPWriteSingleReg(socket1, 2, 0x0500, ctrlValues[2])
23 ModbusRTUOverTCPWriteSingleReg(socket2, 11, 0x0500, ctrlValues[11])
24 end
25 suckerState, pressValue, error, default1, default2 = ModbusRTUOverTCPReadReg(socket1, 2, 0x0600, 3)
26 realTimeState[1] = suckerState
27 realTimeState[2] = pressValue
28 realTimeState[3] = error
29 ctrlState, maxPress, minPress, time, default2 = ModbusRTUOverTCPReadReg(socket1, 2, 0x0500, 4)
30 realTimeState[4] = ctrlState
31 realTimeState[5] = maxPress
32 realTimeState[6] = minPress
33 realTimeState[7] = time
34 setSuckerRealtimeState(2, realTimeState)
35 suckerState, pressValue, error, default1, default2 = ModbusRTUOverTCPReadReg(socket2, 11, 0x0600, 3)
36 realTimeState[1] = suckerState
37 realTimeState[2] = pressValue
38 realTimeState[3] = error
39 ctrlState, maxPress, minPress, time, default2 = ModbusRTUOverTCPReadReg(socket2, 11, 0x0500, 4)
40 realTimeState[4] = ctrlState
41 realTimeState[5] = maxPress
42 realTimeState[6] = minPress
43 realTimeState[7] = time
44 setSuckerRealtimeState(11, realTimeState)
45 local stopFlag = GetOpenLUAStopFlag(id)
46 if(stopFlag ~= 0) then
47 TCPClientDisconnect(socket1)
48 TCPClientDisconnect(socket2)
49 clearSuckerState()
50 break
51 end
52 sleep_ms(100)
53end
Das obige Protokoll ruft die Saugnapf-Steuerdaten über den Befehl getSuckerCtrlState() ab, schreibt die Steuerdaten über den Befehl ModbusRTUOverTCPWriteSingleReg() über die Kommunikation in den Saugnapf, liest die Statusdaten des Saugnapfs über den Befehl ModbusRTUOverTCPReadReg() und meldet die Saugnapf-Statusdaten über setSuckerRealtimeState() an den Roboter zurück. Die detaillierte Definition der oben genannten Befehle ist wie folgt:
Tabelle 8.12-1 Rückgabewerte von getSuckerCtrlState()
Nr. |
Typ |
Variablenname |
Beschreibung |
1 |
int |
setAllCtrl |
Steuerdaten für Broadcast-Modus: 1 - Saugen mit maximalem Vakuum; 2 - Saugen mit eingestelltem Vakuum (d.h. das Saugnapfvakuum wird zwischen max. und min. Vakuum gehalten); 3 - Saugen stoppen |
2 ~ 21 |
int |
ctrlValues[i] |
Saugnapf-Steuerdaten für Slave-Adressen 1 ~ 20: 1 - Saugen mit maximalem Vakuum; 2 - Saugen mit eingestelltem Vakuum; 3 - Saugen stoppen |
Tabelle 8.12-2 Detaillierte Parameter von ModbusRTUOverTCPWriteSingleReg()
Nr. |
Typ |
Variablenname |
Beschreibung |
1 |
int |
socket |
Socket-Handle |
2 |
int |
slaveID |
Slave-Adresse 0-20; 0-Broadcast; 1~20-Slave-Adresse |
3 |
uint16_t |
regAddr |
Adresse des zu schreibenden Registers |
4 |
uint16_t |
data |
Zu schreibende Daten |
Tabelle 8.12-3 Detaillierte Parameter von ModbusRTUOverTCPWriteMultiReg()
Nr. |
Typ |
Variablenname |
Beschreibung |
1 |
int |
socket |
Socket-Handle |
2 |
int |
slaveID |
Slave-Adresse 0-20; 0-Broadcast; 1~20-Slave-Adresse |
3 |
uint16_t |
regStartAddr |
Startadresse für das Schreiben mehrerer Register |
4 |
int |
num |
Anzahl der zu schreibenden Register |
5 |
uint16_t[] |
data |
Array der zu schreibenden Dateninhalte |
Tabelle 8.12-4 Detaillierte Parameter von ModbusRTUOverTCPReadReg()
Nr. |
Typ |
Variablenname |
Beschreibung |
1 |
int |
socket |
Socket-Handle |
2 |
int |
slaveID |
Slave-Adresse 0-20; 0-Broadcast; 1~20-Slave-Adresse |
3 |
uint16_t |
regStartAddr |
Startadresse für das Lesen mehrerer Register |
4 |
int |
num |
Anzahl der zu lesenden Register |
Tabelle 8.12-5 Rückgabewerte von ModbusRTUOverTCPReadReg()
Nr. |
Typ |
Variablenname |
Beschreibung |
1 |
int |
suckState |
Aktueller Saugnapfstatus: 0 - Objekt losgelassen oder Saugnapfstart erfolgreich; 1 - Werkstück erkannt, Objekt angesaugt; 2 - Kein Objekt angesaugt; 3 - Objekt abgelöst |
2 |
float |
pressValue |
Aktuelles Vakuum / Druck |
3 |
int |
err |
Fehlercode: 0-normal; sonst: Fehler |
Tabelle 8.12-6 Detaillierte Parameter von setSuckerRealtimeState()
Nr. |
Typ |
Variablenname |
Beschreibung |
1 |
int |
slaveID |
Slave-ID |
2 |
int[] |
states |
|
8.12.2.3. Broadcast-Modus
Im Broadcast-Modus kann der kollaborative Roboter alle angeschlossenen Saugnäpfe gleichzeitig steuern.
Bemerkung
Hinweis: Der Broadcast-Modus kann erst konfiguriert werden, nachdem der Unicast-Modus konfiguriert wurde.
Öffnen Sie die WebApp und klicken Sie nacheinander auf „Initiale Einstellungen“ -> „Peripherie“ -> „Array-Saugnapf“. Konfigurieren Sie zuerst im Unicast-Modus alle gewünschten Saugnapf-Slaves (nur konfigurieren, keine Kommunikationsprotokollverbindung herstellen).
Klicken Sie auf „Broadcast-Modus“. Geben Sie in der „Parametereinstellung“ das „Maximale Vakuum“, das „Minimale Vakuum“ und die „Greif-Timeout-Zeit“ für die Saugnäpfe ein (Timeout-Zeit derzeit nicht verfügbar). Klicken Sie auf die Schaltfläche „Konfigurieren“. Daraufhin erscheint im Bereich „Gerätebetrieb und -status“ das Kommunikationsprotokoll für den Broadcast-Modus. Im Broadcast-Modus gelten die eingestellten Vakuumparameter für jeden angeschlossenen Saugnapf.
Abbildung 8.12-8 Parametereinstellung für Broadcast-Modus
Klicken Sie im Bedienfeld „Protokollnummer 1“ auf die Schaltfläche „Verbinden“. Die Betriebsstatus-LED leuchtet auf und zeigt an, dass die Kommunikationsverbindung zwischen Roboter und Array-Saugnapf hergestellt wurde. Nach erfolgreicher Verbindung wird die Liste der Bedienfelder für alle verbundenen Saugnäpfe im Bereich „Gerätebetrieb und -status“ angezeigt.
Klicken Sie in der „Parametereinstellung“ unter „Ein-Klick-Saugen“ auf „Starten“. Jeder Saugnapf im Array-Saugnapf führt die Aktion „Saugen mit eingestelltem Vakuum“ aus. Klicken Sie auf „Stopp“, um die Saugaktion aller Saugnäpfe zu beenden.
Abbildung 8.12-9 Kommunikationsaufbau im Broadcast-Modus
Das Herunterladen der Protokolldatei im Broadcast-Modus erfolgt genauso wie im Unicast-Modus. Die von beiden Stellen heruntergeladenen Protokolldateien können über die „Automatische Konfiguration“ auf der Unicast-Modus-Seite in den Roboter hochgeladen werden.
8.12.3. Anwendung von LUA-Programmen für Array-Saugnapf
Durch Hinzufügen von Befehlen zur Steuerung des Array-Saugnapfs, zum Abrufen des Status usw. in Roboter-LUA-Programmen können in Verbindung mit Roboter-Bewegungsbefehlen flexible und bequeme Anwendungen zum Greifen und Handhaben von Werkstücken realisiert werden.
Öffnen Sie die WebApp und klicken Sie nacheinander auf „Teach-Programm“ -> „Programmierung“. Erstellen Sie ein neues LUA-Programm „testSucker.lua“.
Abbildung 8.12-10 Neues Programm „testSucker.lua“ erstellen
Wählen Sie den Befehlstyp „Peripheriebefehle“. Klicken Sie in den Peripheriebefehlen auf die Schaltfläche „Saugnapf“. Daraufhin erscheint auf der rechten Seite der WebApp die Seite zum Hinzufügen von „Sucker“-Array-Saugnapf-Befehlen.
Abbildung 8.12-11 Seite zum Hinzufügen von Array-Saugnapf-Befehlen
8.12.3.1. Hinzufügen von Saugnapf-Steuerbefehlen
Durch das Schreiben von Saugnapf-Steuerbefehlen im LUA-Programm können Saug- und Loslass-Steuerungen für die Saugnäpfe realisiert werden. Die Steuerung im Unicast-Modus und Broadcast-Modus hat unterschiedliche logische Effekte.
8.12.3.1.1. Hinzufügen von Steuerbefehlen im Unicast-Modus
Die Unicard-Modus-Steuerung kann einzelne oder mehrere Saugnäpfe basierend auf der Start-Slave-Adresse und der Anzahl steuern. Für jeden Saugnapf kann ein anderer Steuerungsstatus eingestellt werden.
Klicken Sie auf der Seite zum Hinzufügen von Saugnapf-Befehlen auf „Saugnapf-Steuerbefehl“. Wählen Sie den Steuerungsmodus „Unicast-Modus“. Geben Sie die Start-Slave-Adresse 1 ein, die Anzahl der zu schreibenden Steuerungen 2 und den Saugstatus als „1,2“. Klicken Sie auf die Schaltfläche „Hinzufügen“. Daraufhin wird in der „Programmvorschau“ ein Saugnapf-Steuerbefehl im Unicast-Modus hinzugefügt.
Abbildung 8.12-12 Saugnapf-Steuerbefehl hinzufügen
Die Bedeutung der einzelnen Parameter im Saugnapf-Steuerbefehl ist wie folgt:
Slave-Adresse: Start-Slave-Adresse für die Steuerung im Unicast-Modus.
Anzahl der Schreibvorgänge: Anzahl der zu steuernden Saugnäpfe, beginnend mit der Start-Slave-Adresse im Unicast-Modus.
Saugstatus: Steuerungsstatus-Flag für jeden Saugnapf, beginnend mit der Start-Slave-Adresse (1 - Saugen mit maximalem Vakuum; 2 - Saugen mit eingestelltem Vakuum, d.h. Saugnapfvakuum zwischen max. und min. Vakuum halten; 3 - Saugen stoppen). Die Steuerungsstatus-Flags für jeden Saugnapf werden durch „,“ getrennt. Die Anzahl der Flags muss mit der Anzahl der zu steuernden Saugnäpfe übereinstimmen. Wenn zwei Saugnäpfe gesteuert werden sollen, einer mit „Saugen mit maximalem Vakuum“ und einer mit „Saugen mit eingestelltem Vakuum“, lautet der Eingabeinhalt für dieses Feld „1,2“.
Klicken Sie auf die Schaltfläche „Anwenden“. Daraufhin wird im Programm „testSucker.lua“ ein Saugnapf-Steuerbefehl hinzugefügt. Schalten Sie den Roboter in den Automatikmodus und führen Sie dieses LUA-Programm aus. Der Roboter steuert die beiden Saugnäpfe mit den Slave-Adressen 1 und 2 an, um mit maximalem Vakuum bzw. mit eingestelltem Vakuum zu saugen.
Abbildung 8.12-13 Saugnapf-Befehl im LUA-Programm hinzugefügt
8.12.3.1.2. Hinzufügen von Steuerbefehlen im Broadcast-Modus
Der im Broadcast-Modus-Steuerbefehl eingestellte Saugstatus gilt für alle aktuell angeschlossenen Saugnäpfe.
Klicken Sie auf „Saugnapf-Steuerbefehl“. Wählen Sie den Steuerungsmodus „Broadcast-Modus“. Geben Sie den Saugstatus 1 ein (Saugen mit maximalem Vakuum). Klicken Sie auf die Schaltfläche „Hinzufügen“.
Abbildung 8.12-14 Einen Broadcast-Steuerbefehl hinzufügen
Klicken Sie auf die Schaltfläche „Anwenden“. Daraufhin wird in „testSucker.lua“ ein Saugnapf-Steuerbefehl im Broadcast-Modus hinzugefügt. Schalten Sie den Roboter in den Automatikmodus und führen Sie dieses Programm aus. Alle verbundenen Saugnäpfe beginnen mit der Aktion „Saugen mit maximalem Vakuum“.
Abbildung 8.12-15 Einen Broadcast-Steuerbefehl im LUA-Programm hinzufügen
8.12.3.2. Hinzufügen von Befehlen zum Abrufen des Saugnapfstatus
Klicken Sie auf „Saugnapfstatus abrufen“. Wählen Sie die Slave-Adresse des Saugnapfs aus, dessen Status Sie abrufen möchten. Klicken Sie nacheinander auf die Schaltflächen „Hinzufügen“ und „Anwenden“. Dadurch wird in „testSucker.lua“ ein Befehl zum Abrufen des Saugnapfstatus hinzugefügt: „GetSuckerState(1)“.
Abbildung 8.12-16 Befehl zum Abrufen des Saugnapfstatus hinzufügen
Der Befehl GetSuckerState() gibt drei Werte zurück, wie folgt:
state: Aktueller Saugnapfstatus: 0 - Objekt losgelassen oder Saugnapfstart erfolgreich; 1 - Werkstück erkannt, Objekt angesaugt; 2 - Kein Objekt angesaugt; 3 - Objekt abgelöst.
pressValue: Aktuelles Vakuum / Druck.
err: Fehlercode: 0 - normal; sonst: Fehler.
Verwenden Sie in „testSucker.lua“ drei Variablen, um die Rückgabewerte der GetSuckerState()-Funktion zu empfangen. Zeigen Sie diese Informationen über die LUA-Variablenabfrage im Anzeigebereich der WebApp-Variablenabfrage an.
Abbildung 8.12-17 Programm zum Abrufen des Saugnapfstatus
8.12.3.3. Hinzufügen von Befehlen zum Warten auf den Saugnapf-Saugstatus
In praktischen Anwendungen von Array-Saugnäpfen muss oft gewartet werden, bis der Saugvorgang (oder das Loslassen) abgeschlossen ist, bevor die nächste Aktion ausgeführt wird. Der kollaborative Roboter bietet einen Befehl zum Warten auf den Abschluss der Saugnapfaktion. Die Befehlsausführung endet, wenn der Saugnapf den eingestellten Zustand erreicht; andernfalls wird innerhalb der eingestellten Timeout-Zeit blockierend auf den Abschluss der Saugnapfaktion gewartet.
Klicken Sie auf der Seite zum Hinzufügen von Array-Saugnapf-Befehlen auf „Auf Saugnapf-Saugstatus warten“. Wählen Sie die entsprechende Slave-Adresse des Saugnapfs (1). Wählen Sie den Steuerungsmodus „Werkstück erkannt, Objekt angesaugt“. Geben Sie eine Timeout-Zeit von 10000 ms ein. Klicken Sie auf die Schaltfläche „Hinzufügen“.
Abbildung 8.12-18 Befehl zum Warten auf Saugnapfstatus hinzufügen
Klicken Sie auf die Schaltfläche „Anwenden“. In „testSucker.lua“ wird ein Befehl zum Warten darauf hinzugefügt, dass der Saugnapf ein Objekt ansaugt.
Abbildung 8.12-19 Befehl zum Warten auf das Ansaugen eines Objekts im LUA-Programm hinzufügen
8.12.3.4. Anwendungsbeispiel
Beispiel für ein LUA-Programm zur Saugnapf-Handhabungssteuerung:
1while (1) do
2::satety_suck::
3PTP(sucker_safey,100,-1,0)
4PTP(sucker_suck,100,-1,0)
5SetSuckerCtrl(2, 1, {2})
6SetSuckerCtrl(11, 1, {2})
7loop1 = 0
8while (loop1 < 10) do
9 state, press, errorcode = GetSuckerState(2)
10 RegisterVar("number","state")
11 RegisterVar("number","press")
12 RegisterVar("number","errorcode")
13 state11, press11, errorcode11 = GetSuckerState(11)
14 RegisterVar("number","state11")
15 RegisterVar("number","press11")
16 RegisterVar("number","errorcode11")
17 loop1 = loop1 + 1
18 WaitMs(50)
19end
20
21if(state11 == 1) then
22 PTP(sucker_safey,100,-1,0)
23 PTP(sucker_release,100,-1,0)
24 WaitMs(1000)
25 SetSuckerCtrl(2, 1, {3})
26 SetSuckerCtrl(11, 1, {3})
27 WaitMs(500)
28else
29 PTP(sucker_safey,100,-1,0)
30 SetSuckerCtrl(2, 1, {3})
31 SetSuckerCtrl(11, 1, {3})
32 WaitMs(2000)
33 goto satety_suck
34end
35::satety_release::
36PTP(sucker_safey,100,-1,0)
37PTP(sucker_release,100,-1,0)
38SetSuckerCtrl(2, 1, {2})
39SetSuckerCtrl(11, 1, {2})
40loop1 = 0
41while (loop1 < 10) do
42 state, press, errorcode = GetSuckerState(2)
43 RegisterVar("number","state")
44 RegisterVar("number","press")
45 RegisterVar("number","errorcode")
46 state11, press11, errorcode11 = GetSuckerState(11)
47 RegisterVar("number","state11")
48 RegisterVar("number","press11")
49 RegisterVar("number","errorcode11")
50 loop1 = loop1 + 1
51 WaitMs(50)
52end
53
54if(state11 == 1) then
55 PTP(sucker_safey,100,-1,0)
56 PTP(sucker_suck,100,-1,0)
57 WaitMs(1000)
58 SetSuckerCtrl(2, 1, {3})
59 SetSuckerCtrl(11, 1, {3})
60 WaitMs(500)
61else
62 PTP(sucker_safey,100,-1,0)
63 SetSuckerCtrl(2, 1, {3})
64 SetSuckerCtrl(11, 1, {3})
65 WaitMs(2000)
66 goto satety_release
67end
68end
8.13. CNC-Funktionspaket basierend auf FOCAS (nur unter Linux-Systemen)
8.13.1. Überblick
Um automatisierte Be- und Entladeprozesse in der Werkzeugmaschinenbearbeitung zu realisieren, wurde ein CNC-Funktionspaket entwickelt, das auf der FOCAS-Kommunikation basiert. Es ermöglicht die Kommunikationsinteraktion und koordinierte Bewegung zwischen dem kollaborativen Roboter und der CNC-Werkzeugmaschine.
Wie in der Abbildung gezeigt, basiert die FOCAS-Kommunikation auf Ethernet. Durch Verbinden des Netzwerkanschlusses des Robotersteuerschranks mit dem eingebetteten Netzwerkanschluss der Werkzeugmaschine über ein Netzwerkkabel wird die FOCAS-Kommunikation zwischen Roboter und Maschine hergestellt, wodurch die CNC-Steuerung und die Maschinenzustandsüberwachung auf der Roboterseite realisiert werden.
Abbildung 8.13‑1 Topologie der FOCAS-Kommunikation zwischen Roboter und CNC
Die derzeit vom CNC-Funktionspaket des Steuerschranks basierend auf FOCAS-Kommunikation unterstützten Funktionen zur Maschinensteuerung und Zustandsrückmeldung sind in der Tabelle aufgeführt.
Tabelle 8.13-1 Vom CNC-Funktionspaket basierend auf FOCAS-Kommunikation unterstützte Funktionen
Nr. |
Funktionsname |
Beschreibung |
1 |
Maschinentyp |
Zustandsrückmeldung |
2 |
FOCAS-Kommunikationsstatus |
Zustandsrückmeldung |
3 |
Automatikmodus Betrieb |
Steuerung, Zustandsrückmeldung |
4 |
Alarmstatus |
Zustandsrückmeldung |
5 |
Sicherheitstür |
Zustandsrückmeldung |
6 |
Spannfutter |
Steuerung, Zustandsrückmeldung |
7 |
Not-Halt |
Steuerung, Zustandsrückmeldung |
8.13.2. Detaillierte Bedienungsanleitung
8.13.2.1. FOCAS-Kommunikationsaufbau
Die FOCAS-Kommunikation basiert auf Ethernet. Es ist erforderlich, den Roboter, die CNC-Maschine und den PC in einem lokalen Netzwerk (LAN) zu verbinden, um die physische Verbindung herzustellen. Über das offene Roboterprotokoll wird schließlich die FOCAS-Kommunikation aufgebaut.
8.13.2.1.1. Netzwerkkonfiguration
Schritt 1: Ändern Sie zuerst die IP-Adresse des PCs so, dass sie sich im selben Netzwerksegment wie der Robotersteuerschrank befindet. Die IP-Adresse des Robotersteuerschranks ist „192.168.58.2“.
Wenn kein Switch für die Vernetzung vorhanden ist, können die beiden integrierten Netzwerkanschlüsse des Robotersteuerschranks für die Vernetzung verwendet werden. Gehen Sie wie folgt vor: Melden Sie sich in der WebAPP des Roboters an. Gehen Sie zu Systemeinstellungen -> Allgemeine Einstellungen -> Netzwerkeinstellungen. Stellen Sie die IP des Netzwerkanschlusses 0 auf: 192.168.58.2; die IP des Netzwerkanschlusses 1 auf: 192.168.57.2. Stellen Sie gleichzeitig WebAPP auf Netzwerkanschluss 0 und WebRecovery auf Netzwerkanschluss 1, wie in der Abbildung gezeigt. Klicken Sie nach Abschluss aller Einstellungen auf „Netzwerk einstellen“.
Abbildung 8.13‑2 Roboter-Netzwerkkonfiguration
Schritt 2: Starten Sie anschließend den Steuerschrank neu und verbinden Sie ihn über den Netzwerkanschluss der Netzwerkkarte 0 mit dem PC. Melden Sie sich in der Roboter-WebApp an. Konfigurieren Sie gleichzeitig die IP-Adresse der zu kommunizierenden CNC-Maschine und den PC sowie den Robotersteuerschrank so, dass sie sich im selben Netzwerksegment befinden, d.h. 192.168.58.xx. Ändern Sie außerdem den Port der Maschine auf 8193. Damit ist die gesamte Netzwerkkonfiguration abgeschlossen.
8.13.2.1.2. Konfiguration der offenen Protokolldatei
Schritt 1: Führen Sie anschließend die Konfiguration des offenen Peripherieprotokolls durch. Erstellen Sie zuerst eine neue LUA-Datei, deren Name mit „CtrlDev_CNC“ beginnt, als offene Protokolldatei für den Aufbau der FOCAS-Kommunikation, z.B. CtrlDev_CNC_demo.lua.
In dieser Datei muss die offene Protokoll-ID festgelegt werden. Über die Funktion CNCComSet wird die Verbindung mit der CNC hergestellt oder getrennt. Die Parameter der CNCComSet-Funktion werden in der folgenden Tabelle erläutert. Ein Beispielcode folgt.
Tabelle 8.13-2 Parameter der CNCComSet-Funktion
Nr. |
Funktionsname |
Beschreibung |
1 |
Maschinenhersteller |
0-ungültig 1-Maschine (FOCAS) |
2 |
Kommunikationsbefehl |
1-Verbindung herstellen 1001-Verbindung trennen |
3 |
Maschinen-IP-Adresse |
– |
4 |
Maschinen-Portnummer |
– |
Beispielcode für offenes Protokoll zum Aufbau einer FOCAS-Kommunikationsverbindung:
1local id = 1 --Offene LUA-Protokoll-ID
2--FOCAS-Verbindung trennen
3CNCComSet(1, 1001, '192.168.57.100', 8193)
4sleep_ms(1000)
5--FOCAS-Verbindung herstellen
6CNCComSet(1, 1, '192.168.57.100', 8193)
7sleep_ms(1000)
8while(1) do
9sleep_ms(5000)
10end
Schritt 2: Nachdem Sie die LUA-Datei für das offene Protokoll erstellt haben, wählen Sie die gerade erstellte Datei CtrlDev_CNC_fanuc.lua aus und laden Sie sie hoch. Wählen Sie die in der Datei festgelegte ID aus. Wählen Sie in der Dropdown-Liste die hochgeladene offene Protokolldatei aus und klicken Sie auf „Konfigurieren“.
Abbildung 8.13‑3 Hochladen und Konfigurieren der offenen Protokolldatei
Schritt 3: Überprüfen Sie anschließend, ob alle Kommunikationsverbindungen normal sind, und stellen Sie sicher, dass sich die CNC-Maschine im eingeschalteten Zustand befindet. Klicken Sie im offenen Protokoll auf die Schaltfläche „Verbinden“. Über den CNC->FOCAS-Kommunikationsstatus in der Statusrückmeldungsleiste auf der rechten Seite können Sie bestätigen, ob eine Verbindung mit der Maschine hergestellt wurde (rot: Verbindung hergestellt; grau: Verbindung getrennt), wie in der Abbildung gezeigt.
Abbildung 8.13‑4 FOCAS-Kommunikationsverbindung hergestellt
8.13.2.2. Erläuterung der CNC-Zustandsrückmeldung
Die Zustandsrückmeldung der CNC-Maschine wird im äußeren CNC-Symbol in der Peripherie-Statusrückmeldungsleiste ganz rechts in der WebAPP angezeigt, wie in der Abbildung gezeigt. Ein Klick darauf zeigt den gesamten aktuellen Zustand der Maschine an, einschließlich Gerätehersteller, Maschinentyp, FOCAS-Kommunikationsstatus, Alarmsignale, Maschinenbetriebs-/Bearbeitungsstatus, Maschinentür-Öffnungs-/Schließzustand, Maschinenspannfutter-Zustand, Maschinen-Not-Halt-Zustand.
Abbildung 8.13‑5 CNC-Zustandsrückmeldungsleiste
Die Bedeutung der einzelnen Statusanzeigeleuchten der CNC ist in der folgenden Tabelle aufgeführt.
Tabelle 8.13-3 Bedeutung der Statusanzeigeleuchten im CNC-Rückmeldesymbol
Nr. |
Funktionsname |
Beschreibung |
1 |
FOCAS-Kommunikationsstatus |
grau - Kommunikation getrennt rot - Kommunikation normal |
2 |
Alarmsignale |
grau - keine Warnung rot - Warnung vorhanden |
3 |
Maschinenbetriebs-/Bearbeitungsstatus |
grau - gestoppt grün - in Betrieb |
4 |
Maschinentür-Öffnungs-/Schließzustand |
grau - geschlossen grün - geöffnet |
5 |
Maschinenspannfutter-Zustand |
grau - gelöst grün - gespannt |
6 |
Maschinen-Not-Halt-Zustand |
grau - Not-Halt unwirksam grün - Not-Halt wirksam |
8.13.2.3. Erläuterung der CNC-Zustandsrückmeldung
Die Steuerung der CNC-Maschine befindet sich im offenen Peripherieprotokoll. Nachdem die FOCAS-Kommunikationsverbindung hergestellt wurde, klicken Sie oben rechts auf das konfigurierte offene Peripherieprotokoll, um die CNC-Steuerungsseite zu öffnen, wie in der Abbildung gezeigt.
Bemerkung
Zu den Steuerungstasten gehören Türsteuerung (Öffnen, Schließen), Spannfuttersteuerung (Spannen, Lösen), Start-/Stoppsteuerung (Betrieb, Stopp) und Not-Halt-Steuerung (Not-Halt, unwirksam). Alle Steuersignale sind flankengesteuert.
Abbildung 8.13‑6 CNC-Steuerungsseite
8.13.2.4. Erläuterung des CNC-Teach-Programms
Das CNC-Funktionspaket unterstützt das Aufrufen von Steuerbefehlen in Teach-Programmen und das Abrufen des Maschinenstatus in Echtzeit. Öffnen Sie nacheinander „Teach-Programm“ -> „Programmierung“ -> „Peripheriebefehle“ -> „CNC“. Alle unterstützten CNC-Teach-Befehle werden angezeigt, wie in der Abbildung gezeigt.
Abbildung 8.13‑7 CNC-Teach-Befehle
Bemerkung
Die Steuerbefehle entsprechen eins zu eins der CNC-Steuerung und sind alle flankengesteuert. Das bedeutet, dass nach der Ausführung eines Startbefehls unbedingt ein Stopp erfolgen muss, bevor der nächste Startbefehl wirksam wird.
„Maschinenaktuellen Zustand abrufen“ ist eine LUA-Funktion. Diese Funktion gibt 9 Parameter zurück, deren Bedeutung in der folgenden Tabelle aufgeführt ist.
Tabelle 8.13-4 Rückgabewerte von „Maschinenaktuellen Zustand abrufen“
Nr. |
Name |
Bedeutung |
1 |
Gerätehersteller |
0-ungültig 1-andere - reserviert |
2 |
FOCAS-Kommunikationsstatus |
0-Kommunikation normal andere - Kommunikation getrennt |
3 |
Maschinentyp (string) |
‚15‘ : Series 150/150i ‚16‘ : Series 160/160i ‚18‘ : Series 180/180i ‚21‘ : Series 210/210i ‚30‘ : Series 300i ‚31‘ : Series 310i ‚32‘ : Series 320i ‚0‘ : Series 0i |
4 |
Maschinentyp (string) |
‚15‘ : Series 150/150i ‚16‘ : Series 160/160i ‚18‘ : Series 180/180i ‚21‘ : Series 210/210i ‚30‘ : Series 300i ‚31‘ : Series 310i ‚32‘ : Series 320i ‚0‘ : Series 0i |
5 |
Maschinenbetriebsstatus |
0 - gestoppt 1 - in Betrieb |
6 |
Maschinen-Not-Halt-Status |
0 - Not-Halt wirksam andere - Not-Halt unwirksam |
7 |
Maschinen-Alarmstatus |
0 - keine Warnung andere - Warnung vorhanden |
8 |
Maschinentür-Status |
0 - geöffnet 1 - geschlossen |
9 |
Maschinenspannfutter-Status |
0 - gelöst 1 - gespannt |
Am Beispiel eines Roboter-Be- und Entladeprozesses wurde ein LUA-Teach-Programmbeispiel erstellt. Dieses Beispielprogramm umfasst die Steuerung des CNC-Türschließens, -öffnens, -betriebs, -stopps, Spannfutter-Lösens und -Spannens. Es verwendet den aktuellen CNC-Status als Bedingung und lässt den Roboter Bewegungen zu drei Punkten ausführen (Sicherheitspunkt, Aufnahmepunkt, Ablagepunkt), wie im Code gezeigt.
Beispiel für ein LUA-Teach-Programm zur koordinierten Bewegung von Roboter und CNC:
1 while (1) do
2 CNCDoorClose()
3 CNCWorkStart()
4 WaitMs(1000)
5 t1,t2,t3,t4,t5,t6,t7,t8,t9=CNCGetStatus()
6 if t5 == 1 then
7 PTP(CNCsafe,100,-1,0)
8 else
9 CNCWorkStop()
10 CNCDoorOpen()
11 WaitMs(1000)
12 PTP(CNCg1,100,-1,0)
13 WaitMs(1000)
14 CNCChuckOpen()
15 PTP(CNCg2,100,-1,0)
16 PTP(CNCsafe,100,-1,0)
17 end
18 t1,t2,t3,t4,t5,t6,t7,t8,t9=CNCGetStatus()
19 if t8 == 0 then
20 if t5 == 0 then
21 PTP(CNCg2,100,-1,0)
22 PTP(CNCg1,100,-1,0)
23 CNCChuckFastening()
24 WaitMs(1000)
25 PTP(CNCsafe,100,-1,0)
26 end
27 end
28end
8.14. Konfiguration einer virtuellen Wand basierend auf einem Kraftsensor
Die Funktion der virtuellen Wand basierend auf einem Kraftsensor ermöglicht es, durch manuelles Setzen einer virtuellen Wand den Arbeitsraum des Roboters einzuschränken und so direkte Kollisionen zu vermeiden.
8.14.1. Montage und Konfiguration des Kraftsensors
Schritt 1: Am Beispiel des „KunWei“-Sensors muss bei der Montage sichergestellt werden, dass die Richtung des Kraftsensor-Koordinatensystems mit der des Flansch-Koordinatensystems übereinstimmt, wie in Abbildung 1 gezeigt (In Abbildung 1: rot = X+ Richtung des Flanschkoordinatensystems, grün = Y+ Richtung, blau = Z+ Richtung).
Abbildung 8.14‑1 Montage des Kraftsensors
Schritt 2: Klicken Sie im Menü „Initiale Einstellungen“ -> „Peripherie“ -> „Kraftsensor“ auf „Bereits angepasste Geräte“, um zur Konfigurationsoberfläche für das Kraftsensor-Gerät zu gelangen.
Die Konfigurationsinformationen für den Kraftsensor umfassen Hersteller, Typ, Softwareversion und Montageposition. Der Benutzer kann die entsprechenden Kraftsensorinformationen je nach spezifischem Produktionsbedarf konfigurieren. Wenn der Benutzer die Konfiguration ändern muss, kann er zuerst die entsprechende Nummer auswählen, auf die Schaltfläche „Löschen“ klicken, um die entsprechenden Informationen zu löschen, und dann je nach Bedarf neu konfigurieren. Die genaue Vorgehen ist in der Abbildung dargestellt.
Schritt 3: Wählen Sie die konfigurierte Kraftsensornummer aus, klicken Sie auf die Schaltfläche „Reset“. Nachdem auf der Seite der erfolgreiche Befehlssendevorgang angezeigt wurde, klicken Sie auf die Schaltfläche „Aktivieren“. Überprüfen Sie den Aktivierungsstatus in der Kraftsensorinformationstabelle, um festzustellen, ob die Aktivierung erfolgreich war. Darüber hinaus hat der Kraftsensor einen Anfangswert. Der Benutzer kann je nach Bedarf „Nullpunktkorrektur“ und „Nullpunkt entfernen“ wählen. Für die Nullpunktkorrektur des Kraftsensors muss sichergestellt sein, dass der Sensor horizontal und vertikal nach unten ausgerichtet ist und der Roboter keine Nutzlast konfiguriert hat.
Abbildung 8.14‑2 Kraftsensor-Konfiguration und -Aktivierung
Abbildung 8.14‑3 Kraftsensor-Aktivierung
8.14.2. Konfiguration der virtuellen Wand
Für das unterstützte Ziehen mit Kraftsensor muss unter dem Sensor ein Ziehgriff montiert und ein Werkzeugkoordinatensystem konfiguriert werden. Die genaue Vorgehen ist in Abbildung 4 dargestellt. Die Erkennung von Interferenzbereichen erfolgt dann anhand der Position des eingestellten Werkzeugkoordinatensystems. Ist keines eingestellt, dient der Flansch als Referenz.
Schritt 1: Klicken Sie im Menü „Initiale Einstellungen“ -> „Sicherheit“ -> „Interferenzbereich“ auf „Einzeln“, um zur Konfigurationsoberfläche für den Interferenzbereich zu gelangen.
Schritt 2: Es müssen die Interferenzart und das Verhalten beim Betreten des Interferenzbereichs konfiguriert werden. Klicken Sie auf „Quaderinterferenz“, um zur Konfigurationsoberfläche zu gelangen. Stellen Sie das Verhalten beim Betreten des Interferenzbereichs im Ziehemodus auf „Ziehen uneingeschränkt“. Die Konfiguration für die Bewegung beim Betreten des Interferenzbereichs kann beliebig gewählt werden.
Schritt 3: Je nach Bedarf können die Parametereinstellungen geändert werden. Die Erkennungsmethode kann entweder „Befehlsposition“ oder „Rückmeldeposition“ sein. Der Interferenzbereichsmodus kann entweder „Interferenz innerhalb des Bereichs“ oder „Interferenz außerhalb des Bereichs“ sein. Als Referenzkoordinatensystem wird „Basiskoordinate“ gewählt. Die Einstellungen erfolgen je nach tatsächlicher Verwendung. Detaillierte Vorgehen siehe Abbildung.
Abbildung 8.14‑4 Montage des Ziehgriffs und Einstellung des Werkzeugkoordinatensystems
Abbildung 8.14‑5 Parametereinstellung für virtuelle Wand
Schritt 4: In der Parametereinstellung kann der Interferenzbereichsmodus entweder „Interferenz innerhalb des Bereichs“ oder „Interferenz außerhalb des Bereichs“ sein.
Abbildung 8.14‑6 Interferenz innerhalb des Bereichs
Abbildung 8.14‑7 Interferenz außerhalb des Bereichs
Schritt 5: Einrichten des Interferenzbereichs. Die genaue Vorgehen ist in den Abbildungen 7 und 8 dargestellt. Es wird empfohlen, bei Auswahl von „Interferenz außerhalb des Bereichs“ den Interferenzbereich so groß wie möglich zu wählen.
Abbildung 8.14‑8 Einrichten eines Interferenzbereichs mit der Zwei-Punkt-Methode
Abbildung 8.14‑9 Einrichten eines Interferenzbereichs mit der Mittelpunkt+Seitenlängen-Methode
8.14.3. Unterstütztes Ziehen mit Kraftsensor
Schritt 1: Klicken Sie im Menü „Hilfsanwendungen“ -> „Werkzeuganwendungen“ auf „Ziehen sperren“, um zur Funktionsoberfläche für die unterstützte Sperre mit Kraftsensor zu gelangen.
Schritt 2: Stellen Sie die Parameter wie in der Abbildung gezeigt ein, um die Funktion der virtuellen Wand basierend auf dem Kraftsensor zu realisieren. Der Effekt ist: Bei Annäherung an die virtuelle Wand wird der Widerstand größer; bei Entfernung von der virtuellen Wand funktioniert das unterstützte Ziehen mit Kraftsensor normal.
Abbildung 8.14‑10 Parametereinstellung für unterstütztes Ziehen mit Kraftsensor
Die spezifische Wirkung der Parameter:
Adaptive Auswahl: Bei Bedarf während der Montage einschalten. Nach dem Einschalten wird das Ziehen schwerer.
Trägheitsparameter: Passen das haptische Feedback während des Ziehvorgangs an. Nur unter Anleitung von Fachpersonal vorsichtig einstellen.
Dämpfungsparameter:
Translationsrichtung: Empfohlene Einstellung zwischen [100-200].
Rotationsrichtung: Empfohlene Einstellung zwischen [3-10], wobei der Einstellbereich für die RZ-Richtung [0,1-5] ist.
Effekt: Beim Ziehen mit Sensor erschwert eine Erhöhung der Dämpfung das Ziehen, eine Verringerung der Dämpfung macht das Ziehen zu leicht (nicht zu klein einstellen).
Gesamtbereich Dämpfungsparameter: Translation XYZ: [100-1000]; Rotation RX, RY: [3-50], RZ: [2-10].
Maximale Zugkraft ist 50, maximale Ziehgeschwindigkeit ist 180.
Steifigkeitsparameter: Alle auf 0 setzen.
Zugkraftschwelle: Translation XYZ: [5-10]; Rotation RX, RY, RZ: [0,5-5].
Maximale Zugkraft: 50.
Maximale Ziehgeschwindigkeit: 180.
8.14.4. Funktion zum gemischten Ziehen mit 6-Achsen-Kraft und Gelenkimpedanz
8.14.4.1. Überblick
Die Funktion zum gemischten Ziehen mit 6-Achsen-Kraft und Gelenkimpedanz nutzt den Kraftsensor, um äußere Kräfte zu erfassen. Der Roboter wird im Ziehemodus unterstützt. Durch Anpassen des Verstärkungsfaktors können unterschiedliche Zieherfahrungen erzielt werden. Die Gelenkimpedanz hingegen verwendet eine Impedanzregelung, um die Zugkraft zu begrenzen.
8.14.4.2. Montagekonfiguration und Nullpunktkorrektur des Kraftsensors
Montagekonfiguration des Kraftsensors
Die detaillierte Vorgehen zur Montagekonfiguration des Kraftsensors siehe oben: Konfiguration einer virtuellen Wand basierend auf einem Kraftsensor.
Nullpunktkorrektur des Kraftsensors
Um das Ziehen des Roboters zu erleichtern, muss unter dem Sensor ein Ziehgriff montiert werden, wie in Abbildung 1 gezeigt.
Abbildung 8.14‑11 Ziehgriff
Schritt 1: Stellen Sie basierend auf der tatsächlichen Länge des Griffs das Werkzeugkoordinatensystem ein, wie in Abbildung 2 gezeigt.
Schritt 2: Klicken Sie im Menü „Initiale Einstellungen“ -> „Basis“ -> „Nutzlast“ auf „Sensor“, um zur Oberfläche für die Kraft-/Drehmomentsensor-Nutzlast zu gelangen.
Hilfe der Ziehtaste stellen Sie das Roboterende horizontal nach unten. Klicken Sie nacheinander auf „Nutzlast“ -> „Sensoridentifikation“, um zur Oberfläche zu gelangen. Suchen Sie im Bereich „Automatische Nullpunktkorrektur des Sensors“ die Schaltfläche „Anfangsposition aufzeichnen“. Schalten Sie dann den Robotermodus in den Automatikmodus und klicken Sie auf die Schaltfläche „Automatische Nullpunktkorrektur“. Nachdem das Programm abgeschlossen ist, ist die Nullpunktkorrektur des Sensors abgeschlossen. Detaillierte Vorgehen siehe Abbildung.
Abbildung 8.14‑12 Einstellung des Werkzeugkoordinatensystems
Abbildung 8.14‑13 Automatische Nullpunktkorrektur des Kraft-/Drehmomentsensors
8.14.4.3. Gemischtes Ziehen mit 6-Achsen-Kraft und Gelenkimpedanz
Unterstütztes Ziehen
Schritt 1: Klicken Sie im Menü „Hilfsanwendungen“ -> „Werkzeuganwendungen“ auf „Ziehen sperren“, um zur Funktionsoberfläche für das gesperrte Ziehen zu gelangen.
Schritt 2: Stellen Sie im Bereich „Gemischtes Ziehen mit 6-Achsen-Kraft und Gelenkimpedanz“ den Steuerungsstatus auf „Aktivieren“ und den Impedanz-Aktivierungsstatus auf „Deaktivieren“. Stellen Sie den Zugverstärkungsfaktor ein. Stellen Sie die Endlineargeschwindigkeit auf 1000 mm/s und die Winkelgeschwindigkeitsbegrenzung auf 100 °/s ein. Klicken Sie dann auf die Schaltfläche „Anwenden“, um die Funktion zu aktivieren. Die genaue Konfiguration ist in Abbildung 4 dargestellt.
Schritt 3: Schalten Sie den Robotermodus in den Ziehemodus. Sie können den Roboter nun ziehen. Der Effekt ist: Ziehen am Roboterende ist leicht und fühlt sich gut an; Ziehen an den Gelenken ist schwer.
Abbildung 8.14‑14 Konfigurationsparameter für unterstütztes Ziehen mit 6-Achsen-Kraft
Gelenkimpedanzregelung
Die Impedanzregelung dient dazu, die Zugkraft und die Zugposition zu begrenzen. Ihr Standardzustand ist „Deaktiviert“.
Die genaue Vorgehen ist in Abbildung 5 dargestellt. Stellen Sie den Impedanz-Aktivierungsstatus auf „Aktivieren“. Stellen Sie dann die Dämpfungskoeffizienten und Steifigkeitskoeffizienten wie in Abbildung 5 gezeigt ein. Die Funktion der Steifigkeitskoeffizienten ist derzeit nicht verfügbar.
Abbildung 8.14‑15 Konfigurationsparameter für Gelenkimpedanz
Die spezifische Wirkung der Parameter:
Steuerungsstatus: Nach dem Aktivieren kann diese Funktion im Ziehemodus verwendet werden.
Impedanz aktivieren: Nach dem Aktivieren müssen die Steifigkeits- und Dämpfungsparameter konfiguriert werden. Sie dienen dazu, die Zugkraft und die Zugposition zu begrenzen.
Zugverstärkung (Drag Gain): Der Parameter sollte vorzugsweise zwischen [0-5] eingestellt werden. Bei 0 kann der Roboter nicht gezogen werden. Bei 1 verbessert sich der Zieheffekt nicht. Bei Werten über 1 ist das Ziehen leicht und fühlt sich gut an. Je größer der Wert, desto leichter das Ziehen.
Steifigkeitsverstärkung (Stiffness Gain): Wird auf 0 gesetzt. Die Wirkung besteht darin, nach dem Ziehen in die Ausgangsposition vor dem Ziehen zurückzukehren.
Dämpfungsverstärkung (Damping Gain): Dient zur Begrenzung der Zugkraft. Parameterbereich für Achsen 1-3: [0-0,5]; für Achsen 4-5: [0-0,1]; für Achse 6: [0-0,05].
Endlineargeschwindigkeit: 1000 mm/s. Wird diese Grenze überschritten, schaltet der Roboter in den Handmodus und meldet „TCP Übergeschwindigkeit“.
Winkelgeschwindigkeitsbegrenzung: 100 °/s. Wird diese Grenze überschritten, schaltet der Roboter in den Handmodus und meldet „TCP Übergeschwindigkeit“.
8.15. Funktion zur Laser-Punktverfolgung mit Erweiterungsachse
8.15.1. Systemaufbau für Laser-Punktverfolgung mit Roboter-Erweiterungsachse
Abbildung 8.15‑1 Systemaufbau für Laser-Punktverfolgung mit Roboter-Erweiterungsachse
Im System ist (a) der Computer, (b) der Roboter und sein Steuerschrank, (c) der Positionierer und die Antriebsgeräte, (d) der Schweißnaht-Tracking-Lasersensor und (e) das Schweißgerät mit Zubehör.
Abbildung 8.15‑2 Schematische Darstellung der Peripheriemontage
Der Schweißnaht-Tracking-Lasersensor und der Schweißbrenner (b) sind am Roboterflansch (a) montiert. Der Positionierer (c) ist fest außerhalb des Roboters montiert.
8.15.2. Kommunikationskonfiguration der Erweiterungsachse
Die Kommunikationsmethoden zwischen Roboter und Erweiterungsachse umfassen die Verwendung von UDP oder RS485.
Abbildung 8.15‑3 Konfigurationsseite für die Erweiterungsachse
Klicken Sie in der Roboter-Bedienoberfläche auf „Initiale Einstellungen“ -> „Peripherie“ -> „Erweiterungsachse“, um zur Konfigurationsseite für die Erweiterungsachse zu gelangen. Am Beispiel der Verbindung des Roboters mit einer SPS über UDP-Kommunikation: Klicken Sie auf das Symbol „UDP-Kommunikation“, um zur Konfigurationsseite für die UDP-Kommunikation der Erweiterungsachse zu gelangen.
Abbildung 8.15‑4 Konfigurationsoberfläche für UDP-Kommunikation
Auf der Konfigurationsseite für die UDP-Kommunikation der Erweiterungsachse können Sie die entsprechende Erweiterungsachsennummer auswählen, die UDP-Kommunikationsparameter (Adresse, Port, Zyklus, Paketverlusterkennung usw.) verbinden und konfigurieren sowie die Positionierabschlusszeit der Erweiterungsachse einstellen.
Die Konfiguration der Erweiterungsachse ist nicht der Schwerpunkt dieser Funktionsbeschreibung. Detaillierte Konfigurationen finden Sie im entsprechenden Abschnitt des Benutzerhandbuchs.
8.15.3. Verbindungskonfiguration des Schweißnaht-Tracking-Lasersensors
Verbinden Sie den Schweißnaht-Tracking-Lasersensor über die folgende Konfigurationsseite:
Abbildung 8.15‑5 Seite zum Verbinden und Konfigurieren des Lasersensors
Klicken Sie auf „Initiale Einstellungen“ -> „Peripherie“ -> „Linienlasersensor“ -> „Bereits angepasste Geräte“, um zur Konfigurationsseite zu gelangen. Die Konfigurationsseite umfasst „Sensorkonfiguration“, „Kommunikationskonfiguration und -ladung“ und „Basisberechnung“. Klicken Sie auf „Sensorkonfiguration“, um die Filterparameter für die Sensoreingänge einzustellen. Klicken Sie auf „Kommunikationskonfiguration und -ladung“, um die entsprechenden Kommunikationsparameter zur Verbindung mit dem Lasersensor einzugeben.
Die Konfiguration des Lasersensors ist nicht der Schwerpunkt dieser Funktionsbeschreibung. Detaillierte Konfigurationen finden Sie im entsprechenden Abschnitt des Benutzerhandbuchs.
8.15.4. Verbindungskonfiguration des Schweißgeräts
Konfigurieren Sie das Schweißgerät über die folgende Konfigurationsseite:
Abbildung 8.15‑6 Konfigurationsseite für das Schweißgerät
Die Schweißgerätekommunikation kann über IO-Kommunikation oder RS485-Kommunikation erfolgen. Klicken Sie auf „Initiale Einstellungen“, „Peripherie“, „Schweißgerät“, um zur Konfigurations- und Verbindungsoberfläche zu gelangen. Hier können Module wie „Steuerungstyp“, „Signal-IO-Zuordnung“, „Schweißprozessparameter“ und „Schweißgerätetest“ konfiguriert werden.
Die Konfiguration des Schweißgeräts ist nicht der Schwerpunkt dieser Funktionsbeschreibung. Detaillierte Konfigurationen finden Sie im entsprechenden Abschnitt des Benutzerhandbuchs.
8.15.5. Kalibrierung des Werkzeugkoordinatensystems und des Lasersensor-Koordinatensystems
Nach der Montage des Schweißbrenners am Roboterflansch kalibrieren Sie die externen Parameter des Schweißbrenners und des Lasersensors:
Abbildung 8.15‑7 Konfigurationsseite für Werkzeugkoordinatensysteme
Klicken Sie auf „Initiale Einstellungen“, „Basis“, „Koordinatensysteme“, „Werkzeug“, um zur Seite für die Werkstückkoordinatensystem-Einstellung zu gelangen.
Abbildung 8.15‑8 Auswahl der 6-Punkt-Methode zur Kalibrierung des Schweißbrenners
Wählen Sie ein leeres Koordinatensystem aus. Wählen Sie den Werkzeugtyp „Werkzeug“. Wählen Sie die 6-Punkt-Methode zur Kalibrierung des Schweißbrenner-Werkzeugs.
Abbildung 8.15‑9 Auswahl der 5-Punkt-Methode zur Kalibrierung des Lasersensors
Wählen Sie ein leeres Koordinatensystem aus. Wählen Sie den Werkzeugtyp „Sensor“. Wählen Sie die 5-Punkt-Methode zur Kalibrierung des Lasersensors.
Die Kalibrierung des Werkzeugkoordinatensystems und des Lasersensor-Koordinatensystems ist nicht der Schwerpunkt dieser Funktionsbeschreibung. Detaillierte Kalibrierungsmethoden finden Sie im entsprechenden Abschnitt des Benutzerhandbuchs.
8.15.6. Funktion zur Laser-Punktverfolgung mit Erweiterungsachse
Es gibt zwei Methoden für die Laser-Punktverfolgung mit Erweiterungsachse: Bei der Methode mit transformierten Laserdaten wird die Tracking-Strategie „erst aufzeichnen, dann reproduzieren“ ausgeführt. Bei der Methode mit nicht transformierten Laserdaten wird die Tracking-Strategie „gleichzeitig aufzeichnen und reproduzieren“ ausgeführt.
8.15.6.1. Kalibrierung des Erweiterungsachsen-Koordinatensystems
Bei Verwendung des Erweiterungsachsen-Koordinatensystems zur Realisierung der synchronen Laser-Tracking-Bewegung von Erweiterungsachse und Roboter muss das Erweiterungsachsen-Koordinatensystem kalibriert werden.
Abbildung 8.15‑10 Seite zur Einstellung des Erweiterungsachsen-Koordinatensystems
Klicken Sie auf „Initiale Einstellungen“ -> „Peripherie“ -> „Erweiterungsachse“, um zur Einstellungsoberfläche für das Erweiterungsachsen-Koordinatensystem zu gelangen. Wählen Sie die einzustellende Erweiterungsachsennummer aus, klicken Sie auf die Schaltfläche „Bearbeiten“, wählen Sie „4-Positionierer mit einem Freiheitsgrad“ und speichern Sie.
Abbildung 8.15‑11 Kalibrierungsseite für die Erweiterungsachse
Achten Sie bei der Kalibrierung der Erweiterungsachse darauf, die „Position des Roboters relativ zur Erweiterungsachse“ als „außerhalb der Erweiterungsachse“ zu wählen. Für den Fall eines Positionierers wählen Sie die 4-Punkt-Methode zur Kalibrierung.
Die Kalibrierung der Erweiterungsachse ist nicht der Schwerpunkt dieser Funktionsbeschreibung. Detaillierte Kalibrierungsmethoden finden Sie im entsprechenden Abschnitt des Benutzerhandbuchs.
8.15.6.2. Synchrone Laser-Tracking-Bewegung von Erweiterungsachse und Roboter
8.15.6.2.1. Methode mit transformierten Laserdaten
Für das synchrone Laser-Tracking von Erweiterungsachse und Roboter im Basiskoordinatensystem ist keine Kalibrierung der externen Achse erforderlich. Die übrigen Funktionseinstellungen und der Aufbau sind identisch mit dem synchronen Tracking im Erweiterungsachsen-Koordinatensystem.
Konfigurieren Sie zuerst die Laser-Tracking-Daten. Stellen Sie die Daten des Laser-Trackers auf den Typ mit Transformation ein.
Abbildung 8.15‑12 Einstellen der Laserdaten auf Typ mit Transformation
Klicken Sie auf „Initiale Einstellungen“, „Peripherie“, „Tracking“, „Sensor“. Klicken Sie im Dropdown-Menü der Seite auf „Sensorkonfiguration“. Stellen Sie „Datenverarbeitung“ auf den Typ mit Transformation ein.
Abbildung 8.15‑13 Funktionsseite für Laser-Tracking
Diese Funktion wird durch eine Kombination mehrerer Module realisiert. Die Hauptfunktionsmodule sind in der Funktion „Laser-Tracking“ enthalten. Klicken Sie auf „Teach-Programm“ -> „Programmierung“ -> „Laser-Tracking“, um zur Laser-Tracking-Seite zu gelangen. Sie können auch auf „Laseraufzeichnung“ klicken, um direkt zur Aufzeichnungsseite zu gelangen.
Abbildung 8.15‑14 Befehl zum Starten der Laser-Datenaufzeichnung hinzufügen
Fügen Sie den Befehl zum Starten der Laser-Datenaufzeichnung hinzu, nachdem sich die Erweiterungsachse zum Schweißstartpunkt bewegt hat.
Abbildung 8.15‑15 Befehl zum Beenden der Laser-Datenaufzeichnung hinzufügen
Fügen Sie den Befehl zum Stoppen der Laser-Datenaufzeichnung hinzu, nachdem sich die Erweiterungsachse zum Schweißendpunkt bewegt hat.
Nachdem der Roboter an Ort und Stelle die Bewegungsbahn der Schweißnaht während der Bewegung der Erweiterungsachse aufgezeichnet hat, kann die Erweiterungsachse zum Schweißstartpunkt zurückkehren, um mit dem synchronen Tracking-Schweißen zu beginnen.
Zu Beginn des Schweißens muss der Schweißbrenner zum Startpunkt der vom Lasersensor aufgezeichneten Daten bewegt werden. Fügen Sie den Befehl zum Bewegen zum Schweißpunkt hinzu:
Abbildung 8.15‑16 Befehl zum Bewegen zum Schweißpunkt hinzufügen
Klicken Sie auf „Teach-Programm -> „Programmierung“ -> „Laseraufzeichnung“. Wählen Sie „Bewegung zum Schweißpunkt“. Stellen Sie Bewegungsart und Bewegungsgeschwindigkeit ein. Klicken Sie auf die Schaltfläche „Startpunkt“ und wenden Sie an.
Abbildung 8.15‑17 Befehl zum Reproduzieren der aufgezeichneten Laser-Datenbahn hinzufügen
Wählen Sie auf der Seite „Laser-Tracking“ den Befehl „Datenaufzeichnung“ -> „Bahnreproduktion“. Klicken Sie auf „Hinzufügen“ und wenden Sie an. Im Befehl ist die Wartezeit standardmäßig 0 ms. Die Geschwindigkeit ist das Verhältnis der Reproduktionsgeschwindigkeit zur Aufzeichnungsgeschwindigkeit. Es wird empfohlen, > 50 % zu wählen.
Fügen Sie nach dem Befehl „Bahnreproduktion“ einen Bewegungsbefehl für die Erweiterungsachse hinzu, um die synchrone Laser-Tracking-Bewegung von Erweiterungsachse und Roboter zu realisieren.
Das Folgende ist ein typisches LUA-Programm für die Laser-Punktverfolgung mit Erweiterungsachse:
Abbildung 8.15‑18 Beispielprogramm für Punktverfolgung mit Erweiterungsachse und transformierten Laserdaten
Der Roboter führt den Ablauf „erst aufzeichnen, dann reproduzieren“ aus. Zuerst wird die Veränderung der Werkstückschweißnaht während der Bewegung der Erweiterungsachse aufgezeichnet. Beim Schweißen führen dann Erweiterungsachse und Bahnreproduktion synchron aus.
8.15.6.2.2. Methode mit nicht transformierten Laserdaten
Bei der Verwendung der Methode mit nicht transformierten Laserdaten für die Punktverfolgung ist keine Kalibrierung des Erweiterungsachsen-Koordinatensystems erforderlich.
Stellen Sie die Daten des Laser-Tracking-Sensors auf den Typ ohne Transformation ein.
Abbildung 8.15‑19 Einstellen der Laserdaten auf Typ ohne Transformation
Klicken Sie auf „Initiale Einstellungen“ -> „Peripherie“ -> „Linienlasersensor“. Klicken Sie im Dropdown-Menü der Seite auf „Sensorkonfiguration“. Stellen Sie „Datenverarbeitung“ auf den Typ ohne Transformation ein.
Abbildung 8.15‑20 Funktionsseite für Laser-Tracking
Klicken Sie auf „Teach-Programm“ -> „Programmierung“ -> „Laser-Tracking“, um zur Laser-Tracking-Seite zu gelangen. Sie können auch auf „Laseraufzeichnung“ klicken, um direkt zur Aufzeichnungsseite zu gelangen.
Abbildung 8.15‑21 Befehl „Gleichzeitig aufzeichnen und reproduzieren“ hinzufügen
Wählen Sie auf der Seite „Laseraufzeichnung“ den Befehl „Gleichzeitig aufzeichnen und reproduzieren“. Klicken Sie auf „Hinzufügen“ und wenden Sie an. Im Befehl kann zwischen „Verzögerungszeit“ oder „Verzögerungsstrecke“ gewählt werden (Strecke wird empfohlen). Der Kompensationsempfindlichkeitskoeffizient wird basierend auf den tatsächlichen Sensordaten angepasst. Je niedriger der Wert, desto geringer die Empfindlichkeit der Anpassung und desto besser die Störfestigkeit. Die Reproduktionsgeschwindigkeit ist standardmäßig 100 %.
Fügen Sie nach dem Befehl „Gleichzeitig aufzeichnen und reproduzieren“ einen Bewegungsbefehl für die Erweiterungsachse hinzu, um die synchrone Laser-Tracking-Bewegung von Erweiterungsachse und Roboter zu realisieren.
Das Folgende ist ein typisches LUA-Programm für die Laser-Punktverfolgung mit Erweiterungsachse und nicht transformierten Laserdaten:
Abbildung 8.15‑22 Beispielprogramm für Punktverfolgung mit Erweiterungsachse und nicht transformierten Laserdaten
Nachdem der Schweißbrenner auf den Versatz zum vorgelagerten Laser ausgerichtet wurde, bewegt sich die Roboter-Erweiterungsachse und führt den Ablauf „gleichzeitig aufzeichnen und reproduzieren“ aus. Der vorgelagerte Laser-Tracker zeichnet zuerst die Veränderung der Werkstückschweißnaht während der Bewegung der Erweiterungsachse auf und passt sie nach einer eingestellten Verzögerungsstrecke oder -zeit am Schweißbrenner an.
8.16. Funktion zum Abrufen der Position von Laser-Suchpunkten
8.16.1. Systemaufbau zum Abrufen der Position von Laser-Suchpunkten
Abbildung 8.16‑1 Topologie des Systems zum Abrufen der Position von Laser-Suchpunkten
Im System ist (a) der Computer, (b) der Roboter und sein Steuerschrank und (c) der Lasersensor.
8.16.2. Lasersensor-Kommunikationskonfiguration
Öffnen Sie die WebApp und klicken Sie nacheinander auf „Initiale Einstellungen“ -> „Peripherie“ -> „Linienlasersensor“, um die Sensorkommunikation zu konfigurieren.
Abbildung 8.16‑2 Sensorkommunikationskonfiguration
8.16.3. Funktion zum Abrufen der Position von Laser-Suchpunkten
Der Ablauf zum Abrufen der Position von Laser-Suchpunkten ist wie folgt:
Schritt 1: Legen Sie vor der Laser-Positionssuche zuerst die Suchstartpunkte „seamStartPt1“, „seamStartPt2“ fest. Klicken Sie dann auf „Teach-Programm“, „Programmierung“. Wählen Sie „Punkt-zu-Punkt“. Bringen Sie den Laserstrahl des Sensors in die Nähe des Suchstartpunkts 1 „seamStartPt1“ in der Nähe des Schweißnaht-1-Startpunkts.
Abbildung 8.16‑3 Befehl zum Bewegen zum Suchstartpunkt 1 hinzufügen
Schritt 2: Klicken Sie im Befehlstyp auf „Positionssuche starten“. Wählen Sie das kalibrierte Sensor-Koordinatensystem aus. Stellen Sie Suchrichtung, Geschwindigkeit, Länge und maximale Suchzeit ein. Klicken Sie auf die Schaltfläche „Hinzufügen“. Klicken Sie dann auf „Positionssuche beenden“ und auf die Schaltfläche „Hinzufügen“.
Abbildung 8.16‑4 Befehl zum Starten der Positionssuche hinzufügen
Schritt 3: Wählen Sie „Sensorpunktanfahrt“. Wählen Sie als Koordinatensystemname das kalibrierte „Lasersensor“. Wählen Sie als Bewegungsart „PTP“ oder „LIN“. Stellen Sie die Testgeschwindigkeit ein und wählen Sie, ob die Pose konfiguriert werden soll („Pose konfigurieren?“). Klicken Sie auf die Schaltfläche „Hinzufügen“. Klicken Sie auf die Schaltfläche „Anwenden“, um es zum LUA-Programm hinzuzufügen.
Abbildung 8.16‑5 Befehl für Sensorpunktanfahrt hinzufügen
Schritt 4: Klicken Sie auf der Oberfläche „Programmierung“ auf die Schaltfläche „Modus wechseln“. Ändern Sie die Variable „pos“ in „pos1“. Löschen Sie den Befehl zum Bewegen zum Suchpunkt.
Abbildung 8.16‑6 Moduswechsel in der Programmierung
Abbildung 8.16‑7 Ändern des Programms zum Abrufen des Laser-Suchpunkts
Schritt 5: Führen Sie die Schritte 1-4 für die zweite Schweißnaht durch, um die Position des Laser-Suchpunkts abzurufen.
Abbildung 8.16‑8 Abrufen des Suchpunkts für die zweite Schweißnaht
8.17. Anwendung des DARU DFC Kraftregelungs-Schleifkopfs
8.17.1. Überblick
Die Montage eines DFC-Schleifkopfs am Roboterflansch ermöglicht eine schnelle Einrichtung von Schleif-, Polier- und Entgratungsanwendungen in verschiedenen Szenarien. Die Kraftregelungsstärke kann je nach Größe und Form des Werkstücks angepasst werden, was die Genauigkeit und Effektivität der Schleifarbeit verbessert.
8.17.1.1. Hardware-Beschreibung
Der kollaborative Roboter kommuniziert und steuert den DARU DFC-Schleifkopf über Ethernet. Auf der WebApp wird das Kommunikationsprotokoll für den DARU DFC-Schleifkopf generiert. Das Protokoll sendet die Steuerdaten per TCP/IP an das DARU-Kraftregelungs-Controllermodul. Das Modul sendet die empfangenen Steuerdaten dann an den DFC-Kraftregelungsaktor und realisiert so die Steuerung des Schleifkopfs. Das Kraftregelungs-Controllermodul fungiert als Server für die Ethernet-Kommunikation und kann zwei Kanäle von Schleifkopfaktoren verbinden.
Abbildung 8.17‑1 Anwendung des DARU DFC-Schleifkopfs mit kollaborativem Roboter
Das Kraftregelungs-Controllermodul muss wie folgt konfiguriert werden: Die Ethernet-Seite wird mit der IP-Adresse 192.168.58.88 und dem Port 2000 konfiguriert.
8.17.2. Funktionskonfiguration
Öffnen Sie die WebApp und klicken Sie nacheinander auf „Initiale Einstellungen“, „Peripherie“, „Schleifen“. Es gibt zwei Steuerungstypen für den Schleifkopf: „Bereits angepasste Geräte“ und „Offenes Peripherieprotokoll“: Bereits angepasste Geräte: Für bereits angepasste Schleifkopftypen wird automatisch ein offenes Protokoll generiert und geladen. Der Benutzer muss kein Protokoll schreiben. Offenes Peripherieprotokoll: Der Benutzer schreibt ein offenes Protokoll in Lua für den anzupassenden Schleifkopf, um die Kommunikationssteuerung zu realisieren.
Abbildung 8.17‑2 Steuerungstypen für Schleifen
8.17.2.1. Konfiguration bereits angepasster Geräte
Öffnen Sie die WebApp und klicken Sie nacheinander auf „Initiale Einstellungen“, „Peripherie“, „Schleifkopf“, „Bereits angepasste Geräte“. Wählen Sie im Gerätestatus den Typ „DARU DFC Schleifkopf“. Klicken Sie auf „Konfigurieren“. Das eingebettete offene Peripherieprotokoll „CtrlDev_DARUDFCPOLISH.lua“ wird automatisch geladen.
Abbildung 8.17‑3 Automatisches Laden des offenen Peripherieprotokolls für DARU DFC Geräte
Stellen Sie sicher, dass die Hardware-Verbindung korrekt hergestellt ist. Starten Sie dann das offene Protokoll. Wenn der Betriebsstatus grün ist und der Kommunikationsstatus in der rechten Statusrückmeldungsleiste „Polish“ als „Verbindung hergestellt“ anzeigt, wurde die Kommunikation zwischen Roboter und Schleifkopf-Controller erfolgreich hergestellt. Über die Parametereinstellung können Sie nun den Schleifkopfkanal, für den die Kraftregelung eingestellt werden soll, und die gewünschte Kraft konfigurieren. Das offene Protokoll sendet zyklisch die eingestellten Werte, den Kanal und die aktuellen rx-, ry-, rz-Werte des Roboters an den Schleifkopf, wie in Abbildung 2-3 gezeigt. Darüber hinaus zeigt die Polish-Statusrückmeldung in Echtzeit den vom Schleifkopf zurückgemeldeten Kraftregelungswert und Warnungen bei Kraftüberschreitung an. Bei einer Warnung erscheint auch oben rechts auf der Seite ein Alarmhinweis, wie in Abbildung 2-4 gezeigt.
Abbildung 8.17‑4 Seiteneinstellungen und Statusrückmeldung für DFC-Schleifkopf
Abbildung 8.17‑5 Alarm bei Kraftüberschreitung des DFC-Schleifkopfs
8.17.2.2. Download des offenen Peripherieprotokolls
Klicken Sie im Bereich „Offenes Peripherieprotokoll“ auf die Schaltfläche „Herunterladen“, um das Protokoll auf den lokalen Computer herunterzuladen. Das offene Peripherieprotokoll ist ein zyklisch ausgeführtes LUA-Programm, das in jedem Zyklus die folgenden Schritte ausführt:
① Lesen der Steuerdaten des DFC-Schleifkopfs aus dem Roboter. ② Schreiben der Steuerdaten über einen Socket an den DFC-Schleifkopf. ③ Lesen der Statusdaten über einen Socket vom DFC-Schleifkopf. ④ Rückmeldung der DFC-Schleifkopf-Statusdaten an den Roboter.
Durch die zyklische Ausführung des Kommunikationsprotokolls wird die Kommunikationssteuerung zwischen Roboter und Schleifkopf realisiert. Im Kommunikationsprotokoll können der Zyklus, der zu verbindende Server-Port und die IP-Adresse benutzerdefiniert angepasst werden.
Im Folgenden finden Sie ein Beispiel für den Code des DARU DFC-Schleifkopf-Kommunikationsprotokolls:
1local id = 1
2local ctrlValues = {0,0, 0,0, 0,0, 0,0}
3local realTimeState = {0,0, 0,0, 0,0, 0,0}
4socket1 = TCPClientConnect('192.168.58.88', 2000, 500, 10, 2, 3)
5sleepCnt = 100
6while(sleepCnt > 0) do
7 local stopFlag = GetOpenLUAStopFlag(id)
8 if(stopFlag ~= 0) then
9 TCPClientDisconnect(socket1)
10 setDFCPolishRealtimeState(0, 0, 0)
11 break
12 end
13 sleepCnt = sleepCnt -1
14 sleep_ms(50)
15end
16local cnt = 5
17while(1) do
18 channel, force = getDFCPolishSet()
19 comState, sendBuff = DFCPolishInput(socket1, channel, force)
20 sleep_ms(50)
21
22 byte, error, forceFeedback = DFCPolishOutput(socket1)
23 setDFCPolishRealtimeState(comState, error, forceFeedback)
24 sleep_ms(50)
25
26 if(comState == 0) then
27 TCPClientDisconnect(socket1)
28 while(cnt > 0) do
29 socket1 = TCPClientConnect('192.168.58.88', 2000, 500, 10, 2, 3)
30 cnt = cnt - 1
31 if(socket1 > 0)then
32 break
33 end
34 end
35 end
36
37 local stopFlag = GetOpenLUAStopFlag(id)
38 if(stopFlag ~= 0 or cnt == 0) then
39 TCPClientDisconnect(socket1)
40 setDFCPolishRealtimeState(0, 0, 0)
41 break
42 end
43end
8.17.3. Anwendung von LUA-Programmen für DFC-Schleifkopf
Durch Hinzufügen von Befehlen zur DFC-Kraftregelungskonfiguration, Kanalumschaltung und Statusabfrage in Roboter-LUA-Programmen können in Verbindung mit Roboter-Bewegungsbefehlen flexible und bequeme Schleifanwendungen realisiert werden. Öffnen Sie die WebApp und klicken Sie nacheinander auf „Teach-Programm“, „Programmierung“. Erstellen Sie ein neues LUA-Programm „testDFC.lua“.
Abbildung 8.17‑6 Neues Programm „testDFC.lua“ erstellen
Wählen Sie den Befehlstyp „Peripheriebefehle“. Klicken Sie in den Peripheriebefehlen auf die Schaltfläche „Schleifgerät“. Daraufhin erscheint auf der rechten Seite der WebApp die Seite zum Hinzufügen von „Polish“-Schleifbefehlen. Wählen Sie als Gerätetyp „DARU DFC Schleifkopf“.
Abbildung 8.17‑7 Seite zum Hinzufügen von Schleifkopfbefehlen
8.17.3.1. Hinzufügen von Schleifkopf-Steuerbefehlen
Durch das Schreiben von Schleifkopf-Steuerbefehlen im LUA-Programm können die Kraftregelungseinstellungen und die Kanalauswahl für den DFC realisiert werden.
Klicken Sie auf der Seite zum Hinzufügen von Schleifgerätebefehlen auf „DFC einstellen“. Wählen Sie den Schleifkopf-Kanalmodus „2“. Stellen Sie die Kraft auf „10“ ein. Klicken Sie auf die Schaltfläche „Hinzufügen“. Daraufhin wird in der „Programmvorschau“ ein Schleifkopf-Einstellbefehl hinzugefügt.
Abbildung 8.17‑8 Schleifkopf-Steuerbefehl hinzufügen
8.17.3.2. Hinzufügen von Befehlen zum Abrufen des Schleifkopfstatus
Klicken Sie auf „DFC-Daten abrufen“. Klicken Sie nacheinander auf die Schaltflächen „Hinzufügen“ und „Anwenden“. Dadurch wird in „testDFC.lua“ ein Befehl zum Abrufen der Schleifkopf-Daten hinzugefügt: „GetDFCState()“.
Abbildung 8.17‑9 Befehl zum Abrufen des Schleifkopfstatus hinzufügen
Der Befehl GetDFCState() gibt zwei Werte zurück, wie folgt:
DFCwarn: Warnung bei Kraftüberschreitung: 0 - normal, 1 - Alarm. force: Rückgemeldeter Kraftwert.
Verwenden Sie in „testDFC.lua“ zwei Variablen, um die Rückgabewerte der GetDFCState()-Funktion zu empfangen. Zeigen Sie diese Informationen über die LUA-Variablenabfrage im Anzeigebereich der WebApp-Variablenabfrage an.
Abbildung 8.17‑10 Programm zum Abrufen des Schleifkopfstatus
8.17.3.3. Anwendungsbeispiel
Das Folgende ist ein Beispiel für ein LUA-Programm zur Steuerung und Überwachung des DFC-Schleifkopfs:
1SetDFCForce(0,25)
2while (1) do
3 PTP(c1,100,-1,0)
4 SetDO(0,1,0,0)
5 ARC(c2,0,0,0,0,0,0,0,c3,0,0,0,0,0,0,0,100,-1,0,100,200)
6 DFCwarn,force = GetDFCState()
7 RegisterVar("number","DFCwarn")
8 RegisterVar("number","force")
9 if(DFCwarn == 1) then
10 PTP(safe,100,-1,0)
11 break
12 else
13 PTP(p6,100,-1,0)
14 end
15 SetDO(0,0,0,0)
16end
8.18. Endeffektor-Transparentübertragungsfunktion
8.18.1. Überblick
Benutzer können die Endeffektor-Transparentübertragungsfunktion konfigurieren, um auf Basis des offenen Protokolls für Endeffektor-Peripheriegeräte + CNDE + SDK-Schnittstelle eine azyklische Datenübertragung und den Empfang sowie die zyklische Datenerfassung für beliebige Endeffektor-Peripheriegeräte zu ermöglichen. Für zyklische Daten muss ein Endeffektor-Lua-Open-Protokoll geschrieben und die Anwendung auf den Endeffektor hochgeladen werden, um eine zyklische Interaktion und Auslesung mit dem Peripheriegerät zu erreichen. Die zyklischen Rückmeldedaten des Peripheriegeräts werden über die CNDE-Konfiguration abgerufen, während azyklische Daten über die SDK-Schnittstelle als Datenrahmen gesendet und empfangen werden.
8.18.2. Anwendungshinweise
Schritt 1: Öffnen Sie die Roboterseite und wählen Sie „Grundeinstellungen“ -> „Peripheriegeräte“ -> „Endeffektor-Transparentübertragung“. Laden Sie das Endeffektor-Lua-Open-Protokoll hoch, das an das Peripheriegerät angepasst werden soll, und wenden Sie es an.
Abbildung 8.18‑1 Hochladen des Endeffektor-Transparentübertragungsprotokolls
Schritt 2: Aktivieren Sie nach dem Neustart des Roboters die Schaltfläche „Endeffektor-Protokoll aktivieren“, um diese Funktion zu aktivieren. Es ist zu beachten, dass nach der Aktivierung dieser Funktion andere angepasste Endeffektor-Geräte nicht gleichzeitig verwendet werden können.
Abbildung 8.18‑2 Aktivierung des Endeffektor-Transparentübertragungsprotokolls
Schritt 3: Öffnen Sie die Roboterseite und wählen Sie „Teach-Programm“ -> „Peripheriegeräte-Befehle“ -> „Endeffektor-Transparentübertragung“. Nach der Aktivierung der Endeffektor-Transparentübertragung können Sie über die Lua-Schnittstelle Debugging-Tests für den Empfang und die Übertragung von azyklischen Daten sowie die Erfassung von zyklischen Daten durchführen. Die tatsächliche Verwendung erfordert die Kombination mit der CNDE-Funktion des Roboters und dem SDK. Die Länge der gesendeten und empfangenen azyklischen Befehlsdaten beträgt maximal 16 Byte, zyklische Daten maximal 128 Byte.
Abbildung 8.18‑3 Lua-Schnittstelle für azyklische Daten der Endeffektor-Transparentübertragung
Abbildung 8.18‑4 Lua-Schnittstelle für zyklische Daten der Endeffektor-Transparentübertragung
8.18.3. Lua-Skript für die Endeffektor-Transparentübertragungsfunktion
8.18.3.1. Überblick
Die Lua-Open-Protokollfunktion wurde um eine allgemeine Daten-Transparentübertragungsschnittstelle erweitert. Lua-Skripte werden gemäß der vereinbarten Lua C-Schnittstelle geschrieben und zusammen mit CNDE verwendet, um die Datenübertragung und den Datenempfang für Endeffektor-montierte Geräte zu ermöglichen.
8.18.3.2. Hinweise zum Schreiben von Endeffektor-Lua-Skripten
8.18.3.2.1. Lua C-registrierte Funktionen für Rs485-Senden und -Empfangen
Lua C-registrierte Funktion für Rs485-Senden: EndTxCustomData(). Diese Funktion sendet Befehle über Rs485 an das montierte Gerät.
1Tcmd={0}
2EndTxCustomData(Tcmd)
Code 8.18-1 Lua-Skript-Beschreibung
Lua C-registrierte Funktion für Rs485-Empfangen: EndRxCustomData(). Diese Funktion empfängt Antwortbefehle vom montierten Gerät über Rs485-Rückmeldung.
1Rcmd={0}
2EndRxCustomData(Rcmd)
Code 8.18-2 Lua-Skript-Beschreibung
8.18.3.2.2. Lua C-registrierte Funktionen für azyklische Datenübertragung und -rückmeldung
Lua C-registrierte Funktion für azyklische Datenübertragung: GetHostTransparentCmd(). Diese Funktion prüft, ob der Controller einen azyklischen Datenbefehl ausgegeben hat. Wenn ein Befehl ausgegeben wurde, ruft sie den azyklischen Datenbefehl ab. Die Länge der azyklischen Datenbefehlsübertragung beträgt maximal 16 Byte.
1Tcmd={0}
2RxFlag=0
3RxFlag = GetHostTransparentCmd(Tcmd)
4if(RxFlag == 1)then
5EndTxCustomData(Tcmd)
Code 8.18-3 Lua-Skript-Beschreibung
Lua C-registrierte Funktion für azyklische Datenbefehlsrückmeldung: BackHostTransparentCmd(). Diese Funktion überträgt den vom montierten Gerät zurückgemeldeten azyklischen Datenbefehl transparent an den Controller. Die Länge des azyklischen Datenbefehlsempfangs beträgt maximal 16 Byte.
1Rcmd={0}
2EndRxCustomData(Rcmd)
3BackHostTransparentCmd(Rcmd)
Code 8.18-4 Lua-Skript-Beschreibung
8.18.3.2.3. Lua C-registrierte Funktion für zyklische Datenrückmeldung
Lua C-registrierte Funktion für zyklische Datenrückmeldung: SetDWrodInputBack(). Diese Funktion überträgt die vom montierten Gerät ausgelesenen zyklischen Daten transparent an den Controller. Die zyklische Datenrückmeldung umfasst maximal 128 Byte.
1R = {0}
2TotalNum =0
3PacketNum=0
4TotalNum,PacketNum=SetDWrodInputBack(R)
Code 8.18-5 Lua-Skript-Beschreibung
8.18.3.2.4. Lua-Skript, geschrieben am Beispiel des DIO Health Care Moxibustion-Kopfes
1--***
2--Aufrechterhaltung des normalen Betriebs anderer Endfunktionen
3while(1)
4do
5IwdgTaskHandle()
6MainLoop()
7UpDownLoadHandle()
8SdoRwPara()
9EndErrClear()
10local BFlag=LuaBreak()
11if(BFlag==1)then
12break
13end
14--***
15--***
16--Beispiel für azyklische Datenübertragung
17Rcmd = {0} --Speichert die vom montierten Gerät zurückgemeldeten azyklischen Daten
18Tcmd = {0} --Speichert die vom Controller ausgegebenen azyklischen Daten
19RxFlag=0 --Flag, ob der Controller einen Befehl ausgegeben hat
20RxFlag = GetHostTransparentCmd(Tcmd)
21if(RxFlag == 1)then
22EndTxCustomData(Tcmd)
23DelayMs(35)
24EndRxCustomData(Rcmd)
25if((#Rcmd) > 1))and(R[1]==0xAB)and(R[2]==0xBA)) then
26BackHostTransparentCmd(Rcmd)
27end
28end
29--***
30--***
31--Beispiel für zyklische Datenübertragung
32R = {0} --Speichert die vom montierten Gerät zurückgemeldeten zyklischen Daten
33T = {0xAB,0xBA,0x14,0x01,0xAA,0x24} --Befehl zum Abfragen zyklischer Daten vom montierten Gerät
34if TotalNum==0 then
35EndTxCustomData(T)
36DelayMs(35)
37EndRxCustomData(R)
38end
39TotalNum =0 --Bei zyklischen Daten, die eine Paketaufteilung erfordern, Gesamtanzahl der Pakete
40PacketNum=0 --Aktuelle Paketsequenznummer
41if((#R==19)and(R[1]==0xAB)and(R[2]==0xBA)and(R[3]==0x14)and(R[4]==0x0E))then
42TotalNum,PacketNum=SetDWrodInputBack(R)
43if PacketNum>TotalNum then
44PacketNum=0
45TotalNum=0
46end
47end
48--***
49LuaGc()
50end


