Schweißplanprüfung (Weld plan check)
Die Schweißplanprüfung vergleicht die Punktschweißungen der Roboterprogramme mit dem Schweißplan - dem VW-A33-Punktplan (Excel .xlsx), einer CSV-Datei eines anderen Herstellers oder einer Tabelle, die mit den Spalten der Einstellungen des WPS-Readers gelesen wird. Für jeden Schweißbefehl der Programme zeigt sie, ob der Schweißpunkt im Plan steht, ob der richtige Roboter ihn schweißt, ob der Name im Kommentar über dem Punkt der Name des Plans ist und wie weit der programmierte Punkt von der Planposition entfernt liegt. Planpunkte, die kein Programm schweißt, und Schweißpunkte, die zwei Roboter schweißen, werden ebenfalls aufgelistet. Die Prüfung berichtet nur; Programme und Plan werden nicht geändert.

Der Plan wird mit einem eigenen Leser von DrAmaT Robot Studio gelesen - MS Excel ist nicht nötig (das alte Excel-Format .xls liest dieses Fenster nicht: die Datei als .xlsx speichern).

Wo: Roboter: KUKA (VKRC, KRC), Fanuc und ABB. Lizenz: die WPS-Lizenz des Herstellers des Programms (siehe Lizenz).

Wie die Punkte zugeordnet werden

Schweißbefehle der Programme

RoboterSchweißbefehlSchweißpunktnummer / Fahrzeugtyp
KUKA VKRC / KRC (VW)Fold SERVOZANGE (Kopfzeile des Folds) Punktnummer / FahrzeugTyp
KUKA VKRC (VW)Tech-Befehl Tech_.EZSP, TECH EZ / SP S-Punkt / Fzg-Typ; ohne Beschriftung die Parameter P5 / P6 - die Nummern der Parameter kommen aus den Einstellungen des WPS-Readers (Standard: Zange P1, Schweißprogramm P2, Index P5, Fahrzeugtyp P6)
Fanuc (VW)VW_USER EZSPS-Punkt / Fzg_Typ
ABBSchweißbefehl, gefunden mit dem regulären Ausdruck der Einstellungen des WPS-Readers (dasselbe Muster wie das Plugin ABB WPS)benannte Gruppen index / fzg; die Gruppe name liefert den Namen des Schweißpunktes
Kappenfräsen, Vermessung und Wartung (auch die Servicepositionen der Zange SERVOZANGE n Service) sind keine Schweißungen. Andere Punktschweißbefehle (z. B. Fanuc SPOT[...], KUKA ServoGun SG.SPOT) werden ebenfalls gefunden; ohne Schweißpunktnummer im Befehl ergeben sie den Befund NO_INDEX. KUKA: nur die Kopfzeilen der Folds werden gelesen (der verborgene Code des Folds wiederholt dieselben Daten).

Positionen: nur in den Fahrzeugkoordinaten

Der Plan enthält die Positionen in den Fahrzeugkoordinaten. Ein Programmpunkt wird nur dann mit der Planposition verglichen, wenn er im Koordinatensystem der Fahrzeugkoordinaten programmiert ist - Car coordinates in BASE / UF, KUKA-BASE-Nummer / Fanuc-UF-Nummer, Standard 1. Punkte in anderen Koordinatensystemen werden nicht umgerechnet und nicht verglichen (Befund OTHER_FRAME, einmal je Roboter und Koordinatensystem); none (0) schaltet den Vergleich der Positionen ab. d = Abstand des Programmpunktes (TCP) vom Planpunkt; über der Toleranz (Standard 2 mm) ist der Punkt eine Abweichung. dX / dY / dZ = Programm - Plan.

Roboterstatistik: verschobene Basis oder einzelne Punkte

Für jeden Roboter berechnet der Bericht aus den verglichenen Schweißpunkten (jede Nummer einmal) die mittlere Verschiebung dX / dY / dZ und ihre Länge, die Streuung (RMS der Abweichungen um den Mittelwert) und die größte Abweichung.

Formate des Schweißplans

