Experimental Physics and
| |||||||||||||||
|
I have a calc record
that somehow occasionally goes into link error and seems never to recover when
it should. The purpose of the record is to generate a status based on four motor
records by picking up the MOVN and SEVR fields.
record(calc, "BL22I-AL-SLITS-02:MOTORSTA") {
field(SCAN, "1 second") field(CALC, "(A|B|C|D)>0?1:0") field(INPA, "BL22I-AL-SLITS-02:X:PLUS.MOVN CP MS") field(INPB, "BL22I-AL-SLITS-02:X:MINUS.MOVN CP MS") field(INPC, "BL22I-AL-SLITS-02:Y:PLUS.MOVN CP MS") field(INPD, "BL22I-AL-SLITS-02:Y:MINUS.MOVN CP MS") field(ACKT, "NO") } All the records are
in a single IOC. When it goes wrong the calc record goes into LINK error and
does not recover even when the four motor records appear OK. I tried poking PROC
on the calc record but this had no effect. The only way I could get the calc
record to start updating correctly again was to either re-write the INPx links
or to do a move on the motors so that MOVN changed. I think this behaviour is
incorrect in that the calc record should have updated when I sent PROC or
at the scan rate? Have I missed something?
For the record we
are running 3.14.8.2 on VxWorks.
The calc record
status is as follows when its stuck in its LINK error
state:-
BL22I-MO-IOC-01 -> dbpr
"BL22I-AL-SLITS-02:MOTORSTA",2
A: 0 ACKS: INVALID ACKT: NO ADEL: 0 ASG: B: 0 BKPT: 0x00 C: 0 CALC: (A|B|C|D|E|F|G|H|I|J|K|L)>0?1:0 D: 0 DESC: DISA: 0 DISP: 0 DISS: NO_ALARM DISV: 1 DTYP: <nil> E: 0 EGU: EVNT: 0 F: 0 FLNK:CONSTANT 0 G: 0 H: 0 HHSV: NO_ALARM HIGH: 0 HIHI: 0 HOPR: 0 HSV: NO_ALARM HYST: 0 I: 0 INPA:CA_LINK BL22I-AL-SLITS-02:X:PLUS.MOVN CP MS INPB:CA_LINK BL22I-AL-SLITS-02:X:MINUS.MOVN CP MS INPC:CA_LINK BL22I-AL-SLITS-02:Y:PLUS.MOVN CP MS INPD:CA_LINK BL22I-AL-SLITS-02:Y:MINUS.MOVN CP MS INPE:CONSTANT 0 INPF:CONSTANT 0 INPG:CONSTANT 0 INPH:CONSTANT 0 INPI:CONSTANT 0 INPJ:CONSTANT 0 INPK:CONSTANT 0 INPL:CONSTANT 0 J: 0 K: 0 L: 0 LCNT: 0 LLSV: NO_ALARM LOLO: 0 LOPR: 0 LOW: 0 LSV: NO_ALARM MDEL: 0 NAME: BL22I-AL-SLITS-02:MOTORSTA NSEV: NO_ALARM NSTA: NO_ALARM PACT: 0 PHAS: 0 PINI: NO PREC: 0 PRIO: LOW PUTF: 0 RPRO: 0 SCAN: 1 second SDIS:CONSTANT SEVR: INVALID STAT: LINK TPRO: 0 TSE: 0 TSEL:CONSTANT UDF: 0 VAL: 0 value = 0 = 0x0 The input motor
records are all OK showing no alarms:-
BL22I-MO-IOC-01 -> dbpr
"BL22I-AL-SLITS-02:X:PLUS"
ASG: ATHM: 1 CDIR: 0 CNEN: Disable DESC: X Plus Motor DHLM: 0 DIFF: 0 DISA: 0 DISP: 0 DISV: 1 DLLM: -20.7745 DMOV: 1 DRBV: -15.507 DVAL: -15.507 HLM: 16.607 HLS: 0 LLM: -4.1675 LLS: 0 LVIO: 0 MOVN: 0 NAME: BL22I-AL-SLITS-02:X:PLUS OFF: 16.607 RBV: 1.1 RDIF: 0 REP: 31011 RHLS: 0 RLLS: 0 RLV: 0 RMP: 31014 RRBV: 31014 RVAL: 31014 SEVR: NO_ALARM STAT: NO_ALARM TDIR: 1 TPRO: 0 VAL: 1.1 VERS: 6.222 value = 0 = 0x0 Pete
Leicester
------------------------
Mr P J Leicester
Senior Software Engineer
Diamond Light Source
Ltd.
| ||||||||||||||
ANJ, 02 Sep 2010 |
·
Home
·
News
·
About
·
Base
·
Modules
·
Extensions
·
Distributions
·
Download
·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing · |