28
Experimental Physics and Industrial Control System (EPICS) Overview Bob Dalesio, March 27, 2010

Experimental Physics and Industrial Control System (EPICS) Overview

  • Upload
    tea

  • View
    30

  • Download
    0

Embed Size (px)

DESCRIPTION

Experimental Physics and Industrial Control System (EPICS) Overview. Bob Dalesio, March 27, 2010. Outline. Introduction: What is EPICS The Collaboration Architecture Tool-Kit IOC Core Channel Access Process Database Conclusions. What is EPICS?. - PowerPoint PPT Presentation

Citation preview

Page 1: Experimental Physics and Industrial Control System (EPICS) Overview

Experimental Physics and Industrial Control System (EPICS)Overview

Bob Dalesio, March 27, 2010

Page 2: Experimental Physics and Industrial Control System (EPICS) Overview

Outline

• Introduction: What is EPICS– The Collaboration

– Architecture

– Tool-Kit

• IOC Core– Channel Access

– Process Database

• Conclusions

Page 3: Experimental Physics and Industrial Control System (EPICS) Overview

What is EPICS?

• A collaboration of the controls groups of many research organizations that use the EPICS tool-kit.

• A distributed architecture that supports a wide range of solutions from small test stands to large integrated facilities.

• A set of tools that reduces software application and maintenance costs by providing:

Configuration tools in place of programming

A large installed base of tested software

A modular design that supports incremental upgrades

Well defined interfaces for extensions at every level

Page 4: Experimental Physics and Industrial Control System (EPICS) Overview

What is EPICS? The Collaboration

• Over 150 independent projects in North America, Europe, Africa, Australia, South America, and Asia

• Applications in particle physics, astronomy, and industrial control

• Distribute software over the network

• Independent development, co-development and incremental development of code done by members

• Problem reporting and resolution via e-mail exploders

• Documentation available on WWW sites

• Large collaboration meetings to report new work, discuss future directions, explore new applications, and explore new requirements for existing codes

• Small design groups from multiple labs meet to discuss design issues on significant codes: Channel Access, Archiving and MMI

Page 5: Experimental Physics and Industrial Control System (EPICS) Overview

What is EPICS? Distributed Architecture

• EPICS is physically a flat architecture of front-end controllers and operator workstations that communicate via TCP/IP and UDP

System scales through the addition of new computers

Physical hierarchy is made through bridges, routers, or a gateway

Network bandwidth is the primary limiting factor

• EPICS software architecture is client/server based - with independent data stores providing read/write access directly between any two points

Local name services mean automatic integration of new components

Point-to-point communication supports automation

Page 6: Experimental Physics and Industrial Control System (EPICS) Overview

EPICS Supports a Standard Control System EPICS Supports a Standard Control System ArchitectureArchitecture

OS: Unix Windows

I/O Controllers: VME,VXI PCI, PCIe, uTCA, PLC, Softcores on FPGAsOS: vxWorks, Unix, Windows RTEMS, RTLinux, L4 linux

InstrumentsRemote and Local I/O Buses: Control Net, PCI, CAN-Bus, Industry Pack, VME, VXI, PCI, ISA, CAMAC, GPIB, Profibus, Bitbus, Serial, Modbus, Yokogawa, G-3, Ethernet/IP, RS232, Many more….

Site LAN/WAN

Instruments Instruments

Page 7: Experimental Physics and Industrial Control System (EPICS) Overview

Channel Access Client (CAC)Connection Data Transfers

WAN/LAN/Local

Connection Data TransfersChannel Access Server (CAS)

EPICS ArchitectureEPICS Architecture

Is based on the channel access protocol

Page 8: Experimental Physics and Industrial Control System (EPICS) Overview

Channel Access Client (CAC)Connection Data Transfers

WAN/LAN/Local

Connection Data TransfersChannel Access Server (CAS)

DB Engine

I/O Controller

Types

EPICS ArchitectureEPICS Architecture

With a process database engine that describes conversions to engineering units, alarm limits, steady state logic for PID control, interlocks, and complex data conversions or filtering

