The present invention relates to a control device that controls an actuator, a control system including the control device, and a method of controlling an actuator.
Laser processing has conventionally been performed with the use of a processing program using a control code. For example, Japanese Patent Laying-Open No. 02-063692 (PTL 1) discloses a technique to control output from a laser oscillator, a moving speed of the laser oscillator, or the like with a processing condition being defined as a parameter.
PTL 1: Japanese Patent Laying-Open No. 02-063692
The present invention provides a control device and the like capable of more precise control.
According to one example of the present invention, a control device for controlling an actuator is provided. The control device includes a storage configured to obtain a new distance command value at first timing indicated by a first clock and store the distance command value as a latest value and store an immediately preceding latest value as a previous value, a second clock generator configured to generate a second clock, a first calculator configured to calculate a distance inclination based on the latest value and the previous value of the distance command value and the number of second clocks within one cycle of the first clock, a second calculator configured to calculate a distance extrapolated value by successively adding the distance inclination to the previous value of the distance command value at second timing indicated by the second clock, a first command generator configured to output a first command corresponding to a target distance when the distance extrapolated value reaches the target distance, and a clock controller configured to stop output of the second clock until the next cycle of the first clock comes when the number of second clocks generated within one cycle of the first clock reaches a predetermined setting value.
According to this configuration, by successively calculating the distance extrapolated value at second timing indicated by the second clock, determination as to reach to the target distance can more precisely be made and the number of second clocks generated within one cycle of the first clock is restricted to the setting value. Therefore, even when jitter is caused in the first clock, influence thereby on calculation of the distance extrapolated value can be suppressed.
The control device may further include a counter configured to count the number of second clocks generated within one cycle of the first clock. According to this configuration, since the number of second clocks is counted, the distance extrapolated value can appropriately be calculated depending on a situation.
The number of second clocks generated within one cycle of the first clock may be a predetermined fixed value. According to this configuration, since the number of second clocks is set to the predetermined fixed value, operation can more readily be verified.
A cycle of the first clock may be set to an integral multiple of a cycle of the second clock. According to this configuration, the distance extrapolated value can be calculated at even timing within the cycle of the first clock.
The clock controller may start generation of the second clock at third timing indicated by the first clock. According to this configuration, even when the cycle of the first clock becomes longer due to jitter, generation of the second clock can start at predetermined timing in a next cycle.
The control device may further include a second command generator configured to generate a second command for designation of a position in accordance with a designated trace. According to this configuration, a position of the actuator or the like can be controlled in accordance with the designated trace.
The first command generator may be configured to output an on or off instruction as a command. According to this configuration, on or off of the actuator can be controlled at timing of reach to the target distance.
The control device may be configured to provide a user interface for accepting setting of a cycle of the first clock and a cycle of the second clock. According to this configuration, a user can set the cycle of the first clock and the cycle of the second clock in consideration of resistance against jitter and precision in control.
A control system according to another example of the present invention includes an actuator and a control device configured to control the actuator. The control device includes a storage configured to obtain a new distance command value at first timing indicated by a first clock and store the distance command value as a latest value and store an immediately preceding latest value as a previous value, a second clock generator configured to generate a second clock, a first calculator configured to calculate a distance inclination based on the latest value and the previous value of the distance command value and the number of second clocks within one cycle of the first clock, a second calculator configured to calculate a distance extrapolated value by successively adding the distance inclination to the previous value of the distance command value at second timing indicated by the second clock, a command generator configured to output a command corresponding to a target distance when the distance extrapolated value reaches the target distance, and a clock controller configured to stop output of the second clock until a next cycle of the first clock comes when the number of second clocks generated within one cycle of the first clock reaches a predetermined setting value.
According to yet another example of the present invention, a method of controlling an actuator is provided. The method includes obtaining a new distance command value at first timing indicated by a first clock and storing the distance command value as a latest value and storing an immediately preceding latest value as a previous value, calculating a distance inclination based on the latest value and the previous value of the distance command value and the number of second clocks within one cycle of the first clock, calculating a distance extrapolated value by successively adding the distance inclination to the previous value of the distance command value at second timing indicated by the second clock, outputting a command corresponding to a target distance when the distance extrapolated value reaches the target distance, and stopping output of the second clock until a next cycle of the first clock comes when the number of second clocks generated within one cycle of the first clock reaches a predetermined setting value.
According to the present invention, a control device and the like capable of more precise control can be realized.
An embodiment of the present invention will be described in detail with reference to the drawings. The same or corresponding elements in the drawings have the same reference characters allotted an description thereof will not be repeated.
An exemplary scene to which the present invention is applied will initially be described.
Control system 1 performs laser processing such as drilling, cutting, or marking on a workpiece 4 arranged on an XY stage 20. More specifically, control system 1 includes a control device 10, XY stage 20, laser 30, and a galvano mirror 40. XY stage 20, laser 30, and galvano mirror 40 are exemplary actuators controlled by control device 10.
In laser processing onto workpiece 4, adjustment of a position of the workpiece by XY stage 20 and adjustment by galvano mirror 40, of a position of irradiation with laser beams generated by laser 30 are combined. Adjustment of the position of workpiece 4 by XY stage 20 is relatively large in amount of displacement and relatively long in response time. In contrast, adjustment of the position of irradiation by galvano mirror 40 is relatively small in amount of displacement and relatively short in response time.
Control device 10 includes a main control unit 100, a stage control unit 200, and a laser control unit 300.
Main control unit 100 corresponds to a computing unit that executes an application program 110 (see
An operation display device 400 configured to output a command to control device 10 and to output a result of computation in control device 10 in response to an operation by a user may be connected to control device 10.
XY stage 20 includes a plate 22 where workpiece 4 is arranged and a servo motor 24-1 and a servo motor 24-2 (which may also collectively be referred to as “servo motor 24” below) configured to drive plate 22. In the example shown in
Servo motor 24 is controlled by control device 10. More specifically, stage control unit 200 outputs a servo command signal 510 through a control line 51 to servo drivers 26-1 and 26-2 (see
Laser control unit 300 is connected to laser 30 through a control line 53 and outputs a laser control signal 530 indicating on and off to laser 30. Laser control unit 300 is connected to galvano mirror 40 through a communication line 54 and outputs a mirror control signal 540 indicating a position of irradiation to galvano mirror 40. Galvano mirror 40 includes an X-axis scanner mirror 43, a Y-axis scanner mirror 45, and a lens 47. Light emitted from laser 30 sequentially propagates through lens 47, Y-axis scanner mirror 45, and X-axis scanner mirror 43, and is projected on XY stage 20.
An X-axis scanner motor 42 adjusts an angle of a reflection surface of X-axis scanner mirror 43, and a Y-axis scanner motor 44 adjusts an angle of a reflection surface of Y-axis scanner mirror 45. A Z-axis scanner motor 46 adjusts a distance of lens 47 relative to laser 30.
An exemplary hardware configuration of control system 1 according to the present embodiment will now be described.
Main control unit 100 includes a processor 102, a main memory 104, a storage 106, and a bus controller 112 as main components.
Storage 106 is implemented by a solid state disk (SSD) or a flash memory, and for example, a system program 108 configured to provide a basic program execution environment and an application program 110 freely created in accordance with workpiece 4 are stored therein.
Processor 102 is typically implemented by a central processing unit (CPU) or a micro-processing unit (MPU), and it implements overall control by control system 1 by reading system program 108 and application program 110 stored in storage 106 and developing the program on main memory 104 and executing the same.
Main control unit 100 is electrically connected to stage control unit 200 and laser control unit 300 through an internal bus 114. Bus controller 112 mediates data communication through internal bus 114.
Though an exemplary configuration in which necessary processing is provided by execution of a program by processor 102 is shown, a part or the entirety of this provided processing may be performed by dedicated hardware circuitry (for example, an application specific integrated circuit (ASIC) or a field-programmable gate array (FPGA)).
Stage control unit 200 generates and outputs servo command signal 510 to be provided to servo drivers 26-1 and 26-2. More specifically, stage control unit 200 includes a stage control computing unit 210 and a servo interface circuit 230.
Stage control computing unit 210 generates a command to be provided to servo drivers 26-1 and 26-2 in accordance with a computed value (command value) calculated by execution of application program 110 by main control unit 100. Stage control computing unit 210 is implemented, for example, by computing circuitry configured with a processor, an ASIC, an FPGA, or the like.
Servo interface circuit 230 outputs servo command signal 510 in accordance with a command from main control unit 100. Servo command signal 510 includes information on an amount of displacement, a speed, an angular velocity, or the like for each control of servo driver 26.
Servo interface circuit 230 obtains encoder output information 520 from each of encoders 28. Encoder output information 520 includes position data indicated by encoder 28. Encoder output information 520 may be transmitted in periodically transmitted frames.
Stage control computing unit 210 calculates a stage value (a position, a speed, an acceleration, or the like) of servo driver 26 based on encoder output information 520 and outputs the state value to main control unit 100. Stage control computing unit 210 includes a clock generator 220 that generates a synchronization clock 50 for synchronization among main control unit 100, stage control unit 200, and laser control unit 300.
Stage control computing unit 210 and servo interface circuit 230 may be implemented by a single ASIC or FPGA.
Laser control unit 300 generates and outputs laser control signal 530 to be provided to laser 30 and laser control signal 530 to be provided to galvano mirror 40. More specifically, laser control unit 300 includes a laser/mirror control computing unit 310, and output interface circuit 330, and a communication interface circuit 340.
Laser/mirror control computing unit 310 generates a command to be provided to laser 30 and galvano mirror 30 in accordance with a computed value (command value) calculated by execution of application program 110 by main control unit 100. Laser/mirror control computing unit 310 is implemented, for example, by computing circuitry configured with a processor, an ASIC, and FPGA, or the like.
Laser/mirror control computing unit 310 generates laser control signal 530 and mirror control signal 540.
Output interface circuit 330 outputs laser control signal 530 to be provided to laser 30 in accordance with a command generated by laser/mirror control computing unit 310.
Communication interface circuit 340 outputs mirror control signal 540 to be provided to galvano mirror 40 in accordance with a command generated by laser/mirror control computing unit 310.
Laser/mirror control computing unit 310, output interface circuit 330, and communication interface circuit 340 may be implemented by a single ASIC or FPGA.
Processing for output of laser control signal 530 indicating on/off of laser 30 by control system 1 according to the present embodiment will now be described.
More specifically, referring to
Trace generator 130 generates a trace of the position of irradiation with laser 30 based on a passed point row 134 composed of one of more passed points.
Distance command calculator 132 calculates a distance command value every cycle of synchronization clock 50, in correspondence with the generated trace. The calculated distance command value includes a distance command value 350 for control of on/off or the like of laser 30 and distance command values 352 and 354 indicating the position of irradiation with laser 30. Distance command value 352 indicates the position of irradiation along an X axis (a moving distance over the X axis to the position of irradiation) and distance command value 354 indicates the position of irradiation along a Y axis (the moving distance over the Y axis to the position of irradiation). The calculated distance command value is outputted to laser control unit 300.
Though distance command value 350 is a one-dimensional value, it may be a two-dimensional value. When a two-dimensional value is used, for example, command values indicating respective moving distances over the X axis and the Y axis may be outputted, similarly to distance command values 352 and 354.
Though distance command values 352 and 354 are combined into a two-dimensional value, on the other hand, they may be a one-dimensional value similarly to distance command value 350. In this case, in addition to a one-dimensional moving distance, information indicating a direction of movement may be outputted.
Though
More specifically, referring to
Register 311 is a storage that obtains new distance command value 350 from main control unit 100 at timing indicated by synchronization clock 50 (for example, fall of synchronization clock 50) and stores distance command value 350 as a latest value and stores an immediately preceding latest value as a previous value. More specifically, register 311 includes a latest value area 311A for storage of the latest value of distance command value 350 and a previous value area 311B for storage of the previous value. In storage of new distance command value 350 in latest value area 311A, a value that has been stored in latest value area 311A is written in previous value area 311B. In other words, register 311 stores at least two most recent distance command values 350.
Distance difference calculator 312 calculates a difference (distance difference) between the latest value and the previous value of distance command value 350 stored in register 311.
Distance inclination calculator 313 calculates a distance inclination based on the latest value and the previous value of distance command value 350 and the number of extrapolation clocks 60 (extrapolation clock count) within one cycle of synchronization clock 50. In other words, distance inclination calculator 313 calculates the distance inclination for one extrapolation clock by dividing the distance difference by the extrapolation clock count. By way of example, a count value obtained by count of extrapolation clock 60 may be employed as the extrapolation clock count.
Distance interpolator 314 calculates a distance extrapolated value by successively adding the distance inclination to the previous value of distance command value 350 at the timing indicated by extrapolation clock 60 (for example, rise of extrapolation clock 60). In other words, distance interpolator 314 calculates the current distance (distance extrapolated value) obtained by extrapolation, by successively adding a value calculated by multiplying the distance inclination by elapsed time to the previous value of distance command value 350 stored in register 311.
Comparator 315 outputs a command corresponding to a target distance 316 (for example, an instruction for on or off laser 30) when the calculated distance extrapolated value reaches target distance 316. Comparator 315 thus determines whether or not timing to turn on or off laser 30 has come based on comparison between the distance extrapolated value and target distance 316. Comparator 315 outputs an instruction for on or off of laser 30 as the command.
A plurality of target distances 316 such as target distance 316 for on of laser 30 and target distance 316 for off of laser 30 may be prepared. The command generated by comparator 315 is outputted as laser control signal 530 through output interface circuit 330.
Extrapolation clock controller 317 controls generation of extrapolation clock 60. More specifically, extrapolation clock controller 317 includes an extrapolation clock generator 318 that generates extrapolation clock 60, and starts/stops output of extrapolation clock 60 in accordance with timing of rise/fall or the like of synchronization clock 50.
Extrapolation clock counter 319 measures a cycle of synchronization clock 50. More specifically, extrapolation clock counter 319 counts the number of extrapolation clocks 60 generated within one cycle of synchronization clock 50. In other words, extrapolation clock counter 319 calculates a denominator for calculation of the distance inclination from the distance difference calculated by distance difference calculator 312.
Position command generator 322 generates a command (mirror control signal 540) for designation of the position of irradiation with laser 30 in accordance with the designated trace (the trace generated by trace generator 130 shown in
Position command generator 322 may perform extrapolation processing similar to that for distance command value 350 on each of distance command values 352 and 354, and then output mirror control signal 540. In other words, position command generator 322 may be provided with features similar to register 311, distance difference calculator 312, distance inclination calculator 313, distance interpolator 314, comparator 315, extrapolation clock controller 317, and extrapolation clock counter 319, for each of distance command values 352 and 354.
Referring to
Movement from distance command value 1 to distance command value 2 is made during a period from time t2 to time t4, and then linear extrapolation can be performed to calculate change (distance extrapolated value) in distance within that period. Processing for distance extrapolation is reset at every timing (time t2, time t4, ...) indicated by rise of synchronization clock 50.
The number of times of extrapolation within a period corresponds to the extrapolation clock count. In other words, the extrapolation clock count refers to an extrapolation resolution between adjacent timings.
A method of generating a command based on comparison between an estimated current distance and a target distance as described above is also referred to as a table base compare (TBC) method.
Exemplary operation in control system 1 according to the present embodiment and a problem that may arise will now be described.
Referring to
Being triggered by fall of synchronization clock 50, laser control unit 300 has the distance command value stored in latest value area 311A in register 311 ((2) in
In succession, being triggered by rise of synchronization clock 50, laser control unit 300 sets the previously calculated distance inclination for extrapolation processing ((5) in
Being triggered by rise of synchronization clock 50, laser control unit 300 counts the extrapolation clock count ((7) in
Hereafter, (1) to (7) described above are repeated.
Jitter may be caused in synchronization clock 50. Jitter caused in synchronization clock 50 may affect calculation of the distance extrapolated value. The reason why jitter affects calculation of the distance extrapolated value will be described below.
For example, it is assumed that the cycle of synchronization clock 50 has become shorter by jitter during a period from time t14 to time t16 ((8) in
Consequently, the distance inclination calculated by laser control unit 300 is as below ((10) in
In other words, the ideal distance inclination is 2,000, whereas it is calculated as 2,004 due to jitter in synchronization clock 50.
In succession, being triggered by rise of synchronization clock 50, laser control unit 300 sets the previously calculated distance inclination for extrapolation processing ((11) in
Since the distance inclination is larger than the ideal value, the distance extrapolated value increases earlier than it ideally does. Consequently, during a period from time t18 to time t20, the distance extrapolated value exhibits a value larger than the ideal value. Then, the target distance is reached earlier and timing of on of laser becomes earlier ((13) in
In the example shown in
Jitter in synchronization clock 50 may thus cause an error in the distance extrapolated value. Then, in control system 1 according to the present embodiment, extrapolation clock counter 319 counts the extrapolation clock count so as not to cause the error in the distance extrapolated value in spite of jitter in synchronization clock 50. Count of the extrapolation clock count by extrapolation clock counter 319 will be described in detail below.
Count of the extrapolation clock count by extrapolation clock counter 319 will now be described. In the present embodiment, generation of extrapolation clock 60 is controlled in synchronization with synchronization clock 50.
Referring to
The cycle of synchronization clock 50 may be set to any value so long as the value is the integral multiple of the cycle of extrapolation clock 60. A user may set any cycle of synchronization clock 50. For example, the cycle of synchronization clock 50 may be set within a range from 10,000 [ns] (the frequency being set to 100 [kHz]) to 100,000 [ns] (the frequency being set to 10 [kHz]).
Alternatively, the number of extrapolation clocks 60 included in one cycle of synchronization clock 50 may be set. In this case, the cycle of extrapolation clock 60 is determined by dividing the cycle of synchronization clock 50 by the set number of extrapolation clocks 60. For example, by setting the cycle of synchronization clock 50 to 50,000 [ns] and then setting the number of extrapolation clocks 60 to 500, the cycle of extrapolation clock 60 can be determined as 100 [ns].
A duty ratio of extrapolation clock 60 is set to be as low as possible so as to be able to absorb jitter that may be caused in synchronization clock 50. In the example shown in
Being triggered by rise of synchronization clock 50, extrapolation clock controller 317 starts output of extrapolation clock 60. Thereafter, when the number of extrapolation clocks 60 generated within one cycle (from rise to next rise) of synchronization clock 50 reaches a setting value (setting extrapolation clock count) set in advance, extrapolation clock controller 317 stops output of extrapolation clock 60 until the next cycle (rise of synchronization clock 50) of synchronization clock 50 comes.
Extrapolation clock controller 317 adjust the cycle of the extrapolation clock last outputted in each cycle (the extrapolation clock that reaches the setting extrapolation clock count in each cycle) by Δt corresponding to jitter caused in synchronization clock 50.
The cycle of last outputted extrapolation clock 60 is determined depending on timing of next rise of synchronization clock 50. Specifically, extrapolation clock controller 317 starts generation of extrapolation clock 60 at timing indicated by synchronization clock 50 (for example, rise of synchronization clock 50). Therefore, the cycle of extrapolation clock 60 may automatically be adjusted depending on the timing of rise of synchronization clock 50.
By thus suppressing variation in clock count of counted extrapolation clock 60 by adjusting output of extrapolation clock 60 in synchronization with cyclic timing of synchronization clock 50 (for example, rise of synchronization clock 60), an error that may be caused in distance extrapolated value is suppressed and possibility of fluctuation in timing of on/off of laser 30 is lowered.
Referring to
As described above, being triggered by rise of synchronization clock 50, the distance inclination is calculated, and being triggered by rise of synchronization clock 50, calculation of the distance extrapolated value is started based on the calculated distance inclination. When the calculated distance extrapolated value reaches target distance 316, the command for on or off of laser is outputted.
Extrapolation clock counter 319 determines whether or not the number of extrapolation clocks 60 that had been outputted since immediately preceding rise of synchronization clock 50 has reached the setting extrapolation clock count set in advance, and when the number has not reached the setting extrapolation clock count, extrapolation clock generator 318 keeps outputting extrapolation clock 60.
When synchronization clock 50 rises at time t33, extrapolation clock controlled 317 resets synchronization clock 50 and has extrapolation clock generator 318 start output of extrapolation clock 60.
Similar processing is performed also during a period from time t33 to time t35. From time t33 to time t35, the cycle of synchronization clock 50 is shorter by 10 [ns].
When synchronization clock 50 rises at time t35, extrapolation clock controller 317 resets synchronization clock 50 and has extrapolation clock generator 318 start output of extrapolation clock 60. The cycle of synchronization clock 50, however, has become shorter, and hence the cycle of extrapolation clock 60 outputted immediately before time t35 is adjusted from ideal 100 [ns] to 90 [ns].
Referring to
As described above, being triggered by rise of synchronization clock 50, the distance inclination is calculated, and being triggered by rise of synchronization clock 50, calculation of the distance extrapolated value is started based on the calculated distance inclination. When the calculated distance extrapolated value then reaches target distance 316, the command for on or off of laser is outputted.
Extrapolation clock controller 317 determines whether or not the number of extrapolation clocks 60 that had been outputted since immediately preceding rise of synchronization clock 50 has reached the setting extrapolation clock count set in advance, and when the number has not reached the setting extrapolation clock count, it has extrapolation clock generator 318 continue output of extrapolation clock 60.
When synchronization clock 50 rises at time t43, extrapolation clock controller 317 resets synchronization clock 50 and has extrapolation clock generator 318 start output of extrapolation clock 60.
Similar processing is performed also during a period from time t43 to time t45. From time t43 to time t45, however, the cycle of synchronization clock 50 is longer by 10 [ns]. Therefore, after output of last synchronization clock 50 and before rise (time t45) of synchronization clock 50, there is a time period (110 [ns]) longer than the cycle (100 [ns]) of synchronization clock 50. When last synchronization clock 50 is outputted, that is, when the number of outputted extrapolation clocks 60 reaches the setting extrapolation clock count set in advance, output of synchronization clock 50 is stopped. Consequently, the extrapolation clock count counted during the period from time t43 to time t45 is maintained at 500 as many as the setting extrapolation clock count.
When synchronization clock 50 then rises at time t45, extrapolation clock controller 317 resets synchronization clock 50 and has extrapolation clock generator 318 start output of extrapolation clock 60. Consequently, the cycle of extrapolation clock 50 outputted immediately before time t45 is adjusted from ideal 100 [ns] to 100 [ns].
A procedure in processing performed by laser control unit 300 of control system 1 according to the present embodiment will now be described.
Referring to
When fall of synchronization clock 50 has not occurred (NO in step S2), processing in steps S4 to S10 is skipped.
In succession, laser control unit 300 determines whether or not rise of synchronization clock 50 has occurred (step S12). When rise of synchronization clock 50 has occurred (YES in step S12), the command for the position of irradiation with laser 30 (mirror control signal 540) is generated based on the latest value of the distance command value (step S14).
Laser control unit 300 sets the previous value of the distance command value as the initial value of the distance extrapolated value (step S16) and sets the most recently calculated distance inclination for extrapolation processing (step S18).
When rise of synchronization clock 50 has not occurred (NO in step S12), processing in steps S16 and S18 is skipped.
In succession, laser control unit 300 determines whether or not rise of synchronization clock 50 has occurred (step S20). When rise of synchronization clock 50 has occurred (YES in step S20), laser control unit 300 updates the distance extrapolated value by adding the set distance inclination to the current distance extrapolated value (step S22). In other words, laser control unit 300 calculates the distance extrapolated value by successively adding the distance inclination to the previous value of the distance command value at prescribed timing indicated by synchronization clock 50.
In succession, laser control unit 300 determines whether or not the updated distance extrapolated value has reached any target distance 316 (step S24). When the updated distance extrapolated value has reached any target distance 316 (YES in step S24), laser control unit 300 outputs the command for performing processing (on or off of laser 30) corresponding to reached target distance 316 (step S26). Laser control unit 300 thus outputs the command corresponding to target distance 316 when the distance extrapolated value reaches target distance 316. Processing in step S2 or later is then repeated.
When the updated distance extrapolated value has not reached any target distance (NO in step S24), processing in step S26 is skipped.
When rise of synchronization clock 50 has not occurred (NO in step S20), laser control unit 300 repeats the processing in step S2 or later.
Referring to
When rise of synchronization clock 50 has not occurred (NO in step S100), processing in steps S102 and S104 is skipped.
Laser control unit 300 determines whether or not rise of extrapolation clock 60 has occurred (step S106). When rise of extrapolation clock 60 has not occurred (NO in step S106), processing in step S100 or later is repeated.
When rise of extrapolation clock 60 has occurred (YES in step S106), laser control unit 300 increments extrapolation clock counter 319 (step S108).
Laser control unit 300 then determines whether or not a value of incremented extrapolation clock counter 319 has reached the setting extrapolation clock count (step S110). When the value of incremented extrapolation clock counter 319 has reached the setting extrapolation clock count (YES in step S110), laser control unit 300 stops output of extrapolation clock 60 (step S112). When the number of extrapolation clocks 60 generated within one cycle of synchronization clock 50 has thus reached the predetermined setting value, laser control unit 300 stops output of extrapolation clock 60 until the next cycle of synchronization clock 50 comes. Laser control unit 300 then stands by until occurrence of rise of synchronization clock 50 (step S114). When rise of synchronization clock 50 occurs, the processing in step S102 or later is repeated.
When the value of incremented extrapolation clock counter 319 has not reached the setting extrapolation clock count (NO in step S110), processing in step S100 or later is repeated.
Timing of irradiation with laser 30 can precisely be controlled through the process above.
An exemplary user interface provided by control system 1 according to the present embodiment will now be described. Typically, the user inputs setting for performing the processing as described above through operation display device 400 connected to control device 10.
User interface screen 450 includes an input portion 452 where setting of the cycle of synchronization clock 50 is accepted, a setting candidate list display portion 454, a check box 456, a display portion 458 where the cycle of extrapolation clock 60 is shown, a display portion 460 where the number of times of extrapolation is shown, and a setting reflection button 462.
The user inputs the cycle of synchronization clock 50 into input portion 452. Operation display device 400 shows a set of the cycle of extrapolation clock 60 that can be set and the number of times of extrapolation in setting candidate list display portion 454 in accordance with the cycle of synchronization clock 50 inputted to input portion 452.
The set of the cycle of extrapolation clock 60 and the number of times of extrapolation may be shown with reference to setting made in advance in main control unit 100.
The user checks check box 456 corresponding to a desired set, among the sets of the cycle of extrapolation clock 60 and the number of times of extrapolation shown in setting candidate list display portion 454. Operation display device 400 shows the checked set of the cycle of extrapolation clock 60 and the number of times of extrapolation in display portion 458 and display portion 460.
The user determines the cycle of extrapolation clock 60 so as to maximize the number of times of extrapolation in the set cycle of synchronization clock 50, in consideration of tradeoff between resistance against jitter that may be caused in synchronization clock 50 and precision of control of on/off of laser 30.
For example, when synchronization clock 50 has the cycle of 50 [μs] (the frequency being set to 20 [kHz]), extrapolation clock 60 has a minimum cycle of 50 [ns]. When synchronization clock 50 has the cycle of 1 [ms] (the frequency being set to 1 [kHz]), on the other hand, extrapolation clock 60 has the minimum cycle of 100 [ns].
When the user finally selects setting reflection button 462, shown contents of setting are transmitted to control device 10.
As set forth above, the user sets the cycle of synchronization clock 50, the cycle of extrapolation clock 60, and the number of times of extrapolation in consideration of resistance against jitter that may be caused in synchronization clock 50 and precision of on/off control of laser 30. Control device 10 thus provides the user interface to accept setting of the cycle of synchronization clock 50 and the cycle of extrapolation clock 60.
Through the example in which a value (count value) obtained by actual count of extrapolation clock 60 is adopted as the number of extrapolation clocks 60 (the extrapolation clock count) within one cycle of synchronization clock 50 is shown in the description above, a predetermined fixed value (setting value) may be employed. In other words, the number of extrapolation clocks 60 within one cycle of synchronization clock 50 may be a predetermined fixed value.
For example, on the assumption that synchronization clock 50 has the cycle of 50,000 [ns] and extrapolation clock 60 has the cycle of 100 [ns], the number of extrapolation clocks 60 (the extrapolation clock count) within one cycle of synchronization clock 50 can be set to 500.
By thus using the predetermined fixed value as the extrapolation clock count, operation can be verified more readily than in an example where the count value is used.
The present embodiment as described above encompasses technical concepts as below.
A control device (10) for controlling an actuator (30, 40) includes a storage (311) configured to obtain a new distance command value at first timing indicated by a first clock (50) and store the distance command value as a latest value and store an immediately preceding latest value as a previous value, a second clock generator (318) configured to generate a second clock (60), a first calculator (313) configured to calculate a distance inclination based on the latest value and the previous value of the distance command value and the number of second clocks within one cycle of the first clock, a second calculator (314) configured to calculate a distance extrapolated value by successively adding the distance inclination to the previous value of the distance command value at second timing indicated by the second clock, a first command generator (315) configured to output a first command (530) corresponding to a target distance (316) when the distance extrapolated value reaches the target distance, and a clock controller (317) configured to stop output of the second clock until a next cycle of the first clock comes when the number of second clocks generated within one cycle of the first clock reaches a predetermined setting value.
The control device according to Configuration 1 further includes a counter configured to count the number of second clocks generated within one cycle of the first clock.
In the control device according to Configuration 1, the number of second clocks generated within one cycle of the first clock is a predetermined fixed value.
In the control device according to any one of Configurations 1 to 3, the cycle of the first clock is set to an integral multiple of a cycle of the second clock.
In the control device according to any one of Configurations 1 to 4, the clock controller is configured to start generation of the second clock at third timing indicated by the first clock.
The control device according to any one of Configurations 1 to 5 further includes a second command generator (322) configured to generate a second command (540) for designation of a position in accordance with a designated trace.
In the control device according to any one of Configurations 1 to 6, the second command generator is configured to output an on or off instruction as a command.
In the control device according to any one of Configurations 1 to 7, the control device is configured to provide a user interface (450) for accepting setting of a cycle of the first clock and a cycle of the second clock.
A control system includes an actuator (30, 40) and a control device (10) configured to control the actuator, and the control device includes a storage (311) configured to obtain a new distance command value at first timing indicated by a first clock (50) and store the distance command value as a latest value and store an immediately preceding latest value as a previous value, a second clock generator (318) configured to generate a second clock (60), a first calculator (313) configured to calculate a distance inclination based on the latest value and the previous value of the distance command value and the number of second clocks within one cycle of the first clock, a second calculator (314) configured to calculate a distance extrapolated value by successively adding the distance inclination to the previous value of the distance command value at second timing indicated by the second clock, a command generator (315) configured to output a command corresponding to a target distance (316) when the distance extrapolated value reaches the target distance, and a clock controller (317) configured to stop output of the second clock until a next cycle of the first clock comes when the number of second clocks generated within one cycle of the first clock reaches a predetermined setting value.
A method of controlling an actuator (30, 40) includes obtaining a new distance command value at first timing indicated by a first clock (50) and storing the distance command value as a latest value and storing an immediately preceding latest value as a previous value (S4, S6), calculating a distance inclination based on the latest value and the previous value of the distance command value and the number of second clocks within one cycle of the first clock (S10), calculating a distance extrapolated value by successively adding the distance inclination to the previous value of the distance command value at second timing indicated by the second clock (S22), outputting a command corresponding to a target distance when the distance extrapolated value reaches the target distance (S24, S26), and stopping output of the second clock until a next cycle of the first clock comes when the number of second clocks generated within one cycle of the first clock reaches a predetermined setting value (S112).
According to control system 1 according to the present embodiment, whether or not the target distance has been reached can more precisely be determined by extrapolating the distance command value updated in cycles of the synchronization clock with a cycle shorter than the synchronization clock. Even when jitter is caused in the synchronization clock, such an algorithm as not affecting the number of extrapolation clocks generated within the synchronization clock is adopted so that the calculated distance extrapolated value can be prevented from being affected by jitter. More precise control can thus be carried out in a stable manner.
It should be understood that the embodiment disclosed herein is illustrative and non-restrictive in every respect. The scope of the present invention is defined by the terms of the claims rather than the description above and is intended to include any modifications within the scope and meaning equivalent to the terms of the claims.
1 control system; 4 workpiece; 10 control device; 20 XY stage; 22 plate; 24 servo motor; 26 servo driver; 28 encoder; 30 laser; 40 galvano mirror; 42 X-axis scanner motor; 43 axis scanner; 44 Y-axis scanner motor; 45 Y-axis scanner mirror; 46 Z-axis scanner motor; 47 lens; 50 synchronization clock; 51, 52, 53 control line; 54 communication line; 60 extrapolation clock; 100 main control unit; 102 processor; 104 main memory; 106 storage; 108 system program; 110 application program; 112 bus controller; 114 internal bus; 130 trace generator; 132 distance command calculator; 134 passed point row; 200 stage control unit; 210 stage control computing unit; 220 clock generator; 230 servo interface circuit; 300 laser control unit; 310 laser/mirror control computing unit; 311 register; 311A latest value area; 311B previous value area; 312 distance difference calculator; 313 distance inclination calculator; 314 distance interpolator; 314 comparator; 316 target distance; 317 extrapolation clock controller; 318 extrapolation clock generator; 319 extrapolation clock counter; 322 position command generator; 330 output interface circuit; 340 communication interface circuit; 350, 352, 354 distance command value; 400 operation display device; 450 user interface screen; 452 input portion; 454 setting candidate list display portion; 456 check box; 458, 460 display portion; 462 setting reflection button; 510 servo command signal; 520 encoder output information; 530 laser control signal; 540 mirror control signal.
| Number | Date | Country | Kind |
|---|---|---|---|
| 2022-061535 | Apr 2022 | JP | national |
| Filing Document | Filing Date | Country | Kind |
|---|---|---|---|
| PCT/JP2023/008836 | 3/8/2023 | WO |