WO2012124144A1 - 演算ユニット、出力制御方法、およびプログラム - Google Patents

演算ユニット、出力制御方法、およびプログラム Download PDF

Info

Publication number
WO2012124144A1
WO2012124144A1 PCT/JP2011/056780 JP2011056780W WO2012124144A1 WO 2012124144 A1 WO2012124144 A1 WO 2012124144A1 JP 2011056780 W JP2011056780 W JP 2011056780W WO 2012124144 A1 WO2012124144 A1 WO 2012124144A1
Authority
WO
WIPO (PCT)
Prior art keywords
cam
program
cam table
control
switching
Prior art date
Application number
PCT/JP2011/056780
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 EP11861262.1A priority Critical patent/EP2687929B9/en
Priority to US14/005,288 priority patent/US9869979B2/en
Priority to CN201180068868.XA priority patent/CN103403630B/zh
Publication of WO2012124144A1 publication Critical patent/WO2012124144A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B15/00Systems controlled by a computer
    • G05B15/02Systems controlled by a computer electric
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/056Programming the PLC
    • 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/42Servomotor, servo controller kind till VSS
    • G05B2219/42189Motion look up table as function of cam angle

Definitions

  • the present invention relates to an arithmetic unit of a programmable logic controller, an output control method, and a program, and more particularly, to an arithmetic unit that executes motion control and sequence control, an output control method in the arithmetic unit, and a program that controls the arithmetic unit. .
  • the PLC Programmable Logic Controller
  • the PLC is, for example, a CPU (Central Processing Unit) unit that includes a microprocessor that executes user programs, an IO that is in charge of signal input from external switches and sensors, and signal output to external relays and actuators. It consists of multiple units such as (Input Output) unit.
  • the PLC performs a control operation while exchanging data via the PLC system bus and / or the field network for each user program execution cycle between these units.
  • Control of the operation of machines, equipment, etc. may include motion control for controlling motor movement.
  • a motion control typically a control process (execution of a motion calculation program) for periodically outputting a command value to a motor driver that drives a motor, is performed in a motion controller provided separately from the PLC. It was done.
  • speeding up of microprocessors and communication networks is progressing. For this reason, it has become possible to execute not only a user program but also a motion operation program in one microprocessor by using those techniques in the PLC.
  • Patent Document 1 discloses a configuration in which a motion control function for controlling a motor and a PLC function for executing a sequence calculation (user program) are processed by one CPU. More specifically, for each cycle of the basic clock, “fixed-cycle motion control processing and each axis processing” and “high-speed sequence processing” are executed, and “low speed” is performed in the remaining time in each basic clock cycle. It is disclosed to execute “sequence processing” or “non-constant cycle motion control processing”.
  • Non-Patent Document 1 describes a cam table for realizing an electronic cam.
  • Non-Patent Document 1 describes a cam variable.
  • Patent Document 2 discloses an electronic cam control device.
  • the electronic cam control device includes a stroke bottom dead center setting unit, an addition movement amount setting unit, a position command calculation unit, and a stroke bottom dead center changing unit.
  • the additional movement amount setting unit sets additional movement data for changing the stroke bottom dead center position.
  • the position command calculation unit adds the cam positioning amount A to the stroke bottom dead center position set in the stroke bottom dead center setting unit and the addition movement amount setting unit.
  • the addition movement amount corresponding to the movement data is sequentially added, and the addition result is sequentially output as a position command value for the output shaft.
  • the stroke bottom dead center change unit responds to the addition movement data set in the addition movement amount setting unit at the stroke bottom dead center position set in the stroke bottom dead center setting unit.
  • the added movement amount is sequentially added, and the stroke bottom dead center position set in the stroke bottom dead center setting unit is sequentially updated with the addition result.
  • Patent Document 3 discloses a motor positioning control system. Positioning control system of the motor is moved to update the real time R ti for each division period, determine the dimensionless time from the mobile real time R ti the updated t i, dimensionless position corresponding to the dimensionless time t i S ij is obtained using a cam curve table. The motor positioning control system obtains the actual position s ij by multiplying the obtained dimensionless position S ij by the stroke h j . The motor positioning control system performs the calculation for obtaining the actual position s ij on N selected cam curves. The motor positioning control system adds the obtained N actual positions s ij . Motor positioning control system performs feedback control of the rotational position of the motor by the difference s Ti -s Ti-1 of the addition value s Ti-1 obtained by the division period of the added value s Ti and the previous to the command value.
  • Patent Documents 4 to 6 disclose devices for synchronously driving a main shaft motor and a sub shaft motor.
  • JP 2007-140655 A JP 2006-293692 A JP-A-8-339218 JP-A-8-126375 JP-A-9-289788 JP-A-10-174478
  • Non-Patent Document 1 does not disclose specific contents regarding switching of the cam table.
  • the present invention has been made in view of the above-described problems, and an object thereof is to provide a PLC arithmetic unit, an output control method, and a program capable of quickly switching a cam table.
  • the arithmetic unit is an arithmetic unit of a programmable logic controller that performs motion control and sequence control.
  • the arithmetic unit includes a processor, a program for performing motion control using a cam table in which the displacement of the follower of the electronic cam is associated with each phase of the main shaft of the electronic cam, and a first cam table And a memory storing a second cam table.
  • the processor executes the program using the first cam table and outputs the execution result to the control target device corresponding to the follower.
  • the processor receives a predetermined instruction during execution of the program, the processor switches the cam table used for execution of the program from the first cam table to the second cam table. Based on the switching, the processor outputs the execution result of the program using the second cam table to the control target device.
  • the memory includes a non-volatile memory and a volatile memory.
  • the non-volatile memory stores a first cam table and a second cam table.
  • the processor reads the first cam table and the second cam table from the nonvolatile memory, and expands the read cam table in the volatile memory.
  • the processor executes the program using the developed first cam table before receiving a predetermined instruction.
  • the processor executes the program using the expanded second cam table.
  • the processor when switching the cam table used for program execution from the first cam table to the second cam table, sets the phase of the second cam table to be larger than the phase of the first cam table at the time of switching.
  • the program is executed using the associated displacement.
  • the memory further stores an upper limit value relating to acceleration and an upper limit value relating to deceleration.
  • the processor limits the acceleration of the control target device to the upper limit value regarding acceleration.
  • the processor limits the deceleration of the control target device to the upper limit value related to deceleration.
  • the memory further stores a smoothing filter for smoothing the cam table.
  • the processor smoothes the displacement in the second cam table by the smoothing filter.
  • the memory further stores a third-order or higher order polynomial.
  • the processor smoothes the displacement in the second cam table using a high-order polynomial.
  • the processor performs a process of compensating for the shortage of the movement amount of the control target device caused by performing the control without outputting the displacement of the second cam table in one or a plurality of cam cycles of the electronic cam in the motion control. .
  • the processor designates whether to process as an error or to perform the deficiency compensation processing in the next cam cycle. Accept instructions.
  • the program includes a motion calculation program and a user program that performs a process for giving an instruction necessary for executing the motion calculation program to the motion calculation program.
  • the processor repeats the execution of the motion calculation program every first fixed period.
  • the processor repeats the user program every second fixed period that is an integral multiple of the first fixed period.
  • the program for performing the switching is described in the first fixed-cycle task or the second fixed-cycle task.
  • the output control method is an output control method in an arithmetic unit of a programmable logic controller that executes motion control and sequence control.
  • the arithmetic unit includes a program for performing motion control using a cam table in which the displacement of the follower of the electronic cam is associated with each phase of the main shaft of the electronic cam, and a first cam table as the cam table And a second cam table.
  • the output control method includes a step in which the processor of the arithmetic unit executes a program using the first cam table and outputs the execution result to a control target device corresponding to the follower, and the processor executes the program during execution of the program.
  • the program is a program for controlling an arithmetic unit of a programmable logic controller that executes motion control and sequence control.
  • the arithmetic unit includes a program for performing motion control using a cam table in which the displacement of the follower of the electronic cam is associated with each phase of the main shaft of the electronic cam, and a first cam table as the cam table And a second cam table.
  • the program executes the program using the first cam table, outputs the execution result to the control target device corresponding to the follower, and receives a predetermined instruction during the execution of the program, A step of switching the cam table used for execution from the first cam table to the second cam table and a step of outputting the execution result of the program using the second cam table to the control target device based on the switching are calculated. Let the unit execute.
  • the cam table can be switched quickly.
  • FIG. 16 is a diagram showing a timing chart for switching the cam table shown in FIG. 15. It is a figure for demonstrating the process at the time of the switching of a cam table. It is the flowchart which showed the procedure which switches a cam table. It is a figure showing the data flow when the control command which switches a cam table is described to the high priority fixed period task.
  • FIG. 16 is a timing chart for switching the cam table shown in FIG. 15 when a smoothing filter is used. It is a figure showing the system configuration
  • FIG. 16 is a diagram illustrating a timing chart for switching the cam table illustrated in FIG. 15 when a polynomial is used.
  • the PLC according to the present embodiment has a motion control function for controlling the motion of the motor.
  • the system configuration of the PLC 1 according to the present embodiment will be described with reference to FIG.
  • FIG. 1 is a schematic diagram showing a schematic configuration of a PLC system according to an embodiment of the present invention.
  • PLC system SYS includes PLC 1, servo motor driver 3 and remote IO terminal 5 connected to PLC 1 via field network 2, detection switch 6 and relay 7 which are field devices.
  • the PLC support device 8 is connected to the PLC 1 via the connection cable 10 or the like.
  • 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 manufacturer, the PLC system bus 11 is generally developed and used independently for each PLC manufacturer. On the other hand, as will be described later, for the field network 2, the standards and the like are often disclosed so that products from different manufacturers can be connected.
  • the IO unit 14 is a unit related to general input / output processing, and controls input / output of binarized data such as on / off. In other words, the IO unit 14 collects information indicating whether a sensor such as the detection switch 6 is detecting a certain object (on) or not detecting any object (off). . In addition, 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 analog data input / output, 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 registered trademark
  • industrial Ethernet registered trademark
  • industrial Ethernet for example, EtherCAT (registered trademark), Profinet IRT, MECHATROLINK (registered trademark) -III, Powerlink, SERCOS (registered trademark) -III, and CIP Motion are known. Any of them may be adopted.
  • a field network other than industrial Ethernet may be used. For example, if the motion control is not performed, DeviceNet, CompoNet / IP (registered trademark), or the like may be used.
  • the PLC system SYS typically exemplifies a configuration in the case where EtherCAT (registered trademark), which is an industrial Ethernet (registered trademark), is employed as the field network 2 in the present embodiment.
  • FIG. 1 illustrates the PLC system SYS having both the PLC system bus 11 and the field network 2, but a system configuration in which only one of them is mounted may be employed. For example, all units may be connected by the field network 2. Alternatively, the servo motor driver 3 may be directly connected to the PLC system bus 11 without using the field network 2. Further, 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 motor 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. More specifically, the servo motor 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 a constant cycle.
  • the servo motor driver 3 receives a position and speed (typically from the difference between the current position and the previous position) from a detector such as a position sensor (rotary encoder) or torque sensor connected to the shaft of the servo motor 4. (Calculated), an actual measurement value related to the operation of the servo motor 4 such as torque is acquired.
  • the servo motor driver 3 sets a command value from the CPU unit 13 as a target value, and performs feedback control using the actually measured value as a feedback value. That is, the servo motor driver 3 adjusts the current for driving the servo motor 4 so that the actual measurement value approaches the target value.
  • the servo motor driver 3 may be referred to as a servo motor amplifier.
  • FIG. 1 shows a system example in which the servo motor 4 and the servo motor driver 3 are combined, but other configurations, for example, a system in which a pulse motor and a pulse motor driver are combined may be employed.
  • a remote IO terminal 5 is further connected to the field network 2 of the PLC system SYS shown in FIG.
  • the remote IO terminal 5 basically performs processing related to general input / output processing in the same manner as the IO unit 14. More specifically, the remote IO terminal 5 includes a communication coupler 52 for performing processing 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.
  • FIG. 2 is a schematic diagram showing a hardware configuration of the CPU unit 13 according to the embodiment of the present invention.
  • the CPU unit 13 includes a microprocessor 100, a chip set 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 chip set 102 and other components are coupled 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 chip set 102 according to the internal clock.
  • the chip set 102 exchanges internal data with various connected components and generates instruction codes necessary for the microprocessor 100. Further, the chip set 102 has a function of caching data obtained as a result of execution of arithmetic processing in the microprocessor 100.
  • the CPU unit 13 includes a main memory 104 and a nonvolatile memory 106 as storage means.
  • the main memory 104 is a volatile storage area (RAM) and holds various programs to be executed by the microprocessor 100 after the CPU unit 13 is powered 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 DRAM (Dynamic Random Access Memory) or SRAM (Static Random Access Memory) is used.
  • the non-volatile memory 106 holds data such as a real-time OS (Operating System), a PLC 1 system program, a user program, a motion calculation program, and system setting parameters in a non-volatile manner. These programs and data are copied to the main memory 104 so that the microprocessor 100 can access them as 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. Typically, it is configured to generate an interrupt signal at a plurality of different periods depending on the hardware specifications, but interrupts at an arbitrary period depending on the OS (Operating System), BIOS (Basic Input Output System), etc. It can also be set to generate a signal. Using the interrupt signal generated by the system timer 108, a control operation for each motion control cycle as described later is realized.
  • the CPU unit 13 includes a PLC system bus controller 120 and a field network controller 140 as communication circuits.
  • 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 data reception buffer (hereinafter also referred to as “input data”).
  • the output data created by the arithmetic processing by the microprocessor 100 is stored in the main memory 104 originally. Output data to be transferred to a specific unit is read from the main memory 104 and temporarily held in the buffer memory 126. Input data transferred from other units is temporarily stored in the buffer memory 126 and then transferred 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 processing for transmitting output data of the buffer memory 126 and processing for receiving input data and storing it in the buffer memory 126 with other units connected to the PLC system bus 11. .
  • the PLC system bus control circuit 124 provides functions of a physical layer and a data link layer in the PLC system bus 11.
  • the field network controller 140 controls data exchange through 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 to be used. As described above, since the field network 2 conforming to the EtherCAT (registered trademark) standard is adopted in the present embodiment, the field network controller 140 including hardware for performing normal Ethernet (registered trademark) communication is used. It is done. In the EtherCAT (registered trademark) standard, a general Ethernet (registered trademark) controller that realizes a communication protocol according to the normal Ethernet (registered trademark) standard can be used.
  • 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 processing for transmitting output data from the buffer memory 146 and processing for receiving input data and storing it in the buffer memory 146 with other devices 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 PLC support device 8 and the CPU unit 13. Typically, a program that can be executed by the microprocessor 100 of the CPU unit 13 and transferred from the PLC support device 8 is taken into the PLC 1 via the USB connector 110.
  • FIG. 3 is a schematic diagram showing a software configuration executed by the CPU unit 13 according to the embodiment of the present invention.
  • the software executed by the CPU unit 13 has three layers of 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 command 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), so 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. In other words, the program is arbitrarily designed according to the line (process) to be controlled using the PLC system SYS.
  • the user program 236 realizes a control purpose for the user in cooperation with the sequence command calculation program 232 and the motion calculation program 234. That is, the user program 236 implements programmed operations by using instructions, functions, function modules, and the like provided by the sequence instruction calculation program 232 and the motion calculation program 234. Therefore, the user program 236, the sequence command calculation program 232, and the motion calculation program 234 may be collectively referred to as the 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 above-described user program 236 is created according to a control purpose (for example, a target line or process) by 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 PLC support device 8 or the like. Then, the generated user program 236 in the object program format is transferred from the PLC 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 process start in each execution cycle and the process resumption after the process interruption for the output process program 214, the input process 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 CPU unit 13 employs a constant execution cycle (motion control cycle) suitable for the motion calculation program 234 as a common cycle for the entire process. Therefore, it is difficult to complete all processes within one motion control cycle. Therefore, depending on the priority of the process to be executed, the process to be executed in each motion control cycle and multiple motion controls A process that can be executed over a cycle is distinguished.
  • the scheduler program 212 manages the execution order of these divided processes. More specifically, the scheduler program 212 executes a program having a higher priority first in each motion control cycle period.
  • the output processing program 214 rearranges the output data generated by the execution of the user program 236 (control program 230) into a format suitable for transferring 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 the 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 command calculation program 232 is a program that is called when a certain sequence command used in the user program 236 is executed and executed to realize the content of the command.
  • 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 motor driver 3 or the pulse motor driver.
  • Other system programs 220 collectively show a group of programs for realizing various functions of the PLC 1 other than the programs individually shown in FIG.
  • the other system program 220 includes a program 222 for setting the period of the motion control cycle.
  • the period of the motion control cycle can be appropriately set according to the control purpose.
  • the user inputs information specifying the period of the motion control cycle to the PLC support device 8.
  • the input information is transferred from the PLC support device 8 to the CPU unit 13.
  • the program 222 for setting the cycle of the motion control cycle stores information from the PLC 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 Accordingly, the system timer 108 is set.
  • the format of the information for specifying the period of the motion control cycle includes a time value indicating the period of the motion control cycle and information for identifying one of a plurality of options prepared in advance relating to the period of the motion control cycle (number Or a character) etc. can be adopted.
  • means for setting the period of the motion control cycle means for communicating with the PLC support device 8 used for acquiring information specifying the period of the motion control cycle, motion control Used to arbitrarily set the period of the motion control cycle, such as the program 222 for setting the cycle period and the configuration of the system timer 108 that can arbitrarily set the period of the interrupt signal that defines the motion control cycle. Applicable element.
  • the real-time OS 200 provides an environment for switching and executing a plurality of programs over time.
  • an output preparation interrupt (P) is used as an event (interrupt) for outputting (transmitting) output data generated by program execution of the CPU unit 13 to another unit or another device.
  • the field network transmission interrupt (X) is initialized.
  • the real time OS 200 switches the execution target in the microprocessor 100 from the program being executed at the time of the interrupt generation to the scheduler program 212.
  • the real-time OS 200 executes the programs included in the other system programs 210 when the scheduler program 212 and the program that controls the execution of the scheduler program 212 are not executed at all.
  • a program includes, for example, a program related to communication processing between the CPU unit 13 and the PLC support device 8 via the connection cable 10 (USB).
  • the user program 236 includes a command for periodically determining whether or not a condition for starting control related to motor movement is satisfied. For example, the logic is such that it is determined whether or not a work to be treated by a driving force of a motor has been conveyed to a predetermined treatment position.
  • the user program 236 further includes a command for starting motion control in response to the determination that the control start condition is satisfied. With the start of this motion control, execution of a motion command is instructed.
  • the motion calculation program 234 corresponding to the instructed motion command is activated, and first, initial processing 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 in the same motion control cycle as the initial process. Therefore, the initial process and the first command value calculation process are processes that the activated motion calculation program 234 should perform in the first execution. Thereafter, the command value in each cycle is sequentially calculated.
  • FIG. 4 is a flowchart showing an outline processing procedure of motion control provided by the control program 230 (user program 236, sequence command calculation program 232, and motion calculation program 234) according to the embodiment of the present invention.
  • microprocessor 100 periodically determines whether or not a condition for starting control relating to motor motion is satisfied (step S2). The determination as to whether or not this control start condition is satisfied is realized by the user program 236 and the sequence instruction operation program 232. If the control start condition is not satisfied (NO in step S2), the determination in step S2 is repeated.
  • step S4 the microprocessor 100 executes an initial process related to motion control.
  • This initial process includes a process for calculating the start position coordinates, end position coordinates, initial speed, initial acceleration, trajectory, and the like of the motor motion.
  • step S6 the microprocessor 100 executes a command value calculation process in the first cycle.
  • step S8 the microprocessor 100 executes an output process of the calculated command value.
  • step S10 the microprocessor 100 waits until the next motion control cycle arrives (step S10). Then, the microprocessor 100 periodically determines whether or not a control termination condition regarding the motor motion is satisfied (step S12).
  • the condition that this control end is satisfied means that the servo motor 4 has reached the end position. If the control termination condition is satisfied (YES in step S12), the processes in and after step S2 are repeated again. At this time, the activated motion calculation program 234 is maintained in an inactive state until a new control start condition is satisfied.
  • step S12 If the control termination condition is not satisfied (NO in step S12), the microprocessor 100 executes a command value calculation process in the current cycle (step S14). Furthermore, the microprocessor 100 executes an output process of the calculated command value (step S16). And the process after step S10 is repeated.
  • a functional module for realizing motion control is also referred to as a “motion control functional module”.
  • the “motion control function module” is a target value (position, speed, torque, etc.) given from the user program, which is necessary to realize the motion motion desired by the user. It is a functional module that executes command value output and information acquisition from the axis at a constant cycle.
  • the “motion control function module” is an open loop controller that outputs a command value to the servo driver.
  • An instruction (function block or the like) that gives an instruction to the motion control function module is referred to as a “motion control instruction”.
  • FIG. 5 is a diagram showing the relationship between motion control instructions and tasks. Specifically, FIG. 5 is a diagram showing a data flow. Referring to FIG. 5, the motion control function module is executed in a high priority fixed period task. The motion control command can be described in a high priority fixed period task or a low priority fixed period task. The high priority periodic task is the highest priority task in the CPU unit 13.
  • the low-priority periodic task is temporarily suspended and the high-priority periodic task is executed. After completion of the high priority periodic task, execution of the low priority periodic task is resumed.
  • the period T2 of the low priority fixed period task is an integer multiple of the period T1 of the high priority fixed period task.
  • the scheduler program is expressed as “SC”
  • the output / input processing program as “OI”
  • the user program 236 as “UPRG”
  • the motion calculation program 234 as “MC”.
  • different reference numerals 701 to 707 are given to identify each OI and each MC.
  • the order of the rough flow of data is (1) slave ⁇ OI701 ⁇ MC702 ⁇ OI703 ⁇ servo motor driver 3; (2) MC704 ⁇ OI705 ⁇ servo motor driver 3; and (3) MC706 ⁇ OI707 ⁇ servo motor driver 3. . This will be specifically described below.
  • the microprocessor 100 is in a state in which at least the output / input processing program (the output processing program 214 and the input processing program 216), the user program 236, and the motion calculation program 234 can be executed.
  • the real-time OS 200 holds processes (or threads) related to the respective programs in an executable state
  • the scheduler program 212 uses the real-time OS 200 and hardware resources (such as the system timer 108).
  • each program is executed at an appropriate timing and in an appropriate order.
  • the start / interruption / end of execution of each program is controlled by the scheduler program 212.
  • the field network controller 140 receives the motion control input data and stores it in the field network reception buffer (not shown) of the main memory 104.
  • the input data is stored and / or the PLC system bus controller 120 receives the motion control input data and stores the input data in a PLC system bus reception buffer (not shown) of the main memory 104.
  • the CPU unit 13 is a master, and each unit other than the CPU unit 13 is set as a slave.
  • start command data or motion command value data is output in accordance with an instruction of the IO processing program 218. More specifically, the start command data and motion command value data stored in the work area (not shown) of the control program in the main memory 104 are transferred to a field network transmission buffer (not shown) in the main memory 104. The Further, following the data transfer to the field network transmission buffer, the field network controller 140 transmits start command data or motion command value data to the servo motor driver 3.
  • input data that is used for calculation by the user program 236 but is not used for calculation by the motion calculation program 234 can be input. Further, even if the user program output data generated by the execution of the user program 236 is output data that is not used for the calculation in the motion calculation program 234, it is sent to the IO processing program 218 and output in the OI processing.
  • the “motion control cycle” is a cycle of a series of processes executed at a cycle of execution and communication of the motion calculation program 234, that is, a cycle of giving motion command value data to the servo motor driver 3.
  • ⁇ E. Electronic cam> an electronic cam operation will be described as a function of the synchronization control.
  • “Synchronous control” refers to controlling the position of the driven axis (control target axis) in synchronization with the position of the main axis (input axis).
  • main axis any of the position of the encoder for full closed loop control, the command position of the servo driver and the virtual servo driver, and the feedback position of the encoder, servo driver, and virtual servo driver can be designated.
  • the “electronic cam operation” refers to a function of performing a cam operation at a control cycle in accordance with a cam pattern set by a cam table described later.
  • the CPU unit 13 Since the CPU unit 13 controls the output by calculating in synchronization with the input every control cycle, the calculation result may exceed the maximum speed that can be output by the motion control function module. However, in this case, the CPU unit 13 outputs the highest speed without causing an error. The CPU unit 13 distributes and outputs the movement amount deficient due to saturation at the maximum speed and the maximum after the next control cycle.
  • FIG. 6 is a diagram showing an outline of functions of the electronic cam.
  • the electronic cam 500 includes an electronic cam calculation unit 501, an interpolation unit 502, and a switch unit 503.
  • the electronic cam calculation unit 501 includes a position selected in advance among the position of the encoder for full closed loop control, the command position of the servo driver and the virtual servo driver, and the feedback position of the encoder, servo driver, and virtual servo driver. Is entered.
  • the electronic cam calculation unit 501 outputs the displacement of the driven shaft to the interpolation unit 502 based on the input phase of the main shaft and the cam table.
  • the interpolation unit 502 performs an interpolation process using the value output from the electronic cam calculation unit 501.
  • the interpolation unit 502 outputs the value (command position) after the interpolation process via the switch unit 503.
  • the cam table is stored in advance in the nonvolatile memory 106 and is developed in the main memory 104 when the power is turned on.
  • FIG. 7 is a diagram for visually explaining the operation of the electronic cam 500.
  • FIG. 7 is a diagram showing a cam mechanism ME including a mechanical cam 500A represented by a cam curve based on the cam table.
  • cam mechanism ME includes a main shaft 400, a mechanical cam 500 ⁇ / b> A, and a driven shaft 600.
  • the mechanical cam 500 ⁇ / b> A is fixed to the main shaft 400 and rotates as the main shaft 400 rotates.
  • the driven shaft 600 performs linear motion as the mechanical cam 500A rotates. That is, in the cam mechanism ME, when the phase (input) of the main shaft changes, the driven shaft 600 is displaced (output).
  • the electronic cam 500 realizes such input / output in the cam mechanism ME by software.
  • FIG. 8 is a diagram showing a cam curve 510 of the electronic cam 500.
  • cam curve 510 the displacement increases from 0 as the phase increases from 0, and the displacement reaches a peak at the phase (180 degrees) in the half cycle. Thereafter, the displacement decreases as the phase increases, and the displacement becomes 0 at the phase (360 degrees) in one cycle.
  • the cam curve 510 is an example, and the cam curve used in the PLC system SYS is not limited to this.
  • FIG. 9 is a diagram showing a system configuration related to the electronic cam 500.
  • FIG. 9 shows the electronic cam 500 of FIG. 6 in more detail.
  • the system related to electronic cam 500 includes an electronic cam calculation unit 501, an interpolation unit 502, a switch unit 503, a cam table reading unit 504, a smoothing processing unit 505, and a plurality of cam tables. Realized.
  • FIG. 9 shows an example in which a spindle command position (encoder position) is input from the encoder 19 to the electronic cam 500.
  • Each of the plurality of cam tables defines the relationship between the phase of the main shaft and the displacement of the driven shaft, as will be described in detail later.
  • the user can specify a desired cam table at the start of the electronic cam operation.
  • the microprocessor 100 selects a cam table to be used from a plurality of cam tables based on an instruction from the user.
  • the cam table reading unit 504 reads the phase of the main shaft and the displacement of the driven shaft.
  • the microprocessor 100 acquires the phase of the main shaft every control cycle and commands the position of the driven shaft so that the displacement is defined in the cam table.
  • the electronic cam 500 can execute a smoothing process described later by the smoothing processing unit 505.
  • the CPU unit 13 is configured such that the switch unit 503 can select whether or not to perform the smoothing process.
  • the electronic cam 500 outputs a driven shaft command position to the servo motor driver 3.
  • the output after the smoothing process is performed on the output from the interpolation unit 502 becomes the secondary coaxial command position.
  • the output from the interpolation unit becomes the driven axis command position.
  • the user can input an instruction to change the cam table even when the driven shaft is stopped and the electronic cam is operating.
  • FIG. 10 is a diagram showing the data structure of the cam table 520. More specifically, FIG. 10 is a diagram showing a data structure of a cam table created by cam table editing software stored in the PLC support device 8.
  • cam table 520 is data in which the displacement of the follower of the electronic cam is associated with each phase of the main shaft of the electronic cam. That is, the cam table 520 is discrete data.
  • straight line interpolation is performed using the data in the cam table 520, the cam curve 510 shown in FIG. 8 is obtained.
  • the linear interpolation is performed by the interpolation unit 502 in FIG.
  • the phase from 0 degrees to 360 degrees can be described by dividing it into the maximum number of cam data.
  • the phase is described in increments of 0.1 degrees.
  • the “cam data” is data composed of one displacement and one phase. That is, the cam table 520 includes a plurality of cam data.
  • the unit of displacement ⁇ is “mm”, for example.
  • the first cam data in which each of the phase and displacement values is 0 is the cam table start point. This location is index 0.
  • the cam data immediately before (i.e., one higher) the point where each of the phase and displacement values is next 0 is the end point of the cam table. That is, the cam data from the start point of the cam table to the end point of the cam table (data in a phase range from 0 degrees to 360 degrees) is significant cam data.
  • “Significant cam data” is cam data that affects the operation of the electronic cam.
  • An index number that is an identifier of cam data is assigned to significant cam data. The index numbers are assigned in ascending order in the cam table.
  • cam data after (that is, below) the end point of the cam table is cam data that does not affect the operation of the electronic cam (that is, insignificant cam data). Note that insignificant cam data does not have to be zero in both phase and displacement. The number of insignificant cam data is specified by the cam table editing software.
  • FIG. 11 is a view showing an example of a liquid filling apparatus 900 to which the electronic cam 500 is applied.
  • the liquid filling apparatus 900 is configured to turn a conveyor 910 that conveys a plurality of containers 990 in the direction of an arrow 911, an injection pipe 930 that injects liquid, and an injection pipe 930 that rotates along the arrow 921.
  • the injection tube 930 makes a stroke movement in the direction indicated by the arrow 931 by the electronic cam. That is, in the liquid filling apparatus 900, the shaft 910a for moving to the arrow 911 corresponds to the main shaft, and the injection tube 930 corresponds to the slave shaft that performs a cam operation synchronized with the main shaft.
  • FIG. 12 shows a cam curve 560 different from the cam curve 510 shown in FIG.
  • the displacement increases from 0 as the phase increases from 0, and the displacement reaches a peak around 140 degrees in phase. Thereafter, the displacement decreases as the phase increases, and the displacement starts to increase near the phase of 290 degrees. Furthermore, the phase starts to decrease near the phase of 310 degrees, and the displacement becomes 0 at the phase in one cycle (360 degrees).
  • the cam curve 560 is a curve different from the cam curve 510.
  • the cam curve 560 is an example and may be a curve different from the cam curve 510.
  • FIG. 13 is a diagram showing the cam table 570.
  • cam table 570 is data in which the displacement of the follower of the electronic cam is associated with each phase of the main shaft of the electronic cam. That is, the cam table 570 is discrete data like the cam table 520.
  • straight line interpolation is performed using the data in the cam table 570, the cam curve 560 shown in FIG. 12 is obtained.
  • the linear interpolation is performed by the interpolation unit 502 in FIG.
  • the cam table 520 and the cam table 570 are stored in the nonvolatile memory 106 in advance, and are developed in the main memory 104 when the power is turned on.
  • FIG. 14 is a diagram for explaining cam table switching processing. Specifically, FIG. 14 illustrates a process in which the CPU unit 13 switches the cam table used for the cam operation from the cam table 520 to the cam table 570 while the CPU unit 13 performs the process based on the cam table 520. It is a figure for doing.
  • FIG. 14A shows a cam curve 510 based on the cam table 520 before switching and a cam curve 560 based on the cam table 570 after switching.
  • FIG. 14B is a diagram for explaining the operation of the electronic cam before and after switching of the cam table.
  • the displacement of phase ⁇ a in cam curve 510 is ⁇ 1
  • the displacement of phase ⁇ a in cam curve 560 is ⁇ 2 ( ⁇ 2> ⁇ 1).
  • the CPU unit 13 switches the cam table from the cam table 520 to the cam table 570, the CPU unit 13 has a continuity with the phase in the cam table 520 at the time of switching, and the phase in the cam table 570 at the time of switching. Then, control using the cam table 570 is started.
  • the value of the displacement ⁇ which is the command value at the time of the phase ⁇ a in the control cycle (the middle cycle in FIG. 14B) in which the cam table is switched. Changes rapidly from ⁇ 1 to ⁇ 2.
  • FIG. 15 is a diagram showing a user interface for switching the cam table.
  • FIG. 15 shows a description example of the switching instruction when a ladder language generally used in the PLC controller and a function block are used.
  • switching of the cam table is performed using the PLC support device 8. Specifically, when the user inputs an instruction to switch the cam table while referring to the display 87 of the PLC support device 8, the cam table developed in the main memory 104 is switched.
  • the display 87 displays three areas 801 to 803.
  • An area 801 is a menu area where selectable items are displayed.
  • An area 802 is an area where the user inputs.
  • an electronic cam No. 1 is the cam table No. 1. 1 to cam table no.
  • a command for switching to 2 is described by the user.
  • the cam table 520 has a cam table No. 1 corresponds to the cam table 570. Corresponds to 2.
  • the processing contents to be executed are displayed according to the description in the area 802.
  • the microprocessor 100 describes two instances “cam No. 1” for starting the cam operation in the ladder program.
  • the microprocessor 100 designates “cam table No. 1” in the first instance, and designates “cam table No. 2” in the second instance.
  • the microprocessor 100 executes the second instance while the operation of the first instance is in progress and the contact point_ 2 is set to TRUE, thereby changing the cam table to be used from the cam table 1 to the cam table No. Switch to 2.
  • the cam table switching command may use ST (Structure Text) language instead of ladder language.
  • FIG. 16 shows a timing chart for switching the cam table shown in FIG. Referring to FIG. 16, at time t1, contact point_1 becomes TRUE, and at time t2 (t1 ⁇ t2), the CPU unit 13 determines whether the cam table No. Start motion control using 1. At time t3 (t2 ⁇ t3), the contact _2 becomes TRUE. When the contact _2 becomes TRUE, the cam table No. No. 1 to motion control using cam table No. The control content is switched to motion control using 2.
  • the cam table reading unit 504 reads a new cam table and receives the cam table switching instruction at the position p (t) of the spindle (that is, Displacement) and the position of the spindle defined in the new cam table are compared, and the cam operation is continued from a position larger than p (t).
  • the cam table 520 and the cam table 570 have the same phase value.
  • microprocessor 100 determines from phase ⁇ a.
  • the motion calculation program 234 is executed using the displacement associated with the phase of the larger cam table 570.
  • the microprocessor 100 executes the motion calculation program 234 using the displacement associated with the phase ( ⁇ a + 0.1 °) next to the phase ⁇ a in the cam table 570. After that, the microprocessor 100 performs processing based on the ascending order of the phase, starting from the phase ( ⁇ a + 0.1).
  • FIG. 17 is a diagram for explaining processing at the time of switching the cam table.
  • the cam table No. that currently uses the cam table.
  • i (not shown)
  • the phase of the spindle at the cam table switching instruction is 200 °.
  • the cam table No. It is assumed that the phase of j, the next of 180 ° is 210 °. Note that i and j are natural numbers.
  • the CPU unit 13 makes the displacement (position) of the control target device, which is the driven shaft, with respect to the control target device so as to be 100 mm associated with a phase of 210 ° larger than 200 °. Outputs the command value.
  • the smoothing processing unit 505 sets the follower command position so as to suppress a sudden change in the follower command position that occurs when the cam table is switched. A process for changing smoothly is performed. This prevents the driven shaft servo driver from hunting. That is, the vibration of the driven shaft can be reduced when the cam table is switched.
  • FIG. 18 is a flowchart showing a procedure for switching the cam table.
  • the microprocessor 100 determines whether or not designation of an electronic cam for switching the cam table has been received from among a plurality of electronic cams.
  • step S102 If the microprocessor 100 determines that it has not received (NO in step S102), the process proceeds to step S110. If microprocessor 100 determines that it has been accepted (YES in step S102), it determines in step S104 whether designation of a cam table to be used after switching has been accepted.
  • step S104 If the microprocessor 100 determines that it has not received (NO in step S104), the process proceeds to step S110. If microprocessor 100 determines that it has been accepted (YES in step S104), in step S106, the cam table used by the designated electronic cam (for example, electronic cam No. 1) is used as the cam table currently used ( For example, the cam table 520) is switched to a designated cam table (for example, the cam table 570).
  • the cam table used by the designated electronic cam for example, electronic cam No. 1
  • the cam table currently used For example, the cam table 520
  • a designated cam table for example, the cam table 570.
  • step S108 the microprocessor 100 executes motion control using the cam data after switching.
  • step S110 the microprocessor 100 determines whether or not the control using the designated electronic cam is finished. If the microprocessor 100 determines that the processing has ended (YES in step S108), the series of processing ends. If microprocessor 100 determines that the processing has not ended (NO in step S108), the process proceeds to step S102.
  • control command for switching the cam table may describe a control command for switching the cam table in the high-priority periodic task, or may describe the control command in the low-priority periodic task.
  • FIG. 19 is a diagram showing a data flow when a control command for switching the cam table is described in the high priority fixed period task.
  • control command FB (Function Block) 711 for switching the cam table is described in UPRG 710.
  • the order of the rough flow of data is as follows: (1) Slave ⁇ OI 701 ⁇ FB 711 ⁇ MC 702 ⁇ OI 703 ⁇ Servo motor driver 3 (2) MC 704 ⁇ OI 705 ⁇ Servo motor driver 3 (3) MC 706 ⁇ OI 707 ⁇ Servo This is a motor driver 3.
  • FIG. 20 is a diagram showing a data flow when a control command for switching the cam table is described in the low priority fixed period task.
  • control commands FB (Function Block) 721 and 722 for switching the cam table are described in UPRG 720.
  • the general flow order of data is slave ⁇ OI 701 ⁇ MC 702 ⁇ UPRG 720 (FB721, 722) ⁇ OI 706 ⁇ OI 707 ⁇ servo motor driver 3.
  • FIG. 21 is a diagram for explaining the operation of the electronic cam before and after the switching of the cam table. Specifically, FIG. 21 shows a case where the CPU unit 13 switches the cam table used for the cam operation from the cam table 520 to the cam table 570 while the CPU unit 13 performs the processing based on the cam table 520. It is a figure for demonstrating operation
  • microprocessor 100 upon receiving a command for switching from cam table 520 to cam table 570, performs processing using cam table 570A instead of cam table 570 in the control cycle in which the command is received. Execute. When the microprocessor 100 uses the cam table 570A once, the microprocessor 100 executes processing using the cam table 570 instead of the cam table 570A in the next control cycle.
  • the CPU unit 13 can reduce the occurrence of a sudden change in displacement by using the smoothed cam table in the control cycle in which an instruction to switch the cam table is received.
  • the above-described smoothing process is realized by the microprocessor 100 using a smoothing filter stored in advance in the nonvolatile memory 106.
  • the smoothing filter preferably has low-pass characteristics in order to smooth sudden changes.
  • Typical smoothing filters having a low-pass characteristic include, for example, a first-order lag filter, a high-order lag filter, and a moving average filter.
  • FIG. 22 is a flowchart showing a flow of processing relating to the smoothing processing. The processing shown in the flowchart is executed in step S108 in FIG.
  • step S202 the microprocessor 100 determines whether or not to execute the smoothing process. The determination method will be described later (FIG. 23). If the microprocessor 100 determines to execute the smoothing process (YES in step S202), the microprocessor 100 performs the smoothing process in step S204. If the microprocessor 100 determines not to execute the smoothing process (NO in step S202), the microprocessor 100 ends the series of processes.
  • step S206 the microprocessor 100 determines whether or not one cycle of the electronic cam (also referred to as “cam cycle”) has ended. In other words, the microprocessor 100 determines whether or not the cycle including the cam table switching has ended. If the microprocessor 100 determines that the process has been completed (YES in step S206), it determines whether or not there is a remaining amount of movement in step S208. If the microprocessor 100 determines that the processing has not ended (NO in step S206), the process proceeds to step S204.
  • the microprocessor 100 determines whether or not one cycle of the electronic cam (also referred to as “cam cycle”) has ended. In other words, the microprocessor 100 determines whether or not the cycle including the cam table switching has ended. If the microprocessor 100 determines that the process has been completed (YES in step S206), it determines whether or not there is a remaining amount of movement in step S208. If the microprocessor 100 determines that the processing has not ended (NO in step S206), the process proceeds to step S204.
  • step S210 the microprocessor 100 determines whether to carry over a carry-over process to compensate for the shortage of the movement amount in the next electronic cam cycle. To do. The determination method will also be described later (FIG. 23). If microprocessor 100 determines that carryover processing is to be performed (YES in step S210), the process proceeds to step S204. If the microprocessor 100 determines that the carry-over process is not performed (NO in step S210), the microprocessor 100 stops the execution of the smoothing process. That is, the microprocessor does not perform the smoothing process in the next electronic cam cycle.
  • the smoothing processing unit 505 may use, for example, a first-order lag filter in which the transfer function G (s) is expressed by the following expression (1) when performing the smoothing process as described above.
  • T 1 / (T ⁇ s + 1)
  • T is a time constant.
  • a low-pass filter has a characteristic that the phase of a signal is delayed. Further, the degree of phase delay and the smoothness are in a trade-off relationship. If the phase delay is eliminated after the cam table is switched, “T” needs to be set small.
  • FIG. 26 shows a timing chart for switching the cam table shown in FIG. 15 when a smoothing filter is used.
  • contact point_1 becomes TRUE
  • time t2 time t2 (t1 ⁇ t2)
  • the CPU unit 13 determines whether the cam table No. Start motion control using 1.
  • time t3 time t2 ⁇ t3
  • the contact _2 becomes TRUE.
  • the cam table No. No. 1 to motion control using cam table No. 2 and the control content is switched to motion control using a smoothing filter.
  • FIG. 27 is a diagram showing a system configuration related to the electronic cam 500 when a polynomial curve is used.
  • the system related to electronic cam 500 includes an electronic cam calculation unit 501, an interpolation unit 502, a switch unit 503, a cam table reading unit 504, a smoothing processing unit 505, a plurality of cam tables, This is realized by the switch unit 506 and the polynomial curve calculation unit 507.
  • 27 shows an example in which the spindle command position (encoder position) is input from the encoder 19 to the electronic cam 500, as in FIG.
  • the switch unit 506 is a circuit for switching between the electronic cam calculation function and the polynomial curve calculation function.
  • the CPU unit 13 performs the following processing.
  • the system (CPU unit 13) related to the electronic cam 500 connects the switch unit 506 to the electronic cam calculation unit 501 before switching the cam table.
  • the switch unit 506 is connected to the polynomial curve calculation unit 507.
  • the system related to the electronic cam 500 sets the spindle distance (phase width) of the switching section, and sets the spindle distance as ⁇ P.
  • the system related to the electronic cam 500 reconnects the switch 506 to the electronic cam calculation unit 501 when the spindle position changes by ⁇ P or more from the switching start position.
  • the electronic cam 500 sets the main shaft position, the sub shaft displacement, the sub shaft speed, and the sub shaft acceleration at the time of switching to P1, S1, V1, and A1, respectively.
  • the electronic cam 500 obtains the displacement of the slave shaft displacement, the slave shaft speed, and the slave shaft acceleration when the cam curve after switching is at the main shaft position (P1 + ⁇ P), and sets these as S2, V2, and A2. .
  • C1 to C5 are coefficients that satisfy the following boundary conditions. Note that “ ⁇ ” (hat mark) is an operator indicating power calculation.
  • FIG. 28 shows a timing chart for switching the cam table shown in FIG. 15 when a polynomial is used.
  • contact point_1 becomes TRUE
  • t2 time t2
  • the CPU unit 13 determines that the cam table No. Start motion control using 1.
  • the contact _2 becomes TRUE.
  • the CPU unit 13 performs a smoothing process using a polynomial.
  • the switching section t3 to t4 elapses, the CPU unit 13 determines the cam table No. No. 1 to motion control using cam table No.
  • the control content is switched to motion control using 2.
  • FIG. 23 is a diagram for explaining a smoothing pattern when performing the smoothing process.
  • the user designates the smoothing processing method at the time of switching the cam table, for example, the above-described function block type instruction is used. Specifically, the user adds an input variable “CamTransition” for designating a smoothing pattern to the command “MC_CamIn”.
  • “CamTransition” is, for example, an enumerator type, and can specify any of the smoothing patterns shown in FIG.
  • the microprocessor 100 When the enumerator is “_mcCTNone”, the microprocessor 100 does not perform the smoothing process. When the enumerator is “_mcCTMaxAccDec”, the microprocessor 100 suppresses at the maximum acceleration. In this case, if it does not end with one cam cycle, an error is output. When the enumerator is “_mcCTMaxAccDecCyclic”, the microprocessor 100 suppresses at the maximum acceleration. In this case, if the cam does not end in one cycle, the shortage (that is, the remaining amount) is processed in the next cycle. That is, the CPU unit 13 performs carry-over processing.
  • the microprocessor 100 uses a smoothing filter. In this case, the microprocessor 100 outputs an error when it does not end with one cam cycle. If the enumerator is “_mcCTFilteringCyclic”, the microprocessor 100 uses a smoothing filter. In this case, the microprocessor 100 processes the shortage in the next cycle when it does not end in one cycle of the cam.
  • the microprocessor 100 When the enumerator is “_mcCTPoly5”, the microprocessor 100 performs interpolation processing with a fifth-order polynomial.
  • a fifth-order polynomial is used as an example, but any configuration may be used as long as the microprocessor 100 performs the interpolation process using a third-order or higher-order polynomial.
  • the CPU unit 13 is a PLC arithmetic unit that performs motion control and sequence control.
  • the CPU unit 13 includes a microprocessor 100, a control program 230 for performing motion control using a cam table in which the displacement of the follower of the electronic cam is associated with each phase of the main shaft of the electronic cam 500, And a memory storing a cam table 520 and a cam table 570.
  • the microprocessor 100 executes the control program 230 using the cam table 520, and outputs the execution result to the control target device corresponding to the follower.
  • the microprocessor 100 receives a predetermined instruction during the execution of the control program 230, the microprocessor 100 switches the cam table used for the execution of the control program 230 from the cam table 520 to the cam table 570. Based on the switching, the microprocessor 100 outputs the execution result of the control program 230 using the cam table 570 to the control target device.
  • the CPU unit 13 can quickly switch the cam table.
  • the memory includes a nonvolatile memory 106 and a volatile main memory 104.
  • the nonvolatile memory 106 stores a cam table 520 and a cam table 570.
  • the microprocessor 100 reads the cam table 520 and the cam table 570 from the nonvolatile memory 106 and expands the read cam tables 520 and 570 in the main memory 104.
  • the microprocessor 100 executes the control program 230 using the developed cam table 520 before accepting the predetermined instruction described above.
  • the microprocessor 100 receives the predetermined instruction after expansion, the microprocessor 100 executes the control program 230 using the expanded cam table 570.
  • the microprocessor 100 switches the cam table to be used from the cam table 520 to the cam table 570 after expanding the cam tables 520 and 570 in the volatile main memory 104. Therefore, the CPU unit 13 can perform the cam table switching process more quickly than the configuration in which the cam table 570 is read from the nonvolatile memory 106 when switching.
  • the microprocessor 100 switches the cam table used for execution of the control program 230 from the cam table 520 to the cam table 570, the microprocessor 100 is associated with a phase of the cam table 570 larger than the phase of the cam table 520 at the time of the switching.
  • the control program 230 is executed using the obtained displacement. Thereby, the CPU unit 13 can perform continuous processing on the phase.
  • the memory further stores an upper limit value related to acceleration and an upper limit value related to deceleration.
  • the microprocessor 100 limits the acceleration of the control target device to the upper limit value related to the acceleration.
  • the microprocessor 100 limits the deceleration of the control target device to the upper limit value related to the deceleration.
  • the memory further stores a smoothing filter for smoothing the cam table.
  • the microprocessor 100 smoothes the displacement in the cam table 570 with a smoothing filter immediately after switching. Thereby, the CPU unit 13 can implement
  • the memory further stores a third-order or higher order polynomial.
  • the microprocessor 100 smoothes the displacement in the cam table 570 using a high-order polynomial immediately after switching. Thereby, the CPU unit 13 can implement
  • the microprocessor 100 performs a process of compensating for the shortage of the movement amount of the control target device caused by the control not outputting the displacement of the cam table 570 in one or a plurality of cam cycles of the electronic cam in the motion control. .
  • the CPU unit 13 reduces the shortage of the movement amount of the control target device even when the smoothing process is executed and / or when the upper limit value for the acceleration / deceleration described above is set. Or it can be eliminated.
  • the control program 230 includes a motion calculation program 234 and a user program 236 that performs processing for giving instructions necessary for the execution of the motion calculation program 234 to the motion calculation program 234.
  • the microprocessor 100 repeats the execution of the motion calculation program 234 every fixed cycle T1, and the user program 236 is repeated every fixed cycle T2 that is an integral multiple of the fixed cycle T1.
  • a program for performing the switching is described in a task having a fixed cycle T1 or a task having a fixed cycle T2. Thereby, a control command for switching the cam table to the high priority fixed period task or the low priority fixed period task can be described.
  • the CPU unit 13 of the PLC 1 is configured to execute motion control and sequence control. More specifically, the microprocessor 100 (see FIG. 2) of the CPU 13 executes motion control and sequence control.
  • a motion control unit and a sequence control unit may be provided separately, and the motion control and the sequence control may be executed by different processors (microprocessors). That is, the motion control unit processor may execute motion control, and the sequence control processor may execute sequence control.
  • the CPU unit 13 is configured to cause one core to perform motion control and any of the remaining cores to perform sequence control. May be.
  • FIG. 24 is a schematic diagram showing a hardware configuration of the PLC support device 8 used by being connected to the CPU unit according to the embodiment of the present invention.
  • PLC support device 8 is typically configured by a general-purpose computer. From the viewpoint of maintainability, a notebook personal computer with excellent portability is preferable.
  • the PLC support device 8 includes a CPU 81 that executes various programs including an OS, a ROM (Read Only Memory) 82 that stores BIOS and various data, and data necessary for the CPU 81 to execute the programs.
  • a memory RAM 83 that provides a work area for storing the program, and a hard disk (HDD) 84 that stores programs executed by the CPU 81 in a nonvolatile manner.
  • HDD hard disk
  • the PLC support device 8 further includes a keyboard 85 and a mouse 86 that receive operations from the user, and a display 87 for presenting information to the user. Furthermore, the PLC support device 8 includes a communication interface (IF) for communicating with the PLC 1 (CPU unit 13) and the like.
  • IF communication interface
  • CD-ROM 9 Compact Disk-Read Only Memory
  • HDD hard disk
  • FIG. 25 is a schematic diagram showing a software configuration of the PLC support device 8 used by being connected to the CPU unit according to the embodiment of the present invention.
  • the PLC support device 8 executes the OS 310 and provides an environment in which various programs included in the PLC support program 320 can be executed.
  • the PLC support program 320 includes an editor program 321, a compiler program 322, a debugger program 323, a simulation sequence instruction calculation program 324, a simulation motion calculation program 325, and a communication program 326.
  • Each program included in the PLC support program 320 is typically distributed in a state stored in the CD-ROM 9 and installed in the PLC support device 8.
  • the editor program 321 provides functions such as input and editing for creating the user program 236. More specifically, the editor program 321 provides a storage function and an editing function for the created source program 330 in addition to a function for the user to operate the keyboard 85 and the mouse 86 to create the source program 330 of the user program 236. To do. The editor program 321 accepts an input of the source program 330 from the outside.
  • the compiler program 322 provides a function of compiling the source program 330 and generating a user program 236 in an object program format that can be executed by the microprocessor 100 of the CPU unit 13.
  • the compiler program 322 provides a function of compiling the source program 330 and generating a user program 340 in an object program format that can be executed by the CPU 81 of the PLC support device 8.
  • the user program 340 is a simulation object program used for simulating the operation of the PLC 1 by the PLC support device 8.
  • the debugger program 323 provides a function for debugging the source program of the user program.
  • the contents of the debugging include operations such as partially executing a range designated by the user in the source program, and tracking temporal changes in variable values during the execution of the source program.
  • the debugger program 323 further provides a function of executing a user program 340 that is an object program for simulation.
  • the sequence instruction calculation program 324 and the simulation motion calculation program 325 included in the PLC support program 320 are used instead of the sequence instruction calculation program 232 and the motion calculation program 234 included in the system program of the CPU unit 13. It is done.
  • the communication program 326 provides a function of transferring the user program 236 to the CPU unit 13 of the PLC 1.
  • the system program 210 mounted on the PLC 1 is stored in the nonvolatile memory 106 of the CPU unit 13 at the manufacturing stage of the CPU unit 13.
  • the system program 210 is stored in the CD-ROM 9
  • the user copies the system program 210 of the CD-ROM 9 to the PLC support device 8, and copies the system program using the function provided by the communication program 326. It is also possible to transfer 210 to the CPU unit 13.
  • the real-time OS 200 executed by the CPU unit 13 of the PLC 1 is stored in the CD-ROM 9, the real-time OS 200 can also be reinstalled in the PLC 1 by a user operation.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • General Engineering & Computer Science (AREA)
  • Programmable Controllers (AREA)
  • Control Of Position Or Direction (AREA)

