Download presentation
Presentation is loading. Please wait.
Published byMalcolm Sutton Modified over 9 years ago
1
EPICS EPICS Seminar 2009, RRCAT, Indor Masanori Satoh, KEK Linac, Jan. 2009. Masanori Satoh/ KEK, Jan. 27-30, 2009 for EPICS seminar at RRCAT, Indore Database Configuration tools Text editor and VDCT w/ hands-on (*) Many parts are quoted from Dr. N. Yamamoto’s lecture material.
2
EPICS EPICS Seminar 2009, RRCAT, Indor Masanori Satoh, KEK Linac, Jan. 2009. Management of Database Database = *.db file (Record instances) Text file There are many ways to edit *.db file Text editor (most simple way): vi, emacs, etc VDCT: java application w/ GUI (KEKB Linac Control G.) Old tools: DCT, GDCT, CAPFAST (KEKB Control G.) Automatic *.db file generation is also available if you need. (RDB, etc)
3
EPICS EPICS Seminar 2009, RRCAT, Indor Masanori Satoh, KEK Linac, Jan. 2009. Management of Database (cont’d) *.db file: When an IOC start up, an iocsh read the database file. dbLoadDatabase => Load *.dbd file dbLoadRecords => Load *.db file dbLoadTemplate => Load *.substitutions file Example: …./iocBoot/iocxxx/st.cmd #!../../bin/linux-x86/example < envPaths cd ${TOP} ## Register all support components dbLoadDatabase "dbd/example.dbd" example_registerRecordDeviceDriver pdbbase ## Load record instances dbLoadTemplate "db/userHost.substitutions" dbLoadRecords "db/dbExample.db","user=myHost" cd ${TOP}/iocBoot/${IOC} iocInit()
4
EPICS EPICS Seminar 2009, RRCAT, Indor Masanori Satoh, KEK Linac, Jan. 2009. Management of Database (cont’d) Example: envPaths file epicsEnvSet("ARCH","win32-x86") epicsEnvSet("IOC","iocexample") epicsEnvSet("TOP","/home/tp/epics/epicsApp") epicsEnvSet("EPICS_BASE","/home/tp/epics/epicsApp/../base- 3.14.10")
5
EPICS EPICS Seminar 2009, RRCAT, Indor Masanori Satoh, KEK Linac, Jan. 2009. Most Simple Record record(ai,”myAI:record”){} Record type : ai (Analogue Input) Record name: “myAI:record” If you do not define the field values, a record will be generated by the default values.
6
EPICS EPICS Seminar 2009, RRCAT, Indor Masanori Satoh, KEK Linac, Jan. 2009. Record Type ai/ ao: Analogue input/ output bi/ bo: Binary input/ oputput mbbi/ mbbo: Multi-bit binary input/ output calc/ calcout: calculation waveform: waveform fanout: fanout …
7
EPICS EPICS Seminar 2009, RRCAT, Indor Masanori Satoh, KEK Linac, Jan. 2009. Simple Record record(ai, “myAIRecord”) { field(DESC, “sample record”) field(SCAN, “1 second”) field(DTYP, “Soft”) field(VAL, “0.1”) field(INP, “myCalcRecod PP MS”) } All record types have DESC, SCAN,DTYP, VAL, etc
8
EPICS EPICS Seminar 2009, RRCAT, Indor Masanori Satoh, KEK Linac, Jan. 2009. Simple Record (cont’d) field(DESC, “sample record”) # Record Description field(SCAN, “1 second”) # SCAN: Record Process Timing # Periodic/IO Intr/Event/Soft field(DTYP, “Soft”) # DTYPE: Device Type field(VAL, “0.1”) # VAL: Initial Value field(INP, “myCalcRecod PP MS”) # INP: Data source # depends on DTYP
9
EPICS EPICS Seminar 2009, RRCAT, Indor Masanori Satoh, KEK Linac, Jan. 2009. What’s VDCT : Visual Database Configuration Tool It began as a project funded by the Swiss Light Source developed by Cosylab (http://www.cosylab.com). Recent development has been funded by the APS, Diamond and the SNS. The code development is being done by Cosylab. (open source license) Visual Tool for database configuration Java–based application: It’s executable on many environments. (Linux, Windows, etc ) Useful tools w/ GUI. Easy to manage the complex database file.
10
EPICS EPICS Seminar 2009, RRCAT, Indor Masanori Satoh, KEK Linac, Jan. 2009. VDCT GUI Example
11
EPICS EPICS Seminar 2009, RRCAT, Indor Masanori Satoh, KEK Linac, Jan. 2009. CapFast/EPICS
12
EPICS EPICS Seminar 2009, RRCAT, Indor Masanori Satoh, KEK Linac, Jan. 2009. /xxxApp/src files EPICS Application name: myExample dbd/myExample.dbd: Record/ Device definition by EPICS base Record types, device support options, choice menus, and other configuration options are defined in Database Definition files (.dbd). During the IOC boot process, one or more.dbd files are loaded.
13
EPICS EPICS Seminar 2009, RRCAT, Indor Masanori Satoh, KEK Linac, Jan. 2009. xxxApp/xxx/Db/Makefile Database should be described in Makefile DB += xxx.db After type “make”, xxx.db will be copied to /db. For many same type of devices, it is convenient for you to use template and substitution files. Templatefile : yyy.template record(ai,”$(USER):aiExample$(NO)”){… } Corresponding substitution : yyy.substitutions file yyy.template { {USER=“mrk”,NO=“1”} {USER=“mrk”,NO=“2”} }
14
EPICS EPICS Seminar 2009, RRCAT, Indor Masanori Satoh, KEK Linac, Jan. 2009. Template example userHost.substitutions # Example substitutions file file "db/dbExample1.db" { { user = "masanoriHost" } } file db/dbExample2.db { pattern { user, no, scan } { "masanoriHost", 1, "1 second" } { "masanoriHost", 2, "2 second" } { "masanoriHost", 3, "5 second" } } dbExample2.db record(calc, "$(user):calcExample$(no)") { field(DESC, "Counter No. $(no)") field(SCAN,"$(scan)") field(FLNK, "$(user):aiExample$(no)") ….
15
EPICS EPICS Seminar 2009, RRCAT, Indor Masanori Satoh, KEK Linac, Jan. 2009. iocBoot/iocxxx You can use the script “st.cmd” to start iocsh. The commands to load database: dbLoadRecords dbLoadTemplete A vxWorks st.cmd file looks like < cdCommands cd appbinld < iocCore ld < xxxLib cd startup dbLoadDatabase(“../../dbd/xxxApp.dbd”) dbLoadRecords(“../../db/xxx.db”,”user=mrk”) dbLoadRecords(“../../db/yyy.db”,”user=bob”) dbLoadRecords(“../../db/zzz.db”,”user=JO”) dbLoadTemplate(“../../db/templte_file_name”) iocInit
16
EPICS EPICS Seminar 2009, RRCAT, Indor Masanori Satoh, KEK Linac, Jan. 2009. How to Get VDCT Go “cosylab Visual DCT Web page” http://www.cosylab.com/solutions/particle_accelerators/Visual DCT/ Then download Latest Version: 2.5.1271 *.zip file VisualDCT.jar, VisualDCT-src-2.5.1271.jar, doc folder, runScript java -cp VisualDCT.jar - DEPICS_DB_INCLUDE_PATH=$EPICS_DB_INCLUDE_PATH com.cosylab.vdct.VisualDCT $* In EPICS training CD, you can find it. /opt/epics/extensions/src/VDCT/2.5.1271
17
EPICS EPICS Seminar 2009, RRCAT, Indor Masanori Satoh, KEK Linac, Jan. 2009. Getting started: *.db file configuration w/ VDCT To Start up VDCT You can use runScript /opt/epics/extensions/src/VDCT/2.5.1271 *.dbd file in xxxApp/dbd directoory (or use vdct xxxApp/dbd/xxxApp.dbd)
18
EPICS EPICS Seminar 2009, RRCAT, Indor Masanori Satoh, KEK Linac, Jan. 2009. VDCT Command Option Options: --dbd-file if this command is followed by the name of a.dbd file, the.dbd file is loaded before database is generated --enable-global-macros enables global macro evaluation --disable-global-macros disable global macro evaluation --enable-capfast enable production of hierarhical names like CapFast --disable-capfast disable production of hierarhical names like CapFast
19
EPICS EPICS Seminar 2009, RRCAT, Indor Masanori Satoh, KEK Linac, Jan. 2009. VDCT Environment Variables -DVDCT_DIR= VDCT_DIR: Default working directory -DVDCT_CONFIG_DIR= VDCT_CONFIG_DIR: Default working directory for plugin -DEPICS_DB_INCLUDE_PATH= EPICS_DB_INCLUDE_PATH: Database directory e.g.): java -cp VisualDCT.jar com.cosylab.vdct.VisualDCT - DVDCT_CONFIG_DIR=/users/devl/config/vdct test.dbd test.db
20
EPICS EPICS Seminar 2009, RRCAT, Indor Masanori Satoh, KEK Linac, Jan. 2009. Example: Main Window of Visual DCT
21
EPICS EPICS Seminar 2009, RRCAT, Indor Masanori Satoh, KEK Linac, Jan. 2009. Example: Keyboard shortcuts Zoom InShift + Right OutShift + Left SelectionShift + Space Move UpCtrl + Up DownCtrl + Down LeftCtrl + Left RightCtrl + Right
22
EPICS EPICS Seminar 2009, RRCAT, Indor Masanori Satoh, KEK Linac, Jan. 2009. Example: Record creation On workspace, click right button Select “new records…” Or, Double click right button
23
EPICS EPICS Seminar 2009, RRCAT, Indor Masanori Satoh, KEK Linac, Jan. 2009. Example: Record creation (cont’d) Select the Record type Define the Record name e.g.) 「 $(user):ai 」 If name already exists it will report it
24
EPICS EPICS Seminar 2009, RRCAT, Indor Masanori Satoh, KEK Linac, Jan. 2009. Example: Select Multiple Records Way to select multiple records Left button : Select first record Ctrl +Left button : Select Multiple records Drag left button : Select Multiple records
25
EPICS EPICS Seminar 2009, RRCAT, Indor Masanori Satoh, KEK Linac, Jan. 2009. Example: Move Record Move record Select record Drag left button and move to any location.
26
EPICS EPICS Seminar 2009, RRCAT, Indor Masanori Satoh, KEK Linac, Jan. 2009. Example: Move Multiple Record Move Multiple Record Select mutiple records Drag left button and move to …
27
EPICS EPICS Seminar 2009, RRCAT, Indor Masanori Satoh, KEK Linac, Jan. 2009. Example: Link (FLNK)
28
EPICS EPICS Seminar 2009, RRCAT, Indor Masanori Satoh, KEK Linac, Jan. 2009. Example: Link (FLNK)
29
EPICS EPICS Seminar 2009, RRCAT, Indor Masanori Satoh, KEK Linac, Jan. 2009. Example: Link (INLINK)
30
EPICS EPICS Seminar 2009, RRCAT, Indor Masanori Satoh, KEK Linac, Jan. 2009. Example: Alarm Level You can define the Field related to alarm level. HIHI, HIGH, LOW, LOLO, e.g.) field(HIHI, "8") field(HIGH, "6") field(LOW, "4") field(LOLO, "2") field(HHSV, "MAJOR") field(HSV, "MINOR") field(LSV, "MINOR") field(LLSV, "MAJOR") e.g.) http://www.aps.anl.gov/epics/extensions/alh/index.php
31
EPICS EPICS Seminar 2009, RRCAT, Indor Masanori Satoh, KEK Linac, Jan. 2009. Example: Edit the Field Variables Inspector Windows Show/Edit Record Field Setting Double click Active Double click speed can be adjusted: ”View -> settings... ->Visual” menu Object combo box Show record name You can change the selected record. Property table Show/ Edit: Field name and value Select display order (Group/ ア Alphabetical/DBD definition Order ) Label: ”Value” and ”Name” are reversed!!! Comment text area Comment for Record Status bar Simple description for field functionality
32
EPICS EPICS Seminar 2009, RRCAT, Indor Masanori Satoh, KEK Linac, Jan. 2009.
33
EPICS EPICS Seminar 2009, RRCAT, Indor Masanori Satoh, KEK Linac, Jan. 2009.
34
EPICS EPICS Seminar 2009, RRCAT, Indor Masanori Satoh, KEK Linac, Jan. 2009. Masanori Satoh/ KEK, Jan. 27-30, 2009 for EPICS seminar at RRCAT, Indore Database Configuration tools Text editor and VDCT: Hands-on Instructions
35
EPICS EPICS Seminar 2009, RRCAT, Indor Masanori Satoh, KEK Linac, Jan. 2009. Hands-on (0): Preparation for practice Set environment variable: USER=Pcname export USER (*) PCname: your own PC name Build EPICS application: cd mkdir app cd app makeBaseApp.pl –t example myExample makeBaseApp.pl –i –t example myExample
36
EPICS EPICS Seminar 2009, RRCAT, Indor Masanori Satoh, KEK Linac, Jan. 2009. Hands-on (1) Start VDCT cd /opt/epics/extensions/src/VDCT/2.5.1271 ./runScript Select dbd file xxx/app/dbd/myExample.dbd Check the basic functionality Create a new Record Make the link
37
EPICS EPICS Seminar 2009, RRCAT, Indor Masanori Satoh, KEK Linac, Jan. 2009. Hands-on (2) Create two ai records and a calc record: $(user):aitest1, $(user):aitest2, $(user):calctest1 Modify them so that $(user):aitest2 returns the value of “2x+3x”. (x: value of $(user):aitest1). Save file as xxx/app/myExampleApp/Db/dbExample3.db At the same place (under Db directory), modify the Makefile so as to add dbExample3.db. Modify the xxx/app/myExampleApp/Db/userHost.substitutions. e.g.) add the lines like file "db/dbExample3.db"{ { user = “PCname"}(*) Pcname is your own PC name. } Type “make” under myExampleApp directory. Check app/db/*.db files (Can you find dbExample3.db?) Example of result: caput PCname:aitest1 10 caget PCname:aitest2 50
38
EPICS EPICS Seminar 2009, RRCAT, Indor Masanori Satoh, KEK Linac, Jan. 2009. Hands-on (3) Create a record which counts up from 0 to 20, repeatedly, in dbExample3.db. Edit Alarm level HIHI: 18 HIGH: 15 LOW: 5 LOLO:2 Check it by “camonitor” command. Hints: See dbExample1.db file.
39
EPICS EPICS Seminar 2009, RRCAT, Indor Masanori Satoh, KEK Linac, Jan. 2009. Hands-on (4) Try to create a Fibonacci progression record in dbExample3.db. Fibonacci progression can be expressed by: F 0 =0, F 1 =1, F n+2 =F n +F n+1 e.g.) 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, … Hints: Use calc record, ai record
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.