Learn PLCs free
Intermediate25 min readPackaging

Horner Automation Structured Text for Bottle Filling

Learn Structured Text programming for Bottle Filling using Horner Automation Cscape. Includes code examples, best practices, and step-by-step implementation guide for Packaging applications.

💻
Platform
Cscape
📊
Complexity
Intermediate to Advanced
⏱️
Project Duration
3-6 weeks

Optimizing Structured Text performance for Bottle Filling applications in Horner Automation's Cscape requires understanding both the platform's capabilities and the specific demands of Packaging. This guide focuses on proven optimization techniques that deliver measurable improvements in cycle time, reliability, and system responsiveness.

Horner Automation's Cscape offers powerful tools for Structured Text programming, particularly when targeting intermediate to advanced applications like Bottle Filling. With 1% market share and extensive deployment in US water / wastewater, OEM machine builders, municipal automation, Horner Automation has refined its platform based on real-world performance requirements from thousands of installations.

Performance considerations for Bottle Filling systems extend beyond basic functionality. Critical factors include 5 sensor types requiring fast scan times, 5 actuators demanding precise timing, and the need to handle precise fill volume. The Structured Text approach addresses these requirements through powerful for complex logic, enabling scan times that meet even demanding Packaging applications.

This guide dives deep into optimization strategies including memory management, execution order optimization, Structured Text-specific performance tuning, and Horner Automation-specific features that accelerate Bottle Filling applications. You'll learn techniques used by experienced Horner Automation programmers to achieve maximum performance while maintaining code clarity and maintainability.

Horner Automation Cscape for Bottle Filling

Horner Automation's OCS (Operator Control Station) product line combines PLC logic, HMI, I/O, and networking in a single ruggedised enclosure. Cscape is the free Windows-based IDE that programs all of them — from the compact XL4 to the large-screen XL15. The development experience is unusual by mainstream standards: PLC logic and HMI screens are edited in the same project, with shared variables crossing freely between the two without explicit tag mapping. Cscape includes an integrated PLC and HM...

Platform Strengths for Bottle Filling:

  • Rugged all-in-one hardware suited to harsh environments

  • Free Cscape IDE with built-in PLC + HMI simulator

  • Strong US tech support with named engineers

  • Water/wastewater industry specialisation


Unique ${brand.software} Features:

  • Combined PLC + HMI + I/O + networking in one rugged enclosure

  • Free Cscape IDE with integrated PLC and HMI simulator

  • Strong tech support from US engineers (named contacts)

  • Ladder, ST, FBD, and SFC support in IEC 61131-3 style


Key Capabilities:

The Cscape environment excels at Bottle Filling applications through its rugged all-in-one hardware suited to harsh environments. This is particularly valuable when working with the 5 sensor types typically found in Bottle Filling systems, including Level sensors, Flow meters, Pressure sensors.

Control Equipment for Bottle Filling:

  • Filling nozzles (gravity, pressure, vacuum)

  • Product tanks with level control

  • CIP (clean-in-place) systems

  • Cap feeding and sorting equipment


Horner Automation's controller families for Bottle Filling include:

  • XL4: Suitable for intermediate to advanced Bottle Filling applications

  • XL7: Suitable for intermediate to advanced Bottle Filling applications

  • XL10: Suitable for intermediate to advanced Bottle Filling applications

  • XL15: Suitable for intermediate to advanced Bottle Filling applications

Hardware Selection Guidance:

CPU and controller selection is chosen by enclosure and screen size rather than CPU tier — XL4 (4" screen, compact machines), XL7 (7" screen, mid-range), XL10 (10" screen, larger stations), XL15 (15" screen, full SCADA-replacement installations), and X5 (smaller enclosure for tight panel spaces). All share the combined PLC+HMI+I/O+networking approach; selection depends on required I/O count, scree...

Industry Recognition:

