Learn PLCs free
Programming Tutorials44 min read8,693 words

Delta PLC Programming Tutorial: DVP Ladder Logic

Learn Delta PLC programming with a model-aware guide to DVP, AS and AH controllers, WPLSoft, ISPSoft, DIADesigner, ladder logic, simulation and commissioning.

PPI
PLC Programming IO Editorial Team
Sourced guidance with documented review and correction standards

To program a Delta PLC, first identify the exact CPU and confirm its supported editor in Delta's current product page or manual. WPLSoft and ISPSoft both support DVP projects, while Delta now also promotes DIADesigner for AS and newer DVP families. Editor choice, available IEC 61131-3 languages, cable, driver and simulation support vary by controller. WPLSoft and ISPSoft are Windows applications.

Reviewed 25 July 2026. This guide was checked against Delta's current PLC catalogue, software FAQs, AS programming manual and model pages. Where a feature varies by part number, the guide tells you to verify the CPU manual instead of applying a family-wide claim.

Introduction: Master Delta PLC Programming for Cost-Effective Automation

Delta's PLC catalogue spans compact DVP controllers, modular AS and AH systems, and newer AX controllers. The important engineering question is not whether one family is universally “better,” but whether the selected CPU has the required I/O, program capacity, motion functions, protocols, environmental ratings and supported engineering software.

Delta makes its PLC editors available through its Download Center, and an official FAQ says WPLSoft can be downloaded without purchasing the software. That does not prove that every add-on, runtime, regional support service or future release is free. Check the current download terms and quote the complete hardware and engineering BOM for your region.

This comprehensive Delta PLC programming tutorial covers everything from fundamental concepts to advanced implementation techniques, providing practical knowledge needed for successful project deployment. You'll learn WPLSoft and ISPSoft programming environments, master ladder logic implementation specific to Delta instruction sets, configure motion control applications, implement Modbus communication networks, and develop complete automation solutions.

Delta's current product pages list applications such as packaging, electronics manufacturing, labelling, textile machinery and logistics. This tutorial focuses on the transferable workflow: select the CPU, prove editor compatibility, map I/O, simulate the logic, test unsupported simulator behaviour on hardware, and document the final configuration.

Delta PLC Product Lines: Choosing the Right Platform

DVP Series Compact PLCs

The DVP name covers multiple generations and form factors, so do not copy a memory, I/O or motion limit from one DVP model to another. Delta's current catalogue lists third-generation DVP-ES3, EX3, SV3 and SX3 families alongside earlier models and discontinued products. For example, the current DVP-ES3 page specifies 64K program steps and up to 256 I/O points for that series; those figures are not universal DVP limits.

Use a DVP CPU when its integrated I/O, expansion options and exact communications match a compact machine. Before ordering, record:

  • full CPU and expansion-module part numbers;
  • supported editor and minimum version;
  • power supply and input/output type;
  • built-in and maximum I/O;
  • required serial, Ethernet or motion interfaces;
  • cable/driver requirements; and
  • discontinued or replacement status.

AS Series Compact Modular PLCs

Delta describes the AS series as a compact modular mid-range controller. Its current AS300 product page lists up to 1,024 I/O points, up to 32 extension modules, up to eight axes over CANopen motion and up to six pulse-control axes at 200 kHz. These are AS-series product-page limits, not promises for every CPU/module combination. Confirm the selected CPU, firmware and motion module in the relevant manual.

AH and AX Series

AH is Delta's modular PLC family for larger configurations. AX is a newer controller family with its own engineering-software and compatibility requirements. These families should not be collapsed into a single “high-end” row with invented price or axis ranges. Start with the current catalogue, then use the exact CPU programming and hardware manuals to build the BOM.

Product and Editor Selection Matrix

Selection question DVP AS AH / AX
Typical architecture Compact/integrated, model-dependent expansion Compact modular Modular or advanced-controller families
Editor WPLSoft, ISPSoft or DIADesigner depending on CPU ISPSoft or DIADesigner depending on CPU Check the exact CPU; newer AX software differs
Language support Depends on CPU and editor Depends on CPU and editor Depends on CPU and editor
Motion/networking Model-specific Model- and module-specific Model- and module-specific
Correct next step Verify the CPU page and manual Build an exact CPU/module list Confirm family, editor and lifecycle status first
Editorial controller-selection board matching compact, compact-modular and larger modular PLC architectures to separate software, cable and firmware requirements.
Conceptual selection board, not a Delta compatibility matrix. Use the exact CPU part number and current Delta documentation to confirm editor, firmware, cable, driver and optional modules.

Compare Cost with a Like-for-Like BOM

There is no defensible family-wide percentage saying Delta is always cheaper than Siemens, Rockwell or Mitsubishi. Distributor prices, discounts, regions and software bundles change. Compare current quotes for the same dated requirement:

  1. CPU, power supply and local I/O;
  2. remote I/O and network couplers;
  3. programming cable and engineering software;
  4. HMI, drives, safety and protocol options;
  5. spares, training and support;
  6. panel space and engineering time; and
  7. lifecycle or replacement risk.

Record quote dates and part numbers. A smaller hardware price can be erased by an extra gateway, an unsupported instruction, or an editor mismatch.

WPLSoft Programming Software: Complete Guide

WPLSoft for DVP Series Controllers

Download and compatibility: Delta's official FAQ identifies WPLSoft as DVP editing software and says it can be downloaded from Delta's website without purchasing the software. Confirm the current release, supported CPU and regional download terms before relying on a project file.

Download and Setup Process:

  1. Visit Delta Industrial Automation website (www.deltaww.com)
  2. Navigate to Download Center and select DVP Series
  3. Download the current WPLSoft release shown for your CPU and region
  4. Extract ZIP file and run setup.exe with administrator privileges
  5. Complete installation wizard accepting default settings
  6. Launch WPLSoft and configure communication settings
  7. Record the installer version used for the project

System Requirements:

  • A supported Windows release
  • The prerequisites stated on the current download page
  • The correct interface or programming cable for the selected CPU

Delta's official FAQ says WPLSoft and ISPSoft run on Windows and are not native Linux applications. If you use a virtual machine on macOS or Linux, validate USB/serial pass-through and recovery procedures before connecting production hardware.

WPLSoft Interface Overview and Navigation

Main Window Components:

Menu Bar: Contains File, Edit, View, Compile, Online, and Tools menus providing access to all programming functions including project management, editing operations, compilation, online monitoring, and configuration utilities.

Toolbar: Quick access icons for common operations including new project, open, save, cut, copy, paste, compile, download, upload, monitor, and run/stop PLC operations. Customizable for frequently used functions.

Project Tree: Hierarchical view of project components including main program (ladder logic), subroutines, interrupt routines, device comments, and special modules. Double-click elements to open for editing.

Ladder Logic Editor: Main programming workspace displaying ladder logic rungs with contacts, coils, and function blocks. Grid-based layout ensures proper alignment and professional appearance. Supports drag-and-drop programming and keyboard shortcuts.

Device Monitor Window: Real-time display of device states including inputs, outputs, internal relays, timers, counters, and data registers. Essential for online troubleshooting and commissioning.

Status Bar: Displays current cursor position, editing mode, communication status, and PLC connection state. Provides immediate feedback on programming operations.

Creating a New Project in WPLSoft

Step-by-Step Project Creation:

Step 1: Start New Project

  1. Launch WPLSoft application
  2. Select File → New or click New Project icon
  3. Choose PLC model from dropdown list (e.g., DVP-20SX)
  4. Specify project name and save location
  5. Configure communication settings if connecting to PLC

Step 2: Hardware Configuration

  1. Open Tools → PLC Type Setting
  2. Select exact PLC model (DVP-ES, SE, SV, etc.)
  3. Configure expansion modules if used
  4. Set communication parameters:
    • Port: COM1/USB (based on connection)
    • Baud Rate: 9600, 19200, 38400, 57600, 115200
    • Data Format: 7E1, 8E1, 8N2
    • Station Number: 1 (default)

Step 3: Configure I/O Mapping The following address families are common in DVP examples, but the usable ranges and retention behaviour depend on the CPU:

  • X0-X377 (Octal): Digital inputs
  • Y0-Y377 (Octal): Digital outputs
  • M0-M4095: Internal auxiliary relays
  • T0-T255: Timers
  • C0-C255: Counters
  • D0-D9999: Data registers

Important Note on Octal Addressing: Many DVP examples use octal numbering for X/Y I/O, meaning valid digits are 0-7 only and X7 is followed by X10. Confirm the convention for the selected CPU/editor instead of applying this rule to every Delta family.

Ladder Logic Programming Interface in WPLSoft

Programming Workflow:

Adding Ladder Logic Elements:

  1. Click in desired rung position in ladder editor
  2. Press keyboard shortcuts or use toolbar icons:
    • F5: Normally Open contact [/]
    • F6: Normally Closed contact [/]
    • F7: Output coil ( )
    • F8: Function block
  3. Type device address (e.g., X0, Y0, M100)
  4. Press Enter to confirm and move to next element

Contact and Coil Programming:

|--[ X0 ]----[ X1 ]----( Y0 )--|

This rung energizes output Y0 when both inputs X0 AND X1 are active, representing basic AND logic.

Series and Parallel Connections:

|--[ X0 ]--+--[ X2 ]--( Y0 )--|
           |
           +--[ X3 ]----------|

This rung implements: Y0 = X0 AND (X2 OR X3), demonstrating combination logic.

