Weld compensation device

The present disclosure is directed to devices and methods for automating weld termination. In one embodiment, a compensation device is provided to grip a weld dam comprised of silicon dioxide. The compensation device is used to impart linear motion along an x-axis, y-axis, and z-axis, and rotational motion about the z-axis, to the weld dam. Via the imparted linear and rotational motion, the weld dam is then abutted against a surface of a workpiece, the workpiece comprising a first and a second section. In some embodiments, the workpiece surface includes uneven terminal ends of the first and second sections. In other embodiments, the workpiece surface is a bottom surface.

BACKGROUND

In some types of welding, molten metal is applied to a groove between two objects to join them together. Molten metal may be applied until a termination point in the groove is reached. Appropriately terminating the weld at the termination point is important for obtaining a weld with sufficient structural integrity and for preventing molten metal from flowing to undesired locations. Terminating such a weld, however, presents several challenges.

In some approaches, a weld is terminated by blocking molten metal at the termination point manually by an operator. Such an approach, however, may not produce a desired repeatability among welds and may be costly and dangerous. Weld termination may instead be automated, though both approaches encounter difficulty when terminating a weld against an uneven surface. In this scenario, insufficient weld termination may weaken welds and fail to prevent undesired molten metal flow.

SUMMARY

The present disclosure is directed to devices and methods for automating weld termination. In one embodiment, a compensation device is provided to grip a weld dam comprised of silicon dioxide. The compensation device is used to impart linear motion along an x-axis, y-axis, and z-axis, and rotational motion about the z-axis, to the weld dam. Via the imparted linear and rotational motion, the weld dam is then abutted against a surface of a workpiece, the workpiece comprising a first and a second section. In some embodiments, the workpiece surface includes uneven terminal ends of the first and second sections. In other embodiments, the workpiece surface is a bottom surface.

In this way, a weld may be dammed to prevent molten metal from flowing to undesired locations and weld termination automated. Such undesired molten metal flow may be prevented for workpieces with uneven surfaces to which a weld dam is abutted. Further, open root weld termination may be automated and open root welds backed.

DETAILED DESCRIPTION

The present disclosure is directed to automated weld termination. As described in more detail below, a compensation device is used to grip a weld dam comprised of silicon dioxide. The compensation device is used to impart linear motion along an x-axis, y-axis, and z-axis, and rotational motion about the z-axis, to the weld dam. The weld dam is then abutted via imparted motion against a surface of a workpiece comprising a first section and a second section, automating weld termination.

FIG. 1schematically shows a plan view of a weld environment100configured to facilitate an automated weld process which may include manual aspects. As shown, weld environment100comprises three stages: a carry-in stage102, a weld stage104, and a carry-out stage106. In totality, the stages are configured to carry in a workpiece to weld environment100, apply a weld to the workpiece, and carry out the workpiece for further processing.

At carry-in stage102, a carry-in robot108carries in a workpiece110for welding in weld environment100. Workpiece110is simultaneously shown in carry-in stage102, weld stage104, and carry-out stage106, though it will be understood that each instance of workpiece110may be a unique workpiece, with every workpiece substantially having the same material composition and dimensions. In other embodiments, workpieces may possess any suitable variety of dimensions according to the types of workpieces which may be welded and processed in weld environment100. Workpieces may be carried in from an external location, or, for example, from a carry-in platform112configured to stage workpieces on a level surface and in a rotational orientation suitable for handling by carry-in robot108. Further, carry-in platform112may be connected to an inbound conveyor114which may automatically transport workpieces into weld environment100from right to left and place them in the position shown on carry-in platform112.

Carry-in robot108includes a grip109having a shape suited for gripping workpiece110at its lateral sides. Having attained a sufficient grip, carry-in robot108moves workpiece110via rotational and/or translational motion to a weld platform116, which is configured to receive and support workpiece110during welding. As shown inFIG. 1, the reach of carry-in robot108is such that it places workpiece110at a right edge of weld platform116. However, such reach may vary without departing from the scope of this disclosure, and in some embodiments the reach of carry-in robot108may be such that it places workpieces substantially at a center of weld platform116.