Abstract

 PLCのCPUユニットは、モーション制御とシーケンス制御とを実行する。CPUユニットは、カムテーブルを用いたモーション制御を行なうための制御プログラムと、第1のカムテーブルおよび第2のカムテーブルとを格納している。マイクロプロセッサは、制御プログラムの実行中に予め定められた指示を受け付けると、制御プログラムの実行に用いるカムテーブルを第1のカムテーブルから第2のカムテーブルに切り換える。マイクロプロセッサは、カムテーブルの切り換えに基づき、第2のカムテーブルを用いた制御プログラムの実行結果を制御対象機器に出力する。

Description

演算ユニット、出力制御方法、およびプログラム
 本発明は、プログラマブル・ロジック・コントローラの演算ユニット、出力制御方法、およびプログラムに関し、特に、モーション制御とシーケンス制御とを実行する演算ユニット、演算ユニットにおける出力制御方法、および演算ユニットを制御するプログラムに関する。
 PLC(Programmable Logic Controller)は、たとえば、ユーザプログラムを実行するマイクロプロセッサを含むCPU(Central Processing Unit)ユニット、外部のスイッチやセンサからの信号入力および外部のリレーやアクチュエータへの信号出力を担当するIO(Input Output)ユニットといった複数のユニットで構成される。それらのユニット間で、ユーザプログラム実行サイクルごとに、PLCシステムバスおよび/またはフィールドネットワークを経由してデータの授受をしながら、PLCは制御動作を実行する。
 機械、設備などの動作の制御としては、モータの運動を制御するためのモーション制御が含まれる場合がある。従来、このようなモーション制御、典型的には、モータを駆動するモータドライバに対して周期的に指令値を出力する制御処理(モーション演算プログラムの実行)は、PLCとは別に設けたモーションコントローラにおいて行われていた。しかしながら、情報技術の分野においては、マイクロプロセッサや通信ネットワークの高速化が進展しつつある。そのため、PLCにおいてもそれらの技術を利用して、1つのマイクロプロセッサにおいて、ユーザプログラムだけでなくモーション演算プログラムをも実行することが可能になってきた。
 たとえば、特許文献1には、モータを制御するモーション制御機能とシーケンス演算(ユーザプログラム)を実行するPLC機能とを、1つのCPUで処理する構成が開示されている。より具体的には、基本クロックの1サイクルごとに、「定周期モーション制御処理および各軸処理」と「高速シーケンス処理」とを実行し、さらに各基本クロックサイクル内の残りの時間において、「低速シーケンス処理」または「非定周期モーション制御処理」を実行することが開示されている。
 また、モーション制御においては電子カムが用いられることがある。電子カムは、機械式カムの動作を電子制御で実現するのものであり、カムの段取り換えやカム形状の微調整などが自由に簡単にできる。非特許文献1には、電子カムを実現するためのカムテーブルについての記述がなされている。また、非特許文献1には、カム変数についての記述がなされている。
 特許文献2には、電子カム制御装置が開示されている。電子カム制御装置は、ストローク下死点設定部と、加算移動量設定部と、位置指令算出部と、ストローク下死点変更部とを備える。加算移動量設定部は、ストローク下死点位置を変更するための加算移動データを設定する。位置指令算出部は、ストローク下死点変更指令が入力されると、カム位置決め量Aに、ストローク下死点設定部に設定されたストローク下死点位置および加算移動量設定部に設定された加算移動データに対応する加算移動量を逐次加算し、この加算結果を出力軸に対する位置指令値として順次出力する。ストローク下死点変更部は、ストローク下死点変更指令が入力されると、ストローク下死点設定部に設定されたストローク下死点位置に加算移動量設定部に設定された加算移動データに対応する加算移動量を逐次加算し、この加算結果でストローク下死点設定部に設定されたストローク下死点位置を順次更新する。
 特許文献3には、モータの位置決め制御システムが開示されている。当該モータの位置決め制御システムは、移動実時間Rtiを分周周期毎に更新し、更新した移動実時間Rtiから無次元時間tiを求め、この無次元時間tiに対応する無次元位置Sijをカム曲線テーブルを用いて求める。モータの位置決め制御システムは、求めた無次元位置Sijにストロークhjを乗じて実位置sijを求める。モータの位置決め制御システムは、このような実位置sijを求める演算を選択したN個のカム曲線について行なう。モータの位置決め制御システムは、求めたN個の実位置sijを加算する。モータの位置決め制御システムは、この加算値sTiと前回の分周周期で求めた加算値sTi-1の差sTi-sTi-1を指令値にしてモータの回転位置をフィードバック制御する。
 また、特許文献4から6には、主軸モータと従属軸モータとを同期駆動させる装置が開示されている。
