7i96 Configuration Tool

More
7 years 10 months ago #122786 by Ewok2
Replied by Ewok2 on topic 7i96 Configuration Tool
Yes of course
The ini file is below :
Code:
# This file was created with the 7i96 Wizard on Dec 23 2018 15:02:21 # Changes to most things are ok and will be read by the wizard [EMC] VERSION = 1.1 MACHINE = schugart_LinuxCNC DEBUG = 0x00000000 [HOSTMOT2] DRIVER = hm2_eth IPADDRESS = "10.10.10.10" BOARD = 7i96 STEPGENS = 3 ENCODERS = 1 SSERIAL_PORT = 1 [DISPLAY] DISPLAY = axis POSITION_OFFSET = RELATIVE POSITION_FEEDBACK = ACTUAL MAX_FEED_OVERRIDE = 2.0 CYCLE_TIME = 0.1 INTRO_GRAPHIC = emc2.gif INTRO_TIME = 0 OPEN_FILE = "" [KINS] KINEMATICS = trivkins JOINTS = 3 [EMCIO] EMCIO = io CYCLE_TIME = 0.100 TOOL_TABLE = schugart_LinuxCNC.tbl [RS274NGC] PARAMETER_FILE = schugart_LinuxCNC.var [EMCMOT] EMCMOT = motmod SERVO_PERIOD = 1000000 [TASK] TASK = milltask CYCLE_TIME = 0.010 [TRAJ] COORDINATES = XYZ LINEAR_UNITS = metric ANGULAR_UNITS = degree MAX_LINEAR_VELOCITY = 50.00 [HAL] HALFILE = schugart_LinuxCNC.hal HALFILE = io.hal HALFILE = custom.hal HALFILE = postgui.hal [HALUI] [AXIS_X] MIN_LIMIT = -0.01 MAX_LIMIT = 345.0 MAX_VELOCITY = 50.0 MAX_ACCELERATION = 750.0 [AXIS_Y] MIN_LIMIT = -0.01 MAX_LIMIT = 250.0 MAX_VELOCITY = 50.0 MAX_ACCELERATION = 750.0 [AXIS_Z] MIN_LIMIT = -10.01 MAX_LIMIT = 35.0 MAX_VELOCITY = 15.0 MAX_ACCELERATION = 500.0 [JOINT_0] AXIS = X MIN_LIMIT = -0.01 MAX_LIMIT = 345.0 MAX_VELOCITY = 50.0 MAX_ACCELERATION = 750.0 TYPE = LINEAR SCALE = 1 STEPGEN_MAX_VEL = 60.0 STEPGEN_MAX_ACC = 900.0 FERROR = 0.0002 MIN_FERROR = 0.0001 DIRSETUP = 20000 DIRHOLD = 20000 STEPLEN = 4000 STEPSPACE = 1000 DEADBAND = 0 P = 1000 I = 0 D = 0 FF0 = 0 FF1 = 1 FF2 = 0.00013 BIAS = 0 MAX_OUTPUT = 0 MAX_ERROR = 0.0127 HOME = 0.0 HOME_OFFSET = 0.0 HOME_USE_INDEX = False HOME_IGNORE_LIMITS = False [JOINT_1] AXIS = Y MIN_LIMIT = -0.01 MAX_LIMIT = 250.0 MAX_VELOCITY = 50.0 MAX_ACCELERATION = 750.0 TYPE = LINEAR SCALE = 1 STEPGEN_MAX_VEL = 60.0 STEPGEN_MAX_ACC = 900.0 FERROR = 0.0002 MIN_FERROR = 0.0001 DIRSETUP = 20000 DIRHOLD = 20000 STEPLEN = 4000 STEPSPACE = 1000 DEADBAND = 0 P = 1000 I = 0 D = 0 FF0 = 0 FF1 = 1 FF2 = 0.00013 BIAS = 0 MAX_OUTPUT = 0 MAX_ERROR = 0.0127 HOME = 0.0 HOME_OFFSET = 0.0 HOME_USE_INDEX = False HOME_IGNORE_LIMITS = False [JOINT_2] AXIS = Z MIN_LIMIT = -10.01 MAX_LIMIT = 35.0 MAX_VELOCITY = 15.0 MAX_ACCELERATION = 500.0 TYPE = LINEAR SCALE = 1 STEPGEN_MAX_VEL = 18.0 STEPGEN_MAX_ACC = 600.0 FERROR = 0.0002 MIN_FERROR = 0.0001 DIRSETUP = 20000 DIRHOLD = 20000 STEPLEN = 4000 STEPSPACE = 1000 DEADBAND = 0 P = 1000 I = 0 D = 0 FF0 = 0 FF1 = 1 FF2 = 0.00013 BIAS = 0 MAX_OUTPUT = 0 MAX_ERROR = 0.0127 HOME = 0.0 HOME_OFFSET = 0.0 HOME_USE_INDEX = False HOME_IGNORE_LIMITS = False [INPUTS] # DO NOT change the input text INPUT_0 = None INPUT_JOINT_0 = False INPUT_1 = None INPUT_JOINT_1 = False INPUT_2 = None INPUT_JOINT_2 = False INPUT_3 = None INPUT_JOINT_3 = False INPUT_4 = None INPUT_JOINT_4 = False INPUT_5 = None INPUT_JOINT_5 = False INPUT_6 = None INPUT_JOINT_6 = False INPUT_7 = None INPUT_JOINT_7 = False INPUT_8 = None INPUT_JOINT_8 = False INPUT_9 = None INPUT_JOINT_9 = False INPUT_10 = None INPUT_JOINT_10 = False [OUTPUTS] # DO NOT change the output text OUTPUT_0 = None OUTPUT_1 = None OUTPUT_2 = None OUTPUT_3 = None OUTPUT_4 = None [OPTIONS] MANUAL_TOOL_CHANGE = False HALUI = False PYVCP = False GLADEVCP = False LADDER = False

