LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Newport XPS-Q8 stages home set at a certain point

Solved!
Go to solution

Hi,

I have a question regarding the Newport XPS-Q8 stages.

I am writing a VI to control the Newport XPS-Q8 stage I have. I need help with two task I could not find how to do in the manual.

The first thing is that I want to set the current position as "home", so the vi can take this as a origin to scan. Obviously I wan to be able to change this "home" every time I start the program.

The second part is that I want to be able to scan from this set origin not just forwards but backwards. If you imagine the home is your origin, I want to be able to move from -10 to 10 (for instance) not just in one direction (that is what I am able to move now with the "move relatively" setting)
Thank you very much for your answer

0 Kudos
Message 1 of 4
(3,553 Views)
Solution
Accepted by topic author Laurawendy

Hi Laurawendy,

In the Q8 Manual, see section 7.3 "Referencing State".

Once you've found the "mechanical home" (limit switch/encoder mark) you can use the GroupReferencingAction "SetPosition" to set the mechanical-home to an arbitrary position.

The process requires the stage/controller to find the "mechanical home", after which you probaby want to move back to the new "0" - so the stage will move-around a lot and it can take a few seconds to complete the process.

 

I found it was much faster and less disruptive to maintain an offset in software.  When the user clicks "set current position as home", record the current absolute position as the new offset.  After that, when the user makes an absolute move, you calculate the destination as (requested-position + offset).  When the user requests the current position, you report the current absolute-position - offset.  If using a class or FGV to implement stage functions, then the offset becomes a property managed by the class or FGV.

 

Regarding relative moves, I'm not sure I understand the question. In general, both positive and negative relative moves are allowed - assuming the destination is within the physical limits of motion.  If you are at an absolute position of 10 and want to move to -10, then the relative distance to move would be -20.

 

Hope it helps!Smiley Happy

 

 

Message 2 of 4
(3,510 Views)

Hi 550nm

Thank you very much for taking the time to answer my question.

Can I ask you something else about it?

How do you put an offset? and what does FGV mean? (I am really new to labview and I there is a lot of things I don't understand yet)

 

About my second question, I think I have the answer, I have to move the absolute position of my stage to the starting point (-10) and then move it relatively every step until it rearches the final point (10)

0 Kudos
Message 3 of 4
(3,502 Views)

Hi Laurawendy,

FGV stands for "Functional Global Variable", though some LabVIEWer's might say "Action Engine" is the right term.  Just think of it as a function that can do different things and remember stuff.  An FGV/ActionEngine can "represent" the stage in your code.  Everywhere you would do something with the stage, you would call FGV, specifying a specific function to perform.  First call the FGV Initialize function to open the TCP connection, then it's ready to do the other functions. Once you write the offset to the FGV, it will remember it and can apply it when doing a Move or reading position. To your program, this has the same effect as if you did the stage-referencing steps.  It's true you have to do a bit of math inside the FGV, however, it only takes a few micro-seconds to update the offset, and you don't have to change the stage position (as with the referencing technique).

 

I'm attaching some example to give you an idea.  If you have more questions about FGVs (AKA "Action Engines") just search this site.

 

Cheers!

0 Kudos
Message 4 of 4
(3,485 Views)