Common Function Blocks:

  • TMR (Timer): Time delay operations
  • CNT (Counter): Event counting
  • MOV (Move): Data transfer between registers
  • ADD/SUB/MUL/DIV: Arithmetic operations
  • CMP (Compare): Value comparison
  • DDRVI/DDRVA: Motion control positioning

Adding Function Blocks:

  1. Position cursor in desired location
  2. Press F8 for function block
  3. Type instruction mnemonic (e.g., TMR, CNT, MOV)
  4. Configure parameters in dialog box
  5. Assign device addresses for source/destination

Simulation Mode for Testing Without Hardware

Built-in Simulator Features: WPLSoft includes comprehensive simulation capabilities allowing complete program testing without physical PLC hardware. This invaluable feature accelerates development, enables offline testing, and facilitates learning without equipment investment.

Activating Simulation Mode:

  1. Complete program development in ladder editor
  2. Compile program (Compile → Compile All or F3)
  3. Verify no compilation errors
  4. Select Online → Simulation Mode
  5. Program window shows "SIMULATION" indicator
  6. Use monitor functions to control simulation

Simulation Operations:

  • Force Inputs: Right-click input device (X0-X377) and select Set ON/OFF to simulate physical input changes
  • Monitor Outputs: Observe output states (Y0-Y377) as program logic executes
  • View Timers/Counters: Watch accumulator values change in real-time
  • Modify Registers: Change D register values to test different scenarios
  • Step Through Program: Execute program rung-by-rung for detailed analysis
  • Breakpoints: Pause execution at specific rungs for debugging

Simulation Testing Procedure:

  1. Start simulation mode with program loaded
  2. Systematically test each input combination
  3. Verify outputs respond according to logic requirements
  4. Test timer operations by observing elapsed time
  5. Validate counter incrementing and reset functions
  6. Confirm data operations produce expected results
  7. Document any logic errors discovered
  8. Modify program and retest until correct

Simulation Limitations:

  • No physical I/O interaction (simulated only)
  • Analog values must be manually entered
  • Communication functions not fully simulated
  • High-speed counter timing may differ from hardware
  • Real-world timing and scan time variations not replicated

ISPSoft for DVP, AH and AS Projects

Multi-Language Programming Support

IEC 61131-3 languages: ISPSoft can provide LD, FBD, ST and SFC workflows, plus legacy IL, but available languages depend on the controller series and project type. Delta's own catalogue explicitly warns that different PLC series may support different languages.

Ladder Diagram (LD): Traditional relay logic representation, identical to WPLSoft interface, ideal for discrete control logic and most familiar to electricians and maintenance technicians.

Function Block Diagram (FBD): Graphical representation using interconnected function blocks, excellent for process control, PID loops, and mathematical operations where data flow visualization aids understanding.

Structured Text (ST): High-level text-based programming language similar to Pascal or C, optimal for complex algorithms, mathematical calculations, and programmers transitioning from IT backgrounds.

Instruction List (IL): Low-level assembly-style language providing compact code representation, suitable for optimization and reverse-engineering legacy programs.

Sequential Function Chart (SFC): Graphical language for representing sequential processes and state machines, perfect for batch processing, automated assembly sequences, and step-based operations.

Advanced Features and Debugging Tools

Professional Development Environment: ISPSoft provides comprehensive tools for large-scale project development including project management, version control integration, cross-reference generation, documentation tools, and team collaboration features.

Advanced Debugging Capabilities:

  • Online Monitoring: Real-time variable watching with customizable update rates
  • Forced Variables: Override I/O and internal variables for testing
  • Breakpoints: Halt execution at specified program locations
  • Watch Tables: Organize monitored variables in logical groups
  • Trend Charts: Graphical display of value changes over time
  • Recipe Management: Download parameter sets to PLC
  • Data Logging: Capture and export runtime data

Cross-Reference and Documentation:

  • Automatic cross-reference generation showing all device usage
  • Printable documentation with professional formatting
  • I/O assignment lists and address mapping
  • Tag name databases for symbolic programming
  • Customizable report templates

Comparison: WPLSoft vs ISPSoft

Feature WPLSoft ISPSoft
DVP Series Support Yes Yes
AS Series Support No Yes
AH Series Support No Yes
Programming Languages Ladder-oriented Model/project-dependent LD, FBD, ST, IL and SFC
Project structure Traditional DVP workflow Modular POU/task workflow where supported
Correct use Supported DVP ladder projects Supported DVP, AS or AH projects

Which Software to Choose: Both WPLSoft and ISPSoft can program supported DVP PLCs. WPLSoft provides a traditional ladder-oriented DVP workflow. ISPSoft adds modular project features and multiple IEC-language workflows where the selected controller supports them. DIADesigner is another current option for AS and selected newer DVP families. Let the exact CPU compatibility table decide.

WPLSoft vs ISPSoft — Which One Do You Need?

This is the most common question new Delta users ask, so here is a direct answer.

Editorial illustration of a laptop programming a compact Delta DVP-class PLC that controls a conveyor motor.
Editorial workflow illustration, not a WPLSoft or ISPSoft screenshot. Confirm the exact CPU, cable, driver, and supported editor in Delta's current hardware and software documentation before connecting a real controller.

WPLSoft is Delta's DVP-focused programming tool. It uses a ladder-oriented workflow and remains relevant to supported DVP CPUs. Check the Download Center rather than relying on a version number copied from a tutorial.

ISPSoft is Delta's current, actively developed engineering environment. It supports ladder diagram, function block diagram, structured text, sequential function chart, and legacy instruction list. Verify the current release and CPU support in Delta's download center before installation.

An official Delta FAQ says ISPSoft supports all DVP-series PLCs and distinguishes its modular programming features from WPLSoft. AS and AH projects can also use ISPSoft, but DIADesigner and newer controller-specific tools now matter. Confirm the exact CPU/software matrix before installing.

Question Answer
I have a DVP PLC, which should I use? Either. WPLSoft is simpler; ISPSoft is more capable.
I have an AS or AH series PLC. Check ISPSoft and DIADesigner support for the exact CPU.
I want to learn IEC 61131-3 languages (ST, FBD, SFC). Check ISPSoft or DIADesigner plus the exact CPU's language support.
I only need ladder diagram and want a lightweight tool. WPLSoft is fine.
I want one tool that handles all Delta hardware. No universal answer; newer AX hardware has different requirements.

Both WPLSoft and ISPSoft are distributed through Delta's Download Center. Recheck the current package, terms and prerequisites when you download.

Two separate PLC project paths showing a compact ladder-oriented workflow and a modular task-based workflow converging only at acceptance evidence.
Editorial workflow, not a WPLSoft, ISPSoft or DIADesigner screen. Keep the CPU-specific project, simulator and communication path separate; the lanes converge only when their test evidence is reviewed.

Download and Install Delta PLC Software (Step-by-Step)

Where to Download

Obtain WPLSoft, ISPSoft, DIADesigner and COMMGR only from the Delta Download Center at deltaww.com. Navigate to the Industrial Automation section, select the exact product family, and record the installer version. Account and regional terms can change, so the live download page is authoritative.

Installing WPLSoft

  1. Go to the Delta Download Center and search for WPLSoft under the DVP series section.
  2. Download the installer ZIP file and extract it.
  3. Run setup.exe with administrator privileges.
  4. Follow the installation wizard, accepting the default install path.
  5. Launch WPLSoft and archive the installer/version with the project records.

System requirements: use the current download page. Delta states that WPLSoft and ISPSoft are Windows-only; do not assume an old operating-system list still applies.

Installing ISPSoft

  1. Go to the Delta Download Center and search for ISPSoft.
  2. Download the installer and run it with administrator privileges.
  3. Accept defaults and complete the wizard.
  4. Also download and install COMMGR (Delta Communication Manager) from the same Download Center page — it is a separate installation required for connecting ISPSoft to a real or simulated PLC.
  5. Record the ISPSoft and COMMGR versions used for testing.

USB Driver for the Programming Cable