The Hal file is below
Code:
# This file was created with the 7i96 Wizard on Dec 23 2018 15:02:21 # If you make changes to this file your screwed # kinematics loadrt [KINS]KINEMATICS # motion controller loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS # standard components loadrt pid num_chan=3 # hostmot2 driver loadrt hostmot2 loadrt [HOSTMOT2](DRIVER) board_ip=[HOSTMOT2](IPADDRESS) config="num_encoders=[HOSTMOT2](ENCODERS)num_stepgens=[HOSTMOT2](STEPGENS)"sserial_port_0=[HOSTMOT2](SSERIAL_PORT) setp hm2_[HOSTMOT2](BOARD).0.watchdog.timeout_ns 25000000 # THREADS addf hm2_[HOSTMOT2](BOARD).0.read servo-thread addf motion-command-handler servo-thread addf motion-controller servo-thread addf pid.0.do-pid-calcs servo-thread addf pid.1.do-pid-calcs servo-thread addf pid.2.do-pid-calcs servo-thread addf hm2_[HOSTMOT2](BOARD).0.write servo-thread # Joint 0 # axis enable chain newsig emcmot.0.enable bit sets emcmot.0.enable FALSE net emcmot.0.enable <= joint.0.amp-enable-out net emcmot.0.enable => hm2_[HOSTMOT2](BOARD).0.stepgen.00.enable pid.0.enable # position command and feedback net emcmot.0.pos-cmd joint.0.motor-pos-cmd => pid.0.command net motor.0.pos-fb <= hm2_[HOSTMOT2](BOARD).0.stepgen.00.position-fb joint.0.motor-pos-fb pid.0.feedback net motor.0.command pid.0.output hm2_[HOSTMOT2](BOARD).0.stepgen.00.velocity-cmd setp pid.0.error-previous-target true setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.dirsetup [JOINT_0]DIRSETUP setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.dirhold [JOINT_0]DIRHOLD setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.steplen [JOINT_0]STEPLEN setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.stepspace [JOINT_0]STEPSPACE setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.position-scale [JOINT_0]SCALE setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.maxvel [JOINT_0]STEPGEN_MAX_VEL setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.maxaccel [JOINT_0]STEPGEN_MAX_ACC setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.step_type 0 setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.control-type 1 setp pid.0.Pgain [JOINT_0]P setp pid.0.Igain [JOINT_0]I setp pid.0.Dgain [JOINT_0]D setp pid.0.bias [JOINT_0]BIAS setp pid.0.FF0 [JOINT_0]FF0 setp pid.0.FF1 [JOINT_0]FF1 setp pid.0.FF2 [JOINT_0]FF2 setp pid.0.deadband [JOINT_0]DEADBAND setp pid.0.maxoutput [JOINT_0]MAX_OUTPUT setp pid.0.maxerror [JOINT_0]MAX_ERROR # Joint 1 # axis enable chain newsig emcmot.1.enable bit sets emcmot.1.enable FALSE net emcmot.1.enable <= joint.1.amp-enable-out net emcmot.1.enable => hm2_[HOSTMOT2](BOARD).0.stepgen.01.enable pid.1.enable # position command and feedback net emcmot.1.pos-cmd joint.1.motor-pos-cmd => pid.1.command net motor.1.pos-fb <= hm2_[HOSTMOT2](BOARD).0.stepgen.01.position-fb joint.1.motor-pos-fb pid.1.feedback net motor.1.command pid.1.output hm2_[HOSTMOT2](BOARD).0.stepgen.01.velocity-cmd setp pid.1.error-previous-target true setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.dirsetup [JOINT_1]DIRSETUP setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.dirhold [JOINT_1]DIRHOLD setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.steplen [JOINT_1]STEPLEN setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.stepspace [JOINT_1]STEPSPACE setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.position-scale [JOINT_1]SCALE setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.maxvel [JOINT_1]STEPGEN_MAX_VEL setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.maxaccel [JOINT_1]STEPGEN_MAX_ACC setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.step_type 0 setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.control-type 1 setp pid.1.Pgain [JOINT_1]P setp pid.1.Igain [JOINT_1]I setp pid.1.Dgain [JOINT_1]D setp pid.1.bias [JOINT_1]BIAS setp pid.1.FF0 [JOINT_1]FF0 setp pid.1.FF1 [JOINT_1]FF1 setp pid.1.FF2 [JOINT_1]FF2 setp pid.1.deadband [JOINT_1]DEADBAND setp pid.1.maxoutput [JOINT_1]MAX_OUTPUT setp pid.1.maxerror [JOINT_1]MAX_ERROR # Joint 2 # axis enable chain newsig emcmot.2.enable bit sets emcmot.2.enable FALSE net emcmot.2.enable <= joint.2.amp-enable-out net emcmot.2.enable => hm2_[HOSTMOT2](BOARD).0.stepgen.02.enable pid.2.enable # position command and feedback net emcmot.2.pos-cmd joint.2.motor-pos-cmd => pid.2.command net motor.2.pos-fb <= hm2_[HOSTMOT2](BOARD).0.stepgen.02.position-fb joint.2.motor-pos-fb pid.2.feedback net motor.2.command pid.2.output hm2_[HOSTMOT2](BOARD).0.stepgen.02.velocity-cmd setp pid.2.error-previous-target true setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.dirsetup [JOINT_2]DIRSETUP setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.dirhold [JOINT_2]DIRHOLD setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.steplen [JOINT_2]STEPLEN setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.stepspace [JOINT_2]STEPSPACE setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.position-scale [JOINT_2]SCALE setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.maxvel [JOINT_2]STEPGEN_MAX_VEL setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.maxaccel [JOINT_2]STEPGEN_MAX_ACC setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.step_type 0 setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.control-type 1 setp pid.2.Pgain [JOINT_2]P setp pid.2.Igain [JOINT_2]I setp pid.2.Dgain [JOINT_2]D setp pid.2.bias [JOINT_2]BIAS setp pid.2.FF0 [JOINT_2]FF0 setp pid.2.FF1 [JOINT_2]FF1 setp pid.2.FF2 [JOINT_2]FF2 setp pid.2.deadband [JOINT_2]DEADBAND setp pid.2.maxoutput [JOINT_2]MAX_OUTPUT setp pid.2.maxerror [JOINT_2]MAX_ERROR # Standard I/O Block - EStop, Etc # create a signal for the estop loopback net estop-loop iocontrol.0.user-enable-out => iocontrol.0.emc-enable-in

