elder matias, diony medrano, dong liu (at michigan state university - nov 2011) irmis at cls
TRANSCRIPT
Saskatchewan Accelerator Laboratory
• Originally established in 1964 as the Saskatchewan Accelerator Laboratory (SAL)
Canadian Light Source
• In 1999 the SAL accelerator was re-purposed as an injector for the CLS
• Between 1999-2003 a new booster and storage ring was constructed.
IRMIS Search Tool(Current use at CLS)
• IRMIS supports our ability to search for IOCs based on PV names
• To accomplish this we use a modified pvCrawler from the original IRMIS release
• A simple web-interface written in PHP
pvCrawler - Linux based IOC(Current use at CLS)
• Moxa (used for serial or USB devices)• Intel (using optical Links to VME crates)• Applications located on a central file
server, NFS mounted as /IOCApps
• IRMIS crawls the NFS mount for db information
pvCrawler RTEMS based IOC(Current use at CLS)
• Primarily diskless machines• Programming comes off the central file
servers using bootp
• IRMIS crawls the bootp directory for db information
pvCrawler(future enhancement)
• Ability to identify source files that make use of a PV:– EDM Files– CSS Alarm Handler– EPICS State Notation Language– EPICS Gateways– EPICS Data Archiver– Matlab Code (accelerator toolbox)– Python Code (used on the beamlines)– AutoCAD Drawings
Potential benefit
• Motivation for additional crawlers:– Tool used to identify the impact of changes
(critical for maintenance activities)– Database can then be scanned for
consistently:• Identify dead-pv’s that are not used anymore• Use of incorrect data types/attributes• Other consistency/correctness checks?
For Modicon PLCs(currently not part of IRMIS)
• Modcion Momentum PLC variables follow a standard naming convention
• An awk script parses the PLC variable list, and uses template substitution files to generate epics definitions
• We currently don’t generate configuration files for the data archiver or EDM screens, however it is done by other labs, e.g., TRIUMF
Current Process for Generating PV from PLCs
PLCProject
FileModiconConcept
VariableList
CLS AwkScript
Generated*.sub files
Standard *.tpl files
IOC build
*.db files
• Process driven by Make files• Current limitations:
– Alarm limits, variable descriptions are hardcoded into the tpl (templates)
– Attributes of PV are hidden and notvisible to users
• Could IRMIS do a better job?
Cables Database
• History of Cables Database– Original implementation on PDP-11– Converted to SunOS/PostgreSQL– 1999 Converted to MS-SQL Server– Now being converted to Java
• Critical features is each cable being numbered
Requirements Capture
• We currently capture control systems requirements on PID drawings and word documents
• Longer-term we want to move towards computerised requirements management that makes use of integrated change control and configuration management
MKS
• We use MKS as our configuration management tool and for change requests
• We also group change requests into “work packages” (aka a project) with a project charter.
• Our next step is to start to capture requirements and provide the traceability from requirements, down to the implementation
MKS Architecture(slide courtesy of MKS a PTC Company)
Input Document
Request for Change
Change Order
Work Item
Implemented By
Change Orders
Change Package
Configuration & Change Management
Project
Requirements Document
Specification Document
Test Suite
Input
Requirement
Specification
Test Case
Test Step
Product
Portfolio
Test Plan
Test Objective
Test Session
Test Result
Change Package
Defect
Document & Requirements Management
Validated By
Validated By
Satisfied By
Decomposes To
Test Steps
Work Items
Docum
ented By
Test Plans
Test Objectives
Test Objective
Test Management
Tests
Planned Tests
Manages Manages
Product
MKS Integrity Logical Architecture
Portfolio Management
Legend
Item
Document
Metadata
Trace
Relationship
Source Code
Currently used by CLS
Currently being evaluatedby CLS
Electronic Logbook
• We use the TRIUMF electronic logbook system.
• Simple web interface and fairly simple implementation
• Mostly implemented in Perl running on top of PostgreSQL.