Patent ID: 12251773

The figures are not necessarily to scale. Where appropriate, the same or similar reference numerals are used in the figures to refer to similar or identical elements. For example, reference numerals utilizing lettering (e.g., welding system100a, welding system100b) refer to instances of the same reference numeral that does not have the lettering (e.g., welding system100).

DETAILED DESCRIPTION

Conventional part tracking systems can detect the number of welds performed during part assembly. Some part tracking systems can tell an operator if any welds were missed based on a comparison between the detected number of welds and an expected number of welds for the type of part being assembled. If the number of detected welds is different from a number of expected welds, the part tracking system can tell the operator that too few or too many welds were performed.

However, conventional part tracking systems cannot tell an operator which particular welds were missed. The operator may have missed the third weld or the thirteenth weld. Both situations would appear identical to conventional part tracking systems. Additionally, if a particular weld is mistakenly missed, and another extraneous weld is accidentally added, the part tracking system may fail to realize there is anything at all wrong with the part, because the number of detected welds would still be equal to the number of expected welds.

The part tracking system described herein uses machine learning techniques to identify whether an operator has missed one or more welds when assembling a part. The part tracking system can additionally identify which specific welds were missed (e.g., the first weld, the third weld, the fifteenth weld, etc.). The part tracking system may be able to identify missing welds after a part has been completed, or in real-time, during part assemblys. Identification of the particular weld(s) missed during the welding process can help an operator quickly assess and resolve any issues with the part being produced, saving time and ensuring quality.

Some examples of the present disclosure relate to a system, comprising: processing circuitry; and memory circuitry comprising computer readable instructions which, when executed, cause the processing circuitry to: identify an initial weld of a part assembly process, access one or more first feature characteristics of the initial weld, access a typical part model representative of a part produced by the part assembly process with all required welds, determine whether the part includes an initial required weld based on a comparison of at least some of the first feature characteristics of the initial weld with at least some first typical feature characteristics associated with an initial typical weld of the typical part model, and in response to determining that the part does not include the initial required weld, output a notification.

In some examples, one or more machine learning techniques are used to determine whether the part includes the initial required weld. In some examples, the memory circuitry further comprises computer readable instructions which, when executed, cause the processing circuitry to: in response to determining that the part does not include the initial required weld, disable one or more pieces of welding equipment involved in the part assembly process. In some examples, accessing the typical part model comprises generating the typical part model using a collection of typical feature characteristics associated with welds that were used previously to create the part. In some examples, the typical part model comprises a neural net, a statistical model, or a data set collection. In some examples, the initial weld occurs first in time after a start of the part assembly process, and before any other weld in the part assembly process. In some examples, the memory circuitry further comprises computer readable instructions which, when executed, cause the processing circuitry to identify the start of the part assembly process based on data received from one or more sensors, a user interface, welding equipment, or a welding robot.

In some examples, the memory circuitry further comprises computer readable instructions which, when executed, cause the processing circuitry to: in response to determining that the part does include the initial required weld: identify a subsequent weld of the welding assembly process, wherein one or more second feature characteristics are associated with the subsequent weld, and determine whether the part includes a subsequent required weld based on a comparison of at least some of the second feature characteristics with at least some second typical feature characteristics associated with a subsequent typical weld of the typical part model. In some examples, the memory circuitry further comprises computer readable instructions which, when executed, cause the processing circuitry to: in response to determining that the part does not include the initial required weld: access one or more missing weld part models, each of the one or more missing weld part models being representative of the part with one or more missing welds, and determine an analogous missing weld part model of the one or more missing weld part models that is most similar to the part using one or more machine learning techniques, wherein the notification is representative of the one or more missing welds of the analogous missing weld part model. In some examples, each initial model weld of each missing weld part model of the one or more missing weld part models is associated with one or more first model feature characteristics, and the analogous missing weld part model is determined via a comparison of at least some of the one or more first feature characteristics associated with the initial weld with at least some of one or more first model feature characteristics associated with each initial model weld.

Some examples of the present disclosure relate to a method, comprising: identifying, via processing circuitry, an initial weld of a part assembly process; accessing one or more first feature characteristics of the initial weld; accessing a typical part model representative of a part produced by the part assembly process with all required welds; determining, via the processing circuitry, whether the part includes an initial required weld based on a comparison of at least some of the first feature characteristics of the initial weld with at least some first typical feature characteristics associated with an initial typical weld of the typical part model; and in response to determining that the part does not include the initial required weld, outputting a notification.

In some examples, one or more machine learning techniques are used to determine whether the part includes the initial required weld. In some examples, the method further comprises disabling one or more pieces of welding equipment involved in the part assembly process in response to determining that the part does not include the initial required weld. In some examples, accessing the typical part model comprises generating the typical part model using a collection of typical feature characteristics associated with welds that were used previously to create the part. In some examples, the typical part model comprises a neural net, a statistical model, or a data set collection. In some examples, the initial weld occurs first in time after a start of the part assembly process, and before any other weld in the part assembly process.

In some examples, the method further comprises identifying the start of the part assembly process, based on data received from one or more sensors, welding equipment, a welding robot, or a user interface. In some examples, the method further comprises: in response to determining that the part does include the initial required weld: identifying a subsequent weld of the welding assembly process, wherein one or more second feature characteristics are associated with the subsequent weld; and determining whether the part includes a subsequent required weld based on a comparison of at least some of the second feature characteristics with at least some second typical feature characteristics associated with a subsequent typical weld of the typical part model. In some examples, the method further comprises: in response to determining that the part does not include the initial required weld: accessing one or more missing weld part models, each of the one or more missing weld part models being a modified version of the typical part model representative of the part with one or more missing welds; and determining an analogous missing weld part model of the one or more missing weld part models that is most similar to the part using one or more machine learning techniques, wherein the notification is representative of the one or more missing welds of the analogous missing weld part model. In some examples, each initial model weld of each missing weld part model of the one or more missing weld part models is associated with one or more first model feature characteristics, and the analogous missing weld part model is determined via a comparison of at least some of the one or more first feature characteristics associated with the initial weld with at least some of one or more first model feature characteristics associated with each initial model weld.

FIG.1shows an example welding system100in communication with a tracking station202. As shown, the welding system100includes a welding torch118and work clamp117coupled to a welding-type power supply108within a welding cell101. As shown, the tracking station202is electrically coupled to (and/or in electrical communication with) the welding-type power supply108. In some examples, the tracking station202may also be in communication with the welding torch118(e.g., via the welding-type power supply108).

In the example ofFIG.1, an operator116is handling the welding torch118near a welding bench112within the welding cell101. In some examples, the welding bench112may be and/or include a fixturing system configured to hold one or more workpiece(s)110. In some examples the fixturing system may include one or more work clamps117(e.g., manual and/or pneumatic clamps). In some examples, the workpiece(s)110may be independent of a welding bench112, such as, for example a freestanding element such as a structural steel element, pipeline, or bridge. While a human operator116is shown inFIG.1, in some examples, the operator116may be (and/or control) a robot and/or automated welding machine.

In the example ofFIG.1, the welding torch118is coupled to the welding-type power supply108via a welding cable126. The clamp117is also coupled to the welding-type power supply108via a clamp cable115. The welding-type power supply108is, in turn, in communication with tracking station202, such as via conduit130. In some examples, the welding-type power supply108may alternatively, or additionally, include wireless communication capabilities (e.g., wireless communication circuitry), through which wireless communication may be established with tracking station202. While shown as being in direct communication with tracking station202, in some examples, the welding-type power supply108may be in communication with tracking station202through a network (e.g., the Internet, a wide access network, local access network, etc.).

In the example ofFIG.1, the welding torch118is a gun configured for gas metal arc welding (GMAW). In some examples, the welding torch118may comprise an electrode holder (i.e., stinger) configured for shielded metal arc welding (SMAW). In some examples, the welding torch118may comprise a torch and/or filler rod configured for gas tungsten arc welding (GTAW). In some examples, the welding torch118may comprise a gun configured for flux-cored arc welding (FCAW). In some examples, the welding torch118may additionally, or alternatively, comprise a filler rod. In some examples, the welding torch118may comprise a robotic welding torch118, moved and/or actuated by a robot, rather than n operator116. In the example ofFIG.1, the welding torch118includes a trigger119. In some examples, the trigger119may be actuated by the operator116to activate a welding-type operation (e.g., arc).

