This highly configurable device driver for CNCnetPDM enables you to acquire and output all items that can be read from Mitsubishi CNC controllers on machines other than from Citizen or Mazak. Here you can find a list of sections with all possible items that you can use with the driver: Sections
You can dynamically define your own set of items (up to 30) that can be enabled and disabled on a per machine basis by an INI file that is automatically created for each machine configured. This INI file also allows you to define your own names for every signal.
Make sure that you have a connection from your PC to the machine and get data, use the MitsubishiM70M80 utility to do so. Please also open port 683 in your Firewall.
To directly read/write data from/to machines with Mitsubishi controllers connected to CNCnetPDM with your applications you can use our free Open Source Client (C-Sharp)
FIG 1: Mitsubishi M700 CNC
This device driver requires the most recent version of CNCnetPDM and also works with a free license. However, in this mode you only get output for the first item configured in your INI file. With a valid license you are able to output the result of up to 30 functions per reading cycle, see licensing for details.
Download the Mitsubishi driver, extract all content of mitsubishi_dll.zip into the folder where you have CNCnetPDM installed.
Edit CNCnetPDM.ini and add a new device as described in the quick start guide point 6. If you already have an entry in section [RS232] for a machine with a Mitsubishi controller you can simply copy and paste this line and change its content. You may comment out the previous entry by prepending a semicolon ‘;’ if it’s the same machine.
Change the line as follows:
FIG 2: Configure device Mitsubishi in CNCnetPDM.ini
For Mitsubishi controllers the following 3 parameters are important
Right to the IP Address of the controller enter number 683 (=port)
Right to the DNS Hostname of your machine enter the Mitsubishi number as configured, see section ‘MITSUBISHI SETUP’.
Change the driver name to mitsubishi.dll
Extract all contents of mitsubishi_dll.zip to the directory where CNCnetPDM is installed.
As the driver identifies and accesses controllers by using machine numbers the first thing you have to do is to edit the configuration file melcfg.ini.
Mitsubishi machine numbers are defined in sections, one for each device. The machine number is the numeric part after Machine, e.g. [Machine01] = 1. Note: The second part of this numeric value uses hexadecimal notation from 1 to F, e.g. 01 = 1 and 0F = 15, remember your math lessons.
If you’re working with one machine it is recommended to leave section [Machine01] as it is. Only in case it doesn’t work you can change the value for Controller from M8NX to NCXJ, NCXK, M6B, NX or M7NX.
It is necessary to adjust section [HOSTS] according to your network configuration e.g. TCP1=192.168.100.1,683 means that the IP Address of your controller is 192.168.100.1 683 after the comma is the port to be used to access the controller, do not change that.
For additional machines you have to copy and paste the whole section [Machine01], then change its name e.g. [Machine02] and Device= to a different device in section [HOSTS] e.g. Device=TCP2. In section [HOSTS] you have to add a new device e.g. TCP2=192.168.100.2,683.
Start CNCnetPDM, foreground program is sufficient (Start thread)
CNCnetPDM automatically copies the original mitsubishi.dll and appends the machine number as configured in the INI file, e.g. mitsubishi_1000.dll for machine 1000.
In addition an INI file with the same name is created by the device driver, e.g. mitsubishi_1000.ini for your first machine.
Double click CNCnetControl, if your device number is 1000 and the device name is MITSUBISHI #1 the output should be similar to the one below:
FIG 3: CNCnetControl (Mitsubishi)
The machine (1) shows up as connected (2) which is good. On the right side (3) you see the acquired data:
The line starting with O contains most of items defined in the INI file of the device (e.g. Mitsubishi_1000.ini). If you didn’t change the ini file you get something like the following:
Every item has a description followed by its value. All descriptions and values are delimited by pipe ‘|’ symbols. This allows the most recent version of CNCnetPDM to create a database record for every item.
With an unmodified INI file the initial items are:
Machine state number
Controller mode number
Main NC program
Sequence main program
Block main program
Current sub program
Sequence sub program
Block sub program
Commanded feed rate
Actual feed rate
Actual spindle speed
Common variable #100
ERR0 - ERR9
Up to 10 current alarm messages sorted by priority
FIG 4: IDs, names and description of items
Note: If you already have a machine specific INI file you can add the following sections to acquire alarm data and read/write common variable 100:
Axisflag = 0
ParameterNumber = 100
Datatype = T_DOUBLE
Command = M_SSEC_CMVRS_DAT(x)
Active = 1
Name = CV100
Comment = Common variable #100
Output section = 3
Axisflag = 0
ParameterNumber = 10
Datatype = T_ALM
Command = M_SSEC_CUR_ALARMS
Active = 1
Name = ERR
Comment = Current alarm messages
Output section = 2
This device driver allows you to create items or change data at the controller by using writable commands with note ‘RW’ or ‘W’ in column R/W of their documentation f.i. common variable 100 - 199 M_SSEC_CMVRS_DAT(x).
To write to a controller for security reasons a section with the respective command has to exist in your machine INI file. With an unmodified machine INI file you can use command 12 (Reads common variable 100) for testing. For commands with an (x) parameter the driver allows to write data for any valid parameter number e.g. with M_SSEC_CMVRS_DAT(x) you can set all common variables from 100 - 199.
The most simple way to test writing operations is to use CNCnetControl:
To change the value of common variable 100 click on the machine (1) in the left area followed by button [Cmd] (2). In the dialog window (3) enter Number 12 (4). As command text use 0|100|4.055 (5). Items in the command text are Axis number, parameter number and new item value delimited by pipe ‘|’ characters. Clicking on [OK] (6) executes the command. If successful the output of tag CV100 changes to the new value.
FIG 1: Set new value for common variable 100 with CNCnetControl
You can also write data by using the CNCnetPDM MTConnect API with your own applications ( see Free Open Source Client C#) or the MTConnect Agent Tester. In this case commands have to be input by using the following format (for the above example):
* device|1000 = Select device number 1000 command|12 = Command number 12 0|100|4.055 = Axis flag 0, parameter 100, new value 4.055
All items have to be delimited by using a pipe ‘|’ character.
Results of all writing operations are written to the devices log file log_devicenr_date.txt in subfolder \log of the CNCnetPDM directory.
This device driver also enables you to dynamically select, group, enable or disable items and change their names. The INI file automatically created by the device driver for every machine contains sections that allow you to control its behavior.
Section [GENERAL] contains information about global parameters used by the driver on startup, usually there’s no need to change the preset values for Axisflag and System. Commands defines the number of commands you’d like to execute, maximum value = 30.
Numeric section  defines how you’d like to detect if the controller is accessible. If this command does not succeed the driver assumes that the controller is not accessible. In this case all other commands are not executed.
Description of the numeric sections:
Section identifier, numbers > 0 are queried items
If column Axis in the documentation is marked with ‘O’ you can enter a number to get data related to a specific axis, e.g. 1
If column Command in the documentation ends with ‘(x)’ you can enter a number the driver should use for this command. If you enter 400 for M_SSEC_CMVRC_DAT(x) the driver queries common variable 400
Datatype to be used for output as defined in column ‘Default Data Type’ e.g. T_DOUBLE for common variables
Command to be executed e.g. M_SSEC_EXST_NC_RUN_STATUS for running status. To change a command first select a section. Then, simply copy the selected command (e.g. M_SSEC_CMVRC_DAT(x)) and paste it into the INI file. Make sure that you also enter the correct data type (e.g. T_DOUBLE) for the command in Datatype.
If you set this to 0 the command is not executed
A short name (max 5 characters) to describe the item e.g. STATN for status number
A comment that describes the command (optional)
You can output data to 3 sections that may contain up to 256 characters. 1 goes to section ‘O’, 2 to ‘A’ and 3 to ‘F’. If data in one section exceeds the maximum length you can send items to a different section. Make sure you have entries CollectOrders, CollectFeeder and CollectQuality enabled (=1) in CNCnetPDM.ini.
FIG 5: Description of INI file section (Mitsubishi)
To change commands, switch items on or off or alter its name while CNCnetPDM is running open the ini file 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’.
An overview of all sections that lead to pages that contain commands belonging to the specific section can be found here.
If you enter a wrong data type for output of data in the INI file you may get data but the values are incorrect.
If you want to add additional items first adjust the number of commands in section [GENERAL]. Then, copy and paste the last numeric section and adjust the section number and it’s content.
If the machine shows a red icon, state disconnected and you get just output E = 0 the machine is not reachable at all. This has nothing to do with the Mitsubishi API, it’s a network issue, DNS Hostname or IP Address is wrong.
If the machine shows a green icon, state connected but you just get output E = 1 the machine is reachable but the API does not respond to commands, check your Mitsubishi setup and the parameters used in CNCnetPDM.ini (esp. Port number). You can also use the tool MitsubishiM70M80.exe to check if the machine replies to commands.
If you do not get any of the preconfigured items please make sure that CollectOrders is set to 1 in section [General] of CNCnetPDM.ini. If you forced items to sections 2 or 3 set CollectQuality and CollectFeeder to 1.
If specific items are not acquired check first with MitsubishiM70M80.exe that you get output. Also make sure that the numeric section of the item in the device drivers ini file is activated and has an entry for ‘Name’, inactive or items with empty names are not acquired.
The program was tested and works with the following controllers:
Series M800 M80
Machining center & Lathe system
Series E80 C80
Machining center & Lathe system
Machining center & Lathe system
Series C6/C64 Series
Machining Center & Lathe system
Machining Center & Lathe system
If you already have a previous version of the driver installed and would like to upgrade to the most recent version proceed as follows:
Stop any CNCnetPDM background service or foreground program that uses the device driver
Extract all content of mitsubishi_dll.zip into the folder where you have CNCnetPDM installed, overwrite the existing files
Delete all mitsubishi_NNNN.dll (NNNN = machine number) files. If you already have created adapted INI files for specific devices do NOT delete the mitsubishi_NNNN.ini files.
After restarting CNCnetPDM upgraded device driver versions for all machines are automatically created.