Water Tank

Controller

Room Temperature

TR

Heater Voltage

VH

WaterTemperature

TSetpoint

TS

ErrorE

Page 9: Experimental Physics and Industrial Control System (EPICS) Overview

Channel Access Client (CAC)Connection Data Transfers

WAN/LAN/Local

Connection Data TransfersChannel Access Server (CAS)

DB Engine

Device Support

Driver SupportI/O Controller

Types

EPICS ArchitectureEPICS Architecture

Device and driver support to integrate protocols required to communicate with a large variety of instrumentation and intelligent devices.

Page 10: Experimental Physics and Industrial Control System (EPICS) Overview

Channel Access Client (CAC)Connection Data Transfers

WAN/LAN/Local

Connection Data TransfersChannel Access Server (CAS)

DB Engine

Device Support

Driver SupportI/O Controller

User ToolsDM/MEDM/DM2K/EDM/JDMControl System studio,Alarm Handler / stripTool/knobManagerPhysics ToolkitsExperiment Toolkits

Types

EPICS ArchitectureEPICS Architecture

Page 11: Experimental Physics and Industrial Control System (EPICS) Overview

Channel Access Client (CAC)Connection Data Transfers

WAN/LAN/Local

Connection Data TransfersChannel Access Server (CAS)

DB Engine

Device Support

Driver SupportI/O Controller

Types

Connection Server

EPICS ArchitectureEPICS Architecture

A plug-in for name resolution to a name server

User ToolsDM/MEDM/DM2K/EDM/JDMControl System studio,Alarm Handler / stripTool/knobManagerPhysics ToolkitsExperiment Toolkits

Page 12: Experimental Physics and Industrial Control System (EPICS) Overview

Channel Access Client (CAC)Connection Data Transfers

WAN/LAN/Local

Connection Data TransfersChannel Access Server (CAS)

DB Engine

Device Support

Driver SupportI/O Controller

Archiving

Archive Access

Archive Viewing Archive Analysis

Types

Connection Server

EPICS ArchitectureEPICS Architecture

A data archiver with web based management and a suite of viewing and analysis capabilities

User ToolsDM/MEDM/DM2K/EDM/JDMControl System studio,Alarm Handler / stripTool/knobManagerPhysics ToolkitsExperiment Toolkits

Page 13: Experimental Physics and Industrial Control System (EPICS) Overview

Channel Access Client (CAC)Connection Data Transfers

WAN/LAN/Local

Connection Data TransfersChannel Access Server (CAS)

DB Engine

Device Support

Driver SupportI/O Controller

Archiving

Archive Access

Archive Viewing Archive Analysis

Types

Connection Server

Program InterfacesC, C++, C#, Fortran, JAVAIDL / Matlab / MathematicaActiveX / DDE / VisBasicXAL/ SDDS / SAD / tcl / PERL / PythonState Notation Lang / FSQT

EPICS ArchitectureEPICS Architecture

Programming interfaces for creating new channel access clients through standard language interfaces, scripting languages, specialized languages for state transition implementations, mathematical and modeling languages, and specialized accelerator analysis and control platforms

User ToolsDM/MEDM/DM2K/EDM/JDMControl System studio,Alarm Handler / stripTool/knobManagerPhysics ToolkitsExperiment Toolkits

Page 14: Experimental Physics and Industrial Control System (EPICS) Overview

Channel Access Client (CAC)Connection Data Transfers

WAN/LAN/Local

Connection Data TransfersChannel Access Server (CAS)

DB Engine

Device Support

Driver SupportI/O Controller

Archiving

Archive Access

Archive Viewing Archive Analysis

Connection Data TransfersPortable Channel Access Server (CAS)

Types

Connection Server

Program InterfacesC, C++, Fortran, JAVAIDL / Matlab / MathematicaActiveX / DDE / VisBasicSDDS / SAD / tcl / PERL / PythonState Notation Lang / FSQT

EPICS ArchitectureEPICS Architecture

A portable channel access server that supports the addition of any new data sources into the EPICS environment that is used to integrate many different platforms

