JLAB Data Acquisition Run Control System Jefferson Lab Vardan Gyurjyan Run-control history Eiffel C++ Java Run-control design requirements Extendable. distributed. Network Maintainable Integration with code thereplicating detector control the oldand run-control legacy Platform independent. functionality. software systems. Software centric. Flexible. Dynamic hierarchical. Synchronization via message passing. Real-time hardware actions and knowledge processing. Agent properties Autonomy. Proactive intelligence. Adaptive intelligence. Temporal continuity. Mobility. Rationality/benevolence. Multi - Agent approach Distributes computational resource. Accommodates legacy systems. Peer-to-peer model. Global coordination. High performance. FIPA- Foundation for Intelligent Physical Agents FIPA framework (http://www.fipa.org). FIPA is a specification NOT an implementation. Directory Facilitator (DF). Agent Management System (AMS). Agent Communication Channel (ACC) . Java Agent DEvelopment framework (JADE) -FIPA specification JAVA implementation (http://sharon.cselt.it/projects/jade). Run-Control Platform Architecture Run-Control Front-End Component Container JVM2 Thalamus Stemcell Java RMI vxWorks Coda_roc HV Stemcell Agent JVM1 Java DP Slow Control GUI Agent GUI Slow Control Configuration. Run configuration file. COOL file COOL format. AMS Hepatic DF Stemcell ROC 1 Communication Message can contain through any message arbitrarypassing. objects. Cortex ACC GUI Agent RMI Registery Java RMI NODE3 NODE 1 NODE 2 HV hardware COOL- Control Oriented Ontology Language Based on RDFS (Resource Definition Framework Schema). Control domain knowledge creation and reuse. Knowledge base sharing. Domain knowledge and operational knowledge separation. Domain knowledge analyses. Extensible via XML-namespaces and RDF modularization. XML or RDF? After all both are text constructs. Duplet vs. triplet to transfer human knowledge. XML Tag Resource Subject RDF Value Predicate Property Object Value COOL taxonomy Subjects/Objects Control Component Process Command Data Node Loop Option Predicates hasComponentName resultNotify hasCommandName hasDataContent hasNodename hasDataFile loopRepete hasComponentType acceptData hasCommandType hasDataType hasIP hasDataLimit loopDelay hasOption hasPriority acceptStatus hasExpectedOk hasDataCardinality isLocal hasEventLimit stopAt hasComponent hasProcess hasCommand hasTimeOut hasTimeStamp hasUser hasTokenInterval acceptsComponent Differentiate hasCheckWith hasLoop hasSemantics hasPasswd Splitmb hasScrupulosity hasSession isPartOf returnData hasRunType hasData inputdata hasCode hasNode hasFirst hasNext hasInput hasOutput Extending run-control state machine Any control process can be defined as a CODA component. Every component can have associated processes. Each process can be attached to the CODA standard state machine transition by means of isPartOf COOL predicate. COOL process is RDF subclass of the COOL component. Every process has associated COOL command. COOl command can have expectedOk predicate. Control A >> hasProcess >> B Process B >> isPartOf >> download Process B >> hasProcess >> B1 Process B >> hasProcess >> Bn B1 >> expectedOk >> Output String JAS data server description in COOL <rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:rdfs='http://www.w3.org/2000/01/rdf-schema#' xmlns:cool='http://ankaa.jlab.org/~gurjyan/COOL/cool#'> <cool:Control rdf:ID="JasDataServer"> <cool:hasCategory rdf:resource="http://ankaa.jlab.org/~gurjyan/COOL/cool#internal"/> <cool:hasDependency rdf:resource="#JDSDependency"/> <cool:hasProcess rdf:resource="#StartServer"/> <cool:hasProcess rdf:resource="#MonitorHistogram"/> </cool:Control> <cool:Dependency rdf:ID="JDSDependency"> <cool:hasHardware rdf:parseType="Resource"> <cool:hasIP>129.57.167.14</cool:hasIP> <cool:hasNodeName>clon10.jlab.org</cool:hasNodeName> </cool:hasHardware> <cool:hasLibrary rdf:parseType = "Resource"> <cool:hasName>jas.server.HistogramServer</cool:hasName> <cool:hasLocation>/usr/local/clas/jar/jas.jar</cool:hasLocation> <cool:hasName>hep.analyses.Histogram</cool:hasName> <cool:hasLocation>/usr/local/clas/jar/hep.jar</cool:hasLocation> </cool:hasLibrary> <cool:environment>JAVA</cool:environment> </cool:Dependency> <cool:Process rdf:ID="StartServer"> <cool:hasTransaction rdf:parseType="Resource" > <cool:operationType rdf:resource="http://ankaa.jlab.org/~gurjyan/COOL/cool#construct"/> <cool:fnactionName>HistogramServer</cool:functionName> <cool:hasInput rdf:parseType="Resource"> <cool:Type rdf:resource="http://ankaa.jlab.org/~gurjyan/COOL/cool#string"/> </cool:hasInput> </cool:hasTransaction> <cool:repeat>1</cool:repeat> </cool:Process> <cool:Process rdf:ID="MonitorHistogram"> <cool:hasTransaction rdf:parseType="Resource" > <cool:operationType rdf:resource="http://ankaa.jlab.org/~gurjyan/COOL/cool#construct"/> <cool:fnactionName>Histogram</cool:functionName> <cool:hasInput rdf:parseType="Resource"> <cool:Type rdf:resource="http://ankaa.jlab.org/~gurjyan/COOL/cool#string"/> </cool:hasInput> </cool:hasTransaction> <cool:hasTransaction rdf:parseType="Resource" > <cool:functionName>fill</cool:functionName> <cool:hasInput rdf:parseType="Resource"> <cool:Type rdf:resource="http://ankaa.jlab.org/~gurjyan/COOL/cool#long"/> </cool:hasInput> </cool:hasTransaction> <cool:hasCategory rdf:resource= "http://ankaa.jlab.org/~gurjyan/COOL/cool#ondemand"/> </cool:Process> </rdf:RDF> COOL GUI and knowledge auto-transfer from mSQL to COOL db2cool Run-control GUI Conclusion Extended graphing and monitoring capabilities. Backwards compatibility between old and new run configuration files. Agent platform administration and fault tolerance. Integration of the foreign processes through DP, vmeServer and Shell interfaces. Process abstraction has been implemented through the newly developed control oriented ontology language. Future plans Integration of the EPICS processes through the channel access interface. Integration of the CAEN HV control systems through the CAEN OPC server interface. Develop agent supporting JXTA peer to peer specification. Run-control web interface.
© Copyright 2026 Paperzz