Ethercat random jitter fix
- papagno-source
- Offline
- Premium Member
-
Less
More
- Posts: 122
- Thank you received: 7
12 Apr 2026 12:50 #345447
by papagno-source
Replied by papagno-source on topic Ethercat random jitter fix
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"
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"
Please Log in or Create an account to join the conversation.
- grandixximo
-
Topic Author
- Offline
- Elite Member
-
Less
More
- Posts: 219
- Thank you received: 316
12 Apr 2026 13:18 - 12 Apr 2026 13:58 #345448
by grandixximo
Replied by grandixximo on topic Ethercat random jitter fix
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.
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.
Last edit: 12 Apr 2026 13:58 by grandixximo.
Please Log in or Create an account to join the conversation.
- grandixximo
-
Topic Author
- Offline
- Elite Member
-
Less
More
- Posts: 219
- Thank you received: 316
12 Apr 2026 14:16 #345450
by grandixximo
Replied by grandixximo on topic Ethercat random jitter fix
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?
Please Log in or Create an account to join the conversation.
- andrax
-
- Offline
- Elite Member
-
Less
More
- Posts: 249
- Thank you received: 61
12 Apr 2026 14:52 #345452
by andrax
Replied by andrax on topic Ethercat random jitter fix
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.
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.
Please Log in or Create an account to join the conversation.
- papagno-source
- Offline
- Premium Member
-
Less
More
- Posts: 122
- Thank you received: 7
12 Apr 2026 15:13 #345453
by papagno-source
Replied by papagno-source on topic Ethercat random jitter fix
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.
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.
Please Log in or Create an account to join the conversation.
- Hakan
- Away
- Platinum Member
-
Less
More
- Posts: 1302
- Thank you received: 448
12 Apr 2026 15:40 - 12 Apr 2026 15:41 #345455
by Hakan
Replied by Hakan on topic Ethercat random jitter fix
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.
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 edit: 12 Apr 2026 15:41 by Hakan.
Please Log in or Create an account to join the conversation.
- endian
-
- Away
- Platinum Member
-
Less
More
- Posts: 323
- Thank you received: 123
12 Apr 2026 15:55 #345456
by endian
it is just foe experimenting purposes but durin negative syncs are everything rock solid ...
Replied by endian on topic Ethercat random jitter fix
last time when I was using the syncToRefClock instead of negative cycles there was an error of synchronization ...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.
[ 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>Please Log in or Create an account to join the conversation.
- papagno-source
- Offline
- Premium Member
-
Less
More
- Posts: 122
- Thank you received: 7
12 Apr 2026 16:14 #345457
by papagno-source
Replied by papagno-source on topic Ethercat random jitter fix
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.
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.
Please Log in or Create an account to join the conversation.
- Hakan
- Away
- Platinum Member
-
Less
More
- Posts: 1302
- Thank you received: 448
12 Apr 2026 17:17 - 12 Apr 2026 17:24 #345459
by Hakan
Replied by Hakan on topic Ethercat random jitter fix
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.
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.
Last edit: 12 Apr 2026 17:24 by Hakan.
The following user(s) said Thank You: endian
Please Log in or Create an account to join the conversation.
- endian
-
- Away
- Platinum Member
-
Less
More
- Posts: 323
- Thank you received: 123
12 Apr 2026 18:12 #345461
by endian
I have hardware which runs at 250us and generic driver was not capable therefore I searched for other way of grinding avoiding with higher value of assign ... else with native chip driver is 0x0300 good enough
Replied by endian on topic Ethercat random jitter fix
what help me during the grinding noise was reinstall driver to chip native or dcConf assignActivate = "300" edit to something as dcConf assignActivate = "730" ... then generic driver works well ...xml on debian trixie
i have test refClockSyncCycles = -1 , but problem is the same
Warning: Spoiler!
<masters>
<master idx="0" appTimePeriod="1000000" refClockSyncCycles="1" syncToRefClock="true">
<slave idx="0" type="generic" vid="0000022b" pid="0531ec01" configPdos="true">
<sdoConfig idx="3103" subIdx="08">
<sdoDataRaw data="16"/>
</sdoConfig>
<sdoConfig idx="3104" subIdx="08">
<sdoDataRaw data="16"/>
</sdoConfig>
<sdoConfig idx="3103" subIdx="09">
<sdoDataRaw data="03"/>
</sdoConfig>
<sdoConfig idx="3104" subIdx="09">
<sdoDataRaw data="01"/>
</sdoConfig>
<syncManager idx="0" dir="out"></syncManager>
<syncManager idx="1" dir="in"></syncManager>
<syncManager idx="2" dir="out">
<pdo idx="1600">
<pdoEntry idx="7001" subIdx="01" bitLen="8" halPin="out_veloci" halType="bit"/>
<pdoEntry idx="7002" subIdx="01" bitLen="16" halPin="ao0" halType="float" scale="2765"/>
<pdoEntry idx="7002" subIdx="02" bitLen="16" halPin="ao1" halType="float" scale="2765"/>
<pdoEntry idx="7003" subIdx="01" bitLen="32" halPin="comparation_value" halType="float" scale="1"/>
<pdoEntry idx="7003" subIdx="02" bitLen="32" halPin="setvalue" halType="float" scale="1"/>
<pdoEntry idx="7003" subIdx="03" bitLen="16" halPin="control_word" halType="bit"/>
<pdoEntry idx="7004" subIdx="01" bitLen="32" halPin="comparation_valuev" halType="float" scale="1"/>
<pdoEntry idx="7004" subIdx="02" bitLen="32" halPin="setvaluev" halType="float" scale="1"/>
<pdoEntry idx="7004" subIdx="03" bitLen="16" halPin="control_wordv" halType="bit"/>
</pdo>
</syncManager>
<syncManager idx="3" dir="in">
<pdo idx="1a00">
<pdoEntry idx="6000" subIdx="01" bitLen="8" halPin="in_veloci" halType="bit"/>
<pdoEntry idx="6003" subIdx="01" bitLen="32" halPin="counter_value" halType="float" scale="1"/>
<pdoEntry idx="6003" subIdx="02" bitLen="16" halPin="counter_status" halType="bit"/>
<pdoEntry idx="6003" subIdx="03" bitLen="16" halPin="microsecond" halType="S32"/>
<pdoEntry idx="6004" subIdx="01" bitLen="32" halPin="counter_valuev" halType="float" scale="1"/>
<pdoEntry idx="6004" subIdx="02" bitLen="16" halPin="counter_statusv" halType="bit"/>
<pdoEntry idx="6004" subIdx="03" bitLen="16" halPin="microsecondv" halType="S32"/>
</pdo>
</syncManager>
<dcConf assignActivate = "300" sync0Cycle = "*1" sync0Shift = "0" />
<watchdog divider="2498" intervals="1000"/>
</slave>
<!-- INIZIO PARAMETRI ASSE X -->
<slave idx="1" type="generic" vid="850104" pid="01030507" configPdos="true">
<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="drivecontrol" halType="bit"/>
<pdoEntry idx="6060" subIdx="00" bitLen="8" halPin="opmode" halType="u32"/>
<!--PARAMETRO POSCOMAND IN SCALE SCRIVERE 8388607/X DOVE X SONO MM A GIRO MOTORE ESEMP: 8388607/10MM = 838860.7 -->
<pdoEntry idx="607A" subIdx="00" bitLen="32" halPin="poscommand" halType="float" scale="838860.7"/>
<pdoEntry idx="6098" subIdx="00" bitLen="8" halPin="homemode" halType="u32"/>
<!--PARAMETRO HOMESPPED1 IN SCALE SCRIVERE 8388607/X DOVE X SONO MM A GIRO MOTORE ESEMP: 8388607/10MM = 838860.7 -->
<pdoEntry idx="6099" subIdx="01" bitLen="32" halPin="homespeed1" halType="float" scale="838860.7"/>
<!--PARAMETRO HOMESPPED2 IN SCALE SCRIVERE 8388607/X DOVE X SONO MM A GIRO MOTORE ESEMP: 8388607/10MM = 838860.7 -->
<pdoEntry idx="6099" subIdx="02" bitLen="32" halPin="homespeed2" halType="float" scale="838860.7"/>
<!--PARAMETRO HOMEACC IN SCALE SCRIVERE 8388607/X DOVE X SONO MM A GIRO MOTORE ESEMP: 8388607/10MM = 838860.7 -->
<pdoEntry idx="609A" subIdx="00" bitLen="32" halPin="homeacc" halType="float" scale="838860.7"/>
<!--PARAMETRO HOMEOFFSET IN SCALE SCRIVERE 8388607/X DOVE X SONO MM A GIRO MOTORE ESEMP: 8388607/10MM = 838860.7 -->
<pdoEntry idx="607C" subIdx="00" bitLen="32" halPin="homeoffset" halType="float" scale="838860.7"/>
</pdo>
</syncManager>
<syncManager idx="3" dir="in">
<pdo idx="1a00">
<pdoEntry idx="6041" subIdx="00" bitLen="16" halPin="drivestatus" halType="bit"/>
<pdoEntry idx="6063" subIdx="00" bitLen="32" halPin="enccounts" halType="s32"/>
<!--PARAMETRO POS IN SCALE SCRIVERE X/8388607 DOVE X SONO MM A GIRO MOTORE ESEMP: 10/8388607/= 0.0000078125 -->
<pdoEntry idx="6064" subIdx="00" bitLen="32" halPin="pos" halType="float" scale="0.0000011920930376"/>
<pdoEntry idx="6077" subIdx="00" bitLen="16" halPin="torque%" halType="float" scale="0.1"/>
<pdoEntry idx="606C" subIdx="00" bitLen="32" halPin="velmotore" halType="float" scale="0.00007"/>
<pdoEntry idx="603F" subIdx="00" bitLen="16" halPin="allarm" halType="u32"/>
</pdo>
</syncManager>
<dcConf assignActivate = "300" sync0Cycle = "*1" sync0Shift = "0" />
<watchdog divider="2498" intervals="1000"/>
</slave>
<!-- INIZIO PARAMETRI ASSE Y -->
<slave idx="2" type="generic" vid="850104" pid="01030507" configPdos="true">
<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="drivecontrol" halType="bit"/>
<pdoEntry idx="6060" subIdx="00" bitLen="8" halPin="opmode" halType="u32"/>
<!--PARAMETRO POSCOMAND IN SCALE SCRIVERE 8388607/X DOVE X SONO MM A GIRO MOTORE ESEMP: 8388607/10MM = 838860.7 -->
<pdoEntry idx="607A" subIdx="00" bitLen="32" halPin="poscommand" halType="float" scale="838860.7"/>
<pdoEntry idx="6098" subIdx="00" bitLen="8" halPin="homemode" halType="u32"/>
<!--PARAMETRO HOMESPPED1 IN SCALE SCRIVERE 8388607/X DOVE X SONO MM A GIRO MOTORE ESEMP: 8388607/10MM = 838860.7 -->
<pdoEntry idx="6099" subIdx="01" bitLen="32" halPin="homespeed1" halType="float" scale="838860.7"/>
<!--PARAMETRO HOMESPPED2 IN SCALE SCRIVERE 8388607/X DOVE X SONO MM A GIRO MOTORE ESEMP: 8388607/10MM = 838860.7 -->
<pdoEntry idx="6099" subIdx="02" bitLen="32" halPin="homespeed2" halType="float" scale="838860.7"/>
<!--PARAMETRO HOMEACC IN SCALE SCRIVERE 8388607/X DOVE X SONO MM A GIRO MOTORE ESEMP: 8388607/10MM = 838860.7 -->
<pdoEntry idx="609A" subIdx="00" bitLen="32" halPin="homeacc" halType="float" scale="838860.7"/>
<!--PARAMETRO HOMEOFFSET IN SCALE SCRIVERE 8388607/X DOVE X SONO MM A GIRO MOTORE ESEMP: 8388607/10MM = 838860.7 -->
<pdoEntry idx="607C" subIdx="00" bitLen="32" halPin="homeoffset" halType="float" scale="838860.7"/>
</pdo>
</syncManager>
<syncManager idx="3" dir="in">
<pdo idx="1a00">
<pdoEntry idx="6041" subIdx="00" bitLen="16" halPin="drivestatus" halType="bit"/>
<pdoEntry idx="6063" subIdx="00" bitLen="32" halPin="enccounts" halType="s32"/>
<!--PARAMETRO POS IN SCALE SCRIVERE X/8388607 DOVE X SONO MM A GIRO MOTORE ESEMP: 10/8388607/= 0.0000011920930376 -->
<pdoEntry idx="6064" subIdx="00" bitLen="32" halPin="pos" halType="float" scale="0.0000011920930376"/>
<pdoEntry idx="6077" subIdx="00" bitLen="16" halPin="torque%" halType="float" scale="0.1"/>
<pdoEntry idx="606C" subIdx="00" bitLen="32" halPin="velmotore" halType="float" scale="0.00007"/>
<pdoEntry idx="603F" subIdx="00" bitLen="16" halPin="allarm" halType="u32"/>
</pdo>
</syncManager>
<dcConf assignActivate = "300" sync0Cycle = "*1" sync0Shift = "0" />
<watchdog divider="2498" intervals="1000"/>
</slave>
<!-- INIZIO PARAMETRI ASSE Z -->
<slave idx="3" type="generic" vid="850104" pid="01030507" configPdos="true">
<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="drivecontrol" halType="bit"/>
<pdoEntry idx="6060" subIdx="00" bitLen="8" halPin="opmode" halType="u32"/>
<!--PARAMETRO POSCOMAND IN SCALE SCRIVERE 8388607/X DOVE X SONO MM A GIRO MOTORE ESEMP: 8388607/10MM = 838860.7 -->
<pdoEntry idx="607A" subIdx="00" bitLen="32" halPin="poscommand" halType="float" scale="838860.7"/>
<pdoEntry idx="6098" subIdx="00" bitLen="8" halPin="homemode" halType="u32"/>
<!--PARAMETRO HOMESPPED1 IN SCALE SCRIVERE 8388607/X DOVE X SONO MM A GIRO MOTORE ESEMP: 8388607/10MM = 838860.7 -->
<pdoEntry idx="6099" subIdx="01" bitLen="32" halPin="homespeed1" halType="float" scale="838860.7"/>
<!--PARAMETRO HOMESPPED2 IN SCALE SCRIVERE 8388607/X DOVE X SONO MM A GIRO MOTORE ESEMP: 8388607/10MM = 838860.7 -->
<pdoEntry idx="6099" subIdx="02" bitLen="32" halPin="homespeed2" halType="float" scale="838860.7"/>
<!--PARAMETRO HOMEACC IN SCALE SCRIVERE 8388607/X DOVE X SONO MM A GIRO MOTORE ESEMP: 8388607/10MM = 838860.7 -->
<pdoEntry idx="609A" subIdx="00" bitLen="32" halPin="homeacc" halType="float" scale="838860.7"/>
<!--PARAMETRO HOMEOFFSET IN SCALE SCRIVERE 8388607/X DOVE X SONO MM A GIRO MOTORE ESEMP: 8388607/10MM = 838860.7 -->
<pdoEntry idx="607C" subIdx="00" bitLen="32" halPin="homeoffset" halType="float" scale="838860.7"/>
</pdo>
</syncManager>
<syncManager idx="3" dir="in">
<pdo idx="1a00">
<pdoEntry idx="6041" subIdx="00" bitLen="16" halPin="drivestatus" halType="bit"/>
<pdoEntry idx="6063" subIdx="00" bitLen="32" halPin="enccounts" halType="s32"/>
<!--PARAMETRO POS IN SCALE SCRIVERE X/8388607 DOVE X SONO MM A GIRO MOTORE ESEMP: 10/8388607/= 0.0000011920930376 -->
<pdoEntry idx="6064" subIdx="00" bitLen="32" halPin="pos" halType="float" scale="0.0000011920930376"/>
<pdoEntry idx="6077" subIdx="00" bitLen="16" halPin="torque%" halType="float" scale="0.1"/>
<pdoEntry idx="606C" subIdx="00" bitLen="32" halPin="velmotore" halType="float" scale="0.00007"/>
<pdoEntry idx="603F" subIdx="00" bitLen="16" halPin="allarm" halType="u32"/>
</pdo>
</syncManager>
<dcConf assignActivate = "300" sync0Cycle = "*1" sync0Shift = "0" />
<watchdog divider="2498" intervals="1000"/>
</slave>
<!-- INIZIO PARAMETRI SP -->
<slave idx="4" type="generic" vid="01dd" pid="10400140" configPdos="true">
<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="drivecontrol" halType="bit"/>
<pdoEntry idx="6042" subIdx="00" bitLen="16" halPin="cmdvel" halType="float"/>
<pdoEntry idx="6060" subIdx="00" bitLen="8" halPin="opmode" halType="u32"/>
</pdo>
</syncManager>
<syncManager idx="3" dir="in">
<pdo idx="1a00">
<pdoEntry idx="6041" subIdx="00" bitLen="16" halPin="drivestatus" halType="bit"/>
<pdoEntry idx="6077" subIdx="00" bitLen="16" halPin="torque%" halType="float" scale="0.1"/>
<pdoEntry idx="603F" subIdx="00" bitLen="16" halPin="allarm" halType="u32"/>
</pdo>
</syncManager>
<dcConf assignActivate = "300" sync0Cycle = "*1" sync0Shift = "0" />
<watchdog divider="2498" intervals="1000"/>
</slave>
<!-- INIZIO PARAMETRI ASSE A -->
<slave idx="5" type="generic" vid="850104" pid="01030507" configPdos="true">
<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="drivecontrol" halType="bit"/>
<pdoEntry idx="6060" subIdx="00" bitLen="8" halPin="opmode" halType="u32"/>
<!--PARAMETRO POSCOMAND IN SCALE SCRIVERE 8388607/X DOVE X SONO MM A GIRO MOTORE ESEMP: 8388607/10MM = 838860.7 -->
<pdoEntry idx="607A" subIdx="00" bitLen="32" halPin="poscommand" halType="float" scale="838860.7"/>
<pdoEntry idx="6098" subIdx="00" bitLen="8" halPin="homemode" halType="u32"/>
<!--PARAMETRO HOMESPPED1 IN SCALE SCRIVERE 8388607/X DOVE X SONO MM A GIRO MOTORE ESEMP: 8388607/10MM = 838860.7 -->
<pdoEntry idx="6099" subIdx="01" bitLen="32" halPin="homespeed1" halType="float" scale="838860.7"/>
<!--PARAMETRO HOMESPPED2 IN SCALE SCRIVERE 8388607/X DOVE X SONO MM A GIRO MOTORE ESEMP: 8388607/10MM = 838860.7 -->
<pdoEntry idx="6099" subIdx="02" bitLen="32" halPin="homespeed2" halType="float" scale="838860.7"/>
<!--PARAMETRO HOMEACC IN SCALE SCRIVERE 8388607/X DOVE X SONO MM A GIRO MOTORE ESEMP: 8388607/10MM = 838860.7 -->
<pdoEntry idx="609A" subIdx="00" bitLen="32" halPin="homeacc" halType="float" scale="838860.7"/>
<!--PARAMETRO HOMEOFFSET IN SCALE SCRIVERE 8388607/X DOVE X SONO MM A GIRO MOTORE ESEMP: 8388607/10MM = 838860.7 -->
<pdoEntry idx="607C" subIdx="00" bitLen="32" halPin="homeoffset" halType="float" scale="838860.7"/>
</pdo>
</syncManager>
<syncManager idx="3" dir="in">
<pdo idx="1a00">
<pdoEntry idx="6041" subIdx="00" bitLen="16" halPin="drivestatus" halType="bit"/>
<pdoEntry idx="6063" subIdx="00" bitLen="32" halPin="enccounts" halType="s32"/>
<!--PARAMETRO POS IN SCALE SCRIVERE X/8388607 DOVE X SONO MM A GIRO MOTORE ESEMP: 10/8388607/= 0.0000011920930376 -->
<pdoEntry idx="6064" subIdx="00" bitLen="32" halPin="pos" halType="float" scale="0.0000011920930376"/>
<pdoEntry idx="6077" subIdx="00" bitLen="16" halPin="torque%" halType="float" scale="0.1"/>
<pdoEntry idx="606C" subIdx="00" bitLen="32" halPin="velmotore" halType="float" scale="0.00007"/>
<pdoEntry idx="603F" subIdx="00" bitLen="16" halPin="allarm" halType="u32"/>
</pdo>
</syncManager>
<dcConf assignActivate = "300" sync0Cycle = "*1" sync0Shift = "0" />
<watchdog divider="2498" intervals="1000"/>
</slave>
<!-- INIZIO PARAMETRI ASSE B -->
<slave idx="6" type="generic" vid="850104" pid="01030507" configPdos="true">
<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="drivecontrol" halType="bit"/>
<pdoEntry idx="6060" subIdx="00" bitLen="8" halPin="opmode" halType="u32"/>
<!--PARAMETRO POSCOMAND IN SCALE SCRIVERE 8388607/X DOVE X SONO MM A GIRO MOTORE ESEMP: 8388607/10MM = 838860.7 -->
<pdoEntry idx="607A" subIdx="00" bitLen="32" halPin="poscommand" halType="float" scale="838860.7"/>
<pdoEntry idx="6098" subIdx="00" bitLen="8" halPin="homemode" halType="u32"/>
<!--PARAMETRO HOMESPPED1 IN SCALE SCRIVERE 8388607/X DOVE X SONO MM A GIRO MOTORE ESEMP: 8388607/10MM = 838860.7 -->
<pdoEntry idx="6099" subIdx="01" bitLen="32" halPin="homespeed1" halType="float" scale="838860.7"/>
<!--PARAMETRO HOMESPPED2 IN SCALE SCRIVERE 8388607/X DOVE X SONO MM A GIRO MOTORE ESEMP: 8388607/10MM = 838860.7 -->
<pdoEntry idx="6099" subIdx="02" bitLen="32" halPin="homespeed2" halType="float" scale="838860.7"/>
<!--PARAMETRO HOMEACC IN SCALE SCRIVERE 8388607/X DOVE X SONO MM A GIRO MOTORE ESEMP: 8388607/10MM = 838860.7 -->
<pdoEntry idx="609A" subIdx="00" bitLen="32" halPin="homeacc" halType="float" scale="838860.7"/>
<!--PARAMETRO HOMEOFFSET IN SCALE SCRIVERE 8388607/X DOVE X SONO MM A GIRO MOTORE ESEMP: 8388607/10MM = 838860.7 -->
<pdoEntry idx="607C" subIdx="00" bitLen="32" halPin="homeoffset" halType="float" scale="838860.7"/>
</pdo>
</syncManager>
<syncManager idx="3" dir="in">
<pdo idx="1a00">
<pdoEntry idx="6041" subIdx="00" bitLen="16" halPin="drivestatus" halType="bit"/>
<pdoEntry idx="6063" subIdx="00" bitLen="32" halPin="enccounts" halType="s32"/>
<!--PARAMETRO POS IN SCALE SCRIVERE X/8388607 DOVE X SONO MM A GIRO MOTORE ESEMP: 10/8388607/= 0.0000011920930376 -->
<pdoEntry idx="6064" subIdx="00" bitLen="32" halPin="pos" halType="float" scale="0.0000011920930376"/>
<pdoEntry idx="6077" subIdx="00" bitLen="16" halPin="torque%" halType="float" scale="0.1"/>
<pdoEntry idx="606C" subIdx="00" bitLen="32" halPin="velmotore" halType="float" scale="0.00007"/>
<pdoEntry idx="603F" subIdx="00" bitLen="16" halPin="allarm" halType="u32"/>
</pdo>
</syncManager>
<dcConf assignActivate = "300" sync0Cycle = "*1" sync0Shift = "0" />
<watchdog divider="2498" intervals="1000"/>
</slave>
<!-- INIZIO PARAMETRI ASSE C -->
<slave idx="7" type="generic" vid="850104" pid="01030507" configPdos="true">
<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="drivecontrol" halType="bit"/>
<pdoEntry idx="6060" subIdx="00" bitLen="8" halPin="opmode" halType="u32"/>
<!--PARAMETRO POSCOMAND IN SCALE SCRIVERE 8388607/X DOVE X SONO MM A GIRO MOTORE ESEMP: 8388607/10MM = 838860.7 -->
<pdoEntry idx="607A" subIdx="00" bitLen="32" halPin="poscommand" halType="float" scale="838860.7"/>
<pdoEntry idx="6098" subIdx="00" bitLen="8" halPin="homemode" halType="u32"/>
<!--PARAMETRO HOMESPPED1 IN SCALE SCRIVERE 8388607/X DOVE X SONO MM A GIRO MOTORE ESEMP: 8388607/10MM = 838860.7 -->
<pdoEntry idx="6099" subIdx="01" bitLen="32" halPin="homespeed1" halType="float" scale="838860.7"/>
<!--PARAMETRO HOMESPPED2 IN SCALE SCRIVERE 8388607/X DOVE X SONO MM A GIRO MOTORE ESEMP: 8388607/10MM = 838860.7 -->
<pdoEntry idx="6099" subIdx="02" bitLen="32" halPin="homespeed2" halType="float" scale="838860.7"/>
<!--PARAMETRO HOMEACC IN SCALE SCRIVERE 8388607/X DOVE X SONO MM A GIRO MOTORE ESEMP: 8388607/10MM = 838860.7 -->
<pdoEntry idx="609A" subIdx="00" bitLen="32" halPin="homeacc" halType="float" scale="838860.7"/>
<!--PARAMETRO HOMEOFFSET IN SCALE SCRIVERE 8388607/X DOVE X SONO MM A GIRO MOTORE ESEMP: 8388607/10MM = 838860.7 -->
<pdoEntry idx="607C" subIdx="00" bitLen="32" halPin="homeoffset" halType="float" scale="838860.7"/>
</pdo>
</syncManager>
<syncManager idx="3" dir="in">
<pdo idx="1a00">
<pdoEntry idx="6041" subIdx="00" bitLen="16" halPin="drivestatus" halType="bit"/>
<pdoEntry idx="6063" subIdx="00" bitLen="32" halPin="enccounts" halType="s32"/>
<!--PARAMETRO POS IN SCALE SCRIVERE X/8388607 DOVE X SONO MM A GIRO MOTORE ESEMP: 10/8388607/= 0.0000011920930376 -->
<pdoEntry idx="6064" subIdx="00" bitLen="32" halPin="pos" halType="float" scale="0.0000011920930376"/>
<pdoEntry idx="6077" subIdx="00" bitLen="16" halPin="torque%" halType="float" scale="0.1"/>
<pdoEntry idx="606C" subIdx="00" bitLen="32" halPin="velmotore" halType="float" scale="0.00007"/>
<pdoEntry idx="603F" subIdx="00" bitLen="16" halPin="allarm" halType="u32"/>
</pdo>
</syncManager>
<dcConf assignActivate = "300" sync0Cycle = "*1" sync0Shift = "0" />
<watchdog divider="2498" intervals="1000"/>
</slave>
</master>
</masters>
I have hardware which runs at 250us and generic driver was not capable therefore I searched for other way of grinding avoiding with higher value of assign ... else with native chip driver is 0x0300 good enough
Please Log in or Create an account to join the conversation.
Time to create page: 0.117 seconds