---
title: "Batch Controller for Truck Loading: How It Works | Citia"
description: "A batch controller takes a preset volume, stages the valve, counts meter pulses and stops the truck loading on time. See how it connects to a TAS."
url: https://citia-engineering.com/en/knowledge/batch-controller
language: en
updated: 2026-11-13
type: article
site: Citia Engineering Indonesia
---

# Batch controllers in truck loading: function, operation and TAS integration

A batch controller loads a preset volume at the bay, stages the valve and stops on time. See how it works, how it links to a TAS and why batches overrun.

| Field | Value |
| --- | --- |
| Topic | Truck Loading |
| Author | Tim Engineering Citia |
| Updated | 2026-11-13 |

Key takeaways

A batch controller is the controller at a loading bay that receives the ordered volume, opens and closes the valve, reads the flow meter pulses, and stops the loading exactly at the authorized volume.

You will also hear it called a preset controller or preset counter. It sits between the meter and valve on one side and the terminal automation system on the other. How the TAS divides work with the tank and reporting systems is covered in the Citia article on TAS, TMS and TPS boundaries ; this article stays at the bay.

- A batch controller is the bay-level controller that takes a preset volume, opens and closes the valve, counts flow meter pulses and stops the loading at the authorized quantity.
- It stages the valve from low flow to full flow and back, and uses after-run correction so the valve closes early enough to hit the preset.
- The terminal automation system (TAS) sends the preset and reads back the loaded volume, either directly or through a PLC or interface unit.
- A batch controller cannot make a meter more accurate; accuracy depends on the whole measuring system and its verification.

## What a batch controller does

In plain terms, a batch controller turns an order into a measured, stopped flow. It does the counting that an operator with a stopwatch and a valve handle used to do, and it does it the same way every time.

The Endress+Hauser RA33 technical information (2025) lists the functions that most controllers share: valve control for single-stage and two-stage filling, automatic after-run correction, temperature and density compensation according to ASTM D1250-04, a batch report for every run, and remote start and abort. Terminal-grade controllers such as the Emerson DL8000 add additive injection and blending of up to four products.

- Preset: Holds the authorized volume for one compartment.
- Valve staging: Low flow at start and end, full flow in between.
- Pulse counting: Totalizes meter pulses into volume.
- Compensation: Corrects volume to a reference temperature.
- Permissives: Stops on lost grounding, overfill or emergency stop.
- Batch report: Records preset, loaded volume, time and alarms.

## Inside one batch: from low flow to stop

A batch starts slowly, runs fast and ends slowly. The slow start covers the outlet so the product does not splash; the slow end lets the valve close on the exact preset.

The controller switches the valve stages on volume, not on time. As the preset approaches, it closes the second stage and lets the last part run at low flow. After-run correction then moves the final close command earlier by the volume that still flows while the valve travels, and the automatic version keeps adjusting that value as the valve and pump age.

- Receive preset: The TAS or operator enters the volume for the compartment.
- Check permissives: Grounding, overfill sensor and emergency stop must be healthy.
- Low-flow start: First valve stage opens until the outlet is covered.
- Full flow: Second stage opens; pulses are counted continuously.
- Low-flow finish: Second stage closes before the preset.
- Close and report: Valve closes early by the after-run volume; the batch report is stored.

## How a batch controller talks to the TAS

The TAS tells the controller how much to load, and the controller tells the TAS how much it loaded. Everything else in the integration is about doing that reliably.

Most controllers offer a serial or Ethernet link. The RA33 offers Modbus as an option, and the DL8000 lists Ethernet, EIA-232 and EIA-485. Some terminals connect the TAS to each controller directly; others pass the data through the bay PLC or an interface unit such as Citia's CATALYST CT-BC , which carries batch controller data into the terminal control layer. The choice depends on how many brands and protocols already sit in the filling shed.

Agree on the record before writing any code. The TAS needs more than one number back: it needs the gross and compensated volume, the meter totalizer readings, the temperature, the start and end time and any alarm that interrupted the batch.

Totalizer readings matter most. If a batch result is lost in transit, the difference between two totalizer readings lets the terminal rebuild it without guessing. The example on the right shows a typical set of fields.

