Programming the Bristol FB300 with OpenBSI and ACCOL
Key Takeaway
A practical guide to programming the Bristol FB300 RTU using OpenBSI and legacy ACCOL tools — covering project setup, I/O point configuration, control logic development, communication parameter setup, and program download/verification procedures.
Quick Answer
The Bristol FB300 is programmed using OpenBSI for graphical configuration or ACCOL for text-based function-block programming. Both tools handle I/O point definition, control logic, communication setup, and historical data logging. OpenBSI is the modern standard for new deployments.
Choosing Between OpenBSI and ACCOL
| Feature | OpenBSI | ACCOL |
|---|---|---|
| Interface | Graphical (Windows) | Text-based |
| Learning curve | Moderate — visual drag-and-drop | Steep — requires ACCOL syntax knowledge |
| New deployments | Recommended | Legacy only |
| Online diagnostics | Rich — live point monitoring, trending | Basic — register-level viewing |
| Program portability | Export/import between FB300 units | Copy source files manually |
Step 1 — Project Setup in OpenBSI
- Install OpenBSI on a Windows workstation. Ensure you have the correct version that supports your FB300 firmware revision — version mismatches can cause download failures.
- Create a new project and select the FB300 as the target device. OpenBSI will present the hardware configuration dialog where you define the installed I/O cards and their slot positions.
- Configure the communication path — typically RS-232 direct connect for initial programming, or Ethernet if the FB300 IP address is already configured.
Step 2 — I/O Point Configuration
- For each physical I/O channel, create a logical point with:
- Point name: A descriptive tag name (e.g.,
TK101_LEVEL,PMP201_RUN). - Engineering units: The display unit (PSI, °F, BBL, GPM) and the zero/span scaling parameters.
- Alarm limits: High, high-high, low, and low-low setpoints with configurable deadbands.
- Scan rate: How frequently the point is read from the I/O card (typical: 1 second for critical points, 5–10 seconds for non-critical).
- Point name: A descriptive tag name (e.g.,
- Use consistent naming conventions across all FB300 units in your system
to simplify SCADA master configuration. A recommended pattern:
[AREA]_[EQUIPMENT]_[PARAMETER]— for example,TB01_TK101_LVLfor Tank Battery 01, Tank 101, Level.
Step 3 — Control Logic Development
OpenBSI provides function blocks for common oilfield control logic:
- Analog scaling blocks: Convert raw ADC counts to engineering units (see our analog input scaling guide for details).
- Alarm blocks: Monitor process values against configurable setpoints and generate alarm events.
- Timer blocks: Implement on-delay, off-delay, and retentive timers for pump restart delays and sequencing logic.
- PID blocks: Closed-loop control for pressure regulation, level control, or temperature control applications.
- Flow calculation blocks: AGA-3, AGA-7, and AGA-8 compliant flow computation for gas measurement applications.
- Logic blocks: AND, OR, NOT, comparison, and mathematical operations for building custom control sequences.
Step 4 — Communication Parameter Setup
- Configure the DNP3 outstation parameters:
- DNP3 address (unique on the communication network)
- Data link layer parameters (timeouts, retries)
- Point-to-DNP3 index mapping
- Event classes (Class 1, 2, 3) and unsolicited response settings
- Configure Modbus if the FB300 will poll downstream
instruments:
- Serial port parameters (baud rate, parity, stop bits)
- Modbus slave address table
- Register map (function codes 03, 04, 06, 16)
Step 5 — Historical Data Logging
- Select which points to log and at what interval (1-minute, 5-minute, or 15-minute are common for production reporting).
- Configure the log buffer depth — the FB300 stores historical data in non-volatile memory, and the buffer depth determines how many hours or days of data are retained locally if communication with the SCADA master is lost.
- Enable event logging for digital state changes and alarm transitions so that SCADA can reconstruct the sequence of events after a communication outage.
Step 6 — Program Download and Verification
- Connect to the FB300 via OpenBSI (RS-232 or Ethernet).
- Download the complete configuration. OpenBSI will transfer the I/O setup, control logic, communication parameters, and logging configuration.
- After download, perform a point-by-point verification:
- Confirm all analog inputs read correctly (use a milliamp source).
- Toggle digital inputs and verify status in OpenBSI.
- Test digital outputs and verify field device response.
- Confirm DNP3 polling from the SCADA master returns valid data.
- Save the verified configuration to your version-control system or configuration management archive. Include the FB300 firmware version and OpenBSI project version in the archive metadata.
Frequently Asked Questions
OpenBSI is the modern graphical configuration tool for Bristol RTUs, offering drag-and-drop function blocks, live point monitoring, and rich diagnostics. ACCOL is the legacy text-based programming language that uses predefined function blocks. OpenBSI is recommended for all new FB300 deployments; ACCOL is maintained for backward compatibility with existing installations.
Use a consistent pattern like [AREA]_[EQUIPMENT]_[PARAMETER] — for example, TB01_TK101_LVL for Tank Battery 01, Tank 101, Level. This simplifies SCADA master configuration and makes point names meaningful across all RTUs in your system.
OpenBSI provides analog scaling blocks, alarm blocks (with configurable setpoints and deadbands), timer blocks (on-delay, off-delay, retentive), PID control blocks, AGA flow calculation blocks (AGA-3, AGA-7, AGA-8), and general logic blocks (AND, OR, comparison, math operations).