Experimental Physics and Industrial Control System
Title: Message
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.
- Replies:
- Re: calc record LINK error Emmanuel Mayssat
- Navigate by Date:
- Prev:
Re: genSub subroutine compilation and ioc access Andy Foster
- Next:
TTL output with soft IOC on Linux Jiro Fujita
- 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:
Operations Engineer Position at Gemini North Matt Rippa
- Next:
Re: calc record LINK error Emmanuel Mayssat
- 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