So to help those who may have to troubleshoot or migrate one of these legacy systems, I'll explain how the tag addressing works in today's article.
When using PVe terminals, the most common communication options are Data Highway Plus (DHP or DH+) and Remote I/O (RIO.)
In my opinion, using DH+ is a breeze. Just give your enhanced PanelView a unique Data Highway Plus address, and the same baud rate as your PLC. Then create your Tags in the PanelBuilder 1400E software, directly addressing your PLC's data table.
However, when using Remote I/O it's quite a bit trickier. With RIO, your PVe emulates a remote rack of I/O. Therefore, you first must assign it a Rack number, Starting Group, and an overall Rack Size.
To keep things simple, we'll just say that a full logical Rack on Remote I/O consists of 8 I/O groups, with each group consisting of 16 input bits and 16 output bits. Or put another way, each of the 8 I/O Groups in a Rack contains 2 input bytes and 2 output bytes (a byte is 8 bits.)
Note: Groups may also be referred to as Module Groups or Words. A “Word” is defined as a group of 16 bits.)
These “groups” of sixteen bits (two bytes) can either be addressed directly as I or O, or they can be used a byte at a time to transfer several words of data (know as a Block Transfer or BT) to or from internal memory.
To identify which Byte in a Group is being used for a “Block Transfer,” they are labeled as follows: the first 8 bits (low byte) is referred to as “slot 0,” and the second 8 bits (high byte) is referred to as “slot 1.”
To begin, I'll open a PanelView Enhanced project which is already setup for Remote I/O. To see if a project is setup for RIO, launch PanelBuilder 1400E software, open a “.PVC” PVe project file, and then under “PLC Communications” open “Communications Setup.” As you can see below, the project I opened is indeed set for RIO:
Next, we need to open the “RIO Racks” editor to see which Rack number was assigned to the PVe, and how many groups in length it is. In the below picture you can see the project I'm using is set to Rack 3, and is also set as a full rack of 8 groups (groups 0-7:)
Next, lets take a look at our tag database. Below you can see I've listed several Tags addressed directly with I/O addresses (remember, a PVe on RIO is emulating a rack of I/O.)
If I was creating a Push Button on my screen which needed to turn on an Input in the PLC's data table, I would first create a Digital Tag in the Tag database with an address like I:034/02, and then assign it to the Push Button. This address represents an Input from Rack 03, Group 4, Bit 02.
Note: RIO is Octal based, so the I/O bit addresses range from 00 to 07, and then from 10 to 17.
I could also use a full Group, or 16 bits, to represent a single integer value. But with only 8 I/O Groups total in Rack 3, there just aren't enough direct addresses to represent all the integers I'll need in this project (I need to display more than 8.)
In my example, on one specific page I need to display 18 integer variables to the operator. In order to get that much data into the PVe via RIO and still only use a single rack, I have to turn to Block Transfers.
To do this, I need to add a “block transfer write instruction” to my PLC logic. Then in the PanelBuilder 1400E software I configure the project to receive the data by adding an entry for it in the “Block Transfer – Block Editor.”
In the picture below, you can see several block transfers are configure in my PanelBuilder 1400E project. Each line in the table reserves a byte of data in Rack 3 for the corresponding block transfer:
In the above picture I've highlighted Block Transfer 7, or B7. It's currently set for a length of 18 words, and is set as a Write BT which uses the Low Byte of Group 0 of Rack 03.
With the block transfer entry created, I can now create my 18 integer tags that address them. To do this I use B7 as my address, and all sixteen bits of each of my 18 words as can be seen below:
At this point a common question is, “where in the PLC is the data coming from?” To find the answer we would need to open up the PLC program and find the BTW (block transfer write) instruction that is writing to (in this case) Rack 03, Group 0, Low Byte (aka Slot 0.) Once we found that instruction, it would also show us which data table address it's using as the source of the data it's writing.
One final note. Questions often arise as to what “data types” are available in the enhanced PanelView. To answer this, below I've pasted in a screen shot from the PanelBuilder 1400E software's help file which explains each data type in detail:
I hope this article explaining the PanelView Enhanced Remote I/O tag addresses was helpful. If you have any comments, questions, or corrections please don't hesitate to share them with us by using the “leave a reply” form at the bottom of this page.
If you enjoy reading my articles please consider helping me take The Automation Blog "Ad Free" with a small monthly pledge at Patreon.com/Automation