System Architecture Overview
The SINUMERIK 840D sl with PCU50 (Panel Control Unit) and HMI Operate is a PC-based CNC platform where the HMI runs on Windows (typically Windows 7 Embedded / Windows 10 IoT depending on hardware generation). The NCK (NC kernel), PLC (SINUMERIK Integrated PLC, S7-compatible), and HMI exchange data through internal coupling mechanisms that an integrator can leverage for shift-log reporting.
Key subsystems for production data capture:
-
NCK – exposes channel status, axis data, tool data, feedrate/spindle override, program state via NC variables (read with PI service
PI _N_NVRDor via OPC UA NC server). - PLC – exposes user alarms, handshakes, RFID reader data, station interlocks via DB/M/I/Q areas accessible to the HMI.
- PCU50 HMI Operate – hosts the operator interface and can run user scripts, log files, batch files, or third-party collectors that pull from NC/PLC.
- Network – X120/X130/X127 industrial Ethernet ports expose the PLC to higher-level systems via S7 communication, OPC UA, or TCP socket.
For machines with 50+ axes and multi-channel configuration (common in transfer lines and large gantries), the HMI Operate is the natural collector because it has visibility into all channels and the PLC at once.
Production Data Points and Source Mapping
The shift log requires time-stamped events. The table below maps each required field to its origin and the recommended read mechanism.
| Data Point | Source | Access Method | Typical Variable / Tag |
|---|---|---|---|
| NC program name (active) | NCK /channel | NC variable | /channel/programName/progName |
| Program state (running/stopped/reset) | NCK /channel | NC variable |
/channel/state/progState (e.g., 0=reset, 1=active, 3=interrupted) |
| Operator ID / login | HMI Operate login service | File/script callback |
userdata.log on PCU50 or PLC DB |
| Tool change events | NCK /channel/tool | NC variable + event |
/channel/tool/tNo, /channel/tool/dNo, /channel/tool/tName
|
| Feedrate override % | NCK /channel | NC variable |
/channel/feedRateOvr/rapidOvr, /channel/feedRateOvr/pathOvr
|
| Spindle override % | NCK /channel/spindle | NC variable | /channel/spindle/ovr |
| Alarms interrupting operation | NCK + PLC | Alarm server / DB | PLC DB (e.g., DB2 DBW0..DBW62), or HMI alarm log alm_log.txt
|
| Material / RFID code | PLC (RFID reader I/O) | PLC DB / I/O area | User-defined DB (e.g., DB100 string 32 bytes) |
| Cycle start / stop / reset events | NCK /channel | NC variable / PLC key |
/channel/state/progState transitions or PLC NCK key signals DB2600..DB2607 |
| Timestamp | HMI / PC | System clock (NTP-synced recommended) | PCU50 local time or domain NTP |
Built-In HMI Operate Logging Capabilities
HMI Operate writes several internal logs that can be redirected, parsed, or post-processed:
-
oem_alm_log.txt– operator-visible alarms (NCK + PLC), pathC:\Program Files (x86)\Siemens\Automation\HMI-Operate\logor its Windows-10 IoT equivalent. -
crash_alm_log.txt– crash / system-stop alarms. - Program list and tool list under
NC:\mpfandNC:\toolson the local CFast/SSD card (HMI Operate exposes the NC file system to Windows as a mapped drive on supported builds). - Operator login audit through Windows event log or the Operate-specific
userdirectory.
For most commissioning data needs, the alarm log alone does not meet the requirements because it does not include feedrate-override changes, tool-change timing, or RFID codes. A custom collector is normally required.
Method 1: MT-Connect Integration
MTConnect is an open, royalty-free manufacturing data standard. The standard defines an XML/HTTP protocol that the agent polls from an adapter running on or near the machine. SINUMERIK 840D sl supports MTConnect via:
- Running the MTConnect adapter as a Windows service on the PCU50 itself (requires the SINUMERIK Integrate Client or a custom adapter built on libmtconnect).
- Reading NC and PLC data through a bridge: the adapter polls NC variables (via the SINUMERIK HTTP server or
PI _N_NVRD) and PLC tags (via S7 communication or LibNoDave / Snap7). - Publishing to a local MTConnect agent which serves
/currentand/sampleendpoints over HTTP.
Field experience: MTConnect delivers raw data; the integrator must build the time-series database, event correlation, and report layer. Plan 4-8 weeks of effort for a single-machine deployment that includes alarm correlation, override-event capture, and RFID stitching.
Method 2: OPC UA NC Server
For new machines or those upgraded to SINUMERIK Operate V4.x or later, the integrated OPC UA NC Server publishes the same address space browsed in HMI Operate to any OPC UA client. This is the most scalable path for multi-channel 840D sl machines because one client can subscribe to all channels.
Recommended client pattern:
- Subscribe to the data-change nodes corresponding to
progState,feedRateOvr,tool/tNo, and a custom RFID node exposed by the PLC. - On the client side, persist only the deltas with a local timestamp.
- Push deltas as JSON lines (JSONL) to a database, queue, or MES.
Method 3: Direct S7 / PLC Polling
All custom events that do not exist as NC variables (RFID scans, operator-ID handshakes, station interlocks, material load/unload) are typically in the PLC. The PCU50 HMI is a full Windows host, so any of the following works:
- Snap7 open-source S7 client (works against 840D sl PLC, port 102).
- Siemens S7.NET or libnodave (legacy).
- A commercial OPC DA/UA to SQL bridge.
Sample polling loop (C# pseudocode):
// Snap7 example: read RFID string and operator ID every 250 ms
var client = new S7Client();
client.ConnectTo("192.168.214.1", 0, 1, 102); // PCU50 PLC
byte[] buf = new byte[64];
int res = client.DBRead(100, 0, buf.Length, buf);
string rfid = System.Text.Encoding.ASCII.GetString(buf, 0, 32).Trim();
string operatorId = System.Text.Encoding.ASCII.GetString(buf, 32, 16).Trim();
if (rfid != lastRfid) { log("RFID", rfid); lastRfid = rfid; }
Method 4: Third-Party DNC / Production Reporting Software
Off-the-shelf tools commonly deployed against 840D sl include:
| Package | Strength | Integration Path | Notes |
|---|---|---|---|
| MTConnect-based (open agents + open-source dashboards) | Vendor-neutral, machine-agnostic | MTConnect adapter on PCU50 | Build the reporting UI; raw data only |
| Predator DNC / MDC | Wide CNC controller coverage, established reports | S7 + file watcher on PCU50 | Long learning curve on multi-channel 840D |
| Refresh Your Memory (RYM) DNC | Common on shop-floor DNC networks | File transfer + DNC macro output | Limited event-based reporting; better for program distribution |
| FactoryWiz / MachineMetrics / Scytec | Cloud dashboards, OEE focus | Edge collector (Windows service) | Subscriptions; verify SINUMERIK PLC tag support |
| Cell controller software (Toyoda/Fastems/Mori/Makino cell controllers) | Pre-built reports for FMS cells | OEM-specific to the cell controller | Not applicable to a 840D sl PCU50 without the cell controller in scope |
| Productivity Inc. Uptime-PRO | Cloud-based, machine dealer local to upper Midwest US | Edge agent on PCU50 | Vendor-led configuration |
For a custom 50+ axis multi-channel machine, generic "out of the box" OEE packages typically require a services engagement to model the channel layout, station interlocks, and RFID handshakes. Plan a scoping phase before purchasing seats.
Cell Controller Reporting Reference Architectures
For context, fully integrated cell controllers from Toyoda, Fastems, Mori Seiki, and Makino log all the data the original post asks for: program name, tool changes, override, alarms, RFID, RGV movement, and produce scheduled reports. These are vertical solutions: the cell controller is a separate PC, not HMI Operate, and it polls each machine through MTConnect or vendor-proprietary protocols.
If the customer eventually scales to a flexible manufacturing system, consider running the 840D sl machine as an MTConnect data source and consuming it from a cell controller, rather than building two parallel reporting systems.
Recommended Architecture for a Custom 50+ Axis 840D sl Machine
- Enable the OPC UA NC Server on the PCU50 (license permitting) and verify namespace exposure with a generic UA client (UA Expert).
- Add a Windows service on the PCU50 called DataCollector.exe that: - Subscribes via OPC UA to NC variables on all configured channels. - Polls the PLC DBs (RFID, operator ID, station state) every 250 ms via Snap7. - Maintains a circular buffer of last-known values and emits a JSONL line only on state change. - Writes to a local SQLite (no external DB dependency on the machine) plus forwards lines to a network share / MQTT broker.
- Run a separate reporting service (off-machine) that ingests the JSONL stream and produces the shift report (CSV + HTML at end of shift).
- Sync PCU50 time via NTP to a domain controller. Without NTP, the timestamp is unreliable across reboots and DST transitions.
NC Variable Polling Example (Windows Shell + SINUMERIK HTTP Server)
curl http://192.168.214.1:80/sinumerik/nck/data/.../progState
# or use the SINUMERIK Integrate HTTP REST endpoint to read a single variable
# (endpoint paths depend on firmware; consult the Commissioning Manual for your SW version)
Commissioning Checklist
| Step | Action | Verification |
|---|---|---|
| 1 | Verify PCU50 Windows time is NTP-synced |
w32tm /query /status shows Source = NTP |
| 2 | Confirm OPC UA NC Server license active | HMI Operate > Commissioning > Licenses lists OPC UA NC |
| 3 | Browse OPC UA namespace from UA Expert | All configured channels visible under /
|
| 4 | Subscribe to progState, feedRateOvr, tool/tNo per channel |
Values update in client within 500 ms |
| 5 | Read RFID DB and operator ID via Snap7 | Field changes captured within 1 second |
| 6 | Run DataCollector for 1 shift | JSONL contains events for every NC start/stop, tool change, override change, alarm, RFID scan |
| 7 | Validate against manual log | No missed events; timestamps within 1 s |
| 8 | Confirm 7-day retention / archival | Older files rotate to network share |
Troubleshooting Matrix
| Symptom | Likely Cause | Remedy |
|---|---|---|
| No NC variables exposed via OPC UA | License not active, or wrong firmware option | Activate SINUMERIK Integrate option in HMI Operate; reboot NCK |
| Snap7 connection refused on port 102 | PCU50 firewall blocks inbound S7 | Allow inbound TCP 102 in Windows Firewall on PCU50; verify PLC is on X120 or X127 port, not X130 (which is for the HMI on some builds) |
| Override value reads 0% or stuck | Reading the wrong NC variable path | Confirm path: /channel/feedRateOvr/pathOvr, not /channel/feedRateOvr/rapidOvr for the path feed |
| Tool-change event missed | Polling interval too long for short programs | Reduce poll to 100 ms or subscribe to the toolChange event node |
| Timestamp drift across machines | No NTP | Configure w32tm /config /manualpeerlist:<NTP> /syncfromflags:manual /update on every PCU50 |
| RFID string truncated | DB length shorter than tag payload | Read 64 bytes; trim trailing nulls in collector |
| Alarms logged twice (NCK + PLC) | Both sources collected | Deduplicate by alarm number + clear time; prefer PLC source for machine-level alarms |
| PCU50 HMI sluggish after enabling data collector | High-frequency disk writes | Batch writes every 5 s; use SQLite WAL mode; move DB to RAM disk if not retained |
Performance and Sizing Notes
For a 50+ axis machine with 4-6 channels and 1-second event resolution:
- OPC UA subscription throughput is not a bottleneck; 1-second scan rate handles 100+ monitored nodes.
- Snap7 polling at 250 ms across 4 DBs (RFID, operator, station, override) is well within PCU50 CPU budget.
- JSONL line volume: 50-200 events per shift is typical; well under 1 MB per shift even verbose.
- Disk: reserve 5 GB for the rolling JSONL archive; SSD or industrial CFast is sufficient.
NC:\mpf, NC:\tools) from the collector to prevent NC program corruption.FAQ
Does the Siemens 840D sl with PCU50 HMI Operate include built-in shift reporting?
Not as a configurable shift report. HMI Operate writes alarm, crash, and operator logs but does not natively time-stamp tool changes, feedrate-override changes, or RFID scans. A custom collector or third-party MES is normally required.
What is the simplest way to read NC variables from a PC?
Use the OPC UA NC Server (option-licensed on the PCU50) and connect a UA client such as UA Expert or a Snap7-based poll. Avoid per-variable PI service calls; they are slow and not designed for high-frequency capture.
Can MTConnect be used on a 840D sl with PCU50?
Yes. Run an MTConnect adapter as a Windows service on the PCU50, poll NC variables and PLC data, and publish to a local MTConnect agent. Plan to build the reporting UI; MTConnect delivers raw data only.
Where do RFID codes originate on a typical 840D sl machine?
In the PLC. The RFID reader is wired to the PLC I/O or a field-bus coupler, and the decoded tag string is held in a user DB (commonly a 32- or 64-byte ASCII block). Read it via Snap7 or expose it as an OPC UA node from the PLC.
How do I time-stamp events reliably on a PCU50?
Sync the PCU50 Windows clock to a domain NTP source. Without NTP, local clock drift will misalign events across reboots and DST changes, which breaks shift reports.