Flow Controller Modbus TCP / etags

This document describes the Modbus TCP interface and register usage for the HPFC5 PoE Flow Controller.

The HPFC5 Flow Controller has up to 3 TCP sockets for listening available for the Modbus TCP interface on port # 502. There is a 5 sec. inactivity time-out on these sockets that will force them to close.

Escherlogic Modbus TCP implementation supports the following Function Codes:

1: coil read
2: discrete inputs read
5: write single coil
15: write multiple coils
3: read holding register
6: write holding register
16: write multiple holding register
43: MEI function
- 4: specific device ID (requested object)
- 1: basic device ID (0:Vendor, 1:Product, 2:Version)
- 2: regular device ID (3:URL, 4:Product)

- MEI objects:
- 0: Vendor ‘Escherlogic’
- 1: Product Code ‘WebFC1′
- 2: Version ‘Build:xxxxxxxxx’
- 3: URL ‘http://www.escherlogic.com’
- 4: Product ‘WebFC1′

Flow Controller operational specific registers and descriptions:

Basic Flow Controller operations only use Coil codes for operation and error bits and Holding Register codes for parameters. 32-bit signed and unsigned values are stored in big-endian form. i.e. 40001 is high 16-bits of SetFlow and 40002 is low 16-bits of SetFlow.

REGISTER 40001,40002: SetFlow: (unsigned 32-bit R/W) Used to set/read the feeders flow rate set point. The units of this register are defined by the calibration of the feeder. This could be in Kg/Hr, Lbs/Hr, Bu/Hr, etc..

REGISTER 40003,40004: FlowRate: (signed 32-bit R) Provides the feeders actual live flow rate. The units will match the SetFlow register.

REGISTER 40005,40006: Target: (unsigned 32-bit R/W) If configured for Target mode operation will allow for the setting of a target accumulation. The feeder will stop material flow when the accumulation has reached or exceeded this register value. A 0 in this register disables this feature regardless of the Target Mode setting.

REGISTER 40007,40008: Total: (unsigned 32-bit R/W) Indicates the current live accumulation. This register can also be written to any value. Typically a 0 is written to clear.

REGISTER 40020: Area: (signed 16-bit R) Indicates the feeders current area opening in sq. in. x 100. i.e. a register value of 525 is 5.25 sq.in. opening.

REGISTER 40021: Encoder: (signed 16-bit R) Indicates the feeders current encoder index value. This register is the raw integer value from the encoder and the typical Flow Controller uses a 2000 count/rev. encoder.

REGISTER 40022: Encoder_Set_Point: (signed 16-bit R) Shows the current control-loop encoder set-point request value. When the feeder is operating properly, the Encoder value will match or be within 1 or 2 counts of this value at any given time.

REGISTER 40023: Cycle_Length: (unsigned 16-bit R) Shows the current gate oscillation period in milli-seconds (ms)

REGISTER 40024: RADAR_Mass: (unsigned 16-bit R) Indicates the spectral mass of the reflected RADAR signal. In other words, the strength of the reflected signal. This value is used to determine the presence of material flowing through the feeder.

REGISTER 40025: RADAR_Mass_Threshold: (unsigned 16-bit R) This register shows the set threshold value for a no-flow condition.

REGISTER 40026: RADAR_Velocity: (unsigned 16-bit R) Indicates the discharging material velocity in feet-per-minute (ft/min.)

Flow Controller Operational/Status bits (8-bits R/W):

COIL 00001: (0) – Feeder Run — Feeder Run/Stop control bit. Must have a non-zero SetFlow!
COIL 00002: (1) – Target Mode Operation Active
COIL 00003: (2) – Target Reached – Feeder Stopped *
COIL 00004: (3) – N/A
COIL 00005: (4) – N/A
COIL 00006: (5) – N/A
COIL 00007: (6) – N/A
COIL 00008: (7) – N/A

*Note: If Target Mode (1) is active and Feeder Run (0) active and the Total is less than the Target, the feeder will run until the Target accumulation is reached. At which point the feeder will stop, clearing the Feeder Run bit (0) and setting the Target Reached bit (2). Simply restarting the feeder by setting the Feeder Run bit (0) will clear the Target Reached bit (2) and reset the Total accumulation back to 0 at which point the feeder will run. This allows for repeated target runs defined by the target amount.

Flow Controller Error and Warning bits (16-bits R/W):

COIL 00010: (0) – Gate Position Error. — Feeder is having difficulties controlling the gate. Insufficient/excessive air pressure, bad valve or cylinder.
COIL 00011: (1) – No Flow Alarm. — There is no product flowing.
COIL 00012: (2) – N/A
COIL 00013: (3) – Dead Gate Alarm. — Typically indicates loss of air pressure, an object jammed inside the feeder or a mechanical problem.
COIL 00014: (4) – N/A
COIL 00015: (5) – CPU Reset Warning. — Will be set each time the Flow Controller is powered-up or reset.
COIL 00016: (6) – Bad Parameter Warning. — A calibration parameter does not make sense. Review and correct calibration parameters.
COIL 00017: (7) – N/A
COIL 00018: (8) – N/A
COIL 00019: (9) – N/A
COIL 00020: (10) – N/A
COIL 00021: (11) – N/A
COIL 00022: (12) – N/A
COIL 00023: (13) – N/A
COIL 00024: (14) – N/A
COIL 00025: (15) – N/A

Telnet (etag) Flow Controller Commands

These are the Flow Controller specific Escherlogic etags that can be used to read and set all parameters/flags/and controls in a telnet connection with the machine. Some etags may be read-only and or have dimensions that must be used.

To read a value simply type in the etag followed by a return.
i.e.
OK
> F_setflow
5000
OK
>

To write a value, type the etag followed by an ‘=’, the new value and return.
i.e.
OK
> F_setflow=6500
6500
OK
>

Flow Controller specific etags

F_setflow : target flow set point
F_flowrate : Actual computed flow rate
F_target : target set
F_total : total accumulation
F_status : Status flags (Run/Target/Target Reached)
F_errors : Error flags

F_area : computed area opening (sq.in.)
F_encoder : encoder position
F_encsp : encoder target set point
F_cyclelen : gate cycle time (ms)
F_mass : Doppler RADAR mass signal (reflected signal strength)
F_mth : Mass Threshold value
F_velocity : Doppler RADDAR computed velocity (ft/min)
F_kvg : Compensation scalar (0-2.000)

F_min_area : minimum allowed area opening for feeder to run
F_max_area : maximum allowed area opening for feeder to run
F_noflow : Doppler RADAR minimum mass value for flow to be valid
F_area_A : Calibration point 1 : Area1 (sq.in.)
F_flow_A : Calibration point 1 : Flow1 (user selected units/hr)
F_area_B : Calibration point 2 : Area2 (sq.in.)
F_flow_B : Calibration point 2 : Flow2 (user selected units/hr)
F_mode : Calibration installation flag – will automatically clear after an install (0×40)

F_vel_k : Velocity compensation scalar (0-1.00)
F_gate_k : Gate cycle time compensation scalar (0-1.00)
F_vel_off : Velocity offset for scalar
F_gate_off : Gate cycle time offset for scalar

F_control : Flow Controller control state
F_reflash : slave MPU(s) re-FLASHing tool CAUTION – USE ONLY IF YOU KNOW WHAT YOU ARE DOING!!

F_load : load all settings from a Flow Controller configuration file
F_save : save all settings as a Flow Controller configuration file
F_units : user defined units (‘Kg’, ‘Lbs’, ‘Bu’, etc.. This is just a string.)