Using a legacy PanelView Enhanced (PVe) terminal on Remote I/O (RIO) for the first time can be challenging due to the way the tags are addressed.
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.”
Note: The “slot 0” and “slot 1” terminology dates back to when Allen-Bradley only made 8 Point I/O modules, and at that time each Group represented two physical slots (and potentially two 8 Point I/O modules) in the I/O chassis.
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 “post a comment or question” form at the bottom of this page.
Until next time, Peace ✌️
If you enjoy this episode please give it a Like, and consider Sharing as this is the best way for us to find new guests to come on the show.
Shawn M Tierney
Technology Enthusiast & Content Creator
Eliminate commercials and gain access to my weekly full length hands-on, news, and Q&A sessions by becoming a member at The Automation Blog or on YouTube. You'll also find all of my affordable PLC, HMI, and SCADA courses at TheAutomationSchool.com.
- Automation News for October 31, 2024 (N254) - October 31, 2024
- FrameworX v10 from Tatsoft (P225) - October 30, 2024
- 2024 Audience Choice Poll #7: Which Historian or MES Do You Prefer - October 30, 2024
Discover more from The Automation Blog
Subscribe to get the latest posts sent to your email.
Shawn,
I have an address in a PV 1400e, Tag_BO4_23_0-23_15_Bin_10
I understand this maps to a block transfer. BO4 represents data table in the block transfer starting N26:96. The _23_0-23 is the 23rd word past address N26:96, with 96 being “word 0”. My issue is what does the _15_Bin_10 mean or represent? Great information above, I need help with this example. Please break it down for me.
Good morning Rick,
I don’t have my PV1400E software with me at the moment, but you are correct that BO4 is block transfer 4, and that _23_0-23_15 represents the 23rd word.
However, the _Bin_10 seems to represent a 10 bit binary value, similar to the one in the 5th picture in this post. To know for sure I would need to open up 1400E and look around – do you still have access to the 1400E software?
Shawn Tierney
Join my free community to follow along! You can also become a member and support our work at: Automation.Locals.com
Shawn,
No programming in 1400e software. I did import it into Factory Talk ME, and that’s how I have been looking at the program. I have been retrofitting it to a Red Lion per my customers request. I can wrap up the imported project and send it to you if needed.
Thanks for your response!
Rick
Rick,
I found the info we needed in publication 2711E-6.14.
It’s not in A-B’s literature library, but it did confirm that a binary type in the PVE is an integer based on a starting bit and a number of consecutive bits.
In your case if your binary type tag starts at bit 0 and goes through bit 9, and bits 10-15 are unused in the PLC, then you could address it as a normal int.
Otherwise, you may have to move just those 10 bits into their own int.
Hope this helps,
Shawn Tierney
Join my free community to follow along! You can also become a member and support our work at: Automation.Locals.com
Thank you for good posting, it’s really help me
question:
1. In your example, you need 18 words for numeric display. But you only create 16 tags, how come? I also missing address “B07 08…” in the tag database
2. Why is the tag start with “Tag_B01….” while the address is start with “B07…” ?
3. If there is a screenshot of BTW instruction of your example it will be more clear (at least for me)
sorry for stupid question,
bin mulyadin
Good morning Bin,
Thank you very much fro your excellent questions.
1 – You are correct, when I filtered my existing tags on BO1 only 16 show up. However you can see in the Block Transfer picture my BT size is 18. So to use all 18 of those words I would need to create two more tags, one for word 8 and one for word 17.
2 – The 1400E software will only allow a B number to be used once. Since I used B1 through B4 for Block Transfer Reads, I have to choose different B#’s for the writes. In this case B7-B10
3 – Thanks for the suggestion, I may be able to add that in the future. The Block Transfer Write in my PLC-5 would have the following settings: BTW, Rack 3, Group 0 Slot 0. Note: if you have PanelBuilder E software it comes with some great example programs and ladder files.
Hope this helps,
Shawn Tierney
Join my free community to follow along! You can also become a member and support our work at: Automation.Locals.com
hello Shawn, in panel builder i have 4 files assigned for rack 13. 2 read 32 words each both through low and high of group /word 0 and 2 write 32 words each through low and high byte of group/word 0. while in Rslogix 5 i have only BTR that assigned to rack 13 group and module 0 for length of 32 and BTW assigned to rack 13 with group amd module 0 for length of 32 . Question: there is 4 files with size of byte each in PV software how does 2 block transfer write and read in RSlogix distinguish between low and high byte being transfered? the only thing that i can add is that each block has on its rung BT. EN bit from its own block and BT.EN from the other block. both of these bits XIO. this could be the answer to how they destinguish when reading from high or low byte of the group but i dont understand how. thank you
Good morning Anonymous,
In your PLC-5 BTR and BTW you’ll see designations for Rack (in your case 13) Group (in you case 0) and Module (can only be 0 or 1.)
It is the Module setting that chooses either low byte (0) or high byte (1.)
For more info check out page 15-3 (233) from the below document:
http://literature.rockwellautomation.com/idc/groups/literature/documents/rm/1785-rm001_-en-p.pdf
Hope this helps,
Shawn Tierney
Join my free community to follow along! You can also become a member and support our work at: Automation.Locals.com
I have 7 parameters on the PV that are controlled by Tag_DI13_7_0-7_7_Bin which has the address I:137/00-7/07 which makes sense bacause it is 8 parameters inputs. What does I:137/00-7/07 represents? The 8 parameters are 3 digit decimal number or integer so it has to be some sort of 8-16 bit address representation of this number in the PLC?
Question: “I have 7 parameters on the PV that are controlled by Tag_DI13_7_0-7_7_Bin which has the address I:137/00-7/07 which makes sense bacause it is 8 parameters inputs. What does I:137/00-7/07 represents? The 8 parameters are 3 digit decimal number or integer so it has to be some sort of 8-16 bit address representation of this number in the PLC?
Answer 1: I:137/00-7/07 represents:
I = Input
13 = Rack
7 = Group
00-07 = Bits
Answer 2: In old PLC’s, memory was at a premium. So, one wouldn’t waste 16 bits on a number which only ranged from say 0-255. Since that can be done with only 8 bits, you would use a binary array tag in the PanelView to address just those first eight bits. Note: I believe the PanelView Plus also now supports this feature per a Rockwell Tech note.
Shawn Tierney
Join my free community to follow along! You can also become a member and support our work at: Automation.Locals.com
Hello Shawn,
“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.)”
So, correct me if I’m wrong your remote rack is 16 slots long and you are using 16 point modules with 2 slot rack addressing as if it was for a real remote rack not emulated?
“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.”
Isn’t there a slot number also, so it would be Rack 03, Group 4, Slot 0, Bit 2?
“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.”
What is the maximum number of words or length can be assigned per BT (you have 18)? How do you know it is Group 0?
Good morning Aleks,
Statement: “…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.”
Question: “So, correct me if I’m wrong your remote rack is 16 slots long and you are using 16 point modules with 2 slot rack addressing as if it was for a real remote rack not emulated?”
Answer, part 1: If you have a 16 slot 1771 chassis setup as 2 slot addressing, then every two physical slots would share one Modular I/O Group. Therefore sixteen physical slots would make up 8 modular I/O groups, which is also one logical rack. (8 groups = 1 rack)
Answer, part 2: To use 16 point I/O modules in a 1771 chassis setup as 2 slot addressing (i.e. every two slots share one modular I/O group) then you need to alternate your Input and Output I/O modules. Or, if you only had input modules (or only had output modules) you would need to skip every other module. This is because in two slot addressing every two slots share a single modular I/O group, and each group ONLY has 16 input bits and 16 output bits.
Statement: “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.”
Question: Isn’t there a slot number also, so it would be Rack 03, Group 4, Slot 0, Bit 2?
Answer, part 1: To review, a logical rack is made up of 8 modular I/O groups. And each group is made up of 16 input bits and 16 output bits. When two slot addressing is used, two physical slots share the same modular group so a slot number (0 or 1) can be used to determine which physical slot is being addressed. However, the slot actually refers to the high or low byte in the modular I/O group’s input or output word, with slot 0 referencing bits 0-7, and slot 1 referencing bits 8-15 (or 10-17 in octal.)
Answer, part 2: To address an input or output we only need Rack, Group, and Bit. And address I:034/02 references the input word of rack 03, group 4, and bit 02. However, when we use Block transfers, which multiplexes many words through a single byte, we need to specify the rack, groups, and low or high byte to use. The low byte is represented by Slot 0, and the high byte is represented by slot 1.
Statement: “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.”
Question: What is the maximum number of words or length can be assigned per BT (you have 18)? How do you know it is Group 0?
Answer part 1: I believe the maximum number of words per RIO BT is 64, but would recommend looking that up in the software’s “help”
Answer part 2: In the above table you see B7 is set for Rack 03, Word 0, Byte – low, Usage – write. This is the same as saying Rack 3, Group 0, Slot 0, Output word.
It helps to keep in mind a modular I/O group is made up of 1 input word and 1 output word, and each word is 16 bits. As stated above, the “slot” represents either the high or low byte of the word.
Hope this helps,
Shawn Tierney
Join my free community to follow along! You can also become a member and support our work at: Automation.Locals.com
Thanks for help I got it all sorted out now. It is much easier than RIO addressing you right
Thanks Aleks!
Shawn Tierney
Join my free community to follow along! You can also become a member and support our work at: Automation.Locals.com
Where I work we have PanelView 1400e connected to DH+ and talks to PLC5 CPU. In “Tag Database Screen” the “Data Source Type” it has “Device” selected. I’m shown under PLC Communications under Nodes 2 processors PLC5 and PLC2 (don’t have no clue where PLC2 located I thought it was part of the PVe?). I looked at the files of the PLC5 CPU which corresponds to the panelview and I see 2 Data Blocks. One is called Data to PV and another from PV. The bits of these data blocks set certain outputs in the PLC ladder logic, like some of the faults but I don’t see what these outputs make after. I cross reference them and they are not used anywhere else in the PLC. ALso in communication file of the PLC ladder I see some of the Block Trasnfers used but the addresses of the data being transfered is not matching the addresses of the Data Tables called “Data to PV” and “Data from PV” I mentioned above. I guess my problem is I don’t understand how does PLC5 Cpu talks to PVe 1400 over DH+. Like in remote I/O you have explained above data block transfers with addressed tags corresponding to the PLC data addresses.
Thank you
Good morning Aleks,
With the PanelView 1400E on Data Highway Plus you typically have tags which directly access your PLC-5 data table addresses. So, in place of the RIO tag list shown above, you would have tags like Start, Setpoint, and Speed pointing directly to addresses like B3:0/1, F8:0, N7:0.
On the PLC-5 side, you don’t need any type of programming to make this work. When someone presses the button on the PVe which connects to the Start tag, B3:0/1 in the PLC should turn on. Same is true if someone on the PVe entered a new value for the Setpoit tag – you would expect to see F8:0 in the PLC update with the new value. Again, a PVe on DH+ will just read and write directly to the addresses in the PLC-5, without any code in the PLC-5.
Now each “node” you see in the PanelBuilder PLC Communications Setup should have a DH+ address, and this should help you identify each of the PLC nodes listed (you should be able to see each node in RSLinx Classic’s RSWho when you connect your laptop to that DH+ network.)
Hopefully the above info helps!
Shawn Tierney
Join my free community to follow along! You can also become a member and support our work at: Automation.Locals.com
Hello Shawn, how does Panelview communicates with PLC5 over DH+?