User ToolsDM/MEDM/DM2K/EDM/JDMControl System studio,Alarm Handler / stripTool/knobManagerPhysics ToolkitsExperiment Toolkits

Page 15: Experimental Physics and Industrial Control System (EPICS) Overview

Channel Access Client (CAC)Connection Data Transfers

WAN/LAN/Local

Connection Data TransfersChannel Access Server (CAS)

DB Engine

Device Support

Driver Support

Generic Data Descriptor

Channel Access ClientI/O Controller Gateway to existing System

Archiving

Archive Access

Archive Viewing Archive Analysis

Types

Connection Server

Program InterfacesC, C++, Fortran, JAVAIDL / Matlab / MathematicaActiveX / DDE / VisBasicSDDS / SAD / tcl / PERL / PythonState Notation Lang / FSQT

EPICS ArchitectureEPICS Architecture

Including a gateway that isolates network traffic between portions of the control network

Connection Data TransfersChannel Access Server (CAS)

User ToolsDM/MEDM/DM2K/EDM/JDMControl System studio,Alarm Handler / stripTool/knobManagerPhysics ToolkitsExperiment Toolkits

Page 16: Experimental Physics and Industrial Control System (EPICS) Overview

Channel Access Client (CAC)Connection Data Transfers

WAN/LAN/Local

Connection Data TransfersChannel Access Server (CAS)

DB Engine

Device Support

Driver Support

Generic Data Descriptor

Channel Access ClientI/O Controller Gateway to existing System

Archiving

Archive Access

Archive Viewing Archive Analysis

Types

Connection Server

Program InterfacesC, C++, Fortran, JAVAIDL / Matlab / MathematicaActiveX / DDE / VisBasicSDDS / SAD / tcl / PERL / PythonState Notation Lang / FSQT

EPICS ArchitectureEPICS Architecture

Connection Data TransfersChannel Access Server (CAS)

Integrate other systemsLike Labview or legacysystems

User ToolsDM/MEDM/DM2K/EDM/JDMControl System studio,Alarm Handler / stripTool/knobManagerPhysics ToolkitsExperiment Toolkits

Page 17: Experimental Physics and Industrial Control System (EPICS) Overview

IOC Core: Process Database

ca-server

process DB

dev support

ca-client

Process Blocks are the basic elements: AI, AO, BI, BO, Motor, CALC, PID, SUB, etc.…

Process Blocks consist of fields for: SCHEDULE, I/O, CONVERT, ALARM, MONITOR

They hold runtime values: VALUE, TIMESTAMP, ALARM CONDITION, etc.…

New process block are easily added

Configured using VDCT, GDCT, Relational DB, Text Editor at the workstation

Loaded as ASCII records at boot time

All fields can be read/written through the channel access client interface during operation

LAN

Page 18: Experimental Physics and Industrial Control System (EPICS) Overview

IOC Core: Process Database

ca-server

process DB

dev support

ca-client

Platforms: UNIX, vxWorks, VMS, Windows, RTEMS, rtLinux

Fastest periodic scan rate is dependent on OS clock tick – 1 KHz

Interrupt scanning is limited by the

CPU

LAN

Performance Database Measured:PowerCore-6604 SYS68K/CPU-40

300 rps 0.60 % 5.8 %600 rps 1.2 % 12 %1500 rps 3.0 % 27 %3000 rps 6.1 % 56 %

Interrupt latency at hardware/OS levelsPowerCore-6604 SYS68K/CPU-40

Vector 1.0 micro-sec. 2.1 micro-sec.ISR 6.0 micro-sec. 5.4 micro-sec.

Page 19: Experimental Physics and Industrial Control System (EPICS) Overview

IOC Core: Channel Access Client/Server Libraries

Sequencer

Channel Access Client

LAN/WAN

Operator Interface

Channel Access Client

Database Links

Channel Access Client

Channel Access Server

EPICS Process Database

Client: Provides read/write connections to any subsystem on the network with a channel access server