Weld platform116provides a supportive, level surface on which workpieces may be received and welded. In some embodiments, weld platform116is a static surface which does not impart motion to a workpiece. In other embodiments, weld platform116is a conveyor which receives a workpiece at the right end, pulls the workpiece leftward toward a center of the platform, and finally pulls the workpiece toward a left end of the platform after welding, at which point the workpiece may be carried out for further handling. Weld platform116may include a plurality of jigs (not shown) to which workpieces may be affixed for increased stability. Moreover, weld platform116may comprise a plurality of lanes (not shown) which each support a workpiece. In this way, the throughput of weld environment100may be increased by allowing multiple workpieces to be welded simultaneously.

Once workpiece110is placed at the center of weld platform116, the weld process may be initiated at weld stage104.FIG. 1shows a compensation device118gripping and abutting a weld dam120against a terminal end of workpiece110. As shown, compensation device118is coupled to an octagonal actuating robot. Their individual and cooperative operation is further described below. Weld dam120is configured to prevent molten metal applied by a weld torch122from flowing into undesired locations. As the weld process begins, weld torch122moves, via rotational, translational, sinusoidal, or any other suitable motion provided by a weld robot124to which it is coupled, from right to left along a weld groove126. Weld robot may have the capability to span the vertical length of weld platform116and its lanes, if they are included. The molten metal applied by weld torch122along weld groove126joins together a first section128and a second section130of workpiece110. Once weld torch122reaches the terminal end of workpiece110, the weld process is terminated. Molten metal applied by the process is prevented from flowing beyond this terminal end by the abutment of weld dam120. Alternatively or additionally, workpieces may be backed and molten metal prevented from flowing beyond their bottom surfaces in weld environment100, described in further detail below with reference toFIG. 4. It will be appreciated that multiple weld robots may be included in weld environment100, and, in the embodiment in which weld platform116includes multiple lanes, one weld robot may be provided per lane.

After deposition of molten metal by weld torch122has completed, the molten metal is allowed to set and cool for a predetermined amount of time, thereby ensuring that a sufficient structural integrity is attained. Sufficient solidification of the molten metal is also ensured. Once the predetermined amount of time is reached, compensation device118removes weld dam120from the terminal end of workpiece110. Operation then proceeds to carry-out stage106, whereat a carry-out robot132removes workpiece110via its grip109from weld platform116and places workpiece110on a carry-out platform134. Like carry-in platform112, carry-out platform134may be connected to an outbound conveyor136which carries welded workpieces out of weld environment100for further processing. Similarly, carry-out robot132may be configured like carry-in robot108but suited for removing workpieces from weld platform116.

The above described robots, including carry-in robot108, weld robot124, and carry-out robot132, may be articulated robots. The robots may have three degrees of freedom, including rotational and translational degrees of freedom, though this number may be varied without departing from the scope of this disclosure. The robots may further engage in any other suitable types of motion, including sinusoidal motion. The reach of each robot may also be varied, for example depending on whether weld platform116is a static surface or a conveyor. The robots may be servo-controlled with a spatial accuracy and repeatability on the order of +/−2 millimeters or less. However, it will be appreciated that such spatial accuracy and repeatability is provided as a non-limiting example, and that these parameters may be varied without departing from the scope of this disclosure. In some examples, these parameters may vary depending on the types of welds and/or workpieces welded in weld environment100. Carry-in and carry-out robots108and132are also shown as non-limiting examples; conveyor and transfer devices may instead be used to implement their functions. Further, carry-in and carry-out robots108and132may be omitted from weld environment100and their functions carried out by human operators without departing from the scope of this disclosure.

As shown inFIG. 1, each robot includes a controller138configured to carry out the motions and routines described above, together facilitating a weld process. Alternatively, the robots may be commonly coupled to a single controller. Moreover, control functions may be distributed across specific controllers. For example, one controller may control weld robot124, while another controller may control carry-in and carry-out robots108and132. Such controller(s) may be configured to implement a continuous path control scheme in which each point along a desired path (e.g., the path extending from carry-in platform112to weld platform116) is specified. An exemplary controller in accordance with the present disclosure and configured to carry out the motions and routines described herein is described below with reference toFIG. 7.

