Click here to learn the biblical way to get to heaven! (The most important page on this site)
You can have your very own virtual server though VPSLink! Using REFERRAL code MJDCDJ you will receive a 10% discount on
your new account, and I will get a service credit on my account. My personal preference is the Link 2 package running XEN for starting out (You can upgrade any time). You can choose from a variety of Linux distributions such as CENTOS, Fedora, Debian, and Ubuntu. This is a great package for learning Linux,
and setting up your own web page, or email server.
Producer/Consumer Model
In older PLC systems, such as the PLC-5, a message instruction had to be executed in order to get data from one processor to another. Although this worked very well, there was seldom a guarantee when data would arrive at it's destination, nor would data be transferred if the processor was in program mode.
With the Producer/Consumer model, the transfer of data between processors takes place without any logic, and the user sets the RPI (Requested Packet Interval) for the rate at which data should be updated.
The producer consumer model is very easy to understand, and to trace where data is coming from.
The Producer/Consumer model can transfer data between tags which have a DINT data type, an array, or a User-Defined Data Type (UDT's)
The Produced Tag
The producer has the easy job. In the Controller Tag Database, a user simply creates a tag, and marks it as produced. In this case, MyProducedTag is a DINT. The 'P' in the left-most column makes the tag produced.
When we mark a tag as produced, we are simply allowing the tag to be served to consumers. We can populate this produced tag through logic, and the consumed tags in other processors will receive the data we place into the produced tag.

If you were to right click on the tag, and go to the tag's properties, we would have a few more options:

If we click on the 'Connection' tab, we can set the maximum number of consumers which are allowed to connect to the produced tag. The allowed values are 1 to 256. You can also send event triggers to consumers using the IOT instruction in logic.

The Consumed Tag
In the previous few pages, we discussed how to set up a tag in the producing processor. Now we will go to the program which resides in the processor which will be consuming data from this produced tag.
Setting up a consumed tag involves an extra step. First, we build a path to the processor where the tag is being produced. This is done in I/O Configuration. Then the consumed tag can be created.
Step 1: Building the path to the producer.
In the I/O configuration tree, we will have to build a path to the processor where the produced tag resides. First, we will have to establish a connection to our local Ethernet or ControlNet module. Next, we will have our local communication module connect to a communication module in the chassis where the produced tag resides. Last, we must tell the communication module in the remote chassis to connect to the processor which is producing data. Look at the diagram below:

This connection is made under I/O Configuration.
First, right click on the I/O Configuration folder to connect to the local communication module if it not already set up.
![]()
Be sure to select the communication module you will be using For this example, we are using a 1756-ENBT module.

You can get the major revision from a web browser, RSLinx, or from the label on the side of the module if the label is correct. Our module is version 2.4 (2 is major, 4 is minor).

We named this module local_enbt. This module resides in slot 3, and the IP address is 192.168.0.97. The minor revision was 4. (Adjust these settings for what you are using at your own station)

When finished with this step, your local communication module will appear in the I/O configuration similar to the image shown below:
![]()
Second, we must add the communication module of the remote chassis to the I/O Configuration. We must right click on our local communication module, and tell our local communication module to connect to the remote communication module as shown:

We are connecting to another 1756-ENBT module.

Again, the remote ENBT module is version 2.4, so the Major Revision is 2.
![]()
We will name the module remote_enbt. It has the IP address of 192.168.0.96. It is in slot 3 of a 7 slot chassis. We choose rack optimization for the comm format, so data from all modules can be received through a single connection. The minor revision is 4. Adjust your settings as necessary for your station.

When finished adding the remote enbt module, your I/O configuration will look similar to the image below:

Third, we must make a connection to the processor from the remote_enbt module.
Right click the remote enbt module, and we will add a new module as we did before.

Most of the stations have the 1756-L1 processor. Be sure to select the type of processor that resides in the station which is producing the data.

Select the revision level of the processor you are connecting to. The version was 13 when this document was created.

The processor is named remote_processor and resides in slot 0.

When finished, your I/O Configuration will appear similar to what is shown below:

Step 2: Creating the consumed tag.
Now that we have a path to the processor which is producing the tag, we can create our consumed tag.
First, go to the controller tag database, and click 'Edit Tags'.

Second, we will create a tag called 'MyConsumedTag'. Leave it as a DINT.

Third, right click on the tag, and choose 'edit tag properties'. The tag type is consumed. From the Pull-Down tab you can select remote_processor as the producer. (This is the processor we connected to in I/O Configuration. The name of the tag in the remote_processor is called MyProducedTag, and is a DINT. The RPI is fine for this excercise, but if you wish to conserve bandwidth on the network, the RPI can be increased so the tag will update less often.

You are ready to download and test your work.