特開2007-140655号公報 特開2006-293692号公報 特開平8-339218号公報 特開平8-126375号公報 特開平9-289788号公報 特開平10-174478号公報
Technical Specification PLCopen - Technical Committee 2 - Task Force,Function blocks for motion control(Formerly Part 1 and Part 2),PLCopen Working Draft,Version 1.99 - Release for comments - till August 16, 2010
 従来においては、ワークの種類に応じたカムテーブルに切り換える際、一旦、従動軸の動作を停止させる必要があった。そのため、従動軸が停止させている時間が、無駄な時間となっていた。また、非特許文献1には、カムテーブルの切り換えについて具体的な内容が開示されていない。
 本願発明は上記の問題点に鑑みなされたものであって、その目的は、カムテーブルの切り換えを迅速に行なうことが可能なPLCの演算ユニット、出力制御方法、およびプログラムを提供することにある。
 本発明のある局面に従うと、演算ユニットは、モーション制御とシーケンス制御とを実行する、プログラマブル・ロジック・コントローラの演算ユニットである。演算ユニットは、プロセッサと、電子カムの主軸の位相の各々に対して当該電子カムの従節の変位を対応付けたカムテーブルを用いたモーション制御を行なうためのプログラムと、カムテーブルとしての第1のカムテーブルおよび第2のカムテーブルとを格納したメモリとを備える。プロセッサは、第1のカムテーブルを用いてプログラムを実行し、当該実行結果を従節に対応する制御対象機器に出力する。プロセッサは、プログラムの実行中に予め定められた指示を受け付けると、プログラムの実行に用いるカムテーブルを第1のカムテーブルから第2のカムテーブルに切り換える。プロセッサは、切り換えに基づき、第2のカムテーブルを用いたプログラムの実行結果を制御対象機器に出力する。
 好ましくは、メモリは、不揮発性メモリと、揮発性メモリとを含む。不揮発性メモリは、第1のカムテーブルと第2のカムテーブルとを格納している。プロセッサは、第1のカムテーブルと第2のカムテーブルとを不揮発性メモリから読み出して、当該読み出したカムテーブルを揮発性メモリに展開する。プロセッサは、予め定められた指示を受け付ける前は、展開された第1のカムテーブルを用いてプログラムを実行する。プロセッサは、展開後に予め定められた指示を受け付けると、展開された第2のカムテーブルを用いてプログラムを実行する。
 好ましくは、プロセッサは、プログラムの実行に用いるカムテーブルを第1のカムテーブルから第2のカムテーブルに切り換える場合、切り換え時における第1のカムテーブルにおける位相よりも大きな第2のカムテーブルの位相に対応付けられた変位を用いてプログラムを実行する。
 好ましくは、メモリは、加速度に関する上限値と、減速度に関する上限値とを、さらに格納している。プロセッサは、切り換え直後における制御対象機器の加速度が加速度に関する上限値を超える場合、制御対象機器の加速度を加速度に関する上限値に制限する。プロセッサは、切り換え直後における制御対象機器の減速度が減速度に関する上限値を超える場合、制御対象機器の減速度を減速度に関する上限値に制限する。
 好ましくは、メモリは、カムテーブルを平滑化する平滑化フィルタをさらに格納している。プロセッサは、切り換え直後においては、第2のカムテーブルにおける変位を平滑化フィルタによってスムージング処理する。
 好ましくは、メモリは、3次以上の高次多項式をさらに格納している。プロセッサは、切り換え直後においては、第2のカムテーブルにおける変位を高次多項式によってスムージング処理する。
 好ましくは、プロセッサは、第2のカムテーブルの変位を出力しない制御を行なうことによって生じる制御対象機器の移動量の不足分を、モーション制御における電子カムの1または複数のカム周期において補う処理をする。
 好ましくは、プロセッサは、1つのカム周期において移動量の不足分を補うことができない場合には、エラーとして処理するか、または次のカム周期においても不足分を補う処理を行なわせるかを指定する命令を受け付ける。
 好ましくは、プログラムは、モーション演算プログラムと、モーション演算プログラムに対して当該モーション演算プログラムの実行に必要な指示を与える処理を行なうユーザプログラムとを含む。プロセッサは、モーション演算プログラムの実行を、第1の定周期毎に繰り返す。プロセッサは、ユーザプログラムを、第1の定周期の整数倍となる第2の定周期毎に繰り返す。ユーザプログラムのうち上記切り換えを行なうためのプログラムは、第1の定周期のタスクまたは第2の定周期のタスクに記述される。
 本発明の他の局面に従うと、出力制御方法は、モーション制御とシーケンス制御とを実行する、プログラマブル・ロジック・コントローラの演算ユニットにおける出力制御方法である。演算ユニットは、電子カムの主軸の位相の各々に対して当該電子カムの従節の変位を対応付けたカムテーブルを用いたモーション制御を行なうためのプログラムと、カムテーブルとしての第1のカムテーブルおよび第2のカムテーブルとを格納している。出力制御方法は、演算ユニットのプロセッサが、第1のカムテーブルを用いてプログラムを実行し、当該実行結果を従節に対応する制御対象機器に出力するステップと、プロセッサが、プログラムの実行中に予め定められた指示を受け付けると、プログラムの実行に用いるカムテーブルを第1のカムテーブルから第2のカムテーブルに切り換えるステップと、プロセッサが、切り換えに基づき、第2のカムテーブルを用いたプログラムの実行結果を制御対象機器に出力するステップとを備える。
 本発明のさらに他の局面に従うと、プログラムは、モーション制御とシーケンス制御とを実行する、プログラマブル・ロジック・コントローラの演算ユニットを制御するプログラムである。演算ユニットは、電子カムの主軸の位相の各々に対して当該電子カムの従節の変位を対応付けたカムテーブルを用いたモーション制御を行なうためのプログラムと、カムテーブルとしての第1のカムテーブルおよび第2のカムテーブルとを格納している。プログラムは、第1のカムテーブルを用いてプログラムを実行し、当該実行結果を従節に対応する制御対象機器に出力するステップと、プログラムの実行中に予め定められた指示を受け付けると、プログラムの実行に用いるカムテーブルを第1のカムテーブルから第2のカムテーブルに切り換えるステップと、切り換えに基づき、第2のカムテーブルを用いたプログラムの実行結果を制御対象機器に出力するステップとを、演算ユニットに実行させる。
 本発明によれば、カムテーブルの切り換えを迅速に行なうことが可能となる。
