Ethercat, EL6751 and CANOpen

More
11 Jan 2024 22:57 #290464 by mic
Ethercat, EL6751 and CANOpen was created by mic
Hi,
i am a little bit lost with the configuration of CANOpen Devices via EtherCAT.
All other EtherCAT Components are working fine with LinuxCNC but since a few days i am trying to configure Nanotec SMCI-47-S stepperdrivers but i am stuck in the first step - configuring the device with TwinCAT.
What i have done so far:
- Adding EtherCAT coupler and IOs to TwinCAT -> working properly
- Adding the EL6751 and add an CANOpen Network
- Add generic CANOpen Slave and load the corresponding eds File to make the data and diagnosis readable
- I can communicate with the slave and everything goes "OP"
- I need to define the content of PDOs by setting the RX/TPDO Mapping Parameter
- Trying to change the TPDO1 Mapping Parameter results in an Error called: "SDO data mismatch at StartUp" ... "SDO Upload Error 0x1a00 SI2 received value != expected value"

The manual describes PDO mapping as following:
  1. Change to the “Pre-Operational” mode.
  2. Deactivate the PDO to be changed and reset.
  3. Write changed mapping and activate PDO again.
  4. Bring the controller into “Operational” mode again in order to use the PDO
The Startup SDO config is attached.
0x1a00 subid 1 does not throw an error because it´s equal to the current config on the motor driver.
I am not sure about the step number 1 - Do i have to put the device into PreOp by Startup SDOs? I think that the device is in Preop while configured by twincat.

Has anyone experience configuring CANOpen devices with CiA402 profile and can give some hints configuring the PDOs correctly?
Thanks in advance
 
Attachments:
The following user(s) said Thank You: zmrdko

Please Log in or Create an account to join the conversation.

More
15 Jan 2024 20:55 #290798 by bkt
Replied by bkt on topic Ethercat, EL6751 and CANOpen
and your xml file is?
The following user(s) said Thank You: endian

Please Log in or Create an account to join the conversation.

More
08 Oct 2024 15:24 #311581 by rammfr
Replied by rammfr on topic Ethercat, EL6751 and CANOpen
Hello everybody,
I'm also stuck with the setup of CANOpen communication via Ethercat.
I'm also trying to get the EL6751 master connected to Kollmorgen Servostar 600 Drives, with no luck -- in my case I think the Firmware and/or Hardware version of my EL6751 device is the issue. Please, can anybody with a working setup tell me the Firmware and Serial number of his/her device. Mine is Firmware v13, Serial Number 45080708, and I do not get the (as I've read in this Forum) mandatory Option Modular Device Profil Mapping in Twincat...
BR Franz

Please Log in or Create an account to join the conversation.

More
11 Oct 2024 20:29 #311832 by endian
Replied by endian on topic Ethercat, EL6751 and CANOpen
Hi,
check this Thread .. I am currently using a canopen master el6751 as a gateway for my spindle vfd .. 

It is great way to setup them over twincat3 .. write config pdos to el6751 pdo setup and after get it to free run... Set free run period to the 1ms cycle time which is same as lcec .. default is 4ms and components in the thread has 4ms delay temp...
When everything is green in twincat 3 a running disconnect it from the twincat3 master rj45 socked a connect it to the lcec pc master rj45 socket where is ethercat service running

When is everything ccorrect after command 
ethercat pdos -v
u should see working pdo config for the el6751 master ... Copy paste them
This is a PDOs side of setup...

U will need a SDOs setup of PDOs which is psossible to export from twincat to .csv file ale after copy paste to your .xml file before the SMs

Take inspiration from my thread before and create your own .xml file .. 

From experiences from servostars .. you will need custom component to run them, because of incremental commands and homing subroutines are pain... But over ethercat I did ds402.comp similar to cia402.comp from dominik where are all stuff working ... But only for S3xx/S7xx with fw 5.18 and higher ... Because of flexible mapping object limitations
The following user(s) said Thank You: rammfr, Macwolf

Please Log in or Create an account to join the conversation.

More
01 Nov 2024 06:56 #313575 by rammfr
Replied by rammfr on topic Ethercat, EL6751 and CANOpen
Thanks for the answer. In the meantime, I got a EL6731 Profibus device, since my servostar devices do have an extra Profibus interface. After long tinkering, I got at least the velocity mode working with that. I think I will simply use PID control and velocity mode for positioning axis. Next big thing is homing... Can you send me your ds402.comp for the servostar? If anybody is interested, I can post my not yet finished hal-servostar600dp project.
BR Franz

Please Log in or Create an account to join the conversation.

More
03 Nov 2024 18:24 #313722 by endian
Replied by endian on topic Ethercat, EL6751 and CANOpen
I have done profibus interface too... homing is waiting too :) but it is not yet tested well because of time .... profibus interface will be same for each of kollrmogen product ... as well as s400, s600, s300 and s700 ... defenetly share your code if it is possible ... I will share them when I will on my second laptop

here is thread where is all necessary stuff for ds402.comp for ethercat interface .. homing will be same in profibus and here in the ethercat .. but with profibus it is more fun with byte swaping for motorolas cpus ... and for ds402.comp is homing and all other functions are working for hw 04.00 and fw 5.13 and higher 

regards

Please Log in or Create an account to join the conversation.

