Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Panel

When booting an ioc for the first time follow steps 1-8. To boot an existing ioc proceed to step 11.

Step 1:
Get ip address for your EPICS IOC by filling out the Contros Accelerator Facility IP Request Form  Controls Group IP Request Form and submitting it to Ken Brobeck. Specify the subnet for your ioc, which woudl be LCLSDEV for a development ioc or LCLSCA for a production ioc. Please note that the ioc nodename submitted MUST follow the LCLS Naming Conventions.

Step 2:
Once you have an ip address for your node, send email to SCCS to request that your node be added to the NIS group lcls-rtems. This will provide write permission on the NFS disk to your ioc. Click here for more details.

*Step 3:*If your processor has a serial port, request a terminal server port assignment from Charlie Granieri if you do not already have one. Otherwise, proceed to step 5. You can obtain a DIGI to MVME6100 serial cable from Charlie, as well. Click here for terminal server and cable information. Note, that if your terminal server is a DIGI the serial cable from a DIGI port to a MVME6100/MVME5100/MVME3100 is color coded green.

Step 4:
If your procesor processor has a serial port connected to a server, iocConsole will be used to remotly connect to your ioc from a linux host. To use iocConsole, you will need to modify the cvs file

FacilityCVS Path
Developmentepics/iocCommon/All/Dev/screeniocs
for development
LCLSepics/iocCommon/All/
Prod
lcls/screeniocs
for lcls production
FACET-IIepics/iocCommon/All/
Prod
facet/screeniocs
_facet  for facet productionepics

Test-Facility 

epcis/iocCommon/All/
Acctest/screeniocs  for test facility (xta and asta)adding the information for your new node and terminal server port connection.
acctest


Step 5:
Setup your processor NVRAM Make sure that your processor has a SLAC ID sticker. If not, please contact Kristi Luchini.

Step 6:
Create a directory for any files that will be written, for example, save and restore files witten written for your ioc by ChannelWatcher, and the screenlog:First, log onto the appropriate host:
For development:

ssh laci@lcls-dev2
For production : ssh laci@lcls-builder

cd $IOC_DATA
mkdir <ioc nodename>
cd <ioc nodename>
mkdir restore iocInfo autosave

For production contact Ken Brobeck and request that the controls infrastructure for a new IOC.  You will need the following:

$EPICS_IOCS/<ioc,cpu> 

$IOC_DATA/<ioc,cpu> 

For Soft IOCs: Autostartup scripts in on <faclity>-daemon1

For RTEMS IOCs and LinuxRT CPUs send Ken Brobeck or Arjun Shetty information to boot your CPU via DHCP. 

Step 7:
Create a ChannelWatcher configuration file for your ioc in $TOOLS/ChannelWatcher/config. The filename format is <ioc nodename in uppercase>.sav. All subsystems have their own ChannelWatcher monitoring process. So either create a new file, Master.XX, where XX is your 2-char subsystem alias defined in the LCLS Naming Conventions or add your new ioc configuration file to the appropriate Master file.

Step 8:

Follow the cram instructions for releasing an EPICS IOC Application from development to production.

Step 9:

Create a boot directory with the nodename of your ioc, in $EPICS_IOC/<nodename>. Within this new directory create the file startup.cmd. This file should contain the following for a development ioc (see: ioc-li21-mg01/startup.cmd). For a production ioc, please contact Jingchen Zhou. Please note that if symbolic links are used during boot, use relative links.

# Setup environment variables
< /boot/g/lcls/epics/iocCommon/All/Dev/pre_st.cmd

# Load subsystem startup file
chdir("/boot/g/lcls/epics/iocTop/<subsystem>/<subsystem tagged version>/iocBoot/<nodename>")
< st.cmd

# Save diagnostic information
< /boot/g/lcls/epics/iocCommon/All/Dev/post_st.cmd

Next, if you wish to have a screenlog file, whichs writes the output of cpu serial port to the file $IOC_DATA/<nodename>/screenlog.0, add the file screenrc to the directory $EPICS_IOCS/<nodename>. The file screenrc should contain the following basic iocConsole options (see ioc-li21-mg01/screenrc):

deflog on
logstamp on
defscrollback 10000

Step 9:
Follow instructions for Releasing an EPICS IOC Application.

Step 10:
For prouduction iocs only you will need to pdate LCLSHOME Network Panel, with your new ioc. Contact Sonya Hoobler so that she can update the IOCManager application, Judy Rock so that she can update the LCLSHOME Alarms and Bob Hall so that he can add your iocAdmin PV list to the ChannelArchiver

