Is there a way to detect any screen change?

bone

Member
Join Date
Dec 2004
Location
Amish Country - PA
Posts
58
Hello all,

I've written a routine that scrolls a bright green oval (positioned behind existing 'goto screen' buttons to create a 'halo' effect) in sequence through menu selections on my Panelview+ 700.

I am using a detented quadrature encoder with a pushbutton to select the desired screen that I want to switch to.

That all works fine, but the problem I'm having occurs whenever I return to the main menu. I am using logic to increment/decrement my menu selection value based on the 4 states of the quad encoder, and when I return to the subroutine that handles the highlight scroll, it automatically increments/decrements depending on the last state of the encoder direction senses, whereas I would like the last highlighted button to remain selected.

Is there any way to sense a 'generic' screen change (i.e. - pulse a bit from the Panelview on ANY screen change) to unlatch the 'count up' or 'count down' bits that I'm using to determine count direction?

Hopefully this makes sense????

Thanks,
Bone
 
You should be able to assign and monitor the Screen Number Tag and set a bit when it changes states. I am not familiar with PV700, but if it programs with PanelBuilder32, you can find this status tag here:
Application Settings
-Terminal Setup
--Status Tags
 
I'm already using the 'display number' tag to see what screen I'm currently on, and the 'remote display number' to change to my desired screen. However, since I'm using approx. 25 screens on my project, It seems to me that there would be an extremely large amount of logic to determine when a screen has changed. (1 to 2, 1 to 3, 1 to 4,....1 to 25, 2 to 1,... etc)
 
If you have the 'display number', then you can have minimal logic to check for a screen change.
Ex.: PV is on screen 3
if N7:0 = 3 then no change (n7:0 or any register)
if N7:0 <>3 then screen has changed
do what ever you want then move or copy the current 'display number' to n7:0
return.....


not real familiar with the 700...just had a thought!
 
For the first rung, do a NEQual between the PV Screen Number and a spare integer that you will store the previous scan PV Screen number. If true, you get a oneshot that you can energize an output or whatever you want. The 2nd rung would be to MOVe the PV Screen Number to the spare integer above in the 1st rung.
 
bentlya / DaveW,

Thanks guys! Just what I had considered, but couldn't visualize. Worked perfectly!

I've written k's of lines of code in the last month, and I'm brain-drained.

Bryan
 
I like to have a subroutine run based on which screen the operator is looking at.
ScreenOnDisplay.gif


Don't know if it's the most efficient way though?
 

Similar Topics

Hi, I have a Panelview Plus 1000 and have the screen saver set at 15 minutes. However, it has been requested that on screen saver activation the...
Replies
3
Views
3,521
Does anyone know of a way to detect if someone is online with the controller in ControlLogix (from logic) I'm thinking that maybe there is a CIP...
Replies
7
Views
370
Hi all, I am trying to find a way of detecting a motor is not isolated before attempting to run an inverter. We would normally use a 4 pole...
Replies
19
Views
3,064
Hello everybody, I have a vendor system that has some remote monitoring (read only) and remote control (read/write) data that is available via...
Replies
7
Views
2,863
Replies
1
Views
1,217
Back
Top Bottom