Advanced Search

Search Results (Searched for: )

  • spumco
  • spumco
18 Nov 2024 19:41
Replied by spumco on topic Simple lathe question

Simple lathe question

Category: Turning

LinuxCNC needs two things to do spindle synchronization (single-point threading): spindle speed and an index (once per turn) signal.

The index signal is required so LCNC knows when to start the tool axis moving.

Spindle speed can come from:
  • Separate encoder connected to spindle
  • Encoder already on the motor
  • Home-made encoder attached to spindle (slotted wheel and sensors, toothed gear and a sensor, etc.)
  • other devices I can't think of at the moment
Index signal can come from:
  • The spindle encoder if it has a built-in index signal
  • Separate 'device', like a proximity or optical sensor that is triggered once-per-revolution.
  • A second/third sensor on the slotted wheel (see above) and an additional once-per-turn slot
  • There's also a 'missing-tooth' configuration available in LCNC, where a software component running in the background keeps track of the encoder wheel pulses, and if it sees a missing pulse where one should be it interprets that as the index pulse.
Did that answer your question?  It's not very specific, but I/we don't know anything about your hardware.

Speaking of which, why are you reluctant to "deal with the spindle/motor"?  Most spindle/motor combinations aren't terribly difficult to get under LCNC's control.
  • bnet
  • bnet's Avatar
18 Nov 2024 19:37

Fanuc Serial Pulse Coders - Red cap servos, mesa 7i76e, how to?

Category: Driver Boards

Ah yes I see it now. I have assigned it to a timer, now I'm seeing the 8us request pulse on the scope at 3 volts (is that correct?). No response from the encoder yet and I'm getting this error, I'll have to check the wiring:

 

Here's where I made it to with the .hal thus far for those who may be on a similar path:
# fanuc encoder test .hal

# kinematics
loadrt [KINS](KINEMATICS)

# motion controller
loadrt [EMCMOT](EMCMOT) servo_period_nsec=[EMCMOT](SERVO_PERIOD) num_joints=[KINS](JOINTS)

# hostmot2 driver
loadrt hostmot2
loadrt [HM2](DRIVER) board_ip=[HM2](ADDRESS) config="num_dplls=-1 num_encoders=1 fanuc_chan_0=AA64 sserial_port_0=00000000"

setp hm2_[MESA](BOARD).0.watchdog.timeout_ns 5000000

setp hm2_7i97.0.dpll.01.timer-us -200
setp hm2_[MESA](BOARD).0.fanuc.00.timer-number 1

loadrt pid names=pid.x

# THREADS
addf hm2_[MESA](BOARD).0.read servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf pid.x.do-pid-calcs servo-thread
addf hm2_[MESA](BOARD).0.write servo-thread

# amp enable
net motion-enable <= motion.motion-enabled

# Global PWM setup
setp hm2_[MESA](BOARD).0.pwmgen.pwm_frequency 48000

# Board: 7i97

# Axis: X Joint: 0 Output: 0
# PID Setup
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

# joint-0 enable chain
net joint-0-index-enable <=> pid.x.index-enable
net joint-0-index-enable <=> joint.0.index-enable
net joint-0-index-enable <=> hm2_[MESA](BOARD).0.encoder.00.index-enable

net joint-0-enable <= joint.0.amp-enable-out
net joint-0-enable => pid.x.enable
net joint-0-enable => hm2_[MESA](BOARD).0.pwmgen.00.enable

# PWM Generator setup
setp hm2_[MESA](BOARD).0.pwmgen.00.output-type 1 #PWM pin0
setp hm2_[MESA](BOARD).0.pwmgen.00.offset-mode 1 # offset mode so 50% = 0
setp hm2_[MESA](BOARD).0.pwmgen.00.scale [JOINT_0]SCALE

# ---Encoder feedback signals/setup---
setp hm2_[MESA](BOARD).0.encoder.00.counter-mode 0
setp hm2_[MESA](BOARD).0.encoder.00.filter 1
setp hm2_[MESA](BOARD).0.encoder.00.index-invert 0
setp hm2_[MESA](BOARD).0.encoder.00.index-mask 0
setp hm2_[MESA](BOARD).0.encoder.00.index-mask-invert 0
setp hm2_[MESA](BOARD).0.encoder.00.scale  [JOINT_0]ENCODER_SCALE