```json
// Example only: fields a TAS typically reads back from a
// batch controller after one compartment is loaded.
{
  "bay": "string",
  "arm": "string",
  "compartment": "string",
  "product_code": "string",
  "preset_volume": "number (L)",
  "loaded_gross": "number (L at observed temperature)",
  "loaded_net": "number (L at 15 C, if compensated)",
  "avg_temperature": "number (C)",
  "meter_totalizer_start": "number",
  "meter_totalizer_end": "number",
  "start_time": "ISO 8601",
  "end_time": "ISO 8601",
  "alarms": ["string"],
  "status": "completed | stopped | aborted"
}
```

Example batch record, field names and types only

- TAS: Holds the order and the preset per compartment.
- PLC or interface: Translates protocols and adds bay logic.
- Batch controller: Runs the batch and stores the batch report.
- Flow meter: Sends pulses proportional to volume.
- Control valve: Opens and closes in stages.

## Accuracy: what the controller can and cannot fix

The controller decides when to stop; the meter decides how much actually flowed. A perfect stop on a drifting meter still gives a wrong delivery.

OIML R 117-1:2019 sets the maximum permissible error for complete measuring systems by accuracy class, as the chart shows. For pre-ordered deliveries, it also says the difference between the preset and the indicated quantity at the end must not exceed the minimum specified quantity deviation. Temperature compensation is the other half: the RA33 converts mineral oil volume to 15 °C using ASTM D1250-04, so the TAS can record a net volume that compares with tank stock.

Maximum permissible error by accuracy class

| Label | Value |
| --- | --- |
| Class 0.3 | 0.3 % |
| Class 0.5 | 0.5 % |
| Class 1.0 | 1 % |
| Class 1.5 | 1.5 % |

Source: OIML R 117-1:2019, Table 3, line A (complete measuring system)

Class 0.5 is the default class for measuring systems not listed elsewhere in Table 2.

## Why loadings overrun, and how to find the cause

An overrun is a batch that ends above its preset. It is usually a valve or tuning problem, not a counting problem.

Start with the batch reports. If the overrun grows slowly over weeks, look at the valve. If it jumps between batches, look at pressure and wiring.

Field tip: log the after-run value: Ask for the after-run correction value to be read out with every batch report. A steady rise in that one number is often the earliest warning of a valve that needs service.

- A slow or sticking valve keeps flowing after the close command, so the after-run volume grows.
- A fixed after-run value set years ago no longer matches the pump and valve as they are today.
- Pump pressure changes when several bays load at once, which changes the flow at the moment of closing.
- Pulse noise or a loose pulse cable adds counts, which shows as a meter error rather than a valve error.

## From the field: metering integration at Pertamina sites

Most batch controller work at running terminals is integration, product changes and replacement of single bays. Three Citia records show the range.

At Pulau Layang , the avtur metering integration connects an ISOIL VEGA II flow computer, the CS-Flow application and a machine user interface, so operators see flow rate, gross and net volume, preset and loaded volume, temperature and status in real time.

For Jambi , meters 5 and 6 were brought into CS Flow with tag mapping and communication tests. The Padalarang B50 product update changed product codes in FD Flow and ran test transactions before use.

## Terms used in this article

- Batch controller: Bay controller that loads a preset volume and stops the flow.
- Preset: The volume authorized for one batch or compartment.
- After-run: Volume that still flows after the close command, while the valve moves.
- Two-stage valve: Valve with a low-flow and a full-flow position.
- Totalizer: Running total of all volume a meter has measured.
- Flow computer: Device that calculates corrected flow and volume from meter and sensor inputs.
- Overrun: A batch that ends above its preset.

## Frequently asked questions

Q: What is the difference between a batch controller and a flow computer?

A: A batch controller controls a loading and stops it at the preset, while a flow computer calculates corrected volume from meter and sensor inputs. Many terminal controllers combine both roles, but a custody transfer point may still use a separate flow computer.

Q: How does a batch controller communicate with the TAS?

A: A batch controller communicates with the TAS over a serial or Ethernet link, often using Modbus or a vendor protocol. The TAS sends the preset and start command, and reads back the batch result and totalizers.

