LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

EPICS-Labview communication

Until recently I was working with labview 6.1. I have an application that communicates with EPICS. For this communication I use the so-called ActiveX CA tools.
This is very easy and allows to communicate using simple commands such as pv-put, pv-get, ...

However now I have a new computer and labview 7.1 installed. I have tried to install the same package but it does not work anymore. Not sure why.

Furthermore Labview is saying that future versions will not support this package anymore (Wait On ActiveX Event.vi will not be supported anymore).
Are there new tools/packages available that work for labview 7.1 and higher versions?

Thanks for any suggestion,

Steven

0 Kudos
Message 1 of 41
(8,013 Views)

I wrote another library. It is npt based on ActiveX. As minimum, it works for LabVIEW 6.1, 7.0, and 7.1 on Windows. It works for Linux and MAC as well. I changed job and don't like to search the library on my CDs Smiley Tongue But you can go to this link  http://www.sns.gov/diagnostics/documents/epics/LabVIEW/SNS_LabVIEWEPICS.html and contact with Willem Blokland

Good luck

 

0 Kudos
Message 2 of 41
(7,976 Views)
Hi Steven,

did the answer from Vasilich help you with your problem or did you still got problems with this?

Tom
0 Kudos
Message 3 of 41
(7,927 Views)
I have recently attended a seminar from NI on this particular topic.
It seems that NI is going to support the EPICS-LV interface. This is done using shared variables (LV 8). The drawback is that one needs the DSC module ...
However it seems to be a somewhat  'cleaner' solution than the shared memory option. I will probably test this somewhere in the next month.

Steven

0 Kudos
Message 4 of 41
(7,914 Views)
Hi,

Just a little update on this topic.

I have succesfully implemented the new EPICS-LV interface provided by the DSC module.
There were some firewall and ervironmental variables issues but now it works fine.
It is very easy. First setting up an i/o server, adding the name of the EPICS channels and then simple drag-and-drop of shared variables bound to these EPICS channels.

I did a few performance tests and didn't find any problems up till now. I was e.g. reading large waveforms containing several thousands of datapoints with 10Hz (speed at which the waveform was written).

Certainly a system to consider when setting up such a communication.

Steven

0 Kudos
Message 5 of 41
(7,827 Views)
hi Steven
I'm intresting in these type  of tests. Where I can find  more informations?
I don't understand your steps
"
adding the name of the EPICS channels and then simple drag-and-drop of shared variables bound to these EPICS channels"
Do tou have some examples?

Thanks Bageera
0 Kudos
Message 6 of 41
(7,549 Views)
Hi,

I have made a few snapshots and put them in a pdf file.

1. select a new i/o server (see snapshot 1) -> select EPICS client.
2. add the required EPICS channels (new record)  to the list (snapshot 2)
3. create shared variables and bind them to the EPICS channels (snapshot 3 - 4)
4. Drag and drop the SV onto your front panel or diagram (snapshot 5).

The little triangle on the right of the controller/indicator turns red or green depending on the fact whether or not you have a connection.

Hope this helps,

Steven

Message 7 of 41
(7,439 Views)

Steven,

I looked on snapshoots and it looks for me that

- at first step, programmer defines PV and inserts into program

- at second step, he can uses that in the program.

 

So I can't define PV in this enviroment "on the fly", connects and so on. It ot correct?

0 Kudos
Message 8 of 41
(7,431 Views)
It is indeed a two step process:
1. add the EPICS channels in the list of the EPICS I/O server. I assume that this cannot be done programmatically.
2. create SV and bind it to the EPICS channels. This in principle can be done programmatically (although I did not try it myself)
See e.g.
http://digital.ni.com/public.nsf/websearch/2E8BAD0EA218A7558625712E0003F044?OpenDocument
http://zone.ni.com/devzone/cda/epd/p/id/5209
and examples in LV 8.2 and DSC

So once the channels are defined you can connect and disconnect them in your program.

Steven

0 Kudos
Message 9 of 41
(7,410 Views)
Steven,
 
This approach works fine for small (=table) system.
But it can't be useful in big system. like accelarator. For example, a control system has 500 detectors with the same set of PVs. But PVs names are slightly different. The system has had DB  with PVs (or any kind of parametrized way to construct PV names). So operator launchs dialog of detector XX, program prepares set PVs of detector XX and connects.
 
Andrei.
0 Kudos
Message 10 of 41
(7,397 Views)