Skip to main content

Trumpf

Key Points​

  • Uses proxy-based architecture — edge never connects to machine IP directly
  • Edge connects to OPC UA Proxy on port 11878 (client-facing)
  • Proxy connects to machines on port 12120 (machine-facing)
  • OPC-UA interface is a licensed option per machine — must be purchased separately
  • Proxy software downloaded via MyTRUMPF (customer responsibility to install)
  • Security mode: SignAndEncrypt / Basic256Sha256 (required for Proxy v2.x+)
  • MachineMetrics certificate must be accepted in the Proxy's Client Management tab (one-time step per edge device)

Endpoint format​

  • opc.tcp://<proxy_server_hostname>:11878 (use hostname, not machine IP)

Trumpf Technical Service (US): 1-888-878-6737

Trumpf machine tools (TruLaser, TruBend, TruPunch, etc.) use a proxy-based OPC-UA architecture. The MachineMetrics edge device does not connect directly to the machine — it connects to a customer-hosted OPC UA Proxy software component, which in turn communicates with the machines.

MachineMetrics Edge  →  OPC UA Proxy (customer server)  →  Trumpf Machine(s)
port 11878 (client-facing) port 12120 (machine-facing)
The edge device never connects directly to the machine IP

Unlike standard OPC-UA connections, the MachineMetrics adapter endpoint must point at the proxy server's hostname on port 11878, not the machine's IP address. Connecting to the machine IP directly will not work.

Prerequisites​

All three of the following must be in place before MachineMetrics can connect.


1. OPC-UA Interface Licensed on the Machine

The OPC-UA interface is a paid machine option that must be licensed per machine.

  • On machines connected to Trumpf's TelePresence Portal, licensing is applied automatically after purchase
  • On older or offline machines, a Trumpf service technician may need to activate it on-site

To verify: have the customer contact their Trumpf sales or service representative, or check via MyTRUMPF.

Older machines

Trumpf offers an Extension Cube hardware retrofit for machines without a built-in OPC-UA server. This requires the Remote Control Interface function on the legacy machine. Confirm with Trumpf before scoping connectivity.


2. OPC UA Proxy Software Installed

The customer must install the Trumpf OPC UA Proxy on a Windows machine in their production network. This is a customer responsibility — MachineMetrics cannot install or configure the Proxy.

Download: Available via MyTRUMPF. Customer must be registered (allow 2–3 business days). If no MyTRUMPF access, the installation package can be requested from the local Trumpf sales and service company.

System requirements:

  • Windows 10, 11, Server 2016, 2019, or 2022
  • .NET Framework 4.8 or higher
  • Stable hostname recommended — avoid using IP addresses as machine identifiers (entries are case-sensitive)

Firewall: Installation automatically adds Windows firewall rules for ports 12120 and 11878. If connection issues arise, verify these rules are active and not overridden by a network-level firewall.

To activate the OPC-UA interface on the machine: Contact TRUMPF Technical Service (US: 1-888-878-6737).


3. Each Machine Pointed at the Proxy

On each Trumpf machine, the Proxy address must be configured in the machine's network settings:

  1. Open the TRUMPF Operating Shell (TOSh)
  2. Select Machine Configuration → Machine Connectivity
  3. If a Smart Factory Host is present: go to the Configure SFH tab → Add Host
  4. Otherwise: go to the OPC UA tab → Add custom connection, and enter: opc.tcp://<proxy_server_hostname>:12120
  5. Press Apply changes — the machine's OPC UA server (MOS) will restart
  6. Confirm the status shows Reachable (green)

Connecting MachineMetrics​

Once the Proxy is installed and machines show Connected in the Proxy Configuration Tool, configure the MachineMetrics adapter with the Proxy endpoint:

opc.tcp://<proxy_server_hostname>:11878

Use the proxy server's hostname, not the individual machine IP.


Security Configuration and Certificate Acceptance​

Trumpf OPC UA Proxy v2.x and above enforces authenticated, encrypted connections. The MachineMetrics adapter script is pre-configured with the required security settings — no changes needed.

When the MachineMetrics edge first connects, the Proxy receives the adapter's certificate and holds it in Rejected status. A Trumpf-side administrator must complete this one-time step:

  1. Open the TRUMPF OPC UA Proxy Configuration Tool
  2. Navigate to the Client Management tab
  3. Locate the MachineMetrics entry (status: Rejected)
  4. Click Accept

The connection will establish immediately. This step is required once per edge device.


Adapter Script​

Copy and paste the following script into the MachineMetrics adapter configuration. Update the endpoint URL to point at your OPC UA Proxy server before saving.

version: 2
security-policy: Basic256Sha256
security-mode: SignAndEncrypt

tags:
# ProductionPlan (ID 2)
ProductionPlanRunning:
path: ns=17;s=4

# ProductionPlan > CurrentProgram (ID 7)
ProgramName:
path: ns=17;s=8
StationNumber:
path: ns=17;s=10
NumberInProductionPlan:
path: ns=17;s=11
TargetQuantity:
path: ns=17;s=12
CurrentQuantity:
path: ns=17;s=13
ProductionOrderIdentifier:
path: ns=17;s=14
ProductionPackageName:
path: ns=17;s=15
BatchNumber:
path: ns=17;s=16
ProgramRunning:
path: ns=17;s=17.Running
ProgramStopped:
path: ns=17;s=17.Stopped
ProgramAborted:
path: ns=17;s=17.Aborted
ProductionPlanCurrentProgramEnded:
path: ns=17;s=17.Ended
ProgramStoppedMalfunction:
path: ns=17;s=17.StoppedMalfunction
ProgramStoppedOperator:
path: ns=17;s=17.StoppedOperator
ProgramReentry:
path: ns=17;s=17.Reentry

# ProductionPlan > CurrentProgram > Time (ID 25)
GrossRunTime:
path: ns=17;s=25.GrossRunTime
NetRunTime:
path: ns=17;s=25.NetRunTime
NetProcessingTime:
path: ns=17;s=25.NetProcessingTime
PlanNetProcessingTime:
path: ns=17;s=25.NetProcessingTime
EstimatedProgramEndTime:
path: ns=17;s=25.EstimatedProgramEndTime

# ProductionPlan > Time (ID 394)
EstimatedProductionPlanEndTime:
path: ns=17;s=395

# Machine (ID 30)
FeedrateOverride:
path: ns=17;s=33

# Machine > PartProgram (ID 31)
PartProgramName:
path: ns=17;s=32
PartStationNumber:
path: ns=17;s=34
Running:
path: ns=17;s=35.Running
PartProgramRunning:
path: ns=17;s=35.Running
Stopped:
path: ns=17;s=35.Stopped
PartProgramStopped:
path: ns=17;s=35.Stopped
Aborted:
path: ns=17;s=35.Aborted
PartProgramAborted:
path: ns=17;s=35.Aborted
Ended:
path: ns=17;s=35.Ended
CurrentPartProgramEnded:
path: ns=17;s=35.Ended
StoppedMalfunction:
path: ns=17;s=35.StoppedMalfunction
StoppedOperator:
path: ns=17;s=35.StoppedOperator
PartProgramStoppedOperator:
path: ns=17;s=35.StoppedOperator
PartProgramReentry:
path: ns=17;s=35.Reentry
UserMessage:
path: ns=17;s=150

# Machine > PartProgram > Time (ID 43)
PartGrossRunTime:
path: ns=17;s=43.GrossRunTime
PartNetRunTime:
path: ns=17;s=43.NetRunTime
PartNetProcessingTime:
path: ns=17;s=43.NetProcessingTime
PartEstimatedProgramEndTime:
path: ns=17;s=43.EstimatedProgramEndTime

