Advanced Search

Search Results (Searched for: )

  • Hakan
  • Hakan
Today 17:17 - Today 17:24
Replied by Hakan on topic Ethercat random jitter fix

Ethercat random jitter fix

Category: EtherCAT

You have actually switched off the pll, the synchronization code.
You can double-check that with the lcec.pll-err value.
If that one counts up/down it is on. If lcec.pll-err isn't moving it's off.

There is no difference in the code with "-" and syncToRefClock.
It is just two different ways to switch on the option. The actual code is the same.
The bug happens to to be when both options are used, it will be left off in that case
if I understand what I wrote by mistake once.
  • bedouno
  • bedouno
Today 16:21
Replied by bedouno on topic HAL COMPONENT FOR

HAL COMPONENT FOR

Category: HAL

thanks for your great contribut and i will study it, i have searched for a while and i got this :' the trajectory planner process the G-code and pass the move sequence to a queue to be managed by the motion planner , so what if we can modify the sequence process the queue by our component our module to calculate the angle and specify the cretical angle points then inject this to the motion planner , we can use the lookahead trajectory planner strategy ' .
how you see that
  • papagno-source
  • papagno-source
Today 16:14
Replied by papagno-source on topic Ethercat random jitter fix

Ethercat random jitter fix

Category: EtherCAT

I've already run tests with:
refClockSyncCycles="1" and syncToRefClock= "true"
refClockSyncCycles="5" and syncToRefClock= "true"
refClockSyncCycles="1000" and syncToRefClock= "true"
refClockSyncCycles="-1" and syncToRefClock= "true"

With these settings, the machine makes noise when moving.
Now I've set refClockSyncCycles="-1" and syncToRefClock= "false"
and the machine is working without problems so far.
  • endian
  • endian's Avatar
Today 15:55
Replied by endian on topic Ethercat random jitter fix

Ethercat random jitter fix

Category: EtherCAT

There is actually a bug in the code when you use both the "-" sign and the syncToRefClock option.
Both will switch on the pll code.
The bug is corrected, so depending on if you have that version or not.
Fix: don't use the "-" sign to switch on/off the pll code. Use only the syncToRefClock option.

 

last time when I was using the syncToRefClock instead of negative cycles there was an error of synchronization ... 
[ 2129.412707] EtherCAT 0: Master thread exited.
[ 2129.412708] EtherCAT 0: Starting EtherCAT-OP thread.
[ 2129.412731] EtherCAT WARNING 0: 1 datagram UNMATCHED!
[ 2129.576578] EtherCAT 0: Slave states on main device: OP.
[ 2296.800969] EtherCAT ERROR 0-0: AL status message 0x001A: "Synchronization error".
[ 2296.801476] EtherCAT 0-0: Acknowledged state SAFEOP.
[ 2297.416576] EtherCAT WARNING 0: 6 datagrams UNMATCHED!
[ 2350.481058] EtherCAT ERROR 0-0: AL status message 0x001A: "Synchronization error".
[ 2350.481557] EtherCAT 0-0: Acknowledged state SAFEOP.
[ 2434.605096] EtherCAT 0: Slave states on main device: SAFEOP + ERROR.
[ 2434.613479] EtherCAT ERROR 0-0: AL status message 0x001A: "Synchronization error".
[ 2434.614728] EtherCAT 0-0: Acknowledged state SAFEOP.
[ 2434.832592] EtherCAT 0: Slave states on main device: OP.
[ 2574.400506] EtherCAT 0: Master thread exited.
[ 2574.400515] EtherCAT 0: Starting EtherCAT-IDLE thread.
[ 2574.400543] EtherCAT ERROR 0-0: Failed to receive AL state datagram: 
[ 2574.400544] EtherCAT 0: Releasing master...
[ 2574.400545] Datagram initialized.
[ 2574.400549] EtherCAT 0: Released.
[ 2574.405124] EtherCAT 0: Slave states on main device: SAFEOP + ERROR.
[ 2574.412778] EtherCAT ERROR 0-0: AL status message 0x001A: "Synchronization error".
[ 2574.413072] EtherCAT 0-0: Acknowledged state SAFEOP.
[ 2574.421158] EtherCAT 0: Slave states on main device: PREOP.
[ 2574.724604] EtherCAT WARNING: Datagram 000000005d8b16eb (master-fsm) was SKIPPED 1 time.