ImportWie der Plan gelesen wird
Automatic (Standard)nach der Dateiendung: .csv / .txt = CSV, sonst eine Excel-Arbeitsmappe (.xlsx, .xlsm) mit den Spalten, die wie im A33-Plan über die Überschriften gefunden werden; .xls - Meldung: als .xlsx speichern
VW A33 spot weld planBlätter Punktplan* (ohne die Beispielblätter; gibt es keine, alle Blätter); die Überschriftszeile wird über den Text der Schweißpunktnummer Punkt- Nummer (Index) in den ersten 80 Zeilen gefunden; die Überschrift hat zwei Zeilen (z. B. Netzlinien / NL X). Spalten: Punkt- Nummer (Index), Fzg-Typ, Punkt- Name, Schweissen durch Rob., Schweisszangen-Nr, Schweisskoffer, Schweissprogramm, NL X, NL Y, NL Z, Blechdicken t1..t4. Blätter ohne diese Überschrift (Titelblatt, Zeichnungen, Listen) werden übersprungen. Zeilen, deren Nummernzelle keine Zahl ist (oder Fahrzeugtyp;Nummer, z. B. 6;15068, 6-15068), werden übersprungen (Bemerkungen, Fußzeile).
CSVKopfzeile mit den Spaltennamen (Aliase unten); Trennzeichen ; , oder Tabulator, in der Kopfzeile erkannt (oder mit delimiter gesetzt); UTF-8 oder Windows-1252 (Excel-CSV); Dezimalkomma erlaubt
Columns of the WPS reader settingsSpalten, erste / letzte Zeile, Blätter und die Roboternamen-Matrix aus Settings → Configure → Welding point reader - dieselbe Tabelle wie die WPS-Plugins (VKRC / VFanuc / ABB WPS); Zeilen ohne Punktnamen werden übersprungen, letzte Zeile 0 = bis zur ersten leeren Zeile
In der Überschrift erkannte Spaltennamen (Excel und CSV, ohne Groß-/Kleinschreibung):
FeldÜberschriften
indexPunkt- Nummer, Punktnummer, Index, (Index), S-Punkt, Spot No / Number / Index / ID, Point No ..., Weld No ...
carTypeFzg-Typ, Fahrzeug-Typ, Car type, Vehicle type
namePunkt- Name, FE-Bezeichnung, Point name, Spot name, Weld name, Name
robotSchweissen durch ..., Rob. IR, Robot, Roboter, Robot Name
gunSchweisszangen-Nr, Gun No / Number / ID, Gun, Zange
boxSchweisskoffer, Welding box / control / timer, Timer
programSchweissprogramm, Prog. Nr, Weld program, Program, Programm
x, y, zNL X / NL Y / NL Z, X / Y / Z, X [mm] ..., Pos. X ...
t1 .. t4t1 .. t4, Thickness 1 .. 4
Wird die Überschrift nicht erkannt, werden die Spalten im Feld columns als Feld=Spalte, getrennt durch ;, angegeben - Excel: Spaltenbuchstaben (index=C; name=D; x=J; y=K; z=L), CSV: Spaltennamen, Spaltennummern 1.. oder Buchstaben (index=SpotNo; name=Name; x=X; y=Y; z=Z). Nur das Feld index ist Pflicht; ohne x, y, z werden die Positionen nicht verglichen (Status no position in the plan). Zahlen dürfen ein Dezimalkomma und Tausendertrennzeichen haben. Mehrere Plandateien können zusammen geprüft werden (z. B. ein A33 je Station).

Fenster

