A Comparison of Vsystem and EPICS
P. N. Clout, V. E. Martz, R. B. Rothrock, R. T. Westervelt
Vista Control Systems, Inc., 1137 18th. St., Los Alamos, NM 87544, USA
1 Introduction
The history of EPICS and Vsystem has a common root in
AT Division at Los Alamos National Lab (LANL). EPICS
originated from the experience of P-11 group with acommercial package which was co-authored by Bob
Dalesio in industry before he joined LANL. EPICS waswritten for the GTA project in the period 1987-1991 andhas grown from there with a collaboration organized byLANL In 1993, LANL co-exclusively licensed the EPICS
software to three companies (Tate, Kinetics and Titan).
Vsystem has its roots in the Proton Storage Ring (PSR)
control system which was designed and written in theperiod 1981-1985. This system was re-written forworkstations and networking for an SDI experiment in
1986-1987. This system had very significant innovation in
the networking of the database and in the Human MachineInterface (HMI) package, Draw. This software wasexclusively licensed to Vista Control Systems in 1990.
While a number of people worked on developing bothsystems at different times, they are rather different in many
respects. The remainder of this paper will try tocharacterize these two systems and highlight theirdifferences.
For the basis of the comparison I have used the featuresof Vsystem currently shipping and EPICS as documented
on the WWW at LANL, TJNL and APS.
2 The primary differences
2.1.1 Real time databases and system architecture
The EPICS database is generally one database on eachIOC. The IOC is a VxWorks node and the database record
set is fixed at boot time. The EPICS database provides
links between records. Records represent IO values,devices and calculations. This is the foundation for block
programming. All fields can be changed at run-time except
some links.
The Vsystem database can consist of one or more
databases per node and these databases can be loaded anddeleted dynamically. Links between channels and code canbe added to a Vaccess database dynamically.
Both databases are intended to hold all the information
on a particular channel and they both have an API for user
programs and tools to access the data. In the Vsystem
database, any field of any channel (except the channel
name, type and array dimension) can be changed
dynamically including the pointers to code and theconstants and channel pointers that that code uses. While
EPICS has an internal IOC API and a Channel Access API
for remote access, Vsystem has a unified API for both
local and remote access.
The Vaccess database is designed to be flexible enoughthat a competent programmer can meet any requirement
without taking the performance hit of interpretation ofcode at runtime. Table 1 shows the primary differences
between the two databases.
Table 1. Database differencesVsystem
EPICSPorts
OpenVMS (2), VxWorks
UNIX (3), ELN,
VxWorks,
WindowsNT
API richness280
routines 56(Channelincluding chix, Access)time, data andthread support
Stabilitygoodsome problems
Listcalls Yes
No(=speed+)
Async
wait
wait or callback
completion
notification
Changeevent or wakeevent
notification
Complex records user developed yesfrom channels
CHIX/CHID
ChannelField
level
Reference
Internal
User developedAlarms
withcontrol
blocksDelayed Alarms
InternalNo
Alarm severity >10,000
3levels
Remoteput 21 µs/real
40 µs/real
performance
Channel naming
database::channel,fieldchannel@field
Independent
Database name TCP/IP
andsystems on same environment
UDPnetwork
networkvariables
parameters
Multiple
Not possible
Possible
responses
toname resolution
Client/serve data NegotiatedIEEE FP, 32-bit
transfer format
Big Endian
Synchronous
NoYes
group support
Security
8 levels, classes, 2 levels, classes,roles and users
roles, users andsystem state
The Key difference between the two databases is that theVsystem database defines and supports the software

architecture for the complete control system, through all
the levels implemented. This means that the Vaccess realtime database can be used for much more than the lowlevel processing of IO data. For example , Vaccess can beused for customizing the total Vdraw behavior way beyond
normal HMI capabilities. Another benefit of the Vsystemapproach is that when fast and hard real-time determinism
is not required, systems can be based solely on cheap,
standard PCs or workstations. When the system does notneed to be distributed, a single, powerful, server can beused.
The EPICS database, bound to VxWorks, only provides
the software architecture for the level 1 IOC, like an analog
PLC. While a new server API is available to extend
Channel Access to higher levels, this requires each server
to mimic appropriate IOC database behavior, like security,etc. whereas with Vsystem, the IO of a server, like aprocess model, is simply gets and puts to a local database.

Text

Horizontal

Byte widget
Data conversion
Menu object

with symbols
Noanalogor
discrete
Yes
Yes

