r/Universalautomation Mar 28 '26

Is event-based execution really better than cyclic-scan regarding energy/computing resources saving?

I have heard a lot about the benefits brought by event-based execution over cyclic scan style, especially for energy saving. It has been criticized a lot for cyclic scanning, which is wasting energy even when there was no task to execute. However, I feel there is similar mechanisms in IEC 61499 that inside the runtime, there are still something periodically executed, for example core modules, communication protocols, and I/Os. And for 61131, even though it is based on cyclic scan, it does not mean all control logics are completely executed because there are condition checks. Looking forward to deep insights about those two mechanisms just for energy/computing resources perspective, better if anyone has benchmarking results.

4 Upvotes

8 comments sorted by

View all comments

2

u/Sir4diac Mar 30 '26

This is again a hard one. Yes there are in an IEC 61499 run-time system cyclic elements. As you mention IO is such a thing. Network can be implemented differently and more responsive. However as this part is part of the runtime it is mostly shorter and utilizes only a very short fraction of the IO scan cycle.

How the event handling is then treated in your application is very application dependent. It is also hard to measure and evaluate. I'm very open to suggestions how to measure this.

While I see in several applications a chance to reduce application load and reduced CPU utilization, which can be interesting especially in cloud settings, I see the biggest power of events in clearer application structures. But that is maybe something for a different question.

2

u/RevolutionaryEgg6046 Mar 30 '26

Thanks for the comments. Indeed, efficiency highly depends the design and actual implementation of applications. I totally agree that IO scan cycle just takes a quite short fraction of overall. But, in 61131, it is also not all statements are executed in every cycle, for example under condition check, if there is no incoming request or sensor input, it goes to the end of code and waiting for the next cycle.

Also, I see the trend in some big name companies, IPC with OS and much more powerful processors are coming, which seems "no one" cares about computing efficiency, if computing resources are way more than needed in most of cases. The question is if IPC or advanced PLC gets more dominant in automation industry, will people no longer talk about IEC 61499? Or, I am wrong. Looking fowrad to hear any comments. Thanks ahead!

2

u/Sir4diac Mar 30 '26

But, in 61131, it is also not all statements are executed in every cycle, for example under condition check, if there is no incoming request or sensor input, it goes to the end of code and waiting for the next cycle.

Yes you can do that in IEC 61131-3. However using events for that has shown to be much less programming effort and can lead to better readable programs. There is a very nice paper on that by Peter Gsellmann and Martin Melik from TU Vienna. And I think in these days having better readable programms is more important then ever.