How to determine a Logix processor load

AlfredoQuintero

Lifetime Supporting Member
Join Date
Feb 2015
Location
Yokohama
Posts
1,551
Hello:
I wonder if there is a way to find the CPU load of a Logix processor, and if it is not possible to determine this in an absolute way, I wonder if it is possible to compare some value under different conditions to see if one particular condition increases significantly the CPU load.

For example a year or so ago I wrote this post in answer to an inquiry on how to get CPU memory usage. It turns out there is this class ID 72 for Logix processors that gives this memory usage information. I am looking for, but cannot find, a similar object for CPU load. If it exists, is it possible to send a CIP generic explicit message to the CPU itself? Never done this.

Also, I tried to see if the GSV can support this or an equivalent. I wonder whether the below GSV object would be useful. Thanks for reading.

2022-02-23_223614.png
 
Last edited:
Since the Task Monitor tool can show us this information I would have to guess there is a way to extract that information, probably through a CIP Generic MSG. The trick is finding the correct settings.

The GSV Object you circled won't show percentages. It shows scan times for a Program. You can also get Task scan times using the Task Object. I'm not aware of any of the GSV Objects being able to retrieve CPU usage information.

OG
 
If you're polling a 5x80, you would use RA class 0x335. You can obtain per core usage, core roles (Packet processing/Safety/etc.), and task information. The class requires you to provide a source data block that specifies what it's to return.

Rockwell provides AOIs with rung imports (L_CPU_5x80 in PAx 4 and raP_Dvc_LgxCPU_5x80 in PAx 5), so there's grey boxes you can play with.
 
Last edited:
Operagohst, thanks a lot.
JeremyM, thank you for this information. Is there any document that you know of which documents RA class 0x335?
 
You can allways make long loop, add your code there and see how much your code takes scan time. Them calculate average scan.
Compare to your differently coded code and you see if it is more effective or takes actually more scan time and processor power.
Programming manual also usually have microsecond time / operation instruction printed somewhere.
 
Operagohst, thanks a lot.
JeremyM, thank you for this information. Is there any document that you know of which documents RA class 0x335?

Not officially documented, only loosely by being able to observe how the messages are set up and how the AOI unpacks and presents the return data.

The PAx AOIs for ChangeDetection (0x_ can’t recall) and TaskMon (0x335) could also shed some light, despite being source-protected.

There’s likely more attributes belonging to the 0x335 object than are made available by the AOI. However, the message uses an undocumented RA service and its source data block has to correctly specify what the class should return or the read attempt is rejected.
 
Last edited:

Similar Topics

I'm using a 1769-L18ERM to control two Kinetix 5500 servo drives. I am setting up a virtual axis, which I will use the MAJ instruction to run, and...
Replies
6
Views
2,404
Hello, i am a beginner with a Siemens Logo 8 PLC. I would determine the direction of an object if it passes a whole cycle of 2 input sensors. See...
Replies
2
Views
190
Hi all, Just looking through the CIP_AXIS_DRIVE data type in a Logix controller to look for something that can tell me whether the current...
Replies
2
Views
1,072
I'm currently working on an MES interface PLC which passes around a whole bunch of strings. A lot of these strings are really just to allow for an...
Replies
0
Views
1,119
I don't use AB much these days, and any installs I've done in years past have been setup by myself from scratch, so I've always known what...
Replies
8
Views
2,083
Back
Top Bottom