FeldStandardBedeutung (API-Parameter)
Weld plan, Add plan..., Removedie Dateien der letzten PrüfungDateien des Schweißplans (A33 .xlsx, .xlsm, .csv, .txt); die Punkte aller angehakten Dateien werden verwendet (plan)
Import: FormatAutomaticAutomatic / VW A33 spot weld plan / CSV / Columns of the WPS reader settings (importFormat: auto | a33 | csv | wps)
Import: Blätterleer = automatischExcel-Blätter: Namen (Platzhalter * ?) oder Nummern 1.., durch Kommas getrennt, Bereiche 5-8; leer = A33-Blätter Punktplan* oder alle Blätter (sheets)
Import: Spaltenleer = aus der ÜberschriftFeld=Spalte, getrennt durch ;, Felder index, carType, name, robot, gun, box, program, x, y, z, t1..t4 (columns)
Programsdie zuletzt angehakten Roboterprojekte und Ordner; aus dem Menü das aktive Programmbeliebige Kombination aus: Open programs in the editor (open), Robot project des Projektbaums (projects), Archive / folder auf dem Datenträger (folders), Program-Dateien (files); Schaltflächen Add archive / folder..., Add programs..., Remove
File masksleer = die Programmdateien des RobotersMasken für Archive und Ordner, getrennt durch ; (masks)
Include system filesausKUKA-Systemdateien in Archiven und Ordnern ($*.src, System, Mada, TP, STEU ...) (includeSystem)
Tolerance2 mm (0,1 .. 100)ein größerer Abstand des Programmpunktes vom Planpunkt ist eine Abweichung (tolMm)
Car coordinates in BASE / UF1 (0 = none, bis 32)Koordinatensystem der Fahrzeugkoordinaten: KUKA-BASE- / Fanuc-UF-Nummer; nur Punkte in diesem Koordinatensystem werden verglichen; none = Positionen nicht verglichen (carBase)
Check the names in the commentsanden Namen über dem Punkt mit dem Plan vergleichen - nur eine Prüfung, die Zuordnung erfolgt immer über die Nummer (names)
Plan points not weldedandie Planpunkte der geprüften Roboter melden, die kein Programm schweißt (notWelded)
ResultTable in this windowTable in this window / PDF file / HTML file / Excel workbook (XLSX) / CSV file (format)
Berichtssprache (neben Result)EnglishEnglish / Deutsch - Sprache des Berichts (Überschriften, Texte und Status des PDF- / HTML-Berichts) und der Meldungen der Befunde; das Fenster selbst bleibt englisch (language: en | de)
Berichtsdatei, ...leer = wird abgefragtDatei des Berichts (save)
Check–liest Plan und Programme und vergleicht sie
Die Tabelle der Befunde hat die Spalten Severity, Code, Robot, Program, Line, Gun / prog. / no. (Zange / Schweißprogramm / Fahrzeugtyp;Nummer, wie die Spalte im Schweißpunktbericht des Robot Cell Simulators) und Message und lässt sich nach jeder Spalte sortieren; ein Doppelklick öffnet das Programm am Schweißbefehl. Line ist die Zeile im Editor; ein KUKA-VW-Programm (KRC4) wird im Editor in der kompakten Form gezeigt (eine Zeile je Fold), daher weicht diese Zeile von der Zeile in der Programmdatei ab, die der Bericht angibt (Zeile in der Datei) - der Doppelklick öffnet das Programm in beiden Fällen an der richtigen Stelle. Save report... speichert PDF, HTML, XLSX oder CSV. Die Werte des Fensters werden in den Einstellungen gespeichert (Gruppe Weld_Plan_Check) und sind auch die Standardwerte des API-Befehls.

Befunde