Weld robot124may use any suitable techniques for achieving proper placement of weld torch122during the weld process. Such techniques include tactile sensing and visual sensing, the latter accomplished for example with the inclusion of a laser sensor (not shown). Moreover, such techniques may be augmented with the formation of a compensation table. In this approach, a test workpiece identical to workpiece110is sensed using a test robot (not shown) having the same sensor(s) included in weld robot124(e.g., tactile and/or laser sensor(s)). Position errors are then generated and used to generate the compensation table, which is accessed by controller138of weld robot124during the weld process. In this way, accurate welding may be achieved by referencing previously generated errors to minimize current errors.

The above discussed techniques may be used with various welding technologies, including arc welding, gas welding, energy beam welding, or other techniques. Thus, weld torch122may be a welding device such as a gas torch, electric arc unit, laser beam unit, ultrasound unit, etc. Specific types of welding include gas metal arc welding (GMAW), metal inert gas (MIG) welding, tungsten inert gas (TIG) welding, oxyacetylene welding (OAW), gas tungsten arc welding (GTAW), submerged arc welding (SAW), etc. However, it will be appreciated that these examples are non-limiting and that other suitable techniques may be used without departing from the scope of this disclosure.

Weld environment100may include additional components not shown inFIG. 1. For example, weld environment100may include an inspection robot configured to determine the spatial orientation of an inbound workpiece before being processed and welded by weld robot124. The inspection robot may include a laser sensor to determine such spatial orientation. Weld environment100may also include an inspection robot configured to inspect and measure a welded workpiece before being processed by carry-out robot132. Still further, a plurality of shields may be included in weld environment100to prevent splashing and propagation of molten metal to undesired locations. Although the weld process implemented by weld environment100is shown as proceeding from right to left, the weld process may instead proceed from left to right without departing from the scope of this disclosure. In such an embodiment, for example, weld robot124may be configured to weld workpieces from left to right.

Turning now toFIG. 2, an exemplary weld dam arrangement200is shown, further illustrating how weld dam120may be abutted via compensation device118against workpiece110in weld environment100. Reference numerals are repeated throughout the figures where appropriate.

In the illustrated example, weld dam arrangement200is prepared to carry out welding of workpiece110. Workpiece110includes first section128and second section130, which may be comprised of metal (e.g., steel) or any other type of material suitable for welding. As shown, first and second sections128and130are oriented such that they resemble rectangular blocks with laterally-oriented opposing faces which slope outward as the sections are traversed downward in a vertical direction. The opposing faces truncate with opposing edges202and204, which, in the illustrated example, are positioned adjacent each other and at least partially form a bottom of a weld groove126. It is in the space provided by weld groove126that welding of workpiece110and its sections is carried out, for example by weld torch122. It will be understood that opposing edges202and204may be placed in contact with each other, substantially apart, or any distance therebetween without departing from the scope of this disclosure. Particular weld approaches may depend on this separation distance, as described in further detail below.

A weld process may be carried out in which first and second sections128and130are welded together along opposing edges202and204by moving a weld torch (e.g., weld torch122), weld tip, or other welding device through weld groove126along a weld direction206. Weld torch122or another welding device may then stop at a weld joint termination point208, where molten metal produced by the welding process is blocked by weld dam120and prevented from flowing beyond weld joint termination point208. In other words, weld dam120prevents molten metal from flowing beyond an intended weld region that would otherwise be open. Such blockage facilitates the formation of a structurally sound weld while preventing molten metal from flowing to undesired locations, and is referred to herein as “weld termination”.

In the example shown inFIG. 2, compensation device180includes a pair of grip arms210gripping weld dam120at its lateral sides. Compensation device180may be controlled to automatically grip and abut weld dam120against a terminal end surface212of workpiece110to thereby automate weld termination. Compensation device180may include a plurality of degrees of freedom and may, for example, possess the capability to move throughout x, y, and z axes in a coordinate system214. Additional detail regarding compensation device180and its operation is provided below with reference toFIGS. 3,5, and6.