it is just foe experimenting purposes but durin negative syncs are everything rock solid ...
<masters>
    <master idx="0" appTimePeriod="250000" refClockSyncCycles="-100">    
        <slave idx="0" type="generic" vid="0x0000006a" pid="0x03000700" name="x-s343" configPdos="true">

            <!-- driver outputs setup -->
            <!-- reset number of mapped PDOs -->
            <sdoConfig idx="1A00" subIdx="00">
            <sdoDataRaw data="00 3F 6C 65"/>
            </sdoConfig>
            <!-- status word UINT16 -->
            <sdoConfig idx="1A00" subIdx="01">
            <sdoDataRaw data="10 00 41 60"/>
            </sdoConfig>
            <!-- incremental position from motor feedback INT32 -->
            <sdoConfig idx="1A00" subIdx="02">
            <sdoDataRaw data="20 00 63 60"/>
            </sdoConfig>
            <!--
             incremental position from motor extrenal feedback INT32 
            -->
            <sdoConfig idx="1A00" subIdx="03">
            <sdoDataRaw data="20 00 50 20"/>
            </sdoConfig>
            <!-- actual velocity in incremental status INT32 -->
            <sdoConfig idx="1A00" subIdx="04">
            <sdoDataRaw data="20 00 6C 60"/>
            </sdoConfig>
            <!-- internal operation mode INT16 -->
            <sdoConfig idx="1A00" subIdx="05">
            <sdoDataRaw data="10 00 53 23"/>
            </sdoConfig>
            <!-- driver warning code INT32 -->
            <sdoConfig idx="1A00" subIdx="06">
            <sdoDataRaw data="20 00 00 20"/>
            </sdoConfig>
            <!-- actual AI status INT16 -->
            <sdoConfig idx="1A00" subIdx="07">
            <sdoDataRaw data="10 01 B2 20"/>
            </sdoConfig>
            <!-- actual AI status INT16 -->
            <sdoConfig idx="1A00" subIdx="08">
            <sdoDataRaw data="10 02 B2 20"/>
            </sdoConfig>
            <!-- driver warning code INT32 -->
            <sdoConfig idx="1A00" subIdx="09">
            <sdoDataRaw data="20 00 02 10"/>
            </sdoConfig>
            <!-- define number of mapped PDOs -->
            <sdoConfig idx="1A00" subIdx="00">
            <sdoDataRaw data="09 40 6F 77"/>
            </sdoConfig>
            <!-- driver outputs end setup -->
            <!-- driver inputs setup -->
            <!-- reset number of mapped PDOs -->
            <sdoConfig idx="1600" subIdx="00">
            <sdoDataRaw data="00 3F 6C 65"/>
            </sdoConfig>
            <!--
             0x6041 0010 == register 0x6041 + value 0x10(16bit decimal) 
            -->
            <sdoConfig idx="1600" subIdx="01">
            <sdoDataRaw data="10 00 40 60"/>
            </sdoConfig>
            <!-- 0x60C1 0020 == 0x20 == 0d32 bit INT32-->
            <sdoConfig idx="1600" subIdx="02">
            <sdoDataRaw data="20 00 C1 60"/>
            </sdoConfig>
            <!-- actual velocity in incremental status INT32 -->
            <sdoConfig idx="1600" subIdx="03">
            <sdoDataRaw data="20 00 FF 60"/>
            </sdoConfig>
            <!-- opmode request UINT16 -->
            <sdoConfig idx="1600" subIdx="04">
            <sdoDataRaw data="10 00 52 23"/>
            </sdoConfig>
            <!-- digital outputs write INT16 -->
            <sdoConfig idx="1600" subIdx="05">
            <sdoDataRaw data="10 00 02 23"/>
            </sdoConfig>
            <!-- define number of mapped PDOs -->
            <sdoConfig idx="1600" subIdx="00">
            <sdoDataRaw data="05 40 6F 77"/>
            </sdoConfig>
            <!-- driver inputs end setup -->
            <sdoConfig idx="1C12" subIdx="01">
            <sdoDataRaw data="00 16"/>
            </sdoConfig>
            <sdoConfig idx="1C12" subIdx="00">
            <sdoDataRaw data="01"/>
            </sdoConfig>
            <sdoConfig idx="1C13" subIdx="01">
            <sdoDataRaw data="00 1A"/>
            </sdoConfig>
            <sdoConfig idx="1C13" subIdx="00">
            <sdoDataRaw data="01"/>
            </sdoConfig>
            
            <!-- Set OpMode to Cyclic Synchronous Position -->
            <sdoConfig idx="6060" subIdx="00">
            <sdoDataRaw data="FA"/>
            </sdoConfig>
            <!-- Set Cycle Time -->
            <sdoConfig idx="60C2" subIdx="01">
            <sdoDataRaw data="19"/>
            </sdoConfig>
            <!-- Set Cycle exp = (-3) == 10^(-3) -->
            <sdoConfig idx="60C2" subIdx="02">
            <sdoDataRaw data="FB"/>
            </sdoConfig>
        
        <syncManager idx="0" dir="out"> </syncManager>
        <syncManager idx="1" dir="in"> </syncManager>
        <syncManager idx="2" dir="out">
            <pdo idx="1600">
                <pdoEntry idx="6040" subIdx="00" bitLen="16" halPin="target-controlword" halType="u32"/>
                <pdoEntry idx="60C1" subIdx="00" bitLen="32" halPin="target-position-inc" halType="s32"/>
                <pdoEntry idx="60FF" subIdx="00" bitLen="32" halPin="target-velocity-inc" halType="s32"/>
                <pdoEntry idx="2352" subIdx="00" bitLen="16" halPin="target-internal-opmode" halType="s32"/>
                <pdoEntry idx="2302" subIdx="00" bitLen="16" halPin="target-digital-output" halType="s32"/>
            </pdo>
        </syncManager>
        <syncManager idx="3" dir="in">
            <pdo idx="1A00">
                <pdoEntry idx="6041" subIdx="00" bitLen="16" halPin="actual-statusword" halType="u32"/>
                <pdoEntry idx="6063" subIdx="00" bitLen="32" halPin="actaul-position-inc" halType="s32"/>
                <pdoEntry idx="2050" subIdx="00" bitLen="32" halPin="actaul-position-inc-dro" halType="s32"/>
                <pdoEntry idx="606C" subIdx="00" bitLen="32" halPin="actual-velocity-inc" halType="s32"/>
                <pdoEntry idx="2353" subIdx="00" bitLen="16" halPin="actual-internal-opmode" halType="s32"/>
                <pdoEntry idx="2000" subIdx="00" bitLen="32" halPin="actual-warning-code" halType="s32"/>
                <pdoEntry idx="20B2" subIdx="01" bitLen="16" halPin="actual-analog-input-1-mV" halType="s32"/>
                <pdoEntry idx="20B2" subIdx="02" bitLen="16" halPin="actual-analog-input-2-mV" halType="s32"/>
                <pdoEntry idx="1002" subIdx="00" bitLen="32" halPin="status-register" halType="u32"/>
            </pdo>
        </syncManager>
            <dcConf assignActivate="730" sync0Cycle="*1" sync0Shift="0"/>
        </slave>
