Sign in to follow this  
Followers 0
evanmars

Read I/O word from SLC5/05 on PanelView Plus 7 Performance

7 posts in this topic

I am trying to make pages on my HMI to show status of the I/O.  

Trying to read the entire I/O word, then mask and shift to get the individual bits.

Shortcut in Communication Setup is PLC

i.e.  In tag manager INPUT_WORD_1, type analog, max 65535, data type unsigned integer, device, ::[PLC]I:1.0

Then for I:1/0 in the connections, expression = {INPUT_WORD_1} & 1

I:1/1 = ({INPUT_WORD_1} & 2) >> 1

I:1/2 = ({INPUT_WORD_1} & 1)  >> 2

etc.

But when I run it, I get "Unable to connect to INPUT_WORD_1" (same for rest of the I/O).

 

I have others like ::[PLC]N142:13 that work fine.

Share this post


Link to post
Share on other sites
20 hours ago, evanmars said:

i.e.  In tag manager INPUT_WORD_1, type analog, max 65535, data type unsigned integer, device, ::[PLC]I:1.0

But when I run it, I get "Unable to connect to INPUT_WORD_1" (same for rest of the I/O).

 

I have others like ::[PLC]N142:13 that work fine.

I would suspect something is wrong in your tag manager definition of the I/O Points.  I'd try type integer rather than type analog and also use address {plc]I:1 without the .o on the end.

Share this post


Link to post
Share on other sites

The type "analog" is not the data type, there is only analog, digital, and string available.  I have the data type set as "unsigned integer" (I also tried "default")

I tried it without the .0 first, but when that didn't work, I looked at the data tables for inputs and outputs in RSLogix, and they have the .0, so I tried that.

I've attached a couple of images.  One with my attempt at creating a tag called "INPUT_WORD_1" that references all 16 bits of I:1.0 that doesn't want to work, and a tag called "INTERLOCKS_1_THRU_12" that references all 16 bits of N142:30 that does work.

The original HMI communicated over RIO, but it was swapped out for a PV+ 7 performance a few years ago.  Everything is over Ethernet now.

Just trying to get some I/O status screens.  I create a tag for each I/O point separately, but since there are 448 points, I'd rather not.

 

INPUT_WORD_1.png

INTERLOCKS.png

Share this post


Link to post
Share on other sites

I pulled up an OLD project from a PLC5. The Tag/Expression I used was: {::[PLC540B]N19:3}/10, with the curly braces. That was directly in the object properties connections tab, not in the tag database. I would try putting the address directly in the object on the display to see if it works.

644839cbe36d5_PVtoPLC5.JPG.a8d011f0385dc

Share this post


Link to post
Share on other sites
20 hours ago, Joe E. said:

I pulled up an OLD project from a PLC5. The Tag/Expression I used was: {::[PLC540B]N19:3}/10, with the curly braces. That was directly in the object properties connections tab, not in the tag database. I would try putting the address directly in the object on the display to see if it works.

644839cbe36d5_PVtoPLC5.JPG.a8d011f0385dc

Yeah, remembering back almost 20 years ago (last time I dealt with SLC), that's what I always did.  Totally forgot about the direct referencing instead of using HMI tags.

But it turns out the problem was using "unsigned integer" instead of "integer"

Share this post


Link to post
Share on other sites
On 4/26/2023 at 0:55 PM, evanmars said:

Had to set the data type to integer instead of unsigned integer.

Apparently, I/O addresses are treated differently than memory addresses when doing bit shift operations.

https://rockwellautomation.custhelp.com/app/answers/answer_view/a_id/25521

Thanks for posting the solution you found to work.  So often a suggestion solves the issue, but we never get feedback.

1 person likes this

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0