WO2023189323A1 - 制御装置、制御システムおよび制御方法 - Google Patents

制御装置、制御システムおよび制御方法 Download PDF

Info

Publication number
WO2023189323A1
WO2023189323A1 PCT/JP2023/008836 JP2023008836W WO2023189323A1 WO 2023189323 A1 WO2023189323 A1 WO 2023189323A1 JP 2023008836 W JP2023008836 W JP 2023008836W WO 2023189323 A1 WO2023189323 A1 WO 2023189323A1
Authority
WO
WIPO (PCT)
Prior art keywords
clock
value
distance
interpolation
command
Prior art date
Application number
PCT/JP2023/008836
Other languages
English (en)
French (fr)
Inventor
智博 西村
Original Assignee
オムロン株式会社
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 オムロン株式会社 filed Critical オムロン株式会社
Publication of WO2023189323A1 publication Critical patent/WO2023189323A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D3/00Control of position or direction
    • G05D3/12Control of position or direction using feedback

Definitions

  • the present invention relates to a control device that controls an actuator, a control system including the control device, and an actuator control method.
  • Patent Document 1 discloses a technique in which processing conditions are defined as parameters to control the output, moving speed, etc. of a laser oscillator.
  • the present invention provides a control device that allows more precise control.
  • a control device for controlling an actuator acquires a new distance command value and stores it as the latest value at a first timing indicated by the first clock, and also includes a storage unit that stores the immediately preceding latest value as the previous value, and generates a second clock. a second clock generating section; a first calculating section that calculates a distance slope based on the latest value and previous value of the recorded distance command value; and the number of second clocks within one cycle of the first clock; A second calculation unit calculates a distance interpolation value by sequentially adding the distance slope to the previous value of the distance command value at a second timing indicated by the clock, and when the distance interpolation value reaches the target distance, it corresponds to the target distance.
  • a first command generation unit that outputs a first command to perform the first clock; and when the number of second clocks generated within one cycle of the first clock reaches a predetermined setting value, the next cycle of the first clock arrives.
  • a clock control unit that stops outputting the second clock until the second clock is reached.
  • the control device may further include a measurement unit that measures the number of second clocks generated within one cycle of the first clock. According to this configuration, since the number of second clocks is measured, it is possible to appropriately calculate the distance interpolation value depending on the 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 a predetermined fixed value, operation verification can be performed more easily.
  • the period of the first clock may be set to an integral multiple of the period of the second clock. According to this configuration, distance interpolation values can be calculated at equal timing within the period of the first clock.
  • the clock control unit may start generating the second clock at a third timing indicated by the first clock. According to this configuration, even if the period of the first clock becomes longer due to jitter, generation of the second clock can be started at a predetermined timing in the next period.
  • the control device may further include a second command generation unit that generates a second command for specifying the position according to the specified trajectory. According to this configuration, the position of the actuator and the like can be controlled according to the specified trajectory.
  • the first command generation unit may output an on or off instruction as a command.
  • the actuator can be turned on or off at the timing when the target distance is reached.
  • the control device may provide a user interface for accepting settings for the period of the first clock and the period of the second clock. According to this configuration, the user can set the period of the first clock and the period of the second clock in consideration of tolerance to jitter and control accuracy.
  • a control system includes an actuator and a control device that controls the actuator.
  • the control device acquires a new distance command value and stores it as the latest value at a first timing indicated by the first clock, and also includes a storage unit that stores the immediately preceding latest value as the previous value, and generates a second clock.
  • a second clock generating section a first calculating section that calculates a distance slope based on the latest value and previous value of the distance command value; and the number of second clocks within one cycle of the first clock; and a second clock generating section;
  • a second calculation unit calculates a distance interpolation value by sequentially adding the distance slope to the previous value of the distance command value at a second timing indicated by .
  • the command generation unit When the number of second clocks generated within one cycle of the first clock reaches a predetermined setting value, the command generation unit outputs a command, and when the number of second clocks generated within one cycle of the first clock reaches a predetermined setting value, the second clock is output until the next cycle of the first clock arrives. and a clock control unit that stops output.
  • a method for controlling an actuator includes the steps of acquiring a new distance command value and storing it as the latest value at a first timing indicated by the first clock, and storing the immediately preceding latest value as the previous value; calculating a distance slope based on the previous value and the number of second clocks within one cycle of the first clock; and calculating the distance slope to the previous value of the distance command value at a second timing indicated by the second clock.
  • a step of calculating a distance interpolation value by sequentially adding a step of outputting a command corresponding to the target distance when the distance interpolation value reaches the target distance, and a step of outputting a command corresponding to the target distance by sequentially adding and stopping the output of the second clock until the next cycle of the first clock arrives when the number of clocks reaches a predetermined set value.
  • FIG. 1 is a schematic diagram showing a configuration example of a control system according to the present embodiment.
  • FIG. 1 is a schematic diagram showing an example of the main hardware configuration of a control system according to the present embodiment.
  • FIG. 2 is a schematic diagram showing an example of the functional configuration of a main control unit of the control system according to the present embodiment.
  • FIG. 2 is a schematic diagram showing an example of the functional configuration of a laser control unit of the control system according to the present embodiment.
  • FIG. 3 is a diagram for explaining distance slope calculation and laser on/off control in the control system according to the present embodiment.
  • 5 is a time chart showing an example of operation in the control system according to the present embodiment.
  • FIG. 3 is a diagram for explaining measurement of the number of interpolation clocks in the control system according to the present embodiment.
  • FIG. 7 is a time chart illustrating an operation example when the period of a synchronization clock becomes shorter in the control system according to the present embodiment.
  • 7 is a time chart showing an operation example when the period of a synchronization clock becomes longer in the control system according to the present embodiment.
  • It is a flowchart which shows the processing procedure of the main process performed by the laser control unit of the control system according to this embodiment.
  • 7 is a flowchart illustrating a processing procedure for measuring the number of interpolation clocks executed by the laser control unit of the control system according to the present embodiment.
  • FIG. 2 is a schematic diagram showing an example of a user interface screen displayed on the operation display device of the control system according to the present embodiment.
  • FIG. 1 is a schematic diagram showing a configuration example of a control system 1 according to the present embodiment.
  • FIG. 1 shows an example of a laser processing system as a typical example, the present invention is not limited to the laser processing system, but can be applied to any system including an arbitrary actuator.
  • the control system 1 performs laser processing such as drilling, cutting, and marking on the workpiece 4 placed on the XY stage 20. More specifically, the control system 1 includes a control device 10, an XY stage 20, a laser 30, and a galvano mirror 40. The XY stage 20, laser 30, and galvano mirror 40 are examples of actuators controlled by the control device 10.
  • Laser processing of the workpiece 4 combines adjustment of the workpiece position using the XY stage 20 and adjustment of the irradiation position of the laser beam generated by the laser 30 using the galvanometer mirror 40.
  • the amount of displacement is relatively large and the response time is relatively long.
  • the amount of displacement is relatively small and the response time is relatively short.
  • the control device 10 includes a main control unit 100, a stage control unit 200, and a laser control unit 300.
  • the main control unit 100 corresponds to a calculation unit that executes the application program 110 (see FIG. 2).
  • the application program 110 is arbitrarily created depending on the mechanism to be controlled, the workpiece 4, and the like.
  • the execution results obtained when the main control unit 100 executes the application program 110 are used to generate control signals in the stage control unit 200 and the laser control unit 300.
  • An operation display device 400 may be connected to the control device 10, which outputs commands to the control device 10 and outputs calculation results in the control device 10 in response to user operations.
  • the XY stage 20 includes a plate 22 on which the workpiece 4 is placed, and a servo motor 24-1 and a servo motor 24-2 (hereinafter sometimes collectively referred to as "servo motor 24") that drive the plate 22.
  • a servo motor 24-1 and a servo motor 24-2 that drive the plate 22.
  • the servo motor 24-1 displaces the plate 22 in the X-axis direction
  • the servo motor 24-2 displaces the plate 22 in the Y-axis direction.
  • the servo motor 24 is controlled by the control device 10. More specifically, the stage control unit 200 controls the servo drivers 26-1 and 26-2 (see FIG. 2) (hereinafter referred to as “servo motors”) that drive the servo motors 24-1 and 24-2 via the control line 51. A servo command signal 510 is output to the driver 26.
  • the stage control unit 200 also includes encoders 28-1 and 28-2 (hereinafter sometimes collectively referred to as "encoders 28”) connected to servo drivers 26-1 and 26-2, respectively, via control lines 52. .) to obtain encoder output information 520.
  • the laser control unit 300 is connected to the laser 30 via a control line 53 and outputs a laser control signal 530 that instructs the laser 30 to turn on/off. Further, the laser control unit 300 is connected to the galvanometer mirror 40 via a communication line 54, and outputs a mirror control signal 540 that instructs the irradiation position to the galvano mirror 40.
  • Galvano mirror 40 includes an X-axis scanning mirror 43, a Y-axis scanning mirror 45, and a lens 47. The light emitted from the laser 30 propagates through the lens 47 , the Y-axis scanning mirror 45 , and the X-axis scanning mirror 43 in this order, and is projected onto the XY stage 20 .
  • the angle of the reflecting surface of the X-axis scanning mirror 43 is adjusted by the X-axis scanning motor 42, and the angle of the reflecting surface of the Y-axis scanning mirror 45 is adjusted by the Y-axis scanning motor 44.
  • the relative distance of the lens 47 to the laser 30 is adjusted by the Z-axis scanning motor 46.
  • FIG. 2 is a schematic diagram showing an example of the main hardware configuration of the control system 1 according to the present embodiment.
  • the control device 10 includes the main control unit 100, the stage control unit 200, and the laser control unit 300.
  • the main control unit 100 includes a processor 102, a main memory 104, a storage 106, and a bus controller 112 as main components.
  • the storage 106 is configured with an SSD (Solid State Disk), fresh memory, etc., and includes, for example, a system program 108 for providing a basic program execution environment, and an application program 110 arbitrarily created according to the work 4. is stored.
  • SSD Solid State Disk
  • the processor 102 is typically composed of a CPU (Central Processing Unit), an MPU (Micro-Processing Unit), etc., and reads the system program 108 and application program 110 stored in the storage 106 and expands them into the main memory 104. By executing this, overall control of the control system 1 is realized.
  • CPU Central Processing Unit
  • MPU Micro-Processing Unit
  • the main control unit 100 is electrically connected to the stage control unit 200 and the laser control unit 300 via an internal bus 114.
  • Bus controller 112 mediates data communication via internal bus 114.
  • a dedicated hardware circuit for example, an ASIC (Application Specific It may be implemented using an FPGA (Field-Programmable Gate Array) or an FPGA (Field-Programmable Gate Array).
  • ASIC Application Specific It may be implemented using an FPGA (Field-Programmable Gate Array) or an FPGA (Field-Programmable Gate Array).
  • stage control unit 200 generates and outputs a servo command signal 510 given to the servo drivers 26-1 and 26-2. More specifically, stage control unit 200 includes a stage control calculation section 210 and a servo interface circuit 230.
  • the stage control calculation section 210 generates commands to be given to the servo drivers 26-1 and 26-2 according to the calculation value (command value) calculated by the main control unit 100 executing the application program 110.
  • the stage control calculation unit 210 is realized by, for example, a calculation circuit configured using a processor, an ASIC, an FPGA, or the like.
  • the servo interface circuit 230 outputs a servo command signal 510 in accordance with the command from the main control unit 100.
  • the servo command signal 510 includes information such as displacement amount, speed, angular velocity, etc. for each control for the servo driver 26.
  • the servo interface circuit 230 obtains encoder output information 520 from each of the encoders 28.
  • Encoder output information 520 includes position data indicated by encoder 28. Note that the encoder output information 520 may be transmitted in periodically transmitted frames.
  • the stage control calculation unit 210 calculates the state value (position, velocity, acceleration, etc.) of the servo driver 26 based on the encoder output information 520 and outputs it to the main control unit 100.
  • the stage control calculation unit 210 includes a clock generation unit 220 that generates a synchronization clock 50 for synchronizing the main control unit 100, the stage control unit 200, and the laser control unit 300.
  • stage control calculation section 210 and the servo interface circuit 230 may be realized by a single ASIC or FPGA.
  • the laser control unit 300 generates and outputs a laser control signal 530 given to the laser 30 and a laser control signal 530 given to the galvanometer mirror 40. More specifically, laser control unit 300 includes a laser/mirror control calculation section 310, an output interface circuit 330, and a communication interface circuit 340.
  • the laser/mirror control calculation unit 310 generates commands to be given to the laser 30 and the galvanometer mirror 40 in accordance with the calculation value (command value) calculated by the main control unit 100 executing the application program 110.
  • the laser/mirror control calculation unit 310 is realized by, for example, a calculation circuit configured using a processor, an ASIC, an FPGA, or the like.
  • the laser/mirror control calculation unit 310 generates a laser control signal 530 and a mirror control signal 540.
  • the output interface circuit 330 outputs a laser control signal 530 to be applied to the laser 30 in accordance with the command generated by the laser/mirror control calculation section 310.
  • the communication interface circuit 340 outputs a mirror control signal 540 to be applied to the galvanometer mirror 40 in accordance with the command generated by the laser/mirror control calculation unit 310.
  • the laser/mirror control calculation section 310, the output interface circuit 330, and the communication interface circuit 340 may be realized by a single ASIC or FPGA.
  • FIG. 3 is a schematic diagram showing an example of the functional configuration of the main control unit 100 of the control system 1 according to the present embodiment.
  • the main control unit 100 executes arithmetic processing to move the irradiation position of the laser 30 along a desired trajectory.
  • main control unit 100 includes a trajectory generation section 130 and a distance command calculation section 132.
  • the trajectory generation unit 130 generates a trajectory for the irradiation position of the laser 30 based on a passing point sequence 134 consisting of one or a plurality of passing points.
  • the distance command calculation unit 132 calculates a distance command value for each period of the synchronization clock 50 in accordance with the generated trajectory.
  • the calculated distance command value includes a distance command value 350 for controlling on/off of the laser 30, and distance command values 352 and 354 for instructing the irradiation position of the laser 30.
  • the distance command value 352 indicates the X-axis irradiation position (the moving distance on the X-axis to the irradiation position), and the distance command value 354 indicates the Y-axis irradiation position (the moving distance on the Y-axis to the irradiation position). show.
  • the calculated distance command value is output to the laser control unit 300.
  • the distance command value 350 is a one-dimensional value, it may be a two-dimensional value.
  • command values indicating the moving distances of the X-axis and Y-axis may be output similarly to the distance command values 352 and 354.
  • the distance command values 352 and 354 are two-dimensional values in total, but like the distance command value 350, they may be one-dimensional values. However, in this case, information indicating the moving direction may be output in addition to the one-dimensional moving distance.
  • FIG. 3 shows a functional configuration related to controlling the irradiation position of the laser 30, but the main control unit 100 also has a configuration related to controlling the workpiece position by the XY stage 20.
  • FIG. 4 is a schematic diagram showing an example of the functional configuration of the laser control unit 300 of the control system 1 according to the present embodiment.
  • the laser control unit 300 generates a command (mirror control signal 540) for the irradiation position of the laser 30 based on the distance command value from the main control unit 100, and calculates (estimates) the current distance by interpolation. , generates an on/off command (laser control signal 530) for the laser 30.
  • the laser control unit 300 (laser/mirror control calculation section 310) includes a register 311, a distance difference calculation section 312, a distance slope calculation section 313, and a distance interpolation section 314. , a comparison section 315 , an interpolation clock control section 317 , an interpolation clock number counter 319 , and a position command generation section 322 .
  • the register 311 acquires a new distance command value 350 from the main control unit 100 at the timing indicated by the synchronized clock 50 (for example, at the falling edge of the synchronized clock 50) and stores it as the latest value, and also stores the immediately previous latest value.
  • This is a storage unit that stores the previous value. More specifically, the register 311 includes a latest value area 311A for storing the latest value of the distance command value 350, and a previous value area 311B for storing the previous value.
  • the register 311 stores at least the most recent two distance command values 350.
  • the distance difference calculation unit 312 calculates the difference (distance difference) between the latest value and the previous value of the distance command value 350 stored in the register 311.
  • the distance slope calculation unit 313 calculates the distance slope based on the latest value and previous value of the distance command value 350 and the number of interpolation clocks 60 within one cycle of the synchronization clock 50 (interpolation clock number). That is, the distance slope calculation unit 313 calculates the distance slope for one interpolation clock by dividing the distance difference by the number of interpolation clocks. As an example, the measured value of the interpolation clock 60 may be used as the number of interpolation clocks.
  • the distance interpolation unit 314 calculates the distance interpolation value by sequentially adding the distance slope to the previous value of the distance command value 350 at the timing indicated by the interpolation clock 60 (for example, at the rising edge of the interpolation clock 60). That is, the distance interpolation unit 314 sequentially adds the value obtained by multiplying the distance slope by the elapsed time to the previous value of the distance command value 350 stored in the register 311, thereby calculating the current distance calculated by interpolation (distance interpolation value).
  • the comparison unit 315 When the calculated distance interpolation value reaches the target distance 316, the comparison unit 315 outputs a command corresponding to the target distance 316 (for example, an instruction to turn on or off the laser 30). In this manner, the comparison unit 315 determines whether it is the timing to turn on or turn off the laser 30 by comparing the distance interpolation value and the target distance 316. The comparison unit 315 outputs an instruction to turn on or turn off the laser 30 as a command.
  • a command corresponding to the target distance 316 for example, an instruction to turn on or off the laser 30.
  • a plurality of target distances 316 may be prepared, such as a target distance 316 for turning on the laser 30 and a target distance 316 for turning off the laser 30. Further, the command generated by the comparator 315 is output as a laser control signal 530 via the output interface circuit 330.
  • the interpolation clock control unit 317 controls generation of the interpolation clock 60. More specifically, the interpolation clock control unit 317 includes an interpolation clock generation unit 318 that generates the interpolation clock 60, and outputs the interpolation clock 60 according to the rising/falling timing of the synchronous clock 50. Start/stop.
  • the interpolation clock number counter 319 measures the period of the synchronization clock 50. More specifically, the interpolation clock number counter 319 measures the number of interpolation clocks 60 generated within one period of the synchronization clock 50. That is, the interpolation clock number counter 319 calculates a denominator for calculating the distance slope from the distance difference calculated by the distance difference calculation unit 312.
  • the position command generation unit 322 generates a command (mirror control signal 540) for specifying the irradiation position of the laser 30 according to a specified trajectory (the trajectory generated by the trajectory generation unit 130 shown in FIG. 3).
  • the position command generation unit 322 generates a command for the laser 30, which is an example of an actuator, based on the distance command values 352 and 354 from the main control unit 100.
  • the position command generation unit 322 may output the irradiation position of the laser 30 as a command. Note that the command generated by the position command generation unit 322 is output as a mirror control signal 540 via the communication interface circuit 340.
  • the position command generation unit 322 may output the mirror control signal 540 after performing the same interpolation process as the distance command value 350 on each of the distance command values 352 and 354. That is, for each of the distance command values 352 and 354, the position command generation unit 322 uses the register 311, the distance difference calculation unit 312, the distance slope calculation unit 313, the distance interpolation unit 314, the comparison unit 315, the interpolation clock control unit 317, and , may have the same configuration as the interpolation clock number counter 319.
  • FIG. 5 is a diagram for explaining distance slope calculation and laser on/off control in the control system 1 according to the present embodiment.
  • distance command value 1 is stored in register 311 at the timing indicated by the falling edge of synchronized clock 50 (time t1, time t3, . . . ).
  • the distance command value 2 stored at time t1 means the distance to be traveled by time t4, which is the timing indicated by the next rising edge of the synchronization clock 50.
  • the distance command value 1 stored immediately before time t1 means the distance to be traveled by time t2, which is the timing indicated by the next rising edge of the synchronization clock 50.
  • the distance command value moves from distance command value 1 to distance command value 2, and by performing linear interpolation, the change in distance (distance interpolation value) within the period can be calculated. Note that the distance interpolation process is reset at each timing (time t2, time t4, . . . ) indicated by the rising edge of the synchronization clock 50.
  • the number of interpolations performed within the period corresponds to the number of interpolation clocks. That is, the number of interpolation clocks indicates the interpolation granularity between adjacent period timings.
  • TBC Table Base Compare
  • FIG. 6 is a time chart showing an example of the operation in the control system 1 according to the present embodiment.
  • FIG. 6 shows an example in which the distance command value increases by 1,000,000 every cycle of the synchronization clock 50.
  • main control unit 100 outputs a distance command value (for example, 1,000,000) ((1) in FIG. 6).
  • a distance command value for example, 1,000,000
  • the laser control unit 300 may access the distance command value output by the main control unit 100 via the internal bus 114, or the main control unit 100 may input the distance command value to the internal register of the laser control unit 300. You may also write a value.
  • the laser control unit 300 uses the fall of the synchronization clock 50 as a trigger to store the distance command value in the latest value area 311A of the register 311 ((2) in FIG. 6). Prior to storing in the latest value area 311A, the laser control unit 300 copies the distance command value stored in the latest value area 311A to the previous value area 311B ((3) in FIG. 6). Further, the laser control unit 300 calculates the distance slope based on the latest value and previous value of the distance command value and the number of interpolation clocks ((4) in FIG. 6).
  • the laser control unit 300 sets the previously calculated distance slope for interpolation processing ((5) in FIG. 6), and sets the previous value of the distance command value to the distance interpolation value. is set as the initial value ((6) in FIG. 6). Then, the laser control unit 300 sequentially updates the distance interpolation value by incrementing the distance interpolation value by the distance slope every interpolation clock.
  • the laser control unit 300 measures the number of interpolation clocks using the rise of the synchronization clock 50 as a trigger ((7) in FIG. 6). Further, the number of interpolation clocks is sequentially updated at the rising edge of the synchronization clock 50.
  • jitter may occur in the synchronization clock 50. Jitter occurring in the synchronization clock 50 may affect the calculation of the distance interpolation value. The reason why the calculation of the distance interpolation value is affected will be explained below.
  • the period of the synchronization clock 50 is shortened due to jitter in the period from time t14 to time t16 ((8) in FIG. 6).
  • the original period of the synchronization clock 50 is 50,000 [ns], and is shortened by 10 [ns].
  • the period of the interpolation clock 60 is 100 [ns]
  • the number of interpolation clocks measured by the laser control unit 300 is not the original 500 but 499 ((9) in FIG. 6).
  • the distance slope calculated by the laser control unit 300 is as follows ((10) in FIG. 6).
  • the laser control unit 300 sets the previously calculated distance slope for interpolation processing ((11) in FIG. 6), and sets the previous value of the distance command value to the distance interpolation value. is set as the initial value ((12) in FIG. 6).
  • the distance interpolation value will increase faster than originally. As a result, in the period from time t18 to time t20, the distance interpolation value shows a value larger than the original value. Then, the target distance is reached earlier, and the timing at which the laser is turned on becomes earlier ((13) in FIG. 6).
  • the interpolation clock number counter 319 measures the number of interpolation clocks so that an error does not occur in the distance interpolation value even if jitter occurs in the synchronization clock 50. The measurement of the number of interpolated clocks by the interpolated clock number counter 319 will be described in detail below.
  • FIG. 7 is a diagram for explaining measurement of the number of interpolation clocks in the control system 1 according to the present embodiment.
  • the period of synchronization clock 50 is set to an integral multiple of the period of interpolation clock 60.
  • the period of the synchronization clock 50 is 50,000 [ns] (frequency is 20 [kHz]), and the period of the interpolation clock 60 is 100 [ns].
  • the period of the interpolation clock 60 may be set arbitrarily, but is preferably determined in consideration of the resolution of on/off control of the laser 30, etc.
  • the period of the synchronization clock 50 may be any value as long as it is an integral multiple of the period of the interpolation clock 60.
  • the period of the synchronization clock 50 may be set arbitrarily by the user.
  • the period of the synchronization clock 50 may be set in the range of 10,000 [ns] (frequency is 100 [kHz]) to 100,000 [ns] (frequency is 10 [kHz]).
  • the number of interpolation clocks 60 included in one cycle of the synchronization clock 50 may be set.
  • the period of the interpolation clock 60 is determined by dividing the period of the synchronization clock 50 by the set number of interpolation clocks 60. For example, by setting the period of the synchronization clock 50 to 50,000 [ns] and then setting the number of interpolation clocks 60 to 500, the period of the interpolation clock 60 can be determined to be 100 [ns].
  • the duty ratio of the interpolated clock 60 is set as low as possible so that jitter that may occur in the synchronized clock 50 can be absorbed.
  • the interpolation clock control unit 317 starts outputting the interpolation clock 60 using the rising edge of the synchronization clock 50 as a trigger. Thereafter, when the number of interpolation clocks 60 generated within one cycle (from one rising edge to the next rising edge) of the synchronous clock 50 reaches a preset setting value (interpolation clock setting number), the interpolation clock control unit 317 synchronizes. The output of the interpolation clock 60 is stopped until the next cycle of the clock 50 (the rising edge of the synchronous clock 50) arrives.
  • the interpolation clock control unit 317 adjusts the period of the interpolation clock output at the end of each period (the interpolation clock that reaches the set number of interpolation clocks in each period) by ⁇ t corresponding to the jitter occurring in the synchronization clock 50.
  • the period of the interpolation clock 60 output last is determined depending on the timing of the next rise of the synchronization clock 50. That is, the interpolation clock control unit 317 starts generating the interpolation clock 60 at the timing indicated by the synchronization clock 50 (for example, at the rising edge of the synchronization clock 50). Therefore, the period of the interpolation clock 60 may be automatically adjusted according to the rising timing of the synchronization clock 50.
  • output of interpolation clock 60 is started using the rising edge of synchronization clock 50 as a trigger (times t31, t33, t35). Further, the interpolation clock number counter 319 resets the measured value (interpolation clock number) using the rising edge of the synchronization clock 50 as a trigger, and sequentially increments the measured value according to the number of output interpolation clocks 60.
  • the distance slope is calculated using the rise of the synchronization clock 50 as a trigger, and the calculation of the distance interpolation value is started based on the calculated distance slope using the rise of the synchronization clock 50 as a trigger. Then, when the calculated distance interpolation value reaches the target distance 316, a command to turn the laser on or off is output.
  • the interpolation clock number counter 319 determines whether the number of interpolation clocks 60 output from the immediately preceding rising edge of the synchronous clock 50 has reached a preset number of interpolation clocks, and determines whether the number of interpolation clocks 60 has reached the preset number of interpolation clocks. If not, the interpolation clock generator 318 continues to output the interpolation clock 60.
  • the interpolation clock control section 317 resets the synchronization clock 50 and causes the interpolation clock generation section 318 to start outputting the interpolation clock 60.
  • the interpolation clock control section 317 resets the synchronous clock 50 and starts the interpolation clock generation section 318 to output the interpolation clock 60.
  • the period of the interpolation clock 60 output immediately before time t35 is adjusted from the original 100 [ns] to 90 [ns].
  • FIG. 9 is a time chart showing an operation example when the period of the synchronization clock 50 becomes longer in the control system 1 according to the present embodiment.
  • output of interpolation clock 60 is started using the rising edge of synchronization clock 50 as a trigger (times t41, t43, t45). Further, the interpolation clock number counter 319 is reset using the rise of the synchronization clock 50 as a trigger, and is sequentially incremented according to the number of interpolation clocks 60 output.
  • the distance slope is calculated using the rise of the synchronization clock 50 as a trigger, and the calculation of the distance interpolation value is started based on the calculated distance slope using the rise of the synchronization clock 50 as a trigger. Then, when the calculated distance interpolation value reaches the target distance 316, a command to turn the laser on or off is output.
  • the interpolation clock control unit 317 determines whether the number of interpolation clocks 60 output from the immediately previous rising edge of the synchronization clock 50 has reached a preset number of interpolation clocks, and determines whether the number of interpolation clocks 60 output from the immediately previous rising edge of the synchronization clock 50 has reached the set number of interpolation clocks. If not, the interpolation clock generator 318 continues to output the interpolation clock 60.
  • the interpolation clock control section 317 resets the synchronization clock 50 and causes the interpolation clock generation section 318 to start outputting the interpolation clock 60.
  • the interpolation clock control section 317 resets the synchronization clock 50 and causes the interpolation clock generation section 318 to start outputting the interpolation clock 60.
  • the period of the interpolation clock 60 output immediately before time t45 is adjusted from the original 100 [ns] to 110 [ns].
  • FIG. 10 is a flowchart showing the processing procedure of the main process executed by the laser control unit 300 of the control system 1 according to the present embodiment.
  • the main process is a process for controlling the laser 30 and galvano mirror 40, which are actuators.
  • laser control unit 300 determines whether a falling edge of synchronous clock 50 has occurred (step S2).
  • the laser control unit 300 acquires a new distance command value and stores it as the latest value, and also stores the immediately previous latest value as the previous value. More specifically, the laser control unit 300 copies the latest value of the currently stored distance command value to the previous value (step S4), and stores the distance command value output by the main control unit 100 as the latest value. (Step S6).
  • the laser control unit 300 acquires the most recently measured number of interpolation clocks (step S8), and calculates the distance slope based on the latest value and previous value of the distance command value and the number of interpolation clocks (step S8). S10).
  • the most recently measured interpolation clock number means the value stored in the interpolation clock number counter 319 at the timing of step S8.
  • step S2 If the falling edge of the synchronous clock 50 has not occurred (NO in step S2), the processes in steps S4 to S10 are skipped.
  • the laser control unit 300 determines whether a rising edge of the synchronization clock 50 has occurred (step S12).
  • a command (mirror control signal 540) for the irradiation position of the laser 30 is generated based on the latest distance command value (step S14).
  • the laser control unit 300 sets the previous value of the distance command value as the initial value of the distance interpolation value (step S16), and sets the most recently calculated distance slope for interpolation processing (step S18).
  • step S12 If the rising edge of the synchronous clock 50 has not occurred (NO in step S12), the processes of steps S16 and S18 are skipped.
  • the laser control unit 300 determines whether a rising edge of the synchronous clock 50 has occurred (step S20).
  • the laser control unit 300 adds the set distance inclination to the current distance interpolation value to update the distance interpolation value (step S22). That is, the laser control unit 300 calculates the distance interpolation value by sequentially adding the distance slope to the previous value of the distance command value at a predetermined timing indicated by the synchronization clock 50.
  • the laser control unit 300 determines whether the updated distance interpolation value has reached any target distance 316 (step S24). If the updated distance interpolation value has reached any target distance 316 (YES in step S24), the laser control unit 300 performs the process (turning on or off the laser 30) corresponding to the reached target distance 316. A command for execution is output (step S26). In this way, when the distance interpolation value reaches the target distance 316, the laser control unit 300 outputs a command corresponding to the target distance 316. Then, the processing from step S2 onwards is repeated.
  • step S26 If the updated distance interpolation value has not reached any target distance (NO in step S24), the process of step S26 is skipped.
  • step S20 If the rising edge of the synchronization clock 50 has not occurred (NO in step S20), the laser control unit 300 repeats the processing from step S2 onwards.
  • FIG. 11 is a flowchart showing the processing procedure of the interpolation clock number measurement process executed by the laser control unit 300 of the control system 1 according to the present embodiment.
  • the laser control unit 300 measures the number of interpolation clocks 60 generated within one cycle of the synchronization clock 50.
  • the process shown in FIG. 11 may be executed in parallel with the main process shown in FIG. 10, or may be executed integrally with the main process.
  • laser control unit 300 determines whether a rising edge of synchronous clock 50 has occurred (step S100). When the synchronization clock 50 rises (YES in step S100), the laser control unit 300 resets the interpolation clock number counter 319 (step S102) and starts outputting the interpolation clock 60 (step S104).
  • step S100 If the rising edge of the synchronous clock 50 has not occurred (NO in step S100), the processes of steps S102 and S104 are skipped.
  • the laser control unit 300 determines whether a rising edge of the interpolation clock 60 has occurred (step S106). If the interpolation clock 60 does not rise (NO in step S106), the processes from step S100 onwards are repeated.
  • the laser control unit 300 increments the interpolation clock number counter 319 (step S108).
  • the laser control unit 300 determines whether the value of the interpolation clock number counter 319 after incrementing has reached the set number of interpolation clocks (step S110). If the value of the interpolation clock number counter 319 after incrementing has reached the set number of interpolation clocks (YES in step S110), the laser control unit 300 stops outputting the interpolation clock 60 (step S112). In this way, when the number of interpolation clocks 60 generated within one cycle of the synchronization clock 50 reaches a predetermined setting value, the laser control unit 300 controls the interpolation clocks 60 until the next cycle of the synchronization clock 50 arrives. Stop outputting. Then, the laser control unit 300 waits until the synchronization clock 50 rises (step S114). When the synchronization clock 50 rises, the processes from step S102 onwards are repeated.
  • step S110 If the value of the interpolation clock number counter 319 after incrementing has not reached the set number of interpolation clocks (NO in step S110), the processes from step S100 onward are repeated.
  • FIG. 12 is a schematic diagram showing an example of a user interface screen 450 displayed on the operation display device 400 of the control system 1 according to the present embodiment.
  • user interface screen 450 accepts settings necessary for processing as described above.
  • the user interface screen 450 includes an input section 452 that accepts settings for the cycle of the synchronized clock 50, a setting candidate list display section 454, a check box 456, a display section 458 that indicates the cycle of the interpolation clock 60, and a display that indicates the number of times of interpolation. section 460 and a settings reflection button 462.
  • the operation display device 400 displays a set of the settable cycle of the interpolation clock 60 and the number of times of interpolation on the setting candidate list display unit 454 according to the cycle of the synchronization clock 50 input to the input unit 452.
  • the set of the period of the interpolation clock 60 and the number of times of interpolation may be displayed with reference to settings that the main control unit 100 has in advance.
  • the user checks a check box 456 corresponding to a desired set of the cycle of the interpolation clock 60 and the number of times of interpolation displayed on the setting candidate list display section 454.
  • the operation display device 400 displays the checked set of the period of the interpolation clock 60 and the number of times of interpolation on the display section 458 and the display section 460.
  • the user should consider the trade-off between tolerance to jitter that may occur in the synchronized clock 50 and accuracy of on/off control of the laser 30, and set the number of interpolations to be the maximum in the set cycle of the synchronized clock 50. Then, the period of the interpolation clock 60 is determined.
  • the minimum period of the interpolation clock 60 is 50 [ns].
  • the period of the synchronization clock 50 is 1 [ms] (the frequency is 1 [kHz])
  • the minimum period of the interpolation clock 60 is 100 [ns].
  • the control device 10 provides a user interface for accepting settings for the period of the synchronization clock 50 and the period of the interpolation clock 60.
  • the number of interpolation clocks 60 within one period of the synchronization clock 50 is , 500.
  • a control device (10) that controls the actuator (30, 40), a storage unit (311) that acquires a new distance command value and stores it as the latest value at a first timing indicated by a first clock (50), and stores the immediately previous latest value as the previous value; a second clock generator (318) that generates a second clock (60); a first calculation unit (313) that calculates a distance slope based on the latest value and the previous value of the distance command value and the number of the second clocks within one cycle of the first clock; a second calculation unit (314) that calculates a distance interpolation value by sequentially adding the distance slope to the previous value of the distance command value at a second timing indicated by the second clock; a first command generation unit (315) that outputs a first command (530) corresponding to the target distance when the distance interpolated value reaches the target distance (316); A clock that stops outputting the second clock when the number of the second clocks generated within one cycle of the first clock reaches a predetermined set value until the next cycle of the
  • control device according to any one of configurations 1 to 5, further comprising a second command generation unit (322) that generates a second command (540) for specifying a position according to a specified trajectory.
  • a second command generation unit 322 that generates a second command (540) for specifying a position according to a specified trajectory.
  • the control device includes: a storage unit (311) that acquires a new distance command value and stores it as the latest value at a first timing indicated by a first clock (50), and stores the immediately previous latest value as the previous value; a second clock generator (318) that generates a second clock (60); a first calculation unit (313) that calculates a distance slope based on the latest value and the previous value of the distance command value and the number of the second clocks within one cycle of the first clock; a second calculation unit (314) that calculates a distance interpolation value by sequentially adding the distance slope to the previous value of the distance command value at a second timing indicated by the second clock; a command generation unit (315) that outputs a command corresponding to the target distance when the distance interpolation value reaches the target distance (316); A clock that stops outputting the second clock when the number of the second clocks generated within one cycle of the first clock reaches a predetermined set value until the next
  • a method of controlling an actuator (30, 40), comprising: At a first timing indicated by a first clock (50), a step (S4, S6) of acquiring a new distance command value and storing it as the latest value, and storing the immediately preceding latest value as the previous value; a step (S10) of calculating a distance slope 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 interpolation value by sequentially adding the distance slope to the previous value of the distance command value at a second timing indicated by the second clock; When the distance interpolation value reaches a target distance, outputting a command corresponding to the target distance (S24, S26); When the number of the second clocks generated within one cycle of the first clock reaches a predetermined setting value, stopping output of the second clock until the next cycle of the first clock arrives. (S112).
  • control system 1 by interpolating the distance command value that is updated at the cycle of the synchronization clock at a cycle shorter than the synchronization clock, it is possible to determine whether or not the target distance has been reached with higher precision. It can be carried out.
  • the calculated distance interpolation value is not affected by jitter. can. This allows more precise control to be executed stably.

Abstract

アクチュエータを制御する制御装置は、第1クロックが示す第1タイミングで、新たな距離指令値を取得して最新値として格納するとともに、直前の最新値を前回値として格納する記憶部と、距離指令値の最新値および前回値と、第1クロックの1周期内の第2クロックの数とに基づいて、距離傾きを算出する第1算出部と、第2クロックが示す第2タイミングで、距離指令値の前回値に距離傾きを順次加算することで、距離補間値を算出する第2算出部と、距離補間値が目標距離に到達すると当該目標距離に対応する指令を出力する指令生成部と、第1クロックの1周期内で発生した第2クロックの数が予め定められた設定値に到達すると、第1クロックの次の周期が到来するまで第2クロックの出力を停止するクロック制御部とを含む。

Description

制御装置、制御システムおよび制御方法
 本発明は、アクチュエータを制御する制御装置、当該制御装置を含む制御システム、ならびに、アクチュエータの制御方法に関する。
 従来より、制御コードを用いた加工プログラムを用いてレーザ加工が行われている。例えば、特開平02-063692号公報(特許文献1)は、加工条件がパラメータとして定義されてレーザ発振器の出力や移動速度等を制御する技術を開示する。
特開平02-063692号公報
 本発明は、より精緻な制御が可能な制御装置などを提供するものである。
 本発明の一例に従えば、アクチュエータを制御する制御装置が提供される。制御装置は、第1クロックが示す第1タイミングで、新たな距離指令値を取得して最新値として格納するとともに、直前の最新値を前回値として格納する記憶部と、第2クロックを発生する第2クロック発生部と、記距離指令値の最新値および前回値と、第1クロックの1周期内の第2クロックの数とに基づいて、距離傾きを算出する第1算出部と、第2クロックが示す第2タイミングで、距離指令値の前回値に距離傾きを順次加算することで、距離補間値を算出する第2算出部と、距離補間値が目標距離に到達すると当該目標距離に対応する第1指令を出力する第1指令生成部と、第1クロックの1周期内で発生した第2クロックの数が予め定められた設定値に到達すると、第1クロックの次の周期が到来するまで第2クロックの出力を停止するクロック制御部とを含む。
 この構成によれば、第2クロックが示す第2タイミングで距離補間値を順次算出することで、目標距離への到達の判断をより精緻に行うことができるとともに、第1クロックの1周期内で発生した第2クロックの数を設定値に制限するので、第1クロックにジッタが生じた場合であっても、距離補間値の算出への影響を抑制できる。
 制御装置は、第1クロックの1周期内で発生した第2クロックの数を計測する計測部をさらに含んでいてもよい。この構成によれば、第2クロックの数を計測するので、状況に応じて距離補間値を適切に算出できる。
 第1クロックの1周期内で発生した第2クロックの数は、予め定められた固定値であってもよい。この構成によれば、第2クロックの数が予め定められた固定値であるので、動作検証をより容易に行うことができる。
 第1クロックの周期は、第2クロックの周期の整数倍に設定されてもよい。この構成によれば、第1クロックの周期内において、距離補間値を均等なタイミングで算出できる。
 クロック制御部は、第1クロックが示す第3タイミングで、第2クロックの発生を開始するようにしてもよい。この構成によれば、第1クロックの周期がジッタにより長くなった場合であっても、次の周期では、予め定められたタイミングで第2クロックの発生を開始できる。
 制御装置は、指定された軌跡に従って、位置を指定するための第2指令を生成する第2指令生成部をさらに含んでいてもよい。この構成によれば、指定された軌跡に従って、アクチュエータなどの位置を制御できる。
 第1指令生成部は、オンまたはオフの指示を指令として出力するようにしてもよい。この構成によれば、目標距離に到達するタイミングで、アクチュエータのオンまたはオフを制御できる。
 制御装置は、第1クロックの周期および第2クロックの周期の設定を受け付けるためのユーザインターフェイスを提供するようにしてもよい。この構成によれば、ユーザは、ジッタに対する耐性および制御の精度を考慮して、第1クロックの周期および第2クロックの周期を設定できる。
 本発明の別の一例に従う制御システムは、アクチュエータと、アクチュエータを制御する制御装置とを含む。制御装置は、第1クロックが示す第1タイミングで、新たな距離指令値を取得して最新値として格納するとともに、直前の最新値を前回値として格納する記憶部と、第2クロックを発生する第2クロック発生部と、距離指令値の最新値および前回値と、第1クロックの1周期内の第2クロックの数とに基づいて、距離傾きを算出する第1算出部と、第2クロックが示す第2タイミングで、距離指令値の前回値に距離傾きを順次加算することで、距離補間値を算出する第2算出部と、距離補間値が目標距離に到達すると当該目標距離に対応する指令を出力する指令生成部と、第1クロックの1周期内で発生した第2クロックの数が予め定められた設定値に到達すると、第1クロックの次の周期が到来するまで第2クロックの出力を停止するクロック制御部とを含む。
 本発明のさらに別の一例に従えば、アクチュエータの制御方法が提供される。制御方法は、第1クロックが示す第1タイミングで、新たな距離指令値を取得して最新値として格納するとともに、直前の最新値を前回値として格納するステップと、距離指令値の最新値および前回値と、前記第1クロックの1周期内の第2クロックの数とに基づいて、距離傾きを算出するステップと、第2クロックが示す第2タイミングで、距離指令値の前回値に距離傾きを順次加算することで、距離補間値を算出するステップと、距離補間値が目標距離に到達すると当該目標距離に対応する指令を出力するステップと、第1クロックの1周期内で発生した第2クロックの数が予め定められた設定値に到達すると、第1クロックの次の周期が到来するまで第2クロックの出力を停止するステップとを含む。
 本発明によれば、より精緻な制御が可能な制御装置などを実現できる。
本実施の形態に従う制御システムの構成例を示す模式図である。 本実施の形態に従う制御システムの主要なハードウェア構成例を示す模式図である。 本実施の形態に従う制御システムの主制御ユニットの機能構成例を示す模式図である。 本実施の形態に従う制御システムのレーザ制御ユニットの機能構成例を示す模式図である。 本実施の形態に従う制御システムにおける距離傾きの算出およびレーザをオン/オフ制御を説明するための図である。 本実施の形態に従う制御システムにおける動作例を示すタイムチャートである。 本実施の形態に従う制御システムにおける補間クロック数の計測を説明するための図である。 本実施の形態に従う制御システムにおいて同期クロックの周期が短くなる場合の動作例を示すタイムチャートである。 本実施の形態に従う制御システムにおいて同期クロックの周期が長くなる場合の動作例を示すタイムチャートである。 本実施の形態に従う制御システムのレーザ制御ユニットが実行するメイン処理の処理手順を示すフローチャートである。 本実施の形態に従う制御システムのレーザ制御ユニットが実行する補間クロック数の計測処理の処理手順を示すフローチャートである。 本実施の形態に従う制御システムの操作表示装置に表示されるユーザインターフェイス画面の一例を示す模式図である。
 本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
 <A.適用例>
 まず、本発明が適用される場面の一例について説明する。
 図1は、本実施の形態に従う制御システム1の構成例を示す模式図である。図1には、典型例として、レーザ加工システムの例を示すが、本発明の適用先は、レーザ加工システムに限定されることなく、任意のアクチュエータを含むシステムに適用可能である。
 制御システム1は、XYステージ20上に配置されたワーク4に対して、穴あけ、切断、マーキングなどのレーザ加工を行う。より具体的には、制御システム1は、制御装置10と、XYステージ20と、レーザ30と、ガルバノミラー40とを含む。XYステージ20、レーザ30およびガルバノミラー40は、制御装置10が制御するアクチュエータの一例である。
 ワーク4に対するレーザ加工は、XYステージ20によるワーク位置の調整と、レーザ30が発生するレーザ光をガルバノミラー40による照射位置の調整とを組み合わせる。XYステージ20によるワーク4の位置調整については、変位量が相対的に大きく、かつ、応答時間が相対的に長い。これに対して、ガルバノミラー40による照射位置の調整については、変位量が相対的に小さく、かつ、応答時間が相対的に短い。
 制御装置10は、主制御ユニット100と、ステージ制御ユニット200と、レーザ制御ユニット300とを含む。
 主制御ユニット100は、アプリケーションプログラム110(図2参照)を実行する演算部に相当する。アプリケーションプログラム110は、制御対象の機構およびワーク4などに応じて任意に作成される。主制御ユニット100がアプリケーションプログラム110を実行して得られる実行結果は、ステージ制御ユニット200およびレーザ制御ユニット300における制御信号の生成に用いられる。
 制御装置10には、ユーザ操作に応じて、制御装置10に対する指令を出力するとともに、制御装置10での演算結果を出力する操作表示装置400が接続されていてもよい。
 XYステージ20は、ワーク4が配置されるプレート22と、プレート22とを駆動するサーボモータ24-1およびサーボモータ24-2(以下、「サーボモータ24」と総称することもある。)とを含む。図1に示す例では、サーボモータ24-1がプレート22をX軸方向に変位させ、サーボモータ24-2がプレート22をY軸方向に変位させる。
 サーボモータ24は、制御装置10により制御される。より具体的には、ステージ制御ユニット200は、制御線51を介して、サーボモータ24-1,24-2を駆動するサーボドライバ26-1,26-2(図2参照)(以下、「サーボドライバ26」と総称することもある。)に対してサーボ指令信号510を出力する。また、ステージ制御ユニット200は、制御線52を介して、サーボドライバ26-1,26-2にそれぞれ接続されたエンコーダ28-1,28-2(以下、「エンコーダ28」と総称することもある。)からエンコーダ出力情報520を取得する。
 レーザ制御ユニット300は、制御線53を介して、レーザ30と接続されており、レーザ30に対して、オン/オフを指示するレーザ制御信号530を出力する。また、レーザ制御ユニット300は、通信線54を介して、ガルバノミラー40と接続されており、ガルバノミラー40に対して、照射位置を指示するミラー制御信号540を出力する。ガルバノミラー40は、X軸走査ミラー43と、Y軸走査ミラー45と、レンズ47とを含む。レーザ30から照射された光は、レンズ47、Y軸走査ミラー45、X軸走査ミラー43の順に伝搬して、XYステージ20上に投射される。
 X軸走査ミラー43は、X軸走査モータ42によって反射面の角度を調整され、Y軸走査ミラー45は、Y軸走査モータ44によって反射面の角度を調整される。レンズ47は、Z軸走査モータ46によって、レーザ30との相対距離を調整される。
 <B.制御システム1のハードウェア構成例>
 次に、本実施の形態に従う制御システム1のハードウェア構成例について説明する。
 図2は、本実施の形態に従う制御システム1の主要なハードウェア構成例を示す模式図である。上述したように、制御装置10は、主制御ユニット100と、ステージ制御ユニット200と、レーザ制御ユニット300とを含む。
 主制御ユニット100は、主たるコンポーネントとして、プロセッサ102と、メインメモリ104と、ストレージ106と、バスコントローラ112とを含む。
 ストレージ106には、SSD(Solid State Disk)やフレッシュメモリなどで構成され、例えば、基本的なプログラム実行環境を提供するためのシステムプログラム108と、ワーク4に応じて任意に作成されるアプリケーションプログラム110とが格納される。
 プロセッサ102は、典型的には、CPU(Central Processing Unit)やMPU(Micro-Processing Unit)などで構成され、ストレージ106に格納されたシステムプログラム108およびアプリケーションプログラム110を読み出して、メインメモリ104に展開して実行することで、制御システム1の全体的な制御を実現する。
 主制御ユニット100は、内部バス114を介して、ステージ制御ユニット200およびレーザ制御ユニット300と電気的に接続されている。バスコントローラ112は、内部バス114によるデータ通信を仲介する。
 なお、プロセッサ102がプログラムを実行することで必要な処理が提供される構成例を示したが、これらの提供される処理の一部または全部を、専用のハードウェア回路(例えば、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装してもよい。
 ステージ制御ユニット200は、サーボドライバ26-1,26-2に与えられるサーボ指令信号510を生成および出力する。より具体的には、ステージ制御ユニット200は、ステージ制御演算部210と、サーボインターフェイス回路230とを含む。
 ステージ制御演算部210は、主制御ユニット100がアプリケーションプログラム110を実行することで算出される演算値(指令値)に従って、サーボドライバ26-1,26-2に与えるべき指令を生成する。ステージ制御演算部210は、例えば、プロセッサ、ASIC、FPGAなどを用いて構成される演算回路によって実現される。
 サーボインターフェイス回路230は、主制御ユニット100からの指令に従って、サーボ指令信号510を出力する。サーボ指令信号510は、サーボドライバ26に対する制御毎の変位量、速度、角速度などの情報を含む。
 また、サーボインターフェイス回路230は、エンコーダ28の各々からエンコーダ出力情報520を取得する。エンコーダ出力情報520は、エンコーダ28が示す位置データを含む。なお、エンコーダ出力情報520は、周期的に送信されるフレームで伝送されてもよい。
 ステージ制御演算部210は、エンコーダ出力情報520に基づいて、サーボドライバ26の状態値(位置、速度、加速度など)を算出し、主制御ユニット100に出力する。ステージ制御演算部210は、ステージ制御演算部210は、主制御ユニット100、ステージ制御ユニット200およびレーザ制御ユニット300の間で同期を取るための同期クロック50を発生するクロック発生部220を含む。
 なお、ステージ制御演算部210およびサーボインターフェイス回路230を単一のASICまたはFPGAで実現してもよい。
 レーザ制御ユニット300は、レーザ30に与えられるレーザ制御信号530、および、ガルバノミラー40に与えられるレーザ制御信号530を生成および出力する。より具体的には、レーザ制御ユニット300は、レーザ/ミラー制御演算部310と、出力インターフェイス回路330と、通信インターフェイス回路340とを含む。
 レーザ/ミラー制御演算部310は、主制御ユニット100がアプリケーションプログラム110を実行することで算出される演算値(指令値)に従って、レーザ30およびガルバノミラー40に与えるべき指令を生成する。レーザ/ミラー制御演算部310は、例えば、プロセッサ、ASIC、FPGAなどを用いて構成される演算回路によって実現される。
 レーザ/ミラー制御演算部310は、レーザ制御信号530およびミラー制御信号540を生成する。
 出力インターフェイス回路330は、レーザ/ミラー制御演算部310によって生成された指令に従って、レーザ30に与えるレーザ制御信号530を出力する。
 通信インターフェイス回路340は、レーザ/ミラー制御演算部310によって生成された指令に従って、ガルバノミラー40に与えるミラー制御信号540を出力する。
 なお、レーザ/ミラー制御演算部310、出力インターフェイス回路330および通信インターフェイス回路340を単一のASICまたはFPGAで実現してもよい。
 <C.レーザのオン/オフ制御>
 次に、本実施の形態に従う制御システム1がレーザ30に対するオン/オフを指示するレーザ制御信号530を出力する処理について説明する。
 図3は、本実施の形態に従う制御システム1の主制御ユニット100の機能構成例を示す模式図である。主制御ユニット100は、レーザ30の照射位置を目的の軌跡に沿って移動させるための演算処理を実行する。
 より具体的には、図3を参照して、主制御ユニット100は、軌跡生成部130と、距離指令算出部132とを含む。
 軌跡生成部130は、1または複数の通過ポイントからなる通過ポイント列134に基づいて、レーザ30の照射位置についての軌跡を生成する。
 距離指令算出部132は、生成された軌跡に対応して、同期クロック50の周期毎に距離指令値を算出する。算出される距離指令値は、レーザ30のオン/オフなどを制御するための距離指令値350と、レーザ30の照射位置を指示する距離指令値352および354とを含む。距離指令値352は、X軸の照射位置(照射位置までのX軸上の移動距離)を示し、距離指令値354は、Y軸の照射位置(照射位置までのY軸上の移動距離)を示す。算出された距離指令値は、レーザ制御ユニット300へ出力される。
 距離指令値350は、1次元の値となっているが、2次元の値であってもよい。2次元の値を用いる場合には、距離指令値352および354と同様に、例えば、X軸およびY軸それぞれの移動距離を示す指令値が出力されてもよい。
 一方、距離指令値352および354は、合わせて2次元の値となっているが、距離指令値350と同様に、1次元の値としてもよい。但し、この場合には、1次元の移動距離に加えて、移動方向を示す情報を出力するようにしてもよい。
 また、説明の便宜上、図3には、レーザ30の照射位置の制御に関する機能構成について示すが、主制御ユニット100は、XYステージ20によるワーク位置の制御に関する構成も有している。
 図4は、本実施の形態に従う制御システム1のレーザ制御ユニット300の機能構成例を示す模式図である。レーザ制御ユニット300は、主制御ユニット100からの距離指令値に基づいて、レーザ30の照射位置の指令(ミラー制御信号540)を生成するとともに、現在の距離を補間により算出(推定)することで、レーザ30のオン/オフの指令(レーザ制御信号530)を生成する。
 より具体的には、図4を参照して、レーザ制御ユニット300(レーザ/ミラー制御演算部310)は、レジスタ311と、距離差分算出部312と、距離傾き算出部313と、距離補間部314と、比較部315と、補間クロック制御部317と補間クロック数カウンタ319と、位置指令生成部322とを含む。
 レジスタ311は、同期クロック50が示すタイミング(例えば、同期クロック50の立ち下がり)で、主制御ユニット100からの新たな距離指令値350を取得して最新値として格納するとともに、直前の最新値を前回値として格納する記憶部である。より具体的には、レジスタ311は、距離指令値350の最新値を格納するための最新値領域311Aと、前回値を格納するための前回値領域311Bとを含む。新たな距離指令値350が最新値領域311Aに格納される際には、最新値領域311Aに格納されていた値が前回値領域311Bに書き込まれる。すなわち、レジスタ311は、少なくとも直近2回分の距離指令値350を格納する。
 距離差分算出部312は、レジスタ311に格納されている距離指令値350の最新値と前回値との差分(距離差分)を算出する。
 距離傾き算出部313は、距離指令値350の最新値および前回値と、同期クロック50の1周期内の補間クロック60の数(補間クロック数)とに基づいて、距離傾きを算出する。すなわち、距離傾き算出部313は、距離差分を補間クロック数で除算することで、補間クロック1回分の距離傾きを算出する。一例として、補間クロック数としては、補間クロック60の計測値が用いられてもよい。
 距離補間部314は、補間クロック60が示すタイミング(例えば、補間クロック60の立ち上がり)で、距離指令値350の前回値に距離傾きを順次加算することで、距離補間値を算出する。すなわち、距離補間部314は、距離傾きに経過時間を乗じた値をレジスタ311に格納されている距離指令値350の前回値に順次加算することで、補間により算出された現在の距離(距離補間値)を算出する。
 比較部315は、算出された距離補間値が目標距離316に到達すると目標距離316に対応する指令(例えば、レーザ30のオンまたはオフの指示)を出力する。このように、比較部315は、距離補間値と目標距離316とを比較することで、レーザ30をオンまたはオフするタイミングであるか否かを判断する。比較部315は、レーザ30のオンまたはオフの指示を指令として出力する。
 なお、レーザ30をオンするための目標距離316、および、レーザ30をオフするための目標距離316といったように、複数の目標距離316が用意されてもよい。また、比較部315が生成した指令は、出力インターフェイス回路330を介して、レーザ制御信号530として出力される。
 補間クロック制御部317は、補間クロック60の発生を制御する。より具体的には、補間クロック制御部317は、補間クロック60を発生する補間クロック発生部318を有しており、同期クロック50の立ち上がり/立ち下がりなどのタイミングに応じて、補間クロック60の出力を開始/停止する。
 補間クロック数カウンタ319は、同期クロック50の周期を計測する。より具体的には、補間クロック数カウンタ319は、同期クロック50の1周期内で発生した補間クロック60の数を計測する。すなわち、補間クロック数カウンタ319は、距離差分算出部312が算出する距離差分から距離傾きを算出するための分母を算出する。
 位置指令生成部322は、指定された軌跡(図3に示す軌跡生成部130が生成する軌跡)に従って、レーザ30の照射位置を指定するための指令(ミラー制御信号540)を生成する。位置指令生成部322は、主制御ユニット100からの距離指令値352および354に基づいて、アクチュエータの一例であるレーザ30に対する指令を生成する。位置指令生成部322は、レーザ30の照射位置を指令として出力するようにしてもよい。なお、位置指令生成部322が生成した指令は、通信インターフェイス回路340を介して、ミラー制御信号540として出力される。
 なお、位置指令生成部322は、距離指令値352および354の各々について、距離指令値350と同様の補間処理を行った上で、ミラー制御信号540を出力するようにしてもよい。すなわち、位置指令生成部322は、距離指令値352および354の各々について、レジスタ311、距離差分算出部312、距離傾き算出部313、距離補間部314、比較部315、補間クロック制御部317、および、補間クロック数カウンタ319と同様の構成を有していてもよい。
 図5は、本実施の形態に従う制御システム1における距離傾きの算出およびレーザをオン/オフ制御を説明するための図である。
 図5を参照して、同期クロック50の立ち下がりが示すタイミング(時刻t1,時刻t3,…)で距離指令値1がレジスタ311に格納される。例えば、時刻t1において格納される距離指令値2は、同期クロック50の2つ先の立ち上がりが示すタイミングである時刻t4までに移動すべき距離を意味する。時刻t1の直前に格納されていた距離指令値1は、同期クロック50の次の先の立ち上がりが示すタイミングである時刻t2までに移動すべき距離を意味する。
 時刻t2から時刻t4までの期間において、距離指令値1から距離指令値2まで移動するとした上で、線形補間することで、当該期間内の距離の変化(距離補間値)を算出できる。なお、距離補間の処理は、同期クロック50の立ち上がりが示すタイミング(時刻t2,時刻t4,…)毎にリセットされることになる。
 期間内において補間を行う数が補間クロック数に相当する。すなわち、補間クロック数は、隣接する期タイミング間の補間粒度を示す。
 なお、上述したような、推定された現在の距離と目標距離とを比較して、指令を生成する方法をTBC(Table Base Compare)方式とも称す。
 <D.動作例および生じ得る課題>
 次に、本実施の形態に従う制御システム1の動作例および生じ得る課題について説明する。
 図6は、本実施の形態に従う制御システム1における動作例を示すタイムチャートである。図6には、同期クロック50の1周期毎に距離指令値が1,000,000ずつ増加する例を示す。
 図6を参照して、主制御ユニット100は、距離指令値(例えば、1,000,000)を出力する(図6の(1))。なお、レーザ制御ユニット300は、内部バス114を介して、主制御ユニット100が出力する距離指令値にアクセスするようにしてもよいし、主制御ユニット100がレーザ制御ユニット300の内部レジスタに距離指令値を書き込むようにしてもよい。
 同期クロック50の立ち下がりをトリガとして、レーザ制御ユニット300は、距離指令値をレジスタ311の最新値領域311Aに格納する(図6の(2))。最新値領域311Aへの格納に先立って、レーザ制御ユニット300は、最新値領域311Aに格納されていた距離指令値を前回値領域311Bにコピーする(図6の(3))。さらに、レーザ制御ユニット300は、距離指令値の最新値および前回値と、補間クロック数とに基づいて、距離傾きを算出する(図6の(4))。
 距離傾き=(距離の変化量)/(時間の変化量)
  ={(距離指令値の最新値)-(距離指令値の前回値)}/(補間クロック数)
  =(1,000,000-0)/500=2,000
 続いて、同期クロック50の立ち上がりをトリガとして、レーザ制御ユニット300は、先に算出した距離傾きを補間処理用にセットし(図6の(5))、距離指令値の前回値を距離補間値の初期値としてセットする(図6の(6))。そして、レーザ制御ユニット300は、補間クロック毎に距離補間値を距離傾きずつインクリメントすることで、距離補間値を順次更新する。
 また、同期クロック50の立ち上がりをトリガとして、レーザ制御ユニット300は、補間クロック数を計測する(図6の(7))。また、補間クロック数は、同期クロック50の立ち上がりで順次更新されることになる。
 以下、上述の(1)~(7)が繰り返される。
 ここで、同期クロック50にはジッタが生じ得る。同期クロック50に生じるジッタは、距離補間値の算出に影響を与え得る。以下、距離補間値の算出が影響を受ける理由について説明する。
 例えば、時刻t14から時刻t16までの期間において、ジッタにより同期クロック50の周期が短くなったとする(図6の(8))。例えば、同期クロック50の本来の周期を50,000[ns]として、10[ns]だけ短くなったとする。補間クロック60の周期が100[ns]であるとすると、レーザ制御ユニット300が計測する補間クロック数は、本来の500ではなく、499となる(図6の(9))。
 その結果、レーザ制御ユニット300が算出する距離傾きは以下のようになる(図6の(10))。
 距離傾き=(距離の変化量)/(時間の変化量)
  ={(距離指令値の最新値)-(距離指令値の前回値)}/(補間クロック数)
  =(4,000,000-3,000,000)/499=2,004
 すなわち、本来の距離傾きは、2,000であるところ、同期クロック50のジッタにより、2,004と算出されている。
 続いて、同期クロック50の立ち上がりをトリガとして、レーザ制御ユニット300は、先に算出した距離傾きを補間処理用にセットし(図6の(11))、距離指令値の前回値を距離補間値の初期値としてセットする(図6の(12))。
 距離傾きが本来の値より大きいので、距離補間値は本来より早く増加することになる。その結果、時刻t18から時刻t20までの期間において、距離補間値は、本来の値より大きい値を示すことになる。そして、目標距離により早く到達することになり、レーザがオンするタイミングが早くなる(図6の(13))。
 図6に示す例では、時刻t21でレーザをオンすべきところ、時刻t21’(=t21-Δt)でレーザがオンされることになる。
 このように、同期クロック50のジッタにより、距離補間値に誤差を生じ得る。そこで、本実施の形態に従う制御システム1においては、同期クロック50のジッタが生じても距離補間値に誤差を生じないように、補間クロック数カウンタ319が補間クロック数を計測する。以下、補間クロック数カウンタ319による補間クロック数の計測について詳述する。
 <E.補間クロック数カウンタ319による補間クロック数の計測>
 次に、補間クロック数カウンタ319による補間クロック数の計測について説明する。本実施の形態においては、同期クロック50に同期して補間クロック60の発生を制御する。
 図7は、本実施の形態に従う制御システム1における補間クロック数の計測を説明するための図である。
 図7を参照して、同期クロック50の周期は、補間クロック60の周期の整数倍に設定される。図7に示す例では、同期クロック50の周期は50,000[ns](周波数は20[kHz])であり、補間クロック60の周期は100[ns]である。なお、補間クロック60の周期は、任意に設定すればよいが、レーザ30のオン/オフ制御の分解能などを考慮して決定されることが好ましい。
 また、同期クロック50の周期は、補間クロック60の周期の整数倍であれば、どのような値であってもよい。同期クロック50の周期は、ユーザが任意に設定するようにしてもよい。例えば、同期クロック50の周期は、10,000[ns](周波数は100[kHz])~100,000[ns](周波数は10[kHz])の範囲で設定されてもよい。
 あるいは、同期クロック50の1周期中に含まれる補間クロック60の数を設定するようにしてもよい。この場合には、同期クロック50の周期を設定された補間クロック60の数で除算することで、補間クロック60の周期が決定される。例えば、同期クロック50の周期を50,000[ns]に設定した上で、補間クロック60の数を500に設定することで、補間クロック60の周期を100[ns]と決定できる。
 補間クロック60は、同期クロック50に生じ得るジッタを吸収できるように、デューティ比が可能な限り低く設定される。図7に示す例では、同期クロック50のデューティ比は10%(オン期間:オフ期間=1:9)に設定されている。
 補間クロック制御部317は、同期クロック50の立ち上がりをトリガとして、補間クロック60の出力を開始する。その後、補間クロック制御部317は、同期クロック50の1周期(立ち上がりから次の立ち上がりまで)内で発生した補間クロック60の数が予め設定された設定値(補間クロック設定数)に到達すると、同期クロック50の次の周期(同期クロック50の立ち上がり)が到来するまで、補間クロック60の出力を停止する。
 また、補間クロック制御部317は、各周期の最後に出力する補間クロック(各周期において補間クロック設定数に到達する補間クロック)について、同期クロック50に生じるジッタに相当するΔtだけ周期を調整する。
 なお、最後に出力する補間クロック60の周期は、同期クロック50の次の立ち上がりのタイミングに依存して決定される。すなわち、補間クロック制御部317は、同期クロック50が示すタイミング(例えば、同期クロック50の立ち上がり)で、補間クロック60の発生を開始する。そのため、補間クロック60の周期は、同期クロック50の立ち上がりのタイミングにより、自動的に調整されてもよい。
 このように、同期クロック50の周期タイミング(例えば、同期クロック50の立ち上がり)に同期して、補間クロック60の出力を調整することで、計測される補間クロック60のクロック数のばらつきを抑制することで、距離補間値に生じ得る誤差を抑制して、レーザ30をオン/オフするタイミングが揺らぐ可能性を低減する。
 図8は、本実施の形態に従う制御システム1において同期クロック50の周期が短くなる場合の動作例を示すタイムチャートである。なお、図8および図9においては、補間クロック60の周期は100[ns]であり、デューティ比は10%(オン期間:オフ期間=1:9)であるとする。
 図8を参照して、同期クロック50の立ち上がりをトリガとして、補間クロック60の出力が開始される(時刻t31,t33,t35)。また、補間クロック数カウンタ319は、同期クロック50の立ち上がりをトリガとして計測値(補間クロック数)をリセットするとともに、出力された補間クロック60の数に応じて、計測値を順次インクリメントする。
 上述したように、同期クロック50の立ち上がりをトリガとして、距離傾きが算出され、同期クロック50の立ち上がりをトリガとして、算出された距離傾きに基づいて、距離補間値の算出が開始される。そして、算出された距離補間値が目標距離316に到達すると、レーザのオンまたはオフの指令が出力される。
 補間クロック数カウンタ319は、同期クロック50の直前の立ち上がりから出力した補間クロック60の数が予め設定された補間クロック設定数に到達しているか否かを判断し、補間クロック設定数に到達していなければ、補間クロック発生部318による補間クロック60の出力を継続する。
 時刻t33において、同期クロック50が立ち上がると、補間クロック制御部317は、同期クロック50をリセットするとともに、補間クロック発生部318による補間クロック60の出力を開始する。
 時刻t33から時刻t35においても、同様の処理が実行される。但し、時刻t33から時刻t35においては、同期クロック50の周期が10[ns]だけ短くなっている。
 時刻t35において、同期クロック50が立ち上がると、補間クロック制御部317は、同期クロック50をリセットするとともに、補間クロック発生部318による補間クロック60の出力を開始することになるが、同期クロック50の周期が短くなっているため、時刻t35の直前に出力された補間クロック60の周期は、本来の100[ns]から90[ns]に調整されることになる。
 図9は、本実施の形態に従う制御システム1において同期クロック50の周期が長くなる場合の動作例を示すタイムチャートである。
 図9を参照して、同期クロック50の立ち上がりをトリガとして、補間クロック60の出力が開始される(時刻t41,t43,t45)。また、補間クロック数カウンタ319は、同期クロック50の立ち上がりをトリガとしてリセットされるとともに、出力された補間クロック60の数に応じて順次インクリメントされる。
 上述したように、同期クロック50の立ち上がりをトリガとして、距離傾きが算出され、同期クロック50の立ち上がりをトリガとして、算出された距離傾きに基づいて、距離補間値の算出が開始される。そして、算出された距離補間値が目標距離316に到達すると、レーザのオンまたはオフの指令が出力される。
 補間クロック制御部317は、同期クロック50の直前の立ち上がりから出力した補間クロック60の数が予め設定された補間クロック設定数に到達しているか否かを判断し、補間クロック設定数に到達していなければ、補間クロック発生部318による補間クロック60の出力を継続する。
 時刻t43において、同期クロック50が立ち上がると、補間クロック制御部317は、同期クロック50をリセットするとともに、補間クロック発生部318による補間クロック60の出力を開始する。
 時刻t43から時刻t45においても、同様の処理が実行される。但し、時刻t43から時刻t45においては、同期クロック50の周期が10[ns]だけ長くなっている。そのため、最後の同期クロック50が出力されてから、同期クロック50の立ち上がり(時刻t45)までには、同期クロック50の周期(100[ns])より長い時間(110[ns])が存在することになる。但し、最後の同期クロック50が出力されると、すなわち出力した補間クロック60の数が予め設定された補間クロック設定数に到達すると、同期クロック50の出力が停止される。その結果、時刻t43から時刻t45において計測される補間クロック数は、補間クロック設定数と同数の500に維持される。
 そして、時刻t45において、同期クロック50が立ち上がると、補間クロック制御部317は、同期クロック50をリセットするとともに、補間クロック発生部318による補間クロック60の出力を開始する。その結果、時刻t45の直前に出力された補間クロック60の周期は、本来の100[ns]から110[ns]に調整されることになる。
 <F.処理手順>
 次に、本実施の形態に従う制御システム1のレーザ制御ユニット300が実行する処理手順について説明する。
 図10は、本実施の形態に従う制御システム1のレーザ制御ユニット300が実行するメイン処理の処理手順を示すフローチャートである。メイン処理は、アクチュエータであるレーザ30およびガルバノミラー40を制御するための処理である。
 図10を参照して、レーザ制御ユニット300は、同期クロック50の立ち下がりが発生したか否かを判断する(ステップS2)。同期クロック50の立ち下がりが発生すると(ステップS2においてYES)、レーザ制御ユニット300は、新たな距離指令値を取得して最新値として格納するとともに、直前の最新値を前回値として格納する。より具体的には、レーザ制御ユニット300は、現在格納している距離指令値の最新値を前回値にコピーし(ステップS4)、主制御ユニット100が出力した距離指令値を最新値として格納する(ステップS6)。そして、レーザ制御ユニット300は、直近に計測された補間クロック数を取得し(ステップS8)、距離指令値の最新値および前回値と、補間クロック数とに基づいて、距離傾きを算出する(ステップS10)。なお、直近に計測された補間クロック数は、ステップS8のタイミングで補間クロック数カウンタ319に格納されている値を意味する。
 同期クロック50の立ち下がりが発生していなければ(ステップS2においてNO)、ステップS4~S10の処理はスキップされる。
 続いて、レーザ制御ユニット300は、同期クロック50の立ち上がりが発生したか否かを判断する(ステップS12)。同期クロック50の立ち上がりが発生すると(ステップS12においてYES)、距離指令値の最新値に基づいて、レーザ30の照射位置の指令(ミラー制御信号540)を生成する(ステップS14)。
 また、レーザ制御ユニット300は、距離指令値の前回値を距離補間値の初期値に設定する(ステップS16)とともに、直近に算出された距離傾きを補間処理用に設定する(ステップS18)。
 同期クロック50の立ち上がりが発生していなければ(ステップS12においてNO)、ステップS16およびS18の処理はスキップされる。
 続いて、レーザ制御ユニット300は、同期クロック50の立ち上がりが発生したか否かを判断する(ステップS20)。同期クロック50の立ち上がりが発生すると(ステップS20においてYES)、レーザ制御ユニット300は、設定されている距離傾きを現在の距離補間値に加算して、距離補間値を更新する(ステップS22)。すなわち、レーザ制御ユニット300は、同期クロック50が示す所定のタイミングで、距離指令値の前回値に距離傾きを順次加算することで、距離補間値を算出する。
 続いて、レーザ制御ユニット300は、更新後の距離補間値がいずれかの目標距離316に到達したか否かを判断する(ステップS24)。更新後の距離補間値がいずれかの目標距離316に到達していれば(ステップS24においてYES)、レーザ制御ユニット300は、到達した目標距離316に対応する処理(レーザ30のオンまたはオフ)を実行するための指令を出力する(ステップS26)。このように、レーザ制御ユニット300は、距離補間値が目標距離316に到達すると当該目標距離316に対応する指令を出力する。そして、ステップS2以下の処理が繰り返される。
 更新後の距離補間値がいずれかの目標距離に到達していなければ(ステップS24においてNO)、ステップS26の処理はスキップされる。
 レーザ制御ユニット300は、同期クロック50の立ち上がりが発生していなければ(ステップS20においてNO)、ステップS2以下の処理が繰り返される。
 図11は、本実施の形態に従う制御システム1のレーザ制御ユニット300が実行する補間クロック数の計測処理の処理手順を示すフローチャートである。図11に示すように、レーザ制御ユニット300は、同期クロック50の1周期内で発生した補間クロック60の数を計測する。図11に示す処理は、図10に示すメイン処理と並列的に実行されてもよいし、メイン処理と一体的に実行されてもよい。
 図11を参照して、レーザ制御ユニット300は、同期クロック50の立ち上がりが発生したか否かを判断する(ステップS100)。同期クロック50の立ち上がりが発生すると(ステップS100においてYES)、レーザ制御ユニット300は、補間クロック数カウンタ319をリセットし(ステップS102)、補間クロック60の出力を開始する(ステップS104)。
 同期クロック50の立ち上がりが発生していなければ(ステップS100においてNO)、ステップS102およびS104の処理はスキップされる。
 レーザ制御ユニット300は、補間クロック60の立ち上がりが発生したか否かを判断する(ステップS106)。補間クロック60の立ち上がりが発生していなければ(ステップS106においてNO)、ステップS100以下の処理が繰り返される。
 補間クロック60の立ち上がりが発生すると(ステップS106においてYES)、レーザ制御ユニット300は、補間クロック数カウンタ319をインクリメントする(ステップS108)。
 そして、レーザ制御ユニット300は、インクリメント後の補間クロック数カウンタ319の値が補間クロック設定数に到達したか否かを判断する(ステップS110)。インクリメント後の補間クロック数カウンタ319の値が補間クロック設定数に到達していれば(ステップS110においてYES)、レーザ制御ユニット300は、補間クロック60の出力を停止する(ステップS112)。このように、レーザ制御ユニット300は、同期クロック50の1周期内で発生した補間クロック60の数が予め定められた設定値に到達すると、同期クロック50の次の周期が到来するまで補間クロック60の出力を停止する。そして、レーザ制御ユニット300は、同期クロック50の立ち上がりが発生するまで待機する(ステップS114)。同期クロック50の立ち上がりが発生すると、ステップS102以下の処理が繰り返される。
 インクリメント後の補間クロック数カウンタ319の値が補間クロック設定数に到達していなければ(ステップS110においてNO)、ステップS100以下の処理が繰り返される。
 以上の処理によって、レーザ30の照射タイミングを精緻に制御できる。
 <G.ユーザインターフェイス>
 次に、本実施の形態に従う制御システム1が提供するユーザインターフェイスの一例について説明する。典型的には、ユーザは、制御装置10に接続された操作表示装置400を介して、上述したような処理を実現するための設定を入力する。
 図12は、本実施の形態に従う制御システム1の操作表示装置400に表示されるユーザインターフェイス画面450の一例を示す模式図である。図12を参照して、ユーザインターフェイス画面450は、上述したような処理に必要な設定を受け付ける。
 ユーザインターフェイス画面450は、同期クロック50の周期の設定を受け付ける入力部452と、設定候補リスト表示部454と、チェックボックス456と、補間クロック60の周期を示す表示部458と、補間回数を示す表示部460と、設定反映ボタン462とを含む。
 ユーザは、同期クロック50の周期を入力部452に入力する。操作表示装置400は、入力部452に入力された同期クロック50の周期に従って、設定可能な補間クロック60の周期および補間回数の組を設定候補リスト表示部454に表示する。
 なお、補間クロック60の周期および補間回数の組は、主制御ユニット100が予め有している設定を参照して表示されてもよい。
 ユーザは、設定候補リスト表示部454に表示される補間クロック60の周期および補間回数の組のうち、希望する組に対応するチェックボックス456をチェックする。操作表示装置400は、チェックされた補間クロック60の周期および補間回数の組を表示部458および表示部460に表示する。
 ユーザは、同期クロック50に生じ得るジッタに対する耐性と、レーザ30のオン/オフ制御の精度とのトレードオフを考慮して、設定されている同期クロック50の周期において、補間回数が最大となるように、補間クロック60の周期が決定される。
 例えば、同期クロック50の周期が50[μs](周波数は20[kHz])である場合、補間クロック60の最小周期は50[ns]となる。一方、同期クロック50の周期が1[ms](周波数は1[kHz])である場合、補間クロック60の最小周期は100[ns]となる。
 最終的に、ユーザが設定反映ボタン462を選択すると、表示されている設定内容が制御装置10へ送信される。
 以上のように、ユーザは、同期クロック50に生じ得るジッタに対する耐性、および、レーザ30のオン/オフ制御の精度を考慮して、同期クロック50の周期、補間クロック60の周期および補間回数を設定する。このように、制御装置10は、同期クロック50の周期および補間クロック60の周期の設定を受け付けるためのユーザインターフェイスを提供する。
 <H.変形例>
 上述の説明においては、同期クロック50の1周期内の補間クロック60の数(補間クロック数)として、補間クロック60を実際に計測した値(計測値)を採用する例を示したが、予め定められた固定値(設定値)を用いてもよい。すなわち、同期クロック50の1周期内の補間クロック60の数は、予め定められた固定値であってもよい。
 例えば、同期クロック50の周期を50,000[ns]とし、補間クロック60の周期が100[ns]であるとすると、同期クロック50の1周期内の補間クロック60の数(補間クロック数)は、500に設定できる。
 このように、補間クロック数として予め定められた固定値を用いることで、計測値を用いる場合に比較して、動作検証をより容易に行うことができる。
 <I.付記>
 上述したような本実施の形態は、以下のような技術思想を含む。
  [構成1]
 アクチュエータ(30,40)を制御する制御装置(10)であって、
 第1クロック(50)が示す第1タイミングで、新たな距離指令値を取得して最新値として格納するとともに、直前の最新値を前回値として格納する記憶部(311)と、
 第2クロック(60)を発生する第2クロック発生部(318)と、
 前記距離指令値の前記最新値および前記前回値と、前記第1クロックの1周期内の前記第2クロックの数とに基づいて、距離傾きを算出する第1算出部(313)と、
 前記第2クロックが示す第2タイミングで、前記距離指令値の前記前回値に前記距離傾きを順次加算することで、距離補間値を算出する第2算出部(314)と、
 前記距離補間値が目標距離(316)に到達すると当該目標距離に対応する第1指令(530)を出力する第1指令生成部(315)と、
 前記第1クロックの1周期内で発生した前記第2クロックの数が予め定められた設定値に到達すると、前記第1クロックの次の周期が到来するまで前記第2クロックの出力を停止するクロック制御部(317)とを備える、制御装置。
  [構成2]
 前記第1クロックの1周期内で発生した前記第2クロックの数を計測する計測部をさらに備える、構成1に記載の制御装置。
  [構成3]
 前記第1クロックの1周期内で発生した前記第2クロックの数は、予め定められた固定値である、構成1に記載の制御装置。
  [構成4]
 前記第1クロックの周期は、前記第2クロックの周期の整数倍に設定される、構成1~3のいずれか1項に記載の制御装置。
  [構成5]
 前記クロック制御部は、前記第1クロックが示す第3タイミングで、前記第2クロックの発生を開始する、構成1~4のいずれか1項に記載の制御装置。
  [構成6]
 指定された軌跡に従って、位置を指定するための第2指令(540)を生成する第2指令生成部(322)をさらに備える、構成1~5のいずれか1項に記載の制御装置。
  [構成7]
 前記第2指令生成部は、オンまたはオフの指示を指令として出力する、構成1~6のいずれか1項に記載の制御装置。
  [構成8]
 前記制御装置は、前記第1クロックの周期および前記第2クロックの周期の設定を受け付けるためのユーザインターフェイス(450)を提供する、構成1~7のいずれか1項に記載の制御装置。
  [構成9]
 アクチュエータ(30,40)と、
 前記アクチュエータを制御する制御装置(10)とを備え、
 前記制御装置は、
  第1クロック(50)が示す第1タイミングで、新たな距離指令値を取得して最新値として格納するとともに、直前の最新値を前回値として格納する記憶部(311)と、
  第2クロック(60)を発生する第2クロック発生部(318)と、
  前記距離指令値の前記最新値および前記前回値と、前記第1クロックの1周期内の前記第2クロックの数とに基づいて、距離傾きを算出する第1算出部(313)と、
  前記第2クロックが示す第2タイミングで、前記距離指令値の前記前回値に前記距離傾きを順次加算することで、距離補間値を算出する第2算出部(314)と、
  前記距離補間値が目標距離(316)に到達すると当該目標距離に対応する指令を出力する指令生成部(315)と、
  前記第1クロックの1周期内で発生した前記第2クロックの数が予め定められた設定値に到達すると、前記第1クロックの次の周期が到来するまで前記第2クロックの出力を停止するクロック制御部(317)とを備える、制御システム。
  [構成10]
 アクチュエータ(30,40)の制御方法であって、
 第1クロック(50)が示す第1タイミングで、新たな距離指令値を取得して最新値として格納するとともに、直前の最新値を前回値として格納するステップ(S4,S6)と、
 前記距離指令値の前記最新値および前記前回値と、前記第1クロックの1周期内の第2クロックの数とに基づいて、距離傾きを算出するステップ(S10)と、
 前記第2クロックが示す第2タイミングで、前記距離指令値の前記前回値に前記距離傾きを順次加算することで、距離補間値を算出するステップ(S22)と、
 前記距離補間値が目標距離に到達すると当該目標距離に対応する指令を出力するステップ(S24,S26)と、
 前記第1クロックの1周期内で発生した前記第2クロックの数が予め定められた設定値に到達すると、前記第1クロックの次の周期が到来するまで前記第2クロックの出力を停止するステップ(S112)とを備える、制御方法。
 <J.利点>
 本実施の形態に従う制御システム1によれば、同期クロックの周期で更新される距離指令値を同期クロックより短い周期で補間することにより、目標距離に到達したか否かの判断をより高精度に行うことができる。また、同期クロックにジッタが生じても、同期クロック内で発生する補間クロックの数に影響を与えないようなアルゴリズムを採用することで、算出される距離補間値がジッタの影響を受けないようにできる。これによって、より精緻な制御を安定的に実行できる。
 今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
 1 制御システム、4 ワーク、10 制御装置、20 XYステージ、22 プレート、24 サーボモータ、26 サーボドライバ、28 エンコーダ、30 レーザ、40 ガルバノミラー、42 X軸走査モータ、43 軸走査ミラー、44 Y軸走査モータ、45 Y軸走査ミラー、46 Z軸走査モータ、47 レンズ、50 同期クロック、51,52,53 制御線、54 通信線、60 補間クロック、100 主制御ユニット、102 プロセッサ、104 メインメモリ、106 ストレージ、108 システムプログラム、110 アプリケーションプログラム、112 バスコントローラ、114 内部バス、130 軌跡生成部、132 距離指令算出部、134 通過ポイント列、200 ステージ制御ユニット、210 ステージ制御演算部、220 クロック発生部、230 サーボインターフェイス回路、300 レーザ制御ユニット、310 レーザ/ミラー制御演算部、311 レジスタ、311A 最新値領域、311B 前回値領域、312 距離差分算出部、313 距離傾き算出部、314 距離補間部、315 比較部、316 目標距離、317 補間クロック制御部、318 補間クロック発生部、319 補間クロック数カウンタ、322 位置指令生成部、330 出力インターフェイス回路、340 通信インターフェイス回路、350,352,354 距離指令値、400 操作表示装置、450 ユーザインターフェイス画面、452 入力部、454 設定候補リスト表示部、456 チェックボックス、458,460 表示部、462 設定反映ボタン、510 サーボ指令信号、520 エンコーダ出力情報、530 レーザ制御信号、540 ミラー制御信号。

Claims (10)

  1.  アクチュエータを制御する制御装置であって、
     第1クロックが示す第1タイミングで、新たな距離指令値を取得して最新値として格納するとともに、直前の最新値を前回値として格納する記憶部と、
     第2クロックを発生する第2クロック発生部と、
     前記距離指令値の前記最新値および前記前回値と、前記第1クロックの1周期内の前記第2クロックの数とに基づいて、距離傾きを算出する第1算出部と、
     前記第2クロックが示す第2タイミングで、前記距離指令値の前記前回値に前記距離傾きを順次加算することで、距離補間値を算出する第2算出部と、
     前記距離補間値が目標距離に到達すると当該目標距離に対応する第1指令を出力する第1指令生成部と、
     前記第1クロックの1周期内で発生した前記第2クロックの数が予め定められた設定値に到達すると、前記第1クロックの次の周期が到来するまで前記第2クロックの出力を停止するクロック制御部とを備える、制御装置。
  2.  前記第1クロックの1周期内で発生した前記第2クロックの数を計測する計測部をさらに備える、請求項1に記載の制御装置。
  3.  前記第1クロックの1周期内で発生した前記第2クロックの数は、予め定められた固定値である、請求項1または2に記載の制御装置。
  4.  前記第1クロックの周期は、前記第2クロックの周期の整数倍に設定される、請求項1~3のいずれか1項に記載の制御装置。
  5.  前記クロック制御部は、前記第1クロックが示す第3タイミングで、前記第2クロックの発生を開始する、請求項1~4のいずれか1項に記載の制御装置。
  6.  指定された軌跡に従って、位置を指定するための第2指令を生成する第2指令生成部をさらに備える、請求項1~5のいずれか1項に記載の制御装置。
  7.  前記第1指令生成部は、オンまたはオフの指示を指令として出力する、請求項1~6のいずれか1項に記載の制御装置。
  8.  前記制御装置は、前記第1クロックの周期および前記第2クロックの周期の設定を受け付けるためのユーザインターフェイスを提供する、請求項1~7のいずれか1項に記載の制御装置。
  9.  アクチュエータと、
     前記アクチュエータを制御する制御装置とを備え、
     前記制御装置は、
      第1クロックが示す第1タイミングで、新たな距離指令値を取得して最新値として格納するとともに、直前の最新値を前回値として格納する記憶部と、
      第2クロックを発生する第2クロック発生部と、
      前記距離指令値の前記最新値および前記前回値と、前記第1クロックの1周期内の前記第2クロックの数とに基づいて、距離傾きを算出する第1算出部と、
      前記第2クロックが示す第2タイミングで、前記距離指令値の前記前回値に前記距離傾きを順次加算することで、距離補間値を算出する第2算出部と、
      前記距離補間値が目標距離に到達すると当該目標距離に対応する指令を出力する指令生成部と、
      前記第1クロックの1周期内で発生した前記第2クロックの数が予め定められた設定値に到達すると、前記第1クロックの次の周期が到来するまで前記第2クロックの出力を停止するクロック制御部とを備える、制御システム。
  10.  アクチュエータの制御方法であって、
     第1クロックが示す第1タイミングで、新たな距離指令値を取得して最新値として格納するとともに、直前の最新値を前回値として格納するステップと、
     前記距離指令値の前記最新値および前記前回値と、前記第1クロックの1周期内の第2クロックの数とに基づいて、距離傾きを算出するステップと、
     前記第2クロックが示す第2タイミングで、前記距離指令値の前記前回値に前記距離傾きを順次加算することで、距離補間値を算出するステップと、
     前記距離補間値が目標距離に到達すると当該目標距離に対応する指令を出力するステップと、
     前記第1クロックの1周期内で発生した前記第2クロックの数が予め定められた設定値に到達すると、前記第1クロックの次の周期が到来するまで前記第2クロックの出力を停止するステップとを備える、制御方法。
PCT/JP2023/008836 2022-04-01 2023-03-08 制御装置、制御システムおよび制御方法 WO2023189323A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2022-061535 2022-04-01
JP2022061535A JP2023151738A (ja) 2022-04-01 2022-04-01 制御装置、制御システムおよび制御方法

Publications (1)

Publication Number Publication Date
WO2023189323A1 true WO2023189323A1 (ja) 2023-10-05

Family

ID=88200741

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2023/008836 WO2023189323A1 (ja) 2022-04-01 2023-03-08 制御装置、制御システムおよび制御方法

Country Status (2)

Country Link
JP (1) JP2023151738A (ja)
WO (1) WO2023189323A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61249105A (ja) * 1985-04-26 1986-11-06 Yaskawa Electric Mfg Co Ltd 追従誤差修正方式
JP2019038034A (ja) * 2017-08-25 2019-03-14 キヤノン株式会社 レーザ加工装置、制御装置、レーザ加工方法及び画像形成装置の製造方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61249105A (ja) * 1985-04-26 1986-11-06 Yaskawa Electric Mfg Co Ltd 追従誤差修正方式
JP2019038034A (ja) * 2017-08-25 2019-03-14 キヤノン株式会社 レーザ加工装置、制御装置、レーザ加工方法及び画像形成装置の製造方法

Also Published As

Publication number Publication date
JP2023151738A (ja) 2023-10-16

Similar Documents

Publication Publication Date Title
US11179803B2 (en) Laser processing apparatus, control apparatus, laser processing method, and method of producing image forming apparatus
JP2007058736A (ja) ロボット協調制御方法及びシステム
EP3587999A1 (en) Measuring device and fabricating apparatus
JP6858854B2 (ja) Duv光源におけるパルス毎の波長目標追跡用の波長制御システム
WO2023189323A1 (ja) 制御装置、制御システムおよび制御方法
WO2019003557A1 (ja) 三次元レーザ加工機および三次元レーザ加工機の制御方法
JP5345248B2 (ja) モータドライバ制御装置
WO2021245818A1 (ja) 計測装置、計測方法、および計測プログラム
JPWO2021245818A5 (ja)
CN100349335C (zh) 电磁辐射脉冲定时控制
KR101848767B1 (ko) 유도 조종장치 및 그의 시스템 클럭 생성 방법
JP2004174539A (ja) レーザ加工方法
CN115454040A (zh) 多传感器的同步控制方法、设备、无人驾驶系统和介质
JP7047794B2 (ja) 制御装置および制御プログラム
CN115704885A (zh) 微机电系统轴的耦合效应的检测、校正和补偿
JP5659513B2 (ja) レーザマーキング装置およびレーザマーキング方法
JP2002090682A (ja) ガルバノメータ、ガルバノメータの位置補正方法、ガルバノメータを用いたレーザ加工装置、及びガルバノメータを用いたレーザ加工方法
WO2024024387A1 (ja) 制御システム、通信装置および制御方法
CN115015961A (zh) 利用李萨如扫描的矩形2d图案生成的方法
JP2007272011A (ja) ガルバノスキャナ装置及びレーザ加工機
US20230384426A1 (en) Laser sensor, control method of laser sensor, and recording medium storing control program of laser sensor
WO2022168337A1 (ja) 制御システム、通信装置および制御方法
CN113945939A (zh) 距离测量装置、距离测量方法以及程序
JP2011134280A (ja) 位置決め装置及び位置決め方法
JP2018055165A (ja) 入力装置、入力装置の制御方法およびプログラム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 23779350

Country of ref document: EP

Kind code of ref document: A1