# position command and feedback
net joint-0-pos-cmd <= joint.0.motor-pos-cmd
net joint-0-pos-cmd => pid.x.command

net joint-0-pos-fb <= hm2_[MESA](BOARD).0.encoder.00.position
net joint-0-pos-fb => joint.0.motor-pos-fb
net joint-0-pos-fb => pid.x.feedback

# PID Output
net joint.0.output <= pid.x.output
net joint.0.output => hm2_[MESA](BOARD).0.pwmgen.00.value

# Encoder Setup
setp hm2_[MESA](BOARD).0.encoder.00.scale  [JOINT_0](ENCODER_SCALE)
setp hm2_[MESA](BOARD).0.encoder.00.counter-mode 0
setp hm2_[MESA](BOARD).0.encoder.00.filter 1
setp hm2_[MESA](BOARD).0.encoder.00.index-invert 0
setp hm2_[MESA](BOARD).0.encoder.00.index-mask 0
setp hm2_[MESA](BOARD).0.encoder.00.index-mask-invert 0

# Standard I/O Block - EStop, Etc
# create a signal for the estop loopback
net estop-loopback iocontrol.0.emc-enable-in <= iocontrol.0.user-enable-out

 
  • MaHa
  • MaHa
18 Nov 2024 19:36

linux keeps restoring to an old workspace state after reboot

Category: General LinuxCNC Questions

After start, i closed terminal, firefox and filemanager.
Settings - System - Session and Startup - Tab: saved sessions
Deleted session and saved again as default. That was it

 
 
  • slowpoke
  • slowpoke
18 Nov 2024 19:32 - 18 Nov 2024 19:55

I'm going to convert my 10x22, 2 axis lathe to CNC, conversion images please

Category: Milling Machines

I recently converted my knee mill to CNC, I now want to do the same for my 10x22, 2 axis lathe.

Lathe is a Craftex CX706 which is identical to a PM1022

I would like to see how people have mounted their steppers / servos to give me some mounting ideas, so if you have done a lathe conversion, please post an image of the stepper/servo mounting.

I measured required cross-slide torque at 0.5 Nm (just to move cross-slide), not sure how much extra is required for actual cutting?

I'm leaning towards 7i96S for a control board. Comments welcome.

Much appreciated.
 
  • CallumRD1
  • CallumRD1
18 Nov 2024 18:59 - 18 Nov 2024 19:12
Replied by CallumRD1 on topic eStop with lcec input issue

eStop with lcec input issue

Category: EtherCAT

I don't mean to be obtuse, but do you mind explaining the syntax of a Hal component like that? I don't understand how to integrate the function into my 'net estop-ext <= lcec.0.0.in-1-eStop'.

Edit: I understood it better than I thought. I was chasing around a typo and not realizing it. This is what worked for me. (I know it's not the most compact or elegant syntax, but it works!)

addf not.0 servo-thread
net estop-ext <= lcec.0.0.in-1-eStop
net estop-ext => not.0.in
net not-estop-ext not.0.out => iocontrol.0.emc-enable-in

Thank you for the help!
  • PCW
  • PCW's Avatar
18 Nov 2024 18:56

problem while connecting the MESA 7i76e card to RS422 modbus-RTU and servo drive

Category: Driver Boards

OK then its just

RX <-- TX
TX --> RX

Though polarity may be either way
Mesa uses the EIA-RS-422/423 standard
where RX+ and TX+ are the inverted data
(for compatibility with RS-423/RS-232)
  • Aciera
  • Aciera's Avatar
18 Nov 2024 18:34
Replied by Aciera on topic eStop with lcec input issue

eStop with lcec input issue

Category: EtherCAT

use the 'not' hal component:
linuxcnc.org/docs/html/man/man9/not.9.html
  • azax
  • azax
18 Nov 2024 18:28 - 18 Nov 2024 18:32

problem while connecting the MESA 7i76e card to RS422 modbus-RTU and servo drive

Category: Driver Boards

The drive is using RS-422, and I think it operates in Full Duplex (bidirectional) mode.
Displaying 22366 - 22373 out of 22373 results.
Time to create page: 0.607 seconds
Powered by Kunena Forum