Skip to main content

Haas Connectivity Guide


Overview

Haas Control

Haas CNC control panel. Haas machines connect via MTConnect (Next Generation controls) or Haas Serial/DPRNT (Classic controls), providing real-time production data and machine status.

MachineMetrics connects to Haas machines using two primary methods depending on your control type:

Control TypeConnectivity MethodPortHardware Required
Next Generation (2017+)MTConnect8082Ethernet only
Next Generation (2017+)Haas Serial (MDC)4001Ethernet only
Classic Control (pre-2017)Haas Serial (MDC)4001Moxa serial-to-Ethernet converter
Very Old (pre-2001)Digital I/ON/ALabJack I/O module, sensors, wiring

Recommended Approach:

  • Next Gen Controls: Use MTConnect (primary) + Haas Serial (secondary) for macro variables
  • Classic Controls: Use Haas Serial with Moxa converter
  • Pre-2001 Machines: Use Digital I/O (no Setting 143 available)

Determining Your Haas Control Type

Use these methods to identify which type of Haas control you have:

Visual Identification

Next Generation Control (2017+):

Haas Next Generation Control

Haas Next Generation control with modern touchscreen interface. Features graphical menus, network settings, and MTConnect capability.

Classic Control (pre-2017) with MDC:

Haas Classic Control with MDC

Haas Classic control with text-based interface. Uses Haas Serial (MDC) over RS-232 with Moxa converter.

Classic Control (showing I/O Settings):

Haas Classic I/O Settings

Haas Classic control showing Setting 143 (MACHINE DATA COLLECT) as ON/OFF toggle, indicating Classic control series.


Quick Identification Methods

Method 1: Visual Inspection

  • Modern touchscreen with graphical interface = Next Generation Control (2017+)
  • Text-based green/blue screen = Classic Control (pre-2017)
  • Large touch display with icons = Next Generation Control

Method 2: Check Operator's Manual

  • Cover states "Next Generation Control" → Use MTConnect
  • No "Next Generation" label → Likely Classic control

Method 3: Check Network Settings

  1. Press SETTINGS button
  2. Navigate to NETWORKWIRED CONNECTION
  3. Modern network interface with Ethernet settings = Next Gen
  4. No network section or basic interface = Classic

Method 4: Check Setting 143 (MACHINE DATA COLLECT)

  1. Press SETTINGS button
  2. Navigate to I/O or MISCELLANEOUS page
  3. Find Setting 143 - MACHINE DATA COLLECT
    • Numerical value (e.g., 4001): Next Gen Control → Can use MTConnect or Ethernet Serial
    • ON/OFF toggle: Classic Control → Use RS-232 Serial with Moxa converter
    • Not present: Very old machine → Use Digital I/O instead

Method 1: MTConnect (Next Generation Controls)

Best option for Next Gen Haas machines. Provides comprehensive data with no additional hardware.

Prerequisites

  • Haas machine with Next Generation control (2017+)
  • Ethernet connection capability
  • Network access between machine and Edge device
  • MTConnect enabled on machine (usually enabled by default)

Configure Haas Next Gen Control

Step 1: Enable MTConnect

  1. Press SETTINGS button

  2. Navigate to NETWORKWIRED CONNECTION

  3. Configure network settings:

    • IP Address: Set static IP or note DHCP address
    • Subnet Mask: Match your network (typically 255.255.255.0)
    • Gateway: Your network gateway
  4. Navigate to NETWORKMTCONNECT

  5. Verify settings:

    • MTConnect: ON
    • Port: 8082 (default)
    • Adapter: AGENT (default)

Step 2: Test MTConnect Connection

From a computer on the same network, open a web browser:

http://[MACHINE-IP]:8082/current

Replace [MACHINE-IP] with your machine's IP address.

Expected Response: You should see XML data showing machine information and data items.