In the illustrated embodiment, weld dam120is shown as a rectangular block, as its geometric shape substantially corresponds to terminal end surface212to which it is abutted. As such, the ability of weld dam120to prevent undesired molten metal flow is maximized. Other shapes and geometric configurations are possible, however, without departing from the scope of this disclosure. Weld dams may be provided with surfaces or contours profiled to terminal end surfaces of workpieces with non-rectangular shapes. As non-limiting examples, convex or concave weld dams may be provided.

Weld dam120is comprised of silicon dioxide, which may present potential advantages over dams comprised of other materials. Dams comprised of copper, for example, may transfer copper into the weld before it has fully cooled, contaminating the weld with impurities and potentially degrading the weld's structural integrity. The welding process may then have to expend time and resources removing such impurities, for example via machining and re-welding. In contrast, because of its material composition of silicon dioxide, weld dam120may reduce or eliminate impurity transfer into the weld. As such, welding processes in accordance with the present disclosure need not expend the time and resources to remove impurities and reform the weld.

Weld dam120may further be reused for multiple welds due to its material composition. Ceramic dams, for example, are generally limited to a single use per weld and are generally more brittle and sensitive to heat inherent in the weld process. As such, the use of weld dam120may reduce cost and waste during the weld process.

In the illustrated example, weld dam120is comprised of silicon dioxide with a purity of 99.995%. However, it will be appreciated that the potential advantages described above may be achieved with other levels of purity. Moreover, silicon dioxide may be mixed with other select substances while still achieving the benefits described above.

After a weld has completed—in other words, has traversed the length of opposing edges202and204along weld direction206while depositing molten metal and reached weld joint termination point208, weld dam120may be removed for potential reuse, exposing terminal end surface212of workpiece110and first and second sections128and130. In one approach, weld dam120is removed after a predetermined period of time. Such a period of time, for example, may allow molten metal applied by a weld torch (e.g., weld torch122), weld tip, or other weld device to substantially solidify to a point at which it will no longer flow beyond weld joint termination point208. As a non-limiting example, the predetermined amount of time is 1.5 seconds. In another approach, weld dam120is allowed to release by its own weight after a longer period of time. In this example, weld dam120may become adhered to terminal end surface212of workpiece110and/or the terminal end of the applied molten metal. After the longer period of time, the molten metal may solidify to the extent that the gravitational force acting on weld dam120overcomes the diminishing adherence force, allowing the weld dam to release by its own weight. As one non-limiting example, the longer period of time is 40 seconds. In weld environment100, a detached weld dam may be handled by compensation device118or another suitably configured robot.

Turning now toFIG. 3, an exemplary weld dam mismatch arrangement300is shown. Mismatch arrangement300illustrates a scenario in which compensation device118abuts weld dam120against an uneven terminal end surface302of a workpiece304. In this example, the terminal end surface of a second section308is closer to compensation device118and weld dam120than the terminal end surface of a first section306. Compensation device118is thus unable to obtain flush abutment between weld dam120and terminal end surface302. A mismatch compensation procedure may be engaged in response.

In one embodiment, the mismatch compensation procedure includes first moving weld dam120and placing it in contact with one of the terminal ends of first section306and/or second section308. Contact with terminal ends may be detected by a variety of known methods, for example by detecting a deviation in the force or torque output of one or more motors operatively coupled to grip arms210. Once initial contact with one section is achieved, secondary contact with the remaining section is sought. This may be accomplished, for example, with one or more heuristics which indicate where another workpiece section is or is likely to be located in relation to the first with which contact has been achieved. Once contact with both the first and second sections has been achieved, the procedure may end and the weld may be initiated. Alternatively, the procedure may cause compensation device118to perturb contact with one or both sections to optimize abutment. For example, if compensation device118has obtained initial contact with first section306and secondary contact with second section308, it may subsequently rotate about the pivot formed between weld dam120and first section306, in the x-y plane formed by a coordinate system310. The procedures and heuristics described above may be stored and executed on a controller (e.g., controller138) operatively coupled to compensation device118. An exemplary controller in accordance with the present disclosure is described below with reference toFIG. 7.

