CPU load calculation tool for AC800M
Do you have any "calculator" to count CPU load (AC800M / HI)? I am in the design phase without real HW. You can send it directly to my e-mail: firstname.lastname@example.org.
There are available "manuals" how to count load, but this is not the topic of this post.
Thank you for information.
Voted best answer
a few time ago I also asked some tool for calculation of CPU load but without success. Answer was - only by experience one can somehow imagine what will be CPU loading. I heard that there is some Excel calculation table in REUSE libraries but don't have REUSE to see if it is true. If you will see possibility, I can be a tester of your tool.
Eugene, thanks for offer.
I have set a procedure to obtain data regarding Melody CPUs (PM87x) from realized projects to develop any estimation tool (based on CPU load screenshots and exports from application layer regarding assigned HW I/Os, communicated I/Os, task scans.
There is possible to set any similar solution for AC800M controllers. If you can help me you can ask your colleagues to make any sililar solution for you and you can resent me exports for studying. There is probably to develop any solution which will be based on "real" running applications (I hope).
I try to develop a little bit easier solution (to estimate / quoting numbers) and if there will be enough samples and good feedback from realization side I am sute it is possible.
Final calculation for controller load estimation can have "application" index (possible to choose) which can give you a link for which application is calculation propose.
I don´t assume there will be everything done within day, but in case of available data there is possible to speed up development.
What kind of information do you need and in which format?
From my point of view, procedure and formula from AC800M HW manual. Look 3BSE041434-510_en_System_800xA_5.1_System_Guide_Technical_Data_and_Configuratio
n.pdf, Section 3. There you have memory consumption and execution times for first and other instances of widely used FB and CM. At least, you can quickly calculate roughly memory and CPU load just know how much analog inputs (SignalInReal/SignalInRealM), analog outputs (SignalOutReal/SignalOutRealM), PID llops (PidAdvancedCC), discrete inputs and outputs you have in system. Of course, it is rough value.
CPU / controller / process station is multitasking device. If you want to calculate "real" load you will need to calculate all tasks which can be performed and give all together to get overview. I have found performance calculation regarding module bus, profibus DP and I/Os tasks (in appropriate places / datasheets). What about the rest of "performance factors" like serial links, FF links, Modbus TCP/IP links and associated communicated values (SCADA for HMI only and Tags for control + HMI functionality)? What and exactly how influence this side CPU / controller / process station performance? I would like to propose solution which is based more on "real" applications, because of all above exactly correspond to application area which defines requests. After that you can see that in example for power industry application there are assigned less I/Os than other applications, but CPU / controller / process station load is higher. Application itself drives CPU load.
I'm not sure if control tags+HMI creates more CPU load than just HMI tags. From OPC server there are no differences between this two kind of tags. CPU loading creates number of tags accessed by OPC and OPC update rate.
I agree that number of IO's could not be clear equivalent for memory consumption and CPU load, but can give you imagination of rough values because IO's corresponds to FB/CM which uses this IO's. Power station application could produce higher load than some others, but because of more complex FB/CM, more complex calculations and faster scan cycle.
Serial link, FF, Modbus/TCP of course consume CPU resources but they are also, let's say, instantiated FB in specific form and rules for consumption calculation is same as for usual FB/CM (see p.106 3BSE041434-510). And they also provides CPU with some external resources in form of tags. Your application will operate with tags via FB/CM which consumes memory and loads CPU.
So total CPU and memory loading is from modules on ModuleBus+modules on CEXBus+FB/CM for physical IO's+FB/CM for external (via serial, TCP, FF) IO's with correction on scan cycle time. Isn't it?
There is also necessary to add CPU "internal" load to total calculation - redundancy, diagnostics, communication to higher level, communication between controllers themselves.
Additionally therere is possible HART implementation (data harvesting / acquisition and distribution) - not so big issue I guess because of very slow communication. After that we can say we have all information for CPU load estimation.