From 04:00 PM CDT – 08:00 PM CDT (09:00 PM UTC – 01:00 AM UTC) Tuesday, April 16, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

text parser for thin film growth control

Hi. I am trying to use labview for some strig parsing, and I am finding it
a bit frustrating. Am I missing something about text parsing under Labview,
or is there a more powerful way of addressing strings (or should I just make
Python or TCL/TK or Perl calls)

To give an example, I need a flexible system for commanding thin film
growth, and a typical statement looks like

1*(Cu,50)+20*(Co,30)(Cu,10)+1*(Cu,200)

Which means I grow 1 50 angstrom thick layer of copper, followed by a
multilayer with 20 bilayers, and each bilayer composed of 10 angstoms of
Copper and 30 angstoms of cobalt. Finally, a cap of 20 Angstoms of copper
is placed on the stucture.

I read off the mumber of cells (things preceded by a *) and t
he material in
each cell.
This data is read into a timing array/cluster, which is tells the computer
which shutters to open and when.

Things get more complicated when I need to consider more complicated dual
bilayer structures, and alloys. However, this is all doable (and has been
done) with a very, very old Basic system, which I would like to update. So
I need a good, simple text parser.

Either that, or a better, more stable system of controlling the growth
parameters.

Thanks

Brennan Peterson
0 Kudos
Message 1 of 5
(2,780 Views)
"Brennan Peterson" writes:

> Hi. I am trying to use labview for some strig parsing, and I am finding it
> a bit frustrating. Am I missing something about text parsing under Labview,
> or is there a more powerful way of addressing strings (or should I just make
> Python or TCL/TK or Perl calls)
>
> To give an example, I need a flexible system for commanding thin film
> growth, and a typical statement looks like
>
> 1*(Cu,50)+20*(Co,30)(Cu,10)+1*(Cu,200)
>
> Which means I grow 1 50 angstrom thick layer of copper, followed by a
> multilayer with 20 bilayers, and each bilayer composed of 10 angstoms of
> Copper and 30 angstoms of cobalt. Finally, a cap of 20 Angstoms of copper
> is placed on the stucture.
>
> I read off the mumber
of cells (things preceded by a *) and the material in
> each cell.
> This data is read into a timing array/cluster, which is tells the computer
> which shutters to open and when.
>
> Things get more complicated when I need to consider more complicated dual
> bilayer structures, and alloys. However, this is all doable (and has been
> done) with a very, very old Basic system, which I would like to update. So
> I need a good, simple text parser.
>
> Either that, or a better, more stable system of controlling the growth
> parameters.
>
> Thanks
>
> Brennan Peterson

Brennan,

I'd use a different approach:

A simple linear control file is all you need. Just use time (per
state) and shutter positons (in pseudo-boolean 1 or 0). Reading in via
"Read Spreadsheet" is simple.

These control files are error prone if written by hand. What about a
seperate script generator? It just needs a for loop of 20 counts of 2
lines in the middle part...


You could possibly use a lot of regex expression
s to decode the control
language. IMHO if you really need a kind of language you don't use
labview, but a lexical analyser (flex on unix systems).


Johannes Niess
0 Kudos
Message 2 of 5
(2,780 Views)
The example I gave was relatively simple. The system I would like to use is
(potentially) useful on various thin film systems. The films have between 2
and 6 different materials, including some alloys. Making a control file by
hand is irritating.

I agree with the idea that a linear control file is useful, but I would like
to generate that file within labview. There is little benefit in using
Labview if I have to do most of the work outside of it. Text commands are
much more powerful, and realtively error free, if implemented properly (with
error checking). The trick is building that linear control file.

I think labview would really benefit from a lexical analysis capability.
Point and click boxes are fine for some things, but some things should h
ave
the option of text commands. Yes, I know I could send the string to an
outside analysis program, and then bring it back in, but that ruins the
portability. It would be much better to have a good little lexical analysis
system internally. Mini-python.vi or some such. MAybe if I get really
excited (and bored) that will be how I really get down and learn Python
well.

Brennan
0 Kudos
Message 3 of 5
(2,780 Views)
I've created command "scripts" using Excel and then using the
ActiveX functionality of Labview I parse in the scripts and perform
the subsequent actions. Reports can then be generated in text
form or sent to Word or Excel using ActiveX
0 Kudos
Message 5 of 5
(2,780 Views)
I basically agree with Johannes' comment, but it might also be worth while to look
into the 'Parse String for Tokens' function (in the string submenu). It looks a
bit complicated to use but seems to be quite powerful. I think it's available in
LV 5.0 ff only.


Franz




>
0 Kudos
Message 4 of 5
(2,780 Views)