Once abutment has been satisfactorily achieved, the weld may be carried out. However, a gap may still exist between the uneven terminal ends as shown inFIG. 3. In such a case, molten metal deposited during the weld may flow into undesired locations, for example beyond weld joint termination point208. Further steps to prevent undesired molten metal flow may be taken in response. In some embodiments, the weld joint termination point may be moved to shorten the length of a weld. This may allow molten metal to sufficiently solidify before flowing into undesired locations. Alternatively or additionally, undesired molten metal flow due to the gap may be mitigated by a combined dam and backing approach, described in more detail below.

Turning now toFIG. 4, a weld backing arrangement400is shown. Weld backing arrangement400includes a workpiece402comprising a first section404and a second section406, having opposing edges408and410, respectively. Unlike the arrangements described above, opposing edges408and410are adjacent each other but substantially separated. Opposing edges408and410thus form at least partially a bottom of an open root412in which molten metal may be deposited to join together first and second sections404and406. Such a weld may be designated a “complete joint penetration weld”. Open roots and complete joint penetration welding may be applicable to structural welds and fabrication of lengthy components—e.g., crane booms and ship and locomotive components.

Weld backing arrangement400further includes a weld backer414backed against bottom surfaces416and418of first and second sections404and406and against open root412. In the illustrated example, weld backer414has a rectangular geometry with a length that spans the lengths of first and second sections404and406. As welding is carried out, weld backer414may facilitate the formation of a weld with appropriate geometry and sufficient structural integrity in open root412, and may be moved by grip arms210of compensation device118. Further, weld backer414may prevent molten metal applied by the weld from flowing below bottom surfaces416and418in a vertical direction420.

While the approach described above may be appropriate for certain types of applications, it may be less desirable when applied to the fabrication and welding of lengthy components—a longer weld backer would be required, increasing cost and the complexity of the weld process. In such a case, weld backer414may have a length substantially less than the length of a workpiece to which it is applied. To compensate, weld backer414may be moved manually or automatically (e.g., by compensation device118) along the direction in which welding is carried out. Weld backer414may be moved in predetermined amounts along the weld direction, interrupted by periods of non-movement to allow the weld to solidify to a desired extent. Alternatively, weld backer414may be moved continuously at a rate that facilitates the sufficient solidification of the weld. Upon successful completion of a weld, weld backer414may be removed, for example by compensation device118to expose bottom surfaces416and418.

As described above with reference to weld dam120, weld backer414may possess alternative geometries to that shownFIG. 4. A curved, contoured weld backer may instead be used, for example to back the welding of circular components such as pipes. It will be appreciated, however, that such contoured geometry is provided as a non-limiting example and that virtually any profiled geometry is possible without departing from the scope of this disclosure.

Like weld dam120, weld backer414is comprised of silicon dioxide, thus the potential advantages described above apply, including non-contamination of welds. The material composition of weld backer414may be further advantageous when moved as molten metal is applied, for example when welding lengthy components. Weld backers comprised of ceramics, for example, may not be used in this scenario as their material composition tends to cause cracking in the ceramic material itself. Consequently, such ceramic weld backers may not be reused.

A weld dam and weld backer may be simultaneously applied to a workpiece for a combined dam and backing approach. In such an embodiment, a weld dam is abutted against a terminal end of a workpiece, preventing molten metal from flowing beyond a desired weld joint termination point. A weld backer is also backed against a bottom surface of the workpiece, preventing molten metal from flowing below this surface. The formation of a weld with appropriate geometry and sufficient structural integrity may thus be facilitated.

Such a combined approach may implement separate weld dams and backers, or may combine the two to form a contiguous weld dam and backer. The latter approach may be applicable to welds of smaller lengths. Returning toFIG. 3, molten metal flowing beyond weld joint termination point208due to misalignment of the terminal ends of first and second sections306and308may be caught by the backing portion of the combined weld dam and backer.

Turning now toFIG. 5, compensation device118is schematically shown in greater detail. In this embodiment, compensation device118has four degrees of freedom, including three degrees of linear freedom along an x-axis, a y-axis, and a z-axis in a coordinate system502, and a fourth rotational degree of freedom about the z-axis. Compensation device118may be operatively coupled to an actuating robot described below and may impart motion via the four degrees of freedom to an object (e.g., weld dam120) held in its grip arms210. It will be appreciated, however, that different numbers of degrees of freedom are possible without departing from the scope of this disclosure, for example six degrees of freedom comprising linear and rotational motion about the x, y, and z axes.

