The Case of the Shifting Serial Numbers

THE MYSTERY

ACES routinely maintains a legacy oven at an aircraft plant that is used to cure composite parts for long periods at relatively low temperatures.

Recently the customer had been having issues with identifying serial numbers for aircraft parts, which were tracked by the oven’s PLC. When the operators entered the serial numbers, the HMI was displaying incorrect digits.

THE CLUES

Upon investigating the machine, the ACES’ CSI (Control Systems Investigator) on the scene found that the HMI on the oven was a legacy Allen-Bradley panel view that was relatively old and slow.

He also questioned the operator, who reported that when they went back to review the batch report, it would show different serial numbers from the ones they had just entered. There were the same number of digits, with just the last number changed.

“The PLC should just be storing the number, not changing it,” said the CSI. But the fact that it was shifting by only one number led the CSI to think, “Okay, maybe this is a rounding problem.”

THE PERP

As The CSI suspected, the customer confirmed that the serial numbers were typically seven digits long, but they’d recently run out of numbers and had to add one.

After investigating the code, he also discovered that the data type used to store the value was programmed with a floating-point data set. Turns out that the PLC was rounding the number and returning that to the HMI to display.

A floating-point data set is a method of programming a field, which is limited to a certain number of bits. There are a limited number of digits you can use to assign the decimal part of the number, and when you go above that number the precision is less than one, and that’s what causes the rounding.

THE SOLUTION

There’s also a second data type: A string value, which simply stores a series of characters, letters or numbers. It’s a variable length field that can be as many digits as necessary. The CSI reprogrammed the serial number variable in the PLC from a floating-point data set to a string value.

Now the customer can store whatever length serial number they want without losing precision. And the PLC no longer randomly changes the number.

CASE CLOSED

Have you experienced mysteriously morphing data in your PLC? Leave us a comment below about The Case Of The Shifting Serial Numbers.