Defining Class 1/2/3 Items
Class 1/2/3 items are defined by the modifiers :c1, :c2, or :c3. They read their objects with a class 1/2/3 poll, which returns values for all objects in class 1/2/3 whose values have changed since the last class 1/2/3 poll. The object must be in the class specified by the modifier, and collection of that class must be enabled at the device. Otherwise, responses to the class 1/2/3 polls will never contain a value for that item.
ACM has no way of determining which objects are in class 1/2/3 for any given device. It can’t prevent an item from being defined with the wrong class. It will allow items for the same object to be defined with multiple class 1/2/3 modifiers, even though the item can only be in one of the classes in the device. The user is responsible for determining and using the correct class 1/2/3 modifier for the object.
Initializing Class 1/2/3 Items
Any object in class 1/2/3 will also be in class 0. When class 1/2/3 items are first activated, they'll be initialized with a class 0 data integrity check poll, unless the option "No class zero poll to initialize items" is checked in the Device tab.
There's also an option called "Initialize class 1-3 after comm failure". Since class 1/2/3 polls only return values for objects that have changed since the previous class 1/2/3 poll, if the class 1/2/3 items are invalidated after a communication failure, by default they will not become valid again until their values change in the device. Selecting this option will send a class 0 data integrity check poll to initialize the class 1/2/3 items after a communication failure, so that all class 1/2/3 items will become valid again immediately once communication is restored.
The Data Integrity Check Item
The item DataIntegrityCheck sends a class 0 poll, and updates all items activated for the device with the data from that class 0 poll, regardless of what modifiers those items have. This item can be activated to perform class 0 data integrity checks on a polling interval. To prevent data integrity checks from being performed during demand polls, check the option “No data integrity check in demand poll” on the Device tab.
Using Class 1/2/3 Items with Class 0 Items
The class 0 polls that are sent on interval and by demand polls for items with the :c0 modifier will only update items with :c0, not items with other modifiers.
If you have some items that will be polled by class 1/2/3 (using the :c1, :c2, and :c3 modifiers) and other items that will only be polled by class 0 (using the :c0 modifier), and you want the class 1/2/3 items to also be updated by the polls for the class 0 items, you’d put the class 0 items on an interval that is not polled, and put a DataIntegrityCheck item on the interval that you want to send the class 0 polls that will update all items.