arc welding description#

This document describes the main elements and workflow when describing arc welding processes. The process description is entirely focused on the welding parameters set on the power sources and does not cover measurements.

base GMAW process schema#

The main layout of any GMAW process is defined in the asdf://weldx.bam.de/weldx/schemas/process/terms-1.0.0 schema as base_process:

# terms-1.0.0.yaml
base_process:
  description: |
    The base metadata format for all GMAW process descriptions.
  type: object
  properties:
    base_process:
      type: string
    manufacturer:
      type: string
    power_source:
      type: string
    parameters:
      type: object
      wx_property_tag: "asdf://weldx.bam.de/weldx/tags/core/time_series-*"
    meta:
      type: object
  required: [base_process,manufacturer,power_source,parameters]

The properties base_process, manufacturer, and power_source are general metadata fields that must be provided to identify the process. For now, these are basic string entries but will be defined more explicitly in later weldx iterations. The meta properties is an optional field that can hold additional metadata if required.

power source parameters#

The parameters property is the most important aspect of the process definition. This property is used to list all welding parameters that are set on the power source. We use the wx_property_tag validator to restrict all properties of parameters to be a core/time_series object. This means that all welding process parameters must be defined as a quantity (therefor having a unit) and with a time-dependent behavior. We will see some examples later.

simple generic GMAW process definition#

The most generic tag implementation of any arc welding process is provided by asdf://weldx.bam.de/weldx/tags/process/GMAW-1.0.0:

%YAML 1.1
---
$schema: "http://stsci.edu/schemas/yaml-schema/draft-01"
id: "asdf://weldx.bam.de/weldx/schemas/process/GMAW-1.0.0"
tag: "asdf://weldx.bam.de/weldx/tags/process/GMAW-1.0.0"

title: |
  Generic GMAW process definition.

$ref: "./terms-1.0.0#/base_process"
...

This tag class can be used to define any kind of GMAW process that matches the base_process layout as described above. While possible to use it, it should only be used in circumstances where no explicit process definition exists (yet). The process/GMAW schema might be removed in future versions of the standard.

default spray and pulse arc process definitions#

In addition to the base_process structure, the basic process variations like spray and pulsed transfer modes are also defined in process/terms. These define the parameters that must be provided for all variations of the process. Here are the requirements to match when describing a generic spray arc process:

# terms-1.0.0.yaml
process:
  spray:
    type: object
    properties:
      base_process:
        type: string
        enum: [spray]
      parameters:
        type: object
        properties:
          wire_feedrate:
            $ref: "#/parameters/wire_feedrate"
          voltage:
            $ref: "#/parameters/voltage"
        required: [wire_feedrate, voltage]

The base_process property is enforced to indicate spray to correctly identify the process type. The parameters properties ensure that the parameters property always includes a wire_feedrate and voltage with correct unit dimensionality.

# terms-1.0.0.yaml
parameters:
  wire_feedrate:
    description: |
      Nominal average wire feedrate.
    tag: "asdf://weldx.bam.de/weldx/tags/core/time_series-1.0.0"
    wx_unit: "m/s"

  voltage:
    description: |
      Nominal target voltage for spray arc processes.
    tag: "asdf://weldx.bam.de/weldx/tags/core/time_series-1.0.0"
    wx_unit: "V"

combining process schemas#

We combine both the terms-1.0.0#/base_process and terms-1.0.0#/process/spray definitions using allOf to create the base spray arc process template:

allOf:
  - $ref: "./terms-1.0.0#/base_process"
  - $ref: "./terms-1.0.0#/process/spray"

example spray arc definition#

The above schemas only serve as building blocks for concrete manufacturer and equipment specific definitions of welding processes.

Let’s take a simple spray arc process that can be used on a CLOOS Quinto II power source as an example. The power source settings available are the following:

  • wire feed rate

  • welding voltage

  • impedance

  • characteristics

So in addition to the default pray arc parameters wire_feedrate and voltage, both impedance and characteristics also need to be defined for the CLOOS pray arc process. We create the new schema file as /process/CLOOS/spray_arc-1.0.0.yaml to imply the manufacturer. Here is the complete schema, covering the base_process metadata requirements as well as generic spray arc and additional CLOOS specific welding parameters:

%YAML 1.1
---
$schema: "http://stsci.edu/schemas/yaml-schema/draft-01"
id: "asdf://weldx.bam.de/weldx/schemas/process/CLOOS/spray_arc-1.0.0"
tag: "asdf://weldx.bam.de/weldx/tags/process/CLOOS/spray_arc-1.0.0"

title: |
  CLOOS spray arc process.

allOf:
  - $ref: "../terms-1.0.0#/base_process"
  - $ref: "../terms-1.0.0#/process/spray"
  - type: object
    properties:
      parameters:
        type: object
        properties:
          impedance:
            tag: "asdf://weldx.bam.de/weldx/tags/core/time_series-1.0.0"
            wx_unit: "percent"
          characteristic:
            tag: "asdf://weldx.bam.de/weldx/tags/core/time_series-1.0.0"
            wx_unit: "V/A"
        required: [impedance, characteristic]

...

use in python API#

All GMAW process definitions are handle as instances of the weldx.welding.GmawProcess class. Here is how to create an example instance implementing the CLOOS GMAW spray arc process above:

from weldx import Q_
from weldx.welding import GmawProcess

params_spray = dict(
    wire_feedrate=Q_(10.0, "m/min"),
    voltage=Q_(40.0, "V"),
    impedance=Q_(10.0, "percent"),
    characteristic=Q_(5, "V/A"),
)
process_spray = GmawProcess(
    "spray", "CLOOS", "Quinto", params_spray, tag="CLOOS/spray_arc"
)

Note that we have to manually assign the tag (without version information) that matches the CLOOS/spray_arc-1.0.0.yaml schema to correctly associate the tag.

And here is the resulting ASDF snippet:

spray: !<asdf://weldx.bam.de/weldx/tags/process/CLOOS/spray_arc-1.0.0>
  base_process: spray
  manufacturer: CLOOS
  parameters:
    characteristic: !<asdf://weldx.bam.de/weldx/tags/core/time_series-1.0.0>
      unit: volt / ampere
      values: 5
    impedance: !<asdf://weldx.bam.de/weldx/tags/core/time_series-1.0.0>
      unit: percent
      values: 10.0
    voltage: !<asdf://weldx.bam.de/weldx/tags/core/time_series-1.0.0>
      unit: volt
      values: 40.0
    wire_feedrate: !<asdf://weldx.bam.de/weldx/tags/core/time_series-1.0.0>
      unit: meter / minute
      values: 10.0
  power_source: Quinto
  tag: CLOOS/spray_arc