Communication Modbus RTU RS485 (Honeywell - HC900 Controller)

T

Thread Starter

Taufikurahman

Could you help me, How to communication Modbus RTU RS485? I want to communication HC900 (Honeywell) with other device like inverter (Danfos AQUA 8000) or instrument device WTW. I am using function block program in HC900 is Modbus communication slave and then setting serial protocol Modbus RS485 like address, baud rate, parity, stopbit and in Inverter or instrument device I am setting protocol the same too but Communication is bad, data no transmit.

Thank U very much.
 
R

Rainer Lehrig

<pre>
int main(int ac, char **av)
{
int offset,ret,first;

if(ac > 0) av0 = av[0];
first = 1;
while(serial.openDevice(SERIAL_DEVICE,B9600) < 0) // todo: specify serial parameters
{
if(first==1) printf("could not open serial device %s\n",SERIAL_DEVICE);
first = 0;
rlsleep(1000);
}
... snip
}

with:
int openDevice (const char *devicename, int speed=B9600, int block=1, int rtscts=1, int bits=8, int stopbits=1, int parity=rlSerial::NONE)
</pre>
<p>See:<br>
http://www.pvbrowser.org<br>
http://www.pvbrowser.org/pvbrowser/sf/manual/rllib/html/classrlSerial.html<br>
http://www.pvbrowser.org/pvbrowser/sf/manual/rllib/html/classrlModbus.html
 
function block program in HC900 is Modbus communication slave.

HC 900 must be Modbus Master, the Danfoss is a slave.

Steps for troubleshooting Modbus Master on HC-900:

1) Are both green RS-485 LEDs blinking on the controller (to the right of the connector as you look at it)?

If comm link is dysfunctional, the upper green LED only on controller will blink at one second intervals indicating attempts at re-establishing communication.

2) Wiring connections OK?
Try swapping A & B lines????
Honeywell uses 2 wire, half duplex only, not 4 wire full duplex.

3) Is one of the devices using an RS232-485 converter? Is so, is it known good? have power? DIP switches set? (do not use port-powered converter.)

4) MBS function block configured?
MBR or MBW blocks configured?
correct slave address?
correct registers?
correct data type? floating point vs integer?

HC-900 register addressing is hexadecimal, not decimal.

The hex-decimal thing sometimes causes an offset of 1 in register addressing (I think the hex starts counting at zero, not one, but not sure). You might try addressing one register lower, one register higher and see if that fixes things.

If you write from the HC-900 master to a slave, the ENx inputs must be enabled for the corresponding WRx inputs on the MBS block.

The drive's Modbus address is a decimal value configured in MBS function block. You have to select the data format type, as well.

5) comm port configured on controller?
utilities tab, set controller serial ports

RS-485 port default: Honeywell ELN at 38,400 baud (this is for the Honeywell HMI, not Modbus). Must change to Modbus RTU Master.

6) Is slave device wired? Powered? terminating resistor? configured? Modbus address & serial port?

7) Use Monitor mode in HCD for troubleshooting
select 'Monitor' on menu bar in HCD development Software.
select "Modbus Master Port Diagnostics".
highlight the slave device in the left window.
the slave device details (parameters and values) show up in left window.

Modbus port might need to be "enabled".
If 'enable' button in lower right is labelled 'enable', click it, and see if the comm quality or scan parameters change to 'good'. Button should read 'disable' in normal run mode.

Bud
 
Top