Today is...
Monday, November 20, 2017
Welcome to Control.com, the global online
community of automation professionals.
Featured Video...
Featured Video
EtherCAT with CTC’s master lets your multivendor network play well together...
Our Advertisers
Help keep our servers running...
Patronize our advertisers!
Visit our Post Archive
Honeywell UDC3200: Write Setpoint with Modbus RTU485
Honeywell UDC3200: how to write a setpoint using Modbus RTU 485?

I have to write setpoint on Honeywell UDC3200 with PLC Unitronics V120. I have only function 6 or 16 to do that.

I try to write setpoint real format on 7D. Display change: auto mode disappear but setpoint stay on C1, and output shutdown to 0 because parameter Hight limit output change to 0.

Parametter of communication:
- COMSTA: modbus
- IRENABLE: valide
- VITBAUD: 19200
- DEL TRAN: 1
- WS FLOAT: FP B
- shedenab : valide
- TPS DELE: 30
- MODE DEL: en AUTO
- C REPLI: en COL
- UNITE: SCIENT
- RATO CPC: 1.00
- BIAS CPC: 0.0
- ECHO: INACTIVE.

Could you help me?

I'll bet you took the register address from the UDC 3200 product manual, which is absolutely unuseable - that Modbus map and those register/addresses are for FC20/21 configuration settings. Nothing in the product manual applies to ordinary day-to-day user Modbus.

Use the Modbus RTU Serial Communications User manual at the link below, not the 3200 product manual. The Modbus slave register/address map/table and other Modbus infor that you need is in the Modbus RTU Serial Communications User Manual. 51-52-25-66, the latest edition is rev T.

https://www.honeywellprocess.com/library/support/Public/Documents/51-52-25-66.pdf

To write a floating point value, you need to use Function Code 10h, 16 decimal, according to the table on pg 18:
https://s27.postimg.org/n92dr05nn/pg_18_max_number_of_registers_per_request_highl.jpg

FC 06 writes a single register only, only half of a floating point value.

As the map from the Rev T manual says, the working setpoint is at 0044h or (4)0069 decimal
https://s30.postimg.org/fxscsytht/UDC_Floating_point_working_SP_at_0044h_or_40069.jpg

Writing two registers to 007D, writes half a floating point to the Output high limit value and half a floating point value to Output working value.
https://s24.postimg.org/8gfiqh4dx/7D_is_half_of_Output_Hi_limit_and_half_of_Output.jpg

Oops. My mistake.

(4)0069 is the read-only working SP. Can't write to that register.

Write a floating point value to the working SP at (4)0121, 0078h

https://s29.postimg.org/nax4xhc0n/Write_FP_SP_to_4_0121.jpg