WO2020012902A1 - 制御装置、および制御方法 - Google Patents

制御装置、および制御方法 Download PDF

Info

Publication number
WO2020012902A1
WO2020012902A1 PCT/JP2019/024318 JP2019024318W WO2020012902A1 WO 2020012902 A1 WO2020012902 A1 WO 2020012902A1 JP 2019024318 W JP2019024318 W JP 2019024318W WO 2020012902 A1 WO2020012902 A1 WO 2020012902A1
Authority
WO
WIPO (PCT)
Prior art keywords
speed
spindle
main shaft
main
characteristic data
Prior art date
Application number
PCT/JP2019/024318
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 オムロン株式会社
Priority to CN201980039371.1A priority Critical patent/CN112272808A/zh
Priority to EP19834537.3A priority patent/EP3822734A4/en
Publication of WO2020012902A1 publication Critical patent/WO2020012902A1/ja

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65GTRANSPORT OR STORAGE DEVICES, e.g. CONVEYORS FOR LOADING OR TIPPING, SHOP CONVEYOR SYSTEMS OR PNEUMATIC TUBE CONVEYORS
    • B65G47/00Article or material-handling devices associated with conveyors; Methods employing such devices
    • B65G47/74Feeding, transfer, or discharging devices of particular kinds or types
    • B65G47/90Devices for picking-up and depositing articles or materials
    • B65G47/905Control arrangements
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/0093Programme-controlled manipulators co-operating with conveyor means
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65GTRANSPORT OR STORAGE DEVICES, e.g. CONVEYORS FOR LOADING OR TIPPING, SHOP CONVEYOR SYSTEMS OR PNEUMATIC TUBE CONVEYORS
    • B65G47/00Article or material-handling devices associated with conveyors; Methods employing such devices
    • B65G47/74Feeding, transfer, or discharging devices of particular kinds or types
    • B65G47/90Devices for picking-up and depositing articles or materials
    • B65G47/91Devices for picking-up and depositing articles or materials incorporating pneumatic, e.g. suction, grippers
    • B65G47/917Devices for picking-up and depositing articles or materials incorporating pneumatic, e.g. suction, grippers control arrangements
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/414Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/50Machine tool, machine tool null till machine tool work handling
    • G05B2219/50233Synchonize time-dependent with electronic cam data

