On an ABB robot, the calibration value for each axis is recorded in two places: on the manipulator’s calibration label and in the controller’s system parameters. On IRC5 there is also a third, the SMB memory inside the arm itself. Normally all three agree. When the label and the system disagree, there is a reason behind it, and it pays to find it before touching anything.
Everything below applies to ABB. Manipulators from several ABB generations carry the label. The parameter section we compare it with is the one we read in IRC5 backups (RobotWare 6 included), and it also appears in older backups from the S4C/S4C+ era, where the axes are named differently.
What the manipulator’s calibration label shows
ABB calls it the silver label or the label for resolver values. It carries the robot’s serial number and an “Axis | Resolver values” table with one value per axis. The values are in radians, between 0 and 2π (6.2832), with 4, 5 or 6 decimal places depending on the label. On robots with fewer than six axes, such as a four-axis palletiser, some axes are left blank: nothing is missing, that axis simply does not exist.
Where it sits depends on the model. On the IRB 6620, for instance, the manual places it on the lower arm or on the base. What matters is that it is fixed to the arm and carries its serial number: it identifies that manipulator, not the controller it happens to be paired with today.
Where the controller keeps its own calibration
In the backup, system calibration lives in the SYSPAR folder, file MOC.cfg, section MOTOR_CALIB. There is one record per axis, rob1_1 to rob1_6, each with its own cal_offset: the value we compare against the label. In older S4C/S4C+ backups the axes appear as irb_1 instead of rob1_1. In recent versions the record also includes -factory_calibration_method and -latest_calibration_method, which keep track of the factory calibration method and the most recent one applied.
The commutation offset (Commutator Offset) is a different matter. MOC.cfg does not hold it as a value, only as a flag saying it is valid (-valid_com_offset, just as -valid_cal_offset does for calibration). To read it you have to go to the controller itself: Control Panel → Configuration → Motion topic → Motor Calibration → the axis → Commutator Offset.
The third location: SMB memory
On IRC5, calibration is also stored in the manipulator’s SMB memory. If the controller or the SMB is replaced, the controller detects the mismatch and flags it with event 50296, “Robot memory data difference” (“SMB memory data difference” in other versions): “Data in robot memory is not same as in controller for mechanical unit”. That discrepancy the robot does report. The one it never reports is label versus system: the label is a printed plate on the arm, and nobody checks it unless they set out to.
Updating the revolution counters is not calibrating
This is where the most common confusion lies. When the measurement system loses battery power, event 20032 appears, “Rev.Counter not updated”: “Revolution counter is not updated. One or several absolute measurement axes are not synchronized.” The action it gives is “Move the axes to the sync position and update the revolution counters”. That is the situation we cover in revolution counter not updated and the SMB battery.
Updating the revolution counters and carrying out a fine calibration (Fine calibration) are separate operations, and ABB treats them as such. In practice, fine calibration is reserved for when a motor has been removed or replaced. If someone runs one after a 20032 “just in case”, the system values stop matching the label, and the robot will not tell you.
What it can mean when the label and the system disagree
- A legitimate fine calibration without the label being updated. After a motor change the axis is recalibrated and the system value changes. ABB manuals (those for the IRB 6620 and the IRT 710, for example) then say “Update the label for resolver values with new calibration values”. If nobody did, the original label is no longer valid for that axis.
- A fine calibration carried out without need. Typically, because it was mistaken for a revolution counter update. The axis may be running on a value that does not belong to it.
- A controller or SMB replacement. Event 50296 warns that the controller and the SMB memory disagree. At that point the label and the previous backup are two independent references for working out which data set is correct before accepting either.
A difference is not a fault in itself. What you need is the explanation in writing: which axis, when it changed and why. If there is none, you do not recalibrate to “make it match” or overwrite parameters: first you go through the robot’s history to find out what was touched.
What we check at every ABB service
This is our own criterion, not a manufacturer requirement, although it points the same way: the IRB 6620 Product Manual, in the reference calibration, asks you to check that the active values match the label. At every service:
- We photograph the label. Some are fitted upside down, dirty, frosted, rusted or with a digit covered. With the photo filed alongside the robot, the data is not lost even if the label deteriorates.
- We take the backup on the same visit and read the MOTOR_CALIB section of MOC.cfg. Comparing the label with a backup from months ago tells you nothing about the robot today.
- We read the commutation on the controller, axis by axis, because the backup does not hold it as a value.
- We record it in the report, axis by axis: label calibration, system calibration and commutation, side by side.
- We compare. If any axis does not match, we flag it and look for the explanation before proposing any work.
It costs little: a photo and a backup that any serious preventive maintenance plan already includes. In return, it gives a warning the robot will not give on its own. It is part of the ABB robot maintenance we carry out.
When to compare them outside the service visit
- After replacing a motor, checking that the label was updated with the new values.
- After replacing the controller or the SMB, especially if event 50296 has appeared.
- After loading a system or restoring a backup, as a precaution.
- Before considering a fine calibration: if the problem was only the revolution counters, it is not needed.
All of this requires having the label photo and a recent backup to hand, robot by robot. If the only record is the label on the arm and it is illegible, the comparison can no longer be made.