US20190163156A1 - Systems and methods for path command generation - Google Patents

Systems and methods for path command generation Download PDF

Info

Publication number
US20190163156A1
US20190163156A1 US15/827,780 US201715827780A US2019163156A1 US 20190163156 A1 US20190163156 A1 US 20190163156A1 US 201715827780 A US201715827780 A US 201715827780A US 2019163156 A1 US2019163156 A1 US 2019163156A1
Authority
US
United States
Prior art keywords
path command
interface
command
industrial machine
conditions
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
US15/827,780
Other versions
US10310473B1 (en
Inventor
Yoshihiro Marushita
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to US15/827,780 priority Critical patent/US10310473B1/en
Assigned to MITSUBISHI ELECTRIC CORPORATION reassignment MITSUBISHI ELECTRIC CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MARUSHITA, YOSHIHIRO
Priority to PCT/JP2018/031755 priority patent/WO2019106899A1/en
Priority to JP2019512850A priority patent/JP6545421B1/en
Publication of US20190163156A1 publication Critical patent/US20190163156A1/en
Application granted granted Critical
Publication of US10310473B1 publication Critical patent/US10310473B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0426Programming the control sequence
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B23MACHINE TOOLS; METAL-WORKING NOT OTHERWISE PROVIDED FOR
    • B23KSOLDERING OR UNSOLDERING; WELDING; CLADDING OR PLATING BY SOLDERING OR WELDING; CUTTING BY APPLYING HEAT LOCALLY, e.g. FLAME CUTTING; WORKING BY LASER BEAM
    • B23K26/00Working by laser beam, e.g. welding, cutting or boring
    • B23K26/02Positioning or observing the workpiece, e.g. with respect to the point of impact; Aligning, aiming or focusing the laser beam
    • B23K26/04Automatically aligning, aiming or focusing the laser beam, e.g. using the back-scattered light
    • B23K26/042Automatically aligning the laser beam
    • B23K26/043Automatically aligning the laser beam along the beam path, i.e. alignment of laser beam axis relative to laser beam apparatus
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B23MACHINE TOOLS; METAL-WORKING NOT OTHERWISE PROVIDED FOR
    • B23KSOLDERING OR UNSOLDERING; WELDING; CLADDING OR PLATING BY SOLDERING OR WELDING; CUTTING BY APPLYING HEAT LOCALLY, e.g. FLAME CUTTING; WORKING BY LASER BEAM
    • B23K26/00Working by laser beam, e.g. welding, cutting or boring
    • B23K26/36Removing material
    • B23K26/38Removing material by boring or cutting
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B17/00Systems involving the use of models or simulators of said systems
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B17/00Systems involving the use of models or simulators of said systems
    • G05B17/02Systems involving the use of models or simulators of said systems electric
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/406Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by monitoring or safety
    • G05B19/4069Simulating machining process on screen
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23452Simulate sequence on display to control program, test functions
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23456Model machine for simulation
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/36Nc in input of data, input key till input tape
    • G05B2219/36071Simulate on screen, if operation value out of limits, edit program
    • G06F17/5009
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation

Definitions

  • a path command for an industrial machine is known to have various difficulties in selecting the best input conditions for the task. For example, a larger operation speed correspond to a larger path error margin. However, when reducing operating speed to improve path error margin, the cycle time increases. In general, modifying the path command with specific conditions is difficult because many modifications, and even slight modifications, can violate other aspects of the path command generation due to limitations of the industrial machine, for example.
  • a system for path command generation includes an industrial machine, an interface accessible via a remote device, and a server communicably coupled to the industrial machine and the remote device via a network.
  • the server includes processing circuitry configured to calculate an optimum path command, simulate the optimum path command based on the calculation of the optimum path command, calculate a cycle time and error of the path command, determine if the path command is acceptable, and transmit path command data to the industrial machine in response to the acceptable path command being selected.
  • FIG. 1 depicts an exemplary overview of a path command generation system according to one or more aspects of the disclosed subject matter
  • FIG. 2A depicts an exemplary interface displaying results based on a first set of input conditions according to one or more aspects of the disclosed subject matter
  • FIG. 2B depicts an exemplary interface displaying results based on a second set of input conditions according to one or more aspects of the disclosed subject matter
  • FIG. 2C depicts an exemplary interface displaying results based on the first set and the second set of input conditions according to one or more aspects of the disclosed subject matter
  • FIG. 3 depicts an exemplary implementation of an optimal path command according to one or more aspects of the disclosed subject matter
  • FIG. 4 is an algorithmic flow chart of a method for path command, generation according to one or more aspects of the disclosed subject matter.
  • FIG. 5 is a hardware block diagram of a server according to one or more exemplary aspects of the disclosed subject matter.
  • FIG. 1 depicts an exemplary overview of a path command generation system 100 (herein referred to as system 100 ) according to one or more aspects of the disclosed subject matter.
  • system 100 can perform the functions or operations described herein regarding the various methods or portions thereof (including those implemented using a non-transitory computer-readable medium storing a program that, when executed, configures or causes a computer to perform or cause performance of the described method(s) or portions thereof).
  • the system 100 can include a remote device 105 including an interface 110 , an industrial machine 115 , and a server 120 communicably coupled via a network 130 .
  • the system 100 can generate an optimal path command which can be implemented by the industrial machine 115 .
  • the optimization can include considering the trade-off between reducing a trajectory error and cycle time.
  • an optimal path command can be generated including providing the shortest cycle time, optimizing an error margin to a user's requirements, and considering the physical boundaries of the industrial machine 115 on which the path command will be implemented (e.g., limited by acceleration and jerk). For example, various input conditions can be received via the interface 110 . The remote device 105 (and/or the server 120 ) can calculate and simulate an optimal path command based on the input conditions. The optimal path command can then be implemented via the industrial machine 115 .
  • the system 100 can include one or more servo motors and a user interface (e.g., user interface 110 ) to optimize movement of the ⁇ one or more servo motors so that industrial machines (e.g., industrial machine 115 ), which are driven by the one or more servo motors, can run under user's requirements (e.g., acceptable trajectory error while the machine runs, acceptable noise made by the machine, acceptable damage on the machine, acceptable total operating time, etc.).
  • user interface e.g., user interface 110
  • the system 100 can include predetermined shape data (e.g., a set of coordinates that outline a shape in segments) and displays the user interface based on that shape, wherein the user interface includes a plurality of input conditions including setting a maximum acceleration, as well as other input conditions described herein.
  • predetermined shape data e.g., a set of coordinates that outline a shape in segments
  • displays the user interface based on that shape wherein the user interface includes a plurality of input conditions including setting a maximum acceleration, as well as other input conditions described herein.
  • the system 100 can run a simulation based on the input conditions entered in the user interface, which simulates the results of operating the one or more servo motors to move along the segments, wherein the speed of each servo motor moving along each segment satisfies a predetermined trajectory error margin with or without consideration of a constraint of the industrial machines, which are driven by the one or more servo motors.
  • the simulation may generate a plurality of options for the user (e.g., results simulated with values 5% more or less than the value of one or more predetermined input conditions). It should be appreciated that “5%” is an example and other ranges could be used.
  • the system 100 in response to receiving a selection of the preferred option via the user interface. can transmit instructions to operate the one or more servo motors based on the selected simulation option (e.g., instructions can include how fast each servo motor should move along each segment).
  • the output of the system 100 can be one or more path or trajectory commands corresponding to a series of destination points (e.g., X-Y coordinates) for the servo motor. Additionally, the time it takes to move between destination points can be the same (e.g., 1 second) even though the distances can be different. This sets the speed of the servo motor.
  • a series of destination points e.g., X-Y coordinates
  • the time it takes to move between destination points can be the same (e.g., 1 second) even though the distances can be different. This sets the speed of the servo motor.
  • the user can have the system run a simulation based on different input parameters which can be entered by the user in the user interface. Alternatively, or additionally. if the user is not satisfied with the result or any of the options available in terms of constraints of the machines, the user can redesign the machines so that the machines can operate under the result or one of options that correspond with the user's input conditions.
  • one or more output conditions can be calculated for the industrial machine, wherein the one or more output conditions are calculated based on values of input parameters (e.g., jerk, acceleration, velocity, etc.).
  • the industrial machine implements a path command based on the one or more output conditions.
  • the one or more output conditions can be calculated for the industrial machine to implement an alternative path command based on alternative values of the input parameters.
  • the one or more output conditions can be selected, wherein the one or more output conditions can be selected based on the calculation for each set of input parameters.
  • a user can select among the input parameters and set the values of the input parameters directly or indirectly.
  • the user can select values (and/or alternative values) for the input parameters for path commands, which are displayed in the user interface.
  • the alternative values may be set automatically based on the initial values for the input parameters.
  • the user can select output conditions in the user interface. As a result, the values of the input parameters corresponding to the selected output conditions can be selected.
  • command data corresponding to the path command can be transmitted to the industrial machine, wherein the industrial machine can implement the path command based on the selected output condition.
  • the system 100 can be applicable to industrial machines, such as laser cutters, which are driven by the one or more servo motors.
  • the remote device 105 can represent one or more remote devices connected to the industrial machine 115 and the server 120 via the network 130 .
  • the remote device 105 can be a smart phone, a computer, a laptop, a tablet, a PDA, and the like.
  • the remote device 105 can include a front end application as an interface 110 , for example, as further described in FIGS. 2A-2C .
  • the interface 110 can receive various input conditions from a user.
  • the interface 110 can additionally display the results of a simulation of a path command generated based on the input conditions. Based on the simulation results displayed via the interface 110 , the user can provide input that changes the input conditions.
  • the path command (e.g., as X-Y axis command data) can be transmitted to the automated factory machine 115 .
  • the remote device 105 can include processing circuitry to independently operate and/or assist in operating the system 100 .
  • the industrial machine 115 can represent one or more industrial machines connected to the remote device 105 and the server 120 via the network 130 .
  • the industrial machine 115 can include one or more servo motors.
  • the industrial machine 115 can receive a path command (e.g., from one or more of the remote device and the server 120 ).
  • the industrial machine 115 can receive the path command as X-Y axis command data, for example, wherein the path command as X-Y axis command data can control the position and speed of the one or more servo motors, thereby implementing the received path command.
  • the industrial machine 115 can be a laser cutter driven by one or more servo motors.
  • the movement of the servo motors of the industrial machine 115 can be optimized so that the industrial machine 115 , which is driven by the one or more servo motors, can run under user's requirements (e.g., acceptable trajectory error occurred while the machine runs, acceptable noise made by the machine, acceptable damage on the machine, acceptable total operating time, etc.).
  • the server 120 can represent one or more servers connected to the remote device 105 and the industrial machine 115 via the network 130 .
  • the server 120 can include processing circuitry to perform various processing for the system 100 including receiving the input conditions from interface 110 entered via the remote device 105 .
  • the server 120 can include the interface 110 and receive the input conditions directly when the user enters the input conditions via the interface 110 .
  • the server 120 can calculate the path command based on the input conditions; as well as simulate the path command.
  • the server 120 can then transmit the results of the simulation to the remote device 105 , for example, to be displayed in the interface 110 .
  • the server 120 can display the simulation results locally via the interface 110 .
  • the server 120 can additionally generate and transmit the path command data (e.g., X-Y axis command data) to the automated factory machine 115 so the automated factory machine 115 can implement the path command.
  • the server 110 can also take advantage of Edge Computing to prevent limitations associated with existing embedded systems. As a result, the user can implement path commands for the industrial machine 115 from remote locations.
  • the network 130 can represent one or more networks connecting the remote device 105 , the industrial machine 115 , and the server 120 .
  • the network 130 can be a public network, such as the Internet, or a private network such as a local area network (LAN) or a wide area network (WAN) network, or any combination thereof and can also include a public switched telephone network (PSTN) or integrated services for digital network (ISDN) sub-networks.
  • PSTN public switched telephone network
  • ISDN integrated services for digital network
  • the network 130 can also be wired, such as an Ethernet network or a USB port, or can be wireless such as a cellular network including EDGE, 3G 4G, and LTE/LTE-A wireless cellular systems.
  • the wireless network can also be Bluetooth, or any other wireless form of communication that is known.
  • the network 130 can be an industrial network (e.g., CC-Link IE Field, Ethernet/IP, etc.) communicably coupling the interface 110 , displayed via the remote device 105 , and the server 120 .
  • the interface 110 displayed via the remoted device 105 can be a human machine interface.
  • the server 120 can be an IPC/PLC as would be understood by one or ordinary skill in the art.
  • FIGS. 2A-2C depict exemplary interfaces 110 , wherein exemplary interfaces 110 can include results 205 , 210 , and 215 based on a first set of input conditions, a second set of input conditions, and a combination of the first and second set of input conditions, respectively.
  • Each interface 110 can include a predetermined set of input options including max velocity (e.g., operation speed), max acceleration, max jerk, error margin, velocity limit (for each axis), torque limit (for each axis), jerk limit (for each axis), and servo response (for each axis).
  • the torque limit can additionally include an acceleration limit for each acceleration because torque is equal to inertia multiplied by acceleration.
  • the servo response can include a model gain where model gain is one parameter of a server amplifier and a dominant factor to servo response.
  • FIG. 2A depicts an exemplary interface 110 displaying results 205 based on a first set of input conditions according to one or more aspects of the disclosed subject matter.
  • the first set of input conditions includes max acceleration set at 40%.
  • FIG. 2B depicts an exemplary interface 110 displaying results 210 based on a second set of input conditions according to one or more aspects of the disclosed subject matter.
  • the second set of input conditions includes max acceleration set at 80%.
  • FIG. 2C depicts an exemplary interface 110 displaying results 215 based on the first set and the second set of input conditions according to one or more aspects of the disclosed subject matter.
  • the results 215 include a combination of the 40% max acceleration and the 80% max acceleration results for comparison, for example.
  • the path command (e.g., as X-Y axis command data) can be transmitted to the automated factory machine 115 .
  • the path command e.g., as X-Y axis command data
  • Table I is an example of the X-Y axis command data, that can be sent to the industrial machine 115 . It should be appreciated that the rows can continue with additional destination points (e.g., set of coordinates) until the path command for each segment of the shape is complete.
  • FIG. 3 depicts an exemplary implementation 300 of an optimal path command according to one or more aspects of the disclosed subject matter.
  • the optimal path command can include various sections of the implementation including portions 305 , 310 , 315 , and 320 .
  • portion 305 can be a sharp section of the shape which a small connecting angle.
  • an arc with a small radius can be inserted without losing accuracy.
  • Portion 310 can correspond to a straight segment or an arc segment. Based on servo-response and/or shape (e.g., radius of an arc), a command speed can be calculated for each portion 310 , wherein the command speed for each portion 310 satisfies a trajectory error, margin.
  • shape e.g., radius of an arc
  • Portion 315 can be positioned on either side of a portion 310 .
  • portion 315 can be an interval of acceleration or deceleration on the ends of a straight segment (e.g., portion 310 ). Based on the direction of the path command, a portion 315 positioned before the portion 310 can be an acceleration interval. Additionally, a portion 315 positioned after the portion 310 can be a deceleration interval.
  • Adjacent portions 320 can indicate a full segment, wherein the full segment can be associated with a predetermined time interval.
  • X-Y axis command data can be based on time, as well as position, such that the path command can be instructed to travel between adjacent portions 320 in a predetermined amount of time.
  • acceleration and/or jerk limits for both axes can be considered when making X-Y axis command data based on time, for example. By limiting the jerk) while continuing acceleration/deceleration, noise level and impact caused by changing axis direction can be reduced.
  • FIG. 4 is an algorithmic flow chart of a method for path command generation according to one or more aspects of the disclosed subject matter.
  • Input conditions can include max velocity (e.g., operation speed), max acceleration, max jerk, error margin, velocity limit (for each axis), torque limit (for each axis), jerk limit (for each axis), and servo response (for each axis).
  • the torque limit can additionally include an acceleration limit for each acceleration because torque is equal to inertia multiplied by acceleration.
  • the servo response can include a model gain where model gain is one parameter of a server amplifier and a dominant factor to servo response.
  • the input conditions can be received via the interface 110 , for example.
  • an optimum path command can be calculated based on the received input conditions.
  • the path command can be simulated.
  • the path command simulation can provide information to a user so the user can see a visual of the path command results.
  • the simulation in S 415 may be options when a user changes input conditions in S 435 .
  • cycle time and error can be calculated.
  • Cycle time can be the average time for completing the path command.
  • the cycle time can be the time period from the path command starting time to the path command ending time.
  • results of the simulation can be displayed via the interface 110 , for example.
  • the simulation results can include various information as illustrated in exemplary results 205 , 210 , and 215 as shown in FIGS. 2A, 2B , and 2 C, respectively.
  • the path command it can be determined if the path command is acceptable. Determining if the path command is acceptable can be based on the simulation results displayed in S 425 , for example. A user may determine that the path command is not sufficient based on the results of the simulation, and the user may adjust the input conditions accordingly. If the path command is acceptable, then the process can end. For example, if the user is satisfied with either the result or one of options if available, the user can select it on the user interface 110 .
  • the system 100 in response to receiving a selection of the preferred option via the user interface 110 , can transmit instructions to operate the one or more servo motors based on the selected simulation option (e.g., instructions can include how fast each servo motor should move along each segment (e.g., portions 305 , 310 , 315 )). However, if the path command is not acceptable, then input conditions can be changed in S 435 .
  • one or more input conditions can be changed.
  • the one or more input conditions can be changed when a user wants to adjust the path command.
  • the process can return to S 410 to calculate the optimum path command based on the new input conditions.
  • the simulate path command step S 415 may be optional because the user may have selected new input conditions that are within an error of the previous selection, and a new simulation does not need to be run as a result.
  • the process may continue through S 420 , S 425 , and return to S 430 to determine if the path command is acceptable.
  • any processes, descriptions or blocks in flowcharts can be understood as representing modules, segments or portions of code which include one or more executable instructions for implementing specific logical functions or steps in the process, and alternate implementations are included within the scope of the exemplary embodiments of the present advancements in which functions can be executed out of order from that shown or discussed, including substantially concurrently or in reverse order, depending upon the functionality involved, as would be understood by those skilled in the art.
  • the various elements, features, and processes described herein may be used independently of one another, or may be combined in various ways. All possible combinations and sub-combinations are intended to fall within the scope of this disclosure.
  • a user cannot adjust the industrial machine 115 by changing more than three input conditions because the user may not anticipate the best combination of input conditions for a certain task. For example, this set-up may prevent a user from changing an input condition that has the biggest influence on the mechanical system, which may prevent damage to the industrial machine.
  • the interface 110 can provide an opportunity for a user to preview the path command. Because the results of the simulation can be displayed for user selection, the user can pick the best option for their requirements. Additionally, updates to the input conditions can be changed in real time, thereby providing a quick turnaround for a user to see how different input conditions may affect the simulation. As a result, the user can select the best option and the path command data based on the selection can be transmitted (e.g., from any device (e.g., remote device 105 , server 120 ) displaying the interface, or from the server 120 after the selection occurs at the interface accessible via the remote device 105 ) to the industrial machine 315 .
  • any device e.g., remote device 105 , server 120
  • the interface 110 can display the energy consumption of the optimum path command with the smallest cycle time and the optimum path command with the smallest energy consumption when changing the input conditions, which can provide the user with even more specific information to assist in selecting the best path command option to meet their requirements.
  • the server 120 includes a CPU 500 which performs one or more of the processes described above/below.
  • the process data and instructions may be stored in memory 502 .
  • These processes and instructions may also be stored on a storage medium disk 504 such as a hard drive (HDD) or portable storage medium or may be stored remotely.
  • a storage medium disk 504 such as a hard drive (HDD) or portable storage medium or may be stored remotely.
  • the claimed advancements are not limited by the form of the computer-readable media on which the instructions of the inventive process are stored.
  • the instructions may be stored on CDs, DVDs, in FLASH memory, RAM, ROM, PROM, EPROM, EEPROM, hard disk or any other information processing device with which the server 120 (and/or the remote device 105 ) communicates, such as a server or computer.
  • claimed advancements may be provided as a utility application, background daemon, or component of an operating system, or combination thereof, executing in conjunction with CPU 500 and an operating system such as Microsoft Windows, UNIX, Solaris, LINUX, Apple MAC-OS and other systems known to those skilled in the art.
  • an operating system such as Microsoft Windows, UNIX, Solaris, LINUX, Apple MAC-OS and other systems known to those skilled in the art.
  • a processing circuit includes a particularly programmed processor, for example, processor (CPU) 500 , as shown in FIG. 5 .
  • a processing circuit also includes devices such as an application specific integrated circuit (ASIC) and conventional circuit components arranged to perform the recited functions.
  • ASIC application specific integrated circuit
  • the server 120 (and/or the remote device 105 ) includes a CPU 500 which performs the processes described above.
  • the server 120 (and/or the remote device 105 ) may be a general-purpose computer or a particular, special-purpose machine.
  • the server 110 (and/or the remote device 105 ) becomes a particular, special-purpose machine when the processor 500 is programmed to perform all or part of path command generation (and in particular, any of the processes discussed with reference to FIGS. 3 and 4 ).
  • CPU 500 may be implemented on an FPGA, ASIC, PLD or using discrete logic circuits, as one of ordinary skill in the art would recognize. Further, CPU 500 may be implemented as multiple processors cooperatively working in parallel to perform the instructions of the inventive processes described above.
  • the server 120 (and/or the remote device 105 ) in FIG. 5 also includes a network controller 506 , such as an Intel Ethernet PRO network interface card from Intel Corporation of America, for interfacing with network 130 .
  • the network 130 can be a public network, such as the Internet, or a private network such as an LAN or WAN network, or any combination thereof and can also include PSTN or ISDN sub-networks.
  • the network 130 can also be wired, such as an Ethernet network, or can be wireless such as a cellular network including EDGE, 3G and 4G wireless cellular systems.
  • the wireless network can also be WiFi, Bluetooth, or any other wireless form of communication that is known.
  • the server 120 (and/or the remote device 105 ) further includes a display controller 508 , such as a graphics card or graphics adaptor for interfacing with display 510 , such as a monitor.
  • a display controller 508 such as a graphics card or graphics adaptor for interfacing with display 510 , such as a monitor.
  • a general purpose I/O interface 512 interfaces with a keyboard and/or mouse 514 as well as a touch screen panel 516 on or separate from display 510 .
  • General purpose I/O interface also connects to a variety of peripherals 518 including printers and scanners.
  • a sound controller 520 is also provided in the server 120 (and/or the remote device 105 ) to interface with speakers/microphone 522 thereby providing sounds and/or music.
  • the general purpose storage controller 524 connects the storage medium disk 504 with communication bus 526 , which may be an ISA, EISA, VESA, PCI, or similar, for interconnecting all of the components of the server 120 (and/or the remote device 105 ).
  • communication bus 526 may be an ISA, EISA, VESA, PCI, or similar, for interconnecting all of the components of the server 120 (and/or the remote device 105 ).
  • a description of the general features and functionality of the display 510 , keyboard and/or mouse 514 , as well as the display controller 508 , storage controller 524 , network controller 506 , sound controller 520 , and general purpose I/O interface 512 is omitted herein for brevity as these features are known.
  • circuitry configured to perform features described herein may be implemented in multiple circuit units (e.g., chips), or the features may be combined in circuitry on a single chipset.
  • the functions and features described herein may also be executed by various distributed components of a system.
  • one or more processors may execute these system functions, wherein the processors are distributed across multiple components communicating in a network.
  • the distributed components may include one or more client and server machines, which may share processing, in addition to various human interface and communication devices (e.g., display monitors, smart phones, tablets, personal digital assistants (PDAs)).
  • the network may be a private network, such as a LAN or WAN, or may be a public network, such as the Internet. Input to the system may be received via direct user input and received remotely either in real-time or as a batch process. Additionally, some implementations may be performed on modules or hardware not identical to those described. Accordingly, other implementations are within the scope that may be claimed.

