A complete look at how we turn cocoa beans into wrapped chocolate bars. 78 machines across 7 production areas, each one connected, measured, and understood.
Raw cocoa beans enter from the left. Palletized shipping cases leave on the right. Every step in between is measured, controlled, and optimized. Utilities run underneath it all.
All 7 production areas under one roof. Raw materials enter top-left, finished pallets leave bottom-right. Utilities run along the far side.
Everything starts here. Raw ingredients arrive by truck and are stored in climate-controlled silos and tanks. The factory runs a just-in-time replenishment system — silo levels are the heartbeat of the supply chain.
Large vertical silos storing raw fermented cocoa beans. Temperature and humidity must stay stable to prevent mold or premature fermentation. Level sensors track inventory for automatic reorder triggers.
Granulated sugar storage. Humidity control is critical — clumping halts the dosing system.
Stores spray-dried milk powder for milk chocolate recipes. Most sensitive to humidity — powder absorbs moisture rapidly.
Heated jacketed tanks that keep cocoa butter liquid at 45–50°C. A slow agitator prevents settling. These feed the conches and tempering machines.
This is where raw beans transform into cocoa nibs — the essential building block of chocolate. The roasting step defines the flavor profile; too hot and you get bitter, burnt notes; too cool and the beans taste flat and acidic.
Vibrating screens and air separators remove stones, twigs, and broken shells from raw beans. A single stone can destroy a cracker roller downstream.
Provides machine_state, parts_total, parts_good, parts_bad, and cycle_time for OEE calculation. Availability drops when screens clog; quality tracks foreign matter in output.
The soul of the factory. Rotating drums roast ~200 kg batches at 120–160°C for 20–40 minutes. The exhaust temperature reveals roast progression — a sudden spike means the beans are cracking. RST-03 historically runs 2°C warmer.
OEE signals: machine_state, parts_total (batches), parts_good, parts_bad, cycle_time. Performance is batch throughput; quality is roast consistency. The drum_temp vs drum_temp_setpoint deviation drives quality scoring.
Breaks roasted beans into nibs and blows away the papery shell. The roller gap must be precise — too tight crushes nibs into powder (lost yield), too wide leaves shells in the product (gritty chocolate).
OEE signals track throughput performance and quality via shell_separation_rate. A drop in separation efficiency flags roller wear or air system issues before it affects downstream chocolate quality.
The heart of the factory. Cocoa nibs are ground into liquid, refined to silky smoothness, and slowly conched for hours to develop flavor. Finally, the chocolate is tempered — a precise temperature dance that creates the crystal structure responsible for snap and shine.
Steel ball mills grind cocoa nibs (and sugar, milk powder) into a paste with particle sizes below 20 μm — the threshold of human tongue perception. Anything coarser and the chocolate tastes gritty.
OEE quality derives from particle_size — batches exceeding 20 μm at cycle end count as quality losses. motor_power trends predict ball wear (predictive maintenance opportunity).
The signature process of fine chocolate. Heavy rollers knead the mass for 12–72 hours, driving off volatile acids, developing flavor complexity, and rounding out texture. More conching time, more nuance.
Long-cycle OEE: a single batch takes 12–72h. Quality is driven by final volatile_acidity and moisture. motor_power trending against viscosity reveals batch-to-batch consistency.
The most critical machine in the factory — and the star of the analytics dashboard. Chocolate is heated to 50°C (melt all crystals), cooled to 27°C (seed Form V crystals), then reheated to 31–32°C (melt unstable crystals, keep Form V). Get this wrong and the chocolate blooms, crumbles, or sticks to molds.
The temper_index is the single most important quality signal in the factory. It directly drives OEE quality scoring and is the primary candidate for virtual sensor modeling. Zone temperature deviations from setpoint correlate to final bar quality in QC.
Liquid tempered chocolate becomes solid bars. Molding lines deposit precise amounts into polycarbonate molds, vibrate out air bubbles, then send them through cooling tunnels. When cooled correctly, bars contract and pop cleanly out of the molds.
High-speed depositors fill multi-cavity molds with tempered chocolate. A vibration table shakes out trapped air (bubbles = defects). Fill weight precision is critical — underfill wastes yield, overfill wastes chocolate.
fill_weight_deviation is the key quality signal for OEE. Depositor drift shows up here before it causes rejects downstream. line_speed vs. target drives the performance component.
30-meter tunnels with three temperature zones. Entry (15°C) starts solidification. Middle (10°C) completes crystallization. Exit (18°C) prevents condensation. Too fast = fat bloom. Too slow = bottleneck.
Cooling affects OEE quality across the entire downstream. product_exit_temp outside range causes bloom (white streaks) that shows up at QC. humidity spikes correlate with condensation defects.
Molds are flipped and tapped to release solidified bars. If tempering or cooling was off, bars stick — the release rate drops and rejects climb. A simple but revealing quality indicator.
release_rate directly maps to OEE quality. A drop here is the first visible sign that tempering or cooling parameters drifted. Correlating release_rate back to temper_index is a classic cross-machine analytics use case.
Every bar passes through camera inspection and a precision scale. Defects are categorized: surface cracks, bloom spots, air holes, weight out-of-spec. This data, correlated back to tempering and molding parameters, is gold for virtual sensor models.
High-speed cameras photograph every bar from above. Machine vision algorithms score surface quality — cracks, color consistency, bloom, air holes. The surface_score (0–100) is the single most valuable quality metric in the factory.
surface_score is the factory-wide quality reference signal. OEE quality at this station captures the cumulative effect of every upstream process. Bars below score threshold are rejected — feeding parts_bad in OEE.
Precision in-line scales verify every bar is within ±2g of the 100g target. Out-of-spec bars are blown off the conveyor by an air jet. Weight data reveals depositor drift before it becomes a real problem.
weight_deviation trending reveals depositor drift in real time — before it triggers actual rejects. Each reject_trigger event counts toward OEE quality loss. Correlate with fill_weight from MLD machines for root cause.
Bars are individually wrapped in foil and paper, packed into cardboard boxes of 12, then into shipping cases of 24 boxes. Robot palletizers stack cases onto pallets for the warehouse. This area runs the fastest cycle times in the factory.
Flow-wrap machines seal each bar in aluminum foil + printed paper sleeve. Sealing temperature must be precise — too hot melts the chocolate through the foil, too cold and the seal leaks.
wraps_per_min drives OEE performance. seal_temp deviations cause leaky seals (quality loss) or film burns (scrap). High-frequency machines — small cycle time variations compound fast.
Erects flat cardboard blanks, inserts 12 wrapped bars, and glue-seals the box. Hot melt glue system is the most common failure point — nozzle clogs cause stops.
glue_temp dropping below range predicts nozzle clog — the #1 availability loss for this machine type. glue_pressure trending is a predictive maintenance signal.
Groups 24 cartons into corrugated shipping cases, tapes them shut. The final discrete packaging step.
Simple OEE — cases_per_min vs. target rate for performance. Availability tracked via machine_state.
6-axis robot arms stack cases onto Euro pallets in a programmed pattern. Layer by layer until the pallet is full (60 cases = 17,280 bars). The last step before the warehouse.
robot_speed vs. maximum drives performance. gripper_pressure trending predicts vacuum seal wear — a common robotic palletizer failure mode.
The invisible backbone. Compressed air powers pneumatic actuators everywhere. Chillers supply cold water to cooling tunnels and tempering machines. Steam boilers heat the roasters and conches. When utilities fail, everything stops.
Screw compressors supplying 7-bar plant air. Feed all pneumatic valves, air jets, and actuators. Vibration trending is the classic predictive maintenance use case.
Industrial water chillers supplying 8°C glycol to cooling tunnels and tempering jacket circuits. COP (coefficient of performance) can be computed from supply/return delta and compressor power — a virtual sensor opportunity.
Gas-fired boilers producing 6-bar steam for roaster heating jackets and conche heat exchangers. Water level is safety-critical.
Each production area is served by one or two PREKIT edge nodes — industrial-grade computers running at the network edge. They collect, process, and contextualize machine data before it leaves the factory floor.
Not every signal is equally important. Here are the ones that drive decisions — from real-time quality control to predictive maintenance and OEE optimization.
Every OEE-tracked machine provides five standard signals: machine_state (6 states: running, idle, setup, maintenance, error, off), parts_total, parts_good, parts_bad, and cycle_time.
These feed Availability (uptime vs. planned time), Performance (actual vs. ideal cycle time), and Quality (good parts vs. total). 62 of 78 machines are OEE-tracked.
The most valuable analytics path runs through: temper_index (TMP) → fill_weight_deviation (MLD) → release_rate (DML) → surface_score (VIS) → weight_deviation (WGH).
Correlating these cross-machine signals reveals root causes: a temper_index drop at TMP-03 shows up as bloom defects at VIS-02 twenty minutes later.
Key PdM signals: vibration on compressors and tempering pumps, motor_power trending on mills and conches, oil_temp on compressors, glue_pressure on cartoners.
Gradual increases in vibration or power consumption indicate bearing wear, belt slippage, or mechanical degradation — days or weeks before failure.
Utility signals enable energy analytics: chiller compressor_power vs. supply_temp/return_temp delta gives COP. Boiler gas_flow vs. steam_pressure gives boiler efficiency. Roaster gas_flow tracks per-batch energy cost.
Temperature profiles are everywhere: roaster drum_temp, conche product_temp, tempering zone1/2/3_temp, cooling tunnel zones, wrapping seal_temp. Each has a setpoint — deviations drive quality.
Moisture and acidity in conching (moisture, volatile_acidity) track flavor development over 12–72 hour cycles.
Silo level_pct signals across all 7 raw material silos provide real-time inventory visibility. Combined with production rate data, they enable just-in-time replenishment and prevent both stockouts and waste.
humidity in silos is the early warning: a spike means the climate control is failing and material quality is at risk.