how can i simplify this logic

xenu

Member
Join Date
Jun 2023
Location
Shelby, NC
Posts
3
I'm using productivity 1000 plc for this. The process is simple i have a wheel with yarn wrapped around it made out of aluminum with evenly spaced screws tapped into it for a prox switch to detect rotation. the logic is simple if the prox switch is on for more than 3 seconds the machine will stop or if the prox switch is off for more than 3 seconds the machine will stop both indicate a broken yarn. I have 24 of these sensors on each machine but i am looking for a simpler way to write this. attached is an image of how i currently have 1 prox in the logic.

Capture.JPG
 
What I've done in the past is to use 2 timers. One on each state of the sensor. If either timer's DONE bit turns on, the wheel is stalled and we "do something" about it.

If all of the sensors are wired to consecutive inputs, or otherwise gathered into 16-bit words, you can do a compare of current value to previous value.
I'm not familiar with the Productivity series, but I've attached screenshots from an AB PLC.

N.B.: I haven't tested these so I'm not 100% sure it'll work as intended, but it's at least close.

WheelStallDetect1.JPG WheelStallDetect2.JPG
 
I don't know what instructions are available in the Productivity line. I often use a single timer running when the motor is on, timer done is the alarm. Then I'll have something like one-shot rising or one-shot falling of the prox resets the accumulated value of the timer.

Edit: Okie's pic below - yeah, like that, add the motor to time up.
 
Last edited:
Wont this constantly reset the timer regardless of if the wheel is turning or not


[Edited: I misread you question; fixed now]


No, the -|↑|- instruction detects a 0-to-1 transition, and the -|↓|- instruction detects a 1-to-0 transition, of the bit operand, and either transition event will reset the timer as long as the sensor detects a screw entering or leaving its proximity within 3s of the last transition event.

So the timer will never expire as long as the wheel keeps turning and generating transition events.

If, however, the wheel stops turning, then the timer not reset and after at most 3s the timer will expire and it is that timer expiry (.Done bit value is 1) that can be used to raise the alarm.
 
Last edited:
Thank you so much for your help that is exactly what i was looking for. for some reason i was overcomplicating it and could not see the easier solution thank you.
 

Similar Topics

Hi all, I have the following problem: from a long list of boolean values (about 100) I should program each possible combination with the...
Replies
6
Views
3,093
Hello All, Recently while trouble shooting some systems i came across some alarm words bits (0 through 16) and and XOR instruction used with...
Replies
8
Views
3,151
Hello everyone I'm trying to simplify this ladder in order to make it more accesible to modifications, just trying to use indirect addressing...
Replies
2
Views
1,962
Very often I have to reverse engineer something from an iFix parameter inside an array to a bit in iFix. It's a pain to do as I've yet to really...
Replies
2
Views
1,910
I'm working with Studio 5000 & FactoryTalk View Studio ME. I have a UDT that contains data for a part as it passes through a system, Timestamps...
Replies
0
Views
1,925
Back
Top Bottom