Q: What causes a volume overrun at the loading bay?

A: Overrun is usually caused by a slow valve, an outdated after-run setting or pressure changes when several bays load at once. Pulse noise on the meter cable is a less common cause.

Q: Can one batch controller serve several loading arms?

A: Yes, many terminal-grade controllers handle more than one meter or arm, and some blend products. The Emerson DL8000, for example, supports sequential and ratio blending of up to four products.

Q: Does a batch controller correct volume for temperature?

A: Yes, when it has a temperature input and the compensation function is enabled. The Endress+Hauser RA33 converts mineral oil volume to 15 °C using ASTM D1250-04.

## Sources and further reading

1. Technical Information RA33 Batch Controller (TI00163K), Endress+Hauser, 2025-09-30 (https://bdih-download.endress.com/file/c95b3968b61d2cca545ef54ab04083a6/TI00163KEN_0425-00.pdf)
2. DL8000 Preset Controller, Emerson (https://www.emerson.com/en/automation-systems/scada-systems/scada-systems-for-energy-transportation/dl8000-preset-controller)
3. OIML R 117-1:2019 Dynamic measuring systems for liquids other than water, Part 1, International Organization of Legal Metrology (OIML), 2019 (https://www.oiml.org/en/files/pdf_r/r117-1-e19.pdf)
4. API MPMS Chapter 6.2A: Metering Assemblies, Truck and Rail Loading and Unloading Measurement Systems, American Petroleum Institute (listing by BSI), 2021 (https://knowledge.bsigroup.com/products/metering-assemblies-truck-and-rail-loading-and-unloading-measurement-systems)
5. CATALYST CT-BC Batch Controller Interface, PT Citia Engineering Indonesia (https://citia-engineering.com/en/products/batch-controller-interface)
6. Pertamina Pulau Layang: aviation fuel metering integration, PT Citia Engineering Indonesia, 2025 (https://citia-engineering.com/en/projects/pertamina-pulau-layang-aviation-fuel-metering-integration)
7. Cover photo by Kanon Loading Equipment B.V, CC BY-SA 3.0 (cropped and colour graded), Wikimedia Commons (https://commons.wikimedia.org/wiki/File:Bottom_Loading_Arm.jpg)

Connecting batch controllers to your TAS?: Send siTia on WhatsApp the controller brands and models in your filling shed, and a Citia engineer will review the integration options with you.

## Contact

- Company: PT Citia Engineering Indonesia
- siTia - Virtual Assistance: [WhatsApp +62 813-2206-507](https://wa.me/628132206507). siTia answers questions about our products, projects and enquiries on WhatsApp. Replies are automated, and a person from the Citia team follows up.
- Email: services@citiaengineering.com
- Phone / WhatsApp (siTia): +62 813-2206-507
- Location: Bandung, Indonesia

[Contact Citia](https://citia-engineering.com/en/contact.md)

## Structured data (JSON-LD)

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Organization",
      "@id": "https://citia-engineering.com/#organization",
      "name": "Citia Engineering Indonesia",
      "legalName": "PT Citia Engineering Indonesia",
      "alternateName": "Citia",
      "url": "https://citia-engineering.com",
      "logo": {
        "@type": "ImageObject",
        "url": "https://citia-engineering.com/media/citia-logo.png",
        "width": 950,
        "height": 328
      },
      "description": "Citia is an engineering and system integration company in Bandung, Indonesia. We connect field devices, PLC and SCADA, terminal software and enterprise systems, then install, test and maintain them.",
      "email": "services@citiaengineering.com",
      "telephone": "+62 813-2206-507",
      "address": {
        "@type": "PostalAddress",
        "addressLocality": "Bandung",
        "addressRegion": "Jawa Barat",
        "addressCountry": "ID"
      },
      "contactPoint": [
        {
          "@type": "ContactPoint",
          "contactType": "customer service",
          "email": "services@citiaengineering.com",
          "telephone": "+62 813-2206-507",
          "url": "https://citia-engineering.com/en/contact"
        },
        {
          "@type": "ContactPoint",
          "contactType": "customer support",
          "name": "siTia - Virtual Assistance",
          "telephone": "+62 813-2206-507",
          "url": "https://wa.me/628132206507",
          "areaServed": "ID",
          "availableLanguage": [
            "id",
            "en"
          ]
        }
      ],
      "areaServed": {
        "@type": "Country",
        "name": "Indonesia"
      },
      "knowsAbout": [
        "Terminal automation system",
        "Automatic tank gauging",
        "Tank management system",
        "SCADA",
        "Programmable logic controller",
        "Modbus",
        "Field instrumentation",
        "Weighbridge",
        "Pipeline pressure monitoring",
        "Industrial IoT"
      ],
      "brand": [
        {
          "@type": "Brand",
          "name": "INTEGRA"
        },
        {
          "@type": "Brand",
          "name": "CATALYST"
        }
      ],
      "sameAs": [
        "https://www.facebook.com/citiaengineering/",
        "https://www.instagram.com/citiaengineering/"
      ]
    },
    {
      "@type": "WebSite",
      "@id": "https://citia-engineering.com/#website",
      "url": "https://citia-engineering.com",
      "name": "Citia Engineering Indonesia",
      "inLanguage": [
        "en",
        "id"
      ],
      "publisher": {
        "@id": "https://citia-engineering.com/#organization"
      },
      "potentialAction": [
        {
          "@type": "SearchAction",
          "name": "Search Citia News",
          "target": {
            "@type": "EntryPoint",
            "urlTemplate": "https://citia-engineering.com/en/news?q={search_term_string}"
          },
          "query-input": "required name=search_term_string"
        },
        {
          "@type": "SearchAction",
          "name": "Cari di News Citia",
          "target": {
            "@type": "EntryPoint",
            "urlTemplate": "https://citia-engineering.com/id/news?q={search_term_string}"
          },
          "query-input": "required name=search_term_string"
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://citia-engineering.com/en/knowledge/batch-controller#webpage",
      "url": "https://citia-engineering.com/en/knowledge/batch-controller",
      "name": "Batch controllers in truck loading: function, operation and TAS integration",
      "description": "A batch controller takes a preset volume, stages the valve, counts meter pulses and stops the truck loading on time. See how it connects to a TAS.",
      "inLanguage": "en",
      "isPartOf": {
        "@id": "https://citia-engineering.com/#website"
      },
      "publisher": {
        "@id": "https://citia-engineering.com/#organization"
      },
      "about": {
        "@id": "https://citia-engineering.com/#organization"
      },
      "breadcrumb": {
        "@id": "https://citia-engineering.com/en/knowledge/batch-controller#breadcrumb"
      },
      "dateModified": "2026-11-13",
      "mainEntity": {
        "@id": "https://citia-engineering.com/en/knowledge/batch-controller#entity"
      }
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://citia-engineering.com/en/knowledge/batch-controller#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Citia",
          "item": "https://citia-engineering.com/en"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Knowledge",
          "item": "https://citia-engineering.com/en/knowledge"
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Batch controllers in truck loading: function, operation and TAS integration",
          "item": "https://citia-engineering.com/en/knowledge/batch-controller"
        }
      ]
    },
    {
      "@id": "https://citia-engineering.com/en/knowledge/batch-controller#entity",
      "url": "https://citia-engineering.com/en/knowledge/batch-controller",
      "mainEntityOfPage": {
        "@id": "https://citia-engineering.com/en/knowledge/batch-controller#webpage"
      },
      "@type": "TechArticle",
      "headline": "Batch controllers in truck loading: function, operation and TAS integration",
      "description": "A batch controller loads a preset volume at the bay, stages the valve and stops on time. See how it works, how it links to a TAS and why batches overrun.",
      "dateModified": "2026-11-13",
      "author": {
        "@id": "https://citia-engineering.com/#organization"
      },
      "publisher": {
        "@id": "https://citia-engineering.com/#organization"
      },
      "inLanguage": "en",
      "articleSection": "Truck Loading",
      "datePublished": "2026-11-13",
      "image": "https://citia-engineering.com/media/covers/batch-controller.webp"
    },
    {
      "@type": "FAQPage",
      "@id": "https://citia-engineering.com/en/knowledge/batch-controller#faq",
      "url": "https://citia-engineering.com/en/knowledge/batch-controller",
      "inLanguage": "en",
      "isPartOf": {
        "@id": "https://citia-engineering.com/en/knowledge/batch-controller#webpage"
      },
      "mainEntity": [
        {
          "@type": "Question",
          "name": "What is the difference between a batch controller and a flow computer?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "A batch controller controls a loading and stops it at the preset, while a flow computer calculates corrected volume from meter and sensor inputs. Many terminal controllers combine both roles, but a custody transfer point may still use a separate flow computer."
          }
        },
        {
          "@type": "Question",
          "name": "How does a batch controller communicate with the TAS?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "A batch controller communicates with the TAS over a serial or Ethernet link, often using Modbus or a vendor protocol. The TAS sends the preset and start command, and reads back the batch result and totalizers."
          }
        },
        {
          "@type": "Question",
          "name": "What causes a volume overrun at the loading bay?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Overrun is usually caused by a slow valve, an outdated after-run setting or pressure changes when several bays load at once. Pulse noise on the meter cable is a less common cause."
          }
        },
        {
          "@type": "Question",
          "name": "Can one batch controller serve several loading arms?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Yes, many terminal-grade controllers handle more than one meter or arm, and some blend products. The Emerson DL8000, for example, supports sequential and ratio blending of up to four products."
          }
        },
        {
          "@type": "Question",
          "name": "Does a batch controller correct volume for temperature?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Yes, when it has a temperature input and the compensation function is enabled. The Endress+Hauser RA33 converts mineral oil volume to 15 °C using ASTM D1250-04."
          }
        }
      ]
    },
    {
      "@type": "DefinedTermSet",
      "@id": "https://citia-engineering.com/en/knowledge/batch-controller#glossary",
      "url": "https://citia-engineering.com/en/knowledge/batch-controller",
      "inLanguage": "en",
      "isPartOf": {
        "@id": "https://citia-engineering.com/en/knowledge/batch-controller#webpage"
      },
      "name": "Terms used in this article",
      "hasDefinedTerm": [
        {
          "@type": "DefinedTerm",
          "name": "Batch controller",
          "description": "Bay controller that loads a preset volume and stops the flow.",
          "inDefinedTermSet": {
            "@id": "https://citia-engineering.com/en/knowledge/batch-controller#glossary"
          }
        },
        {
          "@type": "DefinedTerm",
          "name": "Preset",
          "description": "The volume authorized for one batch or compartment.",
          "inDefinedTermSet": {
            "@id": "https://citia-engineering.com/en/knowledge/batch-controller#glossary"
          }
        },
        {
          "@type": "DefinedTerm",
          "name": "After-run",
          "description": "Volume that still flows after the close command, while the valve moves.",
          "inDefinedTermSet": {
            "@id": "https://citia-engineering.com/en/knowledge/batch-controller#glossary"
          }
        },
        {
          "@type": "DefinedTerm",
          "name": "Two-stage valve",
          "description": "Valve with a low-flow and a full-flow position.",
          "inDefinedTermSet": {
            "@id": "https://citia-engineering.com/en/knowledge/batch-controller#glossary"
          }
        },
        {
          "@type": "DefinedTerm",
          "name": "Totalizer",
          "description": "Running total of all volume a meter has measured.",
          "inDefinedTermSet": {
            "@id": "https://citia-engineering.com/en/knowledge/batch-controller#glossary"
          }
        },
        {
          "@type": "DefinedTerm",
          "name": "Flow computer",
          "description": "Device that calculates corrected flow and volume from meter and sensor inputs.",
          "inDefinedTermSet": {
            "@id": "https://citia-engineering.com/en/knowledge/batch-controller#glossary"
          }
        },
        {
          "@type": "DefinedTerm",
          "name": "Overrun",
          "description": "A batch that ends above its preset.",
          "inDefinedTermSet": {
            "@id": "https://citia-engineering.com/en/knowledge/batch-controller#glossary"
          }
        }
      ]
    }
  ]
}
```