Add MTConnect Adapter in MachineMetrics

  1. Log into MachineMetrics

  2. Go to Assets → Machines

  3. Click Add Machine

  4. Enter machine details:

    • Machine Name: (e.g., "Haas VF-2")
    • Make: Haas
    • Model: (e.g., "VF-2")
    • Edge Device: Select your Edge
  5. Click Next

  6. Select adapter type: MTConnect Agent

  7. Enter connection details:

    • Connection address: [IP-ADDRESS]:[PORT] (e.g., 10.26.5.142:8082)
      • Format is IP address followed by colon and port number
      • Port 8082 is the standard MTConnect port for Haas Next Gen
    • Adapter IP/Port: Will auto-populate (e.g., supervisor:8022)
    • Adapter version: Will auto-populate after connection
  8. Click Test Connection

  9. If successful, click Save

Example:

  • Connection address: 192.168.1.100:8082
  • This connects to machine at IP 192.168.1.100 on MTConnect port 8082

Available MTConnect Data Items

Next Gen Haas machines provide via MTConnect:

  • Execution State (execution) - ACTIVE, READY, INTERRUPTED, etc.
  • Controller Mode (mode) - AUTO, MANUAL, MDI, JOG, etc.
  • Program Name (program)
  • Tool Number (tool)
  • Spindle Speed (Sspeed)
  • Spindle Load (Sload)
  • Axis Positions (Xabs, Yabs, Zabs, etc.)
  • Feed Rate (Fovr, path_feedrate)
  • Part Count (PartCountAct)
  • Alarms (message)
  • And many more...

Method 2: Haas Serial (Classic Controls)

Haas Serial uses the MDC (Machine Data Collection) protocol, also known as DPRNT, to communicate with Haas machines.

When to Use Haas Serial

Classic Controls (pre-2017):

  • This is your PRIMARY and ONLY connection method
  • Classic controls do not have MTConnect
  • Uses RS-232 serial port with Moxa serial-to-Ethernet converter
  • Provides execution state, program data, and system variables

Next Gen Controls (2017+):

  • Use MTConnect as your PRIMARY connection (see Method 1)
  • Only add Haas Serial as SECONDARY if you need specific macro/system variables not available via MTConnect
  • Next Gen Haas Serial uses Ethernet directly (no Moxa needed)
  • Most customers only need MTConnect for Next Gen machines

⚠️ Important: If you have a Next Gen control, start with MTConnect (Method 1). Only add Haas Serial if MTConnect doesn't provide the specific data you need.


Two Physical Connection Types

Connection TypeControl TypePrimary or SecondaryPhysical HardwarePort
RS-232 (via Moxa)Classic (pre-2017)Primary - your only optionRS-232 serial cable + Moxa NPort 5110 converter4001 (on Moxa)
Ethernet DirectNext Gen (2017+)Secondary - only for macro/system variablesEthernet cable only4001

Both use the same Haas MDC protocol, just different physical connections.


Option A: Classic Controls - Haas Serial via RS-232 (Primary Connection)

For Classic Haas controls (pre-2017) - This is your primary and only connection method.

Prerequisites

  • Haas machine with Classic control (pre-2017)
  • Setting 143 available (ON/OFF type)
  • RS-232 serial port on machine (typically DB-9 connector on control panel)
  • Moxa NPort 5110 serial-to-Ethernet converter (provided by MachineMetrics)
  • Serial cable (DB-9 female to DB-9 male)
  • Network access between Moxa and Edge device

Configure Haas Classic Control

Step 1: Set RS-232 Parameters

  1. Press SETTINGS button
  2. Navigate to I/O page
  3. Configure RS-232 settings:
    • Baud Rate: 38400
    • Parity: EVEN
    • Stop Bits: 1
    • Data Bits: 7

Haas I/O Settings Screen Example of Haas I/O settings page showing RS-232 configuration and Setting 143

Step 2: Enable Machine Data Collect

  1. Navigate to I/O or MISCELLANEOUS page
  2. Find Setting 143 - MACHINE DATA COLLECT
  3. Set to ON

Step 3: Connect Hardware

  1. Connect DB-9 serial cable from machine's RS-232 port to Moxa converter
  2. Connect Ethernet cable from Moxa to your network switch
  3. Power on Moxa converter
  4. Note Moxa IP address (check label or use Moxa discovery tool)

