Jump to content
OMRON Forums

3D Comp table


kandauru

Recommended Posts

Hi,

 

are you going to support 3D comp tables in your Power PMAC Suite?

I mean GUI tool (see attachment).

It was written somewhere - in the next release, but last release 2.1.0107 still does not do it.

Currently 1D comp table works perfectly, I am working on utility that will generate CSV file of 2D comp table for future loading in Comp Table Setup GUI tool, but our next coming application requires 3D compensation, so, do you have any example of it?

Thanks in advance.

902672097_3Dcomptable.JPG.10a65bc8b07851bd622d884c86441450.JPG

Link to comment
Share on other sites

  • Replies 4
  • Created
  • Last Reply

Top Posters In This Topic

We are working on tools for the IDE to support 3-D compensation tables in a future patch. This probably will not be ready until after summer (3Q time frame).

 

As for a complete example we do not have one at this time but I will have one of our application engineers create one next week.

Link to comment
Share on other sites

  • 2 weeks later...

Here is a simple example of a 3-dimensional compensation table. I have arranged the data to be in groups of “planar” data, this is how we will administer the feature in the IDE.

 

CompTable[2].Source[0]=1 // Use Motor 1 as 1st source

CompTable[2].Source[1]=2 // Use Motor 2 as 2nd source

CompTable[2].Source[2]=3 // Use Motor 3 as 3rd source

CompTable[2].Nx[0]=4 // 4 data zones from 1st source

CompTable[2].Nx[1]=3 // 3 data zones from 2nd source

CompTable[2].Nx[2]=2 // 2 data zones from 3rd source

CompTable[2].X0[0]=0 // Start table at 0 counts of 1st source

CompTable[2].X0[1]=0 // Start table at 0 counts of 2nd source

CompTable[2].X0[2]=0 // Start table at 0 counts of 3rd source

CompTable[2].Dx[0]=40000 // Span of 40,000 counts across 1st source

CompTable[2].Dx[1]=30000 // Span of 30,000 counts across 2nd source

CompTable[2].Dx[2]=20000 // Span of 20,000 counts across 3rd source

CompTable[2].Target[0]=Motor[4].CompPos.a // Motor 4 position loop

CompTable[2].Target[1]=Motor[4].CompPos2.a // Motor 4 velocity loop

CompTable[2].Sf[0]=1.0 // Unity scale factor for #4 position loop

CompTable[2].Sf[1]=1.0 // Unity scale factor for #4 velocity loop

CompTable[2].Ctrl=$AB // Mirror rollover in 3 dims, cubic interp

CompTable[2].OutCtrl=0 // Overwrite target registers each cycle

CompTable[2].Data[0][0] [0]=0,10,20,30,40 // 1st-row data points plane 0 (in #4 units)

CompTable[2].Data[0][1] [0]=11,21,31,41,51 // 2nd-row data points plane 0 (in #4 units)

CompTable[2].Data[0][2] [0]=22,32,42,52,62 // 3rd-row data points plane 0 (in #4 units)

CompTable[2].Data[0][3] [0]=33,43,53,63,73 // 4th-row data points plane 0 (in #4 units)

CompTable[2].Data[1][0] [0]=0,10,20,30,40 // 1st-row data points plane 1 (in #4 units)

CompTable[2].Data[1][1] [0]=11,21,31,41,51 // 2nd-row data points plane 1 (in #4 units)

CompTable[2].Data[1][2] [0]=22,32,42,52,62 // 3rd-row data points plane 1 (in #4 units)

CompTable[2].Data[1][3] [0]=33,43,53,63,73 // 4th-row data points plane 1 (in #4 units)

CompTable[2].Data[2][0] [0]=0,10,20,30,40 // 1st-row data points plane 2 (in #4 units)

CompTable[2].Data[2][1] [0]=11,21,31,41,51 // 2nd-row data points plane 2 (in #4 units)

CompTable[2].Data[2][2] [0]=22,32,42,52,62 // 3rd-row data points plane 2 (in #4 units)

CompTable[2].Data[2][3] [0]=33,43,53,63,73 // 4th-row data points plane 2 (in #4 units)

Sys.CompEnable=3 // Enable tables 0, 1 & 2

Link to comment
Share on other sites

Here is a simple example of a 3-dimensional compensation table. I have arranged the data to be in groups of “planar” data, this is how we will administer the feature in the IDE.

 

CompTable[2].Source[0]=1 // Use Motor 1 as 1st source

CompTable[2].Source[1]=2 // Use Motor 2 as 2nd source

CompTable[2].Source[2]=3 // Use Motor 3 as 3rd source

CompTable[2].Nx[0]=4 // 4 data zones from 1st source

CompTable[2].Nx[1]=3 // 3 data zones from 2nd source

CompTable[2].Nx[2]=2 // 2 data zones from 3rd source

CompTable[2].X0[0]=0 // Start table at 0 counts of 1st source

CompTable[2].X0[1]=0 // Start table at 0 counts of 2nd source

CompTable[2].X0[2]=0 // Start table at 0 counts of 3rd source

CompTable[2].Dx[0]=40000 // Span of 40,000 counts across 1st source

CompTable[2].Dx[1]=30000 // Span of 30,000 counts across 2nd source

CompTable[2].Dx[2]=20000 // Span of 20,000 counts across 3rd source

CompTable[2].Target[0]=Motor[4].CompPos.a // Motor 4 position loop

CompTable[2].Target[1]=Motor[4].CompPos2.a // Motor 4 velocity loop

CompTable[2].Sf[0]=1.0 // Unity scale factor for #4 position loop

CompTable[2].Sf[1]=1.0 // Unity scale factor for #4 velocity loop

CompTable[2].Ctrl=$AB // Mirror rollover in 3 dims, cubic interp

CompTable[2].OutCtrl=0 // Overwrite target registers each cycle

CompTable[2].Data[0][0] [0]=0,10,20,30,40 // 1st-row data points plane 0 (in #4 units)

CompTable[2].Data[0][1] [0]=11,21,31,41,51 // 2nd-row data points plane 0 (in #4 units)

CompTable[2].Data[0][2] [0]=22,32,42,52,62 // 3rd-row data points plane 0 (in #4 units)

CompTable[2].Data[0][3] [0]=33,43,53,63,73 // 4th-row data points plane 0 (in #4 units)

CompTable[2].Data[1][0] [0]=0,10,20,30,40 // 1st-row data points plane 1 (in #4 units)

CompTable[2].Data[1][1] [0]=11,21,31,41,51 // 2nd-row data points plane 1 (in #4 units)

CompTable[2].Data[1][2] [0]=22,32,42,52,62 // 3rd-row data points plane 1 (in #4 units)

CompTable[2].Data[1][3] [0]=33,43,53,63,73 // 4th-row data points plane 1 (in #4 units)

CompTable[2].Data[2][0] [0]=0,10,20,30,40 // 1st-row data points plane 2 (in #4 units)

CompTable[2].Data[2][1] [0]=11,21,31,41,51 // 2nd-row data points plane 2 (in #4 units)

CompTable[2].Data[2][2] [0]=22,32,42,52,62 // 3rd-row data points plane 2 (in #4 units)

CompTable[2].Data[2][3] [0]=33,43,53,63,73 // 4th-row data points plane 2 (in #4 units)

Sys.CompEnable=3 // Enable tables 0, 1 & 2

 

Thanks!

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.

×
×
  • Create New...