PLCシステムの概略構成を示す模式図である。 CPUユニットのハードウェア構成を示す模式図である。 CPUユニットで実行されるソフトウェア構成を示す模式図である。 制御プログラムによって提供されるモーション制御の概略の処理手順を示すフローチャートである。 モーション制御命令とタスクとの関係を示した図である。 電子カムの機能概要を表した図である。 電子カムの動作を視覚的に説明するための図である。 電子カムのカム曲線を示した図である。 電子カムに関するシステム構成を表した図である。 カムテーブルのデータ構造を表した図である。 電子カムが適用される液体充填装置の一例を示した図である。 図8に示したカム曲線とは異なるカム曲線を示した図である。 カムテーブルを表した図である。 カムテーブルの切り換え処理を説明するための図である。 カムテーブルを切り換えるためのユーザインターフェイスを表した図である。 図15に示したカムテーブルの切り換えのタイミングチャートを表した図である。 カムテーブルの切り換え時における処理について説明するための図である。 カムテーブルを切り換える手順を示したフローチャートである。 高優先度定周期タスクにカムテーブルを切り換える制御命令を記載したときのデータフローを表した図である。 低優先度定周期タスクにカムテーブルを切り換える制御命令を記載したときのデータフローを表した図である。 カムテーブルの切り換え前後における電子カムの動作を説明するための図である。 スムージング処理に関する処理の流れを示したフローチャートである。 スムージング処理を行なう場合のスムージングパターンを説明するための図である。 CPUユニットに接続して用いられるPLCサポート装置のハードウェア構成を示す模式図である。 CPUユニットに接続して用いられるPLCサポート装置のソフトウェア構成を示す模式図である。 平滑化フィルタを用いた場合における、図15に示したカムテーブルの切り換えのタイミングチャートを表した図である。 多項式曲線を用いる場合における、電子カム500に関するシステム構成を表した図である。 多項式を用いた場合における、図15に示したカムテーブルの切り換えのタイミングチャートを表した図である。
 本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
 <A.システム構成>
 本実施の形態に係るPLCは、モータの運動を制御するためのモーション制御機能を有する。まず、図1を参照して、本実施の形態に係るPLC1のシステム構成について説明する。
 図1は、本発明の実施の形態に係るPLCシステムの概略構成を示す模式図である。図1を参照して、PLCシステムSYSは、PLC1と、PLC1とフィールドネットワーク2を介して接続されるサーボモータドライバ3およびリモートIOターミナル5と、フィールド機器である検出スイッチ6およびリレー7とを含む。また、PLC1には、接続ケーブル10などを介してPLCサポート装置8が接続される。
 PLC1は、主たる演算処理を実行するCPUユニット13と、1つ以上のIOユニット14と、特殊ユニット15とを含む。これらのユニットは、PLCシステムバス11を介して、データを互いに遣り取りできるように構成される。また、これらのユニットには、電源ユニット12によって適切な電圧の電源が供給される。なお、PLC1として構成される各ユニットは、PLCメーカーが提供するものであるので、PLCシステムバス11は、一般にPLCメーカーごとに独自に開発され、使用されている。これに対して、後述するようにフィールドネットワーク2については、異なるメーカーの製品同士が接続できるように、その規格などが公開されている場合も多い。
 CPUユニット13の詳細については、図2を参照して後述する。
 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などが知られており、これらのうちのいずれを採用してもよい。さらに、産業用イーサネット(登録商標)以外のフィールドネットワークを用いてもよい。たとえば、モーション制御を行わない場合であれば、DeviceNet、CompoNet/IP(登録商標)などを用いてもよい。本実施の形態に係るPLCシステムSYSでは、典型的に、本実施の形態においては、産業用イーサネット(登録商標)であるEtherCAT(登録商標)をフィールドネットワーク2として採用する場合の構成について例示する。
 なお、図1には、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は、サーボモータアンプと称されることもある。
 また、図1には、サーボモータ4とサーボモータドライバ3とを組み合わせたシステム例を示すが、その他の構成、たとえば、パルスモータとパルスモータドライバとを組み合わせたシステムを採用することもできる。
 図1に示すPLCシステムSYSのフィールドネットワーク2には、さらに、リモートIOターミナル5が接続されている。リモートIOターミナル5は、基本的には、IOユニット14と同様に、一般的な入出力処理に関する処理を行なう。より具体的には、リモートIOターミナル5は、フィールドネットワーク2でのデータ伝送に係る処理を行なうための通信カプラ52と、1つ以上のIOユニット53とを含む。これらのユニットは、リモートIOターミナルバス51を介して、データを互いに遣り取りできるように構成される。
 なお、PLCサポート装置8については後述する。
 <B.CPUユニットのハードウェア構成>
 次に、図2を参照して、CPUユニット13のハードウェア構成について説明する。図2は、本発明の実施の形態に係るCPUユニット13のハードウェア構成を示す模式図である。図2を参照して、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を有する。
 バッファメモリ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の規格に従い、出力データの送信および入力データの受信を制御する。上述したように、本実施の形態においてはEtherCAT(登録商標)規格に従うフィールドネットワーク2が採用されるので、通常のイーサネット(登録商標)通信を行なうためのハードウェアを含む、フィールドネットワークコントローラ140が用いられる。EtherCAT(登録商標)規格では、通常のイーサネット(登録商標)規格に従う通信プロトコルを実現する一般的なイーサネット(登録商標)コントローラを利用できる。但し、フィールドネットワーク2として採用される産業用イーサネット(登録商標)の種類によっては、通常の通信プロトコルとは異なる専用仕様の通信プロトコルに対応した特別仕様のイーサネット(登録商標)コントローラが用いられる。また、産業用イーサネット(登録商標)以外のフィールドネットワークを採用した場合には、当該規格に応じた専用のフィールドネットワークコントローラが用いられる。
 DMA制御回路142は、メインメモリ104からバッファメモリ146への出力データの転送、および、バッファメモリ146からメインメモリ104への入力データの転送を行なう。
 フィールドネットワーク制御回路144は、フィールドネットワーク2に接続される他の装置との間で、バッファメモリ146の出力データを送信する処理および入力データを受信してバッファメモリ146に格納する処理を行なう。典型的には、フィールドネットワーク制御回路144は、フィールドネットワーク2における物理層およびデータリンク層の機能を提供する。
 USBコネクタ110は、PLCサポート装置8とCPUユニット13とを接続するためのインターフェイスである。典型的には、PLCサポート装置8から転送される、CPUユニット13のマイクロプロセッサ100で実行可能なプログラムなどは、USBコネクタ110を介してPLC1に取込まれる。
 <C.CPUユニットのソフトウェア構成>
 次に、図3を参照して、本実施の形態に係る各種機能を提供するためのソフトウェア群について説明する。これらのソフトウェアに含まれる命令コードは、適切なタイミングで読み出され、CPUユニット13のマイクロプロセッサ100によって実行される。
 図3は、本発明の実施の形態に係るCPUユニット13で実行されるソフトウェア構成を示す模式図である。図3を参照して、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は、PLCサポート装置8などにおいて、ラダー言語などによって記述されたソースプログラムがコンパイルされることで生成される。そして、生成されたオブジェクトプログラム形式のユーザプログラム236は、PLCサポート装置8から接続ケーブル10を介してCPUユニット13へ転送され、不揮発性メモリ106などに格納される。
 スケジューラプログラム212は、出力処理プログラム214、入力処理プログラム216、および制御プログラム230について、各実行サイクルでの処理開始および処理中断後の処理再開を制御する。より具体的には、スケジューラプログラム212は、ユーザプログラム236およびモーション演算プログラム234の実行を制御する。
 本実施の形態に係るCPUユニット13では、モーション演算プログラム234に適した一定周期の実行サイクル(モーション制御サイクル)を処理全体の共通サイクルとして採用する。そのため、1つのモーション制御サイクル内で、すべての処理を完了することは難しいので、実行すべき処理の優先度などに応じて、各モーション制御サイクルにおいて実行を完了すべき処理と、複数のモーション制御サイクルに亘って実行してもよい処理とが区分される。スケジューラプログラム212は、これらの区分された処理の実行順序などを管理する。より具体的には、スケジューラプログラム212は、各モーション制御サイクル期間内において、より高い優先度が与えられているプログラムほど先に実行する。
 出力処理プログラム214は、ユーザプログラム236(制御プログラム230)の実行によって生成された出力データを、PLCシステムバスコントローラ120および/またはフィールドネットワークコントローラ140へ転送するのに適した形式に再配置する。PLCシステムバスコントローラ120またはフィールドネットワークコントローラ140が、マイクロプロセッサ100からの、送信を実行するための指示を必要とする場合は、出力処理プログラム214がそのような指示を発行する。
 入力処理プログラム216は、PLCシステムバスコントローラ120および/またはフィールドネットワークコントローラ140によって受信された入力データを、制御プログラム230が使用するのに適した形式に再配置する。
 シーケンス命令演算プログラム232は、ユーザプログラム236で使用されるある種のシーケンス命令が実行されるときに呼び出されて、その命令の内容を実現するために実行されるプログラムである。
 モーション演算プログラム234は、ユーザプログラム236による指示に従って実行され、サーボモータドライバ3やパルスモータドライバといったなモータドライバに対して出力する指令値を算出するプログラムである。
 その他のシステムプログラム220は、図3に個別に示したプログラム以外の、PLC1の各種機能を実現するためのプログラム群をまとめて示したものである。その他のシステムプログラム220は、モーション制御サイクルの周期を設定するプログラム222を含む。
 モーション制御サイクルの周期は、制御目的に応じて適宜設定することができる。典型的には、モーション制御サイクルの周期を指定する情報をユーザがPLCサポート装置8へ入力する。すると、その入力された情報は、PLCサポート装置8からCPUユニット13へ転送される。モーション制御サイクルの周期を設定するプログラム222は、PLCサポート装置8からの情報を不揮発性メモリ106に格納させるとともに、システムタイマ108から指定されたモーション制御サイクルの周期で割り込み信号が発生されるように、システムタイマ108を設定する。CPUユニット13への電源投入時に、モーション制御サイクルの周期を設定するプログラム222が実行されることで、モーション制御サイクルの周期を指定する情報が不揮発性メモリ106から読み出され、読み出された情報に従ってシステムタイマ108が設定される。
 モーション制御サイクルの周期を指定する情報の形式としては、モーション制御サイクルの周期を示す時間の値や、モーション制御サイクルの周期に関する予め用意された複数の選択肢のうちから1つを特定する情報(番号または文字)などを採用することができる。
 本実施の形態に係るCPUユニット13において、モーション制御サイクルの周期を設定する手段としては、モーション制御サイクルの周期を指定する情報を取得するために用いられるPLCサポート装置8との通信手段、モーション制御サイクルの周期を設定するプログラム222、ならびにモーション制御サイクルを規定する割り込み信号の周期を任意に設定可能に構成されているシステムタイマ108の構成といった、モーション制御サイクルの周期を任意の設定するために用いられる要素が該当する。
 リアルタイムOS200は、複数のプログラムを時間の経過に従い切り換えて実行するための環境を提供する。本実施の形態に係るPLC1においては、CPUユニット13のプログラム実行によって生成された出力データを他のユニットまたは他の装置へ出力(送信)するためのイベント(割り込み)として、出力準備割り込み(P)およびフィールドネットワーク送信割り込み(X)が初期設定される。リアルタイムOS200は、出力準備割り込み(P)またはフィールドネットワーク送信割り込み(X)が発生すると、マイクロプロセッサ100での実行対象を、割り込み発生時点で実行中のプログラムからスケジューラプログラム212に切り換える。なお、リアルタイムOS200は、スケジューラプログラム212およびスケジューラプログラム212がその実行を制御するプログラムが何ら実行されていない場合に、その他のシステムプログラム210に含まれているプログラムを実行する。このようなプログラムとしては、たとえば、CPUユニット13とPLCサポート装置8との間の接続ケーブル10(USB)などを介した通信処理に関するものが含まれる。
 <D.モーション制御の概略>
 次に、上述したユーザプログラム236に含まれる典型的な構成について説明する。ユーザプログラム236は、モータの運動に関する制御開始の条件が成立するか否かを周期的に判断させる命令を含む。たとえば、モータの駆動力によって何らかの処置がなされるワークが所定の処置位置まで搬送されたか否かを判断するようなロジックである。そして、ユーザプログラム236は、この制御開始の条件が成立したと判断されたことに応答して、モーション制御を開始させる命令をさらに含む。このモーション制御の開始に伴って、モーション命令の実行が指示される。すると、指示されたモーション命令に対応するモーション演算プログラム234が起動し、まず、モーション演算プログラム234の実行ごとにモータに対する指令値を算出していくために必要な初期処理が実行される。また、初期処理と同じモーション制御サイクルにおいて、第1サイクルでの指令値が算出される。したがって、初期処理および第1番目の指令値算出処理が、起動したモーション演算プログラム234が第1番目の実行においてなすべき処理となる。以降、各サイクルでの指令値が順次算出される。
 図4は、本発明の実施の形態に係る制御プログラム230(ユーザプログラム236、シーケンス命令演算プログラム232およびモーション演算プログラム234)によって提供されるモーション制御の概略の処理手順を示すフローチャートである。図4を参照して、マイクロプロセッサ100は、モータの運動に関する制御開始の条件が成立しているか否かを周期的に判断する(ステップS2)。この制御開始の条件が成立しているか否かの判断は、ユーザプログラム236およびシーケンス命令演算プログラム232によって実現される。制御開始の条件が成立していない場合(ステップS2においてNOの場合)には、ステップS2の判断が繰り返される。
 制御開始の条件が成立している場合(ステップS2においてYESの場合)には、マイクロプロセッサ100は、モーション制御に関する初期処理を実行する(ステップS4)。この初期処理としては、モータの運動の開始位置座標、終了位置座標、初期速度、初期加速度、軌跡などを算出処理が含まれる。続いて、マイクロプロセッサ100は、第1サイクルでの指令値の算出処理を実行する(ステップS6)。さらに、マイクロプロセッサ100は、算出した指令値の出力処理を実行する(ステップS8)。
 その後、マイクロプロセッサ100は、次のモーション制御サイクルが到来するまで待つ(ステップS10)。そして、マイクロプロセッサ100は、モータの運動に関する制御終了の条件が成立しているか否かを周期的に判断する(ステップS12)。この制御終了の条件が成立しているとは、サーボモータ4が終了位置に到達している状態などをいう。制御終了の条件が成立している場合(ステップS12においてYESの場合)には、ステップS2以下の処理が再度繰り返される。このとき、起動中のモーション演算プログラム234は、新たな制御開始の条件が成立するまで不活性の状態に維持される。
 制御終了の条件が成立していない場合(ステップS12においてNOの場合)には、マイクロプロセッサ100は、現在のサイクルでの指令値の算出処理を実行する(ステップS14)。さらに、マイクロプロセッサ100は、算出した指令値の出力処理を実行する(ステップS16)。そして、ステップS10以下の処理が繰り返される。
 以下では、モーション制御を実現する為の機能モジュールを、「モーション制御機能モジュール」とも称する。具体的には、「モーション制御機能モジュール」とは、ユーザプログラムから与えられた目標値(位置、速度、トルクなど)を用いて、ユーザ所望のモーション動作を実現するために必要な、軸への指令値出力、および軸からの情報取得を一定の周期で実行する機能モジュールである。なお、「モーション制御機能モジュール」は、サーボドライバに対して指令値を出力するオープンループ型のコントローラである。また、モーション制御機能モジュールに対して指示を与える命令(ファンクションブロック等)のことを、「モーション制御命令」と称する。
 図5は、モーション制御命令とタスクとの関係を示した図である。具体的には、図5は、データフローを示した図である。図5を参照して、モーション制御機能モジュールは、高優先度定周期タスク中で実行される。モーション制御命令は、高優先度定周期タスクまたは低優先度定周期タスクに記述できる。高優先度定周期タスクは、CPUユニット13の中で最高優先度のタスクである。
 低優先度定周期タスク実行中に高優先度定周期タスクが実行可能になった場合、低優先度定周期タスクは一旦中断され、高優先度定周期タスクが実行される。高優先度定周期タスクの完了後、低優先度定周期タスクの実行が再開される。なお、低優先度定周期タスクの周期T2は、高優先度定周期タスクの周期T1の整数倍である。図5は、T2=2T1の場合を表している。
 図5においては、スケジューラプログラムを「SC」と、出力・入力処理プログラムを「OI」と、ユーザプログラム236を「UPRG」と、モーション演算プログラム234を「MC」と表記している。また、図5では、説明の便宜上、各OI、各MCを識別するために、それぞれに異なる参照符合701~707を付している。
 データの大まかな流れの順序は、(1)スレーブ→OI701→MC702→OI703→サーボモータドライバ3、(2)MC704→OI705→サーボモータドライバ3、(3)MC706→OI707→サーボモータドライバ3である。以下、具体的に説明する。
 PLC1の実行中においては、マイクロプロセッサ100が、少なくとも、出力・入力処理プログラム(出力処理プログラム214および入力処理プログラム216)と、ユーザプログラム236と、モーション演算プログラム234とが実行可能な状態になっている。厳密に言えば、リアルタイムOS200がそれぞれのプログラムに係るプロセス(または、スレッド)を実行可能な状態に保持しており、スケジューラプログラム212がリアルタイムOS200およびハードウェアリソース(システムタイマ108など)を利用することで、各プログラムが適切なタイミングかつ適切な順序で実行される。このように、それぞれのプログラムに係る実行の開始/中断/終了などは、スケジューラプログラム212によって制御される。
 図5において、スレーブからOI701への入力(IN)に基づき、フィールドネットワークコントローラ140(図2参照)がモーション制御用入力データを受信してメインメモリ104のフィールドネットワーク受信バッファ(図示せず)に当該入力データを格納、および/または、PLCシステムバスコントローラ120が、モーション制御用入力データを受信してメインメモリ104のPLCシステムバス受信バッファ(図示せず)に当該入力データを格納する。なお、CPUユニット13がマスタであり、CPUユニット13以外のそれぞれのユニットが、スレーブに設定される。
 また、IO処理プログラム218の命令に従って、起動指令データまたはモーション指令値データが出力される。より具体的には、メインメモリ104の制御プログラムの作業領域(図示せず)に格納されている起動指令データおよびモーション指令値データがメインメモリ104のフィールドネットワーク送信バッファ(図示せず)へ転送される。さらに、フィールドネットワーク送信バッファへのデータ転送に続いて、フィールドネットワークコントローラ140が起動指令データまたはモーション指令値データをサーボモータドライバ3へ送信する。
 なお、上記のスレーブからOI701への入力(IN)では、ユーザプログラム236での演算には使用されるが、モーション演算プログラム234での演算には使用されない入力データについても入力され得る。また、ユーザプログラム236の実行により生成されるユーザプログラム出力データは、モーション演算プログラム234での演算には使用されない出力データであっても、IO処理プログラム218へ送られて、OIの処理において出力される。
 本実施の形態に係る「モーション制御サイクル」は、モーション演算プログラム234の実行および通信の周期、すなわち、サーボモータドライバ3へモーション指令値データを与える周期で実行される一連の処理のサイクルである。
 <E.電子カム>
 以下では、同期制御の機能として、電子カム動作について説明する。「同期制御」とは、主軸(入力軸)の位置に同期して従動軸(制御対象軸)の位置を制御することである。主軸としては、フルクローズドループ制御用のエンコーダの位置、サーボドライバおよび仮想サーボドライバの指令位置、並びに、エンコーダ、サーボドライバ、および仮想サーボドライバのフィードバック位置のうちのいずれかを指定できる。また、「電子カム動作」とは、後述するカムテーブルによって設定されたカムパターンに従い、制御周期でカム動作を行なう機能をいう。
 CPUユニット13は、制御周期毎に入力に同期して演算することによって出力を制御するため、演算結果がモーション制御機能モジュールで出力可能な最高速度を上回る場合もある。しかしながら、この場合には、CPUユニット13は、エラーとはせずに、最高速度の出力を行なう。CPUユニット13は、最高速度、最高で飽和することにより不足する移動量は次の制御周期以降において、分配して出力する。
 図6は、電子カムの機能概要を表した図である。図6を参照して、電子カム500は、電子カム演算部501と、補間部502と、スイッチ部503とを備える。電子カム演算部501には、フルクローズドループ制御用のエンコーダの位置、サーボドライバおよび仮想サーボドライバの指令位置、並びに、エンコーダ、サーボドライバ、および仮想サーボドライバのフィードバック位置のうち、予め選択された位置が入力される。
 電子カム演算部501は、入力された主軸の位相とカムテーブルとに基づき、従動軸の変位を補間部502に出力する。補間部502は、電子カム演算部501から出力された値を用いて補間処理を行なう。補間部502は、補間処理後の値(指令位置)を、スイッチ部503を介して出力する。カムテーブルは、不揮発性メモリ106に予め格納されており、電源投入に伴い、メインメモリ104に展開される。
 図7は、電子カム500の動作を視覚的に説明するための図である。具体的には、図7は、カムテーブルに基づいたカム曲線で表される機械式カム500Aを含んだカム機構MEを表した図である。図7を参照して、カム機構MEは、主軸400と、機械式カム500Aと、従動軸600とを備えている。機械式カム500Aは、主軸400に固定されており、主軸400の回転に伴い回転する。従動軸600は、機械式カム500Aの回転に伴い、直線運動を行なう。つまり、カム機構MEにおいては、主軸の位相(入力)が変化すると、従動軸600が変位(出力)する。このようなカム機構MEにおける入出力を、ソフトウェアにて実現したものが電子カム500である。
 図8は、電子カム500のカム曲線510を示した図である。図8を参照して、カム曲線510は、位相が0から増加するに連れて変位が0から増加し、半周期における位相(180度)で変位はピークを迎える。その後、位相の増加に連れて変位が減少し、1周期における位相(360度)で変位は0となる。なお、カム曲線510は、例示であって、PLCシステムSYSで利用されるカム曲線は、これに限定されるものではない。
 図9は、電子カム500に関するシステム構成を表した図である。図9は、図6の電子カム500をより詳しく示した図である。図9を参照して、電子カム500に関するシステムは、電子カム演算部501と、補間部502と、スイッチ部503と、カムテーブル読込部504と、スムージング処理部505と、複数のカムテーブルとにより実現される。なお、図9は、電子カム500に対して、エンコーダ19から主軸指令位置(エンコーダ位置)が入力される例を示している。
 複数のカムテーブルの各々には、詳細については後述するが、主軸の位相と従動軸の変位との関係が定義されている。CPUユニット13においては、ユーザは、電子カム動作の開始時に所望のカムテーブルを指定できる。マイクロプロセッサ100は、ユーザから指示に基づき、複数のカムテーブルの中から利用するカムテーブルを選択する。マイクロプロセッサ100は、電子カム動作の開始指示を受け付けると、カムテーブル読込部504が主軸の位相と従動軸の変位とを読み込む。マイクロプロセッサ100は、電子カムの動作中は、制御周期ごとに主軸の位相を取得し、カムテーブルに定義された変位となるように従動軸の位置を指令する。
 電子カム500は、スムージング処理部505によって、後述するスムージング処理を実行することができる。なお、CPUユニット13においては、スイッチ部503により、スムージング処理を行なうか否かを選択可能に構成されている。電子カム500は、サーボモータドライバ3に対して従動軸指令位置を出力する。スムージング処理を行なう場合には、補間部502からの出力に対してスムージング処理を行なった後の出力が、従同軸指令位置となる。また、スムージング処理を行なわない場合には、補間部からの出力が、従動軸指令位置となる。
 また、詳細については後述するが、ユーザは、従動軸の停止中においても電子カムの動作中においても、カムテーブルを変更する指示を入力できる。
 図10は、カムテーブル520のデータ構造を表した図である。より詳しくは、図10は、PLCサポート装置8に格納されているカムテーブル編集ソフトウェアにより作成されるカムテーブルのデータ構造を表した図である。
 図10を参照して、カムテーブル520は、電子カムの主軸の位相の各々に対して当該電子カムの従節の変位を対応付けたデータである。つまり、カムテーブル520は、離散的なデータである。カムテーブル520におけるデータを用いて直線補完すると、図8に示したカム曲線510となる。当該直線補間は、図6の補間部502によってなされる。
 カムテーブル520では、0度から360度までの位相を、最大カムデータ数に区分して記述できる。カムテーブル520では、0.1度刻みで位相が記述されている。なお、「カムデータ」とは、1つの変位と1つの位相とで構成されるデータである。つまり、カムテーブル520は、複数のカムデータを含む。なお、変位δの単位は、たとえば、“mm”である。
 また、カムテーブルにおいて、位相および変位の値の各々が0となっている最初のカムデータが、カムテーブル始点である。この箇所をインデックス0番とする。次に位相および変位の値の各々が次に0となる箇所よりも1つ前(つまり、1つ上)のカムデータが、カムテーブルの終点である。つまり、カムテーブルの始点からカムテーブルの終点まで(0度から360度までの位相の範囲のデータ)が、有意なカムデータである。「有意なカムデータ」とは、電子カムの動作に影響を与えるカムデータである。カムデータの識別子であるインデックスの番号は、有意なカムデータに対して付与される。インデックスの番号は、カムテーブルにおいて昇順に付与される。
 また、カムテーブルの終点よりも後(つまり、下)のカムデータは、電子カムの動作に影響を与えないカムデータ(つまり、有意でないカムデータ)である。なお、有意でないカムデータは、位相と変位との両方が0である必要はない。有意でないカムデータの数は、カムテーブル編集ソフトにより指定される。
 図11は、電子カム500が適用される液体充填装置900の一例を示した図である。図11を参照して、液体充填装置900は、複数の容器990を矢印911の方向に搬送するコンベア910と、液体を注入する注入管930と、注入管930を矢印921に沿って回転させるターンテーブル920とを備える。注入管930は、ターンテーブル920の回転に伴い、電子カムによって矢印931に示す方向にストローク運動する。つまり、液体充填装置900では、矢印911への移動を行わせるための軸910aが主軸に該当し、注入管930が主軸に同期したカム動作を行なう従軸に該当する。
 図12は、図8に示したカム曲線510とは異なるカム曲線560を示した図である。図12を参照して、カム曲線560は、位相が0から増加するに連れて変位が0から増加し、位相140度付近で変位はピークを迎える。その後、位相の増加に連れて変位が減少し、位相290度付近で変位が増加に転じる。さらに、位相310度付近で位相が減少に転じ、1周期における位相(360度)で変位は0となる。このように、カム曲線560は、カム曲線510とは異なる曲線である。なお、カム曲線560は、例示であって、カム曲線510と異なる曲線であればよい。
 図13は、カムテーブル570を表した図である。図13を参照して、カムテーブル570は、電子カムの主軸の位相の各々に対して当該電子カムの従節の変位を対応付けたデータである。つまり、カムテーブル570は、カムテーブル520と同様に、離散的なデータである。カムテーブル570におけるデータを用いて直線補完すると、図12に示したカム曲線560となる。当該直線補間は、図6の補間部502によってなされる。
 なお、上述したように、カムテーブル520とカムテーブル570とは、不揮発性メモリ106に予め格納されており、電源投入に伴い、メインメモリ104に展開される。
 図14は、カムテーブルの切り換え処理を説明するための図である。詳しくは、図14は、CPUユニット13がカムテーブル520に基づいた処理を行っている最中に、CPUユニット13が、カム動作に用いるカムテーブルをカムテーブル520からカムテーブル570に切り換える処理を説明するための図である。
 図14(a)は、切り換え前のカムテーブル520に基づくカム曲線510と、切り換え後のカムテーブル570に基づくカム曲線560とを表した図である。図14(b)は、カムテーブルの切り換え前後における電子カムの動作を説明するための図である。
 図14(a)を参照して、カム曲線510における位相θaの変位はδ1であり、カム曲線560における位相θaの変位はδ2(δ2>δ1)である。
 図14(b)を参照して、CPUユニット13は、位相θaに対応する時点でカムテーブルをカムテーブル520からカムテーブル570に切り換える指令を受付けた場合、カムテーブル520を用いた1つの制御周期が終了していなくても、当該周期においてカムテーブル570を用いた処理を開始する。より詳しくは、CPUユニット13は、カム曲線510の位相θaに対応する時点でカムテーブルを切り換える指令を受け付けた場合、カム曲線560の位相θaの近傍である位相θb(θb>θa)からカム動作を続行する。具体的には、CPUユニット13は、カムテーブルをカムテーブル520からカムテーブル570に切り換える場合、当該切り換え時におけるカムテーブル520における位相と連続性を有するような、当該切り換え時におけるカムテーブル570における位相から、カムテーブル570を用いた制御を開始する。
 このため、図14(b)に示す切り換えにおいては、カムテーブルの切り換えが行なわれる制御周期(図14(b)の真ん中の周期)では、位相θaの時点において、指令値である変位δの値がδ1からδ2に急激に変化することになる。
 図15は、カムテーブルを切り換えるためのユーザインターフェイスを表した図である。また、図15は、PLCコントローラで一般的に使用されているラダー言語とファンクションブロックとを用いた場合の、切り換え命令の記述例を示している。
 図15を参照して、カムテーブルの切り換えは、PLCサポート装置8を用いて行なわれる。具体的には、ユーザがPLCサポート装置8のディスプレイ87を参照しつつ、カムテーブルの切り換えを指示する入力を行なうことにより、メインメモリ104に展開されているカムテーブルの切り換えが実行される。
 ディスプレイ87には、3つの領域801~803が表示される。領域801は、選択可能な項目が表示されるメニュー領域である。領域802は、ユーザが入力する領域である。領域802には、複数の電子カムのうち電子カムNo.1に用いるカムテーブルをカムテーブルNo.1からカムテーブルNo.2に切り換えるための指令がユーザにより記述される。たとえば、カムテーブル520がカムテーブルNo.1に対応し、カムテーブル570がカムテーブルNo.2に対応する。領域803には、領域802における記述に従い、実行される処理内容が表示される。
 マイクロプロセッサ100は、ラダープログラム中に、カム動作開始のインスタンス”カムNo.1”を2つ記述する。マイクロプロセッサ100は、1つ目のインスタンスでは“カムテーブルNo.1”を指定し、2つ目のインスタンスでは“カムテーブルNo.2”を指定する。マイクロプロセッサ100は、1つ目のインスタンスの動作中、かつ接点_2をTRUEにしたときに、2つ目のインスタンスを実行することにより、利用するカムテーブルをカムテーブル1からカムテーブルNo.2に切り換る。
 なお、カムテーブルの切り換え命令は、ラダー言語の代わりに、ST(Structure Text)言語を用いてもよい。
 図16は、図15に示したカムテーブルの切り換えのタイミングチャートを表した図である。図16を参照して、時刻t1において接点_1がTRUEとなり、時刻t2(t1<t2)において、CPUユニット13は、カムテーブルNo.1を用いたモーション制御を開始する。時刻t3(t2<t3)において、接点_2がTRUEとなる。接点_2がTRUEとなると、カムテーブルNo.1を用いたモーション制御からカムテーブルNo.2を用いたモーション制御へと制御内容を切り換える。
 電子カム動作中にユーザがカムテーブルの切り換え指示を出した場合、カムテーブル読込部504は、新しいカムテーブルを読み込み、カムテーブル切り換え指示を受け付けた時点での主軸の位置p(t)(つまり、変位)と、新しいカムテーブルに定義された主軸の位置とを比較し、p(t)よりも大きい位置よりカム動作を継続する。
 たとえば、カムテーブル520と、カムテーブル570とでは、位相の値が一致している。この場合、たとえば、図14に示すとおり、カムテーブル520の位相θaで切り換えの指示が入力された場合(図16においては、接点_2がTRUEになった場合)、マイクロプロセッサ100は、位相θaよりも大きなカムテーブル570の位相に対応付けられた変位を用いて、モーション演算プログラム234を実行する。マイクロプロセッサ100は、たとえば、カムテーブル570における位相θaの次の位相(θa+0.1°)に対応付けられた変位を用いて、モーション演算プログラム234を実行する。その後は、マイクロプロセッサ100は、位相(θa+0.1)を開始点とした、位相の昇順に基づく処理を行なう。
 図17は、カムテーブルの切り換え時における処理について説明するための図である。図17を参照して、カムテーブルを現在使用しているカムテーブルNo.i(図示せず)からカムテーブルNo.jに変更する場合において、カムテーブルの切り換え指示時の主軸の位相が200°であったとする。また、カムテーブルNo.jの位相、180°の次が210°であったとする。なお、i,jは、自然数である。
 この場合には、CPUユニット13は、従動軸である制御対象機器の変位(位置)が、200°よりも大きな210°の位相に対応付けられた100mmとなるように、制御対象機器に対して指令値を出力する。
 もし、ユーザがカムテーブル切り換え時に、後述するスムージング機能の使用を指定した場合、スムージング処理部505は、カムテーブル切り換え時に発生する従軸指令位置の急激な変化を抑制するように従軸指令位置を滑らかに変化させるための処理を行なう。これにより、従動軸のサーボドライバがハンチングすることを防止できる。つまり、カムテーブル切り換え時において、従動軸の振動発生を低減できる。
 図18は、カムテーブルを切り換える手順を示したフローチャートである。図18を参照して、ステップS102において、マイクロプロセッサ100は、複数の電子カムの中から、カムテーブルを切り換える電子カムの指定を受け付けたか否かを判断する。
 マイクロプロセッサ100は、受け付けていないと判断した場合(ステップS102においてNO)、処理をステップS110に進める。マイクロプロセッサ100は、受け付けたと判断した場合(ステップS102においてYES)、ステップS104において、切り換え後に用いるカムテーブルの指定を受け付けたか否かを判断する。
 マイクロプロセッサ100は、受け付けていないと判断した場合(ステップS104においてNO)、処理をステップS110に進める。マイクロプロセッサ100は、受け付けたと判断した場合(ステップS104においてYES)、ステップS106において、指定された電子カム(たとえば、電子カムNo.1)で使用するカムテーブルを、現在使用しているカムテーブル(たとえば、カムテーブル520)から、指定されたカムテーブル(たとえば、カムテーブル570)に切り換える。
 ステップS108において、マイクロプロセッサ100は、切り換え後のカムデータを用いたモーション制御を実行する。ステップS110において、マイクロプロセッサ100は、指定された電子カムを用いた制御が終了したか否かを判断する。マイクロプロセッサ100は、終了したと判断した場合(ステップS108においてYES)、一連の処理を終了する。マイクロプロセッサ100は、終了していないと判断した場合(ステップS108においてNO)、処理をステップS102に進める。
 ところで、カムテーブルを切り換える制御命令は、高優先度定周期タスクにカムテーブルを切り換える制御命令を記述してもよいし、あるいは、低優先度定周期タスクに当該制御命令を記述してもよい。
 図19は、高優先度定周期タスクにカムテーブルを切り換える制御命令を記載したときのデータフローを表した図である。図19を参照して、UPRG710に、カムテーブルを切り換える制御命令FB(Function Block)711が記述される。この場合におけるデータの大まかな流れの順序は、(1)スレーブ→OI701→FB711→MC702→OI703→サーボモータドライバ3、(2)MC704→OI705→サーボモータドライバ3、(3)MC706→OI707→サーボモータドライバ3である。
 図20は、低優先度定周期タスクにカムテーブルを切り換える制御命令を記載したときのデータフローを表した図である。図20を参照して、UPRG720に、カムテーブルを切り換える制御命令FB(Function Block)721,722が記述される。この場合におけるデータの大まかな流れの順序は、スレーブ→OI701→MC702→UPRG720(FB721,722)→OI706→OI707→サーボモータドライバ3である。
 (変形例)
 ところで、図14(b)においては、上述したように、カムテーブルの切り換えが行なわれる周期では、位相θaの時点において、指令値である変位δの値がδ1からδ2に急激に変化することになる。このような急激な変化は好ましくない。また、位相θa近傍におけるCPUユニット13による演算結果が、モーション制御機能モジュールで出力可能な最高加速度、最高減速度、および/または最高加加速度を上回る場合には、図14(b)に示した急激な変位の変化どおりの制御はできない。このような理由から、カムテーブルの切り換えが行なわれた制御周期においては、カムテーブル570のデータを平滑化処理することにより得られたカムテーブルを用いた制御を行なうことが好ましい。なお、以下では、説明の便宜上、カムテーブル570のデータを平滑化処理することにより得られたカムテーブルを、「カムテーブル570A」と称する。また、なお、カムテーブル570Aに基づくカム曲線を、「カム曲線560A」と称する。
 図21は、カムテーブルの切り換え前後における電子カムの動作を説明するための図である。詳しくは、図21は、CPUユニット13がカムテーブル520に基づいた処理を行っている最中に、CPUユニット13が、カム動作に用いるカムテーブルをカムテーブル520からカムテーブル570に切り換えたときの電子カムの動作を説明するための図である。
 図21を参照して、マイクロプロセッサ100は、カムテーブル520からカムテーブル570への切り換え指令を受け付けると、当該指令を受け付けた制御周期において、カムテーブル570の代わりにカムテーブル570Aを用いた処理を実行する。マイクロプロセッサ100は、カムテーブル570Aを1度用いると、次の制御周期では、カムテーブル570Aの代わりにカムテーブル570を用いた処理を実行する。
 このように、CPUユニット13は、カムテーブルを切り換える指示を受け付けた制御周期においては、平滑化されたカムテーブルを用いることにより、急激な変位の変化が生じることを低減することができる。
 上記の平滑化処理は、不揮発性メモリ106に予め格納された平滑化フィルタをマイクロプロセッサ100が用いることにより実現される。平滑化フィルタは、急激な変化を平滑にするため、ローパス特性を有することが好ましい。ローパス特性を有する代表的な平滑化フィルタとして、たとえば、一次遅れフィルタ、高次遅れフィルタ、移動平均フィルタが挙げられる。
 図22は、スムージング処理に関する処理の流れを示したフローチャートである。当該フローチャートに示した処理は、図18のステップS108において実行される。
 図22を参照して、ステップS202において、マイクロプロセッサ100は、スムージング処理を実行するか否かを判断する。当該判断の手法については、後述する(図23)。マイクロプロセッサ100は、スムージング処理を実行すると判断した場合(ステップS202においてYES)、ステップS204においてスムージング処理を行なう。マイクロプロセッサ100は、スムージング処理を実行しないと判断した場合(ステップS202においてNO)、一連の処理を終了する。
 ステップS206において、マイクロプロセッサ100は、電子カムの1周期(「カム周期」とも称する)が終了したか否かを判断する。つまり、マイクロプロセッサ100は、カムテーブルの切り換え時を含んだ周期が終了したか否かを判断する。マイクロプロセッサ100は、終了したと判断した場合(ステップS206においてYES)、ステップS208において、移動量に残量があるか否かを判断する。マイクロプロセッサ100は、終了していないと判断した場合(ステップS206においてNO)、処理をステップS204に進める。
 マイクロプロセッサ100は、残量があると判断した場合(ステップS208においてYES)、ステップS210において、次の電子カムの周期に移動量の不足分を補うための持ち越し処理を実施するか否かを判断する。当該判断の手法についても、後述する(図23)。マイクロプロセッサ100は、持ち越し処理をすると判断した場合(ステップS210においてYES)、処理をステップS204に進める。マイクロプロセッサ100は、持ち越し処理をしないと判断した場合(ステップS210においてNO)、スムージング処理の実行を停止する。つまり、マイクロプロセッサは、次の電子カムの周期においては、スムージング処理を行なわない。
 スムージング処理部505は、上記のような平滑化処理を行なう場合、たとえば、伝達関数G(s)が以下の式(1)となる1次遅れフィルタを用いればよい。
 G(s)=1/(T×s+1) … (1)
 式(1)における“T”は時定数である。“T”の値が大きいほど、滑らかに平滑化される。なお、一般的にローパスフィルタは信号の位相が遅れる特性がある。また、位相の遅れ度合と平滑度とは、トレードオフの関係にある。カムテーブルの切り換え後に、当該位相遅れをなくした場合には、“T”を小さく設定する必要がある。
 図26は、平滑化フィルタを用いた場合における、図15に示したカムテーブルの切り換えのタイミングチャートを表した図である。図26を参照して、時刻t1において接点_1がTRUEとなり、時刻t2(t1<t2)において、CPUユニット13は、カムテーブルNo.1を用いたモーション制御を開始する。時刻t3(t2<t3)において、接点_2がTRUEとなる。接点_2がTRUEとなると、カムテーブルNo.1を用いたモーション制御からカムテーブルNo.2および平滑化フィルタを用いたモーション制御へと制御内容を切り換える。
 ところで、上記においては、カムテーブル570のデータを平滑化処理することにより得られたカムテーブルを用いた制御を行なう場合について説明したが、これに限定されない。カム曲線を切り換える場合に、双方の曲線を接続するための切り換え区間を設け、その間を多項式曲線で接続することによって、不連続な従軸位置指令を発生させずに、滑らかな切り換えを行なうように、CPUユニット13を構成してもよい。
 図27は、多項式曲線を用いる場合における、電子カム500に関するシステム構成を表した図である。図27を参照して、電子カム500に関するシステムは、電子カム演算部501と、補間部502と、スイッチ部503と、カムテーブル読込部504と、スムージング処理部505と、複数のカムテーブルと、スイッチ部506と、多項式曲線演算部507とにより実現される。なお、図27は、図9と同様に、電子カム500に対して、エンコーダ19から主軸指令位置(エンコーダ位置)が入力される例を示している。
 スイッチ部506は、電子カム演算機能と多項式曲線演算機能とを切り換えるための回路である。CPUユニット13は、以下の処理を行なう。
 まず、電子カム500に関するシステム(CPUユニット13)は、カムテーブルの切り換え前は、スイッチ部506を電子カム演算部501に接続する。電子カム500に関するシステムは、カムテーブルの切り換え指示を受け付けた場合、スイッチ部506を多項式曲線演算部507に接続する。次いで、電子カム500に関するシステムは、切り換え区間の主軸距離(位相幅)を設定し、当該主軸距離をΔPとする。電子カム500に関するシステムは、主軸位置が、切り換え開始位置からΔP以上変化したときに、スイッチ506を電子カム演算部501に再接続する。
 以下に、文献“Cam Design and Manufacturing Handbook Second Edition”(Robert L.Norton著 INDUSTRIAL PRESS INC 2009)に記載されたB-SPLINEの式において、B-SPLINE 5次における従動軸指令演算を行なった例を示す。
 (i)電子カム500は、切り換え時の主軸位置、従軸変位、従軸速度、および従軸加速度を、それぞれ、P1、S1,V1,A1とする。
 (ii)電子カム500は、切り換え後のカム曲線が主軸位置(P1+ΔP)にあるときの従軸変位、従軸速度、および従軸加速度の変位を求め、それらを、S2,V2,A2とする。
 (iii)電子カム500は、主軸位置P,従軸指令位置Sとしたときの多項式曲線を、以下の式(2)とする。
 S(P)=C1+C2×P+C3×P^2+C4×P^3+C5×P^4+C6×P^5 … (2)
 ただし、C1~C5は以下の境界条件を満足する係数である。なお、「^」(ハットマーク)は、べき乗計算を示す演算子である。
  S(P1)=S1
  S’(P1)=V1
  S’’(P1)=A1
  S(P2)=S2
  S’(P2)=V2
  S’’(P2)=A2
 なお、「’」は、微分を表す演算子である。
 (iv)式(2)を用いて、電子カム500は、切り換え区間における従動軸指令位置を演算する。
 図28は、多項式を用いた場合における、図15に示したカムテーブルの切り換えのタイミングチャートを表した図である。図28を参照して、時刻t1において接点_1がTRUEとなり、時刻t2(t1<t2)において、CPUユニット13は、カムテーブルNo.1を用いたモーション制御を開始する。時刻t3(t2<t3)において、接点_2がTRUEとなる。接点_2がTRUEとなると、CPUユニット13は、多項式を用いた平滑化処理を行なう。CPUユニット13は、切り換え区間(t3~t4)が経過すると、カムテーブルNo.1を用いたモーション制御からカムテーブルNo.2を用いたモーション制御へと制御内容を切り換える。
 図23は、スムージング処理を行なう場合のスムージングパターンを説明するための図である。カムテーブルの切り換え時におけるスムージング処理方法をユーザが指定する場合、たとえば、上述したファンクションブロック方式の命令を用いる。具体的には、ユーザは、命令”MC_CamIn”にスムージングパターンを指定するための入力変数 “CamTransition”を追加する。”CamTransition”は、たとえば列挙子型であり、図23に示したスムージングパターンのいずれかを指定できる。
 列挙子が“_mcCTNone”である場合、マイクロプロセッサ100は、スムージング処理を行なわない。列挙子が“_mcCTMaxAccDec”である場合、マイクロプロセッサ100は、最大加速度で抑制する。この場合、カムの1周期で終わらない場合には、エラーを出力する。列挙子が“_mcCTMaxAccDecCyclic”である場合、マイクロプロセッサ100は、最大加速度で抑制する。この場合、カムの1周期で終わらないときには、不足分(つまり、残量)を次サイクルで処理する。つまり、CPUユニット13は、持ち越し処理をする。
 列挙子が“_mcCTFiltering”である場合、マイクロプロセッサ100は、平滑化フィルタを使用する。この場合、マイクロプロセッサ100は、カムの1周期で終わらないときには、エラー出力をする。列挙子が“_mcCTFilteringCyclic”である場合、マイクロプロセッサ100は、平滑化フィルタを使用する。この場合、マイクロプロセッサ100は、カムの1周期で終わらないときには、不足分を次サイクルで処理する。
 列挙子が“_mcCTPoly5”である場合、マイクロプロセッサ100は、5次多項式で補間処理を行なう。なお、ここでは5次多項式を例に挙げているが、マイクロプロセッサ100が3次以上の多項式で補間処理を行なう構成であればよい。
 <F.CPUユニットのまとめ>
 (1)CPUユニット13は、モーション制御とシーケンス制御とを実行する、PLCの演算ユニットである。CPUユニット13は、マイクロプロセッサ100と、電子カム500の主軸の位相の各々に対して当該電子カムの従節の変位を対応付けたカムテーブルを用いたモーション制御を行なうための制御プログラム230と、カムテーブル520およびカムテーブル570とを格納したメモリとを備える。
 マイクロプロセッサ100は、カムテーブル520を用いて制御プログラム230を実行し、当該実行結果を従節に対応する制御対象機器に出力する。マイクロプロセッサ100は、制御プログラム230の実行中に予め定められた指示を受け付けると、制御プログラム230の実行に用いるカムテーブルをカムテーブル520からカムテーブル570に切り換える。マイクロプロセッサ100は、当該切り換えに基づき、カムテーブル570を用いた制御プログラム230の実行結果を制御対象機器に出力する。
 これにより、CPUユニット13は、カムテーブルの切り換えを迅速に行なうことが可能となる。
 (2)上記メモリは、不揮発性メモリ106と、揮発性のメインメモリ104とを含む。不揮発性メモリ106は、カムテーブル520とカムテーブル570とを格納している。マイクロプロセッサ100は、カムテーブル520とカムテーブル570とを不揮発性メモリ106から読み出して、当該読み出したカムテーブル520,570をメインメモリ104に展開する。マイクロプロセッサ100は、上述した予め定められた指示を受け付ける前は、展開されたカムテーブル520を用いて制御プログラム230を実行する。マイクロプロセッサ100は、展開後に上記予め定められた指示を受け付けると、展開されたカムテーブル570を用いて制御プログラム230を実行する。
 マイクロプロセッサ100は、カムテーブル520,570を揮発性のメインメモリ104に展開した後に、使用するカムテーブルをカムテーブル520からカムテーブル570に切り換える。このため、CPUユニット13は、切り換える際に、カムテーブル570を不揮発性メモリ106から読み出す構成に比べて、カムテーブルの切り換え処理を迅速に行なうことができる。
 (3)マイクロプロセッサ100は、制御プログラム230の実行に用いるカムテーブルをカムテーブル520からカムテーブル570に切り換える場合、当該切り換え時におけるカムテーブル520における位相よりも大きなカムテーブル570の位相に対応付けられた変位を用いて制御プログラム230を実行する。これにより、CPUユニット13は、位相に関して連続した処理を行なうことができる。
 (4)上記メモリは、加速度に関する上限値と、減速度に関する上限値とを、さらに格納している。マイクロプロセッサ100は、切り換え直後における制御対象機器の加速度が加速度に関する上限値を超える場合、前記制御対象機器の加速度を前記加速度に関する上限値に制限する。マイクロプロセッサ100は、切り換え直後における制御対象機器の減速度が減速度に関する上限値を超える場合、制御対象機器の減速度を減速度に関する上限値に制限する。これにより、CPUユニット13は、ユーザが意図していない急激な加速/減速を伴う制御対象機器の移動を防止することができる。
 (5)上記メモリは、カムテーブルを平滑化する平滑化フィルタをさらに格納している。マイクロプロセッサ100は、切り換え直後においては、カムテーブル570における変位を平滑化フィルタによってスムージング処理する。これにより、CPUユニット13は、カムテーブルの切り換え時に、制御対象機器のスムーズな移動を実現することができる。
 (6)上記メモリは、3次以上の高次多項式をさらに格納している。マイクロプロセッサ100は、切り換え直後においては、カムテーブル570における変位を高次多項式によってスムージング処理する。これにより、CPUユニット13は、カムテーブルの切り換え時に、制御対象機器のスムーズな移動を実現することができる。
 (7)マイクロプロセッサ100は、カムテーブル570の変位を出力しない制御を行なうことによって生じる制御対象機器の移動量の不足分を、モーション制御における電子カムの1または複数のカム周期において補う処理をする。これにより、CPUユニット13は、たとえば平滑化処理の実行をする場合、および/または上述した加減速度についての上限値が設定されている場合であっても、制御対象機器の移動量の不足を低減あるいは無くすことができる。
 (8)マイクロプロセッサ100は、1つのカム周期において移動量の不足分を補うことができない場合には、エラーとして処理するか、または次のカム周期においても不足分を補う処理を行なわせるかを指定する命令を受け付ける。これにより、1つのカム周期において移動量の不足分を補うことができない場合において、ユーザは、エラーとしてたとえば処理を停止させるか、あるいは次のカム周期において不足分を補う処理を行なわせるかを選択することができる。
 (9)制御プログラム230は、モーション演算プログラム234と、モーション演算プログラム234に対して当該モーション演算プログラム234の実行に必要な指示を与える処理を行なうユーザプログラム236とを含む。マイクロプロセッサ100は、モーション演算プログラム234の実行を、定周期T1毎に繰り返し、ユーザプログラム236を、定周期T1の整数倍となる定周期T2毎に繰り返す。ユーザプログラム236のうち上記切り換えを行なうためのプログラムは、定周期T1のタスクまたは定周期T2のタスクに記述される。これにより、高優先度定周期タスクまたは低優先度定周期タスクにカムテーブルを切り換える制御命令を記載できる。
 とこで、図1に示したように、PLCシステムSYSにおいては、PLC1のCPUユニット13が、モーション制御とシーケンス制御とを実行する構成である。より詳しくは、CPU13のマイクロプロセッサ100(図2参照)が、モーション制御とシーケンス制御とを実行する。
 しかしながら、CPUユニット13として、モーション制御用のユニットとシーケンス制御用のユニットとを別々に設けておき、モーション制御とシーケンス制御とを異なるプロセッサ(マイクロプロセッサ)により実行してもよい。つまり、モーション制御用のユニットのプロセッサにモーション制御を実行させ、シーケンス制御用のプロセッサにシーケンス制御を実行させればよい。
 あるいは、マイクロプロセッサ100として、デュアルコアのプロセッサまたはマルチコアのプロセッサを利用する場合、1つのコアにモーション制御を実行させ、残りのコアのいずれかにシーケンス制御を実行させるように、CPUユニット13を構成してもよい。
 <G.サポート装置>
 次に、PLC1で実行されるプログラムの作成およびPLC1のメンテナンスなどを行なうためのPLCサポート装置8について説明する。
 図24は、本発明の実施の形態に係るCPUユニットに接続して用いられるPLCサポート装置8のハードウェア構成を示す模式図である。図24を参照して、PLCサポート装置8は、典型的には、汎用のコンピュータで構成される。なお、メンテナンス性の観点からは、可搬性に優れたノート型のパーソナルコンピュータが好ましい。
 図24を参照して、PLCサポート装置8は、OSを含む各種プログラムを実行するCPU81と、BIOSや各種データを格納するROM(Read Only Memory)82と、CPU81でのプログラムの実行に必要なデータを格納するための作業領域を提供するメモリRAM83と、CPU81で実行されるプログラムなどを不揮発的に格納するハードディスク(HDD)84とを含む。
 PLCサポート装置8は、さらに、ユーザからの操作を受付けるキーボード85およびマウス86と、情報をユーザに提示するためのディスプレイ87とを含む。さらに、PLCサポート装置8は、PLC1(CPUユニット13)などと通信するための通信インターフェイス(IF)を含む。
 後述するように、PLCサポート装置8で実行される各種プログラムは、CD-ROM9に格納されて流通する。このCD-ROM9に格納されたプログラムは、CD-ROM(Compact Disk-Read Only Memory)ドライブ88によって読取られ、ハードディスク(HDD)84などへ格納される。あるいは、上位のホストコンピュータなどからネットワークを通じてプログラムをダウンロードするように構成してもよい。
 上述したように、PLCサポート装置8は、汎用的なコンピュータを用いて実現されるので、これ以上の詳細な説明は行わない。
 図25は、本発明の実施の形態に係るCPUユニットに接続して用いられるPLCサポート装置8のソフトウェア構成を示す模式図である。図25を参照して、PLCサポート装置8ではOS310が実行され、PLCサポートプログラム320に含まれる各種のプログラムを実行可能な環境が提供される。
 PLCサポートプログラム320は、エディタプログラム321と、コンパイラプログラム322と、デバッガプログラム323と、シミュレーション用シーケンス命令演算プログラム324と、シミュレーション用モーション演算プログラム325と、通信プログラム326とを含む。PLCサポートプログラム320に含まれるそれぞれのプログラムは、典型的には、CD-ROM9に格納された状態で流通して、PLCサポート装置8にインストールされる。
 エディタプログラム321は、ユーザプログラム236を作成するための入力および編集といった機能を提供する。より具体的には、エディタプログラム321は、ユーザがキーボード85やマウス86を操作してユーザプログラム236のソースプログラム330を作成する機能に加えて、作成したソースプログラム330の保存機能および編集機能を提供する。また、エディタプログラム321は、外部からのソースプログラム330の入力を受付ける。
 コンパイラプログラム322は、ソースプログラム330をコンパイルして、CPUユニット13のマイクロプロセッサ100で実行可能なオブジェクトプログラム形式のユーザプログラム236を生成する機能を提供する。また、コンパイラプログラム322は、ソースプログラム330をコンパイルして、PLCサポート装置8のCPU81で実行可能なオブジェクトプログラム形式のユーザプログラム340を生成する機能を提供する。このユーザプログラム340は、PLCサポート装置8によってPLC1の動作をシミュレート(模擬)するために使用される、シミュレーション用のオブジェクトプログラムである。
 デバッガプログラム323は、ユーザプログラムのソースプログラムに対してデバッグを行なうための機能を提供する。このデバッグの内容としては、ソースプログラムのうちユーザが指定した範囲を部分的に実行する、ソースプログラムの実行中における変数値の時間的な変化を追跡する、といった動作を含む。
 デバッガプログラム323は、さらに、シミュレーション用のオブジェクトプログラムであるユーザプログラム340を実行する機能を提供する。このシミュレーション時には、CPUユニット13のシステムプログラムに含まれるシーケンス命令演算プログラム232およびモーション演算プログラム234に代えて、PLCサポートプログラム320に含まれるシミュレーション用シーケンス命令演算プログラム324およびシミュレーション用モーション演算プログラム325が用いられる。
 通信プログラム326は、PLC1のCPUユニット13へユーザプログラム236を転送する機能を提供する。
 一般的には、PLC1に実装されるシステムプログラム210は、CPUユニット13の製造段階でCPUユニット13の不揮発性メモリ106へ格納される。但し、CD-ROM9にシステムプログラム210を格納しておけば、ユーザは、CD-ROM9のシステムプログラム210をPLCサポート装置8へコピーし、通信プログラム326が提供する機能を利用してコピーしたシステムプログラム210をCPUユニット13へ転送することもできる。さらに、CD-ROM9に、PLC1のCPUユニット13で実行されるリアルタイムOS200を格納しておけば、リアルタイムOS200についてもユーザ操作によってPLC1へ再インストールできる。
 今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
 1 PLC、2 フィールドネットワーク、3 サーボモータドライバ、4 サーボモータ、5 ターミナル、6 検出スイッチ、7 リレー、8 PLCサポート装置、10 接続ケーブル、11 システムバス、12 電源ユニット、13,14,53 ユニット、15 特殊ユニット、19 エンコーダ、51 ターミナルバス、52 通信カプラ、83 RAM、87 ディスプレイ、100 マイクロプロセッサ、102 チップセット、104 メインメモリ、106 不揮発性メモリ、108 システムタイマ、110 コネクタ、120 システムバスコントローラ、122,142 制御回路、124 システムバス制御回路、126,146 バッファメモリ、130 システムバスコネクタ、140 フィールドネットワークコントローラ、144 フィールドネットワーク制御回路、200 リアルタイムOS、210,220 システムプログラム、212 スケジューラプログラム、230 制御プログラム、232 シーケンス命令演算プログラム、234 モーション演算プログラム、236,340 ユーザプログラム、320 サポートプログラム、400 主軸、500 電子カム、500A 機械式カム、501 電子カム演算部、502 補間部、503 スイッチ部、504 カムテーブル読込部、505 スムージング処理部、510,560,560A カム曲線、520,570,570A カムテーブル、600 従動軸、ME カム機構、SYS システム。

