Search Results (Searched for: )
- PedPEx
- PedPEx
29 Jun 2025 22:21 - 30 Jun 2025 09:32
Replied by PedPEx on topic Problems switching PDO assignments (EP5101-0011)
Problems switching PDO assignments (EP5101-0011)
Category: EtherCAT
Hello endian
I'm sorry for answering a little bit late, i was busy studying for my upcoming exams. I hope you are doing well and everything is good after the storm you mentioned?
I tried the config from the 23rd and had syntax issues with the InitCMD section. As far as i can tell, you removed it in the version you updated on the 25th. Without the InitCMDs, the encoder inputs indeed change over to their 32bit counter PDO, unfortunately they get stuck in a PREOP error state.
While starting the machine, it also threw error about the "<pdoEntry idx="0" bitLen="4" halPin="Control--194" halType="s32">" part, i just removed that part, because it's not used (gap), according to Beckhoffs docs.
Do you know a solution to the "Slave does not support changing the PDO mapping!" problem, when the slave supports it for sure?
And thank you for your help so far
dmesg output (grep EtherCAT) before starting the machine config[/code]
[/code]
[/code]
[/code][/code]
[/code]
[/code][/code][/code]
[/code]
I'm sorry for answering a little bit late, i was busy studying for my upcoming exams. I hope you are doing well and everything is good after the storm you mentioned?
I tried the config from the 23rd and had syntax issues with the InitCMD section. As far as i can tell, you removed it in the version you updated on the 25th. Without the InitCMDs, the encoder inputs indeed change over to their 32bit counter PDO, unfortunately they get stuck in a PREOP error state.
While starting the machine, it also threw error about the "<pdoEntry idx="0" bitLen="4" halPin="Control--194" halType="s32">" part, i just removed that part, because it's not used (gap), according to Beckhoffs docs.
Do you know a solution to the "Slave does not support changing the PDO mapping!" problem, when the slave supports it for sure?
And thank you for your help so far

