Finding, Deploying and Managing EPICS Support Modules Andrew Johnson Computer Scientist, AES Controls.

Slides:



Advertisements
Similar presentations
Epics Configuration Management Steve Hunt v1.0. Goals Maximize control system availability Minimize development cycle time Reduce risk.
Advertisements

1 1999/Ph 514: Working With an IOC EPICS Working with an IOC Marty Kraimer APS.
1 1999/Ph 514: Channel Access Concepts EPICS Channel Access Concepts Bob Dalesio LANL.
EPICS Base R and beyond Andrew Johnson Computer Scientist, AES Controls Group.
1 2003/P571: IOC Development Environment EPICS IOC Development Environment with EPICS on Ubuntu Based on “IOC Development Envirnment” by Andrew Johnson,
EPICS Noboru Yaamamoto Jan 27, 2009 for EPICS seminar at RRCAT, Indore Installing EPICS.
Chapter 3 Loaders and Linkers
File Management Chapter 12. File Management A file is a named entity used to save results from a program or provide data to a program. Access control.
OpenVMS System Management A different perspective by Andy Park TrueBit b.v.
Object-Oriented Enterprise Application Development Tomcat 3.2 Configuration Last Updated: 03/30/2001.
File Management Systems
Chapter 12 File Management Systems
Low level CASE: Source Code Management. Source Code Management  Also known as Configuration Management  Source Code Managers are tools that: –Archive.
INTEGRATION OF EPICS ASYN INTO NON EPICS ENVIRONMENT PRERANA KANKIYA Brookhaven National Laboratory, New York EPICS COLLABORATION MEETING, 2014.
Source Code Management Or Configuration Management: How I learned to Stop Worrying and Hate My Co-workers Less.
Packaging of EPICS-basedControl System Software
1 CMPT 275 Software Engineering Revision Control.
Copyright Arshi Khan1 System Programming Instructor Arshi Khan.
ANDROID PROGRAMMING MODULE 1 – GETTING STARTED
I/O Tanenbaum, ch. 5 p. 329 – 427 Silberschatz, ch. 13 p
Linux-MVME Targets Using Motorola Board Support
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
Introduction to The Linaro Toolchain Embedded Processors Training Multicore Software Applications Literature Number: SPRPXXX 1.
1 Introduction to Tool chains. 2 Tool chain for the Sitara Family (but it is true for other ARM based devices as well) A tool chain is a collection of.
Lesson 4 Computer Software
How Hardware and Software Work Together
Input/Output Controller (IOC) Overview Andrew Johnson Computer Scientist, AES Controls Group.
UNIX System Administration OS Kernal Copyright 2002, Dr. Ken Hoganson All rights reserved. OS Kernel Concept Kernel or MicroKernel Concept: An OS architecture-design.
1 Chapter 12 File Management Systems. 2 Systems Architecture Chapter 12.
XFEL The European X-Ray Laser Project X-Ray Free-Electron Laser Matthias Clausen, DESY XFEL Refrigerator Controls – April CSS-DCT (SNL) Training.
1 Lecture 19 Configuration Management Software Engineering.
CHAPTER FOUR COMPUTER SOFTWARE.
Main Bullet #1 Main Bullet #2 Main Bullet #3 EPICS and CLS September 18, 2009.
Copyright © 2015 – Curt Hill Version Control Systems Why use? What systems? What functions?
A U.S. Department of Energy Office of Science Laboratory Operated by The University of Chicago Argonne National Laboratory Office of Science U.S. Department.
1 1999/Ph 514: IOC Development Environment EPICS IOC Development Environment Marty Kraimer APS.
Final Review of ITER PBS 45 CODAC – PART 1 – 14 th, 15 th and 16 th of January CadarachePage 1 FINAL DESIGN REVIEW OF ITER PBS 45 CODAC – PART 1.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
XFEL The European X-Ray Laser Project X-Ray Free-Electron Laser Matthias Clausen, DESY XFEL Refrigerator Controls – April CSS Core Applications.
Operating System What is an Operating System? A program that acts as an intermediary between a user of a computer and the computer hardware. An operating.
© Janice Regan, CMPT 300, May CMPT 300 Introduction to Operating Systems Memory: Relocation.
Disk Layout/Productization Proposal Ron Rechenmacher and Geoff Savage.
Online Software 8-July-98 Commissioning Working Group DØ Workshop S. Fuess Objective: Define for you, the customers of the Online system, the products.
EPICS Application Development At The Canadian Light Source Glen Wright.
EPICS Release 3.15 Bob Dalesio May 19, Features for 3.15 Support for large arrays - done for rsrv in 3.14 Channel access priorities - planned to.
Manage Directories and Files in Linux Part 2. 2 Identify File Types in the Linux System The file types in Linux referred to as normal files and directories.
J.P. Wellisch, CERN/EP/SFT SCRAM Information on SCRAM J.P. Wellisch, C. Williams, S. Ashby.
MVC WITH CODEIGNITER Presented By Bhanu Priya.
21 September 2012 GRETINA SWG GRETINA SWG Meeting Carl Lionberger LBNL GRETINA DAQ Implementation.
Chapter 2. System Structures
Copyright © Curt Hill Operating Systems An Introductory Overview.
EPICS Noboru Yaamamoto July 11, 2006 for EPICS seminar at VECC,Kolkata Installing EPICS.
EPICS and LabVIEW Tony Vento, National Instruments
Disk Layout/Productization Proposal Ron Rechenmacher and Geoff Savage.
 Project Team: Suzana Vaserman David Fleish Moran Zafir Tzvika Stein  Academic adviser: Dr. Mayer Goldberg  Technical adviser: Mr. Guy Wiener.
