+ All Categories

HERA

Date post: 30-Dec-2015
Category:
Upload: vivien-clemons
View: 18 times
Download: 0 times
Share this document with a friend
Description:
HERA. Large machine! (6.3 Km Proton-electron storage ring, collider) superconducting proton ring, RF cavities => QPS cryogenic control : ~10,000 “channels” - PowerPoint PPT Presentation
Popular Tags:
29
1 •Large machine! •(6.3 Km Proton-electron storage ring, collider) •superconducting proton ring, RF cavities => QPS •cryogenic control : ~10,000 “channels” •the “rest”: >10,000 “channels” (>1200 magnet PSCs, ~1000 transient recorders, ~20 warm RF transmitters, HERA
Transcript

1

•Large machine! •(6.3 Km Proton-electron storage ring, collider) •superconducting proton ring, RF cavities => QPS•cryogenic control : ~10,000 “channels”•the “rest”: >10,000 “channels” (>1200 magnet PSCs, ~1000 transient recorders, ~20 warm RF transmitters, 32 collimator jaws, ~1200 vacuum sputter pumps, ~1500 diagnostic monitors, etc.)

HERA

2

“Just get the machine commissioned…”

“Worry about an integrated control system later!”

1990-1991:

3

Three-fold Integrated Networking Environment

•multi-platform •multi-protocol•multi-architecture

OS IP Stack IPX Stack

DOS LWP /Client32 NOVELL

Win16 WINSOCK NOVELL

Win32 WINSOCK WINSOCKLinux Native BSD Native BSD

Solaris Native BSD -HP-UX Native BSD -

SGI Native BSD -OSF Native BSD -

VAX-VMS UCX -ALPHA-VMS MULTI-NET -

VxWorks Native BSD -

Data Exchange Architecture:•Client-Server•Publisher-Subscriber•Producer-Consumer •Producer-Subscriber

“ansi C - Write once: compile, link, run everywhere!"

TINE

4

client-server : • standard, required for commands, synchronous calls

• scheduled at client -> asynchronous interrupts at server (inefficient)

• easy to program

• clients get what they want

• scalability: the N client problem

publisher-subscriber:• accepted standard

• scheduled at server, efficient

• different modes: poll, send on change, asynchronous calls

• clients get what they want

• harder to program (link tables, etc.)

• scalability: the N client problem pushed back

TINE Architectures

5

producer-consumer:• non-standard - scheduled at server, efficient

• clients get what they’re given

• easy to program

• scalability: no N client problem, no knowledge of clients,

• inefficient?, requires subnet or multicast group

producer-subscriber• non-standard - scheduled at server, efficient

• different modes: poll, send on change, asynchronous calls

• clients get what they want

• harder to program (link tables, etc.)

• scalability: no N client problem, knowledge of existence of clients

• if subnet or multicast group not recognized, fallback to publisher-subscriber

TINE Architectures

6

TINE Features

• Distributed • Object-based (vs channel-based)• Plug-and-Play• Progressively upgradeable• Strong DOOCS influence• Many Systematics (required vs optional)• Flexible (the ‘herding cats’ problem?)• “Do it yourself”

7

self-configuring servers …

or just write the code you need from a "template"

• read configuration database

• get IO addresses, hardware information

• readout instructions

• raw data to finished data (??)

• logical name binding

• how easy is this?

(Servers)

"I don't want to write code!“ vs “Do it yourself!"

8

“I don't want to write code!“ vs “Do it yourself!"

auto-displaying clients …

• widgets query a server for its display properties,

• and display them!

or just write the display code you need

• how easy is this?

I don’t have to

write code!

Yes, but you can’t write code!

(Clients)

9

Many control systems allow both approaches

• Clients typically written in Visual Basic

• Servers written in C, C++, Visual Basic, LabView, HPVEE

• script based display widgets for quick applications

• interfaces to C, C++, LabView, MatLab, HPVEE, ... for more complicated applications

non-users of Visual Basic usually offer …

"I don't want to write code!“ vs “Do it yourself!"

TINE

10

• has a large toolkit (ActiveX controls)

• is a high-level language (not a script).

• has full math library

• EASY to program (hey, it's Basic!)

What about Java ?

• has a large toolkit (Java Beans)

• is a high-level language (not a script).

• has full math library

• VB is still easier to program

Visual Basic …

11

For trivial display applications, the amount of coding in VB is trivial …

Win32 GUI apps in VB

UNIX GUI apps in DDD

Java GUI apps (Symantec Cafe)

TINE GUI Applications …

12

• Server registers name and address with name server upon startup• Clients query (and cache) name server for names and addresses• Persistent timeouts force address (re-)resolution

ServerName : “HEPORBIT”Export Eqp. Modules

“BPMEQM” as “HEPBPM”“BLMEQM” as “HEPBLM”“ALMEQM” as “HEPALM”

ENSIP: 131.169.120.43

Where is “HEPBPM”

What are your Properties?What are your Devices?

…Link to “ORBIT.X”

TINE Plug and Play

13

TINE Remote Control

14

• C, C++, VB, Java

// TINE Synchronous call (Client-Server)ExecLink(“HEPBPM/WL167”,“ORBIT.X",&dataOut,&dataIn,CA_READ);

Client makes a “contract”: full-duplex data “Link” …

vs

Put(), Get(), PutGet(), Monitor()

// TINE Asynchronous call (Publisher-Subscriber)AttachLink("HEPBPM/WL167","ORBIT.X.HIST",&dataOut,&dataIn, CM_POLL,1000,CA_READ,histCallback);

TINE API

// TINE Asynchronous receive (Producer-Consumer)

recvNetGlobal(“HEMAGEN”,&dataOut,energyCallback);

15

~30 different system data types

• standard set (BYTE, char, short, (int), long, float, double)

• NAME8, NAME16, NAME32, etc.

• FLTINT, LNGINT, DBLINT, NAME16INT, etc.

• INTFLTINT, NAMEFLTINT, FLTFLTINT, USTRING, etc.

• user-defined structures (cross-platform)

TINE Data Types

16

• CM_REGISTER

• CM_ CANCEL

• CM_ SINGLE (just this once)

• CM_ POLL (at regular intervals)

• CM_ REFRESH (send on change)

ORed with

• CM_ BCAST (send to my subnet)

• CM_ MCAST (send to my multicast group)

TINE Data Acquisition Modes

17

TINE Data Access Codes(bit-wise)

• CA_READ (default)

• CA_WRITE (request to change a setting)

(server only:)

• CA_FIRST (coming into scope)

• CA_LAST (going out of scope)

• CA_HIST (called from the local archive server)

18

• unique export name

• one or more instances (device names)

• server-specific properties

• stock properties

• data type and size overloading

TINE Device Servers

19

Property ORBIT.X is registered to give 300 float values• Device name (e.g. WL167) is use to give the starting

location of the orbit. • Can ask for all 300, 10, or only 1 float value of this

property• Can ask for format type CF_FLTINT to get array of

“position-status” pairs, • or CF_NAMEFI to get array of “name-position-status”

triplets.

Data type and size overloading

20

TINE Security• Servers registered with control system database• Clients anonymous • Open Read Access (from anywhere on the net) • Filtered Write Access thru:

• User Name (soft)• Network Address (hard)• Access Lock tokens (very hard)

21

TINE Alarm System

Local Alarm server Alarm API plus local Alarm listsFirst-level filtering

Central Alarm server Collects and filters Alarms Issues post-mortem triggers

(A. Kurakin, V. Soloviev, V. Yarygin - ID: 56)

22

TINE Archive System

Local Archive server

- Short and Long term histories

Central Archive server

- long term

- filter on machine states

- post-mortem events

23

What’s New?

Network subscriptions (Producer-subscriber):

- fine-tune (popular) client programs

-e.g. images over the net (Fedor Solodovnik : ID 141)

24

What’s New?

DOOCS:

- many DOOCS queries, formats

- Local Archive Server a la DOOCS

- TINE can now run in a DOOCS context!

- DOOCS client API

- DOOCS GUI Tools

25

What’s New?

EPICS:

- EPICS2TINE translation layer

- run EPICS on TINE as well as CA

TINE naming services

TINE systematics

make “Composite” properties from channels

26

What’s New?

MKI3: (Wolfgang Gerhardt, et al. ID 124)

- Experience in Producer-Consumer mode

- no clear-cut way to map MKI3 to TINE

- make servers “bi-lingual”

27

All the control systems you know about work!

• So choose one!

• Choose a ‘modern’ one (SCADA, DCOM, CORBA)?

• Choose a ‘mainstream’ one (EPICS, VISTA)?

• Write your own?

sometimes fun or not-so-hard to “re-invent the wheel”,

and at least you get the wheel you wanted!

• Out-source?

28

`Now, here, you see, it takes all the running you can do, to keep in the same place. If you want to get somewhere else, you must run at least twice as fast as that!'

- Lewis Carroll, “Through the Looking Glass”

The Red Queen Syndrome

JAVA, CORBA , …

DCOM, SCADA, ActiveX, …XML, SOAP, C#, .NET, …

29

Where to use TINE

•Multi (Legacy) Platforms important

•Multi Architecture important

•Shallow learning-curve

•No “All or Nothing” requirements

http://desyntwww.desy.de/tine


Recommended