Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
ECT floating point read setup
#1
In following the instructions in the Cascading Servo Loops section and Encoder Conversion Table Setup in the Power PMAC Users Manual, I have had a problem entering the information for an outer loop motor driving an inner loop of a cascade control using an ECT entry.
For ECT entry number 10 and the outer loop motor = #1
Type = “Floating-point read”

After entering in PowerPMAC Structure:
pEnc = Motor[1].IqCmd.a
pEnc1 = blank
ScaleFactor = 1/256,
Index6 = 0

Detailed ECT Setup left at defaults:
First Entry = 1, ScaleFactor = 1.0,
Second entry = 2, No integrate, None

When trying to download, we get the error “Invalid number entered for integer input. First correct the entered value in box before downloading.”
We’ve tried a lot of different combos to get rid of this message. Could you please clarify what needs to be entered on each page of this ECT setup?
Attached is the error message.


Attached Files Image(s)
   
Reply
#2
You can set the encoder up with manual settings. I used the settings below.

Code:
EncTable[5].type = 11
EncTable[5].pEnc = Motor[1].IqCmd.a
EncTable[5].index1 = 5
EncTable[5].index2 = 0
EncTable[5].index3 = 0
EncTable[5].index4 = 0
EncTable[5].index5 = 255
EncTable[5].index6 = 0
EncTable[5].ScaleFactor = 1 / (256 * (EncTable[5].index5 + 1) * EXP2(EncTable[5].index1))
Motor[5].ServoCtrl = 1

You can probably get better results with an actual force sensor.
Reply
#3
Thanks for the guidance, Eric.
I set up a virtual motor with the configuration (Motor_1_AngleSensor.txt) that scales the output in degrees. A few EncTable parameters were added to those you suggested and the encoder configuration (Encoder_AngleSensor.txt) was used to integrate the motor output for the angle control. Because of a different physical encoder setup, we no longer required the exponential filter that was on the virtual motor's output encoder. Cascade control is switched on and off with the MasterCtrl signal on the inner loop motor.


Attached Files
.txt   Encoder_AngleSensor.txt (Size: 1.21 KB / Downloads: 6)
.txt   Motor_1_AngleSensor.txt (Size: 5.91 KB / Downloads: 5)
Reply
#4
I'm glad that's working for you.
Reply
#5
HI, Geoff, I have some doubts about the settings;
First of all, the index of the EncTable you defined is 10; but the index of the EncTable selected by your motor is 6? Can this match?
Secondly, the data of your motor feedback comes from ECAT's IO data, I guess this is sensor data.
Geoff, if it is convenient, attach the complete plan to facilitate our study.

EncTable[10].type = 11
// Source register address: Motor control output register (FP)
EncTable[10].pEnc = Motor[1].IqCmd.a
// Data shifting operation: 5 = left shift this many bits (32 - bits of actual data)


// Command output pointer
Motor[1].pDac=Sys.pushm
// Outer (position) loop position feedback pointer
Motor[1].pEnc=EncTable[6].a
// Inner (velocity) loop position feedback pointer
Motor[1].pEnc2=EncTable[6].a

Motor[1].pAbsPos=ECAT[0].IO[4102].Data.a
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)