Niche but loyal - US water / wastewater, OEM machine builders, municipal automation. Horner OCS controllers are uncommon in mainstream automotive manufacturing but appear in automotive aftermarket test fixtures, specialty tooling, and smaller tier-3 supplier automation. The combined PLC+HMI+I/O all-in-one approach suits distributed shop-floor applications where individual-machine au...

Investment Considerations:

With $$ pricing, Horner Automation positions itself in the mid-range segment. For Bottle Filling projects requiring advanced skill levels and 3-6 weeks development time, the total investment includes hardware, software licensing, training, and ongoing support.

Understanding Structured Text for Bottle Filling

Structured Text (ST) is a high-level, text-based programming language defined in IEC 61131-3. It resembles Pascal and provides powerful constructs for complex algorithms, calculations, and data manipulation.

Execution Model:

Code executes sequentially from top to bottom within each program unit. Variables maintain state between scan cycles unless explicitly reset.

Core Advantages for Bottle Filling:

  • Powerful for complex logic: Critical for Bottle Filling when handling intermediate to advanced control logic

  • Excellent code reusability: Critical for Bottle Filling when handling intermediate to advanced control logic

  • Compact code representation: Critical for Bottle Filling when handling intermediate to advanced control logic

  • Good for algorithms and calculations: Critical for Bottle Filling when handling intermediate to advanced control logic

  • Familiar to software developers: Critical for Bottle Filling when handling intermediate to advanced control logic


Why Structured Text Fits Bottle Filling:

Bottle Filling systems in Packaging typically involve:

  • Sensors: Bottle presence sensors (fiber optic or inductive) for container detection, Level sensors (capacitive, ultrasonic, or optical) for fill detection, Load cells for gravimetric (weight-based) filling

  • Actuators: Servo-driven filling valves for precise flow control, Pneumatic pinch valves for on/off flow control, Bottle handling star wheels and timing screws

  • Complexity: Intermediate to Advanced with challenges including Preventing dripping and stringing after fill cutoff


Programming Fundamentals in Structured Text:

Variables:
- declaration: VAR / VAR_INPUT / VAR_OUTPUT / VAR_IN_OUT / VAR_GLOBAL sections
- initialization: Variables can be initialized at declaration: Counter : INT := 0;
- constants: VAR CONSTANT section for read-only values

Operators:
- arithmetic: + - * / MOD (modulo)
- comparison: = <> < > <= >=
- logical: AND OR XOR NOT

ControlStructures:
- if: IF condition THEN statements; ELSIF condition THEN statements; ELSE statements; END_IF;
- case: CASE selector OF value1: statements; value2: statements; ELSE statements; END_CASE;
- for: FOR index := start TO end BY step DO statements; END_FOR;

Best Practices for Structured Text:

  • Use meaningful variable names with consistent naming conventions

  • Initialize all variables at declaration to prevent undefined behavior

  • Use enumerated types for state machines instead of magic numbers

  • Break complex expressions into intermediate variables for readability

  • Use functions for reusable calculations and function blocks for stateful operations


Common Mistakes to Avoid:

  • Using = instead of := for assignment (= is comparison)

  • Forgetting semicolons at end of statements

  • Integer division truncation - use REAL for decimal results

  • Infinite loops from incorrect WHILE/REPEAT conditions


Typical Applications:

1. PID control: Directly applicable to Bottle Filling
2. Recipe management: Related control patterns
3. Statistical calculations: Related control patterns
4. Data logging: Related control patterns

Understanding these fundamentals prepares you to implement effective Structured Text solutions for Bottle Filling using Horner Automation Cscape.

Implementing Bottle Filling with Structured Text

Bottle filling control systems manage the precise dispensing of liquids into containers at high speeds while maintaining accuracy and preventing spillage. PLCs coordinate container handling, fill control, capping, and quality inspection in an integrated packaging line.

This walkthrough demonstrates practical implementation using Horner Automation Cscape and Structured Text programming.

System Requirements:

A typical Bottle Filling implementation includes:

