Studio5000 Triggering A Non-Change Value Event

Yendor33x

Member
Join Date
Nov 2020
Location
Alabama
Posts
8
Hi all.

I am looking at a valve position which has been scaled for an operator HMI.
The valve position is in 0-100% shown to the operator for process control monitoring. The valve position is constantly changing/varying by a tiny percentage - it is REAL value from the valve feedback.

I want to simulate a valve sticking condition when the position is not moving for x time. How do I capture when the valve position is not changing?

The rung should read: If position does not change for say 5 minutes, trigger alarm valve sticking.

I appreciate the help and suggestions.
 
I would do it by periodically calculating the speed that the valve is moving: every 1 second, you capture a new Position, subtract it from the old Position, and divide by 1000 ms.

If the speed stays below a threshold until a timer expires (and of course it's still being commanded to move), then you've got a zero-speed "stuck valve" condition.
 
How do you capture the value though?

Just watching the valve change position % in the logic: it has to be changing at >60x a minute.
 
Hi all.

I am looking at a valve position which has been scaled for an operator HMI.
The valve position is in 0-100% shown to the operator for process control monitoring. The valve position is constantly changing/varying by a tiny percentage - it is REAL value from the valve feedback.

I appreciate the help and suggestions.

Only you know about your machine's signals.

What is the disturbance in your REAL?

Can you use the Modulo function to get your disturbance, when it isn't above a certain number for x amount of time, alarm out?

This is essentially calculating speed using the disturbance, just like Ken suggested.

https://literature.rockwellautomation.com/idc/groups/literature/documents/rm/1756-rm003_-en-p.pdf
 
@Yendor33x:

Are you trying to detect when the valve is physically not moving, e.g. say near 12.34%, but there is some movement (noise) in the measurements of its position, e.g. 12.34, 12.41, 12.28, 12,32, ...?
 
Yes, that is correct. When the valve physically is not moving.

The valve position is PID controlled. It is reporting valve open % up to 5-6 spaces depending on rounding trailing 0 off.
Example of position shown on PID: 17.333331 or 17.33333 (0); zero left off.

Loop update time: 0.2s
 
It would not be too difficult to configure a few FIFOs or circular buffers that could be used to calculate the slope, in the least-squares sense, of the measured values over the past 100 or so updates (~20s), and if that is below some empirically-determined value, or differs from a similar slope calculation of the output, then trigger an alarm.


Another option would be to add a low-amplitude sine wave to the output signal, and see if the measured valve position was following it.
 

Similar Topics

I have an array of 55 REAL values. Is there a way to multiply based on the array location ? I have 55 transfer belts that are equally spaced...
Replies
3
Views
154
Hi Hope you all are doing well. Iam working on a project with some AOI. I also hate no online edits... lol. My problem occurs when I use a UDT...
Replies
2
Views
167
I am not sure if this is possible but if there is a way, you guys would be the ones to know. I am currently working on a project where we are...
Replies
7
Views
226
Hi all. I'm having issues adding an ethernet module to my project in Studio500 v34. The device is a Fredericks Televac EthernetIP MX gateway which...
Replies
8
Views
371
The day of week program started changing day of week 2 hours early. It changes at 10 P.M. instead of 12A.M. Just started this year.
Replies
22
Views
2,688
Back
Top Bottom