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  <20222023  2024  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  <20222023  2024 
<== Date ==> <== Thread ==>

Subject: RE: Conversion error when using (pvapy served) PVA input link in a "bi" record
From: Nicklas Holmberg via Tech-talk <tech-talk at aps.anl.gov>
To: Michael Davidsaver <mdavidsaver at gmail.com>
Cc: "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov>
Date: Tue, 17 May 2022 07:34:14 +0000
Hi,

Thanks! But what EPICS record type should I then use to read a PVA Boolean type, like the "plc-ts:ptp:synchronized" PV described below? My end goal is to have a PV served from my IOC, which can be picked up by the Archiver service.

Best regards,

Nicklas Holmberg
Senior Engineer
Hardware and Integration Group
ICS Division
+46761680660

-----Original Message-----
From: Michael Davidsaver <mdavidsaver at gmail.com> 
Sent: den 17 maj 2022 07:29
To: Nicklas Holmberg <nicklas.holmberg at ess.eu>
Cc: tech-talk at aps.anl.gov
Subject: Re: Conversion error when using (pvapy served) PVA input link in a "bi" record

On 5/16/22 04:47, Nicklas Holmberg via Tech-talk wrote:
> Hi,
> 
> I am using pva input links for two different records, a longin and a bi record. The “longin” record works without any problem, but the “bi” does not.

This is the expected behavior of QSRV as currently defined.
A biRecord (enumeration with two labels) isn't the same as a PVA boolean type.  To map into bi or mbbi records, your PVA server should provide an NTEnum.


> The error shown in the IOC shell is:
> 
> pvaLink long int {anonymous}::pvaGetValue(DBLINK*, short int, void*, 
> long int*) fails my-bi:pvapy-bool: castUnsafeV: Conversion not 
> supported
> 
> which, of course, repeats every time the record is processed.
> 
> The PVs are served from a python pvapy application, and I have no problem reading them using general EPICS commands like pvget, pvinfo, etc. I use them as input links to the bi and longin records like this:
> 
> record(longin, "my-longin:pvapy-int"){
> 
> field(INP,      {pva:{
> 
>                  pv:"plc-ts:PLC:ts_1252_ns",
> 
>                  proc:"CPP"
> 
>            }})
> 
> }
> 
> record(bi, "my-bi:pvapy-bool"){
> 
> field(INP,      {pva:{
> 
>                  pv:"plc-ts:ptp:synchronized ",
> 
>                  proc:"CPP"
> 
>             }})
> 
> }
> 
> The IOC uses EPICS 7.0.6.1 and the following st.cmd:
> 
> #!/usr/bin/env iocsh.bash
> 
> dbLoadRecords("nsrecord.db")
> 
> iocInit()
> 
> Doing “pvinfo” on the incoming PVs show:
> 
> $ pvinfo plc-ts:ptp:synchronized
> 
> plc-ts:ptp:synchronized
> 
> Server: 10.102.10.19:5075
> 
> Type:
> 
>      epics:nt/NTScalar:1.0
> 
>          boolean value
> 
>          string descriptor
> 
>          structure alarm
> 
>              int severity
> 
>              int status
> 
>              string message
> 
>          structure timeStamp
> 
>              long secondsPastEpoch
> 
>              int nanoseconds
> 
>              int userTag
> 
>          structure display
> 
>              double limitLow
> 
>              double limitHigh
> 
>              string description
> 
>              string format
> 
>              string units
> 
>          structure control
> 
>              double limitLow
> 
>              double limitHigh
> 
>              double minStep
> 
> $ pvinfo plc-ts:PLC:ts_1252_ns
> 
> plc-ts:PLC:ts_1252_ns
> 
> Server: 10.102.10.19:5075
> 
> Type:
> 
>      epics:nt/NTScalar:1.0
> 
>          string value
> 
>          string descriptor
> 
>          structure alarm
> 
>              int severity
> 
>              int status
> 
>              string message
> 
>          structure timeStamp
> 
>              long secondsPastEpoch
> 
>              int nanoseconds
> 
>              int userTag
> 
>          structure display
> 
>              double limitLow
> 
>              double limitHigh
> 
>              string description
> 
>              string format
> 
>              string units
> 
>          structure control
> 
>              double limitLow
> 
>              double limitHigh
> 
>              double minStep
> 
> ______________________
> 
> *Nicklas Holmberg*
> 
> Senior Engineer, ICS HWI
> 
> *European Spallation Source ERIC*
> 
> P.O. Box 176, SE-221 00 Lund, Sweden
> 
> Visiting address: Partikelgatan 2, 224 84 Lund
> 
> Mobile: +46 76 168 06 60
> 
> E-mail: nicklas.holmberg at ess.eu <mailto:nicklas.holmberg at ess.eu>__
> 
> ess.eu <ess.eu>__
> 


References:
Conversion error when using (pvapy served) PVA input link in a "bi" record Nicklas Holmberg via Tech-talk
Re: Conversion error when using (pvapy served) PVA input link in a "bi" record Michael Davidsaver via Tech-talk

Navigate by Date:
Prev: Segmentation fault (core dumped) Error cl47cl--- via Tech-talk
Next: P4P monitor get pvname Florian Feldbauer 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  <20222023  2024 
Navigate by Thread:
Prev: Re: Conversion error when using (pvapy served) PVA input link in a "bi" record Michael Davidsaver via Tech-talk
Next: Segmentation fault (core dumped) Error cl47cl--- 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  <20222023  2024 
ANJ, 14 Sep 2022 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·