News CNCnetPDM About us Support  
       
  

DEVICE DRIVER | MITSUBISHI

TOP

This highly configurable Mitsubishi IIoT Adapter 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. It also allows you to write data to these devices by your own applications on a remote PC for instance to set or change parameters or common variables. Here you can find a list of sections with all possible commands that you can use with the driver: Sections

CNCnetPDM Mitsubishi IoT Interfaces

Mitsubishi IoT Interfaces

Output example

DOWNLOAD | LICENSING | SETUP CNCNETPDM | SETUP MITSUBISHI | READ DATA | WRITE DATA | ADJUST ITEMS | TIPS | TROUBLESHOOTING | ADAPTED CONTROLLERS | UPGRADE DRIVER

The IIoT Adapter enables to dynamically define an own set of items for data acquisition (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 tag names for acquired data.

  • Make sure that you have a network connection from your PC to the machine and get data, use the MitsubishiM70M80 utility to do so. In case you use a firewall on your PC or company network please also open TCP Port 683 there.
  • 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)

Mitsubishi M700 Operator Panel screen

FIG 1: Mitsubishi M700 CNC Operator Panel screen

DOWNLOAD DRIVER

LICENSING

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 any other license you are able to output the result of up to 30 functions per reading cycle, see licensing for details.

SETUP CNCNETPDM

  • Download CNCnetPDM and install it as described in the quick-start-guide.
  • 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:

Configure CNCnetPDM.ini

FIG 2:    Configure device Mitsubishi in CNCnetPDM.ini

For Mitsubishi controllers the following 3 parameters are important

  1. Right to the IP Address of the controller enter number 683 (=port)
  2. Right to the DNS Hostname of your machine enter the Mitsubishi number as configured, see section ‘MITSUBISHI SETUP’.
  3. Change the driver name to mitsubishi.dll
[RS232]
1 = 1000;19200;8;N;1;MITSUBISHI #1;192.168.1.100;683;0;mitsubishi;1;0;none;none;0;mitsubishi.dll
FIG 3:    Mitsubishi device driver setup example in CNCnetPDM.ini

MITSUBISHI SETUP

  • Extract all contents of mitsubishi_dll.zip to the directory where CNCnetPDM is installed.
  • In this folder open file melcfg.ini with a text editor and scroll down to section [HOSTS].
  • melcfg.ini comes with predefined entries for up to 54 machines, every line in section [HOSTS] contains Mitsubishi machine number (the number after TCP), IP Address and TCP Port of a single machine.
  • Replace the default IP Address 192.168.1.100 with the IP Address of your controller, note down the machine number and save the file. If, for example, the IP Address of your first controller is 192.168.1.2 the line should look like
    TCP1=192.168.1.2,683

Default melcfg.ini file

; CNCnetPDM Standard Mitsubishi INI
; Controller=M7NX (default), M8NX, NCXJ, NCXK, M6B or NX