Definitions

  • the present invention relates to a control device that executes synchronization control for synchronizing the operation of a driven shaft with the operation of a main shaft every control cycle, and a control method in the control device.
  • a programmable logic controller is, for example, a CPU (Central Processing Unit) including a microprocessor for executing a user program, a signal input from an external switch or a sensor, an external relay or the like. It is composed of a plurality of units such as an IO (Input / Output) unit which is responsible for outputting signals to the actuator.
  • the PLC executes a control operation while exchanging data between these units via the PLC system bus and / or the field network in each user program execution cycle.
  • Controlling the operation of machines, equipment, and the like may include motion control for controlling the motion of a motor.
  • motion control an application for positioning a mechanical mechanism such as a positioning table or a robot is assumed.
  • a gear operation or a cam operation is adopted as a general operation method in which a main shaft and a driven shaft operate while maintaining a certain relationship.
  • the gear operation is a method in which the command speed for the driven shaft is determined by multiplying the speed of the main shaft by a gear ratio that is a predetermined ratio provided in advance.
  • the cam operation determines the command speed for the driven shaft while appropriately changing the gear ratio by specifying the movement amount (displacement) of the driven shaft with respect to the position (phase) of the main shaft based on the cam table for each control cycle. It is a method.
  • the driven shaft When motion control is performed, the driven shaft first follows the main shaft by a cam operation, and when it reaches the start position of the gear operation, it switches to the gear operation and synchronizes with the operation of the main shaft based on a predetermined gear ratio.
  • the cam operation is also referred to as “chase operation”
  • the gear operation is also referred to as “synchronous operation”.
  • Various techniques have been proposed for such synchronization between the main shaft and the driven shaft.
  • Patent Document 1 discloses that when a master axis and a slave axis are synchronized, the synchronization ratio of the slave axis speed to the master axis speed is gradually changed to start synchronization. A technique for eliminating mechanical shock at the time is disclosed.
  • Patent Document 2 discloses that when a driven shaft starts a chasing operation, a cam curve representing a speed of the driven shaft with respect to a time displacement is created, and the created driven cam curve is used. A technique is disclosed in which a chasing operation is performed to reduce the impact applied to a driven shaft.
  • Patent Document 3 discloses a tapping machine that performs a tapping operation by synchronously operating a spindle motor and a feed shaft motor when the operation of the spindle is reversed when the operation of the spindle is reversed. Synchronization between the main axis and the feed axis by creating an inversion correction amount that improves the followability of the axis and adding the created inversion correction amount to the speed command value for the feed axis or the integrator of the speed control loop of the feed axis control unit. Techniques for reducing errors have been disclosed.
  • JP 2017-33345 A Japanese Patent No. 5803337 Japanese Patent No. 5325949
  • the speed of the spindle may change stepwise due to switching of the spindle to be operated or reversing the operation direction of the spindle during either chase operation or synchronous operation. obtain.
  • the speed of the operating spindle may change rapidly (rather than continuously) while the driven axis follows the spindle by a chase operation or a synchronous operation.
  • a mechanical shock may be applied.
  • Both of the techniques disclosed in Patent Document 1 and Patent Document 2 described above focus on suppressing the vibration that occurs in the driven shaft when the driven shaft starts a chasing operation from a stopped state, and includes a main shaft and a driven shaft. No consideration has been given to suppressing the vibration generated in the driven shaft when the speed of the main shaft changes stepwise during the operation of the shaft. Also, the technique disclosed in Patent Document 3 focuses on improving the followability of the reversing operation of the feed shaft when the operation of the main shaft is reversed, and also the operation of the main shaft during the operation of the main shaft and the driven shaft. No consideration has been given to suppressing the vibration generated on the driven shaft when the speed changes stepwise.
  • the present invention provides a technique for suppressing the vibration generated in a driven shaft when the speed of the main shaft changes stepwise during the operation of the main shaft and the driven shaft in control for synchronizing the operation of the driven shaft with the operation of the main shaft.
  • the purpose is to:
  • a control device that synchronizes the operation of a driven shaft with the operation of a main shaft.
  • the control device includes: an acquisition unit that acquires the speed of the main shaft for each control cycle; a storage unit that stores a plurality of characteristic data for specifying the amount of movement of the driven shaft with respect to the position of the main shaft; A selecting unit that selects any one of the characteristic data, a calculating unit that calculates a speed commanded to the driven axis as a speed command value, and an output unit that outputs the speed command value calculated by the calculating unit to the driven shaft.
  • the calculating unit calculates a speed obtained by multiplying the speed of the main shaft obtained by the obtaining unit by a predetermined ratio as a speed command value during a synchronous operation for synchronizing the operation of the driven shaft with the operation of the main shaft.
  • the movement of the driven shaft is performed based on the position of the main shaft calculated from the speed of the main shaft acquired by the acquisition unit and the characteristic data selected by the selection unit.
  • the speed specified on the basis of the movement amount is calculated as a speed command value, and the selection unit is stored in the storage unit when the speed of the main shaft changes stepwise during the operation of the main shaft and the driven shaft.
  • Another characteristic data corresponding to the speed change of the spindle is specified from the plurality of characteristic data, and the selected characteristic data is switched to the other characteristic data.
  • the speed obtained by multiplying the speed of the main shaft obtained in each control cycle by a predetermined ratio is output to the driven shaft as a speed command value, so that the driven shaft is synchronized. Further, the movement amount of the driven shaft is specified based on the position of the main shaft calculated from the speed of the main shaft acquired in each control cycle and the selected characteristic data, and the speed specified based on the movement amount is a speed command value. Is output to the driven shaft, the operation of the driven shaft (chase operation) is performed until the main shaft and the driven shaft reach the position where the synchronous operation starts.
  • the speed of the main spindle changes stepwise during the operation of the main axis and the driven axis such as a chase operation and a synchronous operation
  • an appropriate speed command value is output to the driven axis.
  • other characteristic data corresponding to the main shaft speed change is selected. Since the inside characteristic data is switched, an appropriate speed command value can be output to the driven shaft. As a result, vibration generated in the driven shaft can be suppressed.
  • a first main spindle and a second main spindle that operates at a speed different from the speed of the first main spindle in a step-like manner are provided, and the control device controls the first main spindle based on an external command.
  • a switching unit configured to switch the main spindle from the first main shaft to the second main shaft; and a selector configured to output other characteristic data according to the switching of the main shaft when the main shaft is switched by the switching unit during operation of the main shaft and the driven shaft. Switches the selected characteristic data.
  • the spindle can be switched by an external command, user convenience is improved, and furthermore, the selected characteristic data is switched to another characteristic data according to the switching of the spindle. , An appropriate speed command value can be output to the driven shaft.
  • control device further includes a reversing unit that reverses the operation direction of the main shaft based on an external command
  • the selecting unit includes a main unit and a driven shaft, when the main shaft is reversed by the reversing unit during operation.
  • the selected characteristic data is switched to another characteristic data corresponding to the reversal of the spindle.
  • the operation direction of the spindle can be reversed by an external command, the convenience for the user is improved, and the other characteristic data corresponding to the reversal of the spindle is the selected characteristic data. Is switched, an appropriate speed command value can be output to the driven shaft.
  • the acquisition unit acquires the speed commanded to the spindle or the actually measured speed of the spindle.
  • the command value or the actually measured value can be detected as the speed to be detected, so that control according to the situation can be performed.
  • control device further includes a vibration detection unit that detects vibration of the main shaft, and the acquisition unit, when vibration of the main shaft is detected by the vibration detection unit, detects the vibration of the main shaft from the speed commanded for the main shaft. Switch the acquisition target to the actually measured speed.
  • the acquisition target in the control of the synchronous operation or the chase operation, when vibration of the main shaft is detected, the acquisition target can be switched from the speed commanded to the main shaft to the actually measured speed of the main shaft. Does not affect the operation of the driven shaft.
  • the characteristic data is data defined based on at least one of a data table, a linear expression, and a polynomial expression.
  • characteristic data can be defined in various forms, and user convenience is improved.
  • the selection unit selects the characteristic data based on the natural frequency of the driven shaft calculated by the fast Fourier transform.
  • the characteristic data is selected in consideration of the natural frequency of the driven shaft, so that the vibration generated in the driven shaft can be suppressed.
  • the control device performs the following operation when the characteristic data is switched by the selection unit when the speed of the operating main spindle changes stepwise.
  • the apparatus further includes a filter processing unit for smoothing the movement amount of the axis.
  • the movement amount of the driven axis in the switched characteristic data is smoothed, so that the characteristic data is changed.
  • the amount of movement of the driven shaft can be prevented from changing abruptly.
  • a control method in a control device that synchronizes the operation of a driven shaft with the operation of a main shaft includes a step of acquiring a speed of the main spindle for each control cycle, a step of storing a plurality of characteristic data for specifying an amount of movement of the driven axis with respect to the position of the main spindle, And calculating the speed command value for the driven axis as a speed command value, and outputting the speed command value calculated by the calculating step to the driven axis.
  • the step calculates a speed obtained by multiplying the speed of the main shaft obtained in the obtaining step by a predetermined ratio as a speed command value during a synchronous operation for synchronizing the operation of the driven shaft with the operation of the main shaft, and Before the driven axis reaches the position where the operation starts, the position and selection of the spindle calculated from the speed of the spindle acquired in the acquiring step
  • the moving amount of the driven shaft is specified based on the characteristic data being selected by the step, and the speed specified based on the moving amount is calculated as a speed command value, and the selecting step is performed during the operation of the main shaft and the driven shaft.
  • the speed of the spindle changes stepwise, other characteristic data corresponding to the speed change of the spindle is specified from the plurality of characteristic data stored in the storage unit, and the other characteristic data is selected. Switch the characteristic data.
  • the speed obtained by multiplying the speed of the main shaft obtained in each control cycle by a predetermined ratio is output to the driven shaft as a speed command value, so that the driven shaft is synchronized. Further, the movement amount of the driven shaft is specified based on the position of the main shaft calculated from the speed of the main shaft acquired in each control cycle and the selected characteristic data, and the speed specified based on the movement amount is a speed command value. Is output to the driven shaft, the operation of the driven shaft (chase operation) is performed until the main shaft and the driven shaft reach the position where the synchronous operation starts.
  • the speed of the main spindle changes stepwise during the operation of the main axis and the driven axis such as a chase operation and a synchronous operation
  • an appropriate speed command value is output to the driven axis.
  • other characteristic data corresponding to the main shaft speed change is selected. Since the inside characteristic data is switched, an appropriate speed command value can be output to the driven shaft. As a result, vibration generated in the driven shaft can be suppressed.
  • a technique for suppressing the vibration generated in the driven shaft when the speed of the main shaft changes stepwise during the operation of the main shaft and the driven shaft can be provided.
  • FIG. 6 is a timing chart showing speed changes of a main shaft and a driven shaft when the main shaft is switched.
  • 5 is a timing chart showing speed changes of a main shaft and a driven shaft when the main shaft is reversed.
  • 5 is a timing chart showing speed changes of a main shaft and a driven shaft when the main shaft is reversed.
  • FIG. 3 is a schematic diagram illustrating the schematic structure of a PLC system.
  • FIG. 3 is a schematic diagram illustrating a hardware configuration of a CPU unit.
  • FIG. 3 is a schematic diagram illustrating a software configuration executed by a CPU unit.
  • FIG. 3 is a schematic diagram illustrating a functional configuration of a control device. It is a schematic diagram for demonstrating switching of a spindle.
  • 6 is a timing chart for explaining detection of vibration of a main shaft. It is a graph for explaining a cam curve. It is a figure showing the data structure of a cam table.
  • FIG. 4 is a schematic diagram for explaining switching of a cam curve. It is a flowchart which shows the switching process during chase operation
  • movement which a control apparatus performs. It is a flowchart which shows the switching process during a synchronous operation which a control apparatus performs. 6 is a timing chart showing speed changes of a main shaft and a driven shaft when the main shaft is switched. 5 is a timing chart showing speed changes of a main shaft and a driven shaft when the main shaft is reversed.
  • FIG. 1 is a schematic diagram for explaining an application example of the control device according to the present embodiment.
  • a PLC programmable controller
  • the control device 60 can be applied to an industrial product production line, a transport device in a distribution system, and the like.
  • a plurality of types of transport paths are provided, such as a conveyor 301 that transports the work 350 in the X direction and a conveyor 302 that transports the work 350 in the Y direction.
  • These transport paths may have different transport speeds depending on the system.
  • the conveyors 301 and 302 have different transport speeds.
  • the workpiece 350 is transported by the plurality of conveyors 301 and 302 having different transport directions and transport speeds as described above. For example, after the work 350 is conveyed by the conveyor 301 in the X direction, at the switching point P, the conveyor that conveys the work 350 from the conveyor 301 to the conveyor 302 is switched, and after the change, the work 350 is conveyed by the conveyor 302 in the Y direction. Is transported.
  • the robot 400 follows the work 350 conveyed by the conveyor.
  • the robot 400 follows the work 350 conveyed by the conveyor 301 that moves in advance, and when it catches up with the work 350, the robot 400 follows the work 350 in synchronization with the operation of the conveyor 301.
  • the robot 400 When the robot 400 follows the work 350 in synchronization with the operation of the conveyor 302 for a predetermined period, the robot 400 grabs the work 350 with an arm (not shown) and carries the work 350 to a target location.
  • the control device 60 executes the motion control for controlling the operations of the conveyors 301 and 302 and the robot 400.
  • the control device 60 causes the robot 400 to chase the work 350 conveyed by the conveyors 301 and 302 that move in advance, and causes the robot 400 to follow the work 350 in synchronization with the operation of the conveyor 302. Synchronous operation ".
  • FIG. 2 is a schematic diagram for visually explaining the outline of the motion control.
  • the motor 500 and the motor 600 correspond to the driving sources that operate the conveyors 301 and 302 illustrated in FIG. That is, the spindle 501 of the motor 500 and the spindle 601 of the motor 600 correspond to the axes of the motors that operate the conveyors 301 and 302.
  • the motor 550 and the motor 650 correspond to a drive source for operating the robot 400 shown in FIG. That is, the driven shaft 551 of the motor 550 and the driven shaft 651 of the motor 650 correspond to the shaft of the motor that operates the robot 400.
  • a cam 502 is fixed to a main shaft 501 which is a shaft of the motor 500, and the cam 502 rotates with the rotation of the main shaft 501.
  • a contact 552 that is in contact with the cam 502 is fixed to a driven shaft 551 that is the shaft of the motor 550, and the contact 552 rotates as the cam 502 rotates.
  • the position (phase) of the main shaft 501 changes due to the driving of the motor 500
  • the movement amount (displacement, rotation amount) of the driven shaft 551 changes.
  • the control device 60 stores in advance characteristic data for specifying the amount of movement of the driven shaft 551 with respect to the position of the main shaft 501 according to the type of the main shaft 501.
  • the control device 60 selects appropriate characteristic data according to the type of the main shaft 501 in operation, and determines a command speed for the driven shaft 551 based on the selected characteristic data.
  • a gear 602 is fixed to a main shaft 601 which is the shaft of the motor 600, and the gear 602 rotates with the rotation of the main shaft 601.
  • a gear 652 that engages with the gear 602 is fixed to a driven shaft 651 that is the shaft of the motor 650, and the gear 652 rotates with the rotation of the gear 602.
  • the gear ratio is determined from the number of teeth of the gear 602 and the number of teeth of the gear 652.
  • the control device 60 determines the command speed for the driven shaft 651 by multiplying the speed of the operating main shaft 601 by the gear ratio.
  • the control device 60 determines the amount of movement of the driven axis of the robot 400 with respect to the position of the main axis of the conveyor.
  • the speed of the driven axis of the robot 400 is determined based on the characteristic data, and the driven axis of the robot 400 is controlled based on the determined speed.
  • the control device 60 determines the speed of the driven axis of the robot 400 by multiplying the speed of the main shaft of the conveyor by the gear ratio. Then, the driven axis of the robot 400 is controlled based on the determined speed.
  • the speed of the main shaft may change stepwise by switching the conveyor that conveys the work 350 from the conveyor 301 to the conveyor 302. More specifically, the main shaft to be synchronized with the motor shaft (driven shaft) for driving the robot 400 from the shaft (main shaft) of the motor driving the conveyor 301 to the shaft (main shaft) of the motor driving the conveyor 302. Is switched, the speed of the spindle changes stepwise.
  • FIG. 3 is a timing chart showing speed changes of the main shaft and the driven shaft when the main shaft is switched.
  • FIG. 3 shows an example in which the spindle is switched during the synchronous operation.
  • the vertical axis represents speed
  • the horizontal axis represents time.
  • the speed of the main shaft A for conveying the work 350 in the X direction is represented by V1x
  • the speed of the main shaft B for conveying the work 350 in the Y direction is represented by V1y
  • the speed of the driven shaft when the robot 400 is operated in the X direction is represented by V2x
  • the speed of the driven shaft when the robot 400 is operated in the Y direction is represented by V2y.
  • the main shaft A operates while the main shaft B does not operate, so that only the speed V1x of the main shaft A occurs.
  • the driven shaft operates only in the X direction at a speed obtained by multiplying the speed of the main shaft by a predetermined gear ratio.
  • the main spindle A when the main spindle is switched from the main spindle A to the main spindle B at the timing t1 (for example, the timing when the work 350 reaches the switching point P shown in FIG. 1), the main spindle A operates while the main spindle B operates thereafter. Therefore, only the speed V1y of the main shaft B occurs. Since the main spindle A and the main spindle B have different speeds, when the main spindle is switched from the main spindle A to the main spindle B, the speed of the main spindle changes stepwise. Furthermore, since the operation directions of the main shaft A and the main shaft B are different, the operation direction of the main shaft changes by switching the main shaft from the main shaft A to the main shaft B.
  • the driven shaft changes its operation direction from the X direction to the Y direction so as to follow the switching of the main shaft, and further attempts to change to a different speed in a stepwise manner.
  • a mechanical shock is applied to the driven shaft and the robot 400 connected to the driven shaft, and the driven shaft and the robot 400 may vibrate. Therefore, for example, as shown in FIG. 3, immediately after the timing t1, vibration occurs in the driven shaft in the direction opposite to the X direction and also occurs in the Y direction.
  • FIG. 3 shows an example in which the main shaft is switched during the synchronous operation. However, even when the main shaft is changed during the chase operation, the speed of the main shaft changes in a step-like manner. Vibration occurs.
  • FIGS. 4 and 5 are timing charts showing speed changes of the main shaft and the driven shaft when the main shaft is reversed.
  • FIGS. 4 and 5 show an example in which the spindle is reversed during the synchronous operation.
  • FIG. 4 and 5 show an example in which the spindle is reversed during the synchronous operation.
  • the vertical axis represents speed
  • the horizontal axis represents time.
  • the speed of the main shaft for transporting the work 350 in the X direction or the Y direction is represented by V1.
  • the speed of the driven shaft when the robot 400 is operated in the X direction or the Y direction so as to follow the workpiece 350 is represented by V2.
  • the main shaft operates in a fixed direction such as the X direction or the Y direction.
  • the driven shaft operates in the same direction as the main shaft at a speed obtained by multiplying the speed of the main shaft by a predetermined gear ratio.
  • the speed of the main shaft changes in the ⁇ V1 direction opposite to the direction before the reversal, and the speed of the main shaft changes stepwise. Further, since the main shaft is reversed, the operation direction of the main shaft changes in the opposite direction. Thereafter, when the main shaft is reversed again at the timing t2, thereafter, the speed of the main shaft occurs in the V1 direction opposite to the direction before the reversal, and the speed of the main shaft changes stepwise. Further, since the main shaft is reversed, the operation direction of the main shaft changes in the opposite direction.
  • the driven shaft reverses and tries to change to a different speed stepwise so as to follow the reverse of the main shaft.
  • a mechanical shock is applied to the driven shaft and the robot 400 connected to the driven shaft, and the driven shaft and the robot 400 may vibrate. Therefore, for example, as shown in FIGS. 4 and 5, immediately after the timing t1 and immediately after the timing t2, vibration occurs with respect to the driven shaft.
  • vibration of the main shaft when the main shaft is reversed, vibration may also occur to the main shaft itself. Therefore, vibration of the main shaft also occurs to the driven shaft that operates following the main shaft. It occurs as it is.
  • the control device 60 adds the selected characteristic to the other characteristic data corresponding to the speed change of the main shaft. The data is switched, and the driven axis performs the chase operation again.
  • the control device 60 sets the characteristic data of the characteristic data for specifying the amount of movement of the driven shaft with respect to the position of the main shaft. Based on A, the driven shaft performs a chase operation. After that, when the main axis is switched in the Y direction at the switching point P while performing the synchronous operation in the X direction, the control device 60 performs a chase operation on the driven axis based on the characteristic data B of the characteristic data.
  • control device 60 selects the optimum characteristic data according to the type of the spindle and the speed of the spindle from the previously stored characteristic data, and operates the driven axis based on the selected characteristic data. As a result, an appropriate speed command value can be output to the driven shaft, and as a result, vibration generated in the driven shaft can be suppressed.
  • control device 60 The application example of the control device 60 according to the present embodiment has been described above. Hereinafter, the configuration and processing of control device 60 according to the present embodiment will be described in more detail.
  • FIG. 6 is a schematic diagram showing a schematic configuration of the PLC system.
  • the PLC system SYS includes a PLC 1, a servo driver 3 and a remote IO terminal 5 connected to the PLC 1 via a field network 2, and a detection switch 6 and a relay 7, which are field devices.
  • the touch display 17 and the support device 8 are connected to the PLC 1 via the connection cable 10 and the HUB 16.
  • the PLC 1 includes a CPU unit 13 that executes main arithmetic processing, one or more IO units 14, and a special unit 15. These units are configured to exchange data with each other via the PLC system bus 11. These units are supplied with power of an appropriate voltage by the power supply unit 12. Since each unit configured as the PLC 1 is provided by a PLC maker, the PLC system bus 11 is generally independently developed and used for each PLC maker. On the other hand, regarding the field network 2, the standards and the like are often published so that products of different manufacturers can be connected to each other.
  • the IO unit 14 is a unit related to general input / output processing, and controls input / output of binarized data such as ON / OFF. That is, the IO unit 14 collects information indicating whether the sensor such as the detection switch 6 is detecting any target (ON) or not detecting any target (OFF). . The IO unit 14 outputs either an activation command (ON) or an inactivation command (OFF) to an output destination such as the relay 7 or the actuator.
  • the special unit 15 has functions not supported by the IO unit 14, such as input / output of analog data, temperature control, and communication using a specific communication method.
  • the field network 2 transmits various data exchanged with the CPU unit 13.
  • various types of industrial Ethernet can be used as the field network 2.
  • industrial Ethernet registered trademark
  • EtherCAT registered trademark
  • Profinet IRT a registered trademark
  • MECHATROLINK registered trademark
  • Powerlink a registered trademark
  • SERCOS registered trademark
  • CIP @ Motion a configuration in which EtherCAT (registered trademark) is adopted as the field network 2 will be exemplified.
  • a PLC system SYS having both the PLC system bus 11 and the field network 2 is illustrated, but a system configuration in which only one is mounted may be adopted.
  • all units may be connected by the field network 2.
  • the servo driver 3 may be directly connected to the PLC system bus 11 without using the field network 2.
  • a communication unit of the field network 2 may be connected to the PLC system bus 11 so that the CPU unit 13 communicates with a device connected to the field network 2 via the communication unit.
  • the servo driver 3 is connected to the CPU unit 13 via the field network 2 and drives the servo motor 4 according to a command value from the CPU unit 13. Specifically, the servo driver 3 receives command values, such as a position command value, a speed command value, and a torque command value, from the PLC 1 at regular intervals. In addition, the servo driver 3 obtains a position and a speed (typically, the current position) from a detector such as a position sensor (rotary encoder) or a torque sensor connected to the axis of the servo motor 4 (the above-described main shaft and driven shaft). And the actual position of the servo motor 4 such as torque.
  • a position and a speed typically, the current position
  • a detector such as a position sensor (rotary encoder) or a torque sensor connected to the axis of the servo motor 4 (the above-described main shaft and driven shaft).
  • the actual position of the servo motor 4 such as torque.
  • the servo driver 3 sets a command value from the CPU unit 13 to a target value, and performs feedback control using the actually measured value as a feedback value. That is, the servo driver 3 adjusts the current for driving the servo motor 4 so that the actually measured value approaches the target value.
  • the servo driver 3 may be called a servo motor amplifier.
  • FIG. 6 shows an example of a system in which the servo motor 4 and the servo driver 3 are combined.
  • a system in which a pulse motor and a pulse motor driver are combined can be adopted.
  • a remote IO terminal 5 is further connected to the field network 2 of the PLC system SYS.
  • the remote IO terminal 5 basically performs processing related to general input / output processing, similarly to the IO unit 14.
  • the remote IO terminal 5 includes a communication coupler 52 for performing a process related to data transmission in the field network 2 and one or more IO units 53. These units are configured to exchange data with each other via the remote IO terminal bus 51.
  • the CPU unit 13 controls a control target by executing predetermined processing with reference to data provided from the touch display 17 or the support device 8 via the HUB 16.
  • the touch display 17 is a display that receives a data input operation by a user such as a designer or an operator of the PLC system SYS, and includes a touch panel (not shown) that receives a touch operation input by the user.
  • the support device 8 which can be an integrated development environment, is implemented, for example, by executing a program using hardware (for example, a general-purpose personal computer) that conforms to a general-purpose architecture.
  • the support device 8 has an optical drive (not shown).
  • the support device 8 is provided with a recording medium 9 (for example, an optical recording medium such as a DVD (Digital Versatile Disc)) that temporarily stores a computer-readable program. The program stored in it is read and installed.
  • Various programs executed by the support device 8 may be installed via the recording medium 9 or may be installed by being downloaded from a server device on a network. Further, the function provided by the support device 8 according to the present embodiment may be realized by using a part of a module provided by the OS.
  • the data provided from the support device 8 to the CPU unit 13 includes programs and parameters used for controlling the control target. These data are created by a designer of the PLC system SYS or the like.
  • the programs executed by the CPU unit 13 include a user program and a system program.
  • the user program is a combination of instructions arbitrarily created according to the control target, and can be arbitrarily created and modified by the user.
  • the user program typically includes source code composed of one or more instructions described in accordance with the international standard IEC61131-3 defined by the International Electrotechnical Commission (IEC).
  • the system program is a program for implementing an execution environment for executing a user program and controlling hardware included in the CPU unit 13. Basically, the system program is installed in the CPU unit 13 in advance.
  • the host PC 18 is connected to the CPU unit 13.
  • the host PC 18 has, for example, a database function, and collects event logs and the like output by the CPU unit 13 by exchanging necessary data with the CPU unit 13.
  • FIG. 7 is a schematic diagram illustrating a hardware configuration of the CPU unit 13.
  • the CPU unit 13 includes a microprocessor 100, a chipset 102, a main memory 104, a nonvolatile memory 106, a system timer 108, a PLC system bus controller 120, a field network controller 140, , USB connector 110.
  • the chipset 102 and other components are respectively connected via various buses.
  • the microprocessor 100 and the chipset 102 are typically configured according to a general-purpose computer architecture. That is, the microprocessor 100 interprets and executes the instruction codes sequentially supplied from the chipset 102 according to the internal clock. The chipset 102 exchanges internal data with various connected components and generates an instruction code necessary for the microprocessor 100. Further, the chipset 102 has a function of caching data and the like obtained as a result of execution of arithmetic processing in the microprocessor 100.
  • the CPU unit 13 has a main memory 104 and a nonvolatile memory 106 as storage units.
  • the main memory 104 is a volatile storage area (RAM) and holds various programs to be executed by the microprocessor 100 after the power to the CPU unit 13 is turned on.
  • the main memory 104 is also used as a working memory when the microprocessor 100 executes various programs.
  • a main memory 104 a device such as a DRAM (Dynamic Random Access Memory) or an SRAM (Static Random Access Memory) is used.
  • the nonvolatile memory 106 holds data such as a real-time OS (Operating System), a system program of the PLC 1, a user program, a motion calculation program, and system setting parameters in a nonvolatile manner. These programs and data are copied to the main memory 104 so that the microprocessor 100 can access them, if necessary.
  • a nonvolatile memory 106 a semiconductor memory such as a flash memory can be used.
  • a magnetic recording medium such as a hard disk drive or an optical recording medium such as a DVD-RAM (Digital Versatile Disk Random Access Memory) can be used.
  • the system timer 108 generates an interrupt signal at regular intervals and provides it to the microprocessor 100.
  • an interrupt signal is generated at a plurality of different cycles depending on hardware specifications.
  • an interrupt signal is generated at an arbitrary cycle by an OS (Operating System) or a BIOS (Basic Input Output System). It can also be set to generate a signal. Utilizing the interrupt signal generated by the system timer 108, a control operation for each motion control cycle described later is realized.
  • the CPU unit 13 has a PLC system bus controller 120 and a field network controller 140 as communication circuits.
  • the PLC system bus controller 120 controls data exchange via the PLC system bus 11. More specifically, the PLC system bus controller 120 includes a DMA (Dynamic Memory Access) control circuit 122, a PLC system bus control circuit 124, and a buffer memory 126. Note that the PLC system bus controller 120 is internally connected to the PLC system bus 11 via the PLC system bus connector 130.
  • DMA Dynamic Memory Access
  • the buffer memory 126 is a transmission buffer for data output to other units via the PLC system bus 11 (hereinafter also referred to as “output data”), and is input from other units via the PLC system bus 11. It functions as a reception buffer for data (hereinafter also referred to as “input data”).
  • the output data created by the arithmetic processing by the microprocessor 100 is stored primitively in the main memory 104. Then, the output data to be transferred to the specific unit is read from the main memory 104 and temporarily stored in the buffer memory 126. The input data transferred from another unit is temporarily stored in the buffer memory 126 and then moved to the main memory 104.
  • the DMA control circuit 122 transfers output data from the main memory 104 to the buffer memory 126, and transfers input data from the buffer memory 126 to the main memory 104.
  • the PLC system bus control circuit 124 performs a process of transmitting output data of the buffer memory 126 and a process of receiving input data and storing the data in the buffer memory 126 with another unit connected to the PLC system bus 11. .
  • the PLC system bus control circuit 124 provides the functions of the physical layer and the data link layer in the PLC system bus 11.
  • the field network controller 140 controls data exchange via the field network 2. That is, the field network controller 140 controls transmission of output data and reception of input data according to the standard of the field network 2 used.
  • the field network controller 140 includes a DMA control circuit 142, a field network control circuit 144, and a buffer memory 146.
  • the field network controller 140 is internally connected to the PLC system bus 11 via the PLC system bus connector 150.
  • the DMA control circuit 142 transfers output data from the main memory 104 to the buffer memory 146, and transfers input data from the buffer memory 146 to the main memory 104.
  • the field network control circuit 144 performs a process of transmitting output data of the buffer memory 146 and a process of receiving input data and storing the data in the buffer memory 146 with another device connected to the field network 2.
  • the field network control circuit 144 provides physical layer and data link layer functions in the field network 2.
  • the USB connector 110 is an interface for connecting the support device 8 and the CPU unit 13. Typically, programs and the like that can be executed by the microprocessor 100 of the CPU unit 13 and transferred from the support device 8 are taken into the PLC 1 via the USB connector 110.
  • FIG. 8 is a schematic diagram illustrating a software configuration executed by the CPU unit 13.
  • the software executed by the CPU unit 13 has three layers: a real-time OS 200, a system program 210, and a user program 236.
  • the real-time OS 200 is designed according to the computer architecture of the CPU unit 13 and provides a basic execution environment for the microprocessor 100 to execute the system program 210 and the user program 236.
  • This real-time OS is typically provided by a PLC manufacturer or a specialized software company.
  • the system program 210 is a software group for providing a function as the PLC 1.
  • the system program 210 includes a scheduler program 212, an output processing program 214, an input processing program 216, a sequence instruction operation program 232, a motion operation program 234, and other system programs 220.
  • the output processing program 214 and the input processing program 216 are executed continuously (integrally). Therefore, these programs may be collectively referred to as an IO processing program 218.
  • the user program 236 is created according to the control purpose of the user. That is, the program is arbitrarily designed according to a line (process) to be controlled by using the PLC system SYS.
  • the user program 236 realizes the control purpose of the user in cooperation with the sequence command operation program 232 and the motion operation program 234. That is, the user program 236 realizes programmed operation by using instructions, functions, functional modules, and the like provided by the sequence instruction operation program 232 and the motion operation program 234. Therefore, the user program 236, the sequence command operation program 232, and the motion operation program 234 may be collectively referred to as a control program 230.
  • the microprocessor 100 of the CPU unit 13 executes the system program 210 and the user program 236 stored in the storage unit.
  • the user program 236 is created according to a control purpose (for example, a target line or process) of the user.
  • the user program 236 is typically in the form of an object program that can be executed by the microprocessor 100 of the CPU unit 13.
  • the user program 236 is generated by compiling a source program described in a ladder language or the like in the support device 8 or the like. Then, the generated user program 236 in the form of an object program is transferred from the support device 8 to the CPU unit 13 via the connection cable 10 and stored in the nonvolatile memory 106 or the like.
  • the scheduler program 212 controls the start of processing in each execution cycle and the restart of processing after the processing is interrupted for the output processing program 214, the input processing program 216, and the control program 230. More specifically, the scheduler program 212 controls the execution of the user program 236 and the motion calculation program 234.
  • the output processing program 214 rearranges output data generated by executing the user program 236 (control program 230) into a format suitable for transfer to the PLC system bus controller 120 and / or the field network controller 140.
  • the output processing program 214 issues such an instruction.
  • the input processing program 216 rearranges input data received by the PLC system bus controller 120 and / or the field network controller 140 into a format suitable for use by the control program 230.
  • the sequence instruction operation program 232 is called when a certain sequence instruction used in the user program 236 is executed, and is executed to realize the contents of the instruction.
  • the motion calculation program 234 is a program that is executed in accordance with an instruction from the user program 236 and calculates a command value to be output to a motor driver such as the servo driver 3 or a pulse motor driver.
  • the other system programs 220 collectively show programs for realizing various functions of the PLC 1 other than the programs individually shown in FIG.
  • Other system programs 220 include a program 222 for setting the cycle of the motion control cycle.
  • the cycle of the motion control cycle can be set appropriately according to the control purpose.
  • the user inputs information specifying the cycle of the motion control cycle to the support device 8.
  • the input information is transferred from the support device 8 to the CPU unit 13.
  • the program 222 for setting the cycle of the motion control cycle stores the information from the support device 8 in the nonvolatile memory 106 and generates an interrupt signal at the cycle of the motion control cycle designated by the system timer 108.
  • the system timer 108 is set.
  • the program 222 for setting the cycle of the motion control cycle is executed, so that information specifying the cycle of the motion control cycle is read from the nonvolatile memory 106, and the read information is read.
  • the system timer 108 is set.
  • the real-time OS 200 provides an environment for switching and executing a plurality of programs over time.
  • the user program 236 includes an instruction to periodically determine whether or not a control start condition relating to motor movement is satisfied.
  • the logic is to determine whether or not a work (for example, the work 350 shown in FIG. 1) on which some treatment is performed by the driving force of the motor has been transported to a predetermined treatment position.
  • the user program 236 further includes a command to start the motion control in response to the determination that the condition for starting the control is satisfied. With the start of the motion control, execution of a motion command is instructed.
  • the motion calculation program 234 corresponding to the instructed motion command is started, and firstly, an initial process necessary for calculating a command value for the motor is executed each time the motion calculation program 234 is executed.
  • the command value in the first cycle is calculated. Therefore, the initial process and the first command value calculation process are the processes that the started motion calculation program 234 should perform in the first execution. Thereafter, the command value in each cycle is sequentially calculated.
  • FIG. 9 is a schematic diagram illustrating a functional configuration of the control device 60.
  • the spindle A servo driver 31 and the spindle A servo motor 41 are a servo driver and a servo motor connected to the spindle A, respectively, and correspond to the servo driver 3 and the servo motor 4 shown in FIG.
  • the spindle B servo driver 32 and the spindle B servo motor 42 are a servo driver and a servo motor connected to the spindle B, respectively, and correspond to the servo driver 3 and the servo motor 4 shown in FIG.
  • the driven axis A servo driver 33 and the driven axis A servo motor 43 are a servo driver and a servo motor connected to the driven axis A, respectively, and correspond to the servo driver 3 and the servo motor 4 shown in FIG.
  • the driven axis B servo driver 34 and the driven axis B servo motor 44 are a servo driver and a servo motor connected to the driven axis B, respectively, and correspond to the servo driver 3 and the servo motor 4 shown in FIG.
  • the control device 60 includes a network processing unit 61, a spindle A command value calculation unit 71, a spindle B command value calculation unit 72, a spindle speed change detection unit 66, an acquisition unit 68, It includes a vibration detection unit 67, a storage unit 62, a selection unit 63, a calculation unit 70, a filter processing unit 78, and a filter processing unit 79.
  • a control program 230 a program 222 for setting a cycle of a motion control cycle, a scheduler program 212, and the like.
  • the network processing unit 61 is an interface for connecting to the touch display 17, the host PC 18, and the support device 8 described with reference to FIG.
  • the spindle A command value calculation unit 71 outputs a speed command value to the spindle A servo driver 31.
  • the spindle A servo driver 31 drives the spindle A servo motor 41 according to the speed command value from the spindle A command value calculation unit 71.
  • the spindle A which is the axis of the spindle A servomotor 41, operates (rotates) at a speed based on the speed command value from the control device 60.
  • the spindle B command value calculation unit 72 outputs a speed command value to the spindle B servo driver 32.
  • the spindle B servo driver 32 drives the spindle B servo motor 42 according to the speed command value from the spindle B command value calculation unit 72.
  • the spindle B which is the axis of the spindle B servo motor 42, operates (rotates) at a speed based on the speed command value from the control device 60.
  • the spindle A command value calculation unit 71 and the spindle B command value calculation unit 72 receive at least one of execution of the user program 236, a command from the touch display 17, a command from the support device 8, and a command from the host PC 18. Based on the output, the speed command value is output or the output of the speed command value is stopped. Thereby, the spindle changes.
  • the speed command value is output from the spindle A command value calculation unit 71.
  • the spindle to be operated is switched from the spindle A to the spindle B.
  • the speed command value is output from the spindle A command value calculation unit 71.
  • the spindle to be operated is switched from the spindle B to the spindle A.
  • the spindle A command value calculation unit 71 and the spindle B command value calculation unit 72 correspond to an embodiment of a “switching unit” that switches the spindle.
  • FIG. 10 is a schematic diagram for explaining switching of the spindle.
  • the control device 60 is realized by the CPU unit 13, and is connected to each of the touch display 17, the support device 8, and the host PC 18 via the hub 16.
  • any of the main axis A and the main axis B can be selected by operating the pull-down button 17a.
  • the support device 8 by operating the pull-down button 8a, either the spindle A or the spindle B can be selected.
  • the host PC 18 is configured to execute a program 18a for switching the spindle when the switching condition is satisfied.
  • a program 18a when the spindle A (Slave A) exceeds a position value (1000) corresponding to a target switching point (for example, the switching point P shown in FIG. 1), the spindle B (MasterB) is selected. It is supposed to be.
  • the user program 236 executed by the control device 60 when the spindle A (Slave A) exceeds the position value (1000) corresponding to the target switching point (for example, the switching point P shown in FIG. 1). , Main spindle B (MasterB) is selected.
  • the main spindle can be automatically switched by executing the program by the host PC 18 or the control device 60.
  • the spindle A command value calculation unit 71 further performs at least one of execution of the user program 236, a command from the touch display 17, a command from the host PC 18, and a command from the support device 8.
  • a speed command value for reversing the spindle A For example, if the speed command value output from the spindle A command value calculation unit 71 is a speed having a speed vector opposite to the current speed of the spindle A, the spindle A is reversed.
  • the spindle B command value calculation unit 72 determines the spindle B based on at least one of execution of the user program 236, a command from the touch display 17, a command from the host PC 18, and a command from the support device 8.
  • a speed command value for inversion It is also possible to output a speed command value for inversion.
  • the speed command value output from the spindle B command value calculation unit 72 is a speed having a speed vector opposite to the current speed of the spindle B, the spindle B is reversed.
  • the spindle A command value calculation unit 71 and the spindle B command value calculation unit 72 correspond to an embodiment of a “reversing unit” that reverses the operation direction of the spindle.
  • a detection path between a path for detecting the speed command value from the spindle A command value calculation unit 71 and a path for detecting the output value from the spindle A servomotor 41 as the current feedback value of the spindle A. Is provided.
  • a path for detecting the speed command value from the spindle B command value calculation unit 72 and a path for detecting the output value from the spindle B servo motor 42 as the feedback current value of the spindle B are A changeover switch 74 for switching the detection path is provided.
  • the changeover switch 73 and the changeover switch 74 are connected to the changeover switch 65, respectively.
  • the changeover switch 65 sets a path corresponding to the spindle A based on at least one of execution of the user program 236, a command from the touch display 17, a command from the host PC 18, and a command from the support device 8,
  • the path to the spindle speed change detection unit 66 is switched between the path corresponding to B and the path corresponding to B.
  • the changeover switch 65 connects the path corresponding to the spindle A to the path leading to the spindle speed change detection unit 66.
  • the changeover switch 65 connects the path corresponding to the main spindle B and the path to the main spindle speed change detection unit 66.
  • the spindle speed change detection unit 66 detects switching or reversal of the spindle by detecting a speed change of the spindle. Specifically, the spindle speed change detecting unit 66 determines whether or not the speed of the spindle has changed stepwise based on the speed command value from the spindle A command value calculation unit 71 or the current feedback value from the spindle A servomotor 41. It is determined whether or not the spindle A has been switched.
  • V [t] is the speed of the main shaft at time t
  • V [t-1] is the speed of the main shaft at time t-1
  • is a threshold value, which can be arbitrarily set according to conditions of the transfer device to which the control device 60 is applied. For example, in the case of the example in FIG.
  • may be set based on the moment of the force around the main shaft in the conveyors 301 and 302.
  • the spindle speed change detection unit 66 detects that the path has been switched by the changeover switch 65 from the state connected to the path corresponding to the spindle A to the state connected to the path corresponding to the spindle B.
  • the spindle speed change detection unit 66 detects that the path has been switched by the switch 65 from the state connected to the path corresponding to the spindle B to the state connected to the path corresponding to the spindle A.
  • the spindle speed change detecting section 66 determines whether or not the spindle A has been reversed based on the speed command value from the spindle A command value calculation section 71 or the current feedback value from the spindle A servomotor 41.
  • the spindle speed change detection unit 66 determines whether or not the speed of the spindle has changed stepwise based on the speed command value from the spindle B command value calculation unit 72 or the current feedback value from the spindle B servo motor 42. By doing so, it is determined whether or not the spindle B has been reversed.
  • the main shaft speed change detection unit 66 may determine whether the main shaft has been reversed using a sign indicating positive or negative.
  • the main shaft speed change detection unit 66 determines that the main shaft has been reversed in the positive direction of the speed vector, and V [t-1] If ⁇ 0 and V [t] ⁇ 0, it may be determined that the main axis has been reversed in the negative direction of the velocity vector.
  • the acquisition unit 68 acquires the current speed of the spindle for each control cycle. Specifically, the acquisition unit 68 acquires the current speed of the spindle A based on the speed command value from the spindle A command value calculation unit 71 or the current feedback value from the spindle A servomotor 41, and acquires the acquired spindle A Is output to the cam calculation unit 75. Further, the acquisition unit 68 acquires the current speed of the spindle B based on the speed command value from the spindle B command value calculation unit 72 or the current feedback value from the spindle B servomotor 42, and calculates the acquired speed of the spindle B. Output to the cam calculation unit 75.
  • the main shaft vibration detecting section 67 detects vibration of the main shaft. Specifically, the spindle vibration detection unit 67 determines whether the speed of the spindle A has exceeded a predetermined upper limit based on the speed command value from the spindle A command value calculation unit 71 or the current feedback value from the spindle A servomotor 41. It is determined whether or not the value has fallen below a predetermined lower limit. In addition, the spindle vibration detection unit 67 determines whether the speed of the spindle B has exceeded a predetermined upper limit based on the speed command value from the spindle B command value calculation unit 72 or the current feedback value from the spindle B servo motor 42. Alternatively, it is determined whether the value has fallen below a predetermined lower limit.
  • FIG. 11 is a timing chart for explaining detection of vibration of the main shaft.
  • the speed of the spindle is ideally constant based on the speed command value, but varies slightly in detail. Therefore, as shown in FIG. 11, an upper limit value and a lower limit value of the speed are provided according to the type of the spindle and the speed command value for the spindle in order to detect the fluctuation of the speed of the spindle due to the vibration. Then, when the speed of the main shaft exceeds the upper limit value or falls below the lower limit value, that is, when the absolute value of the speed of the main shaft exceeds the limit value, the main shaft vibration detecting unit 67 causes the main shaft to vibrate. Identify that.
  • the spindle vibration detection unit 67 may specify that the spindle is vibrating when the absolute value of the spindle speed exceeds the limit value even once, but the spindle speed detection unit 67 determines the speed of the spindle during a predetermined period.
  • the number of times the absolute value exceeds the limit value exceeds a predetermined limit number it may be specified that the main shaft is vibrating.
  • the number of times that the speed of the spindle exceeds the upper limit exceeds the predetermined number of times during the vibration generation period from timing t1 to t2. Therefore, in this case, the main shaft vibration detecting unit 67 determines that the main shaft is vibrating.
  • the main shaft vibration detecting unit 67 when the main shaft vibration detecting unit 67 further determines that the main shaft is vibrating, the main shaft vibration detecting unit 67 obtains the information by switching the changeover switch corresponding to the active main shaft among the changeover switches 73 and 74. The acquisition target by the unit 68 is switched.
  • the changeover switch 65 is connected to the path corresponding to the spindle A.
  • the changeover switch 73 is connected to the output of the main shaft A command value calculation unit 71. Therefore, the acquisition unit 68 acquires the current speed of the spindle A based on the speed command value from the spindle A command value calculation unit 71.
  • the changeover switch 73 is connected to the output of the spindle A servomotor 41. Therefore, the acquisition unit 68 acquires the current speed of the spindle A based on the current feedback value from the spindle A servomotor 41.
  • the changeover switch 65 is connected to the path corresponding to the spindle B.
  • the changeover switch 74 is connected to the output of the spindle B command value calculation unit 72. Therefore, the acquisition unit 68 acquires the current speed of the spindle B based on the speed command value from the spindle B command value calculation unit 72.
  • the changeover switch 74 is connected to the output of the spindle B servo motor 42. Therefore, the acquisition unit 68 acquires the current speed of the spindle B based on the current feedback value from the spindle B servo motor 42.
  • the storage unit 62 stores cam data for realizing a chase operation (cam operation) by the driven shaft.
  • the cam data is data for specifying the amount of movement of the driven shaft with respect to the position of the main shaft.
  • the storage unit 62 stores a plurality of types of cam data according to the type and speed of the spindle.
  • the cam data is one embodiment of “characteristic data”.
  • FIG. 12 is a graph for explaining the cam curve.
  • the cam curve shown in FIG. 12 is a graph of one of the plurality of cam data stored in the storage unit 62.
  • the horizontal axis defines the position of the main shaft
  • the vertical axis defines the position of the driven shaft. That is, the cam curve defines the position of the driven shaft corresponding to the position of the main shaft.
  • the start position of the chase operation is represented by 0.000 mm
  • the start position of the synchronous operation is represented by 1.000 mm.
  • the user can manually specify the start position of the synchronization operation by using the touch display 17 and the support device 8. Therefore, the cam curve changes according to the start position of the synchronization operation specified by the user. Further, by using the touch display 17 and the support device 8, the user can change the range of the horizontal axis and the vertical axis of the cam curve, and can change the inclination (acceleration and deceleration of the driven axis). .
  • the cam data is specified in the form of a data table.
  • the data table in which the cam data is defined is also referred to as a cam table.
  • FIG. 13 is a diagram showing a data structure of the CAM table.
  • the cam table stores data in which the position of the driven shaft is associated with the position of the main shaft.
  • a straight line is complemented using the data stored in the CAM table, a cam curve shown in FIG. 12 is obtained.
  • the target position of the driven shaft is set at predetermined intervals (for example, every 0.001) from the position of the main shaft of 0.000, which is the start position of the chase operation, to 1.000, which is the start position of the synchronous operation. Is stipulated. An index number is assigned to each data. By using such a cam table, it is possible to specify the amount of movement of the driven shaft with respect to the position of the main shaft.
  • a plurality of cam tables as shown in FIG. 13 are stored in the storage unit 62 according to the type and speed of the spindle.
  • cam data is not limited to the data defined in the data table format, but may be defined based on any of a linear expression and a polynomial expression.
  • the cam data is represented by a polynomial, the following formula may be used as the amount of movement of the driven shaft.
  • f (x) ax n + bx n-1 + cx n-2 + ...
  • x is the position of the main axis
  • n is a constant
  • a”, “b”, and “c” are coefficients.
  • FIG. 14 is a schematic diagram for explaining switching of a cam curve.
  • any one of a straight line, a constant acceleration, and a cycloid can be selected as the cam curve.
  • the synchronization start position can be designated.
  • the support device 8 by operating the pull-down button 8b, any one of a straight line, a constant acceleration, and a cycloid can be selected as the cam curve.
  • the synchronization start position can be designated by inputting the synchronization start position in the item 17c.
  • the support device 8 also displays the cam curve graph 17d, the user can visually set the cam curve.
  • the selection unit 63 selects any one of the plurality of cam data stored in the storage unit 62 and outputs the selected cam data to the calculation unit 70.
  • the calculation unit 70 calculates a speed commanded to the driven axis as a speed command value.
  • the output unit 81 When operating the driven axis A, the output unit 81 outputs the speed command value calculated by the calculation unit 70 to the driven axis A servo driver 33.
  • the output unit 82 When operating the driven shaft B, the output unit 82 outputs the speed command value calculated by the calculation unit 70 to the driven shaft B servo driver 34.
  • the calculation unit 70 includes a cam calculation unit 75, a driven shaft A synchronization calculation unit 76, and a driven shaft B synchronization calculation unit 77.
  • the cam calculation unit 75 calculates a gear ratio by which the command speed for the driven shaft is multiplied, and outputs the calculated gear ratio to the driven shaft A synchronization calculation unit 76 or the driven shaft B synchronization calculation unit 77. Specifically, when the chase operation is performed, the cam calculation unit 75 specifies the current position of the main spindle based on the current speed of the main spindle acquired by the acquisition unit 68 for each control cycle. The cam calculation unit 75 specifies the target position of the driven shaft corresponding to the current position of the main shaft by referring to the cam data. The cam calculation unit 75 specifies the amount of movement of the driven shaft in the next control cycle from the difference between the current position of the driven shaft and the target position of the driven shaft specified based on the cam data.
  • the cam calculation unit 75 calculates a gear ratio for operating the driven shaft in the next control cycle by the specified movement amount.
  • the cam calculation unit 75 outputs the gear ratio to the driven shaft A synchronization calculation unit 76 when the driven shaft A is performing the chase operation, and outputs the gear ratio when the driven shaft B is performing the chase operation.
  • the gear ratio is output to the axis B synchronous calculation unit 77.
  • the cam calculation unit 75 calculates a predetermined gear ratio that is determined in advance according to the current speed of the main spindle acquired by the acquisition unit 68 for each control cycle.
  • the cam calculation unit 75 outputs a predetermined gear ratio to the driven shaft A synchronization calculation unit 76 when the driven shaft A is performing the synchronous operation, and outputs the predetermined gear ratio when the driven shaft B is performing the synchronous operation.
  • the driven axis A synchronous operation section 76 or the driven axis B synchronous operation section 77 multiplies the current speed of the main shaft acquired by the acquisition section 68 for each control cycle by the gear ratio acquired from the cam operation section 75, and outputs the driven axis. And outputs a speed command value indicating the speed to the driven axis A servo driver 33 or the driven axis B servo driver 34 via the output unit 81 or the output unit 82.
  • the acquisition unit 68 obtains the main shaft speed based on the speed command value for the main shaft.
  • the driven axis B synchronous calculation unit 77 calculates the speed of the driven axis based on the speed command value.
  • the acquisition unit 68 acquires the speed of the main shaft based on the current feedback value of the main shaft.
  • the synchronous calculation unit 77 calculates the speed of the driven shaft based on the current feedback value. In other words, the driven shaft synchronizes with the main shaft based on the speed command value for the main shaft when the main shaft is not vibrating, and synchronizes with the main shaft based on the current feedback value of the main shaft when the main shaft is vibrating.
  • the filter processing unit 78 performs a filtering process on the speed command value of the driven axis output from the driven axis A synchronous calculation unit 76. Whether or not the filter processing is performed by the filter processing unit 78 can be switched by a changeover switch 83 provided at the output of the driven axis A synchronization calculation unit 76. When the filter processing is performed by the filter processing unit 78, the speed command value after the filter processing is output to the driven axis A servo driver 33.
  • the filter processing unit 79 performs a filtering process on the speed command value of the driven axis output from the driven axis B synchronous calculation unit 77. Whether or not the filter processing is performed by the filter processing unit 79 can be switched by a changeover switch 84 provided at the output of the driven axis B synchronous calculation unit 77. When the filter processing is performed by the filter processing unit 79, the speed command value after the filter processing is output to the driven axis B servo driver 3.
  • the filter processing will be described.
  • the cam data is switched by the selection unit 63 based on the user program 236.
  • the touch display 17, the host PC, and the support device 8 it is possible to specify the cam data to be selected and to switch the cam data being selected.
  • the position of the driven shaft may change rapidly within the control cycle in which the cam data is switched.
  • such a situation may occur when the position of the driven shaft is significantly different between the cam table before the switching and the cam table after the switching.
  • the servo driver of the driven shaft may hunt. Therefore, in the control cycle in which the switching of the cam data is performed, a filtering process for smoothly changing the movement amount of the driven shaft is performed so as to suppress a rapid change in the position on the driven shaft that occurs when the cam data is switched. It is preferred to do so.
  • the filter processing is realized by the microprocessor 100 using a smoothing filter.
  • the smoothing filter preferably has a low-pass characteristic in order to smooth a sudden change in the position of the driven shaft.
  • Typical smoothing filters having low-pass characteristics include, for example, a first-order lag filter, a high-order lag filter, and a moving average filter.
  • G (s) 1 / (T ⁇ s + 1)
  • T is a time constant.
  • a low-pass filter has a characteristic that the phase of a signal is delayed. The degree of phase delay and the degree of smoothness are in a trade-off relationship. If the phase delay is eliminated after the switching of the cam data, “T” needs to be set small.
  • the FFT analysis unit 20 is mounted on the support device 8.
  • the FFT analysis unit 20 performs a frequency analysis of the natural vibration frequency of the driven shaft by the fast Fourier transform.
  • the support device 8 instructs the selection unit 63 to select the optimal cam data that does not excite the resonance frequency based on the analysis result by the FFT analysis unit 20.
  • FIG. 15 is a flowchart illustrating the switching process during the chase operation performed by the control device 60.
  • the control device 60 uses the spindle speed change detection unit 66 to determine whether the spindle has been switched or reversed (S2). If the main spindle has not been switched or inverted (NO in S2), control device 60 proceeds to the process in S14.
  • control device 60 determines whether or not the main shaft is vibrating by the main shaft vibration detecting unit 67 (S4).
  • control device 60 switches the synchronization target of the driven shaft from the current feedback value of the main shaft to the speed command value for the main shaft (S6), and shifts to the process of S8. .
  • the control device 60 determines whether the main shaft is not vibrating (NO in S4) or after the process of S6, whether or not there is a cam data switching instruction (S8). That is, it is determined whether or not an instruction to switch the cam data has been given by any of the touch display 17, the host PC, the support device 8, and the user program 236.
  • control device 60 switches the cam data (S10).
  • the control device 60 selects the spindle data from the plurality of cam data stored in the storage unit 62.
  • the other cam data corresponding to the speed change is specified.
  • the control device 60 specifies cam data corresponding to the speed of the main spindle after the switching when the main spindle is switched, and corresponds to the speed of the main spindle after the reversal when the main spindle is reversed. Specify cam data. Then, the control device 60 switches the currently selected cam data to the specified cam data.
  • control device 60 If there is no cam data switching instruction (NO in S8), or after the process in S10, the control device 60 starts the following operation of the main shaft by the driven shaft while referring to the cam data after the switching (S12). Thereafter, the control device 60 determines whether the main shaft and the driven shaft have reached the synchronization start position (S14).
  • control device 60 repeats the process of S14 again.
  • control device 60 starts the synchronization operation (S16), and ends the switching process during the chase operation.
  • FIG. 16 is a flowchart illustrating the switching processing during the synchronous operation performed by the control device 60.
  • the control device 60 uses the spindle speed change detection unit 66 to determine whether or not the spindle has been switched or reversed (S22). If the main spindle has not been switched or inverted (NO in S22), control device 60 proceeds to the process in S34.
  • control device 60 determines whether or not the main shaft is vibrating by the main shaft vibration detection unit 67 (S24). When determining that the main shaft is vibrating (YES in S24), control device 60 switches the synchronization target of the driven shaft from the current feedback value of the main shaft to the speed command value for the main shaft (S26), and proceeds to the process of S28. .
  • control device 60 determines whether or not an instruction to switch cam data has been given (S28). That is, it is determined whether or not an instruction to switch the cam data has been given by any of the touch display 17, the host PC, the support device 8, and the user program 236.
  • control device 60 switches the cam data (S30). For example, when the user program 236 gives an instruction to switch the cam data when the spindle is switched or reversed, the control device 60 selects the spindle data from the plurality of cam data stored in the storage unit 62. The other cam data corresponding to the speed change is specified. Specifically, the control device 60 specifies cam data corresponding to the speed of the main spindle after the switching when the main spindle is switched, and corresponds to the speed of the main spindle after the reversal when the main spindle is reversed. Specify cam data. Then, the control device 60 switches the currently selected cam data to the specified cam data.
  • control device 60 If there is no cam data switching instruction (NO in S28), or after the process in S30, the control device 60 starts the following operation of the main shaft by the driven shaft while referring to the cam data after the switching (S32). Thereafter, the control device 60 determines whether the main shaft and the driven shaft have reached the synchronization start position (S34).
  • control device 60 repeats the process of S34 again.
  • control device 60 starts the synchronization operation (S36), and ends the synchronous operation switching process.
  • FIG. 17 is a timing chart showing speed changes of the main shaft and the driven shaft when the main shaft is switched.
  • the vertical axis represents speed
  • the horizontal axis represents time.
  • the speed of the main shaft is represented by V1
  • the speed of the driven shaft is represented by V2.
  • FIG. 17 shows an example in which the main shaft is switched from the main shaft A to the main shaft B.
  • a chase operation to chase the main shaft A by the driven shaft is started.
  • the driven shaft operates while accelerating or decelerating based on the speed command value determined based on the cam data. More specifically, the driven shaft accelerates in the period from timing t0 to t1, maintains a constant speed in the period from timing t1 to t2, and then decelerates in the period from timing t2 to t3, thereby being the same as the main shaft A. It reaches the synchronization start position at the timing. After timing t3 after reaching the synchronization start position, the main shaft A and the driven shaft operate while synchronizing at a speed based on a predetermined gear ratio.
  • the control device 60 selects the cam data corresponding to the speed of the spindle B as the cam data to be referred to when the driven axis performs the chase operation with respect to the spindle B, and selects the selected spindle data as the selected cam data.
  • the cam data corresponding to the speed A is switched.
  • a chase operation to chase the main shaft B by the driven shaft is started.
  • the driven axis accelerates during a period from timing t4 to t5, maintains a constant speed during a period from timing t5 to t6, and then decelerates during a period from timing t6 to t7, so that the synchronization start position is the same as that of the main shaft B.
  • the main shaft B and the driven shaft operate synchronously at a speed based on a predetermined gear ratio.
  • the cam data corresponding to the speed of the main shaft B is included in the cam data of the selected main shaft A. Since the cam data is switched according to the speed, an appropriate speed command value can be output to the driven shaft. As a result, vibration generated in the driven shaft can be suppressed.
  • FIG. 18 is a timing chart showing speed changes of the main shaft and the driven shaft when the main shaft is reversed.
  • the vertical axis represents speed
  • the horizontal axis represents time.
  • the speed of the main shaft is represented by V1
  • the speed of the driven shaft is represented by V2.
  • the chase operation of following the main shaft by the driven shaft is started.
  • the driven shaft operates while accelerating or decelerating based on the speed command value determined based on the cam data. More specifically, the driven shaft accelerates during a period between timings t0 and t1, maintains a constant speed during a period between timings t1 and t2, and then decelerates during a period between timings t2 and t3, thereby achieving the same timing as the main shaft. Reaches the synchronization start position. After timing t3 after reaching the synchronization start position, the main shaft and the driven shaft operate synchronously at a speed based on a predetermined gear ratio.
  • the control device 60 selects the cam data corresponding to the speed of the inverted main shaft as the cam data to be referred to when the driven shaft performs the chase operation again with respect to the main shaft, and the selected cam data is selected.
  • the cam data corresponding to the speed of the spindle before a certain reversal is switched.
  • a chase operation to chase the main shaft by the driven shaft is started.
  • the driven shaft accelerates in the -V2 direction during the period between timings t4 and t5, maintains a constant speed during the period between timings t5 and t6, and then decelerates in the -V2 direction during the period between timings t6 and t7.
  • the main shaft and the driven shaft operate synchronously at a speed based on a predetermined gear ratio.
  • the control device 60 selects the cam data corresponding to the speed of the inverted main shaft as the cam data to be referred to when the driven shaft performs the chase operation again with respect to the main shaft, and the selected cam data is selected.
  • the cam data corresponding to the speed of the spindle before a certain reversal is switched.
  • a chase operation for chasing the main shaft by the driven shaft is started.
  • the driven shaft accelerates in the V2 direction during the period between timings t8 and t9, maintains a constant speed during the period between timings t9 and t10, and then decelerates in the V2 direction during the period between timings t10 and t11. It reaches the synchronization start position at the timing.
  • the main shaft and the driven shaft operate while synchronizing at a speed based on a predetermined gear ratio.
  • the cam data corresponding to the speed of the main shaft after the reversal includes the selected main shaft before the reversal. Since the cam data is switched according to the speed, the appropriate speed command value can be output to the driven shaft. As a result, vibration generated in the driven shaft can be suppressed.
  • the control device 60 outputs the speed obtained by multiplying the speed of the main shaft obtained in each control cycle by a predetermined gear ratio to the driven shaft as a speed command value, thereby outputting the speed of the driven shaft. Perform synchronous operation. Further, the control device 60 specifies the amount of movement of the driven shaft based on the position of the main shaft calculated from the speed of the main shaft acquired for each control cycle and the selected cam data, and determines the speed specified based on the amount of movement. By outputting the speed command value to the driven axis, the following operation of the driven axis is performed until the main axis and the driven axis reach the position where the synchronous operation starts.
  • the control device 60 switches the selected cam data to another cam data according to the change in the main shaft speed. Therefore, even when the speed of the main shaft changes stepwise during the operation of the main shaft and the driven shaft such as a chase operation and a synchronous operation, the control device 60 is compared with a device that uses the selected cam data as it is. Thus, a more appropriate speed command value can be output to the driven shaft. As a result, vibration generated in the driven shaft can be suppressed.
  • the speed of the spindle changes continuously instead of stepwise, it may be sufficient to slightly correct the selected cam data.However, when the speed of the spindle changes stepwise, Switching to the prepared appropriate cam data can reduce the processing load.
  • the control device 60 can switch the spindle based on an external command such as the touch display 17, the support device 8, and the host PC 18, so that user convenience is improved. Further, since the control device 60 can switch the selected cam data to the cam data corresponding to the switching of the main shaft, the control device 60 can output an appropriate speed command value to the driven shaft.
  • the control device 60 can switch the spindle based on an external command such as the touch display 17, the support device 8, and the host PC 18, so that user convenience is improved. Further, since the control device 60 can switch the selected cam data to the cam data corresponding to the switching of the main shaft, the control device 60 can output an appropriate speed command value to the driven shaft.
  • the control device 60 can reverse the operation direction of the spindle based on an external command such as the touch display 17, the support device 8, and the host PC 18, thereby improving user convenience. Further, since the control device 60 can switch the selected cam data to the cam data corresponding to the reversal of the main shaft, the control device 60 can output an appropriate speed command value to the driven shaft.
  • the control device 60 can detect the speed command value for the main spindle or the current feedback value of the main spindle as the speed to be detected in the control of the synchronous operation or the chase operation, so that control according to the situation can be performed.
  • the control device 60 can switch the synchronization target from the speed command value for the main shaft to the current feedback value of the main shaft when vibration of the main shaft is detected in the control of the synchronization operation or the chase operation. Operation is not affected.
  • cam data can be defined based on at least one of a data table, a linear expression, and a polynomial expression, the cam data can be defined in various forms, and user convenience is improved.
  • the control device 60 can select the cam data in consideration of the natural frequency of the driven shaft calculated by the fast Fourier transform by the FFT analysis unit 20, so that the vibration generated in the driven shaft can be suppressed.
  • the control device performs the following operation when the characteristic data is switched by the selection unit when the speed of the operating main spindle changes stepwise.
  • the apparatus further includes a filter processing unit for smoothing the movement amount of the axis.
  • the control device 60 can smooth the movement amount of the driven shaft in the switched cam data by filter processing. Further, it is possible to prevent the amount of movement of the driven shaft from changing abruptly due to the switching of the cam data.
  • the selecting unit responds to the speed change of the main shaft from among the plurality of characteristic data stored in the storage unit.
  • a control device that specifies other characteristic data and switches the selected characteristic data to the other characteristic data.
  • Configuration 2 As the main spindle, a first main spindle and a second main spindle that operates at a speed different from the speed of the first main spindle in a step-like manner are provided, A switching unit (65) for switching the main spindle from the first main spindle to the second main spindle based on an external command; When the main axis is switched by the switching unit during the operation of the main axis and the driven axis, the selection unit switches the characteristic data being selected to the other characteristic data according to the main axis switching, The control device according to Configuration 1.
  • the selecting section when the main axis is reversed by the reversing section during the operation of the main axis and the driven axis, switches the characteristic data being selected to the other characteristic data according to the reversal of the main axis,
  • the control device according to Configuration 1 or Configuration 2.
  • (Configuration 4) 4. The control device according to any one of Configurations 1 to 3, wherein the acquisition unit acquires a speed commanded to the spindle or an actually measured speed of the spindle.
  • a vibration detecting unit (67) for detecting vibration of the main shaft The control device according to configuration 4, wherein the acquisition unit switches an acquisition target from a speed commanded to the main shaft to an actually measured speed of the main shaft when the vibration of the main shaft is detected by the vibration detection unit.
  • Configuration 6 The control device according to any one of Configurations 1 to 5, wherein the characteristic data is data defined based on at least one of a data table, a linear expression, and a polynomial expression.
  • the calculating step includes: During a synchronous operation for synchronizing the operation of the driven shaft with the operation of the main shaft, a speed obtained by multiplying the speed of the main shaft obtained in the obtaining step by a predetermined ratio is calculated as the speed command value.
  • the position of the main shaft calculated from the speed of the main shaft obtained in the obtaining step and the characteristic data being selected by the selecting step. Based on the amount of movement of the driven shaft is specified, the speed specified based on the amount of movement is calculated as the speed command value, The step of selecting, when the speed of the main shaft changes stepwise during the operation of the main shaft and the driven shaft, according to the speed change of the main shaft from the plurality of characteristic data stored in the storage unit.