Step 11:
For production iocs only you will need to update LCLSHOME Timing Panel, if your ioc has a EVR module. Contact Stephanie Allison for further details.

the boot links  and startup scripts for your IOC and CPU for LinuxRT in $EPICS_IOCS/<ioc,cpu>.  Template starutp scripts are located in $EPICS_IOCS/template

for LinuxRT IOCs and CPUs

for RTEMS IOCs

for Linux IOCs                              

Step 10:

Add your  IOC to the screeniocs file and commit your changes to CVS. The screeniocs file is used by iocConsole to connect to the serial port of your IOC. The information that  you will need is the nodename, which is referred to as the "alias", then terminal server node name and the terminal sever port connected to your device. Table 3 below provides an example of a screeniocs entry for an RTEMS ioc.

                                                                    Table 3

AliasTerminal ServerPort No.host screen is runComment 
ioc-b15-mg01ts-b15-mg012002lcls-dev1 # b15-123-0427-S0 (botttom slot)

               

Table 4 below lists the CVS path to the screeniocs file for each facility.

       Table 4

FacilityCVS path to screeniocs
Devepics/iocCommon/All/Dev
LCLSepics/iocCommon/All/lcls
LCLS-IIepics/iocCommon/All/lcls
 FACET-II epics/iocCommon/All/facet
 TestFac epics/iocCommon/All/acctest


Step 11:

a)  Additional IOC Applications will need to be modified to include your IOC, Crate and any addition devices such as EVR or ACSW's .  In IOCManager add your ioc, crate and acsw if needed, to the appropriate facility database area file. In addition update the srcArchive file for that facility.  Commit changes to the code management system, tag and release to production, rebooting the necessary IOCs and alarm handlers.

  •  IOCManager
  •  AlarmsConfigs-ntwk
  •  AlarmConfigs-<subsystem> 
  • AlarmConfigs-evnt, if your IOC includes timing

b) The network and possibly timing display will need to be update to add your device.

                                                                  Table 5

FacilityCVS path to Network DisplayCVS path EDM Event Display  
Development

tools/edm/display/lcls/ntwk_dev_main.edl

-- OR ---

tools/edm/display/misc/lab_dev_main.edl

 tools/edm/display/misc_<area>_main.edl
LCLS

tools/edm/display/lcls/ntwk_<area>_main.edl

 tools/edm/display/misc_<area>_main.edl
 LCLS-IItools/edm/display/lcls2/ntwk_area>_main.edl  tools/edm/display/misc_<area>_main.edl
 FACET-IItools/edm/display/facet/ntwk_<area>_main.edl  tools/edm/display/misc_<area>_main.edl
 TestFac - ASTA

tools/edm/display/asta/asta/ntwk_asta_main.edl 

tools/edm/display/misc_<area>_main.edl 
 TestFac - XTAtools/edm/display/xta/ntwk_xt01_main.edl tools/edm/display/misc_<area>_main.edl


Step 12:
For production systems you will need to archive the required PVs for the IOCManager  and your subsystem application.  The IOCManager archived files will be found in the IOCManager/<tag_name>/IOCManager/archive/<nodename>.archive. This file is generated during the build from the substitutions file in IOCManagerApp/srcArchive/<nodename>.arsubstitutions

                                                                                                Table 6

FacilityArchive PV List
FACET-II

generate the archive file for your IOC application and copy the file to $IOC_DATA/<nodename>/archive/<nodename>.archive

Format:  PVNAME INTERAVAL  [ monitor/scan ]. The interval is in seconds. For monitor the interval is set to 1.

 LCLS,LCLS-II, TestFac,Dev send generated archive list to Patrick Pascual using the format above
Panel

Booting and existing ioc:

Step 12: Log onto 13:

Connect to the serial port on your IOC via iocConsole as follows:

iocConsole <nodename>

Boot your ioc or bring up the  appropriate facility home display (i.e. LCLSHOME, FACETHOME, LCLS2HOME, ASTAHOME or XTAHOME) and navigate to the Network Area display for your IOC.  your ioc via iocConsole, and boot your ioc or go to LCLSHOME, for development iocs select User Dev Display on the upper right. Navigate to the Dev Network and IOCs display. Select the button listing the nodename of your iocIOC, and select the IOC Reboot button or cycle the crate power, from the Power Off and Power On button.