Server: Provides read/write connections to information in this node to any client onthe network through channel access client calls. The data resides here!

Services: Dynamic Channel Location, Get, Put, MonitorAccess Control, Connection Monitoring, Automatic ReconnectConversion to client types, Composite Data Structures

Platforms: UNIX, vxWorks, VMS (Client only), Windows NT, RTEMS, rtLinux

TCP/IP & UDP

Page 20: Experimental Physics and Industrial Control System (EPICS) Overview

IOC Core: Channel Access Client/Server Libraries

Sequencer

Channel Access Client

LAN/WAN

Operator Interface

Channel Access Client

Database Links

Channel Access Client

Channel Access Server

EPICS Process Database

TCP/IP & UDP

Transaction time required for Channel Access PowerCore-6604 SYS68K/CPU-40ca search 953 micro-sec. 1189 micro-sec.ca put 23 micro-sec. 109 micro-sec.ca get 58 micro-sec. 118 micro-sec.ca put&ca get 76 micro-sec. 246 micro-sec.

Page 21: Experimental Physics and Industrial Control System (EPICS) Overview

IOC Core: Channel Access Services

Sequencer

Channel Access Client

LAN/WAN

Operator Interface

Channel Access Client

Database Links

Channel Access Client

Channel Access Server

EPICS Process Database

TCP/IP & UDP

Transaction time required for Channel Access PowerCore-6604 SYS68K/CPU-40ca search 953 micro-sec. 1189 micro-sec.ca put 23 micro-sec. 109 micro-sec.ca get 58 micro-sec. 118 micro-sec.ca put&ca get 76 micro-sec. 246 micro-sec.

Page 22: Experimental Physics and Industrial Control System (EPICS) Overview

Records Vs Channels

Power Supply

Beam Position Monitor

Vacuum Control

Brilliance

Power Supply Cntrl

PLC/RS232

Process variable:

Channel Access Server

S1A:H1:CurrentAO

S1:P1:x

S1:P1:y

S1:G1:vacuum

Channel Access ClientChannel Access Client

Channel Access ClientOperator

Machine

Networrk (Channel Access Protocol)

Page 23: Experimental Physics and Industrial Control System (EPICS) Overview

Records vs. Channels

Database Record:

Channel Access Server

Channel Access Client

Networrk (Channel Access Protocol)

# This ao is used in two modes:# supervisory: user can adjust voltage# closed_loop: PID (in separate control.db) sets voltage# In any case: Update heater power in response to voltage change# When PID is INVALID, go back to 0 voltagerecord(ao, "$(user):heat_V"){ field(DESC, "Heater Voltage") field(EGU, "V") field(DRVL,"0") field(DRVH,"110") field(DOL, "$(user):PID MS") field(OMSL,"closed_loop") field(IVOA, "Set output to IVOV") field(IVOV, "0")}

Channel Name: "$(user):heat_V")

For the VAL field the CA Control Stucture is: .VAL Value of this field . TS Time Stamp . SEVR Alarm Severity field(EGU, "V") EngineeringUnits - field(DRVL,"0") Drive Low Limit (and Display Low Limit) field(DRVH,"110") Drive High Limit (and Display High Limit)

Record source code for building Channel control limits:static long get_control_double(paddr,pcd) struct dbAddr *paddr; struct dbr_ctrlDouble *pcd;{ struct aoRecord*pao=(struct aoRecord *)paddr->precord;

if(paddr->pfield==(void *)&pao->val || paddr->pfield==(void *)&pao->hihi || paddr->pfield==(void *)&pao->high || paddr->pfield==(void *)&pao->low || paddr->pfield==(void *)&pao->lolo || paddr->pfield==(void *)&pao->oval || paddr->pfield==(void *)&pao->pval){ pcd->upper_ctrl_limit = pao->drvh; pcd->lower_ctrl_limit = pao->drvl; } else recGblGetControlDouble(paddr,pcd); return(0);}

Page 24: Experimental Physics and Industrial Control System (EPICS) Overview

Records vs. Channels

Database Record:

Channel Access Server

