Skip to main content

Rollomatic Connectivity Guide

Overview

Rollomatic machines (GrindSmart, ShapeSmart, LaserSmart, NanoGrind tool grinding machines) can be connected to MachineMetrics in more than one way:

  • FOCAS to the FANUC control provides machine status, alarms, and basic program information from the control.
  • OPC-UA to Rollomatic RConnect on the Windows HMI (port 8999) provides production counts, wheel pack and robot-related data, and a broad set of monitoring tags from the HMI.

You do not need both connections. You can use FOCAS only, OPC-UA (RConnect) only, or both, depending on what data you want in MachineMetrics. Using both is recommended when you want the fullest picture: control-side data from FOCAS plus HMI production and wheel data from RConnect.

Network Requirements

Run network drops for the connection types you plan to use:

FANUC control (FOCAS): If you use FOCAS, connect to the FANUC Ethernet port (port label CD38A). See the FOCAS (FANUC) Connectivity Guide for full setup instructions.

Windows HMI (OPC-UA / RConnect): If you use RConnect OPC-UA, connect to the Windows HMI PC. The HMI will need either a static IP address configured or DHCP enabled (see Windows HMI Network Setup below).

If you use both FOCAS and OPC-UA, you need both of the above network paths (typically two Ethernet cables to the machine).

Connecting the FANUC Control (Machine Status Data)

The FANUC control on a Rollomatic machine can be connected using the standard FOCAS protocol. This provides:

  • Machine execution state (running / stopped)
  • Alarm data
  • Basic program information
note

If you connect FOCAS only, you get control-side status and alarms but not RConnect’s production counts or wheel pack tags on that connection. If you connect OPC-UA only, you get RConnect’s data model (including production and wheel-related tags) without a separate FOCAS machine in MachineMetrics. For both datasets in one deployment, add both connection types (often as two machines or two paths, per your MachineMetrics setup).

Refer to the FOCAS (FANUC) Connectivity Guide for full setup instructions.

Connecting via OPC-UA (Production & Wheel Pack Data)

To capture production counts, active wheel pack information, and the other RConnect tags described in this guide, connect to the Rollomatic Windows HMI over OPC-UA. You can use this path without FOCAS if OPC-UA alone meets your needs.

warning

The OPC-UA server (RConnect) is a purchasable option from Rollomatic. It must be purchased and enabled before MachineMetrics can connect. Contact Rollomatic to purchase the RConnect OPC-UA option if it is not already installed on the machine.

Once the OPC-UA option is active:

  • The OPC-UA server runs on the Windows HMI PC.
  • Port: 8999
  • Connection string format: opc.tcp://<HMI-IP-ADDRESS>:8999

Refer to the OPC-UA Connectivity Guide for instructions on adding an OPC-UA machine in MachineMetrics and entering the adapter script.

Sample Rollomatic OPC-UA Adapter Script

version: 2
read-mode: polling
opcua-condition-key: system

# OPC-UA Tags - Input Section
tags:
# Machine Program Information
programname:
path: ns=2;s=VGSuite/Program/ProgramName
jobidentifier:
path: ns=2;s=Rollomatic/Production/ActiveProgram/JobIdentifier

# Machine Status and Operation Mode
machineStatus_tmp:
path: ns=2;s=Rollomatic/Production/MachineStatus
operationmode:
path: ns=2;s=Rollomatic/Monitoring/MachineTool/OperationMode
loadingmode:
path: ns=2;s=Rollomatic/Monitoring/MachineTool/LoadingMode
iswarmup:
path: ns=2;s=Rollomatic/Monitoring/MachineTool/IsWarmUp
sleepmode:
path: ns=2;s=Rollomatic/Monitoring/MachineTool/SleepMode

# Channel and Control Settings
channelmode:
path: ns=2;s=Rollomatic/Monitoring/Channel 1/ChannelMode
channelstate:
path: ns=2;s=Rollomatic/Monitoring/Channel 1/ChannelState
singlestep:
path: ns=2;s=Rollomatic/Monitoring/Channel 1/ChannelModifiers/SingleStep
optionalstop:
path: ns=2;s=Rollomatic/Monitoring/Channel 1/ChannelModifiers/OptionalStop
dryrun:
path: ns=2;s=Rollomatic/Monitoring/Channel 1/ChannelModifiers/DryRun