# Machine > PartProgram > Time32 (ID 241)
PreEstimatedProgramRunTime:
path: ns=17;s=415

# Machine > Machine State Signals (ID 50-56)
DrivesStartingUp:
path: ns=17;s=50
DrivesSwitchedOn:
path: ns=17;s=51
HomedAndReadyForUse:
path: ns=17;s=52
ReadyForUse:
path: ns=17;s=61
MachineActive:
path: ns=17;s=53
MachineInterrupted:
path: ns=17;s=54
DrivesShuttingDown:
path: ns=17;s=55
DrivesSwitchedOff:
path: ns=17;s=56
SystemShutdownActive:
path: ns=17;s=434

# Machine > LaserTechnology > Laser1 (ID 57, 208)
NetBeamOnTime:
path: ns=17;s=59
LaserEmissionOn:
path: ns=17;s=435

# Machine > OperatingMode (ID 62)
AutoMode:
path: ns=17;s=64
JogMode:
path: ns=17;s=65
MdaMode:
path: ns=17;s=66

# Machine > StopConditions (ID 67)
EmergencyStop:
path: ns=17;s=69
FeedHold:
path: ns=17;s=70

# Machine > SafetyDevices (ID 71)
LightBarrier1:
path: ns=17;s=73
LightBarrier2:
path: ns=17;s=74
LightBarrier3:
path: ns=17;s=75
LightBarrier4:
path: ns=17;s=76
LightBarrier5:
path: ns=17;s=77
SafetyDoor1:
path: ns=17;s=78
SafetyDoor2:
path: ns=17;s=79
SafetyDoor3:
path: ns=17;s=80
SafetyDoor4:
path: ns=17;s=81
SafetyDoor5:
path: ns=17;s=82
EmergencyStopAutomation1:
path: ns=17;s=83
EmergencyStopAutomation2:
path: ns=17;s=84
EmergencyStopAutomation3:
path: ns=17;s=85
EmergencyStopAutomation4:
path: ns=17;s=86
EmergencyStopAutomation5:
path: ns=17;s=87
EmergencyStopStartPillar1:
path: ns=17;s=88
EmergencyStopStartPillar2:
path: ns=17;s=89
EmergencyStopStartPillar3:
path: ns=17;s=90
EmergencyStopStartPillar4:
path: ns=17;s=91
EmergencyStopStartPillar5:
path: ns=17;s=92
EmergencyStopControlPanel1:
path: ns=17;s=93
EmergencyStopControlPanel2:
path: ns=17;s=94
EmergencyStopControlPanel3:
path: ns=17;s=95
EmergencyStopControlPanel4:
path: ns=17;s=96

# Machine > MessagesOnHold (ID 97)
MessagesOnHold:
path: ns=17;s=97

# Machine > MessageList (ID 98)
MessageList:
path: ns=17;s=98

# Machine > Messages (ID 179)
MachineMessages:
path: ns=17;s=179

variables:
execution:
- state:
- ACTIVE: Running == "true"
- FEED_HOLD: FeedHold == "true"
- INTERRUPTED: EmergencyStop == "true" or StoppedOperator == "true"
- PROGRAM_STOPPED: Stopped == "true"
- STOPPED: StoppedMalfunction == "true" or Aborted == "true"
- PROGRAM_COMPLETED: Ended == "true" and Running == "false"
- READY: true

part-count:
- source: CurrentPartProgramEnded
- rising-edge:
- count

controller-mode:
- state:
- AUTOMATIC: AutoMode == "true"
- MANUAL_DATA_INPUT: MdaMode == "true"
- MANUAL: JogMode == "true"

machine-state:
- state:
- STARTING_UP: DrivesStartingUp == "true"
- POWERING_ON: DrivesSwitchedOn == "true"
- READY: HomedAndReadyForUse == "true"
- ACTIVE: MachineActive == "true"
- INTERRUPTED: MachineInterrupted == "true"
- SHUTTING_DOWN: DrivesShuttingDown == "true"
- POWERED_OFF: DrivesSwitchedOff == "true"

