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

Subject: RE: problems with SNL - sevr=minor ca_array_get_callback [...]: Virtual circuit disconnect
From: Žiga Oven via Tech-talk <tech-talk at aps.anl.gov>
To: Dariush Hampai <dariush.hampai at lnf.infn.it>, "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov>
Date: Fri, 9 Jan 2026 14:48:50 +0000

Hi Dariush,

If the record is not processed at least once, the TIME field will be <undefined>. This is expected behavior and it shouldn’t cause problems for the sequencer.

 

Processing the record at iocInit or via caput to PROC filed, will process the record, but this might have undesired consequences, such as starting the move / adjusting the hardware setpoint …

I still suspect that your ‘sequencer’ IOC somehow doesn’t see the the PVs from ‘motor’ IOC, even though they might be on the same network.

I would test this with ‘sequencer’ IOC, by creating a test database in ‘sequencer’ IOC, that is reading value(s) of the PV(s) from the ‘motor’ IOC.
Simple AI or CALC record with INP(x) field connected to “mm4006_1_1_1:setma” and then either periodic processing or manual trigger, while observing a new record with camonitor, ‘caget -a’ or via dbpr.
If at any point the alarm STAT(e) goes to LINK, this indicates that the IOCs have trouble communicating.

If this is the case, I can’t provide clearer instructions on how to debug this at this moment, but if you reach out with additional information we can figure something out.

Hope this helps,

 

Žiga



 

From: Dariush Hampai <dariush.hampai at lnf.infn.it>
Sent: Friday, January 9, 2026 07:26
To: Žiga Oven <ziga.oven at cosylab.com>; tech-talk at aps.anl.gov
Subject: Re: problems with SNL - sevr=minor ca_array_get_callback [...]: Virtual circuit disconnect

Dear Ziga,
speaking with my colleague Maurizio, we found someting strange.
for the vaiable mm4006_1_1_1:setma (for example, but it is similar to the others) we have (by seqcar 2 as suggested by you)

 Variable "motor_ma[0]" not connected to PV "mm4006_1_1_1:setma"

so it is assigned but not connected. Looking in the mm4006_1 IOC we have

epics> dbpr mm4006_1_1_1:setma 3
dbpr mm4006_1_1_1:setmr 3
ACKS: NO_ALARM      ACKT: YES           ADEL: 0             ALST: 0
AMSG:               AOFF: 0             ASG :               ASLO: 0
BKPT: 00            DESC: Set Move Abolute 1_1             DISA: 0
DISP: 0             DISS: NO_ALARM      DISV: 1             DOL : CONSTANT
DRVH: 0             DRVL: 0             DTYP: Soft Channel  EGU :
EGUF: 0             EGUL: 0             EOFF: 0             ESLO: 1
EVNT:               FLNK: DB_LINK mm4006_1_1_1:evalma       HHSV: NO_ALARM
HIGH: 0             HIHI: 0             HOPR: 0             HSV : NO_ALARM
HYST: 0             INIT: 1             IVOA: Continue normally
IVOV: 0             LALM: 0             LBRK: 0             LCNT: 0
LINR: NO CONVERSION LLSV: NO_ALARM      LOLO: 0             LOPR: 0
LOW : 0             LSV : NO_ALARM      MDEL: 0             MLST: 0
NAME: mm4006_1_1_1:setma                NAMSG:              NSEV: NO_ALARM
NSTA: NO_ALARM      OIF : Full          OMOD: 0             OMSL: supervisory
ORAW: 0             ORBV: 0             OROC: 0             OUT : CONSTANT
OVAL: 0             PACT: 0             PHAS: 0             PINI: NO
PREC: 0             PRIO: LOW           PROC: 0             PUTF: 0
PVAL: 0             RBV : 0             ROFF: 0             RPRO: 0
RVAL: 0             SCAN: Passive       SDIS: CONSTANT      SDLY: -1
SEVR: INVALID       SIML: CONSTANT      SIMM: NO            SIMS: NO_ALARM
SIOL: CONSTANT      SSCN: 65535         STAT: UDF           TIME: <undefined>
TPRO: 0             TSE : 0             TSEL: CONSTANT      UDF : 1
UDFS: INVALID       UTAG: 0 

where "TIME" is undefined due to *** field (PINI, "NO") *** in the mm4006_1.db (this is the value to change the position and I don't want to change it at IOC initialization).
Should these two facts correlated? If yes, there is a possibility to initialize the record as *** caput mm4006_1_1_1:setma.PROC 1" ?

Awaiting your reply

Dariush

Il 09/01/2026 08:42, Dariush Hampai via Tech-talk ha scritto:

Hi Ziga,

 

I tried and after calling "seqcar 2” before assigning the variables it works for a while… then it stops again…

It seems the problem is rabdom!!!

After calling “status_mode=4"

 

********************

*** Prepare Loop ***

********************

motor to move = 0

start[0]= 1000.000000

1 ### These numbers are flags for debug

2

3

motor to move = 1

start[1]= 1500.000000

1

2

3

sevr=minor ca_array_get_callback( typeToCA(type), count, var->chid, pvCaGetHandler, arg): Virtual circuit disconnect 

sevr=minor ca_array_get_callback( typeToCA(type), count, var->chid, pvCaGetHandler, arg): Virtual circuit disconnect

 

However I’ll report the output of seqcar 2 before and after the PV assignment

 

##### BEFORE:

 

Program "xena_sncscan"

    Variable "name_exp_pv" connected to PV "xena:experiment"

    Variable "status_mode" connected to PV "xena:status"

    Variable "actual_status" connected to PV "xena:state"

    Variable "scan_busy" connected to PV "xena:scan_busy"

    Variable "scan_pause" connected to PV "xena:scan_pause"

    Variable "scan_restart" connected to PV "xena:scan_restart"

    Variable "scan_abort" connected to PV "xena:scan_abort"

    Variable "num_mot" connected to PV "xena:num_motor"

    Variable "num_det" connected to PV "xena:num_detector"

    Variable "start" connected to PV "xena:start"

    Variable "end" connected to PV "xena:end"

    Variable "step" connected to PV "xena:step"

    Variable "total_points" connected to PV "xena:total_points"

    Variable "current_point" connected to PV "xena:current_point"

    Variable "scan_progress" connected to PV "xena:scan_progress"

    Variable "motor" connected to PV "xena:motor"

    Variable "mot_command" connected to PV "xena:motor_command"

    Variable "detector" connected to PV "xena:detector"

    Variable "det_command" connected to PV "xena:detector_command"

    Variable "motget" not assigned to PV

    Variable "motset" not assigned to PV

    Variable "detget" not assigned to PV

    Variable "detset" not assigned to PV

    Variable "motor_mr[0]" not assigned to PV

    Variable "motor_mr[1]" not assigned to PV

    Variable "motor_mr[2]" not assigned to PV

    Variable "motor_mr[3]" not assigned to PV

    Variable "motor_mr[4]" not assigned to PV

    Variable "motor_mr[5]" not assigned to PV

    Variable "motor_mr[6]" not assigned to PV

    Variable "motor_mr[7]" not assigned to PV

    Variable "motor_mr[8]" not assigned to PV

    Variable "motor_mr[9]" not assigned to PV

    Variable "motor_mr[10]" not assigned to PV

    Variable "motor_mr[11]" not assigned to PV

    Variable "motor_mr[12]" not assigned to PV

    Variable "motor_mr[13]" not assigned to PV

    Variable "motor_mr[14]" not assigned to PV

    Variable "motor_mr[15]" not assigned to PV

    Variable "motor_mr[16]" not assigned to PV

    Variable "motor_mr[17]" not assigned to PV

    Variable "motor_mr[18]" not assigned to PV

    Variable "motor_mr[19]" not assigned to PV

    Variable "motor_ma[0]" not assigned to PV

    Variable "motor_ma[1]" not assigned to PV

    Variable "motor_ma[2]" not assigned to PV

    Variable "motor_ma[3]" not assigned to PV

    Variable "motor_ma[4]" not assigned to PV

    Variable "motor_ma[5]" not assigned to PV

    Variable "motor_ma[6]" not assigned to PV

    Variable "motor_ma[7]" not assigned to PV

    Variable "motor_ma[8]" not assigned to PV

    Variable "motor_ma[9]" not assigned to PV

    Variable "motor_ma[10]" not assigned to PV

    Variable "motor_ma[11]" not assigned to PV

    Variable "motor_ma[12]" not assigned to PV

    Variable "motor_ma[13]" not assigned to PV

    Variable "motor_ma[14]" not assigned to PV

    Variable "motor_ma[15]" not assigned to PV

    Variable "motor_ma[16]" not assigned to PV

    Variable "motor_ma[17]" not assigned to PV

    Variable "motor_ma[18]" not assigned to PV

    Variable "motor_ma[19]" not assigned to PV

    Variable "motor_reqmov[0]" not assigned to PV

    Variable "motor_reqmov[1]" not assigned to PV

    Variable "motor_reqmov[2]" not assigned to PV

    Variable "motor_reqmov[3]" not assigned to PV

    Variable "motor_reqmov[4]" not assigned to PV

    Variable "motor_reqmov[5]" not assigned to PV

    Variable "motor_reqmov[6]" not assigned to PV

    Variable "motor_reqmov[7]" not assigned to PV

    Variable "motor_reqmov[8]" not assigned to PV

    Variable "motor_reqmov[9]" not assigned to PV

    Variable "motor_reqmov[10]" not assigned to PV

    Variable "motor_reqmov[11]" not assigned to PV

    Variable "motor_reqmov[12]" not assigned to PV

    Variable "motor_reqmov[13]" not assigned to PV

    Variable "motor_reqmov[14]" not assigned to PV

    Variable "motor_reqmov[15]" not assigned to PV

    Variable "motor_reqmov[16]" not assigned to PV

    Variable "motor_reqmov[17]" not assigned to PV

    Variable "motor_reqmov[18]" not assigned to PV

    Variable "motor_reqmov[19]" not assigned to PV

    Variable "motor_mov[0]" not assigned to PV

    Variable "motor_mov[1]" not assigned to PV

    Variable "motor_mov[2]" not assigned to PV

    Variable "motor_mov[3]" not assigned to PV

    Variable "motor_mov[4]" not assigned to PV

    Variable "motor_mov[5]" not assigned to PV

    Variable "motor_mov[6]" not assigned to PV

    Variable "motor_mov[7]" not assigned to PV

    Variable "motor_mov[8]" not assigned to PV

    Variable "motor_mov[9]" not assigned to PV

    Variable "motor_mov[10]" not assigned to PV

    Variable "motor_mov[11]" not assigned to PV

    Variable "motor_mov[12]" not assigned to PV

    Variable "motor_mov[13]" not assigned to PV

    Variable "motor_mov[14]" not assigned to PV

    Variable "motor_mov[15]" not assigned to PV

    Variable "motor_mov[16]" not assigned to PV

    Variable "motor_mov[17]" not assigned to PV

    Variable "motor_mov[18]" not assigned to PV

    Variable "motor_mov[19]" not assigned to PV

    Variable "motor_reqpos[0]" not assigned to PV

    Variable "motor_reqpos[1]" not assigned to PV

    Variable "motor_reqpos[2]" not assigned to PV

    Variable "motor_reqpos[3]" not assigned to PV

    Variable "motor_reqpos[4]" not assigned to PV

    Variable "motor_reqpos[5]" not assigned to PV

    Variable "motor_reqpos[6]" not assigned to PV

    Variable "motor_reqpos[7]" not assigned to PV

    Variable "motor_reqpos[8]" not assigned to PV

    Variable "motor_reqpos[9]" not assigned to PV

    Variable "motor_reqpos[10]" not assigned to PV

    Variable "motor_reqpos[11]" not assigned to PV

    Variable "motor_reqpos[12]" not assigned to PV

    Variable "motor_reqpos[13]" not assigned to PV

    Variable "motor_reqpos[14]" not assigned to PV

    Variable "motor_reqpos[15]" not assigned to PV

    Variable "motor_reqpos[16]" not assigned to PV

    Variable "motor_reqpos[17]" not assigned to PV

    Variable "motor_reqpos[18]" not assigned to PV

    Variable "motor_reqpos[19]" not assigned to PV

    Variable "motor_pos[0]" not assigned to PV

    Variable "motor_pos[1]" not assigned to PV

    Variable "motor_pos[2]" not assigned to PV

    Variable "motor_pos[3]" not assigned to PV

    Variable "motor_pos[4]" not assigned to PV

    Variable "motor_pos[5]" not assigned to PV

    Variable "motor_pos[6]" not assigned to PV

    Variable "motor_pos[7]" not assigned to PV

    Variable "motor_pos[8]" not assigned to PV

    Variable "motor_pos[9]" not assigned to PV

    Variable "motor_pos[10]" not assigned to PV

    Variable "motor_pos[11]" not assigned to PV

    Variable "motor_pos[12]" not assigned to PV

    Variable "motor_pos[13]" not assigned to PV

    Variable "motor_pos[14]" not assigned to PV

    Variable "motor_pos[15]" not assigned to PV

    Variable "motor_pos[16]" not assigned to PV

    Variable "motor_pos[17]" not assigned to PV

    Variable "motor_pos[18]" not assigned to PV

    Variable "motor_pos[19]" not assigned to PV

    Variable "detector_reqstart[0]" not assigned to PV

    Variable "detector_reqstart[1]" not assigned to PV

    Variable "detector_reqstart[2]" not assigned to PV

    Variable "detector_reqstart[3]" not assigned to PV

    Variable "detector_reqstart[4]" not assigned to PV

    Variable "detector_reqstart[5]" not assigned to PV

    Variable "detector_reqstart[6]" not assigned to PV

    Variable "detector_reqstart[7]" not assigned to PV

    Variable "detector_reqstart[8]" not assigned to PV

    Variable "detector_reqstart[9]" not assigned to PV

    Variable "detector_reqstart[10]" not assigned to PV

    Variable "detector_reqstart[11]" not assigned to PV

    Variable "detector_reqstart[12]" not assigned to PV

    Variable "detector_reqstart[13]" not assigned to PV

    Variable "detector_reqstart[14]" not assigned to PV

    Variable "detector_reqstart[15]" not assigned to PV

    Variable "detector_reqstart[16]" not assigned to PV

    Variable "detector_reqstart[17]" not assigned to PV

    Variable "detector_reqstart[18]" not assigned to PV

    Variable "detector_reqstart[19]" not assigned to PV

    Variable "detector_reqready[0]" not assigned to PV

    Variable "detector_reqready[1]" not assigned to PV

    Variable "detector_reqready[2]" not assigned to PV

    Variable "detector_reqready[3]" not assigned to PV

    Variable "detector_reqready[4]" not assigned to PV

    Variable "detector_reqready[5]" not assigned to PV

    Variable "detector_reqready[6]" not assigned to PV

    Variable "detector_reqready[7]" not assigned to PV

    Variable "detector_reqready[8]" not assigned to PV

    Variable "detector_reqready[9]" not assigned to PV

    Variable "detector_reqready[10]" not assigned to PV

    Variable "detector_reqready[11]" not assigned to PV

    Variable "detector_reqready[12]" not assigned to PV

    Variable "detector_reqready[13]" not assigned to PV

    Variable "detector_reqready[14]" not assigned to PV

    Variable "detector_reqready[15]" not assigned to PV

    Variable "detector_reqready[16]" not assigned to PV

    Variable "detector_reqready[17]" not assigned to PV

    Variable "detector_reqready[18]" not assigned to PV

    Variable "detector_reqready[19]" not assigned to PV

    Variable "detector_ready[0]" not assigned to PV

    Variable "detector_ready[1]" not assigned to PV

    Variable "detector_ready[2]" not assigned to PV

    Variable "detector_ready[3]" not assigned to PV

    Variable "detector_ready[4]" not assigned to PV

    Variable "detector_ready[5]" not assigned to PV

    Variable "detector_ready[6]" not assigned to PV

    Variable "detector_ready[7]" not assigned to PV

    Variable "detector_ready[8]" not assigned to PV

    Variable "detector_ready[9]" not assigned to PV

    Variable "detector_ready[10]" not assigned to PV

    Variable "detector_ready[11]" not assigned to PV

    Variable "detector_ready[12]" not assigned to PV

    Variable "detector_ready[13]" not assigned to PV

    Variable "detector_ready[14]" not assigned to PV

    Variable "detector_ready[15]" not assigned to PV

    Variable "detector_ready[16]" not assigned to PV

    Variable "detector_ready[17]" not assigned to PV

    Variable "detector_ready[18]" not assigned to PV

    Variable "detector_ready[19]" not assigned to PV

    Variable "detector_reqdata[0]" not assigned to PV

    Variable "detector_reqdata[1]" not assigned to PV

    Variable "detector_reqdata[2]" not assigned to PV

    Variable "detector_reqdata[3]" not assigned to PV

    Variable "detector_reqdata[4]" not assigned to PV

    Variable "detector_reqdata[5]" not assigned to PV

    Variable "detector_reqdata[6]" not assigned to PV

    Variable "detector_reqdata[7]" not assigned to PV

    Variable "detector_reqdata[8]" not assigned to PV

    Variable "detector_reqdata[9]" not assigned to PV

    Variable "detector_reqdata[10]" not assigned to PV

    Variable "detector_reqdata[11]" not assigned to PV

    Variable "detector_reqdata[12]" not assigned to PV

    Variable "detector_reqdata[13]" not assigned to PV

    Variable "detector_reqdata[14]" not assigned to PV

    Variable "detector_reqdata[15]" not assigned to PV

    Variable "detector_reqdata[16]" not assigned to PV

    Variable "detector_reqdata[17]" not assigned to PV

    Variable "detector_reqdata[18]" not assigned to PV

    Variable "detector_reqdata[19]" not assigned to PV

    Variable "detector_data[0]" not assigned to PV

    Variable "detector_data[1]" not assigned to PV

    Variable "detector_data[2]" not assigned to PV

    Variable "detector_data[3]" not assigned to PV

    Variable "detector_data[4]" not assigned to PV

    Variable "detector_data[5]" not assigned to PV

    Variable "detector_data[6]" not assigned to PV

    Variable "detector_data[7]" not assigned to PV

    Variable "detector_data[8]" not assigned to PV

    Variable "detector_data[9]" not assigned to PV

    Variable "detector_data[10]" not assigned to PV

    Variable "detector_data[11]" not assigned to PV

    Variable "detector_data[12]" not assigned to PV

    Variable "detector_data[13]" not assigned to PV

    Variable "detector_data[14]" not assigned to PV

    Variable "detector_data[15]" not assigned to PV

    Variable "detector_data[16]" not assigned to PV

    Variable "detector_data[17]" not assigned to PV

    Variable "detector_data[18]" not assigned to PV

    Variable "detector_data[19]" not assigned to PV

    Variable "detector_type[0]" not assigned to PV

    Variable "detector_type[1]" not assigned to PV

    Variable "detector_type[2]" not assigned to PV

    Variable "detector_type[3]" not assigned to PV

    Variable "detector_type[4]" not assigned to PV

    Variable "detector_type[5]" not assigned to PV

    Variable "detector_type[6]" not assigned to PV

    Variable "detector_type[7]" not assigned to PV

    Variable "detector_type[8]" not assigned to PV

    Variable "detector_type[9]" not assigned to PV

    Variable "detector_type[10]" not assigned to PV

    Variable "detector_type[11]" not assigned to PV

    Variable "detector_type[12]" not assigned to PV

    Variable "detector_type[13]" not assigned to PV

    Variable "detector_type[14]" not assigned to PV

    Variable "detector_type[15]" not assigned to PV

    Variable "detector_type[16]" not assigned to PV

    Variable "detector_type[17]" not assigned to PV

    Variable "detector_type[18]" not assigned to PV

    Variable "detector_type[19]" not assigned to PV

 

 

### AFTER:

 

  Program "xena_sncscan"

    Variable "name_exp_pv" connected to PV "xena:experiment"

    Variable "status_mode" connected to PV "xena:status"

    Variable "actual_status" connected to PV "xena:state"

    Variable "scan_busy" connected to PV "xena:scan_busy"

    Variable "scan_pause" connected to PV "xena:scan_pause"

    Variable "scan_restart" connected to PV "xena:scan_restart"

    Variable "scan_abort" connected to PV "xena:scan_abort"

    Variable "num_mot" connected to PV "xena:num_motor"

    Variable "num_det" connected to PV "xena:num_detector"

    Variable "start" connected to PV "xena:start"

    Variable "end" connected to PV "xena:end"

    Variable "step" connected to PV "xena:step"

    Variable "total_points" connected to PV "xena:total_points"

    Variable "current_point" connected to PV "xena:current_point"

    Variable "scan_progress" connected to PV "xena:scan_progress"

    Variable "motor" connected to PV "xena:motor"

    Variable "mot_command" connected to PV "xena:motor_command"

    Variable "detector" connected to PV "xena:detector"

    Variable "det_command" connected to PV "xena:detector_command"

    Variable "motget" not assigned to PV

    Variable "motset" not assigned to PV

    Variable "detget" not assigned to PV

    Variable "detset" not assigned to PV

    Variable "motor_mr[0]" connected to PV "mm4006_1_1_1:setmr"

    Variable "motor_mr[1]" connected to PV "mm4006_1_1_2:setmr"

    Variable "motor_mr[2]" not assigned to PV

    Variable "motor_mr[3]" not assigned to PV

    Variable "motor_mr[4]" not assigned to PV

    Variable "motor_mr[5]" not assigned to PV

    Variable "motor_mr[6]" not assigned to PV

    Variable "motor_mr[7]" not assigned to PV

    Variable "motor_mr[8]" not assigned to PV

    Variable "motor_mr[9]" not assigned to PV

    Variable "motor_mr[10]" not assigned to PV

    Variable "motor_mr[11]" not assigned to PV

    Variable "motor_mr[12]" not assigned to PV

    Variable "motor_mr[13]" not assigned to PV

    Variable "motor_mr[14]" not assigned to PV

    Variable "motor_mr[15]" not assigned to PV

    Variable "motor_mr[16]" not assigned to PV

    Variable "motor_mr[17]" not assigned to PV

    Variable "motor_mr[18]" not assigned to PV

    Variable "motor_mr[19]" not assigned to PV

    Variable "motor_ma[0]" connected to PV "mm4006_1_1_1:setma"

    Variable "motor_ma[1]" connected to PV "mm4006_1_1_2:setma"

    Variable "motor_ma[2]" not assigned to PV

    Variable "motor_ma[3]" not assigned to PV

    Variable "motor_ma[4]" not assigned to PV

    Variable "motor_ma[5]" not assigned to PV

    Variable "motor_ma[6]" not assigned to PV

    Variable "motor_ma[7]" not assigned to PV

    Variable "motor_ma[8]" not assigned to PV

    Variable "motor_ma[9]" not assigned to PV

    Variable "motor_ma[10]" not assigned to PV

    Variable "motor_ma[11]" not assigned to PV

    Variable "motor_ma[12]" not assigned to PV

    Variable "motor_ma[13]" not assigned to PV

    Variable "motor_ma[14]" not assigned to PV

    Variable "motor_ma[15]" not assigned to PV

    Variable "motor_ma[16]" not assigned to PV

    Variable "motor_ma[17]" not assigned to PV

    Variable "motor_ma[18]" not assigned to PV

    Variable "motor_ma[19]" not assigned to PV

    Variable "motor_reqmov[0]" connected to PV "mm4006_1_1_1:reqmoving"

    Variable "motor_reqmov[1]" connected to PV "mm4006_1_1_2:reqmoving"

    Variable "motor_reqmov[2]" not assigned to PV

    Variable "motor_reqmov[3]" not assigned to PV

    Variable "motor_reqmov[4]" not assigned to PV

    Variable "motor_reqmov[5]" not assigned to PV

    Variable "motor_reqmov[6]" not assigned to PV

    Variable "motor_reqmov[7]" not assigned to PV

    Variable "motor_reqmov[8]" not assigned to PV

    Variable "motor_reqmov[9]" not assigned to PV

    Variable "motor_reqmov[10]" not assigned to PV

    Variable "motor_reqmov[11]" not assigned to PV

    Variable "motor_reqmov[12]" not assigned to PV

    Variable "motor_reqmov[13]" not assigned to PV

    Variable "motor_reqmov[14]" not assigned to PV

    Variable "motor_reqmov[15]" not assigned to PV

    Variable "motor_reqmov[16]" not assigned to PV

    Variable "motor_reqmov[17]" not assigned to PV

    Variable "motor_reqmov[18]" not assigned to PV

    Variable "motor_reqmov[19]" not assigned to PV

    Variable "motor_mov[0]" connected to PV "mm4006_1_1_1:moving"

    Variable "motor_mov[1]" connected to PV "mm4006_1_1_2:moving"

    Variable "motor_mov[2]" not assigned to PV

    Variable "motor_mov[3]" not assigned to PV

    Variable "motor_mov[4]" not assigned to PV

    Variable "motor_mov[5]" not assigned to PV

    Variable "motor_mov[6]" not assigned to PV

    Variable "motor_mov[7]" not assigned to PV

    Variable "motor_mov[8]" not assigned to PV

    Variable "motor_mov[9]" not assigned to PV

    Variable "motor_mov[10]" not assigned to PV

    Variable "motor_mov[11]" not assigned to PV

    Variable "motor_mov[12]" not assigned to PV

    Variable "motor_mov[13]" not assigned to PV

    Variable "motor_mov[14]" not assigned to PV

    Variable "motor_mov[15]" not assigned to PV

    Variable "motor_mov[16]" not assigned to PV

    Variable "motor_mov[17]" not assigned to PV

    Variable "motor_mov[18]" not assigned to PV

    Variable "motor_mov[19]" not assigned to PV

    Variable "motor_reqpos[0]" connected to PV "mm4006_1_1_1:reqpos"

    Variable "motor_reqpos[1]" connected to PV "mm4006_1_1_2:reqpos"

    Variable "motor_reqpos[2]" not assigned to PV

    Variable "motor_reqpos[3]" not assigned to PV

    Variable "motor_reqpos[4]" not assigned to PV

    Variable "motor_reqpos[5]" not assigned to PV

    Variable "motor_reqpos[6]" not assigned to PV

    Variable "motor_reqpos[7]" not assigned to PV

    Variable "motor_reqpos[8]" not assigned to PV

    Variable "motor_reqpos[9]" not assigned to PV

    Variable "motor_reqpos[10]" not assigned to PV

    Variable "motor_reqpos[11]" not assigned to PV

    Variable "motor_reqpos[12]" not assigned to PV

    Variable "motor_reqpos[13]" not assigned to PV

    Variable "motor_reqpos[14]" not assigned to PV

    Variable "motor_reqpos[15]" not assigned to PV

    Variable "motor_reqpos[16]" not assigned to PV

    Variable "motor_reqpos[17]" not assigned to PV

    Variable "motor_reqpos[18]" not assigned to PV

    Variable "motor_reqpos[19]" not assigned to PV

    Variable "motor_pos[0]" connected to PV "mm4006_1_1_1:pos"

    Variable "motor_pos[1]" connected to PV "mm4006_1_1_2:pos"

    Variable "motor_pos[2]" not assigned to PV

    Variable "motor_pos[3]" not assigned to PV

    Variable "motor_pos[4]" not assigned to PV

    Variable "motor_pos[5]" not assigned to PV

    Variable "motor_pos[6]" not assigned to PV

    Variable "motor_pos[7]" not assigned to PV

    Variable "motor_pos[8]" not assigned to PV

    Variable "motor_pos[9]" not assigned to PV

    Variable "motor_pos[10]" not assigned to PV

    Variable "motor_pos[11]" not assigned to PV

    Variable "motor_pos[12]" not assigned to PV

    Variable "motor_pos[13]" not assigned to PV

    Variable "motor_pos[14]" not assigned to PV

    Variable "motor_pos[15]" not assigned to PV

    Variable "motor_pos[16]" not assigned to PV

    Variable "motor_pos[17]" not assigned to PV

    Variable "motor_pos[18]" not assigned to PV

    Variable "motor_pos[19]" not assigned to PV

    Variable "detector_reqstart[0]" not connected to PV "ortec_1_1_1:reqstart"

    Variable "detector_reqstart[1]" not assigned to PV

    Variable "detector_reqstart[2]" not assigned to PV

    Variable "detector_reqstart[3]" not assigned to PV

    Variable "detector_reqstart[4]" not assigned to PV

    Variable "detector_reqstart[5]" not assigned to PV

    Variable "detector_reqstart[6]" not assigned to PV

    Variable "detector_reqstart[7]" not assigned to PV

    Variable "detector_reqstart[8]" not assigned to PV

    Variable "detector_reqstart[9]" not assigned to PV

    Variable "detector_reqstart[10]" not assigned to PV

    Variable "detector_reqstart[11]" not assigned to PV

    Variable "detector_reqstart[12]" not assigned to PV

    Variable "detector_reqstart[13]" not assigned to PV

    Variable "detector_reqstart[14]" not assigned to PV

    Variable "detector_reqstart[15]" not assigned to PV

    Variable "detector_reqstart[16]" not assigned to PV

    Variable "detector_reqstart[17]" not assigned to PV

    Variable "detector_reqstart[18]" not assigned to PV

    Variable "detector_reqstart[19]" not assigned to PV

    Variable "detector_reqready[0]" not connected to PV "ortec_1_1_1:reqready"

    Variable "detector_reqready[1]" not assigned to PV

    Variable "detector_reqready[2]" not assigned to PV

    Variable "detector_reqready[3]" not assigned to PV

    Variable "detector_reqready[4]" not assigned to PV

    Variable "detector_reqready[5]" not assigned to PV

    Variable "detector_reqready[6]" not assigned to PV

    Variable "detector_reqready[7]" not assigned to PV

    Variable "detector_reqready[8]" not assigned to PV

    Variable "detector_reqready[9]" not assigned to PV

    Variable "detector_reqready[10]" not assigned to PV

    Variable "detector_reqready[11]" not assigned to PV

    Variable "detector_reqready[12]" not assigned to PV

    Variable "detector_reqready[13]" not assigned to PV

    Variable "detector_reqready[14]" not assigned to PV

    Variable "detector_reqready[15]" not assigned to PV

    Variable "detector_reqready[16]" not assigned to PV

    Variable "detector_reqready[17]" not assigned to PV

    Variable "detector_reqready[18]" not assigned to PV

    Variable "detector_reqready[19]" not assigned to PV

    Variable "detector_ready[0]" not connected to PV "ortec_1_1_1:ready"

    Variable "detector_ready[1]" not assigned to PV

    Variable "detector_ready[2]" not assigned to PV

    Variable "detector_ready[3]" not assigned to PV

    Variable "detector_ready[4]" not assigned to PV

    Variable "detector_ready[5]" not assigned to PV

    Variable "detector_ready[6]" not assigned to PV

    Variable "detector_ready[7]" not assigned to PV

    Variable "detector_ready[8]" not assigned to PV

    Variable "detector_ready[9]" not assigned to PV

    Variable "detector_ready[10]" not assigned to PV

    Variable "detector_ready[11]" not assigned to PV

    Variable "detector_ready[12]" not assigned to PV

    Variable "detector_ready[13]" not assigned to PV

    Variable "detector_ready[14]" not assigned to PV

    Variable "detector_ready[15]" not assigned to PV

    Variable "detector_ready[16]" not assigned to PV

    Variable "detector_ready[17]" not assigned to PV

    Variable "detector_ready[18]" not assigned to PV

    Variable "detector_ready[19]" not assigned to PV

    Variable "detector_reqdata[0]" not connected to PV "ortec_1_1_1:reqdata"

    Variable "detector_reqdata[1]" not assigned to PV

    Variable "detector_reqdata[2]" not assigned to PV

    Variable "detector_reqdata[3]" not assigned to PV

    Variable "detector_reqdata[4]" not assigned to PV

    Variable "detector_reqdata[5]" not assigned to PV

    Variable "detector_reqdata[6]" not assigned to PV

    Variable "detector_reqdata[7]" not assigned to PV

    Variable "detector_reqdata[8]" not assigned to PV

    Variable "detector_reqdata[9]" not assigned to PV

    Variable "detector_reqdata[10]" not assigned to PV

    Variable "detector_reqdata[11]" not assigned to PV

    Variable "detector_reqdata[12]" not assigned to PV

    Variable "detector_reqdata[13]" not assigned to PV

    Variable "detector_reqdata[14]" not assigned to PV

    Variable "detector_reqdata[15]" not assigned to PV

    Variable "detector_reqdata[16]" not assigned to PV

    Variable "detector_reqdata[17]" not assigned to PV

    Variable "detector_reqdata[18]" not assigned to PV

    Variable "detector_reqdata[19]" not assigned to PV

    Variable "detector_data[0]" not connected to PV "ortec_1_1_1:data"

    Variable "detector_data[1]" not assigned to PV

    Variable "detector_data[2]" not assigned to PV

    Variable "detector_data[3]" not assigned to PV

    Variable "detector_data[4]" not assigned to PV

    Variable "detector_data[5]" not assigned to PV

    Variable "detector_data[6]" not assigned to PV

    Variable "detector_data[7]" not assigned to PV

    Variable "detector_data[8]" not assigned to PV

    Variable "detector_data[9]" not assigned to PV

    Variable "detector_data[10]" not assigned to PV

    Variable "detector_data[11]" not assigned to PV

    Variable "detector_data[12]" not assigned to PV

    Variable "detector_data[13]" not assigned to PV

    Variable "detector_data[14]" not assigned to PV

    Variable "detector_data[15]" not assigned to PV

    Variable "detector_data[16]" not assigned to PV

    Variable "detector_data[17]" not assigned to PV

    Variable "detector_data[18]" not assigned to PV

    Variable "detector_data[19]" not assigned to PV

    Variable "detector_type[0]" not connected to PV "ortec_1_1_1:type"

    Variable "detector_type[1]" not assigned to PV

    Variable "detector_type[2]" not assigned to PV

    Variable "detector_type[3]" not assigned to PV

    Variable "detector_type[4]" not assigned to PV

    Variable "detector_type[5]" not assigned to PV

    Variable "detector_type[6]" not assigned to PV

    Variable "detector_type[7]" not assigned to PV

    Variable "detector_type[8]" not assigned to PV

    Variable "detector_type[9]" not assigned to PV

    Variable "detector_type[10]" not assigned to PV

    Variable "detector_type[11]" not assigned to PV

    Variable "detector_type[12]" not assigned to PV

    Variable "detector_type[13]" not assigned to PV

    Variable "detector_type[14]" not assigned to PV

    Variable "detector_type[15]" not assigned to PV

    Variable "detector_type[16]" not assigned to PV

    Variable "detector_type[17]" not assigned to PV

    Variable "detector_type[18]" not assigned to PV

    Variable "detector_type[19]" not assigned to PV

 

************************************

Dr. Dariush Hampai, PhD

INFN - LNF
X-Lab Frascati
Via E. Fermi, 54 (ex 40)
I-00044 Frascati (RM)
Italy

 

Mail Address:

XLab-Frascati

LNF-INFN

Casella Postale 13

Frascati (RM)

Italy


Room: +39.06.9403.5248
Lab.: +39.06.9403.2286
Mob.: +39.06.9403.8025
Fax.: +39.06.9403.2597

************************************



Il giorno 8 gen 2026, alle ore 19:19, Žiga Oven <ziga.oven at cosylab.com> ha scritto:

 

Hi Dariush,

I would check is if the IOC that runs the sequencer has access to the PVs in the other (I assume motor) IOCs.

If you issue the command "seqcar 2" on the IOC that runs the sequencer, this should report the status of the sequencer's access to the PVs.

Sequencer does provide you option to force all PVs to be connected before it starts the program execution, by using the "+c" option during the compile time
https://epics-modules.github.io/sequencer/Compiling.html?highlight=options#compiler-options

Best regards,

Žiga



-----Original Message-----
From: Tech-talk <tech-talk-bounces at aps.anl.gov> On Behalf Of Dariush Hampai
via Tech-talk
Sent: Thursday, January 8, 2026 10:20
To: tech-talk at aps.anl.gov
Subject: problems with SNL - sevr=minor ca_array_get_callback [...]: Virtual
circuit disconnect

Caution: This email originated from outside of Cosylab.


Dear Community,
Dear Mark and Maurizio,

I'll try to explain my error from which I'm not able to resolve.
I developped a SNL sequencer ablo to make a raster scan with 20 motors (but
scalable to how many motors needed) and 20 detectors (same as motors
number...).
In the link you can find the code (up to now I only use "xena_snscan.stt", as the
other ones will be the same)
https://urldefense.us/v3/__https://github.com/Teclis77/Scan-
Program__;!!G_uCfscf7eWS!aPQyj4WdR7O49u2p_NU4H2lPpTDgz2o1XaIePmA
WaJUE8f9HK3CQHpkDwIJWzSP9xdgUviafCfyswv0QGFHqZ1y-Th_61Np0-g$

To test the scan I use procServ in order to start contemporary 3 different IOCs
(mm4006 for motors, ortec for detector and the scan). Up to here all is ok.
Using telnet I can monitor the scan IOC and after populate the
1) number of motors;
2) number of detectors;
3) name of motor IOCs involved in the scan;
4) name of detector IOCs involved in the scan;
5) start position for each motor;
6) end position for each motor;
7) step position for each motor
I prepare the the loop using difdferent status_mode value (1 for populate
motor variables in stt file, 2 for detector variables, 3 for defing the loop
parameters) When I initialize the scan (status_mode=4), I have a strange error.
Knowing that the variables (for motor_ma, but for the other are the same
procedures) are built (in xena_sncscan.stt) as

***
sprintf(temp_string, "%s:%s", motor[i], setma); printf("%s\n", temp_string);
pvAssign(motor_ma[i],temp_string);
sprintf(temp_string, "%s:%s", motor[i], reqmoving); printf("%s\n",
temp_string); pvAssign(motor_reqmov[i],temp_string);
sprintf(temp_string, "%s:%s", motor[i], moving); printf("%s\n", temp_string);
pvAssign(motor_mov[i],temp_string);
sprintf(temp_string, "%s:%s", motor[i], pos); printf("%s\n", temp_string);
pvAssign(motor_pos[i],temp_string);
***

with the output correct form "mm4006_1_1_1:setma",
"mm4006_1_1_1:reqmoving", "mm4006_1_1_1:moving" and
"mm4006_1_1_1:pos"
(these strings work right with caput command in other cmd so they are ok)

and the status_mode=4 is the following
/*=================== Preparing Scan =========================*/
/*=================== status_mode = 4 ========================*/
        state prepare_loop {
                when () {
                        for (i = 0; i < num_mot; i++) {
                                printf("motor to move = %d\n", i);
                                printf("start[%d]= %f\n", i, start[i]);
                                motor_ma[i]=start[i];
                                pvPut(motor_ma[i],SYNC);
                                motor_reqmov[i]=1;
                                pvPut(motor_reqmov[i],SYNC);
                                pvGet(motor_mov[i],SYNC);
                                while(motor_mov[i]<1) {
                                        motor_reqmov[i]=1; pvPut(motor_reqmov[i],SYNC);
                                        pvGet(motor_mov[i],SYNC);
                                }
                                pvGet(motor_pos[i], SYNC);
                        }
                        flags[0]=1; // Necessary to start the run
                        strcpy(actual_status, "Ready to Start");
                        pvPut(actual_status,SYNC);
                        status_mode=0;
                        pvPut(status_mode);
                } state dummy_loop
        }

in the "telnet" prompt I have the following exit sevr=minor
ca_array_get_callback( typeToCA(type), count, var->chid, pvCaGetHandler, arg):
Virtual circuit disconnect

coming from:
pvPut(motor_ma[i],SYNC);

using seqChanShow xena_sncscan I obtain

#9 of 263:
  Variable name: "start"
    type = double
    count = 20
  Value = 1000 1500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
  Assigned to "xena:start"
  Connected
  Monitored
  Not sync'ed
  Status = 0
  Severity = 0
  Message =
  Time stamp = 2026-01-08 17:26:57.769209 Next? (+/- skip count)

and

#43 of 263:
  Variable name: "motor_ma[0]"
    type = double
    count = 1
  Value = 1000
  Assigned to "mm4006_1_1_1:setma"
  Not connected
  Monitored
  Not sync'ed
  Status = -2
  Severity = -1
  Message = disconnected
  Time stamp = <undefined>
Next? (+/- skip count)

what I'm wrong?
awaiting your replies...

Dariush

--
************************************

Dr. Dariush Hampai, PhD

INFN - LNF
X-Lab Frascati
Via E. Fermi, 54 (ex 40)
I-00044 Frascati (RM)
Italy

Mail Address:
XLab-Frascati
LNF-INFN
Casella Postale 13
Frascati (RM)
Italy

