SDO Read / Write PAC to/from Compax3 I31

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

Related FAQ: How to View or Monitor any Object in Optimization (Activate Object Tree)

 

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).

sdo_tuning_3490-20240521-001116.jpg

 

From the C3 ServoManager online help:

stiffness_3491-20240521-001116.jpg

 

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:

SDO_C3_AnalogInput_Normalization.jpg

 

Write Analog Outputs

 

SDO_c3_AnalogOutputs.jpg

[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).

SDO_c3_readTorque.jpg

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:

c3_motorratedcurrent.jpg

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.

 

 

Note

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

SDO_Error.pdf

 

 

 

11/19/15jh