Expose Modbus points through BACnet/IP

Expose Modbus points through BACnet/IP

Configure the network identity and objects, verify values and reliability, and understand command behavior.

Prepare the integration

Identify the BACnet/IP network, its configured UDP port, the required unique device instance, and the Modbus equipment and point map. Use the SB1000 web interface. Confirm the receiving BACnet system supports the object types and properties you plan to use.

1. Establish the BACnet side

  1. Select BACnet operation for the relevant serial port and configure matching Modbus line settings.
  2. Set the intended BACnet device identity, names, network interface, and UDP port using the controls provided by the installed firmware. Avoid duplicate device instances on the BACnet internetwork.
  3. Ensure the BACnet client reaches that interface and port. A working HTTP connection does not prove that BACnet UDP traffic is allowed.
  4. Begin discovery on the same IP subnet when practical. If the system spans subnets, use the BACnet network design's supported router/BBMD/foreign-device arrangement. Do not assume ordinary IP routing forwards BACnet discovery broadcasts, or that every such role is implemented by SB1000.
  5. Confirm the discovered device identity belongs to the intended SB1000.

2. Define a small object set

Add the correct Modbus device address and choose a matching library solution or custom point definition. Check the register table, raw offset, type/width, order, scaling, units, and access against the manufacturer's map.

Start with a known read-only value. Save the profile and allow the protocol services to restart. Object names follow the configured prefix, separator, device name, and point name. Discover or refresh the object list in the BACnet client after changes.

A valid BACnet object definition is not proof that the Modbus source can be read. Use the SB1000 diagnostics to confirm the source transaction.

3. Verify value, reliability, and age

Read the object's value and quality/reliability information. Compare the value and unit with a known field reading. Timeout, CRC, bad-response, and rejected-write conditions can affect the object's reliability/state.

On firmware exposing it, proprietary property 1306 reports time since the last successful poll. Use supported freshness/status information to distinguish a current value from an old one.

For Change of Value (COV), verify that the subscription was accepted and remains active. Under resource pressure a subscription can be denied. Configure suitable polling as a fallback where the BACnet client supports it. Also check thresholds and the field device's own update rate before diagnosing a frozen value.

4. Choose writable-point behavior deliberately

The SB1000 controls distinguish “Hold” from “Follow the bus” on firmware offering this choice.

  • Hold: the priority array determines Present_Value. A command remains visible until it is relinquished, even if another master changes the underlying register.
  • Follow the bus: a command is written once to the device, then Present_Value follows what the field device reports. This is intended for arrangements where another controller may also write through the supported bus architecture.

Check which behavior the installation requires. A retained BACnet command and actual actuator feedback are not necessarily the same point. Confirm the client's write priority, relinquish method, and the field device's access and interlocks.

Test only a documented, reversible command. Read the actual feedback and release/restore the test afterward. Do not infer physical movement from a successful BACnet write alone.

Complete the integration

Verify discovery, a correct live value with units, reliability/freshness, the chosen COV/polling arrangement, and any required command/relinquish behavior. Record the device instance, interface/UDP port, object names, source point map, and versions.

If discovery fails, provide both network locations and the exact discovery/error result. If only a value fails, provide the BACnet object details and the corresponding Modbus request/status. This separates an IP/BACnet issue from a field-bus or decoding issue.