News CNCnetPDM About us Support  
Device Driver | MTConnect | Support | inventcom



The CNCnetPDM MTConnect device driver allows monitoring of machine and process data in near real time from controllers equipped with an MTConnect Adapter, either built-in or on a separate PC.

CNCnetPDM MTConnect IoT Interfaces

MTConnect IoT Interfaces



The CNCnetPDM MTConnect device driver enables you to

  • Acquire data simultaneously from multiple machines by using a single instance of CNCnetPDM
  • Mix devices with different MTConnect Adapters within a single instance of CNCnetPDM
  • Standardize output of MTConnect enabled controllers and other controller types
  • Eliminate the need to install and maintain a separate MTConnect Agent program per-machine at the PC
  • Adjust output items and tag tames on a per-machine basis according to your needs
  • Standardize MTConnect Agent configuration
  • Reduce costs for implementation and maintenance by using one solution for all devices


Please setup your controller and the PC properly and make sure that you can connect to it and get data with our MTConnect Agent Tester.

  • Important note: MTConnect uses unsolicited messaging by design. If you already have CNCnetPDM running on your PC with a device driver that works with solicited messaging (e.g. Fanuc, Heidenhain) you have to create a separate instance of the service for MTConnect.



This device driver requires at least Version of CNCnetPDM and also works with a free license. However, in this mode the driver only outputs the first two items you defined in section [MTC TAG NAMES]. With a valid license you are able to output up to 160 items per controller, see licensing for details.


Edit CNCnetPDM.ini (or CNCnetPDM+Instance.ini) with a text editor and modify it as follows, leave all other values at their default:

Section [GENERAL]:

  • AcquisitionMethod = 2
    This driver uses unsolicited (event driven) communication.
  • PollInterval = 10
    Define the interval (number of seconds) for checking if the device is connected.
  • ReconnectAfter = 3
    Define after how many successful connection checks CNCnetPDM should try to reconnect to the controllers MTConnect Adapter if the device changed its state from disconnected to connected. As the machine needs some time to start up the combination of PollInterval and ReconnectAfter should be long enough e.g. 10 x 3 = 30 sec. For older machines increase this value.
  • CollectStates = 0
  • CollectCounters = 0

For initial testing its recommended to set CollectStates and CollectCounters to 0. If you set them to 1 please make sure that you have matching tag names for OEE device states and part counter set up in the respective machine INI file.

Section [RS232]:

  • If you identify your controller by IP address change it from to its correct address e.g.
  • If you identify your controller by DNS-Hostname change it from localhost to its correct value e.g. MAZAK01
  • Change 0 after IP address to the TCP port number your controller uses for communication (Default: 7878)
  • Change the name of the device driver from device.dll to mtcclient.dll
  • By changing the number before mtcclient.dll you can instruct CNCnetPDM to automatically generate a device INI file suitable for your controller:
    0 = Fanuc
    1 = Mazak
    2 = Okuma Standard Lathe
    3 = Okuma 2-Sides lathe
    4 = Okuma Machining Center
    5 = Okuma Grinder.

A correct example for a Mazak (=1) machine would look like:


1 = 1000;19200;8;N;1;MAZAK #1;;7878;0;MAZAK01;0;0;none;none;1;mtcclient.dll
  • Save CNCnetPDM.ini


  • Start CNCnetPDM, foreground program is sufficient (Start thread)
  • CNCnetPDM automatically copies the original mtcclient.dll and inserts the machine number as configured in the INI file, e.g. mtcclient_1000.dll for machine 1000.
  • In addition an INI file with the same name is automatically created by the device driver, e.g. mtcclient_1000.ini for your first machine.
  • Double click CNCnetControl, if your device number is 1000 and the device name is MAZAK #1 the output should be similar to the one below:

FIG 1:    CNCnetControl MTConnect device driver

Here the machine (1) shows up as connected (2) which is good. If you receive data from the controllers MTConnect Adapter you can see it on the right side (3).

The line starting with O contains tag name | value pairs from valid tag names as defined in the INI file of the device. If you didn’t change the INI file you get something like the following:

1000 12/03/2023 05:05:16 PM O mode| AUTOMATIC| 10000000009

Tag name and value are delimited by a pipe ‘|’ symbol. This allows CNCnetPDM to create MTConnect, OPC UA server or database output for every tag | value pair.

To setup a CNCnetPDM background service see: Setup CNCnetPDM as a background service


This device driver enables to dynamically modify, enable or disable tags that should be acquired from the controller. It also allows to define the frequency and content of ping commands that have to be sent to the Adapter. Definition of a tag name for availability enables the driver to determine if the controller connected to its Adapter is up or down. By setting a tag name and possible values for OEE device states you can output numeric values for these states. Setup of a part counter tag name allows incremental or cumulative part counting in CNCnetPDM.

Section [GENERAL]

