Jump to content
OMRON Forums

chrisb

Members
  • Posts

    16
  • Joined

  • Last visited

Posts posted by chrisb

  1. I'm trying to determine if the power requirement listed in the PowerBrick Controller manual includes the current when all outputs are driving a load. It lists logic power as 24V 5A, but does not mention outputs.

     

    On the related topic, how much current are the outputs on the PowerBrick Controller capable of sourcing/sinking? I have some 100 mA loads that I would like to drive with the sourcing outputs directly, but I can't find much info in the manual.

     

    I noticed the PowerBrick uses the same beefy output FETs that are used in the ACC-65E, and that card's manual lists 0.6A per digital output, or ~300 mA if all 24 outputs are in use. This leads me to believe the PowerBrick digital outputs are also capable of this, but I'm not certain.

     

    I suspect I will need to add the current sourced by the digital outputs to the 24V 5A logic power required for the PowerBrick Controller.

     

    Can anyone confirm the digital output drive current capability, and that I will need to add this additional current requirement to the logic power?

     

    Hi

     

    Yes, the output circuits are very similar to the ACC-65E. I recommend that you use a separate 24VDC 5A supply for the I/O so you retain Opto-Isolation between the I/O and the Brick logic power.

     

    -Chris

  2. I like to do the following with a Power Brick AC unit:

    Take the signal from a sinusoidal encoder, modify it a little using a compensation table and then generate a quadrature encoder output.

    This quadrature encoder signal will then be send to another motion controller.

     

    How can this be done with the Power Brick AC unit?

     

    Hi,

     

    You could process the SIN/COS encoder through the ECT and then create a virtual axis that follows the position of the processed SIN/COS encoder. Reference the section(s) below in the Power PMAC SRM which describes how-to configure the PFM Output to generate quadrature outputs (simulated quad encoder):

     

    Gate3.Chan[j].PfmFormat Description: IC channel PFM output format control

    Range: 0 .. 1

    Units: Boolean

    Default: 0

    Gate3.Chan[j].PfmFormat determines the signal output format of the PFM circuit on Phase D of the IC’s channel. It is only active if Gate3.Chan[j].OutputMode is set to a value of 8 or greater to specify PFM output on Phase D.

    If Gate3.Chan[j].PfmFormat is set to the default value of 0, the output is in pulse-anddirection mode. This mode is useful for control of traditional stepper drives and the excitation of MLDT sensors.

    If Gate3.Chan[j].PfmFormat is set to 1, the output is in quadrature mode. This mode is useful for creating a synthesized incremental encoder signal.

    (In some pre-release versions of the Power PMAC firmware, this element was named Gate3.Chan[j].PfmOutFormat.)

    Gate3.Chan[j].PfmFormat constitutes bit 19 of the full-word element Gate3.Chan[j].OutCtrl. It is write-protected, so it cannot be changed without first writing the proper key value into Gate3.WpKey (which happens automatically in the script environment if the proper key value is in Sys.WpKey)

     

     

    To change direction of the quadrature output:

    Gate3.Chan[j].PfmDirPol

     

    -Chris

  3. Hi, i have a CS with four motor configurated with the same characteristics.

     

    this motors are conected to the JMACH 1 of my Power Pmac Clipper Controller. I have the fault motors input floating and only connected the DACs output and Encoders Input to the controller.

     

    If i move each motor in the jog mode, all motor works find, but when i try enable all motor using #xj/ command to enable the CS the motor #1 send to fault other motors.

     

    for example

     

    #2j/ -> motor[2].fault=0

    #3j/ -> motor[3].fault=0

    #4j/ -> motor[4].fault=0

    #1j/ -> motor[1].fault=0, motor[2].fault=1, motor[3].fault=1, motor[4].fault=1

     

    So i never can enable the CS.

     

    Hi,

     

    Since you are not using the amplifier fault bits, try disabling them:

     

    Motor[1].pAmpFault = 0

    Motor[2].pAmpFault = 0

    Motor[3].pAmpFault = 0

    Motor[4].pAmpFault = 0

     

    -Chris

  4. I would like to i use JTHW port as general purpose I/O. May I make and break 24VDC circuit connection? or it only for 5 VDC? Could you please provide writing diagram for the I/O?

     

    The JTHW is TTL level only. You cannot drive or input 24VDC. You would need to use external Opto-isolators.

  5. Hi

    I have a proleben about I2TFault set.

    I use the IDE Setup to setup a brushless motor, and it works fine.

    But after reboot the BrickAC. The I2tFault and AmpFault are high light in Motor Status.

    So I can not search pahse.

     

    If I set Motor[1].I2TSet=0, and save. Then I reboot the BrickAC, it will works

    fine. Then I reset Motor[1].I2TSet=2354. It's still works fine.

     

    So I write a Power-up PLC to reset the Motor[1].I2TSet with a time-delay.

    Then it works fine.

     

    I think it's not normal. But I didn't know the reason.

     

    Power Brick AC or L.V. require a startup PLC to setup the amplifiers, it is in the manual, do you have this? I've attached mine as an example (this is for LV). You will need to change some of the naming conventions for the Power Brick AC.

    01- poweronreset - Copy.txt

  6. I don't think so. We use a single gain setting for each motor.

     

    We did find the bridge on this machine to be cracked at the welds on both ends. This put a great amount of stress between the X1 and X2 motors. Is it possible that noise from these two motors fighting to overcome this tension has been affecting the Y axis motor? We haven't been getting any foldback faults on the drive amp.

     

    As a stop gap until you can fix the welds (this is likely one of the root causes) you can try cross-gantry coupling. On Turbo, this is a bit difficult to setup and you need a spare encoder channel. Below is a link to the White paper:

     

    http://www.deltatau.com/Common/technotes/Gantry%20with%20Cross%20Coupling.pdf

     

    1. Are you commanding both motors in the same C.S as X (or same)?

     

    2. Avoid master/slave, this will certainly cause poor performance.

     

    Regards,

     

    Chris

  7. I had same problem,PLC0 stop running itself.Maybe 2~3 times one year.

     

    I've deployed hundreds of Turbo PMAC2 (all varieties) systems, running a PLC0 and/or PLCC0: i5=3 and have never encountered this issue.

     

     

    If not a code problem, possible H/W issue? Have you checked your CPU load while your system is running all axes and PLC0 activated?

     

    Chris

     

    Maybe it's difficulty to check the load while the system is running when this problem occurs. after all, just three times in one entire year.

    what I feel strange is :Why are the same programs run time and time again over the days, but just several times, this problem comes out?

     

    My thought with PMAC CPU load was while the system is functioning normally and PLC0 is running. What is the average and peak loads on the PMAC CPU..???

     

    Regards,

     

    Chris

  8. I had same problem,PLC0 stop running itself.Maybe 2~3 times one year.

     

    I've deployed hundreds of Turbo PMAC2 (all varieties) systems, running a PLC0 and/or PLCC0: i5=3 and have never encountered this issue.

     

     

    If not a code problem, possible H/W issue? Have you checked your CPU load while your system is running all axes and PLC0 activated?

     

    Chris

     

    Maybe it's difficulty to check the load while the system is running when this problem occurs. after all, just three times in one entire year.

    what I feel strange is :Why are the same programs run time and time again over the days, but just several times, this problem comes out?

     

    My thought with PMAC CPU load was while the system is functioning normally and PLC0 is running. What is the average and peak loads on the PMAC CPU..???

     

    Regards,

     

    Chris

  9. I had same problem,PLC0 stop running itself.Maybe 2~3 times one year.

     

    I've deployed hundreds of Turbo PMAC2 (all varieties) systems, running a PLC0 and/or PLCC0: i5=3 and have never encountered this issue.

     

     

    If not a code problem, possible H/W issue? Have you checked your CPU load while your system is running all axes and PLC0 activated?

     

    Chris

  10. I had same problem,PLC0 stop running itself.Maybe 2~3 times one year.

     

    I've deployed hundreds of Turbo PMAC2 (all varieties) systems, running a PLC0 and/or PLCC0: i5=3 and have never encountered this issue.

     

     

    If not a code problem, possible H/W issue? Have you checked your CPU load while your system is running all axes and PLC0 activated?

     

    Chris

  11. We have a couple of customers whose symptoms seem to tell me that their Clippers are rebooting. Communication is lost in most cases, and we have to kill PMACSERVER (we are still using PCOMM32Pro) or reboot the PC to get communications to resume. But occasionally when this happens, our LabVIEW app doesn't indicate that communications are lost, but every variable that it reads reports "1" as the value.

     

    I haven't been able to query a Clipper while it is doing this (they have already recovered from the problem by the time I am told about it), but from the looks of the screenshots I've seen, the PCOMM32Pro driver is returning "1" for every query. Shutting everything down and restarting does seem to fix the problem, until it happens again.

     

    Clipper is being used through USB. Windows 7 Pro PCs.

     

    Has anyone had this happen?

     

    In addition to checking your +5VDC Power Supply, you may also want to check for any ground loops between the USB Ground on the Host Computer and USB Ground on the Clipper.

  12. We have a couple of customers whose symptoms seem to tell me that their Clippers are rebooting. Communication is lost in most cases, and we have to kill PMACSERVER (we are still using PCOMM32Pro) or reboot the PC to get communications to resume. But occasionally when this happens, our LabVIEW app doesn't indicate that communications are lost, but every variable that it reads reports "1" as the value.

     

    I haven't been able to query a Clipper while it is doing this (they have already recovered from the problem by the time I am told about it), but from the looks of the screenshots I've seen, the PCOMM32Pro driver is returning "1" for every query. Shutting everything down and restarting does seem to fix the problem, until it happens again.

     

    Clipper is being used through USB. Windows 7 Pro PCs.

     

    Has anyone had this happen?

     

    In addition to checking your +5VDC Power Supply, you may also want to check for any ground loops between the USB Ground on the Host Computer and USB Ground on the Clipper.

  13. I am using a Geo Brick LV.

     

    I am testing the case where I have a broken limit switch, and the motor drives past the limit into a hard stop, where it stalls and draws more current than allowed. In this case, the I2T limit catches the problem, and the 7-segment display reads "1L" (Axis 1 Over Load). This is described in the Geo Brick LV User Manual, Section "D1: Error Codes" on Page 249.

     

    The following page describes the Strobe Word Structure, which I believe can be used to clear this fault. Running the command "I7006=$F8C0FE" appears to reset the fault. However, after driving the motor off of the hard stop and repeating the test, I cannot cause the condition again.

     

    This leads me to believe that the I2T protection has been disabled by my command. Is this true? If so, what is the proper way to reset an I2T Fault?

     

    Thanks for your help.

     

    Hello,

     

    I had a similiar issue (not really an issue) - this PLC allowed me to recover from "(n)L" fault you're describing. Most of this is covered in the GEO L.V manual. Modify to fit your needs.

    //*****************************************************

    End Gat

    Del Gat

    Close

     

    Open PLC 5 Clear

     

    If (p143 = 1)

    I5112=100*8388608/I10 While(I5112>0)Endw

    // Axis 1 Settings

    CMD"WX:$78014,$F8CCFE" ; Select axis # and set motor mode (Servo)

    I5112 = 50 * 8388608/I10 While(I5112 > 0)EndW

    CMD"WX:$78014,$F84CFE" ; Clear error(s) on selected axis in Servo mode

    I5112 = 50 * 8388608/I10 While(I5112 > 0)EndW

    CMD"WX:$78014,$F00CFE" ; Save and write protect channel from strobe word changes

    I5112 = 100 * 8388608/I10 While(I5112 > 0)EndW

    p143 = 0

    Endif

     

    If (p243 = 1)

     

    I5212=100*8388608/I10 While(I5212>0)Endw

    // Axis 2 Settings

    CMD"WX:$78014,$F9CCFE" ; Select axis # and set motor mode (Servo)

    I5212 = 50 * 8388608/I10 While(I5212 > 0)EndW

    CMD"WX:$78014,$F94CFE" ; Clear error(s) on selected axis in Servo mode

    I5212 = 50 * 8388608/I10 While(I5212 > 0)EndW

    CMD"WX:$78014,$F10CFE" ; Save and write protect channel from strobe word changes

    I5212 = 100 * 8388608/I10 While(I5212 > 0)EndW

    p243 = 0

    Endif

     

    If (p343 = 1)

    I5312=100*8388608/I10 While(I5312>0)Endw

    // Axis 3 Settings

    CMD"WX:$78014,$FACCFE" ; Select axis # and set motor mode (Servo)

    I5312 = 50 * 8388608/I10 While(I5312 > 0)EndW

    CMD"WX:$78014,$FA4CFE" ; Clear error(s) on selected axis in Servo mode

    I5312 = 50 * 8388608/I10 While(I5312 > 0)EndW

    CMD"WX:$78014,$F20CFE" ; Save and write protect channel from strobe word changes

    I5312 = 100 * 8388608/I10 While(I5312 > 0)EndW

    p343 = 0

    Endif

     

    If (p443 = 1)

    I5412=100*8388608/I10 While(I5412>0)Endw

    // Axis 4 Settings

    CMD"WX:$78014,$FBCCFE" ; Select axis # and set motor mode (Servo)

    I5412 = 50 * 8388608/I10 While(I5412 > 0)EndW

    CMD"WX:$78014,$FB4CFE" ; Clear error(s) on selected axis in Servo mode

    I5412 = 50 * 8388608/I10 While(I5412 > 0)EndW

    CMD"WX:$78014,$F30CFE" ; Save and write protect channel from strobe word changes

    I5412 = 100 * 8388608/I10 While(I5412 > 0)EndW

    p443 = 0

    Endif

     

    If (p543 = 1)

    I5512=100*8388608/I10 While(I5512>0)Endw

    // Axis 5 Settings

    CMD"WX:$78114,$F8CCFE" ; Select axis # and set motor mode (Servo)

    I5512 = 50 * 8388608/I10 While(I5512 > 0)EndW

    CMD"WX:$78114,$F84CFE" ; Clear error(s) on selected axis in Servo mode

    I5512 = 50 * 8388608/I10 While(I5512 > 0)EndW

    CMD"WX:$78114,$F00CFE" ; Save and write protect channel from strobe word changes

    I5512 = 100 * 8388608/I10 While(I5512 > 0)EndW

    p543 = 0

    Endif

     

    If (p643 = 1)

    I5612=100*8388608/I10 While(I5612>0)Endw

    // Axis 6 Settings

    CMD"WX:$78114,$F9CCFE" ; Select axis # and set motor mode (Servo)

    I5612 = 50 * 8388608/I10 While(I5612 > 0)EndW

    CMD"WX:$78114,$F94CFE" ; Clear error(s) on selected axis in Servo mode

    I5612 = 50 * 8388608/I10 While(I5612 > 0)EndW

    CMD"WX:$78114,$F10CFE" ; Save and write protect channel from strobe word changes

    I5612 = 100 * 8388608/I10 While(I5612 > 0)EndW

    p643 = 0

    Endif

     

    If (p743 = 1)

    I5712=100*8388608/I10 While(I5712>0)Endw

    // Axis 7 Settings

    CMD"WX:$78114,$FACCFE" ; Select axis # and set motor mode (Servo)

    I5712= 50 * 8388608/I10 While(I5712 > 0)EndW

    CMD"WX:$78114,$FA4CFE" ; Clear error(s) on selected axis in Servo mode

    I5712 = 50 * 8388608/I10 While(I5712 > 0)EndW

    CMD"WX:$78114,$F20CFE" ; Save and write protect channel from strobe word changes

    I5712 = 100 * 8388608/I10 While(I5712 > 0)EndW

    p743 = 0

    Endif

     

    If (p843 = 1)

    I5812=100*8388608/I10 While(I5812>0)Endw

    // Axis 8 Settings

    CMD"WX:$78114,$FBCCFE" ; Select axis # and set motor mode (Servo)

    I5812 = 50 * 8388608/I10 While(I5812 > 0)EndW

    CMD"WX:$78114,$FB4CFE" ; Clear error(s) on selected axis in Servo mode

    I5812 = 50 * 8388608/I10 While(I5812 > 0)EndW

    CMD"WX:$78114,$F30CFE" ; Save and write protect channel from strobe word changes

    I5812 = 100 * 8388608/I10 While(I5812 > 0)EndW

    p843 = 0

    Endif

     

    Close

    //*****************************************************

     

    Regards,

     

    Chris

  14. Looking at the step response, your step move is ~0.25mm (10nm res?). What happens when you try to perform a larger step (say 1mm)?

     

    If you can provided more information (see my previous post) this would be helpful to understand the limitations of your mechanics.

     

    -Chris

  15. wxswxs1987,

     

    1. What is the pitch of the ballscrew?

     

    2. What type of coupling are you using to couple the motor to the ballscrew? Steel-bellow anti-windup type (servo coupling) is preferred.

     

    3. What bearing type are you using for your stage (exp: cross-roller or re-circulating truck/rail)?

     

    4. What is the physical relationship (distance) between your brushless motor and the 10nm external encoder?

     

    5. Using a 10nm resolution linear encoder with a rotary motor/ballscrew drive is not a trivial task. Typically, with feedback resolutions less than 1 micron, linear motors are the preferred method.

     

    6. Does your brushless motor have a rotary encoder? If so, what is the resolution? For your application, dual encoder feedback is most likely the only way to get the performance you need. You could use the rotary encoder (with highest resolution possible) for your velocity feedback loop and the 10nm encoder for your position feedback loop.

     

    -Chris

×
×
  • Create New...