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
|