# Presentation: 089429

## OPC Gateway (Device Support)

**OPC Gateway (Device Support)**

- Ralph Lange – EPICS Collaboration Meeting March 2008 @ SSRF

- Ralph Lange: OPC Gateway (Device Support)

## OPC Gateway (Device Support)

**Accessing PLCs through EPICS 3.14 Device Support running on a Windows box connecting to a combination of commercially available OPC client and server packages**
**Inspired by work from Kay-Uwe Kasemir****Developed by Carsten Winkler and Bernhard Kuner****With additional help from Roland Fleischhauer and Ralph Lange**

**Credits: Main Authors and Contributors**

## OPC: Introduction

**OPC: OLE (based on COM) for Process Control**Based on DCOM: Distributed Component Object Model
**Client/Server Architecture**Scalable and distributed over the network
**“****Data Access” Specification**Read/write operations, time stamp, data qualityPolled or event driven (callback mechanism)
**“****Alarm and Event” Specification**
- Many existing OPC servers only implement a subset of the defined OPC features

- Ralph Lange: OPC Gateway (Device Support)

## OPC: Data Flow

**OPC Client Libraries**Available for Windows, Unixes (see http://www.opcconnect.com)Binary distribution of the client library by Softing is royalty-free
**OPC Client – OPC Server Communication**via DCOM (available by Microsoft and others – also for Linux)

**OPC Server Application**Always available from the PLC vendorFor wide-spread PLC series there are alternatives offered by third party vendors (see link list at http://www.opcconnect.com or e.g. http://www.matrikonOPC.com)
**OPC Server – PLC Communication**Proprietary, vendor dependant

- Ralph Lange: OPC Gateway (Device Support)

## OPC: Client Side Data Access

**Connect to Server**
- 	Client will start/stop the server
**Browse Server**
**	**For debugging purposes or dynamic client configuration
**Add Group**
**	**Client defines groups with common parameters for all items within the group
**Add Items**
**	**Client subscribes for several data objects

- 1
- N

- 1
- N

- 1
- N

- OPC Group

- OPC Item

- Item Properties

- OPC Browser

- Common Parameters, e.g. Update Rate, Deadband

- 1

- OPC Server

- Process Variable

- Properties are:
- Value of a common data type
- Quality
- Timestamp

- Ralph Lange: OPC Gateway (Device Support)

## OPC Device Support: Overview

**Supported Record Types:**
**	**- ai, ao
- 	- bi, bo
- 	- mbbi, mbbo
- 	- mbbiDirect, mbboDirect
- 	- longin, longout
- 	- stringin, stringout
- 	- waveform
**OPC Client Library:**
**	**- Softing OPC Toolbox 3.01
- 	- Distribution as Windows binary is royalty-free
- 	- Other client libraries possible

- Ralph Lange: OPC Gateway (Device Support)

## OPC Device Support: Features

**Flexibility**
**	**IOC will connect to multiple and/or remote OPC servers
**Data Conversion**
**	**For all integer and float data types
**Timestamp is Set by OPC Server or EPICS Record Processing**
**	**Determined by the record‘s TSE field
**OPC Quality Information is Mapped to Record’s STAT/SEVR**
**In-Records: Read-Only**
- 	Value is written by the PLC
- 	SCAN = “I/O Intr“ (event driven mode)
- 		or
- 	“.1 second“ to “10 second“ (polled mode)
**Out-Records: Bidirectional**
**	**Value may be written by the PLC (e.g. local control) or by EPICS
- 	SCAN = “Passive“, but record will still be updated when PLC value changes

- Ralph Lange: OPC Gateway (Device Support)

## BESSY Installation: PLC Controlled Beamlines

**33 Phoenix DIN-Rail PLCs with ~700 Channels Each: Approx. 22,000 Channels**
**Phoenix OPC Server Introduces Serious Limitations**
**	**Supports only polling mode: no events in the OPC server – PLC connection
- 	Max. 2 PLCs per OPC server
- 	No third-party OPC server available for this particular PLC type
**Windows PC Hardware**
- 	4 Dual-processor 3 GHz 19” rack servers (standard high availability servers)
- 	Each server runs 4 virtual Windows PCs (using VMware GSX server software)
- 	Each of the 16 virtual PCs runs one softIOC and one OPC server that connects to 2 PLCs
- 	PLC data is polled every 100ms or 250ms (different OPC Groups)
- 	Servers are running at 40-50% CPU load

- Ralph Lange: OPC Gateway (Device Support)

## OPC Device Support: Experiences and Status

**The BESSY beamline guys are very satisfied with this solution**
- 	“OPC is ***the*** spreading integration standard in scada and industrial automation.”
- 	“Vendors simply have to provide OPC servers for a PLC if they want to be commercially successful. For common PLC series, third-party vendors will add competition, leading to better OPC servers.”
- 	“This gateway opens up a window from EPICS to the whole wide world of industrial automation.”
**They are very interested to have more facilities use the OPC device support and feedback changes as well as improvement requests**
- 	Existing users: BESSY, DESY, PSI, SLS, PPPL, SNSLatest changes by Sheng Peng are evaluated for integration
**Contact:**
- 	Roland.Fleischhauer@bessy.de	Carsten.Winkler@bessy.de

- Ralph Lange: OPC Gateway (Device Support)