</master>
</masters>
 
  • Hakan
  • Hakan
Today 15:40 - Today 15:41
Replied by Hakan on topic Ethercat random jitter fix

Ethercat random jitter fix

Category: EtherCAT

There is actually a bug in the code when you use both the "-" sign and the syncToRefClock option.
Both will switch on the pll code.
The bug is corrected, so depending on if you have that version or not.
Fix: don't use the "-" sign to switch on/off the pll code. Use only the syncToRefClock option.
  • Konstantin
  • Konstantin
Today 15:29 - Today 15:39
Replied by Konstantin on topic CiA 402 Folder Missing

CiA 402 Folder Missing

Category: EtherCAT

@andrax
I figured it out, my mistake, I wrote the SDO object wrong and after trying many different ways to get it working. Now I just want to verify that my "sudo dmesg" is ok. What I did is I rebooted the computer and the drive. Attached is the last output and the lines after 64.544984 were shown after LinuxCNC was started.
I observe two error but do not know if they affect LinuxCNC and EtherCAT:
[ 10.914651] hp_bioscfg: Unable to set BIOS settings on HP systems
[ 20.801703] ec_generic: Binding socket to interface 2 (eno1).
The problem is that I do not know how the "sudo dmesg" output is supposed to look when no errors.
The .xml file is fixed and I decided to use the variable PDO mapping object - 0x1600 and 0x1A00. I check with "ethercat upload" and it seems that the SDOs are set as intended. Attached are the .xml and .hal files. 

EDIT: I want to add that when I close the LinuxCNC and open it again there is a different output after "sudo dmesg". Attached is a file. An error appears:
[ 1191.146371] EtherCAT ERROR 0-0: AL status message 0x001A: "Synchronization error".
  • papagno-source
  • papagno-source
Today 15:13
Replied by papagno-source on topic Ethercat random jitter fix

Ethercat random jitter fix

Category: EtherCAT

The problem only occurs during movement and is a noise transmitted to the mechanics, the kind you usually hear about on the LinuxCNC forum.
It seems to have solved the problem. First, I restored the original lcec_conf, Lcec_coffigen, and Lcec.so files. I changed the parameters refClockSyncCycles="-1" and syncToRefClock="false" in the XML file.
For now, I've left the sync0Shift = "0" parameter.
I'll test the machine and update you on how it works.
  • andrax
  • andrax's Avatar
Today 14:52
Replied by andrax on topic Ethercat random jitter fix

Ethercat random jitter fix

Category: EtherCAT

