Hallo db1981,
Danke für den Hinweis!
Die el6751_init.xml hatte tatsächlich diesen Fehler. In der ethercat_conf.xml waren wohl auch syntaktische Fehler (sagte LCNC), die ich aber selber beheben konnte (glaub ich zumindest). Folgende Fehler kommen nun, nachdem die parsing Fehler verschwunden sind:
Das sagt dmesg:
Code:
[ 4580.658565] EtherCAT: Requesting master 0...
[ 4580.658569] EtherCAT: Successfully requested master 0.
[ 4580.658769] EtherCAT 0: Domain0: Logical address 0x00000000, 18 byte, expected working counter 3.
[ 4580.658772] EtherCAT 0: Datagram domain0-0-main: Logical offset 0x00000000, 18 byte, type LRW at 0000000098c21702.
[ 4580.661251] EtherCAT 0: Master thread exited.
[ 4580.661258] EtherCAT 0: Starting EtherCAT-OP thread.
[ 4580.661335] EtherCAT WARNING 0: 1 datagram UNMATCHED!
[ 4580.726451] EtherCAT 0: Slave states on main device: INIT, PREOP.
[ 4580.738506] EtherCAT 0: Slave states on main device: PREOP.
[ 4580.763108] EtherCAT 0: Slave states on main device: PREOP, OP.
[ 4580.775200] EtherCAT 0: Slave states on main device: INIT, OP.
[ 4580.859569] EtherCAT 0: Slave states on main device: PREOP, OP.
[ 4580.907809] EtherCAT WARNING 0-main-1: CoE Emergency Request received:
Error code 0xFF00, Error register 0x01, data:
[ 4580.907812] EtherCAT DEBUG: 10 06 07 1D 20
[ 4580.915861] EtherCAT ERROR 0-main-1: SDO download 0x8000:00 (76 bytes) aborted.
[ 4580.915867] EtherCAT ERROR 0-main-1: SDO abort message 0x06040043: "General parameter incompatibility reason".
[ 4580.915869] EtherCAT ERROR 0-main-1: SDO configuration failed.
[ 4586.660792] EtherCAT WARNING 0: 4 datagrams UNMATCHED!
[ 4586.716379] EtherCAT WARNING: Datagram 0000000098c21702 (domain0-0-main) was SKIPPED 3 times.
[ 4587.662895] EtherCAT WARNING 0: 4 datagrams UNMATCHED!
[ 4587.719983] EtherCAT WARNING: Datagram 0000000098c21702 (domain0-0-main) was SKIPPED 1 time.
[ 4587.872942] EtherCAT 0: Master thread exited.
[ 4587.872966] EtherCAT 0: Starting EtherCAT-IDLE thread.
[ 4587.873101] EtherCAT 0: Releasing master...
[ 4587.873103] EtherCAT 0: Released.
[ 4587.885398] EtherCAT 0: Slave states on main device: INIT, PREOP.
[ 4587.910187] EtherCAT 0: Slave states on main device: PREOP.
[ 4587.934323] EtherCAT 0: Slave states on main device: INIT, PREOP.
[ 4588.018793] EtherCAT 0: Slave states on main device: PREOP.
[ 4747.845612] perf: interrupt took too long (3149 > 3137), lowering kernel.perf_event_max_sample_rate to 63500
und das zeigt die Kommandozeilenausgabe nach linuxcnc:
Code:
LINUXCNC - 2.8.0-77-ge6cfcfa39
Machine configuration directory is '/home/arti/Desktop/linuxcnc_axis/configs/sim.qtvcp_screens'
Machine configuration file is 'fraese_2021-08-02.ini'
Starting LinuxCNC...
emc/iotask/ioControl.cc 702: can't load tool table.
Found file(REL): ./lcec_load.hal
Note: Using POSIX realtime
Component Pins:
Owner Type Dir Value Name
20 bit OUT FALSE lcec.0.0.slave-online
20 bit OUT FALSE lcec.0.0.slave-oper
20 bit OUT FALSE lcec.0.0.slave-state-init
20 bit OUT FALSE lcec.0.0.slave-state-op
20 bit OUT FALSE lcec.0.0.slave-state-preop
20 bit OUT FALSE lcec.0.0.slave-state-safeop
20 bit OUT FALSE lcec.0.1.can-node15-diagstate
20 u32 OUT 0x00000000 lcec.0.1.can-node15-nodestate
20 u32 IN 0x00000000 lcec.0.1.node1-control-word
20 u32 OUT 0x00000000 lcec.0.1.node1-dig-inputs
20 u32 IN 0x00000000 lcec.0.1.node1-dig-outputs
20 s32 OUT 0 lcec.0.1.node1-mode-of-op-fb
20 s32 IN 0 lcec.0.1.node1-modes-of-op
20 s32 IN 0 lcec.0.1.node1-pos-demand-value
20 s32 OUT 0 lcec.0.1.node1-pos-fb
20 u32 OUT 0x00000000 lcec.0.1.node1-status-word
20 bit OUT FALSE lcec.0.1.slave-online
20 bit OUT FALSE lcec.0.1.slave-oper
20 bit OUT FALSE lcec.0.1.slave-state-init
20 bit OUT FALSE lcec.0.1.slave-state-op
20 bit OUT FALSE lcec.0.1.slave-state-preop
20 bit OUT FALSE lcec.0.1.slave-state-safeop
20 bit OUT FALSE lcec.0.all-op
20 bit OUT FALSE lcec.0.link-up
20 s32 OUT 0 lcec.0.read.time
20 u32 OUT 0x00000000 lcec.0.slaves-responding
20 bit OUT FALSE lcec.0.state-init
20 bit OUT FALSE lcec.0.state-op
20 bit OUT FALSE lcec.0.state-preop
20 bit OUT FALSE lcec.0.state-safeop
20 s32 OUT 0 lcec.0.write.time
20 bit OUT FALSE lcec.all-op
16 u32 OUT 0x00000001 lcec.conf.master-count
16 u32 OUT 0x00000002 lcec.conf.slave-count
20 bit OUT FALSE lcec.link-up
20 s32 OUT 0 lcec.read-all.time
20 u32 OUT 0x00000000 lcec.slaves-responding
20 bit OUT FALSE lcec.state-init
20 bit OUT FALSE lcec.state-op
20 bit OUT FALSE lcec.state-preop
20 bit OUT FALSE lcec.state-safeop
20 s32 OUT 0 lcec.write-all.time
Exported Functions:
Owner CodeAddr Arg FP Users Name
00020 7f09df89c36d 55e4bd3d9e00 NO 0 lcec.0.read
00020 7f09df89b66b 55e4bd3d9e00 NO 0 lcec.0.write
00020 7f09df89c4ce 00000000 NO 1 lcec.read-all
00020 7f09df89b70e 00000000 NO 1 lcec.write-all
note: MAXV max: 5.000 units/sec 300.000 units/min
note: LJOG max: 5.000 units/sec 300.000 units/min
note: LJOG default: 0.250 units/sec 15.000 units/min
waiting for s.joints<0>, s.kinematics_type<0>
waiting for s.joints<0>, s.kinematics_type<0>
waiting for s.joints<0>, s.kinematics_type<0>
waiting for s.joints<0>, s.kinematics_type<0>
waiting for s.joints<0>, s.kinematics_type<0>
waiting for s.joints<0>, s.kinematics_type<0>
USRMOT: ERROR: command timeout
emcMotionInit: emcTrajInit failed
waiting for s.joints<0>, s.kinematics_type<0>
waiting for s.joints<0>, s.kinematics_type<0>
Waiting for component 'inihal' to become ready...........USRMOT: ERROR: command timeout
emcMotionInit: emcTrajInit failed
waiting for s.joints<0>, s.kinematics_type<0>
...................USRMOT: ERROR: command timeout
emcMotionInit: emcTrajInit failed
......A configuration error is preventing LinuxCNC from starting.
More information may be available when running from a terminal.
Shutting down and cleaning up LinuxCNC...
..............USRMOT: ERROR: command timeout
emcMotionInit: emcTrajInit failed
..............
<commandline>:0: milltask exited without becoming ready
Note: Using POSIX realtime
LinuxCNC terminated with an error. You can find more information in the log:
/home/arti/linuxcnc_debug.txt
and
/home/arti/linuxcnc_print.txt
as well as in the output of the shell command 'dmesg' and in the terminal
Bitte gebt mir noch einen Hinweis wo ich weitermachen kann.
Außerdem habe ich noch eine Verständnisfrage: Wenn ich
ethercat sdos
ausführe, erscheinen verschiedene Objekte. Diese Objekte kommen mir aber so unbekannt vor. Da ist kein Steuerwort (0x60400010), keine Istposition (0x60630020) oder ähnliches dabei. Ich hätte gedacht, ich kann "durch" die EL6751 direkt auf den Regler schreiben/lesen???
Danke
Grüße
Columbo
P.S.
ethercat pdos bringt:
Code:
== Master 0, Slave 1 ===
SM0: PhysAddr 0x1800, DefaultSize 558, ControlRegister 0x26, Enable 1
SM1: PhysAddr 0x1a2e, DefaultSize 558, ControlRegister 0x22, Enable 1
SM2: PhysAddr 0x1000, DefaultSize 0, ControlRegister 0x26, Enable 1
SM3: PhysAddr 0x1400, DefaultSize 0, ControlRegister 0x22, Enable 1
...da sollte doch (wenn ich richtig recherchiert habe) bei SM2 und SM3 mehr stehen oder?