laser-status:
- state:
- ON: LaserEmissionOn == "true"
- OFF: true

conditions:
estop:
- code: ESTOP_MAIN
message: Emergency Stop Active
value:
FAULT: EmergencyStop == "true"
- code: ESTOP_AUTOMATION_1
message: Emergency Stop Automation 1
value:
FAULT: EmergencyStopAutomation1 == "true"
- code: ESTOP_AUTOMATION_2
message: Emergency Stop Automation 2
value:
FAULT: EmergencyStopAutomation2 == "true"
- code: ESTOP_AUTOMATION_3
message: Emergency Stop Automation 3
value:
FAULT: EmergencyStopAutomation3 == "true"
- code: ESTOP_AUTOMATION_4
message: Emergency Stop Automation 4
value:
FAULT: EmergencyStopAutomation4 == "true"
- code: ESTOP_AUTOMATION_5
message: Emergency Stop Automation 5
value:
FAULT: EmergencyStopAutomation5 == "true"
- code: ESTOP_START_PILLAR_1
message: Emergency Stop Start Pillar 1
value:
FAULT: EmergencyStopStartPillar1 == "true"
- code: ESTOP_START_PILLAR_2
message: Emergency Stop Start Pillar 2
value:
FAULT: EmergencyStopStartPillar2 == "true"
- code: ESTOP_START_PILLAR_3
message: Emergency Stop Start Pillar 3
value:
FAULT: EmergencyStopStartPillar3 == "true"
- code: ESTOP_START_PILLAR_4
message: Emergency Stop Start Pillar 4
value:
FAULT: EmergencyStopStartPillar4 == "true"
- code: ESTOP_START_PILLAR_5
message: Emergency Stop Start Pillar 5
value:
FAULT: EmergencyStopStartPillar5 == "true"
- code: ESTOP_CONTROL_PANEL_1
message: Emergency Stop Control Panel 1
value:
FAULT: EmergencyStopControlPanel1 == "true"
- code: ESTOP_CONTROL_PANEL_2
message: Emergency Stop Control Panel 2
value:
FAULT: EmergencyStopControlPanel2 == "true"
- code: ESTOP_CONTROL_PANEL_3
message: Emergency Stop Control Panel 3
value:
FAULT: EmergencyStopControlPanel3 == "true"
- code: ESTOP_CONTROL_PANEL_4
message: Emergency Stop Control Panel 4
value:
FAULT: EmergencyStopControlPanel4 == "true"

light-barrier:
- code: LIGHT_BARRIER_1
message: Light Barrier 1 Interrupted
value:
WARNING: LightBarrier1 == "true"
- code: LIGHT_BARRIER_2
message: Light Barrier 2 Interrupted
value:
WARNING: LightBarrier2 == "true"
- code: LIGHT_BARRIER_3
message: Light Barrier 3 Interrupted
value:
WARNING: LightBarrier3 == "true"
- code: LIGHT_BARRIER_4
message: Light Barrier 4 Interrupted
value:
WARNING: LightBarrier4 == "true"
- code: LIGHT_BARRIER_5
message: Light Barrier 5 Interrupted
value:
WARNING: LightBarrier5 == "true"

safety-door:
- code: SAFETY_DOOR_1
message: Safety Door 1 Open
value:
WARNING: SafetyDoor1 == "true"
- code: SAFETY_DOOR_2
message: Safety Door 2 Open
value:
WARNING: SafetyDoor2 == "true"
- code: SAFETY_DOOR_3
message: Safety Door 3 Open
value:
WARNING: SafetyDoor3 == "true"
- code: SAFETY_DOOR_4
message: Safety Door 4 Open
value:
WARNING: SafetyDoor4 == "true"
- code: SAFETY_DOOR_5
message: Safety Door 5 Open
value:
WARNING: SafetyDoor5 == "true"

