Demo factory
Connect a diaper line from machine to ERP in eight steps. Lunex brings the machines, the printers and the ERP together in a unified namespace (UNS); İldiko MES builds the screens for the operator, the shift supervisor and quality from that data.
Start the demo- 8 stepsabout 10 minutes
- 8 lineslive simulation running in your browser
- Fictionalcompany, products and people are for the demo
Watch the demo in a 3-minute recording
The interactive demo shows Lunex, UNS, ERP and İldiko MES screens side by side, so it needs a wide screen. Below is a recording of all eight steps; open this page on your computer to try it yourself.
BB01 line data
Not runningapplication.properties Select a step to edit its properties.
Starts the route every second.
Reads the 7 DB100 tags from the PLC with Apache PLC4X.
Builds the topic and the JSON payload of each tag.
Runs the inner steps once for each tag.
Sets the MQTT topic of the tag.
Uses the JSON payload as the message body.
Publishes the tag to the UNS broker.
plc4x:s7://10.10.20.11 · DB100 · period 1000 ms Last read — | Tag | Address | Value | Quality | Timestamp |
|---|---|---|---|---|
calisiyor | %DB100.DBX0.0:BOOL | — | Good | — |
durus_kodu | %DB100.DBW2:INT | — | Good | — |
uretim_sayaci | %DB100.DBD4:DINT | — | Good | — |
hurda_sayaci | %DB100.DBD8:DINT | — | Good | — |
hat_hizi | %DB100.DBD12:REAL | — | Good | — |
paket_sayaci | %DB100.DBD16:DINT | — | Good | — |
koli_sayaci | %DB100.DBD20:DINT | — | Good | — |
Values are also published to tcp://uns.demo.test:1883; topics are flat for now: 1000/1100/bebek-bezi/BB01/<tag>
bb01-plc-uns.camel.yaml - beans: - name: bb01Tagler type: java.util.LinkedHashMap properties: calisiyor: '%DB100.DBX0.0:BOOL' durus_kodu: '%DB100.DBW2:INT' uretim_sayaci: '%DB100.DBD4:DINT' hurda_sayaci: '%DB100.DBD8:DINT' hat_hizi: '%DB100.DBD12:REAL' paket_sayaci: '%DB100.DBD16:DINT' koli_sayaci: '%DB100.DBD20:DINT' - route: id: bb01-plc-uns description: Publish BB01 PLC tags to the UNS from: uri: timer:bb01-plc parameters: period: 1000 steps: - pollEnrich: description: Read DB100 tags from the S7-1500 constant: plc4x:s7://{{bb01.plc}}?remote-rack=0&remote-slot=1&controller-type=S7_1500&autoReconnect=true&tags=#bean:bb01Tagler timeout: 2000 - setBody: description: Build the topic and JSON for each tag groovy: expression: |- def birim = [uretim_sayaci: 'adet', hurda_sayaci: 'adet', hat_hizi: 'adet/dk', paket_sayaci: 'paket', koli_sayaci: 'koli'] def zaman = java.time.Instant.now().toString() body.collect { tag, deger -> [topic: '1000/1100/bebek-bezi/BB01/' + tag, json: groovy.json.JsonOutput.toJson([deger: deger, birim: birim[tag] ?: '', zaman: zaman, kalite: 'iyi'])] } - split: description: Publish each tag to its own topic simple: ${body} steps: - setHeader: name: CamelPahoMqtt5OverrideTopic simple: ${body[topic]} - setBody: simple: ${body[json]} - to: uri: paho-mqtt5:1000/1100/bebek-bezi/BB01 parameters: brokerUrl: '{{uns.broker}}' clientId: lunex-bb01 qos: 0 retained: true
Projects
| Name | Status | Last commit |
|---|---|---|
| bb01-hat-verisi | Not running | just now · Deniz Acar |
| erp-siparis-api | Running | 2 days ago |
| doviz-kurlari | Running | 5 days ago |
| bb01-saha | Running | 2 weeks ago |
| tedarikci-portali | Not running | 3 weeks ago |
The agent is connected to Lunex over MCP with your account. Once it creates the project with create_project, the project opens here.
| Tag | Address (PLC4X S7) | Type | Unit |
|---|---|---|---|
calisiyor | %DB100.DBX0.0:BOOL | Bool | |
durus_kodu | %DB100.DBW2:INT | Int | |
uretim_sayaci | %DB100.DBD4:DINT | DInt | pcs |
hurda_sayaci | %DB100.DBD8:DINT | DInt | pcs |
hat_hizi | %DB100.DBD12:REAL | Real | pcs/min |
paket_sayaci | %DB100.DBD16:DINT | DInt | packs |
koli_sayaci | %DB100.DBD20:DINT | DInt | cartons |
PUT/GET access must be enabled on the CPU (Protection & Security › Connection mechanisms); I can’t see that from the block source, so check it on site.
tcp://uns.demo.test:1883 0 topics · 0 msg/s # Charts are drawn only for numeric values.
- Enterprise
1000Demo Hijyen A.Ş. - Site
1100Gebze Plant - Area
bebek-beziBB01–BB04 ·yetiskin-beziYB01–YB04 - Line
BB01ERP work center code - Machine
konvertercalisiyor · durus-kodu · uretim-sayaci · hurda-sayaci · hat-hizi - Machine
paketlemepaket-sayaci - Machine
kolilemekoli-sayaci · etiket-yazici/durum - Machine
paletlemeetiket-yazici/durum - System
erp·mes·kalitewritten by each system’s own flows
- Example address:
1000/1100/bebek-bezi/BB01/konverter/hat-hizi - Names are lowercase, hyphenated, with no Turkish characters; the line code matches the ERP work center code. Payload is JSON
{deger, birim, zaman, kalite}, retained.
ERP connector
Pick the one that fits your ERP from Lunex’s 350+ connectors; the rest of the flow stays the same.
- Connection
- Endpoint
- Auth
erp-is-emri-uns
Not running- Find released order
— - Order and components
— - Label data
— - Map to three messages
— - Publish to UNS
—
Flow not deployed · no connector
1000/1100/bebek-bezi/BB01/erp
subscribed: 1000/1100/bebek-bezi/BB01/erp/# | Name | Value | Type | Source | Time |
|---|---|---|---|---|
| No messages yet. Once the order is released in the ERP, Lunex publishes to this address. | ||||
- Machine
- ERP
- Printer
- MES
Order information
- Production order:
- —
- Order quantity:
- —
- Remaining quantity:
- —
- Remaining pallets:
- —
- Material code:
- —
- Remaining time:
- —
- Start time:
- —
- Material description:
- —
- Batch:
- —
- PRN-BB01-KOLI
- PRN-BB01-PALET
| Start | Duration | Machine | PLC code | Downtime reason |
|---|
No downtime this shift.
| Item | Material | Material name | Order req. | Theoretical consumption | Unit |
|---|
Cartons on pallet 0 / 48
| No. | Handling unit (SSCC) | Material | Quantity | Batch | Produced | Confirmation |
|---|
| Variable | Current | Min | Max | Average | Target |
|---|---|---|---|---|---|
| Speed | — | — | — | — | — |
- OEE
- Speed loss
- Quality loss
- Minor stops
- Converter
- Packaging
- Cartoning
- Palletizing
Edit downtime
Pallet —
- SSCC candidate
- —
- Cartons
- 0 / 48
- Layer
- 1 / 6
- Estimated finish
- —
If you don’t want to wait, this adds the remaining cartons at once; the pallet event flows the same way.
Event chain
Once a pallet is complete, the chain fills in here step by step.- 1İldiko MES → UNS Pallet completed
…/BB01/mes/palet-tamamlandiWaiting - 2Lunex → printer SSCC pallet label printed
…/mes/etiket-istegi → PRN-BB01-PALETWaiting - 3Lunex → ERP Confirmation and goods receipt (101)
mes-teyit-erp → SAP · BAPI_PROCORDCONF_CREATE_HDRWaiting - 4ERP → UNS → İldiko ERP response, HU confirmed
…/BB01/erp/teyit-sonucuWaiting
Message Monitor
prod · All retained messagesMessages
0 matching messages| Time | Flow | Application ID | Status | Duration |
|---|
No messages yet. The first pallet confirmation will appear here.
Scan the new reel’s label. The material is checked against the production order’s bill of materials (UNS erp/bilesenler).
- 0010 · 30001001 Cellulose pulp (fluff) Last batch —
- 0030 · 30002001 Topsheet nonwoven reel Last batch —
- 0040 · 30002002 Backsheet PE film reel Last batch —
- 0050 · 30002003 Acquisition layer (ADL) reel Last batch —
- 0060 · 30003001 Elastic thread Last batch —
- 0070 · 30003002 Side tape reel Last batch —
Click a label and the terminal reads its barcode. Or press the yellow trigger next to the device first, then pick the label.
Path of the consumption record
- Handheld EL-BB01-02 · ademir
- İldiko MES BOM check, record
- UNS BB01/mes/tuketim
- Lunex mes-tuketim-erp
- ERP Goods issue, movement type 261
- UNS BB01/erp/tuketim-sonucu
UNS message
Once consumption is recorded, the MES's published message appears here.
BABY DIAPER 1100
ADULT DIAPER 1100
The board reads its data from the UNS: 1000/1100/+/+/mes/# · +/+/konverter/+ · +/+/erp/is-emri; the timeline comes from İldiko’s shift record.
Notifications
0 UNS subscription 1000/1100/bebek-bezi/BB01/kalite/numune-istegi
- Waiting for a sample request…
Past samples
BB01 · today| Inspection lot | Time | Absorption | Decision |
|---|
Results recording
No inspection lot selectedOpen an inspection lot from a notification on the left; the characteristics come from the inspection plan.
| Characteristic | Lower limit | Target | Upper limit | Unit | Result | Valuation |
|---|---|---|---|---|---|---|
| 0010 · LAB-EM-01 | 380 | 420 | 460 | g | — | |
| 0020 · LAB-GI-01 | 0.00 | 0.40 | 1.00 | g | — | |
| 0030 · LAB-TRZ-01 | 36.5 | 38.5 | 40.5 | g | — | |
| 0040 · LAB-OL-02 | 478 | 485 | 492 | mm | — | |
| 0050 · LAB-CK-01 | 6.0 | 9.0 | 14.0 | N | — |
Control chart · Absorption capacity (g)
Last 8 samplesThe line is connected end to end
The scene keeps running: pallets are being confirmed, samples are requested on time and stops show up on the andon board. Here is what you built:
The company, products, people, addresses and document numbers in this demo are fictional. SAP is a trademark of SAP SE; Siemens and S7 are trademarks of Siemens AG. Other product names belong to their owners.
Let’s build this demo with your own line
Let’s look at your machines, labeling systems and ERP together, and work out in the first meeting which data comes from where.