# Production and Part Counting
partsproducedinlifetime:
path: ns=2;s=Rollomatic/Production/Statistics/PartsProducedInLifetime
jobManagerProducedPieces:
path: ns=2;s=Rollomatic/Production/ProductionPlan/JobManagerProducedPieces
runsCompleted:
path: ns=2;s=Rollomatic/Production/ProductionPlan/Job 1/RunsCompleted
cycleTime:
path: ns=2;s=Rollomatic/Production/ProductionPlan/Job 1/CycleTime
runningCycleTime:
path: ns=2;s=Rollomatic/Production/ProductionPlan/Job 1/RunningCycleTime

# Spindle Monitoring
is-rotating:
path: ns=2;s=Rollomatic/Monitoring/Main Spindle/IsRotating
override:
path: ns=2;s=Rollomatic/Monitoring/Main Spindle/Override
currentload:
path: ns=2;s=Rollomatic/Monitoring/Main Spindle/CurrentLoad
controlledSpeed:
path: ns=2;s=Rollomatic/Monitoring/Main Spindle/ControlledSpeed
cycleMaxLoad:
path: ns=2;s=Rollomatic/Monitoring/Main Spindle/CycleMaxLoad
spindleOverride:
path: ns=2;s=Rollomatic/Monitoring/Main Spindle/Override

# Feed and Override Controls
feedoverride:
path: ns=2;s=Rollomatic/Monitoring/Channel 1/FeedOverride
rapidoverride:
path: ns=2;s=Rollomatic/Monitoring/Channel 1/RapidOverride

# Stack Light Indicators
greensignalon_raw:
path: ns=2;s=Rollomatic/Monitoring/Stacklight/Green/SignalOn
yellowsignalon_raw:
path: ns=2;s=Rollomatic/Monitoring/Stacklight/Yellow/SignalOn
redsignalon_raw:
path: ns=2;s=Rollomatic/Monitoring/Stacklight/Red/SignalOn

# Axis Position Monitoring
distanceX:
path: ns=2;s=Rollomatic/Monitoring/Axes/X/Distance
distanceY:
path: ns=2;s=Rollomatic/Monitoring/Axes/Y/Distance
distanceZ:
path: ns=2;s=Rollomatic/Monitoring/Axes/Z/Distance

# Temperature Monitoring
xTemp:
path: ns=2;s=Rollomatic/Monitoring/Axes/X/Temperature
yTemp:
path: ns=2;s=Rollomatic/Monitoring/Axes/Y/Temperature
zTemp:
path: ns=2;s=Rollomatic/Monitoring/Axes/Z/Temperature
aTemp:
path: ns=2;s=Rollomatic/Monitoring/Axes/A/Temperature
bTemp:
path: ns=2;s=Rollomatic/Monitoring/Axes/B/Temperature
cTemp:
path: ns=2;s=Rollomatic/Monitoring/Axes/C/Temperature
uTemp:
path: ns=2;s=Rollomatic/Monitoring/Axes/U/Temperature
wTemp:
path: ns=2;s=Rollomatic/Monitoring/Axes/W/Temperature
xwTemp:
path: ns=2;s=Rollomatic/Monitoring/Axes/XW/Temperature
cwTemp:
path: ns=2;s=Rollomatic/Monitoring/Axes/CW/Temperature

# Robot and Tool Management
piecestodo:
path: ns=2;s=Rollomatic/Robot/PiecesToDo
activeTool:
path: ns=2;s=Rollomatic/Equipment/ActiveTool/Name

# Tool Configuration
blankLength:
path: ns=2;s=Rollomatic/Robot/Configuration/Blank/Length
shankDiameter:
path: ns=2;s=Rollomatic/Robot/Configuration/Blank/ShankDiameter
toolDiameter:
path: ns=2;s=Rollomatic/Robot/Configuration/Blank/ToolDiameter