Channel menu
Executeuser
subroutine
Dynamic strip
chart changes
Synchronous
optionLog axis options(allanalogdisplays)
Smith charts

Moving objects
Image Plots
Mouse button binary control
Dynamicsubpictures
User-defined
graphic symbolsTimestamp
Polar Plots
IO
Error
indication
Update rate
Screen callup,
100monitors,
1000 graphic objandNoNo

Yes - user anddatabase
NoNo

Yes - 2No / Plots only

Yes - via arraychannels

Yeswithimpedance andadmittance grids/ NoNo2.2 Human-Machine interface
EPICS has two tools, MEDM and EDD/DM fordeveloping operator windows. I have compared mainly
EDD/DM here with some information from the MEDM
manual.
Vsystem has a single operator interface which has its
roots in the original Draw but has been extensively
developed and re-written for X-Windows since then withmany advanced features based on customer requirements..
Vdraw development focus had been great flexibility indefining screens while keeping the simplicity of use andhigh performance. Table 2 highlights the primarydifferences.
Table 2. Primary HMI differences
Vsystem
EDM/MEDM
Development / One program for Two programs /run timeboth modes, all one program
windows
Ports
OpenVMS (2) UNIX (3)
UNIX(3)
WindownNT
Data updates
event or polled
event
Object Property 11-55~15
Sheet # choices
User Defaults
Per object
From Window
attributes
Dynamics
on Using Symbols
Yesgraphic objects
Flashing colors
Betweenany Between color
twocolors, anddimmed
individual blink color. One rate.
intervals
or / ? MEDM
default
Modify channel 3 - dynamic and 1 - staticnames methods
staticDynamic display Yes-via channels Nocontrol
Tanks filling
Clip mask over No - sight glassbar, linear or effect only
area fill

Horizontal
verticalobject
Yes
discreteYes, 1 ordimensions
Yes
Yes

2

Yes

NoNo

Yes - controlledfrom database
Yes

NoYes
Yes
Yes - automaticNoNo
Yes - using color
rule2000 values/sec2 sec / ?

9,000 values/sec
0.8 sec

NoTable 2 shows that Vdraw is considerably more featurerich and flexible than EDD/DM. As an example, for one
customer we used Vdraw, a Vaccess database and somehandlers in the Vaccess database to emulate a DCS system.
The Vsystem emulation generated 15,000 different Vdraw
windows from 15 Vdraw templates and data structures thatdefined the window contents, relationships and data
connections.
2.3 Archiver
While EPICS documentation mentions many modes ofarchiving data, only a frequency-based archiver isdocumented. The Vsystem archiver, on the other hand,implements many modes. In implementing Vlogger,
performance, usability and data quality were key
requirements [1]. Table 3 is a comparison of the majordifferences between Vlogger and the EPICS Frequencybased Archiver.
Table 3. Archiver Differences

ModesCircular logging
Runs oncommandnetworking
Multipleloggers/nodeAddchannels
dynamically
Deletechannels
dynamically
Max rate

Text
messagestamp
SQL searches oflog file
SQL
interface
integrated with alltools
ASCII Export
Interrogate logger
status?
Catalog ManagerLog
fileconcatenate/merge?
Playback
API to run logger
Log file access
APIMax
ratebenchmark
Compression
Graphical Viewer

Vsystem
6Yes
All Portsclient/server

EPICS
2No
UNIX
OS + TCP/IP

Internalserver
Yes

OSthroughYes

Yeslimitedcomputer>500Hz
Yes

Nobyclock,

20Hz

No

Yes

No

Yes

NoYes
Yes

Yes
No

Yes
Yes

No
No

Yes
Yes
Read/write

No
No
No

1,000,000
reals/sec.
Yes
Yes

No
Yes

