Jump to content
OMRON Forums

deltaa

Members
  • Posts

    12
  • Joined

  • Last visited

Everything posted by deltaa

  1. I used the latest version of the spreadsheet(v2.8) to generate the data. I changed Ixx71 and Ixx91 to match with the rest of the motor settings (which derived from DLS). Ixx69 was generated from the spreadsheet. I attached the screenshot of the spreadsheet and the configuration file for your reference. Motor is setup on axis #1. // Geo Brick LV Setup Assistant 2.8 Auto-Generated Parameters CLOSE DEL GAT // Clock Setup Parameters I7100=1473 // 20kHz PWM frequency I7101=3 // 10kHz Phase frequency I7102=1 // 5kHz Servo Clock I6800=1473 I6801=3 I6802=1 I7000=1473 I7001=3 I7002=1 I10=1677653 // 0.19999 msec Servo Period I7003=1746 I7004=4 I7103=1746 I7104=4 #define timer32 I6612 #define msec32 *8388608/I10WHILE(I6612>0)ENDWHILE // initialization PLC OPEN PLC 1 CLEAR DISABLE PLC 2..31 timer32 = 50 msec32 CMD"WX:$78014,$F8CDFE" //Motor #1 CLRF timer32 = 50 msec32 CMD"WX:$78014,$F84DFE" // Motor #1 Type timer32 = 50 msec32 CMD"WX:$78014,$F00DFE" // Motor #1 Protection timer32 = 50 msec32 CMD"WX:$78014,$F9CDFE" //Motor #2 CLRF timer32 = 50 msec32 CMD"WX:$78014,$F94DFE" // Motor #2 Type timer32 = 50 msec32 CMD"WX:$78014,$F10DFE" // Motor #2 Protection timer32 = 50 msec32 CMD"WX:$78014,$FACDFE" //Motor #3 CLRF timer32 = 50 msec32 CMD"WX:$78014,$FA4DFE" // Motor #3 Type timer32 = 50 msec32 CMD"WX:$78014,$F20DFE" // Motor #3 Protection timer32 = 50 msec32 CMD"WX:$78014,$FBCDFE" //Motor #4 CLRF timer32 = 50 msec32 CMD"WX:$78014,$FB4DFE" // Motor #4 Type timer32 = 50 msec32 CMD"WX:$78014,$F30DFE" // Motor #4 Protection timer32 = 50 msec32 CMD"WX:$78114,$F8CDFE" //Motor #5 CLRF timer32 = 50 msec32 CMD"WX:$78114,$F84DFE" // Motor #5 Type timer32 = 50 msec32 CMD"WX:$78114,$F00DFE" // Motor #5 Protection timer32 = 50 msec32 CMD"WX:$78114,$F9CDFE" //Motor #6 CLRF timer32 = 50 msec32 CMD"WX:$78114,$F94DFE" // Motor #6 Type timer32 = 50 msec32 CMD"WX:$78114,$F10DFE" // Motor #6 Protection timer32 = 50 msec32 CMD"WX:$78114,$FACDFE" //Motor #7 CLRF timer32 = 50 msec32 CMD"WX:$78114,$FA4DFE" // Motor #7 Type timer32 = 50 msec32 CMD"WX:$78114,$F20DFE" // Motor #7 Protection timer32 = 50 msec32 CMD"WX:$78114,$FBCDFE" //Motor #8 CLRF timer32 = 50 msec32 CMD"WX:$78114,$FB4DFE" // Motor #8 Type timer32 = 50 msec32 CMD"WX:$78114,$F30DFE" // Motor #8 Protection timer32 = 50 msec32 DISABLE PLC 1 CLOSE I5=2 // Encoder Conversion Table Setup //WY:$3501,$78000,$78008,$78010,$78018,$78100,$78108,$78110,$78118 //WY:$3509,$6800BF,$018018,$EC0009,$68013F,$018018,$EC000C,$6801BF,$018018,$EC000F,$68023F,$018018,$EC0012,$6802BF,$018018,$EC0015,$68033F,$018018,$EC0018,$6803BF,$018018,$EC001B,$68043F,$018018,$EC001E WY:$3501,$6800BF,$018018,$EC0001 WY:$3504,$68013F,$018018,$EC0004 WY:$3507,$6801BF,$018018,$EC0007 WY:$350A,$68023F,$018018,$EC000A WY:$350D,$6802BF,$018018,$EC000D WY:$3510,$68033F,$018018,$EC0010 WY:$3513,$6803BF,$018018,$EC0013 WY:$3516,$68043F,$018018,$EC0016 // Activation Control I100=1 I200=1 I300=1 I400=1 I500=1 I600=1 I700=1 I800=1 // Commutation Enable I101=1 I201=1 I301=1 I401=1 I501=1 I601=1 I701=1 I801=1 // Output Address I102=$078002 I202=$07800A I302=$078012 I402=$07801A I502=$078102 I602=$07810A I702=$078112 I802=$07811A // Position feedback I103=$3503 I203=$3506 I303=$3509 I403=$350C I503=$350F I603=$3512 I703=$3515 I803=$3518 // Velocity feedback I104=$3503 I204=$3506 I304=$3509 I404=$350C I504=$350F I604=$3512 I704=$3515 I804=$3518 // Current Loop Settings I182=$078006 I282=$07800E I382=$078016 I482=$07801E I582=$078106 I682=$07810E I782=$078116 I882=$07811E // ADC Mask I184,8,100=$FFFC00 // Phase offset I172=512 I272=512 I372=512 I472=512 I572=512 I672=512 I772=512 I872=512 // PWM Scale Factor I166=1399 I266=1399 I366=1399 I466=1399 I566=1399 I666=1399 I766=1399 I866=1399 // Current Loop Gains I161=0.0685419728429138 I162=0 I176=0.907231124374112 I261=0.0685419728429138 I262=0 I276=0.907231124374112 I361=0.0685419728429138 I362=0 I376=0.907231124374112 I461=0.0685419728429138 I462=0 I476=0.907231124374112 I561=0.0685419728429138 I562=0 I576=0.907231124374112 I661=0.0685419728429138 I662=0 I676=0.907231124374112 I761=0.0685419728429138 I762=0 I776=0.907231124374112 I861=0.0685419728429138 I862=0 I876=0.907231124374112 // I2T Protection Settings I157=2489 I158=151 I169=4 I257=4149 I258=2486 I269=4 I357=5335 I358=2889 I369=4 I457=5927 I458=2945 I469=4 I557=5927 I558=2945 I569=4 I657=5927 I658=2945 I669=4 I757=5927 I758=2945 I769=4 I857=5927 I858=2945 I869=4 // Flag Settings I125=$078000 I225=$078008 I325=$078010 I425=$078018 I525=$078100 I625=$078108 I725=$078110 I825=$078118 I124=$820401 I224=$820401 I324=$820401 I424=$820401 I524=$820401 I624=$820401 I724=$820401 I824=$820401 // Commutation Parameters // On-going Phase Position I183=$3503 I283=$3506 I383=$3509 I483=$350C I583=$350F I683=$3512 I783=$3515 I883=$3518 // Number of pole pairs per revolution I170=1 I270=1 I370=1 I470=1 I570=1 I670=1 I770=1 I870=1 // Number of encoder counts per revolution I171=4096 I271=4096 I371=4096 I471=4096 I571=4096 I671=4096 I771=4096 I871=4096 // Motor Phasing Parameters // Phase Search method I180=0 I280=0 I380=0 I480=0 I580=0 I680=0 I780=0 I880=0 // Phase Search Magnitude I173=0 I273=0 I373=0 I473=0 I573=0 I673=0 I773=0 I873=0 // Phase Search Time I174=0 I274=0 I374=0 I474=0 I574=0 I674=0 I774=0 I874=0 // Absolute Phase Position Source Address I181=$3503 I281=$3506 I381=$3509 I481=$350C I581=$350F I681=$3512 I781=$3515 I881=$3518 // Absolute Phase Position Format I191=$500000 I291=$500000 I391=$500000 I491=$500000 I591=$500000 I691=$500000 I791=$500000 I891=$500000 // Magnetization Current I177=829 I277=1383 I377=1778 I477=1975 I577=1975 I677=1975 I777=1975 I877=1975 // Quadrature current loop calculation only (brushed motors) I196=0 I296=0 I396=0 I496=0 I596=0 I696=0 I796=0 I896=0 // PID values for Stepper Motors Only I130=1024 I131=0 I132=85 I133=1024 I134=1 I135..139=0 I230=1024 I231=0 I232=85 I233=1024 I234=1 I235..239=0 I330=1024 I331=0 I332=85 I333=1024 I334=1 I335..339=0 I430=1024 I431=0 I432=85 I433=1024 I434=1 I435..439=0 I530=1024 I531=0 I532=85 I533=1024 I534=1 I535..539=0 I630=1024 I631=0 I632=85 I633=1024 I634=1 I635..639=0 I730=1024 I731=0 I732=85 I733=1024 I734=1 I735..739=0 I830=1024 I831=0 I832=85 I833=1024 I834=1 I835..839=0 // Commutation Delay Compensation for Microstepping I156=18/360*2048/(I169*I108*32) I256=18/360*2048/(I269*I208*32) I356=18/360*2048/(I369*I308*32) I456=18/360*2048/(I469*I408*32) I556=18/360*2048/(I569*I508*32) I656=18/360*2048/(I669*I608*32) I756=18/360*2048/(I769*I708*32) I856=18/360*2048/(I869*I808*32) Thanks.
  2. I used the latest version of the spreadsheet(v2.8) to generate the data. I changed Ixx71 and Ixx91 to match with the rest of the motor settings (which derived from DLS). Ixx69 was generated from the spreadsheet.
  3. The motor I used is VEXTA PK264-03B. Step Angle 1.8 ° Connection Type Bipolar (Series) Current per Phase (A/phase) 2.1 [bipolar (Series)] Resistance (Ω/phase) 1.26 [bipolar (Series)] Inductance (mH/phase) 2.4 [bipolar (Series)] I used the latest Geo Brick LV Setup Assistant to generate the settings(attached). With the setting (I169=4), the motor quickly developed following error and stopped. When I increase I169 to over 100, the motor can move continously (although not very smooth, may need further current loop tunning). config_testing.txt
  4. Hi, I need help on how to properly setup Ixx69 on a Geo Brick LV controller to drive a direct micro-stepping motor. If I follow the instruction in pg.158 of the Geo Brick LV user manual, or use Geo Brick LV setup assistant, both give a small value of Ixx69 (under 42), when the value used to drive the motor, following error will be quickly developed. I'm wondering if I missed something here. Thanks
  5. Setup the test according to the suggestion, ran several tests and checked ADC readback. When motor is running at a lower speed, the performance is acceptable, with the increase of the speed, more vibration introduced and ADC B readback became distorted, any suggestion? Thanks Setup: 2048 steps/full step, motor current around 3amp RMS. I122=100, looks good and feels acceptable I122=200, looks ok I122=300, looks and feels bad I122=300, difference Geo Brick
  6. Please refer to the attached plot, zoomed, Motor is not running smoothly during the movement. ADC readback shows the same pattern as the phase current measurement. The waveform deteriorates as the current setting becomes smaller and smaller.
  7. Geo Brick LV to drive a two phase stepping motor in direct micro-stepping mode with 32 micro steps per full step. Current waveform distortion noticed around zero-cross area as shown in the attachment. Motor current: 5 A peak to peak Frequency: 20 ms/div Any idea on how to correct the zero-crossing distortion? thanks.
  8. Thanks Steve, both deadband setting and j! solved the problem.
  9. The PID gains are I430=4096;Motor 4 PID Proportional Gain I431=0;Motor 4 PID Derivative Gain I432=16384;Motor 4 PID Velocity Feed Forward Gain I433=10000;Motor 4 PID Integral Gain I434=0;Motor 4 PID Integration Mode I435=4096;Motor 4 PID Acceleration Feed Forward Gain I436=0;Motor 4 PID Notch Filter Coefficient N1 I437=0;Motor 4 PID Notch Filter Coefficient N2 I438=0;Motor 4 PID Notch Filter Coefficient D1 I439=0;Motor 4 PID Notch Filter Coefficient D2 Do I need to tune the position loop for an external pulse/direction setup? By the way, when I jog to specified position using #4j=***, the problem does not happen. It only happens when using jog stop command j/ when the motor is moving.
  10. System config, == External micro stepping amplifier Two phase stepping motor Geo Brick LV drive channel 4 output Step/Dir signal == Parameters used, == I403=$3504 I404=$3504 I8003=$C78018 I7040=8 == Use jog command #4j+ or #4j- to start motor, motor runs without problem, then #4j/ to stop jogging, after the motor stops, it's still vibrating. Use scope to check the pulse and direction signal from Geo Brick LV, these two signals still have outputs. Anyone has similar experience? What could be wrong? Thanks
  11. Trying to use motor #1 for direct micro stepping and motor #4 as the virtual motor with internal pulse & direction wrapped back, with the following setup, both motors work fine individually. ; ECT for motor #1 I8000=$6800BF I8001=$10020 I8002=$EC0009 ; ECT for motor #4 I8003=$C78018 ;virtual motor #4 I400=1 I401=0 I402=$7801C I403=@I8003 I404=@I8003 I405=@I8002 I406=1 I7040=8 I7046=3 When trying to move motor #4 along, position compare works no problem. When enable position following on #4 and moving motor #1, position compare does not work. It seems motor #4 does not "follow". What could be wrong? Thanks
  12. Anyone has experience on how to setup position compare function for Geo Brick LV direct microstepping mode without using encoder? Thanks.
×
×
  • Create New...