Difference: EventBuilderRunControl (1 vs. 9)

Revision 9
08 Apr 2010 - Main.SergeyYurevich
Line: 1 to 1
 
META TOPICPARENT name="EventBuilder"

Run Control of Multiple Event Builders

Line: 60 to 60
 
  • Error: /home/scs/ebctrl/ioc/lib/linux-x86_64/libhadaq.a(worker.o): In function `Worker_addStatistic': /home/hadaq/yurevich/dev/hadaq/worker.c:366: undefined reference to `SYSLOG_syslog' collect2: ld returned 1 exit status
  • Reason: libcompat.a is missing in ioc/lib/linux-x86_64/.
Added:
>
>

Messages after execution of IOC

  • In case of several IOCs running on the same host you can see the following messages: (EPICS_CA_ADDR_LIST=192.168.101.255)
       cas warning: Configured TCP port was unavailable.
       cas warning: Using dynamically assigned TCP port 45352,
       cas warning: but now two or more servers share the same UDP port.
       cas warning: Depending on your IP kernel this server may not be
       cas warning: reachable with UDP unicast (a host's IP in EPICS_CA_ADDR_LIST)
       iocRun: All initialization complete
  • Solution: For the newer versions of base this is not a problem. You should not set unicast IP on CA Client (MEDM) side for EPICS_CA_ADDR_LIST variable. You must set EPICS_CA_ADDR_LIST to multicast or broadcast like EPICS_CA_ADDR_LIST=192.168.101.255
 

Requirements for Parallel Event Building

  • Identical RUN Id for all Event Builders.
Line: 96 to 109
  GUI is implemented using MEDM. Three adl files can be found in the repository ebctrl under the directory mon. GUI displays all the relevant information concerning the performance of the EB and
NetMem
. The status of all the EBs is also shown.

How to execute:
Added:
>
>
  • export EPICS_CA_ADDR_LIST=192.168.101.255
  • export EPICS_CA_AUTO_ADDR_LIST=NO
 
  • For many Event Builders: medm -x -macro "SUBSYSNUM=40" eballctrl.adl
  • For one Event Builder: medm -x -macro "EB=01,SUBSYSNUM=20" ebctrl.adl
Line: 108 to 123
 
  • NetMem
    MEDM pannel:
    EB MEDM pannel
Changed:
<
<
-- SergeyYurevich - 26 Mar 2010
>
>
-- SergeyYurevich - 08 Apr 2010
 

META FILEATTACHMENT attr="" comment="IOC master/slave scheme" date="1216043246" name="ebioc_crop.png" path="ebioc_crop.png" size="31712" user="SergeyYurevich" version="1.1"
META FILEATTACHMENT attr="" comment="general pannel (MEDM)" date="1216059063" name="evtbuildall_mon.png" path="evtbuildall_mon.png" size="14441" user="SergeyYurevich" version="1.1"
Revision 8
06 Apr 2010 - Main.SergeyYurevich
Line: 1 to 1
 
META TOPICPARENT name="EventBuilder"

Run Control of Multiple Event Builders

Line: 40 to 40
 
  • make

How to execute:
Added:
>
>
  • First open permissions to the shared memory: chmod 775 /dev/shm/*.shm
 
  • cd iocBoot/iocebctrl
  • ../../bin/linux-x86/ebctrl st.cmd
Line: 92 to 93
 

GUI

Changed:
<
<
GUI is implemented using MEDM. Three adl files can be found in the repository ebctrl under the directory mon. GUI displays all the relevant information concerning the performance of the EB and
NetMem
. The status of all the EBs is also shown.
>
>
GUI is implemented using MEDM. Three adl files can be found in the repository ebctrl under the directory mon. GUI displays all the relevant information concerning the performance of the EB and
NetMem
. The status of all the EBs is also shown.

How to execute:
  • For many Event Builders: medm -x -macro "SUBSYSNUM=40" eballctrl.adl
  • For one Event Builder: medm -x -macro "EB=01,SUBSYSNUM=20" ebctrl.adl
 

  • general MEDM pannel: three event builders are active.
    EB MEDM pannel
Revision 7
26 Mar 2010 - Main.SergeyYurevich
Line: 1 to 1
 
META TOPICPARENT name="EventBuilder"

Run Control of Multiple Event Builders

Line: 49 to 49
 

Possible problems

Added:
>
>

Compilation of Base fails

  • Error: readline/readline.h: No such file or directory
  • Reason: libreadline5-dev is missing, install with apt-get
 

Compilation of IOC fails

  • Error: /home/scs/ebctrl/ioc/lib/linux-x86_64/libhadaq.a(worker.o): In function `Worker_addStatistic': /home/hadaq/yurevich/dev/hadaq/worker.c:366: undefined reference to `SYSLOG_syslog' collect2: ld returned 1 exit status
Line: 99 to 104
 
  • NetMem
    MEDM pannel:
    EB MEDM pannel
Changed:
<
<
-- SergeyYurevich - 07 Apr 2008
>
>
-- SergeyYurevich - 26 Mar 2010
 

META FILEATTACHMENT attr="" comment="IOC master/slave scheme" date="1216043246" name="ebioc_crop.png" path="ebioc_crop.png" size="31712" user="SergeyYurevich" version="1.1"
META FILEATTACHMENT attr="" comment="general pannel (MEDM)" date="1216059063" name="evtbuildall_mon.png" path="evtbuildall_mon.png" size="14441" user="SergeyYurevich" version="1.1"
Revision 6
07 Apr 2009 - Main.SergeyYurevich
Line: 1 to 1
 
META TOPICPARENT name="EventBuilder"
Changed:
<
<

Run Control of Multiple Event Builders

>
>

Run Control of Multiple Event Builders

 
Changed:
<
<

Introduction

>
>

Introduction

 

The aim of the Run Control of the Event Builders is to have a central control and monitoring system for all Event Builders. The Run Control system was implemented using EPICS software tools. The GUI was made using MEDM.
Changed:
<
<

Installation

>
>

Installation

 

  • CVS Root:
    hadaq@lxi003.gsi.de
    :/misc/hadesprojects/daq/cvsroot
  • CVS Repository: ebctrl
Changed:
<
<
ebctrl consists of two directories:
>
>
ebctrl consists of two directories:
 
  • ioc - the IOC software itself
  • mon - contains the adl files for MEDM GUI
Changed:
<
<
Installation guide:
>
>
Everything below is written for a given linux-x86 architecture. If your host has 64-bit architecture you should replace linux-x86 by linux-x86_64.

Installation guide:
 
  • login to SCS account
  • EPICS Base must be installed on the machine!
  • check if the following settings are done:
    • export EPICS_HOST_ARCH=linux-x86
    • export EPICS_BASE=/home/scs/base-3.14.9
    • export PATH=$EPICS_BASE/bin/linux-x86:$PATH
Changed:
<
<
  • take ebctrl module from CVS
>
>
  • checkout ebctrl module from CVS
 
  • cd ioc
  • configure IOC as master/slave
    • edit line epicsEnvSet(EBTYPE,"slave") in iocBoot/iocebctrl/st.cmd
Line: 33 to 36
 
    • dbLoadRecords("db/evtbuild.db","eb=eb01")
    • dbLoadRecords("db/netmem.db","eb=eb01")
    • dbLoadRecords("db/genrunid.db","eb=eb01")
Added:
>
>
  • make sure that up-to-date versions of libcompat.a and libhadaq.a are placed in ioc/lib/linux-x86/.
 
  • make
Changed:
<
<
How to execute:
>
>
How to execute:
 
  • cd iocBoot/iocebctrl
  • ../../bin/linux-x86/ebctrl st.cmd
Changed:
<
<
How to execute in screen:
>
>
How to execute in screen:
 
  • cd iocBoot/iocebctrl
  • screen -dmS ioc ../../bin/linux-x86/ebctrl st.cmd
Changed:
<
<

Requirements for Parallel Event Building

>
>

Possible problems

Compilation of IOC fails

  • Error: /home/scs/ebctrl/ioc/lib/linux-x86_64/libhadaq.a(worker.o): In function `Worker_addStatistic': /home/hadaq/yurevich/dev/hadaq/worker.c:366: undefined reference to `SYSLOG_syslog' collect2: ld returned 1 exit status
  • Reason: libcompat.a is missing in ioc/lib/linux-x86_64/.

Requirements for Parallel Event Building

 

  • Identical RUN Id for all Event Builders.
    • This is achieved by a master IOC which generates and distributes RUN Id to all Event Builders via slave IOCs
Line: 55 to 66
  %M : minute (00-59), %S : second (00-59)
Changed:
<
<

Description

>
>

Description

 

IOC has three data bases located in ebctrlApp/Db/
  • evtbuild.db - records for EB Process Variables
Line: 67 to 78
 
    • ebctrlApp/src/genrunid.c - subroutine to generate RUN Id

IOC talks to Event Builder and
NetMem
via shared memory segments.
Changed:
<
<
To make this interprocess communication possible I used functionality provided by libhadaq.a library. Up-to-date version of the library must be located in lib/linux-x86/libhadaq.a.
>
>
To make this interprocess communication possible I used functionality provided by libhadaq.a library. Up-to-date version of the library must be located in lib/linux-x86/libhadaq.a. Additionally libcompat.a must be also located in lib/linux-x86/ since libhadaq.a depends on libcompat.a.
 

A graphical representation of a composition of the EPICS databases is given in the link:ebctrl_vdct.pdf

  • The following picture shows all the relations between different components of the Control and Monitoring system.
IOC master/slave scheme
Changed:
<
<

GUI

>
>

GUI

 

GUI is implemented using MEDM. Three adl files can be found in the repository ebctrl under the directory mon. GUI displays all the relevant information concerning the performance of the EB and
NetMem
. The status of all the EBs is also shown.
Line: 88 to 99
 
  • NetMem
    MEDM pannel:
    EB MEDM pannel
Changed:
<
<
-- SergeyYurevich - 25 Jul 2008
>
>
-- SergeyYurevich - 07 Apr 2008
 

META FILEATTACHMENT attr="" comment="IOC master/slave scheme" date="1216043246" name="ebioc_crop.png" path="ebioc_crop.png" size="31712" user="SergeyYurevich" version="1.1"
META FILEATTACHMENT attr="" comment="general pannel (MEDM)" date="1216059063" name="evtbuildall_mon.png" path="evtbuildall_mon.png" size="14441" user="SergeyYurevich" version="1.1"
Revision 5
25 Jul 2008 - Main.SergeyYurevich
Line: 1 to 1
 
META TOPICPARENT name="EventBuilder"

Run Control of Multiple Event Builders

Line: 69 to 69
  IOC talks to Event Builder and
NetMem
via shared memory segments. To make this interprocess communication possible I used functionality provided by libhadaq.a library. Up-to-date version of the library must be located in lib/linux-x86/libhadaq.a.
Added:
>
>
A graphical representation of a composition of the EPICS databases is given in the link:ebctrl_vdct.pdf
 
  • The following picture shows all the relations between different components of the Control and Monitoring system.
IOC master/slave scheme
Line: 86 to 88
 
  • NetMem
    MEDM pannel:
    EB MEDM pannel
Changed:
<
<
-- SergeyYurevich - 22 Jul 2008
>
>
-- SergeyYurevich - 25 Jul 2008
 

META FILEATTACHMENT attr="" comment="IOC master/slave scheme" date="1216043246" name="ebioc_crop.png" path="ebioc_crop.png" size="31712" user="SergeyYurevich" version="1.1"
META FILEATTACHMENT attr="" comment="general pannel (MEDM)" date="1216059063" name="evtbuildall_mon.png" path="evtbuildall_mon.png" size="14441" user="SergeyYurevich" version="1.1"
META FILEATTACHMENT attr="" comment="EB MEDM pannel" date="1216059142" name="ebctrl100.png" path="ebctrl100.png" size="12276" user="SergeyYurevich" version="1.1"
META FILEATTACHMENT attr="" comment="NetMem MEDM pannel" date="1216061404" name="netmem100.png" path="netmem100.png" size="14687" user="SergeyYurevich" version="1.1"
Added:
>
>
META FILEATTACHMENT attr="" comment="graphical representation of databases done with Visual DCT" date="1216995748" name="ebctrl_vdct.pdf" path="ebctrl_vdct.pdf" size="27374" user="SergeyYurevich" version="1.1"
Revision 4
22 Jul 2008 - Main.SergeyYurevich
Line: 1 to 1
 
META TOPICPARENT name="EventBuilder"

Run Control of Multiple Event Builders

Line: 29 to 29
 
  • cd ioc
  • configure IOC as master/slave
    • edit line epicsEnvSet(EBTYPE,"slave") in iocBoot/iocebctrl/st.cmd
Added:
>
>
  • In iocBoot/iocebctrl/st.cmd give proper Event Builder number (edit second argument) for the data bases:
    • dbLoadRecords("db/evtbuild.db","eb=eb01")
    • dbLoadRecords("db/netmem.db","eb=eb01")
    • dbLoadRecords("db/genrunid.db","eb=eb01")
 
  • make

How to execute:
Line: 56 to 60
  IOC has three data bases located in ebctrlApp/Db/
  • evtbuild.db - records for EB Process Variables
    • ebctrlApp/src/evtbuild.c - subroutine to access EB PVs
Added:
>
>
    • ebctrlApp/src/writerunid.c - subroutine to write RUN Id to shared memory
 
  • netmem.db - records for
    NetMem
    PVs
    • ebctrlApp/src/netmem.c - subroutine to access
      NetMem
      PVs
  • genrunid.db - record for generated RUN Id
Line: 81 to 86
 
  • NetMem
    MEDM pannel:
    EB MEDM pannel
Changed:
<
<
-- SergeyYurevich - 14 Jul 2008
>
>
-- SergeyYurevich - 22 Jul 2008
 

Revision 3
17 Jul 2008 - Main.SergeyYurevich
Line: 1 to 1
 
META TOPICPARENT name="EventBuilder"

Run Control of Multiple Event Builders

Line: 46 to 46
 
    • Master IOC generates RUN Id from the time in seconds since the Epoch minus offset (subtraction of the offset is needed to fit the RUN Id to INT)
  • Synchronization of the Event Builders.
    • Synchronization is achieved again by the RUN Id: each time the RUN Id changes the Event Builder closes the current file and opens new file with newly generated RUN Id. File names consist of the time extracted from the RUN Id and an Event Builder number (the only different part of the file name between the Event Builders).
Added:
>
>
             File name format: "%y%j%H%M%S" where  %y : year (00-99), %j : day of year (001-366), %H : hour (00-23),
                                                   %M : minute (00-59), %S : second (00-59)
 

Description

Line: 69 to 73
  The status of all the EBs is also shown.

  • general MEDM pannel: three event builders are active.
Changed:
<
<
EB MEDM pannel
>
>
EB MEDM pannel
 

  • EB MEDM pannel: cartesian plot shows fill levels of the opened buffers for EB and
    NetMem

    EB MEDM pannel

  • NetMem
    MEDM pannel:
Changed:
<
<
EB MEDM pannel
>
>
EB MEDM pannel
 

-- SergeyYurevich - 14 Jul 2008
Revision 2
14 Jul 2008 - Main.SergeyYurevich
Line: 1 to 1
 
META TOPICPARENT name="EventBuilder"

Run Control of Multiple Event Builders

Line: 11 to 11
 

Installation

Changed:
<
<
>
>
  • CVS Root:
    hadaq@lxi003.gsi.de
    :/misc/hadesprojects/daq/cvsroot
 
  • CVS Repository: ebctrl

ebctrl consists of two directories:
Line: 49 to 49
 

Description

Added:
>
>
IOC has three data bases located in ebctrlApp/Db/
  • evtbuild.db - records for EB Process Variables
    • ebctrlApp/src/evtbuild.c - subroutine to access EB PVs
  • netmem.db - records for
    NetMem
    PVs
    • ebctrlApp/src/netmem.c - subroutine to access
      NetMem
      PVs
  • genrunid.db - record for generated RUN Id
    • ebctrlApp/src/genrunid.c - subroutine to generate RUN Id
 
Added:
>
>
IOC talks to Event Builder and
NetMem
via shared memory segments. To make this interprocess communication possible I used functionality provided by libhadaq.a library. Up-to-date version of the library must be located in lib/linux-x86/libhadaq.a.
 
Added:
>
>
  • The following picture shows all the relations between different components of the Control and Monitoring system.
IOC master/slave scheme

GUI

GUI is implemented using MEDM. Three adl files can be found in the repository ebctrl under the directory mon. GUI displays all the relevant information concerning the performance of the EB and
NetMem
. The status of all the EBs is also shown.

  • general MEDM pannel: three event builders are active.
    EB MEDM pannel

  • EB MEDM pannel: cartesian plot shows fill levels of the opened buffers for EB and
    NetMem

    EB MEDM pannel

  • NetMem
    MEDM pannel:
    EB MEDM pannel
 

-- SergeyYurevich - 14 Jul 2008
Changed:
<
<
  • IOC master/slave scheme:
    IOC master/slave scheme
>
>
 

META FILEATTACHMENT attr="" comment="IOC master/slave scheme" date="1216043246" name="ebioc_crop.png" path="ebioc_crop.png" size="31712" user="SergeyYurevich" version="1.1"
Added:
>
>
META FILEATTACHMENT attr="" comment="general pannel (MEDM)" date="1216059063" name="evtbuildall_mon.png" path="evtbuildall_mon.png" size="14441" user="SergeyYurevich" version="1.1"
META FILEATTACHMENT attr="" comment="EB MEDM pannel" date="1216059142" name="ebctrl100.png" path="ebctrl100.png" size="12276" user="SergeyYurevich" version="1.1"
META FILEATTACHMENT attr="" comment="NetMem MEDM pannel" date="1216061404" name="netmem100.png" path="netmem100.png" size="14687" user="SergeyYurevich" version="1.1"
 
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Hades Wiki? Send feedback
Imprint (in German)
Privacy Policy (in German)