i have some questions when using the softmotion communication with my servo driver by Ethercat.
when i install my XML file in the codesys, master can not map the pdo to our driver. but when i install sanyo XML file , the communication work well. can you tell me what problem with my xml file . the xml file is special for the softmotion?
thank you very much.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
you need to.
-activate expert settings in the slave,
-go do the Expert Process data tap, add target Position (or whatever you want to transmit/receive) on outputdata and actual position on input data
-check pdo's in Process Datatap
If the drive support DS402 you might add a SoftMotion generic drive.
For using the drive with Raspberry Pi I would recommend to use SoftMotionLight (no realtime is needed on the plc)
BR
Edwin
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
i have two questions. if i dont add the SoftMotion generic drive, the master can not map the PDO to the slave. right?. becase i use my xml file, the master can not send the "1600/1A00"data to the drive.
when i use sanyo xml file, the SoftMotion drive will be made automatically. can you tell me why?
Hi,
hope I understand your question, I'll try to explain:
We (3S Smart Software Solutions) have implemented the library for this SanyoDenki drive.
Devicedescription is part of this service too.
Maybe our FAQ does help to understand how this works:
What is it for?
A SoftMotion drive driver is needed to run a servo device together with CoDeSys SoftMotion. Although many devices are based on a communication standard (like CiA DSP-402) it is a fact that there are still a lot of specific behaviours of each device, that are not covered by the standard or differently interpreted by the device manufacturers. To guarantee its functionality, this driver is needed. What does it consist of?
It consists of a library (that includes the application code that interface between the process data of the drive device and the SoftMotion function blocks in the application), a device description (that enables the user to add the device in the CoDeSys applicationβs device tree) and a short documentation about which features of the SoftMotion Drive Interface (like position limit switches, touch probing, handling of mechanical break) are supported. Who generates this driver?
The drivers are generated by 3S as a paid service. Depending on the complexity and degree of standardization of the drive, the effort of generating the driver is about 5 days of engineering, that has to be carried by the customer. The following efforts for maintaining this driver are carried by 3S. How is it delivered?
After the driver has passed the autotest procedure (a testproject that includes > 50 test cases), it is delivered as a preview version to the customer together with the test protocol. Then, it is integrated into the next SP of CoDeSys and becomes part of the standard delivery package of CoDeSys. Hence, it is installed with every CoDeSys installation and is available to all CoDeSys customers. Moreover, it is added to the list of supported drives on the 3S homepage and the datasheets. What does the customer need to provide?
First, the customer should provide a detailed description of the device (documentation, esp. object documentation and eds/eni files) that enables 3S to estimate the development costs. 3S will generate a commercial offer and technical specification in response.
After ordering, the customer needs to supply 3S with a functioning device (controller+motor) and an in-house contact that can be asked, when questions and problems arise during implementation.
The test device should stay at 3S to enable a bug fixing and testing for future versions. How long does the implementation process take?
The time 3S needs for the development depends on the current work-load. Typically, it is about 2 months after delivery of the test device, but can be more.
So we use P0002813C01.20110111.xml and generate the Devdesc which then come wih the CODESYS Setup and give the posibilty to use the SanyoDenki drive as 'SoftMotion ready" to use drive.
BR
Edwin
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
and i am a little confused. can the communication work well if i only add a SoftMotion generic drive you told me but implement the library by you? and what is the difference between them?
thank you very much.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi,
if you use a SoftMotion Driver (made by us) it take into accound if your drive supports touchprobing
and additional if the drive is not ds402 compatible it is possible too.
The generic driver approach does only work if the drive support the needed op modes by ds402 (at least cyclic position)
for using the generiv driver nothing additional is needed.
So you have this choice:
1. Use SoftMotion with an implemented driver which comes by the CODESYS Setup - it is needed to order it if it does not exists
2. Use SoftMotion with the generic DS402 Driver - is available in the setup - depend on the drive implementation if this will work
3. use SoftMotionLight (no CNC possible) - is availbale in the Setup - depend on the drive implementation if this will work (how compatible is the drive to DS402)
4. use the drive as standard ethercat slave not additional connector - using plcopen fb's / libraries is then not possible (except you implement this by your own)
(you Need then to set control word / mode of operation manually by your application / implementation)
BR
Edwin
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I am trying to use Soft Motion with a Festo CMMP Servo drive on EtherCAT.
EtherCAT communication is working but I cannot make it work with the commissioning tool.
When I manually move the axis, the position does not change.
When I press the power button, it does nothing.
When I press the homing button, it does nothing.
I am probably missing something. Maybe I need to map something somewhere??
Maybe it is in the drive configuration.
If I use the description files and the function blocks from Festo, it works. But now I want to make it work as a soft motion device.
Here's what it looks like:
the project:
using a 'distributed clock' enabled drive (which you need for using SoftMoiton and sending cyclic setpositions) on the raspberry pi will not work.
for distributed clocks you need realtime capabilies(on Linux).
Either you use SoftMotionLight or you need a realtime patched kernel.
SoftMotionLight is for axis independent point to point movement (without CNC/CAMING/Gering etc) but need an additional license.
BR
Edwin
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I was finally able to make it work using SoftMotion Light on a Raspberry Pi using the driver supplied by Festo (CMMP-AS V4p0 CIA402)
But I am now trying to make it work using SoftMotion on a SoftMotion RTE but I am not able to make it work.
I tried using the same driver supplied by Festo and also the driver supplied by Codesys but in both cases I am not able to get the status light green in the MC_POWER Visu:
I think I still have a lot to learn about CODESYS SoftMotion but it is hard to find all the info I need.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
i used the methord of adding the SoftMotion generic drive that you told me . And the problem has worked out . the cofiguration is handled well in the status changing.
but now have a new problem, please see the picture.
The softmotion model is not running. can you tell me what cause the problem? what do i need to do next?
Hi,
without having realtime capabilities on the Pi,
your ethercat drive will not work with the Raspberry Pi and SoftMotion (distributed clocks are mandatory for SoftMotion)
You have 3 Options:
1. For testing pupose you could use a rt_preemt patched Linux kernel with Raspberry Pi - an other CODESYS Pi User propose to use the Image here: l viewtopic.php?f=21&t=6280#p12524 l
2. use SoftMotion RTE (realtime capable Windows plc - this run almost on every Windows pc -System requirements : l viewtopic.php?f=24&t=6065 l which Network Cards are possible for ethercat and Control RTE)
Control RTE: http://store.codesys.com/systeme/codesy ... te-sl.html
RTE will run for 2h, you could use the drive. https://www.youtube.com/watch?v=R5DUYVS-pRQ
do not use Softmotion - use SoftMotionlight (no distributed clocks needed but only PtP movement is possible - extra license is needed)
BR
Edwin
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Edwin Schwellinger hat geschrieben:
3. do not use Softmotion - use SoftMotionlight (no distributed clocks needed but only PtP movement is possible - extra license is needed)
Hi Edwin, what extra license do you need for SML on the Pi?
BR
Simon
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Before you buy this you need to check if your drive is "DS402 - Profile positioning" capable
You'll find a project which is very helpful here 'c:\Program Files (x86)\3S CODESYS\CODESYS\Projects\SoftMotion\SoftMotionLight\SML_CompatibilityCheck_DS402.project'
BR
Edwin
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
yannickasselin1 hat geschrieben:
I was finally able to make it work using SoftMotion Light on a Raspberry Pi using the driver supplied by Festo (CMMP-AS V4p0 CIA402)
Hi!
Would you like to share how you made it work? I have a similar festo drive and I'm unable to add CiA402 SML drive to the CMMP-AS.
BR
Simon
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hello all,
I am new in CODESYS and EtherCat. I am trying to launch a project example EtherCat for Raspberry. I would like to move servomotor driven by ControlTechniques Digitax ST. It seems to be everything OK. RPi communicate with Digitax. I can see the position change, when I am turning a shaft. Digitax is energized in STOP mode (not in RUN mode). PLC_PRG contains only one line %QB0:=%QB0+1, I think it generate target position. I is not changing. The value is the same as Ethecat address %QD0. How are these variable linked? The control word %QW2 is still 00. What have I to do to move my motor?
Peter
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Additional you need to use the PLCopen functionblocks from SoftMotion to move the drive.
There is an example here which you could adapt easy to Raspi and Digitax:
l viewtopic.php?f=22&t=5645&p=10872#p10886 l
Download the Project from there then:
-Update the plc device in the device tree to raspberry pi
-Udpate Ethercat master and add Digitax
BR
Edwin
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Edwin Schwellinger hat geschrieben:
Hi,
this should work,
but it is mandatory to use a realtime patched kernel(this is needed for distributed clocks):
'rt_preemt patched Linux kernel' with Raspberry Pi - an other CODESYS Pi User in this Forum propose to use the Image here: http://www.emlid.com/real-time-linux-fo ... -binaries/
Additional you need to use the PLCopen functionblocks from SoftMotion to move the drive.
There is an example here which you could adapt easy to Raspi and Digitax:
l viewtopic.php?f=22&t=5645&p=10872#p10886 l
Download the Project from there then:
-Update the plc device in the device tree to raspberry pi
-Udpate Ethercat master and add Digitax
BR
Edwin
Hello Edwin,
Thank for help. I did recommended steps. The original version with SanyoDenki is after updating all necessary object OK. After this I updated original Slave to Digitax. The result is that in PLC_PRG and START object are undefined identifiers " Drive". See attached PrintScr. What I can do to repair it?
Peter
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Edwin Schwellinger hat geschrieben:
Hi,
rename the SM_Drive_ETC_ControlTechniques in the device Tree to "drive'
BR
Edwin
Hello Edwin,
It really works, thank.
Now I has been trying to create my own project. See attached printScr. Power.Status become to true and immediately after executing MoveRelative it falls to SMC_AXIS_STATE.errorstop. Do you have any idea how to proceed?
Peter
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Edwin Schwellinger hat geschrieben:
Hi,
you need to call your move1 Prg in the Motiontask context (to by synchronized)-
Additional you need to set the FramesAtTaskStart in the EthercatMaster Settings see screenshots.
BR
Edwin
Hi,
I did recommended correction, but nothing has changed. Please see attachement. You can see there the device tree and log page.
Peter
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
and your Raspberry Pi Image is a realtime patched kernel,
not Rasbian Jessi...?
Additonal you use Ethercat 1:1 connected to your drive on an (exclusive for Ethercat used) Interface?
BR
Edwin
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hello,
i have some questions when using the softmotion communication with my servo driver by Ethercat.
when i install my XML file in the codesys, master can not map the pdo to our driver. but when i install sanyo XML file , the communication work well. can you tell me what problem with my xml file . the xml file is special for the softmotion?
thank you very much.
Hello,
could you attach the ESI file of your ethercat drive?
BR
Edwin
ok. thank you
EuraDrivesServoEsi.xml [61.47 KiB]
Hi,
you need to.
-activate expert settings in the slave,
-go do the Expert Process data tap, add target Position (or whatever you want to transmit/receive) on outputdata and actual position on input data
-check pdo's in Process Datatap
If the drive support DS402 you might add a SoftMotion generic drive.
For using the drive with Raspberry Pi I would recommend to use SoftMotionLight (no realtime is needed on the plc)
BR
Edwin
Hi,
Thank you for your response.
i have two questions. if i dont add the SoftMotion generic drive, the master can not map the PDO to the slave. right?. becase i use my xml file, the master can not send the "1600/1A00"data to the drive.
when i use sanyo xml file, the SoftMotion drive will be made automatically. can you tell me why?
P0002813C01.20110111.xml [330.95 KiB]
Hi,
hope I understand your question, I'll try to explain:
We (3S Smart Software Solutions) have implemented the library for this SanyoDenki drive.
Devicedescription is part of this service too.
Maybe our FAQ does help to understand how this works:
What is it for?
A SoftMotion drive driver is needed to run a servo device together with CoDeSys SoftMotion. Although many devices are based on a communication standard (like CiA DSP-402) it is a fact that there are still a lot of specific behaviours of each device, that are not covered by the standard or differently interpreted by the device manufacturers. To guarantee its functionality, this driver is needed.
What does it consist of?
It consists of a library (that includes the application code that interface between the process data of the drive device and the SoftMotion function blocks in the application), a device description (that enables the user to add the device in the CoDeSys applicationβs device tree) and a short documentation about which features of the SoftMotion Drive Interface (like position limit switches, touch probing, handling of mechanical break) are supported.
Who generates this driver?
The drivers are generated by 3S as a paid service. Depending on the complexity and degree of standardization of the drive, the effort of generating the driver is about 5 days of engineering, that has to be carried by the customer. The following efforts for maintaining this driver are carried by 3S.
How is it delivered?
After the driver has passed the autotest procedure (a testproject that includes > 50 test cases), it is delivered as a preview version to the customer together with the test protocol. Then, it is integrated into the next SP of CoDeSys and becomes part of the standard delivery package of CoDeSys. Hence, it is installed with every CoDeSys installation and is available to all CoDeSys customers. Moreover, it is added to the list of supported drives on the 3S homepage and the datasheets.
What does the customer need to provide?
First, the customer should provide a detailed description of the device (documentation, esp. object documentation and eds/eni files) that enables 3S to estimate the development costs. 3S will generate a commercial offer and technical specification in response.
After ordering, the customer needs to supply 3S with a functioning device (controller+motor) and an in-house contact that can be asked, when questions and problems arise during implementation.
The test device should stay at 3S to enable a bug fixing and testing for future versions.
How long does the implementation process take?
The time 3S needs for the development depends on the current work-load. Typically, it is about 2 months after delivery of the test device, but can be more.
So we use P0002813C01.20110111.xml and generate the Devdesc which then come wih the CODESYS Setup and give the posibilty to use the SanyoDenki drive as 'SoftMotion ready" to use drive.
BR
Edwin
Hi,
thank you for your answer. it is very valuable.
and i am a little confused. can the communication work well if i only add a SoftMotion generic drive you told me but implement the library by you? and what is the difference between them?
thank you very much.
Hi,
if you use a SoftMotion Driver (made by us) it take into accound if your drive supports touchprobing
and additional if the drive is not ds402 compatible it is possible too.
The generic driver approach does only work if the drive support the needed op modes by ds402 (at least cyclic position)
for using the generiv driver nothing additional is needed.
So you have this choice:
1. Use SoftMotion with an implemented driver which comes by the CODESYS Setup - it is needed to order it if it does not exists
2. Use SoftMotion with the generic DS402 Driver - is available in the setup - depend on the drive implementation if this will work
3. use SoftMotionLight (no CNC possible) - is availbale in the Setup - depend on the drive implementation if this will work (how compatible is the drive to DS402)
4. use the drive as standard ethercat slave not additional connector - using plcopen fb's / libraries is then not possible (except you implement this by your own)
(you Need then to set control word / mode of operation manually by your application / implementation)
BR
Edwin
Hi,
I am trying to use Soft Motion with a Festo CMMP Servo drive on EtherCAT.
EtherCAT communication is working but I cannot make it work with the commissioning tool.
When I manually move the axis, the position does not change.
When I press the power button, it does nothing.
When I press the homing button, it does nothing.
I am probably missing something. Maybe I need to map something somewhere??
Maybe it is in the drive configuration.
If I use the description files and the function blocks from Festo, it works. But now I want to make it work as a soft motion device.
Here's what it looks like:
the project:
TestFestoEtherCAT.project [318.32 KiB]
Hi,
using a 'distributed clock' enabled drive (which you need for using SoftMoiton and sending cyclic setpositions) on the raspberry pi will not work.
for distributed clocks you need realtime capabilies(on Linux).
Either you use SoftMotionLight or you need a realtime patched kernel.
SoftMotionLight is for axis independent point to point movement (without CNC/CAMING/Gering etc) but need an additional license.
BR
Edwin
Hi,
I was finally able to make it work using SoftMotion Light on a Raspberry Pi using the driver supplied by Festo (CMMP-AS V4p0 CIA402)
But I am now trying to make it work using SoftMotion on a SoftMotion RTE but I am not able to make it work.
I tried using the same driver supplied by Festo and also the driver supplied by Codesys but in both cases I am not able to get the status light green in the MC_POWER Visu:
I think I still have a lot to learn about CODESYS SoftMotion but it is hard to find all the info I need.
Dear,
i used the methord of adding the SoftMotion generic drive that you told me . And the problem has worked out . the cofiguration is handled well in the status changing.
but now have a new problem, please see the picture.
The softmotion model is not running. can you tell me what cause the problem? what do i need to do next?
thank you very much and Best regards.
[[img src=https://forum.codesys.com//download/file.php?id=1237 alt="IMG: QZE5]MP$K83U4NGWFMN5VIT.png"]]
Hi,
Could you give me some suggestion for my problem?
thank you in advance.
Best regards.
Hi,
without having realtime capabilities on the Pi,
your ethercat drive will not work with the Raspberry Pi and SoftMotion (distributed clocks are mandatory for SoftMotion)
You have 3 Options:
1. For testing pupose you could use a rt_preemt patched Linux kernel with Raspberry Pi - an other CODESYS Pi User propose to use the Image here: l viewtopic.php?f=21&t=6280#p12524 l
2. use SoftMotion RTE (realtime capable Windows plc - this run almost on every Windows pc -System requirements : l viewtopic.php?f=24&t=6065 l which Network Cards are possible for ethercat and Control RTE)
Control RTE:
http://store.codesys.com/systeme/codesy ... te-sl.html
RTE will run for 2h, you could use the drive.
https://www.youtube.com/watch?v=R5DUYVS-pRQ
BR
Edwin
Hi Edwin, what extra license do you need for SML on the Pi?
BR
Simon
Hi,
it runs for 30min in demo mode full (for testing purpose good enough)
license is available here: http://store.codesys.com/codesys-softmo ... ht-sl.html
Before you buy this you need to check if your drive is "DS402 - Profile positioning" capable
You'll find a project which is very helpful here 'c:\Program Files (x86)\3S CODESYS\CODESYS\Projects\SoftMotion\SoftMotionLight\SML_CompatibilityCheck_DS402.project'
BR
Edwin
Hi!
Would you like to share how you made it work? I have a similar festo drive and I'm unable to add CiA402 SML drive to the CMMP-AS.
BR
Simon
Hello all,
I am new in CODESYS and EtherCat. I am trying to launch a project example EtherCat for Raspberry. I would like to move servomotor driven by ControlTechniques Digitax ST. It seems to be everything OK. RPi communicate with Digitax. I can see the position change, when I am turning a shaft. Digitax is energized in STOP mode (not in RUN mode). PLC_PRG contains only one line %QB0:=%QB0+1, I think it generate target position. I is not changing. The value is the same as Ethecat address %QD0. How are these variable linked? The control word %QW2 is still 00. What have I to do to move my motor?
Peter
Hi,
this should work,
but it is mandatory to use a realtime patched kernel(this is needed for distributed clocks):
'rt_preemt patched Linux kernel' with Raspberry Pi - an other CODESYS Pi User in this Forum propose to use the Image here:
http://www.emlid.com/real-time-linux-fo ... -binaries/
Additional you need to use the PLCopen functionblocks from SoftMotion to move the drive.
There is an example here which you could adapt easy to Raspi and Digitax:
l viewtopic.php?f=22&t=5645&p=10872#p10886 l
Download the Project from there then:
-Update the plc device in the device tree to raspberry pi
-Udpate Ethercat master and add Digitax
BR
Edwin
Hello Edwin,
Thank for help. I did recommended steps. The original version with SanyoDenki is after updating all necessary object OK. After this I updated original Slave to Digitax. The result is that in PLC_PRG and START object are undefined identifiers " Drive". See attached PrintScr. What I can do to repair it?
Peter
Hi,
rename the SM_Drive_ETC_ControlTechniques in the device Tree to "drive'
BR
Edwin
Hello Edwin,
It really works, thank.
Now I has been trying to create my own project. See attached printScr. Power.Status become to true and immediately after executing MoveRelative it falls to SMC_AXIS_STATE.errorstop. Do you have any idea how to proceed?
Peter
Hi,
you need to call your move1 Prg in the Motiontask context (to by synchronized)-
Additional you need to set the FramesAtTaskStart in the EthercatMaster Settings see screenshots.
BR
Edwin
Hi,
I did recommended correction, but nothing has changed. Please see attachement. You can see there the device tree and log page.
Peter
Hi,
and your Raspberry Pi Image is a realtime patched kernel,
not Rasbian Jessi...?
Additonal you use Ethercat 1:1 connected to your drive on an (exclusive for Ethercat used) Interface?
BR
Edwin