Channel Access Client

Networrk (Channel Access Protocol)

# This ao is used in two modes:# supervisory: user can adjust voltage# closed_loop: PID (in separate control.db) sets voltage# In any case: Update heater power in response to voltage change# When PID is INVALID, go back to 0 voltagerecord(ao, "$(user):heat_V"){ field(DESC, "Heater Voltage") field(EGU, "V") field(DRVL,"0") field(DRVH,"110") field(DOL, "$(user):PID MS") field(OMSL,"closed_loop") field(IVOA, "Set output to IVOV") field(IVOV, "0")}

Channel Name: "$(user):heat_V.OMSL")

For the VAL field the CA Control Stucture is: .OMSL Value of this field . TS Time Stamp . SEVR Alarm Severity No Choices supervisory closed_loop

AO Record. DBDfield(OMSL,DBF_MENU) {

prompt("Output Mode Select")promptgroup(GUI_OUTPUT)interest(1)menu(menuOmsl)

}

MenuOmsl.dbdmenu(menuOmsl) {

choice(menuOmslsupervisory,"supervisory")choice(menuOmslclosed_loop,"closed_loop")

}

Page 25: Experimental Physics and Industrial Control System (EPICS) Overview

Database vs. Channel Access

Database Record:

Channel Access Server

Channel Access Client

Networrk (Channel Access Protocol)

record(ao, "$(user):heat_V"){ field(DESC, "Heater Voltage") field(EGU, "V") field(DRVL,"0") field(DRVH,"110") field(DOL, "$(user):PID MS") field(OMSL,"closed_loop") field(IVOA, "Set output to IVOV") field(IVOV, "0") firld(HIGH,”80”) field(HSV,”Minor”) field(MDEL,”5”)}

Clients connect to FIELDS and request metadataValue - the value of the fieldStatus & Severity – the alarm info of the recordTime Stamp - time record was processedDisplay and Control– different field by field

Record specific or general field method

Record Processing initiates monitorsalarm changemonitor changearchive change

Page 26: Experimental Physics and Industrial Control System (EPICS) Overview

Skills Required to Use EPICS

• Requires system administration skills– Installing EPICS (if from source)– Setting up the application environment to automatically build databases– Setting up the IOC to boot from the workstation

• Requires Programming Skills– Installing the new drivers– Knowledge of how to debug the application - is needed by everyone– Implementing state transition logic

• Some Instrumentation Knowledge– Learning to use the process database to implement data acquisition and

steady state control such as PID control or interlocks.• Must Have an Opinion

– Choosing and learning which client tools to use

Page 27: Experimental Physics and Industrial Control System (EPICS) Overview

New Developments Take Advantage of Changes in Technology and Improve Functionality, Ease of Use, and

Performance While Reducing Cost

• PVData and PVAccess are allowing us to extend the types of Data and Metadata that can be communicated. This allows us to create servers for data more complex than simple fields. This is being used to create new classes of standard clients such as ChannelFinder, SynchSetMultiChannel, Image (SBIR grant, NSLS II)

• Continue to Develop new database configuration tools (APS/Cosy Lab/Diamond/SNS)

• Develop embedded EPICS support (NI, ZTEch, ITech, Yokogawa)

• Support for IOC core and hardware drivers under new operating systems (All labs)

• Reduce record complexity to support simple state devices such as actuators and motors with base records. This increases flexibility and control (Michael Davidsaver with NSLS II Controls)

Page 28: Experimental Physics and Industrial Control System (EPICS) Overview

Conclusions: EPICS Continues to Meet the Needs of Its Members Through Cooperative Development of a Scaleable,

Flexible Tool-kit

• The fundamental performance and functionality is scaleable and easily configured.

• Clean interfaces have been used to extend EPICS on the client side for varied operational tools, on the driver and device support side to integrate a wide variety of I/O and legacy systems.

• Open software development supports cooperative collaboration and gives members laboratories a larger pool of talent to support their controls requirements.

• Continual improvements allow members to expand functionality, performance, reliability and function while taking advantage of latest technology.