News:

  • June 07, 2026, 11:12:01 AM

Login with username, password and session length

Author Topic: Motion sanity check...  (Read 194088 times)

BobO

  • Host Moderator
  • Hero Member
  • *****
  • Posts: 6158
  • Yes Pinky, Do-more will control the world!
Re: Motion sanity check...
« Reply #60 on: April 21, 2016, 11:11:43 PM »
If 'dwell' == 'wait here for X ms', then yes.
"It has recently come to our attention that users spend 95% of their time using 5% of the available features. That might be relevant." -BobO

ATU

  • Internal Dev
  • Hero Member
  • ****
  • Posts: 2126
  • YKPAIHA
    • ATU, Inc.
Re: Motion sanity check...
« Reply #61 on: April 21, 2016, 11:34:59 PM »
Then what does Motion Wait timer do?

BobO

  • Host Moderator
  • Hero Member
  • *****
  • Posts: 6158
  • Yes Pinky, Do-more will control the world!
Re: Motion sanity check...
« Reply #62 on: April 21, 2016, 11:44:28 PM »
Then what does Motion Wait timer do?

Do timer blocks until completion.

Start timer sets the timer value and continues the script.

Wait timer waits until any remaining time from a start expires.

Put another way: do = start + wait
« Last Edit: April 22, 2016, 12:06:17 AM by BobO »
"It has recently come to our attention that users spend 95% of their time using 5% of the available features. That might be relevant." -BobO

ATU

  • Internal Dev
  • Hero Member
  • ****
  • Posts: 2126
  • YKPAIHA
    • ATU, Inc.
Re: Motion sanity check...
« Reply #63 on: April 22, 2016, 03:35:09 PM »
Can you make a rough diagram, not sure I understand.

Controls Guy

  • Internal Dev
  • Hero Member
  • ****
  • Posts: 3607
  • Darth Ladder
Re: Motion sanity check...
« Reply #64 on: April 23, 2016, 12:20:27 AM »
If I understand him, it's like this:  Do would be like a stage (or G-code) that begins something such as a timer, that will naturally complete, and on completion, you JMP from the stage to the next one.  Start is like SETting an SG (has no impact on the current stage thread position), and wait is like waiting on a condition before JMPing.  So Do would be a start plus a wait in the same stage.
I retract my earlier statement that half of all politicians are crooks.  Half of all politicians are NOT crooks.  There.

BobO

  • Host Moderator
  • Hero Member
  • *****
  • Posts: 6158
  • Yes Pinky, Do-more will control the world!
Re: Motion sanity check...
« Reply #65 on: April 23, 2016, 08:16:13 AM »
If I understand him, it's like this:  Do would be like a stage (or G-code) that begins something such as a timer, that will naturally complete, and on completion, you JMP from the stage to the next one.  Start is like SETting an SG (has no impact on the current stage thread position), and wait is like waiting on a condition before JMPing.  So Do would be a start plus a wait in the same stage.

Exactly this.

I could have done the whole thing with just start and wait, but it felt clunky for the majority of cases where you want to do something atomicly. Conversely, I would have just done do, but there are clearly cases where you will want to start an action and then do other things before coming back to waiting for the first to complete...think SFC divergence and convergence.
"It has recently come to our attention that users spend 95% of their time using 5% of the available features. That might be relevant." -BobO

ATU

  • Internal Dev
  • Hero Member
  • ****
  • Posts: 2126
  • YKPAIHA
    • ATU, Inc.
Re: Motion sanity check...
« Reply #66 on: April 23, 2016, 10:37:46 AM »
Perfectly clear now, but the naming just wasn't intuitive. I almost would prefer some mode parameter in the time instruction.  Who knows, maybe you might want another timer mode, such as an abort when you see some I/O change state.

BobO

  • Host Moderator
  • Hero Member
  • *****
  • Posts: 6158
  • Yes Pinky, Do-more will control the world!
Re: Motion sanity check...
« Reply #67 on: April 23, 2016, 07:25:49 PM »
Perfectly clear now, but the naming just wasn't intuitive. I almost would prefer some mode parameter in the time instruction.  Who knows, maybe you might want another timer mode, such as an abort when you see some I/O change state.

These are the low level hardware defines, not the user presentation. The behaviors will be far more obvious once incorporated into an editor.
"It has recently come to our attention that users spend 95% of their time using 5% of the available features. That might be relevant." -BobO

