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.

LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

VFD communication Modbus RTU by RS-485

Hey Guys,

I am relatively new to labview and am having trouble controlling a teco westinghouse VFD (A-510).

I have a labview code that generates the apparent RTU command that should be send out to the VFD but I am unsure if the serial write of the VIs are correct.

 

http://www.tecowestinghouse.ca/controls/drives/a510/

As a sanity check for an 1800RPM (60Hz) input, the command should match the attached image.

 

I am thinking that there is an error in how i set up my VISA serial communication. Should i be using the Modbus pallette instead ? 

 

Thanks in advance!

0 Kudos
Message 1 of 6
(5,276 Views)

Hello,

It is having mod bus over RS-485 so the communication protocol is Modbus RTU / ASCII.

If your application is just to do some basic operation then you can use digital inputs or analog inputs of VFD for controlling speed,ON/OFF etc.

Refer page 3-16, 9-3 in below link

http://www.tecowestinghouse.ca/wp-content/uploads/A510_instruction_manual.pdf

For the mod bus communication refer page 4-212,7-4

I think if you do not  have RS-485 then use RS-485 to RS 232 converter to connect to PC side.

Labview library-http://www.ni.com/example/29756/en/

Expand.Evolve.Influence
0 Kudos
Message 2 of 6
(5,259 Views)

Hi,

So i am trying to use the modbus library pallete to send the following command to the VFD

Node Address: 01

Function: 10

Starting address: 25 01

# of Registers: 00 02

# of Bytes: 04

Data 1: 00 01

Data 2: 17 70

CRC-16: 60 27

 

I am confused about what gets sent into the the Modbus write block which calls for "starting address" and "holding register values". If you could advise me on how to input the proper data i would appreciate it.

 

0 Kudos
Message 3 of 6
(5,241 Views)

Hi,

 

I'm a bit confused by your VFD product documentation. Normally the inputs for the MODBUS VI's are pretty self explanatory. You'll want to set up LabVIEW as the MODBUS master, ensure you're addressing the correct slave by unit ID, and then you should just be able to specify the address at which you expect to find data. I'm not exactly sure how to read the format in your device manual, but I think your node address will be the unit id input and the first number in the starting address will be the address input. To access the first two registers of data, I think you need to use the Write Multiple Holding Registers.vi and input an array of your two values in the registers input. I've attached an image of what that may look like.

Holding_Registers.PNG

 

 

I hope this is helpful!

Austin
Staff Software Engineer
NI
0 Kudos
Message 4 of 6
(5,215 Views)

This looks very promising, Thank you! I will try it ASAP and let you know whether or not it worked. I am fairly confident that this MODBUS palette route is the way to go so I am very hopeful that this works or that it puts me on the right track.

0 Kudos
Message 5 of 6
(5,167 Views)

I was able to try that code but it didn't work out. Is there a way I can do this through the VISA  write/read etc.? I have been trying VISA but it hasn't been working either. I'm using a basic serial read and write. attached here. The thing about modbus is that it specifies the communication protocol (ASCII or RTU) whereas I'm not sure if its possible (or necessary) to do the same for VISA Serial communication.

0 Kudos
Message 6 of 6
(5,115 Views)