In the ControlLogix series of A-B controllers, the controller scans the user program, writing data to the tag database as it encounters each output instruction.
A secondary (background) process, "produces" output tag data to the outside world at the output module's specified "Requested Packet Interval" (RPI).
The connected output module then "consumes" the data from the communication network. If the output module is in the same chassis as the controller, the "network" is simply the chassis backplane (sometimes called ControlBus). If the output module is on ControlNet, Ethernet, or whatever, then a "bridge" module (a.k.a. Comms module), is put into the chassis to make the data available on to the external network.
This "producer/consumer" model for I/O data maens that I/O data is transferred asynchronously to the user's program scan.
FYI : Input data is transferred into the tag database in exactly the same fashion, and this asynchronous Input data can cause problems if an input is ispected more than once in a program scan (i.e. there is no guarantee that both reads of an input will read the same logic state). Often, you will see programs that have I/O data "buffered" in logic, so as to synchronise the data transferred to/from the I/O modules.