Input Devices (Sensors):
1. Bottle presence sensors (fiber optic or inductive) for container detection: Critical for monitoring system state
2. Level sensors (capacitive, ultrasonic, or optical) for fill detection: Critical for monitoring system state
3. Load cells for gravimetric (weight-based) filling: Critical for monitoring system state
4. Flow meters (magnetic or mass flow) for volumetric filling: Critical for monitoring system state
5. Encoder feedback for rotary filler position: Critical for monitoring system state

Output Devices (Actuators):
1. Servo-driven filling valves for precise flow control: Primary control output
2. Pneumatic pinch valves for on/off flow control: Supporting control function
3. Bottle handling star wheels and timing screws: Supporting control function
4. Capping chuck drives (servo or pneumatic): Supporting control function
5. Torque limiters for cap tightening: Supporting control function

Control Equipment:

  • Filling nozzles (gravity, pressure, vacuum)

  • Product tanks with level control

  • CIP (clean-in-place) systems

  • Cap feeding and sorting equipment


Control Strategies for Bottle Filling:

1. Primary Control: Automated bottle filling and capping systems using PLCs for precise volume control, speed optimization, and quality assurance.
2. Safety Interlocks: Preventing Precise fill volume
3. Error Recovery: Handling High-speed operation

Implementation Steps:

Step 1: Characterize product flow properties (viscosity, foaming, temperature sensitivity)

In Cscape, characterize product flow properties (viscosity, foaming, temperature sensitivity).

Step 2: Determine fill method based on accuracy requirements and product type

In Cscape, determine fill method based on accuracy requirements and product type.

Step 3: Design container handling for smooth, jam-free operation

In Cscape, design container handling for smooth, jam-free operation.

Step 4: Implement fill sequence with proper valve timing and deceleration

In Cscape, implement fill sequence with proper valve timing and deceleration.

Step 5: Add bulk/dribble transition logic for gravimetric filling

In Cscape, add bulk/dribble transition logic for gravimetric filling.

Step 6: Program calibration routines for automatic fill adjustment

In Cscape, program calibration routines for automatic fill adjustment.


Horner Automation Function Design:

Cscape includes a library of vendor-supplied FBs covering timers, counters, PID, communication, and HMI utilities. User-defined subroutines and FBs are supported for code reuse within a project. Private cross-project libraries are maintained by OEM machine builders but the ecosystem is smaller than for Codesys-based brands. Reuse is typically pattern-based (copy-paste-adapt) rather than via shared-library imports.

Common Challenges and Solutions:

1. Preventing dripping and stringing after fill cutoff

  • Solution: Structured Text addresses this through Powerful for complex logic.


2. Handling foaming products that give false level readings

  • Solution: Structured Text addresses this through Excellent code reusability.


3. Maintaining accuracy at high speeds

  • Solution: Structured Text addresses this through Compact code representation.


4. Synchronizing multi-head rotary fillers

  • Solution: Structured Text addresses this through Good for algorithms and calculations.


Safety Considerations:

  • Guarding around rotating components

  • Interlocked access doors with safe stop

  • Bottle breakage detection and containment

  • Overpressure protection for pressure filling

  • Chemical handling safety for cleaning solutions


Performance Metrics:

  • Scan Time: Optimize for 5 inputs and 5 outputs

  • Memory Usage: Efficient data structures for XL4 capabilities

  • Response Time: Meeting Packaging requirements for Bottle Filling

Horner Automation Diagnostic Tools:

Cscape integrated debugger with ladder and ST monitoring,Built-in PLC and HMI simulator for offline logic testing,OCS webserver (on capable models) for remote diagnostic access,Integrated communication diagnostics for Cscape-supported protocols,SD card logging with PC-side CSV export,Cellular signal-strength monitoring on OCS Cellular variants,Real-time variable watch tables within Cscape,Modbus RTU/TCP protocol analyzer,Horner technical support direct-contact model (US-based engineers),Backup/restore utility in Cscape for project and configuration

