Advanced Search

Search Results (Searched for: )

  • Hakan
  • Hakan
Today 07:37
Replied by Hakan on topic EtherCAT driver as simply positioner

EtherCAT driver as simply positioner

Category: EtherCAT

So the drive didn't have Profile Position?
The trajectory seems a bit crude but as long as it works :)
For higher speeds and if the motor stutters you can try something like this.
Especially the starting and stopping can be smoother.
But don't overdo it, if it works, it works :)
 
  • jarcysgru
  • jarcysgru
  • Hakan
  • Hakan
Today 07:22
Replied by Hakan on topic Ver 2.9.8 Trouble when disabling EOE

Ver 2.9.8 Trouble when disabling EOE

Category: EtherCAT

Halfway down in this post rodw describes how to add a udev rule for /dev/EtherCAT0
forum.linuxcnc.org/ethercat/45336-etherc...-how-to-step-by-step

Fir the interface, there are many ways. I have the following in /etc/network/interfaces for my ethercat interface
It brings the enp2s0 interface up, without IP address
auto enp2s0
iface enp2s0 inet manual
        hardware-irq-coalesce-rx-usecs 0
        pre-up /sbin/ip link set dev $IFACE up
        post-down /sbin/ip link set dev $IFACE down

Check what's in syslog (sudo dmesg) if there are more problem
  • Jugo2
  • Jugo2
Today 07:13 - Today 07:31
Replied by Jugo2 on topic StepperOnline A6 Servo

StepperOnline A6 Servo

Category: EtherCAT

Hey, sowas in der art hab ich mir schon gedacht…
Dank dir, werde es nachher mal ausprobieren. :)
hast du dann nur DEFAULT_LINEAR_VELOCITY runtergesetzt oder auch noch andere werte und auf welchen wert hast du's runtergesetzt?
 
  • cmorley
  • cmorley
Today 06:10
Replied by cmorley on topic qtdragon mod

qtdragon mod

Category: Qtvcp

Did you try this?
Look for the heading : 2.8.2. Handler Patching - Subclassing Builtin Screens
linuxcnc.org/docs/stable/html/gui/qtvcp....cp:modifying-screens

Look for the direction on handler file placement.

Running linuxcnc from the terminal can give more info too.
  • MRx
  • MRx
Yesterday 04:14
Replied by MRx on topic XHC WHB04B development?

XHC WHB04B development?

Category: General LinuxCNC Questions

you might try to read the firmware by glitching the voltage, I did that with an STM32F0 part in the past (but another application), I was even able to re-flash the image. I don't know if it also works with the G0, but you might try. Most importantly is to remove the capacitors.

sec-consult.com/blog/detail/secglitcher-...32-microcontrollers/

I will take a photo of the wired USB version later this week since my pendants are in the shop
  • sofiasfqyw
  • sofiasfqyw
Yesterday 02:23
Replied by sofiasfqyw on topic initramfs-tools error (sudo apt upgrade)

initramfs-tools error (sudo apt upgrade)

Category: Installing LinuxCNC

You can still use LCNC, but that initramfs-tools error means your system’s boot image updates aren’t completing properly, which could cause issues with kernel upgrades or recovery. The quickest fix is to try rebuilding initramfs manually with sudo update-initramfs -u -k all and then run sudo dpkg --configure -a to finish configuring any broken packages. If that fails, checking for specific file permission issues or running sudo apt --fix-broken install can often clear the problem. Make sure to reboot after fixing to confirm everything loads correctly.
  • tar_san
  • tar_san
Yesterday 01:12 - Yesterday 02:02
Replied by tar_san on topic Ver 2.9.8 Trouble when disabling EOE

Ver 2.9.8 Trouble when disabling EOE

Category: EtherCAT

Thank you so much.

Now I installed LinuxCNC to PC (HP Elite 800 G4 with Intel LAN) using 2.9.4 iso,
I did recompile EOE disable along to the procedure, I did not upgrade,

but I could not improve my bad situation in using Yaskawa Drive.

I found ...something strange.
Ethercat service starts automatically,and ethercat slaves works after reboot.( "ehtercat slaves " shows all servo drives )

But I have to do this command to execute LinuxCNC everytime after reboot.

chmod 666 /dev/EtherCAT0

but If I did this, LinuxCNC doesnot handle Yaskawa servo propery (A12).

And also, in Network Connection (in "TASKBAR on the top of Desktop") I could see a NIC Interface that I'm using for "EtherCAT".( see attachment jpeg image)

What am I missing ? What should I check ? 
  • Lcvette
  • Lcvette's Avatar
Yesterday 00:47 - Yesterday 00:49
Replied by Lcvette on topic Add Buttons in Probe Basic

Add Buttons in Probe Basic

