Advanced Search

Search Results (Searched for: )

  • PedPEx
  • PedPEx
29 Jun 2025 22:21 - 30 Jun 2025 09:32

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][    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]
[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][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][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][/code][/code]
[/code]
  • PCW
  • PCW's Avatar
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 

 
  • PCW
  • PCW's Avatar
29 Jun 2025 21:05

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
  • JackRay
  • JackRay
29 Jun 2025 20:33

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

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.
  • Bertho
  • Bertho
29 Jun 2025 19:29

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.
  • slowpoke
  • slowpoke
29 Jun 2025 19:25

Emulating lathe compound angle via manipulation of X & Z drives

Category: HAL Examples

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?

Okay, figured out what I was doing wrong (anglejog.N.iscale-factor), so I now have angle jogging working.

Thanks for all your help!
  • JT
  • JT's Avatar
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
  • PCW
  • PCW's Avatar
29 Jun 2025 16:26 - 29 Jun 2025 16:27

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.
  • 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?
  • 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?

 



 
  • JackRay
  • JackRay
29 Jun 2025 14:07 - 29 Jun 2025 16:23

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
  • PCW's Avatar
29 Jun 2025 14:03

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)
Displaying 121 - 135 out of 25534 results.
Time to create page: 0.412 seconds
Powered by Kunena Forum