Should RapidSetup Show MultiAxis User Labels?

[RMP 10.3.1]

Should I expect RapidSetup to show user labels? I have seen inconsistent behavior (possibly related to how I’m using it), and I don’t know what to expect.

Consider this session:

>>> mc = pyrmp.MotionController.CreateFromSoftware(r'path\to\rsi')
>>> mc.MotionCountSet(9)
>>> ma0 = mc.MultiAxisGet(0)
>>> ma1 = mc.MultiAxisGet(1)
>>> ma2 = mc.MultiAxisGet(2)
>>> ma0.UserLabelGet()
>>> ma1.UserLabelGet()
>>> ma2.UserLabelGet()
>>> ma0.UserLabelSet('MG-1')
>>> ma1.UserLabelSet('MG-2')
>>> ma2.UserLabelSet('MG-3')
>>> ma0.UserLabelGet()
>>> ma1.UserLabelGet()
>>> ma2.UserLabelGet()

If I load RapidSetup after I set the user labels, it only shows "MultiAxis " as the name of the objects.


Within my application (not what’s shown above), I have two MultiAxis objects, and I set user labels on both of them. In RapidSetup, only the first MultiAxis has the label I set. The other one shows up as the default name, “MultiAxis 7.”

I’ve tried refreshing the view, restarting RapidSetup, and nothing I’ve thought to do has changed anything.
Should I expect RapidSetup to show user labels?

Does it matter if the MultiAxis has Axis objects in it?

When I call UserLabelSet(...) for all the Axis objects, RapidSetup shows the name (after I refresh the view).

In your python code example, do you also set AxisCount? MultiAxisGet(0) will get you the first “motion” object available after all the Axis objects. If AxisCount is 0, your first MultiAxis.NumberGet() will return 0.

It seems like when you open RapidSetup, it may detect some axes so it sets AxisCount. Now your originally created MultiAxis is no longer valid (it was overwritten).

RapidSetup reads the MultiAxis UserLabel when it starts/refreshes. You can test this by setting the UserLabel then reopening RapidSetup.

Sorry. I left out axis stuff. There are 6 axes. I set the motion count to 9 in order to create three MultiAxis objects. I didn’t call AxisCountSet(...), but AxisCountGet() returns 6.

I don’t think RapidSetup is doing any reallocation in my scenario.

  1. Restart Node A
  2. Start RapidSetup
  3. Start Network
    1. Node Count: 13
    2. Axis Count: 6
    3. Multi Axis Count: 0
    4. User Limit Count: 0
    5. Axis License Count: 64
  4. mc.MotionCountSet(9)
    1. mc.MotionCountGet() → 9
    2. (RapidSetup crashes; restart RapidSetup)
    3. Multi-Axis Count: 3
  5. Set user labels for all 6 axes.
    1. for axis_idx in range(mc.AxisCountGet()): mc.AxisGet(axis_idx).UserLabelSet(names[axis_idx])
  6. Refresh RapidSetup
    1. All axes show the user labels I set.
  7. Set user labels for all 3 multi axes
    1. for ma_idx in range(3): mc.MultiAxisGet(ma_idx).UserLabelSet(f'MA_{ma_idx:02d}')
    2. MultiAxis::UserLabelGet() returns the names I just set (“MA-00”, “MA-01”, …).
  8. Refresh RapidSetup
    1. Axes all show user labels.
    2. All multi axis objects show default name/label.
  9. Close RapidSetup. Restart it.
    1. Axes all show user labels.
    2. All multi axis objects show default name/label.

What should I do differently?

Ok I was testing with a 10.3.3 pre-release and it works fine. I tested 10.3.2, it works fine.

10.3.1 does not work. So you’re not doing anything wrong, you just need a newer release. I don’t see this bug called out specifically in the changelog, so I’ll investigate what happened.

Thanks, @scott. We’ll upgrade at some point. I was just waiting until there was a feature I wanted in order to justify the expense. This is not a mission-critical feature. It was just sugar for customers.