In the example ofFIG.1, the welding-type power supply108includes (and/or is coupled to) a wire feeder140. In some examples, the wire feeder140houses a wire spool that is used to provide the welding torch118with a wire electrode (e.g., solid wire, cored wire, coated wire). In some examples, the wire feeder140further includes motorized rollers configured to feed the wire electrode to the torch118(e.g., from the spool) and/or retract the wire electrode from the torch118(e.g., back to the spool).

In the example ofFIG.1, the welding-type power supply108also includes (and/or is coupled to) a gas supply142. In some examples, the gas supply142supplies a shielding gas and/or shielding gas mixtures to the welding torch118(e.g., via cable126). A shielding gas, as used herein, may refer to any gas (e.g., CO2, argon) or mixture of gases that may be provided to the arc and/or weld pool in order to provide a particular local atmosphere (e.g., shield the arc, improve arc stability, limit the formation of metal oxides, improve wetting of the metal surfaces, alter the chemistry of the weld deposit, and so forth).

In the example ofFIGS.1and2, the welding-type power supply108also includes an operator interface144. In the example ofFIG.1, the operator interface144comprises one or more adjustable inputs (e.g., knobs, buttons, switches, keys, etc.) and/or outputs (e.g., display screens, lights, speakers, etc.) on the welding-type power supply108. In some examples, the operator interface144may comprise a remote control and/or pendant. In some examples, the operator116(and/or other user) may use the operator interface144to enter and/or select one or more weld parameters (e.g., voltage, current, gas type, wire feed speed, workpiece material type, filler type, etc.) and/or weld operations for the welding-type power supply108. In some examples, the operator interface144may further include one or more receptacles configured for connection to (and/or reception of) one or more external memory devices (e.g., floppy disks, compact discs, digital video disc, flash drive, etc.).

In the example ofFIG.1, the welding-type power supply108includes power conversion circuitry132configured to receive input power (e.g., from mains power, a generator, etc.) and convert the input power to welding-type output power. In some examples, the power conversion circuitry132may include circuit elements (e.g., transformers, rectifiers, capacitors, inductors, diodes, transistors, switches, and so forth) capable of converting the input power to output power. In some examples, the power conversion circuitry132may also include one or more controllable circuit elements. In some examples, the controllable circuit elements may comprise circuitry configured to change states (e.g., fire, turn on/off, close/open, etc.) based on one or more control signals. In some examples, the state(s) of the controllable circuit elements may impact the operation of the power conversion circuitry132, and/or impact characteristics (e.g., current/voltage magnitude, frequency, waveform, etc.) of the output power provided by the power conversion circuitry132. In some examples, the controllable circuit elements may comprise, for example, switches, relays, transistors, etc. In examples where the controllable circuit elements comprise transistors, the transistors may comprise any suitable transistors, such as, for example MOSFETs, JFETs, IGBTs, BJTs, etc.

In the example ofFIG.1, the welding-type power supply108further includes control circuitry134electrically coupled to and configured to control the power conversion circuitry132. In some examples, the control circuitry134may include processing circuitry (and/or one or more processors) as well as analog and/or digital memory. In some examples, the control circuitry134is configured to control the power conversion circuitry132, to ensure the power conversion circuitry132generates the appropriate welding-type output power for carrying out the desired welding-type operation.

In some examples, the control circuitry134is also electrically coupled to and/or configured to control the wire feeder140and/or gas supply142. In some examples, the control circuitry134may control the wire feeder140to output wire at a target speed and/or direction. For example, the control circuitry134may control the motor of the wire feeder140to feed wire to (and/or retract the wire from) the torch118at a target speed. In some examples, the welding-type power supply108may control the gas supply142to output a target type and/or amount of gas. For example, the control circuitry134may control a valve in communication with the gas supply142to regulate the gas delivered to the welding torch118.

In the example ofFIG.1, the welding system100further includes several sensors150. In some examples, one or more of the sensors150may comprise one or more of a current sensor, a voltage sensor, a magnetic field sensor, a resistance sensor, a wire feed speed sensor, a gas flow sensor, a clamping sensor, an NFC interrogator, an RFID interrogator, a Bluetooth interrogator, a barcode reader, a camera, an optical sensor, an infrared sensor, an acoustic sensor, a sound sensor, a microphone, a position sensor, a global positioning system (GPS) unit, an accelerometer, an inertial measurement unit, an x-ray sensor, a radiographic sensor, a torque sensor, a non-destructive testing sensor, a temperature sensor, and/or a humidity sensor. As shown, the sensors150are positioned in, on, and/or proximate to the work clamp117, welding torch118, welding-type power supply108, wire feeder140, gas supply142, and power conversion circuitry132.

In the example ofFIG.1, a sensor150is also shown mounted to and/or hanging from a fixture (e.g., wall, door, ceiling, pillar, curtain, etc.) of the welding cell101. While only one sensor150is shown mounted to and/or hanging from a fixture, in some examples, multiple sensors150may be mounted to and/or hung from a fixture. As shown, multiple sensors150are also mounted to and/or hanging from an unattended robot vehicle152(e.g., a drone). While the robot vehicle152is an aerial vehicle in the example ofFIG.1, in some examples, the robot vehicle152may instead be a ground vehicle or an aquatic vehicle.

In some examples, the sensors150may be configured to sense, detect, and/or measure various data of the welding system100. For example, the sensors150may sense, detect, and/or measure data such as one or more locations, positions, and/or movements of the operator116, welding torch118, workpiece110, and/or other objects within the welding cell101. As another example, the sensors150may sense, detect, and/or measure data such as air temperature, air quality, electromagnetism, and/or noise in the welding cell101. As another example, the sensors150may sense, detect, and/or measure data such as a voltage and/or current of the power received by the welding-type power supply108, power conversion circuitry132, and/or welding torch118, and/or the voltage and/or current of the power output by the welding-type power supply108and/or power conversion circuitry132. As another example, the sensors150may sense, detect, and/or measure data such as a velocity (e.g., speed and/or feed direction) of the wire feeder140and/or type of wire being fed by the wire feeder140. As another example, the sensors150may sense, detect, and/or measure data such as a gas type and/or gas flow (e.g., through a valve) from the gas supply142to the welding torch118. As another example, the sensors150may sense, detect, and/or measure data such as a trigger signal (e.g., actuation, de-actuation, etc.) of the welding torch118, and/or a clamping signal (e.g., clamp, unclamp, etc.) of the clamp117.

In some examples, the sensors150may be configured to communicate data sensed, detected, and/or measured to the welding-type power supply108and/or tracking station202. In some examples, the control circuitry134may be in communication with some or all of the sensors150and/or otherwise configured to receive information from the sensors150. In some examples, the tracking station202may be in communication with some or all of the sensors150and/or otherwise configured to receive information from the sensors150(e.g., through the control circuitry134).

In some examples, a welding operation (and/or welding process) may be initiated when the operator116actuates the trigger119of the welding torch118(and/or otherwise activates the welding torch118). During the welding operation, the welding-type power provided by the welding-type power supply108may be applied to the electrode (e.g., wire electrode) of the welding torch118in order to produce a welding arc between the electrode and the one or more workpieces110. The heat of the arc may melt portions of a filler material (e.g., wire) and/or workpiece110, thereby creating a molten weld pool. Movement of the welding torch118(e.g., by the operator) may move the weld pool, creating one or more welds111.

When the welding operation is finished, the operator116may release the trigger119(and/or otherwise deactivate/de-actuate the welding torch118). In some examples, the control circuitry134may detect that the welding operation has finished. For example, the control circuitry134may detect a trigger release signal via sensor150(and/or from torch118directly). As another example, the control circuitry134may receive a torch deactivation command via the operator interface144(e.g., where the torch118is maneuvered by a robot and/or automated welding machine).

In some examples, the sensors150may detect data pertaining to the welding-type power supply108, clamp117, bench112, and/or welding torch118during a welding process. In some examples, the welding-type power supply108may also detect certain data (e.g., entered via the operator interface144, detected by control circuitry134, etc.). In some examples, the sensors150and/or welding-type power supply108may be configured to communicate this data to the tracking station202(directly and/or through welding-type power supply108). In some examples, the data may be communicated to the tracking station202in real time, periodically during a welding operation, and/or after a welding operation. In some examples, the tracking station202may be embodied and/or implemented within the welding-type power supply108(e.g., via control circuitry134)

The data collected by the sensors150, power supply108, and/or other portions of the welding system100can be valuable. For example, the data may be analyzed to automatically identify a beginning and/or end of a part assembly process that consists of several welds. Additionally, the data may be analyzed to automatically identify individual welds of a part assembly process, and/or determine feature characteristics of those welds.

