Advanced Search

Search Results (Searched for: )

  • tar_san
  • tar_san
Today 10:03
Replied by tar_san on topic Cannot JOG Plus/Minus move in TeleOp mode

Cannot JOG Plus/Minus move in TeleOp mode

Category: Basic Configuration

Thanks !

I was using LinuxCNC Ver 2.4.5 at that time.
But Today, after I just upgraded to Ver 2.4.8, everything works well.
  • andrax
  • andrax's Avatar
Today 10:01

Technical questions about CIA402 and homecomp.comp on A6

Category: EtherCAT

@rodw Yes, I would have implemented it in the same way in a PLC. The only thing missing is the safety timer from start homing to axis in motion. Then the homing would be practically monitored. Regarding the axis jumping, you could set the feed rates to minimum after completion until Linuxcnc has synchronized.

@Hakan, aren't the csp csv and pv modes managed by the driver? I believe that torque mode is not supported by the A6 during homing. However, it would be an option if you let Linuxcnc manage homing again. Since the Z pulse is not output by the A6, you could perform the torque search. 

 
  • andrax
  • andrax's Avatar
Today 09:16 - Today 09:17
Replied by andrax on topic StepperOnline A6 Servo

StepperOnline A6 Servo

Category: EtherCAT

Das hochfrequente piepen ist ganz normal.
Kommt von der Lageregelung.
Autotuning habe ich über die interne Servofunktion durchgeführt. Der Ablauf steht in der Doku.

@Jugo2
Das springen der Achsen hat sich geklärt.
Beim internen homing desynchonisieren sich die Achsen von linuxcnc. Nach Abschluss vom homing versucht linuxcnc die Position der Achsen wieder zu synchronisieren. Das führt zum bekannten springen.
Stelle die Default speeds in der .ini auf Minimalwerte, dann sollte es weg sein.
  • Hakan
  • Hakan
Today 08:04

Technical questions about CIA402 and homecomp.comp on A6

Category: EtherCAT

rodw, I kind of think of a structure like this
if drive ready
  if csp

  else if csv

  else if pv
...
  else if probing

  else if homing
     if homing_method == 1
     else if homing_method == 2
     else if homing_method == 37
        Do the torque homing. Although it doesn't seem to be standard
     
Keep track of what op-mode we were in last time so we recognize a transition
between op-modes. To deal with offsets and such things.
  • Marcos DC
  • Marcos DC's Avatar
Today 07:54 - Today 08:00

Technical questions about CIA402 and homecomp.comp on A6

Category: EtherCAT

Sorry if this is drifting a bit from Andrax’s original question.
@NWE
I’m not really talking about old analog hardware or tricky retrofits. My reference is mainly the integration effort in LinuxCNC itself, comparing FPGA-based step/dir (Mesa) or ±10 V with well-documented drives versus EtherCAT + CiA402. In that context, step/dir on Mesa is a very different beast from software stepgen, and is usually much more KISS and predictable to integrate.

And by the way, thanks to rodw for the work he’s been doing—not only on this, but for his contributions to the LinuxCNC community as a whole.
  • NWE
  • NWE's Avatar
Today 05:56

Building a bigger faster delta type 3D printer

Category: Additive Manufacturing

The rotary extruders sure look great, but it turns out they're patented, although there seem to be some ideas out there that the patent may not be completely valid. In any case, I think I will end up leaving rotary extruders for a later date. I looked into buying a rotary extruder from the company holding the patent... I didn't ask them yet whether I could buy just the extruder. It looks snazzy enough I suspect it might cost more than my entire 3d printer.  fuselab3d.com/fl300m

I had already ordered my original choice of extruder (HGX LITE) in hopes I can make it fit. I'm not real enthused about making the center piece bigger, I will look at modifying the extruder once it comes.

The big gear sticking out the top appears to be the one driven by the motor, I will try flipping the motor 180 degrees and mount it above the gear.
  • rodw
  • rodw's Avatar
Yesterday 03:16

Technical questions about CIA402 and homecomp.comp on A6

Category: EtherCAT

the cis402 state machine looks something like this:
    // STATE TRANSITIONS
    switch (state) {
        
        case 0x0000: 
        case 0x0040: // Switch On Disabled
            d->control.raw = 0x0006; // CMD: Shutdown
            break;

        case 0x0021: // Ready to Switch On
            d->control.raw = 0x0007; // CMD: Switch Onif (homed && !data.prev_homed) {
            break;

        case 0x0023: // Switched On
            d->control.raw = 0x000F; // CMD: Enable Operation
            break;

        case 0x0007: // Quick Stop Active
            d->control.raw = 0x0000; // CMD: Disable Voltage (Reset the stop)
            break;

        case 0x0027: // OPERATION ENABLED
            d->control.raw = 0x000F; // Maintain Enable
            return 1;                // Signal: "Drive Ready for Motion"

        default:     
            d->control.raw = 0x0000; // Safety Fallback
            break;
    }
    return 0; // Still transitioning to on state

