ActiveX CA Tools
What's in this Directory?
0. Changes
These are documented in Changes.txt.
Please read that document because it has the most up-to-date information.1. EpicsCAServer.exe, EpicsCAClient.exe
These are the ActiveX Channel Access (CA) server and client for Epics
The nomenclature is deeply rooted in Epics but has caused some confusion:LabVIEW can use both the client and the server at the same time! The same applies to a Visual Basic program etc.
- The Server allows you to create Process Variables (PVs). On the network, these PVs look exactly like any other Epics PV that is e.g. part of an Epics "database" running on an IOC. Programs like DM, MEDM, the Java Display manager or the simple command-line tools caget/caput can be used to read, monitor and modify those PVs.
- The Client allows you to read, monitor and modify existing PVs which are served by the ActiveX CA server, an Epics IOC, some Epics Gateway etc.
Installation
Both the server and the client are registered via RegisterNT.bat or Register98.bat, depending on your system. These will register the ActiveX program where it currently is, so don't delete the files after installation!For LabVIEW 5.1, check the Update section. If LabVIEW serves PVs but does not receive monitors or react to CA 'put', read the update section again.
2. caget.exe, caput.exe
... are simple command-line programs to read/write values via Channel Access. Just call them without arguments to learn more.
After launching e.g. ServerTests/SimpleRndExample.vi, trycaget -f ExamplePVNamefor information on this PV,
caget -m ExamplePVNameto monitor the changes. (Stop caget with <CTRL>-C. It might complain badly for being interrupted)
The test ServerTests/KnobExample.vi should also respond to caput, i.e.
caget -m ExampleKnobwill listen to knob movements,
caput ExampleKnob 5will move to knob to 5.0.
(If the "caput" doesn't work with LabVIEW, check if you have version 5.1 and refer to the Update section.)
Subnets
As with any Epics client, caget/put as well as the EpicsCAClient program use the environment variable EPICS_CA_ADDR_LIST to locate PVs off your local subnet.
Consequently, when you cannot connect to a PV that exists in another subnet, call
set EPICS_CA_ADDR_LIST=<foreign subnet>from the command line before using caget/caput, from autoexec.bat (Win98) or set the variable from within the "System" entry in the control panel (NT).
Hint: When testing this software on a machine temporarily unconnected (e.g. Laptop), it might be necessary to set EPICS_CA_ADDR_LIST to 127.0.0.1 in order to connect clients to servers on that very same machine.
3. LabVIEW
Update
The ActiveX-events are supported by LabVIEW version 5.1 and higher, so you need at least those versions.
In LabVIEW 5.1 there is an error, the file<LabVIEW>\resource\ax-events.dllhas to be replaced by the one in the LabVIEWUpdate directory.
(I got ax-events.dll from the NationalInstruments' support people, it's now also available from their KnowledgeBase website).Libraries
You could work with the ActiveX CA interfaces using solely the ActiveX VIs that come with LabVIEW. It's hopefully easier, however, to use the VIs in CAServer*.llb and CAClient*.llb since these contain some error checking as well as online help.
Note: For now, the online help of the CA*.vis and the examples are all the documentation there is
3. ServerTests, ClientTests
These dirs contain (mostly LabVIEW) test programs and examples.