Thanks for your help

Please Log in to join the conversation.

More
7 years 10 months ago #122787 by PCW
Replied by PCW on topic 7i96 Configuration Tool
These are likely the problem:

FERROR = 0.0002
MIN_FERROR = 0.0001

These numbers make sense for inch machines but not for mm.
I would scale them up by 25X and see how you do

In addition, for minimum following error I would enable the DPLL:

# latch stepgen position 100 usec before nominal read time (- means before):
setp hm2_[HOSTMOT2](BOARD).0.dpll.01.timer-us -100
setp hm2_[HOSTMOT2](BOARD).0.stepgen.timer-number 1

Please Log in to join the conversation.

More
7 years 10 months ago #122792 by Ewok2
Replied by Ewok2 on topic 7i96 Configuration Tool
Thanks, no more error but It should be something else with inches constant.
The motor make noise but does not move

Please Log in to join the conversation.

More
7 years 10 months ago #122795 by PCW
Replied by PCW on topic 7i96 Configuration Tool
That may be an indication that your acceleration or velocity is too high and the step motors are stalling

(With you current acceleration settings, you get to full speed in 66.6 ms, this sounds a bit aggressive to me)

Please Log in to join the conversation.

More
7 years 10 months ago #122796 by Ewok2
Replied by Ewok2 on topic 7i96 Configuration Tool
Wonderful it work again
In fact with the 7i96 tools my STEP_SCALE of 400 as disapear, but by putting manualy the SCALE in the GUI to 400 it works again :-)

