# Presentation: 751534

## EPICS Collaboration

*Love Controller Support*

*David Kline*
*April 27, 2005*

## Contents

**Overview,**
**Hardware Configurations,**
**Communication protocol,**
**Software Architecture,**
**loveApp standalone application,**
**Reporting (dbior),**
**MEDM screens,**
**Distribution,**
**Improvements,**
**Acknowledgements,**

## Overview

**Love Controller,**
- Instrument to measure voltage, current, pressure, or temperature,
- Support models 1600 and 16A,
- Communication is through 2-wire RS485,
**Device support,**
- Part of synApps,
- Old support based on MPF,
- New support based on Asyn,
- The echoServer and devMPC were departure points,
- Includes an interpose interface,
- Standalone application is available,
- IP-Octal RS232 and RS485 modules can be used,
**Purpose of the new device support,**
- Use as a learning tool for Asyn-based device support,
- Migrate from the unsupported MPF to Asyn,
- Appoint one as the owner of the module,
- Provide OS independence,

## Hardware Configuration – RS232 <-> RS485

*Love*
*Controller*
*Model 1600**1*

*SBS XM-Octal-IO*

*Love*
*Controller*
*Model 16A**2*

*Love*
*Controller*
*Model 1600**n-1*

*Love*
*Controller*
*Model 1600**n*

*B&B Electronics**485LDRC*
*Converter*

- RS485

- RS232

## Hardware Configuration – RS485

***Hardware Configuration – RS485***

*Love*
*Controller*
*Model 1600**1*

*SBS XM-Octal-IO*

*Love*
*Controller*
*Model 16A**2*

*Love*
*Controller*
*Model 1600**n-1*

*Love*
*Controller*
*Model 1600**n*

- B(+)

- A(-)

**SBS 626 (TVME200)**

**IP-OCTAL**

## Communication

**2-wire RS485,**
**Master/slave protocol, command, response messages,**
**Message format (simple),**
- Sent and received as ASCII hex,
- Command:
*Read: <STX>L<ADDR><CMD><CS><ETX>*
*Write: <STX>L<ADDR><CMD><VALUE><CS><ETX>*
- Response:
*Data: <STX>L<ADDR><DATA><CS><ACK>*
*Error: <STX>L<ADDR>N<CODE><ACK>*
**How does device support know commands?**
- INP/OUT fields,
- “@asyn(PORT,ADDR) CMD MODEL”,

## Software Architecture

*drvAsynSerialPort*

*interposeEos*

*asynOctetBase*

*interposeLovelink*

*asynOctet*

*devAsynLove*

## loveApp standalone application

**Sample application,**
**New with the release (R3-0-1),**
**Supports vxWorks and Linux,**
**Database with PVs for each command,**

## Reporting (dbior)

## MEDM screens

***MEDM screens***

## Distribution

**Standard directories,**
- Configuration,
*Requires Asyn 4-2 and Ipac 2-8,*
- Documentation,
*Controller and converter Information,*
*Release notes, known issues,*
*Wiring diagram,*
- Database, record instance files,
- iocBoot for Linux and vxWorks (startup scripts),
- MEDM displays,
**Contains the sources,**
- devAsynLove.c,
- interposeLovelink.c,
- devLove.cc,
- loveServer.cc,

## Improvements

**Current issues,**
- Cannot easily debug an individual controller,
- Tight coupling between device support and model type (i.e. INP/OUT),
- Device support controls the command / response processing,
**Solutions,**
- Develop a multidevice driver,
- Employ different approach to reduce coupling,

## Improvements – Multidevice port driver

**Develop a multidevice port driver,**
**Replaces the existing interposeLovelink layer,**
**Placed on top of drvAsynSerialPort,**
**Creates multiple connections to an Asyn port,**
**Allows connections to individual controllers,**
**Monitor individual controller communication,**

## Improvements – Multidevice port driver

*drvAsynSerialPort*

*drvLove*

*asynOctet*

*asynOctetBase*

*devLove*

*asynCommon*

## Improvements – Different approach

**Modify the information supplied to INP/OUT,**
- “@asyn(PORT,ADDR) function”,
**Employ the drvAsynSerialPort and drvLove drivers,**
**Implement an interface layer to,**
- Define a specific interface (i.e. ifaceLove),
- Provide a methods to,
*Associate the controller address with a model type,*
*Read and write a value, setup during record initialization,*
- Reduces the need for conditional statements,
- Introducing new model type is cleaner,

## Improvements – Different approach, cont...

*devLove*

*Interface Love*

*ifaceLove*

## Acknowledgements

**Marty Kraimer,**
**John Maclean,**
**Ron Sluiter,**

***Thank You***
***EPICS Collaboration***
***Beamline Controls and Data Acquisition***
***APS Operations Division***