Abstract

A system for path command generation includes an industrial machine, an interface accessible via a remote device, and a server communicably coupled to the industrial machine and the remote device via a network. The server includes processing circuitry configured to calculate an optimum path command, simulate the optimum path command based on the calculation of the optimum path command, calculate a cycle time and error of the path command, determine if the path command is acceptable, and transmit path command data to the industrial machine in response to the acceptable path command being selected.

Description

    BACKGROUND
  • The “background” description provided, herein is for the purpose of generally presenting the context of the disclosure. Work of the presently named inventors, to the extent it is described in this background section, as well as aspects of the description which may not otherwise qualify as prior art at the time of filing, are neither expressly or impliedly admitted as prior art against the present invention.
  • Computing a path command for an industrial machine is known to have various difficulties in selecting the best input conditions for the task. For example, a larger operation speed correspond to a larger path error margin. However, when reducing operating speed to improve path error margin, the cycle time increases. In general, modifying the path command with specific conditions is difficult because many modifications, and even slight modifications, can violate other aspects of the path command generation due to limitations of the industrial machine, for example.
  • SUMMARY
  • The foregoing paragraphs have been provided by way of general introduction, and are not intended to limit the scope of the following claims. The described embodiments, together with further advantages, will be best understood by reference to the following detailed description taken in conjunction with the accompanying drawings.
  • According to embodiments of the disclosed subject matter, a system for path command generation includes an industrial machine, an interface accessible via a remote device, and a server communicably coupled to the industrial machine and the remote device via a network. The server includes processing circuitry configured to calculate an optimum path command, simulate the optimum path command based on the calculation of the optimum path command, calculate a cycle time and error of the path command, determine if the path command is acceptable, and transmit path command data to the industrial machine in response to the acceptable path command being selected.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • A more complete appreciation of the disclosure and many of the attendant advantages thereof will be readily obtained as the same becomes better understood by reference to the following detailed description when considered in connection with the accompanying drawings, wherein:
  • FIG. 1 depicts an exemplary overview of a path command generation system according to one or more aspects of the disclosed subject matter;
  • FIG. 2A depicts an exemplary interface displaying results based on a first set of input conditions according to one or more aspects of the disclosed subject matter;
  • FIG. 2B depicts an exemplary interface displaying results based on a second set of input conditions according to one or more aspects of the disclosed subject matter;
  • FIG. 2C depicts an exemplary interface displaying results based on the first set and the second set of input conditions according to one or more aspects of the disclosed subject matter;
  • FIG. 3 depicts an exemplary implementation of an optimal path command according to one or more aspects of the disclosed subject matter;
  • FIG. 4 is an algorithmic flow chart of a method for path command, generation according to one or more aspects of the disclosed subject matter; and
  • FIG. 5 is a hardware block diagram of a server according to one or more exemplary aspects of the disclosed subject matter.
  • DETAILED DESCRIPTION
  • The description set forth below in connection with the appended drawings is intended as a description of various embodiments of the disclosed subject matter and is not necessarily intended to represent the only embodiment(s). In certain instances, the description includes specific details for the purpose of providing an understanding of the disclosed subject matter. However, it will be apparent to those skilled in the art that embodiments may be practiced without these specific details. In some instances, well-known structures and components may be shown in block diagram form in order to avoid obscuring the concepts of the disclosed subject matter.
  • Reference throughout the specification to “one embodiment” or “an embodiment” means that a particular feature, structure, characteristic, operation, or function described in connection with an embodiment is included in at least one embodiment of the disclosed subject matter. Thus, any appearance of the phrases “in one embodiment” or “in an embodiment” in the specification is not necessarily referring to the same embodiment. Further, the particular features, structures, characteristics, operations, or functions may be combined in any suitable manner in one or more embodiments. Further, it is intended that embodiments of the disclosed subject matter can and do cover modifications and variations of the described embodiments.
  • It must be noted that, as used in the specification and the appended claims, the singular forms “a,” “an,” and “the” include plural referents unless the context clearly dictates otherwise. That is, unless clearly specified otherwise, as used herein the words “a” and “an” and the like carry the meaning of “one or more.” Additionally, it is to be understood that terms such as “left,” “right,” “top,” “bottom,” “front,” “rear,” “side,” “height,” “length,” “width,” “upper,” “lower,” “interior,” “exterior,” “inner,” “outer,” and the like that may be used herein, merely describe points of reference and do not necessarily limit embodiments of the disclosed subject matter to any particular orientation or configuration. Furthermore, terms such as “first,” “second,” “third,” etc., merely identify one of a number of portions, components, points of reference, operations and/or functions as described herein, and likewise do not necessarily limit embodiments of the disclosed subject matter to any particular configuration or orientation.
  • Referring now to the drawings, wherein like reference numerals designate identical or corresponding parts throughout the several views, FIG. 1 depicts an exemplary overview of a path command generation system 100 (herein referred to as system 100) according to one or more aspects of the disclosed subject matter. As will be discussed in more detail, one or more methods according to various embodiments of the disclosed subject matter can be implemented using the system 100 or portions thereof. In other words, system 100, or portions thereof, can perform the functions or operations described herein regarding the various methods or portions thereof (including those implemented using a non-transitory computer-readable medium storing a program that, when executed, configures or causes a computer to perform or cause performance of the described method(s) or portions thereof).
  • The system 100 can include a remote device 105 including an interface 110, an industrial machine 115, and a server 120 communicably coupled via a network 130.
  • Generally speaking, the system 100 can generate an optimal path command which can be implemented by the industrial machine 115. The optimization can include considering the trade-off between reducing a trajectory error and cycle time.
  • More specifically, an optimal path command can be generated including providing the shortest cycle time, optimizing an error margin to a user's requirements, and considering the physical boundaries of the industrial machine 115 on which the path command will be implemented (e.g., limited by acceleration and jerk). For example, various input conditions can be received via the interface 110. The remote device 105 (and/or the server 120) can calculate and simulate an optimal path command based on the input conditions. The optimal path command can then be implemented via the industrial machine 115.
  • Further, the system 100 can include one or more servo motors and a user interface (e.g., user interface 110) to optimize movement of the <one or more servo motors so that industrial machines (e.g., industrial machine 115), which are driven by the one or more servo motors, can run under user's requirements (e.g., acceptable trajectory error while the machine runs, acceptable noise made by the machine, acceptable damage on the machine, acceptable total operating time, etc.).
  • The system 100 can include predetermined shape data (e.g., a set of coordinates that outline a shape in segments) and displays the user interface based on that shape, wherein the user interface includes a plurality of input conditions including setting a maximum acceleration, as well as other input conditions described herein.
  • The system 100 can run a simulation based on the input conditions entered in the user interface, which simulates the results of operating the one or more servo motors to move along the segments, wherein the speed of each servo motor moving along each segment satisfies a predetermined trajectory error margin with or without consideration of a constraint of the industrial machines, which are driven by the one or more servo motors.
  • The simulation may generate a plurality of options for the user (e.g., results simulated with values 5% more or less than the value of one or more predetermined input conditions). It should be appreciated that “5%” is an example and other ranges could be used.
  • If the user is satisfied with either the result or one of the options available, the user can select it on the interface 110. The system 100, in response to receiving a selection of the preferred option via the user interface. can transmit instructions to operate the one or more servo motors based on the selected simulation option (e.g., instructions can include how fast each servo motor should move along each segment).
  • The output of the system 100 can be one or more path or trajectory commands corresponding to a series of destination points (e.g., X-Y coordinates) for the servo motor. Additionally, the time it takes to move between destination points can be the same (e.g., 1 second) even though the distances can be different. This sets the speed of the servo motor.
  • If the user is not satisfied with the result or any of options if available, the user can have the system run a simulation based on different input parameters which can be entered by the user in the user interface. Alternatively, or additionally. if the user is not satisfied with the result or any of the options available in terms of constraints of the machines, the user can redesign the machines so that the machines can operate under the result or one of options that correspond with the user's input conditions.
  • In other words, one or more output conditions (e.g., cycle time, error, etc.) can be calculated for the industrial machine, wherein the one or more output conditions are calculated based on values of input parameters (e.g., jerk, acceleration, velocity, etc.). The industrial machine implements a path command based on the one or more output conditions. Additionally, the one or more output conditions can be calculated for the industrial machine to implement an alternative path command based on alternative values of the input parameters. After calculating the one or more output conditions for each set of input parameters, the one or more output conditions can be selected, wherein the one or more output conditions can be selected based on the calculation for each set of input parameters. A user can select among the input parameters and set the values of the input parameters directly or indirectly. That is, the user can select values (and/or alternative values) for the input parameters for path commands, which are displayed in the user interface. Additionally, the alternative values may be set automatically based on the initial values for the input parameters. Or, the user can select output conditions in the user interface. As a result, the values of the input parameters corresponding to the selected output conditions can be selected. Once the one or more output conditions have been selected, command data corresponding to the path command can be transmitted to the industrial machine, wherein the industrial machine can implement the path command based on the selected output condition.
  • The system 100 can be applicable to industrial machines, such as laser cutters, which are driven by the one or more servo motors.
  • The remote device 105 can represent one or more remote devices connected to the industrial machine 115 and the server 120 via the network 130. The remote device 105 can be a smart phone, a computer, a laptop, a tablet, a PDA, and the like. The remote device 105 can include a front end application as an interface 110, for example, as further described in FIGS. 2A-2C. The interface 110 can receive various input conditions from a user. The interface 110 can additionally display the results of a simulation of a path command generated based on the input conditions. Based on the simulation results displayed via the interface 110, the user can provide input that changes the input conditions. When the user is satisfied with the results of the simulation displayed via the interface 110, the path command (e.g., as X-Y axis command data) can be transmitted to the automated factory machine 115. The remote device 105 can include processing circuitry to independently operate and/or assist in operating the system 100.
  • The industrial machine 115 can represent one or more industrial machines connected to the remote device 105 and the server 120 via the network 130. In one or more embodiments, the industrial machine 115 can include one or more servo motors. The industrial machine 115 can receive a path command (e.g., from one or more of the remote device and the server 120). The industrial machine 115 can receive the path command as X-Y axis command data, for example, wherein the path command as X-Y axis command data can control the position and speed of the one or more servo motors, thereby implementing the received path command. In one or more embodiments, the industrial machine 115 can be a laser cutter driven by one or more servo motors. In other words, the movement of the servo motors of the industrial machine 115 can be optimized so that the industrial machine 115, which is driven by the one or more servo motors, can run under user's requirements (e.g., acceptable trajectory error occurred while the machine runs, acceptable noise made by the machine, acceptable damage on the machine, acceptable total operating time, etc.).
  • The server 120 can represent one or more servers connected to the remote device 105 and the industrial machine 115 via the network 130. The server 120 can include processing circuitry to perform various processing for the system 100 including receiving the input conditions from interface 110 entered via the remote device 105. Alternatively, the server 120 can include the interface 110 and receive the input conditions directly when the user enters the input conditions via the interface 110. Further, the server 120 can calculate the path command based on the input conditions; as well as simulate the path command. The server 120 can then transmit the results of the simulation to the remote device 105, for example, to be displayed in the interface 110. Alternatively, the server 120 can display the simulation results locally via the interface 110. The server 120 can additionally generate and transmit the path command data (e.g., X-Y axis command data) to the automated factory machine 115 so the automated factory machine 115 can implement the path command. The server 110 can also take advantage of Edge Computing to prevent limitations associated with existing embedded systems. As a result, the user can implement path commands for the industrial machine 115 from remote locations.
  • The network 130 can represent one or more networks connecting the remote device 105, the industrial machine 115, and the server 120. The network 130 can be a public network, such as the Internet, or a private network such as a local area network (LAN) or a wide area network (WAN) network, or any combination thereof and can also include a public switched telephone network (PSTN) or integrated services for digital network (ISDN) sub-networks. The network 130 can also be wired, such as an Ethernet network or a USB port, or can be wireless such as a cellular network including EDGE, 3G 4G, and LTE/LTE-A wireless cellular systems. The wireless network can also be Bluetooth, or any other wireless form of communication that is known.
  • In one or more embodiment, the network 130 can be an industrial network (e.g., CC-Link IE Field, Ethernet/IP, etc.) communicably coupling the interface 110, displayed via the remote device 105, and the server 120. Additionally, the interface 110 displayed via the remoted device 105 can be a human machine interface. Further, the server 120 can be an IPC/PLC as would be understood by one or ordinary skill in the art.
  • FIGS. 2A-2C depict exemplary interfaces 110, wherein exemplary interfaces 110 can include results 205, 210, and 215 based on a first set of input conditions, a second set of input conditions, and a combination of the first and second set of input conditions, respectively.
  • Each interface 110 can include a predetermined set of input options including max velocity (e.g., operation speed), max acceleration, max jerk, error margin, velocity limit (for each axis), torque limit (for each axis), jerk limit (for each axis), and servo response (for each axis). The torque limit can additionally include an acceleration limit for each acceleration because torque is equal to inertia multiplied by acceleration. Additionally, the servo response can include a model gain where model gain is one parameter of a server amplifier and a dominant factor to servo response.
  • More specifically, FIG. 2A depicts an exemplary interface 110 displaying results 205 based on a first set of input conditions according to one or more aspects of the disclosed subject matter. The first set of input conditions includes max acceleration set at 40%.
  • FIG. 2B depicts an exemplary interface 110 displaying results 210 based on a second set of input conditions according to one or more aspects of the disclosed subject matter. The second set of input conditions includes max acceleration set at 80%.
  • FIG. 2C depicts an exemplary interface 110 displaying results 215 based on the first set and the second set of input conditions according to one or more aspects of the disclosed subject matter. The results 215 include a combination of the 40% max acceleration and the 80% max acceleration results for comparison, for example.
  • Additionally, when the user is satisfied with the results of the simulation displayed via, the interface 110, the path command (e.g., as X-Y axis command data) can be transmitted to the automated factory machine 115. For example, Table I is an example of the X-Y axis command data, that can be sent to the industrial machine 115. It should be appreciated that the rows can continue with additional destination points (e.g., set of coordinates) until the path command for each segment of the shape is complete.
  • TABLE 1
    Position Position Velocity Velocity
    Command X Command Y Command X Command Y
    Time [s] [m] [m] [m/s] [m/s]
    0 0 0 0 0
    0.000889 1.27E−07 3.88E−08 7.13E−05 2.18E−05
    0.001778 4.05E−06 1.24E−06 0.006484 0.001985
    0.002667 9.88E−06 3.02E−06 0.007838 0.002399
    0.003556 2.03E−05 6.20E−06 0.012969 0.003969
    0.004444 3.67E−05 1.12E−05 0.019667 0.006019
    0.005333 6.08E−05 1.86E−05 0.028218 0.008636
    . . . . . . . . . . . . . . .
  • FIG. 3 depicts an exemplary implementation 300 of an optimal path command according to one or more aspects of the disclosed subject matter. The optimal path command can include various sections of the implementation including portions 305, 310, 315, and 320. For example, portion 305 can be a sharp section of the shape which a small connecting angle. For portions of the path command with a sharp shape and small connecting angle (e.g., portion 305), an arc with a small radius can be inserted without losing accuracy.
  • Portion 310 can correspond to a straight segment or an arc segment. Based on servo-response and/or shape (e.g., radius of an arc), a command speed can be calculated for each portion 310, wherein the command speed for each portion 310 satisfies a trajectory error, margin.
  • Portion 315 can be positioned on either side of a portion 310. For example, portion 315 can be an interval of acceleration or deceleration on the ends of a straight segment (e.g., portion 310). Based on the direction of the path command, a portion 315 positioned before the portion 310 can be an acceleration interval. Additionally, a portion 315 positioned after the portion 310 can be a deceleration interval.
  • Adjacent portions 320 can indicate a full segment, wherein the full segment can be associated with a predetermined time interval. In other words, X-Y axis command data can be based on time, as well as position, such that the path command can be instructed to travel between adjacent portions 320 in a predetermined amount of time. Further, acceleration and/or jerk limits for both axes can be considered when making X-Y axis command data based on time, for example. By limiting the jerk) while continuing acceleration/deceleration, noise level and impact caused by changing axis direction can be reduced.
  • FIG. 4 is an algorithmic flow chart of a method for path command generation according to one or more aspects of the disclosed subject matter.
  • In S405, input conditions can be received. Input conditions can include max velocity (e.g., operation speed), max acceleration, max jerk, error margin, velocity limit (for each axis), torque limit (for each axis), jerk limit (for each axis), and servo response (for each axis). The torque limit can additionally include an acceleration limit for each acceleration because torque is equal to inertia multiplied by acceleration. Additionally, the servo response can include a model gain where model gain is one parameter of a server amplifier and a dominant factor to servo response. The input conditions can be received via the interface 110, for example.
  • In S410, an optimum path command can be calculated based on the received input conditions.
  • In S415, the path command can be simulated. The path command simulation can provide information to a user so the user can see a visual of the path command results. The simulation in S415 may be options when a user changes input conditions in S435.
  • In S420, cycle time and error can be calculated. Cycle time can be the average time for completing the path command. In other words, the cycle time can be the time period from the path command starting time to the path command ending time.
  • In S425, results of the simulation (including the cycle time and error) can be displayed via the interface 110, for example. The simulation results can include various information as illustrated in exemplary results 205, 210, and 215 as shown in FIGS. 2A, 2B, and 2C, respectively.
  • In S430, it can be determined if the path command is acceptable. Determining if the path command is acceptable can be based on the simulation results displayed in S425, for example. A user may determine that the path command is not sufficient based on the results of the simulation, and the user may adjust the input conditions accordingly. If the path command is acceptable, then the process can end. For example, if the user is satisfied with either the result or one of options if available, the user can select it on the user interface 110. The system 100, in response to receiving a selection of the preferred option via the user interface 110, can transmit instructions to operate the one or more servo motors based on the selected simulation option (e.g., instructions can include how fast each servo motor should move along each segment (e.g., portions 305, 310, 315)). However, if the path command is not acceptable, then input conditions can be changed in S435.
  • In S435, one or more input conditions can be changed. The one or more input conditions can be changed when a user wants to adjust the path command. After changing the one or more input conditions, the process can return to S410 to calculate the optimum path command based on the new input conditions. The simulate path command step S415 may be optional because the user may have selected new input conditions that are within an error of the previous selection, and a new simulation does not need to be run as a result. The process may continue through S420, S425, and return to S430 to determine if the path command is acceptable.
  • In the above description of FIG. 4, any processes, descriptions or blocks in flowcharts can be understood as representing modules, segments or portions of code which include one or more executable instructions for implementing specific logical functions or steps in the process, and alternate implementations are included within the scope of the exemplary embodiments of the present advancements in which functions can be executed out of order from that shown or discussed, including substantially concurrently or in reverse order, depending upon the functionality involved, as would be understood by those skilled in the art. The various elements, features, and processes described herein may be used independently of one another, or may be combined in various ways. All possible combinations and sub-combinations are intended to fall within the scope of this disclosure.
  • Additionally, in one or more embodiments, a user cannot adjust the industrial machine 115 by changing more than three input conditions because the user may not anticipate the best combination of input conditions for a certain task. For example, this set-up may prevent a user from changing an input condition that has the biggest influence on the mechanical system, which may prevent damage to the industrial machine.
  • Further advantages include improving cycle times while minimizing error margin. For example, even when servo-response is not high, the margin of error can be satisfied by optimal command. By adding jerk limitations (while continuing acceleration), the system 100 can reduce noise level and impact caused by changing axis direction (e.g., from a straight line segment to an arc segment) as shown in FIG. 3.
  • Additionally, the interface 110 can provide an opportunity for a user to preview the path command. Because the results of the simulation can be displayed for user selection, the user can pick the best option for their requirements. Additionally, updates to the input conditions can be changed in real time, thereby providing a quick turnaround for a user to see how different input conditions may affect the simulation. As a result, the user can select the best option and the path command data based on the selection can be transmitted (e.g., from any device (e.g., remote device 105, server 120) displaying the interface, or from the server 120 after the selection occurs at the interface accessible via the remote device 105) to the industrial machine 315.
  • Further, the interface 110 can display the energy consumption of the optimum path command with the smallest cycle time and the optimum path command with the smallest energy consumption when changing the input conditions, which can provide the user with even more specific information to assist in selecting the best path command option to meet their requirements.
  • Next, a hardware description of a computer/device (such as the server 120) according to exemplary embodiments is described with reference to FIG. 5. The hardware description described herein can also be a hardware description of the processing circuitry. In FIG. 5, the server 120 (and/or the remote device 105) includes a CPU 500 which performs one or more of the processes described above/below. The process data and instructions may be stored in memory 502. These processes and instructions may also be stored on a storage medium disk 504 such as a hard drive (HDD) or portable storage medium or may be stored remotely. Further, the claimed advancements are not limited by the form of the computer-readable media on which the instructions of the inventive process are stored. For example, the instructions may be stored on CDs, DVDs, in FLASH memory, RAM, ROM, PROM, EPROM, EEPROM, hard disk or any other information processing device with which the server 120 (and/or the remote device 105) communicates, such as a server or computer.
  • Further, the claimed advancements may be provided as a utility application, background daemon, or component of an operating system, or combination thereof, executing in conjunction with CPU 500 and an operating system such as Microsoft Windows, UNIX, Solaris, LINUX, Apple MAC-OS and other systems known to those skilled in the art.
  • The hardware elements in order to achieve the server 120 (and/or the remote device 105) may be realized by various circuitry elements. Further, each of the functions of the above described embodiments may be implemented by circuitry, which includes one or more processing circuits. A processing circuit includes a particularly programmed processor, for example, processor (CPU) 500, as shown in FIG. 5. A processing circuit also includes devices such as an application specific integrated circuit (ASIC) and conventional circuit components arranged to perform the recited functions.
  • In FIG. 5, the server 120 (and/or the remote device 105) includes a CPU 500 which performs the processes described above. The server 120 (and/or the remote device 105) may be a general-purpose computer or a particular, special-purpose machine. In one embodiment, the server 110 (and/or the remote device 105) becomes a particular, special-purpose machine when the processor 500 is programmed to perform all or part of path command generation (and in particular, any of the processes discussed with reference to FIGS. 3 and 4).
  • Alternatively, or additionally, the CPU 500 may be implemented on an FPGA, ASIC, PLD or using discrete logic circuits, as one of ordinary skill in the art would recognize. Further, CPU 500 may be implemented as multiple processors cooperatively working in parallel to perform the instructions of the inventive processes described above.
  • The server 120 (and/or the remote device 105) in FIG. 5 also includes a network controller 506, such as an Intel Ethernet PRO network interface card from Intel Corporation of America, for interfacing with network 130. As can be appreciated, the network 130 can be a public network, such as the Internet, or a private network such as an LAN or WAN network, or any combination thereof and can also include PSTN or ISDN sub-networks. The network 130 can also be wired, such as an Ethernet network, or can be wireless such as a cellular network including EDGE, 3G and 4G wireless cellular systems. The wireless network can also be WiFi, Bluetooth, or any other wireless form of communication that is known.
  • The server 120 (and/or the remote device 105) further includes a display controller 508, such as a graphics card or graphics adaptor for interfacing with display 510, such as a monitor. A general purpose I/O interface 512 interfaces with a keyboard and/or mouse 514 as well as a touch screen panel 516 on or separate from display 510. General purpose I/O interface also connects to a variety of peripherals 518 including printers and scanners.
  • A sound controller 520 is also provided in the server 120 (and/or the remote device 105) to interface with speakers/microphone 522 thereby providing sounds and/or music.
  • The general purpose storage controller 524 connects the storage medium disk 504 with communication bus 526, which may be an ISA, EISA, VESA, PCI, or similar, for interconnecting all of the components of the server 120 (and/or the remote device 105). A description of the general features and functionality of the display 510, keyboard and/or mouse 514, as well as the display controller 508, storage controller 524, network controller 506, sound controller 520, and general purpose I/O interface 512 is omitted herein for brevity as these features are known.
  • The exemplary circuit elements described in the context of the present disclosure may be replaced with other elements and structured differently than the examples provided herein. Moreover, circuitry configured to perform features described herein may be implemented in multiple circuit units (e.g., chips), or the features may be combined in circuitry on a single chipset.
  • The functions and features described herein may also be executed by various distributed components of a system. For example, one or more processors may execute these system functions, wherein the processors are distributed across multiple components communicating in a network. The distributed components may include one or more client and server machines, which may share processing, in addition to various human interface and communication devices (e.g., display monitors, smart phones, tablets, personal digital assistants (PDAs)). The network may be a private network, such as a LAN or WAN, or may be a public network, such as the Internet. Input to the system may be received via direct user input and received remotely either in real-time or as a batch process. Additionally, some implementations may be performed on modules or hardware not identical to those described. Accordingly, other implementations are within the scope that may be claimed.
  • Having now described embodiments of the disclosed subject matter, it should be apparent to those skilled in the art that the foregoing is merely illustrative and not limiting, having been presented by way of example only. Thus, although particular configurations have been discussed herein, other configurations can also be employed. Numerous modifications and other embodiments (e.g., combinations, rearrangements, etc.) are enabled by the present disclosure and are within the scope of one of ordinary skill in the art and are contemplated as falling within the scope of the disclosed subject matter and any equivalents thereto. Features of the disclosed embodiments can be combined, rearranged, omitted, etc., within the scope of the invention to produce additional embodiments. Furthermore, certain features may sometimes be used to advantage without a corresponding use of other features. Accordingly, Applicant(s) intend(s) to embrace all such alternatives, modifications, equivalents, and variations that are within the spirit and scope of the disclosed subject matter.

