Hello All

First of all, sorry for the late response. Only today, I got some time 
to work on this project again.

Thanks for all the responses!

@Chris: changing to "velocity mode" did not help (setp 
axis.0.jog-vel-mode true) :-(

Now, I try to explain more what I try to do and what I use for it:

The idea is to replace the original (broken) CNC controller of Schaublin 
125 lathe. (http://www.wfrauenfelder.ch/LAP2005/LAP2005.htm, here you 
can see some picture from an other guy how rebuilt the same type of 
lathe with Siemens components).

On the lathe I am working on, only the original CNC controller is 
broken. Everything else works (Drives, Spindle, tool changer, sensors, 
general electric, ...).

So, I use EMC2 to control the original parts.
I use a INTEL D945GCLF MB with Atom processor and 2 Gig of RAM (but only 
1 Gig of RAM is seen by the kernel). I installed from the EMC2 Ubuntu 
6.06 Live CD to the HD. Full update with update-manager (or "sudo 
apt-get update; sudo apt-get upgrade).
Now, "lsb_release -a"
shows "Ubuntu 6.06.2 LTS" and EMC2 is version 2.2.8.

At the moment, the connection to the machine parts is done through the 
parallel port with a high speed opto coupler board.

First, I work on the X and Z axis only.
The original Schaublin drives consists of a Servo or DC motor with 
resolver and a big drive controller. The interface to these drive 
controller (from the control signal view) is fairly simple, +5V, GND, 
puls, direction and one signal called "precis" (Schaublin is located in 
the French part of Switzerland).
Therefor, I call this drives "pseudo stepper".

I am using +5V, GND, puls and direction signal at the moment.

 From the manual of the lathe, the highest speed for the z axis is 3000 
mm/min. and for the X axis 1500 mm/min. The resolution for the Z axis is 
0.005 mm and for the X axis 0.0025 mm.

The .ini and .hal file can be found at the end of this post.

After writing almost everything what I am know and what I try to do, I 
will try to explain the problem again:

I can move both axis in jog mode. Homing does work and I tried G00 and 
G01 commands which work, too. I use the soft buttons on the axis GUI or 
the arrow keys of the keyboard to jog. When I jog in low speed the axis 
will stop as soon as release either the soft button or the arrow key. 
When I do the same thing in high speed, the axis will still move for 
several mm after I released the key / soft button. So, it does not 
matter what I use, soft key or arrow key on the keyboard.
I think the axis should stop as soon as I release the key, doesn't 
matter what speed I use. But this is not the case.

Today I measured the time (with a stop watch) to move 200 mm in full 
speed (G00 Z-200.0) and got +8 seconds. Looks like the it does not move 
at 3000 mm / min.

After writing so much, I hope you don't get tired reading it ;-)

Thomas

schaublin.ini:
# Generated by stepconf at Thu Jan 15 19:14:21 2009
# If you make changes to this file, they will be
# overwritten when you run stepconf again

[EMC]
MACHINE = schaublin
NML_FILE = emc.nml
DEBUG = 0

[DISPLAY]
DISPLAY = axis
EDITOR = gedit
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
MAX_FEED_OVERRIDE = 1.2
INTRO_GRAPHIC = emc2.gif
INTRO_TIME = 1
PROGRAM_PREFIX = /home/rollak/emc2/nc_files
INCREMENTS = 5mm 1mm .5mm .1mm .05mm .01mm .005mm
PYVCP = panel.xml
LATHE = 1

[TASK]
TASK = milltask
CYCLE_TIME = 0.010

[RS274NGC]
PARAMETER_FILE = emc.var

[EMCMOT]
EMCMOT = motmod
SHMEM_KEY = 111
COMM_TIMEOUT = 1.0
COMM_WAIT = 0.010
BASE_PERIOD = 100000
SERVO_PERIOD = 1000000

[HAL]
HALFILE = schaublin.hal
POSTGUI_HALFILE = postgui.hal

[TRAJ]
AXES = 3
COORDINATES = X Z
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
CYCLE_TIME = 0.010
DEFAULT_VELOCITY = 10.00
MAX_LINEAR_VELOCITY = 50.00

[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
TOOL_TABLE = tool.tbl

[AXIS_0]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 50.0
MAX_ACCELERATION = 300.0
STEPGEN_MAXACCEL = 0.0
SCALE = 400.0
FERROR = 0
MIN_FERROR = 10000.0
MIN_LIMIT = -360.0
MAX_LIMIT = 0.0
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 10.0
HOME_LATCH_VEL = -0.200000
HOME_IGNORE_LIMITS = YES
HOME_SEQUENCE = 0

[AXIS_2]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 50.0
MAX_ACCELERATION = 300.0
STEPGEN_MAXACCEL = 0.0
SCALE = 200.0
FERROR = 0
MIN_FERROR = 10000.0
MIN_LIMIT = -400.0
MAX_LIMIT = 0.0
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 20.0
HOME_LATCH_VEL = -1.00000
HOME_IGNORE_LIMITS = YES
HOME_SEQUENCE = 0

schaublin.hal:
# Generated by stepconf at Thu Jan 15 19:14:21 2009
# If you make changes to this file, they will be
# overwritten when you run stepconf again
loadrt trivkins
loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD 
servo_period_nsec=[EMCMOT]SERVO_PERIOD 
traj_period_nsec=[EMCMOT]SERVO_PERIOD key=[EMCMOT]SHMEM_KEY 
num_joints=[TRAJ]AXES
loadrt probe_parport
loadrt hal_parport cfg=0x378
setp parport.0.reset-time 40000
loadrt stepgen step_type=0,0
loadrt encoder num_chan=1
loadrt pwmgen output_type=0

addf parport.0.read base-thread
addf stepgen.make-pulses base-thread
addf encoder.update-counters base-thread
addf pwmgen.make-pulses base-thread
addf parport.0.write base-thread
addf parport.0.reset base-thread

addf stepgen.capture-position servo-thread
addf encoder.capture-position servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf stepgen.update-freq servo-thread
addf pwmgen.update servo-thread

net spindle-cmd <= motion.spindle-speed-out => pwmgen.0.value
net spindle-enable <= motion.spindle-on => pwmgen.0.enable
#net spindle-pwm <= pwmgen.0.pwm
setp pwmgen.0.pwm-freq 100.0
setp pwmgen.0.scale 1166.66666667
setp pwmgen.0.offset 0.114285714286
setp pwmgen.0.dither-pwm true
net spindle-cw <= motion.spindle-forward
net spindle-ccw <= motion.spindle-reverse

setp encoder.0.position-scale 400.000000
net spindle-position encoder.0.position => motion.spindle-revs
net spindle-velocity encoder.0.velocity => motion.spindle-speed-in
net spindle-index-enable encoder.0.index-enable <=> 
motion.spindle-index-enable
net spindle-phase-a encoder.0.phase-A
net spindle-phase-b encoder.0.phase-B
net spindle-index encoder.0.phase-Z

net estop-out => parport.0.pin-01-out
net xstep => parport.0.pin-02-out
setp parport.0.pin-02-out-reset 1
net xdir => parport.0.pin-03-out
setp parport.0.pin-03-out-invert 1
net zstep => parport.0.pin-04-out
setp parport.0.pin-04-out-reset 1
net zdir => parport.0.pin-05-out
setp parport.0.pin-05-out-invert 1
net spindle-cw => parport.0.pin-06-out
net spindle-ccw => parport.0.pin-07-out
#net spindle-pwm => parport.0.pin-08-out

net both-home-x <= parport.0.pin-10-in-not
net both-home-z <= parport.0.pin-11-in-not
net spindle-index <= parport.0.pin-12-in
net spindle-phase-a <= parport.0.pin-13-in
net spindle-phase-b <= parport.0.pin-15-in

setp stepgen.0.position-scale [AXIS_0]SCALE
setp stepgen.0.steplen 40000
setp stepgen.0.stepspace 40000
setp stepgen.0.dirhold 100000
setp stepgen.0.dirsetup 100000
setp stepgen.0.maxaccel [AXIS_0]STEPGEN_MAXACCEL
net xpos-cmd axis.0.motor-pos-cmd => stepgen.0.position-cmd
net xpos-fb stepgen.0.position-fb => axis.0.motor-pos-fb
net xstep <= stepgen.0.step
net xdir <= stepgen.0.dir
net xenable axis.0.amp-enable-out => stepgen.0.enable
net both-home-x => axis.0.home-sw-in
#net both-home-x => axis.0.neg-lim-sw-in
#net both-home-x => axis.0.pos-lim-sw-in

setp stepgen.1.position-scale [AXIS_2]SCALE
setp stepgen.1.steplen 40000
setp stepgen.1.stepspace 40000
setp stepgen.1.dirhold 100000
setp stepgen.1.dirsetup 100000
setp stepgen.1.maxaccel [AXIS_2]STEPGEN_MAXACCEL
net zpos-cmd axis.2.motor-pos-cmd => stepgen.1.position-cmd
net zpos-fb stepgen.1.position-fb => axis.2.motor-pos-fb
net zstep <= stepgen.1.step
net zdir <= stepgen.1.dir
net zenable axis.2.amp-enable-out => stepgen.1.enable
net both-home-z => axis.2.home-sw-in
#net both-home-z => axis.2.neg-lim-sw-in
#net both-home-z => axis.2.pos-lim-sw-in

net estop-out <= iocontrol.0.user-enable-out
net estop-out => iocontrol.0.emc-enable-in

loadusr -W hal_manualtoolchange
net tool-change iocontrol.0.tool-change => hal_manualtoolchange.change
net tool-changed iocontrol.0.tool-changed <= hal_manualtoolchange.changed
net tool-number iocontrol.0.tool-prep-number => hal_manualtoolchange.number
net tool-prepare-loopback iocontrol.0.tool-prepare => 
iocontrol.0.tool-prepared




------------------------------------------------------------------------------
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword
_______________________________________________
Emc-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/emc-users

Reply via email to