Table 3 shows that the Vsystem Logger is a much morecomprehensive tool than the EPICS Frequency based
Archiver and indeed Vlogger is an industry leader productin performance and capabilities. We know of nocommercial product with capabilities even close toVlogger. The performance capabilities can be used to log
many channels efficiently or a few channels at a very highrate. If the demands of the application exceed thecapabilities of Vlogger, then the Vlogger API can be used
to provide logging integral to the application and still havethe benefits of all the tools.
2.4 Scripting and sequencing
Vscript was developed to allow people who do notconsider themselves programmers to write, test and debug
scripts to sequence their applications. It has been used withup to 65 individual scripts running under the control of theVscript server to test jet engines. The source file iscompiled into an intermediate language, vexe, which isalso documented. The vexe code is further compiled into
threaded code on being loaded into the Vscript virtualprocessor.
The EPICS State Notation Language (SNL) is a texturalrepresentation of state notation diagrams which is preprocessed into ANSI C and then compiled and loaded into
VxWorks as a normal C executable. As a result, the sameprogram, all other things being equal, will run faster whendeveloped with SNL than with Vscript.
As a comparison, Fig. 1 is an SNL example from themanual.
Program level_checkfloat v;
assign v to "input_voltage";monitor v;
short light;
assign light to "indicator_light";
ss volt_check {state light_off{
when (v>5.0) {/* turn light on */light = TRUE;
pvPut(light);} state light_on}
state light_on{
when (v<3.0) {/* turn light off */light = FALSE;
pvPut(light);} state light_off}}
Figure 1. An Example EPICS State Notation Language
Program from the SNL documentation.
Figure 2 shows the equivalent Vscript program to do thesame thing as the SNL program in Figure 1. It will be seenthat the Vscript code is much closer to English and that theIO statements are implicit. This is because the Vscript
compiler opens the Vaccess database and essentially adds
channel names and other channel information to thekeyword table. Figures 1 and 2 certainly show that Vscript
met its goals when compared to SNL.
Table 4 shown some of the other differences between
Vscript and the EPICS SNL.
#load demo_db::unit1
state_light_off:
wait until (input_voltage > 5.0)
indicator_light on
go to state_light_on
state_light_on:
wait until (input_voltage < 3.0)
indicator_light off
go to state_light_off
Figure 2 The Vscript version of the SNL code in Figure 1

Table 4 Vscript and SNL differences
Vscript
Monitors
implicit
IO statements
implicit
Eventsuse databasechannelfield all fields
accessflow control

Comments

Time support

String functions
Vscript/SNL
procedures?
Callexternalprocedures?
ServerMath and logicaloperators
Conventional IO
Embed in-line C

loop, while, until,if, go to, onchange, wait, wait
until,wait...timeout,wait
until....timeout
generallyembedded in codesolongas
keywords
notused.
wait
absolutetime, delta time.
setandreadtimers
9Yes

EPICS SNL
explicit
explicit
event flags
value, status,
severity,
timestampwhen, if, foronly between
commentmarkers

delay0No

Yes

Yes

Multi-user

none,
OS
limitations
1331
Open_file, read,
write, close_file
noprint and C IO
Yes

2.5 Alarm manager
The alarm checking is done in the databases in bothsystems (unlike many commercial systems). The alarm
managers allow operators and others to monitor and log thealarms that occur. Valarm logs alarms in the Vlogger
format. Valarm supports areas and sub-areas while theAlarm Handler supports alarm trees. Table 5 shows thedifferences.
2.6 Documentation and support
With a UNIX-like collaboration, the individual members

are driven by the needs of their own institutes. This
impacts their desire to support other institutes and write thedocumentation that makes their EPICS contribution
generally usable. I have found the EPICS documentation
generally very poorly written and difficult to use andunderstand.
Table 5. Alarm Manager Differences
ValarmEPICS
AlarmHandler
Alarm Labels
5, DB or config. none
Acknowledge
Yes
Yes
options
Alarm masking
with areas and automatic based
subareason trees
Alarm Guidance Through Vdraw
Yes
Text / response
Print alarms
Yes
No
With a company's products, there is strong motivation
not only to write documentation, as this is required forsales, but to continually improve that documentation toaddress issues that come up. Good documentation for sucha complex product is essential if customers are to beeffective in implementing the product.
The issue is what method of product management is themost effective. A large collaboration will involve the inputof many people into the directions to be taken but this will
be at considerable cost and frustration with the time taken
to reach a reasonable agreement.
3 Conclusion
It is clear that there are significant differences between
EPICS and Vsystem despite the fact that a short paper can
not hope to do justice to either system. I believe that thispaper shows that Vsystem is technically substantiallyahead of EPICS in the released and documented
components. EPICS is clearly the right choice where thestaff at each site want to be deeply involved in theproduct's development. I believe that this survey reinforces
the conclusions of reference [2], is that commercial
products are the most cost-effective solution to control
system software components.
References[1] J. P. Girard, R. T. Westervelt, E. Zharkov and P. Clout,
Enhanced Data Logging Capabilities in Vsystem, theseproceedings.
[2] P. N. Clout, Shariing Control System Software, Proc.
PAC 1993 IEEE 1801-5