dmesg output (grep EtherCAT) before starting the machine config
[code][ 4.847665] EtherCAT: Master driver 1.6.0 1.6.0.gcafd367-1+1.1
[ 4.848045] EtherCAT: 1 master waiting for devices.
[ 4.865248] ec_generic: EtherCAT master generic Ethernet device module 1.6.0 1.6.0.gcafd367-1+1.1
[ 4.865257] EtherCAT: Accepting B4:96:91:95:02:70 as main device for master 0.
[ 4.896651] EtherCAT 0: Starting EtherCAT-IDLE thread.
[ 7.436557] EtherCAT 0: Link state of ecm0 changed to UP.
[ 7.445248] EtherCAT 0: 3 slave(s) responding on main device.
[ 7.445250] EtherCAT 0: Slave states on main device: PREOP.
[ 7.445535] EtherCAT 0: Scanning bus.
[ 8.826355] EtherCAT 0: Bus scanning completed in 1380 ms.
[ 8.826357] EtherCAT 0: Using slave 0 as DC reference clock.
[ 11.980063] EtherCAT WARNING 0-0: SDO information error response while fetching SDO entry 0x1802:07!
[ 11.980066] EtherCAT ERROR 0-0: SDO abort message 0x06090011: "Subindex does not exist".
[ 11.983003] EtherCAT WARNING 0-0: SDO information error response while fetching SDO entry 0x1802:09!
[ 11.983004] EtherCAT ERROR 0-0: SDO abort message 0x06090011: "Subindex does not exist".
[ 11.997457] EtherCAT WARNING 0-0: SDO information error response while fetching SDO entry 0x1803:07!
[ 11.997458] EtherCAT ERROR 0-0: SDO abort message 0x06090011: "Subindex does not exist".
[ 12.000886] EtherCAT WARNING 0-0: SDO information error response while fetching SDO entry 0x1803:09!
[ 12.000887] EtherCAT ERROR 0-0: SDO abort message 0x06090011: "Subindex does not exist".
[ 12.015341] EtherCAT WARNING 0-0: SDO information error response while fetching SDO entry 0x1804:07!
[ 12.015342] EtherCAT ERROR 0-0: SDO abort message 0x06090011: "Subindex does not exist".
[ 12.018526] EtherCAT WARNING 0-0: SDO information error response while fetching SDO entry 0x1804:09!
[ 12.018527] EtherCAT ERROR 0-0: SDO abort message 0x06090011: "Subindex does not exist".
[ 12.033225] EtherCAT WARNING 0-0: SDO information error response while fetching SDO entry 0x1805:07!
[ 12.033226] EtherCAT ERROR 0-0: SDO abort message 0x06090011: "Subindex does not exist".
[ 12.036410] EtherCAT WARNING 0-0: SDO information error response while fetching SDO entry 0x1805:09!
[ 12.036411] EtherCAT ERROR 0-0: SDO abort message 0x06090011: "Subindex does not exist".
[ 12.599207] EtherCAT WARNING 0-1: SDO information error response while fetching SDO entry 0x1802:07!
[ 12.599209] EtherCAT ERROR 0-1: SDO abort message 0x06090011: "Subindex does not exist".
[ 12.602392] EtherCAT WARNING 0-1: SDO information error response while fetching SDO entry 0x1802:09!
[ 12.602393] EtherCAT ERROR 0-1: SDO abort message 0x06090011: "Subindex does not exist".
[ 12.617336] EtherCAT WARNING 0-1: SDO information error response while fetching SDO entry 0x1803:07!
[ 12.617338] EtherCAT ERROR 0-1: SDO abort message 0x06090011: "Subindex does not exist".
[ 12.620521] EtherCAT WARNING 0-1: SDO information error response while fetching SDO entry 0x1803:09!
[ 12.620523] EtherCAT ERROR 0-1: SDO abort message 0x06090011: "Subindex does not exist".
[ 12.634488] EtherCAT WARNING 0-1: SDO information error response while fetching SDO entry 0x1804:07!
[ 12.634489] EtherCAT ERROR 0-1: SDO abort message 0x06090011: "Subindex does not exist".
[ 12.637701] EtherCAT WARNING 0-1: SDO information error response while fetching SDO entry 0x1804:09!
[ 12.637702] EtherCAT ERROR 0-1: SDO abort message 0x06090011: "Subindex does not exist".
[ 12.652639] EtherCAT WARNING 0-1: SDO information error response while fetching SDO entry 0x1805:07!
[ 12.652640] EtherCAT ERROR 0-1: SDO abort message 0x06090011: "Subindex does not exist".
[ 12.655578] EtherCAT WARNING 0-1: SDO information error response while fetching SDO entry 0x1805:09!
[ 12.655579] EtherCAT ERROR 0-1: SDO abort message 0x06090011: "Subindex does not exist".
[ 13.214605] EtherCAT WARNING 0-2: SDO information error response while fetching SDO entry 0x1802:07!
[ 13.214608] EtherCAT ERROR 0-2: SDO abort message 0x06090011: "Subindex does not exist".
[ 13.217545] EtherCAT WARNING 0-2: SDO information error response while fetching SDO entry 0x1802:09!
[ 13.217546] EtherCAT ERROR 0-2: SDO abort message 0x06090011: "Subindex does not exist".
[ 13.231999] EtherCAT WARNING 0-2: SDO information error response while fetching SDO entry 0x1803:07!
[ 13.232000] EtherCAT ERROR 0-2: SDO abort message 0x06090011: "Subindex does not exist".
[ 13.235428] EtherCAT WARNING 0-2: SDO information error response while fetching SDO entry 0x1803:09!
[ 13.235429] EtherCAT ERROR 0-2: SDO abort message 0x06090011: "Subindex does not exist".
[ 13.249395] EtherCAT WARNING 0-2: SDO information error response while fetching SDO entry 0x1804:07!
[ 13.249396] EtherCAT ERROR 0-2: SDO abort message 0x06090011: "Subindex does not exist".
[ 13.252582] EtherCAT WARNING 0-2: SDO information error response while fetching SDO entry 0x1804:09!
[ 13.252583] EtherCAT ERROR 0-2: SDO abort message 0x06090011: "Subindex does not exist".
[ 13.267522] EtherCAT WARNING 0-2: SDO information error response while fetching SDO entry 0x1805:07!
[ 13.267523] EtherCAT ERROR 0-2: SDO abort message 0x06090011: "Subindex does not exist".
[ 13.270952] EtherCAT WARNING 0-2: SDO information error response while fetching SDO entry 0x1805:09!
[ 13.270953] EtherCAT ERROR 0-2: SDO abort message 0x06090011: "Subindex does not exist".
[ 22.277621] EtherCAT 0: Link state of ecm0 changed to DOWN.
[ 22.285341] EtherCAT ERROR 0-1: Failed to receive AL state datagram: Datagram error.
[ 22.293693] EtherCAT 0: 0 slave(s) responding on main device.
[ 29.050914] EtherCAT 0: Link state of ecm0 changed to UP.
[ 29.058887] EtherCAT 0: 3 slave(s) responding on main device.
[ 29.058892] EtherCAT 0: Slave states on main device: INIT.
[ 29.059186] EtherCAT 0: Scanning bus.
[ 30.450244] EtherCAT 0: Bus scanning completed in 1388 ms.
[ 30.450247] EtherCAT 0: Using slave 0 as DC reference clock.
[ 30.455189] EtherCAT 0: Slave states on main device: PREOP.
[ 33.606315] EtherCAT WARNING 0-0: SDO information error response while fetching SDO entry 0x1802:07!
[ 33.606319] EtherCAT ERROR 0-0: SDO abort message 0x06090011: "Subindex does not exist".
[ 33.609254] EtherCAT WARNING 0-0: SDO information error response while fetching SDO entry 0x1802:09!
[ 33.609256] EtherCAT ERROR 0-0: SDO abort message 0x06090011: "Subindex does not exist".
[ 33.623685] EtherCAT WARNING 0-0: SDO information error response while fetching SDO entry 0x1803:07!
[ 33.623686] EtherCAT ERROR 0-0: SDO abort message 0x06090011: "Subindex does not exist".
[ 33.626894] EtherCAT WARNING 0-0: SDO information error response while fetching SDO entry 0x1803:09!
[ 33.626895] EtherCAT ERROR 0-0: SDO abort message 0x06090011: "Subindex does not exist".
[ 33.641844] EtherCAT WARNING 0-0: SDO information error response while fetching SDO entry 0x1804:07!
[ 33.641845] EtherCAT ERROR 0-0: SDO abort message 0x06090011: "Subindex does not exist".
[ 33.645513] EtherCAT WARNING 0-0: SDO information error response while fetching SDO entry 0x1804:09!
[ 33.645514] EtherCAT ERROR 0-0: SDO abort message 0x06090011: "Subindex does not exist".
[ 33.659944] EtherCAT WARNING 0-0: SDO information error response while fetching SDO entry 0x1805:07!
[ 33.659945] EtherCAT ERROR 0-0: SDO abort message 0x06090011: "Subindex does not exist".
[ 33.662908] EtherCAT WARNING 0-0: SDO information error response while fetching SDO entry 0x1805:09!
[ 33.662909] EtherCAT ERROR 0-0: SDO abort message 0x06090011: "Subindex does not exist".
[ 34.220767] EtherCAT WARNING 0-1: SDO information error response while fetching SDO entry 0x1802:07!
[ 34.220770] EtherCAT ERROR 0-1: SDO abort message 0x06090011: "Subindex does not exist".
[ 34.223707] EtherCAT WARNING 0-1: SDO information error response while fetching SDO entry 0x1802:09!
[ 34.223709] EtherCAT ERROR 0-1: SDO abort message 0x06090011: "Subindex does not exist".
[ 34.238408] EtherCAT WARNING 0-1: SDO information error response while fetching SDO entry 0x1803:07!
[ 34.238410] EtherCAT ERROR 0-1: SDO abort message 0x06090011: "Subindex does not exist".
[ 34.241346] EtherCAT WARNING 0-1: SDO information error response while fetching SDO entry 0x1803:09!
[ 34.241347] EtherCAT ERROR 0-1: SDO abort message 0x06090011: "Subindex does not exist".
[ 34.256045] EtherCAT WARNING 0-1: SDO information error response while fetching SDO entry 0x1804:07!
[ 34.256047] EtherCAT ERROR 0-1: SDO abort message 0x06090011: "Subindex does not exist".
[ 34.258985] EtherCAT WARNING 0-1: SDO information error response while fetching SDO entry 0x1804:09!
[ 34.258986] EtherCAT ERROR 0-1: SDO abort message 0x06090011: "Subindex does not exist".
[ 34.273194] EtherCAT WARNING 0-1: SDO information error response while fetching SDO entry 0x1805:07!
[ 34.273196] EtherCAT ERROR 0-1: SDO abort message 0x06090011: "Subindex does not exist".
[ 34.276135] EtherCAT WARNING 0-1: SDO information error response while fetching SDO entry 0x1805:09!
[ 34.276136] EtherCAT ERROR 0-1: SDO abort message 0x06090011: "Subindex does not exist".
[ 34.838011] EtherCAT WARNING 0-2: SDO information error response while fetching SDO entry 0x1802:07!
[ 34.838014] EtherCAT ERROR 0-2: SDO abort message 0x06090011: "Subindex does not exist".
[ 34.841463] EtherCAT WARNING 0-2: SDO information error response while fetching SDO entry 0x1802:09!
[ 34.841465] EtherCAT ERROR 0-2: SDO abort message 0x06090011: "Subindex does not exist".
[ 34.855647] EtherCAT WARNING 0-2: SDO information error response while fetching SDO entry 0x1803:07!
[ 34.855648] EtherCAT ERROR 0-2: SDO abort message 0x06090011: "Subindex does not exist".
[ 34.858587] EtherCAT WARNING 0-2: SDO information error response while fetching SDO entry 0x1803:09!
[ 34.858588] EtherCAT ERROR 0-2: SDO abort message 0x06090011: "Subindex does not exist".
[ 34.873043] EtherCAT WARNING 0-2: SDO information error response while fetching SDO entry 0x1804:07!
[ 34.873045] EtherCAT ERROR 0-2: SDO abort message 0x06090011: "Subindex does not exist".
[ 34.876006] EtherCAT WARNING 0-2: SDO information error response while fetching SDO entry 0x1804:09!
[ 34.876007] EtherCAT ERROR 0-2: SDO abort message 0x06090011: "Subindex does not exist".
[ 34.890459] EtherCAT WARNING 0-2: SDO information error response while fetching SDO entry 0x1805:07!
[ 34.890461] EtherCAT ERROR 0-2: SDO abort message 0x06090011: "Subindex does not exist".
[ 34.893645] EtherCAT WARNING 0-2: SDO information error response while fetching SDO entry 0x1805:09!
[ 34.893646] EtherCAT ERROR 0-2: SDO abort message 0x06090011: "Subindex does not exist".
[code]dmesg output (grep EtherCAT) that was added after starting the machine config
[code][ 190.676872] EtherCAT: Requesting master 0...
[ 190.676875] EtherCAT: Successfully requested master 0.
[ 190.677525] EtherCAT 0: Domain0: Logical address 0x00000000, 45 byte, expected working counter 9.
[ 190.677527] EtherCAT 0: Datagram domain0-0-main: Logical offset 0x00000000, 45 byte, type LRW.
[ 190.677538] EtherCAT 0: Master thread exited.
[ 190.677539] EtherCAT 0: Starting EtherCAT-OP thread.
[ 190.677584] EtherCAT WARNING 0: 2 datagrams TIMED OUT!
[ 190.677586] EtherCAT WARNING 0: 2 datagrams UNMATCHED!
[ 190.798114] EtherCAT WARNING 0-0: Slave does not support changing the PDO mapping!
[ 190.798116] EtherCAT WARNING 0-0: Currently mapped PDO entries: 0x7000:01/1 0x7000:02/1 0x7000:03/1 0x7000:04/1 0x0000:00/4 0x0000:00/8 0x7000:11/32. Entries to map: 0x7000:01/1 0x7000:02/1 0x7000:03/1 0x7000:04/1 0x7000:11/32
[ 190.876116] EtherCAT WARNING 0-0: Slave does not support changing the PDO mapping!
[ 190.876119] EtherCAT WARNING 0-0: Currently mapped PDO entries: 0x6000:01/1 0x6000:02/1 0x6000:03/1 0x6000:04/1 0x6000:05/1 0x6000:06/1 0x6000:07/1 0x6000:08/1 0x6000:09/1 0x6000:0A/1 0x6000:0B/1 0x6000:0C/1 0x6000:0D/1 0x1C32:20/1 0x1801:07/1 0x1801:09/1 0x6000:11/32 0x6000:12/32. Entries to map: 0x6000:01/1 0x6000:02/1 0x6000:03/1 0x6000:04/1 0x6000:05/1 0x6000:06/1 0x6000:07/1 0x6000:08/1 0x6000:09/1 0x6000:10/1 0x6000:11/1 0x6000:12/1 0x6000:13/1 0x1C32:32/1 0x1801:07/1 0x1801:09/1 0x6000:17/32 0x6000:18/32
[ 195.888053] EtherCAT WARNING 0-0: Slave did not sync after 5000 ms.
[ 195.892053] EtherCAT ERROR 0-0: Failed to set SAFEOP state, slave refused state change (PREOP + ERROR).
[ 195.893053] EtherCAT ERROR 0-0: AL status message 0x001D: "Invalid output configuration".
[ 195.895052] EtherCAT 0-0: Acknowledged state PREOP.
[ 195.942054] EtherCAT WARNING 0-1: Slave does not support changing the PDO mapping!
[ 195.942057] EtherCAT WARNING 0-1: Currently mapped PDO entries: 0x7000:01/1 0x7000:02/1 0x7000:03/1 0x7000:04/1 0x0000:00/4 0x0000:00/8 0x7000:11/32. Entries to map: 0x7000:01/1 0x7000:02/1 0x7000:03/1 0x7000:04/1 0x7000:11/32
[ 196.011052] EtherCAT WARNING 0-1: Slave does not support changing the PDO mapping!
[ 196.011054] EtherCAT WARNING 0-1: Currently mapped PDO entries: 0x6000:01/1 0x6000:02/1 0x6000:03/1 0x6000:04/1 0x6000:05/1 0x6000:06/1 0x6000:07/1 0x6000:08/1 0x6000:09/1 0x6000:0A/1 0x6000:0B/1 0x6000:0C/1 0x6000:0D/1 0x1C32:20/1 0x1801:07/1 0x1801:09/1 0x6000:11/32 0x6000:12/32. Entries to map: 0x6000:01/1 0x6000:02/1 0x6000:03/1 0x6000:04/1 0x6000:05/1 0x6000:06/1 0x6000:07/1 0x6000:08/1 0x6000:09/1 0x6000:10/1 0x6000:11/1 0x6000:12/1 0x6000:13/1 0x1C32:32/1 0x1801:07/1 0x1801:09/1 0x6000:17/32 0x6000:18/32
[ 196.030052] EtherCAT ERROR 0-1: Failed to set SAFEOP state, slave refused state change (PREOP + ERROR).
[ 196.031052] EtherCAT ERROR 0-1: AL status message 0x001D: "Invalid output configuration".
[ 196.033050] EtherCAT 0-1: Acknowledged state PREOP.
[ 196.080051] EtherCAT WARNING 0-2: Slave does not support changing the PDO mapping!
[ 196.080053] EtherCAT WARNING 0-2: Currently mapped PDO entries: 0x7000:01/1 0x7000:02/1 0x7000:03/1 0x7000:04/1 0x0000:00/4 0x0000:00/8 0x7000:11/32. Entries to map: 0x7000:01/1 0x7000:02/1 0x7000:03/1 0x7000:04/1 0x7000:11/32
[ 196.148050] EtherCAT WARNING 0-2: Slave does not support changing the PDO mapping!
[ 196.148052] EtherCAT WARNING 0-2: Currently mapped PDO entries: 0x6000:01/1 0x6000:02/1 0x6000:03/1 0x6000:04/1 0x6000:05/1 0x6000:06/1 0x6000:07/1 0x6000:08/1 0x6000:09/1 0x6000:0A/1 0x6000:0B/1 0x6000:0C/1 0x6000:0D/1 0x1C32:20/1 0x1801:07/1 0x1801:09/1 0x6000:11/32 0x6000:12/32. Entries to map: 0x6000:01/1 0x6000:02/1 0x6000:03/1 0x6000:04/1 0x6000:05/1 0x6000:06/1 0x6000:07/1 0x6000:08/1 0x6000:09/1 0x6000:10/1 0x6000:11/1 0x6000:12/1 0x6000:13/1 0x1C32:32/1 0x1801:07/1 0x1801:09/1 0x6000:17/32 0x6000:18/32
[ 198.251024] EtherCAT ERROR 0-2: Failed to set SAFEOP state, slave refused state change (PREOP + ERROR).
[ 198.252024] EtherCAT ERROR 0-2: AL status message 0x001D: "Invalid output configuration".
[ 198.254024] EtherCAT 0-2: Acknowledged state PREOP.
[/code]
[code][code]ethercat-conf machine config
[code]<masters>
<master idx="0" appTimePeriod="1000000" refClockSyncCycles="1000" name="m0">
<!-- EP5101 - Incr. Encoder Input -->
<slave idx="0" type="generic" vid="0x00000002" pid="0x13ED4052" name="EP5101-0" configPdos="true">
<!-- IMPORTANT: sometime (sync1Cycle = n * sync0Cycle) sync1Cycle must be appTimePeriod - sync0Cycle) -->
<!-- Check your DC config...generated is from impoted .xml but assignActivate is hard coded ... it should be different -->
<dcConf assignActivate="1000" sync0Cycle="1000000" sync0Shift="0" sync1Cycle="0" sync1Shift="0"/>
<sdoConfig idx="1C12" subIdx="complete">
<sdoDataRaw data="01000116"/>
</sdoConfig>
<sdoConfig idx="1C13" subIdx="complete">
<sdoDataRaw data="0100011A"/>
</sdoConfig>
<syncManager idx="0" dir="out"/>
<syncManager idx="1" dir="in"/>
<syncManager idx="2" dir="out">
<pdo idx="1601">
<!-- Enable latch C -->
<pdoEntry idx="7000" subIdx="01" bitLen="1" halPin="enable-latch-C" halType="bit"/>
<!-- Enable latch extern on positive edge -->
<pdoEntry idx="7000" subIdx="02" bitLen="1" halPin="ena-latch-ext-on-pos_edge" halType="bit"/>
<!-- Set counter -->
<pdoEntry idx="7000" subIdx="03" bitLen="1" halPin="set-counter" halType="bit"/>
<!-- Enable latch extern on negative edge -->
<pdoEntry idx="7000" subIdx="04" bitLen="1" halPin="ena-latch-ext-on-neg_edge" halType="bit"/>
<!-- Set counter value -->
<pdoEntry idx="7000" subIdx="11" bitLen="32" halPin="set-counter_value" halType="u32"/>
</pdo>
</syncManager>
<syncManager idx="3" dir="in">
<pdo idx="1A01">
<pdoEntry idx="6000" subIdx="01" bitLen="1" halPin="Status-Latch-C-197" halType="bit">
</pdoEntry>
<pdoEntry idx="6000" subIdx="02" bitLen="1" halPin="Status-Latch-e-198" halType="bit">
</pdoEntry>
<pdoEntry idx="6000" subIdx="03" bitLen="1" halPin="Status-Set-cou-199" halType="bit">
<!-- ENC STATUS-Status- -Set-cou-199 -->
</pdoEntry>
<pdoEntry idx="6000" subIdx="04" bitLen="1" halPin="Status-Counter-200" halType="bit">
<!-- ENC STATUS-Status- -Counter-200 -->
</pdoEntry>
<pdoEntry idx="6000" subIdx="05" bitLen="1" halPin="Status-Counter-201" halType="bit">
<!-- ENC STATUS-Status- -Counter-201 -->
</pdoEntry>
<pdoEntry idx="6000" subIdx="06" bitLen="1" halPin="Status-Status-202" halType="bit">
<!-- ENC STATUS-Status- -Status- -202 -->
</pdoEntry>
<pdoEntry idx="6000" subIdx="07" bitLen="1" halPin="Status-Open-ci-203" halType="bit">
<!-- ENC STATUS-Status- -Open-ci-203 -->
</pdoEntry>
<pdoEntry idx="6000" subIdx="08" bitLen="1" halPin="Status-Extrapo-204" halType="bit">
<!-- ENC STATUS-Status- -Extrapo-204 -->
</pdoEntry>
<pdoEntry idx="6000" subIdx="09" bitLen="1" halPin="Status-Status-205" halType="bit">
<!-- ENC STATUS-Status- -Status- -205 -->
</pdoEntry>
<pdoEntry idx="6000" subIdx="10" bitLen="1" halPin="Status-Status-206" halType="bit">
<!-- ENC STATUS-Status- -Status- -206 -->
</pdoEntry>
<pdoEntry idx="6000" subIdx="11" bitLen="1" halPin="Status-Status-207" halType="bit">
<!-- ENC STATUS-Status- -Status- -207 -->
</pdoEntry>
<pdoEntry idx="6000" subIdx="12" bitLen="1" halPin="Status-Status-208" halType="bit">
<!-- ENC STATUS-Status- -Status- -208 -->
</pdoEntry>
<pdoEntry idx="6000" subIdx="13" bitLen="1" halPin="Status-Status-209" halType="bit">
<!-- ENC STATUS-Status- -Status- -209 -->
</pdoEntry>
<pdoEntry idx="1C32" subIdx="32" bitLen="1" halPin="Status-Sync-er-210" halType="bit">
<!-- ENC STATUS-Status- -Sync-er-210 -->
</pdoEntry>
<pdoEntry idx="1801" subIdx="07" bitLen="1" halPin="Status-TxPDO-S-211" halType="bit">
<!-- ENC STATUS-Status- -TxPDO-S-211 -->
</pdoEntry>
<pdoEntry idx="1801" subIdx="09" bitLen="1" halPin="Status-TxPDO-T-212" halType="bit">
<!-- ENC STATUS-Status- -TxPDO-T-212 -->
</pdoEntry>
<pdoEntry idx="6000" subIdx="17" bitLen="32" halPin="Counter-value-213" halType="s32">
<!-- ENC STATUS-Counter-value-213 -->
</pdoEntry>
<pdoEntry idx="6000" subIdx="18" bitLen="32" halPin="Latch-value-214" halType="s32">
<!-- ENC STATUS-Latch-value-214 -->
</pdoEntry>
</pdo>
</syncManager>
</slave>
<slave idx="1" type="generic" vid="0x00000002" pid="0x13ED4052" name="EP5101-1" configPdos="true">
<!-- IMPORTANT: sometime (sync1Cycle = n * sync0Cycle) sync1Cycle must be appTimePeriod - sync0Cycle) -->
<!-- Check your DC config...generated is from impoted .xml but assignActivate is hard coded ... it should be different -->
<dcConf assignActivate="1000" sync0Cycle="1000000" sync0Shift="0" sync1Cycle="0" sync1Shift="0"/>
<sdoConfig idx="1C12" subIdx="complete">
<sdoDataRaw data="01000116"/>
</sdoConfig>
<sdoConfig idx="1C13" subIdx="complete">
<sdoDataRaw data="0100011A"/>
</sdoConfig>
<syncManager idx="0" dir="out"/>
<syncManager idx="1" dir="in"/>
<syncManager idx="2" dir="out">
<pdo idx="1601">
<!-- Enable latch C -->
<pdoEntry idx="7000" subIdx="01" bitLen="1" halPin="enable-latch-C" halType="bit"/>
<!-- Enable latch extern on positive edge -->
<pdoEntry idx="7000" subIdx="02" bitLen="1" halPin="ena-latch-ext-on-pos_edge" halType="bit"/>
<!-- Set counter -->
<pdoEntry idx="7000" subIdx="03" bitLen="1" halPin="set-counter" halType="bit"/>
<!-- Enable latch extern on negative edge -->
<pdoEntry idx="7000" subIdx="04" bitLen="1" halPin="ena-latch-ext-on-neg_edge" halType="bit"/>
<!-- Set counter value -->
<pdoEntry idx="7000" subIdx="11" bitLen="32" halPin="set-counter_value" halType="u32"/>
</pdo>
</syncManager>
<syncManager idx="3" dir="in">
<pdo idx="1A01">
<pdoEntry idx="6000" subIdx="01" bitLen="1" halPin="Status-Latch-C-197" halType="bit">
</pdoEntry>
<pdoEntry idx="6000" subIdx="02" bitLen="1" halPin="Status-Latch-e-198" halType="bit">
</pdoEntry>
<pdoEntry idx="6000" subIdx="03" bitLen="1" halPin="Status-Set-cou-199" halType="bit">
<!-- ENC STATUS-Status- -Set-cou-199 -->
</pdoEntry>
<pdoEntry idx="6000" subIdx="04" bitLen="1" halPin="Status-Counter-200" halType="bit">
<!-- ENC STATUS-Status- -Counter-200 -->
</pdoEntry>
<pdoEntry idx="6000" subIdx="05" bitLen="1" halPin="Status-Counter-201" halType="bit">
<!-- ENC STATUS-Status- -Counter-201 -->
</pdoEntry>
<pdoEntry idx="6000" subIdx="06" bitLen="1" halPin="Status-Status-202" halType="bit">
<!-- ENC STATUS-Status- -Status- -202 -->
</pdoEntry>
<pdoEntry idx="6000" subIdx="07" bitLen="1" halPin="Status-Open-ci-203" halType="bit">
<!-- ENC STATUS-Status- -Open-ci-203 -->
</pdoEntry>
<pdoEntry idx="6000" subIdx="08" bitLen="1" halPin="Status-Extrapo-204" halType="bit">
<!-- ENC STATUS-Status- -Extrapo-204 -->
</pdoEntry>
<pdoEntry idx="6000" subIdx="09" bitLen="1" halPin="Status-Status-205" halType="bit">
<!-- ENC STATUS-Status- -Status- -205 -->
</pdoEntry>
<pdoEntry idx="6000" subIdx="10" bitLen="1" halPin="Status-Status-206" halType="bit">
<!-- ENC STATUS-Status- -Status- -206 -->
</pdoEntry>
<pdoEntry idx="6000" subIdx="11" bitLen="1" halPin="Status-Status-207" halType="bit">
<!-- ENC STATUS-Status- -Status- -207 -->
</pdoEntry>
<pdoEntry idx="6000" subIdx="12" bitLen="1" halPin="Status-Status-208" halType="bit">
<!-- ENC STATUS-Status- -Status- -208 -->
</pdoEntry>
<pdoEntry idx="6000" subIdx="13" bitLen="1" halPin="Status-Status-209" halType="bit">
<!-- ENC STATUS-Status- -Status- -209 -->
</pdoEntry>
<pdoEntry idx="1C32" subIdx="32" bitLen="1" halPin="Status-Sync-er-210" halType="bit">
<!-- ENC STATUS-Status- -Sync-er-210 -->
</pdoEntry>
<pdoEntry idx="1801" subIdx="07" bitLen="1" halPin="Status-TxPDO-S-211" halType="bit">
<!-- ENC STATUS-Status- -TxPDO-S-211 -->
</pdoEntry>
<pdoEntry idx="1801" subIdx="09" bitLen="1" halPin="Status-TxPDO-T-212" halType="bit">
<!-- ENC STATUS-Status- -TxPDO-T-212 -->
</pdoEntry>
<pdoEntry idx="6000" subIdx="17" bitLen="32" halPin="Counter-value-213" halType="s32">
<!-- ENC STATUS-Counter-value-213 -->
</pdoEntry>
<pdoEntry idx="6000" subIdx="18" bitLen="32" halPin="Latch-value-214" halType="s32">
<!-- ENC STATUS-Latch-value-214 -->
</pdoEntry>
</pdo>
</syncManager>
</slave>
<slave idx="2" type="generic" vid="0x00000002" pid="0x13ED4052" name="EP5101-2" configPdos="true">
<!-- IMPORTANT: sometime (sync1Cycle = n * sync0Cycle) sync1Cycle must be appTimePeriod - sync0Cycle) -->
<!-- Check your DC config...generated is from impoted .xml but assignActivate is hard coded ... it should be different -->
<dcConf assignActivate="1000" sync0Cycle="1000000" sync0Shift="0" sync1Cycle="0" sync1Shift="0"/>
<sdoConfig idx="1C12" subIdx="complete">
<sdoDataRaw data="01000116"/>
</sdoConfig>
<sdoConfig idx="1C13" subIdx="complete">
<sdoDataRaw data="0100011A"/>
</sdoConfig>
<syncManager idx="0" dir="out"/>
<syncManager idx="1" dir="in"/>
<syncManager idx="2" dir="out">
<pdo idx="1601">
<!-- Enable latch C -->
<pdoEntry idx="7000" subIdx="01" bitLen="1" halPin="enable-latch-C" halType="bit"/>
<!-- Enable latch extern on positive edge -->
<pdoEntry idx="7000" subIdx="02" bitLen="1" halPin="ena-latch-ext-on-pos_edge" halType="bit"/>
<!-- Set counter -->
<pdoEntry idx="7000" subIdx="03" bitLen="1" halPin="set-counter" halType="bit"/>
<!-- Enable latch extern on negative edge -->
<pdoEntry idx="7000" subIdx="04" bitLen="1" halPin="ena-latch-ext-on-neg_edge" halType="bit"/>
<!-- Set counter value -->
<pdoEntry idx="7000" subIdx="11" bitLen="32" halPin="set-counter_value" halType="u32"/>
</pdo>
</syncManager>
<syncManager idx="3" dir="in">
<pdo idx="1A01">
<pdoEntry idx="6000" subIdx="01" bitLen="1" halPin="Status-Latch-C-197" halType="bit">
</pdoEntry>
<pdoEntry idx="6000" subIdx="02" bitLen="1" halPin="Status-Latch-e-198" halType="bit">
</pdoEntry>
<pdoEntry idx="6000" subIdx="03" bitLen="1" halPin="Status-Set-cou-199" halType="bit">
<!-- ENC STATUS-Status- -Set-cou-199 -->
</pdoEntry>
<pdoEntry idx="6000" subIdx="04" bitLen="1" halPin="Status-Counter-200" halType="bit">
<!-- ENC STATUS-Status- -Counter-200 -->
</pdoEntry>
<pdoEntry idx="6000" subIdx="05" bitLen="1" halPin="Status-Counter-201" halType="bit">
<!-- ENC STATUS-Status- -Counter-201 -->
</pdoEntry>
<pdoEntry idx="6000" subIdx="06" bitLen="1" halPin="Status-Status-202" halType="bit">
<!-- ENC STATUS-Status- -Status- -202 -->
</pdoEntry>
<pdoEntry idx="6000" subIdx="07" bitLen="1" halPin="Status-Open-ci-203" halType="bit">
<!-- ENC STATUS-Status- -Open-ci-203 -->
</pdoEntry>
<pdoEntry idx="6000" subIdx="08" bitLen="1" halPin="Status-Extrapo-204" halType="bit">
<!-- ENC STATUS-Status- -Extrapo-204 -->
</pdoEntry>
<pdoEntry idx="6000" subIdx="09" bitLen="1" halPin="Status-Status-205" halType="bit">
<!-- ENC STATUS-Status- -Status- -205 -->
</pdoEntry>
<pdoEntry idx="6000" subIdx="10" bitLen="1" halPin="Status-Status-206" halType="bit">
<!-- ENC STATUS-Status- -Status- -206 -->
</pdoEntry>
<pdoEntry idx="6000" subIdx="11" bitLen="1" halPin="Status-Status-207" halType="bit">
<!-- ENC STATUS-Status- -Status- -207 -->
</pdoEntry>
<pdoEntry idx="6000" subIdx="12" bitLen="1" halPin="Status-Status-208" halType="bit">
<!-- ENC STATUS-Status- -Status- -208 -->
</pdoEntry>
<pdoEntry idx="6000" subIdx="13" bitLen="1" halPin="Status-Status-209" halType="bit">
<!-- ENC STATUS-Status- -Status- -209 -->
</pdoEntry>
<pdoEntry idx="1C32" subIdx="32" bitLen="1" halPin="Status-Sync-er-210" halType="bit">
<!-- ENC STATUS-Status- -Sync-er-210 -->
</pdoEntry>
<pdoEntry idx="1801" subIdx="07" bitLen="1" halPin="Status-TxPDO-S-211" halType="bit">
<!-- ENC STATUS-Status- -TxPDO-S-211 -->
</pdoEntry>
<pdoEntry idx="1801" subIdx="09" bitLen="1" halPin="Status-TxPDO-T-212" halType="bit">
<!-- ENC STATUS-Status- -TxPDO-T-212 -->
</pdoEntry>
<pdoEntry idx="6000" subIdx="17" bitLen="32" halPin="Counter-value-213" halType="s32">
<!-- ENC STATUS-Counter-value-213 -->
</pdoEntry>
<pdoEntry idx="6000" subIdx="18" bitLen="32" halPin="Latch-value-214" halType="s32">
<!-- ENC STATUS-Latch-value-214 -->
</pdoEntry>
</pdo>
</syncManager>
</slave>
</master>
</masters>
[/code]
[code][code][code]ethercat slaves for now
[code]cnc@CNC-01:~/linuxcnc/configs/Maho400E-LinuxCNC$ ethercat slaves
0 0:0 PREOP + EP5101-0011 1K. Inc. Encoder 5V, D-SUB15
1 0:1 PREOP + EP5101-0011 1K. Inc. Encoder 5V, D-SUB15
2 0:2 PREOP + EP5101-0011 1K. Inc. Encoder 5V, D-SUB15
[/code]
- PCW
29 Jun 2025 22:17
Replied by PCW on topic Servo Driver Plasma Retrofit
Servo Driver Plasma Retrofit
Category: Plasmac
The basic motion I/O looks relatively straight forward
The A,/A B,/B, Z,/Z signals are encoder signals and go directly to the 7I97T
The Servo-Out pins go to the 7I97T analog out pins and the Servo-Out-Common pins
go the the 7I97T GND pins adjacent to the 7I97T analog out pins.
The drive enables are a bit more puzzling as It hard to tell if they are activated by grounding
or supplying a positive voltage
The A,/A B,/B, Z,/Z signals are encoder signals and go directly to the 7I97T
The Servo-Out pins go to the 7I97T analog out pins and the Servo-Out-Common pins
go the the 7I97T GND pins adjacent to the 7I97T analog out pins.
The drive enables are a bit more puzzling as It hard to tell if they are activated by grounding
or supplying a positive voltage
- PCW
29 Jun 2025 21:05
Replied by PCW on topic Tuning stepper motors with encoder or glass scale feedback
Tuning stepper motors with encoder or glass scale feedback
Category: Advanced Configuration
Homing configuration is in both the hal file (index and home switch handling) and the ini file
(type of homing, directions, speeds etc)
linuxcnc.org/docs/html/config/ini-homing.html
(type of homing, directions, speeds etc)
linuxcnc.org/docs/html/config/ini-homing.html
- JackRay
- JackRay
29 Jun 2025 20:33
Replied by JackRay on topic Tuning stepper motors with encoder or glass scale feedback
Tuning stepper motors with encoder or glass scale feedback
Category: Advanced Configuration
what do you mean by a configuration problem, in a .hal file?
- irwinger
- irwinger
29 Jun 2025 20:22
Replied by irwinger on topic Replaced Hard drive - now my 'fast move' (SHIFT->arrow |PgUp/PgDn is not working
Replaced Hard drive - now my 'fast move' (SHIFT->arrow |PgUp/PgDn is not working
Category: General LinuxCNC Questions
OK - I don't know how this got so 'catty wompus' but... turns out - it was my stepper setting. Originally - it was 8000 steps /inch. which seems to be what was in my 'backup' .INI. When I checked my step setting and did the math - I realized it should be 4000 steps. That improved the movement, but I was still getting 'follow errors' (or something like that). One thing I DID notice is - I was out by a factor of 2 when I did a G0 X.5 command. I went back to 8000 and suddenly I was out by a factor of 4... oops - wrong direction. Changed to 2000 steps/in and all my errors have gone and I am able to use the machine again.
I have to confirm yet - but I'm using a chinese 'blue' board parallel port controller and I'm wondering if my stepper switch settings are documented wrong.
Anyways - crisis resolved. Thank you for your help - this discussion can be closed.
I have to confirm yet - but I'm using a chinese 'blue' board parallel port controller and I'm wondering if my stepper switch settings are documented wrong.
Anyways - crisis resolved. Thank you for your help - this discussion can be closed.
- Bertho
- Bertho
29 Jun 2025 19:29
Replied by Bertho on topic How to write multipule data ( byte) mesambccc
How to write multipule data ( byte) mesambccc
Category: General LinuxCNC Questions
Hi again,
The bug has been found in the driver. It was indeed not counting correctly resulting in trying to overflow the buffer (that caused an abort without writing beyond the buffer). I will be making a patch for it tomorrow.
Also, the mrje70a device is something of a piece with very complex modbus communication (I downloaded the comms spec). It seems to use "record reads and writes in depth" where several values are read/write from an address in a structure like fashion. These must be read/written using a single modbus transaction (when the "continuous read/write" column set to "impossible" it seems to denote that it is a record read/written in depth and not by incremental address). That is the first time I've seen such a hack. Luckily, the driver can do that (but you need to ignore the misalignment warnings from mesambccc). However, some extra pin setup is needed before you want to start writing or you will be sending half or malformed data. I'll show how to do that when I have made the patch.
All that said, the patch will also include a fix for the completely brain-dead mrje70a communication, where it returns a single signed byte (!) in a word register's LSB and zeros the MSB while leaving the user the hassle to tackle the sign extension. The patch will allow you to perform the proper sign extension to s32, s64 or float hal types by introducing a byte type.
The bug has been found in the driver. It was indeed not counting correctly resulting in trying to overflow the buffer (that caused an abort without writing beyond the buffer). I will be making a patch for it tomorrow.
Also, the mrje70a device is something of a piece with very complex modbus communication (I downloaded the comms spec). It seems to use "record reads and writes in depth" where several values are read/write from an address in a structure like fashion. These must be read/written using a single modbus transaction (when the "continuous read/write" column set to "impossible" it seems to denote that it is a record read/written in depth and not by incremental address). That is the first time I've seen such a hack. Luckily, the driver can do that (but you need to ignore the misalignment warnings from mesambccc). However, some extra pin setup is needed before you want to start writing or you will be sending half or malformed data. I'll show how to do that when I have made the patch.
All that said, the patch will also include a fix for the completely brain-dead mrje70a communication, where it returns a single signed byte (!) in a word register's LSB and zeros the MSB while leaving the user the hassle to tackle the sign extension. The patch will allow you to perform the proper sign extension to s32, s64 or float hal types by introducing a byte type.
- slowpoke
- slowpoke
29 Jun 2025 19:25
Thanks for all your help!
Replied by slowpoke on topic Emulating lathe compound angle via manipulation of X & Z drives
Emulating lathe compound angle via manipulation of X & Z drives
Category: HAL Examples
Okay, figured out what I was doing wrong (anglejog.N.iscale-factor), so I now have angle jogging working.
I have not used the anglejog component other than playing around with the sim config. As I understand it the 'scale' factor is used to avoid stair stepping in the tool path. Maybe the original discussion can give you some more clues:
forum.linuxcnc.org/38-general-linuxcnc-q...mode?start=10#253252
[edit]
I would tend to use the default values used in the sim config and adjust the
'max_vel', 'max_accel' pins (and possibly 'accel_fraction_in' for fine tuning)
Thanks for your help. I should play with the sim config, I'm not sure how to do that?
Thanks for all your help!
- JT
29 Jun 2025 16:37
Replied by JT on topic Mesa Configuration Tool
Mesa Configuration Tool
Category: Configuration Tools
I was generating the bit string backwards which only worked right if all output types were the same. I just fixed that with PCW's help. The inputs and outputs hal has just been fixed as well.
JT
JT
- PCW
29 Jun 2025 16:26 - 29 Jun 2025 16:27
Replied by PCW on topic Tuning stepper motors with encoder or glass scale feedback
Tuning stepper motors with encoder or glass scale feedback
Category: Advanced Configuration
OK that means that index is working as expected, so if homing
to index fails, its likely a homing setup issue.
to index fails, its likely a homing setup issue.
- SebastianM
- SebastianM
29 Jun 2025 16:10 - 29 Jun 2025 16:14
Replied by SebastianM on topic Mesa Configuration Tool
Mesa Configuration Tool
Category: Configuration Tools
Another remark.. not sure if that me misunderstanding anything or if its another bug, but witih MesaCT I generated a config to set my outputs 0-7 to sinking and 8-15 to sourcing.
This were the generated lines:
setp hm2_7i76e.0.7i76.0.0.output_sink 0xff00
setp hm2_7i76e.0.7i76.0.0.output_source 0xff
isnt this "the wrong order"? imho this sets 0-7 to source and 8-15 to sink.. right?
This were the generated lines:
setp hm2_7i76e.0.7i76.0.0.output_sink 0xff00
setp hm2_7i76e.0.7i76.0.0.output_source 0xff
isnt this "the wrong order"? imho this sets 0-7 to source and 8-15 to sink.. right?
- kn612
- kn612
29 Jun 2025 15:34
Replied by kn612 on topic Servo Driver Plasma Retrofit
Servo Driver Plasma Retrofit
Category: Plasmac
Yes. Here is a schematic that goes from the interface PCB to the hypertherm microedge for the drives. I'm only familiar with stepper motors at this point so this is a little overwhelming.
- SebastianM
- SebastianM
29 Jun 2025 14:30
Replied by SebastianM on topic Mesa Configuration Tool
Mesa Configuration Tool
Category: Configuration Tools
Thx JT for the quick reply!
- besriworld
- besriworld
29 Jun 2025 14:27
Replied by besriworld on topic OLD Lathe conversion to a CNC
OLD Lathe conversion to a CNC
Category: Turning
Hello again, it's been a while. I'm now back working on the lathe machine. I connected the Modbus to the X and Y axis servo motors and also to the spindle – all working fine. I can read the load values from the servo motors without problems. But there is an issue with the spindle load display. Sometimes it shows too many zeros after the decimal point. I tried to fix this with Python code to cut the extra zeros, but I couldn't make it work. Has anyone had this problem before?
What is the easiest way to fix it?
What is the easiest way to fix it?
- JackRay
- JackRay
29 Jun 2025 14:07 - 29 Jun 2025 16:23
Replied by JackRay on topic Tuning stepper motors with encoder or glass scale feedback
Tuning stepper motors with encoder or glass scale feedback
Category: Advanced Configuration
so I tested it and switched the red button to yellow. and it turned red at the same position when I turned my encoder.
- PCW
29 Jun 2025 14:03
Replied by PCW on topic Tuning stepper motors with encoder or glass scale feedback
Tuning stepper motors with encoder or glass scale feedback
Category: Advanced Configuration
setp [HMOT](CARD0).encoder.00.index-enable true
This is wrong and should be removed
Also: Is the encoder position cleared to 0 when you set b-index-enable?
(set in the halshow:watch tab)
This is wrong and should be removed
Also: Is the encoder position cleared to 0 when you set b-index-enable?
(set in the halshow:watch tab)
Time to create page: 0.412 seconds