EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

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 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
<== Date ==> <== Thread ==>

Subject: Issue with Stream Device. Timeout only on Reconnect
From: Maximilian Scharpey via Tech-talk <tech-talk at aps.anl.gov>
To: <tech-talk at aps.anl.gov>
Date: Thu, 1 Feb 2024 10:26:11 +0100

Hi all,

 

I am trying to implement the communication to a voltage source (CAEN N1470A) using Stream Device. The communication is done via USB using an RS485 protocol and I use EPICS base 7 on Windows. So far, communication is successfully established but only if the IOC is started while the source is already turned ON. As it is planned to use the source only for short periods on a larger setup (which has an IOC running day and night), it would be nice if one would not have to kill the IOC every time one wants to use the voltage source.

As I am not very experienced with Stream Device, maybe someone of you can help me out. I do not think, it is a problem of too many communication attempts as the issue also occurs if only one PV is used regarding the voltage source.

 

In the following I copied the excerpts of the .db, .proto, and .cmd files for a minimal example, I am currently running on an external PC. I also copied the messages of the IOC console in the streamDebug mode.

 

module.db:

record(bi, "$(P):MOD$(MOD):CTRMODE"){

    field(DTYP, "stream")

    field(INP, "@CAEN_N14xx.proto getControlMode($(MOD)) $(BUS)")

    field(ZNAM, "LOCAL")

    field(ONAM, "REMOTE")

    field(PINI, "YES")

    field(SCAN, "2 second")

    field(ASG, "$(ASG)")

}

 

CAEN_N14xx.proto:

Terminator=CR LF;

 

getControlMode{

  out "$BD:\$1,CMD:MON,PAR:BDCTR";

  in "#BD:\$1,CMD:OK,VAL:%{LOCAL|REMOTE}";

}

 

CAEN_N14xx.cmd (executed by the st.cmd):

drvAsynSerialPortConfigure("ttyCAEN", "\\\\.\\COM4")

asynSetOption( "ttyCAEN", 0, "baud", "38400" )

asynSetOption( "ttyCAEN", 0, "bits", "8" )

asynSetOption( "ttyCAEN", 0, "parity", "none" )

asynSetOption( "ttyCAEN", 0, "stop", "1" )

asynSetOption( "ttyCAEN", 0, "clocal", "Y" )

asynSetOption( "ttyCAEN", 0, "crtscts", "N" )

asynSetOption( "ttyCAEN", 0, "ixon", "N" )

asynSetOption( "ttyCAEN", 0, "ixoff", "N" )

 

# CAEN N1470A

dbLoadRecords("$(TOP)\db\CAEN_N14xx_module.db", "P=${P}:CAEN_N1470a, MOD=01, BUS=ttyCAEN", ASG=${ASG})

echo 'CAEN \n'

 

 

Console Output Voltage source is turned ON while IOC is running:

2024/02/01 10:15:03.066110 scan-2 C:\opt\epics\modules\streamdevice\src\StreamEpics.cc:908: Stream::process(PIKP612:CAEN_N1470a:MOD01:CTRMODE)

2024/02/01 10:15:03.069764 scan-2 C:\opt\epics\modules\streamdevice\src\StreamEpics.cc:934: Stream::process(PIKP612:CAEN_N1470a:MOD01:CTRMODE) start

2024/02/01 10:15:03.072676 scan-2 C:\opt\epics\modules\streamdevice\src\StreamCore.cc:429: StreamCore::startProtocol(PIKP612:CAEN_N1470a:MOD01:CTRMODE, startMode=StartNormal)

2024/02/01 10:15:03.075936 scan-2 C:\opt\epics\modules\streamdevice\src\StreamCore.cc:564: StreamCore::evalCommand(PIKP612:CAEN_N1470a:MOD01:CTRMODE): activeCommand = out

2024/02/01 10:15:03.079136 scan-2 C:\opt\epics\modules\streamdevice\src\StreamCore.cc:612: StreamCore::evalOut: outputLine = "$BD:01,CMD:MON,PAR:BDCTR<0d><0a>"

2024/02/01 10:15:03.083628 scan-2 C:\opt\epics\modules\streamdevice\src\StreamCore.cc:623: StreamCore::evalOut(PIKP612:CAEN_N1470a:MOD01:CTRMODE): lockRequest(5000)