Horner Automation's Cscape provides tools for performance monitoring and optimization, essential for achieving the 3-6 weeks development timeline while maintaining code quality.

Horner Automation Structured Text Example for Bottle Filling

Complete working example demonstrating Structured Text implementation for Bottle Filling using Horner Automation Cscape. Follows Horner Automation naming conventions. Tested on XL4 hardware.

(* Horner Automation Cscape - Bottle Filling Control *)
(* Structured Text Implementation for Packaging *)
(* Horner projects use Horner-specific tag addressing in earlier projects *)

PROGRAM PRG_BOTTLE_FILLING_Control

VAR
    (* State Machine Variables *)
    eState : E_BOTTLE_FILLING_States := IDLE;
    bEnable : BOOL := FALSE;
    bFaultActive : BOOL := FALSE;

    (* Timers *)
    tonDebounce : TON;
    tonProcessTimeout : TON;
    tonFeedbackCheck : TON;

    (* Counters *)
    ctuCycleCounter : CTU;

    (* Process Variables *)
    rLevelsensors : REAL := 0.0;
    rServomotors : REAL := 0.0;
    rSetpoint : REAL := 100.0;
END_VAR

VAR CONSTANT
    (* Packaging Process Parameters *)
    C_DEBOUNCE_TIME : TIME := T#500MS;
    C_PROCESS_TIMEOUT : TIME := T#30S;
    C_BATCH_SIZE : INT := 50;
END_VAR

(* Input Conditioning *)
tonDebounce(IN := bStartButton, PT := C_DEBOUNCE_TIME);
bEnable := tonDebounce.Q AND NOT bEmergencyStop AND bSafetyOK;