Claims (11)

  1.  モーション制御とシーケンス制御とを実行する、プログラマブル・ロジック・コントローラの演算ユニットであって、
     プロセッサと、
     電子カムの主軸の位相の各々に対して当該電子カムの従動軸の変位を対応付けたカムテーブルを用いたモーション制御を行なうためのプログラムと、前記カムテーブルとしての第1のカムテーブルおよび第2のカムテーブルとを格納したメモリとを備え、
     前記プロセッサは、
      前記第1のカムテーブルを用いて前記プログラムを実行し、当該実行結果を前記従動軸に対応する制御対象機器に出力し、
      前記プログラムの実行中に予め定められた指示を受け付けると、前記プログラムの実行に用いるカムテーブルを前記第1のカムテーブルから前記第2のカムテーブルに切り換え、
      前記切り換えに基づき、前記第2のカムテーブルを用いた前記プログラムの実行結果を前記制御対象機器に出力する、演算ユニット。
  2.  前記メモリは、不揮発性メモリと、揮発性メモリとを含み、
     前記不揮発性メモリは、前記第1のカムテーブルと前記第2のカムテーブルとを格納しており、
     前記プロセッサは、
      前記第1のカムテーブルと前記第2のカムテーブルとを前記不揮発性メモリから読み出して、当該読み出したカムテーブルを前記揮発性メモリに展開し、
      前記予め定められた指示を受け付ける前は、前記展開された前記第1のカムテーブルを用いて前記プログラムを実行し、
      前記展開後に前記予め定められた指示を受け付けると、前記展開された前記第2のカムテーブルを用いて前記プログラムを実行する、請求項1に記載の演算ユニット。
  3.  前記プロセッサは、前記プログラムの実行に用いるカムテーブルを前記第1のカムテーブルから前記第2のカムテーブルに切り換える場合、前記切り換え時における前記第1のカムテーブルにおける位相よりも大きな前記第2のカムテーブルの位相に対応付けられた変位を用いて前記プログラムを実行する、請求項1または2に記載の演算ユニット。
  4.  前記メモリは、加速度に関する上限値と、減速度に関する上限値とを、さらに格納しており、
     前記プロセッサは、
      前記切り換え直後における前記制御対象機器の加速度が前記加速度に関する上限値を超える場合、前記制御対象機器の加速度を前記加速度に関する上限値に制限し、
      前記切り換え直後における前記制御対象機器の減速度が前記減速度に関する上限値を超える場合、前記制御対象機器の減速度を前記減速度に関する上限値に制限する、請求項3に記載の演算ユニット。
  5.  前記メモリは、前記カムテーブルを平滑化する平滑化フィルタをさらに格納しており、
     前記プロセッサは、前記切り換え直後においては、前記第2のカムテーブルにおける前記変位を前記平滑化フィルタによってスムージング処理する、請求項3に記載の演算ユニット。
  6.  前記メモリは、3次以上の高次多項式をさらに格納しており、
     前記プロセッサは、前記切り換え直後においては、前記第2のカムテーブルにおける前記変位を前記高次多項式によってスムージング処理する、請求項3に記載の演算ユニット。
  7.  前記プロセッサは、前記第2のカムテーブルの変位を出力しない制御を行なうことによって生じる前記制御対象機器の移動量の不足分を、前記モーション制御における前記電子カムの1または複数のカム周期において補う処理をする、請求項4から6のいずれかに記載の演算ユニット。
  8.  前記プロセッサは、前記1つのカム周期において前記移動量の不足分を補うことができない場合には、エラーとして処理するか、または次のカム周期においても不足分を補う処理を行なわせるかを指定する命令を受け付ける、請求項7に記載の演算ユニット。
  9.  前記プログラムは、モーション演算プログラムと、前記モーション演算プログラムに対して当該モーション演算プログラムの実行に必要な指示を与える処理を行なうユーザプログラムとを含み、
     前記プロセッサは、
      モーション演算プログラムの実行を、第1の定周期毎に繰り返し、
      前記ユーザプログラムを、前記第1の定周期の整数倍となる第2の定周期毎に繰り返し、
     前記ユーザプログラムのうち前記切り換えを行なうためのプログラムは、前記第1の定周期のタスクまたは前記第2の定周期のタスクに記述される、請求項1から8のいずれか1項に記載の演算ユニット。
  10.  モーション制御とシーケンス制御とを実行する、プログラマブル・ロジック・コントローラの演算ユニットにおける出力制御方法であって、
     前記演算ユニットは、電子カムの主軸の位相の各々に対して当該電子カムの従動軸の変位を対応付けたカムテーブルを用いたモーション制御を行なうためのプログラムと、前記カムテーブルとしての第1のカムテーブルおよび第2のカムテーブルとを格納しており、
     前記出力制御方法は、
     前記演算ユニットのプロセッサが、前記第1のカムテーブルを用いて前記プログラムを実行し、当該実行結果を前記従動軸に対応する制御対象機器に出力するステップと、
     前記プロセッサが、前記プログラムの実行中に予め定められた指示を受け付けると、前記プログラムの実行に用いるカムテーブルを前記第1のカムテーブルから前記第2のカムテーブルに切り換えるステップと、
     前記プロセッサが、前記切り換えに基づき、前記第2のカムテーブルを用いた前記プログラムの実行結果を前記制御対象機器に出力するステップとを備える、出力制御方法。
  11.  モーション制御とシーケンス制御とを実行する、プログラマブル・ロジック・コントローラの演算ユニットを制御するプログラムであって、
     前記演算ユニットは、電子カムの主軸の位相の各々に対して当該電子カムの従動軸の変位を対応付けたカムテーブルを用いたモーション制御を行なうためのプログラムと、前記カムテーブルとしての第1のカムテーブルおよび第2のカムテーブルとを格納しており、
     前記プログラムは、
     前記第1のカムテーブルを用いて前記プログラムを実行し、当該実行結果を前記従動軸に対応する制御対象機器に出力するステップと、
     前記プログラムの実行中に予め定められた指示を受け付けると、前記プログラムの実行に用いるカムテーブルを前記第1のカムテーブルから前記第2のカムテーブルに切り換えるステップと、
     前記切り換えに基づき、前記第2のカムテーブルを用いた前記プログラムの実行結果を前記制御対象機器に出力するステップとを、前記演算ユニットに実行させる、プログラム。
