Skip to main content

Bosch Rexroth IndraControl V MTX

Protocol: OPC-UA · Port: 4840 · Endpoint: opc.tcp://<controller-ip>:4840 · Cable: the Ethernet port on the IndraControl V unit. Set a static IP on the controller, on the same subnet as the Edge device.

For where the cable goes and how to set the control's IP, subnet and gateway, see Physical Connection in the OPC-UA overview.

IndraControl V MTX controls expose machine data over OPC-UA through the IndraMotion OPC-UA server.

Requirements:

  • IndraWorks v13 or later
  • OPC-UA server enabled (starts by default on port 4840)
  • Endpoint: opc.tcp://<controller-ip>:4840

ChanState execution mapping:

ValueMeaning
1Inactive
2Ready
3Running
4Stopped
5Resetting
7Error
12Ready at program start

ModeOfOperation main mode mapping:

ValueMeaning
1Jog
2Reference
3Block pre-run
4MDI
5Automatic
6Program block
7Single step
10Single block

Example adapter script:

version: 2
security-mode: None
force-read-on-connect: true

tags:
chan-state:
path: ns=27;s=NC.Chan.OperationState,01,ChanState
bpu-state:
path: ns=27;s=NC.Chan.OperationState,01,BpuState
ipo-state:
path: ns=27;s=NC.Chan.OperationState,01,IpoState
main-mode-raw:
path: ns=27;s=NC.Chan.ModeOfOperation,01,MainMode
prog-name:
path: ns=27;s=NC.Chan.ActMainProgram,01
act-block:
path: ns=27;s=NC.Chan.ActNcBlock,01
prog-position-block:
path: ns=27;s=NC.Chan.ProgramPosition,01,BlockNo
prog-position-file:
path: ns=27;s=NC.Chan.ProgramPosition,01,FilePosition
feed-override-raw:
path: ns=27;s=NC.Chan.ActFeedOverride,01
act-feedrate-raw:
path: ns=27;s=NC.Chan.ActFeedrate,01
programmed-feedrate-raw:
path: ns=27;s=NC.Chan.ProgrammedFeedrate,01
spindle-speed-raw:
path: ns=27;s=NC.Chan.ActSpindleSpeed,01,Speed
spindle-override-raw:
path: ns=27;s=NC.Chan.ActSpindleOverride,01,ActiveValue
axis-pos-raw:
path: ns=27;s=NC.Chan.AxisPosWcs,01,1
optional-stop:
path: ns=27;s=NC.Chan.OptionalStop,01
alarm-number:
path: ns=16;s=DiagnosisLogbook.ActiveAlarm.Number
alarm-message:
path: ns=16;s=DiagnosisLogbook.ActiveAlarm.Message
alarm-severity:
path: ns=16;s=DiagnosisLogbook.ActiveAlarm.Severity
cut-count:
path: ns=27;s=NC.CplPermVariable,@YOUR_COUNTER_VAR,1

variables:
execution:
- source: chan-state
- state:
- ACTIVE: this == 3 and bpu-state == 3
- INTERRUPTED: this == 4 or this == 7 or this == 5
- READY: this == 2 or this == 1 or this == 12
- READY: true

main-mode:
- source: main-mode-raw['0']

controller-mode:
- source: main-mode
- state:
- AUTOMATIC: this == 5 or this == 6 or this == 10
- MANUAL_DATA_INPUT: this == 4
- MANUAL: this == 1 or this == 2 or this == 14
- SETUP: this == 3 or this == 7
- UNAVAILABLE: true

feed-override:
- source: feed-override-raw['0']

act-feedrate:
- source: act-feedrate-raw['1']

programmed-feedrate:
- source: programmed-feedrate-raw['0']

spindle-speed:
- source: spindle-speed-raw['0']

spindle-override:
- source: spindle-override-raw['0']

axis-x:
- source: axis-pos-raw['0']

axis-y:
- source: axis-pos-raw['1']

axis-z:
- source: axis-pos-raw['2']

optional-stop-state:
- source: optional-stop == true ? "ON":"OFF"

data-items:
- execution
- controller-mode
- prog-name
- act-block
- prog-position-block
- prog-position-file
- feed-override
- act-feedrate
- programmed-feedrate
- spindle-speed
- spindle-override
- axis-x
- axis-y
- axis-z
- optional-stop-state
- chan-state
- bpu-state
- ipo-state
- cut-count

conditions:
cnc-alarm-fault:
- code: ${alarm-number}
message: ${alarm-message}
value:
FAULT: alarm-severity >= 700

cnc-alarm-warning:
- code: ${alarm-number}
message: ${alarm-message}
value:
WARNING: alarm-severity >= 300 and alarm-severity < 700

channel-error:
message: CNC channel is in error state (ChanState 7)
value:
FAULT: chan-state == 7

optional-stop-active:
message: Optional stop (M01) is enabled
value:
WARNING: optional-stop == true
CPL Permanent Variables

The NC.CplPermVariable namespace provides access to permanent CPL variables defined by the machine builder. These variables persist across power cycles and often contain rich process-specific data. Browse NC.CplPermVariable,PermVars (fixed variables @1–@100) and NC.CplPermVariable,DefPermVars (user-defined named variables) to discover what is available on your specific machine. Replace @YOUR_COUNTER_VAR in the example script with the appropriate variable name from your machine.