Jump to content
OMRON Forums

Recommended Posts

Posted

I have an application where the command to a motor comes from an analogue source. This is heavily filtered to remove noise.

 

I noticed that my motor always had a following error even when the commanded position was constant - the integration mode is 1 - so it should only integrate when the desired velocity is zero.

 

In fact, because the command comes from an analogue input, the desired velocity is never zero - it's very, very small and this is really fooling the integration logic.

 

Is there any way to add a tolerance so that the DesVelZero shows true when below a small threshold instead of exactly zero?

 

I could of course write my own code to change the integration mode on the fly if this is not possible.

  • Replies 3
  • Created
  • Last Reply

Top Posters In This Topic

Popular Days

Top Posters In This Topic

Posted
The problem is that your integration mode uses DesVelZero as its trigger - so unless there's a way of giving it a band, I have no choise but to write my own code to toggle the state of the integration mode so that I can enable and disable the integrator depending upon "real" desired velocity.
Posted

I think one way or another you will have to create your threshold in user code. If you are tracking the input with one of our automatic algorithms like position following, you will want a PLC program that monitors with something like:

 

if (abs(Motor[x].DesVel < MyEpsilon)) Motor[x].SwZvInt = 0;

else Motor[x].SwZvInt = 1;

 

If you are implementing the tracking in user code, it would be easy to create a deadband in that algorithm.

Guest
This topic is now closed to further replies.

×
×
  • Create New...