CodeSchwereBedeutung
PLAN_DUPLICATE_INDEXerrordieselbe Schweißpunktnummer (und derselbe Fahrzeugtyp) steht mehrfach im Plan - die Stellen (Blatt, Zeile, Name) werden aufgelistet; ein Programmpunkt mit dieser Nummer wird der ersten davon zugeordnet
NO_INDEXerrorPunktschweißbefehl ohne Schweißpunktnummer
NOT_IN_PLANerrordie Schweißpunktnummer des Programms steht nicht im Plan (hat der Plan den Namen des Kommentars mit einer anderen Nummer, nennt die Meldung diese Nummer)
AMBIGUOUS_INDEXerrorNummer ohne Fahrzeugtyp im Programm, der Plan hat sie für mehrere Fahrzeugtypen
INDEX_TWO_ROBOTSerrorderselbe Schweißpunkt wird von zwei oder mehr Robotern geschweißt
OTHER_ROBOTwarningder Schweißpunkt wird von einem anderen Roboter geschweißt, als der Plan angibt
NAME_DIFFERSwarningder Name im Kommentar weicht vom Plannamen dieser Nummer ab (ist er der Name eines anderen Planpunktes, wird dieser genannt) - den Kommentar korrigieren, oder die Nummer, wenn der Name stimmt
POSITION_DEVIATIONwarningAbstand vom Planpunkt größer als die Toleranz (ein Befund je Roboter und Schweißpunkt mit der größten Abweichung und den betroffenen Programmen)
NOT_WELDEDwarningPlanpunkt eines geprüften Roboters, den kein geprüftes Programm schweißt (Option Plan points not welded); Planpunkte nicht geprüfter Roboter werden nur in einem Hinweis gezählt
BASE_SHIFTwarningalle verglichenen Punkte eines Roboters sind gemeinsam verschoben (siehe Roboterstatistik)
NAME_MISSINGinfokein Name über dem Schweißpunkt (der Planname wird angegeben)
OTHER_FRAMEinfoPunkte eines Roboters in einem anderen Koordinatensystem als den Fahrzeugkoordinaten - Positionen nicht verglichen
MEAN_OFFSETinfomittlere Verschiebung eines Roboters größer als die Toleranz, aber keine gemeinsame Verschiebung
Status einer Schweißung in der Tabelle des Berichts: OK, deviation (Abweichung), not in the plan (nicht im Plan), position of the point not read (Position des Punktes nicht gelesen), other frame - not compared (anderes Koordinatensystem - nicht verglichen), no position in the plan (keine Position im Plan), number without car type (Nummer ohne Fahrzeugtyp), no weld point number (keine Schweißpunktnummer). Ergebnis eines Planpunktes (Tabelle Schweißpunkte des Plans): OK, Abweichung, nicht geschweißt, Roboter nicht geprüft (der Roboter des Plans war nicht unter den geprüften Robotern), geschweißt (Position nicht verglichen).

Bericht

Die Sprache des Berichts wird mit der Berichtssprache (API language) gewählt: English (Standard) oder Deutsch - Überschriften, Texte und Status des PDF- / HTML-Berichts und die Meldungen der Befunde.

Beispielbericht (anonymisierte VW-Station: 3 Schweißroboter R1..R3, 79 Programme, zwei A33-Pläne für die Fahrzeugtypen 6 und 7 mit 98 Schweißpunkten; Teilenummern und Dateinamen ersetzt; HTML wie vom Editor erstellt, Berichtssprache Deutsch - in neuem Fenster öffnen):

Das Beispiel zeigt das typische Ergebnis: jeder Planpunkt wird vom Roboter des Plans geschweißt, die mittleren Verschiebungen der Roboter liegen bei 1,6 - 3,5 mm mit einer Streuung von 4 - 7 mm (keine gemeinsame Verschiebung der Base, einzelne Punkte weichen ab, bis 22 mm), und 38 Namen weichen ab - die Programme des zweiten Fahrzeugtyps tragen die Namen des ersten (kopierte Kommentare), ein Name hat einen Tippfehler.

Befehls-API

{"cmd":"weld_plan", "plan":"D:/plans/A33_ST010.xlsx", "projects":["*"], "tolMm":2, "carBase":1,
 "language":"de", "save":"D:/reports/weld_plan.pdf"}
{"cmd":"weld_plan", "action":"import", "plan":"D:/plans/spots.csv",
 "columns":{"index":"SpotNo","name":"Name","x":"X","y":"Y","z":"Z"}, "maxItems":50}