FIG.2ais a block diagram showing an example part tracking system200. As shown, the part tracking system200includes the part tracking station202, as well as several welding systems100(each having sensors150and welding equipment151) in communication with the part tracking station202. In the example ofFIG.2a, the part tracking system200further includes one or more central servers206, and one or more other tracking stations204.

In the example ofFIG.2a, the tracking station202is electrically (and/or communicatively) coupled to the sensors150and/or welding equipment151(e.g. power supplies108, torches118, clamps117, etc.) of each welding system100. While three welding systems100are shown in the example ofFIG.2a, in some examples, there may be more or less welding systems100. In some examples, the tracking station202(and/or central server(s)206) may receive data from the system(s)100continuously, periodically, and/or on demand.

In the example ofFIG.2a, the tracking station202is electrically (and/or communicatively) coupled to a user interface (UI)216. In some examples, the UI216may comprise one or more input devices (e.g., touch screens, mice, keyboards, buttons, knobs, microphones, dials, etc.) and/or output devices (e.g., display screens, speakers, lights, etc.). In some examples, the UI216may further include one or more receptacles configured for connection to (and/or reception of) one or more external memory devices (e.g., floppy disks, compact discs, digital video disc, flash drive, etc.). In operation, an operator116or other user may provide input to, and/or receive output from, the tracking station202via the UI216. While shown as a separate component in the example ofFIG.2a, in some examples, the UI216may be part of the tracking station202.

