Patent Description:
Conventionally, some servo system has a function of saving information in a servo computation as history data in a memory serving as a storage unit and reading out history data to an external apparatus connected via a host apparatus.

For example, as shown in <FIG>, in each servo amplifier <NUM> of conventional servo system <NUM> that controls a plurality of servo shafts, information in a servo computation in servo computation unit <NUM> is saved as history data Sv in memory <NUM>. Saved history data Sv is read out to external apparatus <NUM> via host apparatus <NUM> and used for, for example, adjustment of servo control gain. Saved history data Sv is information corresponding to past m (where m is an integer) servo computation periods. Examples of history data Sv include a current motor position and a current motor speed.

Referring to <FIG>, host apparatus <NUM> and the plurality of servo amplifiers <NUM> provided in servo system <NUM> are connected to each other via communication line <NUM>. Assume that when servo computation units <NUM> of the plurality of servo amplifiers <NUM> execute computations, time axes of servo computation information are aligned. In this case, servo amplifier <NUM> can adjust the respective servo shafts more accurately.

For example, Patent Literature <NUM> discloses a technique configured to establish synchronization between a communication timing and servo computation processing.

In addition, as a technique for aligning the time axes of history data Sv based on the respective servo computations, there is disclosed an arrangement configured to cause host apparatus <NUM> to instruct servo amplifiers <NUM> to start saving or stop saving history data Sv in the arrangement shown in <FIG> described above (see, for example, Patent Literature <NUM>).

That is, in conventional servo system <NUM> described above, host apparatus <NUM> needs to issue an instruction to stop saving history data Sv. Such teaching is also disclosed in document <CIT>.

In recent years, open networks including EtherCAT (registered trademark) have been popularized. Along with the popularization of open networks, therefore, an increasing number of servo systems include combinations of different providers for host apparatuses and servo amplifiers. Accordingly, when a host apparatus has no function of issuing an instruction to stop saving servo computation information, the time axes of the respective pieces of servo computation information cannot be aligned.

