[Halld-online] DAQ-to-EPICS interface from Glasgow

Hovanes Egiyan hovanes.egiyan at gmail.com
Mon Feb 19 16:21:38 EST 2018


Hi Sergey and David,

I started a separate ActiveMQ broker instance on gluon26 (gluonjms) for 
interfacing DAQ and EPICS via ActiveMQ. It does not
have to be just CODA-DAQ interface, but it could be other GlueX 
components interface to EPICS as well, like trigger, monitoring,
or TAGM bias voltages etc. The port numbers are non-standard, the 
standard port numbers are used by the ActiveMQ broker
instance that I only want to be used by the EPICS alarm system and not 
be affected by the DAQ-to-EPICS or other interfaces.
The port numbers are :

WebConsole	:	8171
OpenWire	:	61626
AMQP		:	5682
STOMP		:	61623

It is important that you use these port numbers since topics on the 
broker with the default number may get deleted.

Again, this broker is to make use of EPICS support module developed by 
Ken Livingston which was tested in Hall B
and worked well (see https://clasweb.jlab.org/wiki/index.php/AmqApp). If 
you need to pass values of the variables to
EPICS from you application you should:

a) create a topic on this broker (or simply let me know the topic name 
you want),

b) decide on the variable keys/types and their names that you want to 
send, and setup a file like the one described in 
https://clasweb.jlab.org/wiki/index.php/AmqApp#Specifying_the_variables,

c) let me know about the ActiveMQ topic name and keys/types in the text 
file so that I setup an EPICS IOC for it (or modify an existing one),

d) once the EPICS IOC is setup (it may take some time), start sending 
the variables to the broker. An example of how to do that using Python 
STOMP is shown below.

e) get the EPICS variable names from me and monitor them using your 
favorite methods.

This is for applications that do not require a high degree of 
reliability where we can bypass development of a
proper dedicated EPICS support and use messaging to periodically send 
value updates and assuming the IOC will
pick them up.

We are just starting to use this module in Hall D, so glitches are 
possible, so please be patient.

Best,
     Hovanes.


>>> import sys,time,stomp,json
>>> conn = stomp.Connection([('gluonjms',61623)])
>>> conn.start()
>>> conn.connect()
>>> Dict_Message = dict()
>>> Dict_Message["LiveTime"] = 0.12
>>> conn.send(json.dumps(Dict_Message),destination='/topic/DAQ_2_EPICS',headers={'transformation' : 'jms-map-xml'}, ack='auto')







More information about the Halld-online mailing list