From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, 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: 

Thesis using labview for fiber alignment

Solved!
Go to solution

Hi all,


I'm a student and i'm doing my thesis, or trying to do it 🙂


It's about the development of an automatic eletronic system for fiber alignment.


With my poor english i'll try to explain how all has to work 🙂


A laser emittes light that goes into a fiber that ends on a "melles griot photon control nanoblock" (it's a block that can move on 3 axis to align the fiber). Then on an other block there is an other fiber that ends on a revelator that reads its power and so the power that arrives from the alignment. Actually there are other things, but this are enough to understand...


I'm using labview 6 (and i can't update it because in my laboratory we have only this, so please refer to this version and possibilities) to control an SR830 Lock-in amplifier that reads the power from the relevator, and that controls a “Melles Griot piezo electric driver” (it's an instrument that can move nanometrically the photon control nanoblock and so the fiber...) that is obviously connected with the photon control nanoblock...


I have to move one fiber on two axis trying to reach the maximum point of power on the reveletor, that coincide with the optimum alignment. So i have to tell to the lock-in wich voltage to give to the piezoelectric to move to search the maximum and i have to read from the lock-in the power intensity to predict the direction.

After reaching the maximum i have to control that this values is mantained during time, so i have to mantaine this value.


I made a quite logical algortihm that doesn't uses to much math.


I know that there are drivers for the SR830, but i can't read them from labview 6 and i prefere to do them by myself also if my subvii for “write & read” it's not very “artistic” 🙂


I've posted mi Viis...

 

And here a short explain:

  • “Aggancio e Mantenimento” ----> It's the Vii i run to align and mantain the maximum

  • “Aggancio prova” -------> it's only a piece of “Aggancio e Mantenimento” with wich i'd like to make a subvii...

  • “Croce” ----------> It's a subvii that generates the coordinates of the points for searching the maximum

  • “Intensità da croce” ---------> Reads the points from croce and takes the power asociated to them

  • “Mantenimento” -------> Is the part that starts if the value of power decreases after we reach the power

  • “Quadrante dell'intensità massima” -------> Logically understands in wich area the maximum should be if we consider the 4 classic quadrants

  • “Scrittura e lettura” -------> It's the vii i use to comunicate with the lock-in

  • “Controllo soglia sicurezza & Controllo soglia per scrittura” -----> These stop the program if for some unknown reasons, some voltage that the piezoelectric can't recive is generated.


I wrote so much on the experiment and on my Viis because all i know of labview is what i've read and made on my own recently (obviously using all the manuals and tutorial from NI) and so any correction of styles or working attributes or anything, and any suggestion for my application, are very appreciated indipendetly of the problems i have.


Now i'll stop to annoy all of you and i'll make my questions schematically 😄


This is the main problem...i'd like to realize and try the performaces of a method like that one described on page 3HOW THE AUTOMATIC ALIGNMENT CONTROLLER MAXIMIZES OPTICAL POWER” of the pdf posted:


I don't know how to realize this for three reasons:


Consider that i take many power point making my fiber move on a circle. How can i do the gradient then?? For this i need a function and i have only some points...and i can't find any help on labview manual or site...there are some method to do that? I've think some way, like calculate delta(power), delta(x) and delta(y) and then make Gradient = [delta(power)]/[delta(x)] + [delta(power)]/[delta(y)] but i don't know if it's good enough without the limit...are there other ways?


How can i obtain the phase of the optical power signal?? Here i feel quite confused, i don't have an idea and i'm sinking...


The last reason is the most problematic...fiber motion...i can “tell” to the fiber to move to one point, and obviusly it will draw a segment. So i can give many points of the circle and it will draw something very similar to a circle...but how can i use the continue acquisition with a sampling time? If i direct the fiber to a point, i have to know when it reaches it or it wont be a circle if i tell it to move to the second point before! But if i set a timing to wait before to go on the second point and it isn't perfect, so that the fiber stops and waits a bit of time on the first point before to go on the second, the sampling time will result ineffective and i won't get equispaced values! How these problems are solved? I think that they are very common...


Here instead are some other problem i've found on my way...


On the subvii “Aggancio prova” there is a waveform chart that takes some power values and makes a chart...i don't understand how to have on the x scale a timer that gives mean indication of how long it passes during acquisitions...i've setted the formatting on relative time, but it doesen't work, it displays one value every second, so i think it's associated with how many values it reads!


Another problem with waveform chart...On subvii “Mantenimento” there is a chart that reads the values during time. Here it's all ok, but if i open the main vii “Aggancio e Mantenimento” that uses that suvii, the chart on the front panel of the vii doesn't work while if i open the subvii during the esecution of the main vii, i can see the in the front panel of the subvii that the chart it's working great. What's the problem? How i've to connect the two charts to syncrhonize them? Can i diplay the chart on the vii's front panel?


The last thing is about errors...i don't have really understood well how they works...(error in, no error...etc...)

Is there a guide on this or some very good tutorial?? I've read guides and tutorials but i dont't get it very well...and i saw that they are very used on the drivers for SR830...


Thanks all in advance, i swear to recive good hints and a cruel judge on my programs because i don't have a very good idea on their programming quality...

Forgive me for this very long thread, i hope will help also other utents.

Download All
0 Kudos
Message 1 of 5
(4,316 Views)

I found problems also using the lock-in fast mode...i don't know how to realize the acquisition in this mode...

 

Nobody can even give me some little hints?

 

Thanks

0 Kudos
Message 2 of 5
(4,269 Views)
Solution
Accepted by topic author Bertone

Hi Bertone

 

Unfortunately I'm not very keen on the application you are developing so I will try to answer to you questions on LV environment.

In order to have a deeper control of graph property (x-axis values) you can choose the proper property from the waveform graph's property node. You can create one by right clicking on the graph's terminal and selecting create>>property node. Refer to this document for some information on property node in LV.

 

To visualize a subVI into the main Vi you can use the subPanel control you can use into the controlsPalet.

What is a Subpanel Control?

 

The error in LV is a cluster data type that hosts three kind of information: the Status report if an error occur, the numeric and the string data type report detailed information on the error that happen. The error cluster is a useful instrument to exchange execution informational through the application. If an error occurs, you can skip execution code to reach in the shortest time possible the code portion in which you can manage the error.

 

I hope these information can help you.

 

Consider this as a suggestion: may be next time you can try to create a post for each single question. It will allow everyone to post its answer on the specific topic and will help people who encountered your same issue to find easily a response to it.

 

Have a great day!

 

HUDSON

Message 3 of 5
(4,244 Views)

Thank you very much!! The graph's problems are now solved 😄

I even didn't know the esistence of that solutions! They are very usefull.

 

I think you are also right regardind the way i posted my problems. I'm reading two manuals about ni-visa, to try to solve my problems, if i didn't manage to do it, i'll post again in a more specific way.

 

Thanks again! 

0 Kudos
Message 4 of 5
(4,236 Views)

hello Bertrand,

I am actually doing a project in this way my master thesis.

Did you have the complete Labview code and some explanations please?

Thank you in advance

0 Kudos
Message 5 of 5
(2,845 Views)