05-04-2011 03:42 AM
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?
05-05-2011 07:29 AM
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.
05-05-2011 11:10 AM
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?
05-09-2011 02:49 AM
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,
05-09-2011 11:07 AM
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.
05-09-2011 04:18 PM
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
05-10-2011 02:43 AM
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
05-10-2011 03:04 AM
hi richard , Here is the CALAB 🙂 :
http://www-csr.bessy.de/control/SoftDist/CA_Lab/
I read the link that you sent
05-10-2011 10:57 AM
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).
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:
Richard
05-10-2011 11:20 AM
Thank you !