Hello All,
My waveform records need to retrieve data from as well as
write data to the hardware, and they contain 2048 float elements, for
all these records, it works well with caget or edm X-Y graph.
However, when I use "caput -a" to put an array of data
(specifically more than 409 elements) to these waveform records, error
occurs like this on CAC and CAS respectively,
CA.Client.Exception...............................................
Warning: "The requested data transfer is greater than available memory or
EPICS_CA_MAX_ARRAY_BYTES"
Context: "op=1,
channel=rcs:cpci9110:wf_wr_1, type=DBR_STRING, count=2048, ctx="CAS: Server
unable to load large request message. Max
bytes=16408""
Source File: ../oldChannelNotify.cpp
line 159
Current Time: Wed May 30 2012
16:57:42.333264000
-> CAS: request from 192.168.206.74:33159 => "CAS:
server unable to load large request message"
CAS: Request from
192.168.206.74:33159 => cmmd=4 cid=0x12 type=0 count=2048
postsize=81920
CAS: Request from 192.168.206.74:33159 =>
available=0x1 N=0
paddr=0x3bbcc52c
The environment variable EPICS_CA_MAX_ARRAY_BYTES on
both CA client and server is 16384, and when I use "caput -a
rcs:cpci9110:wf_wr_1 2048 ... list of elements ..." with the list of
elements less than or equal to 409, it works,
whereas if the list exceeds 409, the above error
occurs.
One of the waveform records is as follows, and the
envrionment is EPICS-3.14.12.1/vxWorks5.5.1/CPCI-6020,
record(waveform,"rcs:cpci9110:wf_wr_1")
{
field(DTYP,"CPCI9110
WRITE")
field(INP,"#C0 S
@WF_WR_1")
field(NELM,"2048")
field(FTVL,"FLOAT")
}
The following are some related environment
variables,
[cpci@console101 ~]$ printenv | grep
EPICS
EPICS_BASE=/home/cpci/base-3.14.12.1
EPICS_EXTENSIONS=/home/epics/extensions
EPICS_HOST_ARCH=linux-x86
EPICS_CA_MAX_ARRAY_BYTES=16384
-> epicsPrtEnvParams
EPICS_AR_PORT:
7002
EPICS_CAS_AUTO_BEACON_ADDR_LIST is
undefined
EPICS_CAS_BEACON_ADDR_LIST is
undefined
EPICS_CAS_BEACON_PERIOD is undefined
EPICS_CAS_BEACON_PORT
is undefined
EPICS_CAS_IGNORE_ADDR_LIST is
undefined
EPICS_CAS_INTF_ADDR_LIST is undefined
EPICS_CAS_SERVER_PORT
is undefined
EPICS_CA_ADDR_LIST is undefined
EPICS_CA_AUTO_ADDR_LIST:
YES
EPICS_CA_BEACON_PERIOD: 15.0
EPICS_CA_CONN_TMO:
30.0
EPICS_CA_MAX_ARRAY_BYTES: 16384
EPICS_CA_MAX_SEARCH_PERIOD:
300.0
EPICS_CA_NAME_SERVERS is undefined
EPICS_CA_REPEATER_PORT:
5065
EPICS_CA_SERVER_PORT: 5064
EPICS_CMD_PROTO_PORT is
undefined
EPICS_IOC_LOG_FILE_COMMAND is
undefined
EPICS_IOC_LOG_FILE_LIMIT: 1000000
EPICS_IOC_LOG_FILE_NAME is
undefined
EPICS_IOC_LOG_INET is undefined
EPICS_IOC_LOG_PORT:
7004
EPICS_TIMEZONE: CUS::360:031302:110602
EPICS_TS_NTP_INET is
undefined
IOCSH_HISTSIZE: 50
IOCSH_PS1: epics>
How should I solve this problem?
Thanks,
Lin Wang