Monitor Analog Input for Changes

Tim Ganz

Member
Join Date
Dec 2010
Location
Dallas, Texas
Posts
689
I have a motor with encoder that comes in as a 4-20 analog input to a 1766-IF8 module. When the motor is running I need to look at the encoder value and make sure it’s changing when the motor is moving and that it’s changing enough.

What is the best instructions or way to monitor this value and it’s rate of change and set an alarm if it’s not moving at all or not changing at an acceptable rate.

Looking through the instruction set I am just not coming up with any good ideas on how to do this and I am starting to think that I am overthinking it :)
 
When you say changing what happens when it is upto speed so in effect the same reading (although it may vary slightly). perhaps a little more information.
To check the drive is running around the expected speed when the motor is running (assume a slight delay) just use a compare for > AND < the expected level with a deadband, as for startup perhaps a simple timer that snapshots the current value & compare it to a previous value, this could be done on a timer i.e. 0.5 sec snapshot value, compare last stored value + expected increase, if ok store snapshot ready for next check.
 
Monitoring the ramp up and down seems like a bit of an overkill since you'd have to know the ramp up and down time and run a ramp in software to compare against the real reading.

The logic to compare against, would be the same like parky as said, a window around a value. In the case of the ramp, you'd have to calculate the window in every cycle as it would move up and down with the ramp. I quite like the LIM instruction to create a comparison window, plus it works in both directions too. :)
 
We don’t want to monitor the ramp up and down we just want to make sure the unit is moving when it should be and if it’s not then turn off the motor and alarm.
 
Simple:

AND Motor Running AND [< 1000, Actual Speed] Timer x 2 s
AND Timer = Alarm (OR SET)

So if motor running & it is less than a set amount (could be value ) then start a timer, on timer up Set or equal the alarm probably best to latch the alarm & reset it via HMI or reset button.
 
Question is also which output type provides encoder. Is it measuring speed or position? If analog IF module gives you speed just simply compare it is above OR within some specified range.

If analog value gives position then you need to cyclically read actual position and compare actual position with "previous" saved position. Position can be stored in each PLC or by some time trigger. Then if position is not changing for some time (or not changing for requested difference) an alarm can occur.
 
4-20 mA is an unusual signal for an encoder. I've seen analog absolute encoders, and analog speed monitoring devices. Can you provide some context and detail about what that signal represents about the mechanism ?

I assume your input module is a 1769-IF8 and that you're using CompactLogix instead of MicroLogix 1500.

The 1769-IF8 is not very sophisticated compared to its 1756-series cousins, but a little more complex than the old SLC and MicroLogix analog input modules.

The input data image is shown in the installation instructions (1769-IN067) and shows the input channel values themselves as well as high and low Alarm bits, and Overrange/Underrange bits.

Is your concern for the motor focused on the acceleration and deceleration when it starts and stops (like stall detection) or on a feedback value that's intended to be fairly steady ?

The module does have built-in process alarms for each channel. You can set the High and Low alarm thresholds, and a deadband value. You don't have to use latching, so you could condition your monitoring logic to only consider the process alarms when you think the motor should be running near its setpoint speed.

The module itself doesn't have any built in ramp or rate-of-change features. For those, you would probably use the ALM instruction (available only in FBD and Structured Text, not ladder logic) in your application program.

I think we need to know what the 4-20 mA signal represents before we go much further with recommendations. I look forward to the discussion !
 
Tim,
we have lots of motors here and we do a 2 step process.
#1 when we start the motor, we start a timer and store the initial and final speed to see if it starts.
#2 we programmed in a scaling equation into the plc to get the speed.
the speed in rpm was then displayed in wonderware. we verified the equation with a speed wheel.
regards,
james
 

Similar Topics

Hello, I need some help adding a project to an existing PLC and HMI. We have a SLC 5/03 controlling a filtration systems. I will like to add a...
Replies
2
Views
1,855
Hello everybody over there, I need your help. We have S7-300 and S7-400 CPUs in our project. we have a lot of analog inputs in the project. The...
Replies
0
Views
1,391
Hi friends again with new problem I am using an analog module how to put adress in veriable table?? In S7 300 CPU thanks usman
Replies
1
Views
1,821
We have a quad monitor setup with FT SE and we are utilizing a header screen at the top of every display. when we open a new page we abort the...
Replies
0
Views
93
Our plant manger/my boss wants each line to display the takt time above the line. I am trying to research the cheapest way to do this. Our plant...
Replies
3
Views
187
Back
Top Bottom