To connect a computer to a Delta DVP PLC via USB, you need the UC-PRG020-12A USB programming cable (Delta's standard DVP programming cable). The required driver is Delta's official UC-PRG020-12A USB driver, available from the Delta Download Center.

Install the driver before connecting the cable. After installation, connect the cable, open Device Manager, and confirm the port appears (note the assigned COM number — you will need it in WPLSoft or COMMGR). Do not use a generic USB-to-serial driver from a third party; use Delta's official driver to ensure reliable communication.

After driver installation:

  1. Open WPLSoft and go to Tools > Communication Setting.
  2. Select the COM port assigned to the cable.
  3. Set baud rate to 9600 for initial testing (can increase once confirmed working).
  4. Click Test to verify PLC connection.

COMMGR Setup for Simulation (No Hardware Required)

COMMGR (Delta Communication Manager) is a separate application that sits between ISPSoft and the PLC — real or simulated. Nothing connects in ISPSoft unless COMMGR is running with an active driver configured.

What COMMGR Does

COMMGR manages all communication channels from ISPSoft to Delta PLCs. When you use a real PLC it handles the USB or Ethernet connection. When you want to simulate without hardware, COMMGR provides a built-in Simulator driver that runs a software model of the PLC on your computer.

Setting Up a Simulator Driver in COMMGR

  1. Launch COMMGR (installed separately from the Delta Download Center).
  2. Click Add to create a new driver.
  3. Give the driver a name (for example, "AH500 Sim").
  4. Under connection type, select Simulator and choose the PLC model to simulate (for example, AH500).
  5. Click OK to save.
  6. Select the driver in the list and click Start — its status should change to Running.

Connecting ISPSoft to the Simulator

  1. With COMMGR running and the simulator driver active, open ISPSoft.
  2. Create or open a project matching the simulated PLC model.
  3. Go to Communication > Communication Settings and select the COMMGR driver you created.
  4. Click Connect. ISPSoft will connect to the simulated PLC.
  5. Download your program, switch to RUN mode, and use the monitor/watch tables to observe program execution — all without physical hardware.

Key point: If ISPSoft says it cannot connect, the most common cause is that COMMGR is not running or the driver is not in Started state. Check COMMGR first.

Delta DVP Device and Memory Map

DVP controllers use X/Y physical I/O devices plus M, S, T, C and D memory classes, but the valid ranges, time bases and retention boundaries vary by CPU generation. The table below is an orientation aid for reading examples, not a universal memory map.

Device Symbol Typical purpose What to verify
Input relays X Physical digital inputs numbering convention and installed I/O
Output relays Y Physical digital outputs numbering convention and output type
Auxiliary relays M Internal bit storage valid and latched ranges
Step relays S Sequence/state storage CPU and editor support
Timers T Timed logic time base, width and retention
Counters C Event/pulse counting width, high-speed channels and limits
Data registers D Word data valid, file and retained ranges

Critical Gotcha: X and Y Use Octal Numbering

Many DVP CPUs and examples number X/Y I/O in octal — meaning valid digits are 0 through 7 only. In that convention there is no X8 or X9: X7 is followed by X10.

This trips up almost every programmer coming from decimal-addressed PLCs (Siemens, Allen-Bradley). If you wire a sensor to the 9th physical input and address it as X8, WPLSoft will flag a syntax error. The correct address for the 9th input is X10.

M, T, C and D examples commonly use decimal numbering. Confirm all ranges in the exact DVP programming manual.

Retentive Ranges

Retentive ranges and initial behaviour vary by CPU and parameter settings. Use the selected CPU's device-range table, then test cold start, warm restart, program download and battery-loss behaviour. Do not assume an address is retentive because it was retentive on a different DVP model.

Your First Program — Motor Start/Stop with Seal-In (DVP Ladder)

This is the classic first program for any PLC: a motor start/stop circuit with a seal-in (latching) contact. It teaches the fundamental self-holding pattern used in virtually every real machine program.

What the Circuit Does

  • Pressing the Start button (X0) turns the motor output (Y0) on.
  • The motor stays on even after releasing Start — this is the seal-in.
  • Pressing the Stop button (X1) turns the motor off.
  • The circuit uses a normally closed (NC) Stop contact so the motor de-energizes if the Stop wiring breaks — the safe default.

The Ladder Rungs

Rung 1 — Start, seal-in, and Stop:

|--[ X0 ]--+--( Y0 )--|
           |
|--[ Y0 ]--+          |
|                      |
|--[/X1 ]-------------|

In Delta instruction list notation:

LD   X0       ; Load Start button (normally open)
OR   Y0       ; Parallel branch — seal-in with own output
ANI  X1       ; AND NOT Stop button (normally closed contact)
OUT  Y0       ; Energize motor output

How it works step by step:

  1. At rest: X0 is open, Y0 is off, X1 NC contact is closed (passing).
  2. Operator presses Start (X0 closes): current flows through X0, through the NC X1 contact, energizing Y0.
  3. Operator releases Start (X0 opens): Y0 seals itself in via the Y0 parallel contact — the motor keeps running.
  4. Operator presses Stop (X1 opens): the NC X1 contact breaks the rung, Y0 de-energizes, seal-in drops out.
  5. Motor is off. Pressing Start again repeats the cycle.

Rung 2 — Optional run indicator:

LD   Y0
OUT  Y1       ; Pilot light on while motor runs

Entering This in WPLSoft

  1. Open WPLSoft, create a new project, and select your DVP model.
  2. Click in the first rung of the ladder editor.
  3. Press F5 to insert a normally open contact, type X0, press Enter.
  4. Press F6 to insert a normally closed contact, type X1, press Enter.
  5. Press F7 to insert an output coil, type Y0, press Enter.
  6. To add the seal-in branch: click below the X0 contact, press F5, type Y0. Connect it in parallel with X0 using the parallel branch tool.
  7. Press F3 (Compile). Fix any errors.
  8. Go to Online > Simulation Mode to test: force X0 on and confirm Y0 turns on; release X0 and confirm Y0 stays on; force X1 off (simulating a pressed NC button) and confirm Y0 turns off.
Safe low-energy PLC I/O checkout tracing a pushbutton and proximity sensor through terminals and channel states to an isolated indicator lamp.
Editorial checkout scene. Confirm field state, terminal, input variable, logic result, output variable and isolated temporary load in order; leave the machine actuator disconnected until that chain passes.

Delta PLC Pricing: Build a Current BOM

Delta does not publish one global, stable family price on the product pages used for this review. Obtain dated distributor quotes for the exact CPU, I/O, power supply, network modules, cable, HMI, safety components and spares. Do not compare a bare Delta CPU with a complete competitor rack or reuse an online price without its date, region and part number.

Delta's FAQ says WPLSoft can be downloaded without purchasing the software. Treat other editor packages, add-ons, support and future terms as items to verify in the current Download Center rather than assuming every Delta software component is universally licence-free.

Ladder Logic Programming on Delta PLCs

The examples below use common DVP-style notation to explain the logic pattern. Treat timer bases, counter ranges, special relays/registers, high-speed channels and motion instructions as model-specific until the selected CPU manual confirms them.

Delta Ladder Logic Instruction Set

Basic Instruction Categories:

1. Bit Logic Instructions:

  • LD (Load): Start new rung with normally open contact
  • LDI (Load Inverse): Start new rung with normally closed contact
  • AND: Series connection of normally open contact
  • ANI (AND Inverse): Series connection of normally closed contact
  • OR: Parallel connection of normally open contact
  • ORI (OR Inverse): Parallel connection of normally closed contact
  • OUT: Energize output coil or relay

2. Application Instructions: Comprehensive instruction set covering data movement, arithmetic operations, comparison, conversion, and specialized functions:

  • MOV/DMOV: Move 16-bit or 32-bit data
  • ADD/SUB/MUL/DIV: Arithmetic operations
  • INC/DEC: Increment and decrement
  • AND/OR/XOR: Logical operations
  • CMP/ZCP: Comparison operations
  • BIN/BCD: Number system conversion
  • ROL/ROR: Bit rotation operations

Timer Instructions (TMR, TMRH, TTM)

TMR - General Purpose Timer: The TMR instruction provides basic timer functionality with 100ms time base, suitable for most timing applications.

Syntax:

TMR [Timer Number] [Preset Value]

Example - 5 Second Timer:

|--[ X0 ]--[TMR T0 K50]--|     Timer T0, preset 50 x 100ms = 5 sec
|
|--[ T0 ]---( Y0 )-------|     Output Y0 turns ON after 5 seconds

Parameters:

  • Timer Number: T0-T255
  • Preset Value: K0-K32767 (number of 100ms intervals)
  • Time Range: 0.1 to 3276.7 seconds

TMRH - High-Speed Timer: TMRH provides 10ms time base for precise timing requirements, offering 10x resolution compared to standard TMR instruction.

Example - 500ms High-Speed Timer:

|--[ X1 ]--[TMRH T100 K50]--|  Timer T100, preset 50 x 10ms = 500ms
|
|--[ T100 ]---( Y1 )---------|  Precise 500ms output control

TTM - Totalizing Timer: TTM accumulates elapsed time across multiple start/stop cycles, useful for tracking total equipment run time or process duration.

Example - Totalizing Timer:

|--[ X2 ]--[TTM T200 K1000]--|  Accumulate to 1000 seconds total
|
|--[ X3 ]--[RST T200]---------|  Reset totalizer when needed
|
|--[ T200 ]---( Y2 )----------|  Output when total time reached

Counter Instructions (CNT, DCNT, DCNTR)

CNT - 16-Bit Up Counter: Basic counter instruction counts input transitions, suitable for event counting, part tracking, and batch counting applications.

Example - Count 100 Parts:

|--[ X4 ]--[CNT C0 K100]--|    Count to 100
|
|--[ X5 ]--[RST C0]-------|    Reset counter
|
|--[ C0 ]---( Y3 )--------|    Batch complete output

Counter Operation:

  • Increments on rising edge (OFF to ON transition) of input X4
  • Done bit (C0) activates when count reaches preset (K100)
  • Reset input (X5) clears counter value to zero
  • Counter value retained through power cycles

DCNT - 32-Bit Up/Down Counter: Advanced counter with up/down capability and 32-bit range, suitable for bidirectional counting applications.

DCNTR - High-Speed Counter: Dedicated high-speed counters (C235-C255) for counting high-frequency pulse inputs up to 100 kHz (DVP-ES/EX) or 200 kHz (DVP-SE/SV), essential for encoder feedback and high-speed event detection.

Complete Example: Simple Packaging Machine Control

Application Description: Automated packaging machine that fills boxes with 10 products each, then signals for box change. Includes start/stop control, emergency stop, and cycle counter.

I/O Assignment:

Inputs:
X0 - Start button (NO pushbutton)
X1 - Stop button (NC pushbutton)
X2 - Emergency stop (NC)
X3 - Product sensor (photoelectric)
X4 - Box in position sensor
X5 - Reset counter button

Outputs:
Y0 - System running indicator
Y1 - Conveyor motor
Y2 - Box full indicator
Y3 - Buzzer (box change required)

Complete Ladder Logic Program:

|--[ X2 ]--+--[ X0 ]--[ M100 ]---( M100 )--|  Rung 0: Start/Stop with seal-in
           |     |                           M100 = System run
           +--[ X1 ]----------------------|

|--[ M100 ]--[ X4 ]--( Y0 )---------------|  Rung 1: Running indicator
                                             Y0 ON when running and box present

|--[ M100 ]--[ X4 ]--( Y1 )---------------|  Rung 2: Conveyor motor
                                             Run conveyor when system active

|--[ X3 ]--[ M100 ]--[CNT C0 K10]---------|  Rung 3: Count products
                                             Count sensor pulses to 10

|--[ C0 ]---( Y2 )------------------------|  Rung 4: Box full indicator
                                             Indicate when count reaches 10

|--[ C0 ]---[TMR T0 K30]------------------|  Rung 5: Buzzer timer
                                             3 second buzzer delay

|--[ T0 ]---( Y3 )------------------------|  Rung 6: Buzzer output
                                             Sound buzzer after delay

|--[ X5 ]---[RST C0]----------------------|  Rung 7: Reset counter
|                                             Operator resets for new box
|--[ X5 ]---[RST T0]----------------------|  Rung 8: Reset timer

Program Operation:

  1. Operator presses Start button (X0) with box in position (X4)
  2. System run bit (M100) latches ON, starting conveyor motor (Y1)
  3. Products pass sensor (X3), counter C0 increments each detection
  4. When 10 products counted, box full indicator (Y2) illuminates
  5. Timer T0 starts, providing 3-second delay
  6. Buzzer (Y3) sounds after timer expires, signaling operator
  7. Operator removes full box, places empty box, presses reset (X5)
  8. Counter and timer reset, cycle repeats automatically
  9. Stop button (X1) or E-stop (X2) halts system anytime

Device Addressing: X, Y, M, S, T, C, D

Complete Delta PLC Address Map:

X - Input Relays (Octal Addressing):

  • Range: X0-X377 (octal)
  • Type: Physical digital inputs
  • Configuration: NO or NC based on wiring
  • Usage: Sensors, buttons, switches, discrete inputs
  • Note: Uses octal numbering (0-7), X10 follows X7

Y - Output Relays (Octal Addressing):

  • Range: Y0-Y377 (octal)
  • Type: Physical digital outputs
  • Configuration: Relay, transistor, or triac based on PLC model
  • Usage: Motors, solenoids, indicators, discrete outputs
  • Note: Uses octal numbering (0-7), Y10 follows Y7

M - Auxiliary Relays (Internal Memory):

  • Range: M0-M4095
  • Type: Internal bits (no physical I/O)
  • Retention: M512-M999 retains state on power loss
  • Usage: Intermediate logic, flags, state tracking
  • Special: M1000-M1999 reserved for special functions

S - Step Relays (Sequential Control):

  • Range: S0-S1023
  • Type: State bits for sequential programming
  • Usage: SFC programming, sequential state machines
  • Retention: S512-S1023 retains state on power loss

T - Timers:

  • Range: T0-T255
  • Type: 16-bit timers with 10ms or 100ms time base
  • Retention: T200-T255 retains accumulated value
  • Usage: Time delays, timing control sequences

C - Counters:

  • Range: C0-C255
  • C0-C199: General 16-bit counters
  • C200-C234: 32-bit counters
  • C235-C255: High-speed counters (hardware)
  • Retention: All counters retain count value
  • Usage: Event counting, batch counting, position tracking

D - Data Registers:

  • Range: D0-D9999
  • Type: 16-bit data storage
  • Retention: D200-D999 retains data on power loss
  • Usage: Setpoints, parameters, calculated values, HMI interface
  • Special: D1000-D1999 reserved for special functions

Special Registers and Flags

Common Special M Flags:

  • M1000: RUN monitor (ON when PLC in RUN mode)
  • M1001: RUN monitor (OFF when PLC in RUN mode)
  • M1002: Initial pulse (ON for one scan on power-up)
  • M1003: One second clock pulse (50% duty cycle)
  • M1004: One minute clock pulse
  • M1013: Second negative pulse (OFF for one scan per second)
  • M1020: Zero flag (arithmetic result = 0)
  • M1021: Borrow flag (arithmetic underflow)
  • M1022: Carry flag (arithmetic overflow)

Common Special D Registers:

  • D1000: PLC scan time (ms)
  • D1001: Maximum scan time (ms)
  • D1002: Communication watchdog time
  • D1120-D1135: RTC data (year, month, day, hour, minute, second)
  • D1140-D1143: High-speed counter preset values

Using Special Registers:

|--[ M1002 ]--[MOV K100 D0]--|  Initialize D0 to 100 on power-up
|
|--[ M1003 ]--[ C0 ]--( Y10)--|  Flash output at 1Hz when counter done

Motion Control and Positioning on Delta PLCs

High-Speed Pulse Output for Servo/Stepper Control

Pulse Output Capabilities: Delta DVP PLCs feature dedicated high-speed pulse outputs for controlling servo motors and stepper motor drives:

DVP-ES/EX Series:

  • 2 pulse outputs (Y0, Y1 typically)
  • Maximum frequency: 100 kHz
  • Output types: Pulse/Direction or CW/CCW
  • Resolution: 1 pulse minimum

DVP-SE/SV/SA Series:

  • 4 pulse outputs (Y0, Y1, Y2, Y3 typically)
  • Maximum frequency: 200 kHz
  • Enhanced positioning instructions
  • Linear and circular interpolation support

Pulse Output Wiring: Connect PLC pulse outputs to stepper drive or servo drive pulse input terminals according to manufacturer wiring diagrams, ensuring proper signal levels and common ground connections.

DDRVI, DDRVA, DPLSY Instructions

DDRVI - Relative Position Drive: Moves motor a specified distance (pulses) from current position at specified speed.

Syntax:

DDRVI [Pulse Output] [Number of Pulses] [Frequency]

Example - Move 10,000 Pulses at 50 kHz:

|--[ X0 ]--[DDRVI Y0 K10000 K50000]--|
           Output  Distance  Speed
           Y0      10,000    50 kHz

Application: Incremental positioning applications where movement distance relative to current position is specified, such as indexing tables, pick-and-place operations, and conveyor positioning.

DDRVA - Absolute Position Drive: Moves motor to specified absolute position at specified speed, automatically calculating required distance and direction.

Syntax:

DDRVA [Pulse Output] [Target Position] [Frequency]

Example - Move to Position 50,000:

|--[ X1 ]--[DDRVA Y0 D100 K50000]--|
           Output  Target   Speed
           Y0      D100     50 kHz

Application: Absolute positioning applications where target position is known, such as multi-position indexing, automated assembly, and coordinate-based positioning systems.

DPLSY - Variable Speed Pulse Output: Generates continuous pulse train at specified frequency, useful for variable speed control and continuous rotation applications.

Syntax:

DPLSY [Pulse Output] [Frequency] [Total Pulses]

Example - Continuous Rotation at 20 kHz:

|--[ X2 ]--[DPLSY Y0 K20000 K0]--|
           Output  Speed   Continuous
           Y0      20 kHz  (K0 = infinite)

Example: 2-Axis Positioning System

Application: X-Y Pick and Place System

System Description: Two-axis gantry system with stepper motors positioned using absolute positioning. System picks parts from input location and places in output location.

Hardware Configuration:

  • X-axis: Stepper motor on Y0 output, 400 steps/rev, 5mm pitch ballscrew
  • Y-axis: Stepper motor on Y1 output, 400 steps/rev, 5mm pitch ballscrew
  • Home sensors: X10 (X-axis), X11 (Y-axis)
  • Part present sensor: X12
  • Vacuum pickup: Y10

Position Calculations:

  • Steps per mm = 400 steps/rev ÷ 5mm/rev = 80 steps/mm
  • Input position: X=100mm (8,000 steps), Y=50mm (4,000 steps)
  • Output position: X=200mm (16,000 steps), Y=150mm (12,000 steps)

Complete Program:

|--[ M1002 ]--[MOV K0 D0]--[MOV K0 D10]--|  Rung 0: Initialize positions
             X position   Y position

|--[ X0 ]--[ M20 ]--( M20 )--------------|  Rung 1: Auto cycle start
           Auto run

|--[ M20 ]/[M21]--[SET M21]--------------|  Rung 2: Start homing sequence
|
|--[ M21 ]--[DDRVI Y0 K-50000 K10000]---|  Rung 3: Home X-axis (move negative)
|
|--[ M21 ]--[DDRVI Y1 K-50000 K10000]---|  Rung 4: Home Y-axis (move negative)
|
|--[ X10 ]--[ M21 ]--[MOV K0 D0]---------|  Rung 5: Zero X position at home
|
|--[ X11 ]--[ M21 ]--[MOV K0 D10]--------|  Rung 6: Zero Y position at home
|
|--[ X10 ]--[ X11 ]--[ M21 ]--[RST M21]--|  Rung 7: Homing complete
                               [SET M22]

|--[ M22 ]/[M23]--[DDRVA Y0 K8000 K20000]---|   Rung 8: Move to input X
|
|--[ M22 ]/[M23]--[DDRVA Y1 K4000 K20000]---|   Rung 9: Move to input Y
|
|--[ M1030 ]--[ M22 ]--[SET M23]-------------|  Rung 10: Position reached
                                                 (M1030 = pulse complete flag)

|--[ M23 ]--[TMR T0 K5]-------------------|  Rung 11: Settle delay 0.5s
|
|--[ T0 ]--[ X12 ]--[SET Y10]--------------|  Rung 12: Activate vacuum if part present
|
|--[ Y10 ]--[TMR T1 K10]-------------------|  Rung 13: Vacuum delay 1.0s
|
|--[ T1 ]--[RST M23]--[SET M24]------------|  Rung 14: Start move to output

|--[ M24 ]/[M25]--[DDRVA Y0 K16000 K20000]--|  Rung 15: Move to output X
|
|--[ M24 ]/[M25]--[DDRVA Y1 K12000 K20000]--|  Rung 16: Move to output Y
|
|--[ M1030 ]--[ M24 ]--[SET M25]------------|  Rung 17: Output position reached

|--[ M25 ]--[TMR T2 K5]-------------------|  Rung 18: Settle delay
|
|--[ T2 ]--[RST Y10]--[TMR T3 K10]--------|  Rung 19: Release vacuum, delay
|
|--[ T3 ]--[RST M25]--[RST M20]-----------|  Rung 20: Cycle complete, ready for next

Using DVP-10MC Motion Control Module

Advanced Motion Capabilities: The DVP-10MC is a dedicated 4-axis motion control module providing enhanced positioning capabilities beyond built-in PLC pulse outputs.

Key Features:

  • 4 independent axes with synchronized motion
  • Linear and circular interpolation (2D and 3D)
  • Electronic cam profiles for complex motions
  • Position compare and registration
  • Flying shear and cut-to-length applications
  • Servo parameter auto-tuning
  • Position feedback via encoder inputs

Programming Interface: Motion control modules are programmed using specialized function blocks accessed through standard PLC ladder logic, with parameters configured in dedicated module settings.

Typical Applications:

  • Multi-axis CNC-style machines
  • Coordinated robotic motion
  • Label registration and printing
  • Flying cutoff and packaging
  • Electronic gearing applications

PID Control Capabilities

PID Loop Instruction: Delta PLCs include PID (Proportional-Integral-Derivative) control functionality for closed-loop process control applications.

PID Function Block:

|--[ X0 ]--[PID S1 S2 S3 D]--|
           PV  SP  Parameters  Output

Parameters:

  • S1: Process Variable (current temperature, pressure, etc.)
  • S2: Setpoint (desired value)
  • S3: PID parameters (Kp, Ki, Kd, sample time)
  • D: Output value (control signal to valve, heater, etc.)

Example - Temperature Control:

|--[ M100 ]--[PID D100 D200 D300 D400]--|
            Current  Setpoint  PID Params  Output
            Temp     Temp      Settings    to Heater
|
|--[ M100 ]--[MOV D400 D4010]------------|  Scale output to analog module

PID Tuning: Configure PID parameters in D300+ registers:

  • Proportional gain (Kp)
  • Integral time (Ki)
  • Derivative time (Kd)
  • Sample time
  • Output limits

Communication Protocols on Delta PLCs

Three model-specific PLC communication test lanes for isolated serial devices, switched Ethernet clients and modular motion or distributed-I/O networks.
Conceptual communications lab, not a claim that every Delta CPU supports every lane. Verify the physical port, protocol role, device count, mapping, termination or switch path, timeout and recovery on the selected model.

Native Modbus RTU/ASCII Support

Model-specific Modbus communication: Many DVP, AS and AH controllers provide serial communications that can be configured for Modbus RTU. Confirm the physical port, supported master/slave role, instructions and register mapping for the exact CPU.

The following instruction and special-register fragments illustrate the shape of a Delta Modbus project. They are not a drop-in configuration for every CPU. Copy the addresses and parameters from the selected controller's current communication manual and test timeout/fault behaviour offline.

Modbus Master Configuration: Delta PLCs can function as Modbus master, polling slave devices and reading/writing data:

MODRW Instruction - Read/Write Registers:

|--[ X0 ]--[MODRW H1 H3 H1 K100 K10 D100]--|
           Port Function Slave Start  Qty  Dest
           RS485 Read(03) Addr:1 100  10regs D100

Parameters:

  • H1: Communication port (H1=COM2 RS-485)
  • H3: Function code 03 (Read Holding Registers)
  • H1: Slave station address (1)
  • K100: Starting register address (40100 in 1-based)
  • K10: Quantity of registers to read (10)
  • D100: Destination in PLC (data stored D100-D109)

Modbus Slave Configuration: Configure Delta PLC as Modbus slave allowing HMI or SCADA to read/write PLC data:

Settings:

  1. Configure COM port parameters via special D registers
  2. Set station address (1-247) in D1038
  3. Set communication format in D1036 (baud, parity, stop bits)
  4. Enable Modbus slave protocol
  5. Map PLC devices to Modbus address space

Modbus Address Mapping:

  • Coils (00001-09999): Map to M relays
  • Discrete Inputs (10001-19999): Map to X inputs
  • Input Registers (30001-39999): Map to D registers
  • Holding Registers (40001-49999): Map to D registers

Modbus TCP/IP for Ethernet Communication

Ethernet Modbus Support: Selected Delta PLCs with Ethernet interfaces support Modbus TCP. Check the exact model page for server/client roles, connection count and configuration method.

Advantages Over Serial Modbus:

  • Higher speed communication (10/100 Mbps vs 115.2 kbps max)
  • Longer distance capability through network switches
  • Multiple simultaneous connections (8+ clients)
  • Standard Ethernet infrastructure
  • IT network integration

Configuration Example:

  1. Set PLC IP address in D1308-D1311 registers
  2. Configure subnet mask and gateway
  3. Enable Modbus TCP server function
  4. Configure security settings if required
  5. Test connection using Modbus Poll or similar tool

MODRD/MODWR Instructions: Read and write Modbus data over Ethernet connection using dedicated Modbus TCP instructions similar to serial Modbus commands.

CANopen Support on Advanced Models

CANopen Network Capability: Selected Delta CPUs or communications/motion modules support CANopen. For example, Delta's current AS product page lists CANopen motion capabilities, but the available role and axis count depend on the CPU/module.

CANopen Advantages:

  • Standardized industrial communication
  • Multi-master capability
  • Flexible network topology
  • Cost-effective cabling (twisted pair)
  • Wide device support (I/O modules, drives, sensors)

Typical Applications:

  • Distributed I/O expansion
  • Servo drive networks
  • Sensor integration
  • Multi-axis motion systems
  • Building automation

DVPLINK Multi-Drop Network: Delta documents a PLC Link function for selected DVP PLCs. Station limits, ports and data areas depend on the CPU and communication mode; use the current application note rather than assuming one universal eight-slave limit.

Network Configuration:

  • Master PLC initiates all communication
  • Slave PLCs respond to master queries
  • Shared memory area for data exchange
  • Automatic data synchronization
  • RS-485 based physical connection

Applications:

  • Multi-machine coordination
  • Distributed control systems
  • Production line synchronization
  • Large-scale automation projects

Communication with HMI and SCADA Systems

Delta HMI Integration: Delta DOP series HMIs connect seamlessly to Delta PLCs via:

  • RS-485 serial communication (native Delta protocol)
  • Ethernet TCP/IP connection
  • USB programming port
  • Direct device addressing (no gateway required)

Configuration Steps:

  1. Select Delta DVP/AH PLC in HMI project settings
  2. Configure communication port and parameters
  3. Set PLC station address
  4. Create HMI screens with device tags
  5. Map HMI objects to PLC addresses (X, Y, M, D)
  6. Download HMI project and test communication

Third-Party SCADA Integration: Delta PLCs integrate with popular SCADA packages using:

  • Modbus RTU/TCP drivers (most common)
  • OPC UA server functionality (AH/AS series)
  • Proprietary drivers (if available)
  • Ethernet/IP on select models

Common SCADA Systems:

  • Wonderware InTouch (Modbus TCP driver)
  • Ignition SCADA (Modbus driver)
  • Siemens WinCC (Modbus driver)
  • Any system with Modbus support

For comprehensive protocol information, see our Industrial Communication Protocols Guide.

Practical Application Example: Automated Sorting System

System Description and Requirements

Application Overview: Automated sorting system that separates products into three categories (A, B, Reject) based on size measurements from an ultrasonic sensor. System includes conveyor control, part detection, measurement, and pneumatic diverter gates.

System Requirements:

  • Continuously run conveyor with variable speed control
  • Detect parts on conveyor with photoelectric sensor
  • Measure part height with ultrasonic analog sensor
  • Divert parts into three categories based on height:
    • Category A: Height > 150mm
    • Category B: Height 100-150mm
    • Reject: Height < 100mm
  • Track counts for each category
  • Emergency stop capability
  • Operator interface via HMI

Hardware Components:

  • Delta DVP-20SX PLC (12 inputs, 8 outputs)
  • Delta DVP04AD-E 4-channel analog input module
  • Photoelectric sensor (part detection)
  • Ultrasonic distance sensor 4-20mA output
  • Variable frequency drive (conveyor motor)
  • Three pneumatic diverters with solenoid valves
  • Emergency stop button
  • Start/Stop control buttons
  • Delta DOP-107BV 7" HMI touchscreen

Hardware Configuration (DVP-20SX with Expansion Modules)

Main PLC Unit - DVP-20SX:

  • CPU: DVP-20SX (12 DI, 8 DO, 2 analog inputs built-in)
  • Power Supply: 24VDC, 1.5A power consumption
  • Programming Port: RS-232 (COM1)
  • Communication Port: RS-485 (COM2) for HMI

Expansion Module:

  • DVP04AD-E: 4-channel 12-bit analog input module
  • Resolution: 12-bit (4096 counts)
  • Input Range: 4-20mA, 0-10V selectable per channel
  • Data Registers: D1000-D1003 (CH0-CH3)

Module Installation:

  1. Power OFF main PLC unit
  2. Connect DVP04AD-E to right side expansion connector
  3. Secure with mounting screws
  4. Configure module type in PLC program (automatic detection)
  5. Power ON and verify module LED indicators

I/O Mapping and Addressing

Digital Input Assignment:

X0 - Start Button (Normally Open pushbutton)
X1 - Stop Button (Normally Closed pushbutton)
X2 - Emergency Stop (Normally Closed)
X3 - Part Detection Sensor (Photoelectric, NO)
X4 - Category A Gate Position Sensor
X5 - Category B Gate Position Sensor
X6 - Reject Gate Position Sensor
X7 - Conveyor VFD Ready Signal

Digital Output Assignment:

Y0 - System Running Indicator (Green Light)
Y1 - Conveyor VFD Run Command
Y2 - Category A Diverter Solenoid
Y3 - Category B Diverter Solenoid
Y4 - Reject Diverter Solenoid
Y5 - Fault Indicator (Red Light)

Analog Input Assignment:

D1000 - Ultrasonic Height Sensor (CH0 of DVP04AD-E)
        4mA = 0mm, 20mA = 200mm
        Scaling: Height(mm) = D1000 * 200 / 4095

Internal Memory Assignment:

M0 - System Enable (Start/Stop control)
M1 - Part Detected Edge Trigger
M2 - Measurement In Progress
M3 - Category A Detected
M4 - Category B Detected
M5 - Reject Detected

D0 - Measured Height Value (mm)
D10 - Category A Count
D11 - Category B Count
D12 - Reject Count
D20 - Height Setpoint A/B Boundary (150mm)
D21 - Height Setpoint B/Reject Boundary (100mm)

Full Program with Sensor Inputs and Control Logic

Complete Ladder Logic Program:

|--[ X2 ]--+--[ X0 ]--[ M0 ]--( M0 )-----|  Rung 0: Start/Stop with seal-in
           |                                 E-stop, Start, Stop control
           +--[ X1 ]---------------------|

|--[ M0 ]--( Y0 )------------------------|  Rung 1: Running indicator
                                            Green light when system active

|--[ M0 ]--[ X7 ]--( Y1 )----------------|  Rung 2: Conveyor motor
                                            Run when system enabled and VFD ready

|--[ X3 ]/[ M1 ]--[SET M1]---------------|  Rung 3: Part detection edge detect
|
|--[ M1 ]--[TMR T0 K2]-------------------|  Rung 4: Debounce timer 200ms
|
|--[ T0 ]--[SET M2]--[RST M1]------------|  Rung 5: Start measurement

|--[ M2 ]--[MOV D1000 D100]--------------|  Rung 6: Read analog input
                                            Copy raw ADC value

|--[ M2 ]--[MUL D100 K200 D102]----------|  Rung 7: Scale calculation
|                                           Multiply by 200 (max height)
|--[ M2 ]--[DIV D102 K4095 D0]-----------|  Rung 8: Complete scaling
                                            Divide by 4095 = height in mm

|--[ M2 ]--[CMP D0 D20 M10 M11 M12]------|  Rung 9: Compare to setpoint 150mm
                                            M10=greater, M11=equal, M12=less

|--[ M10 ]--[ M2 ]--[SET M3]-------------|  Rung 10: Category A (>150mm)
|
|--[ M12 ]--[ M2 ]--[CMP D0 D21 M13 M14 M15]--|  Rung 11: Compare to 100mm
|
|--[ M13 ]--[ M2 ]--[SET M4]-------------|  Rung 12: Category B (100-150mm)
|
|--[ M15 ]--[ M2 ]--[SET M5]-------------|  Rung 13: Reject (<100mm)

|--[ M3 ]--[TMR T10 K5]------------------|  Rung 14: Diverter timing
|                                           Wait for part to reach gate
|--[ T10 ]--[TMR T11 K3]--(Y2)-----------|  Rung 15: Category A diverter ON
|                                           300ms pulse to diverter
|--[ T11 ]--[INC D10]--[RST M2]----------|  Rung 16: Increment count, reset
           [RST M3]

|--[ M4 ]--[TMR T20 K8]------------------|  Rung 17: Category B timing
|
|--[ T20 ]--[TMR T21 K3]--(Y3)-----------|  Rung 18: Category B diverter ON
|
|--[ T21 ]--[INC D11]--[RST M2]----------|  Rung 19: Increment count B
           [RST M4]

|--[ M5 ]--[TMR T30 K12]-----------------|  Rung 20: Reject timing
|
|--[ T30 ]--[TMR T31 K3]--(Y4)-----------|  Rung 21: Reject diverter ON
|
|--[ T31 ]--[INC D12]--[RST M2]----------|  Rung 22: Increment count Reject
           [RST M5]

|--[ X4 ]/[ Y2 ]--[SET M20]--------------|  Rung 23: Gate A fault detection
|
|--[ X5 ]/[ Y3 ]--[SET M21]--------------|  Rung 24: Gate B fault detection
|
|--[ X6 ]/[ Y4 ]--[SET M22]--------------|  Rung 25: Reject gate fault

|--[ M20 ]--+--[ M21 ]--+--[ M22 ]--( Y5 )--|  Rung 26: Fault indicator
           |            |                      Any gate fault = red light
           +------------+

|--[ M1002 ]--[MOV K150 D20]-------------|  Rung 27: Initialize setpoints
            [MOV K100 D21]                  On power-up, load default values

Program Features:

  • Start/Stop control with emergency stop
  • Part detection with debounce filtering
  • Analog measurement with proper scaling
  • Multi-level comparison for three categories
  • Precise timing for diverter activation
  • Count tracking for each category
  • Fault detection and indication
  • Automatic initialization on power-up

Conveyor Control and Sorting Logic

Conveyor Speed Control: For variable speed control, add analog output module (DVP02DA) to provide 0-10V signal to VFD:

|--[ M0 ]--[MOV D50 D4000]---------------|  Control speed via D50 setpoint
                                           D4000 = Analog output Ch0
                                           0-1000 = 0-10V to VFD

Speed Adjustment Example:

  • D50 = 500 (50% speed, 5V output, ~30 ft/min)
  • D50 = 750 (75% speed, 7.5V output, ~45 ft/min)
  • D50 = 1000 (100% speed, 10V output, ~60 ft/min)

Sorting Logic Timing: Critical timing ensures parts reach correct diverter gates:

  1. Part detected at sensor (X3)
  2. Measurement taken and category determined
  3. Timer calculates delay based on:
    • Conveyor speed
    • Distance from sensor to gate
    • Part size compensation
  4. Diverter activated with short pulse (300ms)
  5. Part diverted into chute
  6. Gate returns to normal position

Timing Calculations:

Delay Time = (Distance to Gate / Conveyor Speed) + Safety Margin

Category A: 500mm distance, 500mm/s speed = 1.0s + 0.2s = T10 K12
Category B: 800mm distance, 500mm/s speed = 1.6s + 0.2s = T20 K18
Reject: 1200mm distance, 500mm/s speed = 2.4s + 0.2s = T30 K26

Integration with Delta DOP HMI

HMI Screen Design:

Main Screen Elements:

  • Start/Stop buttons mapped to M0 (toggle bit)
  • Emergency stop indicator showing X2 status
  • Conveyor running indicator showing Y1 status
  • Real-time height display showing D0 value
  • Category counts displaying D10, D11, D12
  • Speed setpoint adjustment for D50
  • Reset counters button
  • Fault status display showing Y5

HMI Configuration Steps:

  1. Create new project in DOPSoft software
  2. Select DOP-107BV 7" model
  3. Configure PLC communication:
    • PLC Type: Delta DVP
    • Interface: RS-485 (COM2)
    • Baud Rate: 19200
    • Station: 1
  4. Design main screen with objects
  5. Map each object to PLC addresses
  6. Add trend chart for D0 (height measurements)
  7. Create alarm screen for fault conditions
  8. Download project to HMI via USB
  9. Test communication and operation

HMI Address Mapping Example:

Object Type     | Function        | Address | Format
Button (Toggle) | Start/Stop      | M0      | Bit
Indicator       | Running         | Y0      | Bit
Numeric Display | Height          | D0      | Word (0-200)
Numeric Display | Count A         | D10     | Word (0-9999)
Numeric Display | Count B         | D11     | Word (0-9999)
Numeric Display | Count Reject    | D12     | Word (0-9999)
Numeric Input   | Speed Setpoint  | D50     | Word (0-1000)
Button (Mom.)   | Reset Counts    | M100    | Bit
Indicator       | Fault           | Y5      | Bit

Advanced HMI Features:

  • Recipe management storing setpoints (D20, D21) for different products
  • Trend chart displaying height measurements over time
  • Data logging to SD card for quality records
  • Alarm history showing fault events with timestamps
  • Password protection for setpoint modifications
  • Production reports with daily/weekly totals

Delta PLC Programming Best Practices

Program Organization and Structure

Main Program Structure: Organize programs into logical sections using comments and structured layout:

|===========================================================|
|  SECTION 1: INITIALIZATION                               |
|  Power-up initialization, default values, system setup   |
|===========================================================|

|--[ M1002 ]--[MOV K100 D0]--|  Initialize setpoints
            [MOV K0 C0]        Reset counters

|===========================================================|
|  SECTION 2: INPUTS AND EDGE DETECTION                    |
|  Input conditioning, debouncing, edge triggers           |
|===========================================================|

|===========================================================|
|  SECTION 3: MAIN CONTROL LOGIC                           |
|  Primary control sequences and logic                     |
|===========================================================|

|===========================================================|
|  SECTION 4: OUTPUTS                                      |
|  Output control and interlocks                           |
|===========================================================|

|===========================================================|
|  SECTION 5: ERROR HANDLING                               |
|  Fault detection and emergency procedures                |
|===========================================================|

Section Organization Benefits:

  • Easier troubleshooting and maintenance
  • Faster modification and updates
  • Better documentation and understanding
  • Reduced programming errors
  • Team collaboration improvement

Using Subroutines for Modular Code

Subroutine Advantages:

  • Code reusability across multiple locations
  • Simplified main program logic
  • Easier testing and debugging
  • Reduced program size
  • Modular functionality

Creating Subroutines in WPLSoft:

  1. Click Compile → Insert Program → Insert Subroutine
  2. Enter subroutine number (P0-P255)
  3. Program subroutine logic
  4. Return to main program automatically at end

Calling Subroutines:

|--[ X0 ]--[CALL P0]--|  Call subroutine P0 when X0 is ON

Example - Analog Scaling Subroutine:

Main Program:
|--[ M100 ]--[MOV D1000 D200]--[CALL P0]--|  Read analog, call scaling
|
|--[ M100 ]--[MOV D201 D50]---------------|  Use scaled result

Subroutine P0:
|--[MUL D200 K200 D202]--|  Multiply by span
|--[DIV D202 K4095 D201]--|  Divide by ADC range = scaled value
|--[RET]--|                  Return to main program

Subroutine Best Practices:

  • Document subroutine purpose and parameters
  • Use consistent data register assignments
  • Avoid excessive nesting (max 3-4 levels)
  • Test subroutines independently
  • Create library of common functions

Naming Conventions and Documentation

Device Comment System: WPLSoft includes device comment functionality allowing descriptive names for devices:

Adding Device Comments:

  1. Open Tools → Device Comment
  2. Enter device address (X0, Y0, M100, D0, etc.)
  3. Type descriptive comment (max 16 characters in WPLSoft)
  4. Comments appear in ladder editor and cross-reference

Example Device Comments:

X0 - Start_Btn
X1 - Stop_Btn
X2 - E_Stop
Y0 - Motor_Run
M100 - System_En
D0 - Speed_SP
T0 - Dly_Timer
C0 - Part_Count

Documentation Best Practices:

  • Comment every input and output
  • Explain complex logic rungs
  • Document all setpoints and their units
  • Include revision history
  • Note special requirements or limitations

Program Header Documentation:

|===========================================================|
| PROJECT: Automated Sorting System                        |
| CUSTOMER: ABC Manufacturing                              |
| DATE: 2025-12-10                                         |
| PROGRAMMER: [Name]                                       |
| PLC MODEL: Delta DVP-20SX                                |
| VERSION: 1.0                                             |
| DESCRIPTION: Three-category sorting based on height      |
|===========================================================|

Backup and Version Control

Regular Backup Procedures:

  1. Upload complete program from PLC to computer
  2. Save project file with date in filename
  3. Create project folder structure:
    Project_Name/
    ├── Programs/
    │   ├── 2025-12-01_v1.0.dvp
    │   ├── 2025-12-05_v1.1.dvp
    │   └── 2025-12-10_v1.2.dvp
    ├── Documentation/
    │   ├── IO_List.xlsx
    │   ├── Wiring_Diagrams.pdf
    │   └── User_Manual.pdf
    └── HMI/
        └── Screen_Project.dop
    
  4. Maintain change log documenting modifications
  5. Store backups on network drive and external media

Version Control Benefits:

  • Recover from programming errors
  • Track changes over time
  • Compare different versions
  • Rollback to previous working version
  • Document system evolution

Change Documentation Template:

Version 1.2 - 2025-12-10
- Added Category C sorting logic
- Modified timer values for faster sorting
- Fixed counter reset issue
- Updated HMI screens with new category

Using Simulation Mode Effectively

Simulation Testing Strategy:

Phase 1 - Basic Logic Verification:

  1. Load program in simulation mode
  2. Manually set inputs to test each rung
  3. Verify outputs respond correctly
  4. Check timer and counter operations
  5. Confirm mathematical calculations

Phase 2 - Sequence Testing:

  1. Create test scenarios simulating real operation
  2. Step through complete machine cycles
  3. Test all operational modes
  4. Verify error handling and interlocks
  5. Confirm data logging and communication

Phase 3 - Edge Case Testing:

  1. Test boundary conditions
  2. Simulate simultaneous inputs
  3. Verify timeout conditions
  4. Test maximum count values
  5. Confirm emergency stop procedures

Simulation Limitations Awareness:

  • Analog inputs require manual entry
  • High-speed counters may behave differently
  • Communication functions limited
  • Timing precision may vary
  • Physical I/O interactions not simulated

Pre-Commissioning Checklist:

  • All logic tested in simulation
  • Device comments completed
  • Documentation printed
  • Backup created
  • HMI screens tested
  • I/O wiring verified against program
Three-stage handoff from simulated ladder and conveyor tests through reviewed project evidence to a guarded de-energized PLC hardware checkout.
Editorial handoff. Simulator results move through an exact CPU/software/I/O review before low-energy hardware checkout; communications, timing, electrical behavior and safety still require target-specific tests.

Cost-Effective System Design

Hardware Selection Strategies:

Right-Size Your PLC:

  • Count actual I/O requirements (with 20% spare capacity)
  • Select smallest PLC model meeting requirements
  • Use expansion modules only when necessary
  • Consider integrated functions (analog inputs) vs separate modules

Example System Sizing:

Requirements: 18 digital inputs, 12 digital outputs, 2 analog inputs
Option 1: DVP-32ES (16DI/16DO) + DVP04AD-E = $400 + $150 = $550
Option 2: DVP-24ES (14DI/10DO) + DVP08SN (8DI) + DVP04AD-E = $650
Best Choice: Option 1 (fewer modules, lower cost, simpler)

Standardize on Delta Ecosystem:

  • Use Delta HMI for best integration (no protocol conversion)
  • Select Delta VFDs for seamless communication
  • Choose Delta servo/stepper for motion applications
  • Leverage free software and technical support

Long-Term Cost Reduction:

  • Document systems thoroughly for faster troubleshooting
  • Train multiple personnel on Delta platform
  • Stock common spare parts
  • Build program library for reuse
  • Establish relationship with Delta distributor

Total Cost of Ownership Comparison:

                    Delta DVP    Siemens S7-1200   AB Micro850
Initial Hardware    $600         $1,200           $1,100
Software            FREE         $3,500           FREE
Training            $500         $2,000           $1,500
Annual Support      $200         $800             $600
5-Year TCO          $1,600       $9,500           $4,600

Troubleshooting Common Issues

USB Connection Problems

Problem: WPLSoft Cannot Detect PLC

Symptoms:

  • Communication error messages
  • "PLC not found" errors
  • Timeout during upload/download

Diagnostic Steps:

  1. Verify USB cable connection (both ends)
  2. Check PLC power LED indicator (should be solid ON)
  3. Confirm correct COM port selected in WPLSoft
  4. Verify USB driver installation (Device Manager)
  5. Try different USB cable
  6. Test different computer USB port

Solutions:

  • Install Delta USB driver from download center
  • Select correct COM port (Tools → Communication Setting)
  • Reduce baud rate to 9600 for reliability
  • Disable Windows power management for USB port
  • Run WPLSoft as administrator
  • Restart PLC and computer

USB Driver Installation:

  1. Download Delta USB driver package
  2. Extract and run setup.exe
  3. Connect PLC via USB cable
  4. Windows detects new hardware
  5. Point to driver folder when prompted
  6. Verify "Delta PLC" appears in Device Manager
  7. Note assigned COM port number (COM3, COM4, etc.)
  8. Configure WPLSoft to use same COM port

Communication Cable Issues

RS-485 Communication Problems:

Problem: No Communication on RS-485 Network

Symptoms:

  • HMI shows "Communication Error"
  • Modbus timeout errors
  • No data exchange between devices

Diagnostic Checks:

  1. Verify RS-485 wiring polarity (A to A, B to B)
  2. Check termination resistors (120Ω at both ends)
  3. Measure voltage between A and B lines (should show differential)
  4. Confirm matching baud rate on all devices
  5. Verify station addresses are unique
  6. Check cable shield grounding (one point only)

Common Wiring Errors:

  • Reversed A and B connections
  • Missing termination resistors
  • Multiple ground points creating ground loops
  • Exceeding maximum cable length (1200m for RS-485)
  • Too many devices on network (max 32 without repeater)
  • Damaged cable or loose connections

Correct RS-485 Wiring:

PLC COM2              HMI COM1
D+ (A) --------------- D+ (A)
D- (B) --------------- D- (B)
GND -------------------- GND
[120Ω]                [120Ω]  (Termination resistors at ends)

PLC Error Codes and Indicators

LED Indicator Meanings:

Power LED:

  • Solid Green: Normal operation, power good
  • OFF: No power supply
  • Solution: Check 24VDC power supply

Run LED:

  • Solid Green: PLC in RUN mode, scanning program
  • Blinking Green: PLC in STOP mode
  • Solution: Change to RUN mode or check for errors

Error LED:

  • OFF: No errors
  • Solid Red: Fatal error (syntax, hardware failure)
  • Blinking Red: Warning (communication timeout, module error)

Common Error Codes:

Error 6102 - Syntax Error:

  • Cause: Program contains compilation errors
  • Solution: Compile program and fix reported errors, verify all instructions have proper parameters

Error 6104 - Watchdog Timeout:

  • Cause: Program scan time exceeds maximum (typically 200ms)
  • Solution: Simplify program logic, use subroutines, reduce complex calculations, optimize scan

Error 6201 - I/O Module Error:

  • Cause: Expansion module not detected or failed
  • Solution: Check module connections, power cycle PLC, verify module compatibility, replace if failed

Error 6301 - Battery Low:

  • Cause: Backup battery voltage low (retentive memory at risk)
  • Solution: Replace backup battery (CR2032), backup program before battery failure

Checking Error Information:

  1. Connect with WPLSoft in online mode
  2. Select Online → PLC Status Monitor
  3. View error code and description
  4. Check error history log
  5. Clear error after resolution (if not hardware failure)

Modbus Communication Errors

Problem: Modbus Read/Write Failures

Common Error Codes:

  • Error 0: No error, successful transaction
  • Error 1: Function code not supported by slave
  • Error 2: Register address invalid or out of range
  • Error 3: Data value invalid or out of range
  • Error 4: Slave device failure or offline
  • Error 8: Timeout waiting for response

Diagnostic Procedure:

  1. Verify physical RS-485 wiring and termination
  2. Confirm baud rate and communication format match all devices
  3. Check slave station addresses (1-247, must be unique)
  4. Validate Modbus register addresses (0-based vs 1-based confusion)
  5. Use Modbus diagnostic software (Modbus Poll) to isolate issue
  6. Reduce baud rate to eliminate timing issues
  7. Increase timeout value in MODRW instruction

Example Debug Code:

|--[ M100 ]--[MODRW H1 H3 H1 K100 K10 D100]--|  Read operation
|
|--[ M100 ]--[MOV D1167 D500]-----------------|  Copy error code to D500
|                                               (D1167 contains MODRW error code)
|--[ M100 ]--[CMP D500 K0 M200 M201 M202]----|  Compare error code
|
|--[ M202 ]--( Y10 )--------------------------|  Light indicator if error

For comprehensive Modbus troubleshooting, refer to our Modbus RTU Protocol Tutorial.

Common Programming Mistakes

Mistake 1: Octal Addressing Confusion

Problem:

|--[ X8 ]--( Y8 )--|  INVALID - No X8 or Y8 in octal

Correct:

|--[ X10 ]--( Y10 )--|  After X7 comes X10 (octal numbering)

Mistake 2: Missing Edge Detection

Problem:

|--[ X0 ]--[INC D0]--|  Increments continuously while X0 ON

Correct:

|--[ X0 ]/[ M0 ]--[SET M0]--[INC D0]--|  Increments once per X0 transition
|--/ X0 ]--[RST M0]------------------|