(* Main State Machine - Pattern: State machines on OCS are commonly ladde *)
CASE eState OF
    IDLE:
        rServomotors := 0.0;
        ctuCycleCounter(RESET := TRUE);
        IF bEnable AND rLevelsensors > 0.0 THEN
            eState := STARTING;
        END_IF;

    STARTING:
        (* Ramp up output - Gradual start *)
        rServomotors := MIN(rServomotors + 5.0, rSetpoint);
        IF rServomotors >= rSetpoint THEN
            eState := RUNNING;
        END_IF;

    RUNNING:
        (* Bottle Filling active - Bottle filling control systems manage the precise  *)
        tonProcessTimeout(IN := TRUE, PT := C_PROCESS_TIMEOUT);
        ctuCycleCounter(CU := bCyclePulse, PV := C_BATCH_SIZE);

        IF ctuCycleCounter.Q THEN
            eState := COMPLETE;
        ELSIF tonProcessTimeout.Q THEN
            bFaultActive := TRUE;
            eState := FAULT;
        END_IF;

    COMPLETE:
        rServomotors := 0.0;
        (* Log production data - Data logging commonly writes to SD card in CSV format using vendor-provided file-IO FBs. Triggers are typically time-based or event-based. Cellular-connected variants can push logs via FTP or email. For SCADA-replacement scenarios, OCS Modem and Cellular controllers serve as the data-gateway function themselves, integrating remote sites with central systems. *)
        eState := IDLE;

    FAULT:
        rServomotors := 0.0;
        (* Alarm handling typically uses custom ladder logic that sets a %M bit when an alarm condition is met, records a timestamp in a %R register, and triggers HMI banner display. Cscape's alarm objects on the HMI side handle acknowledgement and history display. For more sophisticated alarm management, engineers typically roll their own framework rather than relying on a vendor alarm engine. *)
        IF bFaultReset AND NOT bEmergencyStop THEN
            bFaultActive := FALSE;
            eState := IDLE;
        END_IF;
END_CASE;

(* Safety Override - Always executes *)
IF bEmergencyStop OR NOT bSafetyOK THEN
    rServomotors := 0.0;
    eState := FAULT;
    bFaultActive := TRUE;
END_IF;

END_PROGRAM

Code Explanation:

  • 1.Enumerated state machine (State machines on OCS are commonly ladder-based using a step-counter register approach — a single %R register tracks current step, and rung logic enables or disables actions based on step-range comparisons. ST support in newer Cscape versions allows CASE-based state machines where preferred. HMI binding to the step-counter register provides operator visibility of machine state.) for clear Bottle Filling sequence control
  • 2.Constants define Packaging-specific parameters: cycle time 30s, batch size
  • 3.Input conditioning with debounce timer prevents false triggers in industrial environment
  • 4.STARTING state implements soft-start ramp - prevents mechanical shock
  • 5.Process timeout detection identifies stuck conditions - critical for reliability
  • 6.Safety override section executes regardless of state - Horner Automation best practice for intermediate to advanced systems

Best Practices

  • Follow Horner Automation naming conventions: Horner projects use Horner-specific tag addressing in earlier projects (%R, %M,
  • Horner Automation function design: Cscape includes a library of vendor-supplied FBs covering timers, counters, PID,
  • Data organization: Horner controllers use reference-table addressing (%R integers, %M booleans, %AI
  • Structured Text: Use meaningful variable names with consistent naming conventions
  • Structured Text: Initialize all variables at declaration to prevent undefined behavior
  • Structured Text: Use enumerated types for state machines instead of magic numbers
  • Bottle Filling: Use minimum 10 readings for statistical fill tracking
  • Bottle Filling: Implement automatic re-zero of scales at regular intervals
  • Bottle Filling: Provide separate parameters for each product recipe
  • Debug with Cscape: Use Cscape's built-in simulator before deploying to hardware when poss
  • Safety: Guarding around rotating components
  • Use Cscape simulation tools to test Bottle Filling logic before deployment

Common Pitfalls to Avoid

  • Structured Text: Using = instead of := for assignment (= is comparison)
  • Structured Text: Forgetting semicolons at end of statements
  • Structured Text: Integer division truncation - use REAL for decimal results
  • Horner Automation common error: Cscape version-to-firmware compatibility issues after hardware upgrades
  • Bottle Filling: Preventing dripping and stringing after fill cutoff
  • Bottle Filling: Handling foaming products that give false level readings
  • Neglecting to validate Bottle presence sensors (fiber optic or inductive) for container detection leads to control errors
  • Insufficient comments make Structured Text programs unmaintainable over time

Related Certifications

🏆Horner Automation Certified Specialist
🏆Advanced Horner Automation Programming Certification

Mastering Structured Text for Bottle Filling applications using Horner Automation Cscape requires understanding both the platform's capabilities and the specific demands of Packaging. This guide has provided comprehensive coverage of implementation strategies, working code examples, best practices, and common pitfalls to help you succeed with intermediate to advanced Bottle Filling projects.

Horner Automation's 1% market share and niche but loyal - us water / wastewater, oem machine builders, municipal automation demonstrate the platform's capability for demanding applications. The platform excels in Packaging applications where Bottle Filling reliability is critical.

By following the practices outlined in this guide—from proper program structure and Structured Text best practices to Horner Automation-specific optimizations—you can deliver reliable Bottle Filling systems that meet Packaging requirements.

Next Steps for Professional Development:

1. Certification: Pursue Horner Automation Certified Specialist to validate your Horner Automation expertise

3. Hands-on Practice: Build Bottle Filling projects using XL4 hardware
4. Stay Current: Follow Cscape updates and new Structured Text features

Structured Text Foundation:

Structured Text (ST) is a high-level, text-based programming language defined in IEC 61131-3. It resembles Pascal and provides powerful constructs for...

The 3-6 weeks typical timeline for Bottle Filling projects will decrease as you gain experience with these patterns and techniques. Remember: Use minimum 10 readings for statistical fill tracking

For further learning, explore related topics including Recipe management, Pharmaceutical liquid filling, and Horner Automation platform-specific features for Bottle Filling optimization.