LCLS PLC Development Getting Started
Description | CVS Repository | Reference Directory |
EPICS IOC Applcations | /afs/slac/g/lcls/epics/<version>/iocTop | |
EPICS Site | /afs/slac/g/lcls/epics/<version>/modules | |
EPICS Base | /afs/slac/g/lcls/epics/<version>/base | |
EPICS Extensions | /afs/slac/g/lcls/epics/<version>/extensions | |
EPICS IOC Boot | /afs/slac/g/lcls/epics/<version>/iocCommon | |
EPICS CPU Boot | /afs/slac/g/lcls/epics/<version>/cpuCommon |
Description | CVS Repository | Reference Directory |
EDM Configuration Files | tools/edm/config | /afs/slac/g/lcls/tools/edm/config |
EDM Displays | tools/edm/display | /afs/slac/g/lcls/tools/edm/display |
EDM Scripts | tools/edm/scripts | /afs/slac/g/lcls/tools/edm/script |
Alarm Handler Configuration Files | tools/alh | afs/slac/g/lcls/tools/alh/config |
Channel Watcher Configuration Files | tools/ChannelWatcher | afs/slac/g/lcls/tools/ChannelWatcher/config |
PLC Applications | plc | |
Firmware | firmware |
Note: PLC applications are generated on windows machines. See subsystem controls engineer for details
It is important to note that releasing software to the Development System during the 2007 run will affect the production system displays, standalone process restarts, and IOC's upon boot.
For plc's follow Step 1-4 only.
Step 1: General Instructions
Step 2: Modifying existing software in CVS:
Note: if a cross compiler does not exist for your source, for example plc ladder logic and firmware, skip item 4 below.
Step 3: Importing new software into CVS:
cvs import -m "Initial import of ..." epics/base <vendor_tag> <release_tag>
cvs import -m "Initial import of ..." epics/site/src/<package> <vendor_tag> <release_tag>
cvs import -m "Initial import of ..." epics/ioc/<subsystem> <vendor_tag> <release_tag>
EPICS IOC Example)
cvs import -m "Initial import of...." epics/ioc/Vacuum Vacuum Vacuum-R1-0-0
PLC Example)
cvs import -m "Initial import of...." plc/Water/ioc-in20-wa01 ioc-in20-wa01 ioc-in20-wa01-R1-0-0
Step 4: Commit your changes to CVS and Tag
EPICS IOC Applicaiton Example:
cvs tag Vacuum-R1-0-1
PLC Example:
cvs tag ioc-in20-wa01-R1-0-0
Step 5: CVS Tag your changes
For ioc common startup: cd /afs/slac/g/lcls/epics/iocCommon/<subsystem>/<nodename>
For ioc application: cd /nfs/slac/g/lcls/epics/iocTop/<subsystem>
For modules: cd /afs/slac/g/lcls/epics/modules/<module>
For epics base: cd /afs/slac/g/lcls/epics/base/base-<version>
Step 6: ChannelWatcher
Step 7: Follow instructions on[How-To Boot an EPICS ioc|LCLS How-To Boot an EPICS IOC]
Step 8: Backout out a Release
Step 9: Before Exporting Software to Production System
Check duplicate PV before exporting software to production system
for ALL iocs: use the dupePVs.bash iocname
Examples:
1) get usage
dupePVs.bash -h
2) check all iocs found in $IOC
dupePVs.bash
3) check all eioc's
dupePVs.bash eioc
4) check all iocs with mg in the name
dupePVs.bash mg
5) check all soft magnet IOCs
dupePVs.bash sioc-.*-mg01
Step 10: Exporting Software to Production System
When your EPICS IOC Application is ready for release to production, which means that you have completed the following;
You are ready to export your softwthe production host, opi00gtw03.
From lcls-prod02:
Note: replace the username "luchini" with your own unix username
For EPICS IOC applications:
Edit RELEASE file and replace path /afs/slac/g/lcls with /user/local/lcls/
Matlab Programs Released to Production:
Step 11: Export ChannelWatcher Config Files
(see the example below)