Applies To: |
|
Summary: |
Ocassionally a hardware alarm will appear
"General error 0x0004001f" for an IODevice that uses the ABRSLINX
driver. The Rockwell API error code "1F" (Defined by
the RSLinx API as DTL_E_TOOBIG) corresponds to "Data item
greater than the maximum allowed". This is suggesting that the
number of points requested by the IOServer from the IODevice is not
allowed.
This may also start happening as a result of a V7 upgrade. How can I correct this? Notes: with Driver trace enabled, messages will look similar to this => 06ea44fc 24.377 Cmd: 04 CTDRV_READ ,abrslinx250, Port: P3_B, Unit: WTP_PLC\par with ABRSLINX Driver debugging enabled, messages will look similar to this 2008/08/15-08:55:47.000 DTL_C_DEFINE\par In a recent case, symptoms were digitals not showing the correct values. |
Solution: |
In V6 and below, blocked requests can be
generated by the compiler (using the appropriate settings in the
protdir.dbf bit_block and max_length fields) and also at runtime by
the IOServer and driver (depending on the requests that the
IOserver recieves at the same time.
In V7, due to the publish subscribe architecture, all blocking is dynamically determined at run time. Their is a citect.ini parameter [ABRSLINX]MaxReqSize
which can be used to adjust the dynamic blocking size. Its
default is 236, reducing this value should resolve the above stated
error. Since the MAX_LENGTH specified in the protdir.dbf is 1824 this corresponds to [ABRSLINX]MaxReqSize=228 (which is 1824 / 8) Setting [ABRSLINX]MaxReqSize=228 should resolve the issue in most cases. It seems that for some PLC types (a known example is PLC5/250) that the default maximum of 236 is too big. In these cases the issue is more likely to occur in V7 (although still possible to occur in V6) since all blocking is dynamic and hence all blocking is done using the [ABRSLINX]MaxReqSize value rather than the lower MAX_LENGTH value by which most blocking is determined in V6. Please keep in mind that by reducing the maximum dynamic blocking size you are marginally reducing the communications efficiency to your IODevice. Although there is little choice if you are encountering this error. Please refer also to the related article KB Q5374 on [ABRSLINX]Block |
Keywords: |
MaxReqSize, ABRSLINX, 4001F, DTL_E_TOOBIG |
Related Links
Attachments