[Machine01]
Controller=M7NX
Device=TCP1
CacheEnable=0
[Machine02]
Device=TCP2
Controller=M7NX
CacheEnable=0
[Machine03]
Device=TCP3
Controller=M7NX
CacheEnable=0
[Machine04]
Device=TCP4
Controller=M7NX
CacheEnable=0
[Machine05]
Device=TCP5
Controller=M7NX
CacheEnable=0
[Machine06]
Device=TCP6
Controller=M7NX
CacheEnable=0
[Machine07]
Device=TCP7
Controller=M7NX
CacheEnable=0
[Machine08]
Device=TCP8
Controller=M7NX
CacheEnable=0
[Machine09]
Device=TCP9
Controller=M7NX
CacheEnable=0
[Machine0A]
Device=TCP10
Controller=M7NX
CacheEnable=0
[Machine0B]
Device=TCP11
Controller=M7NX
CacheEnable=0
[Machine0C]
Device=TCP12
Controller=M7NX
CacheEnable=0
[Machine0D]
Device=TCP13
Controller=M7NX
CacheEnable=0
[Machine0E]
Device=TCP14
Controller=M7NX
CacheEnable=0
[Machine0F]
Device=TCP15
Controller=M7NX
CacheEnable=0
[Machine10]
Device=TCP16
Controller=M7NX
CacheEnable=0
[Machine11]
Device=TCP17
Controller=M7NX
CacheEnable=0
[Machine12]
Device=TCP18
Controller=M7NX
CacheEnable=0
[Machine13]
Device=TCP19
Controller=M7NX
CacheEnable=0
[Machine14]
Device=TCP20
Controller=M7NX
CacheEnable=0
[Machine15]
Device=TCP21
Controller=M7NX
CacheEnable=0
[Machine16]
Device=TCP22
Controller=M7NX
CacheEnable=0
[Machine17]
Device=TCP23
Controller=M7NX
CacheEnable=0
[Machine18]
Device=TCP24
Controller=M7NX
CacheEnable=0
[Machine19]
Device=TCP25
Controller=M7NX
CacheEnable=0
[Machine1A]
Device=TCP26
Controller=M7NX
CacheEnable=0
[Machine1B]
Device=TCP27
Controller=M7NX
CacheEnable=0
[Machine1C]
Device=TCP28
Controller=M7NX
CacheEnable=0
[Machine1D]
Device=TCP29
Controller=M7NX
CacheEnable=0
[Machine1E]
Device=TCP30
Controller=M7NX
CacheEnable=0
[Machine1F]
Device=TCP31
Controller=M7NX
CacheEnable=0
[Machine20]
Device=TCP32
Controller=M7NX
CacheEnable=0
[Machine21]
Device=TCP33
Controller=M7NX
CacheEnable=0
[Machine22]
Device=TCP34
Controller=M7NX
CacheEnable=0
[Machine23]
Device=TCP35
Controller=M7NX
CacheEnable=0
[Machine24]
Device=TCP36
Controller=M7NX
CacheEnable=0
[Machine25]
Device=TCP37
Controller=M7NX
CacheEnable=0
[Machine26]
Device=TCP38
Controller=M7NX
CacheEnable=0
[Machine27]
Device=TCP39
Controller=M7NX
CacheEnable=0
[Machine28]
Device=TCP40
Controller=M7NX
CacheEnable=0
[Machine29]
Device=TCP41
Controller=M7NX
CacheEnable=0
[Machine2A]
Device=TCP42
Controller=M7NX
CacheEnable=0
[Machine2B]
Device=TCP43
Controller=M7NX
CacheEnable=0
[Machine2C]
Device=TCP44
Controller=M7NX
CacheEnable=0
[Machine2D]
Device=TCP45
Controller=M7NX
CacheEnable=0
[Machine2E]
Device=TCP46
Controller=M7NX
CacheEnable=0
[Machine2F]
Device=TCP47
Controller=M7NX
CacheEnable=0
[Machine30]
Device=TCP48
Controller=M7NX
CacheEnable=0
[Machine31]
Device=TCP49
Controller=M7NX
CacheEnable=0
[Machine32]
Device=TCP50
Controller=M7NX
CacheEnable=0
[Machine33]
Device=TCP51
Controller=M7NX
CacheEnable=0
[Machine34]
Device=TCP52
Controller=M7NX
CacheEnable=0
[Machine35]
Device=TCP53
Controller=M7NX
CacheEnable=0
[Machine36]
Device=TCP54
Controller=M7NX
CacheEnable=0

[CHGAPIVL]
NCXJ=NOCHANGE
NCXK=NOCHANGE
M6B=NOCHANGE
NX=CHGAPIVL.DLL
M7NX=CHGAPIVL.DLL
M7NX=CHGAPIVL.DLL

[NC Alarm Message]
NCXJ=NOCHANGE
NCXK=NOCHANGE
M6B=MELLANG.DLL
NX=NXALMSG.DLL
M7NX=NXALMSG.DLL
M7NX=NXALMSG.DLL

[PLC Message]
NCXJ=NOCHANGE
NCXK=NOCHANGE
M6B=PLCMSG.DLL
NX=NOCHANGE
M7NX=NOCHANGE
M7NX=NOCHANGE

