Dat klinkt vanzelfsprekend in engineering, maar veel configuratoren stoppen één stap vroeger. Ze weten welke opties combineerbaar zijn en welke afmetingen toegelaten zijn, maar niet noodzakelijk of de geconfigureerde variant met de beschikbare machines, processen en materiaallimieten gemaakt kan worden.
Bij eenvoudige producten is dat misschien voldoende.
Bij configureerbare maakproducten denk ik dat fabriekscapaciteit uiteindelijk deel van het model moet worden.
Product constraints en factory constraints zijn niet hetzelfde
Dat onderscheid vind ik belangrijk.
Een product constraint beschrijft het product zelf.
Een afdekking moet in de opening passen.
Een motor moet genoeg koppel leveren.
Een frame moet de vereiste belasting dragen.
Die relaties blijven waar ongeacht waar het product gemaakt wordt.
Een factory constraint beschrijft de beschikbare productiecapaciteit.
Een plooibank kan platen tot een bepaalde lengte en dikte verwerken.
Een werkplaats kan laseren maar geen tube laser hebben.
Een zaag kan bepaalde profielmaten aankunnen.
De ene site kan TIG-lassen, terwijl een andere die bewerking uitbesteedt.
Die feiten kunnen veranderen zonder dat de productdefinitie verandert.
Daarom moeten ze niet automatisch als universele productwaarheden hardgecodeerd worden.
Beschrijf wat het product nodig heeft
Ik laat het productmodel liever manufacturing intent beschrijven.
Een plaat heeft snijwerk en twee plooien nodig.
Een profiel heeft een miter-zaagsnede nodig.
Een gat heeft een proces nodig dat zijn diameter en tolerantie kan maken.
Een assembly vraagt een bepaald lasproces.
Dat beschrijft het werk dat het geconfigureerde product nodig heeft.
Het manufacturingmodel kan daarna beschrijven welke processen en limieten beschikbaar zijn.
De interessante stap is die twee beschrijvingen met elkaar vergelijken.
Capability kan expliciet gemodelleerd worden
Een capabilitymodel van een werkplaats hoeft niet complex te beginnen.
Het kan zeggen dat een site laser cutting, een plooibank, zagen en TIG-lassen heeft.
De plooibank kan limieten hebben zoals maximale plooilengte en maximale materiaaldikte.
Een zaag kan opsommen welke profielmaten of zaaghoeken ondersteund worden.
Een proces kan materialen, toleranties of toolingbeperkingen beschrijven.
Die informatie is voor een configurator veel nuttiger dan één algemene boolean manufacturable.
Ze legt uit waarom iets wel of niet mogelijk is.
Constraints verbinden intent met capability
Zodra productintentie en fabriekscapaciteit apart bestaan, kunnen constraints ze met elkaar verbinden.
Als een geconfigureerde plaat een plooi van 3200 mm nodig heeft maar de gekozen fabriek maximaal 3000 mm aankan, kan de configuratie dat conflict detecteren.
Het systeem kan daarna op verschillende manieren reageren.
Het kan de variant weigeren.
Het kan een andere constructie voorstellen.
Het kan de order naar een andere fabriek sturen.
Het kan de configuratie geldig houden maar engineering review vragen.
Dat gedrag is een business- of procesbeslissing.
Het nuttige is dat het technische conflict zichtbaar wordt voor iemand het op de werkvloer ontdekt.
Manufacturing is meer dan machinelimieten
Capability gaat verder dan maximale afmetingen.
Het kan beschikbare processen, materiaal- en diktebereiken, stockformaten, tooling, toleranties, voorkeursbewerkingen, uitbestede processen, site-specifieke beperkingen en certificatievereisten bevatten.
Niet alles daarvan moet in de eerste versie van een model zitten.
Maar manufacturing als gestructureerde capability behandelen geeft ruimte om later te groeien zonder elke nieuwe werkplaatsregel als productspecifieke uitzondering toe te voegen.
Hetzelfde product kan in de ene fabriek geldig zijn en in de andere niet
Dat is één reden waarom ik factory constraints niet blind in product constraints wil mengen.
Neem een configureerbare inox samenstelling die een bepaalde plooi nodig heeft.
Het product zelf is geldig.
Fabriek A kan het maken.
Fabriek B niet omdat de plooibank te kort is.
Als de machinelimiet als universele productrule opgeslagen wordt, besluit de configurator dat het product niet kan bestaan.
Dat is fout.
De betere conclusie is dat deze configuratie niet met de momenteel gekozen capability geproduceerd kan worden.
Dat kleine onderscheid wordt belangrijk zodra bedrijven verschillende sites, leveranciers of veranderende machines hebben.
Manufacturing feedback kan vroeger in configuratie komen
Zodra de configurator capability begrijpt, kan manufacturing veel vroeger in het proces meespelen.
In plaats van dat sales een configuratie maakt en engineering later een productieprobleem ontdekt, kan het systeem de beschikbare keuzes al verkleinen voor de onmaakbare variant vastgelegd wordt.
Dat betekent niet dat sales elke machineparameter moet zien.
De UI kan eenvoudig blijven.
Het productmodel en capabilitymodel doen het technische werk eronder.
Dat lijkt op constraint-based productconfiguratie: de gebruiker krijgt een kleinere geldige keuzeruimte zonder elke reden erachter te moeten begrijpen.
Geometrie helpt, maar is niet genoeg
Voor sommige manufacturing checks is geometrie nodig.
Een plaatlengte moet bekend zijn voor je ze met een plooibanklimiet kan vergelijken.
Een profielsectie speelt mee in de capaciteit van een zaag.
De positie van gaten kan bepalen of een proces bereikbaar is.
Maar geometrie vertelt nog altijd niet het volledige verhaal.
Een plaat van 3000 mm kan geometrisch perfect geldig zijn maar een proces- of materiaalcombinatie vragen die de gekozen fabriek niet ondersteunt.
De geometry engine heeft daarom context van product- en manufacturingmodel nodig.
Dat is één reden waarom ik geïnteresseerd ben in een fabrication-aware kernel en niet alleen een geometry kernel.
Manufacturing capability kan het ontwerp ook sturen
De relatie hoeft niet alleen pass/fail te zijn.
Capability-informatie kan de geconfigureerde constructie sturen.
Als één plaat te lang wordt, kan het model ze eventueel in twee delen splitsen.
Als een plooi onmogelijk is, kan een andere verbinding beschikbaar zijn.
Als een profiel op één site niet met tube laser verwerkt kan worden, kan een zaag-en-boorroute misschien wel.
Dat beweegt van validatie richting synthese.
Daar zou ik voorzichtig mee omgaan. Een product automatisch herontwerpen is een veel grotere stap dan het controleren.
Maar hetzelfde capabilitymodel kan uiteindelijk beide ondersteunen.
Hou het werkplaatsmodel onafhankelijk
Fabrieksdata verandert sneller dan productarchitectuur.
Machines worden vervangen. Tooling verandert. Processen worden uitbesteed. Capaciteit verschilt per site.
Dat is nog een argument om capability in een eigen laag te houden.
Een productmodel wordt geversioneerd rond het product.
Een werkplaatsmodel wordt geversioneerd rond de productieresource.
Configuratie kan daarna een specifieke productversie met een specifieke capabilitycontext combineren.
Dat maakt veranderingen veel makkelijker te begrijpen.
Wat dit betekent voor CPQM
Hier wordt mijn gebruik van de term CPQM ook concreter.
Configure, Price, Quote, Manufacture gaat niet alleen over CNC-output genereren nadat een configuratie geldig is.
Het diepere idee is dat manufacturingkennis het product al moet kunnen beïnvloeden voor de offerte klaar is.
Als het systeem weet wat gemaakt moet worden en wat de fabriek kan maken, stopt manufacturing met een downstream interpretatiestap te zijn.
Het wordt deel van de configuratiecontext.
Waar ik hiermee naartoe wil
Ik ben deze laag in mijn eigen semantische/fabrication model nog aan het onderzoeken.
De richting die ik nuttig vind is vrij eenvoudig:
Productmodel beschrijft wat het geconfigureerde product is.
Fabrication intent beschrijft welke bewerkingen het product nodig heeft.
Factory capability beschrijft wat een site kan uitvoeren.
Constraints vergelijken die twee.
Outputs vertalen het geldige resultaat naar geometrie, stuklijst, tekeningen of machinedata.
Die scheiding voelt voor mij veel bruikbaarder dan alle manufacturingkennis rechtstreeks in CAD te stoppen of ze in een aparte spreadsheet naast de configurator te verbergen.
Een configureerbaar product moet niet alleen geldig zijn op het scherm.
Uiteindelijk moet het ook geldig zijn in de werkplaats.