(cardGroup) (cardGroup card_id) (cardGroup card_id groupPointNames ...)
In response to a query or successful setting of card groups:
(cardGroup card_id groupPointName...)
Otherwise, one of the following error messages:
(error "cardGroup DR_ERR_CARD_INVALID (time) invalid card: card_id") (error "cardGroup DR_ERR_POINT_NOT_FOUND (time) Group point groupPointName has not been defined.")
This command sets or queries the assignment of groups to cards. A group (see the group command) must be assigned to a card for the points in a group to be processed whenever a card updates its buffers, whether via polled (see the cardPoll command) or interrupt driven modes.
The mapping between the value of points and the data in a buffer is maintained by the address of the individual points. When a buffer is updated, it is necessary to scan through the list of input points associated with the buffer to determine whether a particular bit or a set of bytes in the buffer has changed, therefore changing the value of the point. The same is true for output points, where the points that have been updated must modify the buffer, which is then written to the card and out to the fieldbus. This process can be triggered by the cyclic update (polled or interrupt driven) of the buffers, or the points can maintain their own cyclic update rate.
This cardGroup command establishes the link between a group and a card update cycle. This is the most efficient way to update point values and is preferred to the alternative of specifying an individual cycle time for the group. A group might be set up to cycle independently of the card in cases where a slower update rate was required, such as might be done for a set of process control analog values sampled at 100ms, while the card and fieldbus cycled in under 10ms.
Copyright © 1995-2006 by Cogent Real-Time Systems, Inc. All rights reserved.