# Cassette Configuration
cassetteCount:
path: ns=2;s=Rollomatic/Robot/Configuration/MachineSetup/CassetteCount
holeUCount:
path: ns=2;s=Rollomatic/Robot/Configuration/Cassette/HoleUCount
holeWCount:
path: ns=2;s=Rollomatic/Robot/Configuration/Cassette/HoleWCount

# Load Tool Positions
loadToolCassetteIndex:
path: ns=2;s=Rollomatic/Robot/LoadToolPosition/CassetteIndex
loadToolHoleU:
path: ns=2;s=Rollomatic/Robot/LoadToolPosition/HoleU
loadToolHoleW:
path: ns=2;s=Rollomatic/Robot/LoadToolPosition/HoleW

# Unload Positions
unloadBlankCassetteIndex:
path: ns=2;s=Rollomatic/Robot/UnloadBlankPosition/CassetteIndex
unloadBlankHoleU:
path: ns=2;s=Rollomatic/Robot/UnloadBlankPosition/HoleU
unloadBlankHoleW:
path: ns=2;s=Rollomatic/Robot/UnloadBlankPosition/HoleW

# Energy and Performance
energyConsumption:
path: ns=2;s=Rollomatic/Monitoring/EnergyConsumption/ActiveEnergyConsumption
powerOnDuration:
path: ns=2;s=Rollomatic/Monitoring/MachineTool/PowerOnDuration

# Alerts and Messages
errorcode:
path: ns=2;s=Rollomatic/Notification/Messages/AlertEvent/ErrorCode
cncalarmtype:
path: ns=2;s=Rollomatic/Notification/Messages/AlertEvent/CncAlarmType
alerts:
path: ns=2;s=Rollomatic/Notification/Messages/Alerts
message:
path: ns=2;s=Rollomatic/Notification/Messages/CompletedMessageEvent/Message
identifier:
path: ns=2;s=Rollomatic/Notification/Messages/CompletedMessageEvent/Identifier
completeAlarmsWarning:
path: ns=2;s=Rollomatic/Notification/Messages/CompletedMessages

# Production Program State
currentState:
path: ns=2;s=Rollomatic/Production/ActiveProgram/State/CurrentState
numberInList:
path: ns=2;s=Rollomatic/Production/ProductionPlan/Job 1/NumberInList
endOfProduction:
path: ns=2;s=Rollomatic/Production/ProductionPlan/Job 1/EndOfProduction
pieceOutOfGripper:
path: ns=2;s=Rollomatic/Robot/Configuration/LoadUnload/PieceOutOfGripper

# Additional tags from original script
partsProducedInLifetime:
path: ns=2;s=Rollomatic/Production/Statistics/PartsProducedInLifetime
# Additional condition monitoring tags for testing
energyConsumptionPhysical:
path: ns=2;s=Rollomatic/Monitoring/EnergyConsumption/ActiveEnergyConsumption
voltage:
path: ns=2;s=Rollomatic/Monitoring/EnergyConsumption/Voltage
coolantTempSensor:
path: ns=2;s=Rollomatic/Monitoring/Temperatures/Coolant
grindingZoneTempSensor:
path: ns=2;s=Rollomatic/Monitoring/Temperatures/GrindingZone
outsideAboveMachineTempSensor:
path: ns=2;s=Rollomatic/Monitoring/Temperatures/OutsideAbove
outsideBelowTempSensor:
path: ns=2;s=Rollomatic/Monitoring/Temperatures/OutsideBelow
# Variables - Transformation Section
variables:
# Standard MachineMetrics execution states
execution:
- source: machineStatus_tmp
- state:
- ACTIVE: this == 1 #1.000
- STOPPED: this == 3
- READY: true

# Part count from job manager (full parts)
mm-count:
- source: jobManagerProducedPieces
- value-increase
- expression: floor(this / 2)
- count

# Half part count tracking
half-mm-count:
- source: jobManagerProducedPieces
- expression: this
- value-increase
- count

# Robot loading mode mapping
robot-loading-mode:
- source: loadingmode
- state:
- MANUAL: this == 1
- SINGLE: this == 2
- FULL: this == 3

