90 likes | 215 Views
ActiveX CA Server/Client Update. Nov. 2000 Kay-Uwe Kasemir, LANL. ActiveX CA Server/Client. http://lansce.lanl.gov/lansce8/epics/PC Does Andrew really want this link? Can be used with many Win32 programs: Visual Basic, LabVIEW, Delphi, … Reality: Used with LabVIEW
E N D
ActiveX CA Server/Client Update Nov. 2000 Kay-Uwe Kasemir, LANL
ActiveX CA Server/Client • http://lansce.lanl.gov/lansce8/epics/PC • Does Andrew really want this link? • Can be used with many Win32 programs: Visual Basic, LabVIEW, Delphi, … • Reality: Used with LabVIEW • LEDA: 1.5y experience, ~10 PCs, 2 .. 400(!)PVs each • Other Labs: >25 requests, mostly for the server, though often unclear (non-EPICS users) • Requests for new options: • string support • allow passing {value, time} to server
LANL Experience • Terrific for small systems • Signal generator, GPIB, new PC: 2 hours! • No need for vxWorks, IOC, boot host, display computer • Faster initial development cycle no recompile & reboot, (until turned into distributed system) • Easier to learn(?) vs.
LabVIEW Issues • Visual programming is limited • “image” gets too big, “wires” tangled • no ASCII import/export • no real CVS support, no comparable NI tool • no script-generated code from signal list, RDB, Capfast, ... • what you see is all you get: • IOC’s scanning mechanisms have to be re-implemented with fundamental instructions(loops, delays, …)
LabVIEW Issues • Complex logic, many PVs hard to maintain: • “sequences” show only one step at a time • array handling in for-loops:necessary for bigger systems but misleading(auto-indexing fails for different array sizes)
Performance: Looks OK • 450Mhz PC: ~0.3ms, send value from LabVIEW to ActiveX CA Server • 900Mhz: ~0.14ms • Main factor: COM (10 PVs @ 10, 100, 500 Hz on 450Mhz Pentium II)
LabVIEW: Polling • CA ‘put <new value>’ into PV on ActiveX CA Server... • ActiveX Event is sent with <new value>,receiver like LabVIEW has to decide whether to serve the new value, a modified value or keep the old one. • VisualBasic can handle events async.,LabVIEW can only “WaitForEvent” • User waits for responseuntil LabVIEW’smain loop comes aroundto service the PV changes • LabVIEW offers threads& semaphores, but evenmany Nat.Inst. VIsare incompatible. ”Main code” in here!
LabVIEW/PC Issues • No remote login into PC • LabVIEW 5.1 sometimes crashes during setup of ActiveX connection(runs fine once this succeeds) • ActiveX Events: • didn’t work before LabVIEW 5.1 • 5.1: still didn’t work originally, it took bulletproof examples for NI support to acknowledge their problem and provide patch, now available from National Instruments’ web site • memory leak in 5.1, supposed to be gone in 6i (not tested) • Time stamps not synchronized with other EPICS IOCs • could be called an EPICS fault because IOCs use proprietary protocol
‘EPICS’ data Conclusion (still) Win32-Program (with not too much) data worth serving, e.g. LabVIEW + ActiveX CA Server