asynchronous scan

unsaint32

Member
Join Date
Oct 2012
Location
minneapolis
Posts
365
Hi, I am a newbie PLC person and I would like to clarify info regarding PLC asynchronous scan. I came across the attached picture which seems to show that the I/O task and comm happen simultaneously. But the I/O task interrupts the comm task which interrupts continuous task. Therefore, in reality, I/O task and comm do not happen simultaneously. Am I correct?

Also, I understand that once the I/O task had begun, it cannot be interrupted (even by a motion planner), correct?

Thanks.

asynchronous scan.jpg
 
In reality, it's even more complicated than that :)

Each individual I/O card or ethernet module or any other I/O device can have a different RPI, so you might not have all of your inputs or all of your outputs updating at the same time.

You can have have multiple tasks which can be triggered by an event or run every x seconds (or milliseconds).

For all intents and purposes, almost anything can happen at any desired frequency. But you're correct in that the PLC can only do one thing at a time, so there are always tasks interrupting other tasks, depending on which one has the higher priority.

I personally don't know all the ins and outs of what operations have which priority. I know that when it comes to your logic tasks, you can assign them priority so that you can control which one overrides which other one. I know that in a Compact Logix, the I/O updating has a fixed priority of "6", whereas in a Control Logix, you can define the I/O updating priority yourself. I know that the continuous task is the lowest priority of all, and that the only thing truly "continuous" about it is that it's continuously interrupted by everything else. Beyond that, I'm going to hang around and see what else I can learn about priority from the more experienced boffins here :)
 
Moreover...:D

ControlLogix Class controllers are true multi-thread CPUs consisting of several isolated systems which, although 'configurable' and carrying some 'priority' settings, are not 'related' to each other but by user application and/or user settings.

ControlLogix controllers consist of two CPUs (The L7x CPUs are dual-core).
The Logix CPU executes application code and messages.
The Backplane CPU communicates with I/O and sends/receives data from the backplane. This CPU operates independently from the Logix CPU, so it sends and receives I/O information asynchronous to program execution.

CompactLogix and DriveLogix controllers have a single CPU which performs all operations. Isolated tasks perform I/O and communication and interact with networks. These tasks simulate the backplane CPU.

ControNet network I/O is updated exactly at the RPI rate while the EtherNet/IP located ones are updated 'close' to the RPI setting; Local chassis I/O is updated at the RPI rate and at the end of each task.

The highest functional priorities for any Logix systems are the CPU Overhead (serial port and general CPU operations), the Motion Planner (running exactly at the set 'Coarse Update Rate'), the Safety Task, the Redundancy Task and the user software Trend data collection. These threads have an 'absolute' priority.

All other tasks are user implemented and user ranked from Priority 1(Highest) to Priority 15 (Lowest) (6 to 15 for CompactLogix and DriveLogix controllers). The Continuous task is the lowest priority task and always unique within any Logix application.

If a periodic or event task is executing when another is triggered and both tasks are at the same priority level, the tasks 'timeslice' execution time in 1ms increments until one of the tasks completes execution.

The motion planner interrupts all other tasks, regardless of their priority.

CompactLogix, FlexLogix, DriveLogix, and SoftLogix controllers use a dedicated periodic task to process I/O data (Priority 6- the highest).

The System Overhead is the time that the controller spends on message communication and background tasks; these Overhead communications are the ones which are not configured through the I/O configuration folder of the project(e.g. MSG instructions driven data transfer).
 
Last edited:
Note that the motion planner runs even in program mode, so if you start a jog move (MAJ), switching to program mode will not stop the jog it will continue to run the servo may not depending on how the enable is configured.

Alan
 

Similar Topics

Hello guys, I'm new here so go easy on me ;). Right I have many years AB experience but I am using the contollogix plc with RSLogix5000...
Replies
19
Views
15,306
Hello Dear Experts Is anyone knows where i can find some example to make some positionning function with S7-1200 Motion Control (v7.0) functions...
Replies
0
Views
480
It is said that the one of the differences between a CompactLogix and a SLC is the SLC is Synchronous while the CompactLogix is Asynchronous. If...
Replies
3
Views
5,555
I am having a hard time understanding how using a reference tag (a buffer) would prevent the I/O value changing in the middle of a program...
Replies
4
Views
3,123
I was wondering if someone could clarify / correct my understanding of MSG block on PLC5 / SLCs / ControlLogix platforms. MSG blocks are...
Replies
8
Views
2,899
Back
Top Bottom