Mistake 3: Incorrect Timer/Counter Reset

Problem:

|--[ X0 ]--[TMR T0 K50]--|
|--[ T0 ]--[RST T0]------|  Self-resetting creates oscillation

Correct:

|--[ X0 ]--[TMR T0 K50]--|
|--[ X1 ]--[RST T0]------|  External reset control

Mistake 4: Scan Time Dependent Logic

Problem: Assuming specific scan time for critical timing operations without verification.

Solution: Use hardware timers and counters for precise timing, not scan-dependent logic. Test actual scan time using D1000 (scan time in ms).

Mistake 5: Uninitialized Values

Problem: Using data registers without initialization can cause unpredictable behavior on first scan.

Solution:

|--[ M1002 ]--[MOV K0 D0]--|  Initialize all critical values on power-up
            [MOV K100 D10]   M1002 = first scan pulse

Frequently Asked Questions

Is Delta PLC programming software free?

Delta's official FAQ says WPLSoft can be downloaded from its website without purchasing the software. ISPSoft and DIADesigner are also distributed through Delta's Download Center. Verify the current regional terms, package dependencies, optional modules and supported controller before treating the engineering environment as a zero-cost project line item.

How does Delta PLC compare to Siemens or Allen-Bradley?

Compare exact part-number BOMs, supported instructions, safety requirements, protocols, lifecycle status, local support and engineering time. A brand-level “30–50% cheaper” claim is not reliable because regional quotes and project scope vary. The right choice is the controller that satisfies a dated functional specification with acceptable lifecycle and support risk.

