Execution Time for RESTR Block in Harmony

We would like to calculate the module execution times in DBDOC. Unfortunately, the documentation for FC 140 RESTR block indicates only the range of minimum to maximum times:

- 25.93 to 1,600.38 μsec for SPC700, HC800

- 62 to 2,571 μsec for Harmony Area Controller (HAC)

- 108 to 4,500 μsec for Harmony Bridge Controller (BRC-300/400/410 and HPG800)

- 123 to 5,141 μsec for Harmony Bridge Controller (BRC-100/200)

- 635 to 30,650 μsec for the oldest Multi-Function Processors (IMMFP11/12)

Composer and WinCAD both calculate based on the largest value, yielding useless results for understanding the CPU loading. We would make good use of the exact times on a function code by function code basis to give users a more correct calculation of the execution time for each segment.

By Alan on 4/6/2017 | Like (0) | Report

Hi Geoff,
Yes, the calculation of a meaningful execution time for a configuration with RESTR blocks has been a longstanding wish for many I think, but is also complicated by..

a.) Maximum number of NVRAM writes per second. Prior to BRC revision L there is a published limit of 20 NVRAM writes per second which could be easily exceeded if the RESTR save flag was not gated. The most common symptom of exceeding this rate was the redundant controller cyclically dropping from hot to warm standby. Revision L0 lifted this to 80 NVRAM writes per second but it is still possible to drop the redundant controller if there are sustained NVRAM write rates. Not sure if there have been any enhancements since revision L0 or what the HPC/SD700 support. So, even if the cycle time calculation is reasonably accurate the configuration itself may not work correctly in real world conditions.

b.) The RESTR save flag/save permissive. If the save flag/save permissive inputs are gated through logic the calculation of the individual RESTR block execution time becomes difficult as the RESTR function is longer occurring at the same period as the segment cycle time. Whilst this gives the potential for hundreds of restore blocks in a configuration without exceeding NVRAM write limits discussed above or execution time overruns, it also makes calculating a realistic execution time difficult offline unless you can determine the gating logic operation programmatically.

I haven't seen a document that provides the information you are looking for, however in the past I have used the worst case data from Appendix A data of the FC manual, converted this to a us/byte factor and then applied this factor to each instance of restore block and the number of bytes being written.

For instance for an MFP01/02

1062 bytes takes 30650us = 29us/byte
46 bytes take 635us = 14us/byte

Even just using the worst case of 29us/byte for every byte written by the RESTR block instead of the flat 30650us per RESTR instance improves the estimation of the cycle time markedly. The bytes Vs execution time relationship is not linear but with a with some empirical data using the most common function code NVRAM sizes a lookup table could be created.

Good luck,


By Geoff Michaels on 4/6/2017 | Like (0) | Report

Thanks, Alan.

First, if no better information comes along, your approximation will allow us to do a better job with the estimation. Also, since we take the hardware into account, we can work the NVRAM writes into it.

When we started looking at NVRAM, we began by flagging blocks that are being written every cycle. This led us to blocks that never get saved, an even more severe problem. One site had over 200 out of 900 such blocks.

DBDOC will continue to add error checking for the numerous errors that Composer fails to find. Thanks, again.

Add New Comment

Geoff Michaels   

asked 10 months ago


This question has not yet been answered.

Get weekly AKS updates

Partner Exclusive Webinars


> – Login to the partner portal to register

Points Redemption Program - Redeem your points for ABB training, Bluetooth speakers and mugs. Terms and conditions >

Earn points when you refer a friend
AKS Referral Program is "Live" - Learn more

AKS Experts

Ask Dieter Henkel   

Rank: 21

Ask Flavio Mussolin   

Rank: 4

ABB AVP, Senior Electronic and Automation Engineer with over 30 years of experience in the field of process automation automotive, pharmaceutical, hollow glass, steel and rolling.

Ask MMM   

Rank: 5

ABB PA CT Technical Support

Ask Harsha.D   

Rank: 7

Tech.Support,software and commisioning engineer with Proficient knowledge in 800xA and its products, RNRP,Networking in general.

Ask kstoilov   

Rank: 11

Control System Engineer: 800xA, Compact 800, AC500, AC31-50, Advant Master, Simatic, AC&DC Drives 11 years worked for ABB - Control Systems

Ask nikismith   

Rank: 255

I have been a part of the Recording & Control Factory team for 17 years in total, having spent a number of years as a repairs technician withi the manufacturing department, but being in my current role for 9 years now.

Ask Govindaraj   

Rank: 10

Working in ABB India Operation Center. Have Project engineering and commissioning experience in ABB 800xA, Freelance, AC500.

Ask Ronny Lindström   

Rank: 18

ABB Service Engineer

Ask Stefan Stromqvist   

Rank: 1

I joined ABB in the year of 1994 and has since 1999 been working as a Service & Support Engineer at BU Control Technologies in Västerås, Sweden. My areas of expertise are: 800xA Base, 800xA for Advant Master, Information Management, operating systems, RNRP and Ethernet comms/networking in general.

Ask Sumit Gargav   

Rank: 3

I have worked with Freelance in majority, with 800xA FD and Melody system partly. Also had opportunity to work with Protocols - HART,Profibus,FF & Modbus.

Ask Rob Lyon   

Rank: 2

info@lymac.co.nz I'm an independent DCS software and commissioning engineer with extensive experience in 800xA and other ABB products. I've worked in almost every corner of the world and still haven't seen it all.

Ask WvanWees   

Rank: 6

I'm a senior service engineer working for ABB in The Netherlands.