From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

Industrial Communications

cancel
Showing results for 
Search instead for 
Did you mean: 

Modbus RTU RS 485 communication with Mitsubishi VFD D700

Hi all,

I am having some serious problems when trying to communicate with with my Mitsubishi D700 VFD through serial port in LabVIEW using the NI VISA set of functions.

The VFD is connected to the computer with an official RS232-RS485 converter cable from Mitsubishi as mentioned in the manual.

I understand the idea behind modbus message frame, but I seriously cannot for the life of me create the messages with the correct format.
From my understanding I need to compute a CRC(16 in my case) and insert it in the message.
So far I have tried using the modbus protocol with the modbus library and using basic VISA functions but I get no response from the inverter.
Are there some details that I am not grasping? Some timing I need to add somewhere?
I now want to use the Mitsubishi proprietary protocol but I also need to caculate some checksum, and googling on the net I foud that there are a few different ways to compute the checksum. With the Mitsubishi protocol I need to send ASCII codes but how can this be done on with LabVIEW VISA since I can only write strings?

I would really appreciate the help from you guys, I have already spent one day trying to understand how to do this with no result

Kind regards,

Jimmy FREITAS MONTEIRO

 

PS: Attached are the VI I made for Mitsubishi protocol communication,the manual is too big to be inserted here, but can google the Mitsubishi D700 Applied Manual

 

 

 

 

Download All
0 Kudos
Message 1 of 7
(17,581 Views)

Hi Jimmy,

 

Having worked with Modbus in the past, I think that trying to construct the protocol from VISA functions is a tad ambitious. I'd recommend reading up on the protocol here: http://www.simplymodbus.ca/FAQ.htm

It's an excellent website for explaining the basics of Modbus. It's worth then comparing the protocol with the Mitsubishi device to see what sort of things make the Mitsubishi protocol unique.

 

I'm not sure I understand your question about ASCII codes. Surely you're able to use ASCII characters as strings? I can't think of any other way of representing them.

 

For the CRC, there is a range of different CRC-16s, so you'll need to understand the specific type you need: https://en.wikipedia.org/wiki/Cyclic_redundancy_check#Standards_and_common_use

 

There is an example available for the CRC-16 IBM, the most common CRC-16: http://www.ni.com/example/26488/en/

 

I hope these resources help; I would definitely recommend gaining an understanding of the protocol before trying to figure out what Mitsubishi have done to make it their own.

 

Best regards,

Jake A

Applications Engineer
National Instruments UK and Ireland
0 Kudos
Message 2 of 7
(17,556 Views)

Hi,

 

Can you try the LoopBack vi in the ZIP. It uses the LoopBack command (Diagnosis in the manual) to communicate. 

If this is OK you the connection and device are OK.

 

Kees

0 Kudos
Message 3 of 7
(17,470 Views)

Hi all,
I have actually gone with the Mitsubishi protocol, I was able to create my own checksum VI. that I can call everytime I send a request. I have managed to get everything required working pretty well.

Sorry for being to noobie to understand that I actually need to send characters on the serial port, the checksum was also the thing blocking me, It was my first time dealing with all this, and I didn't have a clue about it

I can now do the following:

-Start/Stop the VFD with a choosen direction
-Change the Frequency on the fly

-Acquire Voltage,Current and Frequency provided to the motor.

-Make the motor follow a Frequency profile or curve
For the UI design I have choosen to go with an Event strucuture in a while loop with a given timeout
So in the timeout I acquire the Voltage,Current and Frequency, and in the events I handle all the boutons.

Since everytime I do a request I have to wait for the VFD to respond, my loop iteration time is basically forced by the response time of the VFD.
So far I can perform all the operations I want with the native COM Port of the motherboard of the PC I am using.
But we want now to be able to control 2 VFD (same model).
Since from my understanding RS232 is point to point only,I thought why not use 2 RS232toUSB converters (I have one cable for each VFD)
I have therefore adapted the code to handle two VFDs, but for some reason the program hangs, the communication seems to stop for no reason. I cannot understand since I have basically copied-pasted the while loop handling one VFD.
I doubt that there is a problem when performing communication on 2 separate COM ports, but we never know.

What I did so far is have one VFD plugged on the native COM port and the other on one of the converters. I have seen that now it is systematically the VFD connected on the RS232toUSb converter that is loosing the communication.
So is it possible that the combination of the two is causing problems, or the converter itself since I have ZERO issues with the native COM Port. Or is it something I forgot/don't realize?


PS : I am using LabVIEW 2013, and two Prolific RS232toUSB converters (drivers are installed), I have a ''Functions library VI'' subVI with a TypeDef Enum regrouping the textual name of the functions like "Read Frequency",''Write Frequency'', so from the exterior the user only has to choose which function to use. I have checked the reetrancy of this subVI and set it to Preallocated clone reentrant execution so when both while loops can access the subVI simualtaneously (from my understanding)

Thank you in advance for your time,
Jimmy

Download All
0 Kudos
Message 4 of 7
(17,452 Views)

Hi,

I am also trying to do the same with yaskawa VFD.

However, when checking your vi, one sub-vi checksumcalculator.vi is missing.

kindly share the new vi made by you for starting and stopping, changing speed & direction etc..

It will be helpful to me to complete the connectivity.

 

thanks in advance

 

 

 

 

 

0 Kudos
Message 5 of 7
(17,243 Views)

Hi Jimmy, 

Could you share your VIs, I'm actually trying to create a VI for another VFD and it would help me out tremendously? Thanks!

0 Kudos
Message 6 of 7
(16,855 Views)

Hi there,

 

I am working on a similar project where I am attempting to connect to a Mitsubishi Electric VFD D720 with LabView 2015. The problem I am running into is similar to Jimmy's with creating the CheckSum. Has there been an updated version of this post with an answer or an answer to a similar problem? 

 

Thanks for any help.

0 Kudos
Message 7 of 7
(9,083 Views)