In the example ofFIG.2a, the tracking station202is in communication with one or more other tracking stations204and one or more central servers206through network208(e.g., the Internet, a wide access network, local access network, etc. As shown, the sensors150aand welding equipment151aof welding system100aare also in communication with the central server(s)206through a network208. While only one welding system100ais shown as being communicatively coupled to the central server(s)206through the network208, in some examples, all, some, or none of the welding systems100may be communicatively coupled to the central server(s)206through the network208. In some examples, the tracking station202may be in communication with the one or more other tracking stations204and/or the one or more central servers206directly, rather than through the network208. In some examples, the welding system100amay be in communication with the central server(s)206directly, rather than through the network208. In some examples, the central server(s)206may be implemented via the tracking station202and/or one or more of the other tracking stations204. In some examples, one or more of the other tracking station(s)204may be tracking stations200that are remotely located.

In the example ofFIG.2a, the tracking station202includes communication circuitry210, processing circuitry212, and memory circuitry214, interconnected with one another via a common electrical bus. In some examples, the processing circuitry212may comprise one or more processors. In some examples, the communication circuitry210may include one or more wireless adapters, wireless cards, cable adapters, wire adapters, dongles, radio frequency (RF) devices, wireless communication devices, Bluetooth devices, IEEE 802.11-compliant devices, WiFi devices, cellular devices, GPS devices, Ethernet ports, network ports, lightning cable ports, cable ports, etc. In some examples, the communication circuitry210may be configured to facilitate communication via one or more wired media and/or protocols (e.g., Ethernet cable(s), universal serial bus cable(s), etc.) and/or wireless mediums and/or protocols (e.g., near field communication (NFC), ultra high frequency radio waves (commonly known as Bluetooth), IEEE 802.11x, Zigbee, HART, LTE, Z-Wave, WirelessHD, WiGig, etc.). In some examples, the tracking station202may be implemented by way of a desktop computer, laptop computer, computer server, and/or welding-type power supply108(e.g., via control circuitry134).

In the example ofFIG.2a, the memory circuitry214stores sensor data218received from sensors150. As shown, the memory circuitry214also stores several identified welds222(e.g., identified from the sensor data218). As shown, each weld234of the identified welds222includes feature characteristics220(e.g., extracted from the sensor data218). In some examples, feature characteristics220of a weld234may include, for example, duration of a weld234, start date/time, end date/time, operator (e.g., name, ID), voltage, current, and/or other relevant features and/or characteristics of the weld234(further discussed below).

In the example ofFIG.2a, the memory circuitry214stores a missing weld identification program300. In some examples, the missing weld identification program300may determine whether any welds234are missing from the identified welds222, and/or which specific welds234are missing. As shown, the memory circuitry214additionally stores one or more typical part model(s)228(e.g., developed and/or used by a missing weld identification program300), and one or more missing weld part models232(e.g., developed from the typical part model(s)228and/or used by the missing weld identification program300).

In the example ofFIG.2a, the memory circuitry214further stores certain constraints226. In some examples, the constraints226may be used by the missing weld identification program300to determine which feature characteristic(s)220, typical part model(s)228, and/or missing weld part model(s)232to use. In some examples, the constraints226may be preset, downloaded (e.g., from the central server(s)206), user entered, and/or otherwise obtained. As shown, the memory circuitry214further stores a database (DB)230(e.g., used to organize and/or store data, such as, for example, the sensor data218, identified welds222, typical part models228, missing weld part models232, constraints226, etc.).

While shown as stored in memory circuitry214in the example ofFIG.2a, in some examples, the sensor data218, feature characteristics220, identified welds222, typical part model(s)228, missing weld part model(s)232, and/or constraints226may alternatively, or additionally, be stored in the DB230, in memory circuitry of the central server(s)206, and/or in memory circuitry of other tracking station(s)204. While shown as stored in memory circuitry214of the tracking station202in the example ofFIG.2a, in some examples, all or some of the missing weld identification program300may be stored in memory circuitry of the central server(s)206, and/or executed by processing circuitry of the central server(s)206. While shown as stored in the memory circuitry214of the tracking station202inFIG.2a, in some examples, the DB230may alternatively, or additionally be stored in memory circuitry of the central server(s)206and/or other tracking station(s)204. For the sake of convenience, future references to memory circuitry214of the tracking station202, memory circuitry of the central server(s)206, and/or memory circuitry214of other tracking stations204may be referred to collectively as memory.

FIG.2bis a block diagram showing more detail of an example DB230. In the example ofFIG.2b, the DB230stores sensor data218, typical part models228, missing weld part models232, identified parts224, and constraints226. As shown, the identified parts224comprise a plurality of parts236, with each part236including several welds234. Though not shown inFIG.2bto save space, each weld234may be associated with its own feature characteristics220, such as shown with respect to the identified welds222inFIG.2a. As shown, each part236may also be associated with its own part specific feature characteristics220. In some examples, the identified parts224may be continuously and/or periodically updated with data from newly assembled parts236.

In some examples, the missing weld identification program300may analyze data collected by the sensors150, operator interface144, and/or welding equipment151of a welding system100, as well as data collected via the UI216(collectively referred to hereinafter as sensor data218). In some examples, the sensor data218may be used to identify a start and/or end of a part assembly process, as well welding activity that occurs during the part assembly process (e.g., via signal(s) representative of clamp activation and/or release, a trigger pull/release, voltage/current detection, etc.). In some examples, time periods of welding activity may be identified as welds234(e.g., of the identified welds222). In some examples, identified welds234that occur between the start and end of a part assembly process may be associated with a part236and saved in memory and/or the DB230with the identified parts224. In some examples, the missing weld identification program300may determine certain feature characteristics220based on the analysis of the sensor data218, and associate relevant feature characteristics220with each weld234of the identified welds222and/or part236of the identified parts224.

In some examples, the missing weld identification program300may analyze the welds234(e.g., the identified welds222) of a part236to determine if there are any welds234missing, and/or which specific welds234are missing. For example, the missing weld identification program300may compare the identified welds222of a newly assembled part236with welds234of a typical part model228to determine if there are any welds234missing. If welds234are missing, the missing weld identification program300may analyze the analyze the part236in view of one or more missing weld part models232to determine the particular missing weld(s)234. Identification of a missing weld234during part assembly enables an operator116to quickly identify and/or address the issue, saving time and ensuring quality.

FIGS.3aand3bare flowcharts illustrating an example missing weld identification program300. In some examples, the missing weld identification program300may be implemented in machine readable (and/or processor executable) instructions stored in memory and/or executed by processing circuitry.FIG.3ais an example of a post part missing weld identification program300a.FIG.3bis an example of an in-progress part missing weld identification program300b. In some examples, the missing weld identification programs300may execute sequentially or in parallel. In some examples, only one missing weld identification program300may execute. In some examples, the part tracking system200may decide to execute the missing weld identification program300aand/or missing weld identification program300bbased on one or more user inputs and/or constraints226.

In the example ofFIG.3a, the missing weld identification program300abegins at block302. At block302, the missing weld identification program300acollects sensor data218(e.g., from sensors150, welding equipment151, and/or UI216). At block320, the missing weld identification program300aalso collects constraints226(e.g., from UI216and/or DB230). In some examples, the constraints226may comprise information that may assist the part tracking system200in deciding to execute the missing weld identification program300aand/or missing weld identification program300b. In some examples, the constraints226may comprise information that may assist the missing weld identification program300ain generating and/or selecting one or more typical part models228and/or missing weld part models232. In some examples, constraints226may include such information as, for example, the current operator, shift, fixture, time of day, day of the week, type/make/model of equipment, maintenance schedule, environmental conditions, and/or other pertinent information. In some examples, this data may alternatively, or additionally, be obtained via a lookup in memory based on sensor data218and/or other information (e.g., an internal clock of the tracking station202and/or central server(s)206.

In some examples, the sensor data218and/or constraints226may be stored in the DB230and/or memory. While shown in the example ofFIG.3afor the sake of understanding, in some examples, the collection of sensor data218and/or constraints226may happen outside of the context of the missing weld identification program300a. While shown as taking place at the beginning of the missing weld identification program300ain the example ofFIG.3afor the sake of understanding, in some examples, the collection of sensor data218and/or constraints226may happen at other times. In some examples, additional data may also be collected at block302(e.g., event data).

In the example ofFIG.3a, the missing weld identification program300aproceeds to block304after block302. At block304, the missing weld identification program300aidentifies a start of a part assembly process. In some examples, the missing weld identification program300amay identify the start of the part assembly process based on user input (e.g., via UI216). For example, an operator116may provide input indicating that they are about to begin a part assembly process. In some examples, the missing weld identification program300amay identify the start of the part assembly process based on sensor data218. For example, clamp117(and/or sensor150coupled to, in communication with, and/or proximate to clamp117) may provide a signal indicative of a clamping event and/or activation of the clamp117. As another example, a sensor150may scan, read, and/or otherwise obtain information from a barcode, QR code, RFID device, NFC device, Bluetooth device, and/or other media indicative of the start of a part assembly process. In some examples, the missing weld identification program300amay additionally obtain information relating to the type of part being assembled at block304, such as, for example, via the same mechanism through which the beginning of the part assembly process is identified.

In the example ofFIG.3a, the missing weld identification program300aproceeds to block306after block304. At block306, the missing weld identification program300aidentifies one or more individual welds234of the part assembly process based on the collected sensor data218. In some examples, this identification may comprise identifying a start and/or an end of each weld234. For example, the missing weld identification program300amay analyze sensor data218representative of a trigger119pull/release, wire feed speed increase/decrease, gas flow increase/decrease, etc. at a certain time, and determine based on the sensor data218that a weld234began or ended at that time. Once a start and end of a weld234is identified, the missing weld identification program300amay associate sensor data218obtained between the start and end of the weld234with the weld234in memory as part of the identified welds222.

At block306, the missing weld identification program300aadditionally analyzes the sensor data218associated with each weld234to determine one or more feature characteristics220of each identified weld222. For example, the missing weld identification program300amay determine a weld start time feature characteristic of a weld234and a weld end time feature characteristic of the weld234based on timestamp information and the previously identified start and end of the weld234. As another example, the missing weld identification program300amay determine a weld duration of the weld234based on the difference between the weld start time and weld end time. As another example, the missing weld identification program300amay determine an average (and/or time series values of) voltage, current, wire feed speed, gas flow rate, work angle, torch travel speed, torch travel angle, weld temperature, ambient humidity, and/or ambient temperature over the duration of the weld234(e.g., based on sensor data218). As another example, the missing weld identification program300may determine the relevant operator116, gas type, wire type, workpiece material type, and/or location of the weld234(e.g., based on sensor data218). In some examples, the missing weld identification program300may save these feature characteristics220as part of the weld234, and/or otherwise associate the feature characteristics220with the weld234.

In some examples, feature characteristics220of a weld234may comprise one or more of a weld start time, a weld end time, a weld duration, a weld type, a weld identifier, a weld class, a weld procedure, a voltage, a current, a wire feed speed, a gas flow, a torch travel speed, a torch travel angle, a work angle, weld coordinates, a weld temperature, a weld property measurement, weld inspection data, a shift start time, a shift end time, an operator identifier, an operator name, an operator qualification, workpiece material preparation information, a workpiece material type, a wire type, a filler material property, a gas type, an assembly location, an ambient temperature, an ambient humidity, a false weld/arc flag (e.g., if weld duration is below a threshold), an ignore weld flag (e.g., if some input provided directing system to ignore), a total deposited wire/filler amount, a total gas amount used, a weld pass number, a weld confidence metric, a weld quality metric, a previous event type (e.g., weld, operator login, equipment fault, tip change, shift start/end, break start/end, etc.), a time since last weld, a time until next weld, a previous workflow event (e.g., perform maintenance), a job type, an image of an operational environment, and/or an image of the welding-related operation.

In the example ofFIG.3a, the missing weld identification program300aproceeds to block308after block306. At block308, the missing weld identification program300aidentifies an end to the part assembly process that was begun at block304. In some examples, the missing weld identification program300amay identify the end of the part assembly process based on user input and/or sensor data218, similar to that which is described above with respect to identifying the start of the part assembly process at block304.

In some examples, the welds234identified at block306may be associated together as (and/or with) a part236once the part assembly process ends at block308. In some examples, feature characteristics220be determined for and/or associated with the part236as well, in addition to the feature characteristics220of the welds234of the part236. In some examples, the feature characteristics220for the part236may be determined based on constraints226, sensor data218collected during (and/or before/after) the part assembly process, the feature characteristics220of the welds234identified during the part assembly process, and/or other information.

In some examples, feature characteristics220specific to a part236may include one or more of a part assembly start time, a part assembly end time, a part assembly duration, a number of expected welds, a number of completed welds, a number of false arcs, a number of ignored welds, a number of extra welds, a number of missing welds, a clamp time, a cycle time, a total deposited wire/filler amount, a total arc time, a total gas amount used, a part property measurement, part inspection data, a shift start time, a shift end time, an operator identifier, an operator name, an operator qualification, and/or a job type. In some examples, the missing weld identification program300amay associate and/or store part specific feature characteristics220with the part236(along with the welds234of the part236) in memory and/or the DB230(as part of the identified parts224). In some examples, the missing weld identification program300amay delay associating and/or storing the part236with the identified parts224until after the missing weld identification program300averifies that all expected and/or required welds234of the part236were properly completed and/or identified.

While shown in the example ofFIG.3afor the sake of understanding, in some examples, blocks302-308may happen outside of the context of the missing weld identification program300a. For example, in some cases blocks302-308may occur many times, over the course of many part assembly processes, before the rest of the missing weld identification program300aexecutes. However, in other examples, blocks302-308may occur immediately prior to the remaining portions of the missing weld identification program300a.

In the example ofFIG.3a, the missing weld identification program300aproceeds to block310after block308. At block310, the missing weld identification program300adetermines whether the identified welds222of the newly assembled part236include all the expected and/or required welds234for that type of part236. In some examples, this may be a relatively simple determination. For example, the missing weld identification program300amay determine the number of identified welds222for that part236by counting the number of welds234of the identified welds222(and/or examining the corresponding feature characteristic220of the part236). Additionally, the missing weld identification program300amay obtain information relating to the type of part236being assembled at block302and/or block304. Thereafter, the missing weld identification program300amay determine a required and/or expected number of welds234for the part236, based on its type, such as, for example, via a lookup in memory. In some examples, the actual and/or required/expected number of welds234may additionally, or alternatively, be a feature characteristics220of the part236. Thus, one way the missing weld identification program300amay determine whether all the expected/required welds234for the part236were completed and/or identified is to compare the number of identified welds222of the new part234with the expected/required number of welds234.

While a numerical comparison may be relatively simple and effective method of determining whether the new part236includes all the expected/required welds234, it may also be prone to error in some cases. For example, an operator116might miss an expected/required weld234, but perform an extra weld234, in which case the actual number of welds234would still be the same as the number of expected/required welds234, even though an expected/required weld234was missed. Thus, in some examples, the missing weld identification program300amay undertake a more thorough determination of whether the new part236includes all expected and/or required welds234.

In some examples, the missing weld identification program300amay analyze the newly identified welds222of the new part236in view of an appropriate typical part model228(corresponding to the same type of part236) to determine whether the new part236includes all the expected/required welds234. In some examples, welds234performed (correctly) at the same sequence step of a part assembly process often have similar feature characteristics220(assuming the same type of part236). Thus, by analyzing many parts236of the same type, a typical part model228may be generated that is representative of an average, normal, and/or typical part236of a particular type with all expected/required welds234. In some examples, the typical part model(s)228may be generated at block310. In some examples, the typical part model(s)228may be generated prior to block310, and simply accessed from memory at block310.

In some examples, several different typical part models228may be generated for the same type of part236. In such an example, each of the different typical part models228may be generated using slightly different sets of data. For example, one typical part model228may be generated using only data corresponding to one or more particular shifts, operators, pieces of equipment, months of the year, days of the week, hours of the day, maintenance schedules, work cell conditions, and/or other variables. In some examples, the missing weld identification program300amay choose one particular typical part model228to use at block310based on set/saved parameters, user input, and/or one or more constraints226.

In some examples, a typical part model228may be a neural net, a statistical model, or a data set collection. In examples where the typical part model228is a neural net, the neural net may be trained using previously identified parts224(of a particular part type) with no missing welds234. In some examples, only certain feature characteristics220may be used for the training (e.g., based on set/saved parameters, user input, and/or one or more constraints226). Once sufficiently trained, the missing weld identification program300amay input to the neural net the identified welds222of a new part236. The neural net, in turn, may analyze the feature characteristics220of the identified welds222and output a probability that the identified welds222comprise a part236of the same part type with no missing (or extra) welds. In some examples, if the probability is below a certain threshold (e.g., saved in memory and/or specified via the constraints226), the missing weld identification program300amay determine that the new part236does not include all the expected/required welds234. On the other hand, if the probability is above the threshold, the missing weld identification program300amay determine that the new part236does include all the expected/required welds234. In some examples, only certain feature characteristics220may be evaluated by the neural net (e.g., based on set/saved parameters, user input, and/or one or more constraints226).

In examples where the typical part model228is a statistical model, the statistical model may be a single part236compiled from statistical analysis of many different identified parts224(of the appropriate part type) with no missing (or extra) welds234. In some examples, each weld234of the statistical model may have feature characteristics220compiled from statistical analysis of the many different corresponding welds234of the different identified parts224. Thus, the feature characteristics220of each weld234in the statistical model may comprise an average and/or standard deviation of the feature characteristics220of the welds234of the different identified parts224. In some examples, the missing weld identification program300amay compare the feature characteristics220of each weld234of the statistical model to each corresponding weld234(i.e., weld1, weld2, weld3, etc.) of the newly assembled part236. In some examples, the comparison may be performed using a statistical analysis, such as, for example, a Bayesian statistical analysis. In some examples, only certain feature characteristics220may be evaluated by the statistical analysis (e.g., based on set/saved parameters, user input, and/or one or more constraints226).

In some examples, the result of the statistical analysis may be a probability that that the new part236has no missing (or extra) welds234. In some examples, the missing weld identification program300amay determine that the new part236has no missing welds234if the statistical probability is above a threshold, and determine that the new part236does have missing welds234if the probability is below the threshold. In some examples, the statistical analysis may determine a degree to which each new weld234of the new part236matches its corresponding weld234in the statistical model. In some examples, the probability that that the new part236has no missing (or extra) welds234may be determined based on degree to which each new weld234of the new part236matches its corresponding weld234in the statistical model.

In examples where the typical part model228is a data set collection, the data set collection may be a collection of previously identified parts224(of the same part type). In some examples, the data set collection may include parts236with no missing welds234and parts236with one or more missing welds234. In some examples, real world data for parts236with one or more missing welds234may be difficult to obtain, so the missing weld identification program300amay create parts236with missing welds234from parts236with no missing welds234by making a duplicate part236and removing one or more of the welds234of the duplicate part236. In some examples, the missing weld identification program300amay remove different welds234from different duplicate parts236, to create different (and/or all) possible permutations of a part236with one or more missing welds234. In some examples, the missing weld identification program300amay decline to create parts236with more than a saved and/or set threshold number or percentage (e.g., 20, 25%, etc.) of missing welds234for reasons of practicality (e.g., problem may be too big to fix if above threshold anyway) and/or in order to save processing time.

In some examples, the missing weld identification program300amay perform one or more distance calculations as part of a K nearest neighbor (KNN) analysis. In some examples, the missing weld identification program300amay determine which K (e.g., 5, 10, 15, etc.) parts236of the data set collection are “nearest” to the new part236using the distance calculation(s). In some examples, K may be a default value stored in memory. In some examples, the part tracking program300may determine K based user input and/or on one or more constraints226. In some examples, the distance calculation(s) and/or KNN analysis may be performed using feature characteristics220of the different welds234in the part236and the data set collection. In some examples, only certain feature characteristics220may be analyzed (e.g., based on set/saved parameters, user input, and/or one or more constraints226).

In some examples, the missing weld identification program300amay determine what parts236make up the majority of the K “nearest” parts236. In some examples, the missing weld identification program300amay require a part236be within a (e.g., set and/or saved) threshold distance in order to be considered “nearest.” In some examples, the missing weld identification program300amay determine that the new part236has no missing welds234if at least a (set and/or saved) threshold number (and/or percentage) of the K nearest parts236have no missing welds, and determine that the new part236does have missing welds234if otherwise. In some examples, the missing weld identification program300amay determine that the new part236has no missing welds234if the majority of the K nearest parts236have no missing welds, and determine that the new part236does have missing welds234if otherwise.

In some examples, the missing weld identification program300amay account for one or more suspected extra welds234of a part236by simply skipping (and/or ignoring) the suspected extra weld234during analysis. For example, if a part236has more welds234than a typical part model228(and/or a typical part236with no missing welds234), the missing weld identification program300amay skip/ignore different permutations of welds234in the part236when analyzing against a typical part model228. In some examples, the missing weld identification program300amay decide to skip/ignore a weld234based on one or more feature characteristics220of the weld234(e.g., the false/ignore weld flags). In some examples, the missing weld identification program300amay record (e.g., in memory) and/or provide one or more notifications (e.g., via UI216) representative of identified extra welds234. In some examples, the missing weld identification program300amay still proceed from block310to block312if the part236has one or more extra welds234, but no missing welds234(but may not be used to update models at block314).

FIG.4ais a diagram illustrating simple examples of welds234(e.g., identified welds222) of a new part236in view of welds234of a typical part model228. In order to keep things simple, the typical part model228is a statistical model, and each weld234of both the new part236and typical part model228has only two feature characteristics220: (e.g., average) current (i) and weld duration (T). Additionally, standard deviations are not shown for the typical part model228.

In the example ofFIG.4a, both the new part236and the typical part model228have five welds234. Thus, a simple analysis of the part236at block310might determine that the new part236has all required welds234. However, a closer analysis of the new part236in view of the typical part model228might indicate that something is wrong. In particular, the third weld234of the new part234has feature characteristics220that are significantly different from the third weld234of the typical part model228. Likewise for the fourth and fifth welds234. Thus, in some examples, the missing weld identification program300amight conclude that the new part236may have at least one extra weld234and/or at least one missing expected/required weld234.

In the example ofFIG.3a, the missing weld identification program300aproceeds to block312after block310if the missing weld identification program300adetermines that the part236has no missing welds234. At block312, the missing weld identification program300arecords the identified welds222as a part236of the identified parts224(if not already done). In some examples, the missing weld identification program300amay additionally update feature characteristics220of the part236(e.g., to indicate number of missing/extra welds234), and/or output a notification (e.g., via UI216) to let the operator know that the part236has all required/expected welds234. As shown, the missing weld identification program300athen proceeds to block314after block312, where the missing weld identification program300aupdates the typical part model(s)228(and/or missing part model(s)232) with data from the new part236. In some examples, block314may be skipped. While the missing weld identification program300ais shown ending after block314in the example ofFIG.3a, in some examples, the missing weld identification program300amay instead return to an earlier block (e.g., block302or block304).

In the example ofFIG.3a, the missing weld identification program300aproceeds to block316after block310if the missing weld identification program300adetermines that the part236has one or more missing welds234. At block316, the missing weld identification program300adisables one or more pieces of welding equipment151(e.g., via one or more disable signals sent to the welding equipment151). In some examples, this may prevent the operator116from continuing to assemble parts236without first fixing the part236with the missing weld(s)234. In some examples, block316may be skipped, such as, for example, if the missing weld identification program300ais being used to analyze parts236that were assembled some time in the past, rather than brand new parts236that just finished being assembled.

In the example ofFIG.3a, the missing weld identification program300aproceeds to block318after block316. At block318, the missing weld identification program300adetermines the number of welds234missing from the part236. In some examples, this may be a simple matter of comparing the number of expected welds234with the number of identified welds222of the part236, as discussed above. In some examples, the missing weld identification program300amay output a notification to the operator116(e.g., via UI216) indicative of the number of missing welds234. In some examples, block318may be skipped, such as, for example, where the determination at block310uses a typical part model228to determine whether there are missing welds234.

In the example ofFIG.3a, the missing weld identification program300aproceeds to block320after block318. At block320, the missing weld identification program300agenerates and/or accesses one or more missing weld part models232. In some examples, different missing weld part models232may be representative of the part236with different welds234missing (e.g., weld2, welds1and3, welds5,8, and16, etc.). By determining which missing weld part model(s)232is most similar to the part236, the missing weld identification program300amay be able to tell the operator116which particular welds234the part236is missing. Knowing which particular welds234are missing may be more helpful to an operator than simply knowing a certain number of welds234are missing.

In some examples, the missing weld identification program300amay generate (and/or access) missing weld part models232representative of all possible missing weld234permutations of a part236. In some examples, the missing weld identification program300amay decline to generate missing weld part models232with more than a saved and/or set threshold number or percentage (e.g., 20, 25%, etc.) of missing welds234for reasons of practicality (e.g., problem may be too big to fix if above threshold anyway) and/or in order to save processing time. In some examples, several different missing weld part models232may be generated with the same missing welds234, but from slightly different data sets (e.g., using only data corresponding one or more particular shifts, operators, pieces of equipment, etc.), similar to that which is described above with respect to generation of the typical part models228. In some examples, the missing weld identification program300amay choose which particular missing weld part models232to access and/or generate at block320based on set/saved parameters, user input, and/or one or more constraints226. In some examples, a missing weld part model232may include, and/or be associated with, metadata indicative of its part type and/or particular missing weld(s)234. In examples where the number of missing welds234is known, the missing weld identification program300amay generate or access only missing weld part models232with the appropriate number of missing welds234. In some examples, the missing weld part models232may be generated prior to block320, and/or simply accessed from memory at block320.

As noted above, real world data for parts236with one or more missing welds234may be difficult to obtain. Thus, in some examples, missing weld part models232may be generated from typical part models228. For example, where the typical part model228is a statistical model, a corresponding missing weld part model232may be generated by duplicating the statistical model and removing one or more of the welds234. In examples where a missing weld part model232is a data set collection, the data set collection may be generated by making a duplicate of a part236of the identified parts224(e.g., with no missing welds234) and removing one or more of the welds234of the duplicate part236. In some examples, where the missing weld part model232is a data set collection, the missing weld part model232may be the same as the typical part model228; or the same except that the missing weld part model232has no parts236without missing welds234. In examples where a missing weld part model232is a neural net, each neural net may be trained using a data set collection representative of parts236with one or more particular missing welds234.

In the example ofFIG.3a, the missing weld identification program300aproceeds to block322after block320. At block322, the missing weld identification program300aanalyzes the part236in view of the missing weld part model(s)232generated and/or accessed at block320and identifies one or more analogous missing weld part model(s)232(and/or analogous parts236having missing welds234).

Where the missing weld part models232are neural nets, the analysis at block322may comprise inputting the identified welds222of the new part236into the neural net. The neural net, in turn, may analyze the feature characteristics220of the identified welds222and output a probability that the new part236has the same missing welds234as that particular missing weld part model232. In some examples, the missing weld identification program300amay identify any neural net outputting a probability over a particular (e.g., set and/or saved) threshold as an analogous missing weld part model232. In some examples, the missing weld identification program300amay identify the neural net that outputs the highest probability (e.g., over a particular threshold) as the analogous missing weld part model232.

Where the missing weld part models232are statistical models, the analysis may comprise a statistical analysis (e.g., a Bayesian statistical analysis) of the feature characteristics220of the welds234of the part236in view of the feature characteristics220of the welds234of the statistical model. In some examples, only certain feature characteristics220may be compared (e.g., based on set/saved parameters, user input, and/or one or more constraints226). In some examples, the result of the statistical analysis may be a probability that that the part236has the same missing weld(s)234as the statistical model. In some examples, the statistical analysis may determine a degree to which each weld234of the part236matches its corresponding weld234in the statistical model. In some examples, the probability that that the part236has the same missing weld(s)234may be determined based on degree to which each weld234of the part236matches its corresponding weld234in the statistical model. In some examples, the missing weld identification program300amay identify any probability over a particular (e.g., set and/or saved) threshold as corresponding to an analogous missing weld part model232. In some examples, the missing weld identification program300amay identify the highest probability over a particular (e.g., set and/or saved) threshold as the analogous missing weld part model232.

Where the missing weld part model232is one big data collection, the analysis may comprise one or more distance calculations and a KNN analysis to determine which K (e.g., 5, 10, 15, etc.) parts236of the data set collection are “nearest” to the new part236. In some examples, the missing weld identification program300amay require a part236to be within a certain (e.g., set and/or saved) threshold distance in order to be considered “nearest.” In some examples, K may be a default value stored in memory. In some examples, the part tracking program300may determine K based user input and/or on one or more constraints226. In some examples, the distance calculation(s) and/or KNN analysis may be performed using feature characteristics220of the different welds234in the part236and the data set collection. In some examples, only certain feature characteristics220may be analyzed (e.g., based on set/saved parameters, user input, and/or one or more constraints226).

Since there may only be single missing weld part model232when using a data collection, the missing weld identification program300amay identify analogous parts236of the data collection, rather than an analogous missing weld part model232. In some examples, the missing weld identification program300amay identify the majority of the K nearest parts236with the same missing welds234as being analogous. In some examples, the missing weld identification program300amay identify a group of K nearest parts236with same missing welds234as analogous if that group is bigger in number/percentage than a (e.g., set and/or saved) threshold amount.

FIG.4bis a diagram showing simple examples of (statistical) missing weld part models232corresponding to the same part type as the new part236and typical part model228ofFIG.4a. As shown, each missing weld part model232inFIG.4bis missing a different weld234, as if a different weld234was removed from the welds234of the typical part model228ofFIG.4a. Only one weld234is shown as missing in each missing weld part model232ofFIG.4afor the sake of simplicity.

In some examples, the missing weld identification program300amay account for one or more extra welds234in its analysis of the new part236in view of the missing part models232. For example, the missing weld identification program300amay have learned that the new part236has an extra weld234from the analysis of block310, and/or determine there is an extra weld234from its analysis at block322. In some examples, the missing weld identification program300amay select different welds234to skip/ignore to account for the extra weld234.

In the example ofFIG.4a, the last weld234appears to be the extra weld234, as it has feature characteristics similar to the first two expected/required welds234of the typical part model228, but is at the end of the part236, rather than the beginning. In some examples, the missing weld identification program300amay specifically select to skip one or more welds234(such as the last weld234) based on one or more feature characteristics220. Thus, eventually the missing weld identification program300amay analyze just the first four welds234of the new part236. An analysis of just the first four welds234of the new part236in view of the welds234of the missing weld part models232ofFIG.4b(and their respective feature characteristics220) might indicate that the new part236is most analogous to (and/or has the highest probability of missing the same weld(s)234as) the missing weld part model232b.

In the example ofFIG.3a, the missing weld identification program300aproceeds to block324after block322. At block324, the missing weld identification program300aoutputs a notification to the operator116(e.g., via UI216) indicative of the particular missing welds234of the analogous missing weld part model(s)232(and/or analogous part(s)236). In examples where more than one analogous missing weld part model232(and/or part236) has been identified, the missing weld identification program300amay also determine and/or output a probability that a particular set of missing welds234are the same missing welds234of the analyzed part236.

In some examples, the missing weld identification program300amay output a notification that the analysis was inconclusive, and/or that there is some anomaly, if no analogous missing weld part model(s)232(and/or analogous parts236) were identified at block322. In some examples, such a situation may arise if, for example, welds234were performed out of order rather than missed. In such a situation, the missing weld identification program300amay (correctly) determine that the part236is neither similar to a typical part236having all expected/required welds234(e.g., in the right order), nor similar to a part236having particular missing welds234, and therefore label the new part236an anomaly. While shown as ending after block324in the example ofFIG.3a, in some examples, the missing weld identification program300amay return to a previous block (e.g., block302,304, or306) after block324, such as, for example, to allow the operator116an opportunity to correct the part236(e.g., by performing the missing welds234). In such an example, the missing weld identification program300amay re-enable any welding equipment151disabled at block316.

In some examples, the part tracking system200may execute the missing weld identification program300binstead of the missing weld identification program300a. In some examples, the missing weld identification program300amay be well suited to analyzing fully assembled parts236completed recently or in the past. In some examples, the missing weld identification program300bmay be well suited for analyzing parts236that are currently being assembled.

FIG.3bshows a flowchart illustrating an example missing weld identification program300b. In the example ofFIG.3b, the missing weld identification program300bbegins at block352. At block352, the missing weld identification program300bcollects sensor data218, similar (and/or identical) to that which is described above with respect to block302ofFIG.3a. A duplicate description is omitted here for the sake of brevity.

In the example ofFIG.3b, the missing weld identification program300bproceeds to block354after block352. In the example ofFIG.3b, the missing weld identification program300bidentifies a start of a part assembly process, similar (and/or identical) to that which is described above with respect to block304ofFIG.3a. A duplicate description is omitted here for the sake of brevity.

In the example ofFIG.3b, the missing weld identification program300bproceeds to block356after block354. At block356, the missing weld identification program300bsets variable X to 1 (the use of variable X is discussed further below). As shown, the missing weld identification program300bproceeds to block358after block356. At block358, the missing weld identification program300baccesses and/or generates one or more typical part models228corresponding to the type of part236being assembled, similar (and/or identical) to that which is described above with respect to block310ofFIG.3a.

However, while the neural net typical part models228accessed/generated at block310may be trained using parts224, the neural net typical part models228accessed/generated at block358may be trained using partial parts236. For example, some neural nets may be trained using only the first weld234aof parts236with no missing welds234. Some neural nets may be trained using the first weld234aand second weld234bof parts236with no missing welds234. Some neural nets may be trained using the first through third welds234of parts with no missing welds234. And so on, and so on, until finally, some neural nets are trained using all the welds234of parts236with no missing welds234(similar to the neural nets of block310ofFIG.3a).

This training of neural net typical part models228using partial parts236may be necessary because only a partial part236may have been completed at block358. The missing weld identification program300bis used to analyze parts236during part assembly, as each new weld234is identified, and before all welds234of the part236have been identified and/or performed. This is in contrast to the missing weld identification program300awhich may analyze all the welds234of the part236after part assembly has completed. Though statistical models and/or data set collections are more flexible, and able to be scaled for comparisons to smaller sequential weld234sets without having to do special training, the neural net typical part models228may need special training with partial parts236to work in the missing weld identification program300b.

In the example ofFIG.3b, the missing weld identification program300bproceeds to block360after block358. At block360, the missing weld identification program300bidentifies the start and end of the next weld234in the part assembly process, determines feature characteristics220of the weld234, and records the weld234as an identified weld234, such as described above with respect to block306ofFIG.3a. A repeat of the above description is omitted here for the sake of brevity.

In the example ofFIG.3b, the missing weld identification program300bproceeds to block362after block360. At block362, the missing weld identification program300banalyzes the X welds234identified and/or completed so far in view of the typical part model(s)228generated and/or accessed at block358. The analysis of block362may differ depending on the type of typical part model228used for the analysis.

Where a typical part model228is a data set collection, the analysis may comprise the same (or similar) sort of distance calculation(s) and KNN analysis described above with respect to blocks310and322ofFIG.3a. In some examples, the KNN analysis may determine distances between welds234of the in progress part236, and corresponding welds234of each part236in the data set collection (e.g., based on the relative feature characteristics220), and use these distances in the KNN analysis. However, as only X welds234of the in-progress part236have been completed/identified, in some examples, the KNN analysis at block362may only consider the first X welds234of each part236in the data set collection. Likewise, where a typical part model228is a statistical representation, the analysis of block362may comprise the same (or similar) sort of statistical analysis described above with respect to blocks310and322ofFIG.3a, but only considering the first X welds234of the statistical representation. Where the typical part model228is a neural net, the missing weld identification program300bmay use a neural net that has been trained on X number of welds234, as described above.

In the example ofFIG.3b, the missing weld identification program300bproceeds to block364after block362. At block364, the missing weld identification program300bdetermines whether the X welds234of the new part236are the expected/required X welds234, based on the analysis at block362. In some examples, the missing weld identification program300bmay make the determination based on whether the analysis at block362produces a probability above a (e.g., set and/or saved) threshold.

For example, where the typical part model228is a neural net, the neural net may output a probability that the X identified welds222of the in progress part236are the expected/required X welds234of the appropriate part type (i.e., with no missing welds234). Where the typical part model228is a statistical model, the result of the statistical analysis at block362may be a probability that the X identified welds222of the in progress part236are the expected/required X welds234of the appropriate part type (i.e., with no missing welds234). Where the typical part model228is a data set collection, the result of the KNN analysis at block362may be a determination of which K (e.g., 5, 10, 15, etc.) parts236of the data set collection are “nearest” to the in progress part236. However, a probability can be calculated in the KNN context as the number of the K nearest parts236with no missing welds234divided by K (and multiplied by 100). In some examples, the missing weld identification program300bmay determine that the X welds234of the new part236match the expected/required X welds234if the resulting probability from the analysis of block364is greater than a (e.g., set and/or saved) threshold.

In the context of the example new part236and typical part model228ofFIG.4a, the

In the example ofFIG.3b, the missing weld identification program300bproceeds to block366after block364if the missing weld identification program300bdetermines that the X welds234of the new part236match the expected/required welds234for that particular type of part236. At block366, the missing weld identification program300bdetermines whether an end of the part assembly process has been identified. In some examples, the missing weld identification program300amay identify the end of the part assembly process based on user input and/or sensor data218, similar (or identical) to that which is described above with respect to block308ofFIG.3a. If an end of the part assembly process is identified, the missing weld identification program300brecords the identified welds222as a part236of the identified parts224at block370(similar or identical to block312ofFIG.3a), then updates the typical part models228and/or missing weld part models232if appropriate at block372(similar to block314ofFIG.3a). Though, in the example ofFIG.3b, the missing weld identification program300bis shown ending after block372, in some examples, the missing weld identification program300bmay instead return to an earlier block (e.g., block352or block354). If an end of the part assembly process is not identified at block366, the missing weld identification program300bincrements the value of X at block368, then returns to block358.

In the context ofFIG.4a, the missing weld identification program300bmight initially (when X=1) analyze the first weld234of the new part236with respect to the first weld234of the typical part model228. As the first weld234of the new part236has feature characteristics220similar to those of the first weld234of the typical part model228, the missing weld identification program300bmight conclude there is a match at block364. As the new part236has only just begun, the missing weld identification program300bwould fail to detect an end of the part236at block366, then increment X at block368.

On the second pass (X=2), the missing weld identification program300bmight again conclude there is a match due to the similar feature characteristics220of the first and second welds234of the new part236and the typical part model228. However, on the third pass (X=3), the missing weld identification program300bmay find the third weld234of the new part236has feature characteristics220that are significantly different than those of the third weld234of the typical part model228. Thus, the missing weld identification program300bmight determine on the third pass (with X=3) that the first three welds234of the new part236do not match the first three expected/required welds234represented by the typical part model228.

In the example ofFIG.3b, the missing weld identification program300bproceeds to block374after block364if the missing weld identification program300bdetermines that the X welds234of the new part236do not match the expected/required welds234for that particular type of part236. At block374, the missing weld identification program300bdisables one or more pieces of welding equipment151, so that the operator116is prevented from continuing welding (similar to block316ofFIG.3a). In some examples, block374may be skipped.

In the example ofFIG.3b, the missing weld identification program300bproceeds to block376after block374. At block376, the missing weld identification program300bgenerates and/or accesses one or more missing weld part models232, similar (or identical) to block320ofFIG.3a. However, where a missing weld part model232is a neural net, the neural net may be trained using only X welds234(rather than all welds234) of a part236, similar to that which is described above with respect to block358. Additionally, in some examples, the missing weld identification program300bmay only generate and/or access missing weld part models232where the first missing weld234occurs after X−1 welds234(e.g., to save processing time). In some examples, the missing weld identification program300bmay only generate and/or access missing weld part models232with consecutive missing welds234(e.g., to save processing time).

In the example ofFIG.3b, the missing weld identification program300bproceeds to block378after block376. At block378, the missing weld identification program300banalyzes the X welds234of the in progress part236in view of the one or more missing weld part models232generated and/or accessed at block376, and identifies one or more missing weld part models232(and/or parts236with missing welds234) as analogous missing weld part models232(and/or analogous parts236). In some examples, block378ofFIG.3bmay be similar (and/or identical) to block322ofFIG.3a, except that only X identified welds222of the in progress part236are analyzed, rather than all welds234of the new part236.

In the context ofFIG.4b, the missing weld identification program300bmight suspect that at least the third weld234of the new part236is missing after the analysis at blocks362and364during the third pass (X=3) described above. Thus, in some examples, the missing weld identification program300bmight decline to access and/or generate the missing weld part model232centirely, as the missing weld part model232crepresents a part236with the fourth weld234being the first missing weld234. Regardless, the missing weld identification program300bmay analyze the first three welds234of the new part234and the first three welds234of the missing weld part models232and determine (based on the relative feature characteristics220) that the missing weld part model232bis most analogous.

In the example ofFIG.3b, the missing weld identification program300bproceeds to block380after block378. At block380, the missing weld identification program300boutputs a notification (e.g., via UI216) indicative of the particular missing welds234of the analogous missing weld part model(s)232(and/or analogous part(s)236), similar (and/or identical) to block324ofFIG.3a. While shown as ending after block380in the example ofFIG.3b, in some examples, the missing weld identification program300bmay return to a previous block (e.g., block358or block360) after block380, such as, for example, to allow the operator116an opportunity to correct the part236by performing the missing welds234. In such an example, the missing weld identification program300bmay re-enable any welding equipment151disabled at block374.

The example part tracking systems200disclosed herein use machine learning techniques (e.g., deep learning/neural nets, statistical analysis, KNN) to identify whether an operator116has missed one or more welds234when assembling a part236. The part tracking systems200can additionally identify which specific welds234were missed, so that an operator116knows exactly how to fix the part236. The part tracking systems200may be able to identify missing welds234after a part has been completed, or in real-time, during assembly of the part236. Identification of the particular weld(s)234missed during the part assembly process can help an operator116quickly assess and resolve any issues with the part236being assembled, saving time and ensuring quality.

The present methods and/or systems may be realized in hardware, software, or a combination of hardware and software. The present methods and/or systems may be realized in a centralized fashion in at least one computing system, or in a distributed fashion where different elements are spread across several interconnected computing or cloud systems. Any kind of computing system or other apparatus adapted for carrying out the methods described herein is suited. A typical combination of hardware and software may be a general-purpose computing system with a program or other code that, when being loaded and executed, controls the computing system such that it carries out the methods described herein. Another typical implementation may comprise an application specific integrated circuit or chip. Some implementations may comprise a non-transitory machine-readable (e.g., computer readable) medium (e.g., FLASH drive, optical disk, magnetic storage disk, or the like) having stored thereon one or more lines of code executable by a machine, thereby causing the machine to perform processes as described herein.

While the present method and/or system has been described with reference to certain implementations, it will be understood by those skilled in the art that various changes may be made and equivalents may be substituted without departing from the scope of the present method and/or system. In addition, many modifications may be made to adapt a particular situation or material to the teachings of the present disclosure without departing from its scope. Therefore, it is intended that the present method and/or system not be limited to the particular implementations disclosed, but that the present method and/or system will include all implementations falling within the scope of the appended claims.

As used herein, “and/or” means any one or more of the items in the list joined by “and/or”. As an example, “x and/or y” means any element of the three-element set {(x), (y), (x, y)}. In other words, “x and/or y” means “one or both of x and y”. As another example, “x, y, and/or z” means any element of the seven-element set {(x), (y), (z), (x, y), (x, z), (y, z), (x, y, z)}. In other words, “x, y and/or z” means “one or more of x, y and z”.

As utilized herein, the terms “e.g.,” and “for example” set off lists of one or more non-limiting examples, instances, or illustrations.

As used herein, the terms “coupled,” “coupled to,” and “coupled with,” each mean a structural and/or electrical connection, whether attached, affixed, connected, joined, fastened, linked, and/or otherwise secured. As used herein, the term “attach” means to affix, couple, connect, join, fasten, link, and/or otherwise secure. As used herein, the term “connect” means to attach, affix, couple, join, fasten, link, and/or otherwise secure.

As used herein the terms “circuits” and “circuitry” refer to physical electronic components (i.e., hardware) and any software and/or firmware (“code”) which may configure the hardware, be executed by the hardware, and or otherwise be associated with the hardware. As used herein, for example, a particular processor and memory may comprise a first “circuit” when executing a first one or more lines of code and may comprise a second “circuit” when executing a second one or more lines of code. As utilized herein, circuitry is “operable” and/or “configured” to perform a function whenever the circuitry comprises the necessary hardware and/or code (if any is necessary) to perform the function, regardless of whether performance of the function is disabled or enabled (e.g., by a user-configurable setting, factory trim, etc.).

As used herein, a control circuit may include digital and/or analog circuitry, discrete and/or integrated circuitry, microprocessors, DSPs, etc., software, hardware and/or firmware, located on one or more boards, that form part or all of a controller, and/or are used to control a welding process, and/or a device such as a power source or wire feeder.

As used herein, the term “processor” means processing devices, apparatus, programs, circuits, components, systems, and subsystems, whether implemented in hardware, tangibly embodied software, or both, and whether or not it is programmable. The term “processor” as used herein includes, but is not limited to, one or more computing devices, hardwired circuits, signal-modifying devices and systems, devices and machines for controlling systems, central processing units, programmable devices and systems, field-programmable gate arrays, application-specific integrated circuits, systems on a chip, systems comprising discrete elements and/or circuits, state machines, virtual machines, data processors, processing facilities, and combinations of any of the foregoing. The processor may be, for example, any type of general purpose microprocessor or microcontroller, a digital signal processing (DSP) processor, an application-specific integrated circuit (ASIC), a graphic processing unit (GPU), a reduced instruction set computer (RISC) processor with an advanced RISC machine (ARM) core, etc. The processor may be coupled to, and/or integrated with a memory device.

As used, herein, the term “memory” and/or “memory device” means computer hardware or circuitry to store information for use by a processor and/or other digital device. The memory and/or memory device can be any suitable type of computer memory or any other type of electronic storage medium, such as, for example, read-only memory (ROM), random access memory (RAM), cache memory, compact disc read-only memory (CDROM), electro-optical memory, magneto-optical memory, programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically-erasable programmable read-only memory (EEPROM), a computer-readable medium, or the like. Memory can include, for example, a non-transitory memory, a non-transitory processor readable medium, a non-transitory computer readable medium, non-volatile memory, dynamic RAM (DRAM), volatile memory, ferroelectric RAM (FRAM), first-in-first-out (FIFO) memory, last-in-first-out (LIFO) memory, stack memory, non-volatile RAM (NVRAM), static RAM (SRAM), a cache, a buffer, a semiconductor memory, a magnetic memory, an optical memory, a flash memory, a flash card, a compact flash card, memory cards, secure digital memory cards, a microcard, a minicard, an expansion card, a smart card, a memory stick, a multimedia card, a picture card, flash storage, a subscriber identity module (SIM) card, a hard drive (HDD), a solid state drive (SSD), etc. The memory can be configured to store code, instructions, applications, software, firmware and/or data, and may be external, internal, or both with respect to the processor.

The term “power” is used throughout this specification for convenience, but also includes related measures such as energy, current, voltage, and enthalpy. For example, controlling “power” may involve controlling voltage, current, energy, and/or enthalpy, and/or controlling based on “power” may involve controlling based on voltage, current, energy, and/or enthalpy.

As used herein, welding-type power refers to power suitable for welding, cladding, brazing, plasma cutting, induction heating, carbon arc cutting, and/or hot wire welding/preheating (including laser welding and laser cladding), carbon arc cutting or gouging, and/or resistive preheating.

As used herein, a welding-type power supply and/or power source refers to any device capable of, when power is applied thereto, supplying welding, cladding, brazing, plasma cutting, induction heating, laser (including laser welding, laser hybrid, and laser cladding), carbon arc cutting or gouging, and/or resistive preheating, including but not limited to transformer-rectifiers, inverters, converters, resonant power supplies, quasi-resonant power supplies, switch-mode power supplies, etc., as well as control circuitry and other ancillary circuitry associated therewith.

As used herein, a part, as used herein, may refer to a physical item that is prepared and/or produced through a welding-type process and/or operation, such as, for example, by welding two or more workpieces together. In some contexts, a part may refer to data stored in non-transitory memory that is representative of a physical item prepared and/or produced through a welding-type process and/or operation.

Disabling of circuitry, actuators, and/or other hardware may be done via hardware, software (including firmware), or a combination of hardware and software, and may include physical disconnection, de-energization, and/or a software control that restricts commands from being implemented to activate the circuitry, actuators, and/or other hardware. Similarly, enabling of circuitry, actuators, and/or other hardware may be done via hardware, software (including firmware), or a combination of hardware and software, using the same mechanisms used for disabling.