[BACK GROUND]
NCXJ=NOCHANGE
NCXK=NOCHANGE
M6B=NOCHANGE
NX=NOCHANGE
M7NX=NOCHANGE
M7NX=NOCHANGE

[System]
EnableRemoteMode=1
LogType=-1

[HOSTS]
TCP1=192.168.1.100,683
TCP2=192.168.1.100,683
TCP3=192.168.1.100,683
TCP4=192.168.1.100,683
TCP5=192.168.1.100,683
TCP6=192.168.1.100,683
TCP7=192.168.1.100,683
TCP8=192.168.1.100,683
TCP9=192.168.1.100,683
TCP10=192.168.1.100,683
TCP11=192.168.1.100,683
TCP12=192.168.1.100,683
TCP13=192.168.1.100,683
TCP14=192.168.1.100,683
TCP15=192.168.1.100,683
TCP16=192.168.1.100,683
TCP17=192.168.1.100,683
TCP18=192.168.1.100,683
TCP19=192.168.1.100,683
TCP20=192.168.1.100,683
TCP21=192.168.1.100,683
TCP22=192.168.1.100,683
TCP23=192.168.1.100,683
TCP24=192.168.1.100,683
TCP25=192.168.1.100,683
TCP26=192.168.1.100,683
TCP27=192.168.1.100,683
TCP28=192.168.1.100,683
TCP29=192.168.1.100,683
TCP30=192.168.1.100,683
TCP31=192.168.1.100,683
TCP32=192.168.1.100,683
TCP33=192.168.1.100,683
TCP34=192.168.1.100,683
TCP35=192.168.1.100,683
TCP36=192.168.1.100,683
TCP37=192.168.1.100,683
TCP38=192.168.1.100,683
TCP39=192.168.1.100,683
TCP40=192.168.1.100,683
TCP41=192.168.1.100,683
TCP42=192.168.1.100,683
TCP43=192.168.1.100,683
TCP44=192.168.1.100,683
TCP45=192.168.1.100,683
TCP46=192.168.1.100,683
TCP47=192.168.1.100,683
TCP48=192.168.1.100,683
TCP49=192.168.1.100,683
TCP50=192.168.1.100,683
TCP51=192.168.1.100,683
TCP52=192.168.1.100,683
TCP53=192.168.1.100,683
TCP54=192.168.1.100,683

READ DATA

  • 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 4:    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:

1000 12/05/2023 02:04:32 PM O STATN| 5| STATT| Error| MODEN| 2| MODET| ****| PRGCU| 1| PRGMN| 4712| SEQCU| 1| FEEDR| 0| SPSPD| 0| ALMST| 0| TOOL1| 0| TOOL2| 0| ALMTX| No alarm|  10000000002

Every item has a tag name followed by its tag value. All tag value pairs are delimited by pipe ‘|’ symbols. This allows CNCnetPDM to create OPC UA or MTConnect output or a database record for every item.

With an unmodified INI file the initial items are:

ID

NAME

DESCRIPTION

1

STATN

Machine state number

2

MODEN

Controller mode number

3

PRGMN

Main NC program

4

SEQMN

Sequence main program

5

BLKMN

Block main program

6

PRGSB

Current sub program

7

SEQSB

Sequence sub program

8

BLKSB

Block sub program

9

FEEDC

Commanded feed rate

10

FEEDR

Actual feed rate

11

SPDSP

Actual spindle speed

12

CV100

Common variable #100

13

ERR0 - ERR9

Up to 10 current alarm messages sorted by priority

FIG 5:    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 (Part System 1):
[12]
Partsystem = 1
Axisflag = 0
ParameterNumber = 100
Datatype = T_DOUBLE
Command = M_SSEC_CMVRS_DAT(x)
Active = 1
Name = CV100
Comment = Common variable #100 Part System 1
Output section = 3

[13]
Partsystem = 1
Axisflag = 0
ParameterNumber = 10
Datatype = T_ALM
Command = M_SSEC_CUR_ALARMS
Active = 1
Name = ERR
Comment = Current alarm messages Part System 1
Output section = 2

