[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