Applies To:
  • CitectSCADA 5.41
  • CitectHMI 5.41

Sometimes I get an error popup message 'request size too big' on the I/O server for the protocol that I am using. How can I get rid of this error? 

The I/O request that the I/O Server tries to send to the PLC is bigger than is allowed for that specific protocol in Citect.

Every Citect station builds (static) I/O requests during compilation time. It uses the protocol specific settings in the protdir.dbf file (in Citect\BIN folder) for the BIT_WIDTH and a MAX_LENGTH parameter to build the requests. BIT_WIDTH is the optimal size of a request (in bits), and MAX_LENGTH is maximum size of a request (in bits). During compilation it uses the BIT_WIDTH setting, when trying to compile optimal requests for a block of data. Blocking can only occur for tags with the same data type.

Also during runtime (dynamic) I/O requests are built for example when you open a supergenie, or when a CTAPI connection is used by an external application. They use the settings in the protdir.dbf in the user/include directory to build the request. (To be exact, it uses the compiled _protdir.rdb file in the run directory; that one is derived from the protdir.dbf in the user/include directory).

The requests from all stations (client/servers) are sent to the I/O Servers. There the [<protocol name>]Block parameter in the citect.ini file is used for dynamic blocking, and it tries to generate bigger packages if multiple smaller requests (for data in the same range) come in. Of course it waits only for a small time when trying to build dynamic requests. If a bigger request than the [<protocol name>]Block size (this is a number in bytes) is received then it is sent straight through to the physical I/O device.

If the resulting I/O requests are too big, according to the settings for that specific protocol in Citect, then you might get a popup error message saying 'request size too big'.

In that case please double check your settings in the protdir.dbf file(s) and the setting for the Block parameter, to make sure that it all matches the correct settings for that specific protocol. Also I have seen two cases (S7NT and OPC) where had to set the BIT_BLOCK and MAX_LENGTH some what lower (16 bits) than the maximum allowed size, to get rid of this error; so in case of OPC I had to set both parameters equal to 2032 (in stead of 2048) and in case of S7NT equal to 496 (in stead of 512).