Answer: |
Refer to the attachment, or the text below.
PRELIMINARY: - Start with AN.MTN.02 “Best Practices Using Yaskawa EtherCAT Drives”.
- Obtain the user’s manuals listed in the Appendix of AN.MTN.02.
- Although the information below may exist in other documents, the following addresses commonly asked questions.
ESI File Usage: - The Master interface may or may not require the Yaskawa drive ESI file.
- If the Master interface does not utilize the ESI file, the Yaskawa drive’s manufacturer specific objects may not be visible to be read or written (example: SGDV Yaskawa drive parameters, like object 250Ah “Input Signal Selection 1”).
- The Master documentation should indicate where the ESI file must be loaded for the master to read the file.
- For SGDV, loading the PDO map (CoE objects 1600h-1603h and 1A00h-1A03h) from the device will allow assigning 2 PDO maps per Sync Manager PDO Assignment Object (CoE objects 1C12h and 1C13h), allowing a total of 16 objects Tx and 16 objects Rx.
COMMUNICATIONS: IN/OUT Ports: - Proper EtherCAT topology mandates that the Ethernet cable from the Master must be plugged into the IN port of the first slave device. The OUT port of the first slave must be plugged into IN port of next slave, and so on.
- If this mandate is not followed, communication errors may occur resulting in poor motion. Refer to Yaskawa.com document number SRV-R91T82.
Distributed Clock Setting: - See Yaskawa.com document number AN.MTN.01 for usage and settings of DC.
- For SGDV, the DC mode may be verified by reading “Synchronization Type” (CoE object 1C32:01), or by reading SigmaWin Motion Monitor “1C32h:01:Synchronization type”.
- 1C32:02 = 0 means Free Run (DC disabled)
- 1C32:02 = 2 means DC Mode (Synchronous with Sync0)
Addressing: - The EtherCAT master might not support automatic addressing, which means setting drive addresses would be required.
- Because the Yaskawa drive has two 16-position rotary switches, the number of Yaskawa axes possible on one EtherCAT network is 256.
Cycle Time: - For SGDV, the Yaskawa drive supports communication cycle times ranging from 125us to 4ms, with 125us increments.
- To select optimal cycle time for the application, refer to AN.MTN.01.
Hot Connect: - The Yaskawa drive works with Hot Connect, tested with TwinCAT. The process information for the hot connect slave is separated into a different packet, rather than being grouped together in 1 packet with the rest of the slaves. This has been evidenced using Wireshark to trace the network data.
CiA DSP402 (also in CoE) State Machine: - The Yaskawa drive follows the EtherCAT CiA DSP402 state machine, and is also shown in the user’s manual (for SGDV, SIEPC72082904, chapter titled “Device Control”). Not all drive vendors follow the state machine. For example, another drive vendor’s servos may be enabled when the EtherCAT state reaches Operational state. This does not follow the CiA DSP402 state machine published by the EtherCAT organization.
- The following items have been found to prevent or slow the state machine transitions:
- HWBB – When the drive is in HWBB state, the CiA DSP402 state machine will not transition to “Ready To Switch On”. Refer to the topic “HWBB” in this FAQ (In the “Drive Features” subsection).
- Linear Motors with Pn080 = xxx1 (force pole detection) – This setting will prevent the state machine from changing to “Operation Enabled” for a few seconds while pole detection is being performed. However, pole detection only needs to occur once per power up.
Missed/Lost/Dropped Packets, and Noise: - If the application misses packets using the known working master described in AN.MTN.03, and changing machine design to reduce EMI or other countermeasures described in Yaskawa.com FAQ# SRV-R91T82 is not desirable, consider using the MECHATROLINK network and enable the “Data Retry” feature.
- This feature re-sends data that has been corrupted, in the same communication cycle.
- Contact your Yaskawa sales representative if there is interest in developing a MECHATROLINK application.
Maximum Cyclic Objects: - For the SGDV, a total of 16 Tx and 16 Rx objects is possible, with no limitation of number of bytes. Refer to the topic “ESI File Usage” in this FAQ for further information.
- To utilize 16 objects in each Sync Manager Assignment, assigning 2 PDO maps to each Sync Manager PDO Assignment Object (CoE objects 1C12h and 1C13h) must be supported by the master.
- Otherwise, the limit is 8 objects to each Tx and Rx (each Sync Manager PDO Assignment Object is assumed to support only 1 PDO map).
- If more than 16 Tx or 16 Rx objects is required for the application, refer to AN.MTN.01, section “Optimizing Cyclic Data”.
APPLICATION: Drive-Based Homing or Controller-Based Homing: - Drive-based homing will utilize the CoE Homing mode of operation (for SGDV, CoE object 6060h = 6). The “Position Actual Value” (for SGDV, CoE object 6064h) will be set to 0 on the home signal. The home signal (for SGDV, CoE object 6098h “Homing Method”) can be specified as the C-phase, OT, Home Switch, or use the current position as Home.
- Controller-based homing with the C-phase is not possible by the controller directly reading the C-phase. This is not a limitation of a drive, rather a preference of implementation because the network introduces delays which results in not precise latching of the C pulse. To latch the C-phase precisely, either use drive-based homing, or use the “Touch Probe Function” (for SGDV, CoE object 60B8h) to latch the C-phase position (for example, bit 2 of CoE object 60B8h).
- When using an absolute encoder, either use the cable with the battery built-in, or put a power source into the battery inputs into the drive inputs (for SGDV, CN1). Refer to the topic “Reading Full Absolute Position On Startup:” in this FAQ for details about reading “Position Actual Value” (for SGDV, CoE object 6064h) accurately.
- The “Home Offset” (for SGDV, CoE object 607Ch) can be used to set the motor’s position to zero (“Position Actual Value” (for SGDV, CoE object 6064h) will appear as 0).
- When the motor with an absolute encoder is first powered up (or if the battery has been disconnected from the encoder), the multi-turn must be initialized (reset), indicated by alarm A.810. This reset function is available through EtherCAT. Refer to the “SERVOPACK Adjusting Command” (for SGDV, CoE object 2710h). The Yaskawa configuration software SigmaWin can also perform the reset function. Yaskawa created a TwinCAT PLC function block (Yaskawa.com document number TM.SGDV.01) that can also perform the reset function. This function block library can be opened in TwinCAT to view the logic used to perform the reset.
I/O: - High-Speed Latch: 2 high-speed latch inputs are available to utilize. They must be assigned to the correct inputs of the drive (for SGDV, the drive has 7 inputs, 3 of which have hardware to support high-speed input). The defaults are assigned correctly, and the third assignment is the home switch default input (remove the home assignment from the input and assign the latch input if using the input for latch). To latch both the high and low signals, utilize both latch inputs and wire the signal into both inputs.
- General Purpose: The inputs and outputs (for SGDV, 7 inputs and 3 outputs) can be assigned as programmable inputs and outputs as opposed to their default assignments.
Modes Of Operation: - For SGDV, the Yaskawa servo drive supports servo-based modes of operation (see CoE object 6502h “Supported Drive Modes”). The non-servo-based mode is Velocity Mode, which is an Inverter-based command (the Yaskawa EtherCAT Inverters like A1000 and V1000 support Velocity Mode). Velocity Mode is not to be confused with Cyclic Synchronous Velocity (supported by the Yaskawa servo drive) and Profile Velocity (also supported by the Yaskawa servo drive).
DRIVE FEATURES: SGDV Tuning: - Default tuning out of the box uses “Tuningless” tuning mode.
- Default tuning with SigmaWin enables “Model Following Control”. In “Model Following Control”:
- A lag is introduced into the system. During this lag, the Yaskawa drive stores the commanded points so that it can apply precise motor power to achieve those positions.
- This contrasts to traditional servo control where the drive immediately applies motor power to try to move the encoder to the commanded position.
- The lag value itself is not a parameter, it is set by a series of parameters (Pn14x parameters). As long as the other axes have the correct inertia ratio, if all Pn14x parameters are set to the same value in all drives, then the lag will be the same time for all drives. The lag does not vary as long as parameters are not changed.
- The side effect of using this method of tuning is that the “Following Error Actual Value” (CoE object 60F4h) becomes very large (the “Position Actual Value” (CoE object 6064h) has a large deviation from “Position Demand Value” (CoE object 6062h)). “Following Error Actual Value” (CoE object 60F4h) is expected to be large when using Model Following Control, so this object “Following Error Actual Value” becomes misleading.
- Consider ignoring “Following Error Actual Value” (CoE object 60F4h) and implementing a controller-sided method of measuring following error (introduce a lag between the commanded position and the feedback position).
- In the case where the EtherCAT master does not provide an interface to assist with tuning the drives (and setting drive parameters), the Yaskawa drive configuration software SigmaWin may be used though USB connection (not through EtherCAT). Tuning though SigmaWin does not include controller-sided tuning such as setting “Velocity Offset” (for SGDV, CoE object 60B1h, also known as VFF – Velocity Feed Forward), or “Torque Offset” (for SGDV, CoE object 60B2h, also known as TFF – Torque Feed Forward).
- For choosing to use VFF/TFF on the drive or on the controller, this is depends on the application.
- For SGDV, although Pn217 (Average Movement Time of Position Reference) is stated as “reserved” in the Yaskawa drive’s user’s manual SIEPC72082904, it is in fact implemented, and can be used to implement S-Curve motion. Details about Pn217 can be found in the Yaskawa.com document number SIEPS80000045. Refer to Yaskawa.com document number SRV-LY43O3.
HWBB: - There is no method to directly determine if the drive is in “bb” state. However, if the following conditions are both true, then the drive can be concluded to be in “bb” state:
- CoE state is either “Switch On Disabled”, “Ready to Switch on”, “Switched on”. Read the StatusWord to determine CoE state.
- HWBB is not applied. Read the “Digital Inputs” (for SGDV, CoE object 60FD,) HWBB1 and HWBB2 bits.
Reading Full Absolute Position On Startup: - Because the following are true, the 32-bit value for Position may encounter rollover:
- CoE objects for the DSP402 profile are limited to 32-bits.
- The Yaskawa motor encoder is capable of 20-bits for some models.
- The Yaskawa motor encoder is capable of storing 16-bits of multiturn data.
- This means the Yaskawa drive may report position values up to 36 bits.
- Either set Pn205 “Multiturn Limit” to 4095 (thus “Position Actual Value” (for SGDV, CoE object 6064h) will rollover in 32-bits), or, implement a method to determine the precise value of the absolute position.
- Below is an example for SDGV:
- The target is to get the full 36-bit value of the “Position Actual Value” (thus, 1:1 user units)
- Change User Units to 2048:1.
- 0x2701:01 = 2048 “Numerator”
- 0x2701:02 = 1 “Denominator”
- Issue User Parameter Configuration for the new User Units to take effect.
- Write “1” to object 2700h.
- Wait in the program until 2700h reads back as “0”.
- Read “Position Actual Internal Value” (CoE object 6063h).
- Example: 5253220. This is in encoder counts, but the 32-bit rollover may have been imposed.
- Read “Position Actual Value” (CoE object 6064h).
- Example: 4196869. This includes user units, so this increments by 1 every 2048 encoder counts with user units as 2048:1. Because this value does not match the “Position Actual Internal Value”, the rollover has been imposed.
- Calculate the “Position Actual Value” without the 32-bit restriction for 1:1 user units:
- Example equation:
- [Scaling] x [6064h] + [6063h] - [Scaling] x floor( [6063h] / [Scaling] )
- Where
- [Scaling] = User Units = 2048/1
- [6063h] = 5253220
- [6064h] = 4196869
|