Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
X
xxx-R6-1
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Iterations
Wiki
Code
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Deploy
Releases
Model registry
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Issue analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
synApps_6_1_Working
xxx-R6-1
Commits
ea24ae7f
Commit
ea24ae7f
authored
21 years ago
by
rivers
Browse files
Options
Downloads
Patches
Plain Diff
Lots of changes for Unix/Linux
parent
ea5b3709
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
iocBoot/iocUnix/st.cmd
+190
-297
190 additions, 297 deletions
iocBoot/iocUnix/st.cmd
with
190 additions
and
297 deletions
iocBoot/iocUnix/st.cmd
+
190
−
297
View file @
ea24ae7f
#
vxWorks
startup
script
#
for
vxStats
#putenv
"engineer=not me"
#putenv
"location=Earth"
engineer
=
"not me"
location
=
"Earth"
cd
""
<
../nfsCommands
<
cdCommands
#<
MPFconfig
.cmd
#
Read
environment
variables
<
envPaths
################################################################################
cd
topbin
#
Tell
EPICS
all
about
the
record
types
,
device
-support
modules
,
drivers
,
#
etc
.
in
the
software
we
just
loaded
(
xxx
.munch
)
dbLoadDatabase
(
"../../dbd/xxx.dbd"
)
xxx_registerRecordDeviceDriver
(
pdbbase
)
#
If
the
VxWorks
kernel
was
built
using
the
project
facility
,
the
following
must
#
be
added
before
any
C
++
code
is
loaded
(
see
SPR
#28980
)
.
sysCplusEnable
=
1
#
Increase
size
of
buffer
for
error
logging
from
default
1256
errlogInit
(
5000
)
#
##
Load
custom
EPICS
software
from
user
tree
and
from
share
ld
<
xxx
.munch
#
debug
sseq
record
#var
sseqRecDebug
,
10
#
Note
that
you
need
an
MPF
router
not
only
for
IP
modules
,
but
also
for
#
the
AIM
MCA
support
and
other
MPF
servers
routerInit
#
talk
to
local
IP
's
localMessageRouterStart
(
0
)
# talk to IP'
s
on
satellite
processor
#
(
must
agree
with
tcpMessageRouterServerStart
in
st_proc1
.cmd
)
#
for
IP
modules
on
stand
-alone
mpf
server
board
#tcpMessageRouterClientStart
(
1
,
9900
,
Remote_IP
,
1500
,
40
)
#
For
processor
with
IP
slots
or
that
runs
a
dumb
IP
carrier
#ld
<
ip
.munch
#ld
<
mpfgpibserver
.munch
#ld
<
mpfserialserver
.munch
#ld
<
dac128V
.munch
#ld
<
ip330
.munch
#ld
<
ip330Serv
.munch
#ld
<
ipUnidig
.munch
#ld
<
loveServer
.o
#ld
<
mpcServer
.o
#
This
IOC
configures
the
MPF
server
code
locally
#cd
startup
#<
st_mpfserver
.cmd
#cd
topbin
#
For
local
OR
remote
GPIB
server
.
Can
't use both (as of mpfGpib1.4)
#ld < GpibHideosLocal.o
#ld < GpibHideosRemote.o
#
Set
up
2
local
serial
ports
initTtyPort
(
"serial1"
,
"/dev/ttyS0"
,
38400
,
"N"
,
1
,
8
,
"N"
,
1000
)
#
For
MM4000
initTtyPort
(
"serial2"
,
"/dev/ttyS1"
,
19200
,
"N"
,
1
,
8
,
"N"
,
1000
)
#
For
Keithley
2000
initSerialServer
(
"serial1"
,
"serial1"
,
1000
,
20
,
""
)
initSerialServer
(
"serial2"
,
"serial2"
,
1000
,
20
,
""
)
#
Set
up
4
serial
ports
on
remote
Moxa
terminal
server
#initInetPort
(
"serial3"
,
"164.54.160.50"
,
4001
,
1000
)
#initInetPort
(
"serial4"
,
"164.54.160.50"
,
4002
,
1000
)
#initInetPort
(
"serial5"
,
"164.54.160.50"
,
4003
,
1000
)
#initInetPort
(
"serial6"
,
"164.54.160.50"
,
4004
,
1000
)
#initSerialServer
(
"serial3"
,
"serial3"
,
1000
,
20
,
""
)
#initSerialServer
(
"serial4"
,
"serial4"
,
1000
,
20
,
""
)
#initSerialServer
(
"serial5"
,
"serial5"
,
1000
,
20
,
""
)
#initSerialServer
(
"serial6"
,
"serial6"
,
1000
,
20
,
""
)
###
dbrestore
setup
#
ok
to
restore
a
save
set
that
had
missing
values
(
no
CA
connection
to
PV
)?
sr_restore_incomplete_sets_ok
=
1
#var
sr_restore_incomplete_sets_ok
,
1
#
dbrestore
saves
a
copy
of
the
save
file
it
restored
.
File
name
is
,
e
.g.
,
#
auto_settings
.sav.bu
or
auto_settings
.savYYMMDD
-HHMMSS
if
#
reboot_restoreDatedBU
is
nonzero
.
reboot_restoreDatedBU
=
1
;
set_savefile_path(startup, "autosave")
#var
reboot_restoreDatedBU
,
1
#
set_savefile_path
(
startup
,
"autosave"
)
set_requestfile_path
(
startup
,
""
)
set_requestfile_path
(
startup
,
"autosave"
)
set_requestfile_path
(
autosave
,
"autosaveApp/Db"
)
set_requestfile_path
(
calc
,
"calcApp/Db"
)
set_requestfile_path
(
ccd
,
"ccdApp/Db"
)
set_requestfile_path
(
dxp
,
"dxpApp/Db"
)
set_requestfile_path
(
ip
,
"ipApp/Db"
)
set_requestfile_path(
ip330, "ip330
App/Db")
set_requestfile_path
(
love
,
"love
App/Db"
)
set_requestfile_path
(
mca
,
"mcaApp/Db"
)
set_requestfile_path(ipunidig, "ipUnidigApp/Db")
set_requestfile_path(dac128v, "dac128VApp/Db")
set_requestfile_path
(
motor
,
"motorApp/Db"
)
set_requestfile_path
(
optics
,
"opticsApp/Db"
)
set_requestfile_path
(
sscan
,
"sscanApp/Db"
)
set_requestfile_path
(
std
,
"stdApp/Db"
)
reboot_restoreDebug=0
# override address, interrupt vector, etc. information in module_types.h
#module_types()
#var
reboot_restoreDebug
,
0
#
specify
what
save
files
should
be
restored
.
Note
these
files
must
be
reachable
#
from
the
directory
current
at
the
time
iocInit
is
run
set_pass0_restoreFile
(
"auto_positions.sav"
)
set_pass0_restoreFile
(
"auto_settings.sav"
)
set_pass1_restoreFile
(
"auto_settings.sav"
)
#
need
more
entries
in
wait
/scan-record
channel
-access
queue
?
recDynLinkQsize
=
1024
#var
recDynLinkQsize
,
1024
#
Specify
largest
array
CA
will
transport
#
Note
for
N
sscanRecord
data
points
,
need
(
N
+
1
)*
8
bytes
,
else
MEDM
#
plot
doesn
't display
putenv
"EPICS_CA_MAX_ARRAY_BYTES=64008"
cd
startup
################################################################################
#
Tell
EPICS
all
about
the
record
types
,
device
-support
modules
,
drivers
,
#
etc
.
in
the
software
we
just
loaded
(
xxx
.munch
)
dbLoadDatabase
(
"../../dbd/iocxxxVX.dbd"
)
iocxxxVX_registerRecordDeviceDriver
(
pdbbase
)
epicsEnvSet EPICS_CA_MAX_ARRAY_BYTES 64008
# Love Controllers
#devLoveDebug
=
1
#loveServerDebug
=
1
#
var
devLoveDebug
,
1
#
var
loveServerDebug
,
1
#dbLoadRecords("$(IP)/ipApp/Db/love.db", "P=xxx:,Q=Love_0,C=0,PORT=PORT2,ADDR=1");
# interpolation
dbLoadRecords
(
"$(
STD)/std
App/Db/interp.db"
,
"P=xxx:"
)
dbLoadRecords("$(
CALC)/calc
App/Db/interp.db", "P=xxx:")
# X-ray Instrumentation Associates Huber Slit Controller
# supported by a customized version of the SNL program written by Pete Jemian
#dbLoadRecords
(
"$(
STD)/std
App/Db/xia_slit.db"
,
"P=xxx:, HSC=hsc1:"
)
#dbLoadRecords
(
"$(
STD)/std
App/Db/xia_slit.db"
,
"P=xxx:, HSC=hsc2:"
)
#dbLoadRecords
(
"$(IP)/ipApp/Db/generic_serial.db"
,
"P=xxx:,C=0,
IPSLOT=a,CHAN=6,BAUD=9600,PRTY=None,DBIT=8,SBIT=1
"
)
#dbLoadRecords("$(
OPTICS)/optics
App/Db/xia_slit.db", "P=xxx:, HSC=hsc1:")
#dbLoadRecords("$(
OPTICS)/optics
App/Db/xia_slit.db", "P=xxx:, HSC=hsc2:")
#dbLoadRecords("$(IP)/ipApp/Db/generic_serial.db", "P=xxx:,C=0,
SERVER=serial7
")
##### Pico Motors (Ernest Williams MHATT-CAT)
##### Motors (see picMot.substitutions in same directory as this file) ####
...
...
@@ -111,46 +96,22 @@ dbLoadRecords("$(STD)/stdApp/Db/interp.db", "P=xxx:")
# Insertion-device control
dbLoadRecords("$(STD)/stdApp/Db/IDctrl.db","P=xxx:,xx=02us")
#
test
generic
gpib
record
#dbLoadRecords
(
"$(STD)/stdApp/Db/gpib.db"
,
"P=xxx:"
)
#
test
generic
camac
record
#dbLoadRecords
(
"$(STD)/stdApp/Db/camac.db"
,
"P=xxx:"
)
###############################################################################
##### Motors (see motors.substitutions in same directory as this file) ####
#dbLoadTemplate
(
"basic_motor.substitutions"
)
dbLoadTemplate("motor.substitutions")
#
OMS
VME
driver
setup
parameters
:
#
(
1
)
cards
,
(
2
)
axes
per
card
,
(
3
)
base
address
(
short
,
16
-byte
boundary
),
#
(
4
)
interrupt
vector
(
0
=
disable
or
64
-
255
),
(
5
)
interrupt
level
(
1
-
6
),
#
(
6
)
motor
task
polling
rate
(
min
=
1
Hz
,
max
=
60
Hz
)
omsSetup
(
2
,
8
,
0xFC00
,
180
,
5
,
10
)
#
OMS
VME58
driver
setup
parameters
:
#
(
1
)
cards
,
(
2
)
axes
per
card
,
(
3
)
base
address
(
short
,
4
k
boundary
),
#
(
4
)
interrupt
vector
(
0
=
disable
or
64
-
255
),
(
5
)
interrupt
level
(
1
-
6
),
#
(
6
)
motor
task
polling
rate
(
min
=
1
Hz
,
max
=
60
Hz
)
oms58Setup
(
3
,
8
,
0x3000
,
190
,
5
,
10
)
#
Highland
V544
driver
setup
parameters
:
#
(
1
)
cards
,
(
2
)
axes
per
card
,
(
3
)
base
address
(
short
,
4
k
boundary
),
#
(
4
)
interrupt
vector
(
0
=
disable
or
64
-
255
),
(
5
)
interrupt
level
(
1
-
6
),
#
(
6
)
motor
task
polling
rate
(
min
=
1
Hz
,
max
=
60
Hz
)
#v544Setup
(
0
,
4
,
0xDD00
,
0
,
5
,
10
)
# Newport MM4000 driver setup parameters:
# (1) max. controllers, (2)Unused, (3)polling rate (min=1Hz,max=60Hz)
#
MM4000Setup
(
3
,
0
,
10
)
MM4000Setup(3, 0, 10)
# Newport MM4000 driver configuration parameters:
# (1)controller# being configured,
# (2)port type: 0-GPIB_PORT or 1-RS232_PORT,
# (3)GPIB link or MPF server location
#
(
4
)
GPIB
address
or
hideos_task
name
#
MM4000Config
(
0
,
1
,
1
,
"
a-S
erial
[0]
"
)
# (4)
GPIB address
(int) or mpf serial server name (string)
MM4000Config(0, 1,
0
, "
s
erial
1
")
# Newport PM500 driver setup parameters:
# (1) maximum number of controllers in system
...
...
@@ -161,10 +122,33 @@ oms58Setup(3, 8, 0x3000, 190, 5, 10)
# Newport PM500 configuration parameters:
# (1) card being configured
# (2) port type (0-GPIB_PORT, 1-RS232_PORT)
#
(
3
)
link
for
GPIB
or
hideos_card
for
RS
-
232
#
(
3
)
GPIB
link
or
MPF
server
location
# (3) GPIB link or MPF server location
# (4) GPIB address (int) or mpf serial server name (string)
#PM500Config
(
0
,
1
,
1
,
"a-Serial[4]"
)
#PM500Config(0, 1, 0, "serial3")
# McClennan PM304 driver setup parameters:
# (1) maximum number of controllers in system
# (2) maximum number of channels on any controller
# (3) motor task polling rate (min=1Hz, max=60Hz)
#PM304Setup(1, 1, 10)
# McClennan PM304 driver configuration parameters:
# (1) controller being configured
# (2) MPF server location
# (3) MPF serial server name (string)
#PM304Config(0, 0, "serial4")
# ACS MCB-4B driver setup parameters:
# (1) maximum number of controllers in system
# (2) maximum number of axes per controller
# (3) motor task polling rate (min=1Hz, max=60Hz)
#MCB4BSetup(1, 4, 10)
# ACS MCB-4B driver configuration parameters:
# (1) controller being configured
# (2) MPF server location
# (3) MPF server name (string)
#MCB4BConfig(0, 0, "serial2")
# A set of scan parameters for each positioner. This is a convenience
# for the user. It can contain an entry for each scannable thing in the
...
...
@@ -173,75 +157,57 @@ dbLoadTemplate("scanParms.substitutions")
###############################################################################
###
Scalers
:
Joerger
VSC8
/16
dbLoadRecords
(
"$(STD)/stdApp/Db/Jscaler.db"
,
"P=xxx:,S=scaler1,C=0"
)
#
Joerger
VSC
setup
parameters
:
#
(
1
)
cards
,
(
2
)
base
address
(
ext
,
256
-byte
boundary
),
#
(
3
)
interrupt
vector
(
0
=
disable
or
64
-
255
)
VSCSetup
(
1
,
0x90000000
,
200
)
### Allstop, alldone
# This database must agree with the motors and other positioners you'
ve
actually
loaded
.
#
Several
versions
(
e
.g.
,
all_com_32
.db
)
are
in
stdApp
/Db
dbLoadRecords("$(STD)/stdApp/Db/all_com_
16
.db","P=xxx:")
dbLoadRecords
(
"$(STD)/stdApp/Db/all_com_
8
.db"
,
"P=xxx:"
)
###
Scan
-support
software
#
crate
-resident
scan
.
This
executes
1
D
,
2
D
,
3
D
,
and
4
D
scans
,
and
caches
#
1
D
data
,
but
it
doesn
't store anything to disk. (See '
saveData
' below for that.)
dbLoadRecords
(
"$(S
TD)/std
App/Db/scan.db"
,
"P=xxx:,MAXPTS1=4000,MAXPTS2=200,MAXPTS3=10,MAXPTS4=10,MAXPTSH=4000"
)
dbLoadRecords("$(S
SCAN)/sscan
App/Db/scan.db","P=xxx:,MAXPTS1=4000,MAXPTS2=200,MAXPTS3=10,MAXPTS4=10,MAXPTSH=4000")
# Slits
dbLoadRecords
(
"$(STD)/stdApp/Db/2slit.db"
,
"P=xxx:,SLIT=Slit1V,mXp=m3,mXn=m4"
)
dbLoadRecords
(
"$(STD)/stdApp/Db/2slit.db"
,
"P=xxx:,SLIT=Slit1H,mXp=m5,mXn=m6"
)
#
under
development
...
#dbLoadRecords
(
"$(STD)/stdApp/Db/2slit_soft.db"
,
"P=xxx:,SLIT=Slit2V,mXp=m13,mXn=m14"
)
#dbLoadRecords
(
"$(STD)/stdApp/Db/2slit_soft.db"
,
"P=xxx:,SLIT=Slit2H,mXp=m15,mXn=m16"
)
dbLoadRecords("$(OPTICS)/opticsApp/Db/2slit.db","P=xxx:,SLIT=Slit1V,mXp=m3,mXn=m4")
dbLoadRecords("$(OPTICS)/opticsApp/Db/2slit.db","P=xxx:,SLIT=Slit1H,mXp=m5,mXn=m6")
# 2-post mirror
#dbLoadRecords
(
"$(
STD)/std
App/Db/2postMirror.db"
,
"P=xxx:,Q=M1,mDn=m1
8
,mUp=m
17
,LENGTH=0.3"
)
#dbLoadRecords("$(
OPTICS)/optics
App/Db/2postMirror.db","P=xxx:,Q=M1,mDn=m1,mUp=m
2
,LENGTH=0.3")
# User filters
#dbLoadRecords
(
"$(STD)/stdApp/Db/filterMotor.db"
,
"P=xxx:,Q=fltr1:,MOTOR=m1,LOCK=fltr_1_2:"
)
#dbLoadRecords
(
"$(STD)/stdApp/Db/filterMotor.db"
,
"P=xxx:,Q=fltr2:,MOTOR=m2,LOCK=fltr_1_2:"
)
#dbLoadRecords
(
"$(STD)/stdApp/Db/filterLock.db"
,
"P=xxx:,Q=fltr2:,LOCK=fltr_1_2:,LOCK_PV=xxx:DAC1_1.VAL"
)
#dbLoadRecords("$(OPTICS)/opticsApp/Db/filterMotor.db","P=xxx:,Q=fltr1:,MOTOR=m1,LOCK=fltr_1_2:")
#dbLoadRecords("$(OPTICS)/opticsApp/Db/filterMotor.db","P=xxx:,Q=fltr2:,MOTOR=m2,LOCK=fltr_1_2:")
# Optical tables
#tableRecordDebug
=
1
dbLoadRecords
(
"$(
STD)/std
App/Db/table.db"
,
"P=xxx:,Q=Table1,T=table1,M0X=m1,M0Y=m2,M1Y=m3,M2X=m4,M2Y=m5,M2Z=m6,GEOM=SRI"
)
#
var
tableRecordDebug
,
1
dbLoadRecords("$(
OPTICS)/optics
App/Db/table.db","P=xxx:,Q=Table1,T=table1,M0X=m1,M0Y=m2,M1Y=m3,M2X=m4,M2Y=m5,M2Z=m6,GEOM=SRI")
### Monochromator support ###
# Kohzu and PSL monochromators: Bragg and theta/Y/Z motors
# standard geometry (geometry 1)
dbLoadRecords
(
"$(
STD)/std
App/Db/kohzuSeq.db"
,
"P=xxx:,M_THETA=m
9
,M_Y=m
10
,M_Z=m
11
,yOffLo=17.4999,yOffHi=17.5001"
)
dbLoadRecords("$(
OPTICS)/optics
App/Db/kohzuSeq.db","P=xxx:,M_THETA=m
1
,M_Y=m
2
,M_Z=m
3
,yOffLo=17.4999,yOffHi=17.5001")
# modified geometry (geometry 2)
dbLoadRecords
(
"$(
STD)/std
App/Db/kohzuSeq.db"
,
"P=xxx:,M_THETA=m
9
,M_Y=m
10
,M_Z=m
11
,yOffLo=4,yOffHi=36"
)
dbLoadRecords("$(
OPTICS)/optics
App/Db/kohzuSeq.db","P=xxx:,M_THETA=m
1
,M_Y=m
2
,M_Z=m
3
,yOffLo=4,yOffHi=36")
# Heidenhain ND261 encoder (for PSL monochromator)
#dbLoadRecords
(
"$(IP)/ipApp/Db/heidND261.db"
,
"P=xxx:,C=0,IPSLOT=a,CHAN=0"
)
#
Heidenhain
IK320
VME
encoder
interpolator
#dbLoadRecords
(
"$(STD)/stdApp/Db/IK320card.db"
,
"P=xxx:,sw2=card0:,axis=1,switches=41344,irq=3"
)
#dbLoadRecords
(
"$(STD)/stdApp/Db/IK320card.db"
,
"P=xxx:,sw2=card0:,axis=2,switches=41344,irq=3"
)
#dbLoadRecords
(
"$(STD)/stdApp/Db/IK320group.db"
,
"P=xxx:,group=5"
)
#drvIK320RegErrStr
()
#dbLoadRecords("$(IP)/ipApp/Db/heidND261.db", "P=xxx:,C=0,SERVER=serial1")
# Spherical grating monochromator
dbLoadRecords
(
"$(
STD)/std
App/Db/SGM.db"
,
"P=xxx:,N=1,M_x=m
7
,M_rIn=m
6
,M_rOut=m
8
,M_g=m
9
"
)
dbLoadRecords("$(
OPTICS)/optics
App/Db/SGM.db","P=xxx:,N=1,M_x=m
1
,M_rIn=m
2
,M_rOut=m
3
,M_g=m
4
")
# 4-bounce high-resolution monochromator
dbLoadRecords
(
"$(
STD)/std
App/Db/hrSeq.db"
,
"P=xxx:,N=1,M_PHI1=m
9
,M_PHI2=m
10
"
)
#dbLoadRecords
(
"$(
STD)/std
App/Db/hrSeq.db"
,
"P=xxx:,N=2,M_PHI1=m1
1
,M_PHI2=m
1
2"
)
dbLoadRecords("$(
OPTICS)/optics
App/Db/hrSeq.db","P=xxx:,N=1,M_PHI1=m
1
,M_PHI2=m
2
")
#dbLoadRecords("$(
OPTICS)/optics
App/Db/hrSeq.db","P=xxx:,N=2,M_PHI1=m1,M_PHI2=m2")
### Canberra AIM Multichannel Analyzer ###
#mcaRecordDebug
=
1
#devMcaMpfDebug
=
1
#mcaAIMServerDebug
=
1
#aimDebug
=
1
#icbDebug
=
1
#icbServerDebug
=
1
#icbDspDebug
=
1
#icbTcaDebug
=
1
#
var
mcaRecordDebug
,
1
#
var
devMcaMpfDebug
,
1
#
var
mcaAIMServerDebug
,
1
#
var
aimDebug
,
1
#
var
icbDebug
,
1
#
var
icbServerDebug
,
1
#
var
icbDspDebug
,
1
#
var
icbTcaDebug
,
1
# AIMConfig(char *serverName, int etherAddr, int port, int maxChans,
# int maxSignals, int maxSequences, char *etherDev, int queueSize)
...
...
@@ -255,23 +221,32 @@ dbLoadRecords("$(STD)/stdApp/Db/hrSeq.db","P=xxx:,N=1,M_PHI1=m9,M_PHI2=m10")
# or MCS module is in use, this must agree with hardware setting.)
# maxSequences: How many sequences (usually, a sequence is a "time slice")?
# etherDev: vxWorks device used to communicate over the network to AIM.
#
Typically
"e
i
0"
f
or
mv16x
,
mv17x
;
"dc0"
for
Motorola
PowerPC
# Typically "e
th
0" or
"eth1"
# queueSize: size of MPF message queue for this server (100 should be plenty)
#
# EXAMPLE:
#
AIMConfig
(
"AIM1/2"
,
0x
9AA
,
2
,
2048
,
1
,
1
,
"dc0"
,
100
)
# AIMConfig("AIM1/2", 0x
59E
, 2, 2048, 1, 1, "dc0", 100)
AIMConfig
(
"AIM1/2"
,
0x
9AA
,
2
,
4000
,
1
,
1
,
"
dc
0"
,
100
)
AIMConfig("AIM1/2", 0x
59E
, 2, 4000, 1, 1, "
eth
0", 100)
dbLoadRecords("$(MCA)/mcaApp/Db/mca.db","P=xxx:,M=mca1,INP=#C0 S0 @AIM1/2,DTYPE=MPF MCA,NCHAN=4000")
# Initialize ICB software, and create a new ICB server
# icbSetup(const char *serverName, int maxModules, int queueSize)
#
# serverName: defined here, must agree with icbConfig and dbLoadRecords commands
# maxModules: Maximum number of ICB modules that this server will control
# queueSize: size of MPF message queue for this server (100 should be plenty)
icbSetup("icb/1", 10, 100)
#
Configure
the
new
ICB
server
#
icbConfig
(
const
char
*
serverName
,
int
module
,
int
enetAddress
,
int
icbAddress
)
icbConfig
(
"icb/1"
,
0
,
0x9AA
,
3
)
# Configure an ICB module on this server
# icbConfig(const char *serverName, int module, int etherAddr, int icbAddress)
#
# serverName: defined in icbSetup above
# module: the index number for this module (0,1,2...)
# etherAddr: ethernet address of AIM module
# icbAddress: ICB address of this module (set with internal rotary switch, 0x0-0xF)
icbConfig("icb/1", 0, 0x59E, 5)
# In dbLoadRecords commands for ICB devices
# CARD = (0,1) for (local/remote),
...
...
@@ -280,206 +255,138 @@ icbConfig("icb/1", 0, 0x9AA, 3)
dbLoadRecords("$(MCA)/mcaApp/Db/icb_adc.db","P=xxx:,ADC=icbAdc1,CARD=0,SERVER=icb/1,ADDR=0")
#
icbConfig
(
"icb/1"
,
2
,
0x
9AA
,
2
)
#
dbLoadRecords
(
"$(MCA)/mcaApp/Db/icb_hvps.db"
,
"P=xxx:,HVPS=icbHvps1,CARD=0,SERVER=icb/1,ADDR=
2
"
)
icbConfig("icb/1",
1
, 0x
59E
, 2)
dbLoadRecords("$(MCA)/mcaApp/Db/icb_hvps.db","P=xxx:,HVPS=icbHvps1,CARD=0,SERVER=icb/1,ADDR=
1,LIMIT=1000
")
#
icbConfig
(
"icb/1"
,
3
,
0x
9AA
,
4
)
#
dbLoadRecords
(
"$(MCA)/mcaApp/Db/icb_amp.db"
,
"P=xxx:,AMP=icbAmp1,CARD=0,SERVER=icb/1,ADDR=
4
"
)
icbConfig("icb/1",
2
, 0x
59E
,
3
)
dbLoadRecords("$(MCA)/mcaApp/Db/icb_amp.db","P=xxx:,AMP=icbAmp1,CARD=0,SERVER=icb/1,ADDR=
2
")
# icbTcaSetup(char *serverName, int maxModules, int queueSize)
#
icbTcaConfig
(
char
*
serverName
,
int
module
,
int
enetAddress
,
int
icbAddress
)
#
# serverName: defined here, must agree with icbTcaConfig and dbLoadRecords commands
# maxModules: Maximum number of TCA modules that this server will control
# queueSize: size of MPF message queue for this server (100 should be plenty)
#
icbTcaSetup
(
"icbTca/1"
,
3
,
100
)
#
icbTcaConfig
(
"icbTca/1"
,
0
,
0x9AA
,
1
)
#dbLoadRecords
(
"$(MCA)/mcaApp/Db/icb_tca.db"
,
"P=xxx:,TCA=icbTca1,MCA=mca1,CARD=0,SERVER=icbTca/1,ADDR=0"
)
icbTcaSetup("icbTca/1", 3, 100)
#
Load
13
element
detector
software
#<
13
element
.cmd
# icbTcaConfig(char *serverName, int module, int etherAddr, int icbAddress)
#
# serverName: defined in icbTcaSetup above
# module: the index number for this module (0,1,2...)
# etherAddr: ethernet address of AIM module
# icbAddress: ICB address of this module (set with internal rotary switch, 0x0-0xF)
#
Load
3
element
detector
software
#<
3
element
.cmd
icbTcaConfig("icbTca/1", 0, 0x59E, 8)
dbLoadRecords("$(MCA)/mcaApp/Db/icb_tca.db","P=xxx:,TCA=icbTca1,MCA=mca1,CARD=0,SERVER=icbTca/1,ADDR=0")
###
Struck
7201
multichannel
scaler
(
same
as
SIS
3806
multichannel
scaler
)
# icbDspSetup(char *serverName, int maxModules, int queueSize)
#
# serverName: defined here, must agree with icbDspConfig and dbLoadRecords commands
# maxModules: Maximum number of DSP 9660 modules that this server will control
# queueSize: size of MPF message queue for this server (100 should be plenty)
#mcaRecordDebug
=
10
#devSTR7201Debug
=
10
#drvSTR7201Debug
=
10
icbDspSetup("icbDsp/1", 3, 100)
#
dbLoadRecords
(
"$(MCA)/mcaApp/Db/Struck8.db"
,
"P=xxx:mcs:"
)
#
dbLoadRecords
(
"$(MCA)/mcaApp/Db/simple_mca.db"
,
"P=xxx:mcs:,M=mca1,DTYP=Struck STR7201 MCS,PREC=3,INP=#C0 S0 @,CHANS=1000"
)
#
dbLoadRecords
(
"$(MCA)/mcaApp/Db/simple_mca.db"
,
"P=xxx:mcs:,M=mca2,DTYP=Struck STR7201 MCS,PREC=3,INP=#C0 S1 @,CHANS=1000"
)
#
dbLoadRecords
(
"$(MCA)/mcaApp/Db/simple_mca.db"
,
"P=xxx:mcs:,M=mca3,DTYP=Struck STR7201 MCS,PREC=3,INP=#C0 S2 @,CHANS=1000"
)
#
dbLoadRecords
(
"$(MCA)/mcaApp/Db/simple_mca.db"
,
"P=xxx:mcs:,M=mca4,DTYP=Struck STR7201 MCS,PREC=3,INP=#C0 S3 @,CHANS=1000"
)
#
dbLoadRecords
(
"$(MCA)/mcaApp/Db/simple_mca.db"
,
"P=xxx:mcs:,M=mca5,DTYP=Struck STR7201 MCS,PREC=3,INP=#C0 S4 @,CHANS=1000"
)
#dbLoadRecords
(
"$(MCA)/mcaApp/Db/simple_mca.db"
,
"P=xxx:mcs:,M=mca6,DTYP=Struck STR7201 MCS,PREC=3,INP=#C0 S5 @,CHANS=1000"
)
#dbLoadRecords
(
"$(MCA)/mcaApp/Db/simple_mca.db"
,
"P=xxx:mcs:,M=mca7,DTYP=Struck STR7201 MCS,PREC=3,INP=#C0 S6 @,CHANS=1000"
)
#
dbLoadRecords
(
"$(MCA)/mcaApp/Db/
simple_mca
.db"
,
"P=xxx:
mcs:,M=mca8,DTYP=Struck STR7201 MCS,PREC=3,INP=#C0 S7 @,CHANS=100
0"
)
#
icbDspConfig(char *serverName, int module, int etherAddr, int icbAddress
)
#
#
serverName: defined in icbDspSetup above
#
module: the index number for this module (0,1,2...
)
#
etherAddr: ethernet address of AIM module
#
icbAddress: ICB address of this module (set with internal rotary switch, 0x0-0xF
)
icbDspConfig("icbDsp/1", 0, 0x59E, 6
)
dbLoadRecords("$(MCA)/mcaApp/Db/
icbDsp
.db",
"P=xxx:
,DSP=dsp1,CARD=0,SERVER=icbDsp/1,ADDR=
0")
#
STR7201Setup
(
int
numCards
,
int
baseAddress
,
int
interruptVector
,
int
interruptLevel
)
#STR7201Setup
(
2
,
0xA0000000
,
210
,
6
)
#
STR7201Config
(
int
card
,
int
maxSignals
,
int
maxChans
,
int
1
=
enable
internal
25
MHZ
clock
)
#STR7201Config
(
0
,
8
,
1000
,
0
)
# Load 13 element detector software
#< 13element.cmd
#
##
Acromag
IP330
in
sweep
mode
###
#
dbLoadRecords
(
"$(MCA)/mcaApp/Db/mca.db"
,
"P=xxx:,M=mADC_1,DTYPE=ip330Sweep,NCHAN=2048,INP=#C0 S0 @d-Ip330Sweep"
)
#
Load 3 element detector software
#
< 3element.cmd
### Stuff for user programming ###
dbLoadRecords
(
"$(
STD)/std
App/Db/userCalcs10.db"
,
"P=xxx:"
)
dbLoadRecords
(
"$(
STD)/std
App/Db/userStringCalcs10.db"
,
"P=xxx:"
)
dbLoadRecords
(
"$(
STD)/std
App/Db/userTransforms10.db"
,
"P=xxx:"
)
dbLoadRecords("$(
CALC)/calc
App/Db/userCalcs10.db","P=xxx:")
dbLoadRecords("$(
CALC)/calc
App/Db/userStringCalcs10.db","P=xxx:")
dbLoadRecords("$(
CALC)/calc
App/Db/userTransforms10.db","P=xxx:")
# extra userCalcs (must also load userCalcs10.db for the enable switch)
dbLoadRecords
(
"$(
STD)/std
App/Db/userCalcN.db"
,
"P=xxx:,N=I_Detector"
)
dbLoadRecords
(
"$(
STD)/std
App/Db/userAve10.db"
,
"P=xxx:"
)
dbLoadRecords("$(
CALC)/calc
App/Db/userCalcN.db","P=xxx:,N=I_Detector")
#
dbLoadRecords("$(
CALC)/calc
App/Db/userAve10.db","P=xxx:")
# string sequence (sseq) record
dbLoadRecords("$(STD)/stdApp/Db/yySseq.db","P=xxx:,S=Sseq1")
dbLoadRecords("$(STD)/stdApp/Db/yySseq.db","P=xxx:,S=Sseq2")
dbLoadRecords("$(STD)/stdApp/Db/yySseq.db","P=xxx:,S=Sseq3")
# 4-step measurement
dbLoadRecords
(
"$(STD)/stdApp/Db/4step.db"
,
"P=xxx:"
)
#
dbLoadRecords("$(STD)/stdApp/Db/4step.db", "P=xxx:")
### serial support ###
# generic serial ports
#dbLoadRecords
(
"$(IP)/ipApp/Db/generic_serial.db"
,
"P=xxx:,C=0,IPSLOT=a,CHAN=0,BAUD=9600,PRTY=None,DBIT=8,SBIT=1"
)
dbLoadRecords("$(IP)/ipApp/Db/generic_serial.db", "P=xxx:,C=0,SERVER=serial1")
dbLoadRecords("$(IP)/ipApp/Db/generic_serial.db", "P=xxx:,C=0,SERVER=serial2")
# serial O/I block (generic serial record with format and parse string calcs)
# on epics/mpf processor
#dbLoadRecords
(
"$(IP)/ipApp/Db/serial_OI_block.db"
,
"P=xxx:,N=0_1,C=0,
IPSLOT=a,CHAN=4
"
)
#dbLoadRecords("$(IP)/ipApp/Db/serial_OI_block.db","P=xxx:,N=0_1,C=0,
SERVER=serial5
")
# on stand-alone mpf processor
#dbLoadRecords
(
"$(IP)/ipApp/Db/serial_OI_block.db"
,
"P=xxx:,N=1_1,C=0,
IPSLOT=a,CHAN=4
"
)
#dbLoadRecords("$(IP)/ipApp/Db/serial_OI_block.db","P=xxx:,N=1_1,C=0,
SERVER=serial5
")
# Stanford Research Systems SR570 Current Preamplifier
#dbLoadRecords
(
"$(IP)/ipApp/Db/SR570.db"
,
"P=xxx:,A=A1,C=0,
IPSLOT=a,CHAN=0
"
)
#dbLoadRecords("$(IP)/ipApp/Db/SR570.db", "P=xxx:,A=A1,C=0,
SERVER=serial1
")
# Lakeshore DRC-93CA Temperature Controller
#dbLoadRecords
(
"$(IP)/ipApp/Db/LakeShoreDRC-93CA.db"
,
"P=xxx:,Q=TC1,C=0,
IPSLOT=a,CHAN=3
"
)
#dbLoadRecords("$(IP)/ipApp/Db/LakeShoreDRC-93CA.db", "P=xxx:,Q=TC1,C=0,
SERVER=serial4
")
# Huber DMC9200 DC Motor Controller
#dbLoadRecords
(
"$(IP)/ipApp/Db/HuberDMC9200.db"
,
"P=xxx:,Q=DMC1:,C=0,
IPSLOT=a,CHAN=
5"
)
#dbLoadRecords("$(IP)/ipApp/Db/HuberDMC9200.db", "P=xxx:,Q=DMC1:,C=0,
SERVER=serial
5")
# Oriel 18011 Encoder Mike
#dbLoadRecords
(
"$(IP)/ipApp/Db/eMike.db"
,
"P=xxx:,M=em1,C=0,
IPSLOT=a,CHAN=2
"
)
#dbLoadRecords("$(IP)/ipApp/Db/eMike.db", "P=xxx:,M=em1,C=0,
SERVER=serial3
")
# Keithley 2000 DMM
#
dbLoadRecords
(
"$(IP)/ipApp/Db/Keithley2kDMM_mf.db"
,
"P=xxx:,Dmm=D1,C=
1,IPSLOT=a,CHAN=0
"
)
dbLoadRecords("$(IP)/ipApp/Db/Keithley2kDMM_mf.db","P=xxx:,Dmm=D1,C=
0,SERVER=serial2
")
# Oxford Cyberstar X1000 Scintillation detector and pulse processing unit
#dbLoadRecords
(
"$(IP)/ipApp/Db/Oxford_X1k.db"
,
"P=xxx:,S=s1,C=0,
IPSLOT=a,CHAN=3
"
)
#dbLoadRecords("$(IP)/ipApp/Db/Oxford_X1k.db","P=xxx:,S=s1,C=0,
SERVER=serial4
")
# Oxford ILM202 Cryogen Level Meter (Serial)
#dbLoadRecords
(
"$(IP)/ipApp/Db/Oxford_ILM202.db"
,
"P=xxx:,S=s1,C=0,IPSLOT=c,CHAN=2"
)
###
GPIB
support
###
#
GPIB
O
/I
block
(
generic
gpib
record
with
format
and
parse
string
calcs
)
#
See
HiDEOSGpibLinkConfig
()
below
.
#dbLoadRecords
(
"$(IP)/ipApp/Db/GPIB_OI_block.db"
,
"P=xxx:,N=1,L=10"
)
#
Heidenhain
AWE1024
at
GPIB
address
$
(
A
)
#dbLoadRecords
(
"$(IP)/ipApp/Db/HeidAWE1024.db"
,
"P=xxx:,L=10,A=6"
)
#
Keithley
199
DMM
at
GPIB
address
$
(
A
)
#dbLoadRecords
(
"$(STD)/stdApp/Db/KeithleyDMM.db"
,
"P=xxx:,L=10,A=26"
)
###
Miscellaneous
###
#
Systran
DAC
database
#dbLoadRecords
(
"$(IP)/ipApp/Db/DAC.db"
,
"P=xxx:,D=1,C=1,N=1,S=0,IPSLOT=c"
)
#dbLoadRecords
(
"$(IP)/ipApp/Db/DAC.db"
,
"P=xxx:,D=1,C=1,N=2,S=1,IPSLOT=c"
)
#dbLoadRecords
(
"$(IP)/ipApp/Db/DAC.db"
,
"P=xxx:,D=1,C=1,N=3,S=2,IPSLOT=c"
)
#dbLoadRecords
(
"$(IP)/ipApp/Db/DAC.db"
,
"P=xxx:,D=1,C=1,N=4,S=3,IPSLOT=c"
)
#dbLoadRecords
(
"$(IP)/ipApp/Db/DAC.db"
,
"P=xxx:,D=1,C=1,N=5,S=4,IPSLOT=c"
)
#dbLoadRecords
(
"$(IP)/ipApp/Db/DAC.db"
,
"P=xxx:,D=1,C=1,N=6,S=5,IPSLOT=c"
)
#dbLoadRecords
(
"$(IP)/ipApp/Db/DAC.db"
,
"P=xxx:,D=1,C=1,N=7,S=6,IPSLOT=c"
)
#dbLoadRecords
(
"$(IP)/ipApp/Db/DAC.db"
,
"P=xxx:,D=1,C=1,N=8,S=7,IPSLOT=c"
)
#
vme
test
record
dbLoadRecords
(
"$(STD)/stdApp/Db/vme.db"
,
"P=xxx:,Q=vme1"
)
#
Hewlett
-Packard
10895
A
Laser
Axis
(
interferometer
)
#dbLoadRecords
(
"$(STD)/stdApp/Db/HPLaserAxis.db"
,
"P=xxx:,Q=HPLaser1, C=0"
)
#
hardware
configuration
#
example
:
devHP10895LaserAxisConfig
(
ncards
,
a16base
)
#devHPLaserAxisConfig
(
2
,
0x1000
)
#
Acromag
general
purpose
Digital
I
/O
#dbLoadRecords
(
"$(STD)/stdApp/Db/Acromag_16IO.db"
,
"P=xxx:, A=1"
)
#
Acromag
AVME9440
setup
parameters
:
#
devAvem9440Config
(
ncards
,
a16base
,
intvecbase
)
#devAvme9440Config
(
1
,
0x0400
,
0x78
)
#dbLoadRecords("$(IP)/ipApp/Db/Oxford_ILM202.db","P=xxx:,S=s1,C=0,SERVER=serial5")
# Miscellaneous PV'
s
,
such
as
burtResult
dbLoadRecords
(
"$(STD)/stdApp/Db/misc.db"
,
"P=xxx:"
)
#dbLoadRecords("$(STD)/stdApp/Db/VXstats.db","P=xxx:")
# vxStats
dbLoadTemplate("vxStats.substitutions")
#
Elcomat
autocollimator
#dbLoadRecords("$(IP)/ipApp/Db/Elcomat.db", "P=xxx:,C=0,IPSLOT=a,CHAN=7")
# Bunch-clock generator
#dbLoadRecords("$(STD)/stdApp/Db/BunchClkGen.db","P=xxx:")
#dbLoadRecords("$(STD)/stdApp/Db/BunchClkGenA.db", "UNIT=xxx", std)
# hardware configuration
# example: BunchClkGenConfigure(intCard, unsigned long CardAddress)
#BunchClkGenConfigure(0, 0x8c00)
#dbLoadRecords
(
"$(IP)/ipApp/Db/Elcomat.db"
,
"P=xxx:,C=0,SERVER=serial8"
)
###
Queensgate
piezo
driver
#dbLoadRecords("$(
STD)/std
App/Db/pzt_3id.db","P=xxx:")
#dbLoadRecords("$(
STD)/std
App/Db/pzt.db","P=xxx:")
#dbLoadRecords
(
"$(
IP)/ip
App/Db/pzt_3id.db"
,
"P=xxx:"
)
#dbLoadRecords
(
"$(
IP)/ip
App/Db/pzt.db"
,
"P=xxx:"
)
### GP307 Vacuum Controller
#dbLoadRecords("$(STD)/stdApp/Db/gp307.db","P=xxx:")
#
Eurotherm
temp
controller
#dbLoadRecords
(
"$(IP)/ipApp/Db/Eurotherm.db"
,
"P=xxx:,C=0,SERVER=serial7"
)
#var
devAoEurothermDebug
,
20
### Queensgate Nano2k piezo controller
#dbLoadRecords("$(STD)/stdApp/Db/Nano2k.db","P=xxx:,S=s1")
#
MKS
vacuum
gauges
#dbLoadRecords
(
"$(IP)/ipApp/Db/MKS.db"
,
"P=xxx:,C=0,SERVER=serial2,CC1=cc1,CC2=cc3,PR1=pr1,PR2=pr3"
)
#
PI
Digitel
500
/1500
pump
#dbLoadRecords
(
"$(IP)/ipApp/Db/Digitel.db"
,
"xxx:,PUMP=ip1,C=0,SERVER=serial3"
)
#
PI
MPC
ion
pump
#dbLoadRecords
(
"$(IP)/ipApp/Db/MPC.db"
,
"P=xxx:,PUMP=ip2,C=0,SERVER=serial4,PA=0,PN=1"
)
#
PI
MPC
TSP
(
titanium
sublimation
pump
)
#dbLoadRecords
(
"$(IP)/ipApp/Db/TSP.db"
,
"P=xxx:,TSP=tsp1,C=0,SERVER=serial4,PA=0"
)
# Eurotherm temp controller
#dbLoadRecords("$(IP)/ipApp/Db/Eurotherm.db","P=xxx:,C=0,IPSLOT=a,CHAN=6")
#devAoEurothermDebug=20
# Analog I/O (Acromag IP330 ADC)
#dbLoadTemplate("ip330Scan.substitutions")
# Machine-status board (MRD 100)
#####################################################
# dev32VmeConfig(card,a32base,nreg,iVector,iLevel)
# card = card number
# a32base = base address of card
# nreg = number of A32 registers on this card
# iVector = interrupt vector (MRD100 Only
!!
)
# iLevel = interrupt level (MRD100 Only
!!
)
# For Example
# devA32VmeConfig(0, 0x80000000, 44, 0, 0)
#####################################################
# Configure the MSL MRD 100 module.....
#devA32VmeConfig(0, 0xa0000200, 30, 0xa0, 5)
# VVVVVVVVVVVVVVVVVVVVV This doesn'
t
look
right
(
tmm
)
#dbLoadRecords
(
"$(STD)/stdApp/Db/msl_mrd100.db"
,
"C=0,S=01,ID1=00,ID2=00us"
)
###
Bit
Bus
configuration
#
BBConfig
(
Link
,
LinkType
,
BaseAddr
,
IrqVector
,
IrqLevel
)
#
Link
:
?
#
LinkType
:
0
:hosed
;
1
:xycom
;
2
:pep
#BBConfig
(
3
,
1
,
0x2400
,
0xac
,
5
)
#
Slow
feedback
#dbLoadTemplate
(
"pid_slow.substitutions"
)
###############################################################################
#
Set
shell
prompt
(
otherwise
it
is
left
at
mv167
or
mv162
)
shellPromptSet
"iocxxx> "
iocLogDisable
=
1
iocInit
###
startup
State
Notation
Language
programs
seq
&
kohzuCtl
,
"P=xxx:, M_THETA=m
9
, M_Y=m
10
, M_Z=m
11
, GEOM=1, logfile=kohzuCtl.log"
seq
&
hrCtl
,
"P=xxx:, N=1, M_PHI1=m
9
, M_PHI2=m
10
, logfile=hrCtl1.log"
seq
&
kohzuCtl
,
"P=xxx:, M_THETA=m
1
, M_Y=m
2
, M_Z=m
3
, GEOM=1, logfile=kohzuCtl.log"
seq
&
hrCtl
,
"P=xxx:, N=1, M_PHI1=m
1
, M_PHI2=m
2
, logfile=hrCtl1.log"
#
Keithley
2000
series
DMM
#
channels
:
10
,
20
,
or
22
;
model
:
2000
or
2700
#seq
&
Keithley2kDMM
,(
"P=xxx:, Dmm=D1, channels=20, model=2000"
)
#
Bunch
clock
generator
#seq
&
getFillPat
,
"unit=xxx"
seq
&
Keithley2kDMM
,(
"P=xxx:, Dmm=D1, channels=10, model=2000"
)
#
X
-ray
Instrumentation
Associates
Huber
Slit
Controller
#
supported
by
a
SNL
program
written
by
Pete
Jemian
and
modified
(
TMM
)
for
use
with
the
...
...
@@ -498,17 +405,3 @@ create_monitor_set("auto_positions.req",5,"P=xxx:")
# save other things every thirty seconds
create_monitor_set("auto_settings.req",30,"P=xxx:")
### Start the saveData task.
# saveData_MessagePolicy
# 0: wait forever for space in message queue, then send message
# 1: send message only if queue is not full
# 2: send message only if queue is not full and specified time has passed (SetCptWait()
# sets this time.)
# 3: if specified time has passed, wait for space in queue, then send message
# else: don'
t
send
message
#debug_saveData
=
2
saveData_MessagePolicy
=
2
saveData_SetCptWait_ms
(
100
)
saveData_Init
(
"saveData.req"
,
"P=xxx:"
)
#saveData_PrintScanInfo
(
"xxx:scan1"
)
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment