Hello community, I am writing to see if you can guide me in solving the following problem we are having.
We have an IOC compiled for VxWorks with EPICS version 3.13.9. We have simplified this IOC and its database has only one record "Analog Input" which you can see below.
record(ai, "
iocE7:aiExample")
{
field(DESC, "Analog Input")
field(INP, "software:calcExample.VAL NPP NMS")
.....
}
The problem we have is that we have created two softIOCs with the tool makeBaseApp.pl. One of them with the EPICS version (3.15.8.1-DEV-pdev2) and the other with the latest version of EPICS 7 (7.0.6.2-DEV). When the IOC communicates with the EPICS 7 softIOC (calc software:calcExample.VAL record), the iocE7:aiExample record cannot be processed. Below I show the output of the dbtr command of the iocE7:aiExample record, where you can see the STAT and SEVR fields.
ACKS: INVALID ACKT: YES ADEL: 0 ALST: 0
AOFF: 0 ASG: ASLO: 1 BKPT: 0x00
DESC: Analog input DISA: 0 DISP: 0 DISS: NO_ALARM
DISV: 1 DTYP: Soft Channel EGU: Counts EGUF: 10
EGUL: 0 EOFF: 0 ESLO: 1 EVNT: 0
FLNK:CONSTANT 0 HHSV: MAJOR HIGH: 6 HIHI: 8
HOPR: 10 HSV: MINOR HYST: 0 INIT: 0
INP:CA_LINK software:calcExample.VAL NPP NMS LALM: 0
LBRK: 0 LCNT: 0 LINR: NO CONVERSION LLSV: MAJOR
LOLO: 2 LOPR: 0 LOW: 4 LSV: MINOR
MDEL: 0 MLST: 0 NAME: iocE7:aiExample
NSEV: NO_ALARM NSTA: NO_ALARM ORAW: 0 PACT: 0
PHAS: 0 PINI: NO PREC: 0 PRIO: LOW
PROC: 0 PUTF: 0 ROFF: 0 RPRO: 0
RVAL: 0 SCAN: Passive SDIS:CONSTANT SEVR: INVALID
SIML:CONSTANT SIMM: NO SIMS: NO_ALARM SIOL:CONSTANT
SMOO: 0 STAT: LINK SVAL: 0 TPRO: 0
TSE: 0 TSEL:CONSTANT UDF: 1 VAL: 0
However, when we deploy the softIOC with EPICS version 3.15.8.1-DEV-pdev2, the IOC (VxWorks) can communicate with the softIOC and the “
iocE7:aiExample '' record is processed correctly. Both softIOCs have been deployed on the same machine. Ruling out that it is a problem with the machine itself.
Looking at the EPICS (3.13.9) code, in the line "if(!pca->chid || ca_state(pca->chid) != cs_conn)" of the dbCaGetLink function (dbCa.c file), the ca_state returns
cs_never_conn (valid chid, IOC not found) when trying to communicate with the
EPICS 7 softIOC. While in the
EPICS (3.15.8.1) softIOC the returned value is
cs_conn (valid chid, IOC was found, still available).
I don't know if EPICS 7 should be compatible with version ( 3.13.9 ), if not, I would appreciate if you could guide us on how to fix it. Right now we are not planning to migrate the subsystems we have compiled with that version of EPICS.
Thank you in advance.