RSLogix 5000 FSC instruction question

cstep7263

Member
Join Date
Dec 2019
Location
Katy, TX
Posts
35
Hello Please Help, I want to use a FSC instruction that will scan 20 DINT arrays. If the arrays are greater than 1000 display the value. How do I do this with FSC if it only shows me that it found the value and the location it found it at?

I want to know what the value number is after it found it and hold it for 3 seconds in a register. That way I can use that register tag and say if it equals (X) activate a bit.
I want to use that same hold registers to see if it is equal to another number (X) activate another bit. This way I can only use one FSC and not 100 of them.

FLT.PNG
 
Last edited:
Once it found first location, do one shot copy its value to a tag and run a timer, when timer DN is set, clear .IN bit to continue the search again
 
Last edited:
Once it found first location, do one shot copy its value to a tag and run a timer, when timer DN is set, clear .IN bit to continue the search again

Do I one shot the .POS? Once it found the location how do I move that location if it can be any of the 20 registers?
 
Once the FSC has found a match, the FLT_Search.FD bit will be set, and the FSC will no longer search, even if there are other values > 1000. To continue the search, you'd have to unlatch the .FD bit without changing the PLC_ALARM_RESET bit, and it will continue the search the next scan.

If it gets to the end of the array, the DN bit will get set.

The address TEG_AN_READ_FLT[FLT_Search.POS] will contain the value of the offending value. But the value will only "offending" if the .FD bit is set. Without a value > 1000, the .POS will merely indicate that it reached the end of the array.

You could drive your timer with the .FD bit, and at the Timer.DN, check if TEG_AN_READ_FLT[FLT_Search.POS] > 1000.

But this may or may not really meet your needs. There may be a 2nd (or 3rd) value > 1000 which the FSC doesn't know about, and your logic and timer won't be looking at them.

There are programming ways around this limitation: using an FSC to find an error, and building pseudo-timer which adds a "time increment" value to parallel array each time the .FD bit set for the .POS indirectly-addressed register, and then another FSC to see if that array has "timed out".

A lot less coding than individual timers and so forth. Although using arrays of timers, you could almost as easily generate the 100's of rungs in Excel, paste them into Logix and be done in 5 minutes.

Your call.
 
Last edited:

Similar Topics

Hi there. In RSLogix 5000 i have an array of barcodes, and used an FSC bit to find which array position an input barcode matches. However when the...
Replies
9
Views
2,789
Hello, Please Help! I have an array of 20 registers that I want to search for a value. There will be over 100 DINTS Values that come in and if the...
Replies
7
Views
1,817
Hi folks, in the alarm manager of Rslogix 5000, the tag-based alarm has been created. But when I tried to change the condition, it was found the...
Replies
2
Views
152
I am completely stuck on building a ladder program that requires a start button to be pressed 3 times to turn on motor 1. Then motor 2 starts...
Replies
20
Views
574
Back
Top Bottom