Odoo plant realistisch zodra de vier getallen op je werkcentra echt zijn: parallelle capaciteit, gemeten efficiëntie, insteltijd en opruimtijd, en werkelijke werkuren. Standaard gaat het uit van oneindige capaciteit, en daarom ziet de Gantt er schoon uit terwijl de werkvloer het er niet mee eens is.
Je opent de planningsweergave en het ziet er geweldig uit. Elke werkorder heeft een nette start- en eindtijd, de datums lopen op één lijn, de Gantt-grafiek is een schone trap. Dan loop je de werkvloer op en de CNC-machine heeft drie jobs op zich gestapeld voor dezelfde dinsdagochtend, waarvan Odoo er twee vrolijk parallel inplande op een machine die één onderdeel tegelijk doet. De planning zei dat je vrijdag zou verschepen. De werkvloer weet dat je de woensdag erna verscheept. De planning had op papier nooit ongelijk. Hij had ongelijk over de werkelijkheid, omdat hij nooit vroeg of de machine vrij was.
Dit is het gat tussen Odoo's standaard planning en wat er werkelijk gebeurt op je werkcentra, en het zet bijna elke fabrikant op het verkeerde been die voor het eerst Werkorders aanzet. Standaard plant Odoo met oneindige capaciteit. Het legt elke bewerking achter elkaar uit met de duren op je stuklijst, maar het controleert niet of het werkcentrum de job in dat venster aankan. Het resultaat is een planning die intern consistent is en extern fictie. De oplossing is deels configuratie (richt je werkcentra in met echte capaciteit en efficiëntie zodat de duren eerlijk zijn) en deels weten waar Odoo's standaard planning ophoudt en je een andere tool nodig hebt voor de bottleneck. Zo passen de stukken in elkaar, en waar je eerlijk moet zijn over de grenzen.
Waarom de planning er perfect uitziet en de werkvloer het er niet mee eens is
De mismatch komt voort uit een handvol dingen, en ze zijn allemaal terug te voeren op ofwel een werkcentrum dat nooit goed is geconfigureerd ofwel op de planner die uitgaat van een beperking die niet klopt.
Odoo plant standaard met oneindige capaciteit. Dit is de grote. Wanneer Odoo een productieorder plant, plaatst het elke werkorder op basis van de bewerkingsduur en de werkuren van het werkcentrum, maar het verhindert niet dat een werkcentrum voor twee jobs tegelijk wordt geboekt. De planner zet zonder problemen drie orders op één machine om 9 uur. Op het scherm ziet het er gepland uit. Op de werkvloer kan er maar één van draaien.
De duren zijn gokwerk, niet gemeten. De duur van een werkorder komt uit de bewerkingstijd op de stuklijst, gecorrigeerd door de capaciteit en tijdsefficiëntie van het werkcentrum. Als je de efficiëntie op de standaardwaarde liet staan en de echte bewerking nooit hebt geklokt, erft de planning een getal dat niemand heeft gecontroleerd. Optimistische duren maken de hele planning optimistisch.
Capaciteit is ingesteld alsof elke machine één eenheid tegelijk verwerkt, of alsof hij er oneindig veel tegelijk verwerkt. De capaciteit van een werkcentrum is hoeveel eenheden het parallel kan produceren. Laat die fout staan en de duur voor een order met meerdere eenheden klopt niet: te lang als de machine in werkelijkheid batcht, te kort als je aannam dat hij batcht terwijl dat niet zo is.
Insteltijd en opruimtijd zijn onzichtbaar. Een machine die twintig minuten nodig heeft om in te stellen en tien om op te ruimen tussen jobs, heeft dertig minuten niet-productieve tijd per omstelling die de planning negeert als je die nooit hebt ingevoerd. Draai tien korte jobs en dat is vijf uur waar de planning niets van weet.
Werkuren komen niet overeen met de echte ploeg. Als de werkuren van het werkcentrum 8 tot 5 zeggen maar de lijn in werkelijkheid één ploeg draait met een echte lunch en een overdracht, dan is de beschikbare tijd overschat. Elke order stroomafwaarts erft het optimisme.
Wat het je kost
Een planning die liegt is erger dan geen planning, want mensen vertrouwen erop en verbinden zich eraan.
Je belooft leverdatums die je niet kunt halen. Sales offreert een verschepingsdatum op basis van de geplande afronding. De geplande afronding ging uit van oneindige capaciteit bij de bottleneck. De klant krijgt een datum die nooit echt was, en je besteedt de tweede helft van de order aan het managen van een teleurstelling die je aan het begin zelf hebt veroorzaakt.
Je kunt de bottleneck niet zien tot hij toeslaat. Het hele doel van capaciteitsplanning is weten welk werkcentrum de beperking is, zodat je het kunt beschermen, voeden en eromheen offreren. Als de planning doet alsof elk werkcentrum oneindig is, is de bottleneck onzichtbaar in de planning en duikt hij alleen op als een stapel te late jobs vóór één machine.
Je overbezet of je blust brandjes. Zonder een echt beeld van de belasting per werkcentrum kun je ploegen, overuren of een tweede machine met geen enkel vertrouwen plannen. Je reageert. Een onverwachte piek op de beperking wordt weekendoveruren die een realistische planning weken eerder had gesignaleerd.
Je verliest het vertrouwen in je eigen systeem. Zodra de werkvloer leert dat de planning fictie is, stoppen ze met lezen ervan en draaien ze op geheugen en geschreeuw. Het dure ERP wordt een plek om vast te leggen wat al gebeurd is, geen tool om te beslissen wat er nu gaat gebeuren.
Werkcentrum, capaciteit, efficiëntie, OEE: de vier getallen die een planning eerlijk maken
Krijg vóór de stappen de vier configuratiegetallen op orde, want dat is wat een gegokte duur in een echte verandert.
Een werkcentrum is een plek waar werk gebeurt: een machine, een werkbank, een station, of een groep identieke. Werkorders draaien op werkcentra, en het werkcentrum draagt de getallen die bepalen hoe lang een bewerking werkelijk duurt en wanneer hij kan draaien.
Capaciteit is hoeveel eenheden het werkcentrum parallel kan produceren. Een capaciteit van 1 betekent één eenheid tegelijk, dus een order van 10 eenheden duurt tien keer de bewerkingstijd per eenheid. Een capaciteit van 5 betekent dat de duur voor die order van 10 eenheden ongeveer wordt gehalveerd, omdat er vijf tegelijk lopen. Stel dit in op wat de machine werkelijk doet.
Tijdsefficiëntie is een percentage dat de verwachte duur schaalt. Bij 100% draait het werkcentrum precies op de tijd op de stuklijst. Onder 100% draait het langzamer (een werkcentrum dat consequent 20% langzamer is dan de standaard moet rond de 83% staan, zodat de planning niet langer optimistisch is). Boven 100% draait het sneller. Dit is de knop die geplande duren laat overeenkomen met gemeten duren.
OEE (Overall Equipment Effectiveness) is het rapport, geen planningsinput. Het meet hoeveel van de beschikbare tijd van een werkcentrum volledig productief was, zodat je kunt zien waar tijd verloren gaat. Odoo splitst de verloren tijd op in productiviteitsverlies-categorieën die je zelf definieert en houdt die bij tegen een OEE-doel dat je per werkcentrum instelt. OEE vertelt je achteraf of het werkcentrum zo beschikbaar was als de planning aannam. Een werkcentrum met een lage OEE is er een waarvan je de planning niet moet vertrouwen totdat je de verliezen oplost.
De verdeling is kort: capaciteit en efficiëntie voeden de planning, OEE toetst de planning aan de werkelijkheid, en het werkcentrum is waar alle vier samenkomen.
De oplossing, in genummerde stappen
Je maakt Odoo's planning realistisch door eerst de werkcentra goed te configureren, en daarna eerlijk te zijn over waar standaard planning je bottleneck niet kan modelleren. De stappen bouwen op elkaar voort.
Zet Werkorders aan en maak je echte werkcentra.
Zet in Manufacturing Werkorders aan in Instellingen. Maak daarna een werkcentrum voor elke echte beperking op je werkvloer, niet één generiek "productie"-centrum. De granulariteit doet ertoe: als de CNC-machine je bottleneck is, moet hij zijn eigen werkcentrum zijn, want dat is de enige manier waarop zijn belasting apart in de planning verschijnt. Hem samenvoegen in een verzamelcentrum verbergt precies het ding dat je probeert te zien.
Stel de capaciteit in op wat de machine werkelijk parallel doet.
Stel op elk werkcentrum de Capaciteit in op het aantal eenheden dat het werkelijk tegelijk produceert. Eén onderdeel tegelijk is capaciteit 1. Een oven die veertig eenheden in één cyclus uithardt is capaciteit 40. Dit ene getal bepaalt of de duur van een order met meerdere eenheden realistisch is, dus haal het van de werkvloer, niet uit een hoopvolle gok.
Stel de tijdsefficiëntie in op basis van gemeten runs, niet op de standaardwaarde.
Klok een paar echte bewerkingen en vergelijk ze met de verwachte duur op de stuklijst. Als het werkcentrum consequent langzamer draait, verlaag dan de tijdsefficiëntie onder 100% zodat de planning oprekt om te kloppen. Een planning gebouwd op eerlijke efficiëntie is een planning waarmee je kunt offreren. Elk werkcentrum op 100% laten staan terwijl de werkvloer op 80% draait, is hoe je datums belooft die je mist.
Voer insteltijd, opruimtijd en de echte werkuren in.
Voeg de insteltijd en opruimtijd per werkcentrum toe zodat omstellingen niet langer onzichtbaar zijn, en stel de werkuren in op de werkelijke ploeg, inclusief lunches en overdrachten. Nu houdt de planning rekening met de niet-productieve tijd die echte dagen opvreet. Hier verlaat veel van het optimisme stilletjes de planning.
Zet OEE-tracking aan en houd de bottleneck in de gaten.
Stel een OEE-doel per werkcentrum in en laat operators tijd loggen tegen productiviteitsverlies-categorieën (instellen, storing, materiaalwacht, enzovoort). Na een paar weken kun je per werkcentrum zien hoeveel beschikbare tijd werkelijk productief was. Het werkcentrum met de laagste OEE en de meeste belasting is je echte bottleneck, en nu kun je het bewijzen in plaats van te gokken.
Beslis eerlijk of standaard planning genoeg is.
Hier is de grens die je onder ogen moet zien. Zelfs met elk werkcentrum perfect geconfigureerd, plant de standaard planner van Odoo nog steeds met oneindige capaciteit: hij verhindert niet dat twee jobs op hetzelfde moment op één machine landen. Voor veel kleine werkplaatsen met één duidelijke bottleneck en overal elders speling, zijn goed geconfigureerde duren plus een mens die de bottleneck met het oog controleert voldoende. Voor een werkplaats waar de capaciteit krap is over meerdere werkcentra en de volgorde er echt toe doet, is dat niet zo. Op dat punt heb je eindige capaciteitsplanning nodig, wat standaard Odoo zelf niet doet. En voordat je de planner de schuld geeft, kijk naar je batchgrootte, want die bepaalt of plannen überhaupt werkt. Een werkvloer vol jobs van vijf minuten kan niet zinvol worden gepland, en gigantische jobs met uren mogelijke overschrijding blazen elke planning eromheen op. Meet eerst echte runs; als een proces goed te schatten is, houdt de planning stand. Als de variatie groot blijft, stop dan met doen alsof en plan in plaats daarvan in sprints: een dag of een week werk waar het team zich aan verbindt, in plaats van een Gantt-grafiek die tijden belooft die niemand kan halen.
Het stuk waar mensen over struikelen
Een paar dingen overkomen vrijwel iedereen
Een paar dingen overkomen bijna iedereen, en de meeste komen voort uit niet weten waar de standaard planning van Odoo ophoudt.
Odoo's standaard planning is oneindige capaciteit, en geen enkele hoeveelheid werkcentrumconfiguratie verandert dat. Dit is het allergrootste misverstand. Mensen configureren capaciteit en efficiëntie prachtig en nemen dan aan dat de planner nu zal weigeren een machine te overbelasten. Dat zal hij niet. Capaciteit en efficiëntie maken de duur van elke bewerking realistisch; ze zorgen er niet voor dat de planner respecteert dat twee bewerkingen niet tegelijk één machine kunnen delen. De planning kan nog steeds drie jobs op één werkcentrum boeken om 9 uur. Je moet ofwel de bottleneck handmatig controleren ofwel een tool toevoegen die eindige planning doet.
De oplossing voor echte eindige capaciteit leeft buiten standaard Odoo. Wanneer één bottleneck niet genoeg is en je het systeem nodig hebt om jobs te sequentiëren zodat geen enkel werkcentrum overbelast raakt, zijn de gevestigde routes een Advanced Planning and Scheduling-tool zoals frePPLe (er is een community Odoo-frePPLe-connector), of de Demand-Driven MRP (DDMRP)-modules onderhouden door de Odoo Community Association (OCA), die buffers modelleren en de belasting balanceren. Beide zijn echte opties, beide voegen complexiteit toe, en geen van beide is iets wat je met een vinkje aanzet. Behandel eindige planning als een project, niet als een instelling.
Capaciteit is per werkcentrum, niet per machine erbinnen. Als je "drie identieke draaibanken" modelleert als één werkcentrum met capaciteit 3, behandelt de planning ze als één pool van drie parallelle slots. Dat is prima totdat de draaibanken niet echt uitwisselbaar zijn, of totdat je moet weten welke fysieke draaibank vrij is. Als individuele machines ertoe doen, modelleer ze dan als individuele werkcentra, en accepteer de extra inrichting.
OEE is een achteruitkijkspiegel, geen planningsinput. Mensen verwachten soms dat een lage OEE de planning automatisch oprekt. Dat doet het niet. OEE rapporteert verloren tijd achteraf zodat je de oorzaak kunt oplossen; het is je signaal om de tijdsefficiëntie van een werkcentrum te verlagen of insteltijd toe te voegen, maar die wijziging maak je met de hand. De lus sluit zich alleen als iemand het OEE-rapport leest en de les terugvoert in de configuratie.
Rommelige duren maken elke stroomafwaartse datum rommelig. De hele planning is alleen zo eerlijk als de bewerkingstijden op je stuklijsten en de capaciteit en efficiëntie op je werkcentra. Als die gokwerk zijn, is de prachtige Gantt-grafiek een prachtige gok. Besteed de tijd aan het meten van de paar bewerkingen die op je bottleneck zitten voordat je een datum vertrouwt die het systeem je geeft.
Snelle checklist
- Werkorders staan aan en elke echte bottleneck heeft zijn eigen werkcentrum, geen generiek verzamelcentrum.
- De capaciteit op elk werkcentrum weerspiegelt hoeveel eenheden het werkelijk parallel produceert.
- De tijdsefficiëntie is ingesteld op basis van gemeten runs, niet op een hoopvolle 100%.
- Insteltijd, opruimtijd en echte werkuren (ploegen, lunches, overdrachten) zijn ingevoerd, zodat niet-productieve tijd zichtbaar is.
- OEE-tracking staat aan, met een doel per werkcentrum, zodat je kunt zien welk werkcentrum de echte bottleneck is.
- Je hebt eerlijk besloten of standaard planning met oneindige capaciteit volstaat, of dat de bottleneck eindige planning nodig heeft via frePPLe of een OCA DDMRP-module.
FAQ
Plant Odoo de productie met eindige of oneindige capaciteit?
Standaard plant Odoo met oneindige capaciteit. Het plant elke werkorder op basis van de bewerkingsduur en de werkuren van het werkcentrum, maar het verhindert niet dat een werkcentrum voor twee of meer jobs tegelijk wordt geboekt. De planning ziet er compleet uit, maar kan een machine zonder waarschuwing overbelasten. Voor echte eindige capaciteitsplanning, waarbij het systeem jobs zo sequentieert dat geen enkel werkcentrum overbelast raakt, heb je een externe tool nodig zoals frePPLe (via de Odoo-frePPLe-connector) of de OCA Demand-Driven MRP-modules. Standaard Odoo doet zelf geen eindige planning.
Wat is het verschil tussen capaciteit en tijdsefficiëntie op een Odoo-werkcentrum?
Capaciteit is hoeveel eenheden een werkcentrum parallel kan produceren; het schaalt de duur van orders met meerdere eenheden. Een capaciteit van 1 betekent één eenheid tegelijk, een capaciteit van 5 betekent dat er vijf tegelijk lopen. Tijdsefficiëntie is een percentage dat de verwachte bewerkingsduur schaalt: 100% betekent dat het werkcentrum precies op de stuklijsttijd draait, onder 100% betekent langzamer, boven betekent sneller. Capaciteit beantwoordt "hoeveel tegelijk", efficiëntie beantwoordt "hoe snel vergeleken met de standaard". Beide voeden de geplande duur, dus beide moeten de echte werkvloer weerspiegelen.
Wat is OEE in Odoo en wordt het gebruikt voor planning?
OEE (Overall Equipment Effectiveness) meet hoeveel van de beschikbare tijd van een werkcentrum volledig productief was, en het is een rapport, geen planningsinput. Odoo houdt verloren tijd bij tegen productiviteitsverlies-categorieën die je zelf definieert en vergelijkt de werkelijke productieve tijd met een OEE-doel dat je per werkcentrum instelt. OEE vertelt je achteraf of een werkcentrum zo beschikbaar was als de planning aannam. Je gebruikt het om bottlenecks op te sporen en om te beslissen of je de tijdsefficiëntie van een werkcentrum verlaagt of insteltijd toevoegt, maar die configuratiewijzigingen maak je met de hand. OEE past de planning niet automatisch aan.
Hoe voorkom ik dat Odoo een werkcentrum overbelast?
Er is geen enkele instelling die standaard Odoo doet weigeren een werkcentrum te overbelasten, want de standaard planner gaat uit van oneindige capaciteit. Voor een werkplaats met één duidelijke bottleneck is het praktische antwoord om die bottleneck zijn eigen werkcentrum te geven, realistische capaciteit, efficiëntie en insteltijd te configureren zodat zijn duren eerlijk zijn, en een planner zijn belasting met het oog te laten controleren. Voor een werkplaats waar de capaciteit krap is over meerdere werkcentra en de volgorde ertoe doet, heb je eindige capaciteitsplanning nodig van een externe tool: frePPLe via de community-connector, of een OCA DDMRP-module. Dat is een project, geen vinkje.
Moet elke machine zijn eigen werkcentrum zijn in Odoo?
Alleen die waarvan je de belasting moet zien of waarvan de capaciteit een echte beperking is. Capaciteit in Odoo is per werkcentrum, dus als je drie identieke, uitwisselbare draaibanken modelleert als één werkcentrum met capaciteit 3, behandelt de planning ze als een pool van drie parallelle slots, wat prima is. Modelleer ze alleen als individuele werkcentra als de machines niet uitwisselbaar zijn of als je moet weten welke fysieke machine vrij is. Je bottleneck verdient bijna altijd zijn eigen werkcentrum zodat zijn belasting apart in de planning verschijnt.