<CIT> discloses that process data are recorded by accumulating process data in a delay-time critical cyclic time plane-e.g., a main processor clock-and storing the accumulated data in a data buffer memory having a FIFO characteristic using a cyclic clock, and that the data buffer memory is read out in a delay-time uncritical acyclic time plane-e.g., a pre-process clock-and the read out data are processed and stored as data sets in a log memory (cf. This document further discloses that to achieve synchronous recording of process data of different time planes, such as process data generated in a cyclic interpolator time plane and a cyclic position control time plane, the process data for position control are accumulated over the time interval of an interpolation clock cycle and provided synchronously with the data of the interpolator for recording (cf.

<CIT> discloses that a supervisory system of plant drive comprises a plurality of power converters each having a means for storing supervisory trend data, a process controller for monitoring them, and a network device performing communication between the process controller and the power converters wherein each power converter stores its trend data by its failure signal, and that upon receiving a failure signal from one of the power converters, the process controller collects trend data of that power converter, receives trend data from other predetermined peripheral power converter by transmitting a trend data storage command thereto, and edits trend data of the relevant power converter and the peripheral power converter thus collected(cf.

Further embodiments of the present invention are described in the dependent claims.

The servo system and the control method for the servo system according to the present invention can align time axes of history data having undergone execution of servo computations by a plurality of servo amplifiers even in an arrangement using a host apparatus having no function of issuing an instruction to stop saving history data via a communication unit.

An exemplary embodiment of the present invention will be described with reference to the accompanying drawings.

<FIG> is a block diagram showing an arrangement of servo system <NUM> according to an exemplary embodiment of the present invention.

As shown in <FIG>, servo system <NUM> according to the exemplary embodiment of the present invention is configured such that host apparatus <NUM> and a plurality of servo amplifiers <NUM> are communicably connected to each other via communication line <NUM> based on a bidirectional one-to-one line network topology. <FIG> shows an example in which as the plurality of servo amplifiers <NUM>, three servo amplifiers <NUM>, each having the same internal arrangement, including first servo amplifier <NUM>, second servo amplifier <NUM>, and third servo amplifier <NUM> are connected to host apparatus <NUM> in the order named. Motor <NUM> for actuating load <NUM> is connected to an output of each servo amplifier <NUM>. In this exemplary embodiment, with this arrangement, each servo amplifier <NUM> performs drive control of motor <NUM> in accordance with a command from host apparatus <NUM> so as to cause load <NUM> to execute a desired operation. Note that servo amplifiers <NUM> will be referred to as first, second, and third servo amplifiers <NUM>, <NUM>, and <NUM>, respectively, when specifically referred to, and will be generically referred to as servo amplifier <NUM> hereinafter, as needed. A number of servo amplifiers <NUM> may differ as long as it is two or more.

In order to set control parameters and give operation commands to each servo amplifier <NUM>, host apparatus <NUM> includes communication unit <NUM> for transmitting and receiving communication data, and each servo amplifier <NUM> includes similar communication unit <NUM>. As shown in <FIG>, communication unit <NUM> is connected to each communication unit <NUM> to bidirectionally transmit communication signal Cm including various information via communication line <NUM>. As a specific communication means to be used for this arrangement, synchronous serial communication or the like is preferable. For example, EtherCAT (registered trademark) described above known as industrial highspeed network communication in recent years is suitably used.

Communication activities concerning, for example, parameter setting, are executed when the system is started up and an operation of the system is changed. Control parameters in this case include set values associated with control gains and filter characteristics. In addition to parameter setting, in order to cause motor <NUM> to perform a desired operation, host apparatus <NUM> transmits various information including operation commands as communication commands to each servo amplifier <NUM> and receives various information as communication responses from each servo amplifier <NUM>.

In particular, parameter setting is irregularly performed at the time of initialization and the like, whereas operation commands need to be sequentially issued to instruct operations in the system. For this reason, in this exemplary embodiment, a reference period is set for updating and transmission of operation commands.

That is, in this exemplary embodiment, first, host apparatus <NUM> issues and updates an operation command for each operation command update period Tins as a period during which host apparatus <NUM> updates an operation command or the like. The exemplary embodiment exemplifies a case in which host apparatus <NUM> and the plurality of servo amplifiers <NUM> transmit and receive signals by synchronous serial communication to exchange data such as operation commands in communication period Tcm <NUM>/L times (where L is an integer) operation command update period Tins. As described above, host apparatus <NUM> transmits a command signal including an operation command such as a position command or speed command for each communication period Tcm as a reference period. Each servo amplifier <NUM> controls an operation of motor <NUM> based on a received command signal. Each servo amplifier <NUM> transmits a return signal including operation information such as an operation state to host apparatus <NUM> for each communication period Tcm.

Although described in detail below, host apparatus <NUM> transmits communication timing signal St for each communication period Tcm. Each servo amplifier <NUM> then executes each process with reference to clock signal Ck phase-locked to communication timing signal St.

As shown in <FIG>, host apparatus <NUM> may also be connected to interface unit <NUM> (to be referred to as an I/F unit as needed) of external apparatus <NUM> via external I/F unit <NUM> different from serial communication with the plurality of servo amplifiers <NUM> via communication line <NUM>.

An outline of an arrangement of each servo amplifier <NUM> will be described next with reference to <FIG>.

As shown in <FIG>, each servo amplifier <NUM> includes communication unit <NUM>, servo computation unit <NUM>, timing generator <NUM>, memory <NUM> as a storage unit, memory controller <NUM>, driver <NUM>, and history processor <NUM>. History processor <NUM> includes trigger processor <NUM>. Drive signal Vd output from driver <NUM> is supplied to motor <NUM>. Load <NUM> is connected to motor <NUM>.

In this arrangement, communication unit <NUM> exchanges information and signals with host apparatus <NUM> by using communication signals Cm. In order to perform drive control for an operation of motor <NUM> in accordance with a command from host apparatus <NUM>, servo amplifier <NUM> includes servo computation unit <NUM> for controlling a position, speed, and torque of motor <NUM> and driver <NUM> for energizing and driving windings of motor <NUM>. Servo computation unit <NUM> performs servo computation processing for each servo computation period Tsv to be described below, such as position control for controlling a position, speed control for controlling a speed, and torque processing of performing processing associated with a torque. Timing generator <NUM> generates clock signal Ck phase-locked to communication timing signal St and also generates various types of timing signals phase-locked to communication timing signal St by, for example, causing servo computation period Tsv to synchronize with a period <NUM>/M times (where M is an integer) communication period Tcm. Driver <NUM> generates drive signal Vd based on drive data Dd calculated by servo computation processing performed by servo computation unit <NUM>.

This exemplary embodiment is characterized in that servo amplifier <NUM> is configured to acquire a history of data used in servo computation processing by servo computation unit <NUM>. That is, the exemplary embodiment further includes history processor <NUM>, memory <NUM>, and memory controller <NUM> so as to execute processing associated with history of data in servo computation unit <NUM>. In this case, history processor <NUM> extracts history data Sv as part of various types of control data in servo computation unit <NUM> from the control data in response to an instruction to execute history processing issued by host apparatus <NUM>. In addition, history processor <NUM> controls memory controller <NUM> to control reading, writing, and the like with respect to memory <NUM>. This causes memory <NUM> to store history data Sv as servo computation information corresponding to past N (where N is an integer) servo computation periods Tsv. Servo computation information Sv is part of control data used in servo computation processing. An example of servo computation information Sv is information such as a current motor position and a current motor speed. For example, in response to a position command from host apparatus <NUM>, history data Sv representing a current motor position sequentially following up is saved in memory <NUM>.

As described above, host apparatus <NUM> transmits an operation command to each servo amplifier <NUM> via communication unit <NUM> configured to perform communication based on synchronous serial communication in predetermined communication period Tcm. Operation commands include a position command. Each servo amplifier <NUM> drives motor <NUM> based on the received operation command. Motor <NUM> transmits power to load <NUM>. In the following description, servo amplifier <NUM> and motor <NUM> connected to servo amplifier <NUM> will also be referred to as servo shafts.

An arrangement of each component of each servo amplifier <NUM> will be descried in more detail next.

In servo amplifier <NUM>, first of all, as described above, communication unit <NUM> is connected to communication line <NUM>, and receives various information including control parameters and operation commands, as communication signal Cm, from host apparatus <NUM>. Communication unit <NUM> also transmits various pieces of information in servo amplifier <NUM> to host apparatus <NUM>.

Communication unit <NUM> receives control parameters including a group of data such as various types of gains and filter constants from host apparatus <NUM>, for example, at the time of initialization at startup of the system, and sets the parameters in servo computation unit <NUM>. Upon completion of initialization, host apparatus <NUM> transmits information including an operation command as communication command Ccmd in communication signal Cm for each communication period Tcm, and communication unit <NUM> receives the information. Communication unit <NUM> analyzes received communication signal Cm and extracts communication command Ccmd sent to communication unit <NUM>. In addition, communication unit <NUM> extracts, for example, command data Rins, history processing data Hdt described detail below, and save start command Star from extracted communication command Ccmd. For example, command data Rins is notified as a position or speed command to servo computation unit <NUM>, as shown in <FIG>. Servo computation unit <NUM> then executes operation control so as to follow up a command represented by command data Rins.

<FIG> is a timing chart showing an example of timings including communication period Tcm and servo computation period Tsv used in servo system <NUM> according to the exemplary embodiment of the present invention. <FIG> is a timing chart showing an example of timings of data transmitted and received between host apparatus <NUM> and first, second, and third servo amplifiers <NUM>, <NUM>, and <NUM>.

A relationship between timings including communication period Tcm and servo computation period Tsv will be described by presenting a specific example with reference to <FIG> and <FIG>.

In this exemplary embodiment, L of ratio <NUM>/L between operation command update period Tins and communication period Tcm described above is set as L = <NUM>, and M of ratio <NUM>/M between communication period Tcm and servo computation period Tsv is set as M = <NUM>.

With this setting, in this exemplary embodiment, if one period during which host apparatus <NUM> updates a command, that is, one command update period Tins, is set to <NUM>, one communication period Tcm of servo amplifier <NUM> is <NUM>/<NUM> of command update period Tins, and hence is <NUM>. In addition, if one communication period Tcm is <NUM>, one servo computation period Tsv is <NUM>/<NUM> of communication period Tcm as shown in <FIG>, and hence is <NUM>. Communication timing signal St is transmitted while being superimposed on communication signal Cm from host apparatus <NUM> every time one communication period Tcm elapses and an operation command is transmitted. In addition, servo computation startup signal Ssv is generated every time one servo computation period Tsv elapses. When servo computation startup signal Ssv is generated, each servo amplifier <NUM> performs servo computation processing as shown in <FIG> and <FIG>. Accordingly, in the exemplary embodiment, servo computation processing executed three times during one communication period Tcm.

In order to generate servo computation startup signal Ssv or the like synchronized with communication timing signal St, communication unit <NUM> detects communication timing signal St and transfers the signal to timing generator <NUM>. In this case, operation commands and the like are signals used as data, whereas communication timing signal St is a pulse signal indicating a periodic timing. In this exemplary embodiment, timing generator <NUM> generates clock signal Ck synchronized with a period of communication timing signal St by using communication timing signal St as a synchronization signal. Timing generator <NUM> further includes a frequency dividing counter for frequency-dividing clock signal Ck and a phase comparator and constitutes a so-called phase locked loop (PLL) circuit by using them. With this arrangement, based on the principle of PLL, clock signal Ck is phase-locked to communication timing signal St and is synchronized with communication timing signal St. As is well known, clock signal Ck is used in digital processing inside servo amplifier <NUM>. Servo computation startup signal Ssv as a pulse signal like that shown in <FIG> and a signal (not shown) for generating a pulse width modulation (PWM) carrier signal used by the driver <NUM> are generated by frequency-dividing clock signal Ck by a predetermined ratio using a frequency-dividing counter or the like. Note that <FIG> shows an example in which timing generator <NUM> generates servo computation startup signal Ssv so as to stabilize delay time tdl of servo computation startup signal Ssv with respect to communication timing signal St. In the first exemplary embodiment, delay time tdl is <NUM> ps.

When a clock signal for servo amplifier <NUM> is a free-running signal, a clock error or the like sometimes occurs due to manufacture variations of hardware. When a clock error or the like occurs, communication period Tcm does not sometimes become a perfect integer multiple of servo computation period Tsv. In contrast to this, in this exemplary embodiment, timing generator <NUM> is configured to generate clock signal Ck synchronized with a period of communication timing signal St. Accordingly, servo computation processes executed by the respective servo shafts coincide in startup timing.

Timing generator <NUM> then supplies servo computation startup signal Ssv synchronized with communication timing signal St to servo computation unit <NUM>. As described above, servo computation unit <NUM> executes servo computation processing in synchronism with a timing of servo computation startup signal Ssv. Accordingly, servo computation processes executed by the respective servo shafts coincide in timing.

Servo amplifier <NUM> is further provided with servo computation unit <NUM> and driver <NUM> to control an operation of motor <NUM>. In this case, motor <NUM> is, for example, a UVW three-phase brushless motor. That is, motor <NUM> is configured to include a stator having windings corresponding to the respective phases and a rotor holding a permanent magnet. Adding drive signals Vd with different phases to the respective windings of the stator will energize the windings. As a result, a current flows in each winding to rotate the rotor. Note that motor <NUM> may be a linear motor that directly performs linear position control of load <NUM>.

Servo computation unit <NUM> controls a position and a speed of motor <NUM> so as to perform drive control of motor <NUM>. Driver <NUM> energizes and drives the windings of motor <NUM>.

First of all, host apparatus <NUM> generates command data Rins as an operation command for each command update period Tins to cause servo amplifier <NUM> to control motor <NUM> in this manner. Host apparatus <NUM> notifies servo amplifier <NUM> of command data Rins including communication signal Cm for each communication period Tem. Communication unit <NUM> extracts command data Rins from received communication signal Cm, and supplies command data Rins to servo computation unit <NUM>. Command data Rins is data representing a command position and a command speed.

In this case, when, for example, host apparatus <NUM> supplies a position command instructing a rotor position, servo computation unit <NUM> performs the following operation so as to control a position of motor <NUM>. That is, servo computation unit <NUM> controls a rotating operation to cause an actual rotational position of the rotor of motor <NUM> to follow up a position command represented by command data Rins from host apparatus <NUM> by feedback control using detected position information from a position detector or the like.

In order to perform such feedback control, servo computation unit <NUM> executes the following computation processing. That is, first of all, for position control, servo computation unit <NUM> calculates a position deviation as a difference between a position command and detected position information from a position detector (not shown). In addition, for position control, servo computation unit <NUM> calculates a speed command by performing computation such as multiplying the position deviation by a position gain. Servo computation unit <NUM> also calculates a rotational speed of motor <NUM> by, for example, differential computation with respect to notified position detection information. In addition, servo computation unit <NUM> calculates a speed deviation as a difference between the calculated rotational speed and the speed command. Furthermore, servo computation unit <NUM> calculates a torque command corresponding to an amount of drive torque that tries to actuate motor <NUM> by performing proportion computation and integration computation with respect to the speed deviation, and supplies the calculated torque command as drive data Dd to driver <NUM>.

Driver <NUM> generates drive voltage Vd based on drive data Dd supplied from servo computation unit <NUM>. More specifically, driver <NUM> includes a pulse width modulation (PWM) circuit and an inverter formed from a switch element. Driver <NUM> generates pulse signals pulse-width-modulated by the PWM circuit in accordance with drive data Dd, and generates drive signal Vd by ON/OFF-controlling the switch element of the inverter based on the pulse signals. In this manner, driver <NUM> drives motor <NUM> by applying generated drive signal Vd to the winding corresponding to each phase.

Servo amplifier <NUM> in this exemplary embodiment includes history processor <NUM>, memory <NUM>, and memory controller <NUM> to sequentially extract and save data in processing by servo computation unit <NUM>, as described above.

In order to execute such history processing, first of all, communication signal Cm from host apparatus <NUM> includes communication command Ccmd associated with history processing, and communication unit <NUM> extracts communication command Ccmd associated with history processing and supplies the command to history processor <NUM>. Communication commands Ccmd associated with history processing include history processing data Hdt, save start command Star, and readout command Rhs.

In this case, history processing data Hdt includes save type information Isv of target data to be saved as a history, trigger type information Itr of target data to be used as a trigger to stop saving, and trigger level value Ith serving as a discrimination value for a trigger. Save type information Isv is information for designating, for example, a position deviation, a speed deviation, or a rotational speed as processing in servo computation unit <NUM>. Trigger type information Itr is also information for designating, for example, a position deviation, a speed deviation, or a rotational speed like command data Rins or save type information Isv as processing in servo computation unit <NUM>. Save start command Star is a command for instructing to start saving a history in memory <NUM>. Readout command Rhs is a command for instructing to start reading out data saved as a history in memory <NUM>.

History processor <NUM> executes processing associated with history saving in accordance with history processing data Hdt and save start command Star from communication unit <NUM>. History processor <NUM> refers to save start command Star. If save start command Star indicates a start of saving, history processor <NUM> starts processing associated with history saving.

History processor <NUM> includes trigger processor <NUM>. Trigger processor <NUM> is provided to stop processing associated with history saving. Trigger type information Itr, trigger level value Ith, and the like included in history processing data Hdt are supplied to trigger processor <NUM>. Trigger processor <NUM> acquires type data represented by trigger type information Itr as trigger data Tr from servo computation unit <NUM>. In addition, trigger processor <NUM> compares trigger data Tr with trigger level value Ith. When trigger data Tr exceeds trigger level value Ith, trigger processor <NUM> stops processing associated with history saving.

Trigger processor <NUM> outputs save start signal Str and save stop signal Stp to memory controller <NUM> to start and stop processing associated with history saving. That is, trigger processor <NUM> outputs save start signal Str based on save start command Star. In addition, trigger processor <NUM> outputs save stop signal Stp based on a comparison between trigger data Tr and trigger level value Ith described above. Memory controller <NUM> permits writing in memory <NUM> at a save start timing of save start signal Str, and inhibits writing in memory <NUM> at a save stop timing of save stop signal Stp.

Concurrently with processing by trigger processor <NUM>, history processor <NUM> acquires type data represented by save type information Isv as history data Sv from servo computation unit <NUM>, and supplies the acquired data as write history data Wsv to memory <NUM>.

When history processor <NUM> executes the above operation, history data Sv from a start of saving to a stop of saving is stored in history area <NUM> as a computation history save area of memory <NUM> for each servo computation period Tsv.

More specifically, for example, history processor <NUM> operates as follows. Assume that save type information Itr for designating save target data is "position deviation", trigger type information Isv for designating trigger target data is "rotational speed", and trigger level value Ith is "<NUM> rpm". In this case, history processor <NUM> executes the following processing. That is, history processor <NUM> acquires position deviation data in servo computation unit <NUM> as history data Sv. History processor <NUM> then records position deviation data acquired as history data Sv as a history in memory <NUM> for each servo computation period Tsv until a rotational speed as trigger data Tr reaches <NUM> rpm as trigger level value Ith.

In particular, although described in detail later, servo amplifiers <NUM> are configured concerning save stopping operations in this exemplary embodiment such that servo amplifier <NUM> that has detected a trigger first operates differently from other servo amplifiers <NUM>. According to the exemplary embodiment, adopting such an arrangement will finally match timings of acquiring history data Sv of servo amplifiers <NUM> each other.

When a readout instruction is issued based on readout command Rhs, history processor <NUM> reads out a group of history data Sv saved in memory <NUM> as readout history data Rsv and transfers the data to communication unit <NUM>. Communication unit <NUM> transmits the data as communication response Crsp to host apparatus <NUM>.

A detailed operation of the servo system according to this exemplary embodiment will be described next, with a focus on a flow of data between host apparatus <NUM> and each servo amplifier <NUM>.

As described above, communication signal Cm including communication command Ccmd and communication response Crsp is transmitted between host apparatus <NUM> and each servo amplifier <NUM>. Communication command Ccmd is data transmitted from host apparatus <NUM> to each servo amplifier <NUM>. Communication response Crsp is data returned from each servo amplifier <NUM> to host apparatus <NUM>. Communication command Ccmd is transmitted from host apparatus <NUM> and reach each servo amplifier <NUM> via communication line <NUM>. In addition, communication response Crsp is returned from servo amplifier <NUM> and reaches host apparatus <NUM> via communication line <NUM>.

Communication command Ccmd is transmitted from host apparatus <NUM> to each servo amplifier <NUM> at time ta, as shown in <FIG>. Communication command Ccmd includes an individual instruction corresponding to each of servo amplifiers <NUM>, <NUM>, and <NUM>. The communication unit of each servo amplifier <NUM> checks acquired communication command Ccmd, refers first to a shaft address for identifying each servo amplifier <NUM>, and extracts communication command Ccmd as an instruction issued to servo amplifier <NUM> itself.

First of all, at time ta, communication command Ccmd issued to each servo amplifier <NUM> is set with respect to communication unit <NUM> in host apparatus <NUM>. In this case, time ta is a timing when command update period Tins and communication period Tcm of communication unit <NUM> are updated.

At time tb, communication unit <NUM> simultaneously transmits communication commands Ccmd to communication unit <NUM> of each of servo amplifiers <NUM>, <NUM>, and <NUM>. In this case, time tb is a timing when communication period Tcm between communication unit <NUM> and communication unit <NUM> and servo computation period Tsv of each servo amplifier <NUM> are updated.

Subsequently, each servo amplifier <NUM> that has received communication command Ccmd identifies communication command Ccmd issued to servo amplifier <NUM> itself with the shaft address. Each servo amplifier <NUM> executes servo computation processing based on each identified communication command Ccmd.

Communication response Crsp is returned from each servo amplifier <NUM> to host apparatus <NUM> at time td, as shown in <FIG>.

First of all, at time td, communication response Crsp is set as a response to host apparatus <NUM> with respect to communication unit <NUM> in each servo amplifier <NUM>. In this case, time td is a timing when servo computation period Tsv of each servo amplifier <NUM> and communication period Tcm of communication unit <NUM> are updated.

At time te, communication unit <NUM> transmits communication response Crsp to communication unit <NUM> of host apparatus <NUM>. Communication response Crsp is information obtained by combining communication responses in respective servo amplifiers <NUM>. In this case, time te is a timing when communication period Tcm between communication unit <NUM> and communication unit <NUM> and command update period Tins are updated.

The respective communication responses are sometimes set with respect to communication units <NUM> in respective servo amplifiers <NUM> at time tc. In this case, at time td, each communication unit <NUM> is ready to transmit communication response Crsp to communication unit <NUM> of host apparatus <NUM>. However, time td is not a timing when communication period Tcm of communication unit <NUM> and command update period Tins are updated. Accordingly, at time td, each communication unit <NUM> does not transmit communication response Crsp to host apparatus <NUM>. Subsequently, each communication unit <NUM> transmits communication response Crsp to host apparatus <NUM> at time te as a timing when communication period Tcm of communication unit <NUM> and command update period Tins are updated.

Following the above procedure, host apparatus <NUM> and each servo amplifier <NUM> transmit and receive data to and from each other.

When the servo system is formed from a ring network topology, communication commands are transmitted to the respective servo amplifiers in an order in which the servo amplifiers are connected to the host apparatus. Likewise, communication responses are transmitted to the host apparatus in an order in which the host apparatus is connected to the respective servo amplifiers. That is, the servo amplifier located on the last stage is the one that can acquire communication responses transmitted from all the servo amplifiers.

Alternatively, when the servo system is formed from a line network topology, each servo amplifier acquires communication responses transmitted from the remaining servo amplifiers at a timing when a communication period is updated, regardless of an order of connection. For example, in this exemplary embodiment, a timing when communication period Tcm is updated is time ta, time tb, time tc, time td, or time te shown in <FIG>.

Servo system <NUM> according to this exemplary embodiment can obtain conspicuous function effects by using a line network topology. Accordingly, the following description will be made on the assumption that servo system <NUM> uses a line network topology.

<FIG> shows data configurations of communication command Ccmd and communication response Crsp used in the servo system according to the exemplary embodiment of the present invention.

Configurations of communication command Ccmd and communication response Crsp will be described with reference to <FIG>, together with processing of saving history data Sv as servo computation information in memory <NUM>.

Host apparatus <NUM> transmits communication command Ccmd focused on one shaft, that is a command for one servo shaft like that shown in <FIG>, to servo amplifier <NUM>. Servo amplifier <NUM> transmits communication response Crsp to host apparatus <NUM>.

As shown in <FIG>, communication command Ccmd includes data and commands associated with history saving and history readout in history processor <NUM>. Data for history saving include the following data like those described above. That is, the data include save type information Itr for specifying a target to be saved in memory <NUM>, save start command Star for instructing to start saving in memory <NUM>, trigger target information Itr for specifying a target to be used for trigger processing, and trigger level value Ith indicating a level of a trigger used for trigger processing.

Data for history readout include readout command Rhs for instructing readout and readout data number ri for designating data to be read out from memory <NUM>. In this case, according to this exemplary embodiment, readout data number ri is a number indicating a sequence number in a descending order from latest saved data. That is, in the exemplary embodiment, readout data number ri of <NUM> designates latest saved data, and readout data number ri of <NUM> designates data saved in memory <NUM> immediately before the latest saved data. Employing such setting allows host apparatus <NUM> to read out readout history data Rsv in chronological order from latest readout history data Rsv without designating any address in memory <NUM>. In addition, host apparatus <NUM> can read out data starting from latest readout history data Rsv and hence can read out latest readout history data Rsv corresponding to the same time point from servo amplifiers <NUM>, <NUM>, and <NUM>, thereby matching time axes of a group of history data Sv saved in memories <NUM> of servo amplifiers <NUM>.

Communication unit <NUM> of each servo amplifier <NUM> transmits readout history data Rsv read out from memory <NUM> in this manner as readout data Rsv(ri) to host apparatus <NUM> as indicated by communication response Crsp in <FIG>.

As described above, history data Sv that is servo computation information specified by save type information Itr is saved in memory <NUM>. History data Sv is part of control data used for servo computation processing. A content of history data Sv, such as a current motor position or current motor speed, is determined by save type information Itr in advanced. Servo computation unit <NUM> executes servo computation processing.

Communication command Ccmd transmitted from host apparatus <NUM> includes save start command Star together with save type information Itr.

In order to save history data Sv in memory <NUM>, host apparatus <NUM> transmits save start command Star to each servo amplifier <NUM> in same communication period Tcm.

Note that external apparatus <NUM> may transmit save start command Star to each servo amplifier <NUM> via I/F unit <NUM> of host apparatus <NUM>.

One communication command Ccmd includes an operation command, trigger target information Itr, and trigger level value Ith in addition to save start command Star. Communication response Crsp corresponding to one shaft and returned in response to communication command Ccmd includes a shaft address echo, an operation command echo, a trigger detection flag, a save start command echo, a trigger setting state Str, and a readout command echo, in addition to save type information Itr. As history data Sv designated by save type information Itr, information calculated by latest servo computation processing is used.

Trigger set state Str is binary information. When, for example, trigger target information Itr and trigger level Ith are set in servo amplifier <NUM>, trigger set state Str is set to "<NUM>" indicating that trigger processing is set. Otherwise, that is, when trigger target information Itr and trigger level Ith are not set in servo amplifier <NUM>, trigger set state Str is set to "<NUM>" indicating that trigger processing is not set.

Checking trigger set state Str included in communication response Crsp allows host apparatus <NUM> or external apparatus <NUM> to determine whether trigger target information Itr and trigger level Ith are properly set in each servo amplifier <NUM>.

When history processor <NUM> receives save start command Star, servo amplifier <NUM> saves history data Sv used in servo computation processing executed at a timing after the reception in history area <NUM>[m] (where m is an integer) allocated in memory <NUM>.

Note that "m" of history area <NUM>[m] corresponds to an address in memory <NUM>, and first data is saved in history area <NUM>[<NUM>]. Subsequently, sequentially computed results are sequentially saved in history area <NUM>[<NUM>], history area <NUM>[<NUM>],. in the order named. That is, mth data is saved in history area <NUM>[m].

Eventually, an area in which history data Sv is saved in memory <NUM> reaches "m", that is, an upper limit count. In this case, (m + <NUM>)th history data Sv is overwritten in history area <NUM>[<NUM>]. Subsequently, (m + <NUM>)th history data Sv are sequentially overwritten in history area <NUM>[<NUM>], history area <NUM>[<NUM>],. in the order named. In this manner, history areas <NUM>[m] according to this exemplary embodiment constitute a so-called ring buffer memory.

An operation of trigger processor <NUM> will be described next.

Trigger processor <NUM> sets trigger conditions based on trigger target information Itr and trigger level value Ith from communication command Ccmd, and instructs memory <NUM> to stop saving history data Sv based on a comparison between trigger data Tr designated by trigger target information Itr and trigger level value Ith.

<FIG> is a graph showing an example of trigger condition setting and trigger detection. <FIG> shows an example in which "rotational speed" is set as trigger target information Itr, and rotational speed data corresponding to "rotational speed" is extracted as trigger data Tr from servo computation unit <NUM>. As shown in <FIG>, trigger processor <NUM> determines, for each servo computation period Tsv, whether trigger data Tr has exceeded trigger level value Ith. When trigger conditions are set based on trigger target information Itr and trigger level value Ith described above, as shown in <FIG>, it is determined, for each servo computation period Tsv, whether, for example, trigger data Tr such as a current motor speed is more than or equal to trigger level value Ith.

<FIG> shows a case in which a value of trigger data Tr increases for each servo computation period Tsv. When trigger data Tr becomes more than or equal to trigger level value Ith, trigger processor <NUM> sets binary information "<NUM>" as a determination result indicating that a trigger is detected in trigger detection flag Ftr included in communication response Crsp.

A save stop operation concerning history data Sv will be described next with reference to <FIG>. Assume that in the following description, when trigger data Tr becomes more than or equal to trigger level value Ith, a trigger is detected.

Servo amplifier <NUM> that has detected a trigger first differs in save stop operation concerning history data Sv from other servo amplifiers <NUM>. Accordingly, an operation of servo amplifier <NUM> that has detected a trigger first will be described first. Note that the former is defined as operation <NUM> of stopping saving, and the latter is defined as operation <NUM> of stopping saving. <FIG> shows a case in which first servo amplifier <NUM> has detected a trigger first, and second servo amplifier <NUM> and third servo amplifier <NUM> are other servo amplifiers <NUM>.

Operation <NUM> of stopping saving will be described first.

When trigger processor <NUM> of first servo amplifier <NUM> detects a trigger at time tf shown in <FIG>, trigger processor <NUM> keeps calculating a hold count until a timing of instructing to stop saving history data Sv in memory <NUM>. That is, servo amplifier <NUM> that has detected a trigger first stops saving history data Sv after saving the data by a hold count described next instead of immediately stopping saving history data Sv. This hold count is obtained by the following equation, assuming that information indicating a specific sequence number of current servo computation period Tsv in communication period Tcm is defined as a trigger detection period number. hold count = (<NUM> x communication period/servo computation period - trigger detection period number + <NUM>), where digits after the decimal point are dropped.

In an example in <FIG>, a hold count is calculated as follows. hold count = <NUM> x <NUM>/<NUM> - <NUM> + <NUM> = <NUM> (where digits after the decimal point are dropped).

The calculated hold count is decremented by "<NUM>" for each servo computation period Tsv after time tf when a trigger is detected. Subsequently, in servo computation period Tsv at time th when the hold count becomes "<NUM>", trigger processor <NUM> of servo amplifier <NUM> that has detected a trigger instructs memory <NUM> to stop saving history data Sv, thereby stopping saving history data Sv.

Operation <NUM> of stopping saving will be described next.

An operation of trigger processor <NUM> in each of second and third servo amplifiers <NUM> and <NUM> other than the first servo amplifier <NUM> that has detected a trigger first will be described.

Trigger detection flag Ftr updated by trigger processor <NUM> of first servo amplifier <NUM> at time tf in <FIG> is transmitted as communication response Crsp at time tg to communication unit <NUM>. Communication response Crsp is transmitted as communication response Crsp to each of second and third servo amplifiers <NUM> and <NUM> at time th. In this case, time th is a timing when communication period Tcm of communication unit <NUM> and servo computation period Tsv of each servo amplifier <NUM> are updated. Trigger processor <NUM> of each of second and third servo amplifiers <NUM> and <NUM> determines, based on trigger detection flag Ftr included in communication response Crsp transmitted via first servo amplifier <NUM>, whether another servo amplifier <NUM> has detected a trigger. Upon determining that another servo amplifier <NUM> has detected a trigger, trigger processor <NUM> instructs memory <NUM> of the self shaft to stop saving history data Sv, and then the saving history data Sv is stopped.

Assume that operation <NUM> of stopping saving is assigned higher priority than operation <NUM> of stopping saving in terms of control. This is because, when, for example, third servo amplifier <NUM> detects a trigger at time tg, third servo amplifier <NUM> actually stops saving at a timing of time ti according to operation <NUM> of stopping saving. In this case, time tg corresponds to an interval in which first servo amplifier <NUM> detects a trigger at time tf and the corresponding information is not transmitted to other servo shafts. In contrast to this, when operation <NUM> of stopping saving is assigned higher priority, third servo amplifier <NUM> can instruct memory <NUM> of the self shaft to stop saving history data Sv based on trigger detection flag Ftr transmitted at a timing of time th, and then saving of history data Sv is stopped.

The above operation of trigger processor <NUM> matches a timing of stopping saving history data Sv in each of the first, second, and third servo amplifiers <NUM>, <NUM>, and <NUM> with time th. This provides an effect of matching time axes of respective history data Sv.

Readout of information saved in memory <NUM> of servo amplifier <NUM> will be described next with reference to <FIG> and <FIG>.

Host apparatus <NUM> issues a readout instruction to each servo amplifier <NUM> via communication unit <NUM> to read out history data Sv saved in memory <NUM>.

In practice, host apparatus <NUM> transmits readout command Rhs and readout data number ri for designating history data Sv as a readout target.

Note that readout command Rhs and readout data number ri may be transmitted from external apparatus <NUM> via host apparatus <NUM> by using I/F unit <NUM>.

Upon receiving readout command Rhs and readout data number ri, servo amplifier <NUM> reads out designated history data Sv from designated history area <NUM>[m] in accordance with a content designated by readout data number ri. Subsequently, servo amplifier <NUM> returns history data Sv as readout data Rsv(ri) to host apparatus <NUM> via communication unit <NUM>.

A method of designating history area <NUM>[m] will be described by presenting an example.

Assume that readout data number ri of <NUM> corresponds to latest history data Sv. In this case, servo amplifier <NUM> returns data in history area <NUM>[i] in which last data is saved.

Assuming that readout data number ri of <NUM> corresponds to data immediately before a latest state corresponding to readout data number ri of <NUM>, data in history area <NUM>[i - <NUM>] is returned.

Data subjected to save stopping can be used by the following method.

History data Sv included in each servo shaft is read out from history area <NUM>[i]. Readout history data Sv is read out by host apparatus <NUM> via communication unit <NUM>. Readout history data Sv can be used for adjustment of a servo gain.

Readout from host apparatus <NUM> to outside the servo system can be used by the following method.

Host apparatus <NUM> is connected to external apparatus <NUM> such as a personal computer.

For example, host apparatus <NUM> and external apparatus <NUM> can be connected via I/F unit <NUM> as an external serial communication means complying with a standard such as RS232C or USB. History data Sv read in external apparatus <NUM> can be used on external apparatus <NUM> by being graphically represented.

Alternatively, each servo amplifier <NUM> and external apparatus <NUM> can sometimes be connected to each other directly via a USB terminal provided for servo amplifier <NUM> by using a USB cable or the like. In this case, history data Sv is directly read out from external apparatus <NUM> via the USB cable.

As described above, the arrangement of this exemplary embodiment allows even a servo system in which host apparatus <NUM> has no means for issuing an instruction to stop saving history data Sv to acquire history data Sv whose time axes coincide with each other. Accordingly, the servo system according to the exemplary embodiment can analyze in detail mutual influences of a plurality of servo shafts controlled by the respective servo amplifiers.

<FIG> is a timing chart showing timings in a conventional arrangement as a comparative example in <FIG>. Differences between the conventional arrangement and the arrangement of this exemplary embodiment will be described below with reference to <FIG>.

In the comparative example in <FIG>, upon detecting a trigger at time tj, servo amplifier <NUM> notifies host apparatus <NUM> of a trigger detection flag at time tk. In this case, host apparatus <NUM> instructs all servo amplifiers <NUM> to stop saving history data Sv in a servo computation period at time tl. In this case, an instruction to stop saving history data Sv is transmitted to servo amplifier <NUM> upon detection of a trigger with a delay corresponding to a time of <NUM> servo computation periods.

In contrast to this, the arrangement according to this exemplary embodiment can issue an instruction to stop with a delay corresponding to a time of five servo computation periods since a servo computation period in which a trigger is detected, thus greatly speeding up a save stop timing of servo computation information as compared with the comparative example.

The trigger condition at time tf in <FIG> is replaced with a condition for detecting occurrence of an abnormality in the servo system, which can be detected by each servo amplifier, by applying the arrangement according to this exemplary embodiment, thereby changing the operation at time th from stopping saving history data to processing of stopping the motor. This change makes it possible to synchronize stop timings of motor operations of a plurality of servo shafts at the time of occurrence of an abnormality.

Consider a mechanism required to perform simultaneous operations of a plurality of servo shafts, such as a mechanism of a gantry arrangement. In this case, differences between stop timings of motors may cause twisting of a mechanism and damage to an apparatus. However, applying an application example of this exemplary embodiment can also obtain an effect of reducing twisting of a mechanism and damage to an apparatus.

Claim 1:
A servo system (<NUM>) comprising: a host apparatus (<NUM>); and a plurality of servo amplifiers (<NUM>), the host apparatus (<NUM>) and the plurality of servo amplifiers (<NUM>) transmitting and receiving a communication signal,
each of the servo amplifiers (<NUM>) including
a servo computation unit (<NUM>) configured to perform servo computation processing for each servo computation period (Tsv),
a communication unit (<NUM>) configured to transmit and receive the communication signal,
a storage unit (<NUM>) configured to save servo computation information in the servo computation processing as history data, and
a trigger processor (<NUM>) configured to set, in advance, a save stop condition for stopping saving the history data, determine, for each servo computation period (Tsv), whether the save stop condition is matched, and notify, when the save stop condition is matched, the communication unit (<NUM>) of a determination result indicating detection of a trigger as a trigger detection flag (Ftr), wherein
the communication unit (<NUM>) is configured to transmit a communication response (Crsp) including the trigger detection flag (Ftr) to the host apparatus (<NUM>),
each of the servo amplifiers (<NUM>) is configured to acquire the communication responses (Crsp) transmitted from other servo amplifiers (<NUM>) other than the servo amplifier itself,
the trigger processor (<NUM>) is configured to determine, based on the trigger detection flag (Ftr) included in the communication response (Crsp) transmitted via the other servo amplifiers (<NUM>), whether another servo amplifier (<NUM>) has detected the trigger.