Compensation device118includes a compensation hub504in which a plurality of components are disposed to facilitate the linear and rotational motion described above. A pressure shaft506generates a back pressure responsive to a received fluid, the back pressure controlling the distance through which compensation hub504moves along the x and y axes. Pressure shaft506may be pneumatically coupled to an actuating robot, as described in further detail below. An actuating cylinder508controls linear motion of compensation hub504along the z-axis, and may be, for example, a spring or air cylinder. In such embodiments, the spring constant, which determines the relationship between a supplied force and the resulting motion output, may be adjustable. In other embodiments, actuating cylinder508may be servo, electrically, mechanically, or hydraulically driven. A rotation groove510, configured to control rotational motion of compensation hub504about the z-axis, is also included. Collectively, such components allow objects (e.g., a weld dam) to be placed in a desired three-dimensional location, by imparting the linear and rotational motion described above to the objects.

In some embodiments, compensation device118may be housed in a spatial fixture (not shown), bounding its range of motion to a particular region where a workpiece may be found. Such a fixture may increase the spatial accuracy and repeatability of compensation device118. As one non-limiting example, compensation device118may have a spatial repeatability of +/−2 mm or less, with the inclusion of the spatial fixture.

Turning now toFIG. 6, an exemplary actuating robot600is shown. In this example, actuating robot600has a recessed cylinder at its center which is mated and coupled to actuating cylinder508, thereby coupling actuating robot600to compensation device118. Actuating robot600includes four pneumatic tubes602configured to receive a fluid (e.g., pressurized air) from a pneumatic supply device (e.g., an air compressor), though the number of pneumatic tubes may be varied without departing from the scope of this disclosure. Pneumatic tubes602are further configured to transmit received fluid to components of compensation device118, including pressure shaft506. One or more of pneumatic tubes602may further be coupled to a pneumatic orifice604, which is a hollow opening disposed at the top of actuating cylinder508configured to receive fluid and thereby drive actuating cylinder508. In this way, compensation device118may be endowed with the four degrees of freedom described above, with pressure shaft506driving linear motion along the x and y axes, actuating cylinder driving linear motion along the z-axis, and rotation groove510driving rotational motion about the z-axis. Although embodiments in which actuating robot600is a pneumatic device are described, it will be understood that its functionality may instead be carried out by other suitable means without departing from the scope of this disclosure, for example by servo, electrical, or hydraulic means, or via a mechanical gearbox.

Actuating robot600may be operatively coupled to or include a controller606to carry out the functionality described above in addition to commands described below. Controller606may be, for example, controller700described below with reference toFIG. 7. Controller606first includes a “center” command which may be issued after the completion of a previous compensation sequence in which an object (e.g., a weld dam) gripped by compensation device118has been sufficiently abutted against a workpiece. Upon issuance of the center command, compensation device118may be offset along the z-axis in the x-y plane by an angle. The center command then causes actuating robot600to re-center compensation device118along the z-axis and in the x-y plane, resetting the angle to zero. The zero value of the angle may be predetermined in any suitable way, and may be determined with reference to the terminal end surface of a workpiece, for example.

Controller606next includes a “lock” command, which locks compensation device118to a desired angle in the x-y plane. The angle may be optimized for abutting an object against a workpiece. The angle may further be maintained as long as fluid is continually supplied to pressure shaft506, for example.

Controller606further includes lock and unlock commands, which lock and unlock compensation device118to/from any desired orientation achievable via its degrees of freedom.

Controller606finally includes a “stroke” command, which drives compensation device118a desired amount through the z-axis. In other words, the stroke command may be issued to vertically adjust the height of compensation device118.

The above described commands may be issued in any desired order to achieve the functionality described above, particularly including sufficiently abutting an object against a workpiece. In the embodiments in which actuating robot600is a pneumatic device, such commands may be individually tied to a single pneumatic tube602. In this example, each pneumatic tube602exclusively implements one of the center, lock, unlock, or stroke commands. Alternatively, two, three, or all of pneumatic tubes602may receive and transmit fluid cooperatively to carry out such commands.