Claims (27)

1. A system, comprising:
circuitry configured to
provide a displayable interface to receive information regarding control of an industrial machine,
calculate an optimum path command,
simulate the optimum path command based on the calculation of the optimum path command,
calculate a cycle time and error of the path command,
determine if the path command is selected, and
transmit path command data to the industrial machine in response to the selected path command being selected at the displayable interface.
2. The system of claim 1, wherein the displayable interface is configured to
receive input conditions via the displayable interface,
display results of the simulation of the optimum path command via the displayable interface,
receive a selection of the selected path command via the displayable interface,
receive updated input conditions when no currently displayed path command is selected, and
transmit the path command data corresponding to the selected path command to be implemented at the industrial machine.
3. The system of claim 2, wherein the industrial machine includes one or more servo motors.
4. The system of claim 3, wherein the optimum path command corresponds to a series of destination points for the one or more servo motors.
5. The system of claim 4, wherein the series of destination points are a set of coordinates based on predetermined shape data, wherein the displayable interface is displayed based on the predetermined shape data.
6. The system of claim 5, wherein the optimum path command includes moving the one or more servo motors between destination points, wherein the time it takes to move the servo motors between the destination points is the same amount of time for every destination point.
7. The system of claim 5, wherein the destination points correspond to X-Y coordinates.
8. The system of claim 2, wherein the results of the simulation displayed via the displayable interface can includes a plurality of options, wherein the plurality of options are based on a predetermined range more or less than a value of one or more of the input conditions.
9. The system of claim 2, wherein the input conditions include one or more of max velocity, max acceleration, error margin, velocity limit for each axis, torque limit for each axis, and servo response for each axis.
10. The system of claim 9, wherein the input conditions include max jerk.
11. The system of claim 9, wherein the input conditions include jerk limit for each axis.
12. A method for path command generation, comprising:
calculating, via processing circuitry, an optimum path command;
simulating, via the processing circuitry, the optimum path command based on the calculation of the optimum path command;
calculating, via the processing circuitry, a cycle time and error of the path command;
determining if the path command is selected; and
transmitting path command data to an industrial machine in response to the selected path command being selected.
13. The method of claim 12, wherein the processing circuitry is communicably coupled to an interface, wherein path command generation further comprises:
receiving, via the interface, input conditions as parameters for calculating the optimum path command;
displaying results of the simulation of the optimum path command via the interface;
receiving a selection of the selected path command via the interface;
receiving updated input conditions when no currently displayed path command is selected; and
transmitting the path command data corresponding to the selected path command to be implemented at the industrial machine.
14. The method of claim 13, wherein the optimum path command corresponds to a series of destination points for one or more servo motors of the industrial machine.
15. The method of claim 14, wherein the series of destination points are a set of coordinates based on predetermined shape data, wherein the interface is displayed based on the predetermined shape data.
16. The method of claim 15, wherein the optimum path command includes moving the one or more servo motors between destination points, wherein the time it takes to move the one or more servo motors between the destination points is the same amount of time for every destination point.
17. The method of claim 15, wherein the destination points correspond to X-Y coordinates.
18. An interface accessible via a remote device, comprising:
processing circuitry configured to receive input conditions via the interface,
display results of a simulation of the optimum path command via the interface,
receive a selection of an selected path command via the interface,
receive updated input conditions when no currently displayed path command is selected, and
transmit path command data corresponding to the selected path command to an industrial machine.
19. The interface of claim 18, wherein the industrial machine includes one or more servo motors, wherein the optimum path command corresponds to a series of destination points for the one or more servo motors, wherein the series of destination points are a set of coordinates based on predetermined shape data, wherein the interface is displayed based on the predetermined shape data.
20. The interface of claim 19, wherein the optimum path command includes moving the one or more servo motors between destination points, wherein the time it takes to move the servo motors between the destination points is the same amount of time for every destination point, wherein the destination points correspond to X-Y coordinates.
21. The interface of claim 18, wherein the results of the simulation displayed via the interface can includes a plurality of options, wherein the plurality of options are based on a predetermined range more or less than a value of one or more of the input conditions.
22. The interface of claim 21, wherein the input conditions include max velocity, max acceleration, error margin, velocity limit for each axis, torque limit for each axis, and servo response for each axis.
23. The interface of claim 22, wherein the input conditions include max jerk.
24. The interface of claim 22, wherein the input conditions include jerk limit for each axis.
25. A system, comprising:
processing circuitry configured to
calculate one or more first output conditions based on values of two or more input parameters,
calculate one or more second output conditions based on alternative values of the two or more input parameters,
determine which of at least one of the one or more first output conditions or the one or more second output conditions is selected, an output condition being selected based on the calculating of the one or more first output conditions and one or more second output conditions for each set of input parameters, and
transmit command data to an industrial machine, the command data corresponding to a path command implemented by the industrial machine, the command data being based on the selected output condition.
26. An interface, comprising:
processing circuitry configured to
calculate one or more first output conditions based on values of two or more input parameters,
calculate one or more second output conditions based on alternative values of the two or more input parameters,
determine which of at least one of the one or more first output conditions and the one or more second output conditions is selected, an output condition being selected based on the calculating of the one or more first output conditions and one or more second output conditions for each set of input parameters, and
transmit command data to an industrial machine, the command data corresponding to a path command implemented by the industrial machine, the command data being based on the selected output condition.
27. A method, comprising:
calculating, via processing circuitry, one or more first output conditions based on values of two or more input parameters,
calculating, via the processing circuitry, one or more second output conditions based on alternative values of the two or more input parameters,
determining, via the processing circuitry, which of at least one of the one or more first output conditions and the one or more second output conditions is selected, an output condition being selected based on the results of calculating the one or more first output conditions and one or more second output conditions for each set of input parameters, and
transmitting, via the processing circuitry, command data to an industrial machine, the command data corresponding to a path command implemented by the industrial machine, the command data being based on the selected output condition.
US15/827,780 2017-11-30 2017-11-30 Systems and methods for path command generation Active US10310473B1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US15/827,780 US10310473B1 (en) 2017-11-30 2017-11-30 Systems and methods for path command generation
PCT/JP2018/031755 WO2019106899A1 (en) 2017-11-30 2018-08-28 Trajectory command generation system, trajectory command generation method, and interface
JP2019512850A JP6545421B1 (en) 2017-11-30 2018-08-28 Trajectory command generation system, trajectory command generation method and interface

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US15/827,780 US10310473B1 (en) 2017-11-30 2017-11-30 Systems and methods for path command generation