Haas Serial Port Location Serial Port #1 on the side of the machine is a female DB-25 (25-pin) serial port. Plug the Moxa Box serial-to-ethernet converter in here (port 2 is not used for data collection).

Configure Moxa NPort Converter

  1. Open web browser and navigate to Moxa IP address

  2. Login (default: admin/admin or root/root)

  3. Configure serial port (typically Port 1):

    • Baud Rate: 38400
    • Data Bits: 7
    • Stop Bits: 1
    • Parity: Even
    • Flow Control: None
    • Operation Mode: TCP Server
    • TCP Port: 4001
  4. Save settings and reboot Moxa

Add Haas Serial Adapter in MachineMetrics

  1. Go to Assets → Machines

  2. Click Add Machine

  3. Select adapter type: Haas Serial

  4. Enter connection details:

    • Connection address: [MOXA-IP]:[PORT] (e.g., 10.26.5.200:4001)
      • Use Moxa converter IP address (not machine IP)
      • Port 4001 is configured on the Moxa device
  5. Click Test Connection

  6. If successful, click Save

Example:

  • Connection address: 192.168.1.200:4001
  • This connects to Moxa converter at IP 192.168.1.200 which is connected to the machine via RS-232

Option B: Next Gen Controls - Haas Serial via Ethernet (Secondary Connection Only)

For Next Gen machines (2017+) when you need macro/system variables not available via MTConnect.

⚠️ Important: This should only be used as a secondary adapter alongside MTConnect. MTConnect must be your primary connection for Next Gen controls.

When to Use This

