AB scan sequence

qnen

Member
Join Date
Jan 2008
Location
Kansas
Posts
1
The question revolves around what happens if I have the same output coil on multiple rungs.
In a SLC504 PLC, the following code results in the out1 being off. Inputs 001 and 002 are closed. Input 003 is open.
---|001|---|002|---(out1)-

---|003|------------(out1)-

However, a coworker insists that in ControlLogix, the above code would result in out1 being on.

Can anyone shed some light on exactly how slcs scan a rung vs how controllogix would scan the same rung?

Thanks
 
Your co-worker is wrong about the output, but correct about the difference in scan.

Multiple direct output coils (OTE's) are a bad idea in general, as only the last scanned one will be true for most of the logic scan.

With SLC's, the output above would ALWAYS be off, if 003 is false, as the output isn't updated till the end of the logic scan.

With the Logix platform, the output could possibly be on between the two rungs, but will switch off after the second rung. The logical bit 'out1' will be true in between the two rungs, and false after the second, but the PHYSICAL output MAY or MAY NOT actually switch, depending on the RPI of the I/O scan.

With Logix, I/O is scanned asynchronously to the program.
 
I have a question along these same lines.
Can the output be used if 2 different files?, U-3
lets say I have a file that is called of part A is being ran and it uses output o:0/5.
Now when I run part B, I use a different file, U-5.
Can the same output be used in that file?
is a file scanned even if it is not call/ scanned by the main file?
 
I think using the same output in different routines is a no-no, i would use an internal coil in each routine and then switch the output based on the status of the internal coils.

Think about troubleshooting - its easier to fault find the output in one part of the program.
 
Last edited:
Actually with the Logix platform's asycronicity of I/O update the output could be on for 1 I/O update time (whatever that is) occasionally. It will depend on the size of the program and the ratio of the time spent between the two rungs compared to the total scan time. As mentioned, don't use double coils. Use the intermediate bit as recommended by STL???

Addressing mracer's question - the logic in a subroutine which isn't being called is not updated. Any outputs are not controlled. But note - they are not turned off just because the subroutine is not scanned. They retain the state of the last time the subroutine was scanned unless they are used in another scanned routine.
 
With Logix, I/O is scanned asynchronously to the program

With Logix, I/O is scanned asynchronously to the program ?

what is an example of this feature being usefeul ? how is it better than the way a slc does it . updating i/o at the end of the scan ?
 
As long as it's not a problem then the I/O update (as performed by a seperate processor I believe) does not subtract from the overall scan time. With a typical Logix system there tend to be a lot more external devices to be updated.
 
Originally posted by plc noob:

what is an example of this feature being usefeul ?

This really isn't a feature so much as a consequence. bernie_carlton is correct. With the SLC and PLC series the I/O was polled. The processor specifically requested data from each module as a part of housekeeping. This required processor resources.

The Logix family of processors uses the producer/consumer method of I/O transfer as opposed to the polled method. The input modules transfer data on the backplane when their set RPI expires. the plc doesn't ask for the data; it just shows up.

This general thought process is extended to everything on the backplane. So even though a case could be made that it doesn't make much sense to transfer the output commands to the output module until the end of the plc scan this would be an exception to the RPI based data transfer on the producer/consumer network. The plc could also buffer the data and transfer it to the true output image at the end of the scan. But why waste resources doing that if it isn't necessary. In fact, in applications where the data needs to stay constant through the scan, users will buffer the I/O data themselves using the CPS instruction (synchronous copy).

Keith
 
Last edited:
plc noob said:
With Logix, I/O is scanned asynchronously to the program ?

what is an example of this feature being usefeul ?

Logix system can be much more complex than a typical SLC system, with many more I/O, and supporting all types of communications. In some cases, it might be desirable to scan some I/O at one rate, and other I/O at another. Or, sometimes when using custom communications modules, the comms link might only update once a second... Why bother repeatedly scanning dead data?

If you are used to using linear scan PLC's (Housekeeping / Scan inputs / Run cyclic program / Update Outputs) you can run into problems with Asynchronous PLC's, but once you know what they are doing, there are ways around them.
 
kamenges

what is rpi ? and yes i am only used to working with micrologix ,slc,directautomation controllers. just saw this post and was asking just to educate me on logix systems as i will be using them soon. i am still very green only been doing electrical/programming /design for about 6 months . so that is why i was trying to get a deep understanding of how logix works
 
since Keith is away, I’ll try to answer ...



the RPI (Requested Packet Interval) is set up whenever you install a new module in the CLX chassis ...



there’s more to it than this, but you can think of it as an extra “special delivery” command that sends the ON or OFF status from the output bits to the output module ... (or reverse for input modules) ...



this takes place at a regularly scheduled time which is set up here ...



rpi.JPG




this EXTRA transfer of information takes place IN ADDITION TO the processor’s regular “end of scan” transfer ... in the subject being discussed in this thread, the idea is that one of these “special delivery” messages COULD occur BETWEEN those two conflicting rungs ... moving the rungs further apart in the program will aggravate the condition ... if they’re close together, the field device will not USUALLY have time to react to the “flickered” output - before the bit status gets updated - and retransmitted - by the “last rung” in the ladder logic which controls the output ... sometimes you can see the flicker by watching the LED on the front of the module ... the solid-state LED reacts quicker than most field devices ...
 
Last edited:
so if you did for some reason have an output that you wanted to turn on and then off during the same scan . it could be possible by implementing the correct spacing of the outputs in the program and the correct adjustment of the rpi . is this correct ?
 
best to avoid multiple same outputs on different rungs hence if I understand it as I do not program controllogix the problem can work out if the rungs are side by side but its still not recommended.
 
mordred-

The only thing putting the rungs next to each other will do is decrease the chance that the output is updated between the rungs. It doesn't eliminate the issue.

Think of a large wheel spinning at a fairly constant speed. The wheel has two zones, one painted green the other red. A person throws a dart toward the wheel at a fixed point in space at a regular interval. The dart is thrown at the same point in space every time, which is not necessarily the same point on the wheel. Two darts in a row hitting in different zones is considered bad.

If the two zones are equal in size the chances are very good that the two darts will hit in alternate zones. However, if one zone is much larger than the other the chances of hitting alternate zones in decreased. But there is still the possibility the darts will hit in alternate zones. And there is no way to guarantee that the dart DOESN'T hit in alternate zones unless there is only one zone.

Keith
 
it's also possible to run the wrong way down the fast lane of a busy freeway but it's not a good idea. I'm a firm believer in the KISS principle, having spent many a long night trying to decipher other peoples code so that production can resume.
 
Last edited:

Similar Topics

This should be a pretty easy question, would just like to have it explained a bit so I can understand it. In the attached program, why does the...
Replies
15
Views
4,707
Hi All, In most older PLC's of all makes the sequence within the PLC was to scan the Inputs then Work the logic out and then set the Outputs. (3...
Replies
2
Views
1,256
Hi all, I primarily use AB PLC's, and have a reasonable understanding of the way they scan their logic. I've done a few smaller projects on...
Replies
18
Views
5,515
I know that an Allen-Bradley PLC will scan every input first and store them in memory, then solve the ladder, then update the outputs. I'm...
Replies
3
Views
4,545
when scanning program goes from left to right and top to bottom but what happens when there is a branch on the output. Does the top part of a...
Replies
5
Views
3,444
Back
Top Bottom