activex ca server/client update nov. 2000 kay-uwe kasemir, lanl

9
ActiveX CA Server/Client Update Nov. 2000 Kay-Uwe Kasemir, LANL

Upload: gabriella-small

Post on 02-Jan-2016

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ActiveX CA Server/Client Update Nov. 2000 Kay-Uwe Kasemir, LANL

ActiveX CA Server/Client Update

Nov. 2000

Kay-Uwe Kasemir, LANL

Page 2: 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

Page 3: ActiveX CA Server/Client Update Nov. 2000 Kay-Uwe Kasemir, LANL

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.

Page 4: ActiveX CA Server/Client Update Nov. 2000 Kay-Uwe Kasemir, LANL

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, …)

Page 5: ActiveX CA Server/Client Update Nov. 2000 Kay-Uwe Kasemir, LANL

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)

Page 6: ActiveX CA Server/Client Update Nov. 2000 Kay-Uwe Kasemir, LANL

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)

CPU Load

0%

20%

40%

60%

100 1000 5000

Values Served per Second

Lo

ad No Monitors

10 Monitors

Page 7: ActiveX CA Server/Client Update Nov. 2000 Kay-Uwe Kasemir, LANL

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 response

until LabVIEW’smain loop comes aroundto service the PV changes

– LabVIEW offers threads& semaphores, but evenmany Nat.Inst. VIsare incompatible.

”Main code” in here!

Page 8: ActiveX CA Server/Client Update Nov. 2000 Kay-Uwe Kasemir, LANL

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

Page 9: ActiveX CA Server/Client Update Nov. 2000 Kay-Uwe Kasemir, LANL

Conclusion (still)

Win32-Program (with not too much) data worth serving, e.g. LabVIEW

‘EPICS’ data

+ ActiveX CA Server