JavaIOC Overview and Update

Slides:



Advertisements
Similar presentations
Network II.5 simulator ..
Advertisements

JavaIOC Overview and Update EPICS Seminar/Workshop Raja Ramanna Centre For Advanced Technology Indore India January Presented by: Marty Kraimer.
STRING AN EXAMPLE OF REFERENCE DATA TYPE. 2 Primitive Data Types  The eight Java primitive data types are:  byte  short  int  long  float  double.
1 1999/Ph 514: Channel Access Concepts EPICS Channel Access Concepts Bob Dalesio LANL.
EPICS V4/areaDetector Integration
PvData,pvAccess,pvIOC,pvService Status EPICS Meeting June 2011 NSRRC,Hsinchu, Taiwan Marty Kraimer, Guobao Shen, and Matej Sekoranja.
EPICS Base R and beyond Andrew Johnson Computer Scientist, AES Controls Group.
Channel Access Enhancements J. Hill. R3.14 Enhancements Large array support in the portable server –nearly complete –a priority for SNS Port syntax for.
Jeffrey Hill.  LANSCE Requirements – a Review  EPICS Paradigm Shift – a Review  Status – What is Implemented  What is an Abstract Data Type?  Benefits.
PvData,pvAccess,javaIOC,pvService Status EPICS Meeting Aix-en-Provence, France Marty Kraimer, Guobao Shen, and Matej Sekoranja.
V4 – Executive Summary 1.Provide online add/delete of I/O to support continuous operation. 2.Provide redundant control of remote I/O to support improved.
SLAC asyn class, Day 1, August 26, 2010 Example asyn driver Modbus Mark Rivers, Marty Kraimer, Eric Norum University of Chicago Advanced Photon Source.
CVSQL 2 The Design. System Overview System Components CVSQL Server –Three network interfaces –Modular data source provider framework –Decoupled SQL parsing.
ORNL is managed by UT-Battelle for the US Department of Energy EPICS State Notation Language (SNL), “Sequencer” Kay Kasemir, SNS/ORNL Many slides from.
JavaIOC Marty Kraimer EPICS Collaboration Meeting ICALEPCS October
Database Design with VisualDCT Nicholas Di Monte.
1 1999/Ph 514: State Notation Language EPICS State Notation Language (SNL) Ned D. Arnold APS.
ICS – Software Engineering Group 1 The SNS General Time Timestamp Driver Sheng Peng & David Thompson.
Imperial College Tracker Slow Control & Monitoring.
EPICS devSNMP Extensions Euan Troup, CSIRO Australia Telescope National Facility ASKAP Project Paul Wild Observatory.
JavaIOC EPICS Meeting SSRF March Presented by: Marty Kraimer.
JavaIOC Status EPICS Meeting Vancouver May Presented by : Marty Kraimer Contributions by: Matej Sekoranja(cosyLab), Shen Guobao(BNL), Sheng Peng.
JavaIOC Status EPICS Meeting ICALEPCS2009 Kobe Japan Marty Kraimer And Matej Sekoranja.
New Features in EPICS V4 Release 4.4 EPICS Meeting 2014, CEA, October 2014 Marty Kraimer, Matej Sekoranja.
Property of Jack Wilson, Cerritos College1 CIS Computer Programming Logic Programming Concepts Overview prepared by Jack Wilson Cerritos College.
Integrating EPICS and LabVIEW on Windows using DCOM Freddie Akeroyd ISIS Computing Group.
Writing a Channel Access Client in EPICS Bob Dalesio, April 5, 2000.
Writing a Channel Access Client in EPICS Bob Dalesio, April 5, 2000.
Chapter 3 Syntax, Errors, and Debugging Fundamentals of Java.
EPICS sequencer update Greg White / William Lupton / EPICS ‘99 SLAC, May 27, 1999.
Managed by UT-Battelle for the Department of Energy CSS Update Matthias Clausen, Helge Rickens, Jan Hatje and DESY Delphy Armstrong, Xihui Chen,
EPICS EPICS Limitations Bob Dalesio Marty Kraimer.
Reliability/ Secure IOC / Outlook M. Clausen / DESY 1 CA-Put Logging BurtSave Warm Reboot Matthias Clausen DESY/ MKS.
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.
Developing Applications with the CSI Framework A General Guide.
07/10/2007 VDCT Status Update EPICS Collaboration, October 2007 Knoxville, Tennessee
1 1999/Ph 514: Flow of Control EPICS Flow of Control Marty Kraimer APS.
Control System Overview J. Frederick Bartlett Fermilab June 1,1999.
1. LabVIEW and EPICS Workshop EPICS Collaboration Meeting Fall 2011.
EPICS Release 3.15 Bob Dalesio May 19, Features for 3.15 Support for large arrays Channel access priorities Portable server replacement of rsrv.
Argonne National Laboratory is managed by The University of Chicago for the U.S. Department of Energy ICALEPCS 2005: EPICS Workshop EPICS V4 : Runtime.
B. Dalesio, N. Arnold, M. Kraimer, E. Norum, A. Johnson EPICS Collaboration Meeting December 8-10, 2004 Roadmap for IOC.
PvaPy: Python API for EPICS PV Access Siniša Veseli Scientific Software Engineering & Data Management Advanced Photon Source EPICS Meeting October 2015.
1 Channel Access Concepts – IHEP EPICS Training – K.F – Aug EPICS Channel Access Concepts Kazuro Furukawa, KEK (Bob Dalesio, LANL)
EPICS and LabVIEW Tony Vento, National Instruments
1 EPICS Flow of Control: EPICS Workshop at IHEP, Beijing, August 2001 EPICS Flow of Control Marty Kraimer APS.
Control System Overview J. Frederick Bartlett Fermilab June 1,1999.
Software tools for digital LLRF system integration at CERN 04/11/2015 LLRF15, Software tools2 Andy Butterworth Tom Levens, Andrey Pashnin, Anthony Rey.
Monitoring Dynamic IOC Installations Using the alive Record Dohn Arms Beamline Controls & Data Acquisition Group Advanced Photon Source.
Managed by UT-Battelle for the Department of Energy LabVIEW Channel Access Implementaion Alexander Zhukov SNS.
Information and Computer Sciences University of Hawaii, Manoa
Chapter 4 Assignment Statement
LCLS Timing Software and Plan
Relational Database Collaboration
Other Important Synchronization Primitives
Simulator of an Asynchronous Distributed System
Chapter 3 Assignment Statement
Overview of Hadoop MapReduce MapReduce is a soft work framework for easily writing applications which process vast amounts of.
SLAC USA Marty Kraimer and Matej Sekoranja
LCLS Event System - Software
pvData,pvAccess,pvIOC,pvService Overview and Status EPICS Meeting
pvData,pvAccess,pvIOC,pvService Overview and Status EPICS Meeting
Aida; Accelerator Integrated Data Access
Channel Access Concepts
CS2013 Lecture 7 John Hurley Cal State LA.
Beam Synchronous Acquisition on IOC
pvData,pvAccess,pvIOC,pvService Overview and Status EPICS Meeting
The Lua Chunk Vault, an enhancement to epics base
ASYN based S7 PLC Driver Jignesh Patel
Channel Access Concepts
Presentation transcript:

