πŸŽ“ Lesson 2 D2

Understanding the VT Client-Server Model and Object Pool Structure

The VT Client-Server Model is how a tractor (client) talks to a display screen (server) to control implements, using reusable software objects stored in a shared pool.

🎯 Learning Objectives

  • βœ“ Explain the functional roles of VT client and VT server using ISO 11783-6 terminology
  • βœ“ Analyze a VT object pool allocation trace to identify memory leaks or invalid object reuse
  • βœ“ Design a compliant VT object pool configuration for a given set of UI elements (e.g., 5 buttons, 2 sliders, 1 text field)
  • βœ“ Apply VT object ID assignment rules to verify conformance with ISO 11783-6 Annex A

πŸ“– Why This Matters

In modern mining and blasting operations, ISOBUS-enabled equipment β€” like hydraulic breakers, drill rig controllers, and payload monitors β€” relies on seamless human-machine interaction via Virtual Terminals. If the VT client-server model fails or the object pool is misconfigured, operators lose critical control feedback during high-risk tasks (e.g., blast timing or boom positioning), risking safety, downtime, and non-compliance with OEM interoperability mandates. Understanding this architecture isn’t just about software β€” it’s about ensuring deterministic, certified control in harsh, mission-critical environments.

πŸ“˜ Core Principles

The VT Client-Server Model operates on a request-response paradigm: the client initiates object creation (e.g., 'create button at position X,Y'), and the server fulfills it from its static object pool β€” a fixed-size memory region pre-allocated at boot. Objects (buttons, sliders, containers) are identified by unique 16-bit Object IDs (OIDs), managed in three states: FREE, ALLOCATED, and RESERVED. The pool size is negotiated during VT initialization (via VT Status Object, PID 0x0001) and must accommodate worst-case UI complexity without dynamic allocation. ISO 11783-6 mandates that all OIDs be globally unique within a VT session and that object lifetimes strictly follow server-controlled de-allocation β€” no client-side memory management is permitted. This design eliminates heap fragmentation and enables SIL2-capable determinism required for off-highway machinery.

πŸ“ Minimum Object Pool Size Calculation

The minimum required object pool size (in objects) is calculated based on maximum concurrent UI elements needed plus overhead for container hierarchies and system-reserved objects. This ensures compliance with ISO 11783-6 Β§7.4.2 and avoids 'Pool Full' errors during operation.

VT Object Pool Minimum Size

N_min = ⌈(N_ui + N_container + N_reserved) Γ— (1 + M_margin)βŒ‰

Calculates the smallest integer number of objects required in the VT server’s static pool to support a given UI configuration while meeting ISO 11783-6 robustness requirements.

Variables:
SymbolNameUnitDescription
N_min Minimum object pool size objects Total number of OIDs the VT server must support
N_ui User interface objects objects Count of interactive elements (buttons, displays, sliders, etc.)
N_container Container objects objects Each hierarchical container consumes one OID, even if empty
N_reserved Reserved system objects objects Mandatory OIDs for VT Status, Keyboard, Cursor, and System Menu (ISO 11783-6 Table 11)
M_margin Design margin decimal Recommended 0.10–0.25 to accommodate future features or transient overload
Typical Ranges:
Class A VT (basic): 12 – 16 objects
Class B VT (advanced HMI): 32 – 64 objects
Class C VT (mining/blast control): 64 – 128 objects

πŸ’‘ Worked Example

Problem: A blast-hole depth monitor VT client requires: 3 pushbuttons, 2 numeric displays, 1 slider, 1 text field, and 1 container to group them. Per ISO 11783-6, the container consumes 1 OID, each child consumes 1 OID, and 4 reserved OIDs are mandated for system use (Status, Keyboard, etc.).
1. Step 1: Count user UI objects β†’ 3 + 2 + 1 + 1 = 7
2. Step 2: Add container object β†’ 7 + 1 = 8
3. Step 3: Add mandatory reserved objects (ISO 11783-6 Table 11) β†’ 8 + 4 = 12
4. Step 4: Apply 20% margin for future expansion or error recovery β†’ 12 Γ— 1.2 = 14.4 β†’ round up to 15
Answer: The minimum compliant object pool size is 15 objects, which exceeds the ISO-recommended minimum of 12 and falls within typical embedded VT implementations (16–64 objects).

πŸ—οΈ Real-World Application

At the BHP South Flank iron ore mine in Western Australia, a CAT 6060 FS electric rope shovel integrates ISOBUS VT functionality for its blast monitoring HMI. During commissioning, engineers observed intermittent UI freezes when loading complex drill pattern overlays. Root-cause analysis revealed the VT server’s object pool was configured for only 12 objects β€” insufficient for the overlay’s nested container (1), 8 dynamic zone indicators, 2 zoom controls, and 4 status labels. After reconfiguring the pool to 32 objects (per ISO 11783-6 Class C requirements) and enforcing strict client-side OID release discipline, UI stability improved from 92% to 99.99% uptime over 30-day operational validation.

πŸ“‹ Case Connection

πŸ“‹ VT Task Controller Handshake Failure Diagnosis at Australian Cotton Farm

VT session drops after 8–12 minutes during high-load harvesting, triggering safety shutdowns

πŸ“‹ VT Display Layout Standardization Across 12 Seeder Brands

Operator confusion due to inconsistent screen layouts, button placement, and parameter labeling across brands

πŸ“š References