For detailed comparisons, see our Siemens vs Allen-Bradley PLC Comparison guide.

What is the difference between DVP and AH series?

DVP series are compact PLCs with integrated I/O in a single housing, designed for simple to medium-complexity applications. AH series are modular PLCs intended for larger systems and advanced motion or networking requirements. DVP projects may use WPLSoft or ISPSoft depending on the exact CPU, while AH projects use ISPSoft. Confirm current I/O limits, module features, and editor compatibility for the exact part number in Delta's official catalog before specifying hardware.

Can Delta PLCs be used for motion control?

Some Delta CPUs and motion modules provide pulse, CANopen or EtherCAT motion control, but the limit is model-specific. As one current example, Delta's AS-series page states up to eight axes over CANopen motion and up to six axes using 200 kHz pulse control. The DVP-ES3 page separately lists model-dependent CANopen or EtherCAT capabilities. Verify the exact CPU, output type, bus, servo compatibility and instruction support.

What programming languages do Delta PLCs support?

DVP projects commonly use Ladder Diagram through WPLSoft, ISPSoft or DIADesigner, depending on the CPU. ISPSoft can provide LD, FBD, ST, SFC and legacy IL workflows, while Delta's current catalogue notes that supported languages differ by PLC series. Check the current CPU/software matrix before choosing an editor.

