1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 <2021> 2022 2023 2024 2025 | Index | 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 <2021> 2022 2023 2024 2025 |
<== Date ==> | <== Thread ==> |
---|
Subject: | Re: EPICS interface for Edwards nXDS scroll pump |
From: | Florian Feldbauer via Tech-talk <tech-talk at aps.anl.gov> |
To: | Raymond Juras <jurasmx at gmail.com>, tech-talk at aps.anl.gov |
Date: | Wed, 30 Jun 2021 23:27:39 +0200 |
Hey Ray,
we are using an nXDS scroll pump from edwards and controll it via StreamDevice + Asyn via the RS485 interface.
I've attached protocol and database files.
HTH,
Cheers,
Florian
Hello,
Has anyone developed an EPICS interface to the Edwards nXDS scroll pump?
Thank you,
Ray Juras
Oak Ridge National Laboratory
email: jurasrc1 at ornl.gov
-- Ruhr-Universität Bochum AG der Experimentalphysik I Dr. Florian Feldbauer NB 2/131 / Fach 125 Universitätsstr. 150 D-44801 Bochum Office: NB 2/134 Phone: (+49)234 / 32-23563 Fax: (+49)234 / 32-14170 https://paluma.ruhr-uni-bochum.de
############################################# # ### ### # # ### EPICS Database for ### # # ### Edwards nXDS 15i ### # # ### ### # # ### author: R.Kieser ### # # ### ### # # ### Ref 1.0; 2014-01-06 ### # # ### ### # # ### macros: subsys PANDA subsystem ### # # ### PORT Asyn Interface ### # ############################################# record (ai, "PANDA:$(subsys):VACUUM:FOREPUMP:Tmom") { field (DTYP, "stream") field (INP, "@Edwards_nXDS15i.proto getTemperature $(PORT)") # field (SCAN, "10 second") field (FLNK, "PANDA:$(subsys):VACUUM:FOREPUMP:Mfrequency") } record (ai, "PANDA:$(subsys):VACUUM:FOREPUMP:MotorFreqMom") { field (DTYP, "stream") field (INP, "@Edwards_nXDS15i.proto getMfrequency(PANDA:$(subsys):VACUUM:FOREPUMP) $(PORT)") field (SCAN, "10 second") field (FLNK, "PANDA:$(subsys):VACUUM:FOREPUMP:getRunTime") } record (mbbiDirect, "PANDA:$(subsys):VACUUM:FOREPUMP:Statusregister1") { } record (mbbiDirect, "PANDA:$(subsys):VACUUM:FOREPUMP:Statusregister2") { } record (mbbiDirect, "PANDA:$(subsys):VACUUM:FOREPUMP:Warnings") { } record (mbbiDirect, "PANDA:$(subsys):VACUUM:FOREPUMP:faultregister") { } record (ai, "PANDA:$(subsys):VACUUM:FOREPUMP:getError") { field (DTYP, "stream") field (INP, "@Edwards_nXDS15i.proto getError $(PORT)") field (PINI, "YES") } record (ai, "PANDA:$(subsys):VACUUM:FOREPUMP:getRunTime") { field (DTYP, "stream") field (INP, "@Edwards_nXDS15i.proto getRunTime $(PORT)") # field (SCAN, "300 second") } #-------------------------------------------------------------------------------- record (bo , "PANDA:$(subsys):VACUUM:FOREPUMP:Pump") { field (DTYP, "stream") field (OUT, "@Edwards_nXDS15i.proto Pump $(PORT)") field (ZNAM, "OFF" ) field (ONAM, "ON" ) }
################################################# # ### ### # # ### StreamDevice Protocol for ### # # ### Edwards nXDS 15i ### # # ### ### # # ### author: R.Kieser ### # # ### ### # # ### Ref 1.0; 2013-12-19 ### # ################################################# ################### # ### Globals ### # ################### Terminator = CR; LockTimeout = 5000; ReplyTimeout = 500; ReadTimeout = 500; WriteTimeout = 300; ExtraInput = Ignore; ##################### # ### Protocols ### # ##################### getTemperature { # get measured pump temperature # Example of command: # field (INP, "@Edwards_nxDS15i.proto getTemperature $(PORT)") out "?V808"; in "=V808 %u"; } getMfrequency { # get motor frequncy and status words # Example of command: # field (INP, "@Edwards_nxDS15i.proto getMfrequency(PANDA:$(subsys):VACUUM) $(PORT)") out "?V802"; in "=V802 %u;%(\$1:Statusregister1)x;%(\$1:Statusregister2)x;%(\$1:Warnings)x;%(\$1:faulregister)x"; } getError { # get fault history at last trip # Example of command: # field (INP, "@Edwards_nxDS15i.proto getError(PANDA:$(subsys):VACUUM) $(PORT)") out "?V816"; in "=V816 %x;%x;%x;%x"; } getRunTime { # get Total run hours - time pump has run # Example of command: # field (INP, "@Edwards_nxDS15i.proto getRunTime $(PORT)") out "?V810"; in "=V810 %u"; } #-------------------------------------------------------------------------------- Pump { # switch forepump on/off # Example of command: # field (OUT, "@Edwards_nxDS15i.proto Pump $(PORT)") out "!C802 %u"; in "*C802 %*u"; # @init { # out "in_mode_05"; # in DC3,"%i"; # } }