PCT/JP2011/056780 2011-03-15 2011-03-22 演算ユニット、出力制御方法、およびプログラム WO2012124144A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP11861262.1A EP2687929B9 (en) 2011-03-15 2011-03-22 Computation unit, control method and program for a motion controller
US14/005,288 US9869979B2 (en) 2011-03-15 2011-03-22 Computation unit, output control method, and program
CN201180068868.XA CN103403630B (zh) 2011-03-15 2011-03-22 运算单元、输出控制方法和程序

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2011-056769 2011-03-15
JP2011056769A JP4973792B1 (ja) 2011-03-15 2011-03-15 演算ユニット、出力制御方法、およびプログラム

Publications (1)

Publication Number Publication Date
WO2012124144A1 true WO2012124144A1 (ja) 2012-09-20

Family

ID=46650177

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/056780 WO2012124144A1 (ja) 2011-03-15 2011-03-22 演算ユニット、出力制御方法、およびプログラム

Country Status (5)

Country Link
US (1) US9869979B2 (ja)
EP (1) EP2687929B9 (ja)
JP (1) JP4973792B1 (ja)
CN (1) CN103403630B (ja)
WO (1) WO2012124144A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017094457A (ja) * 2015-11-25 2017-06-01 ファナック株式会社 カム形状データ作成装置及び同期制御装置

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104039513B (zh) 2012-01-13 2015-12-23 三菱电机株式会社 风险测定系统
EP2887165A1 (en) 2013-12-20 2015-06-24 Omron Corporation Computation unit, output control method, and program
JP6349805B2 (ja) * 2014-03-14 2018-07-04 オムロン株式会社 通信ユニット、コントローラ、制御システム、制御方法、およびプログラム
JP6394014B2 (ja) * 2014-03-14 2018-09-26 オムロン株式会社 制御システム及びプログラム部品
WO2015173886A1 (ja) * 2014-05-13 2015-11-19 三菱電機株式会社 制御装置および制御方法
JP5873140B2 (ja) * 2014-06-25 2016-03-01 ファナック株式会社 同期制御装置
JP2016194831A (ja) * 2015-03-31 2016-11-17 オムロン株式会社 制御装置
ITUA20164355A1 (it) * 2016-06-14 2017-12-14 Tecnopower S R L Metodo e macchina di lavorazione della soletta di uno sci
WO2018158956A1 (ja) * 2017-03-03 2018-09-07 三菱電機株式会社 データ処理装置、データ処理方法、設定管理装置およびデータ処理システム
JP6919404B2 (ja) * 2017-08-10 2021-08-18 オムロン株式会社 制御装置
JP7087316B2 (ja) * 2017-09-27 2022-06-21 オムロン株式会社 情報処理装置、情報処理方法およびプログラム
US11061839B2 (en) 2018-02-07 2021-07-13 Mitsubishi Electric Corporation Input/output control unit, programmable logic controller, and inspection system
JP6927089B2 (ja) * 2018-03-05 2021-08-25 オムロン株式会社 制御装置、システムプログラム、制御方法
SG11202010344QA (en) 2018-06-22 2020-11-27 Soft Servo Systems Inc Motion control program, motion control method, and motion control device
JP7040328B2 (ja) * 2018-07-11 2022-03-23 オムロン株式会社 制御装置、および制御方法
CN110912474A (zh) * 2018-09-17 2020-03-24 深圳市雷赛智能控制股份有限公司 基于EtherCAT协议的闭环步进电机控制系统与驱动装置
CN111203870B (zh) * 2018-11-22 2021-12-17 深圳市优必选科技有限公司 舵机运动控制方法、装置及终端设备
CN110488758B (zh) * 2019-08-09 2021-05-25 南京埃斯顿自动化股份有限公司 一种基于PLCopen规范的轨迹过渡方法
CN113468680B (zh) * 2020-03-30 2023-01-03 沈机(上海)智能系统研发设计有限公司 从轴耦合到凸轮曲线的平滑切入方法、系统、介质及终端
CN115685871B (zh) * 2022-10-31 2024-08-16 深圳市汇川技术股份有限公司 控制方法、凸轮表生成设备及可读存储介质

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08126375A (ja) 1994-10-28 1996-05-17 Yaskawa Electric Corp 同期制御装置
JPH08339218A (ja) 1995-06-09 1996-12-24 Yokogawa Electric Corp モータの位置決め制御システム
JPH0957949A (ja) * 1995-08-29 1997-03-04 Shinohara Tekkosho:Kk 枚葉式印刷機の制御装置
JPH09289788A (ja) 1996-04-19 1997-11-04 Yaskawa Electric Corp 同期制御装置
JPH10174478A (ja) 1996-12-04 1998-06-26 Yaskawa Electric Corp 同期制御装置
JPH11110047A (ja) * 1997-10-07 1999-04-23 Fanuc Ltd モーションコントローラ
JP2006293692A (ja) 2005-04-11 2006-10-26 Mitsubishi Electric Corp 電子カム制御装置
JP2007011936A (ja) * 2005-07-04 2007-01-18 Mitsubishi Electric Corp プログラマブル表示器
JP2007140655A (ja) 2005-11-15 2007-06-07 Yaskawa Electric Corp モーションコントローラ
JP2007328796A (ja) * 2004-11-17 2007-12-20 Omron Corp 電子カムの制御方法
JP2009237818A (ja) * 2008-03-26 2009-10-15 Mitsubishi Electric Corp 電子カム制御装置
JP2009289058A (ja) * 2008-05-29 2009-12-10 Mitsubishi Electric Corp 電子カム制御装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3220588B2 (ja) * 1994-01-28 2001-10-22 三菱電機エンジニアリング株式会社 位置決め装置
JP3387842B2 (ja) * 1999-01-11 2003-03-17 株式会社安川電機 電子カム方式ロータリカッタ制御方法および電子カム曲線生成方法
US6246201B1 (en) * 1999-12-30 2001-06-12 Ge Fanuc Automation North America Inc. Electronic cam control system
JP2004362228A (ja) * 2003-06-04 2004-12-24 Star Micronics Co Ltd 工作機械の数値制御装置と工作機械の数値制御方法
JP4003792B2 (ja) 2004-11-17 2007-11-07 オムロン株式会社 サーボモータ制御システム
DE102007006421A1 (de) * 2007-02-05 2008-08-07 Robert Bosch Gmbh Verfahren zum Betreiben von gesteuerten Maschinen

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08126375A (ja) 1994-10-28 1996-05-17 Yaskawa Electric Corp 同期制御装置
JPH08339218A (ja) 1995-06-09 1996-12-24 Yokogawa Electric Corp モータの位置決め制御システム
JPH0957949A (ja) * 1995-08-29 1997-03-04 Shinohara Tekkosho:Kk 枚葉式印刷機の制御装置
JPH09289788A (ja) 1996-04-19 1997-11-04 Yaskawa Electric Corp 同期制御装置
JPH10174478A (ja) 1996-12-04 1998-06-26 Yaskawa Electric Corp 同期制御装置
JPH11110047A (ja) * 1997-10-07 1999-04-23 Fanuc Ltd モーションコントローラ
JP2007328796A (ja) * 2004-11-17 2007-12-20 Omron Corp 電子カムの制御方法
JP2006293692A (ja) 2005-04-11 2006-10-26 Mitsubishi Electric Corp 電子カム制御装置
JP2007011936A (ja) * 2005-07-04 2007-01-18 Mitsubishi Electric Corp プログラマブル表示器
JP2007140655A (ja) 2005-11-15 2007-06-07 Yaskawa Electric Corp モーションコントローラ
JP2009237818A (ja) * 2008-03-26 2009-10-15 Mitsubishi Electric Corp 電子カム制御装置
JP2009289058A (ja) * 2008-05-29 2009-12-10 Mitsubishi Electric Corp 電子カム制御装置

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
"Technical Specification PLC open - Technical Committee 2 - Task Force, Function blocks for motion control", PLC OPEN WORKING DRAFT, 16 August 2010 (2010-08-16)
ROBERT L.NORTON: "CAM Design and Manufacturing Handbook", 2009, INDUSTRIAL PRESS INC
See also references of EP2687929A4
TADAKATSU AIDA: "Controller no Motion Control System eno Tekiyo", FUJI ELECTRIC JOURNAL, vol. 75, no. 12, December 2002 (2002-12-01), pages 677 - 682, XP008171463 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017094457A (ja) * 2015-11-25 2017-06-01 ファナック株式会社 カム形状データ作成装置及び同期制御装置
US10274906B2 (en) 2015-11-25 2019-04-30 Fanuc Corporation Cam profile data creation apparatus and synchronization controller

