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