Abstract

制御装置(60)は、主軸(501,601)の動作に対して従動軸(551,651)の動作を同期させる同期動作中においては、取得した主軸の速度に所定の比率を乗算した速度を、従動軸の速度指令値として算出し、同期動作が開始する位置に従動軸が到達する前においては、取得した主軸の速度から算出される主軸の位置と選択中の特性データとに基づき従動軸の移動量を特定し、当該移動量に基づき特定した速度を、従動軸の速度指令値として算出し、主軸および従動軸の動作中に主軸の速度がステップ状に変化した場合、記憶していた複数の特性データの中から主軸の速度変化に応じた他の特性データを特定し、当該他の特性データに、選択中の特性データを切り替える。

Description

制御装置、および制御方法
 本発明は、主軸の動作に対して従動軸の動作を同期させる同期制御を制御周期ごとに実行する制御装置、および当該制御装置における制御方法に関する。
 プログラマブルロジックコントローラ(Programmable Logic Controller:以下「PLC」と称す)は、たとえば、ユーザプログラムを実行するマイクロプロセッサを含むCPU(Central Processing Unit)ユニット、外部のスイッチやセンサからの信号入力および外部のリレーやアクチュエータへの信号出力を担当するIO(Input Output)ユニットといった複数のユニットで構成される。これらのユニット間で、ユーザプログラム実行サイクルごとに、PLCシステムバスおよび/またはフィールドネットワークを経由してデータの授受をしながら、PLCは制御動作を実行する。
 機械、設備などの動作の制御としては、モータの運動を制御するためのモーション制御が含まれる場合がある。このようなモーション制御の典型例としては、位置決めテーブルやロボットといったメカニカル機構の位置決めを行うようなアプリケーションが想定される。
 モーション制御においては、主軸と従動軸とが何らかの関係を保ちつつ動作する一般的な動作方式として、ギア動作やカム動作が採用される。ギア動作は、主軸の速度に予め設けられた所定の比率であるギア比を乗算することで、従動軸に対する指令速度を決定する方式である。カム動作は、主軸の位置(位相)に対する従動軸の移動量(変位)を、制御周期ごとにカムテーブルに基づき特定することで、適切にギア比を変化させながら従動軸に対する指令速度を決定する方式である。
 モーション制御が実行されると、従動軸は、まずカム動作によって主軸を追いかけ、やがてギア動作の開始位置に到達すると、ギア動作に切り替えて、所定のギア比に基づき主軸の動作に同期しながら主軸に追従する。以下では、カム動作を「追いかけ動作」、ギア動作を「同期動作」ともいう。このような主軸と従動軸との同期に関しては、様々な技術が提案されている。
 たとえば、特開2017-33345号公報(特許文献1)には、マスタ軸とスレーブ軸とが同期する際にマスタ軸の速度に対するスレーブ軸の速度の同期倍率を徐々に変化させることで、同期開始時の機械的なショックを解消する技術が開示されている。
 また、特許第5803337号公報(特許文献2)には、追いかけ動作を従動軸が開始する際に、時間変位に対する従動軸の速度を表すカム曲線を作成し、作成したカム曲線を用いて従動軸に追いかけ動作を行わせることで、従動軸に加わる衝撃を緩和する技術が開示されている。
 また、特許第5325949号公報(特許文献3)には、主軸モータと送り軸モータとを同期運転してタッピング加工動作を行うタッピング加工装置において、主軸の動作が反転したときに送り軸の反転動作の追従性を向上させる反転補正量を作成し、作成した反転補正量を送り軸に対する速度指令値または送り軸制御部の速度制御ループの積分器に加算することで、主軸と送り軸との同期誤差を低減する技術が開示されている。
