Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Encoder from parallel position issues
#1
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?
Reply
#2
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.
Reply
#3
Thanks for updating us on your previous post.
Sina Sattari
Hardware Engineering Manager
Delta Tau Data Systems, Inc.
Reply
#4
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...
Reply
#5
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.
Sina Sattari
Hardware Engineering Manager
Delta Tau Data Systems, Inc.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)