Applies To:
  • CitectSCADA 5.50
  • CitectHMI 5.50

Summary:
With version 5.5, changes where made to the I/O Server cache handling code to allow blocked reads to get data from several cache DCBs if they contain data.

Previously, if a read could not get its data from a single cached DCB, it would be #COM or #WAIT. On writes, the DCB for the data in cache is purged. This means other data in the cached DCB is no longer available for reads. Thus #COM or #WAITs will occur. A new option exists to not purge the cache DCB on writes and update the cache data after the write has been confirmed. The new parameter

[IOSERVER]CacheOptMode

is used to control the behaviour for finding a DCB in an I/O Server unit cache.

 

Solution:
A NEW INI parameter has been included to use new cache features. The default is the existing Citect handling.

[IOSERVER]CacheOptMode=0 ! default 0

This parameter is used to control the behaviour for finding a DCB in an I/O Server unit cache. By default, the I/O Server only searches for a DCB to be within or equal to a single cache DCB. e.g. cache has points 1 to 10, and then 11 to 20, and a DCB wants 5 to 6, all is OK. If however the read was for items 9 to 11, the system would not return a match and would request a read from the driver.

For a disconnected dialup unit, this would cause a #COM or #WAIT.

CacheOptMode Values are :

1 - First come first served - Tells the I/O Server to search through all cached DCBs looking for the data, once it is found return.

2 - Scan all cache for latest entries - Forces the scan to look through ALL cached items to find data which is the MOST recent.

4 - An incomplete match is OK - Tells the system that if some items match and some are not found, to consider this a total find.

+8 - Allow behaviour on all devices, by default the settings above only apply to remote units.

+16 - Allow written data not to remove cache item and update value on return, e.g. 1 to 10 in the cache, write to 8. The default behaviour would be to remove the whole cache item so a fresh read of 1 to 10 would be needed on a write to 8. With +16 added, then 1 to 10 stays in the cache, and item 8 would be updated on the REPLY from the driver.

Normally for dialup devices, CacheOptMode=1 would cover most requirements.

 

Keywords:
 

Attachments