特開2017-33345号公報 特許第5803337号公報 特許第5325949号公報
 実使用においては、追いかけ動作中および同期動作中のいずれかで、動作対象となる主軸が切り替わったり、主軸の動作方向が反転したりすることで、主軸の速度がステップ状に変化する場合があり得る。すなわち、従動軸が追いかけ動作や同期動作によって主軸に追従している間に、動作中の主軸の速度が急激に(連続的ではなく)変化する場合があり、それに伴い、動作中の従動軸に対して機械的な衝撃が加わる虞がある。
 上述した特許文献1および特許文献2に開示された技術はいずれも、従動軸が、停止状態から追いかけ動作を開始する際に従動軸に生じる振動を抑えることに着目したものであり、主軸および従動軸の動作中に主軸の速度がステップ状に変化した場合に従動軸に生じる振動を抑えることまでは鑑みられていない。また、特許文献3に開示された技術では、主軸の動作が反転したときに送り軸の反転動作の追従性を向上させることに着目したものであり、やはり主軸および従動軸の動作中に主軸の速度がステップ状に変化した場合に従動軸に生じる振動を抑えることまでは鑑みられていない。
 本発明は、主軸の動作に対して従動軸の動作を同期させる制御において、主軸および従動軸の動作中に主軸の速度がステップ状に変化した場合に従動軸に生じる振動を抑える技術を提供することを目的とする。
 本開示の一例に従えば、主軸の動作に対して従動軸の動作を同期させる制御装置が提供される。制御装置は、制御周期ごとに主軸の速度を取得する取得部と、主軸の位置に対する従動軸の移動量を特定するための複数の特性データを記憶する記憶部と、複数の特性データのうちからいずれかの特性データを選択する選択部と、従動軸に対して指令する速度を速度指令値として算出する算出部と、算出部によって算出された速度指令値を従動軸に出力する出力部とを備え、算出部は、主軸の動作に対して従動軸の動作を同期させる同期動作中においては、取得部によって取得された主軸の速度に所定の比率を乗算した速度を、速度指令値として算出し、同期動作が開始する位置に従動軸が到達する前においては、取得部によって取得された主軸の速度から算出される主軸の位置と選択部によって選択中の特性データとに基づき従動軸の移動量を特定し、当該移動量に基づき特定される速度を、速度指令値として算出し、選択部は、主軸および従動軸の動作中に主軸の速度がステップ状に変化した場合、記憶部に記憶された複数の特性データの中から主軸の速度変化に応じた他の特性データを特定し、当該他の特性データに、選択中の特性データを切り替える。
 この開示によれば、制御周期ごとに取得された主軸の速度に所定の比率を乗算した速度が速度指令値として従動軸に出力されることで、従動軸の同期動作が行われる。また、制御周期ごとに取得された主軸の速度から算出される主軸の位置と選択中の特性データとに基づき従動軸の移動量が特定され、当該移動量に基づき特定される速度が速度指令値として従動軸に出力されることで、同期動作が開始する位置に主軸および従動軸が到達するまで従動軸の動作(追いかけ動作)が行われる。ここで、追いかけ動作や同期動作のような主軸および従動軸の動作中において主軸の速度がステップ状に変化した場合、選択中の特性データをそのまま用いてしまうと、適切な速度指令値を従動軸に出力することができない虞があるが、この開示によれば、主軸および従動軸の動作中に主軸の速度がステップ状に変化した場合、主軸の速度変化に応じた他の特性データに、選択中の特性データが切り替えられるため、適切な速度指令値を従動軸に出力することができる。その結果、従動軸に生じる振動を抑えることができる。
 上述の開示において、主軸として、第1主軸と、当該第1主軸の速度とはステップ状に異なる速度で動作する第2主軸とが設けられており、制御装置は、外部からの指令に基づき第1主軸から第2主軸に主軸を切り替える切替部をさらに備え、選択部は、主軸および従動軸の動作中に切替部によって主軸が切り替えられた場合、主軸の切り替えに応じた他の特性データに、選択中の特性データを切り替える。
 この開示によれば、外部からの指令によって主軸を切り替えることができるため、ユーザの利便性が向上し、さらに、主軸の切り替えに応じた他の特性データに、選択中の特性データが切り替えられるため、適切な速度指令値を従動軸に出力することができる。
 上述の開示において、制御装置は、外部からの指令に基づき主軸の動作方向を反転させる反転部をさらに備え、選択部は、主軸および従動軸の動作中に反転部によって主軸が反転された場合、主軸の反転に応じた他の特性データに、選択中の特性データを切り替える。
 この開示によれば、外部からの指令によって主軸の動作方向を反転させることができるため、ユーザの利便性が向上し、さらに、主軸の反転に応じた他の特性データに、選択中の特性データが切り替えられるため、適切な速度指令値を従動軸に出力することができる。
 上述の開示において、取得部は、主軸に対して指令された速度、または主軸の実測された速度を取得する。
 この開示によれば、同期動作や追いかけ動作の制御において、検出対象となる速度として指令値または実測値を検出することができるため、状況に応じた制御を行うことができる。
 上述の開示において、制御装置は、主軸の振動を検出する振動検出部をさらに備え、取得部は、振動検出部によって主軸の振動が検出された場合、主軸に対して指令された速度から主軸の実測された速度に取得対象を切り替える。
 この開示によれば、同期動作や追いかけ動作の制御において、主軸の振動が検出された場合、主軸に対して指令された速度から主軸の実測された速度に取得対象を切り替えることができるため、主軸の振動によって従動軸の動作が影響されない。
 上述の開示において、特性データは、データテーブル、1次式、および多項式の少なくともいずれかに基づき規定されたデータである。
 この開示によれば、様々な形態で特性データを規定することができ、ユーザの利便性が向上する。
 上述の開示において、選択部は、高速フーリエ変換によって算出された従動軸の固有振動数に基づき特性データを選択する。
 この開示によれば、従動軸の固有振動数を考慮して特性データが選択されるため、従動軸に生じる振動を抑えることができる。
 上述の開示において、制御装置は、同期動作が開始する位置に従動軸が到達する前において、動作中の主軸の速度がステップ状に変化したときに選択部によって特性データが切り替えられた場合、従動軸の移動量を平滑するフィルタ処理部をさらに備える。
 この開示によれば、動作中の主軸の速度がステップ状に変化したときに選択中の特性データが切り替えられた場合、切替後の特性データにおける従動軸の移動量が平滑されるため、特性データの切り替えによって従動軸の移動量が急激に変化することを防止することができる。
 本開示の別の一例に従えば、主軸の動作に対して従動軸の動作を同期させる制御装置における制御方法が提供される。制御方法は、制御周期ごとに主軸の速度を取得するステップと、主軸の位置に対する従動軸の移動量を特定するための複数の特性データを記憶するステップと、複数の特性データのうちからいずれかの特性データを選択するステップと、従動軸に対して指令する速度を速度指令値として算出するステップと、算出するステップによって算出された速度指令値を従動軸に出力するステップとを含み、算出するステップは、主軸の動作に対して従動軸の動作を同期させる同期動作中においては、取得するステップによって取得された主軸の速度に所定の比率を乗算した速度を、速度指令値として算出し、同期動作が開始する位置に従動軸が到達する前においては、取得するステップによって取得された主軸の速度から算出される主軸の位置と選択するステップによって選択中の特性データとに基づき従動軸の移動量を特定し、当該移動量に基づき特定される速度を、速度指令値として算出し、選択するステップは、主軸および従動軸の動作中に主軸の速度がステップ状に変化した場合、記憶部に記憶された複数の特性データの中から主軸の速度変化に応じた他の特性データを特定し、当該他の特性データに、選択中の特性データを切り替える。
 この開示によれば、制御周期ごとに取得された主軸の速度に所定の比率を乗算した速度が速度指令値として従動軸に出力されることで、従動軸の同期動作が行われる。また、制御周期ごとに取得された主軸の速度から算出される主軸の位置と選択中の特性データとに基づき従動軸の移動量が特定され、当該移動量に基づき特定される速度が速度指令値として従動軸に出力されることで、同期動作が開始する位置に主軸および従動軸が到達するまで従動軸の動作(追いかけ動作)が行われる。ここで、追いかけ動作や同期動作のような主軸および従動軸の動作中において主軸の速度がステップ状に変化した場合、選択中の特性データをそのまま用いてしまうと、適切な速度指令値を従動軸に出力することができない虞があるが、この開示によれば、主軸および従動軸の動作中に主軸の速度がステップ状に変化した場合、主軸の速度変化に応じた他の特性データに、選択中の特性データが切り替えられるため、適切な速度指令値を従動軸に出力することができる。その結果、従動軸に生じる振動を抑えることができる。
 本発明によれば、主軸の動作に対して従動軸の動作を同期させる制御において、主軸および従動軸の動作中に主軸の速度がステップ状に変化した場合に従動軸に生じる振動を抑える技術を提供することができる。