data-items:
- execution
- part-count
- controller-mode
- machine-state
- laser-status
- ProductionPlanRunning
- ProgramName
- StationNumber
- NumberInProductionPlan
- TargetQuantity
- CurrentQuantity
- ProductionOrderIdentifier
- ProductionPackageName
- BatchNumber
- ProgramRunning
- ProgramStopped
- ProgramAborted
- ProductionPlanCurrentProgramEnded
- ProgramStoppedMalfunction
- ProgramStoppedOperator
- ProgramReentry
- GrossRunTime
- NetRunTime
- NetProcessingTime
- PlanNetProcessingTime
- EstimatedProgramEndTime
- EstimatedProductionPlanEndTime
- FeedrateOverride
- PartProgramName
- PartStationNumber
- Running
- PartProgramRunning
- Stopped
- PartProgramStopped
- Aborted
- PartProgramAborted
- Ended
- CurrentPartProgramEnded
- StoppedMalfunction
- StoppedOperator
- PartProgramStoppedOperator
- PartProgramReentry
- UserMessage
- PartGrossRunTime
- PartNetRunTime
- PartNetProcessingTime
- PartEstimatedProgramEndTime
- PreEstimatedProgramRunTime
- DrivesStartingUp
- DrivesSwitchedOn
- HomedAndReadyForUse
- ReadyForUse
- MachineActive
- MachineInterrupted
- DrivesShuttingDown
- DrivesSwitchedOff
- SystemShutdownActive
- NetBeamOnTime
- LaserEmissionOn
- AutoMode
- JogMode
- MdaMode
- EmergencyStop
- FeedHold
- LightBarrier1
- LightBarrier2
- LightBarrier3
- LightBarrier4
- LightBarrier5
- SafetyDoor1
- SafetyDoor2
- SafetyDoor3
- SafetyDoor4
- SafetyDoor5
- EmergencyStopAutomation1
- EmergencyStopAutomation2
- EmergencyStopAutomation3
- EmergencyStopAutomation4
- EmergencyStopAutomation5
- EmergencyStopStartPillar1
- EmergencyStopStartPillar2
- EmergencyStopStartPillar3
- EmergencyStopStartPillar4
- EmergencyStopStartPillar5
- EmergencyStopControlPanel1
- EmergencyStopControlPanel2
- EmergencyStopControlPanel3
- EmergencyStopControlPanel4
- MessagesOnHold
- MessageList
- MachineMessages

Common Issues​

Machine stuck in "Connecting" in the Proxy tool

  • Verify the machine is powered on and network cables are seated
  • Confirm the OPC UA tab on the machine shows the correct Proxy address (opc.tcp://<proxy>:12120)
  • Hostname entries in the Proxy are case-sensitive — verify exact match
  • Check Windows firewall on the Proxy server for ports 12120 and 11878

MachineMetrics adapter connects but immediately drops / security error

  • Confirm security-policy: Basic256Sha256 and security-mode: SignAndEncrypt are set in the adapter script
  • Check the Client Management tab in the Proxy tool — accept the MM certificate if it shows Rejected

OPC-UA interface not available / machine shows no data

  • The interface has not been licensed — customer contacts Trumpf Technical Service or their sales rep
  • Machine may need to be connected to the TelePresence Portal for remote license activation

No MyTRUMPF access to download Proxy software

  • Customer contacts local Trumpf sales/service company to request the installation package directly

Responsibility Summary​

StepOwner
Purchase / activate OPC-UA interface licenseCustomer (via Trumpf rep)
Download and install OPC UA Proxy softwareCustomer
Configure machine to point at ProxyCustomer or Trumpf service
Accept MM certificate in Client Management tabCustomer (Trumpf Proxy admin)
Configure MM adapter with Proxy endpointMachineMetrics TO team
Validate data in MachineMetricsMachineMetrics TO team

Resources​

Contact MachineMetrics Support if you need assistance with Trumpf connectivity setup.