Jump to content
OMRON Forums

Setup Ixx69 for direct micro stepping


deltaa

Recommended Posts

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

  • Replies 7
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Posted Images

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

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

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

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

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

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

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.

1120157286_ScreenHunter_01Jan_2815_30.jpg.66ab63c6df0496967e126707c7335b14.jpg

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.

×
×
  • Create New...