本実施の形態に係る制御装置の適用例を説明するための模式図である。 モーション制御の概要を視覚的に説明するための模式図である。 主軸が切り替わった場合における主軸および従動軸の速度変化を示すタイミングチャートである。 主軸が反転した場合における主軸および従動軸の速度変化を示すタイミングチャートである。 主軸が反転した場合における主軸および従動軸の速度変化を示すタイミングチャートである。 PLCシステムの概略構成を示す模式図である。 CPUユニットのハードウェア構成を示す模式図である。 CPUユニットで実行されるソフトウェア構成を示す模式図である。 制御装置の機能構成を示す模式図である。 主軸の切り替えについて説明するための模式図である。 主軸の振動検出について説明するためのタイミングチャートである。 カム曲線について説明するためのグラフである。 カムテーブルのデータ構造を示す図である。 カム曲線の切り替えについて説明するための模式図である。 制御装置が実行する追いかけ動作中切替処理を示すフローチャートである。 制御装置が実行する同期動作中切替処理を示すフローチャートである。 主軸が切り替わった場合における主軸および従動軸の速度変化を示すタイミングチャートである。 主軸が反転した場合における主軸および従動軸の速度変化を示すタイミングチャートである。
 本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
 <A.適用例>
 まず、図1を参照して、本発明が適用される場面の一例について説明する。図1は、本実施の形態に係る制御装置の適用例を説明するための模式図である。以下の説明においては、制御装置の一例として、主として、PLC(プログラマブルコントローラ)を想定する。
 本実施の形態に係る制御装置60は、工業製品の生産ラインや物流システムにおける搬送装置などに適用され得る。たとえば、図1に示す物流システムにおいては、X方向に向けてワーク350を搬送するコンベア301、およびY方向に向けてワーク350を搬送するコンベア302など、複数種類の搬送経路が設けられている。これらの搬送経路は、システム上、搬送速度が互いに異なる場合がある。この例においても、コンベア301と、コンベア302とでは、搬送速度が互いに異なる。
 上述したような搬送方向および搬送速度が互いに異なる複数のコンベア301,302によってワーク350が搬送される。たとえば、コンベア301によってX方向にワーク350が搬送された後、切替ポイントPにおいて、コンベア301からコンベア302へとワーク350を搬送するコンベアが切り替わり、切替後においては、コンベア302によってY方向にワーク350が搬送される。
 コンベアによって搬送されるワーク350に対しては、ロボット400が追従する。ロボット400は、先行動作するコンベア301によって搬送されるワーク350を追いかけ、やがてワーク350に追いつくと、コンベア301の動作と同期しながらワーク350を追従する。
 コンベア301からコンベア302へとワーク350を搬送するコンベアが切り替わると、ロボット400は、先行動作するコンベア302によって搬送されるワーク350を再び追いかけ、やがてワーク350に追いつくと、コンベア302の動作と同期しながらワーク350を追従する。
 ロボット400は、所定期間に亘ってコンベア302の動作と同期しながらワーク350を追従すると、図示しないアームでワーク350を掴み取り、目的の場所までワーク350を持ち運ぶ。
 このように、物流システムにおいて、制御装置60は、コンベア301,302、およびロボット400の動作を制御するためのモーション制御を実行する。これにより、制御装置60は、先行動作するコンベア301,302によって搬送されるワーク350をロボット400に追いかけさせる「追いかけ動作」と、コンベア302の動作と同期しながらロボット400にワーク350を追従させる「同期動作」とを実現する。
 図2は、モーション制御の概要を視覚的に説明するための模式図である。なお、図2に示す例において、モータ500およびモータ600は、図1に示すコンベア301,302を動作させる駆動源に対応する。すなわち、モータ500の主軸501やモータ600の主軸601は、コンベア301,302を動作させるモータの軸に対応する。また、モータ550およびモータ650は、図1に示すロボット400を動作させる駆動源に対応する。すなわち、モータ550の従動軸551やモータ650の従動軸651は、ロボット400を動作させるモータの軸に対応する。
 図2(a)を参照しながらモーション制御によって実現される追いかけ動作(カム動作)について説明する。図2(a)に示すように、モータ500の軸である主軸501にはカム502が固定されており、主軸501の回転に伴いカム502が回転する。また、モータ550の軸である従動軸551には、カム502に接する接触子552が固定されており、カム502の回転に伴い接触子552が回転する。このような構成によれば、モータ500の駆動によって主軸501の位置(位相)が変化すると、従動軸551の移動量(変位,回転量)が変化する。
 制御装置60は、主軸501の位置に対する従動軸551の移動量を特定するための特性データを、主軸501の種類に応じて予め記憶している。制御装置60は、動作中の主軸501の種類に応じて適切な特性データを選択し、選択した特性データに基づき、従動軸551に対する指令速度を決定する。
 図2(b)を参照しながらモーション制御によって実現される同期動作(ギア動作)について説明する。図2(b)に示すように、モータ600の軸である主軸601にはギア602が固定されており、主軸601の回転に伴いギア602が回転する。また、モータ650の軸である従動軸651には、ギア602に係合するギア652が固定されており、ギア602の回転に伴いギア652が回転する。ギア602の歯数とギア652の歯数とから、ギア比(歯車比)が決定される。
 制御装置60は、動作中の主軸601の速度にギア比を乗算することで、従動軸651に対する指令速度を決定する。
 図1に示す例によると、制御装置60は、コンベアによって搬送されるワーク350をロボット400に追従させる追いかけ動作においては、コンベアの主軸の位置に対するロボット400の従動軸の移動量を特定するための特性データに基づき、ロボット400の従動軸の速度を決定し、決定した速度に基づきロボット400の従動軸を制御する。
 また、制御装置60は、コンベアの動作と同期しながらロボット400にワーク350を追従させる同期動作においては、コンベアの主軸の速度にギア比を乗算することで、ロボット400の従動軸の速度を決定し、決定した速度に基づきロボット400の従動軸を制御する。
 ここで、コンベア301からコンベア302へとワーク350を搬送するコンベアが切り替わることによって、主軸の速度がステップ状に変化する場合がある。具体的には、コンベア301を駆動させるモータの軸(主軸)から、コンベア302を駆動させるモータの軸(主軸)へと、ロボット400を駆動させるモータの軸(従動軸)の同期対象となる主軸が切り替わると、主軸の速度がステップ状に変化する。
 追いかけ動作中や同期動作中において、主軸が切り替わることによって主軸の速度がステップ状に変化すると、主軸に追従する従動軸に対して機械的な衝撃が加わる虞がある。たとえば、図3は、主軸が切り替わった場合における主軸および従動軸の速度変化を示すタイミングチャートである。なお、図3では、同期動作中に主軸が切り替わった場合の例を示す。
 図3においては、縦軸を速度、横軸を時間で表す。また、X方向にワーク350を搬送させる主軸Aの速度をV1x、Y方向にワーク350を搬送させる主軸Bの速度をV1yで表す。X方向にロボット400を動作させた場合の従動軸の速度をV2x、Y方向にロボット400を動作させた場合の従動軸の速度をV2yで表す。
 図3に示すように、タイミングt0~t1の期間においては、主軸Aが動作する一方で主軸Bが動作していないため、主軸Aの速度V1xのみが生じる。これに対して、従動軸は、主軸の速度に所定のギア比を乗算した速度でX方向のみに動作する。
 ここで、タイミングt1(たとえば、図1に示す切替ポイントPにワーク350が到達したタイミング)で主軸Aから主軸Bへと主軸が切り替わると、それ以降、主軸Bが動作する一方で主軸Aが動作しないため、主軸Bの速度V1yのみが生じる。主軸Aと主軸Bとでは速度が異なるため、主軸Aから主軸Bへと主軸が切り替わることで、主軸の速度がステップ状に変化する。さらに、主軸Aと主軸Bとでは動作方向が異なるため、主軸Aから主軸Bへと主軸が切り替わることで、主軸の動作方向が変化する。
 これに対して、従動軸は、主軸の切り替えに追従するように、X方向からY方向へと動作方向を変更し、さらに、ステップ状に異なる速度に変化しようとする。その結果、従動軸、および従動軸に接続されるロボット400に対して機械的な衝撃が加わり、従動軸やロボット400が振動する虞がある。したがって、たとえば、図3に示すように、タイミングt1直後において、従動軸に対して、X方向と反対方向に振動が生じるとともに、Y方向にも振動が生じる。
 なお、図3においては、同期動作中に主軸が切り替わった場合の例を示したが、追いかけ動作中に主軸が切り替わった場合においても、主軸の速度がステップ状に変化することで、従動軸に振動が生じる。
 また、追いかけ動作中や同期動作中において、主軸が切り替わることに限らず、主軸が反転することも考えられる。主軸が反転することによって主軸の速度がステップ状に変化すると、主軸に追従する従動軸に対して機械的な衝撃が加わる虞がある。たとえば、図4および図5は、主軸が反転した場合における主軸および従動軸の速度変化を示すタイミングチャートである。なお、図4および図5では、同期動作中に主軸が反転した場合の例を示す。なお、図1に示す例を想定すると、主軸の反転としては、主軸がX方向に動作している場合にX方向とは反対の方向に反転する場合、あるいは、主軸がY方向に動作している場合にY方向とは反対の方向に反転する場合が想定される。
 図4および図5においては、縦軸を速度、横軸を時間で表す。また、X方向またはY方向にワーク350を搬送させる主軸の速度をV1で表す。また、ワーク350に追従するようにしてX方向またはY方向にロボット400を動作させた場合の従動軸の速度をV2で表す。
 図4および図5に示すように、タイミングt0~t1の期間においては、主軸がX方向またはY方向などの一定方向に動作している。これに対して、従動軸は、主軸の速度に所定のギア比を乗算した速度で主軸と同じ方向に動作する。
 ここで、タイミングt1で主軸が反転すると、それ以降、主軸の速度が反転前とは逆方向の-V1方向に転じ、主軸の速度がステップ状に変化する。さらに、主軸が反転するため、主軸の動作方向が逆方向に変化する。その後、タイミングt2で主軸が再び反転すると、それ以降、主軸の速度が反転前とは逆方向のV1方向に生じ、主軸の速度がステップ状に変化する。さらに、主軸が反転するため、主軸の動作方向が逆方向に変化する。
 これに対して、従動軸は、主軸の反転に追従するように、反転してステップ状に異なる速度に変化しようとする。その結果、従動軸、および従動軸に接続されるロボット400に機械的な衝撃が加わり、従動軸やロボット400が振動する虞がある。したがって、たとえば、図4および図5に示すように、タイミングt1直後およびタイミングt2直後において、従動軸に対して振動が生じる。
 さらに、図5に示すように、主軸が反転した場合には、主軸自身に対しても振動が生じることがあるため、主軸に追従して動作する従動軸に対しても、やはり主軸の振動がそのまま生じる。
 なお、図4および図5においては、同期動作中に主軸が反転した場合の例を示したが、追いかけ動作中に主軸が反転した場合においても、主軸の速度がステップ状に変化することで、従動軸に振動が生じる。
 以上のように、主軸および従動軸の動作中に主軸の速度がステップ状に変化した場合、従動軸に振動が生じることがある。そこで、本実施の形態においては、制御装置60は、主軸および従動軸の動作中に主軸の速度がステップ状に変化した場合、主軸の速度変化に応じた他の特性データに、選択中の特性データを切り替えて、再び従動軸に追いかけ動作を行わせる。
 たとえば、図1に示す例の場合、制御装置60は、X方向に向けて主軸が動作している間では、主軸の位置に対する従動軸の移動量を特定するための特性データのうちの特性データAに基づき従動軸に追いかけ動作を行わせる。その後、制御装置60は、X方向において同期動作を行っている間に切替ポイントPで主軸がY方向に切り替わると、今度は、特性データのうちの特性データBに基づき従動軸に追いかけ動作を行わせる。
 このように、制御装置60は、予め記憶していた特性データの中から、主軸の種類や主軸の速度に応じて最適な特性データを選択し、選択した特性データに基づき従動軸を動作させることで、適切な速度指令値を従動軸に出力することができ、その結果、従動軸に生じる振動を抑えることができる。
 以上、本実施の形態に係る制御装置60の適用例について説明した。以下では、より詳細に、本実施の形態に係る制御装置60の構成および処理について説明する。
 <B.システム構成>
 図6は、PLCシステムの概略構成を示す模式図である。図6に示すように、PLCシステムSYSは、PLC1と、フィールドネットワーク2を介してPLC1に接続されるサーボドライバ3およびリモートIOターミナル5と、フィールド機器である検出スイッチ6およびリレー7とを含む。また、PLC1には、接続ケーブル10およびHUB16を介してタッチディスプレイ17およびサポート装置8が接続される。
 PLC1は、主たる演算処理を実行するCPUユニット13と、1つ以上のIOユニット14と、特殊ユニット15とを含む。これらのユニットは、PLCシステムバス11を介して、データを互いに遣り取りできるように構成されている。また、これらのユニットには、電源ユニット12によって適切な電圧の電源が供給される。なお、PLC1として構成される各ユニットは、PLCメーカーが提供するものであるので、PLCシステムバス11は、一般にPLCメーカーごとに独自に開発され、使用されている。これに対して、フィールドネットワーク2については、異なるメーカーの製品同士が接続できるように、その規格などが公開されている場合も多い。
 CPUユニット13の詳細については、図7を参照して後述する。IOユニット14は、一般的な入出力処理に関するユニットであり、オン/オフといった2値化されたデータの入出力を司る。すなわち、IOユニット14は、検出スイッチ6などのセンサが何らかの対象物を検出している状態(オン)および何らの対象物も検出していない状態(オフ)のいずれであるかという情報を収集する。また、IOユニット14は、リレー7やアクチュエータといった出力先に対して、活性化するための指令(オン)および不活性化するための指令(オフ)のいずれかを出力する。
 特殊ユニット15は、アナログデータの入出力、温度制御、特定の通信方式による通信といった、IOユニット14ではサポートしない機能を有する。
 フィールドネットワーク2は、CPUユニット13と遣り取りされる各種データを伝送する。フィールドネットワーク2としては、典型的には、各種の産業用イーサネット(登録商標)を用いることができる。産業用イーサネット(登録商標)としては、たとえば、EtherCAT(登録商標)、Profinet IRT、MECHATROLINK(登録商標)-III、Powerlink、SERCOS(登録商標)-III、CIP Motionなどが知られており、これらのうちのいずれを採用してもよい。本実施の形態に係るPLCシステムSYSでは、典型的に、EtherCAT(登録商標)をフィールドネットワーク2として採用する場合の構成について例示する。
 なお、図6に示す例では、PLCシステムバス11およびフィールドネットワーク2の両方を有するPLCシステムSYSを例示するが、一方のみを搭載するシステム構成を採用してもよい。たとえば、フィールドネットワーク2ですべてのユニットを接続してもよい。あるいは、フィールドネットワーク2を使用せずに、サーボドライバ3をPLCシステムバス11に直接接続してもよい。さらに、フィールドネットワーク2の通信ユニットをPLCシステムバス11に接続し、CPUユニット13から当該通信ユニット経由で、フィールドネットワーク2に接続された機器との間の通信を行うようにしてもよい。
 サーボドライバ3は、フィールドネットワーク2を介してCPUユニット13に接続されるとともに、CPUユニット13からの指令値に従ってサーボモータ4を駆動する。具体的には、サーボドライバ3は、PLC1から一定周期で、位置指令値、速度指令値、トルク指令値といった指令値を受ける。また、サーボドライバ3は、サーボモータ4の軸(前述の主軸や従動軸)に接続されている位置センサ(ロータリーエンコーダ)やトルクセンサといった検出器から、位置、速度(典型的には、今回位置と前回位置との差から算出される)、およびトルクといったサーボモータ4の動作に係る実測値を取得する。そして、サーボドライバ3は、CPUユニット13からの指令値を目標値に設定し、実測値をフィードバック値として、フィードバック制御を行う。すなわち、サーボドライバ3は、実測値が目標値に近づくようにサーボモータ4を駆動するための電流を調整する。なお、サーボドライバ3は、サーボモータアンプと称されることもある。
 また、図6では、サーボモータ4とサーボドライバ3とを組み合わせたシステム例を示すが、その他の構成、たとえば、パルスモータとパルスモータドライバとを組み合わせたシステムを採用することもできる。
 PLCシステムSYSのフィールドネットワーク2には、さらに、リモートIOターミナル5が接続されている。リモートIOターミナル5は、基本的には、IOユニット14と同様に、一般的な入出力処理に関する処理を行う。具体的には、リモートIOターミナル5は、フィールドネットワーク2でのデータ伝送に係る処理を行うための通信カプラ52と、1つ以上のIOユニット53とを含む。これらのユニットは、リモートIOターミナルバス51を介して、データを互いに遣り取りできるように構成される。
 CPUユニット13は、HUB16を介してタッチディスプレイ17またはサポート装置8から提供されるデータを参照して所定の処理を実行することで制御対象を制御する。タッチディスプレイ17は、PLCシステムSYSの設計者や作業者などのユーザによるデータの入力操作を受け付けるディスプレイであり、ユーザによるタッチ操作入力を受け付ける図示しないタッチパネルを設ける。
 統合開発環境となり得るサポート装置8は、一例として、汎用的なアーキテクチャに従うハードウェア(たとえば、汎用パソコン)を用いてプログラムを実行することで実現される。サポート装置8は、図示しない光学ドライブを有しており、コンピュータで読み取り可能なプログラムを非一過的に格納する記録媒体9(たとえば、DVD(Digital Versatile Disc)などの光学記録媒体)から、その中に格納されたプログラムが読み取られてインストールされる。
 サポート装置8で実行される各種プログラムは、記録媒体9を介してインストールされてもよいが、ネットワーク上のサーバ装置などからダウンロードされる形でインストールされてもよい。また、本実施の形態に係るサポート装置8が提供する機能は、OSが提供するモジュールの一部を利用する形で実現される場合もある。
 サポート装置8からCPUユニット13に対して提供されるデータには、制御対象を制御する際に用いられるプログラムやパラメータなどが含まれる。これらのデータは、PLCシステムSYSの設計者などによって作成される。
 CPUユニット13によって実行される上述したプログラムには、ユーザプログラムおよびシステムプログラムが含まれる。ユーザプログラムは、制御対象に応じて任意に作成される命令の組み合わせであり、ユーザが任意に作成および修正可能である。ユーザプログラムは、典型的には、国際電気標準会議(International Electrotechnical Commission:IEC)によって規定された国際規格IEC61131-3に従って記述された一または複数の命令からなるソースコードを含む。
 これに対して、システムプログラムは、ユーザプログラムを実行するための実行環境や、CPUユニット13に含まれるハードウェアの制御を実現するためのプログラムである。基本的には、システムプログラムは予めCPUユニット13にインストールされている。
 CPUユニット13には、上位PC18が接続されている。上位PC18は、たとえば、データベース機能を有しており、CPUユニット13との間で必要なデータを遣り取りすることで、CPUユニット13が出力するイベントログなどを収集する。
 <C.CPUユニットのハードウェア構成>
 次に、図7を参照して、CPUユニット13のハードウェア構成について説明する。図7は、CPUユニット13のハードウェア構成を示す模式図である。
 図7に示すように、CPUユニット13は、マイクロプロセッサ100と、チップセット102と、メインメモリ104と、不揮発性メモリ106と、システムタイマ108と、PLCシステムバスコントローラ120と、フィールドネットワークコントローラ140と、USBコネクタ110とを含む。チップセット102と他のコンポーネントとの間は、各種のバスを介してそれぞれ結合されている。
 マイクロプロセッサ100およびチップセット102は、典型的には、汎用的なコンピュータアーキテクチャに準じて構成される。すなわち、マイクロプロセッサ100は、チップセット102から内部クロックに従って順次供給される命令コードを解釈して実行する。チップセット102は、接続されている各種コンポーネントとの間で内部的なデータを遣り取りするとともに、マイクロプロセッサ100に必要な命令コードを生成する。さらに、チップセット102は、マイクロプロセッサ100での演算処理の実行の結果得られたデータなどをキャッシュする機能を有する。
 CPUユニット13は、記憶部として、メインメモリ104および不揮発性メモリ106を有する。
 メインメモリ104は、揮発性の記憶領域(RAM)であり、CPUユニット13への電源投入後にマイクロプロセッサ100で実行されるべき各種プログラムを保持する。また、メインメモリ104は、マイクロプロセッサ100による各種プログラムの実行時の作業用メモリとしても使用される。このようなメインメモリ104としては、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)といったデバイスが用いられる。
 一方、不揮発性メモリ106は、リアルタイムOS(Operating System)、PLC1のシステムプログラム、ユーザプログラム、モーション演算プログラム、システム設定パラメータといったデータを不揮発的に保持する。これらのプログラムやデータは、必要に応じて、マイクロプロセッサ100がアクセスできるようにメインメモリ104にコピーされる。このような不揮発性メモリ106としては、フラッシュメモリのような半導体メモリを用いることができる。あるいは、ハードディスクドライブのような磁気記録媒体や、DVD-RAM(Digital Versatile Disk Random Access Memory)のような光学記録媒体などを用いることもできる。
 システムタイマ108は、一定周期ごとに割り込み信号を発生してマイクロプロセッサ100に提供する。典型的には、ハードウェアの仕様によって、複数の異なる周期でそれぞれ割り込み信号を発生するように構成されるが、OS(Operating System)やBIOS(Basic Input Output System)などによって、任意の周期で割り込み信号を発生するように設定することもできる。このシステムタイマ108が発生する割り込み信号を利用して、後述するようなモーション制御サイクルごとの制御動作が実現される。
 CPUユニット13は、通信回路として、PLCシステムバスコントローラ120およびフィールドネットワークコントローラ140を有する。
 PLCシステムバスコントローラ120は、PLCシステムバス11を介したデータの遣り取りを制御する。より具体的には、PLCシステムバスコントローラ120は、DMA(Dynamic Memory Access)制御回路122と、PLCシステムバス制御回路124と、バッファメモリ126とを含む。なお、PLCシステムバスコントローラ120は、PLCシステムバスコネクタ130を介してPLCシステムバス11と内部的に接続される。
 バッファメモリ126は、PLCシステムバス11を介して他のユニットへ出力されるデータ(以下「出力データ」とも称す。)の送信バッファ、および、PLCシステムバス11を介して他のユニットから入力されるデータ(以下「入力データ」とも称す。)の受信バッファとして機能する。なお、マイクロプロセッサ100による演算処理によって作成された出力データは、原始的にはメインメモリ104に格納される。そして、特定のユニットへ転送されるべき出力データは、メインメモリ104から読み出されて、バッファメモリ126に一次的に保持される。また、他のユニットから転送された入力データは、バッファメモリ126に一次的に保持された後、メインメモリ104に移される。
 DMA制御回路122は、メインメモリ104からバッファメモリ126への出力データの転送、および、バッファメモリ126からメインメモリ104への入力データの転送を行う。
 PLCシステムバス制御回路124は、PLCシステムバス11に接続される他のユニットとの間で、バッファメモリ126の出力データを送信する処理および入力データを受信してバッファメモリ126に格納する処理を行う。典型的には、PLCシステムバス制御回路124は、PLCシステムバス11における物理層およびデータリンク層の機能を提供する。
 フィールドネットワークコントローラ140は、フィールドネットワーク2を介したデータの遣り取りを制御する。すなわち、フィールドネットワークコントローラ140は、用いられるフィールドネットワーク2の規格に従い、出力データの送信および入力データの受信を制御する。フィールドネットワークコントローラ140は、DMA制御回路142と、フィールドネットワーク制御回路144と、バッファメモリ146とを含む。なお、フィールドネットワークコントローラ140は、PLCシステムバスコネクタ150を介してPLCシステムバス11と内部的に接続される。
 DMA制御回路142は、メインメモリ104からバッファメモリ146への出力データの転送、および、バッファメモリ146からメインメモリ104への入力データの転送を行う。
 フィールドネットワーク制御回路144は、フィールドネットワーク2に接続される他の装置との間で、バッファメモリ146の出力データを送信する処理および入力データを受信してバッファメモリ146に格納する処理を行う。典型的には、フィールドネットワーク制御回路144は、フィールドネットワーク2における物理層およびデータリンク層の機能を提供する。
 USBコネクタ110は、サポート装置8とCPUユニット13とを接続するためのインターフェイスである。典型的には、サポート装置8から転送される、CPUユニット13のマイクロプロセッサ100で実行可能なプログラムなどは、USBコネクタ110を介してPLC1に取込まれる。
 <D.CPUユニットのソフトウェア構成>
 次に、図8を参照して、本実施の形態に係る各種機能を提供するためのソフトウェア群について説明する。これらのソフトウェアに含まれる命令コードは、適切なタイミングで読み出され、CPUユニット13のマイクロプロセッサ100によって実行される。図8は、CPUユニット13で実行されるソフトウェア構成を示す模式図である。
 図8に示すように、CPUユニット13で実行されるソフトウェアとしては、リアルタイムOS200と、システムプログラム210と、ユーザプログラム236との3階層になっている。
 リアルタイムOS200は、CPUユニット13のコンピュータアーキテクチャに応じて設計されており、マイクロプロセッサ100がシステムプログラム210およびユーザプログラム236を実行するための基本的な実行環境を提供する。このリアルタイムOSは、典型的には、PLCのメーカーあるいは専門のソフトウェア会社などによって提供される。
 システムプログラム210は、PLC1としての機能を提供するためのソフトウェア群である。具体的には、システムプログラム210は、スケジューラプログラム212と、出力処理プログラム214と、入力処理プログラム216と、シーケンス命令演算プログラム232と、モーション演算プログラム234と、その他のシステムプログラム220とを含む。なお、一般には出力処理プログラム214および入力処理プログラム216は、連続的(一体として)に実行されるので、これらのプログラムを、IO処理プログラム218と総称する場合もある。
 ユーザプログラム236は、ユーザにおける制御目的に応じて作成される。すなわち、PLCシステムSYSを用いて制御する対象のライン(プロセス)などに応じて、任意に設計されるプログラムである。
 ユーザプログラム236は、シーケンス命令演算プログラム232およびモーション演算プログラム234と協働して、ユーザにおける制御目的を実現する。すなわち、ユーザプログラム236は、シーケンス命令演算プログラム232およびモーション演算プログラム234によって提供される命令、関数、機能モジュールなどを利用することで、プログラムされた動作を実現する。そのため、ユーザプログラム236、シーケンス命令演算プログラム232、およびモーション演算プログラム234を、制御プログラム230と総称する場合もある。
 このように、CPUユニット13のマイクロプロセッサ100は、記憶部に格納されたシステムプログラム210およびユーザプログラム236を実行する。
 次に、各プログラムについてより詳細に説明する。ユーザプログラム236は、上述したように、ユーザにおける制御目的(たとえば、対象のラインやプロセス)に応じて作成される。ユーザプログラム236は、典型的には、CPUユニット13のマイクロプロセッサ100で実行可能なオブジェクトプログラム形式になっている。このユーザプログラム236は、サポート装置8などにおいて、ラダー言語などによって記述されたソースプログラムがコンパイルされることで生成される。そして、生成されたオブジェクトプログラム形式のユーザプログラム236は、サポート装置8から接続ケーブル10を介してCPUユニット13へ転送され、不揮発性メモリ106などに格納される。
 スケジューラプログラム212は、出力処理プログラム214、入力処理プログラム216、および制御プログラム230について、各実行サイクルでの処理開始および処理中断後の処理再開を制御する。より具体的には、スケジューラプログラム212は、ユーザプログラム236およびモーション演算プログラム234の実行を制御する。
 出力処理プログラム214は、ユーザプログラム236(制御プログラム230)の実行によって生成された出力データを、PLCシステムバスコントローラ120および/またはフィールドネットワークコントローラ140へ転送するのに適した形式に再配置する。PLCシステムバスコントローラ120またはフィールドネットワークコントローラ140が、マイクロプロセッサ100からの、送信を実行するための指示を必要とする場合は、出力処理プログラム214がそのような指示を発行する。
 入力処理プログラム216は、PLCシステムバスコントローラ120および/またはフィールドネットワークコントローラ140によって受信された入力データを、制御プログラム230が使用するのに適した形式に再配置する。
 シーケンス命令演算プログラム232は、ユーザプログラム236で使用されるある種のシーケンス命令が実行されるときに呼び出されて、その命令の内容を実現するために実行されるプログラムである。
 モーション演算プログラム234は、ユーザプログラム236による指示に従って実行され、サーボドライバ3やパルスモータドライバといったモータドライバに対して出力する指令値を算出するプログラムである。
 その他のシステムプログラム220は、図8において個別に示したプログラム以外の、PLC1の各種機能を実現するためのプログラム群をまとめて示したものである。その他のシステムプログラム220は、モーション制御サイクルの周期を設定するプログラム222を含む。
 モーション制御サイクルの周期は、制御目的に応じて適宜設定することができる。典型的には、モーション制御サイクルの周期を指定する情報をユーザがサポート装置8へ入力する。すると、その入力された情報は、サポート装置8からCPUユニット13へ転送される。モーション制御サイクルの周期を設定するプログラム222は、サポート装置8からの情報を不揮発性メモリ106に格納させるとともに、システムタイマ108から指定されたモーション制御サイクルの周期で割り込み信号が発生されるように、システムタイマ108を設定する。CPUユニット13への電源投入時に、モーション制御サイクルの周期を設定するプログラム222が実行されることで、モーション制御サイクルの周期を指定する情報が不揮発性メモリ106から読み出され、読み出された情報に従ってシステムタイマ108が設定される。
 リアルタイムOS200は、複数のプログラムを時間の経過に従い切り換えて実行するための環境を提供する。
 <E.モーション制御の概略>
 次に、上述したユーザプログラム236に含まれる典型的な構成について説明する。ユーザプログラム236は、モータの運動に関する制御開始の条件が成立するか否かを周期的に判断させる命令を含む。たとえば、モータの駆動力によって何らかの処置がなされるワーク(たとえば、図1に示すワーク350)が所定の処置位置まで搬送されたか否かを判断するようなロジックである。そして、ユーザプログラム236は、この制御開始の条件が成立したと判断されたことに応答して、モーション制御を開始させる命令をさらに含む。このモーション制御の開始に伴って、モーション命令の実行が指示される。すると、指示されたモーション命令に対応するモーション演算プログラム234が起動し、まず、モーション演算プログラム234の実行ごとにモータに対する指令値を算出していくために必要な初期処理が実行される。また、初期処理と同じモーション制御サイクルにおいて、第1サイクルでの指令値が算出される。したがって、初期処理および第1番目の指令値算出処理が、起動したモーション演算プログラム234が第1番目の実行においてなすべき処理となる。以降、各サイクルでの指令値が順次算出される。
 <F.制御装置の構成>
 図9は、制御装置60の機能構成を示す模式図である。ここでは、主軸として、主軸Aおよび主軸Bが制御装置60によって制御されるとともに、従動軸として、従動軸Aおよび従動軸Bが制御装置60によって制御される例を説明する。また、主軸Aサーボドライバ31および主軸Aサーボモータ41は、それぞれ主軸Aに接続されたサーボドライバおよびサーボモータであり、図6に示したサーボドライバ3およびサーボモータ4に対応する。主軸Bサーボドライバ32および主軸Bサーボモータ42は、それぞれ主軸Bに接続されたサーボドライバおよびサーボモータであり、図6に示したサーボドライバ3およびサーボモータ4に対応する。さらに、従動軸Aサーボドライバ33および従動軸Aサーボモータ43は、それぞれ従動軸Aに接続されたサーボドライバおよびサーボモータであり、図6に示したサーボドライバ3およびサーボモータ4に対応する。従動軸Bサーボドライバ34および従動軸Bサーボモータ44は、それぞれ従動軸Bに接続されたサーボドライバおよびサーボモータであり、図6に示したサーボドライバ3およびサーボモータ4に対応する。
 図9に示すように、制御装置60は、ネットワーク処理部61と、主軸A指令値演算部71と、主軸B指令値演算部72と、主軸速度変化検出部66と、取得部68と、主軸振動検出部67と、記憶部62と、選択部63と、算出部70と、フィルタ処理部78と、フィルタ処理部79とを備える。これらの構成要素は、制御プログラム230、モーション制御サイクルの周期を設定するプログラム222、およびスケジューラプログラム212などによって実現される。
 ネットワーク処理部61は、図6を参照しながら説明したタッチディスプレイ17、上位PC18、およびサポート装置8に接続するためのインターフェイスである。
 主軸A指令値演算部71は、主軸Aサーボドライバ31に対して速度指令値を出力する。主軸Aサーボドライバ31は、主軸A指令値演算部71からの速度指令値に従って主軸Aサーボモータ41を駆動する。これにより、主軸Aサーボモータ41の軸である主軸Aが、制御装置60からの速度指令値に基づく速度で動作(回転)する。
 主軸B指令値演算部72は、主軸Bサーボドライバ32に対して速度指令値を出力する。主軸Bサーボドライバ32は、主軸B指令値演算部72からの速度指令値に従って主軸Bサーボモータ42を駆動する。これにより、主軸Bサーボモータ42の軸である主軸Bが、制御装置60からの速度指令値に基づく速度で動作(回転)する。
 主軸A指令値演算部71および主軸B指令値演算部72は、ユーザプログラム236の実行、タッチディスプレイ17からの指令、サポート装置8からの指令、および上位PC18からの指令のうちの少なくともいずれかに基づいて、速度指令値を出力したり、あるいは速度指令値の出力を停止したりする。これにより、主軸が切り替わる。
 たとえば、主軸A指令値演算部71から速度指令値が出力される一方で、主軸B指令値演算部72から速度指令値が出力されない状況において、主軸A指令値演算部71から速度指令値が出力されない一方で、主軸B指令値演算部72から速度指令値が出力される状況へと切り替わった場合、動作対象となる主軸が主軸Aから主軸Bに切り替わる。また、主軸A指令値演算部71から速度指令値が出力されない一方で、主軸B指令値演算部72から速度指令値が出力される状況において、主軸A指令値演算部71から速度指令値が出力される一方で、主軸B指令値演算部72から速度指令値が出力されない状況へと切り替わった場合、動作対象となる主軸が主軸Bから主軸Aに切り替わる。このように、主軸A指令値演算部71および主軸B指令値演算部72は、主軸を切り替える「切替部」の一実施形態に対応する。
 ここで、図10は、主軸の切り替えについて説明するための模式図である。図10に示すように、制御装置60は、CPUユニット13によって実現されるものであり、HUB16を介して、タッチディスプレイ17、サポート装置8、および上位PC18のそれぞれに接続されている。タッチディスプレイ17においては、プルダウンボタン17aが操作されることによって、主軸Aおよび主軸Bのいずれかを選択可能である。同様に、サポート装置8においては、プルダウンボタン8aが操作されることによって、主軸Aおよび主軸Bのいずれかを選択可能である。
 このように、タッチディスプレイ17やサポート装置8を用いることで、ユーザは、手動で主軸を切り替えることができる。
 上位PC18は、切替条件が成立したときに主軸を切り替えるためのプログラム18aを実行するように構成されている。たとえば、プログラム18aにおいては、主軸A(SlaveA)が目標の切替ポイント(たとえば、図1に示す切替ポイントP)に対応する位置の値(1000)を超えた場合に、主軸B(MasterB)が選択されるようになっている。同様に、制御装置60が実行するユーザプログラム236においては、主軸A(SlaveA)が目標の切替ポイント(たとえば、図1に示す切替ポイントP)に対応する位置の値(1000)を超えた場合に、主軸B(MasterB)が選択されるようになっている。
 このように、上位PC18や制御装置60によってプログラムが実行されることで、自動で主軸を切り替えることができる。
 図9に戻り、主軸A指令値演算部71は、さらに、ユーザプログラム236の実行、タッチディスプレイ17からの指令、上位PC18からの指令、およびサポート装置8からの指令のうちの少なくともいずれかに基づいて、主軸Aを反転させるための速度指令値を出力することも可能である。たとえば、主軸A指令値演算部71から出力される速度指令値が主軸Aの現在速度とは反対の速度ベクトルを有する速度であれば、主軸Aが反転する。また、主軸B指令値演算部72は、ユーザプログラム236の実行、タッチディスプレイ17からの指令、上位PC18からの指令、およびサポート装置8からの指令のうちの少なくともいずれかに基づいて、主軸Bを反転させるための速度指令値を出力することも可能である。たとえば、主軸B指令値演算部72から出力される速度指令値が主軸Bの現在速度とは反対の速度ベクトルを有する速度であれば、主軸Bが反転する。このように、主軸A指令値演算部71および主軸B指令値演算部72は、主軸の動作方向を反転させる「反転部」の一実施形態に対応する。
 制御装置60においては、主軸A指令値演算部71からの速度指令値を検出する経路と、主軸Aサーボモータ41からの出力値を主軸Aのフィードバック現在値として検出する経路との間で検出経路を切り替える切替スイッチ73が設けられている。また、制御装置60においては、主軸B指令値演算部72からの速度指令値を検出する経路と、主軸Bサーボモータ42からの出力値を主軸Bのフィードバック現在値として検出する経路との間で検出経路を切り替える切替スイッチ74が設けられている。
 切替スイッチ73および切替スイッチ74は、それぞれ切替スイッチ65に接続されている。切替スイッチ65は、ユーザプログラム236の実行、タッチディスプレイ17からの指令、上位PC18からの指令、およびサポート装置8からの指令のうちの少なくともいずれかに基づいて、主軸Aに対応する経路と、主軸Bに対応する経路との間で、主軸速度変化検出部66に至る経路を切り替える。たとえば、主軸Aが動作している一方で、主軸Bが動作していない場合、切替スイッチ65は、主軸Aに対応する経路と主軸速度変化検出部66に至る経路とを接続させる。また、主軸Aが動作していない一方で、主軸Bが動作している場合、切替スイッチ65は、主軸Bに対応する経路と主軸速度変化検出部66に至る経路とを接続させる。
 主軸速度変化検出部66は、主軸の速度変化を検出することで主軸の切り替えや反転を検出する。具体的には、主軸速度変化検出部66は、主軸A指令値演算部71からの速度指令値または主軸Aサーボモータ41からのフィードバック現在値に基づき、主軸の速度がステップ状に変化したか否かを判定することで、主軸Aが切り替わったか否かを判定する。
 主軸の速度がステップ状に変化したか否かの判定については、主軸の速度の変化量や変化率が閾値を超えたか否かを判定してもよい。たとえば、主軸の速度の変化率で判定する場合、V[t]/V[t-1]>αの式を用いればよい。ここで、V[t]は、時刻tにおける主軸の速度であり、V[t-1]は、時刻t-1における主軸の速度である。また、αは、閾値であり、制御装置60が適用される搬送装置などの条件によって任意に設定可能である。たとえば、図1の例の場合、コンベア301,302における主軸まわりの力のモーメントに基づきαが設定されてもよい。また、主軸速度変化検出部66は、主軸Aに対応する経路に接続された状態から、主軸Bに対応する経路に接続された状態へと切替スイッチ65によって経路が切り替えられたことを検出した場合、主軸Aから主軸Bへと主軸が切り替えられたと判断してもよい。また、主軸速度変化検出部66は、主軸Bに対応する経路に接続された状態から、主軸Aに対応する経路に接続された状態へと切替スイッチ65によって経路が切り替えられたことを検出した場合、主軸Bから主軸Aへと主軸が切り替えられたと判断してもよい。
 さらに、主軸速度変化検出部66は、主軸A指令値演算部71からの速度指令値または主軸Aサーボモータ41からのフィードバック現在値に基づき、主軸Aが反転したか否かを判定する。また、主軸速度変化検出部66は、主軸B指令値演算部72からの速度指令値または主軸Bサーボモータ42からのフィードバック現在値に基づき、主軸の速度がステップ状に変化したか否かを判定することで、主軸Bが反転したか否かを判定する。
 主軸の速度がステップ状に変化したか否かの判定については、主軸の速度の変化量や変化率が閾値を超えたか否かを判定してもよい。たとえば、主軸の速度の変化率で判定する場合、上述したように、V[t]/V[t-1]>αの式を用いればよい。また、主軸速度変化検出部66は、速度が2進数で表現されている場合には正負を示す符号を用いて主軸が反転したか否かを判定してもよい。たとえば、主軸速度変化検出部66は、V[t-1]<0、かつV[t]≧0であれば、速度ベクトルの正方向に主軸が反転したと判断し、V[t-1]≧0、かつV[t]<0であれば、速度ベクトルの負方向に主軸が反転したと判断してもよい。
 取得部68は、制御周期ごとに主軸の現在の速度を取得する。具体的には、取得部68は、主軸A指令値演算部71からの速度指令値または主軸Aサーボモータ41からのフィードバック現在値に基づき、主軸Aの現在の速度を取得し、取得した主軸Aの速度をカム演算部75に出力する。また、取得部68は、主軸B指令値演算部72からの速度指令値または主軸Bサーボモータ42からのフィードバック現在値に基づき、主軸Bの現在の速度を取得し、取得した主軸Bの速度をカム演算部75に出力する。
 主軸振動検出部67は、主軸の振動を検出する。具体的には、主軸振動検出部67は、主軸A指令値演算部71からの速度指令値または主軸Aサーボモータ41からのフィードバック現在値に基づき、主軸Aの速度が所定の上限値を超えたか否か、あるいは所定の下限値を下回ったか否かを判定する。また、主軸振動検出部67は、主軸B指令値演算部72からの速度指令値または主軸Bサーボモータ42からのフィードバック現在値に基づき、主軸Bの速度が所定の上限値を超えたか否か、あるいは所定の下限値を下回ったか否かを判定する。
 ここで、図11は、主軸の振動検出について説明するためのタイミングチャートである。主軸の速度は、速度指令値に基づき理想的には一定だが、詳細には僅かながら変動する。このため、図11に示すように、振動による主軸の速度の振れを検出するために、主軸の種類や主軸に対する速度指令値に応じて、速度の上限値および下限値が設けられている。そして、主軸の速度が上限値を超えたり、下限値を下回ったりした場合、すなわち、主軸の速度の絶対値が限界値を超えた場合に、主軸振動検出部67は、主軸が振動していることを特定する。なお、主軸振動検出部67は、主軸の速度の絶対値が1回でも限界値を超えた場合に、主軸が振動していることを特定してもよいが、所定期間内において主軸の速度の絶対値が限界値を超えた回数が予め定められた限界回数を超えた場合に、主軸が振動していることを特定してもよい。図11に示す例では、タイミングt1~t2の振動発生期間において、主軸の速度が上限値を超えた回数が予め定められた限界回数を超えている。よって、この場合、主軸振動検出部67は、主軸が振動していると判断する。
 図9に戻り、主軸振動検出部67は、さらに、主軸が振動していると判断した場合、切替スイッチ73および切替スイッチ74のうち、動作中の主軸に対応する切替スイッチを切り替えることで、取得部68による取得対象を切り替える。
 具体的には、主軸Aが動作中の場合、切替スイッチ65が主軸Aに対応する経路側に接続される。この場合において、主軸Aが振動していない場合には、切替スイッチ73が主軸A指令値演算部71の出力に接続される。よって、取得部68は、主軸A指令値演算部71からの速度指令値に基づき、主軸Aの現在の速度を取得する。一方、主軸Aが振動している場合には、切替スイッチ73が主軸Aサーボモータ41の出力に接続される。よって、取得部68は、主軸Aサーボモータ41からのフィードバック現在値に基づき、主軸Aの現在の速度を取得する。
 主軸Bが動作中の場合、切替スイッチ65が主軸Bに対応する経路側に接続される。この場合において、主軸Bが振動していない場合には、切替スイッチ74が主軸B指令値演算部72の出力に接続される。よって、取得部68は、主軸B指令値演算部72からの速度指令値に基づき、主軸Bの現在の速度を取得する。一方、主軸Bが振動している場合には、切替スイッチ74が主軸Bサーボモータ42の出力に接続される。よって、取得部68は、主軸Bサーボモータ42からのフィードバック現在値に基づき、主軸Bの現在の速度を取得する。
 記憶部62は、従動軸による追いかけ動作(カム動作)を実現するためのカムデータを記憶する。カムデータは、主軸の位置に対する従動軸の移動量を特定するためのデータである。記憶部62は、主軸の種類や速度に応じて、複数種類のカムデータを記憶する。なお、カムデータは、「特性データ」の一実施形態である。
 ここで、図12は、カム曲線について説明するためのグラフである。図12に示すカム曲線は、記憶部62に記憶された複数のカムデータのうちの一のカムデータをグラフ化したものである。
 図12に示すカム曲線では、横軸に主軸の位置が規定され、縦軸に従動軸の位置が規定されている。すなわち、カム曲線は、主軸の位置に対応する従動軸の位置が規定されている。主軸および従動軸の位置については、追いかけ動作の開始位置が0.000mm、同期動作の開始位置が1.000mmで表されている。ユーザは、タッチディスプレイ17やサポート装置8を用いることで、手動で同期動作の開始位置を指定することができる。このため、ユーザが指定した同期動作の開始位置に応じて、カム曲線は変化する。また、ユーザは、タッチディスプレイ17やサポート装置8を用いることで、カム曲線における横軸や縦軸のレンジを変更したり、傾き(従動軸の加速度や減速度)を変更したりすることができる。
 本実施の形態において、カムデータは、データテーブルの形式で規定されている。以下では、カムデータが規定されたデータテーブルを、カムテーブルとも称する。図13は、カムテーブルのデータ構造を示す図である。
 図13に示すように、カムテーブルには、主軸の位置に対して従動軸の位置を対応付けたデータが格納されている。カムテーブル格納されたデータを用いて直線補完すると、図12に示したカム曲線になる。
 カムテーブルでは、主軸の位置が追いかけ動作開始位置となる0.000から、同期動作開始位置となる1.000に至るまでの所定間隔(たとえば、0.001刻み)ごとに、従動軸の目標位置が規定されている。また、その各データにおいてインデックスの番号が割り当てられている。このようなカムテーブルを用いることで、主軸の位置に対する従動軸の移動量を特定することが可能になる。記憶部62には、図13に示すようなカムテーブルが、主軸の種類や速度に応じて複数記憶されている。
 なお、カムデータは、データテーブルの形式で規定されるものに限らず、1次式および多項式のいずれかに基づき規定されてもよい。たとえば、カムデータを多項式で表す場合、従動軸の移動量として以下の式を用いればよい。
 f(x)=ax+bxn-1+cxn-2+…
 ここで、“x”は主軸の位置、“n”は定数、“a”、“b”、および“c”は、係数である。
 なお、一般的には、カム曲線として、直線、等加速度、およびサイクロイドなどが知られているが、本実施の形態においては、タッチディスプレイ17およびサポート装置8によって、ユーザがカム曲線の形式を選択可能である。たとえば、図14は、カム曲線の切り替えについて説明するための模式図である。
 図14に示すように、タッチディスプレイ17においては、プルダウンボタン17bが操作されることによって、カム曲線として、直線、等加速度、およびサイクロイドのうちのいずれかを選択可能である。さらに、タッチディスプレイ17においては、項目17cに同期開始位置を入力することで、同期開始位置を指定することもできる。同様に、サポート装置8においては、プルダウンボタン8bが操作されることによって、カム曲線として、直線、等加速度、およびサイクロイドのうちのいずれかを選択可能である。さらに、サポート装置8においては、項目17cに同期開始位置を入力することで、同期開始位置を指定することもできる。なお、サポート装置8においては、カム曲線のグラフ17dも表示されるため、ユーザは、視覚的にカム曲線を設定することができる。
 図9に戻り、選択部63は、記憶部62に記憶された複数のカムデータのうちからいずれかのカムデータを選択し、選択したカムデータを算出部70に出力する。
 算出部70は、従動軸に対して指令する速度を速度指令値として算出する。従動軸Aを動作させる場合には、出力部81から従動軸Aサーボドライバ33に対して、算出部70によって算出された速度指令値が出力される。従動軸Bを動作させる場合には、出力部82から従動軸Bサーボドライバ34に対して、算出部70によって算出された速度指令値が出力される。
 算出部70は、カム演算部75と、従動軸A同期演算部76と、従動軸B同期演算部77とを含む。
 カム演算部75は、従動軸に対する指令速度に乗算するギア比を算出し、算出したギア比を、従動軸A同期演算部76または従動軸B同期演算部77に対して出力する。具体的には、カム演算部75は、追いかけ動作が行われている場合、制御周期ごとに取得部68によって取得された主軸の現在の速度に基づき主軸の現在の位置を特定する。カム演算部75は、カムデータを参照することで、主軸の現在の位置に対応する従動軸の目標位置を特定する。カム演算部75は、従動軸の現在の位置と、カムデータに基づき特定した従動軸の目標位置との差分から、次の制御周期において従動軸が動作するべき移動量を特定する。カム演算部75は、特定した移動量だけ次の制御周期において従動軸を動作させるためのギア比を算出する。カム演算部75は、従動軸Aが追いかけ動作中である場合には、従動軸A同期演算部76に対してギア比を出力する一方、従動軸Bが追いかけ動作中である場合には、従動軸B同期演算部77に対してギア比を出力する。
 また、カム演算部75は、同期動作が行われている場合、制御周期ごとに取得部68によって取得された主軸の現在の速度に応じて予め決定されていた所定のギア比を算出する。カム演算部75は、従動軸Aが同期動作中である場合には、従動軸A同期演算部76に対して所定のギア比を出力する一方、従動軸Bが同期動作中である場合には、従動軸B同期演算部77に対して所定のギア比を出力する。
 従動軸A同期演算部76または従動軸B同期演算部77は、制御周期ごとに取得部68によって取得された主軸の現在の速度に、カム演算部75から取得したギア比を乗算して従動軸の速度を算出し、当該速度を示す速度指令値を、出力部81または出力部82を介して従動軸Aサーボドライバ33または従動軸Bサーボドライバ34に出力する。
 前述したように、主軸振動検出部67によって主軸の振動が検出されていない場合には、取得部68が主軸に対する速度指令値に基づき主軸の速度を取得するため、従動軸A同期演算部76および従動軸B同期演算部77は、速度指令値に基づき従動軸の速度を算出する。一方、主軸振動検出部67によって主軸の振動が検出されている場合には、取得部68が主軸のフィードバック現在値に基づき主軸の速度を取得するため、従動軸A同期演算部76および従動軸B同期演算部77は、フィードバック現在値に基づき従動軸の速度を算出する。つまり、従動軸は、主軸が振動していない場合には、主軸に対する速度指令値に基づき主軸に同期し、主軸が振動している場合には、主軸のフィードバック現在値に基づき主軸に同期する。
 フィルタ処理部78は、従動軸A同期演算部76から出力された従動軸の速度指令値に対してフィルタ処理を行う。フィルタ処理部78によってフィルタ処理を行うか否かは、従動軸A同期演算部76の出力に設けられた切替スイッチ83によって切替可能である。フィルタ処理部78によってフィルタ処理が行われた場合、フィルタ処理後の速度指令値が従動軸Aサーボドライバ33に出力される。
 フィルタ処理部79は、従動軸B同期演算部77から出力された従動軸の速度指令値に対してフィルタ処理を行う。フィルタ処理部79によってフィルタ処理を行うか否かは、従動軸B同期演算部77の出力に設けられた切替スイッチ84によって切替可能である。フィルタ処理部79によってフィルタ処理が行われた場合、フィルタ処理後の速度指令値が従動軸Bサーボドライバ3に出力される。
 ここで、フィルタ処理について説明する。前述したように、本実施の形態においては、主軸が切り替えられたり、主軸が反転したりした場合に、ユーザプログラム236に基づき選択部63によってカムデータが切り替えられるが、これ以外にも、ユーザは、タッチディスプレイ17、上位PC、およびサポート装置8によって、選択するカムデータを指定したり、選択中のカムデータを切り替えたりすることができる。
 仮に、追いかけ動作中においてカムデータが他のカムデータに切り替えられた場合、カムデータが切り替えられた制御周期内では、従動軸の位置が急激に変化することがある。特に、切り替え前のカムテーブルと、切り替え後のカムテーブルとで、従動軸の位置が大きく異なる場合に、このような事態が生じ得る。従動軸の位置において急激な変化が生じた場合、従動軸のサーボドライバがハンチングする虞がある。そこで、カムデータの切り換えが行われた制御周期においては、カムデータ切り換え時に発生する従動軸における位置の急激な変化を抑制するように、従動軸の移動量を滑らかに変化させるためのフィルタ処理を行うことが好ましい。
 具体的には、フィルタ処理は、平滑化フィルタをマイクロプロセッサ100が用いることにより実現される。平滑化フィルタは、従動軸の位置における急激な変化を平滑するため、ローパス特性を有することが好ましい。ローパス特性を有する代表的な平滑化フィルタとして、たとえば、一次遅れフィルタ、高次遅れフィルタ、移動平均フィルタが挙げられる。
 1次遅れフィルタを用いる場合、伝達関数G(s)として以下の式を用いればよい。
 G(s)=1/(T×s+1)
 ここで、“T”は時定数である。“T”の値が大きいほど、滑らかに平滑化される。なお、一般的にローパスフィルタは信号の位相が遅れる特性がある。また、位相の遅れ度合と平滑度とは、トレードオフの関係にある。カムデータの切り換え後に、当該位相遅れをなくした場合には、“T”を小さく設定する必要がある。
 サポート装置8にはFFT解析部20が搭載されている。FFT解析部20は、高速フーリエ変換によって、従動軸の固有振動周波数を周波数解析する。サポート装置8は、FFT解析部20による解析結果に基づき、共振周波数を励起しない最適なカムデータを選択するように、選択部63に指示する。
 <G.制御装置の処理>
 (追いかけ動作中切替処理)
 図15は、制御装置60が実行する追いかけ動作中切替処理を示すフローチャートである。図15に示すように、制御装置60は、主軸速度変化検出部66により、主軸が切り替えまたは反転したか否かを判定する(S2)。制御装置60は、主軸が切り替えも反転もしていない場合(S2でNO)、S14の処理に移行する。
 制御装置60は、主軸が切り替えまたは反転した場合(S2でYES)、主軸振動検出部67により、主軸が振動しているか否かを判定する(S4)。制御装置60は、主軸が振動していると判定した場合(S4でYES)、従動軸の同期対象を主軸のフィードバック現在値から主軸に対する速度指令値に切り替え(S6)、S8の処理に移行する。
 制御装置60は、主軸が振動していないと判定した場合(S4でNO)、またはS6の処理の後、カムデータの切替指示があったか否かを判定する(S8)。つまり、タッチディスプレイ17、上位PC、サポート装置8、およびユーザプログラム236のいずれかによってカムデータを切り替える旨の指示があったか否かを判定する。
 制御装置60は、カムデータの切替指示がある場合(S8でYES)、カムデータを切り替える(S10)。たとえば、ユーザプログラム236によって、主軸が切り替えまたは反転した場合にカムデータを切り替える旨の指示が行われている場合、制御装置60は、記憶部62に記憶された複数のカムデータの中から主軸の速度変化に応じた他のカムデータを特定する。具体的には、制御装置60は、主軸が切り替わった場合には、切替後における主軸の速度に対応するカムデータを特定し、主軸が反転した場合には、反転後における主軸の速度に対応するカムデータを特定する。そして、制御装置60は、特定したカムデータに、現在選択中のカムデータを切り替える。
 制御装置60は、カムデータの切替指示がない場合(S8でNO)、またはS10の処理の後、切替後のカムデータを参照しながら、従動軸による主軸の追いかけ動作を開始する(S12)。その後、制御装置60は、主軸および従動軸が同期開始位置に到達したか否かを判定する(S14)。
 制御装置60は、主軸および従動軸が同期開始位置に到達していない場合(S14でNO)、再びS14の処理を繰り返す。一方、制御装置60は、主軸および従動軸が同期開始位置に到達した場合(S14でYES)、同期動作を開始し(S16)、追いかけ動作中切替処理を終了する。
 (同期動作中切替処理)
 図16は、制御装置60が実行する同期動作中切替処理を示すフローチャートである。図16に示すように、制御装置60は、主軸速度変化検出部66により、主軸が切り替えまたは反転したか否かを判定する(S22)。制御装置60は、主軸が切り替えも反転もしていない場合(S22でNO)、S34の処理に移行する。
 制御装置60は、主軸が切り替えまたは反転した場合(S22でYES)、主軸振動検出部67により、主軸が振動しているか否かを判定する(S24)。制御装置60は、主軸が振動していると判定した場合(S24でYES)、従動軸の同期対象を主軸のフィードバック現在値から主軸に対する速度指令値に切り替え(S26)、S28の処理に移行する。
 制御装置60は、主軸が振動していないと判定した場合(S24でNO)、またはS26の処理の後、カムデータの切替指示があったか否かを判定する(S28)。つまり、タッチディスプレイ17、上位PC、サポート装置8、およびユーザプログラム236のいずれかによってカムデータを切り替える旨の指示があったか否かを判定する。
 制御装置60は、カムデータの切替指示がある場合(S28でYES)、カムデータを切り替える(S30)。たとえば、ユーザプログラム236によって、主軸が切り替えまたは反転した場合にカムデータを切り替える旨の指示が行われている場合、制御装置60は、記憶部62に記憶された複数のカムデータの中から主軸の速度変化に応じた他のカムデータを特定する。具体的には、制御装置60は、主軸が切り替わった場合には、切替後における主軸の速度に対応するカムデータを特定し、主軸が反転した場合には、反転後における主軸の速度に対応するカムデータを特定する。そして、制御装置60は、特定したカムデータに、現在選択中のカムデータを切り替える。
 制御装置60は、カムデータの切替指示がない場合(S28でNO)、またはS30の処理の後、切替後のカムデータを参照しながら、従動軸による主軸の追いかけ動作を開始する(S32)。その後、制御装置60は、主軸および従動軸が同期開始位置に到達したか否かを判定する(S34)。
 制御装置60は、主軸および従動軸が同期開始位置に到達していない場合(S34でNO)、再びS34の処理を繰り返す。一方、制御装置60は、主軸および従動軸が同期開始位置に到達した場合(S34でYES)、同期動作を開始し(S36)、同期動作中切替処理を終了する。
 <H.速度変化の態様>
 (主軸が切り替わった場合)
 図17は、主軸が切り替わった場合における主軸および従動軸の速度変化を示すタイミングチャートである。図17においては、縦軸を速度、横軸を時間で表す。また、主軸の速度をV1、従動軸の速度をV2で表す。なお、図17では、主軸Aから主軸Bに主軸が切り替わった場合の例が示されている。
 図17に示すように、タイミングt0で従動軸によって主軸Aを追いかける追いかけ動作が開始される。追いかけ動作時においては、カムデータに基づき決定された速度指令値に基づき、従動軸が加速または減速しながら動作する。具体的には、従動軸は、タイミングt0~t1の期間において加速し、タイミングt1~t2の期間において定速を維持し、その後、タイミングt2~t3の期間において減速することで、主軸Aと同じタイミングで同期開始位置に到達する。同期開始位置に到達した後のタイミングt3以降では、主軸Aと従動軸とが所定のギア比に基づく速度で同期しながら動作する。
 ここで、タイミングt4において、主軸Aから主軸Bに主軸が切り替わった場合、主軸の速度がステップ状に急激に変化する。そこで、制御装置60は、主軸Bに対して従動軸が追いかけ動作する際に参照するカムデータとして、主軸Bの速度に対応するカムデータを選択し、選択したカムデータに、選択中である主軸Aの速度に対応するカムデータを切り替える。
 その後、タイミングt4で従動軸によって主軸Bを追いかける追いかけ動作が開始される。従動軸は、タイミングt4~t5の期間において加速し、タイミングt5~t6の期間において定速を維持し、その後、タイミングt6~t7の期間において減速することで、主軸Bと同じタイミングで同期開始位置に到達する。同期開始位置に到達した後のタイミングt7以降では、主軸Bと従動軸とが所定のギア比に基づく速度で同期しながら動作する。
 このように、主軸Aおよび従動軸の動作中に主軸Aから主軸Bに切り替わることで主軸の速度がステップ状に変化した場合、主軸Bの速度に応じたカムデータに、選択中の主軸Aの速度に応じたカムデータが切り替えられるため、適切な速度指令値を従動軸に出力することができる。その結果、従動軸に生じる振動を抑えることができる。
 (主軸が反転した場合)
 図18は、主軸が反転した場合における主軸および従動軸の速度変化を示すタイミングチャートである。図18においては、縦軸を速度、横軸を時間で表す。また、主軸の速度をV1、従動軸の速度をV2で表す。
 図18に示すように、タイミングt0で従動軸によって主軸を追いかける追いかけ動作が開始される。追いかけ動作時においては、カムデータに基づき決定された速度指令値に基づき、従動軸が加速または減速しながら動作する。具体的には、従動軸は、タイミングt0~t1の期間において加速し、タイミングt1~t2の期間において定速を維持し、その後、タイミングt2~t3の期間において減速することで、主軸と同じタイミングで同期開始位置に到達する。同期開始位置に到達した後のタイミングt3以降では、主軸と従動軸とが所定のギア比に基づく速度で同期しながら動作する。
 ここで、タイミングt4において、主軸が反転した場合、主軸の速度が反転前とは逆方向の-V1方向に転じ、主軸の速度がステップ状に急激に変化する。そこで、制御装置60は、主軸に対して従動軸が再び追いかけ動作する際に参照するカムデータとして、反転後の主軸の速度に対応するカムデータを選択し、選択したカムデータに、選択中である反転前の主軸の速度に対応するカムデータを切り替える。
 その後、タイミングt4で従動軸によって主軸を追いかける追いかけ動作が開始される。従動軸は、タイミングt4~t5の期間において-V2方向に加速し、タイミングt5~t6の期間において定速を維持し、その後、タイミングt6~t7の期間において-V2方向に減速することで、主軸と同じタイミングで同期開始位置に到達する。同期開始位置に到達した後のタイミングt7以降では、主軸と従動軸とが所定のギア比に基づく速度で同期しながら動作する。
 ここで、タイミングt8において、主軸が再び反転した場合、主軸の速度が反転前とは逆方向のV1方向に再び転じ、主軸の速度がステップ状に急激に変化する。そこで、制御装置60は、主軸に対して従動軸が再び追いかけ動作する際に参照するカムデータとして、反転後の主軸の速度に対応するカムデータを選択し、選択したカムデータに、選択中である反転前の主軸の速度に対応するカムデータを切り替える。
 その後、タイミングt8で従動軸によって主軸を追いかける追いかけ動作が開始される。従動軸は、タイミングt8~t9の期間においてV2方向に加速し、タイミングt9~t10の期間において定速を維持し、その後、タイミングt10~t11の期間においてV2方向に減速することで、主軸と同じタイミングで同期開始位置に到達する。同期開始位置に到達した後のタイミングt11以降では、主軸と従動軸とが所定のギア比に基づく速度で同期しながら動作する。
 このように、主軸および従動軸の動作中に主軸が反転することで主軸の速度がステップ状に変化した場合、反転後の主軸の速度に応じたカムデータに、選択中である反転前の主軸の速度に応じたカムデータが切り替えられるため、適切な速度指令値を従動軸に出力することができる。その結果、従動軸に生じる振動を抑えることができる。
 <I.作用効果>
 以上のように、本実施の形態において、制御装置60は、制御周期ごとに取得した主軸の速度に所定のギア比を乗算した速度を速度指令値として従動軸に出力することで、従動軸の同期動作を行う。また、制御装置60は、制御周期ごとに取得した主軸の速度から算出される主軸の位置と選択中のカムデータとに基づき従動軸の移動量を特定し、当該移動量に基づき特定した速度を速度指令値として従動軸に出力することで、同期動作が開始する位置に主軸および従動軸が到達するまで従動軸の追いかけ動作を行う。さらに、制御装置60は、主軸および従動軸の動作中に主軸の速度がステップ状に変化した場合、主軸の速度変化に応じた他のカムデータに、選択中のカムデータを切り替える。このため、制御装置60は、追いかけ動作や同期動作のような主軸および従動軸の動作中において主軸の速度がステップ状に変化した場合であっても、選択中のカムデータをそのまま用いるものと比べて、より適切な速度指令値を従動軸に出力することができる。その結果、従動軸に生じる振動を抑えることができる。また、主軸の速度がステップ状ではなく連続的に変化する場合には、選択中のカムデータを少し補正するだけで事足りる場合もあるが、主軸の速度がステップ状に変化した場合には、予め準備していた適切なカムデータに切り替えた方が処理負担も抑えることができる。
 制御装置60は、タッチディスプレイ17、サポート装置8、および上位PC18といった外部からの指令に基づき、主軸を切り替えることができるため、ユーザの利便性が向上する。また、制御装置60は、このような主軸の切り替えに応じたカムデータに、選択中のカムデータを切り替えることができるため、適切な速度指令値を従動軸に出力することができる。
 制御装置60は、タッチディスプレイ17、サポート装置8、および上位PC18といった外部からの指令に基づき、主軸を切り替えることができるため、ユーザの利便性が向上する。また、制御装置60は、このような主軸の切り替えに応じたカムデータに、選択中のカムデータを切り替えることができるため、適切な速度指令値を従動軸に出力することができる。
 制御装置60は、タッチディスプレイ17、サポート装置8、および上位PC18といった外部からの指令に基づき、主軸の動作方向を反転させることができるため、ユーザの利便性が向上する。また、制御装置60は、このような主軸の反転に応じたカムデータに、選択中のカムデータを切り替えることができるため、適切な速度指令値を従動軸に出力することができる。
 制御装置60は、同期動作や追いかけ動作の制御において、検出対象となる速度として主軸に対する速度指令値または主軸のフィードバック現在値を検出することができるため、状況に応じた制御を行うことができる。
 制御装置60は、同期動作や追いかけ動作の制御において、主軸の振動が検出された場合、主軸に対する速度指令値から主軸のフィードバック現在値に同期対象を切り替えることができるため、主軸の振動によって従動軸の動作が影響されない。
 カムデータは、データテーブル、1次式、および多項式の少なくともいずれかに基づき規定され得るため、様々な形態でカムデータを規定することができ、ユーザの利便性が向上する。
 制御装置60は、FFT解析部20による高速フーリエ変換によって算出された従動軸の固有振動数を考慮してカムデータを選択することができるため、従動軸に生じる振動を抑えることができる。
 上述の開示において、制御装置は、同期動作が開始する位置に従動軸が到達する前において、動作中の主軸の速度がステップ状に変化したときに選択部によって特性データが切り替えられた場合、従動軸の移動量を平滑するフィルタ処理部をさらに備える。
 制御装置60は、動作中の主軸の速度がステップ状に変化したときに選択中のカムデータを切り替えた場合、切替後のカムデータにおける従動軸の移動量をフィルタ処理によって平滑することができるため、カムデータの切り替えによって従動軸の移動量が急激に変化することを防止することができる。
 <J.付記>
 以上のように、本実施の形態では以下のような開示を含む。
 (構成1)
 主軸(501,601)の動作に対して従動軸(551,651)の動作を同期させる制御装置(60)であって、
 制御周期ごとに前記主軸の速度を取得する取得部(68)と、
 前記主軸の位置に対する前記従動軸の移動量を特定するための複数の特性データを記憶する記憶部(62)と、
 前記複数の特性データのうちからいずれかの特性データを選択する選択部(63)と、
 前記従動軸に対して指令する速度を速度指令値として算出する算出部(70)と、
 前記算出部によって算出された前記速度指令値を前記従動軸に出力する出力部(81,82)とを備え、
 前記算出部は、
  前記主軸の動作に対して前記従動軸の動作を同期させる同期動作中においては、前記取得部によって取得された前記主軸の速度に所定の比率を乗算した速度を、前記速度指令値として算出し、
  前記同期動作が開始する位置に前記従動軸が到達する前においては、前記取得部によって取得された前記主軸の速度から算出される前記主軸の位置と前記選択部によって選択中の前記特性データとに基づき前記従動軸の移動量を特定し、当該移動量に基づき特定される速度を、前記速度指令値として算出し、
 前記選択部は、前記主軸および前記従動軸の動作中に前記主軸の速度がステップ状に変化した場合、前記記憶部に記憶された前記複数の特性データの中から前記主軸の速度変化に応じた他の特性データを特定し、当該他の特性データに、選択中の前記特性データを切り替える、制御装置。
 (構成2)
 前記主軸として、第1主軸と、当該第1主軸の速度とはステップ状に異なる速度で動作する第2主軸とが設けられており、
 外部からの指令に基づき前記第1主軸から前記第2主軸に前記主軸を切り替える切替部(65)をさらに備え、
 前記選択部は、前記主軸および前記従動軸の動作中に前記切替部によって前記主軸が切り替えられた場合、前記主軸の切り替えに応じた他の前記特性データに、選択中の前記特性データを切り替える、構成1に記載の制御装置。
 (構成3)
 外部からの指令に基づき前記主軸の動作方向を反転させる反転部(71,72)をさらに備え、
 前記選択部は、前記主軸および前記従動軸の動作中に前記反転部によって前記主軸が反転された場合、前記主軸の反転に応じた他の前記特性データに、選択中の前記特性データを切り替える、構成1または構成2に記載の制御装置。
 (構成4)
 前記取得部は、前記主軸に対して指令された速度、または前記主軸の実測された速度を取得する、構成1~構成3のいずれかに記載の制御装置。
 (構成5)
 前記主軸の振動を検出する振動検出部(67)をさらに備え、
 前記取得部は、前記振動検出部によって前記主軸の振動が検出された場合、前記主軸に対して指令された速度から前記主軸の実測された速度に取得対象を切り替える、構成4に記載の制御装置。
 (構成6)
 前記特性データは、データテーブル、1次式、および多項式の少なくともいずれかに基づき規定されたデータである、構成1~構成5のいずれかに記載の制御装置。
 (構成7)
 前記選択部は、高速フーリエ変換によって算出された前記従動軸の固有振動数に基づき前記特性データを選択する、構成1~構成6のいずれかに記載の制御装置。
 (構成8)
 前記同期動作が開始する位置に前記従動軸が到達する前において、動作中の前記主軸の速度がステップ状に変化したときに前記選択部によって前記特性データが切り替えられた場合、前記従動軸の移動量を平滑するフィルタ処理部(78,79)をさらに備える、構成1~構成7のいずれかに記載の制御装置。
 (構成9)
 主軸(501,601の動作に対して従動軸(551,651)の動作を同期させる制御装置(60)における制御方法であって、
 制御周期ごとに前記主軸の速度を取得するステップと、
 前記主軸の位置に対する前記従動軸の移動量を特定するための複数の特性データを記憶するステップと、
 前記複数の特性データのうちからいずれかの特性データを選択するステップと、
 前記従動軸に対して指令する速度を速度指令値として算出するステップと、
 前記算出するステップによって算出された前記速度指令値を前記従動軸に出力するステップとを含み、
 前記算出するステップは、
  前記主軸の動作に対して前記従動軸の動作を同期させる同期動作中においては、前記取得するステップによって取得された前記主軸の速度に所定の比率を乗算した速度を、前記速度指令値として算出し、
  前記同期動作が開始する位置に前記従動軸が到達する前においては、前記取得するステップによって取得された前記主軸の速度から算出される前記主軸の位置と前記選択するステップによって選択中の前記特性データとに基づき前記従動軸の移動量を特定し、当該移動量に基づき特定される速度を、前記速度指令値として算出し、
 前記選択するステップは、前記主軸および前記従動軸の動作中に前記主軸の速度がステップ状に変化した場合、前記記憶部に記憶された前記複数の特性データの中から前記主軸の速度変化に応じた他の特性データを特定し、当該他の特性データに、選択中の前記特性データを切り替える、制御方法。
 今回開示された各実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味および範囲内での全ての変更が含まれることが意図される。また、実施の形態および各変形例において説明された発明は、可能な限り、単独でも、組み合わせても、実施することが意図される。
 2 フィールドネットワーク、3,31,32,33,34 サーボドライバ、4,41,42,43,44 サーボモータ、5 ターミナル、6 検出スイッチ、7 リレー、8 サポート装置、9 記録媒体、10 接続ケーブル、11 システムバス、12 電源ユニット、13 CPUユニット、14,53 IOユニット、15 特殊ユニット、17 タッチディスプレイ、18 モーション制御サイクルの周期を設定するプログラム、20 FFT解析部、51 ターミナルバス、52 通信カプラ、60 制御装置、61 ネットワーク処理部、62 記憶部、63 選択部、65,73,74,83,84 切替スイッチ、66 主軸速度変化検出部、67 主軸振動検出部、68 取得部、70 算出部、71,72 指令値演算部、75 カム演算部、76,77 同期演算部、78,79 フィルタ処理部、81,82 出力部、100 マイクロプロセッサ、102 チップセット、104 メインメモリ、106 不揮発性メモリ、108 システムタイマ、110 コネクタ、120 システムバスコントローラ、122,142 DMA制御回路、124 システムバス制御回路、126,146 バッファメモリ、130,150 システムバスコネクタ、140 フィールドネットワークコントローラ、144 フィールドネットワーク制御回路、210,220 システムプログラム、212 スケジューラプログラム、214 出力処理プログラム、216 入力処理プログラム、218 処理プログラム、222 モーション制御サイクルの周期を設定するプログラム、230 制御プログラム、232 シーケンス命令演算プログラム、234 モーション演算プログラム、236 ユーザプログラム、301,302 コンベア、350 ワーク、400 ロボット、500,550,600,650 モータ、501,601 主軸、502 カム、551,651 従動軸、552 接触子、602,652 ギア。

Claims (9)

  1.  主軸の動作に対して従動軸の動作を同期させる制御装置であって、
     制御周期ごとに前記主軸の速度を取得する取得部と、
     前記主軸の位置に対する前記従動軸の移動量を特定するための複数の特性データを記憶する記憶部と、
     前記複数の特性データのうちからいずれかの特性データを選択する選択部と、
     前記従動軸に対して指令する速度を速度指令値として算出する算出部と、
     前記算出部によって算出された前記速度指令値を前記従動軸に出力する出力部とを備え、
     前記算出部は、
      前記主軸の動作に対して前記従動軸の動作を同期させる同期動作中においては、前記取得部によって取得された前記主軸の速度に所定の比率を乗算した速度を、前記速度指令値として算出し、
      前記同期動作が開始する位置に前記従動軸が到達する前においては、前記取得部によって取得された前記主軸の速度から算出される前記主軸の位置と前記選択部によって選択中の前記特性データとに基づき前記従動軸の移動量を特定し、当該移動量に基づき特定される速度を、前記速度指令値として算出し、
     前記選択部は、前記主軸および前記従動軸の動作中に前記主軸の速度がステップ状に変化した場合、前記記憶部に記憶された前記複数の特性データの中から前記主軸の速度変化に応じた他の特性データを特定し、当該他の特性データに、選択中の前記特性データを切り替える、制御装置。
  2.  前記主軸として、第1主軸と、当該第1主軸の速度とはステップ状に異なる速度で動作する第2主軸とが設けられており、
     外部からの指令に基づき前記第1主軸から前記第2主軸に前記主軸を切り替える切替部をさらに備え、
     前記選択部は、前記主軸および前記従動軸の動作中に前記切替部によって前記主軸が切り替えられた場合、前記主軸の切り替えに応じた他の前記特性データに、選択中の前記特性データを切り替える、請求項1に記載の制御装置。
  3.  外部からの指令に基づき前記主軸の動作方向を反転させる反転部をさらに備え、
     前記選択部は、前記主軸および前記従動軸の動作中に前記反転部によって前記主軸が反転された場合、前記主軸の反転に応じた他の前記特性データに、選択中の前記特性データを切り替える、請求項1または請求項2に記載の制御装置。
  4.  前記取得部は、前記主軸に対して指令された速度、または前記主軸の実測された速度を取得する、請求項1~請求項3のいずれか1項に記載の制御装置。
  5.  前記主軸の振動を検出する振動検出部をさらに備え、
     前記取得部は、前記振動検出部によって前記主軸の振動が検出された場合、前記主軸に対して指令された速度から前記主軸の実測された速度に取得対象を切り替える、請求項4に記載の制御装置。
  6.  前記特性データは、データテーブル、1次式、および多項式の少なくともいずれかに基づき規定されたデータである、請求項1~請求項5のいずれか1項に記載の制御装置。
  7.  前記選択部は、高速フーリエ変換によって算出された前記従動軸の固有振動数に基づき前記特性データを選択する、請求項1~請求項6のいずれか1項に記載の制御装置。
  8.  前記同期動作が開始する位置に前記従動軸が到達する前において、動作中の前記主軸の速度がステップ状に変化したときに前記選択部によって前記特性データが切り替えられた場合、前記従動軸の移動量を平滑するフィルタ処理部をさらに備える、請求項1~請求項7のいずれか1項に記載の制御装置。
  9.  主軸の動作に対して従動軸の動作を同期させる制御装置における制御方法であって、
     制御周期ごとに前記主軸の速度を取得するステップと、
     前記主軸の位置に対する前記従動軸の移動量を特定するための複数の特性データを記憶するステップと、
     前記複数の特性データのうちからいずれかの特性データを選択するステップと、
     前記従動軸に対して指令する速度を速度指令値として算出するステップと、
     前記算出するステップによって算出された前記速度指令値を前記従動軸に出力するステップとを含み、
     前記算出するステップは、
      前記主軸の動作に対して前記従動軸の動作を同期させる同期動作中においては、前記取得するステップによって取得された前記主軸の速度に所定の比率を乗算した速度を、前記速度指令値として算出し、
      前記同期動作が開始する位置に前記従動軸が到達する前においては、前記取得するステップによって取得された前記主軸の速度から算出される前記主軸の位置と前記選択するステップによって選択中の前記特性データとに基づき前記従動軸の移動量を特定し、当該移動量に基づき特定される速度を、前記速度指令値として算出し、
     前記選択するステップは、前記主軸および前記従動軸の動作中に前記主軸の速度がステップ状に変化した場合、前記記憶するステップによって記憶された前記複数の特性データの中から前記主軸の速度変化に応じた他の特性データを特定し、当該他の特性データに、選択中の前記特性データを切り替える、制御方法。
PCT/JP2019/024318 2018-07-11 2019-06-19 制御装置、および制御方法 WO2020012902A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201980039371.1A CN112272808A (zh) 2018-07-11 2019-06-19 控制装置以及控制方法
EP19834537.3A EP3822734A4 (en) 2018-07-11 2019-06-19 CONTROL DEVICE AND METHOD

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2018-131411 2018-07-11
JP2018131411A JP7040328B2 (ja) 2018-07-11 2018-07-11 制御装置、および制御方法

Publications (1)

Publication Number Publication Date
WO2020012902A1 true WO2020012902A1 (ja) 2020-01-16

Family

ID=69141878

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/024318 WO2020012902A1 (ja) 2018-07-11 2019-06-19 制御装置、および制御方法

Country Status (4)

Country Link
EP (1) EP3822734A4 (ja)
JP (1) JP7040328B2 (ja)
CN (1) CN112272808A (ja)
WO (1) WO2020012902A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112276949A (zh) * 2020-10-21 2021-01-29 哈工大机器人(合肥)国际创新研究院 一种相邻关节空间-笛卡尔空间轨迹过渡方法及装置

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5325949B2 (ja) 1974-03-25 1978-07-29
JPS583337B2 (ja) 1974-07-08 1983-01-20 株式会社東芝 マグネトロンノ セイゾウホウホウ
JPH0683417A (ja) * 1992-08-28 1994-03-25 Toyoda Mach Works Ltd 非真円形工作物加工用数値制御装置
JPH10277791A (ja) * 1997-03-31 1998-10-20 Komatsu Ltd 複数ポイントサーボプレスの制御装置
JP2012194665A (ja) * 2011-03-15 2012-10-11 Omron Corp 演算ユニット、出力制御方法、およびプログラム
JP2015125586A (ja) * 2013-12-26 2015-07-06 三菱電機株式会社 サーボ制御装置
JP2016004435A (ja) * 2014-06-17 2016-01-12 ファナック株式会社 同期制御中に位置制御のゲインを切換える機能を有する数値制御装置
JP2017033345A (ja) 2015-08-03 2017-02-09 ファナック株式会社 同期開始ブロックのショックを解消する機能を有する同期制御装置
JP2018079537A (ja) * 2016-11-16 2018-05-24 ファナック株式会社 主軸と送り軸との同期運転を制御する工作機械の制御装置及び制御方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6107769A (en) * 1998-12-29 2000-08-22 Schneider Automation Inc. Positional-based motion controller with a bias latch
JP5803337B2 (ja) * 2011-06-28 2015-11-04 オムロン株式会社 同期制御装置、同期制御方法、同期制御プログラム、および同期制御プログラムを記録したコンピュータ読み取り可能な記録媒体
JP5879800B2 (ja) * 2011-08-03 2016-03-08 オムロン株式会社 同期制御装置
JP6647422B2 (ja) * 2016-11-16 2020-02-14 株式会社牧野フライス製作所 工作機械の送り軸制御方法および送り軸制御装置

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5325949B2 (ja) 1974-03-25 1978-07-29
JPS583337B2 (ja) 1974-07-08 1983-01-20 株式会社東芝 マグネトロンノ セイゾウホウホウ
JPH0683417A (ja) * 1992-08-28 1994-03-25 Toyoda Mach Works Ltd 非真円形工作物加工用数値制御装置
JPH10277791A (ja) * 1997-03-31 1998-10-20 Komatsu Ltd 複数ポイントサーボプレスの制御装置
JP2012194665A (ja) * 2011-03-15 2012-10-11 Omron Corp 演算ユニット、出力制御方法、およびプログラム
JP2015125586A (ja) * 2013-12-26 2015-07-06 三菱電機株式会社 サーボ制御装置
JP2016004435A (ja) * 2014-06-17 2016-01-12 ファナック株式会社 同期制御中に位置制御のゲインを切換える機能を有する数値制御装置
JP2017033345A (ja) 2015-08-03 2017-02-09 ファナック株式会社 同期開始ブロックのショックを解消する機能を有する同期制御装置
JP2018079537A (ja) * 2016-11-16 2018-05-24 ファナック株式会社 主軸と送り軸との同期運転を制御する工作機械の制御装置及び制御方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3822734A4

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112276949A (zh) * 2020-10-21 2021-01-29 哈工大机器人(合肥)国际创新研究院 一种相邻关节空间-笛卡尔空间轨迹过渡方法及装置

Also Published As

Publication number Publication date
EP3822734A4 (en) 2022-03-30
JP2020009296A (ja) 2020-01-16
CN112272808A (zh) 2021-01-26
EP3822734A1 (en) 2021-05-19
JP7040328B2 (ja) 2022-03-23

Similar Documents

Publication Publication Date Title
JP4973792B1 (ja) 演算ユニット、出力制御方法、およびプログラム
EP3361635B1 (en) Control system and pulse output device
US10274936B2 (en) Control apparatus
US20180164788A1 (en) Production system, controller, and control method
US10625421B2 (en) Controller, control system, and control method
JP2017102617A (ja) 補正装置、補正装置の制御方法、情報処理プログラム、および記録媒体
JP6497331B2 (ja) 制御装置および同期制御方法
US10710242B2 (en) Controller, control system, and control method
US8901870B2 (en) Synchronous control apparatus
JP2010170435A (ja) モーション制御用指令システム、モーション制御用指令方法およびモーション制御システム
JP6741924B1 (ja) 分散モータ制御システム、モータ制御装置、及び分散モータ制御方法
CN108886481B (zh) 通信控制系统以及通信控制方法
JP2018151889A (ja) 処理装置、パラメータ調整方法、及びパラメータ調整プログラム
JP7294085B2 (ja) 制御システム、制御装置および制御方法
WO2020012902A1 (ja) 制御装置、および制御方法
JP5362146B1 (ja) 数値制御装置および数値制御システム
JP7453268B2 (ja) 多軸サーボ制御システム
US20210018900A1 (en) Servo controller
JP7318406B2 (ja) 制御装置
JP4945737B2 (ja) ロボットシステム及び補間方法
WO2022162959A1 (ja) 制御システム、ロボットコントローラおよび制御方法
WO2018179165A1 (ja) 通信装置、通信システムおよび通信方法
JP2020071520A (ja) コントローラおよびコントローラの備える通信制御部の制御方法
Puiu et al. INTELLIGENT SERVO DRIVES AND FIELDBUSSES COMMUNICATION FOR MULTI-AXIS MOTION CONTROL

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: 19834537

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE