f-error high while rapid [solved]

More
6 years 8 months ago #156394 by anfänger
Hi I have some trouble tuning the servos on my linuxcnc retrofit.
I set the parameters as good as I could from my old machine data from the sinumerik 810m.

But I get a strange result when I try to tune my servos. I followed the servo howtio here in the forum and till 600mm/min everything looks really good, but when I go to rapid:

[img
f-error by Patrick Laible , auf Flickr

the f-error rises to 0,4mm (I think while accelerating) and then stays more or less constant and gets smaller when decelerating.
It's more or less just happens at high speeds (5400mm/min). I tried to change acceleration (a real wide range) and output scale but this didn't change much.

has anyone an Idea what it could be?

Thanks Patrick

Please Log in to join the conversation.

More
6 years 8 months ago #156395 by PCW
Replied by PCW on topic f-error high while rapid
With velocity mode servos, error proportional to velocity means you need to tune FF1

Too much FF1 means actual motion will lead the commanded position
Too little FF1 means the actual motion will lag the commanded position

Please Log in to join the conversation.

More
6 years 8 months ago #156396 by anfänger
Replied by anfänger on topic f-error high while rapid
How do I start? I calculated this one 10/vmax 10 / 333.3333 = 0.03 in my case. I lowered it in steps to 0 and raised it to 1 without any changed still the 0.4mm after acceleration an deceleration.
Or is this something to change more?

The only thing that I know tat this error is proportional to the speed

Please Log in to join the conversation.

More
6 years 8 months ago #156398 by PCW
Replied by PCW on topic f-error high while rapid
If you had no ferror change with changes in FF1, there is likely an error in your hal file.
can you post your hal and ini files here?

Please Log in to join the conversation.

More
6 years 8 months ago #156399 by anfänger
Replied by anfänger on topic f-error high while rapid
First of all many thanks for your help!

Here comes my INI

Code:
[EMC] VERSION = 1.1 MACHINE = Igor DEBUG = 0 [DISPLAY] DISPLAY = qtpyvcp VCP= probe_basic POSITION = 0x0 POSITION_OFFSET = RELATIVE POSITION_FEEDBACK = ACTUAL MAX_FEED_OVERRIDE = 2.000000 MAX_SPINDLE_OVERRIDE = 2.000000 MIN_SPINDLE_OVERRIDE = 0.010000 DEFAULT_SPINDLE_SPEED = 1000 INTRO_GRAPHIC = linuxcnc.gif INTRO_TIME = 1 ; File Paths: ; File paths can be relative to the config dir: ; LOG_FILE = hazzy.log ; Or relative to $HOME: (May not be compatible with other GUIs!) ; LOG_FILE = ~/hazzy.log ; Or at an absolute location: ; LOG_FILE = /home/<USER>/hazzy.log ;If not specified, locations default to $HOME LOG_FILE = sigor.log PREFERENCE_FILE = igor.pref PROGRAM_PREFIX = ~/linuxcnc/nc_files INCREMENTS = JOG, 10.000, 1.000, 0.100, 0.010, 0.001 DEFAULT_LINEAR_VELOCITY = 50.0000 MAX_LINEAR_VELOCITY = 90 MIN_LINEAR_VELOCITY = 0.02000 MAX_RAPID_OVERRIDE = 2 DEFAULT_ANGULAR_VELOCITY = 12.0000 MAX_ANGULAR_VELOCITY = 180.0000 MIN_ANGULAR_VELOCITY = 1.6667 GEOMETRY = xyz [VTK] # VTK_Widget Options MACHINE_BOUNDRY = True MACHINE_TICKS = True MACHINE_LABELS = False PROGRAM_BOUNDRY = True PROGRAM_TICKS = True PROGRAM_LABELS = False GRID_LINES = True [FILTER] PROGRAM_EXTENSION = .nc,.txt,.tap ; .ngc is always accepted [RS274NGC] PARAMETER_FILE = sim.var RS274NGC_STARTUP_CODE = F10 S300 G21 G17 G40 G49 G54 G64 P0.001 G80 G90 G91.1 G92.1 G94 G97 G98 #FEATURES = 12 SUBROUTINE_PATH = ~/linuxcnc/configs/IgorProbe/nc_files/sub_progs/ USER_M_PATH = ~/linuxcnc/configs/IgorProbe/nc_files/ REMAP= M6 modalgroup=6 ngc=toolchange [EMCMOT] EMCMOT = motmod COMM_TIMEOUT = 1.0 COMM_WAIT = 0.010 BASE_PERIOD = 100000 SERVO_PERIOD = 1000000 [TASK] TASK = milltask CYCLE_TIME = 0.010 [HAL] HALFILE = hallib/core_igor.hal POSTGUI_HALFILE = hallib/postgui.hal HALUI = halui [HALUI] [TRAJ] AXES = 3 COORDINATES = X Y Z LINEAR_UNITS = mm ANGULAR_UNITS = degree CYCLE_TIME = 0.010 DEFAULT_LINEAR_VELOCITY = 30.0000 MAX_LINEAR_VELOCITY = 90 MAX_LINEAR_ACCELERATION = 13.0 SPINDLES = 1 FORCE_NO_HOMING = 1 #später auskommentiren POSITION_FILE = position.txt [EMCIO] EMCIO = io CYCLE_TIME = 0.100 TOOL_TABLE = tool.tbl [KINS] KINEMATICS = trivkins coordinates=XYZ JOINTS = 3 #================== # X Axis #================== [AXIS_X] MAX_VELOCITY = 90 MAX_ACCELERATION = 270 #MAX_ACCELERATION = 520.0 MIN_LIMIT = -535.0 MAX_LIMIT = 9.0 [JOINT_0] TYPE = LINEAR MAX_VELOCITY = 90 #MAX_ACCELERATION = 520.0 MAX_ACCELERATION = 270 BACKLASH = 0.000 FERROR = 0.5 MIN_FERROR = 0.1 ENCODER_SCALE = -1000 OUTPUT_SCALE = 333.333333 OUTPUT_OFFSET = 0.0 OUTPUT_MIN_LIMIT = -333.333333 OUTPUT_MAX_LIMIT = 333.333333 MAX_OUTPUT = 333.333333 MIN_LIMIT = -535.0 MAX_LIMIT = 9.0 HOME_OFFSET = 0.000000 HOME_SEARCH_VEL = -10.000000 HOME_LATCH_VEL = -0.500000 HOME_FINAL_VEL = -0.000000 HOME_SEQUENCE = 1 HOME_USE_INDEX = NO HOME_IGNORE_LIMITS = NO # PID tuning params DEADBAND = 0.000015 P = 200 I = 0 D = 0 FF0 = 0 FF1 = 1 FF2 = 0.0003 BIAS = 0 #================== # Y Axis #================== [AXIS_Y] MAX_VELOCITY = 291.666666 #MAX_ACCELERATION = 520.0 MAX_ACCELERATION = 180 MIN_LIMIT = -295.0 MAX_LIMIT = 9.0 [JOINT_1] TYPE = LINEAR MAX_VELOCITY = 291.666666 #MAX_ACCELERATION = 520.0 MAX_ACCELERATION = 180 BACKLASH = 0.000 FERROR = 0.50 MIN_FERROR = 0.10 ENCODER_SCALE = -1000 OUTPUT_SCALE = 290 OUTPUT_OFFSET = 0.0 OUTPUT_MIN_LIMIT = -290 OUTPUT_MAX_LIMIT = 290 MAX_OUTPUT = 290 MIN_LIMIT = -295.0 MAX_LIMIT = 9.0 HOME_OFFSET = 0.000000 HOME_SEARCH_VEL = -10.000000 HOME_LATCH_VEL = -0.500000 HOME_FINAL_VEL = -0.000000 HOME_SEQUENCE = 1 HOME_USE_INDEX = NO HOME_IGNORE_LIMITS = NO # PID tuning params DEADBAND = 0.000015 P = 200 I = 0 D = 0 FF0 = 0 FF1 = 0.03 FF2 = 0.01 BIAS = 0 #================== # Z Axis #================== [AXIS_Z] MAX_VELOCITY = 333.333333 #MAX_ACCELERATION = 520.0 MAX_ACCELERATION = 180 MIN_LIMIT = -419.0 MAX_LIMIT = 9.0 [JOINT_2] YPE = LINEAR MAX_VELOCITY = 333.333333 #MAX_ACCELERATION = 520.0 MAX_ACCELERATION = 180 BACKLASH = 0.000 FERROR = 0.50 MIN_FERROR = 0.10 ENCODER_SCALE = -1000 OUTPUT_SCALE = 333.333333 OUTPUT_OFFSET = 0.0 OUTPUT_MIN_LIMIT = -333.333333 OUTPUT_MAX_LIMIT = 333.333333 MAX_OUTPUT = 333.333333 MIN_LIMIT = -419.0 MAX_LIMIT = 9.0 HOME_OFFSET = 0.000000 HOME_SEARCH_VEL = -10.000000 HOME_LATCH_VEL = -0.500000 HOME_FINAL_VEL = -0.000000 HOME_SEQUENCE = 1 HOME_USE_INDEX = NO HOME_IGNORE_LIMITS = NO # PID tuning params DEADBAND = 0.000015 P = 200 I = 0 D = 0 FF0 = 0 FF1 = 0.03 FF2 = 0.01 BIAS = 0 HOME = 0.000 #================== # Spindle #================== [SPINDLE_9] P = 1 #P = 0.0 I = 0 D = 0 FF0 = 0 FF1 = 0 FF2 = 0 BIAS = 0 DEADBAND = 0 MAX_OUTPUT = 10000 ENCODER_SCALE = 4096 OUTPUT_SCALE = -10000 OUTPUT_MIN_LIMIT = -10000 OUTPUT_MAX_LIMIT = 10000

Please Log in to join the conversation.

More
6 years 8 months ago #156400 by anfänger
Replied by anfänger on topic f-error high while rapid
and here comes my Hal:
Code:
# first load all the RT modules that will be needed # kinematics loadrt [KINS]KINEMATICS # motion controller, get name and thread periods from ini file loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS num_spindles=[TRAJ]SPINDLES loadrt hostmot2 loadrt hm2_eth board_ip="192.168.1.121" config=" num_encoders=6 num_pwmgens=0 num_stepgens=0 sserial_port_0=000xxx sserial_port_1=000xxx" setp hm2_7i92.0.watchdog.timeout_ns 5000000 loadrt pid names=pid.x,pid.y,pid.z,pid.s # classic ladder loadrt classicladder_rt #numBits=40 numWords=30 numArithmExpr=100 addf classicladder.0.refresh servo-thread # Load the ladder loadusr classicladder --nogui estop01.clp #Spindle ramp loadrt limit2 names=spindle-ramp loadrt near names=spindle-atspeed # add the Spindele functions to a thread addf spindle-ramp servo-thread addf spindle-atspeed servo-thread # set the parameter for max rate-of-change # (max spindle accel/decel in units per second) setp spindle-ramp.maxv 1000 # add motion controller functions to servo thread addf hm2_7i92.0.read servo-thread addf motion-command-handler servo-thread addf motion-controller servo-thread addf pid.x.do-pid-calcs servo-thread addf pid.y.do-pid-calcs servo-thread addf pid.z.do-pid-calcs servo-thread addf pid.s.do-pid-calcs servo-thread addf hm2_7i92.0.write servo-thread # external output signals # 7i71 net o-tool-clean hm2_7i92.0.7i71.1.1.output-00 net o-tool-01-down hm2_7i92.0.7i71.1.1.output-01 net o-tool-02-down hm2_7i92.0.7i71.1.1.output-02 net o-tool-03-down hm2_7i92.0.7i71.1.1.output-03 net o-tool-04-down hm2_7i92.0.7i71.1.1.output-04 net o-tool-05-down hm2_7i92.0.7i71.1.1.output-05 net o-tool-06-down hm2_7i92.0.7i71.1.1.output-06 net o-tool-07-down hm2_7i92.0.7i71.1.1.output-07 net o-tool-08-down hm2_7i92.0.7i71.1.1.output-08 net o-tool-09-down hm2_7i92.0.7i71.1.1.output-09 net o-tool-11-down hm2_7i92.0.7i71.1.1.output-10 net o-tool-10-down hm2_7i92.0.7i71.1.1.output-11 net o-tool-12-down hm2_7i92.0.7i71.1.1.output-12 net o-tool-basket-down hm2_7i92.0.7i71.1.1.output-13 net o-tool-basket-up hm2_7i92.0.7i71.1.1.output-14 net o-tool-open hm2_7i92.0.7i71.1.1.output-15 net o-tool-all-up hm2_7i92.0.7i71.1.1.output-16 net o-steuerung-1 hm2_7i92.0.7i71.1.1.output-18 net o-impulsfreigabe hm2_7i92.0.7i71.1.1.output-17 net o-pump-1 hm2_7i92.0.7i71.1.1.output-19 net o-airpressure-1 hm2_7i92.0.7i71.1.1.output-20 net o-chiptransport hm2_7i92.0.7i71.1.1.output-21 net o-pump-2 hm2_7i92.0.7i71.1.1.output-22 net o-power-drives hm2_7i92.0.7i71.1.1.output-23 net o-power-drives-delay hm2_7i92.0.7i71.1.1.output-24 #bei Transport auskommentieren net o-brake-z hm2_7i92.0.7i71.1.1.output-25 #/bei Transport auskommentieren net o-pump-3 hm2_7i92.0.7i71.1.1.output-27 # --- SPINDLE-ENABLE --- #net spindle-enable hm2_7i92.0.7i71.1.1.output-26 net o-impulsfreigabe hm2_7i92.0.7i71.1.1.output-26 net spindle-enable hm2_7i92.0.7i77.0.0.output-01 # --- Table-Out --- net o-table-up hm2_7i92.0.7i71.1.1.output-28 net o-table-lock hm2_7i92.0.7i71.1.1.output-29 net o-table-2 hm2_7i92.0.7i71.1.1.output-30 net o-table-1 hm2_7i92.0.7i71.1.1.output-31 net error1 hm2_7i92.0.7i71.1.1.output-32 net enable1 hm2_7i92.0.7i71.1.1.output-33 # --- COOLANT-FLOOD --- net coolant-flood hm2_7i92.0.7i71.1.1.output-34 # --- COOLANT-MIST --- net o-dummy35 hm2_7i92.0.7i71.1.1.output-35 net o-dummy36 hm2_7i92.0.7i71.1.1.output-36 net o-dummy37 hm2_7i92.0.7i71.1.1.output-37 # --- COOLANT-MIST --- net coolant-mist hm2_7i92.0.7i71.1.1.output-38 net o-dummy39 hm2_7i92.0.7i71.1.1.output-39 net o-dummy40 hm2_7i92.0.7i71.1.1.output-40 net o-dummy41 hm2_7i92.0.7i71.1.1.output-41 net o-dummy42 hm2_7i92.0.7i71.1.1.output-42 net o-dummy43 hm2_7i92.0.7i71.1.1.output-43 #net o-dummy44 hm2_7i92.0.7i71.1.1.output-44 #bei Transport auskommentieren net z-enable hm2_7i92.0.7i71.1.1.output-45 net y-enable hm2_7i92.0.7i71.1.1.output-46 net x-enable hm2_7i92.0.7i71.1.1.output-47 #/bei Transport auskommentieren #7i77 # --- SPINDLE-BRAKE --- #net spindle-brake hm2_7i92.0.7i77.0.0.output-05 net o-power-drives-delay hm2_7i92.0.7i77.0.0.output-00 net o-2dummy02 hm2_7i92.0.7i77.0.0.output-02 net o-2dummy03 hm2_7i92.0.7i77.0.0.output-03 net o-2dummy04 hm2_7i92.0.7i77.0.0.output-04 net o-2dummy05 hm2_7i92.0.7i77.0.0.output-05 net o-2dummy06 hm2_7i92.0.7i77.0.0.output-06 net o-2dummy07 hm2_7i92.0.7i77.0.0.output-07 net o-2dummy08 hm2_7i92.0.7i77.0.0.output-08 net o-2dummy09 hm2_7i92.0.7i77.0.0.output-09 net o-2dummy10 hm2_7i92.0.7i77.0.0.output-10 net o-2dummy11 hm2_7i92.0.7i77.0.0.output-11 net o-2dummy12 hm2_7i92.0.7i77.0.0.output-12 net o-2dummy13 hm2_7i92.0.7i77.0.0.output-13 net o-2dummy14 hm2_7i92.0.7i77.0.0.output-14 net o-2dummy15 hm2_7i92.0.7i77.0.0.output-15 # external input signals # 7i70 net i-tool-03-is-up hm2_7i92.0.7i70.1.0.input-00 net i-tool-03-is-down hm2_7i92.0.7i70.1.0.input-01 net i-tool-02-is-up hm2_7i92.0.7i70.1.0.input-02 net i-tool-02-is-down hm2_7i92.0.7i70.1.0.input-03 net i-tool-01-is-up hm2_7i92.0.7i70.1.0.input-04 net i-tool-01-is-down hm2_7i92.0.7i70.1.0.input-05 net i-tool-12-is-up hm2_7i92.0.7i70.1.0.input-06 net i-tool-12-is-down hm2_7i92.0.7i70.1.0.input-07 net i-tool-05-is-down hm2_7i92.0.7i70.1.0.input-08 net i-tool-05-is-up hm2_7i92.0.7i70.1.0.input-09 net i-tool-04-is-up hm2_7i92.0.7i70.1.0.input-10 net i-tool-11-is-down hm2_7i92.0.7i70.1.0.input-12 net i-tool-is-open hm2_7i92.0.7i70.1.0.input-11 net i-tool-10-is-up hm2_7i92.0.7i70.1.0.input-13 net i-tool-10-is-down hm2_7i92.0.7i70.1.0.input-14 net i-tool-11-is-up hm2_7i92.0.7i70.1.0.input-15 net i-tool-09-is-down hm2_7i92.0.7i70.1.0.input-16 net i-tool-09-is-up hm2_7i92.0.7i70.1.0.input-17 net i-tool-08-is-down hm2_7i92.0.7i70.1.0.input-18 net i-tool-08-is-up hm2_7i92.0.7i70.1.0.input-19 net i-tool-07-is-down hm2_7i92.0.7i70.1.0.input-20 net i-tool-07-is-up hm2_7i92.0.7i70.1.0.input-21 net i-tool-06-is-down hm2_7i92.0.7i70.1.0.input-22 net i-tool-06-is-up hm2_7i92.0.7i70.1.0.input-23 net i-tool-basket-is-down hm2_7i92.0.7i70.1.0.input-30 net i-tool-basket-is-up hm2_7i92.0.7i70.1.0.input-31 net i-steuerung-ein hm2_7i92.0.7i70.1.0.input-25 net home-y hm2_7i92.0.7i70.1.0.input-29 net i-tool-04-is-down <= hm2_7i92.0.7i70.1.0.input-27 net home-z <= hm2_7i92.0.7i70.1.0.input-28 net i-power-io hm2_7i92.0.7i70.1.0.input-26 net i-door-1-open hm2_7i92.0.7i70.1.0.input-24 net i-door-1-closed hm2_7i92.0.7i70.1.0.input-32 net i-door-2-open hm2_7i92.0.7i70.1.0.input-33 net i-door-2-closed hm2_7i92.0.7i70.1.0.input-34 net i-door-3 hm2_7i92.0.7i70.1.0.input-35 net i-table-is-lock hm2_7i92.0.7i70.1.0.input-36 net i-table-is-up hm2_7i92.0.7i70.1.0.input-37 net i-table-is-1 hm2_7i92.0.7i70.1.0.input-38 net i-table-is-2 hm2_7i92.0.7i70.1.0.input-39 # --- HOME-Z --- net home-x <= hm2_7i92.0.7i70.1.0.input-40 # --- HOME-A --- net home-a <= hm2_7i92.0.7i70.1.0.input-41 net i-setup-a hm2_7i92.0.7i70.1.0.input-42 net i-dummy43 hm2_7i92.0.7i70.1.0.input-43 net i-dummy44 hm2_7i92.0.7i70.1.0.input-44 net i-dummy45 hm2_7i92.0.7i70.1.0.input-45 net i-dummy46 hm2_7i92.0.7i70.1.0.input-46 net i-dummy47 hm2_7i92.0.7i70.1.0.input-47 #7i77 net i-brake-z-is-on hm2_7i92.0.7i77.0.0.input-00 net i-machine-ready hm2_7i92.0.7i77.0.0.input-01 # --- MAX-X --- net max-x <= hm2_7i92.0.7i77.0.0.input-02 net max-x-n <= hm2_7i92.0.7i77.0.0.input-02-not # --- MAX-Y --- net max-y <= hm2_7i92.0.7i77.0.0.input-03 net max-y-n <= hm2_7i92.0.7i77.0.0.input-03-not # --- MIN-y --- net max-z <= hm2_7i92.0.7i77.0.0.input-04 net max-z-n <= hm2_7i92.0.7i77.0.0.input-04-not net estop-button hm2_7i92.0.7i77.0.0.input-06 net i-pressure-ok hm2_7i92.0.7i77.0.0.input-05 #? net i-temp-bimetall hm2_7i92.0.7i77.0.0.input-07 net i-temp hm2_7i92.0.7i77.0.0.input-08 # --- ESTOP-EXT --- net i-power-io classicladder.0.in-00 net max-x classicladder.0.in-01 net max-y classicladder.0.in-02 net max-z classicladder.0.in-03 net estop-button classicladder.0.in-04 #Druck überbrücken für tests ohne Kopressor, wenn Arme gesichert! net estop-button classicladder.0.in-05 #net i-pressure-ok classicladder.0.in-05 # net i-temp-bimetall classicladder.0.in-06 net estop-button classicladder.0.in-07 # --- ESTOP-OUT --- net estop-ext classicladder.0.in-08 # --- MACHINE-IS-ENABLED --- net machine-is-enabled classicladder.0.in-09 net i-steuerung-ein classicladder.0.in-10 # --- ladder-out net estop-ext <= classicladder.0.out-00 net o-impulsfreigabe <= classicladder.0.out-02 net o-steuerung-1 <= classicladder.0.out-01 net o-power-drives <= classicladder.0.out-04 net o-power-drives-delay <= classicladder.0.out-05 net o-brake-z <= classicladder.0.out-06 net i-unknown1 hm2_7i92.0.7i77.0.0.input-09 net i-unkown2 hm2_7i92.0.7i77.0.0.input-10 net i-servo hm2_7i92.0.7i77.0.0.input-11 net i-spindle hm2_7i92.0.7i77.0.0.input-12 net i-2dummy13 hm2_7i92.0.7i77.0.0.input-13 net i-2dummy14 hm2_7i92.0.7i77.0.0.input-14 net i-2dummy15 hm2_7i92.0.7i77.0.0.input-15 net i-2dummy16 hm2_7i92.0.7i77.0.0.input-16 net i-2dummy17 hm2_7i92.0.7i77.0.0.input-17 net i-2dummy18 hm2_7i92.0.7i77.0.0.input-18 net i-2dummy19 hm2_7i92.0.7i77.0.0.input-19 net i-2dummy20 hm2_7i92.0.7i77.0.0.input-20 net i-2dummy21 hm2_7i92.0.7i77.0.0.input-21 net i-2dummy22 hm2_7i92.0.7i77.0.0.input-22 net i-2dummy23 hm2_7i92.0.7i77.0.0.input-23 net i-2dummy24 hm2_7i92.0.7i77.0.0.input-24 net i-2dummy25 hm2_7i92.0.7i77.0.0.input-25 net i-2dummy26 hm2_7i92.0.7i77.0.0.input-26 net i-2dummy27 hm2_7i92.0.7i77.0.0.input-27 net i-2dummy28 hm2_7i92.0.7i77.0.0.input-28 net i-2dummy29 hm2_7i92.0.7i77.0.0.input-29 net i-2dummy30 hm2_7i92.0.7i77.0.0.input-30 net i-2dummy31 hm2_7i92.0.7i77.0.0.input-31 #******************* # JOINT X #******************* setp pid.x.Pgain [JOINT_0]P setp pid.x.Igain [JOINT_0]I setp pid.x.Dgain [JOINT_0]D setp pid.x.bias [JOINT_0]BIAS setp pid.x.FF0 [JOINT_0]FF0 setp pid.x.FF1 [JOINT_0]FF1 setp pid.x.FF2 [JOINT_0]FF2 setp pid.x.deadband [JOINT_0]DEADBAND setp pid.x.maxoutput [JOINT_0]MAX_OUTPUT setp pid.x.error-previous-target true net x-index-enable <=> pid.x.index-enable net x-enable => pid.x.enable net x-pos-cmd => pid.x.command net x-vel-cmd => pid.x.command-deriv net x-pos-fb => pid.x.feedback net x-output => pid.x.output # ---PWM Generator signals/setup--- setp hm2_7i92.0.7i77.0.1.analogout0-scalemax [JOINT_0]OUTPUT_SCALE setp hm2_7i92.0.7i77.0.1.analogout0-minlim [JOINT_0]OUTPUT_MIN_LIMIT setp hm2_7i92.0.7i77.0.1.analogout0-maxlim [JOINT_0]OUTPUT_MAX_LIMIT net x-output => hm2_7i92.0.7i77.0.1.analogout0 net x-pos-cmd joint.0.motor-pos-cmd net x-enable joint.0.amp-enable-out # enable _all_ sserial pwmgens net x-enable hm2_7i92.0.7i77.0.1.analogena # ---Encoder feedback signals/setup--- setp hm2_7i92.0.encoder.00.counter-mode 0 setp hm2_7i92.0.encoder.00.filter 1 setp hm2_7i92.0.encoder.00.index-invert 0 setp hm2_7i92.0.encoder.00.index-mask 0 setp hm2_7i92.0.encoder.00.index-mask-invert 0 setp hm2_7i92.0.encoder.00.scale [JOINT_0]ENCODER_SCALE net x-pos-fb <= hm2_7i92.0.encoder.00.position net x-vel-fb <= hm2_7i92.0.encoder.00.velocity net x-pos-fb => joint.0.motor-pos-fb net x-index-enable joint.0.index-enable <=> hm2_7i92.0.encoder.00.index-enable net x-pos-rawcounts <= hm2_7i92.0.encoder.00.rawcounts # ---setup home / limit switch signals--- net home-x => joint.0.home-sw-in net max-x-n => joint.0.neg-lim-sw-in net max-x-n => joint.0.pos-lim-sw-in #******************* # JOINT Y #******************* setp pid.y.Pgain [JOINT_1]P setp pid.y.Igain [JOINT_1]I setp pid.y.Dgain [JOINT_1]D setp pid.y.bias [JOINT_1]BIAS setp pid.y.FF0 [JOINT_1]FF0 setp pid.y.FF1 [JOINT_1]FF1 setp pid.y.FF2 [JOINT_1]FF2 setp pid.y.deadband [JOINT_1]DEADBAND setp pid.y.maxoutput [JOINT_1]MAX_OUTPUT setp pid.y.error-previous-target true net y-index-enable <=> pid.y.index-enable net y-enable => pid.y.enable net y-pos-cmd => pid.y.command net y-vel-cmd => pid.y.command-deriv net y-pos-fb => pid.y.feedback net y-output => pid.y.output # ---PWM Generator signals/setup--- setp hm2_7i92.0.7i77.0.1.analogout1-scalemax [JOINT_1]OUTPUT_SCALE setp hm2_7i92.0.7i77.0.1.analogout1-minlim [JOINT_1]OUTPUT_MIN_LIMIT setp hm2_7i92.0.7i77.0.1.analogout1-maxlim [JOINT_1]OUTPUT_MAX_LIMIT net y-output => hm2_7i92.0.7i77.0.1.analogout1 net y-pos-cmd joint.1.motor-pos-cmd net y-enable joint.1.amp-enable-out # ---Encoder feedback signals/setup--- setp hm2_7i92.0.encoder.01.counter-mode 0 setp hm2_7i92.0.encoder.01.filter 1 setp hm2_7i92.0.encoder.01.index-invert 0 setp hm2_7i92.0.encoder.01.index-mask 0 setp hm2_7i92.0.encoder.01.index-mask-invert 0 setp hm2_7i92.0.encoder.01.scale [JOINT_1]ENCODER_SCALE net y-pos-fb <= hm2_7i92.0.encoder.01.position net y-vel-fb <= hm2_7i92.0.encoder.01.velocity net y-pos-fb => joint.1.motor-pos-fb net y-index-enable joint.1.index-enable <=> hm2_7i92.0.encoder.01.index-enable net y-pos-rawcounts <= hm2_7i92.0.encoder.01.rawcounts # ---setup home / limit switch signals--- net home-y => joint.1.home-sw-in net max-y-n => joint.1.neg-lim-sw-in net max-y-n => joint.1.pos-lim-sw-in #******************* # JOINT Z #******************* setp pid.z.Pgain [JOINT_2]P setp pid.z.Igain [JOINT_2]I setp pid.z.Dgain [JOINT_2]D setp pid.z.bias [JOINT_2]BIAS setp pid.z.FF0 [JOINT_2]FF0 setp pid.z.FF1 [JOINT_2]FF1 setp pid.z.FF2 [JOINT_2]FF2 setp pid.z.deadband [JOINT_2]DEADBAND setp pid.z.maxoutput [JOINT_2]MAX_OUTPUT setp pid.z.error-previous-target true net z-index-enable <=> pid.z.index-enable net z-enable => pid.z.enable net z-pos-cmd => pid.z.command net z-vel-cmd => pid.z.command-deriv net z-pos-fb => pid.z.feedback net z-output => pid.z.output # ---PWM Generator signals/setup--- setp hm2_7i92.0.7i77.0.1.analogout2-scalemax [JOINT_2]OUTPUT_SCALE setp hm2_7i92.0.7i77.0.1.analogout2-minlim [JOINT_2]OUTPUT_MIN_LIMIT setp hm2_7i92.0.7i77.0.1.analogout2-maxlim [JOINT_2]OUTPUT_MAX_LIMIT net z-output => hm2_7i92.0.7i77.0.1.analogout2 net z-pos-cmd joint.2.motor-pos-cmd net z-enable joint.2.amp-enable-out # ---Encoder feedback signals/setup--- setp hm2_7i92.0.encoder.02.counter-mode 0 setp hm2_7i92.0.encoder.02.filter 1 setp hm2_7i92.0.encoder.02.index-invert 0 setp hm2_7i92.0.encoder.02.index-mask 0 setp hm2_7i92.0.encoder.02.index-mask-invert 0 setp hm2_7i92.0.encoder.02.scale [JOINT_2]ENCODER_SCALE net z-pos-fb <= hm2_7i92.0.encoder.02.position net z-vel-fb <= hm2_7i92.0.encoder.02.velocity net z-pos-fb => joint.2.motor-pos-fb net z-index-enable joint.2.index-enable <=> hm2_7i92.0.encoder.02.index-enable net z-pos-rawcounts <= hm2_7i92.0.encoder.02.rawcounts # ---setup home / limit switch signals--- net home-z => joint.2.home-sw-in net max-z-n => joint.2.neg-lim-sw-in net max-z-n => joint.2.pos-lim-sw-in #******************* # SPINDLE S #******************* setp pid.s.Pgain [SPINDLE_9]P setp pid.s.Igain [SPINDLE_9]I setp pid.s.Dgain [SPINDLE_9]D setp pid.s.bias [SPINDLE_9]BIAS setp pid.s.FF0 [SPINDLE_9]FF0 setp pid.s.FF1 [SPINDLE_9]FF1 setp pid.s.FF2 [SPINDLE_9]FF2 setp pid.s.deadband [SPINDLE_9]DEADBAND setp pid.s.maxoutput [SPINDLE_9]MAX_OUTPUT setp pid.s.error-previous-target true net spindle-index-enable <=> pid.s.index-enable net spindle-enable => pid.s.enable #net spindle-vel-cmd-rpm => pid.s.command # the output of spindle ramp is sent to the scale in net spindle-ramped <= spindle-ramp.out => => pid.s.command net spindle-vel-fb-rpm => pid.s.feedback net spindle-output <= pid.s.output # ---PWM Generator signals/setup--- setp hm2_7i92.0.7i77.0.1.analogout4-scalemax [SPINDLE_9]OUTPUT_SCALE setp hm2_7i92.0.7i77.0.1.analogout4-minlim [SPINDLE_9]OUTPUT_MIN_LIMIT setp hm2_7i92.0.7i77.0.1.analogout4-maxlim [SPINDLE_9]OUTPUT_MAX_LIMIT net spindle-output => hm2_7i92.0.7i77.0.1.analogout4 # ---Encoder feedback signals/setup--- setp hm2_7i92.0.encoder.05.counter-mode 0 setp hm2_7i92.0.encoder.05.filter 1 setp hm2_7i92.0.encoder.05.index-invert 0 setp hm2_7i92.0.encoder.05.index-mask 0 setp hm2_7i92.0.encoder.05.index-mask-invert 0 setp hm2_7i92.0.encoder.05.scale [SPINDLE_9]ENCODER_SCALE net spindle-revs <= hm2_7i92.0.encoder.05.position net spindle-vel-fb-rps <= hm2_7i92.0.encoder.05.velocity net spindle-index-enable <=> hm2_7i92.0.encoder.05.index-enable # ---setup spindle control signals--- net spindle-vel-cmd-rps <= spindle.0.speed-out-rps net spindle-vel-cmd-rps-abs <= spindle.0.speed-out-rps-abs net spindle-vel-cmd-rpm <= spindle.0.speed-out net spindle-vel-cmd-rpm-abs <= spindle.0.speed-out-abs net spindle-enable <= spindle.0.on net spindle-cw <= spindle.0.forward net spindle-ccw <= spindle.0.reverse net spindle-brake <= spindle.0.brake net spindle-revs => spindle.0.revs #net spindle-at-speed => spindle.0.at-speed net spindle-vel-fb-rps => spindle.0.speed-in net spindle-index-enable <=> spindle.0.index-enable # hijack the spindle speed out and send it to spindle ramp in net spindle-vel-cmd-rpm => spindle-ramp.in # to know when to start the motion we send the near component # (named spindle-at-speed) to the spindle commanded speed from # the signal spindle-cmd and the actual spindle speed # provided your spindle can accelerate at the maxv setting. net spindle-vel-cmd-rpm => spindle-atspeed.in1 net spindle-ramped => spindle-atspeed.in2 #net spindle-vel-fb-rpm => spindle-atspeed.in2 # ---Setup spindle at speed signals--- # the output from spindle-at-speed is sent to motion.spindle-at-speed # and when this is true motion will start net spindle-at-speed <= spindle-atspeed.out => spindle.0.at-speed #sets spindle-at-speed true #****************************** # connect miscellaneous signals #****************************** # ---HALUI signals--- net axis-select-x halui.axis.x.select net jog-x-pos halui.axis.x.plus net jog-x-neg halui.axis.x.minus net jog-x-analog halui.axis.x.analog net x-is-homed halui.joint.0.is-homed net axis-select-y halui.axis.y.select net jog-y-pos halui.axis.y.plus net jog-y-neg halui.axis.y.minus net jog-y-analog halui.axis.y.analog net y-is-homed halui.joint.1.is-homed net axis-select-z halui.axis.z.select net jog-z-pos halui.axis.z.plus net jog-z-neg halui.axis.z.minus net jog-z-analog halui.axis.z.analog net z-is-homed halui.joint.2.is-homed net jog-selected-pos halui.axis.selected.plus net jog-selected-neg halui.axis.selected.minus #änderungen net spindle-manual-cw halui.spindle.0.forward net spindle-manual-ccw halui.spindle.0.reverse net spindle-manual-stop halui.spindle.0.stop net machine-is-on halui.machine.is-on #Probe #net spindle-fwd spindle.0.forward #net spindle-rev spindle.0.reverse #net spindle-speed spindle.0.speed-out net jog-speed halui.axis.jog-speed net MDI-mode halui.mode.is-mdi # ---coolant signals--- net coolant-mist <= iocontrol.0.coolant-mist net coolant-flood <= iocontrol.0.coolant-flood #probe #net lube iocontrol.0.lube #net flood iocontrol.0.coolant-flood #net mist iocontrol.0.coolant-mist # ---probe signal--- net probe-in => motion.probe-input # ---motion control signals--- net in-position <= motion.in-position net machine-is-enabled <= motion.motion-enabled # ---digital in / out signals--- # ---estop signals--- net estop-out <= iocontrol.0.user-enable-out net estop-ext => iocontrol.0.emc-enable-in # ---manual tool change signals--- net tool-change-confirmed iocontrol.0.tool-changed <= iocontrol.0.tool-change net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared

Please Log in to join the conversation.

More
6 years 8 months ago #156401 by PCW
Replied by PCW on topic f-error high while rapid
If you delete all lines like:

net x-vel-cmd => pid.x.command-deriv

you will have a working FF1 term

Please Log in to join the conversation.

More
6 years 8 months ago #156405 by anfänger
Replied by anfänger on topic f-error high while rapid
many thanks
I got rid of

net x-vel-cmd =>
net y-vel-cmd =>
net z-vel-cmd =>

and now it looks way better and I can actually tune :D

Thanks again!

Please Log in to join the conversation.

More
6 years 8 months ago #156443 by bbsr_5a
Replied by bbsr_5a on topic f-error high while rapid
Du solltest alle UMLAUTE auch in den # Kommentaren Vermeiden

warumm ist dein HOME_FINAL_VEL = -0 das sollte immer postive und mindestens 1 sein oder auskommentiert

Da du alles neu ausetzt Frage Solltest du die richtungen so verkabeln das die Motoren zur INI richtig laufen und NICHT Scale- und die
Endschalter dann auch drehen DAS kann dir die Maschine kosten !!
lieber hier 2min mehr investieren

Please Log in to join the conversation.

More
6 years 8 months ago #158056 by anfänger
Replied by anfänger on topic f-error high while rapid
Ich habe versucht alles so zu übernehmen wie es war und eigentlich auch nicht bei verkabelt sondern bin an die Stecker der alten Steuerung gegangen. Ich habe mir über die Zeit nen bisschen was angeeignet und vieles in der hal sind über try and error entstanden und aus diversen Sachen, die ich gefunden habe zusammenkopiert. Das alles negativ läuft habe ich eigentlich von der alten Steuerung übernommen. Und als das Kleid lief habe ich da nix mehr angefasst. Die endschalter und der Notaus werden die Maschine immer zum stehen bringen, da kann linuxcnc nicht eingreifen. Das ist fest verdrahtet.
Ich bin froh, das die Maschine erstmal wieder läuft.

Aber danke vielleicht sollte ich mir wenn wirklich alles so läuft wie ich mir es vorstelle das ganze nochmal sauber aufsetzen. Gruß Patrick

Please Log in to join the conversation.

Time to create page: 0.336 seconds
Powered by Kunena Forum