Category: QtPyVCP

You can add to the user tab and turn it on in the initial file, this is covered in the docs

kcjengr.github.io/probe_basic/update_notes.html
  • tuxcnc
  • tuxcnc
Yesterday 00:06
Replied by tuxcnc on topic EtherCAT driver as simply positioner

EtherCAT driver as simply positioner

Category: EtherCAT

I can't use PP mode, but I found solution for CSP mode:
#!/bin/bash
halcmd setp lcec.0.0.opmode 6
halcmd setp lcec.0.0.controlword 6
halcmd setp lcec.0.0.controlword 7
halcmd setp lcec.0.0.controlword 15
halcmd setp lcec.0.0.controlword 31
# sleep value must be greater than maximum homing time
sleep 5
halcmd setp lcec.0.0.target-position 0
halcmd setp lcec.0.0.opmode 8
halcmd setp lcec.0.0.controlword 6
halcmd setp lcec.0.0.controlword 7
halcmd setp lcec.0.0.controlword 15
for i in {1000..100000..1000}
do
halcmd setp lcec.0.0.target-position $i
sleep 0.01
done
exit 0
 
  • Marcos DC
  • Marcos DC's Avatar
Yesterday 23:40

Technical questions about CIA402 and homecomp.comp on A6

Category: EtherCAT

@Andrax, first of all: thanks for sharing your examples — it’s clear you’re on the right track, especially by thinking in terms of watchdogs and by splitting the sequence into “start → run → done”. That’s already more than many integrations do.

Just for context: I come more from the Mechatrolink / Yaskawa world, but at the motion-control architecture level the concepts are the same (state machines, ACK semantics, watchdogs, reference sync, etc.), so I’m looking at this more from that angle than from any specific CiA-402 detail.

Looking at your two snippets together, it feels like each one gets an important part right:

In the cia402_homecomp (C) version you already have a proper state machine with timeouts (start_timeout / run_timeout), which is exactly the kind of safety supervision you want in an industrial setup to avoid waiting forever for a drive.

In the pseudo-PLC example you’re already trying to tie the logic to real drive signals (bits from 0x6041, speed, etc.), which is also exactly the right direction.

Where they still feel a bit “misaligned” to me is this:

The cia402_homecomp does have watchdogs, but it’s not really driven by the drive’s real status (it relies on cia-homed / cia-error coming from outside, and doesn’t directly check “started / motion / done” conditions itself).

The pseudo-PLC tries to use real status, but the start and motion proof parts are still fragile (e.g. setting bit 4 = 1 doesn’t guarantee a rising edge, and comparing target speed <> actual speed isn’t a very robust proof that motion really started).

From an industrial point of view, the sequence usually looks roughly like this (independent of whether it’s EtherCAT, Mechatrolink, Sercos, etc.):

Generate a start event (pulse or temporary level, depending on the drive), not just keep the bit stuck at 1 forever.

First watchdog: after start, wait for either a real “homing started” indication or a real proof of motion (position change / actual velocity > threshold). If that doesn’t happen within X seconds → fault.

Second watchdog (overall): while homing is running, wait for the real “done” indication from the drive. If it exceeds the overall timeout → fault.

On completion: clear the start and synchronize the reference (pos_cmd with pos_fb) to avoid jumps / following errors when going back to CSP.

So in a way, the idea in your first code (state machine + timeouts) is right, and the idea in your second one (looking at real 0x6041 bits / real behavior) is also right — what’s missing is bringing those two together: a state machine whose transitions are driven by real drive status and real motion, not only by logical external signals.

One small additional point from an industrial perspective: in your C example a homing fault ends up triggering a global E-STOP. In many systems we try to separate those two concepts: a homing/process fault usually leads to an axis fault or a controlled stop/disable of that axis, while E-STOP is reserved for real safety events. That separation often makes diagnostics and recovery much cleaner, while still keeping the safety chain intact.

This is not meant as criticism of what you’ve done — on the contrary, it’s pretty clear you’re already thinking in exactly the right direction (watchdogs, states, safety). It’s more about aligning it with what is usually done in industrial integrations:
start as an event → real confirmation that it started → real confirmation that it finished → reference synchronization.

If we can move cia402_homecomp more in that direction (even if via masks/config per drive), I think it would solve a big part of the homing and mode-switching issues people are running into.
  • andrax
  • andrax's Avatar
Yesterday 21:42

Error combining cutter compensation (G41/42) with work offset (G55)

Category: G&M Codes

No, G40 must come first.A change is only possible without tool compensation. 
G40
...
G52
 
  • tuxcnc
  • tuxcnc
Yesterday 21:28
Replied by tuxcnc on topic EtherCAT driver as simply positioner

EtherCAT driver as simply positioner

Category: EtherCAT

