Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use Global Variable instead of InfoBlock #11

Closed
ciozi137 opened this issue May 24, 2023 · 12 comments
Closed

Use Global Variable instead of InfoBlock #11

ciozi137 opened this issue May 24, 2023 · 12 comments
Assignees

Comments

@ciozi137
Copy link
Member

  • Previously we were reading the scanner sensitivities from the "InfoBlock" with the command td_ReadValue("XLVDT Sens"). The cypher has a Sensitivity that depends on the sample height, as discussed in the document.
  • Instead we should read the sensitivity from the "Global Variable" with the command GV("XLVDTSens") (this needs to be done every time the tip motor changes - it may be possible to use a callback from Igor to notify LabVIEW when it changes, but this is not necessary)
  • The change to GV() will work for both the Cypher and MFP3D (the InfoBlock method only worked for MFP3D)

More discussion here:

@ciozi137 ciozi137 self-assigned this May 24, 2023
@ciozi137 ciozi137 transferred this issue from levylabpitt/AFM-Lithography May 24, 2023
@ciozi137
Copy link
Member Author

ciozi137 commented May 24, 2023

Confusingly, GV() means "Get Value" and reads the value from the Global Variable Table.
image
image

@ciozi137
Copy link
Member Author

image

@ciozi137
Copy link
Member Author

@Monkeymerlot I'm working on this. Just wanted you to be aware

@Monkeymerlot
Copy link
Collaborator

Monkeymerlot commented May 25, 2023

OK it should be really easy to make the change. You should be able to only change "Asylum_Driver_GetLVDTParameters.vi" as this is the only place that is calling the X(Y)LVDT parameters that was causing the issue. It would be best build a unit testable "build" function that ensures the proper format of the string before it gets sent to the Igor API if you wanted to be consistent with the rest of the driver. The tests are in the Asylum API Project.

@ciozi137
Copy link
Member Author

ciozi137 commented May 25, 2023

Hi @Monkeymerlot correct that is where the LVDT parameters are retrieved. However it's a little more complicated because I can't just change Build Read Value because it appears that td_ReadValue is still needed in some other places, OR the names in the tables are similar but slightly different.
For example:

  • td_ReadValue("XLVDT Sense") ✔️
  • GV("XLVDT Sens") ☹️
  • GV("XLVDTSens") ✔️ [no space!]

@ciozi137
Copy link
Member Author

It's not a big deal, I just need to make a new subVI for "read value" that is distinct from "td_read value". I should be able to get to it this morning

@Monkeymerlot
Copy link
Collaborator

I was thinking that you would make a new functionality called "GetValue" and then use the GV(...) like I do with the td_readvalue, and then replace that in the VI I mentioned above.

@ciozi137
Copy link
Member Author

@Monkeymerlot yes exactly

@Monkeymerlot
Copy link
Collaborator

@ciozi137
Copy link
Member Author

This look great thanks

@Monkeymerlot
Copy link
Collaborator

GV("XLVDT Sens") ☹️

Did you try GV("XLVDTSens") ie no e at the end as well? That is what is listed in the master variables table :
image

@ciozi137
Copy link
Member Author

Yes sorry typo in GitHub. We made this work on Cypher with code hotfix

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants