Skip to main content

Heidenhain iTNC 530 and TNC 530

The iTNC 530 and TNC 530 use the Heidenhain proprietary connector and need no licensed option — the Ethernet port is standard.

Connect to: the control's Ethernet port · Adapter type: Heidenhain

Newer controls should use OPC-UA

These steps also work for a TNC 640 or TNC 730 running Option 18, but that is a fallback. If you are specifying or buying an option, choose Option 56 and follow TNC 640 / TNC7 instead.

Network Configuration​

The control has to be reachable from the Edge device before you configure anything in MachineMetrics.

Physical Connection​

  1. Locate the Ethernet port on the control
    • iTNC 530 / TNC 530: typically on the rear of the control panel
  2. Connect a network cable from the control to your network switch or router
  3. Verify the link lights on the Ethernet port are active

Accessing Network Settings on the iTNC 530 / TNC 530​

  1. Press the Programming and Editing operating mode softkey (the right-arrow icon at the top-right of the softkey panel)

    iTNC 530 softkey panel — Programming and Editing mode button (right-arrow icon) circled in red at top-right

  2. Press the MOD key on the control keyboard

    iTNC 530 physical keyboard — MOD key highlighted between CALC and HELP

  3. Enter password NET123 then press ENT to access the network settings menu

  4. Navigate to Network or Ethernet Settings

iTNC 530 Network Configuration screen — "Configuring an interface" dialog with eth0/X26 selected, DHCP-LAN profile, options for Automatically procure IP address (DHCP) or Set the IP address manually, with Address and Subnet mask fields

iTNC 530 network configuration dialog (Programming & Editing mode → MOD → NET123 → Network). Select Automatically procure IP address (DHCP) or Set the IP address manually and enter the Address and Subnet mask. Click OK → Apply → Save to commit.

Configuring the Address​

For Static IP Address (Recommended):

  1. In Network Settings, select Manual or Static IP
  2. Enter the following network information:
    • IP Address: (e.g., 192.168.1.100)
    • Subnet Mask: (e.g., 255.255.255.0)
    • Gateway: (e.g., 192.168.1.1)
    • DNS Server: (optional, e.g., 192.168.1.1 or 8.8.8.8)
  3. Save settings and reboot control if prompted

For DHCP (Dynamic IP):

  1. In Network Settings, select DHCP or Automatic
  2. Control will automatically obtain IP address from network
  3. Note the assigned IP address for later use
  4. Recommended: Reserve this IP in your DHCP server to prevent changes

Important Network Configuration Notes:

  • Use static IP or reserved DHCP to ensure consistent connectivity
  • Ensure IP address is on same subnet as Edge device
  • Document the IP address for MachineMetrics configuration
  • Verify no IP conflicts exist on the network

iTNC 530 alternative — editing TNC.SYS directly: Network settings can also be viewed and modified via the File Management screen. Press PGM MGT, navigate to TNC:\, and locate the TNC.SYS file (type SYS). This file stores the network configuration and can be edited in text mode if the graphical network menu is not accessible.

iTNC 530 File Management screen — TNC: root directory showing TNC.SYS file (type SYS, 326 bytes) highlighted in the file list

Testing the Connection​

Step 1: Verify IP Configuration

On the Heidenhain control:

  1. Navigate to Network Settings
  2. Verify IP address is displayed and valid
  3. Check connection status shows "Connected" or "Active"

Step 2: Test from Control (if available)

Some Heidenhain controls have built-in network diagnostics:

  1. Access Network Settings → Diagnostics (if available)
  2. Try pinging the Edge device IP address
  3. Verify successful response

Step 3: Test from Edge Device

Ping the control via Diagnostics → Manual Ping in Edge Management, or from another computer on the network:

ping [MACHINE-IP-ADDRESS]

Example:

ping 192.168.1.100

Expected Result: Continuous successful ping responses with low latency (< 10ms typical)

Adding Machine in MachineMetrics​

Step 1: Create Machine Record

  1. Log into MachineMetrics at app.machinemetrics.com
  2. Navigate to Assets → Machines
  3. Click Add Machine
  4. Enter machine details:
    • Machine Name: (e.g., "Hermle-C40U-01")
    • Machine Type: (Mill, Machining Center, etc.)
    • Make: (e.g., Hermle, DMG Mori, Starrag)
    • Model: (e.g., C40 U, DMU 50, etc.)
    • Serial Number: (optional but recommended)
  5. Click Next

Step 2: Select Edge Device

  1. Choose the Edge device that will connect to this machine
  2. Ensure Edge device is on same network as the Heidenhain control
  3. Click Next

Heidenhain Connector Configuration​

Step 1: Select Connection Method

  1. In Data Collection Method, select Heidenhain
  2. If "Heidenhain" is not visible in the dropdown, contact MachineMetrics support

MachineMetrics Add data collection method dropdown — &quot;Heidenhain&quot; option highlighted, with Heidenhain TNC530 (OCX) and Heidenhain TNC640 also visible in the list

Select Heidenhain from the Data Collection Method dropdown. If you have a TNC 640 with Option 56 (OPC-UA), use the OPC-UA connector instead — see the OPC-UA guide.

Step 2: Enter Machine IP Address

  1. Enter the Heidenhain control's IP address (e.g., 192.168.1.100)
  2. The connector will automatically detect the control type and available data

Step 3: Save Configuration

  1. Review the IP address for accuracy
  2. Click Test Connection to verify connectivity
  3. If successful, click Save

Note: The Heidenhain connector automatically discovers available data items from the control. No manual configuration of data items is required.

Reading PLC Data Items​

The Heidenhain connector supports reading additional PLC data beyond the standard data items via the machine's JSON configuration. Four PLC table types are supported, each introduced in a different adapter version.

Adapter Version Requirements​

Table TypeIdentifierMinimum VersionValue Type
WORD registerW4.0.3.0Numeric
DWORD registerD4.0.3.0Numeric
StringS4.0.5.0String
Marker (bit)m4.1.0.00 or 1

Verify the adapter version on your Edge device before configuring PLC reads.

Configuration​

Add a plc block to the machine's JSON configuration. Each entry takes a variable name as the key and a table identifier plus index as the value:

{
"plc": {
"contouring_feed_rate": "D, 388",
"actual_speed_rpm": "W, 322",
"active_program": "S, 33",
"pulse_end_pgm_m02_m30": "m, 7270",
"end_pgm_m30": "m, 8170",
"end_pgm_m02": "m, 8164",
"part_counter_plus_1": "m, 10440",
"reset_part_counter": "m, 10439"
}
}

Values are not manipulated — they are reported exactly as read from the PLC.

Machine Active Signals​

The following standard legacy marker addresses can be used to determine machine and program state. These addresses are documented in the Heidenhain TNC 640 technical manual and are available on iTNC 530 and TNC 640 controls via the legacy numerical API.

MarkerAddressDescription
NN_ChnControlInOperationm, 4176High when the control is actively running a program
PP_ChnNcStartm, 4564NC start / cycle active
PP_ChnNCStopm, 4560NC stop
NN_SpiInMotionm, 4002Spindle in motion
NN_SpiSpeedOKm, 4001Spindle speed reached
NN_ChnErrorFStopm, 4220Feed stopped on error
NN_ChnErrorNCStopm, 4221NC stop on error
NN_ChnErrorEmergencyStopm, 4222Emergency stop active
note

iTNC 530 only: M4170 (NN_ChnProgEnd equivalent) fires on normal program end (M30, M02, END PGM) and resets automatically on the next program start. It does not fire on operator stop or e-stop, making it a reliable cycle-complete signal. This marker does not have a documented legacy address on TNC 640 — use the MG_PULSE_END_PGM_M02_M30 OEM marker (if present) or an M-code workaround instead.

Combining with Part Count Word Register​

The plc block can be combined with the partcounting block in a single configuration:

{
"partcounting": {
"plcPartCountMemAddressTNC640": "2056"
},
"plc": {
"control_in_operation": "m, 4176",
"nc_start": "m, 4564",
"spindle_in_motion": "m, 4002",
"pulse_end_pgm_m02_m30": "m, 7270",
"end_pgm_m30": "m, 8170",
"end_pgm_m02": "m, 8164",
"part_counter_plus_1": "m, 10440",
"reset_part_counter": "m, 10439"
}
}
note

If the part counter word register holds a value of zero, the machine's CNC programs likely do not include the M-code required to increment the counter. On Doosan machines with Heidenhain controls this is typically M54, but check the machine builder's documentation to confirm the correct M-code before modifying any programs.

Testing the Adapter Connection​

Step 1: Verify Adapter Status

  1. Navigate to machine page in MachineMetrics
  2. Check connection status indicator:
    • Green: Connected and receiving data
    • Yellow: Connecting or intermittent
    • Red: Connection failed

Step 2: Check Data Items

  1. Go to Diagnostics tab on machine page
  2. Verify data items are populating:
    • execution - Should show current machine state
    • program - Should show active program name
    • spindle_speed - Should show real-time spindle RPM
    • tool_number - Should show current tool

iTNC 530 Manual Operation screen — axis positions displayed (X, Y, Z, B, C), spindle S1 at 0.000, part count ST:22 circled in red at the bottom status bar

The iTNC 530 Manual Operation screen. At the bottom status bar, ST shows the current part count — the value circled here (ST:22) means 22 parts have been completed. MachineMetrics reads this counter to track production. When connected and data is flowing, verify the part count in MachineMetrics Diagnostics matches the ST value visible on the control.

Step 3: Verify in Machine View

  1. Navigate to Machines → Select your Heidenhain machine
  2. Verify machine status displays correctly:
    • Status (In Cycle, Idle, etc.)
    • Current program
    • Spindle speed
    • Tool information

Part Count​

The iTNC 530 has no dedicated part counter that MachineMetrics can read directly, so the count comes out of the PLC WORD table. You find the address on the control, then tell MachineMetrics to read it.

Understanding the PLC WORD Table​

Heidenhain machines often do not have a dedicated, standard part counter location that MachineMetrics can read directly. Instead, part count data is typically stored in the PLC WORD table, which is a memory area within the control that stores various machine variables.

What is the PLC WORD Table?

The PLC WORD table is a data structure in the Heidenhain control that contains:

  • Machine status flags
  • Counters (including part counts)
  • Process variables
  • Custom user data

Why Different Locations?

Part counter addresses vary by:

  • Control model (iTNC 530 vs TNC 640)
  • Machine builder customization
  • Auxiliary equipment (pallet changers, multi-spindle setups)
  • Custom macros or programs

Finding the Part Counter Address​

This procedure is specific to the iTNC 530 / TNC 530.

Step 1: Select Programming and Editing mode

Press the Programming and Editing operating mode softkey (the right-arrow icon at the top-right of the softkey panel).

iTNC 530 softkey panel — Programming and Editing mode button (right-arrow icon) circled in red at top-right


Step 2: Press the MOD key

Press the MOD key on the control's physical keyboard.

iTNC 530 physical keyboard — MOD key circled, located between CALC and HELP


Step 3: Enter the access code

When the Code number: prompt appears, type 807667 then press ENT.

Note: If 807667 does not work, the machine builder may have set a custom PLC password — contact the machine builder for the correct code.

iTNC 530 Programming and Editing screen — Code number prompt with masked entry (asterisks) and ENT key circled on the keyboard


Step 4: Open the TABLE view

Use the arrow softkeys (◄ ►) to scroll the softkey bar until TABLE appears, then press TABLE.

iTNC 530 softkey bar — TABLE, LOGIC DIAGRAM, TRACE IN-CODE, PROCESS MONITOR, OSCI, END; TABLE circled on the left and arrow navigation softkeys circled on the right


Step 5: Switch to WORD view and DECIMAL mode

In the table view, press W (WORD) to show WORD-size values, then toggle HEX ↕ DEZIMAL to switch to decimal display. This makes it easier to match values with the machine's part counter readout.

iTNC 530 PLC table softkey bar — D (DOUBLE), S (STRING), HEX/DEZIMAL toggle circled; SAVE M/B/W/D and RESTORE M/B/W/D also visible


Step 6: Locate the part counter in the WORD table

Scan the WORD table for a value that increments when a part completes. On most iTNC 530 machines the part counter is at W20, labeled WG_WERKSTUECK_ZAEHLER (German for "workpiece counter") in the status bar at the bottom of the screen when that cell is selected.

iTNC 530 WORD table — row 20 (W20) highlighted in blue; status bar at bottom reads &quot;W20 = WG_WERKSTUECK_ZAEHLER&quot;

W20 = WG_WERKSTUECK_ZAEHLER is the most common part counter location on the iTNC 530. Run a cycle and watch the value at W20 increment to confirm.

If W20 is not the counter on your machine, scan the table for a label containing any of these terms — machine builders localise them, so check both languages:

Look for labels containing the following terms (in English or German):

English Terms:

  • work or workpiece
  • piece counter or part counter
  • parts made or parts count
  • counter or count
  • production counter

German Terms:

  • werkstück zähler (workpiece counter)
  • teilezähler (parts counter)
  • arbeitszähler (work counter)
  • zähler (counter)
  • stückzahl (piece count)

Note the WORD address, confirm the value increments as parts complete, and record it for the next step. If you cannot find a counter at all, ask the machine builder for the PLC WORD map — addresses move with builder customisation, pallet changers and multi-spindle setups.

Configuring the Address in MachineMetrics​

For iTNC 530 / TNC 530 (WORD 20):

{
"partcounting": {
"plcPartCountMemAddressTNC640": "20"
}
}

Change 20 to whichever address you found. The parameter name mentions TNC640 for historical reasons — it applies to every control read over the proprietary connector.

Step 2: Configure Data Mapping

  1. Go to Machine Settings → Data Mapping tab
  2. Locate the part_count data item
  3. Map it to:
    • Type: EVENT
    • Subtype: PART_COUNT
    • Component: Machine or Controller
  4. Click Save

Step 3: Configure Data Rules

  1. Go to Machine Settings → Data Rules tab
  2. Locate Part Counting section
  3. Set Part Count Source to part_count
  4. Configure reset behavior:
    • Reset on Program Start: Optional (depends on your process)
    • Reset on Shift: Optional
  5. Click Save

Verifying Part Count​

Step 1: Run a Test Part

  1. Load a program on the machine
  2. Run the program to completion
  3. Verify part counter increments on the control display

Step 2: Check MachineMetrics Data

  1. Go to machine page in MachineMetrics
  2. Navigate to Parts tab
  3. Verify part count matches control display
  4. Check that timestamp is accurate

Step 3: Check Diagnostics

  1. Go to Diagnostics tab
  2. Locate part_count data item
  3. Verify value updates when part completes
  4. Check for consistent updates (no missed counts)

Step 4: Monitor Over Time

  1. Run multiple parts
  2. Verify count increments correctly
  3. Check for reset behavior (if configured)
  4. Confirm data is flowing to MachineMetrics Cloud

Troubleshooting Part Count Issues:

If parts are not counting correctly:

  1. Verify PLC WORD address is correct (double-check on control)
  2. Check M-code execution (review program for M53/M54)
  3. Verify Data Mapping settings in MachineMetrics
  4. Check adapter logs for errors or warnings
  5. Confirm part counter is enabled on the control
  6. Test manual increment on control (if possible)