BobO

  • Host Moderator
  • Hero Member
  • *****
  • Posts: 6158
  • Yes Pinky, Do-more will control the world!
Re: Motion sanity check...
« Reply #68 on: April 26, 2016, 03:21:39 PM »
More progress.

We are liking the idea of two slaving instructions:

AXGEAR: Raw slaving, no accel/decel, dynamic gear ratio. Master axis delta pos * gear ratio = Slave axis delta pos.

AXFOLLOW: True follower mode with slave accel/decel, fixed gear ratio, and dynamic offset. In this mode you specify the master axis and gear ratio and enable the box. The follower axis accels to match the master and upon doing so is considered to be 'locked'. When locked, the offset can be changed, resulting in relative trapezoidal velocity changes to re-lock the slave at a new position relative to the master. Best description is (possibly) sprinting to board a (moving or stationary) train, and then moving from position to position inside the train, using axis accel/decel values and a relative velocity (conductor shouts "walk"!)

AXFOLLOW could easily do a bunch of cool apps.
"It has recently come to our attention that users spend 95% of their time using 5% of the available features. That might be relevant." -BobO

Controls Guy

  • Internal Dev
  • Hero Member
  • ****
  • Posts: 3607
  • Darth Ladder
Re: Motion sanity check...
« Reply #69 on: April 26, 2016, 05:00:29 PM »
Nice - that's going to be a very powerful instruction!   :)
I retract my earlier statement that half of all politicians are crooks.  Half of all politicians are NOT crooks.  There.

ATU

  • Internal Dev
  • Hero Member
  • ****
  • Posts: 2126
  • YKPAIHA
    • ATU, Inc.
Re: Motion sanity check...
« Reply #70 on: April 26, 2016, 10:33:37 PM »
How about a preset move table? Helpful for the newbie and would fit many simple applications.
Simple user interface that stores canned Move distance, speeds, accelerations in a simple table that is stored at user designated memory area.
One instruction selects the move in the table and runs it.

And...

If you select a continuous mode, you specify the start and the stop preset and it runs those moves one after the other, but I'll bet you already have that part of it in your scripting function. This would just be another way to manage the moves. Preset tables would be something that users would be very familiar with.
« Last Edit: April 27, 2016, 07:35:39 AM by ATU »

BobO

  • Host Moderator
  • Hero Member
  • *****
  • Posts: 6158
  • Yes Pinky, Do-more will control the world!
Re: Motion sanity check...
« Reply #71 on: April 27, 2016, 10:20:14 AM »
I would think you could do essentially the same thing with the existing positioning box and indirect references.
"It has recently come to our attention that users spend 95% of their time using 5% of the available features. That might be relevant." -BobO

ATU

  • Internal Dev
  • Hero Member
  • ****
  • Posts: 2126
  • YKPAIHA
    • ATU, Inc.
Re: Motion sanity check...
« Reply #72 on: April 27, 2016, 10:40:03 AM »
True, I am sure you could. You can get the same thing accomplished with that feature, and it may appear as window dressing.
However, a preset move table in an indexer is very common to many brands and familiar to most users.

BobO

  • Host Moderator
  • Hero Member
  • *****
  • Posts: 6158
  • Yes Pinky, Do-more will control the world!
Re: Motion sanity check...
« Reply #73 on: April 27, 2016, 10:52:11 AM »
What does the instruction look like...enable leg and a do the next move leg? Could probably use the axis .AtPos bit to indicate when the current move is complete. It wouldn't be hard. Only rub is that velocity and position are integers and accel/decel are normally floats, since the data types would need to be the same. Don't guess they really have to be though, since the units are pulses/sec^2.

Wouldn't be hard to let them choose the table content either. Minimally it would support position, but you could optionally turn on velocity, accel, and decel, allowing the record to be as short as 1 DWORD or as long as 4 DWORDs. Any value not specified in the table would use the current axis property.
"It has recently come to our attention that users spend 95% of their time using 5% of the available features. That might be relevant." -BobO

BobO

  • Host Moderator
  • Hero Member
  • *****
  • Posts: 6158
  • Yes Pinky, Do-more will control the world!
Re: Motion sanity check...
« Reply #74 on: April 29, 2016, 11:18:52 AM »
AXFOLLOW. Master is encoder input, slave is pulse out. Initial lock on far left, followed by 4 offset moves.
"It has recently come to our attention that users spend 95% of their time using 5% of the available features. That might be relevant." -BobO