For objects that aren't part of the PDO cyclic data exchange on the EtherCAT cycle between the PAC and the Compax3, acyclic data exchange SDO is available to read & write.
This can be done within the PAC project with the functions smc3_etc_writeParameter_coe and smc3_etc_readParameter_coe
Write Tuning Gains
Here's a CFC snippet changing the Stiffness gain [2100.2] to value of 99. It is a U16 so it's 2bytes DataLength. The Index value is entered as 16# allowing hex value. (Without the 16#, the decimal value of 8448 would also be valid).
The object 2100.2 has a subindex of 2. This is written to one time when the Execute is triggered (rising edge).
From the C3 ServoManager online help:
Note this object is only Valid after VP. Thus the ValidParameter_Global [210.10] CANopen Index 0x2016.10 also needs to be set to a non-zero value. This allows multiple tuning gains to be changed and then only takes affect when the VP is triggered.
Note tuning gains will revert to previous values after cycling 24vdc C3 logic power unless a Write to Flash [20.1] CANopen Index 0x2017 is set to non-zero value. Note a flash write limit of 100,000 cycles as per C3 help.
Read Analog Inputs
Note the AnalogInput0 [685.3] CANopen 0x2025 and AnalogInput1 [685.4] CANopen 0x2026 are scaled based on the Normalization factor for voltages [200.3] If Normalization is 2 and the actual voltage is 2.45, the Value read back would be 245:
Write Analog Outputs
[634.4] 0x2019 and [635.5] 0x201A are Int16 thus range from 32767 to -32768 for +10 to -10vdc. This presumes the monitor outputs haven't already been set to monitor other items (such as speed, torque, current or position). By default after firmware 9-20, these are available to write to. See above link as reference. For 1:1 relationship, gain at 10vdc should be 32767.9 The C3.AnalogOutput0_ActualValue [634.3] is scaled by a factor of 10. In above link and image, writing 16383 sets this output to +5volt. This takes affect immediately (no VP).
Read Actual Torque / Current
The actual torque can be read with C3 object 683.13 (CANopen object 0x6077).
This is a USINT (16bit unsigned) so values can range from 0 to 65535, about 0 (so +-100 would be 100 to 65435).
This is "% rated current" divided by 100. This is the motor's rated current at rated speed. Within the C3ServoManager, this info is on the Motor screen in the I31T11 configuration:
For current: Multiply resultant by C3 ServoManager's Rated Current (at 230, 400 or 480vac). This is the motor's rated current at rated speed; this is not to be confused with the stall current (at 0 speed); the motor's rated current is lower at higher speed due to spinning losses.
The motor's rated positive current limit (in mA) is 688.33 (CANopen object 0x2507.2)
The motor's rated negative current limit (in mA) is 688.34 (CANopen object 0x2507.3)
For torque: Multiply resultant by C3 ServoManager's Rated Torque (at 230, 400 or 480vac). This is the motor's rated torque at rated speed; this is not to be confused with the stall torque (at 0 speed); the motor's rated torque is lower at higher speed due to spinning losses.
The rated torque can be read by C3 object 670.9 (CANopen object 0x6076) and is in mNm (or mN for linear motors).
The max torque limit is C3 object 402.7 (CANopen object 0x6072).
Write Actual Torque / Current Limits
C3 object 402.3 (CANopen object 0x200B) is the current limit (positive).
C3 object 402.4 (CANopen object 0x200C) is the current limit (negative).
Users can write to these as well as reading these. However, they do require a Validate Parameter (VP).
See above Read Actual Torque / Current for relationship of torque & current.
The Compax3-I31 object needs to have a CANopen number assigned to this as part of the firmware in the C3.
ex Analog Input0 [685.3] is CANopen Index 0x2025 from the C3 ServoManager online help:
C3 EtherCAT Object List: C3-i31_object.xlsx