Also Published As

Publication number Publication date
JP2012194665A (ja) 2012-10-11
US20140088767A1 (en) 2014-03-27
EP2687929B9 (en) 2017-04-12
EP2687929B1 (en) 2017-02-01
JP4973792B1 (ja) 2012-07-11
EP2687929A1 (en) 2014-01-22
EP2687929A4 (en) 2014-10-29
CN103403630B (zh) 2016-02-03
US9869979B2 (en) 2018-01-16
CN103403630A (zh) 2013-11-20

Similar Documents

Publication Publication Date Title
JP4973792B1 (ja) 演算ユニット、出力制御方法、およびプログラム
JP4807475B1 (ja) 演算ユニット、出力制御方法、およびプログラム
JP6409557B2 (ja) 制御装置、コントローラ・システム、出力制御方法、およびプログラム
JP6946909B2 (ja) 制御システムおよび制御装置
US9618922B2 (en) CPU of PLC, system program for PLC, and recording medium storing system program for PLC
US10082777B2 (en) CPU unit for PLC, PLC-use system program, recording medium in which PLC-use system program is stored, PLC system, PLC support device, PLC support program, and recording medium in which PLC support program is stored
EP2515189B1 (en) Plc cpu unit, system program for plc, and storage medium having system program for plc stored therein
JP6903275B2 (ja) 制御装置および制御方法
US20130002185A1 (en) Synchronous control apparatus, synchronous control method, synchronous control program, and computer-readable recording medium recording synchronous control program
US8977534B2 (en) Controller support apparatus, controller support program executed on the apparatus, storage medium storing the program, and method of estimating execution time of control program
EP2555068B1 (en) Synchronization control apparatus
US8504176B2 (en) CPU unit of PLC, system program for PLC, and recording medium storing system program for PLC
JP6828482B2 (ja) 制御システム、およびパルス出力装置
JP2019057253A (ja) 制御装置、制御方法およびサポート装置
JP2012194955A (ja) 支援装置、表示制御方法、およびプログラム
WO2012124145A1 (ja) 演算ユニット、支援装置、支援プログラム、支援プログラムを格納した記憶媒体、および、支援装置における動作方法
JP7294078B2 (ja) 制御装置

Legal Events

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

Ref document number: 11861262

Country of ref document: EP

Kind code of ref document: A1

DPE2 Request for preliminary examination filed before expiration of 19th month from priority date (pct application filed from 20040101)
NENP Non-entry into the national phase

Ref country code: DE

REEP Request for entry into the european phase

Ref document number: 2011861262

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2011861262

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 14005288

Country of ref document: US