|
On 3/25/26 12:13 PM, Varuna Crishan
Meddage via Tech-talk wrote:
I am trying to create a waveform record in my IOC that takes its
values from a remote PV hosted on another serverusing EPICS
PVAccess (PVA).
Here’s what I want to achieve:
-
Define a waveform record locally (e.g.,
LOCAL:WF)
-
Subscribe to a remote PV (e.g.,
REMOTE:ARRAY:PV)
on a server with a known IP address and port
-
Automatically update the waveform at a set scan rate
Take a look at PVA links:
https ://epics-base.github.io/pvxs/pvalink.html
https
://github.com/epics-base/pvxs/blob/6f7942e4af38a0b84630deb837f2b7bccf53a62a/test/testpvalink.db#L64-L68
I am unsure about the exact configuration. Specifically, I would
like guidance on:
-
Waveform record DB definition – how should the
DTYP and
INP fields be set to read from the remote PV?
For input type records "INP". You will also want the "CP" or
"CPP" modifier to process on subscription update.
-
Specifying the server IP and port in the
INP field.
The PV name lookup process is configured the same as for any PVA
client. eg. using the $EPICS_PVA_ADDR_LIST
-
Specific DBD
files and libraries that need to be included to achieve this
goal.
pvxsIoc.dbd
-
Any pitfalls, such as array size (
NELM) matching
or data type requirements.
As usual, NELM (capacity) needs to be large enough.
For example, would a record like this work?
=================================================
record(waveform, "LOCAL:WF") {
field(DTYP, "pvaClientWaveform")
field(SCAN, "1 second")
field(NELM, "4096")
}
Something like:
record(aai, "testToFromString:str2") {
field(FTVL, "DOUBLE")
field(NELM, "4096")
field(INP , {pva:{pv:"PVA:REMOTE:ARRAY:PV", "proc":"CPP"}})
}
===============================================
I would greatly appreciate any example .db record,
IOC DBD configuration, or startup instructions for properly
using a remote PV with waveform records via PVA.
My base EPICS version is : epics-base-R7.0.9-328
Thanks
Varuna Meddage
|