Guilherme Semissatto
-
Posts
5 -
Joined
-
Last visited
Content Type
Profiles
Forums
Events
Downloads
Posts posted by Guilherme Semissatto
-
-
Dear steve.milici,
I saw the 'STO' section of the "Power Brick LV User Manual" and I got confused in 3 points.
1) Is the 'STO feedback' mentioned the same as 'STO Out (pin #1)'?
2) When you say "It is suggested to wire the STO feedback to input#1 of the Power Brick LV". Is the input#1 the Digital Input pin1 'X15: D-sub DC-37F'?
____
3) (Assumed STO feedback the same as STO Out)
It seems the 'recovering from the STO' suggested PLC code has mistakes in the conditionals sentences
OPEN PLC STOResetPLC
LOCAL Mtr1PrevI2TSet;
IF (Input1) // I think this should be 'IF (~(input1))' once STO Out has 0V in failured condition
// STO ENGAGED?
{
IF (Motor[1].I2tSum > 0)
// I2T CHARGED?
{
KILL 1
Mtr1PrevI2TSet = Motor[1].I2TSet
DO {Motor[1].I2tSet = 0} WHILE (Motor[1].I2tSum > 0)
Motor[1].I2TSet = Mtr1PrevI2TSet
}
WHILE(Input1){} // Same here
}
Thanks in advance,
Guilherme
-
Hi @curtwilson
Thank for your answer, it was really helpful
Now I can drive the brushless.
0. I set the PowerBrick.EncClockDiv = 0
1. Skipped the open loop test
2. Did a Manual Phasing with IbBias
3. Finally, I tuned the servo with very low gains due to high encoder resolution
PMAC software is handling the rollover of the encoder counter very well, I don't see any problem in commutation as I expected before.
---
At this time, I'm trying to fine tune the motor
With an x1.000 interpolation @4MHz digital encoder interface I could achieve 2 counts (0.26 urad - peak to peak) in-position stability
But with an x10.000 interpolation @50MHz digital encoder interface the max in-position stability I could achieve was 50 counts (6.7 urad - peak to peak) in-position stability, with the higher interpolation the expected in-position stability is 0.026 urad.
Do you think the higher encoder clock frequency (which the hardware doesn't sample robustly) is causing this behavior?
-
I think the cause of the problem is the high encoder resolution.
The encoder has 236.000.000 counts/rev, it means that the PowerBrick[0].Chan[0].ServoCapt will overflow a lot of time during the operation.
PowerBrick[0].Chan[0].ServoCapt has 256 times the encoder resolution, i.e., 236.000.000*256 = 60416000000 counts/rev! Thus, 32 bits aren't enough (log2(60416000000) = 35.8), so I can see many overflows during the commutation.
Plotting the Motor[].PhasePos I could see just 0 and 2048 (saturated values).
How can I handle this?
Thanks
-
Hello all
I'm trying to drive a PMSM rotary stage, but the open loop test fails.
The motor is an Aerotech Motor Type: S-180-69-A
- Rated Speed: 500 rpm
- Inductance 1.7mH
- Resistance 4.4Ohm
- 18 poles (9 pairs)
- Continuous Current Stall: 5.1 Apk.
The encoder is a Tonic Renishaw 23.600 Line wave with an x10.000 digital interface which gives 236.000.000 counts/rev.
I have been following step-by-step the Manual Brushless setup of the PowerBrick LV User Manual.
For while I could successfully do:
- current loop step (please see attachment)
- setup and read the encoder. (I manually turned 360° the motor and I could see the 236.000.000 counts on Motor[].ActPos)
- Stepper Phasing (After the Stepper phasing the Motor[].PhaseFound = True)
- Hall phasing
Even with the steps above I can't the see sawtooth expected wave (please see attachment the open loop test result). It seems the motor locks up to a phase.
I have tried all the manuals troubleshooting tips, but I can't see the sawtooth anyway.
The Motor[].PhasePosSf is configured as below
---
GLOBAL NoOfPolePairsMtr1 = 9; // Motor1 Number of Pole Pairs – User Input
GLOBAL CountsPerRevolutionMtr1 = 236000000; // Motor1 Encoder counts per Revolution - User input
Motor[1].pPhaseEnc = PowerBrick[0].Chan[0].PhaseCapt.a
Motor[1].PhaseEncLeftshift = 0
Motor[1].PhaseEncRightshift = 0
Motor[1].PhasePosSf = 2048 * NoOfPolePairsMtr1 / (256 * CountsPerRevolutionMtr1)
---
Attached is all the project files and the scripts used (.pmh files, StepperPhasingPLC, HallPhasingPLC, etc.)
What may am doing wrong?
Thanks in advance
Selective Motor AbortAll
in Power PMAC
Posted
Is it possible to select which motor will be affected when the Power PMAC receives an "abort all" input?
I'm working in a system that has an air pressure bearing with a reed switch (Normally Closed contact). When the pressure goes down I must kill 1 of the 8 axes which the PowerPMAC is driving. The others must be able to move.
I thought about a PLC program polling a Digital Input, but I'm concerned about IEC machine safety standards, this is why I prefer to handle the Abort Pin.
So what I'm choosing is a .pmh file which set tup 2 coordinates systems. One CS which will be affected by abort pin and the other one not affected as below:
--------------------------------------------------------------------------------------
global_definition.pmh
undefine all
//setup CS1
&1
#1 -> X
//setup CS2
&2
#2 -> X
#3 -> A
#4 -> XX
#5 -> YY
#6 -> ZZ
#7 -> U
#8 -> V
Sys.pAbortAll = PowerBrick[0].GpioData[0].a
Sys.AbortAllBit = 31
Sys.AbortAllLimit = 5
Coord[1].AbortAllMode = 1 // CS1 motors killed after abortAll
Coord[2].AbortAllMode = 3 // CS2 dont affected by abortall
--------------------------------------------------------------------------------------
Is there a better way to do this?