Contains information about the 'Ping interval' in seconds (default 10) and the 'Ping command' (default ‘* PING’) to be sent to the Adapter.

Entry 'Limit speed' (default 1) allows you to reduce the number of CNCnetPDM read events to 1 per second without loosing data received from the machine. This is highly recommended for MTC Adapters that send new data packets in high frequency down to milliseconds to avoid performance issues and service crashes. Setting 'Limit speed' to 0 disables this feature.


Here you can define and limit tags to be acquired from the device. Valid tags are identified by their name and have to be delimited with pipe ‘|’ characters. The number of predefined tags depends on the controller type you set in CNCnetPDM.INI, Fanuc, Mazak or Okuma. Maximum = 160.


Allows to define a tag name that should be used to determine if the controller connected to its Adapter is up or down (default ‘avail’). MTC Adapters usually provide this tag. For Adapters that do not output this tag you can use any tag name that changes to ‘UNAVAILABLE’ if the controller goes down f.i. ‘execution’.


Contains a tag name (Fanuc: ‘execution’) and its possible values for states Producing (2) (default ‘active’), Manual (3) (default ‘stopped’) and Interrupted (4) (default ‘interrupted’). CNCnetPDM automatically reports (0) for devices that are not reachable at all and (1) for reachable devices where the Adapter does not respond.


Here you can define which tag name (Fanuc: ‘part_count’) outputs numeric part counts. This enables you to use CNCnetPDM’s cumulative or incremental part counting features that allow detection of part counter reset operations at the controller.

Sections [ERROR1-3]

In these sections you can define tag names and values that indicate a faulted OEE machine state. If, for example the emergency button at the controller is pressed the adapter outputs tag 'estop' with value 'triggered'. If you define this tag name and its value in one of the error sections the device driver outputs machine state 5 in case they are received.

  • Note: To change the content of this INI file while CNCnetPDM is running open it with a text editor such as notepad, make the desired changes and save the file. To apply the changes immediately you can click on the machine in CNCnetControl on the left side followed by clicking buttons ‘Close’ and ‘Open’ above the section ‘Devices’.


  • The device driver writes a log file entry for any communication issue to the log file of the device. The file can be found in subdirectory \log of your CNCnetPDM program folder. The file format for the log file is log_ + device number + _ + date.txt. Please check this file first if you observe an issue.

  • If the machine shows a red icon, state disconnected the machine is not reachable at all. This has nothing to do with the device driver, the controller is switched off, it’s a network issue, DNS Hostname or IP Address is wrong. With CollectStates = 1 set in CNCnetPDM.ini you get output E 0 in regular intervals in this case.

  • If the machine also shows a red icon, state disconnected but you do not see any output even there is activity at the controller the machine is reachable but the MTConnect device driver is not able to connect to the Adapter at the controller. In this case, check your controller setup and the parameters used in section [RS232] of CNCnetPDM.ini. Please use the tool MTConnect Agent Tester to check if you are able to connect to the Adapter and get data. With CollectStates = 1 set in CNCnetPDM.ini you get output E 1 in regular intervals in this case.

  • If you do not get any tag data please make sure that entries CollectOrders, CollectQuality and CollectFeeder are set to 1 in section [General] of CNCnetPDM.ini.

  • If specific tag names are not output check first with the MTConnect Agent Tester that you get output. Then check if the tag names sent by your Adapter are included in section [MTC TAG NAMES].

  • In case you have machines connected that send new data packets in high frequency and you experience performance issues or occasional service restarts make sure that 'Limit speed' in section [GENERAL] is set to 1.


If you already have a previous version of the driver installed and would like to upgrade to the most recent version proceed as follows:

  1. Stop any CNCnetPDM background service or foreground program that uses the device driver.
  2. Extract mtcclient.dll from into the folder where you have CNCnetPDM installed, overwrite the existing file.
  3. Delete ALL mtcclient_NNNN.dll (NNNN = machine number) files. If you already have created adapted INI files for specific devices do NOT delete the mtcclient_NNNN.ini files.
  4. After restarting CNCnetPDM upgraded device driver versions for all machines are automatically created.

Privacy notice

This website uses cookies. By continuing to use it you agree to our privacy policy.

Support | MTConnect | Release Notes

(11/19/2023) We released an updated version of our CNCnetPDM IIoT Adapter for machines equipped with MTConnect Adapters that adds new features and enhances compatibility with MS... [read more]
Support | MTConnect | Release Notes

Support | MTConnect | Adapter

The CNCnetPDM MTConnect Adapter provides a powerful Application Program Interface (API) that enables bidirectional communication between manufacturing devices connected to... [read more]
Support | MTConnect | Adapter

Support | MTConnect | Open Source Client C-Sharp

This article shows you how to create and use a C# socket client application that enables you to access CNCnetPDM and read/write data from/to your machines. The client uses... [read more]
Support | MTConnect | Open Source Client C-Sharp
Modified: 2023-12-07