ABB ACS880 VFD and RMC EtherCAT
The ABB ACS880 Velocity Frequency Drive supports the CiA402 drive profile and can be used with the RMC200.
See EtherCAT Velocity Frequency Drives for other EtherCAT VFDs.
Important: Delta Motion strongly recommends using the ACS800 with the ABB Position Control Program (+N5700 option). This option supports DCSync, fast position transfer, and position scaling. Even for applications that only need velocity control, this option provides improved operation.
Without the Position Control Program, the ACS880 standard firmware does not support DC Sync and has issues transferring position feedback over EtherCAT. The issues are (1) the position feedback master fastest transfer rate is 2 ms and (2)the position feedback wraps at 100,000,000 counts unconditionally. If you wish to use the ACS880 in this mode, it is advised to wire the load encoder directly to the RMC and potentially to the ABB drive as well.
The instructions below describe using the ACS880 with the Position Control Program (+N5700 option). Setting up the ACS880 with the Position Control Program is a bit challenging as the documentation has not been updated for this firmware at the time of this writing. Some of the instructions for the obsolete ACSM1 apply to the ACS880 with Position Control Program. The instructions below attempt to document all the changes that are required.
There are multiple parts to setting up the ACS880 for EtherCAT via CiA402.
Configuration in the ACS880
Set the objects below as described in order to configure the drive for CSV mode. After making the setting changes, restart the drive to make sure the changes apply.
19. Operation Mode (this appears to get set with 0x6060 via Init commands)
- 19.12 Ext1 control mode
- For CSV → Speed
- For CSP → Synchron
- For CST → Torque
20. Start/stop/direction
- 20.01 Ext1 commands → Fieldbus A: This tells the drive to ignore physical digital inputs (like a hardwired switch) for starting and stopping. Instead, it will look for the Run/Stop bits in the Control Word sent over EtherCAT.
22. Speed reference selection (CSV only)
- 22.11 Speed ref1 source → FB A ref1: This sets the specific source of the speed setpoint.
23. Speed reference ramp (CSV only)
- 23.11 Ramp set selection → Acc/Dec time 1: This tells the drive to use these times for ramping the velocity set point.
- 23.12/13 Acceleration & Deceleration Time → 0.000 s: These are critical settings for closing the position loop in the RMC. By setting these to zero, this tells the drive to follow the master’s profile instantly. This is used since the RMC is already performing the ramping.
26. Torque reference chain (CST only)
- 26.11 Torque ref1 source → FB A ref1: This sets the specific source of the torque setpoint.
50. Fieldbus Adapter (FBA)
These parameters manage the hardware interface between the drive and the EtherCAT network.
- 50.01 FBA A enable → Option slot 1: Activates the FECA-01 module installed in the drive’s first expansion slot. The EtherCAT module must be in the first expansion slot.
- 50.02 FBA A comm loss func → Fault: A safety setting. If the EtherCAT cable is unplugged or communication is lost, the drive will trigger a “Fieldbus Communication” fault and stop the motor immediately.
- 50.04 FBA A ref1 type
- For CSV → Speed: Ensures the drive transfers the speed setpoint at the “cyclic high rate” and that speed is controlled.
- For CSP → Load position: Ensures the drive transfers the position setpoint at the “cyclic high rate” and that position is controlled.
- For CST → Torque: Ensures the drive transfers the torque setpoint at the “cyclic high rate” and that torque is controlled.
- 50.07 FBA A actual 1 type → Load position: Ensures the drive transfers the load position at the “cyclic high rate”. This is in addition to mapping 0x6064 in the process data.
- 50.08 FBA A actual 2 type → Torque: Ensures the drive transfers the load position at the “cyclic high rate”. This is in addition to mapping 0x6077 in the process data. I noticed that 0x6077 was 0 until this was set.
- 50.21 Timelevel → Very fast: This setting tells the master to transfer the cyclic data between the drive and FECA-01 at the fastest rate the drive supports. This was also required to get the network to enter OP mode.
- 50.99 FBA automatic detection → Disable: Not sure that this is necessary, but is how I configured it.
86. Axis position
These parameters set how the position is scaled and also the source. They need to be set correctly to transfer the encoder feedback to the RMC. I recommend setting 86.13 Actual Position Source to the encoder you are using on the load. Then for either 86.11 or 86.12, set the increments per revolution equal to the single turn revolution resolution of your encoder. For my case, I have a 12x12 multi-turn SSI encoder connected to Encoder 1. These are the settings:
- 86.11 Enc1 increments per revolution → 4096
- 86.13 Actual position source → Encoder 1
87. Master position (CSP only)
- 87.10 Master increments per revolution → Must match 86.10/11/12: This tells the drive how the position reference is scaled. The RMC requires that the actual position and position reference are scaled the same.
- 87.11 Master reference source → FB A ref 1: This sets the specific source of the position setpoint. If in position mode, the drive will follow the reference value sent over EtherCAT.
96. System
- 96.35 Kernal sync mode → DDCS sync: Enables DC sync on the drive. This is in addition to enabling DC in the SubDevice configuration in the RMC.
Configuration in the RMC
- In the EtherCAT Editor, add the ABB drive to the EtherCAT Explorer. The Network Scan may not work if a matching revision ESI file is not found. If this is the case, use the ESI file that has the correct Vendor ID and Product Code. For my drive, I was unable to find a matching revision number. So instead, I added a drive that had the same product code and the closest revision number. That drive was named FECAT-01 and ACS880 Position. There were two drives with this name but different product codes, so I used the one with the matching product code.
- In the EtherCAT Editor, on the Distributed Clocks tab, enable DC in the drive (RMCTools side)
- In the EtherCAT Editor, on the PDO Mapping tab, select the PDOs that include: Status Word, Position actual value, Torque actual value, Control word. Also include one of Target velocity, Target torque, or Target position.
- On the Init Commands tab, add an Init command to download the appropriate mode of operation to 0x6060.
- In the Axis Definitions, create a Local Control axis in the RMC with feedback and output type of EtherCAT Drive.
- Scale the axis. The increments set in the 86. Axis Position object should be used here.
- The ABB drive doesn’t report the exact encoder value but instead has an offset. If absolute positioning is desired, use EtherCAT CoE SDO Read command to read 86.8 Actual Position Raw and use that to offset the axis correctly. This method works with SSI absolute encoders, but a similar method should work for other encoder types. I’m not sure when and how much the offset changes, but do know it changes.
- Calculate the target velocity scale. It is scaled by 608F Postion encoder resolution, subindex 01 Increments and 608F Postion encoder resolution, subindex 02 Revolutions.
- For example, with default values:
- 608F Postion encoder resolution, subindex 01 Increments = 65536
- 608F Postion encoder resolution, subindex 02 Revolutions = 1
- So an output 60FF of 65536 counts results in 1 rev/s.
- So to scale in RPM / count = (60 second / minute) (1 revolution / 65536 counts) = 0.0009155 RPM / count
- To change this scale, object 0x6094 can be also be used.
- For example, with default values:
- Set the target torque scale to 0.1. The torque is expressed in 0.1% of nominal torque, eg, value 10 = 10 1% torque. I don’t think this can be changed.
- If the output needs to be inverted, that can be done by changing the sign on the scale. Alternatively, 96.16 Motor Phase Order can be switched. If you switch the motor phase order, you will need to run the ID run again.
- The encoder feedback needs to move in a positive direction for a positive velocity for CSP mode to work. If it doesn’t, you will need to use 96.16 to reverse the motor phase order. If you reverse the motor phase order, you will need to run the ID run again.