Jump to content
OMRON Forums

Incorrect fluctuation of serial encoder speed


1220801328

Recommended Posts


Hi all.
I've recently encountered a difficulty while debugging an SSI encoder using the CK3M series with a 1515 axis module (firmware 2.6.1.1)

After I set up the parameters according to the manual, he was able to read out the scale position information correctly and mapped it to the motor correctly. I found small fluctuations in the normal open loop curve during the open loop motion, next I found parabolic fluctuations after adjusting the PID parameters and while adjusting the Kvff and other parameters.

And then I found in the actual JOG movement, when the motor is closed loop and at rest, the motor is noiseless, when I move the motor the motor emits noise, and the faster I move, the more drastic the noise.

 

I tried to use the oscilloscope in the tool to capture the current real time motor speed which is (Motor[x].ActVel) to push the table by hand in open loop, and found that the data captured also has the problem that the faster the speed, the more violent the fluctuation in the data, it is like superimposing a regular noise on the actual speed.

(Phase 16K servo period 8K)

1.thumb.jpg.12c0046421b1d2c20bbb60727007a4f3.jpg


2.thumb.png.f99a64c32327655491baa53c7b5918de.png

 

3.thumb.png.f70917f724d8444f3f401c464c5c3994.png
 

I tried two types of trigger sources, two types of edges, and all transmission frequencies, all without solving the problem. But it makes a difference when I change the transmission frequency.

(The waveform looks like this at the arrow if the frequency is low and I think it's working properly.Phase 16K servo period 8K,SSI is 0.5M frequency)

image.png.dea7a5d8967b72941000c00a135d2664.png




And then I tried using a different manufacturer's scale, a different protocol, and of course I set it up correctly according to the manual (the second one I tried was the MC15 from RSF with EnDat 2.2) and the same thing happened.

However, I have noticed a correlation between this fluctuation and the servo or phase period I have set, but I am not sure what is causing it.

(Phase 16K servo period 4K)

image.thumb.png.a48ed86bd82d53af7e0d76b12ea11a6c.png

 

Attached are the parameters I have set (SSI is 2M frequency, 31 bits of data, binary, no parity, 2.5nm)

Sys.WpKey = $AAAAAAAA
Gate3[0].PhaseFreq = 16000
Gate3[0].ServoClockDiv = 1
Sys.ServoPeriod = 1000 * (Gate3[0].ServoClockDiv + 1) / Gate3[0].PhaseFreq
Sys.PhaseOverServoPeriod = 1 / (Gate3[0].ServoClockDiv + 1)
Sys.RtIntPeriod=1

Gate3[0].SerialEncCtrl = $31000002
Gate3[0].Chan[0].SerialEncCmd = $0000101F
Gate3[0].Chan[0].SerialEncEna = 1

EncTable[1].type = 1
EncTable[1].index1=0
EncTable[1].index2=0
EncTable[1].index3=0
EncTable[1].index4=0
EncTable[1].index5=0
EncTable[1].index6=0
EncTable[1].pEnc1=Sys.pushm
EncTable[1].pEnc = Gate3[0].Chan[0].SerialEncDataA.a
EncTable[1].MaxDelta=0
EncTable[1].ScaleFactor = 1

Motor[1].ServoCtrl = 1
Motor[1].pEnc = EncTable[1].a
Motor[1].pEnc2 = EncTable[1].a


Any suggestions on this that could solve the problem?
Thanks in advance

Link to comment
Share on other sites

  • Replies 3
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Posted Images

Posted (edited)

From the above data, there is a problem with the lowest bit of the returned data.

Can you confirm that the number of encoder bits is 31 bits?

If the number of transmission bits is incorrect, it will lead to incorrect results.

In addition, you can also check whether the parity bits of the following Gate3[i].Chan[j].SerialEncDataB are correct.

Maybe there is a correlation with the cable you are using, are you using twisted pair shielded cable? And the correct differential pair are twisted.

Or reduce the transmission frequency and change to servo trigger. Encoders using Gray code can improve data stability.

 

 

You can try the following configuration to erase low bits data. Of course, this may cause loss of accuracy.

EncTable[1].type = 1
EncTable[1].index1=2
EncTable[1].index2=2
EncTable[1].index3=0
EncTable[1].index4=0
EncTable[1].index5=0
EncTable[1].index6=0
EncTable[1].pEnc1=Sys.pushm
EncTable[1].pEnc = Gate3[0].Chan[0].SerialEncDataA.a
EncTable[1].MaxDelta=0
EncTable[1].ScaleFactor = 1

Edited by MoMo
Link to comment
Share on other sites

I have tried all possible values from 32 to 25 bits in the parameter Gate3[0].Chan[0].SerialEncCmd, and without exception the speed fluctuates the same, but the number of bits in the encoder feedback table I have not modified, it has always been 32Bit.
I tried this encoder feedback table configuration and the final speed fluctuation is not significantly different from the previous one.

Link to comment
Share on other sites

On 7/7/2024 at 10:32 AM, MoMo said:

From the above data, there is a problem with the lowest bit of the returned data.

Can you confirm that the number of encoder bits is 31 bits?

If the number of transmission bits is incorrect, it will lead to incorrect results.

In addition, you can also check whether the parity bits of the following Gate3[i].Chan[j].SerialEncDataB are correct.

Maybe there is a correlation with the cable you are using, are you using twisted pair shielded cable? And the correct differential pair are twisted.

Or reduce the transmission frequency and change to servo trigger. Encoders using Gray code can improve data stability.

 

 

You can try the following configuration to erase low bits data. Of course, this may cause loss of accuracy.

EncTable[1].type = 1
EncTable[1].index1=2
EncTable[1].index2=2
EncTable[1].index3=0
EncTable[1].index4=0
EncTable[1].index5=0
EncTable[1].index6=0
EncTable[1].pEnc1=Sys.pushm
EncTable[1].pEnc = Gate3[0].Chan[0].SerialEncDataA.a
EncTable[1].MaxDelta=0
EncTable[1].ScaleFactor = 1

I also tried setting Gate3[0].SerialEncCtrl to $31020002, including using a falling edge, which ultimately didn't work.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...