Publications (2)

Publication Number Publication Date
US20190163156A1 true US20190163156A1 (en) 2019-05-30
US10310473B1 US10310473B1 (en) 2019-06-04

Family

ID=66634040

Family Applications (1)

Application Number Title Priority Date Filing Date
US15/827,780 Active US10310473B1 (en) 2017-11-30 2017-11-30 Systems and methods for path command generation

Country Status (3)

Country Link
US (1) US10310473B1 (en)
JP (1) JP6545421B1 (en)
WO (1) WO2019106899A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102022134609A1 (en) 2022-09-21 2023-08-10 Scanlab Gmbh Process for time optimization of laser processing of an object

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5005135A (en) * 1989-03-22 1991-04-02 Cincinnati Milacron, Inc. Dynamic correction of servo following errors in a computer-numerically controlled system and fixed cycle utilizing same
US5140236A (en) * 1988-10-24 1992-08-18 Fanuc Ltd. Spline interpolation method
US7139244B1 (en) * 2001-09-21 2006-11-21 Bellsouth Ip Corporation System and method for remotely inventorying multiplexing element switching fabric
US8050800B2 (en) * 2007-10-21 2011-11-01 Ge Intelligent Platforms, Inc. Method and system for meeting end conditions in a motion control system
US20120007536A1 (en) * 2010-07-12 2012-01-12 Fanuc Corporation Tool path display apparatus with deceleration factor identification means for machine tool

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4841448A (en) * 1987-09-01 1989-06-20 Flight Dynamics, Inc. Windshear flight recovery command system
US4972321A (en) * 1989-04-24 1990-11-20 Honeywell Inc. Lateral axis rollout control for aircraft
US20050165590A1 (en) 2004-01-23 2005-07-28 Yuhong Huang System and method for virtual laser marking
JP2009048396A (en) 2007-08-20 2009-03-05 Koyo Electronics Ind Co Ltd Simulator of motor motion
US20090089234A1 (en) 2007-09-28 2009-04-02 Rockwell Automation Technologies, Inc. Automated code generation for simulators
JP5951200B2 (en) 2010-09-09 2016-07-13 Dmg森精機株式会社 Processing related data processing system
JP5149421B2 (en) 2011-05-20 2013-02-20 ファナック株式会社 Numerical control device having machining time prediction unit and machining error prediction unit
US10360316B2 (en) 2012-12-21 2019-07-23 Rockwell Automation Technologies, Inc. Integration of simulation of a machine for industrial automation

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5140236A (en) * 1988-10-24 1992-08-18 Fanuc Ltd. Spline interpolation method
US5005135A (en) * 1989-03-22 1991-04-02 Cincinnati Milacron, Inc. Dynamic correction of servo following errors in a computer-numerically controlled system and fixed cycle utilizing same
US7139244B1 (en) * 2001-09-21 2006-11-21 Bellsouth Ip Corporation System and method for remotely inventorying multiplexing element switching fabric
US8050800B2 (en) * 2007-10-21 2011-11-01 Ge Intelligent Platforms, Inc. Method and system for meeting end conditions in a motion control system
US20120007536A1 (en) * 2010-07-12 2012-01-12 Fanuc Corporation Tool path display apparatus with deceleration factor identification means for machine tool

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102022134609A1 (en) 2022-09-21 2023-08-10 Scanlab Gmbh Process for time optimization of laser processing of an object
DE102022134609A9 (en) 2022-09-21 2023-10-12 Scanlab Gmbh Method for optimizing the time of laser processing of an object