JavaIOC Overview and Update EPICS Meeting INFN October 15-17 2008 Presented by: Marty Kraimer

EPICS Meeting: JavaIOC Overview Major changes in latest release Simplified Database Expression Calculator VXI11 portDriver Beginning of Hardware support Not tested!! Soon STREAM protocol files and IP (Internet Protocol) support When done than support message based devices: serial,gpib Not discussed in this talk See http://epics-doc.desy.de/ioc/javaIOC/ for documentation and download But First an Overview for those who do not know what the JavaIOC is. INFN October 13-17 2008 EPICS Meeting: JavaIOC

EPICS Meeting: JavaIOC JavaIOC – What Is It? IOC - Input/Output Controller Has a “smart” real time database Record instances can be processed. Records can be accessed via Channel Access. Records can link to hardware, other records, etc. Has functionality like an EPICS IOC but Structured data Better Array data Generic Support Written in Java INFN October 13-17 2008 EPICS Meeting: JavaIOC

EPICS Meeting: JavaIOC Features PV (Process Variable) Database DB – Runtime Database that contains definitions for: structure – Structure of fields create – Name of factory for overriding default data implementation support – Name of factory for support for a field record – Record instance. XML Parsers for DB Record Processing and Monitoring Record Scanning: Periodic and Event Channel Access Generic structure, create, and support definitions and implementation INFN October 13-17 2008 EPICS Meeting: JavaIOC

EPICS Meeting: JavaIOC PV Database Field types Primitive: all Java primitives except char boolean, byte, short, int, long, float, double string: implemented as a Java String structure: has fields. Each field can be any type array: elementType can be any type Complex Structures fully supported Introspection and Data interfaces: Provide access to any field. INFN October 13-17 2008 EPICS Meeting: JavaIOC

EPICS Meeting: JavaIOC PV Introspection Introspection Interfaces, i.e. no data Field: Methods: getType, getFieldName, ... Array: extends Field: Method: getElementType Structure: extends Field Methods: getFields, getStructureName FieldFactory Implements introspection interfaces Can be extended but probably not necessary INFN October 13-17 2008 EPICS Meeting: JavaIOC

