|
|
Experimental Physics and
| ||||||||||||||
|
|
Fundamentally, it should work like this:
record(waveform, “Source”)
{
field(FTVL, “DOUBLE")
field(NELM, "4096”)
}
record(waveform, “Destination”)
{
field(FTVL, “DOUBLE")
field(NELM, "4096”)
field(INP, “Source”)
field(SCAN, “1 second”)
}
Assume that the “Source” waveform somehow gets populated with data.
The “Destination” waveform will read the current value from the “Source” every second.
If you place both records in the same IOC, the data flows within the IOC.
If you place both records in separate IOCs, the data flows over the network without you having to do anything special as long as the two IOCs are on the same network.
… but that network traffic will use Channel Access, even if you have added PVAccess to the IOC.
Mind you, it should be just fine for the IOCs to communicate amongst each other via Channel Access, after all that’s been perfect for the last 30 years of EPICS.
But say you really want to force the IOC-to-IOC network traffic to use PVAccess.
Ideally, there would be a global IOC flag like
setIocNetworkMode(“PVA”)
At this time, that doesn’t exist.
When you use PVXS, you can force _individual_ links to use PVA, see
https://epics-base.github.io/pvxs/pvalink.html
So you’d change
field(INP, “Source”)
into something like
field(INP, {pva:{pv:”Source"}})
and now that one INP link will use PVA.
That might be necessary if you need for that one link to really use PVA.
It’s not practical for all INP and OUT links to use that syntax, and you also lose the nice feature that local links automatically change into network links as you move records between IOCs.
----
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).
| ||||||||||||||
| ANJ, 26 Mar 2026 |
·
Home
·
News
·
About
·
Talk
·
Base
·
Modules
·
Extensions
·
· Distributions · Download · Documents · Links · Licensing · |