Monitoring Dynamic IOC Installations Using the alive Record Dohn Arms Beamline Controls & Data Acquisition Group Advanced Photon Source.
Xxx Presentation, No 1 Copyright © TAC AB Engineering Classic Networks1.
Integrating Advantech PCI I/O cards into EPICS. Outline ANTARES computer control and data acquisition systems architecture STAR computer control and data.
EPIC S Noboru Yaamamoto July 11, 2006 for EPICS seminar at VECC,Kolkata Installing EPICS.
Stephanie Allison Software Mar 2, 2006 IOC Applications Host Applications Directory Structure Environment Setup Issues.
Computer System Structures
cFS Platforms OSAL and PSP
IOC Application Development / Debugging
Chapter 2: System Structures
Programmable Logic Controllers (PLCs) An Overview.
Chapter 2: System Structures
Chapter 2: The Linux System Part 1
Analysis models and design models
EPICS: Experimental Physics and Industrial Control System
Welcome to Linux Chap#1.
Presentation transcript:

Finding, Deploying and Managing EPICS Support Modules Andrew Johnson Computer Scientist, AES Controls

Outline Meaning of I/O Support Review of IOC development environment Development areas as components Distinguishing Support Modules and IOC Applications Managing change in Support and IOC top areas Different ways to support I/O devices Finding existing software Deploying support modules –Installing software –Using it in an IOC

Meaning of “I/O support” Software that connects one or more record types to some real hardware –At minimum contains device support code –May include record or driver support as well –Also covers any additional software needed by those layers Not necessarily EPICS-specific code May comprise multiple separate software packages, e.g.: –drvIpacOctal232 serial port support –AsynSerial interfacing software –Device SupportSpecific commands for the target serial device Might provide database templates, SNL programs and MEDM screens –SynApps does this for beamline devices –Not appropriate for all kinds of I/O

IOC Development Environment Review configure RELEASE CONFIG_APP Other build-system files xxxApp src C & SNL sources,.dbd files yyyDb.db files, templates & substitutions IocBoot Iocxxxx st.cmd Installation directories: dbd, db, include, bin/, lib/

Development Areas as Components The structure and Makefile rules are designed to encourage modularity –An IOC is built up out of many components Channel access, database access, scanning, other core libraries Record, device & driver support Databases Sequence programs Etc. –Components do not have to be defined in the same as the IOC itself Most of the IOC software comes from Base Other areas can provide additional components Other areas can override (replace) components from Base The configure/RELEASE file determines what other areas will be searched for required components, and in what order –Only the installation directories of other areas are searched

Support Modules vs. IOC Applications Most sites distinguish between areas that provide commonly-used components, and those that build IOCs –Record, Device and driver support are usually shared by many IOCs –Having multiple copies of source files is a recipe for disaster –Different engineers maintain device support than IOCs –The life-cycles of the two are usually very different Areas that provide components are Support Modules –/usr/local/epics/R3.14.6/modules/... Areas that build IOCs are IOC Applications –/usr/local/epics/R3.14.6/ioc/... Support Modules and IOC Applications use entries in /configure/RELEASE to indicate which Support Modules they use components from IOC areas may contain local record/device/driver support, but only for hardware that is not used in in any other IOC subsystem

Managing Change: Support Modules Support modules usually only change when a bug is fixed, or some new functionality is added –It should be a deliberate decision by the engineer responsible for an IOC or subsystem to use a new version of a support module Bug fixes can introduce new bugs elsewhere New functionality might include changes that break old applications Therefore: once installed and in use by an operational IOC application, a support module’s area should never be changed –New versions of the module should be installed alongside the old one –The engineer responsible for an IOC subsystem can switch to the new version when s/he is ready for it by changing the IOC Application's /configure/RELEASE file to point to the new version –The old version is not deleted until it will never be required again It’s easy to revert to a previous version if problems are found Disk space is cheap Sites should document what changed in each update of a support module, and should notify IOC enginee rs that a new version is available

Managing Change: IOC Applications IOC applications change very frequently in small ways –Updating alarm limits, revised sequences, adding new I/O points etc. It should be relatively easy to modify the files that configure an IOC (databases, subroutines, sequence programs etc.) –Elaborate version control procedures make it harder to respond to change requests, so less change will happen or the procedures get ignored However it is important to retain the history of what application changes were made, when and by whom –Being able to quickly back out of recent modifications can be essential to recovering from incorrect changes This is very different to the requirements of managing a support application –Do not attempt to use the same approach to manage both

Ways to support I/O devices Hardware-specific device and/or record support –Best solution if already available –Recommended if there will be multiple instances Communications protocol can be hidden from users and usually from EPICS applications developers Much easier to handle any device peculiarities –May be essential for complex devices Generic support –Available for general-purpose bus, serial, and network connected I/O –Device-specific knowledge is contained in database records Special fields in a custom record Parm field of a hardware link address –Not possible for complex devices or protocols

Finding existing software Supported Hardware database on EPICS website EPICS Collaboration meetings Tech-talk mailing list –Search the archives before asking Google Search Some support software may still only be available for R3.13.x or vxWorks Porting to R3.14 is relatively easy Porting to RTEMS is slightly harder –Should be straight-forward if the software uses devLib Porting to Linux is inadvisable for VME or PCI-based hardware –Linux Kernel drivers are hard to write and debug Serial and network-based support can be made as portable as Base –The Asyn framework simplifies this process

Deploying EPICS Support modules Installing the software –If installation instructions are provided, read & follow them! SynApps users should read the synApps README file – The synApps configuration system is slightly different –Prerequisites: EPICS Base R3.14.x built for the desired architecture(s) All other support modules needed have already been built

Deploying: Configure the module Extract the source file to the required location using tar/unzip/... Edit the configure/RELEASE file –Set the EPICS_BASE variable pointing to the Base directory EPICS_BASE=/usr/local/epics/R3.14.6/base –Set any other required paths in the file as appropriate, e.g.: IPAC=/usr/local/epics/R3.14.6/drvIpac-2.7 ASYN=/usr/local/epics/R3.14.6/asyn-3.3 –You may define other variables and use the Makefile $(variable) syntax SUPPORT=/usr/local/epics/R EPICS_BASE=$(SUPPORT)/base IPAC=$(SUPPORT)/drvIpac-2.7 ASYN=$(SUPPORT)/asyn-3.3 –Variables that name other support modules must expand to absolute pathnames beginning with a ' / '; relative paths will not work '..' is allowed as a component within an absolute path

Run GNU make in the directory –To simultaneously log the output to a file, use these commands csh,tcsh: gnumake |& tee build.out sh,ksh,bash: gnumake 2>&1 | tee build.out –This checks the configure/RELEASE file for consistency with the support modules named, and generates files in configure/O. –Then it descends through the other subdirectories of, compiling and installing products as necessary Deploying: Build the module

Using Support in an IOC Application Mostly very specific to the Support Module General steps are –Add a line to the IOC Application's configure/RELEASE file that points to the new module's directory ASYN=$(SUPPORT)/asyn-3.3 –Edit the Makefile where the IOC is built Add a line for each library to be linked against example_LIBS += asyn Add a line for any.dbd files to be included example_DBD += asyn.dbd Alternatively this might become a line in exampleInclude.dbd: include "asyn.dbd" –Add any necessary lines to the st.cmd file –Create record instances, instantiate templates, etc. –Rebuild the IOC Application from gnumake rebuild