I would suggest taking an analytical approach to this.
As I understand it, 4 registers are important:
607A target-position
60FF target-velocity
and
6064 actual-position
606C actual-velocity
I simply enter a value in 607A and 60FF, and the axis moves to that position. LinuxCNC evaluates 6064 and 606C. If the target and actual values match, LinuxCNC is satisfied.
That’s my understanding.
Now the question arises: Does the axis vibrate when stationary or while moving?
If it vibrates when stationary, which shouldn’t happen, it’s constantly receiving new positions and oscillating.
Control loop?
Do the axes oscillate while moving?
Unstable, fluctuating setpoints?

At this point, I would use Wireshark to compare the traffic between the two systems.
I think the findings will be very revealing.
 
  • PCW
  • PCW's Avatar
Today 14:46
Replied by PCW on topic Error unable to launch after pncconf.

Error unable to launch after pncconf.

Category: PnCConf Wizard

Its possible to build one but most 5I25 configurations lack the DPLL because
the jitter is so much lower on PCI/PCIE cards that there is little benefit from
adding the DPLL.
  • grandixximo
  • grandixximo's Avatar
Today 14:16
Replied by grandixximo on topic Ethercat random jitter fix

Ethercat random jitter fix

Category: EtherCAT

To rule out issues with anything outside the programs, did you try to swap SSD with the debian 10 you know is working on other hardware?
  • andrax
  • andrax's Avatar
Today 14:06
Replied by andrax on topic CiA 402 Folder Missing

CiA 402 Folder Missing

Category: EtherCAT

Your ethercat.xml file is completely wrong.
The errors are pointing that out to you.
[290201.755307] EtherCAT ERROR 0-0: SDO upload 0x1A01:00 aborted.
[290201.755312] EtherCAT ERROR 0-0: SDO abort message 0x06020000: “This object does not exist in the object directory”.
[290201.755314] EtherCAT ERROR 0-0: Failed to read number of mapped PDO entries.
[290201.755315] EtherCAT ERROR 0-0: Failed to read mapped PDO entries for PDO 0x1A01.

You had already created the correct XML file. Take another look at your pdos.txt and compare it with the ethercat.xml.
This is what should be in your XML:
RxPDO 0x1701 “RxPDO”
    PDO entry 0x6040:00, 16 bit, “ControlWord”
    PDO entry 0x607a:00, 32 bits, “Target position”
    PDO entry 0x60b8:00, 16 bits, “Touch probe function”
    PDO entry 0x6060:00, 8 bits, “Modes of operation”
  TxPDO 0x1b01 “TxPDO”
    PDO entry 0x603f:00, 16-bit, “Error Code”
    PDO entry 0x6041:00, 16-bit, “statusWord”
    PDO entry 0x6064:00, 32-bit, “Position actual value”
    PDO entry 0x6077:00, 16 bits, “Torque actual value”
    PDO entry 0x60f4:00, 32 bits, “Following error actual value”
    PDO entry 0x6061:00,  8 bits, “Modes of operation display”

You can start by setting it up for one axis.
Once you no longer see any errors in dmesg, you can continue.
  • grandixximo
  • grandixximo's Avatar
Today 13:18 - Today 13:58
Replied by grandixximo on topic Ethercat random jitter fix

Ethercat random jitter fix

Category: EtherCAT

sync0Shift should not be 0

sync0Shift needs to be at least a third of your cycle

Set to 500000 not 0

Also please post files as attachments, or link to paste bin or Google drive, don't paste the entire text in the forum.

Also run ethercat master command, share the output here, preferably in a text file.

I would suggest the first device to be DC enabled, which it is, and the xml devices should match what is actually connected to the machine.

Have different versions of the xml and Hal if you have different machines with different configurations.
  • papagno-source
  • papagno-source
Today 12:50
Replied by papagno-source on topic Ethercat random jitter fix

Ethercat random jitter fix

Category: EtherCAT

Just to complete the information. The xml file contains drives that aren't actually present, so you can manage machines with different configurations. The real machine only has the x-y-z axes and an analog spindle.
So address 0 (I/O card), address 1 x-axis, address 2 y-axis, address 3 z-axis. The subsequent addresses aren't actually present, but this is done so as not to change much in the .hal file.
But I repeat, on Debian 10 the same xml files are used, the function syncToRefClock="true"
  • papagno-source
  • papagno-source
Today 12:44 - Today 14:06
Replied by papagno-source on topic Ethercat random jitter fix

Ethercat random jitter fix

Category: EtherCAT

xml on debian trixie
i have test refClockSyncCycles = -1 , but problem is the same
Warning: Spoiler!

 
  • papagno-source
  • papagno-source
Today 12:41 - Today 14:07
Replied by papagno-source on topic Ethercat random jitter fix

Ethercat random jitter fix

Category: EtherCAT

xml debian 10

Warning: Spoiler!
Displaying 1 - 15 out of 17275 results.
Time to create page: 0.424 seconds
Powered by Kunena Forum