LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

EPICS-Labview communication

Hi  this link doese not work any more is it removed from net ? how can I access to the information which was in this link?

0 Kudos
Message 31 of 41
(2,219 Views)
Hello, Does any body know how to transfer an image from labview to Epics control system ?

I mean to transfer the image which is acquierd by NiImaq.dx. I have already a program which transfers a single value , but I dont know how to develope it to transfer an Image to Epics.

I'll be very thankful for any comment.
0 Kudos
Message 32 of 41
(2,203 Views)

Epics CA (transfer protocol) doesn't support this directly.

EPICS CA support array (char, short, and so on). Array size in IOC must be defined in record and can't be changed on-fly. But CA client can request part of array.

Actually, which way do you use to connect LabVIEw to EPICS?

Message 33 of 41
(2,196 Views)

Dear Vasilich2004 Thank you very much for the reply , I use CALAB and a IOC . Is it what did you want to know ?

What is the indirect ways for transfering the images from labview to Epics? could you please explain me , also, I dont understand '' Array size can't be changed on-fly'

regards,

 

0 Kudos
Message 34 of 41
(2,180 Views)

You will find Record manual here http://www.aps.anl.gov/epics/base/R3-12.php (it is old but sould be Ok)

Search Waveform record type. I think waveform is once standard record which you can use. Waveform has field NELM which defined statically. When IOC started this field shouldn't be changed.

Inderect way ... you can save array in file and use string or waveform record to transfer filename.

 

I don't kow what is CALAB. Is is NI software? There are few ways to create IOC with LabVIEW. So I was interested to know which way do you use.

Message 35 of 41
(2,172 Views)

I have transferred images gathered in LabVIEW over an EPICS PV by flattening it to a string, then casting it to an integer array and passing the integer array through EPICS. In LabVIEW 8.6 EPICS arrays were limited to about 4000 elements so I had to do heavy downsampling and compression. In LabVIEW 2009 you can use the EPICS environment variable to set the maximum array size, but every array PV is then treated as that maximum size, so be careful.In LabVIEW 2010 the NELM field gets set properly and a client can read arrays of any size and know how many elements it has.


Richard

Message 36 of 41
(2,162 Views)

Hi Richard,

 

Thank you very much for you reply , and for your information .  I use Labview 2010, But I am very new using Labview , so I don't know about ''flattening it to a string, then casting it to an integer array'' 😞 .

I would appreciate if you could please give me the source code of the labview program you have written for transferring the image , this would help me a lot .

 

Maryam

0 Kudos
Message 37 of 41
(2,153 Views)

hi richard , Here is the CALAB 🙂 :

 

http://www-csr.bessy.de/control/SoftDist/CA_Lab/

I read the link that you sent Robot Indifferent

 

Message 38 of 41
(2,149 Views)

Here is a snippet that shows how to flatten the image to a string and cast it to an integer, then recover the image on the client side by unflattening. You only need to do this if you need to reduce the size of the image (the flattening can do compression).

 

flattened image.png

 

If  you don't need to do the compression then you can convert the image to an array using an IMAQ function. If you want to convert it to one dimension to pass it as a waveform, then the client needs to know the dimenstions in order to make it back into a 2-D array. Here is an example:

image to array.png

 

Richard

0 Kudos
Message 39 of 41
(2,140 Views)

Thank you !Smiley Happy

0 Kudos
Message 40 of 41
(2,133 Views)