Also Published As

Publication number Publication date
WO2019106899A1 (en) 2019-06-06
JP6545421B1 (en) 2019-07-17
JPWO2019106899A1 (en) 2019-12-12
US10310473B1 (en) 2019-06-04

Similar Documents

Publication Publication Date Title
US20210183166A1 (en) Parameter configuration method, apparatus, and device for three-dimensional face model, and storage medium
WO2012001167A4 (en) Method and device for editing workspace data objects
WO2013143372A1 (en) Operation method of selection cursor, method for displaying object and terminal device
CN110941750B (en) Data linkage method and related device
EP4047456A1 (en) Method and device for predicting drawing point of stylus pen
CN107944098B (en) BIM technology-based hyperbolic plate automatic optimization method and system
CN111563461B (en) Cleaning path acquisition method and device for cleaning equipment and storage medium
US20130083694A1 (en) Setting method of field device and setting system of field device
EP3274802A1 (en) Dynamically merging multiple screens into one view port
US10310473B1 (en) Systems and methods for path command generation
US20170153864A1 (en) Synchronization Object Determining Method, Apparatus, and System
US20220297001A1 (en) Server, processing system, processing method, and program
CN103473041A (en) Visualized data processing method and system
KR20220032533A (en) Sensing effect test method, apparatus, device, storage medium, computer program and test system
CN105607800A (en) Method and device for input display of terminal screen
CN109634428A (en) Electronic equipment, feedback prompts method, apparatus and terminal device
JP6290029B2 (en) Production control support device, production control support method and program
JP6287861B2 (en) Information processing apparatus, information processing method, and program storage medium
CN111737636B (en) Path curve generation method, device, computer equipment and storage medium
CN114880061B (en) Page component processing method and device, electronic equipment and medium
EP4120120A1 (en) Method and apparatus for obtaining cleaning path of cleaning device, and storage medium
CN110750536B (en) Vibration noise smoothing method and system for attitude time series data
US20190163166A1 (en) Information processing device
US20190073835A1 (en) Three-dimensional model cutting method and electronic apparatus
US20240045442A1 (en) Method for controlling mobile robots

Legal Events

Date Code Title Description
AS Assignment

Owner name: MITSUBISHI ELECTRIC CORPORATION, JAPAN

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MARUSHITA, YOSHIHIRO;REEL/FRAME:044265/0577

Effective date: 20171129

FEPP Fee payment procedure

Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

STCF Information on status: patent grant

Free format text: PATENTED CASE

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 4