Menu
Book a demo
MES vs DCS: Where the Boundary Sits in Dairy and Beverage Plants

MES vs DCS: Where the Boundary Sits in Dairy and Beverage Plants

Compare MES and DCS for dairy, beverage and process food plants: who owns which data, where ISA-95 draws the line, and when a light layer is enough.
MES vs DCS: Where the Boundary Sits in Dairy and Beverage Plants

In short: in MES vs DCS, the DCS controls the process and the MES manages and records the operation around it. In dairy, beverage and process food plants the DCS runs pasteurising, mixing, tanks and CIP, while the MES records runs, stops, output and losses. Check the handover from the process area to filling and packing first.

  • ISA-95 puts the DCS at level 2 and the MES at level 3. They are layers, not rivals.
  • The boundary that matters most is the handover from process to fillers and packers.
  • A light MES or OEE layer next to the DCS is enough when the gap is visibility of runs, stops and losses.
  • Scope a full MES only for steps that need dispatching, enforced work instructions or genealogy in one system.

Your process area runs on a DCS. Temperatures hold, recipes run, CIP cycles finish. Yet the plant manager still asks why the fillers packed less than planned last week, and nobody can answer without a spreadsheet.

Fabrico, which we make, is one candidate for the layer above the DCS. Read our view as a vendor's view and check each claim against your own filler data.

If you are still comparing control systems, read PLC vs DCS and SCADA vs DCS first. This page starts where those end: the DCS is in place, and the question is the layer above it.

MES vs DCS: what each one owns

A DCS is a control system. The NIST glossary, citing NIST SP 800-82r3, describes distributed control as control achieved by intelligence that is distributed about the process. An MES is an operations system: it manages and records what the plant made, when, and what was lost on the way.

QuestionDCSMES
Main jobControl the processManage runs, record what happened
ISA-95 levelLevel 2Level 3
Typical areaReception, pasteurising, mixing, tanks, CIPFillers, packers, palletisers, plant view
Time scaleSeconds, control loopsShifts, orders, runs
Key dataTemperatures, flows, pressures, recipe stepsRuns, stops, reasons, counts, rejects, losses
Main usersProcess operators, control engineersLine leaders, CI, plant manager

The two overlap less than the names suggest. Both show trends and both store history, so the question is not which one has a screen. It is which one owns the answer to a given question.

Where the boundary sits: ISA-95 levels 2 and 3

The ISA-95 standard page from ISA sets out the levels plainly. Level 2 "refers to programmable logic controllers (PLCs), distributed control systems (DCSs) and other control devices." Level 3 "describes manufacturing execution systems (MES)" and other systems that manage manufacturing operations. Level 4 covers running the business and includes ERP. ISA also notes that the standard primarily deals with the interface between levels 3 and 4. Where the line between 2 and 3 falls is a call you make for your own plant. Our guide to ISA-95 covers the full model.

Recipes add one more layer of detail. Batch control in process plants follows ISA-88, which ISA says brings clarity, structure and consistency to batch processing in food and beverage and other batch industries. Check where your recipe and batch logic runs, and which functions beyond control your DCS runs today, such as batch management or a historian. Whatever runs in the DCS stays with its owners.

In a dairy, beverage or process food plant, a practical place to draw the 2 and 3 boundary is the handover from the process area to filling and packing:

  • DCS side: milk or syrup reception, standardising, pasteurising or UHT, mixing, buffer tanks, CIP. Control and recipe steps.
  • MES side: fillers, cappers, labellers, case packers, palletisers. Runs, stops, counts, rejects and the order and SKU on the line.
  • The handover itself: the time a filler waits for product, or a tank waits for a filler. This loss sits between the two systems. Check who owns it in your plant.

For the wider map of control and operations systems, see PLC vs SCADA vs MES and SCADA vs MES.

What the plant wants to know that the DCS screens may not answer

Check whether your DCS screens and historian answer these questions today, without an export and an afternoon in a spreadsheet:

  • Why did filler 3 stop for 25 minutes at 10:40, and who logged the reason?
  • How many good units did line 2 pack this shift, against what it could have packed?
  • What did the 1 litre to 2 litre changeover cost in output, by shift, this month?
  • How long did the fillers wait for product from the process area?
  • Which order and SKU were on the line when rejects rose?
  • What did the losses cost in money, valued at the constraint?

If these take a spreadsheet, the gap is at level 3, not in the DCS. Ask whether adding DCS screens for packing questions would move operations reporting into a control system, and who would own it.

Decision card: DCS at level 2 runs the process, MES at level 3 records the line, with 8 checks to agree
Two layers and one handover: what each system owns, and 8 checks for the link.

Text version of this infographic:

  • Decision card titled MES vs DCS, who owns what.
  • Two lanes:
  • DCS at level 2 controls the process, MES at level 3 records runs, stops, output and losses, and 8 checks for the link between them.