state is the status register. d->control.raw is the control register. This is in a separate procedure that eventually returns true (1) if the machine is turned on.

Then you can proceed to homing etc if you are using internal homing.. Something like this
    // 4. Drive Logic: Only command motion/homing if Operational AND Mode is correct
    if (drive_ready) {
        if (homing) {
            opmode_out = 6;
            
            // --- DYNAMIC TORQUE LIMIT ---
            // Use the HAL pin 'torque_limit', but maybe you want to 
            // force it lower specifically for homing?
            // Usually, we just use the pin value set by the user.
            drive_torque_limit_out = (int32_t)(homing_torque_limit * torque_scale);

            if (opmode_display_in == 6) {
                if (!data.status.bits.op_error) 
                    data.control.bits.op_specific1 = 1;
            }
        } else {
            opmode_out = default_opmode;
            data.control.bits.op_specific1 = 0;
            
            // Set normal torque limit (100% or as defined by HAL)
            drive_torque_limit_out = (int32_t)(torque_limit * torque_scale);

            if (mode_verified) {
                drive_target_position = (int32_t)(target_position * data.s_pos_scale);
                drive_target_velocity = (int32_t)(target_velocity * data.s_vel_scale);
            }
        }
    } 
    else {
        // Drive not ready (Faulted, Timeout, or Powering up)
        opmode_out = default_opmode;
        data.control.bits.op_specific1 = 0;
        drive_torque_limit_out = 0; // Safety clamp
    }

this attempts to limit the torque when homing, you can see we receive a homing signal and we wait until we can read it back to confirm it stuck, then wait until homing completes or errors.

