FieldPoint Family

cancel
Showing results for 
Search instead for 
Did you mean: 

HOWTO Set MODBUS RTU address of cFP-180x?

How do I set the MODBUS RTU address of a cFP-180x? I am not using DSC/OPC utilities. There seems to be no documentation that describes the cFP-180x configuration process for MODBUS RTU.

 

Thanks for your help.

0 Kudos
Message 1 of 13
(7,369 Views)

Hey Philibuster, 

 

In general, you can assign the address of your cFP modulue by clicking creating a project and adding your RT target. Once you have this project, youright-click on the target, select New >> I/O Server. Select Modbus as the I/O Server Type. The next menu that pops up will give you the option to set the address of your cFP.

 

I also found some documentation that may help you: 

Location for Documentation for using Modbus with the cFP-180x

cFP-180x Firmware 6.05

 

Hope this helps!

 

~kgarrett  

District Sales Engineer
0 Kudos
Message 2 of 13
(7,355 Views)

Hi ~kgarrett,

 

I appreciate your response. Take a look at the attached diagram. I'm not using an RT controller - just a Labview .EXE built with the modbus library running on a PC talking to RS-485 networked cFP-180x's operating as a MODBUS RTU slaves. Note: the cFP-180x has firmware loaded to support MODBUS and is using an RS-232/RS-485 converter to work on the network with other multidropped cFP-180x's. How do I configure/change each of the cFP-180x slave addresses ( a value from 1-254) in my scenario?

 

Thanks for your help.

0 Kudos
Message 3 of 13
(7,344 Views)

Hey Philibuster, 

 

I just wanted to see if you knew about the MODBUS Library for LabVIEW. Once you have this downloaded, there are some excellent examples which you should try. If the example works, then we know the issues lies with the code implementation and if it does not, then we know the issue lies with the hardware setup. 

 

~kgarrett

District Sales Engineer
0 Kudos
Message 4 of 13
(7,330 Views)

Thanks ~kgarrett.

 

I've used the MODBUS Library for LabVIEW before. A modified version of this is what is running on the 'Master' side. It works fine when communicating with a single cFP-180x at address 1. But the supplied examples have little to do with my issue.

 

My issue is: How do I set the Slave Address on the cFP-180x?

 

The MODBUS RTU master example in MODBUS Library allows me to communicate with a MODBUS slave if I know it's address - but it doesn't provide any information on how to burn a new slave address into the cFP-180x. It seems that the cFP-180x defaults to slave address 1 - how can I change this address?

 

Thanks again

0 Kudos
Message 5 of 13
(7,323 Views)

Hey Philibuster, 

 

Glad to know you are using the MODBUS Library-it makes using this communication protocol so much easier! If you look in the examples in that library, there are two VIs:  functions pallette» express» output» instrument drivers» modbus» pallette menu» modbus, serial example slave and modbus serial example master.

 

To my understanding, once you have a successful connection between the master and slave, you should be able to use one/both of these examples to set the address of the slave cFP-180x. If you do use both, just make sure that the addresses in both of the VIs are the same value. 

 

Hope this helps! Good luck!

 

~kgarrett 

District Sales Engineer
0 Kudos
Message 6 of 13
(7,314 Views)

Hi ~kgarrett,

 

I've looked very closely at the RTU Master example and the underlying library functionality in the past and wasn't able see anything that would burn a new slave address into the cFP-180x.  Maybe there is an undocumented register that could be written but I don't see this in the RTU Master example. Can you be specific and show me how an RTU Master VI can do this using the MODBUS library?

 

Thanks

0 Kudos
Message 7 of 13
(7,306 Views)

Hi Philibuster, 

 

If you have the full version of the Modbus Library, and you have moved the lib files into your vi.lib folder in your LabVIEW directory, you should have the VIs I mentioned. To access the MB Serial Example Slave vi and change your slave address, right click on your block diagram to open the functions pallette, and navigate as follows: 

Location of Example.png

 

Once you have the MB Serial Example Slave vi on your block diagram, double click on it and you will see its front panel. The slave address of the device may be set here:

MB Serial Example Slave vi.png:

 

Hope this helps. 

 

~kgarrett

 

 

District Sales Engineer
0 Kudos
Message 8 of 13
(7,297 Views)
0 Kudos
Message 9 of 13
(7,287 Views)

Hi ~kgarrett,

Thanks but I don't think you understand what I am looking for. In the example you cite, the 'Slave Address' field is the address of the RTU slave VI. This example allows a VI to act as or simulate an RTU slave. This does not apply to my question. I have an existing hardware RTU slave, a cFP-180x with an address of 1. How do I change the RTU address burned inside the cFP-180x?

For example: Suppose that you had a slave cFP-180x with an RTU address of 1 and you would like to change its address to 123, how would you burn the new address of 123 into the cFP-180x? I don't think there is any functionality in the MODBUS library to do this. So how is it done?

Of course, once you burned the new RTU address into the cFP-180x you could use the Master RTU functionality in the MODBUS library to communicate with the cFP-180x. In this case, the Master RTU example would be used (the other RTU example) and the 'Slave Address' field would be set to 123 into order to communicate with the cFP-180x slave we just re-programmed to address 123.

So, How do I change the RTU slave address in a cFP-180x?

Thanks

0 Kudos
Message 10 of 13
(7,281 Views)