I'm trying to control Omron R88D-1S01H-ECT using Codesys control for linux SL, ethercat and SoftMotion CiA402 Axis, but it doesn't work.
However, Online Config mode works.
In base mode I try to use SMC_Inch to get analog control like in Online Config mode, but i got an error 34 (SMC_AXIS_NOT_READY_FOR_MOTION).
What's my wrong? And what differences between SMC_Inch in base mode and analog controlling in commissioning in Online config mode?
Wow... one month ago you asked a question that seems to be the same general question that I'm looking to solve.. so can you help me and let me know what the status of this is now... have you managed to solve it..
I am facing the exact same problem but with SoE. If you managed to solve it, please let us know how.
My progress has been patchy... I can get the drive to go online, and it looks to be handling the ethercat traffic, I get drive feedback, and if you command the drive it shows as busy, but no motion, I have tried all the scaling options I can think of... But nothing seems to help, the frustration is the drive is fully working from CX drive or the config mode...
It's clearly something in a config somewhere
Hi, I got it to work.
The problem with my code was that my motion FBs were called in a POU which was not called in the motion task / EtherCAT task.
Once I changed the POU (program) with motion FBs to be called under my EtherCAT task, the problem was solved and I am able to move the axis with the softmotion FBs.
Hope this helps :)
WOW... thats massive.. and also important to know..
so let me just check what that looks like.. (for my own sanity .. and to see if i understand what your talking about.. )
if you have some program code that uses a function block to control a servo over ethercat,
like Power_on, or the Jog function block..
that code needs to be running under the Ethercat Task in the task configuration part of the devices tab in codesys..
like in this picture..
so by doing this you are getting the ethercat "driver" for want of a better word to action the function blocks...
now please correct me if i'm wrong.. as i dont have a raspberry Pi to test with as i've lost one, its just boot looping.. :-(
The setting in your picture is correct.
This is what I changed too - moving PLC_PRG from MainTask to EtherCAT_Task.
You should also know that my SoftMotion EtherCAT Master is configured to use the EtherCAT_Task (see attachment).
Also a small correction in your answer, the Power_on/MC_Power works when called from any task.
Only the actual motion FBs (SM3_Basic -> POUs -> Movement) need to be called from the fieldbus / Motion task.
My understanding here is that, the motion interpolation calculation should happen in sync with the Fieldbus cycle time - so that new motion set points that are generated (in softmotion for the axis), are in sync with the data exchange time.
Also I found that there are pre-defined visualizations that can be used to test out softmotion without writing much code.
Just add a visualization to your application and then open 'visualization toolbox' and then select SM3_Basic (see attachment).
Add required visu to your project, provide axis reference and you are good to go.
Thanks for your ideas guys!
I'll try it as soon as i can and callback you!
Log in to post a comment.