AttributStandardBedeutung
actioncheckcheck - die Programme mit dem Plan vergleichen; import - nur den Plan lesen und seine Punkte zurückgeben (ohne Programme, ohne Prüfung der WPS-Lizenz)
plan (oder plans)Dateien des FenstersDatei oder Array von Dateien des Schweißplans
importFormatauto (Wert des Fensters)auto | a33 | csv | wps
sheetsleer (Wert des Fensters)Array oder durch Kommas getrennter Text aus Blattnamen (Platzhalter) / Nummern 1.. / Bereichen "5-8"
columnsleer (Wert des Fensters)Objekt {"index":"C","name":"D"} oder Text "index=C; name=D"
firstRow0Excel: erste Datenzeile (1..), 0 = die Zeile nach der gefundenen Überschrift
lastRow0Excel: letzte Datenzeile, 0 = bis zum Ende des Blattes
delimiterleerCSV: ";", ",", "tab"; leer = in der Kopfzeile erkannt
open, files, projects, folders, masks, includeSystem, vendor oder scope + paths– (Pflicht für check)die Programme - dieselben Quellen wie path_check / axis_limits (VeRa / Befehls-API)
tolMmWert des Fensters (2)[mm] Toleranz der Position (0,1 .. 100)
carBaseWert des Fensters (1)BASE- / UF-Nummer der Fahrzeugkoordinaten, 0 = Positionen nicht verglichen (0 .. 32)
namesWert des Fensters (true)die Namen in den Kommentaren prüfen
notWeldedWert des Fensters (true)nicht geschweißte Planpunkte melden
languageWert des Fensters (en)en | de - Sprache des Berichts und der Meldungen der Befunde (andere Werte: Fehler)
maxItems500höchste Anzahl der Befunde / Zeilen / Planpunkte in der Antwort (1 .. 20000)
saveleerDatei des Berichts
formatEndung von savepdf | html | csv | xlsx
dialogfalsetrue: das Fenster mit diesen Werten öffnen, Antwort {"ok":true,"dialog":true}
runfalsemit dialog: die Prüfung im Fenster sofort starten
Antwort von check: das gemeinsame Befundformat (summary {errors, warnings, infos}, findings mit check = weldPlan, value = Fahrzeugtyp;Nummer), plan {files, points, withCoordinates, robots, carTypes, duplicates, notes}, programs, welds, servicePointsSkipped, notWelded, robots, tolMm, carBase, summaryText, language, robotStats [{robot, welds, compared, withinTolerance, meanXyzMm, meanMm, spreadMm, maxMm, baseShift}], rows [{robot, program, line, fileLine, point, index, carType, gun, weldProgram, name, status, frame, xyz, planName, planRobot, planXyz, dXyzMm, dMm, file}] (rowsTruncated), planPoints [{index, carType, name, robot, weldedIn [{robot, program, point, fileLine, status, dMm}], status}], notes, saved / saveError. line = Zeile im Editor (auch der Befunde), fileLine = Zeile in der Programmdatei. Status der Zeile: ok, deviation, notInPlan, noPosition, otherFrame, noPlanPosition, ambiguous, noIndex. planPoints: jeder Planpunkt (höchstens maxItems) mit den Stellen, an denen er geschweißt wird; status nur, wenn er nicht geschweißt wird: notWelded (der Roboter des Plans wurde geprüft) oder robotNotChecked.
Antwort von import: files, points, withCoordinates, robots, carTypes, duplicates [{key, points [{name, robot, sheet, row}]}], list [{index, carType, name, robot, gun, box, program, xyz, thickness, sheet, row}] (listTruncated), notes, errors.
Fehler: keine WPS-Lizenz, keine Plandatei, keine Programme, keine Schweißpunkte aus dem Plan gelesen. Fortschritt: Zeilen weld_plan ... in dres.log und progress des API-Befehls status.

Bericht über die Befehls-API - Schritt für Schritt

Die Schweißplan-Prüfung ist eine Funktion des Editors selbst, kein Plugin: der Befehl weld_plan liest den Plan und die Programme im Hintergrund (verborgene Dokumente, die geöffneten Programme werden nicht geändert) und schreibt den Bericht - es muss kein Fenster geöffnet und kein Plugin gestartet werden. Nur die Variante in der Zelle (Schweißpunktbericht des Robot Cell Simulators, siehe unten) braucht das Plugin.

Voraussetzungen: die Befehls-API ist eingeschaltet (Installation mit der Komponente AI agent, Settings » Configure » AI Agent), die Lizenzen API / CLI und WPS des Herstellers (siehe Lizenz). Die Befehle werden mit dem Client der Installation <Installation>\AIAgent\dres_api.ps1 (PowerShell) gesendet.
  1. Editor starten (oder den laufenden verwenden) - das Skript wartet, bis der Editor bereit ist:
    AIAgent\dres_api.ps1 -StartNewSession -SessionName "Schweißplan"
  2. Plan prüfen - nur lesen (Anzahl der Punkte, Roboter, Fahrzeugtypen, doppelte Nummern):
    AIAgent\dres_api.ps1 '{"cmd":"weld_plan","action":"import","plan":["D:/plans/A33_SK.xlsx","D:/plans/A33_VW.xlsx"],"maxItems":5}'
    Ohne points oder mit notes: importFormat, sheets oder columns setzen (siehe Formate).
  3. Vergleichen und Bericht schreiben - die Programme als Roboterarchive (folders: ein Archiv oder ein Ordner mit mehreren Archiven) oder als Projekte des Projektbaums (projects):
    AIAgent\dres_api.ps1 -TimeoutSec 600 '{"cmd":"weld_plan","plan":["D:/plans/A33_SK.xlsx","D:/plans/A33_VW.xlsx"],
      "folders":["D:/archives/station 010"],"tolMm":2,"carBase":1,"language":"de","maxItems":1,
      "save":"D:/reports/weld_plan_de.pdf"}'
    Das Format folgt der Endung von save (pdf, html, xlsx, csv); maxItems begrenzt nur die Antwort, nicht den Bericht.
  4. Antwort lesen: summaryText, robotStats (Base verschoben oder einzelne Punkte), summary und findings, saved = die geschriebene Datei (oder saveError).