Many thanks ! PCW

For resuming of what to change in the tools for metrics :
- import of servo Period remove one zero
- FERROR ans MIN_FERROR still in inches and not in metrics
- STEP_SCALE not imported and replace by SCALE (not sure the CW or CCW works => the sign befor SCALE is not modified)

Please Log in to join the conversation.

More
7 years 10 months ago #123107 by BigJohnT
Replied by BigJohnT on topic 7i96 Configuration Tool

Ewok2 wrote: Wonderful tools !!!
Thanks

Just 2 comments :
- In the Axis tab / Joint in the joint information, I get a distance to accelerate to max speed in inches despite the fact I select the Metric system in the First Tab :-)
- In the PC Tab, when I select the Read tMax I did not get a value in return ?


Thanks for the report, I'll look into the metric conversion as I'm sure it's just an oversight for me as I use inch.

Ahh I see an error I need to fix for tMax.

JT

Please Log in to join the conversation.

More
7 years 10 months ago #123108 by BigJohnT
Replied by BigJohnT on topic 7i96 Configuration Tool

Ewok2 wrote: Yes you are right with 1000000 it is better.
It seem's that the tools 7i96 put it again to 100000 even if previous ini file had 1000000.


I'll fix that as well...

JT

Please Log in to join the conversation.

More
7 years 10 months ago #123118 by BigJohnT
Replied by BigJohnT on topic 7i96 Configuration Tool

pl7i92 wrote: Is someone doing simultaneity to 7i92 ?


I have one started but not complete enough to use yet. Been busy programming chicken door and lights lol.

JT

Please Log in to join the conversation.

More
7 years 10 months ago #123119 by BigJohnT
Replied by BigJohnT on topic 7i96 Configuration Tool

Ewok2 wrote: - In the PC Tab, when I select the Read tMax I did not get a value in return ?


Did you have the 7i96 connected to the PC and had the configuration up and running?

JT

Please Log in to join the conversation.

More
7 years 9 months ago #123383 by LinfieldGarage
Hey John,
new Linuxcnc user here. First of all, thank you for developing the config tool and contributing so much to the community. I have already learned a ton from your posts. I started setting up my 7i96 today and ran into a few issues with the 7i96 config tool that I wanted to run by you.

My setup:

Mesa 7i96 board
preempt RT kernel:
Linux Linuxcnc 3.2.0-6-rt-686-pae #1 SMP PREEMPT RT Debian 3.2.102-1 i686 GNU/Linux
Linuxcnc uspace 2.8 master branch
Python3 installed per your instructions

Observations:

-Sometimes the utility will create an empty folder with no HAL or INI files. It seems related to filling in certain fields but I cant identify which ones make this happen. Have you seen this?

-No configs that the utility creates will load in Linuxcnc. Even if I open gantry.ini, save it as a different name, and build a config with no changes, I get the error, see attached report.

Attachment not found



Please let me know if you would like to see more details. Any help is appreciated.
Thanks,
Jamie

Please Log in to join the conversation.

Time to create page: 0.162 seconds
Powered by Kunena Forum