Honeywell udc2500 Modbus Over Ethernet Protocol

R

Thread Starter

reza_Hdr

Hi

I want to connect TE3300/02 pressure process training system to PC with ethernet cable and use labview opc server to read data from it.

TE3300/02 technical details explain in the link below:
http://www.tecquipment.com/Control/Process-Control/TE3300/02.aspx

I know that my device ID is 10.100.0.2 but when I'm trying to ping it by windows cmd I got timeout response.

I didn't try Labview yet but I used both matrikon and kepware OPC server for Honeywell udc2500 (the controller used in my device) but I got "device is not responding" message that refers to broken connection. I checked the cable it's Ok. I don't know what to do?

Help me please.
Thanks.

Reza
 
reza_Hdr,

It's common and accepted practice on a forum like this to continue a thread once a thread is started on a particular topic. That way, everybody's replies all show up in one thread.

Forum threads frequently come up in internet searches, so discussions benefit not only for the person currently involved but those who find the forum in a future search. So, please keep your replies together in one thread and do not start a new one thread each time.

Your previous thread on the UDC and Labview was at this link:
http://control.com/thread/1485136739#1485136739

>I know that my device ID is 10.100.0.2

How do you know that? The IP address can not be 'seen' from the UDC display.

The default IP address for a UDC 2500 is 10.0.0.2

Was the UDC's IP address really changed to 10.100.0.2 or is it still at 10.0.0.2?

You need to 'ping' the UDC from your PC with the PC's network adapter at a static IP address in the same subnet that you think the UDC is at. If you don't a positive ping reply, then the UDC is not where you think it is.

I suggest Pinging the UDC as a stand-alone, nothing else connected.
 
Hello my friend

I have to apologize for my mistake. I am amateur.
I read from device datasheet that the original IP address was 10.0.0.2 as you said, but when they shipped the device to me they changed it to 10.100.0.2.

I have just a computer, my device and an Ethernet cable. There is nothing else in my network (subnet). Even I put a switch between my device and computer to resolve the IP conflict but it doesn't work.

Also you must forgive me because of my English. I'm Iranian and I am weak in English.

Thank you for spending time to answer my questions.
I do appreciate it.
 
You need to confirm that the UDC's Ethernet card is
a)Enabled
b)Actually has an IP address of 10.100.0.2

Do this by pinging the UDC from your PC.

1) Change your PC to the 10.100.0.x subnet, with an IP address like 10.100.0.5:

(Windows 7) Control Panel > Networking and Internet > Local area connection > Properties

https://s29.postimg.org/w2ng6tfmf/control_panel_local_area_connection_properties.jpg

> Internet Protocol Version 4 (TCP/IPv4) > Properties

https://s29.postimg.org/hfz9gjqkn/10_100_0_5.jpg

Check/enable Use the Following IP address

The example uses the IP address 10.100.0.5 and the Subnet mask: 255.255.255.0
Click OK

2) Make sure that the UDC Ethernet card is enabled:

Setup key multiple times to COM
Function key 2x = ComSTA = ETHR

3) Ping the UDC at 10.100.0.2 from a Command Prompt:

https://s24.postimg.org/bd8ff9mrp/Ping_works_OK_3_replies_dark.jpg

A failed ping times out. A failed ping means the UDC has a different IP address, the Ethernet card is not enabled, the cable isn't connected.

https://s24.postimg.org/tv6zlvecl/Pinging_the_wrong_address_times_out_dark.jpg

The version UDC Ethernet card that I have will auto-detect a straight cable connection and work OK, but if there's any doubt, go through a local Ethernet switch, like you've done before.
 
Hi David_2

You have been extremely supportive. I changed my PC IP address to the value that you said and it works. Now I can read data from Labview client. I'm very happy. Thanks a million.

Now I want to write a Labview program that can send data (for example the value of controller output) to UDC2500 and read data from it. Can you guide me how to do this? I'm not very familiar with Labview but in the past I wrote some MATLAB programs in simulink. I don't know is Labview is similar to MATLAB or not.

Best Regards.
Reza
 
I've used the UDC's so I have some familiarity with them, but I don't have Labview, I've never used it. So you're on your own, but NI does have user forums.

I scan read the NI tutorial
http://www.ni.com/tutorial/13911/en/
which shows
- using reading a Boolean for a coil (pushbutton)
- using Access Mode>>Write to write to, instead of reading from a target

Substituting the Modbus1 Holding Register register/address range 40001-46635 in place of the example's 000001-065535 register/address range should provide the ability to read/write to the UDC holding registers.

Step 12 under Writing to Modbus Addresses in LabVIEW says, "As the while loop is now, it will run as fast as possible. A Wait Until Next ms Multiple VI should be added to the loop so that the loop will execute every set amount of seconds, in this case 100ms."

You do not want either of those situations (writes as fast as possible or continuously) for a UDC because a large number of continuous writes will damage the non-volatile memory. See the UDC warning here:

https://s28.postimg.org/a5h2x94l9/warning_about_non_volatile_memory_10000_write_li.jpg

To write a value use the equivalent of what NI calls a one-shot trigger to perform the write action once.

The UDC has "computer generated override" functions that do not write to non-volatile memory. Those override register/addresses only operate/function when the UDC setup parameter SDENAB (shed enable) in the COM group is enabled. Some years ago, I experimented, found the operation flakey, couldn't get an answer from Honeywell so I haven't used 'override' since, but most of my work is SCADA that requires Modbus reads, not control that requires Modbus writes.

When Shed is not enabled (normal operation) the UDC accepts a write to the output only when the controller is in manual mode. In auto mode, the UDC throws an exception to an output write request. The writeable output is at 40127 (007Eh).
 
Top