Only add Haas Serial to a Next Gen machine if:

  • You need specific macro variables (e.g., #3901, #3027, #13013)
  • You need system variables not exposed by MTConnect
  • MTConnect is already configured as your primary adapter

If you just need basic machine data, use MTConnect only.

Configure Haas Next Gen Control

  1. Press SETTINGS button
  2. Navigate to I/O or MISCELLANEOUS page
  3. Find Setting 143 - MACHINE DATA COLLECT
  4. Set value to 4001 (port number)

Add Haas Serial Adapter in MachineMetrics

  1. Go to Assets → Machines

  2. Select your existing Haas machine (with MTConnect already configured)

  3. Click Add Secondary Adapter

  4. Select adapter type: Haas Serial

  5. Enter connection details:

    • Connection address: [IP-ADDRESS]:[PORT] (e.g., 10.26.5.142:4001)
      • Use same machine IP as MTConnect
      • Port 4001 is the Haas Serial/MDC port
  6. Click Test Connection

  7. If successful, click Save

Example:

  • Connection address: 192.168.1.100:4001
  • This connects to machine at IP 192.168.1.100 on Haas Serial port 4001
  • MTConnect on same machine uses port 8082

Macro and System Variables

Haas machines support reading macro and system variables via the Serial (DPRNT/MDC) connection. This is useful for accessing data not available via MTConnect, such as specific timers, counters, or custom machine settings.

Available Variable Types

Haas machines provide hundreds of macro and system variables. Below is a comprehensive reference of available system and macro variables that can be read from Haas NGC controllers.

Complete Haas System & Macro Variables Reference

NGC VariableLegacy VariableUsage
#1-#33#1-#33Macro call arguments
#10000-#10149#100-#149General-purpose variables saved on power off
#10150-#10199#150-#199Probe values (if installed)
#10200-#10399N/AGeneral-purpose variables saved on power off
#10400-#10499N/AGeneral-purpose variables saved on power off
#10500-#10549#500-#549General-purpose variables saved on power off
#10550-#10599#550-#599Probe calibration data (if installed)
#10600-#10699#600-#699General-purpose variables saved on power off
#10700-#10799N/AGeneral-purpose variables saved on power off
#700-#749#700-#749Hidden variables for internal use only
#709#709Used for Fixture Clamp Input. Do not use for general purpose.
#10800-#10999#800-#999General-purpose variables saved on power off
#11000-#11063N/A64 discrete inputs (read only)
#1064-#1068#1064-#1068Maximum axis loads for X, Y, Z, A, and B axes
#1080-#1087#1080-#1087Raw analog to digital inputs (read only)
#1090-#1098#1090-#1098Filtered analog to digital inputs (read only)
#1098#1098Spindle load with Haas vector drive (read only)
#1264-#1268#1264-#1268Maximum axis loads for C, U, V, W, and T-axes
#1601-#1800#1601-#1800Number of flutes on tools #1 through 200
#1801-#2000#1801-#2000Maximum recorded vibrations of tools 1 through 200
#2001-#2200#2001-#2200Tool length offsets
#2201-#2400#2201-#2400Tool length wear
#2401-#2600#2401-#2600Tool diameter/radius offsets
#2601-#2800#2601-#2800Tool diameter/radius wear
#3000#3000Programmable alarm
#3001#3001Millisecond timer
#3002#3002Hour timer
#3003#3003Single block suppression
#3004#3004Override [FEED HOLD] control
#3006#3006Programmable stop with message
#3011#3011Year, month, day
#3012#3012Hour, minute, second
#3020#3020Power on timer (read only)
#3021#3021Cycle start timer
#3022#3022Feed timer
#3023#3023Present part timer (read only)
#3024#3024Last complete part timer (read only)
#3025#3025Previous part timer (read only)
#3026#3026Tool in spindle (read only)
#3027#3027Spindle RPM (read only)
#3028#3028Number of pallets loaded on receiver
#3030#3030Single block
#3032#3032Block delete
#3033#3033Opt stop
#3034N/ASafe Run (read only)
#3196#3196Cell safe timer
#3201-#3400#3201-#3400Actual diameter for tools 1 through 200
#3401-#3600#3401-#3600Programmable coolant positions for tools 1 through 200
#3901#3901M30 count 1
#3902#3902M30 count 2
#4001-#4021#4001-#4021Previous block G-code group codes
#4101-#4126#4101-#4126Previous block address codes
#5001-#5006#5001-#5006Previous block end position
#5021-#5026#5021-#5026Present machine coordinate position
#5041-#5046#5041-#5046Present work coordinate position
#5061-#5069#5061-#5069Present skip signal position -X, Y, Z, A, B, C, U, V, W
#5081-#5086#5081-#5086Present tool offset
#5201-#5206#5201-#5206G52 work offsets
#5221-#5226#5221-#5226G54 work offsets
#5241-#5246#5241-#5246G55 work offsets
#5261-#5266#5261-#5266G56 work offsets
#5281-#5286#5281-#5286G57 work offsets
#5301-#5306#5301-#5306G58 work offsets
#5321-#5326#5321-#5326G59 work offsets
#5401-#5500#5401-#5500Tool feed timers (seconds)
#5501-#5600#5501-#5600Total tool timers (seconds)
#5601-#5699#5601-#5699Tool life monitor limit
#5701-#5800#5701-#5800Tool life monitor counter
#5801-#5900#5801-#5900Tool load monitor maximum load sensed so far
#5901-#6000#5901-#6000Tool load monitor limit
#6001-#6999#6001-#6999Reserved. Do not use.
#6198#6198NGC/CF flag
#7001-#7006#7001-#7006G110 (G154 P1) additional work offsets
#7021-#7026#7021-#7026G111 (G154 P2) additional work offsets
#7041-#7386#7041-#7386G112-G129 (G154 P3-P20) additional work offsets
#7501-#7506#7501-#7506Pallet priority
#7601-#7606#7601-#7606Pallet status
#7701-#7706#7701-#7706Part program numbers assigned to pallets
#7801-#7806#7801-#7806Pallet usage count
#8500#8500Advanced Tool Management (ATM) group ID
#8501#8501ATM percent of available tool life of all tools in the group
#8502#8502ATM total available tool usage count in the group
#8503#8503ATM total available tool hole count in the group
#8504#8504ATM total available tool feed time (in seconds) in the group
#8505#8505ATM total available tool total time (in seconds) in the group
#8510#8510ATM next tool number to be used
#8511#8511ATM percent of available tool life of the next tool
#8512#8512ATM available usage count of the next tool
#8513#8513ATM available hole count of the next tool
#8514#8514ATM available feed time of the next tool (in seconds)
#8515#8515ATM available total time of the next tool (in seconds)
#8550#8550Individual tool ID
#8551#8551Number of flutes of tools
#8552#8552Maximum recorded vibrations
#8553#8553Tool length offsets
#8554#8554Tool length wear
#8555#8555Tool diameter offsets
#8556#8556Tool diameter wear
#8557#8557Actual diameter
#8558#8558Programmable coolant position
#8559#8559Tool feed timer (seconds)
#8560#8560Total tool timers (seconds)
#8561#8561Tool life monitor limit
#8562#8562Tool life monitor counter
#8563#8563Tool load monitor maximum load sensed so far
#8564#8564Tool load monitor limit
#9000#9000Thermal comp accumulator
#9000-#9015#9000-#9015Reserved (duplicate of axis thermal accumulator)
#9016#9016Thermal spindle comp accumulator
#9016-#9031#9016-#9031Reserved (duplicate of axis thermal accumulator from spindle)
#10000-#10999N/AGeneral purpose variables
#11000-#11255N/A256 discrete inputs (read only)
#12000-#12255N/ADiscrete outputs
#13000-#13063N/AFiltered analog to digital inputs (read only)
#13013N/ACoolant level
#14001-#14006N/AG110 (G154 P1) additional work offsets
#14021-#14026N/AG110 (G154 P2) additional work offsets
#14041-#14386N/AG110 (G154 P3-G154 P20) additional work offsets
#14401-#14406N/AG110 (G154 P21) additional work offsets
#14421-#15966N/AG110 (G154 P22-G154 P99) additional work offsets
#20000-#29999N/ASettings
#30000-#39999N/AParameters
#32014N/AMachine Serial Number
#50001-#50200N/ATool Type
#50201-#50400N/ATool material
#50401-#50600N/ATool Offset Point
#50601-#50800N/AEstimated RPM
#50801-#51000N/AEstimated Feedrate
#51001-#51200N/AOffset Pitch
#51201-#51400N/AActually VPS Estimated RPM
#51401-#51600N/AWork Material
#51601-#51800N/AVPS Feedrate
#51801-#52000N/AApproximate length
#52001-#52200N/AApproximate diameter
#52201-#52400N/AEdge Measure height
#52401-#52600N/ATool Tolerance
#52601-#52800N/AProbe Type

Bold entries indicate commonly used variables for production monitoring.

Note: Variable addresses for older Haas controllers can be found in the "Legacy Variable" column. NGC (Next Generation Control) variables are shown in the first column.

Configure Macro Variables in Adapter

To read macro variables, add a macros section to your Haas Serial adapter configuration:

{
"adapter": {
"mdcEnabled": 1
},
"macros": {
"opt-stop": 3033,
"last-m-code": 4113,
"part-timer": 3023,
"spindle-rpm": 3027,
"coolant-level": 13013,
"g54-x-offset": 5221,
"tool-1-life": 5701
}
}

How to Configure:

  1. In MachineMetrics, go to Assets → Machines
  2. Select your Haas machine
  3. Click on the Haas Serial adapter
  4. Add the JSON configuration above in the adapter settings JSON field
  5. Customize the macro names and variable numbers as needed
  6. Save changes

Macro Configuration Format:

  • Key (left side): Data item name that will appear in MachineMetrics (use lowercase with hyphens)
  • Value (right side): Haas macro variable number

Common Useful Variables:

{
"adapter": {
"mdcEnabled": 1
},
"macros": {
"opt-stop-enabled": 3033,
"block-delete-enabled": 3032,
"single-block-enabled": 3030,
"m30-count": 3901,
"part-timer-seconds": 3023,
"last-part-timer-seconds": 3024,
"current-tool": 3026,
"spindle-rpm-actual": 3027,
"power-on-hours": 3020,
"cycle-start-timer": 3021,
"feed-timer": 3022,
"coolant-level-percent": 13013
}
}

These macro variables will appear as data items in MachineMetrics alongside other machine data.

Tool Life Monitoring Example:

For tracking tool life counters and presets, use the tool life monitoring variables:

{
"adapter": {
"mdcEnabled": 1
},
"macros": {
"TLM_1_COUNT": 5701,
"TLM_1_PRESET": 5601,
"TLM_2_COUNT": 5702,
"TLM_2_PRESET": 5602,
"TLM_3_COUNT": 5703,
"TLM_3_PRESET": 5603,
"TLM_4_COUNT": 5704,
"TLM_4_PRESET": 5604,
"TLM_5_COUNT": 5705,
"TLM_5_PRESET": 5605
}
}

Variable Explanation:

  • #5601-#5699: Tool life monitor limit (preset/maximum)
  • #5701-#5800: Tool life monitor counter (current usage)

Example:

  • TLM_1_COUNT (Macro #5701) = Current count for Tool 1
  • TLM_1_PRESET (Macro #5601) = Preset limit for Tool 1

If COUNT = 150 and PRESET = 500:

  • Tool 1 is at 30% used (70% remaining)

Note: For detailed tool life monitoring setup and configuration, see the Tool Life Monitoring Guide.


Using Both MTConnect and Serial Together

For Next Gen Haas machines, the recommended setup is to use MTConnect as the primary adapter and Haas Serial as a secondary adapter to access macro variables.

Why Use Both?

  • MTConnect provides comprehensive machine data (execution, program, speeds, positions, etc.)
  • Haas Serial provides access to macro variables and system variables not exposed via MTConnect
  • Combine to get the most complete data set

Setup Process

Step 1: Add MTConnect Adapter (Primary)

  1. Go to Assets → Machines
  2. Click Add Machine
  3. Configure as MTConnect (see Method 1 above)
  4. Connect to port 8082
  5. Save and verify data collection

Step 2: Add Haas Serial Adapter (Secondary)

  1. On the same machine, click Add Secondary Adapter
  2. Select adapter type: Haas Serial
  3. Enter connection details:
    • Connection address: [MACHINE-IP]:4001 (e.g., 10.26.5.142:4001)
      • Use same machine IP as MTConnect, but port 4001
  4. Enable Setting 143 on machine (set to 4001)
  5. Add macro variables configuration (JSON)
  6. Save adapter

Step 3: Create Transform to Prevent Conflicts

The Haas Serial connection may provide a RunStatus data item that conflicts with MTConnect's execution data item. Use a transform adapter to filter it out.

Create Transform Adapter:

  1. On the same machine, click Add Secondary Adapter
  2. Select adapter type: Transform
  3. Add this configuration:
version: 2

# Do NOT pass all data through automatically (use false to control what passes)
mtconnect-passthrough: false

# Deny the RunStatus from Haas Serial to prevent conflict with MTConnect execution
deny-keys:
- RunStatus

# Pull data items from parent adapters (MTConnect and Haas Serial)
declare-keys:
- execution # From MTConnect (primary execution state)
- program # From MTConnect
- tool # From MTConnect
- Sspeed # From MTConnect (spindle speed)
- opt-stop-enabled # From Haas Serial (macro variable)
- part-timer-seconds # From Haas Serial (macro variable)
- spindle-rpm-actual # From Haas Serial (macro variable)
- coolant-level-percent # From Haas Serial (macro variable)

# Output all declared data items
data-items:
- execution
- program
- tool
- Sspeed
- opt-stop-enabled
- part-timer-seconds
- spindle-rpm-actual
- coolant-level-percent

Important:

  • mtconnect-passthrough: false means only declared keys are passed through
  • mtconnect-passthrough: true means all parent data passes through automatically (in addition to declared keys)
  • Use false when you want explicit control over which data items are output
  1. Save transform adapter

Result:

  • MTConnect provides execution state (primary)
  • Haas Serial provides macro variables
  • RunStatus is blocked to prevent conflicts
  • All data flows to MachineMetrics cleanly

Data Flow Diagram

Haas Next Gen Machine

├─→ Port 8082 (MTConnect)
│ └─→ execution, program, tool, speeds, positions, etc.

└─→ Port 4001 (Haas Serial/MDC)
└─→ opt-stop, part-timer, macro variables

└─→ Transform Adapter
└─→ Denies: RunStatus
└─→ Passes: macro variables

Final Output: Complete machine data from both sources

Troubleshooting

MTConnect Issues

Problem: Cannot reach MTConnect on port 8082

Solutions:

  • Verify machine has Next Gen control
  • Check MTConnect is enabled in machine settings
  • Verify IP address is correct
  • Test from browser: http://[MACHINE-IP]:8082/current
  • Check firewall allows port 8082
  • Ensure machine and Edge are on same network or routable

Problem: MTConnect shows "UNAVAILABLE" for many data items

Solutions:

  • Machine may be powered off or in alarm state
  • Wait for machine to fully boot up
  • Clear any active alarms on machine
  • Cycle power on machine control

Problem: Part count not incrementing

Solutions:

  • Check Setting 57 (parts counter reset) on machine
  • Verify machine is actually counting parts on screen
  • Part counter may need to be configured in machine M-code program
  • See Haas manual for part counter setup

Haas Serial Issues

Problem: No data from Haas Serial connection

Solutions:

  • Next Gen: Verify Setting 143 is set to 4001 (not ON/OFF)
  • Classic: Verify Setting 143 is ON
  • Check IP address and port 4001 are correct
  • Test connection with telnet: telnet [IP] 4001
  • Verify serial parameters match (38400, Even, 7, 1)
  • Classic only: Check Moxa converter is powered and connected

Problem: Moxa converter not responding (Classic controls)

Solutions:

  • Verify Moxa has power (LED should be lit)
  • Check Ethernet cable connection to Moxa
  • Use Moxa Device Search Utility to find Moxa IP
  • Reset Moxa to factory defaults (hold reset button 10 seconds)
  • Verify Moxa serial port settings match machine settings

Problem: Data comes through but looks garbled

Solutions:

  • Serial parameters mismatch - verify all settings match exactly
  • Check cable is not damaged
  • Verify baud rate is 38400 on both machine and Moxa/adapter
  • Ensure parity is EVEN (not NONE or ODD)
  • Verify data bits are 7 (not 8)

Problem: Macro variables show "UNAVAILABLE"

Solutions:

  • Check JSON configuration syntax is correct
  • Verify macro variable numbers are valid (see reference)
  • Some variables are read-only and may show UNAVAILABLE if condition not met
  • Test with common variables like #3027 (spindle RPM) to verify connection

Connection Conflicts

Problem: Both MTConnect and Haas Serial show execution state but they conflict

Solution:

  • Use transform adapter to deny RunStatus from Haas Serial
  • Let MTConnect provide execution as primary state
  • See "Using Both MTConnect and Serial Together" section above

Problem: Duplicate data items from MTConnect and Serial

Solution:

  • Use transform adapter with deny-keys to block duplicates
  • Decide which source is authoritative for each data item
  • Keep MTConnect data for standard items, Serial only for macros

Additional Resources

Official Documentation

  • Haas Operator's Manual - System Variables Reference (included with machine)

Haas Resources

  • Haas Operator's Manual (included with machine)
  • Haas Setting 143 documentation
  • Haas MTConnect implementation guide

Hardware Resources

  • Hardware Buying Guide - Order Moxa converters and Edge devices
  • Moxa NPort 5110 User Manual
  • Moxa Device Search Utility (Windows software)

Quick Reference: Haas Connection Decision Tree

Do you have a Haas machine?

├─→ YES: What control type?
│ │
│ ├─→ Next Generation Control (2017+)
│ │ │
│ │ ├─→ Primary: MTConnect (port 8082)
│ │ │ └─→ Provides: execution, program, speeds, positions, alarms
│ │ │
│ │ └─→ Secondary (optional): Haas Serial (port 4001)
│ │ └─→ Provides: macro variables, system variables
│ │ └─→ Add transform to deny RunStatus
│ │
│ ├─→ Classic Control (pre-2017)
│ │ └─→ Haas Serial via RS-232 + Moxa converter
│ │ └─→ Setting 143 ON, 38400 baud, Even parity
│ │ └─→ Configure macro variables for additional data
│ │
│ └─→ Very Old (no Setting 143)
│ └─→ Use Digital I/O connectivity instead

└─→ NO: See other connectivity guides

Need help? Contact MachineMetrics Support at support@machinemetrics.com or ask Max AI in-app.