How reliable are Delta PLCs?

Reliability depends on the exact controller, environment, electrical design, and maintenance. Use the model-specific datasheet for temperature, vibration, EMC, approvals, and any published reliability figures; do not apply a family-level MTBF claim to every Delta PLC. Correct enclosure design, power quality, grounding, surge protection, and preventive maintenance are as important as the controller choice.

What industries use Delta PLCs?

Delta's current product pages name applications including packaging, electronics manufacturing, labelling, food machinery, textiles and logistics. Actual suitability depends on the selected controller, required certifications, environmental ratings, safety architecture and local support.

Can Delta PLCs communicate via Modbus?

Many Delta PLCs support Modbus RTU or Modbus TCP, but port availability, master/slave roles and instructions vary by model. Confirm the exact CPU manual and test the target device's function codes, register map, byte order, timeout and fault recovery. Protocol support alone does not guarantee application-level compatibility.

Is Delta PLC good for beginners?

Delta can be a useful learning platform when the CPU/editor combination matches equipment you can access. Its simulator is suitable for logic practice, but Delta explicitly warns that simulator timing and instruction support differ from hardware. Use it to learn the sequence, then validate I/O, communications, motion and timing on the actual controller.

How do I get started with Delta PLC programming?

Start by choosing an exact Delta CPU already used in your workplace or available on a training bench. Download the supported editor from Delta, archive the matching manuals, and test a motor start/stop program in simulation. Before purchasing hardware, obtain a dated BOM for the CPU, power supply, I/O, programming interface and any required communications modules. Then repeat the test on hardware with a documented I/O checkout and safe low-energy training circuit.

