Traditional industrial networking technologies such as Profibus and Modbus use a source-destination model of networking in which data is sent separately to each device on the network that needs it. The more devices there are on the network requiring the same data, the more times that data must be transmitted. This represents an inherently inefficient use of bandwidth, which becomes more of a problem as the demands on the network increase. Another problem arises if the data is time sensitive. The need to transmit the same data multiple times to different destination devices means that each device will receive the information at a different time, making synchronisation problematical and compromising the accuracy of the data. The network?s determinism is also degraded, since the length of time required to deliver each message will depend on the number of devices it must be sent to.
The throughput of a network is essentially measured in terms of the amount of data it can deliver in a given amount of time, and must equal or exceed the requirements of the applications supported by the network when demand is at its heaviest. The throughput achievable will depend on the available bandwidth (data rate), the efficiency of the network protocol used (i.e. the amount of protocol overhead required per unit of data), and perhaps most importantly the networking model in use. Improving the efficiency of the network protocol can achieve only marginal gains in terms of throughput. Increasing the bandwidth of the network provides a temporary solution but does not address the underlying problem, which is inefficient use of bandwidth. The approach being taken by more recently developed industrial networking technologies, including DeviceNet and ControlNet, is to abandon the source-destination model of networking in favour of a producer-consumer model.
The producer-consumer model allows all nodes on a network (the consumers) to simultaneously access data generated by a single source node (the producer), eliminating the need to transmit the same data multiple times, and allowing much more efficient use of bandwidth. Moreover, because the data is received at the same time by every node, the accuracy of time-sensitive information is far greater. Rather than identifying a destination address for the data, the data is given a unique message identifier that allows nodes on the network to either consume it or ignore it, depending on whether or not it has meaning for them. Each device on the network can be configured to listen for and consume only messages with a specific message identifier. All other messages will be ignored by the device. The determinacy of the network is greatly improved, since the length of time required to deliver a message is no longer dependent upon the number of devices that it must be sent to.
The producer-consumer model also eliminates the need for the traditional polling of devices in many cases. Polling usually involves a control device sending a message to an input device (such as a sensor) to request updated input data. The input device will respond immediately with the requested data. Polling is a two-way process involving two separate messages, and often occurs frequently to minimise latency in delivering new input data to a controller. This is very wasteful of bandwidth if the input data changes only infrequently. The producer-consumer model allows the use of more efficient I/O trigger mechanisms that eliminate the need for polling and significantly reduce the number of messages sent across the network. The first of these trigger mechanisms is referred to as change-of-state or event-triggered. Input data is generated by a device only when an input value (or the status of the device itself) changes. To allow for situations where new input data is generated only infrequently, a short heartbeat message is transmitted periodically to let a controller know that the device is still functioning. The second trigger mechanism is cyclic or time-based, and requires input data to be generated at a pre-set time interval, the length of which is determined when the device is configured.
The increased efficiency engendered by the producer-consumer model means that the same network can be used for both explicit messaging and I/O messaging. Explicit messaging is typically used to upload configuration data to a device, and tends to involve the transmission of larger amounts of data and involve more protocol overhead. I/O messaging is typically cyclic or event-triggered, involves relatively small amounts of data, and has negligible protocol overhead. Because I/O messages invariably carry real-time application data, they must be given a higher-priority than explicit messages. Prioritisation is achieved by using different identifiers for explicit messages and I/O messages. Explicit messages are given a lower priority, and are restricted to using the network only when there are no high-priority I/O messages on the network.