deltaa Posted January 27, 2014 Share Posted January 27, 2014 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 Link to comment Share on other sites More sharing options...
Omron Forums Support Posted January 27, 2014 Share Posted January 27, 2014 Hi, Can you please give some specifications for your motor? I suppose it could be possible that your motor differs from the standard 1.8 degree step size used in the example that you mentioned, although it is doubtful. You could also post a file containing the other settings that you have changed for this motor throughout your setup process. That might help us analyze the problem better as well. Link to comment Share on other sites More sharing options...
Sina.Sattari Posted January 27, 2014 Share Posted January 27, 2014 Please use the "Geo Brick LV Setup Assistant" Excel spreadsheet to generate all the proper settings for your Geo Brick LV and your motors. You can get the "Geo Brick LV Setup Assistant" file from the filedepot: http://forums.deltatau.com/filedepot/download.php?f=Turbo%20PMAC/Tools/Geo%20Brick%20LV/Geo%20Brick%20LV%20Setup%20Assistant%202.8.xls [FILE REMOVED] Link to comment Share on other sites More sharing options...
deltaa Posted January 27, 2014 Author Share Posted January 27, 2014 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). Please use the "Geo Brick LV Setup Assistant" Excel spreadsheet to generate all the proper settings for your Geo Brick LV and your motors. You can get the "Geo Brick LV Setup Assistant" file from the filedepot: http://forums.deltatau.com/filedepot/download.php?f=Turbo%20PMAC/Tools/Geo%20Brick%20LV/Geo%20Brick%20LV%20Setup%20Assistant%202.8.xls [FILE REMOVED] config_testing.txt Link to comment Share on other sites More sharing options...
Richard Naddaf Posted January 28, 2014 Share Posted January 28, 2014 It does not look to me like you followed the steps in the manual properly (make sure you look at the latest revision on the website). But also, your settings are not consistent with the spreadsheet either: - Ixx71 = 4096, this is using the older micro-stepping technique - Ixx69 = 4! - Ixx91 = 0! It would be helpful to take a look at all of your I variable settings (global), and not only motor 1's. Link to comment Share on other sites More sharing options...
deltaa Posted January 28, 2014 Author Share Posted January 28, 2014 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. It does not look to me like you followed the steps in the manual properly (make sure you look at the latest revision on the website). But also, your settings are not consistent with the spreadsheet either: - Ixx71 = 4096, this is using the older micro-stepping technique - Ixx69 = 4! - Ixx91 = 0! It would be helpful to take a look at all of your I variable settings (global), and not only motor 1's. Link to comment Share on other sites More sharing options...
Sina.Sattari Posted January 28, 2014 Share Posted January 28, 2014 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). Please use the "Geo Brick LV Setup Assistant" Excel spreadsheet to generate all the proper settings for your Geo Brick LV and your motors. You can get the "Geo Brick LV Setup Assistant" file from the filedepot: http://forums.deltatau.com/filedepot/download.php?f=Turbo%20PMAC/Tools/Geo%20Brick%20LV/Geo%20Brick%20LV%20Setup%20Assistant%202.8.xls [FILE REMOVED] I just loaded your parameters in the spreadsheet and the I-variable settings it generates, does not match any of the values you posted. Here are my results: // Geo Brick LV Setup Assistant 2.8 Auto-Generated Parameters CLOSE DEL GAT // Clock Setup Parameters I7100=1498 // 19.6608kHz PWM frequency I7101=1 // 19.6608kHz Phase frequency I7102=3 // 4.9152kHz Servo Clock I6800=1498 I6801=1 I6802=3 I7000=1498 I7001=1 I7002=3 I10=1706097 // 0.20338 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=1423 I266=1423 I366=1423 I466=1423 I566=1423 I666=1423 I766=1423 I866=1423 // Current Loop Gains I161=0.0232373199153723 I162=0 I176=0.550421188967533 I261=0.0232373199153723 I262=0 I276=0.550421188967533 I361=0.0232373199153723 I362=0 I376=0.550421188967533 I461=0.0232373199153723 I462=0 I476=0.550421188967533 I561=0.0232373199153723 I562=0 I576=0.550421188967533 I661=0.0232373199153723 I662=0 I676=0.550421188967533 I761=0.0232373199153723 I762=0 I776=0.550421188967533 I861=0.0232373199153723 I862=0 I876=0.550421188967533 // I2T Protection Settings I157=2489 I158=236 I169=64 I257=2489 I258=236 I269=64 I357=2489 I358=236 I369=64 I457=2489 I458=236 I469=64 I557=2489 I558=236 I569=64 I657=2489 I658=236 I669=64 I757=2489 I758=236 I769=64 I857=2489 I858=236 I869=64 // 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=65536 I271=65536 I371=65536 I471=65536 I571=65536 I671=65536 I771=65536 I871=65536 // 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=829 I377=829 I477=829 I577=829 I677=829 I777=829 I877=829 // 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) Link to comment Share on other sites More sharing options...
deltaa Posted January 28, 2014 Author Share Posted January 28, 2014 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. It does not look to me like you followed the steps in the manual properly (make sure you look at the latest revision on the website). But also, your settings are not consistent with the spreadsheet either: - Ixx71 = 4096, this is using the older micro-stepping technique - Ixx69 = 4! - Ixx91 = 0! It would be helpful to take a look at all of your I variable settings (global), and not only motor 1's. Link to comment Share on other sites More sharing options...
Recommended Posts