Conclusion: Prove the Exact Delta Configuration

The durable workflow is model-specific: identify the CPU, confirm the editor and language support, build the I/O map, simulate only supported behaviour, validate on hardware, and retain the software/manual versions with the project. That approach is more useful than family-wide price, reliability or feature claims.

The ladder, addressing, communications and troubleshooting examples in this guide provide a starting point. The selected Delta CPU and its current manuals remain authoritative for electrical limits, supported instructions, motion, protocols and lifecycle status.

Primary Sources and Verification Notes

Checked 25 July 2026:

This site is independent of Delta Electronics. Product names identify compatibility context; the illustrations are editorial unless a caption explicitly labels a real product capture.

Next Steps in Your Automation Journey

Continue developing your PLC programming expertise through hands-on practice with Delta hardware, studying vendor documentation and application notes, building complete automation projects from specification through commissioning, and staying current with emerging technologies and protocols. The skills learned through Delta PLC programming translate directly to other platforms while providing immediate value in cost-sensitive automation markets worldwide.

Expand your industrial automation knowledge with these comprehensive guides:

Practise the Logic Before Hardware Checkout

Use the DVP-style start/stop and sequence examples as a specification, then recreate the same control intent in the browser PLC simulator. The simulator is for learning and logic feedback; it does not emulate a Delta CPU, replace Delta's engineering tools, or prove hardware timing, communications or safety behaviour.

#deltaplc#wplsoft#dvpseries#ispsoft#modbus#budgetplc#motioncontrol
Share this article:

Related Articles