2024/02/01 10:15:03.087973 scan-2 C:\opt\epics\modules\streamdevice\src\AsynDriverInterface.cc:549: AsynDriverInterface::lockRequest(PIKP612:CAEN_N1470a:MOD01:CTRMODE, 5000 msec)

2024/02/01 10:15:03.091592 scan-2 C:\opt\epics\modules\streamdevice\src\StreamCore.cc:629: StreamCore::evalOut(PIKP612:CAEN_N1470a:MOD01:CTRMODE): lockRequest failed. Device is offline.

2024/02/01 10:15:03.095039 scan-2 C:\opt\epics\modules\streamdevice\src\StreamCore.cc:465: StreamCore::finishProtocol(PIKP612:CAEN_N1470a:MOD01:CTRMODE, Offline) not bus owner

2024/02/01 10:15:03.099590 scan-2 C:\opt\epics\modules\streamdevice\src\AsynDriverInterface.cc:1468: AsynDriverInterface::finish(PIKP612:CAEN_N1470a:MOD01:CTRMODE) start

2024/02/01 10:15:03.103732 scan-2 C:\opt\epics\modules\streamdevice\src\AsynDriverInterface.cc:1478: AsynDriverInterface::finish(PIKP612:CAEN_N1470a:MOD01:CTRMODE) done

2024/02/01 10:15:03.106943 scan-2 C:\opt\epics\modules\streamdevice\src\StreamEpics.cc:1034: Stream::protocolFinishHook(PIKP612:CAEN_N1470a:MOD01:CTRMODE, Offline)

2024/02/01 10:15:03.110014 scan-2 C:\opt\epics\modules\streamdevice\src\StreamEpics.cc:939: Stream::process(PIKP612:CAEN_N1470a:MOD01:CTRMODE): could not start protocol, status=COMM (9)

2024/02/01 10:15:04.471844 ttyCAEN C:\opt\epics\modules\streamdevice\src\AsynDriverInterface.cc:1316: AsynDriverInterface::exceptionHandler(PIKP612:CAEN_N1470a:MOD01:CTRMODE, Connect)

2024/02/01 10:15:04.475524 ttyCAEN C:\opt\epics\modules\streamdevice\src\AsynDriverInterface.cc:1322: AsynDriverInterface::exceptionHandler(PIKP612:CAEN_N1470a:MOD01:CTRMODE) ttyCAEN 0 connected. ioAction: None

2024/02/01 10:15:04.479496 ttyCAEN C:\opt\epics\modules\streamdevice\src\StreamCore.cc:1736: StreamCore::connectCallback(PIKP612:CAEN_N1470a:MOD01:CTRMODE, StreamIoSuccess) activeCommand: end

2024/02/01 10:15:04.483956 ttyCAEN C:\opt\epics\modules\streamdevice\src\StreamCore.cc:429: StreamCore::startProtocol(PIKP612:CAEN_N1470a:MOD01:CTRMODE, startMode=StartInit)

2024/02/01 10:15:05.064406 scan-2 C:\opt\epics\modules\streamdevice\src\StreamEpics.cc:908: Stream::process(PIKP612:CAEN_N1470a:MOD01:CTRMODE)

2024/02/01 10:15:05.068045 scan-2 C:\opt\epics\modules\streamdevice\src\StreamEpics.cc:934: Stream::process(PIKP612:CAEN_N1470a:MOD01:CTRMODE) start

2024/02/01 10:15:05.070964 scan-2 C:\opt\epics\modules\streamdevice\src\StreamCore.cc:429: StreamCore::startProtocol(PIKP612:CAEN_N1470a:MOD01:CTRMODE, startMode=StartNormal)

2024/02/01 10:15:05.074244 scan-2 C:\opt\epics\modules\streamdevice\src\StreamCore.cc:564: StreamCore::evalCommand(PIKP612:CAEN_N1470a:MOD01:CTRMODE): activeCommand = out

2024/02/01 10:15:05.077638 scan-2 C:\opt\epics\modules\streamdevice\src\StreamCore.cc:612: StreamCore::evalOut: outputLine = "$BD:01,CMD:MON,PAR:BDCTR<0d><0a>"