Mehrere Formate oder Sprachen: ein Aufruf schreibt eine Datei - den Befehl für jede Datei erneut aufrufen, z. B.
foreach ($l in 'en','de') { foreach ($f in 'pdf','xlsx') {
  AIAgent\dres_api.ps1 -TimeoutSec 600 ('{"cmd":"weld_plan","plan":["D:/plans/A33_SK.xlsx"],"folders":["D:/archives/station 010"],' +
    '"language":"' + $l + '","maxItems":1,"save":"D:/reports/weld_plan_' + $l + '.' + $f + '"}') } }
Hinweise: jeder Aufruf prüft die Programme erneut; bei etwa 80 Programmen dauert die Prüfung 1 - 3 Minuten, der Editor (Fenster und API) ist in dieser Zeit belegt - -TimeoutSec 600 verwenden. Fortschritt: Zeilen weld_plan ... in dres.log. Der Roboter eines Programms ist das Roboterprojekt des Projektbaums oder der Ordner des Archivs (KUKA: der Ordner über KRC). Fehlende Ordner der Berichtsdatei werden angelegt. "dialog":true öffnet stattdessen das Fenster mit denselben Werten ("run":true - und startet die Prüfung).

Variante in der Zelle: Schweißpunktbericht des Robot Cell Simulators

Der Schweißpunktbericht des Robot Cell Simulators vergleicht die Schweißpunkte der Roboter der geladenen Zelle und kann die Planpunkte in der 3D-Ansicht zeigen. Er braucht das Plugin und die geladene Zelle:
  1. Robot Cell Simulator öffnen: AIAgent\dres_api.ps1 '{"cmd":"run_plugin","name":"Robot Cell Simulator","wait":120}';
  2. die Zelle laden (Sitzung, Paket .rcsz oder Studie) mit dem Client des Simulators template\RCS\AIAgent\rcs_api.ps1 '{"cmd":"open","file":"D:/cells/station.rcsz"}' und warten, bis {"cmd":"status"} loading und preparing false meldet;
  3. Bericht mit dem Schweißplan als Referenz: rcs_api.ps1 '{"cmd":"weld_report","plan":["D:/plans/A33_SK.xlsx"],"carBase":1,"show3d":true,"report":"D:/reports/rcs_weld.pdf","view":false}'.
Details: Robot Cell Simulator - Schweißplan als Referenz.

Lizenz

Die WPS-Lizenz des Herstellers des Programms: VKRC WPS für KUKA (VKRC und KRC), VFanuc WPS für Fanuc, ABB WPS für ABB (Yaskawa: keine WPS-Lizenz, nicht unterstützt). Der Menüeintrag braucht die Lizenz seines Herstellers; Programme eines Robotertyps ohne seine WPS-Lizenz oder ohne die Lizenz des Robotertyps werden mit einem Hinweis übersprungen. Die Befehls-API braucht zusätzlich die Lizenz API / CLI.

Siehe auch: die WPS-Plugins VKRC WPS, Fanuc WPS und ABB WPS (die Parameter der Schweißpunkte aus dem Plan den Schweißbefehlen zuweisen) und den Schweißpunktbericht des Robot Cell Simulators (Schweißpunkte der Programme in der Zelle im Vergleich mit der Studie oder mit dem Schweißplan, auch in der 3D-Ansicht).

Top