Using CitectSCADA > Communicating with I/O Devices > Using Memory Mode

Using Memory Mode

When configuring an I/O Device, you have the option to set them to memory mode. This means that the I/O Device will be created in memory and its values stored in memory at runtime.

Refer to I/O Devices Properties for more information on how to configure an I/O Device.

Devices using memory mode are not connected to any hardware and write their values to a cache. The I/O Device values can be read by many processes. The difference between a local variable and a device in Memory Mode is that an I/O Device in Memory Mode will reside in the I/O Server's memory and will observe standard networking and redundancy rules of a standard I/O Device.

Memory mode is useful when you are configuring a system for the first time, as you can design and test your system before connecting a physical I/O Device.

An I/ODevice with Memory set to TRUE or FALSE will behave differently in instances where Variable Tags share the same address.

For example:

Define a MODNET IODevice:
1 - INT1 (INT Tag)
2 - DIG1 (DIG Tag for bit0 of INT1)
3 - DIG2 (DIG Tag for bit1 of INT1)

At runtime the Display Client will show:

  1. IODevice Memory mode = FALSE, at runtime setting DIG1 = 1, DIG2 = 1, INT1 = 3, modifiyng DIG1 and/or DIG2 affects INT1.
  2. IODevice Memory mode= TRUE, at runtime setting DIG1 = 1, DIG2 = 1, INT = 0 or cached value, modifiyng DIG1 and/or DIG2 does not affect INT1.

In both instances the Override and Control Mode settings for each tag (INT1, DIG1, DIG2) did not affect the other tag. Setting INT1 in Override or Control Inhibit mode did not set DIG1 or DIG2 in Override or Control Inhibit mode.

As with local variables, values in an I/O Device using only memory mode are not retained when you shut down. However, if you set the Persist field to TRUE in the in the extended section of the I/O Devices Properties dialog their values will be retained. For more information on local variables, refer to Configuring Local Variables.

See Also