Set controlword to 6, 7, 15 (op-enabled)
 

It is it.
Now works.
(Not usable yet, but homing and moves).
XML config file:
    <slave idx="0" type="generic" vid="0000ffff" pid="00000001" configPdos="true">
      <!-- 
        Distributed Clock Configuration
        assignActivate: Activation time for DC in ms
        sync0Cycle: Sync0 cycle multiplier (*1 = 1 ms)
        sync0Shift: Phase shift for Sync0 event
      -->
      <dcConf assignActivate="300" sync0Cycle="*1" sync0Shift="0"/>
      <sdoConfig idx="6098" subIdx="00"><sdoDataRaw data ="13 00"/></sdoConfig>  <!-- Home mode 19 (use HOME-switch input)-->
      <!-- 
        Sync Manager for Output (Commands sent to drive)
        idx: Sync Manager index (2 is standard for outputs)
        dir: Direction (out = from master to slave)
      -->
      <syncManager idx="2" dir="out">
        <!-- 
          Process Data Object (PDO) for Output
          idx: PDO index (1600h is standard for TxPDO)
        -->
        <pdo idx="1600">
          <pdoEntry idx="6040" subIdx="00" bitLen="16" halPin="controlword" halType="u32"/>
          <pdoEntry idx="6060" subIdx="00" bitLen="8" halPin="opmode" halType="s32"/>
          <pdoEntry idx="607A" subIdx="00" bitLen="32" halPin="target-position" halType="s32"/>
          <pdoEntry idx="60FF" subIdx="00" bitLen="32" halPin="target-speed" halType="s32"/>
        </pdo>
      </syncManager>

      <!-- 
        Sync Manager for Input (Status received from drive)
        idx: Sync Manager index (3 is standard for inputs)
        dir: Direction (in = from slave to master)
      -->
      <syncManager idx="3" dir="in">
        <!-- 
          Process Data Object (PDO) for Input
          idx: PDO index (1A00h is standard for RxPDO)
        -->
        <pdo idx="1a00">
          <pdoEntry idx="6041" subIdx="00" bitLen="16" halPin="statusword" halType="u32"/>
          <pdoEntry idx="6061" subIdx="00" bitLen="8" halPin="opmode-display" halType="s32"/>
          <pdoEntry idx="6064" subIdx="00" bitLen="32" halPin="actual-position" halType="s32"/>
          <pdoEntry idx="606C" subIdx="00" bitLen="32" halPin="actual-velocity" halType="s32"/>
          <pdoEntry idx="6077" subIdx="00" bitLen="16" halPin="actual-torque" halType="s32"/>
          <!-- Digtial_inputs (cia402 compatible) -->
          <pdoEntry idx="60FD" subIdx="0" bitLen="32" halType="complex">
            <complexEntry bitLen="1" halPin="CW-limit" halType="bit"/>
            <complexEntry bitLen="1" halPin="CCW-limit" halType="bit"/>
            <complexEntry bitLen="1" halPin="HOME-switch" halType="bit"/>
            <complexEntry bitLen="23"/>
            <complexEntry bitLen="1" halPin="IN-4" halType="bit"/>
          </pdoEntry>

        </pdo>
      </syncManager>
    </slave>
Script:
#!/bin/bash
halcmd setp lcec.0.0.opmode 6
halcmd setp lcec.0.0.controlword 6
halcmd setp lcec.0.0.controlword 7
halcmd setp lcec.0.0.controlword 15
halcmd setp lcec.0.0.controlword 31
sleep 2
halcmd setp lcec.0.0.opmode 8
halcmd setp lcec.0.0.controlword 6
halcmd setp lcec.0.0.controlword 7
halcmd setp lcec.0.0.controlword 15
halcmd setp lcec.0.0.target-speed 1
halcmd setp lcec.0.0.target-position 4000
exit 0
And HAL only for testing:
loadrt [KINS]KINEMATICS
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS

loadusr -W lcec_conf ethercat-conf.xml

loadrt lcec

addf lcec.read-all            servo-thread
addf motion-command-handler   servo-thread
addf motion-controller        servo-thread
addf lcec.write-all           servo-thread

setp iocontrol.0.emc-enable-in 1
No speed and acceleration control, it is to do...
  • Ismacr63
  • Ismacr63
Yesterday 21:27
Replied by Ismacr63 on topic Some problems with probe basic lathe

Some problems with probe basic lathe

Category: QtPyVCP

I changed the macro names, but I wasn’t able to get it to work.
I’m not sure if the names I saw in Qt Designer are the correct ones…
  • RotarySMP
  • RotarySMP's Avatar
Yesterday 21:17
Displaying 1 - 15 out of 19066 results.
Time to create page: 0.194 seconds
Powered by Kunena Forum