The status word looks something like this (homing bits are also used by manufacturers when not homing
typedef struct {
    union {
        unsigned short raw;
        struct {   
            unsigned short ready_to_switch_on :1; // Bit 0
            unsigned short switched_on        :1; // Bit 1
            unsigned short op_enabled         :1; // Bit 2
            unsigned short fault              :1; // Bit 3
            unsigned short voltage_enabled    :1; // Bit 4
            unsigned short quick_stop         :1; // Bit 5
            unsigned short sw_on_disabled     :1; // Bit 6
            unsigned short warning            :1; // Bit 7
            unsigned short manufacturer       :1; // Bit 8
            unsigned short remote             :1; // Bit 9
            unsigned short target_reached     :1; // Bit 10
            unsigned short internal_limit     :1; // Bit 11
            unsigned short op_specific        :1; // Bit 12 (Homing Attained)
            unsigned short op_error           :1; // Bit 13 (Homing Error)
            unsigned short manufacturer_1     :1; // Bit 14
            unsigned short manufacturer_2     :1; // Bit 15
        } bits;
    } status;
 
  • Mekanoid
  • Mekanoid
Yesterday 03:02
Replied by Mekanoid on topic No movement, stepconf and MX4660

No movement, stepconf and MX4660

Category: General LinuxCNC Questions

Thank you for the suggestions.
i got the machine to move but its not correct,
on the MX4660, the enable LED is difficult to see due to the way they mounted it.
I turned the charge pump switch to "on" meaning that the MX4660 will not look for the 10 kw signal, set pin 16 to unused in stepconf, and the machine now moves, only mostly wrong.

Joint 0 and 1 should be the X axis using 2 motors ( X and X tandem for the gantry using Mx4660 X and A drivers), with joint 1 turning the opposite direction ( rack and pinion, there's a negative value for joint 1 Scale in the.ini file)
Joint 2 should be the y axis, and joint 3 the Z Axis.

What I'm actually getting though is Joint 0 does nothing, Joint 1 moves X only, joint 2 moves X tandem, and Joint 3 moves Z as it should.

Kind of strange. I will go back and double check all the wiring to the drivers and motors.

I will also check the parallel cable signals, I only have a multimeter, but I should see whats coming out signal wise, thanks again for that idea!.
  • dbtayl
  • dbtayl
Yesterday 02:50
DMM DYN 4 spindle servo tuning tip was created by dbtayl

DMM DYN 4 spindle servo tuning tip

Category: General LinuxCNC Questions

Want to get information out there that might help somebody. Short version: If you're having trouble with a DMM DYN4 used as a spindle getting "lost phase" errors and not being able to hit the top rated RPM, lowering the gains might help.

Longer version:

My little baby BT30 benchtop mill is set up with a DMM DYN4 servo as the spindle- drive is DYN4-H01, motor is the 1 kW 86M-DHT-A6MK1. I'm using it in position mode with quadrature inputs. I don't have an index pulse on it, so I haven't tried rigid tapping. The spindle is driven with a 28:44 motor:spindle pulley ratio, using GT3 belts.

DMM was very helpful in getting it set up- provided a tuning procedure and debugging help. Great customer service. Despite that, performance was disappointing- notably the "lost phase" errors, which occurred at high speeds (4000 motor RPM and above, or thereabouts) or under anything but light cuts. Checking the drive's diagnostics page, I could also see the "on position" signal getting inconsistent as RPM increased, even under no load.

I figured it needed more gain- not holding position under no load -> needs more gain. That made things worse, if anything. Adjusting the torque constant (current smoothing) and integration gain settings (two things DMM clearly instructed NOT to change) maybe kinda helped a little bit, but still far from what I expected.

I eventually got fed up and decided to try LOWER gains... works great. Totally unintuitive to me. The chatter I was experiencing cutting 304 stainless also seems to have been resolved. I'm still working up to pushing the limits of the machine, but so far I haven't seen anything to indicate those gains will be too low under heavy cuts.

Every machine is probably different, but FWIW IIRC I ended up with a main gain around 20 and a speed gain around 15. IIRC the integration gain is back at 1 and the torque constant at 127 (per DMM recommendations for this application), but I'm not at the machine to check any of those numbers right now.

Hope that helps somebody! Mods feel free to move if this belongs somewhere else.
  • Lcvette
  • Lcvette's Avatar
Yesterday 01:41
Replied by Lcvette on topic Some problems with probe basic lathe

Some problems with probe basic lathe

Category: QtPyVCP

What is your screen resolution?
  • MRx
  • MRx
Yesterday 23:32 - Yesterday 03:58
Replied by MRx on topic Mitsubishi SSCNET

Mitsubishi SSCNET

Category: Installing LinuxCNC

I also ordered some Ethercat boards to play around with it, for now I just use regular Ethernet. I will suspend working on it until after chinese new year since I need connectors.
I also hope I can get hands on more Mitsubishi/possibly other machinery in Taiwan.

Chaining up multiple boards with Ethercat seems to be interesting, especially for the peripheral part.

The Zynq is definitely super powerful, I was able to get away with a microcontroller and accurate timings.
But the MDS-B series only needs 3.55ms framing, not 0.222, jitter is around 20ns (while the measured jitter on the Meldas M65 controller is 40-60 ns .. of course all relatively due to my non certified measurement equipment).
My plan is to make it pretty much modular with Ethercat chaining up various modules for certain tasks.
I want to mix my system with different motors than Mitsubishi for 5 axis support.

I have an old DE2 FPGA board (with ethernet), and a couple of LatticeSemi LFE3/5 boards (also with Ethernet) here which I almost wanted to use for it. I think I will just stick with various microcontrollers and small FPGAs if needed to keep it simple in the future.
  • NWE
  • NWE's Avatar
Yesterday 22:45

Ursviken Pullmax Optima 130 press brake retrofit with 4 axis backgage

Category: Show Your Stuff

Finally, got to test drive the pullmax_optima component with closed loop PID, only p set to 5. Left and right side sync nicely, but with loud groaning noise. This machine runs smooth and quiet when I run it open loop. I think what I'm seeing in halscope is a combination of untuned PID and non-linear hydraulics.

chan. 1 pwmgen.04.value = controls left ram servo valve (driven by j3.vel_pid.output)
chan. 2 pwmgen.05.value = controls right ram servo valve (driven by j4.vel_pid.output)
chan. 3 pwmgen.06.value = controls tonnage proportional valve; ultimately comes from a slider on my test gui.
chan. 4,5,6,9 are the discrete spool valve coil power outputs (cr-200 to cr-203)
chan. 7 j3-motor-pos-cmd ultimately comes from a slider on my test gui. This is the input to the pos_pid.command
chan. 8 j3-motor-vel-cmd is signal connecting pos_pid.output => vel_pid.command

I was hoping velocity PID will allow me to skip the low frequency dither these valves like; but now I'm thinking my lack of that dither is what is fighting my PID. I will try lowering the p value first in case 5 is actually too high, next step is adding that low frequency dither, probably via siggen or a custom component.
  • PCW
  • PCW's Avatar
Yesterday 21:46 - Yesterday 21:47

7i80HD+7i48+7i42TA+7i84 Mesa firmware request (morbidelli author 503 retrofit)

Category: Driver Boards

It should be possible with hm2_modbus,
(as long as the devices sharing a link have the same baud rate)
mesa-modbus only supports one device (per host UART)
 
  • PCW
  • PCW's Avatar
Yesterday 21:44

Retrofit 7 ton HOMAG with Rexroth motors and drives - mesa 7i97t

Category: General LinuxCNC Questions

No, if you set all PID values to 0 in the .ini file, run linuxcnc
and set LinuxCNC into the machine-on state, all PWM values will be 0
and the PWM enables should all be true (at least for the joints enabled in the hal file)
  • Nkbhvid
  • Nkbhvid
Yesterday 21:35

Retrofit 7 ton HOMAG with Rexroth motors and drives - mesa 7i97t

Category: General LinuxCNC Questions

“Also insure the all PWM enables are true, and all PWM values are 0”
Should I define this in HAL?
Displaying 1 - 15 out of 19194 results.
Time to create page: 0.183 seconds
Powered by Kunena Forum