WRITE DATA

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 [Command] (2). In the dialog window enter Number 12 (3). As command text use 1|0|100|4.055 (4). Items in the command text are part system, axis number, parameter number and new parameter value delimited by pipe ‘|’ characters. Clicking on [OK] (5) executes the command. If successful the output of tag CV100 changes to the new value.

FIG 6:    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|command|12|1|0|100|4.055

  • * device|1000 = Select device number 1000
  • command|12 = Command number 12
  • 1|0|100|4.055 = Part system 1, 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.

ADJUST ITEMS

This device driver also enables you to dynamically select, group, enable or disable items and change their names. The INI file (e.g. mitsubishi_1000.ini) 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 [0] 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 a numeric section:

Entry

Description

[0]

Section identifier, numbers > 0 are queried items

Partsystem

Allows to read data from a specific part system (default = 1) if your controller has multiple systems. Available part systems can be queried by using the MitsubishiM70M80 GUI program

Axisflag

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

ParameterNumber

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

Datatype to be used for output as defined in column ‘Default Data Type’ e.g. T_DOUBLE for common variables

Command

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.

Active

If you set this to 0 the command is not executed

Name

A short name (max 5 characters) to describe the tag name e.g. STATN for status number

Comment

A comment that describes the command (optional)

Output section

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 7: 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, 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’.

TIPS

  • An overview of all sections that lead to pages that contain commands belonging to the specific section can be found here.
  • It is recommended to start with simple commands in sections like Operation Status or CNC Information.
  • 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. 

TROUBLESHOOTING

  • 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 also shows a red icon, state disconnected but you just get output E = 1 the machine is reachable by 'Ping' but the API does not respond to commands, check your Mitsubishi setup (melcfg.ini) 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.  

CONTROLLERS

The program was tested and works in production environments with the following controllers:

Series M800 M80

Machining center & Lathe system

  • M850W
  • M830W
  • M850S
  • M830S
  • M80W
  • M80 TypeA
  • M80 TypeB

Series E80 C80

Machining center & Lathe system

  • E80 TypeA
  • E80 TypeB
  • C80 TypeA
  • C80 TypeB

Series M70

Machining center & Lathe system

  • FCA70P-2A
  • FCA70P-4A
  • FCA70P-2B
  • FCA70P-4B

Series M700

  • 720M
  • 730M
  • 750M
  • 720L
  • 730L
  • 750L

Series C6/C64 Series

  • C6L
  • C6T
  • C64M
  • C64L
  • C64T

Series C70

  • M system
  • L system

Series M70V

Machining Center & Lathe system

  • TypeB
  • TypeA

Series M700V

Machining Center & Lathe system

  • M720VS
  • M730VS
  • M750VS
  • M720VW
  • M730VW
  • M750VW

UPGRADE DRIVER

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. Backup (copy) melcfg.ini to a folder of your choice.
  3. Extract all content of mitsubishi_dll.zip into the folder where you have CNCnetPDM installed, overwrite the existing files.
  4. 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.
  5. Adjust the controller IP addresses in the new melcfg.ini template (recommended) OR restore (copy) melcfg.ini from your backup folder to the directory where you have CNCnetPDM installed, overwrite the existing file.
  6. 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. 

https://www.inventcom.net/support/mitsubishi/device-driver

Support | Mitsubishi | Overview

CNCnetPDM for machines with Mitsubishi controllers allows you to acquire machine-, process and quality-data from these devices in near real time and use it for your business... [read more]
Support | Mitsubishi | Overview

Support | Mitsubishi | Release Notes

(8/5/2024) We released new versions of our Mitsubishi Industrial Internet of Things (IIoT) Adapter and the GUI programs to read/write from/to Mitsubishi controllers with... [read more]
Support | Mitsubishi | Release Notes

Support | Mitsubishi | Read & Write Data

For manufacturing machines equipped with Mitsubishi controllers this diagnostic tool enables you to test reading and writing operations by using all available commands for these... [read more]
Support | Mitsubishi | Read & Write Data

Support | Mitsubishi | Machine Data

To report machine data to your applications you have to be able to acquire it from your devices. For machines equipped with Mitsubishi controllers connected to your company... [read more]
Support | Mitsubishi | Machine Data
Modified: 2024-08-05