DCS, MES or both: how to decide

Pick the DCS alone if your open questions are about the process: alarms, deviations, recipe steps, CIP cycles. And the output, stops and losses on filling and packing are already measured and trusted somewhere else.

Pick an MES layer if process control works but nobody can say what the fillers lost last shift and why. A light MES or OEE layer next to the DCS covers runs, stops, reasons, output and losses. Process control stays in the DCS. If you also need dispatching, enforced work instructions or genealogy in one system, compare scope with light MES vs full MES.

Do both if the biggest losses sit at the handover: fillers starved of product, tanks held for a filler, changeovers that start in the process area and end on the packing line. Then the DCS keeps control, the level 3 layer records the losses, and both share the same order, SKU and batch IDs.

SituationLean towardWhy
Process deviations, alarms, recipe stepsDCS and its historianControl questions stay at level 2
Filler stops and output unknown by shiftLight MES or OEE layerVisibility gap at level 3
Fillers waiting for productBoth, with shared IDsThe loss sits at the handover
CIP holding a fillerBoth, with shared IDsCIP runs in the DCS; the filler time lost lands at level 3
Product flush or rinse between SKUsBoth, with shared IDsThe flush starts in the process area; the lost output shows on the filler
Dispatching, enforced steps, genealogyFull MES scope for those stepsMore than a visibility gap
Packing lines with no usable signalLight layer with sensors or camerasCheck whether your DCS reaches them
New DCS project under wayAgree level 3 scope nowIDs and signals are easier to agree up front
1. Is it about the process itself? Temperatures, flows, recipe steps Yes: the DCS and its historian answer it No 2. Is it about runs, stops, output and losses on filling and packing? No: it is a planning or business question: ERP Yes Light MES or OEE layer next to DCS 3. Need dispatching, enforced steps or genealogy in one system? Yes: scope a full MES for those steps. No: the light layer is enough.
Sort each open question by level first. Most questions about the fillers and packers land at step 2.

Want to see a light MES layer next to a process area? Book a demo with one week of filler shift reports and your CIP schedule.

Worked example: one filler, one shift

Sample figures for illustration only. A dairy plant runs a cup filler after the pasteuriser. The filler is the line's constraint, so losses are valued at its rated speed. The DCS shows the pasteuriser held temperature all shift. The level 3 view shows what the filler did.

  • Planned time: 480 minutes. Rated speed: 100 units a minute. Possible output: 480 x 100 = 48,000 units.
  • Downtime: changeover 35 min, waiting for product from the process area 25 min, filler jams 20 min. Total 35 + 25 + 20 = 80 min. Run time 480 minus 80 = 400 min.
  • Availability: 400 / 480 = 83.3%.
  • Performance: 34,000 units counted against 400 x 100 = 40,000 possible in the run time: 34,000 / 40,000 = 85.0%.
  • Quality: 680 rejects, so 33,320 good units: 33,320 / 34,000 = 98.0%.
  • OEE: 0.833 x 0.850 x 0.980 = 69.4%. Check: 33,320 good units / 48,000 possible = 69.4%.

Now the losses in units, each counted once. Downtime: 80 min x 100 = 8,000 units (3,500 changeover, 2,500 waiting, 2,000 jams). Speed loss: 40,000 minus 34,000 = 6,000 units. Rejects: 680 units. Total lost: 8,000 + 6,000 + 680 = 14,680 units, and 48,000 minus 14,680 = 33,320 good units, which matches.

Where one shift's output went Illustrative, sample data: one filler 480 min at 100 units a minute Speed loss below rated speed 6,000 units Changeover, 35 min 3,500 units Waiting for product, 25 min 2,500 units, the handover Filler jams, 20 min 2,000 units Rejects 680 units Good: 33,320 of 48,000. OEE 69.4%
Sample data, not a product screen. The red bar is the loss that sits between the two systems.

Read it this way. The 2,500 units lost waiting for product are 17.0% of all lost output (2,500 / 14,680 = 0.170). The DCS was right that the process held temperature; the filler was right that it had nothing to fill. Only a level 3 record with the time, the reason and the order on the line turns that into a fix, such as buffer tank sizing or the CIP sequence. See OEE calculation for the conventions used here. Replace each figure with your own shift data.

Illustrative, sample data: at a sample contribution of EUR 0.15 for each good cup, the 2,500 units lost waiting for product are 2,500 x 0.15 = EUR 375 in one shift, and all 14,680 lost units are 14,680 x 0.15 = EUR 2,202. Use your own contribution per unit at the constraint.

How MES and DCS integration works in practice

Settle these agreements before any vendor quotes:

  • Shared IDs: order, SKU and batch codes come from one place and read the same in the DCS, the MES and the ERP.
  • Read first: start with a link where the MES reads signals and never writes to the DCS. Sending orders or recipe data down is a control change with its own owner and tests.
  • Signal source per signal: a filler's run state and count may come from the filler PLC; a tank-ready signal may come from the DCS or its historian. Pick the source per signal, not per system.
  • Network path: keep the level 2 network separate and let your OT security owner approve how level 3 reads from it.
  • Handover signals: agree how "product ready" and "filler starved" are recorded, so the loss lands on a reason and not on "unknown". For example, "filler starved" is the filler infeed low-level signal from the filler PLC or a sensor, while the tank-ready flag from the process side is off. Agree whether the reason is set from those two signals or tagged by the operator, and test any vendor on it.

If your fillers have HMIs but no clean signal, HMI data collection for OEE covers the options.

Questions to put to any vendor and to your own team

  1. Which questions in our plant belong at level 2, and which at level 3?
  2. Where exactly is the handover from the process area to filling and packing, and who owns the losses there?
  3. Which signals does the level 3 layer read, and from which source: DCS, historian, PLC or a sensor?
  4. Is the link read-only, and who approves any write to the DCS?
  5. Do order, SKU and batch codes match across DCS, MES and ERP?
  6. How are stop reasons on fillers and packers recorded, and by whom?
  7. How are losses valued: at the constraint, and counted once?
  8. How does the data leave the level 3 system: API, webhooks or files, and who owns that link?

Where Fabrico fits

Fabrico is an MES and OEE platform with maintenance built in. It is a candidate for the level 3 layer next to your DCS, while the DCS keeps process control.

  • Fillers, cappers and case packers: Fabrico reads cycles, stops and output from the line's PLC, and on older packing machines a Fabrico IoT device with external sensors collects the production signal. Data sources, in short: a PLC or IoT device with sensors. How Fabrico would read data from your DCS is a question to settle with your control engineer and us.
  • Hand-pack tables and old machines after the filler: where there is no machine signal, the camera add-on counts output. In the standard setup, camera add-on video is streamed when someone opens it and is not stored in Fabrico. Stop-reason suggestions from the camera add-on are roadmap. See computer vision for OEE.
  • Filler starved, CIP and changeover stops: operators tag the cause of a stop on a tablet or phone from your own list of reason codes, such as waiting for product or CIP, and a technician opens a work order from the stop when it needs maintenance.
  • For the plant manager and CI lead: the OEE dashboard updates while the line runs, with downtime by cause, losses shown in money, and push, in-app and email notifications. See the solution overview and our guide to OEE software.
  • Next to the DCS and the ERP: a REST API and webhooks, a connection to your ERP scoped per customer, and Excel or CSV export. Job dispatching, BOMs, routings and genealogy stay in your ERP.

For sector detail, see MES for dairy processing, MES for beverage manufacturing and MES for food manufacturing. For cameras by sector, see computer vision for dairy processing, computer vision for beverage lines and the FMCG hub.

What people ask next

What is the difference between MES and DCS?

A DCS controls the process: it keeps temperatures, flows and recipe steps on target. An MES manages the operation around it: runs, stops, output and losses. ISA-95 places the DCS at level 2 and the MES at level 3.

Can a DCS replace an MES?

They do different jobs. Keep process control in the DCS, then check whether your DCS screens and historian answer the questions about runs, stops and losses on filling and packing. If they do not, a light MES or OEE layer next to the DCS is one way to close that gap.

Should the MES write setpoints to the DCS?

Decide that on purpose. A read-only link, where the MES reads signals and never writes to the DCS, keeps control where it is. If you want order or recipe data sent down to the DCS, treat it as a control change with its own owner and tests.

Where does the boundary sit in a dairy or beverage plant?

A practical place to draw it is the handover from the process area to filling and packing. The DCS owns reception, pasteurising, mixing, tanks and CIP. The MES or OEE layer owns runs, stops, counts and rejects on the fillers and packers, and the time a filler waits for product.

Is a light MES enough next to a DCS?

It is enough when the gap is visibility: runs, stops, output and losses on the packing side. If you also need dispatching, enforced work instructions or genealogy in one system, scope a full MES for those steps.

How does MES and DCS integration start?

Start with shared IDs: the same order, SKU and batch codes in both systems. Then agree which signals the MES reads, from the DCS historian or from the filler PLC, and who owns the interface. Ask any vendor to show that link on your own filler and tank signals.

Want your own filling line's losses split by owner? Talk to us with last month's filling line OEE or shift reports.

Track OEE and downtime in real time
See where lines lose time
Book a live demo.
See where lines lose time
See where lines lose time

Real Fabrico tiles, sample data.

By clicking the Accept button, you are giving your consent to the use of cookies when accessing this website and utilizing our services. To learn more about how cookies are used and managed, please refer to our Privacy Policy and Cookies Declaration