More
03 Nov 2024 18:58 - 03 Nov 2024 19:21 #313724 by endian
Replied by endian on topic Ethercat, EL6751 and CANOpen
this is canopen for sew lteb vfd which should be workable for non rigid tapping purposes ... I running them 18k low cost spindle just for researching
Attachments:
Last edit: 03 Nov 2024 19:21 by endian.

Please Log in or Create an account to join the conversation.

More
03 Nov 2024 21:23 - 04 Nov 2024 07:36 #313725 by rammfr
Replied by rammfr on topic Ethercat, EL6751 and CANOpen
Hello endian,
great, in the end I found somebody who is brave enough to work on the kollmorgen servos! Awesome!
In the appendix, you can find a tarball of my current version. As I said, the drive is somehow communicating with lcnc, but I do have terrible timing issues.

In a nutshell, what I did or tried to do:

set up the EL 6731 using twincat3
  • PDOs for parameter channel and process data
  • cycle time 1ms
  • use of Ethercat MDP Mapping and upload the config to the EL6731, hence no init commands or startup sdos in ethercat.xml on lcnc side necessary (Not sure here)
  • not sure about settings for Distributed Clocks (just left it default, at the moment)

lcnc comp
  • use parameter channel to set operation mode <--- velocity
  • byte swapping magic (not sure If I got that right)
  • scaling the velocity and position feedback (not sure about the scaling numbers, docu is a mess, as you probably know

lcnc ini/hal
  • try to use a simple PID loop: position command (from motion, setpoint) position-feedback (from servostar. Here I do have the issue -- due to comm problems this data is very laggy, hence the PID cannot do its job) PID output == velocity command to servostar

Here are my issues / todos
  • I'm not sure if I correctly use the parameter channel of profibus (PKW) Due to lack of understanding of SDOs, I simply put the PKW as an PDO and initialize the drive on startup -- IMHO it would be better to do that via SDO or some other hard-coded init sequence I'm not aware of. Maybe the constantly send/rec of the parameter channel causes the timing issues.
  • I need to parameterize the velocity profile for the position loop. Where to do that? Drive GUI?
  • Homing: I think of simply use the built-in homing method of lcnc, the implementation in the hal comp seems to be a bigger time effort. Here a question, in case the homing switch is reached (digital I/O of another EL card) how to set the position feedback of the kollmorgen servo to zero.
  • Enable the drive is working, disable is buggy -- need to correct this

Sorry for the lengthy message, but maybe you have some hints on one of the issues. I'll definitly take a look at the other thread and your provided info. Thanks again!

BR Franz
Last edit: 04 Nov 2024 07:36 by rammfr.

Please Log in or Create an account to join the conversation.

More
03 Nov 2024 21:27 - 03 Nov 2024 22:03 #313726 by rammfr
Replied by rammfr on topic Ethercat, EL6751 and CANOpen
in the appendix my servostar profibus attempt.
Btw, here are details of my setup:
Servostar 603, Firmware 5.76, HW version 49.01
AKM31E Servomotor
Last edit: 03 Nov 2024 22:03 by rammfr.
The following user(s) said Thank You: endian

Please Log in or Create an account to join the conversation.

More
04 Nov 2024 07:49 #313746 by endian
Replied by endian on topic Ethercat, EL6751 and CANOpen
  • PDOs for parameter channel and process data - You have to set SDO via ethercat-conf.xml on startup else there will be a default values I thought
  • cycle time 1ms - this is right, default is 4ms which should cause lagging
  • use of Ethercat MDP Mapping and upload the config to the EL6731, hence no init commands or startup sdos in ethercat.xml on lcnc side necessary (Not sure here) - yes they are necessary
  • not sure about settings for Distributed Clocks (just left it default, at the moment) - you active DC, it is for EL6731 necessary, GC for profibus are possible but they are not implemented in the kollmorgen card yet 
lcnc comp
  • use parameter channel to set operation mode <--- velocity - from character of movement, it is necessary only velocity mode because positionning are over motion tasks in the servo internal.. 
  • byte swapping magic (not sure If I got that right) - I will share my program with them... there it is probably right because it jump to enable and I had a position feedback directly
  • scaling the velocity and position feedback (not sure about the scaling numbers, docu is a mess, as you probably know
Here are my issues / todos
  • I'm not sure if I correctly use the parameter channel of profibus (PKW) Due to lack of understanding of SDOs, I simply put the PKW as an PDO and initialize the drive on startup -- IMHO it would be better to do that via SDO or some other hard-coded init sequence I'm not aware of. Maybe the constantly send/rec of the parameter channel causes the timing issues. - there it is little bit different, it had only one universal canal where datas are mirroring each other - you have to be carrefull and you have to get right answer from driver itself... 
  • I need to parameterize the velocity profile for the position loop. Where to do that? Drive GUI? - position loop as in the CiA standard are not directly possible because of idea of communication shape itself 
  • Homing: I think of simply use the built-in homing method of lcnc, the implementation in the hal comp seems to be a bigger time effort. Here a question, in case the homing switch is reached (digital I/O of another EL card) how to set the position feedback of the kollmorgen servo to zero. - it should be tested in the drive gui and then u should run it over op mode 1 with 14 and 15 bit of zsw off ... characteristic have to be done in the driveGUI soft itselft before... I did tutorial of driveGUI installation on the Debian distro before.. lets check them, you should have easier live after
  • Enable the drive is working, disable is buggy -- need to correct this  - 

Please Log in or Create an account to join the conversation.

Time to create page: 0.093 seconds
Powered by Kunena Forum