Room:   +39.06.9403.5248
Lab.:   +39.06.9403.2286
Mob.:   +39.06.9403.8025
Fax.:   +39.06.9403.2597

************************************

 

 

-- 
************************************
 
Dr. Dariush Hampai, PhD
 
INFN - LNF
X-Lab Frascati
Via E. Fermi, 54 (ex 40)
I-00044 Frascati (RM)
Italy
 
Mail Address:
XLab-Frascati
LNF-INFN
Casella Postale 13
Frascati (RM)
Italy
 
Room:  +39.06.9403.5248
Lab.:  +39.06.9403.2286
Mob.:  +39.06.9403.8025
Fax.:  +39.06.9403.2597
 
************************************

References:
problems with SNL - sevr=minor ca_array_get_callback [...]: Virtual circuit disconnect Dariush Hampai via Tech-talk
RE: problems with SNL - sevr=minor ca_array_get_callback [...]: Virtual circuit disconnect Žiga Oven via Tech-talk
Re: problems with SNL - sevr=minor ca_array_get_callback [...]: Virtual circuit disconnect Dariush Hampai via Tech-talk
Re: problems with SNL - sevr=minor ca_array_get_callback [...]: Virtual circuit disconnect Dariush Hampai via Tech-talk

Navigate by Date:
Prev: Re: problems with SNL - sevr=minor ca_array_get_callback [...]: Virtual circuit disconnect Dariush Hampai via Tech-talk
Next: RE: Archiver Appliance stuck on initial sampling Dennis Hilhorst 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  2025  <2026
Navigate by Thread:
Prev: Re: problems with SNL - sevr=minor ca_array_get_callback [...]: Virtual circuit disconnect Dariush Hampai via Tech-talk
Next: The motor module is unable to control the PM600 motor. LONG FENG 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  2025  <2026
ANJ, 19 Mar 2026 · Home · News · About · Talk · Base · Modules · Extensions ·
· Distributions · Download · Documents · Links · Licensing ·