Turning now toFIG. 7, an exemplary controller700is schematically shown, which may be used to carry out the methods described above.

Controller700is shown in simplified form. It will be understood that virtually any computer architecture may be used without departing from the scope of this disclosure. In different embodiments, controller700may take the form of a mainframe computer, server computer, desktop computer, laptop computer, tablet computer, home-entertainment computer, network computing device, gaming device, mobile computing device, mobile communication device (e.g., smart phone), etc.

Controller700includes a logic subsystem702, volatile memory303, and a non-volatile storage subsystem704. Controller700may also include a display subsystem708, input subsystem706, and network interface710, and/or other components not shown inFIG. 7.

Logic subsystem702includes one or more physical devices configured to execute instructions. For example, the logic subsystem may be configured to execute instructions that are part of one or more applications, services, programs, routines, libraries, objects, components, data structures, or other logical constructs. Such instructions may be implemented to perform a task, implement a data type, transform the state of one or more components, or otherwise arrive at a desired result.

The logic subsystem may include one or more processors configured to execute software instructions. Additionally or alternatively, the logic subsystem may include one or more hardware or firmware logic machines configured to execute hardware or firmware instructions. The processors of the logic subsystem may be single-core or multi-core, and the programs executed thereon may be configured for sequential, parallel or distributed processing. The logic subsystem may optionally include individual components that are distributed among two or more devices, which can be remotely located and/or configured for coordinated processing. Aspects of the logic subsystem may be virtualized and executed by remotely accessible, networked computing devices configured in a cloud-computing configuration.

Volatile memory703may include devices such as RAM that are used to temporarily contain data while it is being processed by the logic subsystem. It will be appreciated that data stored in volatile memory703is typically lost when power is cut.

Non-volatile storage subsystem704includes one or more physical devices configured to hold data and/or instructions in a non-volatile manner to be executed by the logic subsystem to implement the methods and processes described herein. Non-volatile storage subsystem704may include computer readable media (e.g., CD, DVD, HD-DVD, Blu-Ray Disc, FLASH memory, EEPROM, ROM, etc.), which may include removable media and/or built-in devices that hold instructions in a non-volatile manner, and thus continue to hold instructions when power is cut to the device. Non-volatile storage subsystem704may include other storage devices such as hard-disk drives, floppy-disk drives, tape drives, MRAM, etc.).

In some embodiments, aspects of the instructions described herein may be propagated over a communications medium, such as a cable or data bus, in a transitory fashion by a pure signal (e.g., an electromagnetic signal, an optical signal, etc.) that is not held by a physical device for a finite duration.

The terms “module,” “program,” and “engine” may be used to describe a software aspect of controller700implemented to perform a particular function. In some cases, a module, program, or engine may be instantiated via logic subsystem702executing instructions held by non-volatile storage subsystem704, using portions of volatile memory703. It will be understood that the terms “module,” “program,” and “engine” may encompass individual or groups of executable files, data files, libraries, drivers, scripts, database records, etc.

Display subsystem708may include one or more displays, which may be integrated in a single housing with the remaining components of the controller700, as is typical of smart phone applications, laptop computers, etc., or may be separated and connected by a wired or wireless connection to the computing device, as is typical of desktop computers. The displays may be touch-sensitive for input, in some examples.

Input subsystem706may comprise or interface with one or more user-input devices such as a keyboard, mouse, touch screen, etc.

Network interface710may be configured to communicatively couple controller700with one or more other computing devices via a computer network, such as the Internet, utilizing a wired or wireless connection.

It is to be understood that the configurations and/or approaches described herein are exemplary in nature, and that these specific embodiments or examples are not to be considered in a limiting sense, because numerous variations are possible. The embodiments described above and the embodiments illustrated in the drawings serve as examples of the variety of different devices. The subject matter of the present disclosure includes all novel and nonobvious combinations and subcombinations of the various configurations, features, functions, and/or properties disclosed herein, as well as any and all equivalents thereof.