EPICS Meeting: JavaIOC PV Data Interfaces PVField: Base for data: Methods: getField, ... PVBoolean,...,PVString : Methods: get,put PVArray: Base for array data interfaces PVBooleanArray,...,PVArrayArray : Methods get,put PVStructure provides access to a structure. PVRecord provides access to a record instance. PVDataFactory Default implementation. Any PVField can be replaced. Often useful ConvertFactory: Convert between data types INFN October 13-17 2008 EPICS Meeting: JavaIOC

EPICS Meeting: JavaIOC org.epics.ioc.pv Self Contained Java package for PV Data Can be used for purposes other than JavaIOC Database Example: Channel Access Local and EPICS client use PV Data It is designed to be used for other purposes. Via structures it could support Vector/Matrix Data Image Data etc. INFN October 13-17 2008 EPICS Meeting: JavaIOC

DB Database and Record Processing DB Database provides Record Locking – A record instance can be locked. Ability to monitor puts to any field of a record instance. Register and locate support for record and fields of a record. Record Processing Coordinates processing of a record instance. Both synchronous and asynchronous processing are supported. Each instance can have at most one record processor. A record can be self processed. Simulates multiple processors. Get and Put support Can process after put. Also supported by EPICS. Can process before get. Not supported by EPICS. Can put, then process, then get. Not supported by EPICS. INFN October 13-17 2008 EPICS Meeting: JavaIOC

EPICS Meeting: JavaIOC XML Parser DB - Database Definitions structure - a set of fields create – names a factory that replaces default data implementation. support – names a factory that implements support for a field. record – record instance Macro Substitution and Include INFN October 13-17 2008 EPICS Meeting: JavaIOC

EPICS Meeting: JavaIOC Record Processing A record instance is basic process unit It is locked during any processing or I/O RecordProcess is master. It calls support for record instance. Support modules implement semantics ANY field can optionally have support Record instance must have support No lock sets INFN October 13-17 2008 EPICS Meeting: JavaIOC

EPICS Meeting: JavaIOC Record Scanning Scan Types: passive, periodic, event Priority Uses Java priorities Threads created as required Periodic Arbitrary rate: minPeriod,deltaPeriod Event Based on eventName Replaces EPICS event and I/O Inter INFN October 13-17 2008 EPICS Meeting: JavaIOC

EPICS Meeting: JavaIOC Support Implements Record Processing Semantics Each record instance has support Each field can optionally have support Support can call other support Support provided with javaIOC is as generic as possible During initialization looks for required fields and support If required fields not found then does not start Example: generic – support for a structure or array Calls support for each sub field that has support Each support must finish before next is called Supports a structure or an array of arrays or structures INFN October 13-17 2008 EPICS Meeting: JavaIOC

EPICS Meeting: JavaIOC Implemented PV (Process Variable) Database XML Parsers: DBD and Record Instance Record Processing/Scanning/Monitoring Channel Access Channel Access Local EPICS CA Server EPICS CA Client Generic record/structures and support portDriver – JavaIOC implementation of ASYN Support SWTSHELL: GUI iocshell Expression Calculator – features like EPICS calc. INFN October 13-17 2008 EPICS Meeting: JavaIOC

EPICS Meeting: JavaIOC Not Implemented Replacement for EPICS sequencer. JavaIOC Channel Access Full Introspection and structure support for JavaIOC client <-> JavaIOC server VDCT: Visual Database Configuration Tool Access security Error logging ??? Lots to do!! BUT It is ready for at least soft IOC Support and soon for serial, gpib, and vxi11. INFN October 13-17 2008 EPICS Meeting: JavaIOC

EPICS Meeting: JavaIOC Simplified Database Before latest release the following existed but no longer RecordType – A top level structure for a record instance DBD and DB XML syntax and databases Extensive set of recordType definitions Now When creating a record instance new fields can be appended to existing structure. This one feature made it possible to remove above features Structure generic Has no fields!! The default support is generic. Following slides show how record instances are created from generic. INFN October 13-17 2008 EPICS Meeting: JavaIOC

Really Simple Record Instance <record name = "reallySimple” > <value type = “double” /> </record> which is the same as <record name = "reallySimple” structureName = “generic” > The above record instance Has a single field named value of type double. This is the ONLY data associated with this record. The field value is appended to generic which has no fields The record can be processed but not much happens except monitoring INFN October 13-17 2008 EPICS Meeting: JavaIOC

