OEE is the product of three factors: availability, performance, quality. A modern machine with a PLC gives you the first two itself. The problem lies with old machines that have no PLC or give no data, and even more with the question "why did it stop". The PLC says "stopped"; it does not say why. The camera shows why: the operator was not there, material had run out, the forklift was late, it waited for quality inspection.
Seeing the stoppage
To derive whether a machine is running from video we used three methods, in order of complexity:
- Motion region. Frame differencing in the region where the machine's moving part is. The simplest method; enough for presses, conveyors, filling lines, anything with visible movement. Sensitive to light changes, needs day/night settings.
- Indicator reading. The status light on the machine panel (green/amber/red) or a seven-segment counter. A small classifier reads a fixed region of the panel. The most reliable way to get data from an old machine without a PLC.
- Output counting. Product passing is counted at the end of the line. Both performance (cycle time) and stoppage (no product for a defined period) come from here. If the product is small and fast a high frame rate is needed; we do not go below 25 fps.
Where there is a PLC we take it as the source of truth and use the camera for reason detection. Where there is none, the camera gives both state and reason; accuracy is lower but better than nothing, and for most old lines it is the only option.
The reason for the stoppage
This is the real work. The machine stopped; at the same moment the camera sees the following:
| Observation | Assigned reason |
|---|---|
| Nobody in the operator area | Unattended stop |
| Operator at the machine panel | Setup / tool change |
| Operator at the material inlet, pallet empty | Waiting for material |
| Maintenance vest visible | Breakdown / maintenance |
| Operator inspecting a product in hand | Quality check |
These mappings are not certain; they are written as a probable reason and the shift supervisor confirms or corrects them in the report. After a month the correction rate drops below 10%. Previously the reason was written on paper by the operator and 40% of it was "other". After the camera, "other" fell to 5%; the OEE itself did not change, but what to do became clear.
Operator performance, read the right way
The phrase frightens people on the factory floor. What we measure is not the person but the station: how long over the shift was an operator inside the working zone of this station, how many times did they leave, how long did the absences last. No identity, no faces. The report is per station and per shift. Management sees "at station 3, active time drops in the first 20 minutes after shift change" and fixes the handover process. No individual scorecards; with a customer who wants those we discuss the point at the start.
The 72% active time measured at one plant showed where the remaining 28% went: material handling. The operator walked to a pallet once a minute. Moving the pallet position raised active time to 85%, with no change in machine count.
Cycle time
Cycle time comes from output counting: the interval between two consecutive products. Its distribution is worth more than its average. If the average is 12 seconds but the distribution has two peaks (10 and 16), the machine is running at two different speeds; usually two operators' different habits or a difference between material batches. The MES only showed the average.
MES integration
The resulting data goes to the MES over two channels: stoppage events instantly via webhook, OEE components as hourly aggregates via REST. On the MES side "camera-derived stop reason" is a separate field; the mapping table to the MES's own reason codes is built at installation. Where there is no MES we start with hourly CSV and a Power BI template; at two customers the move to an MES was decided on the data collected with that template.
Calibration and acceptance
The acceptance test is one week: the stoppage list produced by the camera is compared with the shift supervisor's manual log. A deviation of more than 30 seconds in stop start or end time counts as an error. For reason assignment the target is 80% correct in the first month, 90% in the third. These figures vary with line type; an assembly line is easier, a mixed job shop harder.
Where it does not work
A machine working inside a closed cabin (CNC, injection moulding) is invisible to the camera; no data comes from there without a PLC. Very dirty environments (foundry, sandblasting) blind the lens once a week; we do not install without a protective housing and air purge. On lines faster than 5 products a second a photocell is cheaper and more accurate than a camera for output counting; the camera then stays only for reason detection.