Jump to content
OMRON Forums

Encoder from parallel position issues


Recommended Posts

I'm using Profibus MLDT sensors to close the loop to some hydraulic axes.


To do so I get the encoder position from profibus and put it into a 24 bit register e.g. m1000->X:$772,0,24,S


Then I set up the Encoder conversion table to get the data from "Parallel pos from Y/X with filtering" (but actually I tried also from Y and without filtering).


The Issue that I have is that the ECT doesn't correctly apply bits shifting, so regardless of the setting I get 1/32 of the value in M1000 as position counts.


so if M1000 equals 10000 I get 312,5 cts if I set "Normal shift (5 bits to the left" and also if I set "No Shifting")

Macro Shifting gives a different result.


I know I can get away multiplying the source value by 32, but I was curious to know why those setting don't work.


P.S. Reading the ECT I can see that the setting is actually different ($700772 vs $780772)

P.P.S I use a 80MHz PMAC2 - PC104

Any ideas?

Link to comment
Share on other sites

  • Replies 4
  • Created
  • Last Reply

Top Posters In This Topic

doing other tests I found my mistake - I forgot changing position and velocity loop address.

Since the encoder conversion table is now shifted from the standard I was erroneously pointing to the intermediate value before shifting.

Link to comment
Share on other sites

  • 3 months later...

While working on the field with these encoders I had to face another issue: since the source encoder is a 3m long MLDT transducer with base resolution of 200 cts/mm I was forced to scale down the resolution to avoid the rollover in the ECT.

This doesn't happen with a 1100mm long transducer.

So what is the practical limit using a single entry of the ECT? I would say 8388608/32= 262144 but a confirmation would be appreciated...

Link to comment
Share on other sites

If you're using the output of the ECT as a motor position/velocity input, then the motor input will handle the roll over of the ECT output and you shouldn't be worried about it. However, in order to have the proper value initially, you need to setup power-up servo position (Ix10) with a setting of $48xxxx - $70xxxx Parallel Data X-Register Unsigned or $C8xxxx - $F0xxxx Parallel Data X-Register Signed and initiate a servo position read by issuing a #n$* command in your initialization PLC.


Also, not to leave your question unanswered, the value would be 16777216/32=524288 since we have a 24-bit register.

Link to comment
Share on other sites

This topic is now closed to further replies.

  • Create New...