Not So Simple Record Instance <record name = "notQuiteAsSimple"> <value type = "double" /> <alarm structureName = "alarm" /> <timeStamp structureName = "timeStamp" /> <display structureName = "display" /> <input structureName = "inputSupport"> <pvname>somePV</pvname> </input> <scan structureName = "scan"> <type><choice>periodic</choice></type> <rate>1.0</rate> </scan> </record> The above record instance has the following fields value – type is double alarm data and support timeStamp display – display properties. input – input is from another record. Could be EPICS V3 record scan – The record is scanned once a second INFN October 13-17 2008 EPICS Meeting: JavaIOC

Really Simple Expression <record name = "calcSimpleCounter" > <value type = "int" /> <alarm structureName = "alarm" /> <timeStamp structureName = "timeStamp" /> <input structureName = "calculation" > <calculator> <expression>value+1</expression> </calculator> </input> </record> The above record instance Has a field named value of type int. Has fields alarm and timeStamp Has a field input which performs a calculation The calculator is expressionCalculator The expression adds 1 to value each time record is processed Note that value has type int INFN October 13-17 2008 EPICS Meeting: JavaIOC

EPICS Meeting: JavaIOC Counter from 0 to 10 <record name = "calcSimpleCounter" > <value type = "int" /> <alarm structureName = "alarm" /> <timeStamp structureName = "timeStamp" /> <input structureName = "calculation" > <calculator> <expression>value+1<=10?value+1:0</expression> </calculator> </input> </record> The above record instance Expression is (value+1)<=10 ? (value+1) : 0 Like previous but counts from 0 to 10. Note that because of xml syntax must use xml escape sequence for < is < > is > & is & INFN October 13-17 2008 EPICS Meeting: JavaIOC

Counter With Named Arguments <record name = "calcCounter"> <value type = "double” /> <input structureName = "calculation" > <calcArgArray> <element structureName = "calcArg"> <value type = "double">0.0</value> <name>min</name> </element> <value type = "double">10.0</value> <name>max</name> <value type = "double">0.5</value> <name>inc</name> </calcArgArray> <calculator> <expression>((value+inc)<=max)?(value+inc):min</expression> </calculator> </input> </record> Example of expression with named arguments Expression is ((value+inc)<=max) ? (value+inc) : min INFN October 13-17 2008 EPICS Meeting: JavaIOC

Expression Calculator Features Syntax is a valid Java scalar expression Operators Binary + - * / % << >> >>> Unary + - ~ Logical < <= > >= == != Bitwise & | ^ Conditional && || IfThenElse ?: Result assigned to value field All Java scalar types except char are supported Boolean, byte, short, int, float, double Arguments can be Valid Java constant value – The current value of the field named value Variable – value is from calcArgArray element identified by name All Java lang.Math functions and constants are supported INFN October 13-17 2008 EPICS Meeting: JavaIOC

EPICS Meeting: JavaIOC Example Expressions The following are all valid expressions: A + b*(c+3.0) + Math.abs(d)‏ (register&~mask)|((desiredValue<<offset)&mask)‏ Means (register&~mask)|((desiredValue<<offset)&mask)‏ Updates bits specified by mask Math.sin(2.0*Math.PI*position)‏ (a<b)&&(c>d) ? e : 0.0 Means (a<b)&&(c>d) ? e : 0.0 INFN October 13-17 2008 EPICS Meeting: JavaIOC

Calculation Structure Definitions <structure name = "calcArg" supportName = "generic" > <!-- instance must define value --> <field name = "name" type = "string" /> </structure> <structure name = "expressionCalculator" supportName = "expressionCalculator" > <field name = "expression" type = "string" /> <structure name = "calculation" supportName = "generic" > <field name = "calcArgArray" elementType = "structure" supportName = "calcArgArray" /> <field name = "calculator" structureName = "expressionCalculator" /> <field name = "alarm" structureName = "alarm" /> Calculation is the structure for a calculation calcArgArray is an array of structures each of which must be a calcArg CalcArg describes a single argument for the calculation Name – the name of the argument that can be used in an expression Value – Must be added in each instance and given a scalar type Other fields can be defined Calculator identifies support. Default is expressionCalculator. INFN October 13-17 2008 EPICS Meeting: JavaIOC

Example Argument Definition <calcArgArray> <element structureName = "calcArg"> <value type = "double">0.0</value> <name>a</name> </element> <value type = "double"/> <name>b</name> <alarm structureName = “alarm”/> <input supportName = "pdrvFloat64Input" structureName = "pdrvSupport"> <portName>somePort</portName> <deviceName>someDevice</deviceName> </input> </calcArgArray> The first element assigns a value to the argument A client could change the value. The second element gets a value for the argument via a portDriver This can be hardware Can define other ways to get value. For example a link to another record. INFN October 13-17 2008 EPICS Meeting: JavaIOC