# Spindle rotation status
isrotating:
- source: is-rotating
- state:
- ON: this == true
- OFF: true

# Channel mode mapping
mode:
- source: channelmode
- state:
- AUTO: this == 0
- MDI: this == 1
- JOG: this == 2 or this == 3
- TEACH: this == 4
- REMOTE: this == 5
- REF: this == 6
- OTHER: this == 7

# Operation mode mapping
operation-mode:
- source: operationmode
- state:
- Manual: this == 0
- Automatic: this == 1
- Setup: this == 2
- Auto with manual intervention: this == 3
- Service: this == 4
- Other: this == 5

# Machine status detailed mapping
machineStatus:
- source: machineStatus_tmp
- state:
- Settings: this == 0
- Production: this == 1
- Shutdown: this == 2
- Alarm: this == 3
- Warmup: this == 4
- WarningStop: this == 5
- DryRun: this == 6
- Emergency: this == 7

# Optional stop state
optional-stop:
- source: optionalstop
- state:
- ON: this == true
- OFF: true

# Single block mode
singleblock:
- source: singlestep
- state:
- ON: this == true
- OFF: true

# Dry run mode
dry-run:
- source: dryrun
- state:
- ON: this == true
- OFF: true

# Stack light status mapping
greensignalon:
- source: greensignalon_raw
- state:
- ON: this == true
- OFF: true

yellowsignalon:
- source: yellowsignalon_raw
- state:
- ON: this == true
- OFF: true

redsignalon:
- source: redsignalon_raw
- state:
- ON: this == true
- OFF: true

# Output Section - Data Items
data-items:
- alerts
# Critical minimum requirements
- mm-count
- half-mm-count
- programname
- execution
- jobidentifier
- robot-loading-mode
- mode
- operation-mode
- optional-stop
- singleblock
- dry-run
- greensignalon
- yellowsignalon
- redsignalon
- partsproducedinlifetime
- piecestodo
- errorcode
- controlledSpeed
- cycleMaxLoad
- spindleOverride
- cncalarmtype
- runsCompleted
- partsProducedInLifetime
- numberInList
- runningCycleTime
- currentState
- blankLength
- shankDiameter
- toolDiameter
- cassetteCount
- holeUCount
- holeWCount
- loadToolCassetteIndex
- loadToolHoleU
- loadToolHoleW
- pieceOutOfGripper
- unloadBlankCassetteIndex
- unloadBlankHoleU
- unloadBlankHoleW
- distanceX
- distanceY
- distanceZ
- feedoverride
- iswarmup
- cycleTime
- endOfProduction
- jobManagerProducedPieces
- channelstate
- rapidoverride
- isrotating
- override
- powerOnDuration
- currentload
- machineStatus
- activeTool
- xTemp
- yTemp
- zTemp
- aTemp
- bTemp
- cTemp
- uTemp
- wTemp
- xwTemp
- cwTemp
- energyConsumption
- energyConsumptionPhysical
- voltage
- coolantTempSensor
- grindingZoneTempSensor
- outsideAboveMachineTempSensor
- outsideBelowTempSensor
- machineStatus_tmp

# Conditions - System Fault Monitoring
conditions:
system3:
code: ${errorcode}
message: ${message}
value:
FAULT: machineStatus_tmp == 3

Windows HMI Network Setup

If you are using OPC-UA / RConnect, the Windows HMI PC must have a network IP address accessible from the MachineMetrics edge device.

Option A — Static IP

On the Windows HMI:

  1. Open Control PanelNetwork and Sharing CenterChange adapter settings.
  2. Right-click the network adapter → Properties.
  3. Select Internet Protocol Version 4 (TCP/IPv4)Properties.
  4. Select Use the following IP address and enter a static IP, subnet mask, and gateway appropriate for your network.

Option B — DHCP

Follow the same steps as above, then:

  1. Select Obtain an IP address automatically.
  2. Note the assigned IP address for entry into MachineMetrics.

Once the HMI has a network IP, refer to the OPC-UA Connectivity Guide to complete the machine setup in MachineMetrics using port 8999.