Problem resolved.
________________________________
From: Amien TLABS [[email protected]]
Sent: Friday, May 31, 2013 9:56 AM
To: Mark Rivers
Subject: Re: calcout OUT field to ASYN fails...
Hi Mark
I found my problem and it has nothing to do with the records.
It looks like my camonitors does not get updated, mainly because I'm on a different domain.
Thanks to all.
Amien
On 31-May-2013 16:19, Mark Rivers wrote:
Hi Amien,
Your “range” record is connected to an asyn port driver called “int32”, and it is using asyn address “$(mux)”. What kind of asyn port driver is that, and who wrote it?
My first suspicion would be a problem with that port driver.
What OS are you running on? When you says the IOC “fails” do you mean that it crashes with a segmentation fault? If so, and if this is Linux, you can debug with the “gdb” debugger. One way to do that is to get a core dump file and run gdb on it. If you are using the csh or derivative type the following command to enable core dumps:
limit core 10000
If you are running bash type the following command:
ulimit -c 10000
Now when you run your IOC application and it fails you will get a coredump file, core.xxxxx.
Now run gdb on the core file as follows:
gdb path/to/my/IOC/application core.xxxxxx
At the gdb prompt type the following command
backtrace
That will show the stack trace at the point where the application failed. That can usually help figure out what went wrong.
Mark
From: [email protected]<mailto:[email protected]> [mailto:[email protected]] On Behalf Of Amien TLABS
Sent: Friday, May 31, 2013 8:08 AM
To: [email protected]<mailto:[email protected]>
Subject: calcout OUT field to ASYN fails...
Hi
I have the following records and the 'calcout' OUT field causes the IOC to fail
record(ao,"$(harp):range") {
field(DTYP, "asynInt32")
field(OUT, "@asyn(int32 $(mux))")
field(FLNK, "$(harp):checkrange")
}
record(ai, "$(harp):trigger") {
field(DTYP, "Soft Channel")
field(SCAN, "Passive")
field(FLNK, "$(harp):checktrig")
}
record(fanout, "$(harp):checktrig") {
#field(SCAN, "Passive")
field(LNK1, "$(harp):triggerOFF PP")
field(LNK2, "$(harp):triggerON PP")
field(SELL, "$(harp):trigger")
field(SELM, "Specified")
}
#####################################################################
record(calcout, "$(harp):triggerOFF") {
field(SCAN, "1 second")
field(DTYP, "Soft Channel")
field(INPA, "$(harp):trigger")
field(INPB, "$(harp):range")
field(OOPT, "On Change")
field(DOPT, "Use CALC")
field(CALC, "(A==0) && (B>10)?(B-10):B")
field(OUT, "$(harp):range PP") # THIS fails and stops the IOC
}
I can change the 'range' from any client though. It's only when I try it from within my db file.
Anyone know what I'm doing wrong ?
thanks
Amien
- References:
- calcout OUT field to ASYN fails... Amien TLABS
- RE: calcout OUT field to ASYN fails... Mark Rivers
- Navigate by Date:
- Prev:
RE: calcout OUT field to ASYN fails... Mark Rivers
- Next:
RE: EPICS Archive appliance Williams Jr., Ernest L.
- 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: calcout OUT field to ASYN fails... Mark Rivers
- Next:
EPICS Archive appliance Phillip Sorensen
- 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
|