2024/02/01 10:15:05.082365 scan-2 C:\opt\epics\modules\streamdevice\src\StreamCore.cc:623: StreamCore::evalOut(PIKP612:CAEN_N1470a:MOD01:CTRMODE): lockRequest(5000)

2024/02/01 10:15:05.086921 scan-2 C:\opt\epics\modules\streamdevice\src\AsynDriverInterface.cc:549: AsynDriverInterface::lockRequest(PIKP612:CAEN_N1470a:MOD01:CTRMODE, 5000 msec)

2024/02/01 10:15:05.090557 scan-2 PIKP612:CAEN_N1470a:MOD01:CTRMODE lockRequest: status returned to normal

2024/02/01 10:15:05.090563 ttyCAEN C:\opt\epics\modules\streamdevice\src\AsynDriverInterface.cc:590: AsynDriverInterface::lockHandler(PIKP612:CAEN_N1470a:MOD01:CTRMODE)

2024/02/01 10:15:05.092753 scan-2 C:\opt\epics\modules\streamdevice\src\StreamEpics.cc:948: Stream::process(PIKP612:CAEN_N1470a:MOD01:CTRMODE): protocol started

2024/02/01 10:15:05.102839 ttyCAEN C:\opt\epics\modules\streamdevice\src\StreamCore.cc:832: StreamCore::lockCallback(PIKP612:CAEN_N1470a:MOD01:CTRMODE, StreamIoSuccess)

2024/02/01 10:15:05.106172 ttyCAEN C:\opt\epics\modules\streamdevice\src\AsynDriverInterface.cc:627: AsynDriverInterface::writeRequest(PIKP612:CAEN_N1470a:MOD01:CTRMODE, "$BD:01,CMD:MON,PAR:BDCTR<0d><0a>", 100 msec)

2024/02/01 10:15:05.110291 ttyCAEN C:\opt\epics\modules\streamdevice\src\AsynDriverInterface.cc:649: AsynDriverInterface::writeHandler(PIKP612:CAEN_N1470a:MOD01:CTRMODE)

2024/02/01 10:15:05.114659 ttyCAEN C:\opt\epics\modules\streamdevice\src\AsynDriverInterface.cc:667: AsynDriverInterface::writeHandler(PIKP612:CAEN_N1470a:MOD01:CTRMODE): reading old input

2024/02/01 10:15:05.118347 ttyCAEN C:\opt\epics\modules\streamdevice\src\AsynDriverInterface.cc:715: AsynDriverInterface::writeHandler(PIKP612:CAEN_N1470a:MOD01:CTRMODE): write(..., "$BD:01,CMD:MON,PAR:BDCTR<0d><0a>", outputSize=26, written=26) [timeout=0.1 sec] = asynSuccess

2024/02/01 10:15:05.123681 ttyCAEN C:\opt\epics\modules\streamdevice\src\StreamCore.cc:877: StreamCore::writeCallback(PIKP612:CAEN_N1470a:MOD01:CTRMODE, StreamIoSuccess)

2024/02/01 10:15:05.126886 ttyCAEN C:\opt\epics\modules\streamdevice\src\StreamCore.cc:564: StreamCore::evalCommand(PIKP612:CAEN_N1470a:MOD01:CTRMODE): activeCommand = in

2024/02/01 10:15:05.131769 ttyCAEN C:\opt\epics\modules\streamdevice\src\AsynDriverInterface.cc:806: AsynDriverInterface::readRequest(PIKP612:CAEN_N1470a:MOD01:CTRMODE, 1000 msec reply, 100 msec read, expect 0 bytes, async=no)

2024/02/01 10:15:05.135975 ttyCAEN C:\opt\epics\modules\streamdevice\src\AsynDriverInterface.cc:831: AsynDriverInterface::readRequest PIKP612:CAEN_N1470a:MOD01:CTRMODE: queueRequest(..., priority=0, queueTimeout=1 sec) = asynSuccess [async=false]

2024/02/01 10:15:06.149378 ttyCAEN C:\opt\epics\modules\streamdevice\src\AsynDriverInterface.cc:951: AsynDriverInterface::readHandler(PIKP612:CAEN_N1470a:MOD01:CTRMODE): ioAction=Read read(1 bytes, timeout=1 sec) returned status asynTimeout: received=0 bytes, eomReason=NONE, buffer=""

2024/02/01 10:15:06.155608 ttyCAEN C:\opt\epics\modules\streamdevice\src\AsynDriverInterface.cc:1044: AsynDriverInterface::readHandler(PIKP612:CAEN_N1470a:MOD01:CTRMODE): no reply

2024/02/01 10:15:06.158981 ttyCAEN C:\opt\epics\modules\streamdevice\src\StreamCore.cc:963: StreamCore::readCallback(PIKP612:CAEN_N1470a:MOD01:CTRMODE, StreamIoNoReply input="", size=0)

2024/02/01 10:15:06.162449 ttyCAEN PIKP612:CAEN_N1470a:MOD01:CTRMODE: No reply within 1000 ms to "$BD:01,CMD:MON,PAR:BDCTR<0d><0a>"

2024/02/01 10:15:06.165361 ttyCAEN C:\opt\epics\modules\streamdevice\src\StreamCore.cc:465: StreamCore::finishProtocol(PIKP612:CAEN_N1470a:MOD01:CTRMODE, ReplyTimeout) bus owner

2024/02/01 10:15:06.168668 ttyCAEN C:\opt\epics\modules\streamdevice\src\StreamCore.cc:534: starting exception handler

2024/02/01 10:15:06.171005 ttyCAEN C:\opt\epics\modules\streamdevice\src\StreamCore.cc:564: StreamCore::evalCommand(PIKP612:CAEN_N1470a:MOD01:CTRMODE): activeCommand = end

2024/02/01 10:15:06.174203 ttyCAEN C:\opt\epics\modules\streamdevice\src\StreamCore.cc:465: StreamCore::finishProtocol(PIKP612:CAEN_N1470a:MOD01:CTRMODE, Success) bus owner

2024/02/01 10:15:06.177446 ttyCAEN C:\opt\epics\modules\streamdevice\src\AsynDriverInterface.cc:610: AsynDriverInterface::unlock(PIKP612:CAEN_N1470a:MOD01:CTRMODE)

2024/02/01 10:15:06.182009 ttyCAEN C:\opt\epics\modules\streamdevice\src\AsynDriverInterface.cc:1468: AsynDriverInterface::finish(PIKP612:CAEN_N1470a:MOD01:CTRMODE) start

2024/02/01 10:15:06.185846 ttyCAEN C:\opt\epics\modules\streamdevice\src\AsynDriverInterface.cc:1478: AsynDriverInterface::finish(PIKP612:CAEN_N1470a:MOD01:CTRMODE) done

2024/02/01 10:15:06.189048 ttyCAEN C:\opt\epics\modules\streamdevice\src\StreamEpics.cc:1034: Stream::protocolFinishHook(PIKP612:CAEN_N1470a:MOD01:CTRMODE, ReplyTimeout)

2024/02/01 10:15:06.192313 cbLow C:\opt\epics\modules\streamdevice\src\StreamEpics.cc:1112: recordProcessCallback(PIKP612:CAEN_N1470a:MOD01:CTRMODE) processing record

2024/02/01 10:15:06.197327 cbLow C:\opt\epics\modules\streamdevice\src\StreamEpics.cc:908: Stream::process(PIKP612:CAEN_N1470a:MOD01:CTRMODE)

2024/02/01 10:15:06.201432 cbLow C:\opt\epics\modules\streamdevice\src\StreamEpics.cc:914: Stream::process(PIKP612:CAEN_N1470a:MOD01:CTRMODE) error status=TIMEOUT (10)

2024/02/01 10:15:06.204718 cbLow C:\opt\epics\modules\streamdevice\src\StreamEpics.cc:1116: recordProcessCallback(PIKP612:CAEN_N1470a:MOD01:CTRMODE) processing record done

 


Replies:
Re: Issue with Stream Device. Timeout only on Reconnect Zimoch Dirk via Tech-talk

Navigate by Date:
Prev: RMP, REP garbage value whitetiger1123 via Tech-talk
Next: Re: Issue with Stream Device. Timeout only on Reconnect Zimoch Dirk via Tech-talk
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
Navigate by Thread:
Prev: Re: RMP, REP garbage value Kevin Peterson via Tech-talk
Next: Re: Issue with Stream Device. Timeout only on Reconnect Zimoch Dirk via Tech-talk
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
ANJ, 01 Feb 2024 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·