KEMBAR78
DL06 User Manual Vol1 | PDF | Programmable Logic Controller | Computer Hardware
0% found this document useful (0 votes)
55 views444 pages

DL06 User Manual Vol1

Uploaded by

Evando Pereira
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
55 views444 pages

DL06 User Manual Vol1

Uploaded by

Evando Pereira
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 444

DL06 User Manual

Manual Number: D0-06USER-M

Volume 1 of 2
DL06 MICRO PLC
USER MANUAL

Please include the Manual Number and the Manual Issue, both shown below,
when communicating with Technical Support regarding this publication.

Manual Number: D0-06USER-M


Issue: First Edition, Rev. A
Issue Date: 10/02

Publication History
Issue Date Description of Changes
First Edition 7/02 Original
Rev. A 10/02 Updated drawing images and made minor corrections.
VOLUME ONE:
TABLE OF CONTENTS

Chapter 1: Getting Started


Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-2
The Purpose of this Manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1–2
Supplemental Manuals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1–2
Technical Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1–2
Conventions Used . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-3
Key Topics for Each Chapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1–3
DL06 Micro PLC Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1–4
The DL06 PLC Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1–4
Programming Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1–4
DirectSOFT32 Programming for Windows™ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1–4
Handheld Programmer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1–5
I/O Quick Selection Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1–5
Quick Start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1–6
Steps to Designing a Successful System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1–10
Questions and Answers about DL06 Micro PLCs . . . . . . . . . . . . . . . . . . . . . . . . . .1–12

Chapter 2: Installation, Wiring, and Specifications . . . . . . . . . . . . . . .2–1


Safety Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2–2
Plan for Safety . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2–2
Three Levels of Protection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2–2
Orderly System Shutdown . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2–3
System Power Disconnect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2–3
Emergency Stop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2–3
Class I, Division 2 Approval . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2–4
Orientation to DL06 Front Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2–4
Table of Contents

Terminal Block Removal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2–5


Mounting Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2–6
Unit Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2–6
Enclosures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2–6
Panel Layout & Clearances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2–7
Using Mounting Rails . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2–8
Environmental Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2–9
Agency Approvals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2–9
Wiring Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2–10
Fuse Protection for Input Power . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2–10
External Power Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2–11
Planning the Wiring Routes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2–11
Fuse Protection for Input and Output Circuits . . . . . . . . . . . . . . . . . . . . . . . . . . . .2–12
I/O Point Numbering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2–12
System Wiring Strategies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2–13
PLC Isolation Boundaries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2–13
Connecting Operator Interface Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2–14
Connecting Programming Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2–14
Sinking / Sourcing Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2–15
I/O “Common” Terminal Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2–16
Connecting DC I/O to “Solid State” Field Devices . . . . . . . . . . . . . . . . . . . . . . . . .2–17
Solid State Input Sensors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2–17
Solid State Output Loads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2–17
Relay Output Wiring Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2–19
Surge Suppression For Inductive Loads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2–20
Prolonging Relay Contact Life . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2–21
DC Input Wiring Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2–22
DC Output Wiring Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2–23
High-Speed I/O Wiring Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2–24
Glossary of Specification Terms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2–25
Wiring Diagrams and Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2–26
D0–06AA I/O Wiring Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2–26
D0–06AR I/O Wiring Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2–28
D0–06DA I/O Wiring Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2–30
D0–06DD1 I/O Wiring Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2–32
D0–06DD2 I/O Wiring Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2–34
D0–06DR I/O Wiring Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2–36
D0–06DD1–D I/O Wiring Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2–38

ii DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02


Table of Contents

D0–06DR–D I/O Wiring Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2–40


Discrete Options Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2–42

Chapter 3: High-speed Input and Pulse Output Features . . . . . . . . . .3–1


Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–2
Built-in Motion Control Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–2
Availability of HSIO Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–2
Dedicated High- Speed I/O Circuit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–3
Wiring Diagrams for Each HSIO Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–3
Choosing the HSIO Operating Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–4
Understanding the Six Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–4
Default Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–5
Configuring the HSIO Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–6
Configuring Inputs X0 – X3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–6
Mode 10: High-Speed Counter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–7
Purpose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–7
Functional Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–7
Wiring Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–8
Interfacing to Counter Inputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–8
Setup for Mode 10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–9
Presets and Special Relays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–9
Absolute and Incremental Presets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–10
Preset Data Starting Location . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–11
Using Fewer than 24 Presets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–11
Equal Relay Numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–12
Calculating Your Preset Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–13
X Input Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–14
Writing Your Control Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–15
Program Example 1: Counter Without Presets . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–16
Program Example Cont’d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–17
Program Example 2: Counter With Presets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–18
Program Example 3: Counter With Preload . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–21
Troubleshooting Guide for Mode 10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–23
Symptom: The counter does not count. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–23
Symptom: The counter counts but the presets do not function. . . . . . . . . . . . . . .3–23
Symptom: The counter counts up but will not reset. . . . . . . . . . . . . . . . . . . . . . . .3–23

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 iii
Table of Contents

Mode 20: Up/Down Counter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–24


Purpose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–24
Functional Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–24
Quadrature Encoder Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–25
Wiring Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–25
Interfacing to Encoder Outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–26
Setup for Mode 20 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–27
Presets and Special Relays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–27
X Input Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–28
Mode 20 Up/Down Counter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–28
Writing Your Control Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–29
Program Example 1 Quadrature Counting with an Interrupt . . . . . . . . . . . . . . . . .3–30
Program Example: 2 Up/Down Counting with Standard Inputs . . . . . . . . . . . . . . .3–32
Program Example: 3 Quadrature Counting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–34
Troubleshooting Guide for Mode 20 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–37
Symptom: The counter does not count. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–37
Symptom: The counter counts in the wrong direction . . . . . . . . . . . . . . . . . . . . .3–37
Symptom: The counter counts up and down but will not reset. . . . . . . . . . . . . . .3–37
Mode 30: Pulse Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–38
Purpose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–38
Functional Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–39
Wiring Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–40
Interfacing to Drive Inputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–40
Motion Profile Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–41
Physical I/O Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–41
Logical I/O Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–41
Setup for Mode 30 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–42
Profile / Velocity Select Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–43
Profile Parameter Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–43
Automatic Trapezoidal Profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–43
Step Trapezoidal Profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–44
Choosing the Profile Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–45
Automatic Trapezoidal Profile Defined . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–45
Step Trapezoidal Profiles Defined . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–46
Velocity Control Defined . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–46
Automatic Trapezoidal Profile Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–47
Program Example 1: Automatic Trapezoidal Profile . . . . . . . . . . . . . . . . . . . . . . . .3–48

iv DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02


Table of Contents

Preload Position Value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–49


Program Example 2: Automatic Trapezoidal Profile . . . . . . . . . . . . . . . . . . . . . . . .3–50
Program Example 3: Home Search Automatic Trapezoidal Profile . . . . . . . . . . . . .3–53
Step Trapezoidal Profile Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–55
Program Example 4: Step Trapezoidal Profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–56
Velocity Profile Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–59
Program Example 5: Velocity Profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–60
Automatic Trapezoidal Profile Error Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–62
Troubleshooting Guide for Mode 30 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–62
Symptom: The stepper motor does not rotate. . . . . . . . . . . . . . . . . . . . . . . . . . . .3–62
Symptom: The motor turns in the wrong direction. . . . . . . . . . . . . . . . . . . . . . . .3–63
Mode 40: High-Speed Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–64
Purpose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–64
Functional Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–64
Setup for Mode 40 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–65
Interrupts and the Ladder Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–65
External Interrupt Timing Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–66
Timed Interrupt Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–66
X Input / Timed INT Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–66
Program Example 1: External Interrupt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–67
Program Example 2: Timed Interrupt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–68
Mode 50: Pulse Catch Input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–69
Purpose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–69
Functional Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–69
Pulse Catch Timing Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–69
When to use Pulse Catch Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–70
Setup for Mode 50 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–70
X Input Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–71
Program Example 1: Pulse Catch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–72
Mode 60: Discrete Inputs with Filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–73
Purpose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–73
Functional Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–73
Input Filter Timing Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–73
Setup for Mode 60 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–74
X Input Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–74
Program Example: Filtered Inputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–75

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 v


Table of Contents

Chapter 4: CPU Specifications and Operation . . . . . . . . . . . . . . . . . . .4–1


Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–2
DL06 CPU Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–2
CPU Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–3
CPU Hardware Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–4
Communication Port Pinout Diagrams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–4
Connecting the Programming Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–5
CPU Setup Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–5
Status Indicators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–6
Mode Switch Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–6
Changing Modes in the DL06 PLC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–7
Mode of Operation at Power-up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–7
Using Battery Backup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–8
Enabling the Battery Backup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–8
Auxiliary Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–9
Clearing an Existing Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–9
Initializing System Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–9
Setting Retentive Memory Ranges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–10
Using a Password . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–11
CPU Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–12
CPU Operating System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–12
Program Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–13
Run Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–13
Read Inputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–14
Service Peripherals and Force I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–14
CPU Bus Communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–15
Update Clock, Special Relays and Special Registers . . . . . . . . . . . . . . . . . . . . . . . .4–15
Solve Application Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–16
Solve PID Loop Equations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–16
Write Outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–17
Write Outputs to Specialty I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–17
Diagnostics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–17
I/O Response Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–17
Is Timing Important for Your Application? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–17
Normal Minimum I/O Response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–18
Normal Maximum I/O Response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–18

vi DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02


Table of Contents

Improving Response Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–19


CPU Scan Time Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–20
Reading Inputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–20
Writing Outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–20
Service Peripherals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–21
CPU Bus Communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–21
Update Clock / Calendar, Special Relays, Special Registers . . . . . . . . . . . . . . . . . . .4–21
Application Program Execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–22
PLC Numbering Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–23
PLC Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–23
V–Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–24
Binary-Coded Decimal Numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–24
Hexadecimal Numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–24
Memory Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–25
Octal Numbering System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–25
Discrete and Word Locations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–25
V Memory Locations for Discrete Memory Areas . . . . . . . . . . . . . . . . . . . . . . . . . .4–25
Input Points (X Data Type) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–26
Output Points (Y Data Type) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–26
Control Relays (C Data Type) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–26
Timers and Timer Status Bits (T Data Type) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–26
Timer Current Values (V Data Type) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–27
Counters and Counter Status Bits (CT Data type) . . . . . . . . . . . . . . . . . . . . . . . . .4–27
Counter Current Values (V Data Type) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–27
Word Memory (V Data Type) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–28
Stages (S Data type) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–28
Special Relays (SP Data Type) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–28
DL06 System V-memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–29
System Parameters and Default Data Locations (V Data Type) . . . . . . . . . . . . . . . .4–29
DL06 Memory Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–31
X Input / Y Output Bit Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–32
Stage Control / Status Bit Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–33
Control Relay Bit Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–35
Timer Status Bit Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–37
Counter Status Bit Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–37

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 vii
Table of Contents

Remote I/O Bit Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–38


Module Placement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–42
Slot Numbering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–42
Automatic I/O Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–43
Manual I/O Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–43
Power Budgeting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–44
Power supplied . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–44
Power required by base unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–44
Power required by option cards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–44
Configuring the DL06’s Comm Ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–46
DL06 Port Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–46
DL06 Port Pinouts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–46
Choosing a Network Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–47
RS-232 Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–47
RS-485 Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–47
Connecting to MODBUS and DirectNET Networks . . . . . . . . . . . . . . . . . . . . . . . .4–48
MODBUS Port Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–48
DirectNET Port Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–49
Non–Sequence Protocol (ASCII In/Out and PRINT) . . . . . . . . . . . . . . . . . . . . . . .4–50
MODBUS Port Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–50
Network Slave Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–51
MODBUS Function Codes Supported . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–51
Determining the MODBUS Address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–51
If Your Host Software Requires the Data Type and Address . . . . . . . . . . . . . . . . . .4–52
Example 1: V2100 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–53
Example 2: Y20 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–53
Example 3: T10 Current Value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–53
Example 4: C54 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–53
If Your MODBUS Host Software Requires an Address ONLY . . . . . . . . . . . . . . . . . .4–54
Example 1: V2100 584/984 Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–55
Example 2: Y20 584/984 Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–55
Example 3: T10 Current Value 484 Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–55
Example 4: C54 584/984 Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–55
Determining the DirectNET Address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–55
Network Master Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–56
Step 1: Identify Master Port # and Slave # . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–57

viii DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Table of Contents

Step 2: Load Number of Bytes to Transfer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–57


Step 3: Specify Master Memory Area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–58
Step 4: Specify Slave Memory Area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–58
Communications from a Ladder Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–59
Multiple Read and Write Interlocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–59
Network Master Operation (using MRX and MWX Instructions) . . . . . . . . . . . . .4–60
MODBUS Function Codes Supported . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–60
MODBUS Port Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–61
MODBUS Read from Network(MRX) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–62
MRX Slave Memory Address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–63
MRX Master Memory Addresses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–63
MRX Number of Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–63
MRX Exception Response Buffer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–63
MODBUS Write to Network (MWX) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–64
MWX Slave Memory Address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–65
MWX Master Memory Addresses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–65
MWX Number of Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–65
MWX Exception Response Buffer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–65
MRX / MWX Example in DirectSOFT32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–66
Multiple Read and Write Interlocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–66

Chapter 5: Standard RLL Instructions . . . . . . . . . . . . . . . . . . . . . . . . .5–1


Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–2
Using Boolean Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–5
END Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–5
Simple Rungs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–5
Normally Closed Contact . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–5
Contacts in Series . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–6
Midline Outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–6
Parallel Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–6
Joining Series Branches in Parallel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–7
Joining Parallel Branches in Series . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–7
Combination Networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–7
Comparative Boolean . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–7
Boolean Stack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–8
Immediate Boolean . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–9

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 ix


Table of Contents

Boolean Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–10


Comparative Boolean . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–26
Immediate Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–32
Timer, Counter and Shift Register Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . .5–39
Using Timers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–39
Timer Example Using Discrete Status Bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–41
Timer Example Using Comparative Contacts . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–41
Accumulating Timer Example using Discrete Status Bits . . . . . . . . . . . . . . . . . . . . .5–43
Accumulator Timer Example Using Comparative Contacts . . . . . . . . . . . . . . . . . . .5–43
Using Counters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–44
Counter Example Using Discrete Status Bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–46
Counter Example Using Comparative Contacts . . . . . . . . . . . . . . . . . . . . . . . . . . .5–46
Stage Counter Example Using Discrete Status Bits . . . . . . . . . . . . . . . . . . . . . . . . .5–48
Stage Counter Example Using Comparative Contacts . . . . . . . . . . . . . . . . . . . . . .5–48
Up / Down Counter Example Using Discrete Status Bits . . . . . . . . . . . . . . . . . . . .5–50
Up / Down Counter Example Using Comparative Contacts . . . . . . . . . . . . . . . . . .5–50
Accumulator / Stack Load and Output Data Instructions . . . . . . . . . . . . . . . . . . .5–52
Using the Accumulator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–52
Copying Data to the Accumulator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–52
Changing the Accumulator Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–53
Using the Accumulator Stack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–54
Using Pointers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–55
Logical Instructions (Accumulator) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–69
Math Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–86
Transcendental Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–118
Bit Operation Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–120
Number Conversion Instructions (Accumulator) . . . . . . . . . . . . . . . . . . . . . . . . .5–127
Shuffle Digits Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–139
Table Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–141
Copy Data From a Data Label Area to V Memory . . . . . . . . . . . . . . . . . . . . . . . .5–143
Clock / Calendar Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–171
CPU Control Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–173
Program Control Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–175
MLS/MLR Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–182

x DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02


Table of Contents

Interrupt Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–183


Timed Interrupt Program Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–185
Independent Timed Interrupt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–185
Message Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–186
Fault Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–186
Data Label Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–188
Direct Text Entry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–197
Embedding date and/or time variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–198
Embedding V-memory data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–198
Data Format Suffixes for Embedded V-memory Data . . . . . . . . . . . . . . . . . . . . . .5–199
Text Entry from V-memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–200
MODBUS RTU Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–201
MRX Slave Address Ranges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–202
MRX Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–203
MWX Slave Address Ranges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–205
MWX Master Memory Address Ranges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–205
MWX Number of Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–205
MWX Exception Response Buffer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–205
MWX Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–206
ASCII Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–207
Reading ASCII Input Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–207
Writing ASCII Output Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–207
Managing the ASCII Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–208
AFIND Search Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–214
AFIND Example Combined with AEX Instruction . . . . . . . . . . . . . . . . . . . . . . . . .5–215

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 xi


CHAPTER
GETTING STARTED
1
In This Chapter...
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1–2
Conventions Used . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1–3
DL06 Micro PLC Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1–4
Programming Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1–4
I/O Quick Selection Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1–5
Quick Start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1–6
Steps to Designing a Successful System . . . . . . . . . . . . . . . . . . . . .1–10
Questions and Answers about DL06 Micro PLCs . . . . . . . . . . . . . .1–12
Chapter 1: Getting Started

Introduction
The Purpose of this Manual
Thank you for purchasing a DL06 Micro PLC. This manual shows you how to install,
program, and maintain all PLCs in the DL06 family. It also helps you understand how to
interface them to other devices in a control system.This manual contains important
information for personnel who will install DL06 PLCs and for the PLC programmer. This
user manual will provide the information you need to get and keep your system up and
running.
Supplemental Manuals
The D0–OPTIONS–M manual contains technical information about the option cards
available for the DL06 PLCs. This information includes specifications and wiring diagrams
that will be indispensable if you use any of the optional I/O or communications cards. If you
have purchased one of our operator interface panels or DirectSOFT™ programming
software, you will want to refer to the manuals that are written for these products.
Technical Support
We strive to make our manuals the best in the industry. We rely on your feedback to let us
know if we are reaching our goal. If you cannot find the solution to your particular
application, or, if for any reason you need technical assistance, please call us at:
770–844–4200.
Our technical support group will work with you to answer your questions. They are available
Monday through Friday from 9:00 A.M. to 6:00 P.M. Eastern Time. We also encourage you
to visit our web site where you can find technical and non-technical information about our
products and our company.
In Brazil: http://www.soliton.com.br
If you have a comment, question or suggestion about any of our products, services, or
manuals, please fill out and return the ‘Suggestions’ card that was included with this manual.

1–2 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 1: Getting Started

Conventions Used

When you see the “notepad” icon in the left-hand margin, the paragraph to
its immediate right will be a special note. Notes represent information that
may make your work quicker or more efficient. The word NOTE: in
boldface will mark the beginning of the text.

When you see the “exclamation point” icon in the left-hand margin, the
paragraph to its immediate right will be a warning. This information could
prevent injury, loss of property, or even death in extreme cases. Any warning in
this manual should be regarded as critical information that should be read in
its entirety. The word WARNING in boldface will mark the beginning of the text.

Key Topics for Each Chapter Getting Started CHAPTER


The beginning of each chapter will list the key topics 1
that can be found in that chapter.
In This Chapter...
General Information .................................................................1-2
Specifications ...........................................................................1-4

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 1–3
Chapter 1: Getting Started

DL06 Micro PLC Overview


The DL06 micro PLC family is a versatile product line that
combines powerful features and a very compact footprint.
The DL06 PLCs offer expandable I/O, high-speed counter,
floating point, PID, etc. There are a number of
communication options and an optional LCD display.
The DL06 PLC Features
The DL06 Micro PLC family includes eight different
versions. All have the same appearance and CPU
performance. The CPU offers an instruction set very similar to our powerful new DL260
CPU including new easy to use ASCII and MODBUS instructions. All DL06 PLCs have two
built-in communications ports that can be used for programming, operator interface,
networking, etc.
Units with DC inputs have selectable high-speed input features on four input points. Units
with DC outputs offer selectable pulse output capability on the first and second output
points. Details of these features and more are covered in Chapter 4, CPU Specifications and
Operation. There are eight versions of the DL06 PLC. The most common industrial I/O
types and power supply voltages are available. Consult the following table to find the model
number of the PLC that best fits your application.
DL06 Micro PLC Family
DL06 Part Discrete Input Discrete Output External Power High-Speed Pulse Output
Number Type Type Input
D0–06AA AC AC 95–240 VAC No No
D0–06AR AC Relay 95–240 VAC No No
D0–06DA DC AC 95–240 VAC Yes No
D0–06DD1 DC DC Sinking 95–240 VAC Yes Yes
D0–06DD2 DC DC Sourcing 95–240 VAC Yes Yes
D0–06DR DC Relay 95–240 VAC Yes No
D0–06DD1–D DC DC Sinking 12–24 VDC Yes Yes
D0–06DR–D DC Relay 12–24 VDC Yes No

Programming Methods
Two programming methods are available: RLL (Relay Ladder Logic) and RLLPLUS. RLLPLUS
combines the added feature of flow chart programming (Stage) to the standard RLL language.
Both the DirectSOFT™ programming package and the handheld programmer support
RLLPLUS as well as standard RLL instructions.
DirectSOFT32 Programming for Windows™
The DL06 Micro PLC can be programmed with DirectSOFT32, V4.0 or later, a Windows-
based software package that supports familiar features such as cut-and-paste between
applications, point-and-click editing, viewing and editing multiple application programs at
the same time, etc.

1–4 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 1: Getting Started

DirectSOFT32 (part number PC-PGMSW) supports the DirectLOGIC CPU families. You
can use the full version of DirectSOFT32 to program the DL05, DL06, DL105, DL205,
DL305, and DL405. (Upgrade software may be required for new CPUs when they become
available). A separate manual discusses DirectSOFT32 programming software.
DirectSOFT32 version 4.0 or later is needed to program the DL06.
Handheld Programmer
All DL06 Micro PLCs have a built-in programming port for use with the handheld
programmer (D2–HPP), the same programmer used with the DL05, DL105 and DL205
families. The handheld programmer can be used to create, modify and debug your
application program. A separate manual discusses the Handheld Programmer. Only
D2–HPPs with firmware version 2.2 or later will program the DL06.

I/O Quick Selection Guide


The eight versions of the DL06 have input/output circuits which can interface to a wide
variety of field devices. In several instances a particular input or output circuit can interface to
either DC or AC voltages, or both sinking and sourcing circuit arrangements. Check this
guide to find the proper DL06 Micro PLC to interface to the field devices in your application.

I/O Selection Guide


INPUTS OUTPUTS
DL06 Part
Number I/O type/ Voltage I/O type/ Sink/Source Voltage/ Current Ratings*
commons Sink/Source Ranges commons
D0–06AA AC / 5 – 90 – 120 VAC AC / 4 – 17 – 240 VAC, 47 – 63 Hz 0.5A

D0–06AR AC / 5 – 90 – 120 VAC Relay / 4 Sink or Source 66 –– 27VDC, 2A


240 VAC, 2A
D0–06DA DC / 5 Sink or Source 12 – 24 VDC AC / 4 – 17 – 240 VAC, 47 – 63 Hz 0.5A
6 – 27 VDC, 0.5A (Y0–Y1)
D0–06DD1 DC / 5 Sink or Source 12 – 24 VDC DC / 4 Sink 6 – 27 VDC, 1.0A (Y2–Y17)
6 – 27 VDC, 0.5A (Y0–Y1)
D0–06DD2 DC / 5 Sink or Source 12 – 24 VDC DC / 4 Source 6 – 27 VDC, 1.0A (Y2–Y17)
D0–06DR DC / 5 Sink or Source 12 – 24 VDC Relay / 4 Sink or Source 66 –– 27VDC, 2A
240 VAC, 2A
6 – 27 VDC, 0.5A (Y0–Y1)
D0–06DD1–D DC / 5 Sink or Source 12 – 24 VDC DC / 4 Sink 6 – 27 VDC, 1.0A (Y2–Y17)
D0–06DR–D DC / 5 Sink or Source 12 – 24 VDC Relay / 4 Sink or Source 66 –– 27 VDC, 2A
240 VAC, 2A

* See Chapter 2, Specifications for more information about a particular DL06 version.

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 1–5
Chapter 1: Getting Started

Quick Start
This example is not intended to tell you everything you need to know about programming
and starting-up a complex control system. It is only intended to give you an opportunity to
demonstrate to yourself and others the basic steps necessary to power up the PLC and
confirm its operation. Please look for warnings and notes throughout this manual for
important information you will not want to overlook.
Step 1: Unpack the DL06 Equipment
Unpack the DL06 and gather the parts necessary to build this demonstration system. The
recommended components are:
• DL06 Micro PLC
• AC power cord or DC power supply
• Toggle switches (see Step 2 on next page).
• Hook-up wire, 16-22 AWG
• DL06 User Manual (this manual)
• A small screwdriver, 5/8” flat or #1 Philips type
You will need at least one of the following programming options:
• DirectSOFT32 Programming Software V4.0 or later (PC-PGMSW or PC-PGM-BRICK),
DirectSOFT32 Manual (included with the software), and a programming cable (D2-DSCBL
connects the DL06 to a personal computer)
or
• D2-HPP Handheld Programmer, firmware version 2.20 or later, (comes with programming cable).
Please purchase Handheld Programmer Manual D2-HPP-M separately.

G LG 0V Y0 Y2 C1 Y5 Y7 Y10 Y12 C3 Y15 Y17


PWR
AC(L) AC(N) 24V C0 Y1 Y3 Y4 Y6 C2 Y11 Y13 Y14 Y16 N.C. RUN
OUTPUT: 6-240V 50 - 60Hz 2.0A, 6 - 27V 2.0A PWR: 100-240V 50-60Hz 40VA CPU

Y D0-06DR TX1
RX1
0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23
TX2
X RX2
INPUT: 12 - 24V 3 - 15mA

LOGIC 06
K oyo

C0 X1 X3 X4 X6 C2 X11 X13 X14 X16 C4 X21 X23 N.C.


X0 X2 C1 X5 X7 X10 X12 C3 X15 X17 X20 X22 N.C.
TERM

PORT1 PORT2 RUN STOP

1–6 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 1: Getting Started

Step 2: Connect Switches to Input Terminals


To proceed with this quick-start exercise or to follow other examples in this manual, you will
need to connect one or more input switches as shown below. If you have DC inputs on an
AC-supply DL06, you can use the auxiliary 24VDC supply on the output terminal block or
other external 12-24VDC power supply. Be sure to follow the instructions in the
accompanying WARNING on this page.

D0-06DA, D0-06DD1,
D0-06DD2, D0-06DR,
LOGIC 06
K oyo
D0-DD1-D, and D0-06DR1-D
DC Input

C0 X1 X3 X4 X6 C2 X11 X13 X14 X16 C4 X21 X23 N.C.


X0 X2 C1 X5 X7 X10 X12 C3 X15 X17 X20 X22 N.C.

-
12 - 24 VDC
+
Toggle Switches
UL Listed

D0-06AA and D0-06AR


AC input only
LOGIC 06
K oyo

C0 X1 X3 X4 X6 C2 X11 X13 X14 X16 C4 X21 X23 N.C.


X0 X2 C1 X5 X7 X10 X12 C3 X15 X17 X20 X22 N.C.

90 - 120 VAC
Toggle Switches
fuse

UL Listed

WARNING: Remove power and unplug the DL06 when wiring the
switches. Use only UL-approved switches rated for at least
250VAC, 1A for AC inputs. Firmly mount the switches before
using.

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 1–7
Chapter 1: Getting Started

Step 3: Connect the Power Wiring


Connect the power input wiring for the DL06. Observe all precautions stated earlier in this
manual. For more details on wiring, see Chapter 2 on Installation, Wiring, and Specifications.
When the wiring is complete, close the connector covers. Do not apply power at this time
12 - 24 VDC
+ -

Fuse
Fuse
fuse
110/220 VAC Power Input 12/24 VDC Power Input

G LG 0V Y0 Y2 C1 Y5 Y7 Y1 G LG N.C. Y0 Y2 C1 Y5 Y7 Y10 Y1
AC(L) AC(N) 24V C0 Y1 Y3 Y4 Y6 C2 + - N.C. C0 Y1 Y3 Y4 Y6 C2 Y11
OUTPUT: 17-240V 50 - 60Hz 0.5A PWR: 100-240V 50-60H OUTPUT: Sinking Output 6 - 27V 1.0A PWR: 12-24 20W
Y Y
0 1 2 3 4 5 6 7 10 11 12 13 14 15 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16
X X
INPUT: 90 - 120V 7 - 15mA INPUT: 12 - 24V 3 - 15mA

Step 4: Connect the Programming Device


Most programmers will use DirectSOFT32 programming software, Version 4.0 or later,
installed on a personal computer. An alternative, if you need a compact portable
programming device, is the Handheld Programmer (firmware version 2.20 or later). Both
devices will connect to COM port 1 of the DL06 via the appropriate cable.

G LG 0V Y0 Y2 C1 Y5 Y7 Y10 Y12 C3 Y15 Y17


PWR
AC(L) AC(N) 24V C0 Y1 Y3 Y4 Y6 C2 Y11 Y13 Y14 Y16 N.C. RUN
OUTPUT: 6-240V 50 - 60Hz 2.0A, 6 - 27V 2.0A PWR: 100-240V 50-60Hz 40VA CPU

Y D0-06DR TX1
RX1
0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23
TX2
X RX2
INPUT: 12 - 24V 3 - 15mA

LOGIC 06
K oyo Use cable part #
C0 X1 X3 X4 X6 C2 X11 X13 X14 X16 C4 X21 X23 N.C.

D2–DSCBL
X0 X2 C1 X5 X7 X10 X12 C3 X15 X17 X20 X22 N.C.
TERM

PORT1 PORT2 RUN STOP

(cable comes with HPP)


G LG 0V Y0 Y2 C1 Y5 Y7 Y10 Y12 C3 Y15 Y17
PWR

For replacement
AC(L) AC(N) 24V C0 Y1 Y3 Y4 Y6 C2 Y11 Y13 Y14 Y16 N.C. RUN
OUTPUT: 6-240V 50 - 60Hz 2.0A, 6 - 27V 2.0A PWR: 100-240V 50-60Hz 40VA CPU

Y D0-06DR TX1
RX1
0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23
TX2
X RX2
INPUT: 12 - 24V 3 - 15mA

cable, use part #


LOGIC 06
C0
X0
K oyo

X1
X2
X3
C1
X4
X5
X6
X7
C2 X11 X13 X14 X16 C4 X21 X23 N.C.
X10 X12 C3 X15 X17 X20 X22 N.C.
TERM
DV–1000CBL
PORT1 PORT2 RUN STOP

Note: The Handheld Programmer cannot create or access LCD, ASCII or MODBUS instructions.

1–8 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 1: Getting Started

Step 5: Switch on the System Power


Apply power to the system and ensure the PWR indicator on the DL06 is on. If not, remove
power from the system and check all wiring and refer to the troubleshooting section in
Chapter 9 for assistance.
Step 6: Initialize Scratchpad Memory
It’s a good precaution to always clear the system memory (scratchpad memory) on a new
DL06. There are two ways to clear the system memory:
• In DirectSOFT32, select the PLC menu, then Setup, then Initialize Scratchpad. For additional
information, see the DirectSOFT32 Manual. Initializing Scratchpad will return secondary comm
port settings and retentive range settings to default. If you have made any changes to these you will
need to note these changes and re-enter them after initializing Scratchpad.
• For the Handheld Programmer, use the AUX key and execute AUX 54.
See the Handheld Programmer Manual for additional information.
Step 7: Enter a Ladder Program
At this point, DirectSOFT32 programmers need to refer to the Quick Start Tutorial in the
DirectSOFT32 Manual. There you will learn how to establish a communications link with
the DL06 PLC, change CPU modes to Run or Program, and enter a program.
If you are learning how to program with the Handheld Programmer, make sure the CPU is in
Program Mode (the RUN LED on the front of the DL06 should be off ). If the RUN LED is
on, use the MODE key on the Handheld Programmer to put the PLC in Program Mode,
then switch to TERM.
Enter the following keystrokes on the Handheld Programmer.
Clear the Program
Equivalent DirectSOFT32 display CLR CLR

C E AUX ENT ENT CLR


X0 Y0 2 4

OUT
$ A Move to the first
NEXT ENT
STR 0 address and enter
X0 contact
END
GX A Enter output Y0
ENT
OUT 0

E N D Enter the END


SHFT ENT
4 TMR 3 statement

After entering the simple example program put the PLC in Run mode by using the Mode key
on the Handheld Programmer.
The RUN indicator on the PLC will illuminate indicating the CPU has entered the Run
mode. If not, repeat this step, ensuring the program is entered properly or refer to the
troubleshooting guide in chapter 9.
After the CPU enters the run mode, the output status indicator for Y0 should follow the
switch status on input channel X0. When the switch is on, the output will be on.

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 1–9
Chapter 1: Getting Started

Steps to Designing a Successful System


Step 1: Review the Installation Guidelines
Always make safety the first priority in any system
design. Chapter 2 provides several guidelines that
will help you design a safer, more reliable system.
This chapter also includes wiring guidelines for the
various versions of the DL06 PLC.

Step 2: Understand the PLC Setup Procedures


The PLC is the heart of your automation system.
Make sure you take time to understand the various
features and setup requirements.

Step 3: Review the I/O Selection Criteria Input


PLC

There are many considerations involved when you


select your I/O type and field devices. Take time to +
Input
understand how the various types of sensors and – Sensing
loads can affect your choice of I/O type. Common

Step 4: Choose a System Wiring Strategy AC


Power
Loads
It is important to understand the various
system design options that are available before DL06
PLC
Power Input 16 Outputs Commons
wiring field devices and field-side power 20 Inputs Commons
+24 VDC
supplies to the Micro PLC.
+ –

Step 5: Understand the System Operation


Before you begin to enter a program, it is very
helpful to understand how the DL06 system Power Up
processes information. This involves not only
program execution steps, but also involves the Initialize Hardware

various modes of operation and memory


layout characteristics.

1–10 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 1: Getting Started

Step 6: Review the Programming Concepts


The DL06 PLC instruction set provides for three main approaches to solving the application
program, depicted in the figure below.
• RLL diagram-style programming is the best tool for solving boolean logic and general CPU
register/accumulator manipulation. It includes dozens of instructions, which will also be needed to
augment drums and stages.
• The Timer/Event Drum Sequencer features up to 16 steps and offers both time and/or event-based
step transitions. The DRUM instruction is best for a repetitive process based on a single series of
steps.
• Stage programming (also called RLLPlus) is based on state-transition diagrams. Stages divide the
ladder program into sections which correspond to the states in a flow chart you draw for your
process.

Standard RLL Programming Timer/Event Drum Sequencer Stage Programming


(see Chapter 5) (see Chapter 6) (see Chapter 7)

Push–UP RAISE
X0
LDD
V1076

CMPD DOWN LIGHT UP


K309482
SP62 Y0
Push–
OUT LOWER
DOWN

After reviewing the programming concepts above, you’ll be equipped with a variety of tools to
write your application program.
Step 7: Choose the Instructions
Once you have installed the Micro PLC and TMR T1
understand the main programming concepts, you K30
can begin writing your application program. At CNT CT3
K10
that time you will begin to use one of the most
powerful instruction sets available in a small PLC.

Step 8: Understand the Maintenance and


Troubleshooting Procedures
Sometimes equipment failures occur when we least
expect it. Switches fail, loads short and need to be
replaced, etc. In most cases, the majority of the
troubleshooting and maintenance time is spent
trying to locate the problem. The DL06 Micro
PLC has many built-in features such as error codes
that can help you quickly identify problems.

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 1–11
Chapter 1: Getting Started

Questions and Answers about DL06 Micro PLCs


Q. What is the instruction set like?
A. The instruction set is very close to that of our DL260 CPU. The DL06 instructions
include the drum sequencing instruction, networking, ASCII, MODBUS, LCD and
High-Speed I/O capabilities. High-Speed inputs are available on units with DC inputs
only; high-speed outputs are available on units with DC outputs only.
Q. Do I have to buy the full DirectSOFT32 programming package to program
the DL06?
A. No. We offer a version of DirectSOFT32 just for our micro PLC products,
PC-PGM-BRICK, and it’s very affordable.
Q. Is the DL06 expandable?
A. Yes, the DL06 series function as stand-alone PLCs. However, option card slots allow you
to expand the system without changing the footprint.
Q. Does the DL06 have motion control capability?
A. Yes, the DL06 has limited motion control capabilities. The High-Speed I/O features offer
either encoder inputs with high-speed counting and presets with interrupt, or a
pulse/direction output for stepper control. Three types of motion profiles are available,
which are explained in Chapter 3.
Q. Are the ladder programs stored in a removable EEPROM?
A. No. The DL06 contains a non-removable FLASH memory for program storage, which
may be written and erased thousands of times. You may transfer programs to/from
DirectSOFT32 on a PC.
Q. Does the DL06 contain fuses for its outputs?
A. There are no output circuit fuses. Therefore, we recommend fusing each channel, or fusing
each common. See Chapter 2 for I/O wiring guidelines.
Q. Is the DL06 Micro PLC U.L. approved?
A. The Micro PLC has met the requirements of UL (Underwriters’ Laboratories, Inc.), and
CUL (Canadian Underwriters’ Laboratories, Inc.).

Q. Does the DL06 Micro PLC comply with European Union (EU) Directives?
A. The Micro PLC has met the requirements of the European Union Directives (CE).

1–12 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 1: Getting Started

Q. Which devices can I connect to the communication ports of the DL06?


A. Port 1: The port is RS-232C, fixed at 9600 baud, odd parity, address 1,and uses the
proprietary K-sequence protocol. The DL06 can also connect to MODBUS RTU and
DirectNET networks as a slave device through port 1. The port communicates with the
following devices:
• DV-1000 Data Access Unit, EZTouch, EZText, DirectTouch, LookoutDirect, DSData or
Optimation Operator interface panels
• DirectSOFT32 (running on a personal computer)
• D2-HPP handheld programmer
• Other devices which communicate via K-sequence, Directnet, MODBUS RTU protocols should
work with the DL06 Micro PLC. Contact the vendor for details.
A. Port 2: This is a multi-function port. It supports RS-232C, RS422, or RS485, with
selective baud rates (300-38,400bps), address and parity. It also supports the proprietary K-
sequence protocol as well as DirectNet and MODBUS RTU, ASCII In/Out and non-
sequence/print protocols.
Q. Can the DL06 accept 5VDC inputs?
A. No, 5 volts is lower than the DC input ON threshold. However, many TTL logic circuits
can drive the inputs if they are wired as open collector (sinking) inputs. See Chapter 2 for I/O
wiring guidelines.

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 1–13
INSTALLATION, WIRING, CHAPTER
AND SPECIFICATIONS
2
In This Chapter...
Safety Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2–2
Orientation to DL06 Front Panel . . . . . . . . . . . . . . . . . . . . . . . . . . .2–4
Mounting Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2–6
Wiring Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2–10
System Wiring Strategies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2–13
Glossary of Specification Terms . . . . . . . . . . . . . . . . . . . . . . . . . . .2–25
Wiring Diagrams and Specifications . . . . . . . . . . . . . . . . . . . . . . . .2–26
Chapter 2: Installation, Wiring, and Specifications

Safety Guidelines
NOTE: Products with CE marks perform their required functions safely and adhere to relevant standards as
specified by CE directives provided they are used according to their intended purpose and that the
instructions in this manual are adhered to. The protection provided by the equipment may be impaired if
this equipment is used in a manner not specified in this manual.

WARNING: Providing a safe operating environment for personnel and equipment is your responsibility
and should be your primary goal during system planning and installation. Automation
systems can fail and may result in situations that can cause serious injury to personnel or
damage to equipment. Do not rely on the automation system alone to provide a safe
operating environment. You should use external electro-mechanical devices, such as relays
or limit switches, that are independent of the PLC application to provide protection for any
part of the system that may cause personal injury or damage. Every automation application
is different, so there may be special requirements for your particular application. Make sure
you follow all national, state, and local government requirements for the proper installation
and use of your equipment.

Plan for Safety


The best way to provide a safe operating environment is to make personnel and equipment
safety part of the planning process. You should examine every aspect of the system to
determine which areas are critical to operator or machine safety. If you are not familiar with
PLC system installation practices, or your company does not have established installation
guidelines, you should obtain additional information from the following sources.
• NEMA — The National Electrical Manufacturers Association, located in Washington, D.C.,
publishes many different documents that discuss standards for industrial control systems. You can
order these publications directly from NEMA. Some of these include:
ICS 1, General Standards for Industrial Control and Systems
ICS 3, Industrial Systems
ICS 6, Enclosures for Industrial Control Systems
• NEC — The National Electrical Code provides regulations concerning the installation and use of
various types of electrical equipment. Copies of the NEC Handbook can often be obtained from your
local electrical equipment distributor or your local library.
• Local and State Agencies — many local governments and state governments have additional
requirements above and beyond those described in the NEC Handbook. Check with your local
Electrical Inspector or Fire Marshall office for information.
Three Levels of Protection
The publications mentioned provide many ideas and requirements for system safety. At a
minimum, you should follow these regulations. Also, you should use the following
techniques, which provide three levels of system control.
• Orderly system shutdown sequence in the PLC control program
• Mechanical disconnect for output module power
• Emergency stop switch for disconnecting system power

2–2 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 2: Installation, Wiring, and Specifications

Orderly System Shutdown


The first level of fault detection is ideally the PLC control
program, which can identify machine problems. You must
shutdown sequences that must be performed. These types
of problems are usually things such as jammed parts, etc.
that do not pose a risk of personal injury or equipment
damage. Turn off
Jam
Saw
WARNING: The control program must not be the only form of Detect
protection for any problems that may result in a risk RST

of personal injury or equipment damage.


RST
Retract
System Power Disconnect
You should also use electro-mechanical devices, such as master control relays and/or limit
switches, to prevent accidental equipment startup at an unexpected time. These devices
should be installed in such a manner to prevent any machine operations from occurring.
For example, if the machine has a jammed part the PLC control program can turn off the saw
blade and retract the arbor. However, since the operator must open the guard to remove the
part, you should also include a bypass switch that disconnects all system power any time the
guard is opened.
Emergency Stop
The machinery must provide a quick manual method of disconnecting all system power. The
disconnect device or switch must be clearly labeled “Emergency Stop”.
Use E-Stop and Master Relay

Power On Guard Master


Emergency E STOP
Guard Line Switch Link Relay
Stop

To Disconnect
PLC Power

Master Relay Contacts

G LG 0V Y0 Y2 C1 Y5 Y7 Y10 Y12 C3 Y15 Y17


PWR
AC(L) AC(N) 24V C0 Y1 Y3 Y4 Y6 C2 Y11 Y13 Y14 Y16 N.C. RUN
OUTPUT: 6-240V 50 - 60Hz 2.0A, 6 - 27V 2.0A PWR: 100-240V 50-60Hz 40VA CPU

Y D0-06DR TX1
RX1
0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23
TX2
X RX2
INPUT: 12 - 24V 3 - 15mA

LOGIC 06
K oyo

C0 X1 X3 X4 X6 C2 X11 X13 X14 X16 C4 X21 X23 N.C.


X0 X2 C1 X5 X7 X10 X12 C3 X15 X17 X20 X22 N.C.
TERM

PORT1 PORT2 RUN STOP

To disconnect PLC Saw


output circuit ry Arbor

After an Emergency shutdown or any other type of power interruption, there may be
requirements that must be met before the PLC control program can be restarted. For
example, there may be specific register values that must be established (or maintained from
the state prior to the shutdown) before operations can resume. In this case, you may want to
use retentive memory locations, or include constants in the control program to ensure a
known starting point.

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 2–3
Chapter 2: Installation, Wiring, and Specifications

Class 1, Division 2 Approval


This equipment is suitable for use in Class 1, Division 2, groups A, B, C and D or non-
hazardous locations only.
WARNING: Explosion Hazard! Substitution of components may impair suitability for Class 1, Division 2.
Do not disconnect equipment unless power has been switched off or area is known to be non-
hazardous.

Orientation to DL06 Front Panel


Most connections, indicators, and labels on the DL06 Micro PLCs are located on its front
panel. The communication ports are located on front of the PLC as are the option card slots
and the mode selector switch. Please refer to the drawing below.
Power Inputs Output Circuit
Mounting Tab Discrete Outputs Output Status Power Input Status
Indicators (for DC output versions only) Indicators

G LG 0V Y0 Y2 C1 Y5 Y7 Y10 Y12 C3 Y15 Y17


PWR
AC(L) AC(N) 24V C0 Y1 Y3 Y4 Y6 C2 Y11 Y13 Y14 Y16 N.C. RUN
OUTPUT: 6-240V 50 - 60Hz 2.0A, 6 - 27V 2.0A PWR: 100-240V 50-60Hz 40VA CPU

Y D0-06DR TX1
RX1
0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23
TX2
X RX2
INPUT: 12 - 24V 3 - 15mA Communication
Ports

LOGIC 06
K oyo

C0 X1 X3 X4 X6 C2 X11 X13 X14 X16 C4 X21 X23 N.C.


X0 X2 C1 X5 X7 X10 X12 C3 X15 X17 X20 X22 N.C.
TERM

PORT1 PORT2 RUN STOP

Discrete Inputs Input Status Option Slots Mode Switch


Indicators Mounting Tab

The output and power connector accepts external power and logic and chassis ground
connections on the indicated terminals. The remaining terminals are for connecting
commons and output connections Y0 through Y17. The sixteen output terminals are
numbered in octal, Y0-Y7 and Y10-Y17. On DC output units, the end terminal on the right
accepts power for the output stage. The input side connector provides the location for
connecting the inputs X0 and X23 and the associated commons.
WARNING: For some applications, field device power may still be present on the terminal block even
though the Micro PLC is turned off. To minimize the risk of electrical shock, check all field
device power before you expose or remove either connector

2–4 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 2: Installation, Wiring, and Specifications

Terminal Block Removal


The DL06 terminals are divided into two groups. Each group has its own terminal block. The
outputs and power wiring are on one block, and the input wiring is on the other. In some
instances, it may be desirable to remove the terminal block for easy wiring. The terminal block is
designed for easy removal with just a small screwdriver. The drawing below shows the procedure
for removing one of the terminal blocks.
1. Loosen the retention screws on each end of the connector block.

G LG 0V Y0 Y2 C1 Y5 Y7 Y10 Y12 C3 Y15 Y17


PWR
AC(L) AC(N) 24V C0 Y1 Y3 Y4 Y6 C2 Y11 Y13 Y14 Y16 N.C. RUN
OUTPUT: 6-240V 50 - 60Hz 2.0A, 6 - 27V 2.0A PWR: 100-240V 50-60Hz 40VA CPU

Y D0-06DR TX1
RX1
0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23
TX2
X RX2
INPUT: 12 - 24V 3 - 15mA

LOGIC 06
K oyo

C0 X1 X3 X4 X6 C2 X11 X13 X14 X16 C4 X21 X23 N.C.


X0 X2 C1 X5 X7 X10 X12 C3 X15 X17 X20 X22 N.C.
TERM

PORT1 PORT2 RUN STOP

2. From the center of the connector block, pry upward with the screwdriver until the
connector is loose.
The terminal blocks on DL06 PLCs have regular (m3 size) screw terminals, which will accept
either standard blade-type or #1 Philips screwdriver tips. You can insert one 16 AWG wire
under a terminal, or two 18 AWG wires (one on each side of the screw). Be careful not to
over-tighten; maximum torque is 6 inch/ounces.
Spare terminal blocks are available in an accessory kit. Please refer to part number
D0-ACC-2. You can find this and other accessories on our web site.

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 2–5
Chapter 2: Installation, Wiring, and Specifications

Mounting Guidelines
In addition to the panel layout guidelines, other specifications can affect the installation of a
PLC system. Always consider the following:
• Environmental Specifications
• Power Requirements
• Agency Approvals
• Enclosure Selection and Component Dimensions
Unit Dimensions
The following diagram shows the outside dimensions and mounting hole locations for all
versions of the DL06. Make sure you follow the installation guidelines to allow proper
spacing from other components.

Enclosures
Your selection of a proper enclosure is important to ensure safe and proper operation of your
DL06 system. Applications of DL06 systems vary and may require additional features. The
minimum considerations for enclosures include:
• Conformance to electrical standards
• Protection from the elements in an industrial environment
• Common ground reference
• Maintenance of specified ambient temperature
• Access to equipment
• Security or restricted access
• Sufficient space for proper installation and maintenance of equipment

2–6 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 2: Installation, Wiring, and Specifications

Panel Layout & Clearances


There are many things to consider when designing the panel layout. The following items
correspond to the diagram shown. Note: there may be additional requirements, depending on your
application and use of other components in the cabinet.
1. Mount the PLCs horizontally as shown below
to provide proper ventilation. You cannot mount
the DL06 units vertically, upside down, or on a
flat horizontal surface. If you place more than
one unit in a cabinet, there must be a minimum
of 7.2” (183mm) between the units.
2. Provide a minimum clearance of 1.5” (39mm)
between the unit and all sides of the cabinet.
Note, remember to allow for any operator panels
or other items mounted in the door.
3. There should also be at least 3” (78mm) of
clearance between the unit and any wiring ducts
that run parallel to the terminals.

Note: There is a minimum clearance


requirement of 1.5” (38mm) Temperature Probe
between the panel door (or any
devices mounted in the panel door)
and the nearest DL06 component.
Ground braid
copper lugs
Panel

1.5"
Panel or single 38mm
point ground Power Source min
Star Washers Star Washers

4. The ground terminal on the 1.5"


38mm
DL06 base must be connected min

to a single point ground. Use


copper stranded wire to achieve
a low impedance. Copper eye lugs Eart
h Gr Pan
el G
1.5"
38mm
oun roun
should be crimped and soldered to the ends of d min
d Te
rmin
the stranded wire to ensure good surface contact. al

5. There must be a single point ground (i.e. copper bus bar) for all
devices in the panel requiring an earth ground return. The single point of
ground must be connected to the panel ground termination. The panel ground
termination must be connected to earth ground. Minimum wire sizes, color coding, and
general safety practices should comply with appropriate electrical codes and standards for
your area.

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 2–7
Chapter 2: Installation, Wiring, and Specifications

6. A good common ground reference (Earth ground) is essential for proper operation of the
DL06. One side of all control and power circuits and the ground lead on flexible shielded
cable must be properly connected to Earth ground. There are several methods of providing an
adequate common ground reference, including:
a) Installing a ground rod as close to the panel as possible.
b) Connection to incoming power system ground.
7. Evaluate any installations where the ambient temperature may approach the lower or upper
limits of the specifications. If you suspect the ambient temperature will not be within the
operating specification for the DL06 system, measures such as installing a cooling/heating
source must be taken to get the ambient temperature within the range of specifications.
8. The DL06 systems are designed to be powered by 95-240 VAC or 12–24 VDC normally
available throughout an industrial environment. Electrical power in some areas where the
PLCs are installed is not always stable and storms can cause power surges. Due to this,
powerline filters are recommended for protecting the DL06 PLCs from power surges and
EMI/RFI noise. The Automation Powerline Filter, for use with 120 VAC and 240 VAC, 1–5
Amps, is an excellent choice, however, you can use a
filter of your choice. These units install easily between the power source and the PLC.
NOTE: If you are using other components in your system, make sure you refer to the appropriate manual to
determine how those units can affect mounting dimensions.

Using Mounting Rails


DL06 Micro PLCs can be secured to a panel by using mounting rails. We recommend rails
that conform to DIN EN standard 50 022. They are approximately 35mm high, with a depth
of 7mm. If you mount the Micro PLC on a rail, do consider using end brackets on each side
of the PLC. The end bracket helps keep the PLC from sliding horizontally along the rail,
reducing the possibility of accidentally pulling the wiring loose. On the bottom of the PLC
are two small retaining clips. To secure the PLC to a DIN rail, place it onto the rail and gently
push up on the clips to lock it onto the rail. To remove the PLC, pull down on the retaining
clips, lift up on the PLC slightly, then pull it away from the rail.

2–8 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 2: Installation, Wiring, and Specifications

DIN rail slot is designed for 35mm X 7mm rail


DIN Rail Dimensions conforming to DIN EN 50022
7mm

35mm

Retaining Clip

NOTE: Refer to our catalog or web site for a complete listing of DINnector connection systems.

Environmental Specifications
The following table lists the environmental specifications that generally apply to DL06
Micro PLCs. The ranges that vary for the Handheld Programmer are noted at the bottom
of this chart. Certain output circuit types may have derating curves, depending on the
ambient temperature and the number of outputs ON. Please refer to the appropriate
section in this chapter pertaining to your particular DL06 PLC.
Environmental Specifications
Specification Rating
Storage temperature –4° F to 158° F (–20° C to 70° C)
Ambient operating temperature* 32° F to 131° F (0° C to 55° C)
Ambient humidity** 5% – 95% relative humidity (non–condensing)
Vibration resistance MIL STD 810C, Method 514.2
Shock resistance MIL STD 810C, Method 516.2
Noise immunity NEMA (ICS3–304)
Atmosphere No corrosive gases
Agency approvals UL, CE (C1D2), FCC class A

* Operating temperature for the Handheld Programmer and the DV–1000 is 32° to 122° F
(0° to 50° C) Storage temperature for the Handheld Programmer and the DV–1000 is –4° to
158° F (–20° to70° C).
**Equipment will operate down to 5% relative humidity. However, static electricity problems
occur much more frequently at low humidity levels (below 30%). Make sure you take
adequate precautions when you touch the equipment. Consider using ground straps, anti-
static floor coverings, etc. if you use the equipment in low-humidity environments.
Agency Approvals
Some applications require agency approvals for particular components. The DL06 Micro
PLC agency approvals are listed below:
• UL (Underwriters’ Laboratories, Inc.)
• CUL (Canadian Underwriters’ Laboratories, Inc.)
• CE (European Economic Union)

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 2–9
Chapter 2: Installation, Wiring, and Specifications

Wiring Guidelines
Connect the power input wiring for the DL06. Observe all precautions stated earlier in this
manual. For more details on wiring, see Chapter 2 on Installation, Wiring, and Specifications.
When the wiring is complete, close the connector covers. Do not apply power at this time.
12 - 24 VDC
+ -
fuse
110/220 VAC Power Input

Fuse
Fuse
12/24 VDC Power Input

G LG 0V Y0 Y2 C1 Y5 Y7 G LG N.C. Y0 Y2 C1 Y5 Y7
AC(L) AC(N) 24V C0 Y1 Y3 Y4 Y6 C + - N.C. C0 Y1 Y3 Y4 Y6
OUTPUT: 17-240V 50 - 60Hz 0.5A PWR: 100-240V 50 OUTPUT: Sinking Output 6 - 27V 1.0A PWR: 12-24
Y Y
0 1 2 3 4 5 6 7 10 11 12 13 14 0 1 2 3 4 5 6 7 10 11 12 13 14
X X
INPUT: 90 - 120V 7 - 15mA INPUT: 12 - 24V 3 - 15mA

WARNING: Once the power wiring is connected, secure the terminal block cover in the closed position.
When the cover is open there is a risk of electrical shock if you accidentally touch the
connection terminals or power wiring.

Fuse Protection for Input Power


There are no internal fuses for the input power circuits, so external circuit protection is
needed to ensure the safety of service personnel and the safe operation of the equipment itself.
To meet UL/CUL specifications, the input power must be fused. Depending on the type of
input power being used, follow these fuse protection recommendations:
208/240 VAC Operation
When operating the unit from 208/240 VAC, whether the voltage source is a step-down
transformer or from two phases, fuse both the line (L) and neutral (N) leads. The
recommended fuse size is 1.0A (fast blow).
110/125 VAC Operation
When operating the unit from 110/125 VAC, it is only necessary to fuse the line (L) lead; it is
not necessary to fuse the neutral (N) lead. The recommended fuse size is 1.0A (fast blow).

2–10 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 2: Installation, Wiring, and Specifications

12/24 VDC Operation


When operating at these lower DC voltages, wire gauge size is just as important as proper
fusing techniques. Using large conductors minimizes the voltage drop in the conductor. Each
DL06 input power terminal can accommodate one 16 AWG wire or two 18 AWG wires. A
DC failure can maintain an arc for much longer time and distance than AC failures. Typically,
the main bus is fused at a higher level than the branch device, which in this case is the DL06.
The recommended fuse size for the branch circuit to the DL06 is 1.5A (for example, a
Littlefuse 312.001 or equivalent).
External Power Source
The power source must be capable of suppling voltage and current complying with individual
Micro PLC specifications, according to the following specifications:
Power Source Specifications
Item DL06 VAC Powered Units DL06 VDC Powered Units
Input Voltage Range 110/220 VAC (95–240 VAC) 12–24 VDC (10.8–26.4 VDC)
13 A, 1ms (95–240 VAC)
Maximum Inrush Current 15 A, 1ms (240–264 VAC) 10A
Maximum Power 30 VA 20 W
Voltage Withstand (dielectric) 1 minute @ 1500 VAC between primary, secondary, field ground
Insulation Resistance > 10 M at 500 VDC

NOTE: The rating between all internal circuits is BASIC INSULATION ONLY.

Planning the Wiring Routes


The following guidelines provide general information on how to wire the I/O connections to
DL06 Micro PLCs. For specific information on wiring a particular PLC refer to the
corresponding specification sheet which appears later in this chapter.
1. Each terminal connection of the DL06 PLC can accept one 16 AWG wire or two 18 AWG size
wires. Do not exceed this recommended capacity.

NOTE: Recommended wire size for field devices is 16 - 22 AWG solid/stranded. Tighten terminal screws to
7.81 lb-in (0.882 N*m) to 9.03 lb-in (1.02 N*m).

2. Always use a continuous length of wire. Do not splice wires to attain a needed length.
3. Use the shortest possible wire length.
4. Use wire trays for routing where possible.
5. Avoid running wires near high energy wiring.
6. Avoid running input wiring close to output wiring where possible.
7. To minimize voltage drops when wires must run a long distance , consider using multiple wires for
the return line.
8. Avoid running DC wiring in close proximity to AC wiring where possible.
9. Avoid creating sharp bends in the wires.
10. Install the recommended powerline filter to reduce power surges and EMI/RFI noise.

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 2–11
Chapter 2: Installation, Wiring, and Specifications

Fuse Protection for Input and Output Circuits


Input and Output circuits on DL06 Micro PLCs do not have internal fuses. In order to
protect your Micro PLC, we suggest you add external fuses to your I/O wiring. A fast-blow
fuse, with a lower current rating than the I/O bank’s common current rating can be wired to
each common. Or, a fuse with a rating of slightly less than the maximum current per output
point can be added to each output. Refer to the Micro PLC specification sheets further in this
chapter to find the maximum current per output point or per output common. Adding the
external fuse does not guarantee the prevention of Micro PLC damage, but it will provide
added protection.

G LG 0V Y0 Y2 C1 Y5 Y7 Y10 Y12 C3 Y15 Y17


PWR
AC(L) AC(N) 24V C0 Y1 Y3 Y4 Y6 C2 Y11 Y13 Y14 Y16 N.C. RUN
OUTPUT: 6-240V 50 - 60Hz 2.0A, 6 - 27V 2.0A PWR: 100-240V 50-60Hz 40VA CPU

Y D0-06DR TX1
RX1
0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23
X TX2
RX2
INPUT: 12 - 24V 3 - 15mA

LOGIC 06
K oyo

C0 X1 X3 X4 X6 C2 X11 X13 X14 X16 C4 X21 X23 N.C.


X0 X2 C1 X5 X7 X10 X12 C3 X15 X17 X20 X22 N.C.
TERM

PORT1 PORT2 RUN STOP

I/O Point Numbering


All DL06 Micro PLCs have a fixed I/O configuration. It follows the same octal numbering
system used on other DirectLogic family PLCs, starting at X0 and Y0. The letter X is always
used to indicate inputs and the letter Y is always used for outputs.
The I/O numbering always starts at zero and does not include the digits 8 or 9. The addresses
are typically assigned in groups of 8 or 16, depending on the number of points in an I/O
group. For the DL06 the twenty inputs use reference numbers X0 – X23. The sixteen output
points use references Y0 – Y17.

2–12 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 2: Installation, Wiring, and Specifications

System Wiring Strategies


The DL06 Micro PLC is very flexible and will work in many different wiring configurations.
By studying this section before actual installation, you can probably find the best wiring
strategy for your application. This will help to lower system cost, wiring errors, and avoid
safety problems.
PLC Isolation Boundaries
PLC circuitry is divided into three main regions separated by isolation boundaries, shown in
the drawing below. Electrical isolation provides safety, so that a fault in one area does not
damage another. A powerline filter will provide isolation between the power source and the
power supply. A transformer in the power supply provides magnetic isolation between the
primary and secondary sides. Opto-couplers provide optical isolation in Input and Output
circuits. This isolates logic circuitry from the field side, where factory machinery connects.
Note that the discrete inputs are isolated from the discrete outputs, because each is isolated
from the logic side. Isolation boundaries protect the operator interface (and the operator)
from power input faults or field wiring faults. When wiring a PLC, it is extremely important to
avoid making external connections that connect logic side circuits to any other.
Power
Input 16 Discrete Outputs

Output circuit LCD monitor

Power 4 Optional
Supply CPU card slots

Isolation
boundary
Input circuit 2 comm. ports

To programming device
20 discrete Inputs or Operator interface
The next figure shows the internal layout of DL06 PLCs, as viewed from the front panel.
To Programming Device
or Operator Interface
DL06
PLC
2 Comm.
CPU Ports

Main
Power
Supply

Input Circuit Output Circuit

Power
Input 20 Discrete Inputs Commons 16 Discrete Outputs Commons

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 2–13
Chapter 2: Installation, Wiring, and Specifications

Connecting Operator Interface Devices


Operator interfaces require data and power connections. Operator interfaces with a large
CRT usually require separate AC power. However, small operator interface devices like the
popular DV-1000 Data Access Unit may be powered directly from the DL06 Micro PLC.
Connect the DV-1000 to communication port 1 on the DL06 Micro PLC using the cable
shown below. A single cable contains transmit/receive data wires and +5V power.
DL06 Micro PLC

G LG 0V Y0 Y2 C1 Y5 Y7 Y10 Y12 C3 Y15 Y17


PWR
DV-1000
OUTPUT: 6-240V
Y
AC(L) AC(N) 24V C0 Y1 Y3
50 - 60Hz
Y4 Y6 C2 Y11 Y13 Y14 Y16 N.C.
2.0A, 6 - 27V 2.0A PWR: 100-240V 50-60Hz 40VA
D0-06DR
RUN
CPU
TX1
RX1
RJ12 RJ12
0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23
X
INPUT: 12 - 24V 3 - 15mA
TX2
RX2
phone style phone style

LOGIC 06
K oyo

C0
X0
X1
X2
X3
C1
X4
X5
X6
X7
C2 X11 X13 X14 X16 C4 X21 X23 N.C.
X10 X12 C3 X15 X17 X20 X22 N.C.
TERM
Use cable part no.
PORT1 PORT2 RUN STOP
DV–1000CBL

EZ-Touch and EZ-Text operator interface panels require separate power and communications
connections. Connect the DL06 to the proper D-shell connector on the rear of the operator
panel using the cable shown below. These panels require 8–30VDC power.
DL06 Micro PLC

G LG 0V Y0 Y2 C1 Y5 Y7 Y10 Y12 C3 Y15 Y17


PWR
15-pin 15-pin D-shell
OUTPUT: 6-240V
Y
0 1
AC(L) AC(N) 24V C0

2 3
Y1 Y3
50 - 60Hz

4
Y4

5
Y6 C2 Y11 Y13 Y14 Y16 N.C.
2.0A, 6 - 27V

6 7 10 11
2.0A

12
PWR: 100-240V

13 14 15 16
50-60Hz 40VA

17 20 21 22
D0-06DR
23
RUN
CPU
TX1
RX1
VGA male male
X TX2
RX2
INPUT: 12 - 24V 3 - 15mA

LOGIC 06
K oyo

C0
X0
X1
X2
X3
C1
X4
X5
X6
X7
C2 X11 X13 X14 X16 C4 X21 X23 N.C.
X10 X12 C3 X15 X17 X20 X22 N.C.
TERM Use cable part no.
PORT1 PORT2 RUN STOP
EZ-2CBL-1

Connecting Programming Devices


DL06 Micro PLCs can be programmed with either a handheld programmer or with
DirectSOFT32 on a PC. Connect the DL06 to a PC using the cable shown below.
DL06 Micro PLC
RJ12 9-pin D-shell
phone style female
G LG 0V Y0 Y2 C1 Y5 Y7 Y10 Y12 C3 Y15 Y17
PWR
AC(L) AC(N) 24V C0 Y1 Y3 Y4 Y6 C2 Y11 Y13 Y14 Y16 N.C. RUN
OUTPUT: 6-240V 50 - 60Hz 2.0A, 6 - 27V 2.0A PWR: 100-240V 50-60Hz 40VA CPU

Y D0-06DR TX1
RX1
0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23
X TX2
RX2
INPUT: 12 - 24V 3 - 15mA

LOGIC 06
K oyo
Use cable part no.
C0
X0
X1
X2
X3
C1
X4
X5
X6
X7
C2 X11 X13 X14 X16 C4 X21 X23 N.C.
X10 X12 C3 X15 X17 X20 X22 N.C.
TERM
D2–DSCBL
PORT1 PORT2 RUN STOP

The D2-HPP Handheld Programmer comes with a communications cable. For a replacement
part, use the cable shown below.
DL06 Micro PLC
RJ12 RJ12 D2–HPP
G LG 0V
AC(L) AC(N) 24V C0
Y0
Y1
Y2
Y3
C1
Y4
Y5
Y6
Y7 Y10 Y12
C2
C3 Y15 Y17
Y11 Y13 Y14 Y16 N.C.
PWR
RUN
phone style phone style
OUTPUT: 6-240V 50 - 60Hz 2.0A, 6 - 27V 2.0A PWR: 100-240V 50-60Hz 40VA CPU

Y D0-06DR TX1
RX1
0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23
X TX2
RX2
INPUT: 12 - 24V 3 - 15mA

(cable comes with HPP)


LOGIC 06
K oyo

C0
X0
X1
X2
X3
C1
X4
X5
X6
X7
C2 X11 X13 X14 X16 C4 X21 X23 N.C.
X10 X12 C3 X15 X17 X20 X22 N.C.
For replacement
TERM

PORT1 PORT2 RUN STOP


cable, use part no.
DV–1000CBL

2–14 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 2: Installation, Wiring, and Specifications

Sinking / Sourcing Concepts


Before going further in our presentation of wiring strategies, we need to introduce the
concepts of “sinking” and “sourcing.” These terms apply to typical input or output circuits. It
is the goal of this section to make these concepts easy to understand. First we give the
following short definitions, followed by practical applications.
Sinking = Path to supply ground (–)
Sourcing = Path to supply source (+)
Notice the reference to (+) and (–) polarities. Sinking and sourcing terminology applies only to
DC input and output circuits. Input and output points that are either sinking or sourcing can
conduct current in only one direction. This means it is possible to connect the external supply
and field device to the I/O point with current trying to flow in the wrong direction, and the
circuit will not operate. However, we can successfully connect the supply and field device
every time by understanding “sourcing” and “sinking.”
For example, the figure to the right depicts a “sinking” input. To properly connect the
external supply, we just have to connect it so the the input provides a path to ground (–). So,
we start at the PLC input terminal, follow through
the input sensing circuit, exit at the common PLC
terminal, and connect the supply (–) to the Input
(sinking)
common terminal. By adding the switch, between
the supply (+) and the input, we have completed +
Input
the circuit. Current flows in the direction of the
– Sensing
arrow when the switch is closed.
By applying the circuit principle above to the four Common
possible combinations of input/output
sinking/sourcing types, we have the four circuits as shown below. The DC-powered DL06
Micro PLCs have selectable sinking or sourcing inputs and either sinking or sourcing outputs.
Any pair of input/output circuits shown below is possible with one of the DL06 models.

Sinking Input Sinking Output


PLC PLC
Input Output
Load
+ +
Input Output
– Common Sensing Switch Common –

Sourcing Input Sourcing Output


PLC PLC
Common Common

+ Input +
Sensing Output
– Input Switch Output –
Load

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 2–15
Chapter 2: Installation, Wiring, and Specifications

I/O “Common” Terminal Concepts


PLC
In order for a PLC I/O circuit to operate, Field Main Path
current must enter at one terminal and exit Device (I/O point) I/O
at another. This means at least two terminals +
Circuit
are associated with every I/O point. In the
figure to the right, the input or output –
terminal is the main path for the current. Return Path
One additional terminal must provide the
return path to the power supply.
Most input or output point groups on PLC
PLCs share the return path among two or
Input Sensing
more I/O points. The figure to the right Input 1
shows a group (or bank) of 4 input points
which share a common return path. In Input 2
this way, the four inputs require only five
terminals instead of eight. Input 3

Note: In the circuit to the right, the current in the Input 4


common path is 4 times any channel’s input +
current when all inputs are energized. This is
especially important in output circuits, where – Common
heavier gauge wire is sometimes necessary on
commons.

Most DL06 input and output circuits are grouped into banks that share a common return
path. The best indication of I/O common grouping is on the wiring label. The I/O common
groups are separated by a bold line. A thinner line separates
the inputs associated with that common. To the right,
notice that X0, X1, X2, and X3 share the common
terminal C0, located to the left of X1.
The following complete set of labels shows five banks of
four inputs and four banks of four outputs. One common
is provided for each bank.
G LG 0V Y0 Y2 C1 Y5 Y7 Y10 Y12 C3 Y15 Y17
AC(L) AC(N) 24V C0 Y1 Y3 Y4 Y6 C2 Y11 Y13 Y14 Y16 N.C.

C0 X1 X3 X4 X6 C2 X11 X13 X14 X16 C4 X21 X23 N.C.


X0 X2 C1 X5 X7 X10 X12 C3 X15 X17 X20 X22 N.C.

This set of labels is for DC (sinking) output versions such as the D0-06DD1 and
D0-06DD1-D. One common is provided for each group of four outputs, and one designated
terminal on the output side accepts power for the output stage.
G LG 0V Y0 Y2 C1 Y5 Y7 Y10 Y12 C3 Y15 Y17
AC(L) AC(N) 24V C0 Y1 Y3 Y4 Y6 C2 Y11 Y13 Y14 Y16 +V

C0 X1 X3 X4 X6 C2 X11 X13 X14 X16 C4 X21 X23 N.C.


X0 X2 C1 X5 X7 X10 X12 C3 X15 X17 X20 X22 N.C.

2–16 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 2: Installation, Wiring, and Specifications

Connecting DC I/O to “Solid State” Field Devices


In the previous section on sinking and sourcing concepts, we discussed DC I/O circuits that
only allow current to flow one way. This is also true for many of the field devices which have
solid-state (transistor) interfaces. In other words, field devices can also be sourcing or sinking.
When connecting two devices in a series DC circuit (as is the case when wiring a field device to a
PLC DC input or output), one must be wired as sourcing and the other as sinking.
Solid State Input Sensors
The DL06’s DC inputs are flexible in that they detect current flow in either direction, so they
can be wired as either sourcing or sinking. In the following circuit, a field device has an open-
collector NPN transistor output. It sinks current from the PLC input point, which sources
current. The power supply can be the included auxiliary 24 VDC power supply or another
supply (+12 VDC or +24VDC), as long as the input specifications are met.
Field Device PLC DC Input
Output Input
(sinking) (sourcing)

Supply
Ground – + Common

In the next circuit, a field device has an open-emitter PNP transistor output. It sources
current to the PLC input point, which sinks the current back to ground. Since the field
device is sourcing current, no additional power supply is required between the device and the
PLC DC Input.
Field Device
=> PLC DC Input
Input
(sinking)
Output (sourcing)

Ground Common

Solid State Output Loads


Sometimes an application requires connecting a PLC output point to a solid state input on a
device. This type of connection is usually made to carry a low-level signal, not to send DC
power to an actuator.
The DL06 PLC family offers DC outputs that are sinking only or DC outputs that are
sourcing. All sixteen outputs have the same electrical common, even though there are four
common terminal screws. In the following circuit, the PLC output point sinks current to the
output common when energized. It is connected to a sourcing input of a field device input.
PLC DC Output Field Device
Power
+DC Power =>
Output Input
(sinking) + (sourcing)
2 .25
Common – > Ground

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02


2–17
Chapter 2: Installation, Wiring, and Specifications

In the next example we connect a PLC DC output point to the sinking input of a field
device. This is a bit tricky, because both the PLC output and field device input are sinking
type. Since the circuit must have one sourcing and one sinking device, we add sourcing
capability to the PLC output by using a pull-up resistor. In the circuit below, we connect
Rpull-up from the output to the DC output circuit power input.
PLC DC Output
Power
+DC pwr
Field Device
R pull-up
(sourcing)
(sinking) Output Input R input
+ (sinking)
Supply
Common – Ground

NOTE: DO NOT attempt to drive a heavy load (>25 mA) with this pull-up method.
NOTE 2: Using the pull-up resistor to implement a sourcing output has the effect of inverting the output
point logic. In other words, the field device input is energized when the PLC output is OFF, from a
ladder logic point-of-view. Your ladder program must comprehend this and generate an inverted
output. Or, you may choose to cancel the effect of the inversion elsewhere, such as in the field
device.

It is important to choose the correct value of R pull-up. In order to do so, we need to know
the nominal input current to the field device (I input) when the input is energized. If this
value is not known, it can be calculated as shown (a typical value is 15 mA). Then use I input
and the voltage of the external supply to compute R pull-up. Then calculate the power Ppull-
up (in watts), in order to size R pull-up properly.
V input (turn–on)
I input =
R input
2
V supply – 0.7 V supply
R pull-up = – R input P pull-up =
I input R pullup

2–18 DL05 Micro PLC User Manual


Chapter 2: Installation, Wiring, and Specifications

Relay Output Wiring Methods


The D0–06AR and the D0–06DR models feature relay outputs. Relays are best for the
following applications:
• Loads that require higher currents than the solid-state DL06 outputs can deliver
• Cost-sensitive applications
• Some output channels need isolation from other outputs (such as when some loads require AC
while others require DC)
Some applications in which NOT to use relays:
• Loads that require currents under 10 mA
• Loads which must be switched at high speed and duty cycle
This section presents various ways to wire relay outputs to the loads. The relay output DL06s
have sixteen normally-open SPST relays available. They are organized with four relays per
common. The figure below shows the relays and the internal wiring of the PLC. Note that
each group is isolated from the other group of outputs.

Y0 Common Y1 Y2 Y3 Y4 Common Y5 Y6 Y7

In the circuit below, all loads use the same AC power supply which powers the DL06 PLC. In
this example, all commons are connected together.

fuse

L L L L L L L L L L L L L L L L

G LG 0V Y0 Y2 C1 Y5 Y7 Y10 Y12 C3 Y15 Y17


AC(L) AC(N) 24V C0 Y1 Y3 Y4 Y6 C2 Y11 Y13 Y14 Y16 N.C.
OUTPUT: 6-240V 50 - 60Hz 2.0A, 6 - 27V 2.0A PWR: 100-240V 50-60Hz 40VA
Y D0-06AR
0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23
X
INPUT: 90 - 120V 7 - 15mA

In the circuit on the following page, loads for Y0 – Y3 use the same AC power supply which
powers the DL06 PLC. Loads for Y4 – Y7 use a separate DC supply. In this example, the
commons are separated according to which supply powers the associated load.

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 2–19
Chapter 2: Installation, Wiring, and Specifications

+24 VDC
L N
fuse
-

+
fuse
L L L L L L L L

G LG 0V Y0 Y2 C1 Y5 Y7 Y10 Y12 C3 Y15 Y17


AC(L) AC(N) 24V C0 Y1 Y3 Y4 Y6 C2 Y11 Y13 Y14 Y16 N.C.
OUTPUT: 6-240V 50 - 60Hz 2.0A, 6 - 27V 2.0A PWR: 100-240V 50-60Hz 40VA
Y D0-06AR
0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23
X
INPUT: 90 - 120V 7 - 15mA

LOGIC 06
K oyo

C0 X1 X3 X4 X6 C2 X11 X13 X14 X16 C4 X21 X23 N.C.


X0 X2 C1 X5 X7 X10 X12 C3 X15 X17 X20 X22 N.C.

AC
Supply

Surge Suppression For Inductive Loads


Inductive load devices (devices with a coil) generate transient voltages when de-energized with
a relay contact. When a relay contact is closed it “bounces”, which energizes and de-energizes
the coil until the “bouncing” stops. The transient voltages generated are much larger in
amplitude than the supply voltage, especially with a DC supply voltage.
When switching a DC-supplied inductive load the full supply voltage is always present when
the relay contact opens (or “bounces”). When switching an AC-supplied inductive load there
is one chance in 60 (60 Hz) or 50 (50 Hz) that the relay contact will open (or “bounce”)
when the AC sine wave is zero crossing. If the voltage is not zero when the relay contact opens
there is energy stored in the inductor that is released when the voltage to the inductor is
suddenly removed. This release of energy is the cause of the transient voltages.
When inductive load devices (motors, motor starters, interposing relays, solenoids, valves,
etc.) are controlled with relay contacts, it is recommended that a surge suppression device be
connected directly across the coil of the field device. If the inductive device has plug-type
connectors, the suppression device can be installed on the terminal block of the relay output.
Transient Voltage Suppressors (TVS or transorb) provide the best surge and transient
suppression of AC and DC powered coils, providing the fastest response with the smallest
overshoot.
Metal Oxide Varistors (MOV) provide the next best surge and transient suppression of AC
and DC powered coils.
For example, the waveform in the figure below shows the energy released when opening a
contact switching a 24 VDC solenoid. Notice the large voltage spike.
+24 VDC

+24 VDC –24 VDC

Module Relay Contact

–324 VDC

2–20 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 2: Installation, Wiring, and Specifications

This figure shows the same circuit with a transorb (TVS) across the coil. Notice that the
voltage spike is significantly reduced.
+24 VDC

+24 VDC –24 VDC


–42 VDC

Module Relay Contact

Use the following table to help select a TVS or MOV suppressor for your application based
on the inductive load voltage.
Surge Suppressors
Vendor / Catalog Type Inductive Load Voltage Part Number
TVS 110/120 VAC ZL-TD8-120
TVS 24 VDC ZL-TD8-24
General Instrument TVS 110/120 VAC P6KE180CAGICT–ND
Transient Voltage Suppressors, TVS 220/240 VDC P6KE350CA
LiteOn Diodes; from DigiKey TVS 12/24 VDC or VAC P6K30CAGICT–ND
Catalog; Phone: 1-800-344-4539 Diode 12/24 VDC or VAC 1N4004CT–ND
Harris Metal Oxide Varistors;| MOV 110/120 VAC V150LA20C
from Newark Catalog: MOV 220/240 VAC V250LA20C
Phone 1-800-463-9275

Prolonging Relay Contact Life


Relay contacts wear according to the amount of relay switching, amount of spark created at
the time of open or closure, and presence of airborne contaminants. There are some steps you
can take to help prolong the life of relay contacts, such as switching the relay on or off only
when it is necessary, and if possible, switching the load on or off at a time when it will draw
the least current. Also, take measures to suppress inductive voltage spikes from inductive DC
loads such as contactors and solenoids.
For inductive loads in DC circuits we recommend using a suppression diode as shown in the
following diagram (DO NOT use this circuit with an AC power supply). When the load is
energized the diode is reverse-biased (high impedance). When the load is turned off, energy
stored in its coil is released in the form of a negative-going voltage spike. At this moment the
diode is forward-biased (low impedance) and shunts the energy to ground. This protects the
relay contacts from the high voltage arc that would occur just as the contacts are opening.
Place the diode as close to the inductive field device as possible. Use a diode with a peak
inverse voltage rating (PIV) at least 100 PIV, 3A forward current or larger. Use a fast-recovery
type (such as Schottky type). DO NOT use a small-signal diode such as 1N914, 1N941, etc.
Be sure the diode is in the circuit correctly before operation. If installed backwards, it short-
circuits the supply when the relay energizes.
PLC Relay Output Inductive Field Device

Output Input

Common + – Common

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 2–21
Chapter 2: Installation, Wiring, and Specifications

DC Input Wiring Methods PLC DC Input


DL06 Micro PLCs with DC inputs are particularly Input
flexible because they can be wired as either sinking or
sourcing. The dual diodes (shown to the right) allow
10.8 – 26.4 VDC. The target applications are +12
VDC and +24 VDC. You can actually wire each Common
group of inputs associated common group of inputs
as DC sinking and the other half as DC sourcing.
Inputs grouped by a common must be all sinking or all sourcing.
In the first and simplest example below, all commons are connected together and all inputs
are sinking.

C0 X1 X3 X4 X6 C2 X11 X13 X14 X16 C4 X21 X23 N.C.


X0 X2 C1 X5 X7 X10 X12 C3 X15 X17 X20 X22 N.C.

+24 VDC
-

In the next example, the first eight inputs are sinking, and the last twelve are sourcing.

C0 X1 X3 X4 X6 C2 X11 X13 X14 X16 C4 X21 X23 N.C.


X0 X2 C1 X5 X7 X10 X12 C3 X15 X17 X20 X22 N.C.

+12 VDC +24 VDC


+
-
-
+

2–22 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 2: Installation, Wiring, and Specifications

DC Output Wiring Methods


DL06 DC output circuits are high-performance transistor switches with low on-resistance
and fast switching times. Please note the following characteristics which are unique to the DC
output type:
• There is only one electrical common for all sixteen outputs. All sixteen outputs belong to one bank.
• The output switches are current-sinking only or current sourcing only. Refer to the detailed
specifications in this manual to determine which type output is present on a particular model.
• The output circuit inside the PLC requires external power. The supply (–) must be connected to a
common terminal, and the supply (+) connects the the right-most terminal on the upper connector
(+V).

fuse
-
+24 VDC
+
L L L L L L L L L L L L L L L L

G LG 0V Y0 Y2 C1 Y5 Y7 Y10 Y12 C3 Y15 Y17


AC(L) AC(N) 24V C0 Y1 Y3 Y4 Y6 C2 Y11 Y13 Y14 Y16 +V

In the example below, all sixteen outputs share a common supply.


In the next example below, the outputs have “split” supplies. The first three outputs are using
a +12 VDC supply, and the last three are using a +24 VDC supply. However, you can split
the outputs among any number of supplies, as long as:
• all supply voltages are within the specified range
• all output points are wired as sinking

+12 VDC +24 VDC


fuse
- -

+ +
L L L L L L L L L L L L L L L L

G LG 0V Y0 Y2 C1 Y5 Y7 Y10 Y12 C3 Y15 Y17


AC(L) AC(N) 24V C0 Y1 Y3 Y4 Y6 C2 Y11 Y13 Y14 Y16 +V
OUTPUT: Sinking Output 6 - 27V 1.0A PWR: 100-240V 50-60Hz 40VA
• all source (–) terminals are connected together

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 2–23
Chapter 2: Installation, Wiring, and Specifications

High-Speed I/O Wiring Methods


DL06 versions with DC type input or output points contain a dedicated High-Speed I/O
circuit (HSIO). The circuit configuration is programmable, and it processes specific I/O
points independently from the CPU scan. Chapter 3 discusses the programming options for
HSIO. While the HSIO circuit has six modes, we show wiring diagrams for two of the most
popular modes in this chapter. The high-speed input interfaces to points X0 – X3. Properly
configured, the DL06 can count quadrature pulses at up to 7 kHz from an incremental
encoder as shown below.
C0 X1 X3 X4 X6 C2 X11 X13 X14 X16 C4 X21 X23 N.C.
X0 X2 C1 X5 X7 X10 X12 C3 X15 X17 X20 X22 N.C.

Phase A = X0
Phase B = X1

DL06 versions with DC type output points can use the High Speed I/O Pulse Output
feature. It can generate high-speed pulses at up to 10 kHz for specialized control such as
stepper motor / intelligent drive systems. Output Y0 and Y1 can generate pulse and direction
signals, or it can generate CCW and CW pulse signals respectively. See Chapter 3 on high-
speed input and pulse output options.
Motor
Amplifier

-
+24 VDC
+

Signal Common
Power Input Pulse
Direction

G LG 0V Y0 Y2 C1 Y5 Y7 Y10 Y12 C3 Y15 Y17


AC(L) AC(N) 24V C0 Y1 Y3 Y4 Y6 C2 Y11 Y13 Y14 Y16 +V
OUTPUT: Sinking Output 6 - 27V 1.0A PWR: 100-240V 50-60Hz 40VA

2–24 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 2: Installation, Wiring, and Specifications

Glossary of Specification Terms


Discrete Input
One of twenty input connections to the PLC which converts an electrical signal from a field
device to a binary status (off or on), which is read by the internal CPU each PLC scan.
Discrete Output
One of sixteen output connections from the PLC which converts an internal ladder program
result (0 or 1) to turn On or Off an output switching device. This enables the program to
turn on and off large field loads.
I/O Common
A connection in the input or output terminals which is shared by multiple I/O circuits. It
usually is in the return path to the power supply of the I/O circuit.
Input Voltage Range
The operating voltage range of the input circuit.
Maximum Voltage
Maximum voltage allowed for the input circuit.
ON Voltage Level
The minimum voltage level at which the input point will turn ON.
OFF Voltage Level
The maximum voltage level at which the input point will turn OFF
Input Impedance
Input impedance can be used to calculate input current for a particular operating voltage.
Input Current
Typical operating current for an active (ON) input.
Minimum ON Current
The minimum current for the input circuit to operate reliably in the ON state.
Maximum OFF Current
The maximum current for the input circuit to operate reliably in the OFF state.
OFF to ON Response
The time the module requires to process an OFF to ON state transition.
ON to OFF Response
The time the module requires to process an ON to OFF state transition.
Status Indicators
The LEDs that indicate the ON/OFF status of an input or output point. All LEDs on DL06
Micro PLCs are electrically located on the logic side of the input or output circuit.

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 2–25
Chapter 2: Installation, Wiring, and Specifications

Wiring Diagrams and Specifications


The remainder of this chapter provides detailed technical information for the DL06 PLCs. A
basic wiring diagram, equivalent I/O circuits, and specification tables are laid out for each PLC.
D0–06AA I/O Wiring Diagram
The D0–06AA PLC has twenty AC inputs and sixteen AC outputs. The following diagram shows
a typical field wiring example. The AC external power connection uses four terminals as shown.
Inputs are organized into five banks of four. Each bank has an isolated common terminal. The
wiring example below shows all commons connected together, but separate supplies and common
circuits may be used. The equivalent input circuit shows one channel of a typical bank.
Outputs are organized into four banks of four triac switches. Each bank has a common terminal.
The wiring example below shows all commons connected together, but separate supplies and
common circuits may be used. The equivalent output circuit shows one channel of a typical bank.
fuse
Power Input AC Output Point Wiring
Supply
Wiring L L L L L L L L L L L L L L L L

G LG 0V Y0 Y2 C1 Y5 Y7 Y10 Y12 C3 Y15 Y17


AC(L) AC(N) 24V C0 Y1 Y3 Y4 Y6 C2 Y11 Y13 Y14 Y16 N.C.
OUTPUT: 17-240V 50 - 60Hz 0.5A PWR: 100-240V 50-60Hz 40VA
Y D0-06AA
0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23
X
INPUT: 90 - 120V 7 - 15mA

LOGIC 06
K oyo

C0 X1 X3 X4 X6 C2 X11 X13 X14 X16 C4 X21 X23 N.C.


X0 X2 C1 X5 X7 X10 X12 C3 X15 X17 X20 X22 N.C.

AC
Input Point Wiring
Supply

Equivalent Input Circuit Equivalent Output Circuit Derating Chart for AC Outputs
+V Internal module circuitry Points
+V 16
Optical
Isolator L
OUTPUT Optical 0.5 A Y0 - Y7
Isolator
Input 12
Y10 - Y17
8

4
Common COM

17-240 0
VAC 0 10 20 30 40 50 50˚C
To 32 50 68 86 104 122 122˚C
Ambient Temperature ( ˚C/ ˚F)

2–26 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 2: Installation, Wiring, and Specifications

D0-06AA General Specifications


External Power Requirements 100– 240 VAC, 40 VA maximum,
Communication Port 1 9600 baud (Fixed), K–Sequence (Slave), DirectNET (Slave), MODBUS (Slave)
8 data bits, 1 stop bit odd parity
Communication Port 2 9600 baud (default) K–Sequence (Slave),DirectNET (Master/Slave), MODBUS
8 data bits, 1 stop bit odd parity (Master/Slave), Non-sequence / print, ASCII in/out
Programming cable type D2–DSCBL
Operating Temperature 32 to 131° F (0 to 55 C)
Storage Temperature –4 to 158° F (–20 to 70 C)
Relative Humidity 5 to 95% (non-condensing)
Environmental air No corrosive gases permitted
Vibration MIL STD 810C 514.2
Shock MIL STD 810C 516.2
Noise Immunity NEMA ICS3–304
Terminal Type Removable
Wire Gauge One AWG16 or two AWG18, AWG24 minimum

AC Input Specifications
Input Voltage Range (Min. - Max.) 80 – 132 VAC, 47 - 63 Hz
Operating Voltage Range 90 – 120 VAC, 47 - 63 Hz
8 mA @100 VAC at 50 Hz
Input Current 10 mA @100 VAC at 60 Hz
12 mA @132 VAC at 50 Hz
Max. Input Current 15 mA @132 VAC at 60 Hz
Input Impedance 14K @50 Hz, 12K @60Hz
ON Current/Voltage > 6 mA @ 75 VAC
OFF Current/Voltage < 2 mA @ 20 VAC
OFF to ON Response < 40 mS
ON to OFF Response < 40 mS
Status Indicators Logic Side
Commons 4 channels / common x 5 banks (isolated)

AC Output Specifications
Output Voltage Range (Min. - Max.) 15 – 264 VAC, 47 – 63 Hz
Operating Voltage 17 – 240 VAC, 47 – 63 Hz
On Voltage Drop 1.5 VAC (>50mA) 4.0 VAC (<50mA)
Max Current 0.5 A / point, 1.5 A / common
Max leakage current <4 mA @ 264 VAC
Max inrush current 10 A for 10 mS
Minimum Load 10 mA
OFF to ON Response 1 mS
ON to OFF Response 1 mS +1/2 cycle
Status Indicators Logic Side
Commons 4channels / common x 4 banks (isolated)
Fuses None (external recommended)

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 2–27
Chapter 2: Installation, Wiring, and Specifications

D0–06AR I/O Wiring Diagram


The D0–06AR PLC has twenty AC inputs and sixteen relay contact outputs. The following
diagram shows a typical field wiring example. The AC external power connection uses four
terminals at the left as shown.
The twenty AC input channels use terminals on the bottom of the connector. Inputs are
organized into five banks of four. Each bank has a common terminal. The wiring example
below shows all commons connected together, but separate supplies and common circuits
may be used. The equivalent input circuit shows one channel of a typical bank.
fuse
Power Input AC or DC Output Point Wiring
Supply
Wiring L L L L L L L L L L L L L L L L

G LG 0V Y0 Y2 C1 Y5 Y7 Y10 Y12 C3 Y15 Y17


AC(L) AC(N) 24V C0 Y1 Y3 Y4 Y6 C2 Y11 Y13 Y14 Y16 N.C.
OUTPUT: 6-240V 50 - 60Hz 2.0A, 6 - 27V 2.0A PWR: 100-240V 50-60Hz 40VA
Y D0-06AR
0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23
X
INPUT: 90 - 120V 7 - 15mA

LOGIC 06
K oyo

C0 X1 X3 X4 X6 C2 X11 X13 X14 X16 C4 X21 X23 N.C.


X0 X2 C1 X5 X7 X10 X12 C3 X15 X17 X20 X22 N.C.

Input Point Wiring


AC
Supply

Equivalent Input Circuit Derating Chart for Relay Outputs Equivalent Output Circuit
Points
+V +V Internal module circuitry
16
2.0A Y0 - Y7
Optical 12 +V
Isolator Y10 - Y17 L
Input 8
To LED Output
4

0
Common 0 10 20 30 40 50 50˚C
32 50 68 86 104 122 122˚C Common
To LED
Ambient Temperature ( ˚C/ ˚F)

6–27 VDC
6–240 VAC

2–28 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 2: Installation, Wiring, and Specifications

The sixteen relay output channels use terminals on the right side top connector. Outputs are
organized into two banks of three normally-open relay contacts. Each bank has a common
terminal. The wiring example on the last page shows all commons connected together, but
separate supplies and common circuits may be used. The equivalent output circuit shows one
channel of a typical bank. The relay contacts can switch AC or DC voltages.
D0-06AR General Specifications
External Power Requirements 100 – 240 VAC, 40 VA maximum,
Communication Port 1 9600 baud (Fixed), 8 data K–Sequence (Slave), DirectNET (Slave), MODBUS (Slave)
bits, 1 stop bit, odd parity
Communication Port 2 9600 baud (default), 8 data K–Sequence (Slave), DirectNET (Master/Slave), MODBUS
bits, 1 stop bit, odd parity (Master/Slave), Non-sequence / print, ASCII in/out
Programming cable type D2–DSCBL
Operating Temperature 32 to 131° F (0 to 55 C)
Storage Temperature –4 to 158° F (–20 to 70 C)
Relative Humidity 5 to 95% (non-condensing)
Environmental air No corrosive gases permitted
Vibration MIL STD 810C 514.2
Shock MIL STD 810C 516.2
Noise Immunity NEMA ICS3–304
Terminal Type Removable
Wire Gauge One AWG16 or two AWG18, AWG24 minimum

AC Input Specifications X0-X23


Input Voltage Range (Min. - Max.) 80 – 132 VAC, 47 - 63 Hz
Operating Voltage Range 90 – 120 VAC, 47 -63 Hz
Input Current 8 mA @ 100 VAC at 50 Hz 10 mA @ 100 VAC at 60 Hz
Max. Input Current 12 mA @ 132 VAC at 50 Hz 15 mA @ 132 VAC at 60 Hz
Input Impedance 14K @50 Hz, 12K @60 Hz
ON Current/Voltage >6 mA @ 75 VAC
OFF Current/Voltage <2 mA @ 20 VAC
OFF to ON Response < 40 mS
ON to OFF Response < 40 mS
Status Indicators Logic Side
Commons 4 channels / common x 5 banks (isolated)

Relay Output Specifications Y0-Y17


Output Voltage Range (Min. – Max.) 5 – 264 VAC (47 -63 Hz), 5 – 30 VDC
Operating Voltage Range 6 – 240 VAC (47 -63 Hz), 6 – 27 VDC
Output Current 2A / point, 6A / common
Max. leakage current 0.1 mA @264VAC
Smallest Recommended Load 5 mA @5 VDC
OFF to ON Response < 15 mS
ON to OFF Response < 10 mS
Status Indicators Logic Side
Commons 4 channels / common x 4 banks (isolated)
Fuses None (external recommended)

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 2–29
Chapter 2: Installation, Wiring, and Specifications

D0–06DA I/O Wiring Diagram


The D0–06DA PLC has twenty DC inputs and sixteen AC outputs. The following diagram shows
a typical field wiring example. The AC external power connection uses four terminals as shown.
Inputs are organized into five banks of four. Each bank has an isolated common terminal, and
may be wired as sinking or sourcing. The wiring example below shows all commons connected
together, but separate supplies and common circuits may be used. The equivalent circuit for
standard inputs is shown below, and the high-speed input circuit is shown to the left.
Outputs are organized into four banks of four triac switches. Each bank has a common terminal.
The wiring example below shows all commons connected together, but separate supplies and
common circuits may be used. The equivalent output circuit shows one channel of a typical bank.
fuse
AC
Supply
L L L L L L L L L L L L L L L L

G LG 0V Y0 Y2 C1 Y5 Y7 Y10 Y12 C3 Y15 Y17


AC(L) AC(N) 24V C0 Y1 Y3 Y4 Y6 C2 Y11 Y13 Y14 Y16 N.C.
OUTPUT: 17 - 240V 50-60Hz 0.5A PWR: 100-240V 50-60Hz 40VA
Y D0-06DA
0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23
X
INPUT: 12 - 24V 3 - 15mA

LOGIC 06
K oyo

C0 X1 X3 X4 X6 C2 X11 X13 X14 X16 C4 X21 X23 N.C.


X0 X2 C1 X5 X7 X10 X12 C3 X15 X17 X20 X22 N.C.

Points
16
0.5 A Y0 - Y7 DC
12 Supply
Y10 - Y17
8

0
0 10 20 30 40 50 50˚C
32 50 68 86 104 122 122˚C
Ambient Temperature ( ˚C/ ˚F)

Derating Chart for AC Outputs


DA

+V +V +V Internal module circuitry


Optical
Isolator +V
Optical
Input OUTPUT Optical
+ Isolator L
Input Isolator
To LED
– +
Common –
Common
COM

17-240
VAC
To LED

High Speed Inputs (X0-X3) Standard Inputs (X4-X23) Equivalent Output Circuit

2–30 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 2: Installation, Wiring, and Specifications

D0-06DA General Specifications


External Power Requirements 100 – 240 VAC, 40 VA maximum,
Communication Port 1 9600 baud (Fixed), 8 data K–Sequence (Slave), DirectNET (Slave),
bits, 1 stop bit, odd parity MODBUS (Slave)
Communication Port 2 9600 baud (default), 8 data K–Sequence (Slave), DirectNET (Master/Slave),
bits, 1 stop bit, odd parity MODBUS (Master/Slave), Non-sequence/print, ASCII in/out
Programming cable type D2–DSCBL
Operating Temperature 32 to 131° F (0 to 55 C)
Storage Temperature –4 to 158° F (–20 to 70 C)
Relative Humidity 5 to 95% (non-condensing)
Environmental air No corrosive gases permitted
Vibration MIL STD 810C 514.2
Shock MIL STD 810C 516.2
Noise Immunity NEMA ICS3–304
Terminal Type Removable
Wire Gauge One AWG16 or two AWG18, AWG24 minimum

DC Input Specifications
Parameter High–Speed Inputs, X0 – X3 Standard DC Inputs X4 – X23
Input Voltage Range 10.8 – 26.4 VDC 10.8 – 26.4 VDC
Operating Voltage Range 12 – 24 VDC 12 – 24 VDC
Maximum Voltage 30 VDC (7 kHz maximum frequency) 30 VDC
Minimum Pulse Width 70 µS N/A
ON Voltage Level > 10 VDC > 10 VDC
OFF Voltage Level < 2.0 VDC < 2.0 VDC
Input Impedance 1.8 k @ 12 – 24 VDC 2.8 k @ 12 – 24 VDC
Minimum ON Current >5 mA >4 mA
Maximum OFF Current < 0.5 mA <0.5 mA
OFF to ON Response <70 µS 2 – 8 mS, 4 mS typical
ON to OFF Response <70 µS 2 – 8 mS, 4 mS typical
Status Indicators Logic side Logic side
Commons 4 channels / common x 5 bank (isolated)

AC Output Specifications
Output Voltage Range (Min. - Max.) 15 – 264 VAC, 47 – 63 Hz
Operating Voltage 17 – 240 VAC, 47 – 63 Hz
On Voltage Drop 1.5 VAC @> 50mA, 4 VAC @< 50mA
Max Current 0.5 A / point, 1.5 A / common
Max leakage current < 4 mA @ 264 VAC, 60Hz
Max inrush current 10 A for 10 mS
Minimum Load 10 mA
OFF to ON Response 1 mS
ON to OFF Response 1 mS +1/2 cycle
Status Indicators Logic Side
Commons 4 channels / common x 4 banks (isolated)
Fuses None (external recommended)

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 2–31
Chapter 2: Installation, Wiring, and Specifications

D0–06DD1 I/O Wiring Diagram


The D0-06DD1 PLC has twenty DC inputs and sixteen DC outputs. The following diagram shows
a typical field wiring example. The AC external power connection uses four terminals as shown.
Inputs are organized into five banks of four. Each bank has an isolated common terminal, and
may be wired as either sinking or sourcing inputs. The wiring example below shows all
commons connected together, but separate supplies and common circuits may be used.
Outputs all share the same common. Note the requirement for external power.

fuse
-
+24 VDC
+
L L L L L L L L L L L L L L L L

G LG 0V Y0 Y2 C1 Y5 Y7 Y10 Y12 C3 Y15 Y17


AC(L) AC(N) 24V C0 Y1 Y3 Y4 Y6 C2 Y11 Y13 Y14 Y16 +V
OUTPUT: Sinking Output 6 - 27V 1.0A PWR: 100-240V 50-60Hz 40VA
Y D0-06DD1
0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23
X
INPUT: 12 - 24V 3 - 15mA

LOGIC 06
K oyo

C0 X1 X3 X4 X6 C2 X11 X13 X14 X16 C4 X21 X23 N.C.


X0 X2 C1 X5 X7 X10 X12 C3 X15 X17 X20 X22 N.C.

DC
Supply

+V +V Internal module circuitry +V


Points
Optical
Isolator + 16
Input 1.0 A Y0 - Y7
24VDC Optical 12
+ To LED Isolator Y10 - Y17
OUTPUT
L 8

4
Common + 6–27
VDC 0
To LED 0 10 20 30 40 50 50˚C
COM 32 50 68 86 104 122 122˚C
Ambient Temperature ( ˚C/ ˚F)

High Speed Inputs (X0-X3) DC Pulse Outputs (Y0-Y1)


+V +V

+V Internal module circuitry


Optical
Isolator
Input +
To LED 24VDC Optical
To LED
+ Isolator
OUTPUT
L

Common
+ 6–27
VDC

COM

DC Standard Inputs (X4-X23)


DC Standard Outputs (Y2-Y17)

2–32 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 2: Installation, Wiring, and Specifications

D0-06DD1 General Specifications


External Power Requirements 100 – 240 VAC, 40 VA maximum,
Communication Port 1 9600 baud (Fixed), K–Sequence (Slave), DirectNET (Slave),
8 data bits, 1 stop bit, odd parity MODBUS (Slave)
Communication Port 2 9600 baud (default), K–Sequence (Slave), DirectNET (Master/Slave),
8 data bits, 1 stop bit, odd parity MODBUS (Master/Slave), Non-sequence / print, ASCII in/out
Programming cable type D2–DSCBL
Operating Temperature 32 to 131° F (0 to 55 C)
Storage Temperature –4 to 158° F (–20 to 70 C)
Relative Humidity 5 to 95% (non-condensing)
Environmental air No corrosive gases permitted
Vibration MIL STD 810C 514.2
Shock MIL STD 810C 516.2
Noise Immunity NEMA ICS3–304
Terminal Type Removable
Wire Gauge One AWG16 or two AWG18, AWG24 minimum
DC Input Specifications
Parameter High–Speed Inputs, X0 – X3 Standard DC Inputs X4 – X23
Min. - Max. Voltage Range 10.8 – 26.4 VDC 10.8 – 26.4 VDC
Operating Voltage Range 12 – 24 VDC 12 – 24 VDC
Peak Voltage 30 VDC (7 kHz maximum frequency) 30 VDC
Minimum Pulse Width 100 µs N/A
ON Voltage Level > 10.0 VDC > 10.0 VDC
OFF Voltage Level < 2.0 VDC < 2.0 VDC
Max. Input Current 6mA @12VDC, 13mA @24VDC 4mA @12VDC, 8.5mA @24VDC
Input Impedance 1.8 k @ 12 – 24 VDC 2.8 k @ 12 – 24 VDC
Minimum ON Current >5 mA >4 mA
Maximum OFF Current < 0.5 mA <0.5 mA
OFF to ON Response <70 µS 2 – 8 mS, 4 mS typical
ON to OFF Response <70 µS 2 – 8 mS, 4 mS typical
Status Indicators Logic side Logic side
Commons 4 channels / common x 5 banks isolated
DC Output Specifications
Parameter Pulse Outputs Y0 – Y1 Standard Outputs Y2 – Y17
Min. - Max. Voltage Range 5 – 30 VDC 5 – 30 VDC
Operating Voltage 6 – 27 VDC 6 – 27 VDC
Peak Voltage < 50 VDC (10 kHz max. frequency) < 50 VDC
On Voltage Drop 0.3 VDC @ 1 A 0.3 VDC @ 1 A
Max Current (resistive) 0.5 A / pt., 1A / pt. as standard pt. 1.0 A / point
Max leakage current 15µA @ 30 VDC 15µA @ 30 VDC
Max inrush current 2 A for 100 mS 2 A for 100 mS
20 - 28 VDC Max 280mA (Aux. 24VDC
External DC power required 20 - 28 VDC Max 150mA powers V+ terminal (sinking outputs)
OFF to ON Response < 10µ s < 10 µs
ON to OFF Response < 20 µs < 60 µs
Status Indicators Logic Side Logic Side
Commons 4 channels / common x 4 banks non-isolated
Fuses None (external recommended)

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 2–33
Chapter 2: Installation, Wiring, and Specifications

D0–06DD2 I/O Wiring Diagram


The D0–06DD2 PLC has twenty DC inputs and sixteen sourcing DC outputs. The following
diagram shows a typical field wiring example. The AC external power connection uses four terminals
as shown.
Inputs are organized into four banks of four. Each bank has an isolated common terminal,
and may be wired as either sinking or sourcing inputs. The wiring example below shows all
commons connected together, but separate supplies and common circuits may be used.
fuse +
+24 VDC
-
L L L L L L L L L L L L L L L L

G LG 0V Y0 Y2 V1 Y5 Y7 Y10 Y12 V3 Y15 Y17


AC(L) AC(N) 24V V0 Y1 Y3 Y4 Y6 V2 Y11 Y13 Y14 Y16 CO
OUTPUT: Sourcing Output 12 - 24V 1.0A PWR: 100-240V 50-60Hz 40VA
Y D0-06DD2
0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23
X
INPUT: 12 - 24V 3 - 15mA

LOGIC 06
K oyo

C0 X1 X3 X4 X6 C2 X11 X13 X14 X16 C4 X21 X23 N.C.


Points X0 X2 C1 X5 X7 X10 X12 C3 X15 X17 X20 X22 N.C.
16
1.0A Y0 - Y7
12
Y10 - Y17
8

0
0 10 20 30 40 50 50˚C DC
32 50 68 86 104 122 122˚C
Supply
Ambient Temperature ( ˚C/ ˚F)

Derating Chart for DC Outputs


All outputs share the same
Internal module circuitry

Optical
+V +V common. Note the
Input
Isolator +V requirement for external
+ To LED
+
power.
– 24VDC
-
Common Output
L To LED
Optical
Isolator
Common

High Speed Inputs (X0-X3)


+V +V DC Pulse Outputs (Y0-Y1)
Internal module circuitry
Optical
Isolator + +V
Input
To LED 24VDC To LED
+ -
Output

L
Common
Common
Optical
Isolator

DC Standard Inputs (X4-X23) DC Standard Outputs (Y2-Y17)

2–34 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 2: Installation, Wiring, and Specifications

D0-06DD2 General Specifications


External Power Requirements 100 – 240 VAC, 40 VA maximum,
Communication Port 1 9600 baud (Fixed), K–Sequence (Slave), DirectNET (Slave),
8 data bits, 1 stop bit, odd parity MODBUS (Slave)
Communication Port 2 9600 baud (default), K–Sequence (Slave), DirectNET (Master/Slave),
8 data bits, 1 stop bit, odd parity MODBUS (Master/Slave), Non-sequence / print, ASCII in/out
Programming cable type D2–DSCBL
Operating Temperature 32 to 131° F (0 to 55 C)
Storage Temperature –4 to 158° F (–20 to 70 C)
Relative Humidity 5 to 95% (non-condensing)
Environmental air No corrosive gases permitted
Vibration MIL STD 810C 514.2
Shock MIL STD 810C 516.2
Noise Immunity NEMA ICS3–304
Terminal Type Removable
Wire Gauge One AWG16 or two AWG18, AWG24 minimum
DC Input Specifications
Parameter High–Speed Inputs, X0 – X3 Standard DC Inputs X4 – X23
Min. - Max. Voltage Range 10.8 – 26.4 VDC 10.8 – 26.4 VDC
Operating Voltage Range 12 – 24 VDC 12 – 24 VDC
Peak Voltage 30 VDC (7 kHz maximum frequency) 30 VDC
Minimum Pulse Width 70 µs N/A
ON Voltage Level > 10.0 VDC > 10.0 VDC
OFF Voltage Level < 2.0 VDC < 2.0 VDC
Max. Input Current 6mA @12VDC, 13mA @24VDC 4mA @12VDC, 8.5mA @24VDC
Input Impedance 1.8 k @ 12 – 24 VDC 2.8 k @ 12 – 24 VDC
Minimum ON Current >5 mA >4 mA
Maximum OFF Current < 0.5 mA <0.5 mA
OFF to ON Response <70 µS 2 – 8 mS, 4 mS typical
ON to OFF Response <70 µS 2 – 8 mS, 4 mS typical
Status Indicators Logic side Logic side
Commons 4 channels/common x 5 banks (isolated)
DC Output Specifications
Parameter Pulse Outputs Y0 – Y1 Standard Outputs Y2 – Y17
Min. - Max. Voltage Range 10.8 -26.4 VDC 10.8 -26.4 VDC
Operating Voltage 12-24 VDC 12-24 VDC
Peak Voltage < 50 VDC (10 kHz max. frequency) < 50 VDC
On Voltage Drop 0.5VDC @ 1 A 1.2 VDC @ 1 A
Max Current (resistive) 0.5 A / pt., 1A / pt. as standard pt. 1.0 A / point
Max leakage current 15 µA @ 30 VDC 15 µA @ 30 VDC
Max inrush current 2 A for 100 mS 2 A for 100 mS
External DC power required n/a n/a
OFF to ON Response < 10µs < 10 µs
ON to OFF Response < 20 µs < 0.5 µs
Status Indicators Logic Side Logic Side
Commons 4 channels / common x 4 banks (non-isolated)
Fuses None (external recommended)

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 2–35
Chapter 2: Installation, Wiring, and Specifications

D0–06DR I/O Wiring Diagram


The D0–06DR PLCs feature twenty DC inputs and sixteen relay contact outputs. The following diagram
shows a typical field wiring example. The AC external power connection uses four terminals as shown.
Inputs are organized into five banks of four. Each bank has an isolated common terminal, and
may be wired as either sinking or sourcing inputs. The wiring example below shows all
commons connected together, but separate supplies and common circuits may be used. The
equivalent circuit for standard inputs is shown below, and the high-speed input circuit is
shown to the left.
Outputs are organized into four banks of four normally-open relay contacts. Each bank has a
common terminal. The wiring example below shows all commons connected together, but
separate supplies and common circuits may be used. The equivalent output circuit shows one
channel of a typical bank. The relay contacts can switch AC or DC voltages.

Power Input fuse


AC or DC Output Point Wiring
Wiring Supply
L L L L L L L L L L L L L L L L

G LG 0V Y0 Y2 C1 Y5 Y7 Y10 Y12 C3 Y15 Y17


AC(L) AC(N) 24V C0 Y1 Y3 Y4 Y6 C2 Y11 Y13 Y14 Y16 N.C.
OUTPUT: 6-240V 50 - 60Hz 2.0A, 6 - 27V 2.0A PWR: 100-240V 50-60Hz 40VA
Y D0-06DR
0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23
X
INPUT: 12 - 24V 3 - 15mA

LOGIC 06
K oyo

C0 X1 X3 X4 X6 C2 X11 X13 X14 X16 C4 X21 X23 N.C.


Points X0 X2 C1 X5 X7 X10 X12 C3 X15 X17 X20 X22 N.C.
16
2.0A Y0 - Y7
12
Y10 - Y17
8

0
0
32
10
50
20
68
30
86
40
104
50
122
50˚C
122˚C
DC Input Point Wiring
Supply
Ambient Temperature ( ˚C/ ˚F)

Derating Chart for Relay Outputs

Equivalent Output Circuit


Equivalent Circuit, High-speed Equivalent Circuit, Standard
Inputs (X0-X3) Inputs (X4-X23)
Internal module circuitry

+V
+V +V +V L
Optical
Isolator
Output
Input Optical
+ To LED Isolator
Input
– To LED
+
Common Common
– To LED
Common
6–27 VDC
6–240 VAC

2–36 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 2: Installation, Wiring, and Specifications

D0-06DR General Specifications


External Power Requirements 100 – 240 VAC, 40 VA maximum,
Communication Port 1 9600 baud (Fixed), 8 data K–Sequence (Slave), DirectNET (Slave), MODBUS (Slave)
bits, 1 stop bit, odd parity
Communication Port 2 9600 baud (default), 8 data K–Sequence (Slave), DirectNET (Master/Slave), MODBUS
bits, 1 stop bit,odd parity (Master/Slave), Non-sequence /print, ASCII in/out
Programming cable type D2–DSCBL
Operating Temperature 32 to 131° F (0 to 55 C)
Storage Temperature –4 to 158° F (–20 to 70 C)
Relative Humidity 5 to 95% (non-condensing)
Environmental air No corrosive gases permitted
Vibration MIL STD 810C 514.2
Shock MIL STD 810C 516.2
Noise Immunity NEMA ICS3–304
Terminal Type Removable
Wire Gauge One AWG16 or two AWG18, AWG24 minimum

DC Input Specifications
Parameter High–Speed Inputs, X0 – X3 Standard DC Inputs X4 – X23
Min. - Max. Voltage Range 10.8 – 26.4 VDC 10.8 – 26.4 VDC
Operating Voltage Range 12 -24 VDC 12 -24 VDC
Peak Voltage 30 VDC (7 kHz maximum frequency) 30 VDC
Minimum Pulse Width 70 µs N/A
ON Voltage Level > 10 VDC > 10 VDC
OFF Voltage Level < 2.0 VDC < 2.0 VDC
Input Impedance 1.8 k @ 12 – 24 VDC 2.8 k @ 12 – 24 VDC
Max. Input Current 6mA @12VDC 13mA @24VDC 4mA @12VDC 8.5mA @24VDC
Minimum ON Current >5 mA >4 mA
Maximum OFF Current < 0.5 mA <0.5 mA
OFF to ON Response <70 µs 2 – 8 mS, 4 mS typical
ON to OFF Response <70 µs 2 – 8 mS, 4 mS typical
Status Indicators Logic side Logic side
Commons 4 channels / common x 5 banks (isolated)

Relay Output Specifications


Output Voltage Range (Min. - Max.) 5 -264 VAC (47 -63 Hz), 5 - 30 VDC
Operating Voltage 6 -240 VAC (47 -63 Hz), 6 - 27 VDC
Output Current 2A / point 6A / common
Maximum Voltage 264 VAC, 30 VDC
Max leakage current 0.1 mA @264 VAC
Smallest Recommended Load 5 mA
OFF to ON Response < 15 mS
ON to OFF Response < 10 mS
Status Indicators Logic Side
Commons 4 channels / common x 4 banks (isolated)
Fuses None (external recommended)

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02


2–37
Chapter 2: Installation, Wiring, and Specifications

D0–06DD1–D I/O Wiring Diagram


These micro PLCs feature twenty DC inputs and sixteen sinking DC outputs. The following
diagram shows a typical field wiring example. The DC external power connection uses four
terminals at the left as shown.
Inputs are organized into five banks of four. Each bank has an isolated common terminal, and
may be wired as either sinking or sourcing inputs. The wiring example below shows all
commons connected together, but separate supplies and common circuits may be used.
All outputs actually share the same common. Note the requirement for external power.
12 - 24 VDC
+ -
-
+24 VDC
+
L L L L L L L L L L L L L L L L

G LG N.C. Y0 Y2 C1 Y5 Y7 Y10 Y12 C3 Y15 Y17


+ - N.C. C0 Y1 Y3 Y4 Y6 C2 Y11 Y13 Y14 Y16 +V
OUTPUT: Sinking Output 6 - 27V 1.0A PWR: 12-24 20W
Y D0-06DD1-D
0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23
X
INPUT: 12 - 24V 3 - 15mA

LOGIC 06
K oyo

C0 X1 X3 X4 X6 C2 X11 X13 X14 X16 C4 X21 X23 N.C.


X0 X2 C1 X5 X7 X10 X12 C3 X15 X17 X20 X22 N.C.

DC
Supply
+V Internal module circuitry +V

+V +
Optical 24VDC Optical
Isolator Isolator
Input L
OUTPUT
+ To LED
– + 6–27
VDC
Common To LED
COM

High Speed Inputs (X0-X3) DC Pulse Outputs (Y0 - Y1)


Points
+V +V 16 Internal module circuitry
+V
1.0 A Y0 - Y7
Optical 12
Y10 - Y17 +
Isolator 8 24VDC Optical
To LED
Input Isolator
To LED 4 OUTPUT
+ L

0
– + 6–27
0 10 20 30 40 50 50˚C
Common 32 50 68 86 104 122 122˚C VDC
Ambient Temperature ( ˚C/ ˚F)
COM

Derating Chart for DC Outputs


Standard Input Circuit (X4-X23) DC Standard Outputs (Y2 - Y17)

2–38 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 2: Installation, Wiring, and Specifications

D0-06DD1-D General Specifications


External Power Requirements 12 – 24 VDC, 20 W maximum,
Communication Port 1: 9600 baud (Fixed), K–Sequence (Slave), DirectNET (Slave),
8 data bits, 1 stop bit, odd parity MODBUS (Slave)
Communication Port 2: 9600 baud (default), K–Sequence (Slave), DirectNET (Master/Slave),
8 data bits, 1 stop bit,odd parity MODBUS (Master/Slave), Non-sequence/print, ASCII in/out
Programming cable type D2–DSCBL
Operating Temperature 32 to 131° F (0 to 55 C)
Storage Temperature –4 to 158° F (–20 to 70 C)
Relative Humidity 5 to 95% (non-condensing)
Environmental air No corrosive gases permitted
Vibration MIL STD 810C 514.2
Shock MIL STD 810C 516.2
Noise Immunity NEMA ICS3–304
Terminal Type Removable
Wire Gauge One AWG16 or two AWG18, AWG24 minimum
DC Input Specifications
Parameter High–Speed Inputs, X0 – X3 Standard DC Inputs X4 – X23
Min. - Max. Voltage Range 10.8 – 26.4 VDC 10.8 – 26.4 VDC
Operating Voltage Range 12 – 24 VDC 12 – 24 VDC
Peak Voltage 30 VDC (7 kHz maximum frequency) 30 VDC
Minimum Pulse Width 70 µs N/A
ON Voltage Level >10.0 VDC > 10.0 VDC
OFF Voltage Level < 2.0 VDC < 2.0 VDC
Max. Input Current 6mA @12VDC, 13mA @24VDC 4mA @12VDC, 8.5mA @24VDC
Input Impedance 1.8 k @ 12 – 24 VDC 2.8 k @ 12 – 24 VDC
Minimum ON Current >5 mA >4 mA
Maximum OFF Current < 0.5 mA <0.5 mA
OFF to ON Response <70 µS 2 – 8 mS, 4 mS typical
ON to OFF Response <70 µS 2 – 8 mS, 4 mS typical
Status Indicators Logic side Logic side
Commons 4 channels / common x 5 banks (isolated)
DC Output Specifications
Parameter Pulse Outputs, Y0 – Y1 Standard Outputs, Y2 – Y17
Min. - Max. Voltage Range 5 – 30 VDC 5 – 30 VDC
Operating Voltage 6 – 27 VDC 6 – 27 VDC
Peak Voltage < 50 VDC (10 kHz max. frequency) < 50 VDC
On Voltage Drop 0.3 VDC @ 1 A 0.3 VDC @ 1 A
Max Current (resistive) 0.5 A / pt., 1A / pt. as standard pt. 1.0 A / point
Max leakage current 15 µA @ 30 VDC 15 µA @ 30 VDC
Max inrush current 2 A for 100 mS 2 A for 100 mS
External DC power required 20 - 28 VDC Max 150mA 20 - 28 VDC Max 150mA
OFF to ON Response < 10 µs < 10 µs
ON to OFF Response < 20 µs < 60 µs
Status Indicators Logic Side Logic Side
Commons 4 channels / common x 4 banks (non-isolated)
Fuses None (external recommended)

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 2–39
Chapter 2: Installation, Wiring, and Specifications

D0–06DR–D I/O Wiring Diagram


The D0–06DR–D PLC has twenty DC inputs and sixteen relay contact outputs. The
following diagram shows a typical field wiring example. The DC external power connection
uses three terminals as shown.
12 - 24 VDC
+ -
AC or DC
Supply
L L L L L L L L L L L L L L L L

G LG N.C. Y0 Y2 C1 Y5 Y7 Y10 Y12 C3 Y15 Y17


+ - N.C. C0 Y1 Y3 Y4 Y6 C2 Y11 Y13 Y14 Y16 N.C.
OUTPUT: 6-240V 50 - 60Hz 2.0A, 6 - 27V 2.0A PWR: 12-24 20W
Y D0-06DR-D
0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23
X
INPUT: 12 - 24V 3 - 15mA

Points
16

12
2.0A Y0 - Y7 LOGIC 06
K oyo
Y10 - Y17
8
C0 X1 X3 X4 X6 C2 X11 X13 X14 X16 C4 X21 X23 N.C.
4
X0 X2 C1 X5 X7 X10 X12 C3 X15 X17 X20 X22 N.C.

0
0 10 20 30 40 50 50˚C
32 50 68 86 104 122 122˚C
Ambient Temperature ( ˚C/ ˚F)

Derating Chart for Relay Outputs


DC
Supply

Inputs are organized into five banks of four. Each bank has an isolated common terminal, and
may be wired as either sinking or sourcing inputs. The wiring example above shows all
commons connected together, but separate supplies and common circuits may be used.
Outputs are organized into four banks of four normally-open relay contacts. Each bank has a
common terminal. The wiring example above shows all commons connected together, but
separate supplies and common circuits may be used. The equivalent output circuit shows one
channel of a typical bank. The relay contacts can switch AC or DC voltages.

+V +V
Internal module circuitry
+V Optical
Isolator +V
Optical Input L
Isolator To LED
Input + Output
+ To LED

– Common
Common
Common
To LED

6–27 VDC
6–240 VAC
High-speed Input Circuit (X0-X3) Standard Input Circuit (X4-X23)
Standard Output Circuit

2–40 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 2: Installation, Wiring, and Specifications

D0-06DR-D General Specifications


External Power Requirements 12 – 24 VDC, 20 W maximum,
Communication Port 1 9600 baud (Fixed), K–Sequence (Slave), DirectNET (Slave), MODBUS (Slave)
8 data bits, 1 stop bit, odd parity
Communication Port 2 9600 baud (default), K–Sequence (Slave), DirectNET (Master/Slave),
8 data bits, 1 stop bit, odd parity MODBUS (Master/Slave),Non-sequence/print, ASCII in/out
Programming cable type D2–DSCBL
Operating Temperature 32 to 131° F (0 to 55 C)
Storage Temperature –4 to 158° F (–20 to 70 C)
Relative Humidity 5 to 95% (non-condensing)
Environmental air No corrosive gases permitted
Vibration MIL STD 810C 514.2
Shock MIL STD 810C 516.2
Noise Immunity NEMA ICS3–304
Terminal Type Removable
Wire Gauge One AWG16 or two AWG18, AWG24 minimum

DC Input Specifications
Parameter High–Speed Inputs, X0 – X3 Standard DC Inputs X4 – X23
Min. - Max. Voltage Range 10.8 – 26.4 VDC 10.8 – 26.4 VDC
Operating Voltage Range 12 -24 VDC 12 -24 VDC
Peak Voltage 30 VDC (7 kHz maximum frequency) 30 VDC
Minimum Pulse Width 70 µs N/A
ON Voltage Level > 10 VDC > 10 VDC
OFF Voltage Level < 2.0 VDC < 2.0 VDC
Input Impedance 1.8 k @ 12 – 24 VDC 2.8 k @ 12 – 24 VDC
Max. Input Current 6mA @12VDC 13mA @24VDC 4mA @12VDC 8.5mA @24VDC
Minimum ON Current >5 mA >4 mA
Maximum OFF Current < 0.5 mA <0.5 mA
OFF to ON Response <70 µs 2 – 8 mS, 4 mS typical
ON to OFF Response < 70 µs 2 – 8 mS, 4 mS typical
Status Indicators Logic side Logic side
Commons 4 channels / common x 5 banks (isolated)

Relay Output Specifications


Output Voltage Range (Min. - Max.) 5 -264 VAC (47 -63 Hz), 5 - 30 VDC
Operating Voltage 6 -240 VAC (47 -63 Hz), 6 - 27 VDC
Output Current 2A / point 6A / common
Maximum Voltage 264 VAC, 30 VDC
Max leakage current 0.1 mA @264 VAC
Smallest Recommended Load 5 mA
OFF to ON Response < 15 mS
ON to OFF Response < 10 mS
Status Indicators Logic Side
Commons 3 channels / common x 2 banks
Fuses None (external recommended)

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 2–41
Chapter 2: Installation, Wiring, and Specifications

D0-10ND3
10-point DC input module

D0-10ND3 Specifications
Number of Inputs 10 (sink/source)
Input Voltage Range 10.8-26.4VDC
Operating Voltage Range 12-24VDC
Peak Voltage 30.0VDC
Typical:4.0mA @ 12VDC
Input Current 8.5mA @ 24VDC
Maximum Input Current 11mA @ 26.4VDC
Input Impedance 2.8Kq @ 12-24VDC
On Voltage Level > 10.0 VDC
Off Voltage Level < 2.0 VDC
Minimum ON Current 3.5mA
Minimum OFF Current 0.5mA
Off to On Response 2-8ms, Typ. 4ms
On to Off Response 2-8ms, Typ. 4ms
Module activity:
Status Indicators one green LED
Commons 2 non-isolated
Fuse No fuse
Base Power Required Typical. 35mA (all pts. ON)

Note: The DL06 must have firmware version V4.10 (or later) for this module to function properly.

Equivalent input circuit Derating chart

2–42 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 2: Installation, Wiring, and Specifications

D0-16ND316-point DC input module


D0-16ND3 Specifications Equivalent input circuit

Number of Inputs 16 (sink/source)


Input Voltage Range 20-28VDC
Operating Voltage Range 24VDC
Peak Voltage 30.0VDC
Typical:
Input Current 4.0mA @ 24VDC
Maximum Input Current 6mA @ 28VDC
Input Impedance 4.7K @ 24VDC
On Voltage Level > 19.0 VDC Wiring for ZL-CM056
Off Voltage Level < 7.0 VDC
Minimum ON Current 3.5mA
Minimum OFF Current 1.5mA
Off to on Response 2-8ms, Typ. 4ms
On to off Response 2-8ms, Typ. 4ms
Module activity:
Status Indicators one green LED
Commons 4 non-isolated
Fuse No fuse

External DC power required 20-28VDC max.


200 mA (all pts. ON) Note: The DL06 must have firmware version V4.10
Typical. 35mA (or later) for this module to function properly.
Base Power Required (5V) (all pts. ON)

Derating chart

Use ZipLink ZL-CBL056 cable and ZL-CM056


connector module
or build your own cables using 24-pin Molex
Micro Fit 3.0 receptacle, part number 43025,
or compatible.

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 2–43
Chapter 2: Installation, Wiring, and Specifications

D0-10TD1
10-point DC output module
D0-10TD1 Specifications
Number of Outputs 10 (sinking)
Operating Voltage Range 6-27VDC
Output Voltage Range 5-30VDC
Peak Voltage 50.0VDC
0.3A/point
Maximum Output Current 1.5A/common
Minimum Output Current 0.5mA
ON Voltage Drop 0.5.VDC @0.3A
Maximum Leakage Current 15µA @ 30.0VDC
Maximum Inrush Current 1A for 10ms
OFF to ON Response <10µs
ON to OFF Response <60µs
Module activity:
Status Indicators one green LED
2 non-isolated
Commons (5 points/common)
Fuse No fuse
Max. 150mA
Base Power Required (5V) (All pts. on)

Note: The DL06 must have firmware version V4.10 (or later) for this module to function properly.

Derating chart
Equivalent output circuit

Use ZipLink ZL-CBL056 cable and ZL-CM056


connector module
or build your own cables using 24-pin Molex
Micro Fit 3.0 receptacle, part number 43025,
or compatible.

2–44 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 2: Installation, Wiring, and Specifications

D0-16TD1 16-point DC output module


Equivalent input circuit
D0-16TD1 Specifications
Number of Outputs 16 (sinking)
Operating Voltage Range 6-27VDC
Output Voltage Range 5-30VDC
Peak Voltage 50.0VDC
0.1A/point
Maximum Output Current 0.8A/common
Minimum Output Current 0.5mA
ON Voltage Drop 0.5.VDC @0.1A
Derating chart
Maximum Leakage Current 15µA @ 30.0VDC
Maximum Inrush Current 1A for 10ms
OFF to ON Response <0.5 ms
ON to OFF Response <0.5 ms
Module activity:
Status Indicators one green LED
2 isolated
Commons (8 points/common)
Fuse No fuse
External DC power required 20-28 VDC max
70 mA (all pts. ON)
Base Power Required (5V) Max. 200mA
(All pts. ON)

Note: The DL06 must have firmware version V4.10 (or later) for this module to function properly.

Wiring for ZL-CM056

Use ZipLink ZL-CBL056 cable and ZL-CM056


connector module
or build your own cables using 24-pin Molex
Micro Fit 3.0 receptacle, part number 43025,
or compatible.

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 2–45
Chapter 2: Installation, Wiring, and Specifications

D0-10TD2
10-point DC output module
D0-10TD2 Output Specifications
Number of Outputs 10 (sourcing)
Operating Voltage Range 12-24VDC
Output Voltage Range 10.8-26.4VDC
Peak Voltage 50.0VDC
0.3A/point
Maximum Output Current 1.5A/common
Minimum Output Current 0.5mA
ON Voltage Drop 1.0.VDC @0.3A
Maximum Leakage Current 1.5µA @ 30.0VDC
Maximum Inrush Current 1A for 10ms
OFF to ON Response <10µs
ON to OFF Response <60µs
Module activity:
Status Indicators one green LED
2 non-isolated
Commons (5 points/common)
Fuse No fuse
Max. 150mA
Base Power Required (5V) (All pts. On)

Note: The DL06 must have firmware version V4.10 (or later) for this module to function properly.

Derating chart Equivalent output circuit

2–46 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 2: Installation, Wiring, and Specifications

D0-16TD2 16-point DC output module


D0-16TD2 Specifications Equivalent output circuit

Number of Outputs 16 (sourcing)


Operating Voltage Range 12-24VDC
Output Voltage Range 10.8-26.4VDC
Peak Voltage 50.0VDC
0.1A/point
Maximum Output Current 0.8A/common
Minimum Output Current 0.5mA
ON Voltage Drop 1.0.VDC @ 0.1A
Maximum Leakage Current 1.5µA @ 26.4VDC
Wiring for ZL-CM056
Maximum Inrush Current 1A for 10ms
OFF to ON Response <0.5 ms
ON to OFF Response <0.5 ms
Module activity:
Status Indicators one green LED
2 non-isolated
Commons (8 points/common)
Fuse No fuse
Max. 200mA
Base Power Required (5V) (All pts. ON)

Note: The DL06 must have firmware version V4.10 (or later) for this module to function properly.

Derating chart

Use ZipLink ZL-CBL056 cable and ZL-CM056


connector module
or build your own cables using 24-pin
Molex Micro Fit 3.0 receptacle, part
number 43025, or compatible.

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 2–47
Chapter 2: Installation, Wiring, and Specifications

D0-07CDR 4-point DC input and 4-point relay output module


Input Specifications Output Specifications
Inputs per module 4 (sink/source) Outputs per module 3
Operating voltage range 12-24 VDC Operating voltage range 6-27 VDC/6-240 VAC
Input voltage range 10.8-26.4 VDC Output type Relay, form A, SPST
Peak voltage 30.0 VDC Peak voltage 30.0 VDC/264 VAC
Maximum input current 11 mA @ 26.4 VDC Maximum current (resistive) 1 A/point, 4 A/common
Typical: Minimum load current 5mA @ 5VDC
Input current 4mA @ 12VDC Maximum leakage current 0.1 mA @ 264 VAC
8.5 mA @ 24VDC
ON voltage drop N/A
Input impedance 2.8K @ 12-24VDC
Maximum inrush current Output: 3A for 10 ms Common: 10A for 10 ms
ON voltage level >10.0 VDC
ON to OFF response < 10 ms
OFF voltage level < 2.0 VDC
OFF to ON response < 15 ms
Minimum ON current 3.5 mA
Status indicators Module acitivity: one green LED
Maximum OFF current 0.5 mA
Commons 1 (3 points/common)
ON to OFF response 2-8 ms, typical 4 ms
Fuse N/A
OFF to ON response 2-8 ms, typical 4 ms Max. 200 mA
Commons 1 (4 points/common) Base power required (5V) (all points ON)

Note: The DL06 must have firmware version V4.10 (or later) for this module to function properly.

Equivalent input circuit Equivalent output circuit

Derating chart for DC inputs


Derating chart for relay outputs

2–48 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 2: Installation, Wiring, and Specifications

D0-08TR 8-point Relay output module

D0-08TR Specifications
Outputs per module 8
Operating voltage range 6-27 VDC/6-240 VAC
Output type Relay, form A, SPST
Peak voltage 30.0 VDC/264 VAC
Maximum current (resistive) 1 A/point, 4 A/common
Minimum load current 0.5mA
Maximum leakage current 0.1 mA @ 264 VAC
ON voltage drop N/A
Maximum inrush current Output: 3A for 10 ms Common: 10A for 10 ms
ON to OFF response < 10 ms
OFF to ON response < 15 ms
Status indicators Module acitivity: one green LED
Commons 2 isolated. (4 points/common)
Fuse N/A
Max. 280 mA
Base power required (5V) (all points ON)

Note: The DL06 must have firmware version V4.10 (or later) for this module to function properly.

Equivalent output circuit


Derating chart

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 2–49
Chapter 2: Installation, Wiring, and Specifications

D0-08CDD1
4-point DC input and 4-point relay output module

Input Specifications Output Specifications


Inputs per module 4 (sink/source) Outputs per module 4 (sinking)
Operating voltage range 10.8-26.4 VDC Operating voltage range 6-27 VDC
Input voltage range 12-24 VDC Output voltage range 5-30 VDC
Peak voltage 30.0 VDC Peak voltage 50.0 VDC/
Maximum input current 11 mA @ 26.4 VDC Maximum output current 0.3 A/point, 1.2 A/common
Typical: Minimum outpu current 0.5 mA
Input current 4mA @ 12 VDC Maximum leakage current 1.5 µA @ 30.0 VDC
8.5 mA @ 24 VDC
ON voltage drop 0.5 VDC @ 0.3A
Input impedance 2.8K @ 12-24 VDC
Maximum inrush current 1A for 10 ms
ON voltage level >10.0 VDC
ON to OFF response <60 ms
OFF voltage level < 2.0 VDC
OFF to ON response <10 ms
Minimum ON current 3.5 mA
Status indicators Module acitivity: one green LED
Maximum OFF current 0.5 mA
Commons 2 non-isolated (4 points/common)
ON to OFF response 2-8 ms, typical 4 ms
Fuse N/A
OFF to ON response 2-8 ms, typical 4 ms
Base power required (5V) Max. 200 mA (all points ON)
2 non-isolated
Commons (4points/common) External DC power 20 - 28 VDC, maximum 80 mA
required (24V) (all pts. ON)

Note: The DL06 must have firmware version V4.10 (or later) for this module to function properly.

Equivalent output circuit


Equivalent input circuit

Output Derating chart


Input Derating Chart

2–50 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 2: Installation, Wiring, and Specifications

I/O Addressing
Module I/O Points and Addressing
Each option module has a set number of I/O points. This holds true for both the discrete
modules and the analog modules. The following chart shows the number of I/O points per
module when used in the DL06.

DC Input Modules I/O Points Slot 1 I/O Address


D0-10ND3 10 Input X100 - X107 and X110 - X111
D0-16ND 16 Input X100 - X107 and X110 - X117
DC Output Modules I/O Points Slot 1 I/O Address
D0-10TD1 10 Output Y100 - Y107 and Y110 - Y111
D0-16TD1 16 Output Y100 - Y107 and Y110 - Y117
D0-10TD2 10 Output Y100 - Y107 and Y110 - Y111
D0-16TD2 16 Output Y100 - Y107 and Y110 - Y117
Relay Output Modules I/O Points Slot 1 I/O Address
D0-08TR 8 Output Y100 - X107
Combination Modules I/O Points Slot 1 I/O Address
D0-07CDR 4 Input, 3 Output X100 - X103 and Y100 - Y102
D0-08CDD1 4 Input, 4 Output X100 - X103 and Y100 - Y103

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 2–51
HIGH-SPEED INPUT AND CHAPTER
PULSE OUTPUT FEATURES
3
2
In This Chapter
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–2
Choosing the HSIO Operating Mode . . . . . . . . . . . . . . . . . . . . . . . .3–4
Mode 10: High-Speed Counter . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–7
Mode 20: Up/Down Counter . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–24
Mode 30: Pulse Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–38
Mode 40: High-Speed Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . .3–64
Mode 50: Pulse Catch Input . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3–69
Mode 60: Discrete Inputs with Filter . . . . . . . . . . . . . . . . . . . . . . .3–73
Chapter 3: High-speed Input and Pulse Output Features

Introduction
Built-in Motion Control Solution
Many machine control applications require various
types of simple high-speed monitoring and control.
These applications usually involve some type of motion
control, or high-speed interrupts for time-critical
events. The DL06 Micro PLC solves this traditionally
expensive problem with built-in CPU enhancements.
Let’s take a closer look at the available high-speed I/O
features.
The available high-speed input features are:
• High Speed Counter (7 kHz max.) with up to 24 counter presets and built-in interrupt subroutine,
counts up only, with reset
• Quadrature encoder inputs to measure counts and clockwise or counter clockwise direction (7 kHz
max.), counts up or down, with reset
• High-speed interrupt inputs for immediate response to critical or time-sensitive tasks
• Pulse catch feature to monitor one input point, having a pulse width as small as 100µs (0.1ms)
• Programmable discrete filtering (both on and off delay up to 99ms) to ensure input signal integrity
(this is the default mode for inputs X0–X3)
The available pulse output features are:
• Single-axis programmable pulse output (10 kHz max.) with three profile types, including
trapezoidal moves, registration, and velocity control
Availability of HSIO Features
IMPORTANT: Please note the following restrictions on availability of features:
• High-speed input options are available only on DL06s with DC inputs.
• Pulse output options are available only on DL06s with DC outputs.
• Only one HSIO feature may be in use at one time. You cannot use a high–speed input feature and
the pulse output at the same time.

Specifications
DL06 Part Number Discrete Input Type Discrete Output Type High-Speed Input Pulse Output
D0–06AA AC AC No No
D0–06AR AC Relay No No
D0–06DA DC AC Yes No
D0–06DD1 DC DC Yes Yes
D0–06DD2 DC DC Yes Yes
D0–06DR DC Relay Yes No
D0–06DD1–D DC DC Yes Yes
D0–06DR–D DC Relay Yes No

3–2 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 3: High-speed Input and Pulse Output Features

Dedicated High- Speed I/O Circuit


The internal CPU’s main task is to execute the ladder program and read/write all I/O points
during each scan. In order to service high-speed I/O events, the DL06 includes a special
circuit which is dedicated to a portion of the I/O points. Refer to the DL06 block diagram in
the figure below.
16 Discrete Outputs

DL06
PLC Output Circuit

Y0, Y1 Y2 - Y17

High-Speed CPU
I/O Circuit

X0 - X3 X4 - X23

Input Circuit

20 Discrete Inputs

The high-speed I/O circuit (HSIO) is dedicated to the first four inputs (X0 – X3) and the
first two outputs (Y0 – Y1). We might think of this as a “CPU helper”. In the default
operation (called “Mode 60”) the HSIO circuit just passes through the I/O signals to or from
the CPU, so that all twenty inputs behave equally and all sixteen outputs behave equally.
When the CPU is configured in any other HSIO Mode, the HSIO circuit imposes a
specialized function on the portion of inputs and outputs shown. The HSIO circuit operates
independently of the CPU program scan. This provides accurate measurement and capturing of
high-speed I/O activity while the CPU is busy with ladder program execution.
Wiring Diagrams for Each HSIO Mode
After choosing the appropriate HSIO mode for your application, you’ll need to refer to the
section in this chapter for that specific mode. Each section includes wiring diagrams to help
you connect the High-Speed I/O points correctly to field devices. An example of the
quadrature counter mode diagram is shown below.
C0 X1 X3 X4 X6 C2 X11 X13 X14 X16 C4 X21 X23 N.C.
X0 X2 C1 X5 X7 X10 X12 C3 X15 X17 X20 X22 N.C.
TERM

PORT1 PORT2 RUN STOP

Counter Input Wiring

Signal

– + Signal Common

12-24 VDC Supply

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 3–3
Chapter 3: High-speed Input and Pulse Output Features

Choosing the HSIO Operating Mode


Understanding the Six Modes
The High-Speed I/O circuit operates in one of 6 basic modes as listed in the table below. The
number in the left column is the mode number (later, we’ll use these numbers to configure
the PLC). Choose one of the following modes according to the primary function you want
from the dedicated High-Speed I/O circuit. You can simply use all twenty inputs and sixteen
outputs as regular I/O points with Mode 60.
High Speed I/O Basic Modes
Mode Mode Features
Two 7 kHz counters with 24 presets and reset input, counts up only, cause
10 High-Speed Counter interrupt on preset
7 kHz up/down counter with 24 presets and reset, causes interrupt on
preset
20 Up/Down Counter
Channel A / Channel B 7 kHz quadrature input, counts up and down

Stepper control – pulse and direction signals, programmable motion


30 Pulse Output profile (10kHz max.)
40 High-Speed Interrupt Generates an interrupt based on input transition or time
50 Pulse Catch Captures narrow pulses on a selected input
60 Filtered Input Rejects narrow pulses on selected inputs

In choosing one of the six high-speed I/O modes, the I/O points listed in the table below
operate only as the function listed. If an input point is not specifically used to support a
particular mode, it usually operates as a filtered input by default. Similarly, output points
operate normally unless Pulse Output mode is selected.

3–4 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 3: High-speed Input and Pulse Output Features

Physical I/O Point Usage


DC Input Points DC Output Points
Mode
X0 X1 X2 X3 Y0 Y1
Counter #2, Reset #1, Reset #2,
Interrupt, Interrupt, Interrupt,
10 High-Speed Counter Counter #1 Pulse Input or Pulse Input or Pulse Input or
Regular Output Regular Output
Filtered Input Filtered Input Filtered Input

Up/Down counter
(Standard counting) Up Counting Down Counting Reset,
Pulse Input or
20 Pulse Input or
Filtered Input
Regular Output Regular Output
Up/Down counter Phase A Input Phase B Input Filtered Input
(Quadrature counting)
Pulse Input or Pulse Input or Pulse Input or Pulse Input or Pulse or Direction or
30 Pulse Output Filtered Input Filtered Input Filtered Input Filtered Input CW Pulse CCW Pulse
Interrupt, Interrupt, Interrupt,
40 High-Speed Interrupt Interrupt Pulse Input or Pulse Input or Pulse Input or Regular Output Regular Output
Filtered Input Filtered Input Filtered Input
Pulse Input, Pulse Input, Pulse Input,
50 Pulse Catch Pulse Input Interrupt or Interrupt or Interrupt or Regular Output Regular Output
Filtered Input Filtered Input Filtered Input

60 Filtered Input Filtered Input Filtered Input Filtered Input Filtered Input Regular Output Regular Output

Default Mode
Mode 60 (Filtered Inputs) is the default mode. The DL06 is initialized to this mode at the
factory, and any time you initialize the scratchpad memory. In the default condition, X0–X3
are filtered inputs (10 mS delay) and Y0–Y1 are standard outputs.

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 3–5
Chapter 3: High-speed Input and Pulse Output Features

Configuring the HSIO Mode


If you have chosen a mode suited to the high-speed I/O needs of your application, we’re ready
to proceed to configure the PLC to operate accordingly. In the block diagram below, notice
the V-memory detail in the expanded CPU block. V-memory location V7633 determines the
functional mode of the high-speed I/O circuit. This is the most important V-memory
configuration value for HSIO functions!

DL06 Output Circuit


PLC
Y0 - Y1 Y2 - Y17

CPU
I/O Data
High-Speed V-Memory
I/O Circuit Mode Select
V7633 xxxx

X0 - X3 X4 - X23

Input Circuit

The contents of V7633 is a 16-bit word, to be entered in binary–coded decimal. The figure
below defines what each 4-bit BCD digit of the word represents.

Memory Location V7633


Bits 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0

0 0 5 0

Miscellaneous Setup (BCD) HSIO Mode Setup (BCD)


00 = Not Used (default) 00 = Not Used
10 = Battery Enabled 10 = High-Speed Counter
20 = Power-up in RUN 20 = Up/Down Counter
30 = Battery Enabled and 30 = Pulse Output
Power-up in RUN 40 = High-Speed Interrupts
50 = Pulse Catch
60 = Filtered Inputs (default)

Bits 0 – 7 define the mode number 00, 10.. 60 previously referenced in this chapter. The
example data “2050” shown selects Mode 50 – Pulse Catch (BCD = 50).
Configuring Inputs X0 – X3
In addition to configuring V7633 for the HSIO mode, you’ll V-Memory
need to program the next four locations in certain modes Mode V7633 xxxx
according to the desired function of input points X0 – X3. X0 V7634 xxxx
Other memory locations may require configuring, depending on X1 V7635 xxxx
the HSIO mode (see the corresponding section for particular X2 V7636 xxxx
HSIO modes).
X3 V7637 xxxx

3–6 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 3: High-speed Input and Pulse Output Features

Mode 10: High-Speed Counter


Purpose
The HSIO circuit contains two high-speed counters. A single pulse train from an external
source (X0) clocks the counter on each signal leading edge. The counter counts only upwards,
from 0 to 99999999. The counter compares the current count with up to 24 preset values,
which you define. The purpose of the presets is to quickly cause an action upon arrival at
specific counts, making it ideal for such applications as cut-to-length. It uses counter registers
CT174 to CT177 in the CPU.
Functional Block Diagram
Refer to the block diagram below. When the lower byte of HSIO Mode register V7633
contains a BCD “10”, the high-speed up counter in the HSIO circuit is enabled. X0 and X1
automatically become the “clock” inputs for the high-speed counters, incrementing them
upon each off-to-on transition. The external reset input on X2 and X3 are the default
configuration for Mode 10.

DL06 Output Circuit


PLC
Y0 - Y1 Y2 - Y17

HSIO CPU
I/O data
Counter 1 Counter 2 V-memory
Filter Mode Select
CLK Reset CLK Reset V7633 0010

X0 X2 X1 X3 X4 - X23

Input Circuit

Instead of using X2 and X3 as dedicated reset inputs, you can configure X2 and X3 as normal
filtered inputs. In this way, the counter reset must be generated in ladder logic.

DL06 Output Circuit


PLC
Y0 - Y1 Y2 - Y17

HSIO CPU
I/O data
Counter 1 Counter 2 V-memory
Filter Mode Select
CLK Reset CLK Reset V7633 0010

X0 X1 X2 - X3 X4 - X23

Input Circuit

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 3–7
Chapter 3: High-speed Input and Pulse Output Features

Wiring Diagram
A general wiring diagram for counters/encoders to the DL06 in HSIO Mode 10 is shown
below. Many types of pulse-generating devices may be used, such as proximity switches,
single-channel encoders, magnetic or optical sensors, etc. Devices with sinking outputs (NPN
open collector) are probably the best choice for interfacing. If the counter sources to the
inputs, it must output 12 to 24 VDC. Note that devices with 5V sourcing outputs will not
work with DL06 inputs.
C0 X1 X3 X4 X6 C2 X11 X13 X14 X16 C4 X21 X23 N.C.
X0 X2 C1 X5 X7 X10 X12 C3 X15 X17 X20 X22 N.C.
TERM

PORT1 PORT2 RUN STOP

Counter Input Wiring

Signal

– + Signal Common

12-24 VDC Supply

Interfacing to Counter Inputs


The DL06’s DC inputs are flexible in that they detect current flow in either direction, so they
can be wired to a counter with either sourcing or sinking outputs. In the following circuit, a
counter has open-collector NPN transistor outputs. It sinks current from the PLC input
point, which sources current. The power supply can be the FA–24PS or another supply
(+12VDC or +24VDC), as long as the input specifications are met.
Counter Output X0 - X3 Input
Output Input
(sinking) (sourcing)
12-24 VDC Supply
Ground – + Common

In the circuit diagram below, an encoder has open-emitter PNP transistor outputs. It sources
current to the PLC input point, which sinks the current back to ground. Since the encoder
sources current, no additional power supply is required. However, note that the encoder
output must be 12 to 24 volts (5V encoder outputs will not work).
Counter Output
+12 to 24 VDC X0 - X3 Input
Input
(sinking)
Output (sourcing)
:

Ground Common

3–8 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 3: High-speed Input and Pulse Output Features

Setup for Mode 10


V7633 is the HSIO Mode Select register. Refer to the diagram below. Use BCD 10 in the
lower byte of V7633 to select the High-Speed Counter Mode.
Memory Location V7633
Bits 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0

0 0 1 0

For the function of bits 8 - 15, HSIO Mode Setup (BCD)


refer to page 3-6. 10 = High-Speed Counter

Choose the most convenient method of programming V7633 from the following:
• Include load and out instructions in your ladder program
• DirectSOFT32’s memory editor or Data View
• Use the Handheld Programmer D2–HPP
We recommend using the first method above so that the HSIO setup becomes an integral part of
your application program. An example program later in this section shows how to do this.
Presets and Special Relays
Presets are used to cause a particular action to occur when the count reaches the preset value.
Refer to the figure below. Each counter features 24 presets, which you can program. Presets
are double word numbers so they occupy two V-memory registers. The user selects the preset
values, and the counter continuously compares the current count with the preset. When the
two are equal, a special relay contact is energized and program execution jumps to the
interrupt routine.
We recommend using the special relay(s) in the interrupt service routine to cause any immediate action you
desire. After the interrupt service routine is complete, the CPU returns to the ladder program, resuming
program execution from the point of interruption. The compare function is ready for the next preset event.
X0, up counter clock
Counter 1 Current CPU Scan
X2, external reset Reset 1 Value Input
Does = Update
X1, up counter clock Count 1 =
Counter 2 Current
Preset? INT
Value Ladder
X3, external reset Reset 2
Program
Counter 2: Preset Data Execution
HSIO
V3710 0000 1500 Interrupt
V3712 0000 2500 Does Routine
V3632 0000 Data2000
= Current
Counter 1: Preset Count 2 = Program
V3630 Instruction
V3634 0000
0000 1000 2500 Preset? SPxxx
V3632 0000 2000
V3636 0000
V3634 0000 2500 3175 Output
V3636 0000 3175 Update IRT

V3706 0921 0000


V3706 0921
High 0000
Low
Word Word
High Low
Word Word

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 3–9
Chapter 3: High-speed Input and Pulse Output Features

Absolute and Incremental Presets


Two preset modes are available, absolute and incremental. Presets are entered into a
contiguous block of V-memory registers. In the absolute mode, each preset is treated as the
total count. In the incremental mode, the presets are cumulative. Incremental presets
represent the number of counts between events.

Absolute Presets (default) Incremental Presets

Event C Event C (A + B + C)
Preset = 150 Preset = 150

Event B Event B (A + B)
Preset = 100 Preset = 100

Event A Event A
Preset = 50 Preset = 50

100 200 300 100 200 300


= trigger point

In the example above, presets are established at 50, 100, and 150. The difference between
absolute and incremental modes is shown. Absolute presets trigger events at the preset values,
50, 100, and 150. Incremental presets trigger events at the cumulative totals: 50, 150, and
300.

3–10 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 3: High-speed Input and Pulse Output Features

Preset Data Starting Location


V7630 is the pointer to the V-memory location which contains the beginning of the Preset
Data Tables. The default starting location for the Preset Data Tables is V3630 (default after
initializing scratchpad). However, you may change this by programming a different value in
V7630. Use the LDA and OUT instructions as shown:
Load the octal address, Preset Table Pointer
LDA convert to hex, leave
O2000 result in accumulator. V7630 2000

OUT
Output this address to Preset Table
V7630, the location of the
V7630 pointer to the Preset data. V2001 V2000 0000 1000
V2003 V2002 0000 2000
Using Fewer than 24 Presets V2005 V2004 0000 2500
When all 24 available presets are used, the CPU V2007 V2006 0000 3175
knows automatically when it reaches the end of the
preset table. When using fewer than 24 presets,
however, it is necessary to signal the CPU that it has
V2077 V2076 0000 0000
reached the last preset. The way to signal the end of
the block of presets is to insert one of the following
“table-end” codes into the next available register pair:
Table-end Code Applicable Mode Meaning
0000 FFFF Absolute and Incremental Signals end of presets

0000 00FF Incremental Signals end of presets and restarts presets. Does not
reset accumulated pulse counts of CT174 or CT176.
0000 FF00 Incremental Signals end of presets, restarts presets and resets
accumulated pulse counts of CT174 or CT176.
As shown in the table above, each of the “table-end” signals has a different meaning. Use the
LDD Kffff instruction to insert the table-end code into the next register pair beyond the
preset table. In the example, four presets are used. The 0000 FFFF in V3641-V3640 indicates
the previous preset was the last preset.
Default Preset Table Example
Load 0000 FFFF V3631 V3630 0000 1000
LDD into accumulator.
Kffff V3633 V3632 0000 2000
Output this value to V3635 V3634 0000 2500
OUT V3640, the register
V3640 V3637 V3636 0000 3175
beyond the Preset Table.
V3641 V3640 0000 FFFF
In absolute mode, the counter and the cumulative total are reset each time a preset is reached.
In incremental mode, you can choose not to reset the counter or the cumulative total, or you
can choose to reset only the counter, or you can choose to reset the counter and the
cumulative total when the table-end code is read. In the example, FFFF has been placed in
V3640 since the last preset was in V3636, and we are using fewer than 24 presets.
NOTE: In incremental mode each successive preset must be greater than the previous preset value. If a
preset value is less than a lower-numbered preset value, the CPU cannot compare to that value,
since the counter can only count upwards.

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 3–11
Chapter 3: High-speed Input and Pulse Output Features

Equal Relay Numbers


The following table lists all 24 preset register default locations for each high-speed counter.
Each occupies two 16-bit V-memory registers. The corresponding special relay contact
number is in the next column. We might also call these “equal” relay contacts, because they
are true (closed) when the present high-speed counter value is equal to the preset value. Each
contact remains closed until the counter value equals the next preset value.
Preset Register Table
Counter 1 Preset V-memory Special Relay Counter 2 Preset V-memory Special Relay
Preset Register Number Preset Register Number
1 V3631 / V3630 SP540 1 V3711/V3710 SP570
2 V3633 / V3632 SP541 2 V3713/V3712 SP571
3 V3635 / V3634 SP542 3 V3715/V3714 SP572
4 V3637 / V3636 SP543 4 V3717/V3716 SP573
5 V3641 / V3640 SP544 5 V3721/V3720 SP574
6 V3643 / V3642 SP545 6 V3723/V3722 SP575
7 V3645 / V3644 SP546 7 V3725/V3724 SP576
8 V3647 / V3646 SP547 8 V3727/V3726 SP577
9 V3651 / V3650 SP550 9 V3731/V3730 SP600
10 V3653 / V3652 SP551 10 V3733/V3732 SP601
11 V3655 / V3654 SP552 11 V3735/V3734 SP602
12 V3657 / V3656 SP553 12 V3737/V3736 SP603
13 V3661 / V3660 SP554 13 V3741/V3740 SP604
14 V3663 / V3662 SP555 14 V3743/V3742 SP605
15 V3665 / V3664 SP556 15 V3745/V3744 SP606
16 V3667 / V3666 SP557 16 V3747/V3746 SP607
17 V3671 / V3670 SP560 17 V3751/V3750 SP610
18 V3673 / V3672 SP561 18 V3753/V3752 SP611
19 V3675 / V3674 SP562 19 V3755/V3754 SP612
20 V3677 / V3676 SP563 20 V3757/V3756 SP613
21 V3701 / V3700 SP564 21 V3761/V3760 SP614
22 V3703 / V3702 SP565 22 V3763/V3762 SP615
23 V3705 / V3704 SP566 23 V3765/V3764 SP616
24 V3707 / V3706 SP567 24 V3767/V3766 SP617

The consecutive addresses shown above for each relay are those assigned by the CPU as
default addresses. The Pointer for the start of these addresses is stored by the CPU at V7630.
If you have a conflict of addresses because of pre-existing code written to these addresses, you
can change the default block of addresses merely by having your ladder logic place a different
pointer value in V7630. To change the table location. use the LDA and OUT instructions as
shown on the previous page.

3–12 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 3: High-speed Input and Pulse Output Features

Calculating Your Preset Values


The preset values occupy two data words each. They can range in value from -8388608 to
8388607, just like the high-speed counter value. All 24 values are absolute values, meaning
that each one is an offset from the counter zero value.
The preset values must be individually derived for each application. In the industrial lathe
diagram below, the PLC monitors the position of the lead screw by counting pulses. At points
A, B, and C along the linear travel, the cutter head pushes into the work material and cuts a
groove.
PLC

G LG 0V Y0 Y2 C1 Y5 Y7 Y10 Y12 C3 Y15 Y17


PWR
AC(L) AC(N) 24V C0 Y1 Y3 Y4 Y6 C2 Y11 Y13 Y14 Y16 N.C. RUN
OUTPUT: 6-240V 50 - 60Hz 2.0A, 6 - 27V 2.0A PWR: 100-240V 50-60Hz 40VA CPU

Y D0-06DR TX1
RX1
0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23
TX2
X RX2
INPUT: 12 - 24V 3 - 15mA

LOGIC 06
K oyo
Industrial Lathe
C0 X1 X3 X4 X6 C2 X11 X13 X14 X16 C4 X21 X23 N.C.
X0 X2 C1 X5 X7 X10 X12 C3 X15 X17 X20 X22 N.C.
TERM
A B C
PORT1 PORT2 RUN STOP

to X0 and X1 Encoder Motor


quadrature pulses
Start lead screw cutter head

The timing diagram below shows the duration of each equal relay contact closure. Each
contact remains on until the next one closes. All go off when the counter resets.

Equal Relays A B C

SP540
SP541
SP542

NOTE: Each successive preset must be two numbers greater than the previous preset value. In the
industrial lathe example, B>A+2 and C>B+2.

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 3–13
Chapter 3: High-speed Input and Pulse Output Features

X Input Configuration
The configurable discrete input options for High-Speed Counter Mode are listed in the table
below. Input X0 is dedicated for the first counter clock input. Input X1 can be the clock for
the second counter or a filtered input. The section on Mode 60 operation at the end of this
chapter describes programming the filter time constants. Inputs X2 and X3 can be configured
as the counter resets, with or without the interrupt option. The interrupt option allows the
reset input (X2 and X3) to cause an interrupt like presets do, but there is no SP relay contact
closure (instead, X2 and X3 will be on during the interrupt routine, for 1 scan). Or finally,
X2 and X3 may be left simply as a filtered input.
Input Options
Input Configuration Register Function Hex Code Required
0001 (absolute) (default)
X0 V7634 Counter #1 Clock
0101 (incremental)
0001 (absolute) (default)
Counter #2 Clock
0101 (incremental)

X1 V7635 Interrupt 0004


Pulse Input 0005
xx06, xx = filter time
Filtered Input 0 - 99 ms (BCD)
0007* (default)
Counter #1 Reset (no interrupt) 0207*
0107*
Counter #1 Reset (with interrupt) 0307*
X2 V7636 Interrupt 0004
Pulse Input 0005
xx06, xx= filter time
Filtered Input 0 - 99 ms (BCD)
0007* (default)
Counter #2 Reset (no interrupt) 0207*
0107*
Counter #2 Reset (with interrupt) 0307*
X3 V7637 Interrupt 0004
Pulse Input 0005
xx06, xx= filter time
Filtered Input 0 - 99 ms (BCD)

*With the counter reset, you have the option of a normal reset or a faster reset. However, the
fast reset does not recognize changed preset values during program execution. When ‘0007’ or
‘0107’ are set in V7636 or V7637 and preset values are changed during program execution,
the DL06 recognizes the changed preset values at the time of the reset. When ‘0207’ or ‘0307’
are set in V7636 or V7637 the CPU does not check for changed preset values, so the DL06
has a faster reset time.

3–14 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 3: High-speed Input and Pulse Output Features

Writing Your Control Program


The mnemonic for the counter instruction is UDC (up-down counter).The DL06 can have
up to 128 counters, labeled CT0 through CT177. The high speed counter in the HSIO
circuit is accessed in ladder logic by using UDC CT174 and CT176. It uses counter registers
CT174 through CT177 exclusively when the HSIO mode 10 is active (otherwise, CT174
through CT177 are available for standard counter use). The HSIO counter needs two
registers because it is a double-word counter. It has three inputs as shown. The first input
(Enable) allows counting when active. The middle input is used to preload the counter value.
The bottom signal is the reset. The Preload Input must be off while the counter is counting.
The next figure shows how the HSIO counter will appear in a ladder program. Note that the
Enable Interrupt (ENI) command must execute before the counter value reaches the first
preset value. We do this at powerup by using the first scan relay. When using the counter but
not the presets and interrupt, we can omit the ENI.
Standard Counter Function HSIO Counter Function

UP Count UDC CTxx Enable Input UDC CT174


(or CT176)
DOWN Count Preload Input
Kxxxxxxxx Kxxxxxxxx
Reset Input Reset Input

Counts UP and DOWN Counts UP only


Preload counter by write to value Can use Preload Input to change count
Reset input is internal only Reset may be internal or external

Direct SOFT32
SP1
ENI Required

XX
Enable Input UDC CT174
(or CT176)
XX
Preload Input Kxxxxxxxx
XX
Reset Input Preset Range:
1-99999999

When the enable input is energized, the up/down counter CT174 will respond to pulses on
X0 and increment. The updown counter CT176 will respond to pulses on X1 and increment.
The reset input contact behaves in a logical OR fashion with the physical reset input. X2
(when selected) resets counter 1. X3 (when selected) resets counter 2. So,the high speed
counter can receive a reset form either the contact(s) on the reset rung in the ladder, OR the
external reset X2 or X3, if you have configured X2 or X3 as an external reset.

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 3–15
Chapter 3: High-speed Input and Pulse Output Features

Program Example 1: Counter Without Presets


The following example is the simplest way to use the high-speed counters, which does not use
the presets and special relays in the interrupt routine. The program configures the HSIO
circuit for Mode 10 operation, so X0 is automatically the counter clock input for the first
counter, and X1 is the counter clock input for the second counter. It uses the Compare-
double (CMPD) instruction to cause action at certain count values. Note that this allows you
to have more than 24 “presets”.Then it configures X2 and X3 to be the external reset of the
counter.

Direct SOFT32
First Scan Only
SP0 Load constant K10 into the accumulator . This
LD selects Mode 10 as the HSIO mode.
K10

Mode 10 Output the constant K10 to V7633, the


OUT location of HSIO Mode select register .
V7633

Load the constant required to configure X0 as


LD the counter 1 clock.
K1

Output the constant K1 to V7634, the location of


OUT the setup parameter for X0.
V7634

Load the constant required to configure X1 as


Configure LD the counter 2 clock.
Inputs K1

Output the constant K1 to V7635, the location


OUT of setup parameter for X1.
V7635

Load the constant required to configure X2 as


LD an external reset without interrupt.
K7

Output the constant K7 to V7636, the location of


OUT the setup parameter for X2.
V7636

LD Load the constant required to configure X3 as


K7 an external reset without interrupt.

Output the constant K7 to V7637, the location of


OUT the setup parameter for X3.
V7637
SP1
UDC CT174 CT174 is the HSIO counter. The first rung’s SP1
always enables the counter. The Preload Input in
SP1 the middle is always of f. The third rung’s Reset
K99999999 input is always off, because we will use the
external reset.
SP1

continued on next page

3–16 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 3: High-speed Input and Pulse Output Features

Program Example Cont’d


The compare double instructions below use the current count of the HSIO counter to turn
on Y0 and Y1. This technique can make more than 24 comparisons, but it is scan-time
dependent. However, use the 24 built-in presets with the interrupt routine if your application
needs a very fast response time, as shown in the next example.
continued from previous page

SP1
UDC CT176 CT176
always enables the counter. The Preload Input in
SP1 the middle is always of f. The third rung’s Reset
K99999999 input is always off, because we will use the
external reset.
SP1

SP1 Load the current count of the HSIO counter in


LDD V1174 and V1175 into the accumulator
V1174

Use the Compare-double instruction to compare


CMPD the double word in the accumulator to the constant
K123456
K123456.

SP62 Y0
OUT The execution of the above CMPD instruction turns
on special relay contact SP62 if the current count
is greater than the comparison number (K123456).

SP1 Load the current count of the HSIO counter in


LDD V1176 and V1177 into the accumulator
V1176

Use the Compare-double instruction to compare


CMPD the double word in the accumulator to the constant
K345678
K345678

SP62 Y1
OUT The execution of the above CMPD instruction turns
on special relay contact SP62 if the current count
is greater than the comparison number (K345678).

END END coil marks the end of the main program.

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 3–17
Chapter 3: High-speed Input and Pulse Output Features

Program Example 2: Counter With Presets


The following example shows how to program the HSIO circuit to trigger on three preset
values. You may recall the industrial lathe example from the beginning of this chapter. This
example program shows how to control the lathe cutter head to make three grooves in the
work-piece at precise positions. When the lead screw turns, the counter device generates
pulses which the DL06 can count. The three preset variables A, B, and C represent the
positions (number of pulses) corresponding to each of the three grooves. In this example, only
one high-speed counter is used. The second counter could be used in the same manner.
A V3630 0000 1500 Industrial Lathe
Preset Data B V3632 0000 3780
C V3634 0000 4850 A B C
V3636 0000 FFFF

I/O Counter
X3 - Cutter head extended
Assignments X4 - Cutter head retracted Device
Start
Y0 - Lead screw motor Cutter head Lead screw
Y1 - Cutter head solenoid

Direct SOFT32
SP0 Enable Interrupts before reaching a preset
ENI generates an interrupt. Special Relay SP0 is on
during the first CPU scan.

SP0 Load constant K10 into the accumulator . This


LD
K10 selects Mode 10 as the HSIO mode.

OUT Output the constant to V7633, the location of


V7633 HSIO Mode select register.

Load the constant required to configure X0 as


LD the counter clock.
K1
Output the constant K1 to V7634, the location of
OUT the setup parameter for X0.
V7634

LD Load the constant required to configure X1 as


Select Mode 10 K1006 a filtered input.

OUT Output the constant to V7635, the location of the


V7635 setup parameter for X1.

Load the constant required to configure X2 as an


LD external reset with interrupt.
K107

OUT Output the constant to V7636, the location of the


V7636 setup parameter for X2.

Load the constant required to configure X3 as


LD a filtered input.
K1006

OUT Output the constant to V7637, the location of the


V7637 setup parameter for X3.

Load the octal address O3630 into the


LDA accumulator. This instruction automatically
O3630 converts the address into hex.

OUT Output this address to V7630, the location of


V7630 the pointer to the Preset Table.

continued on next page

3–18 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 3: High-speed Input and Pulse Output Features

continued from previous page

SP0 Load the preset A value into the accumulator .


LDD
K1500
Load Presets OUTD Output the accumulator contents to the memory
V3630 location for preset 1.

Load the preset B value into the accumulator .


LDD
K3780

OUTD Output the accumulator contents to the memory


V3632 location for preset 2.

Load the preset C value into the accumulator .


LDD
K4850

OUTD Output the accumulator contents to the memory


V3634 location for preset 3.

Load the constant Kffff into the accumulator. This


LDD value represents the end of the preset list.
Kffff

OUTD Output the accumulator contents to the memory


V3636 location for preset 4 (end of preset marker).

SP1
UDC CT174 CT174 is the HSIO counter. The first rung’ s SP1
always enables the counter. The preload input in
SP1 the middle is off (unused in this example).
K99999999

SP1

The third rung’s Reset input is normally of f,


SP0 because we will use the external reset. You can
optionally reset the counter value on each powerup
using the SP0 contact.

X3 Y1
RST Input X3 energizes when the groove has finished
cutting. So, we retract the cutter head.
X4 Y0
SET Turn lead screw on again, after cutter head has
retracted.

END END coil marks the end of the main program.

The INT label marks the beginning of the interrupt


INT O0
service routine program.

SP540 Preset 1 Y0
RSTI Inside the interrupt service routine, we turn OFF the
lead screw motor immediately .
SP541
Y1 These special “equal” relays turn on individually as
Preset 2 the corresponding preset is reached. In this
SETI application, each results in the cutting of a groove
SP542 (Y1), so they are logically ORed together .
Preset 3
X2 C10
SETI Input X2 will be energized inside the interrupt
routine if X2 external interrupt was the source.
IRT Return from the interrupt service routine.

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 3–19
Chapter 3: High-speed Input and Pulse Output Features

Some applications will require a different type of action at each preset. It is possible for the
interrupt routine to distinguish one preset event from another, by turning on a unique output
for each equal relay contact SPxxx. We can determine the source of the interrupt by
examining the equal relay contacts individually, as well as X2. The X2 contact will be on
(inside the interrupt routine only) if the interrupt was caused by the external reset, X2 input.

3–20 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 3: High-speed Input and Pulse Output Features

Program Example 3: Counter With Preload


The following example shows how you can preload the current count with another value.
When the preload command input (X4 in this example) is energized, we disable the counter
from counting with C0. Then we write the value K3000 to the count register (V1076-
V1077). We preload the current count of the counter with K3000. When the preload
command (X4) is turned off, the counter resumes counting any pulses, but now starting from
K3000. In this example, only one high-speed counter is used. The second counter could be
used in the same manner.

DirectSOFT32
SP0 Load constant K10 into the accumulator . This
LD selects Mode 10 as the HSIO mode.
K10

Select Mode 10 OUT Output this address to V7633, the location of


V7633 HSIO Mode select register .

Load the constant required to configure X0 as


LD the counter clock.
K1
Output the constant K1 to V7634, the location of
OUT the setup parameter for X0.
V7634
Load the constant required to configure X1 as
LD a filtered input.
K1006

OUT Output the constant to V7635, the location of the


V7635 setup parameter for X1.

Load the constant required to configure X2 as


LD a filtered input.
K1006

OUT Output the constant to V7636, the location of the


V7636 setup parameter for X2.

Load the constant required to configure X3 as


LD a filtered input.
K1006

OUT Output the constant to V7637, the location of the


V7637 setup parameter for X3.

C0
SET Set C0 on at powerup to enable counting.

C0
UDC CT174 CT174 is the HSIO counter. The first rung’s C0
contact enables the counter . The dummy input is in
C1 the middle.
K99999999

C2
The third rung’s Reset input is normally off,
because we will use the external reset. You can
SP0 optionally reset the counter value on each powerup
using the SP0 contact.

continued on next page

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 3–21
Chapter 3: High-speed Input and Pulse Output Features

continued from last page

X4 C0 When the preload request is made, the user turns


on X4. First we disable counting by resetting C0,
RST the counter ’s enable input.

Load the BCD value K3000 into the


LDD accumulator.
K3000

OUTD Output the constant to V1174/V1175, the location


V1174 of the accumulated count for CT76.

C1
Generate a preload counter input pulse, which
PD causes the counter to preload from V1174-V1175.
C0 C1 C0
Enable the counter by setting C0, when the
SET preolad pulse on C1 has occurred (C1 is off).

END END coil marks the end of the main program.

3–22 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 3: High-speed Input and Pulse Output Features

Troubleshooting Guide for Mode 10


If you’re having trouble with Mode 10 operation, please study the following symptoms and
possible causes. The most common problems are listed below.
Symptom: The counter does not count.
Possible causes:
1. Field sensor and wiring – Verify that the encoder, proximity switch,or counter actually turns on
and illuminates the status LED for X0 (counter 1) and X1 (counter 2). The problem could be due
to sinking-sourcing wiring problem, etc. Remember to check the signal ground connection. Also
verify that the pulse on-time is long enough for the PLC to recognize it.
2. Configuration – use the Data View window to check the configuration parameters. V7633 must
be set to 10, and V7634 must be set to 1 or 101 to enable the first high-speed counter. V7635
must be set to 1 or 101 to enable the second high-speed counter.
3. Stuck in reset – check the input status of the reset input, X2 and X3. If X2 is on, the counter will
not count because it is being held in reset.
4. Ladder program – make sure you are using counter CT174 and CT176 in your program. The top
input is the enable signal for the counter. It must be on before the counter will count. The middle
input is the dummy input. The bottom input is the counter reset, and must be off during
counting.
Symptom: The counter counts but the presets do not function.
Possible causes:
1. Configuration – Ensure the preset values are correct. The presets are 32-bit BCD values having a
range of 0 to 99999999. Make sure you write all 32 bits to the reserved locations by using the
LDD and OUTD instructions. Use only even–numbered addresses, from V3630 to V3767. If
using less than 24 presets, be sure to place “0000FFFF,” “0000FF00,” or “000000FF” in the
location after the last preset used.
2. Interrupt routine – Only use Interrupt #0. Make sure the interrupt has been enabled by executing
an ENI instruction prior to needing the interrupt. The interrupt routine must be placed after the
main program, using the INT label and ending with an interrupt return IRT.
3. Special relays – Check the special relay numbers in your program. Use SP540 for Preset 1, SP541
for Preset 2, etc. Remember that only one special equal relay contact is on at a time. When the
counter value reaches the next preset, the SP contact which is on now goes off and the next one
turns on.
Symptom: The counter counts up but will not reset.
Possible causes:
1. Check the LED status indicator for X2 (counter 1) and X3 (counter 2) to make sure it is active
when you want a reset. Or, if you are using an internal reset, use the status mode of DirectSOFT32 to
monitor the reset input to the counter.

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 3–23
Chapter 3: High-speed Input and Pulse Output Features

Mode 20: Up/Down Counter


Purpose
The counter in the HSIO circuit can count up/down signals from two separate sources (i.e.
two single channel encoders) or two quadrature signal pulses. Quadrature signals are
commonly generated from incremental encoders, which may be rotary or linear. The
up/down counter has a range from -8388608 to 8388607. Using CT174 and CT175, the
quadrature counter can count at up to a 7 kHz rate.
Functional Block Diagram
The diagram below shows HSIO functionality in Mode 20. When the lower byte of HSIO
Mode register V7633 contains a BCD “20”, the up/down counter in the HSIO circuit is
enabled. For quadrature counting, input X0 is dedicated to the Phase A quadrature signal,
and input X1 receives Phase B signal. X2 is dedicated to reset the counter to zero value when
energized.

DL06 Output Circuit


PLC
Y0 - Y1 Y2 - Y17

HSIO CPU
I/O data
Counter V-memory
Filter Mode Select
Phase A Phase B Reset V7633 0020

X0 X1 X2 X3 X4 - X23

Input Circuit

For standard up/down counting, input X0 is dedicated to the up counting signal, and input
X1 is dedicated to the down counting signal. The X2 input resets the counter to zero when
energized.

DL06 Output Circuit


PLC
Y0 - Y1 Y2 - Y17

HSIO CPU
I/O data
Counter V-memory
Filter Mode Select
Up Down Reset V7633 0020

X0 X1 X2 X3 X4 - X23

Input Circuit

3–24 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 3: High-speed Input and Pulse Output Features

Quadrature Encoder Signals


Quadrature encoder signals contain position and direction information, while their frequency
represents speed of motion. Phase A and B signals shown below are phase-shifted 90 degrees,
thus the quadrature name. When the rising edge of Phase A precedes Phase B’s leading edge
(indicates clockwise motion by convention), the HSIO counter counts UP. If Phase B’s rising
edge precedes Phase A’s rising edge (indicates counter-clockwise motion), the counter counts
DOWN.
Wiring Diagram
A general wiring diagram for encoders to the DL06 in HSIO Mode 20 is shown below.
Encoders with sinking outputs (NPN open collector) are probably the best choice for
interfacing. If the encoder sources to the inputs, it must output 12 to 24 VDC. Note that
encoders with 5V sourcing outputs will not work with DL06 inputs.

Leading Edge Signal 90˚ phase shift

Clockwise sequence
Phase A

Phase B

Counterclockwise sequence
Phase A

Phase B

Leading Edge Signal one cycle

K oyo

C0 X1 X3 X4 X6 C2 X11 X13 X14 X16 C4 X21 X23 N.C.


X0 X2 C1 X5 X7 X10 X12 C3 X15 X17 X20 X22 N.C.

A
Quadrature Encoder Input
B

LOGIC 06
K oyo

C0 X1 X3 X4 X6 C2 X11 X13 X14 X16 C4 X21 X23 N.C.


X0 X2 C1 X5 X7 X10 X12 C3 X15 X17 X20 X22 N.C.

Reset

Prox Sensor Input

Up Down

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 3–25
Chapter 3: High-speed Input and Pulse Output Features

Interfacing to Encoder Outputs


The DL06’s DC inputs are flexible in that they detect current flow in either direction, so they
can be wired to an encoder with either sourcing or sinking outputs. In the following circuit,
an encoder has open-collector NPN transistor outputs. It sinks current from the PLC input
point, which sources current. The power supply can be the +24VDC auxiliary supply or
another supply (+12VDC or +24VDC), as long as the input specifications are met.
Encoder Output,
(one phase) Phase A or B Input
Output Input
(sinking) (sourcing)
12-24 VDC Supply
Ground – + Common

In the next circuit, an encoder has open-emitter PNP transistor outputs. It sources current to
the PLC input point, which sinks the current back to ground. Since the encoder sources
current, no additional power supply is required. However, note that the encoder output must
be 12 to 24 volts (5V encoder outputs will not work).
Encoder Output,
(one phase)
+12 to 24VDC Phase A or B Input
Input
(sinking)
Output (sourcing)

Ground Common

3–26 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 3: High-speed Input and Pulse Output Features

Setup for Mode 20


Recall that V7633 is the HSIO Mode Select register. Refer to the diagram below. Use BCD
20 in the lower byte of V7633 to select the High-Speed Counter Mode.
Memory Location V7633
Bits 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0

0 0 2 0

Miscellaneous Setup (BCD) HSIO Mode Setup (BCD)


00 = Not Used (default) 20 = Up/Down Counter
10 = Battery Enabled
20 = Power-up in RUN
30 = Battery Enabled and
Power-up in RUN

Choose the most convenient method of programming V7633 from the following:
• Include load and out instructions in your ladder program
• DirectSOFT’s memory editor
• Use the Handheld Programmer D2–HPP
We recommend using the first method above so that the HSIO setup becomes an integral part
of your application program. An example program later in this section shows how to do this.
Presets and Special Relays
The goal of counting is to cause a particular action to occur when the count reaches a preset
value. Refer to the figure below. Each counter features 24 presets, which you can program. A
preset is a number you select and store so that the counter will continuously compare the
current count with the preset. When the two are equal, a special relay contact is energized and
program execution jumps to the interrupt routine.
We recommend using the special relay(s) in the interrupt service routine to cause any
immediate action you desire. After the interrupt service routine is complete, the CPU returns
to the ladder program, resuming program execution from the point of interruption. The
compare function is ready for the next preset event.
X0, up counter clock
Counter 1 Current CPU Scan
X2, external reset Reset 1 Value Input
Does = Update
X1, up counter clock Count 1 =
Counter 2 Current
Preset? INT
Value Ladder
X3, external reset Reset 2
Program
Counter 2: Preset Data Execution
HSIO
V3710 0000 1500 Interrupt
V3712 0000 2500 Does Routine
V3632 0000 Data2000
= Current
Counter 1: Preset Count 2 = Program
V3630 Instruction
V3634 0000
0000 1000 2500 Preset? SPxxx
V3632 0000 2000
V3636 0000
V3634 0000 2500 3175 Output
V3636 0000 3175 Update IRT

V3706 0921 0000


V3706 0921
High 0000
Low
Word Word
High Low
Word Word

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 3–27
Chapter 3: High-speed Input and Pulse Output Features

X Input Configuration
The configurable discrete input options for High-Speed Counter Mode are listed in the table
below. The section on Mode 60 operation at the end of this chapter describes programming
the filter time constants.
Mode 20 Up/Down Counter
Configuration
Input Function Hex Code Required
Register
0202 (standard, absolute)
Up counting
0302 (standard, incremental)
0002 (quadrature, absolute) (default)
X0 V7634
0102 (quadrature, incremental)
Phase A
1002 (quadrature, absolute) 4x counting*
1102 (quadrature, incremental) 4x counting*
X1 V7635 Down counting or Phase B 0000
Counter Reset (no interrupt) 0007** (default)
0207**
Counter Reset (with interrupt) 0107**
X2 V7636 0307**
Pulse input 0005
Filtered input xx06 (xx = filter time, 0 - 99ms (BCD)
Pulse input 0005
X3 V7637
Filtered input xx06 (xx = filter time, 0 - 99ms (BCD) (default)

* With this feature, you can count 4 times more with the same encoder.
4x counting 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Normal counting 1 2 3 4

Phase A

Phase B

** With the counter reset you have the option of a normal reset or a faster reset. However, the fast
reset does not recognize changed preset values during program execution. When ‘0007’ or ‘0107’
are set in V7636 and preset values are changed during program execution, the DL06 recognizes the
changed preset values at the time of the reset. When ‘0207’ or ‘0307’ are set in V7636 the CPU
does not check for changed preset values, so the DL06 has a faster reset time.

3–28 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 3: High-speed Input and Pulse Output Features

Writing Your Control Program


The mnemonic for the counter is UDC (up-down counter).The DL06 can have up to 128
counters, labeled CT0 through CT177. The quadrature counter in the HSIO circuit is
accessed in ladder logic by using UDC CT174. It uses counter registers CT174 and CT175
exclusively when the HSIO mode 20 is active (otherwise, CT174 and CT175 are available for
standard counter use). The HSIO counter needs two registers because it is a double-word
counter. It has three inputs as shown. The first input is the enable signal, the middle is a
preload (write), and the bottom is the reset. The enable input must be on before the counter
will count. The enable input must be off during a preload.

Standard Counter Function HSIO Counter Function

UP Count UDC CTxx Enable Input UDC CT174


DOWN Count Preload Input
Kxxxxxxxx Kxxxxxxxx
Reset Input Reset Input

Counts UP and DOWN Counts UP and DOWN (from X0, X1)


Preload counter by write to value Can use Preload Input to change count
Reset input is internal only Reset may be internal or external
The next figure shows the how the HSIO quadrature counter will appear in a ladder program.

Enable Input UDC CT174


Preload Input
Kxxxxxxxx
Reset Input
Preset Range:
1-99999999
-8388608 to 8388607

When the enable input is energized, the counter will respond to quadrature pulses on X0 and
X1, incrementing or decrementing the counter at CT174 – CT175. The reset input contact
behaves in a logical OR fashion with the physical reset input X2. This means the quadrature
counter can receive a reset from either the contact(s) on the reset rung in the ladder, OR the
external reset X2.

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 3–29
Chapter 3: High-speed Input and Pulse Output Features

Program Example 1: Quadrature Counting with an Interrupt


Below is a simple example of how quadrature counting with an interrupt can be programmed.

DirectSOFT32
ENI

SP0 Load constant K20 into the accumulator . This selects


LD Mode 20 as the HSIO mode.
K20

OUT Output this address to V7633, the location of the HSIO


V7633 Mode select register .

LD Load the constant required to configure X0 as a


K2 quadrature absolute input.

OUT Output the constant to V7634, the location of the setup


V7634 register for X0.

LD Load the constant required to configure X2 as an external


K107 reset with interrupt.

Output the constant to V7636, the location of the setup


OUT register for X2.
V7636

LD Load the constant required to configure X3 as a filtered


K2006 input.

OUT Output the constant to V7637, the location of the setup


V7637 register for X3.

Load the preset 1 value into the accumulator.


LDD
K5000

OUTD Output the accumulator contents to the memory


V3630 location for preset 1.

LDD Load the constant required to configure X0 as Phase A


K10000 input.

OUTD Output the constant to V7634, the location of the setup


V3632 register for X0.

LDD Load the constant required to configure X1 as Phase B


K15000 input.

Output the constant to V7635, the location of the setup


OUTD register for X1.
V3634

LDD Load the constant required to configure X2 as an external


KFFFF reset.

OUTD Output the constant to V7636, the location of the setup


V3636 register for X2.

SP1
UDC CT174 CT174 is the HSIO quadrature counter. The first rung’ s SP1
always enables the counter . The dummy input is used by
SP1 the built-in compiler.
K18724

SP1

END END coil marks the end of the main program..

continued on next page

3–30 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 3: High-speed Input and Pulse Output Features

continued from last page

INT O0

SP540 Y10 Set Y0 to ON when the counter reaches or exceeds


OUT our comparison value while COUNTING UP.

SP541 Y11
Set Y1 to ON when the counter reaches or goes below
OUT our comparison value while COUNTING DOWN.

IRT

The Load Accumulator instructions have set up the V-memory as required, i.e. 20 in V7633
for the mode and 0202 in V7634 to designate the standard up/down with the absolute preset
mode. By placing 0107 in V7636, an external reset for counter CT174 is selected and it will
execute interrupt 0 on the rising edge of the reset. Presets for up/down counting have been
stored in memory locations V3630 through V3635. The next even numbered location
following this has FFFF to indicate we have no more presets.

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 3–31
Chapter 3: High-speed Input and Pulse Output Features

Program Example 2: Up/Down Counting with Standard Inputs


In this example, there is a conveyor belt “A” that transports bottles to be inspected. During
the course of the process, one sensor is keeping track of the bottles that are going onto belt
“A” for inspection, and another sensor is keeping track of how many bottles are being
removed to the finished product line.
When we have reached 500 bottles in the process, an “over 500” light turns on and a
rerouting gate is activated to channel the incoming bottles to conveyor belt “B”. The
rerouting gate will stay activated for 30 seconds after the conveyor belt “A” contains less than
500 bottles.
The program below shows how ladder logic might be written to handle the job. Note the use
of V1174. This memory location stores the current count for CT174 which is used with the
DL06.
DirectSOFT32

SP0
LD
K20
Mode 20 Up/Down counter
OUT
V7633

LD
K202 Standard counting
Absolute preset mode at X0 and X1
OUT
V7634

LD
K0
Must be zero with mode 20
OUT
V7635

LD
K7
External reset without interrupt (X2)
OUT
V7636

LD
K1006
Discrete filtered input at (X3) 10 ms.
OUT
V7637

SP1
UDC CT174 Up/Down counter
SP1 Only one counter is used with mode 20. The actual
K500 count (32-bit) is stored in V1175/V1174. When pulses
are received at point 00, the value in V1175/V1174
SP1 will decrement.

Actual counts
Y20
V1174 K450 When the pulse count reaches and exceeds 450,
OUT the "over 450" light (Y20) will turn on.

Continued on next page.

3–32 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 3: High-speed Input and Pulse Output Features

continued from previous page

Counter output Over 500 light


CT174 Y21 When the pulse count reaches or exceeds
the preset value of 500, the output of the
OUT counter (CT174) goes high and turns on
Over 500 latch the "over 500" light (Y21) and latches C5.
C5
SET
Over 500 latch
When the count is 500 or greater, the
C5 Y22 rerouting gate (Y22) turns on and will stay
OUT on for 30 seconds after the count falls
below 500.

Counter output
CT174 TMR
TIMER 0 OUTPUT
TO
K300
Over 500 latch
T0 C5
RST

END END coil marks the end of the main program.

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 3–33
Chapter 3: High-speed Input and Pulse Output Features

Program Example 3: Quadrature Counting


In this example, a wooden workpiece is being drilled with 3 holes and then the holes are
injected with glue for dowels to be inserted at another workstation. A quadrature encoder is
connected to a positioning table which is moving a drill press horizontally over the workpiece.
The positioning table will stop and the drill press will lower to drill a hole in an exact
location. After the three holes are drilled in the workpiece, the positioning table reverses
direction and injects glue into the same holes.
DirectSOFT32

ENI Enable interrupts

SP0
LD
K20
Mode 20
OUT
V7633

LD
K2
Quadrature counting
absolute mode at X0 and X1
OUT
V7634

LD
K0
Must be zero
OUT
V7635

LD
K107
External reset w/interrupt (X2)
OUT
V7636

LD
K1006 Discrete filtered input at (X3)
10 ms.
OUT
V7637
SP0
LDD Presets for up counting.
K5000 This rung loads the counter's presets.
In this case, the absolute preset
OUTD mode has been selected.
V3630

LDD
K6000

OUTD
V3632

LDD
K7500

OUTD
V3634

LDD
K8000

OUTD
V3636

LDD
KFFFF Tell CPU that there are
no more presets.
OUTD
V3640

Continued on next page.

3–34 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 3: High-speed Input and Pulse Output Features

Continued from previous page.

Forwarding
Manual start of drilling positioning
process momentary PB. table.
X20 Y30
SET

C1 C1
RST
Drilling sequence Drilling sequence
completed completed
(one hole only). (one hole only).

1st preset Reversing


actual counts. Position Table. Glue injection.
Y31 Y32
V1174 V3630 V1174 K5100
OUT

2nd preset
actual counts.
V1174 V3632 V1174 K6100

3rd preset
actual counts.
V1174 V3634 V1174 K7600

SP1
UDC CT174
SP1
K8388607

SP1

Drilling sequence initiation. One-shot bit.


C5 C6
PD

One-shot bit. Drill press down.


C6 Y20
SET

Drill turning.
Y21
SET
Drill fully extended.
Limit switch 1. Drill press down.
X10 Y20
RST

Drill press up.


Y22
Drill fully retracted. SET
(home position)
Limit switch 1. One-shot bit.
X3 C7
PD

Continued on next page.

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 3–35
Chapter 3: High-speed Input and Pulse Output Features

Continued from previous page.


One-shot bit. First scan bit. Drill press down.
C7 SP1 Y22
RST

Drill turning.
Y21
RST

Drilling sequence completed


(one hole only).
C1
SET

Drilling sequence initiation.


C5
RST

END

INT O0

Forwarding
SP540 Positioning Table. Y30
OUT

Drilling sequence initiation.


C5
SET

Forwarding
SP541 Positioning Table. Y30
OUT

Drilling sequence initiation.


C5
SET

Forwarding
SP542 Y30
Positioning Table.
OUT

Drilling sequence initiation.


C5
SET

Forwarding
SP543 Positioning Table. Y30
OUT

Reversing
Positioning
Table.
Y31
SET

Drilling sequence initiation.


C5
Position Table SET
home limit switch
(resets counter to zero). Reversing
Positioning
X2 Table. Y31
RSTI

IRT

3–36 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 3: High-speed Input and Pulse Output Features

Troubleshooting Guide for Mode 20


If you’re having trouble with Mode 20 operation, please study the following symptoms and
possible causes. The most common problems are listed below.
Symptom: The counter does not count.
Possible causes:
1. Field sensor and wiring – Verify that the encoder or other field device inputs actually turn on and
illuminates the status LEDs for X0 and X1. A standard incremental encoder will visibly, alternately
turn on the LEDs for X0 and X1 when rotating slowly (1 RPM). Or, the problem could be due to
a sinking-sourcing wiring problem, etc. Remember to check the signal ground connection. Also
verify that the pulse on-time, duty cycle, voltage level, and frequency are within the input
specifications.
2. Configuration – make sure all of the configuration parameters are correct. V7633 must be set to
20, and V7634 must be set to “0002” to enable the Phase A input, and V7635 must be set to
“0000” to enable the Phase B input.
3. Stuck in reset – check the input status of the reset input, X2. If X2 is on, the counter will not
count because it is being held in reset.
4. Ladder program – make sure you are using counter CT174 in your program. The top input is the
enable signal for the counter. It must be on before the counter will count. The middle input is the
dummy input and must be off for the counter to count. The bottom input is the counter reset, and
must be off during counting.
Symptom: The counter counts in the wrong direction
(up instead of down, and visa-versa).
Possible causes:
1. Channel A and B assignment – It’s possible that Channel A and B assignments of the encoder
wires is backwards from the desired rotation/counting orientation. Just swap the X0 and X1 inputs,
and the counting direction will be reversed.
Symptom: The counter counts up and down but will not reset.
Possible causes:
1. Check the LED status indicator for X2 to make sure it is active when you want a reset. Also verify
the configuration register V7636 for X2 is set to 7. Or, if you are using an internal reset, use the
status mode of DirectSOFT32 to monitor the reset input to the counter.

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 3–37
Chapter 3: High-speed Input and Pulse Output Features

Mode 30: Pulse Output


Purpose
The HSIO circuit in Mode 30 generates output pulse Trapezoidal Profile
trains suitable for open-loop control of a single-axis Velocity
motion positioning system. It generates pulse (stepper
increment) and direction signals which you can connect
Accel Decel
to motor drive systems and perform various types of
motion control. Using Mode 30 Pulse Output, you can
select from three profile types detailed later in this Time
chapter:
• Automatic Trapezoidal – Accel Slope to Target Velocity to Decel Slope
• Step Trapezoidal – User defined step acceleration/deceleration and target velocity
• Velocity Control – Speed and Direction only
The HSIO circuit becomes a high-speed pulse generator (up to 10 kHz) in Mode 30. By
programming acceleration and deceleration values, position and velocity target values, the
HSIO function automatically calculates the entire motion profile. The figure below shows the
DL06 generating pulse and direction signals to the drive amplifier of a stepper positioning
system. The pulses accomplish the profile independently and without interruption to ladder
program execution in the CPU.
Pulse
DL06 Micro PLC
Stepper
Motor
Direction

Drive
G LG 0V
AC(L) AC(N) 24V C0
Y0
Y1
Y2
Y3
C1
Y4
Y5
Y6
Y7 Y10 Y12
C2
C3 Y15 Y17
Y11 Y13 Y14 Y16 N.C.
PWR
RUN
Amplifier
OUTPUT: 6-240V 50 - 60Hz 2.0A, 6 - 27V 2.0A PWR: 100-240V 50-60Hz 40VA CPU

Y D0-06DR TX1
RX1
0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23
TX2
X RX2
INPUT: 12 - 24V 3 - 15mA

LOGIC 06
K oyo

C0 X1 X3 X4 X6 C2 X11 X13 X14 X16 C4 X21 X23 N.C.


X0 X2 C1 X5 X7 X10 X12 C3 X15 X17 X20 X22 N.C.
TERM

PORT1 PORT2 RUN STOP

In the figure above, the DL06 generates pulse and


CCW Pulse
direction signals. Each pulse represents the smallest
increment of motion to the positioning system (such as
one step or micro-step to a stepper system). CW Pulse
Alternatively, the HSIO Pulse Output Mode may be
configured to deliver counter clock-wise (CCW) and Drive
clock-wise (CW) pulse signals as shown to the right. Amplifier

NOTE: The pulse output is designed for open loop stepper motor systems. This, plus its minimum velocity
of 40 pps make it unsuitable for servo motor control.

3–38 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 3: High-speed Input and Pulse Output Features

Functional Block Diagram


The diagram below shows HSIO functionality in Mode 30. When the lower byte of HSIO
Mode register V7633 contains a BCD “30”, the pulse output capability in the HSIO circuit
is enabled. The pulse outputs use Y0 and Y1 terminals on the output connector. Remember
that the outputs can only be DC type to operate.

DL06 Output Circuit


PLC
Y0 Y1
(Pulse / CW) (Direction / CCW) Y2 - Y17

HSIO
SP 104 Profile Complete
CPU
PULSE GEN Y0 Start Profile
Y1 Preload Position Value
X1 Filtered Input
Interrupt FILTER V-memory
Mode select
V7633 xx30
X1 during
Automatic/Step
Trapezoidal Profile X0, X1, X2, X3 X4 - X23

Input Circuit

IMPORTANT NOTE: In Pulse Output Mode, Y0 and Y1 references are redefined or are used differently in
two ways. Physical references refer to terminal screws, while logical references refer to I/O references in
the ladder program. Please read the items below to understand this very crucial point.

Notice the I/O point assignment and usage in the above diagram:
• X0, X1, X2 and X3 can be filtered inputs or pulse inputs in Pulse Output Mode, and they are
available as input contacts to the ladder program.
• X1 behaves as an external interrupt to the pulse generator for automatic/step trapezoidal profiles. In
other profile modes, it can be used as a filtered input or pulse input just like X0 (registration mode
configuration shown above).
• References “Y0” and “Y1” are used in two different ways. At the discrete output connector, Y0 and
Y1 terminals deliver the pulses to the motion system. The ladder program uses logical references Y0
and Y1 to initiate “Start Profile” and “Load Position Value” HSIO functions in Mode 30.
Hopefully, the above discussion will explain why some I/O reference names have dual
meanings in Pulse Output Mode. Please read the remainder of this section with care, to
avoid confusion about which actual I/O function is being discussed.

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 3–39
Chapter 3: High-speed Input and Pulse Output Features

Wiring Diagram
The generalized wiring diagram below shows pulse outputs Y0 and Y1 connected to the drive
amplifier inputs of a motion control system.
Motor
Amplifier

-
+24 VDC
+

Signal Common
Power Input Pulse
Direction

G LG 0V Y0 Y2 C1 Y5 Y7 Y10 Y12 C3 Y15 Y17


AC(L) AC(N) 24V C0 Y1 Y3 Y4 Y6 C2 Y11 Y13 Y14 Y16 +V
OUTPUT: Sinking Output 6 - 27V 1.0A PWR: 100-240V 50-60Hz 40VA

Interfacing to Drive Inputs


The pulse signals from Y0 and Y1 outputs will typically go to drive input circuits as shown
above. It will be helpful to locate equivalent circuit schematics of the drive amplifier. The
following diagram shows how to interface to a sourcing drive input circuit.

Y0, Y1 Pulse Output Drive Input


Power
+DC Power
Output Input
(sinking) + (sourcing)

Common – Ground

The following circuit shows how to interface to a sinking drive input using a pullup resistor.
Please refer to Chapter 2 to learn how to calculate and install R pullup.

Y0, Y1 Pulse Output


Power
+DC power
R pullup Drive Input
(sourcing)
(sinking) Output Input R Input
+ (sinking)
Supply
Common – Ground

3–40 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 3: High-speed Input and Pulse Output Features

Motion Profile Specifications


The motion control profiles generated in Pulse Output Mode have the following
specifications:
Motion Control Profile Specifications
Parameter Specification
Automatic Trapezoidal – Accel Slope / Target Velocity / Decel Slope
Profiles Step Trapezoidal - Step Acceleration / Deceleration
Velocity Control – Speed and Direction only
Position Range –8388608 to 8388607
Positioning Absolute / relative command
Velocity Range 40 Hz to 10 kHz
V-memory registers V3630 to V3652 (Profile Parameter Table)
Current Position CT174 and CT175 (V1174 and V1175)

Physical I/O Configuration


The configurable discrete I/O options for Pulse Output Mode are listed in the table below.
The CPU uses SP 104 contact to sense “profile complete”. V7632 is used to select
pulse/direction or CW/CCW modes for the pulse outputs. Input X1 is dedicated as the
external interrupt for use in registration mode.
Physical I/O Configuration
Input Configuration Register Function Hex Code Required
Y0 = Pulse 0103
Y1 = Direction
– V7632
Y0 = CW Pulse 0003 (default)
Y1 = CCW Pulse
pulse input 0005
X0 V7634
filtered input xx06, xx = filter time, 0-9 (BCD) (default)
pulse input 0005
X1 V7635
filtered input xx06, xx = filter time, 0-99 (BCD) (default)
pulse input 0005
X2 V7636
filtered input xx06, xx = filter time, 0-99 (BCD) (default)
pulse input 0005
X3 V7637
filtered input xx06, xx = filter time, 0-99 (BCD) (default)
Logical I/O Functions
The following logical I/O references define functions that allow the HSIO to communicate
with the ladder program.
Logical I/O/ Functions
Logical I/O Function
SP104 Profile Complete – the HSIO turns on SP104 to the CPU when the profile completes.
Goes back off when Start Profile (Y0) turns on.
External Interrupt - If the interrupt feature is selected for the Automatic Trapezoidal
X1 profile or the Step Trapezoidal Profile, the DL06 keeps outputting pulses until X1
turns on. After it is on the unit outputs the pulses that are defined as the Target
Start Profile – the ladder program turns on Y0 to start motion. If turned off before
Y0 the move completes, motion stops. Turning it on again will start another profile,
unless the current position equals the target position.
Preload Position Value – if motion is stopped and Start Profile is off, you can load a
Y1 new value in CT174/CT175, and turn on Y1. At that transition, the value in
CT174/CT175 becomes the current position.

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02


3–41
Chapter 3: High-speed Input and Pulse Output Features

Setup for Mode 30


Recall that V7633 is the HSIO Mode Select register. Refer to the diagram below. Use BCD
30 in the lower byte of V7633 to select the High-Speed Counter Mode.

Memory Location V7633


Bits 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0

0 0 3 0

Miscellaneous Setup (BCD) HSIO Mode Setup (BCD)


00 = Not Used (default) 30 = Pulse Output
10 = Battery Enabled
20 = Power-up in RUN
30 = Battery Enabled and
Power-up in RUN

Choose the most convenient method of programming V7633 from the following:
• Include load and out instructions in your ladder program
• DirectSOFT32’s memory editor
• Use the Handheld Programmer D2–HPP
We recommend using the first method above so that the HSIO setup becomes an integral
part of your application program. An example program later in this section shows how to do
this.
Memory Location V3630 (default)
Bits 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0

0 7 0 0

Profile Select (BCD) Target Velocity Value


4 to 7, C to F = Automatic Trapezoidal Profile Range = 0, 4 to 999, representing
0, 1, 8, 9 = Step Trapezoidal Profile 40 Hz to 10 kHz pulse rate
2 = Velocity Profile

3–42 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 3: High-speed Input and Pulse Output Features

Profile / Velocity Select Register


The first location in the Profile Parameter Table stores two key pieces of information. The
upper four bits (12–15) select the type of profile required. The lower 12 bits (0-11) select the
Target Velocity.
The ladder program must program this location before initiating any of the three profiles.
The LD and OUT instruction will write all 16 bits, so be sure to fully specify the full four-
digit BCD value for the Profile / Velocity Select Register each time.
The absolute and relative selection determines how the HSIO circuit will interpret your
specified target position. Absolute position targets are referenced to zero. Relative position
targets are referenced to the current position (previous target position). You may choose
whichever reference method is most convenient for your application.
Profile Parameter Table Profile Table Pointer
V7630 is a pointer location which points to V7630 3630
the beginning of the Profile Parameter Table.
The default starting location for the profile Profile Parameter Table
parameter table is V3630. However, you may V3630 xxxx
change this by programming a different value V3631 xxxx xxxx
in V7630. Remember to use the LDA (load V3633 xxxx
address) instruction, converting octal into hex.
V3634 xxxx
The HSIO uses the next V-memory register V3635 xxxx
past the bottom of the profile parameter table
to indicate profile errors. See the error table at Pulse Output Error Code
the end of this section for error code V3636 00xx
definitions.
Automatic Trapezoidal Profile
V-Memory Function Range Units
Automatic Trapezoidal Profile 4=absolute w/o interrupt
without Ending Velocity 5=absolute with interrupt* –
(Ending Velocity is fixed to 0.) C=relative w/o interrupt
D=relative with interrupt*
V3630, bits 12–15
Automatic Trapezoidal Profile 6=absolute w/o interrupt
with Ending Velocity 7=absolue with interrupt* –
(Use V3637 to set up E=relative w/o interrupt
Ending Velocity.) F=relative with interrupt*
V3630, bits 0–11 Target Velocity 4 to 999 or 0 to 1000 x 10 pps
V3631 / V3632 Target Position** –8388608 to 8388607 Pulses
V3633 Starting Velocity 4 to 100 x 10 pps
V3634 Acceleration Time 1 to 100 x 100 mS
V3635 Deceleration Time 1 to 100 x 100 mS
V3636 Error Code (see end of section) –
V3637 Ending Velocity 4 to 100 x 10 pps
* If you select to use interrupt, the DL06 will not start looking for your target count until the interrupt X1 is on.
**To set a negative number, put 8 in the most significant digit. For example: -8388608 is 88388608 in V3631 and V3632.

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02


3–43
Chapter 3: High-speed Input and Pulse Output Features

Step Trapezoidal Profile

V-Memory Function Range Units


0=absolute w/o interrupt
V3630, bits 12–15 Step Trapezoidal Profile 7=absolue with interrupt* –
8=relative w/o interrupt
9=relative with interrupt*

V3630, bits 0–11 Target Velocity 4 to 999 x 10 pps


or 0 for 1000
V3631 / V3632 Target Position** –8388608 to 8388607 Pulses
V3633 Step 1 Acceleration 4 to 1000 x 10 pps
V3634 Step 1 Distance 1 to 9999 Pulses
V3635 Step 2 Acceleration 4 to 1000 x 10 pps
V3636 Step 2 Distance 1 to 9999 Pulses
V3637 Step 3 Acceleration 4 to 1000 x 10 pps
V3640 Step 3 Distance 1 to 9999 Pulses
V3641 Step 4 Acceleration 4 to 1000 x 10 pps
V3642 Step 4 Distance 1 to 9999 Pulses
V3643 Step 5 Deceleration 4 to 1000 x 10 pps
V3644 Step 5 Distance 1 to 9999 Pulses
V3645 Step 6 Deceleration 4 to 1000 x 10 pps
V3646 Step 6 Distance 1 to 9999 Pulses
V3647 Step 7 Deceleration 4 to 1000 x 10 pps
V3650 Step 7 Distance 1 to 9999 Pulses
V3651 Step 8 Deceleration 4 to 1000 x 10 pps
V3652 Step 8 Distance 1 to 9999 Pulses

* If you select to use interrupt, the DL06 will not start looking for your target count until the interrupt X1 is on.
**To set a negative number, put 8 in the most significant digit. For example: -8388608 is 88388608 in V3631 and V3632.

Velocity Control
V-Memory Function Range Units
V3630 Velocity Profile 2000 only –
V3631 / 3632 Direction Select 0=CW, 80000000=CCW, Pulses
V3633 Velocity 4 to 1000 x 10 pps
V3636 Error Code (see end of section) –

3–44 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 3: High-speed Input and Pulse Output Features

Choosing the Profile Type


Pulse Output Mode generates three types of motion profiles. Most applications use one type
for most moves. However, each move can be different if required.
• Automatic Trapezoidal – Accel Slope to Target Velocity to Decel Slope
• Step Trapezoidal – Velocity to Position Control on Interrupt
• Velocity Control – Speed and Direction only
Automatic Trapezoidal Profile Defined
The automatic trapezoidal profile is the most common positioning profile. It moves the load
to a pre-defined target position by creating a move profile. The acceleration slope is applied at
the starting position. The deceleration slope is applied backwards from the target position.
The remainder of the move in the middle is spent traveling at a defined velocity.
Registration profiles solve a class of motion control problems. In some applications, product
material in work moves past a work tool such as a drill station. Shown to the right,
registration marks on the scrap area of the work-piece allow a machine tool to register its
position relative to the rectangle, to drill properly.
Home search moves allow open-loop motion systems to re-calibrate (preload) the current
position value at powerup.

Velocity (Hz) Automatic Trapezoidal Profile

800

600 Target = 7000 pulses


positioning velocity = 800 Hz
400

200 Starting velocity = Ending velocity =


40 to 1000 Hz 0 Hz or 40 to 1000 Hz
Time
100 ms to 10 secs 100 ms to 10 secs
0 pulses 7000 pulses
Acceleration Deceleration

The user determines the starting velocity, the acceleration/deceleration times, and the total
number of pulses. The CPU computes the profile from these inputs.

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 3–45
Chapter 3: High-speed Input and Pulse Output Features

Step Trapezoidal Profiles Defined


Registration profiles are a combination of velocity and position control modes. The move
begins by accelerating to a programmed velocity. The velocity is sustained and the move is of
indefinite duration. When an external interrupt signal occurs (due to registration sensing),
the profile switches from velocity to position control. The move ends by continuing motion a
pre-defined distance past the interrupt point (such as a drill hole location). The deceleration
ramp is applied in advance of the target position.
Velocity (Hz) Step Trapezoidal Profile

1000
4 Target = 7000 pulses 5
800 positioning velocity = 1000 Hz

3 6
600
2 7
400
1 8
200
100 200 300 400 5000 400 300 200 100
Time
Acceleration Deceleration
0 pulses 1000 pulses 6000 pulses 7000 pulses

Define steps 1 through 4 for gradual acceleration to the target velocity and define steps 5
through 8 for gradual deceleration from the target velocity. This type of profile is appropriate
for applications involving large stepper motors and/or large inertia loads. It can, however, be
used to provide gradual ramping in applications involving smaller motors and loads.
Velocity Control Defined
The Velocity Control defines only the direction and speed of motion. There is no target
position specified, so the move can be of indefinite length. Only the first velocity value needs
to be defined. The remaining velocity values can be created while motion is in progress.
Arrows in the profile shown indicate velocity changes.

Velocity Control Profile


Velocity (Hz)

800

600

400

200

Time

3–46 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 3: High-speed Input and Pulse Output Features

Automatic Trapezoidal Profile Operation


Starting velocities must be within the range of 40 pps to 1k pps. The remainder of the profile
parameters are in the profile parameter table.

Automatic Trapezoidal Profile


Velocity
Target Velocity

Accel Decel
Starting
Velocity Ending velocity (optional)

Time
Start position Target position
Start
External Interrupt Y0
(Optional) X1
SP104
Profile Complete

The time line of signal traces below the profile indicates the order of events. The HSIO uses
logical output Y0 as the Start input to the HSIO, which starts the profile. Immediately the
HSIO turns off the Profile Complete signal (SP104), so the ladder program can monitor the
progress of the move. Typically a ladder program will monitor this bit so it knows when to
initiate the next profile move.
You can also use the external interrupt (X1). Once the external interrupt feature is selected for
the profile, the DL06 keeps outputting the pulses until X1 turns on. Then, the DL06 outputs
the pulses defined as the target position.
If you are familiar with motion control, you’ll notice that we do not have to specify the
direction of the move. The HSIO function examines the target position relative to the current
position, and automatically outputs the correct direction information to the motor drive.
Notice that the motion accelerates immediately to the starting velocity. This segment is useful
in stepper systems so we can jump past low speed areas when low-torque problems or a
resonant point in the motor might cause a stall. (When a stepper motor stalls, we have lost
the position of the load in open-loop positioning systems). However, it is preferable not to
make the starting velocity too large, because the stepper motor will also “slip” some pulses due
to the inertia of the system. You can also set up the ending velocity for the same reason.
When you need to change the current position value, use logical Y1 output coil to load a new
value into the HSIO counter. If the ladder program loads a new value in CT174/CT175
(V1174/V1175), then energizing Y1 will copy that value into the HSIO circuit counter. This
must occur before the profile begins, because the HSIO ignores Y1 during motion.

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 3–47
Chapter 3: High-speed Input and Pulse Output Features

Program Example 1: Automatic Trapezoidal Profile without External Interrupt


The Automatic Trapezoidal Profile we want to perform is drawn and labeled in the following
figure. It consists of a non-zero starting velocity, and moderate target velocity.
Trapezoidal Profile
Velocity
Target V elocity = 1 kHz

Accel = 2 sec Decel = 4 sec

Starting In this example the


Velocity = 40Hz ending velocity is not
selected.

Time
Start position Target position = 5000

The following program will realize the profile drawn above, when executed. The beginning of
the program contains all the necessary setup parameters for Pulse Output Mode 30. We only
have to do this once in the program, so we use first-scan contact SP0 to trigger the setup.
DirectSOFT32

SP0 Load constant K30 into the accumulator. This selects


LD Mode 30 as the HSIO mode.
K30

Mode 30 Output the constant to V7633, the location of the HSIO


OUT Mode select register.
V7633
Load the octal address of the beginning of the Profile
Locate Parameter LDA Parameter Table. The LDA instruction converts this to a
Table (optional) O3630 hex number in the accumulator.
Output this address to V7630, the location of the pointer
OUT to the Profile Parameter Table.
V7630
Load the constant K103 which is required to select
Select Pulse / LD pulse and direction for physical Y0 and Y1 functions,
Direction K103 respectively (use K3 if your application needs CW
and CCW).
OUT Output this constant to V7632, configuring the pulse
V7632 output type.

Filtered Inputs LD Load the constant K1006 which is required to select


K1006 filtered inputs with a 10 mS filter time constant.

OUT Output this constant to V7634, configuring X0.


V7634

OUT Output this constant to V7635, configuring X1.


V7635

OUT Output this constant to V7636, configuring X2.


V7636

OUT Output this constant to V7637, configuring X3.


V7637
Continued on next page.

3–48 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 3: High-speed Input and Pulse Output Features

Continued from previous page.

SP0 Load the constant K4100 which is required to select


LD Automatic Trapzoidal Profile, absolute positioning,
K4100
without interrupt and a target velocity of 1 kHz.
Profile / Target Output this constant to V3630, the location of the Profile
OUT Select / Starting Velocity setup register .
Velocity V3630
Load the constant K5000 which selects a target
Target Position LDD position of 5000 pulses. Don’t forget to use double
K5000 word size (8-digit BCD position value).
Output this constant to V3631 and V3632, the location of
OUTD the Target Position double-word register .
V3631

Starting Velocity Load the constant K4 which is required to select a


LD starting velocity of 40 Hz (4 x 10 pps).
K4

Output this constant to V3633, the location of the starting


OUT velocity parameter register .
V3633
Load the constant K20 which is required to select an
Acceleration LD acceleration time of 2 seconds (20 x 100 mS).
K20

Output this constant to V3634, the location of the


OUT acceleration parameter register .
V3634
Load the constant K40 which is required to select a
Deceleration LD deceleration time of 4 seconds (40 x 100 mS).
K40

Output this constant to V3635, the location of the


OUT deceleration parameter register .
V3635
Start Profile
X3 Y0 We use a spare filtered input to allow the operator
OUT to start the profile. When the operator turns X3 ON,
then OFF , logical output Y0 starts the profile.
Profile Complete
SP 104 Y2 SP104 is the logical output of the HSIO to indicate
OUT the move is complete. W e use Y2 to energize an
annunciator that the profile has finished.

Preload Position Value


At any time you can write (preload) a new position into the current position value. This is
often done after a home search (see the registration example programs).

C0 Load the constant K1000 as the new current position


LDD value.
K1000

Profile / Target Output this constant to V1174/V1175 (CTA174/CTA175). the


OUTD location of the current position value.
Velocity V1174
Y1
PD Turn on Y1 for 1 scan. The off-to-on transition
causes the HSIO to preload the current position
with the value in V1174/V1175.

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 3–49
Chapter 3: High-speed Input and Pulse Output Features

Program Example 2: Automatic Trapezoidal Profile with External Interrupt


Registration Applications:
1. In a typical application shown to the right,
product material in work moves past a work tool
such as a drill. Registration marks on the scrap Finished part area Scrap
Area
area of the work-piece allow a machine tool to
register its position relative to the rectangle, to
drill properly.
direction of motion
2. In other examples of registration, the work Registration marks

piece is stationary and the tool moves. A drill bit


may approach the surface of a part in work,
preparing to drill a hole of precise depth.
However, the drill bit length gradually decreases Detect contact
due to tool wear. A method to overcome this is to
detect the moment of contact with the part surface on each drill, moving the bit into the part
a constant distance after contact. Detect contact Finished part area Scrap Area Registration
marks direction of motion.
3. The home search move allows a motion system to calibrate its position on startup. In this
case, the positioning system makes an indefinite move and waits for the load to pass by a
home limit switch. This creates an interrupt at the moment when the load is in a known
position. We then stop motion and preload the position value with a number which equates
to the physical “home position”.
When an interrupt pulse occurs on physical input X1, the starting position is declared to be
the present count (current load position). The velocity control switches to position control,
moving the load to the target position. Note that the minimum starting velocity is 40 pps.
This instantaneous velocity accommodates stepper motors that can stall at low speeds.

Velocity
Registration Profile
Target Velocity

Accel Decel
Starting
Velocity

Start Target Time


position position
Start Y0

External Interrupt X1

Profile Complete SP104

The time line of signal traces below the profile indicates the order of events. The CPU uses
logical output Y0 to start the profile. Immediately the HSIO turns off the Profile Complete
signal (SP104), so the ladder program can monitor the move’s completion by sensing the
signal’s on state.

3–50 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 3: High-speed Input and Pulse Output Features

The Automatic Trapezoidal profile we want to perform is drawn and labeled in the following
figure. It consists of a non-zero starting velocity, and moderate target velocity.

Automatic Trapezoidal Profile


Velocity
Target V elocity = 1 kHz

Accel = 2 sec Decel = 4 sec


Ending Velocity =
Starting 80 Hz
Velocity = 40 Hz

Time
Start position Target position = 5000

The following program will realize the profile drawn above, when executed. The first program
rung contains all the necessary setup parameters. We only have to do this once in the
program, so we use first-scan contact SP0 to trigger the setup.
DirectSOFT32
SP0 Load constant K30 into the accumulator. This selects
LD Mode 30 as the HSIO mode.
K30

Mode 30 Output this constant to V7633, the location of the HSIO


OUT Mode select register.
V7633
Load the octal address of the beginning of the Profile
Locate Parameter LDA Parameter Table. The LDA instruction converts this to a
Table (optional) O3630 hex number in the accumulator.
Output this address to V7630, the location of the pointer
OUT to the Profile Parameter Table.
V7630
Load the constant K103 which is required to select
Select Pulse / LD pulse and direction for physical Y0 and Y1 functions,
Direction K103 respectively (Use K3 if your application requires CCW and CW).
Output this constant to V7637, configuring the pulse
OUT output type.
V7632
Load the constant K2006 which is required to select X0 and X1
Filtered Inputs LD as a filtered input with a 20 mS filter time constant.
K2006

Output this constant to V7634, configuring X0.


OUT
V7634
Output this constant to V7635, configuring X1.
OUT
V7635
Load the constant K1006 which is required to select X2 and X3 as a
LD filtered input with a 10 ms filter time constant.
K1006
Output this constant to V7636, configuring X2.
OUT
V7636

Output this constant to V7637, configuring X3.


OUT
V7637

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 3–51
Chapter 3: High-speed Input and Pulse Output Features

Continued from previous page

SP0 Load the constant KF100 which is required to select


LD Automatic Trapezoidal Profile, relative positioning, with interrupt a
KF100 velocity of 1 kHz (Fxxx times 10 pps).

Profile / Target Output this constant to V3630, the location of the Profile
OUT Select / Starting Velocity setup register.
Velocity V3630
Load the constant K5000 which selects a target
Target Position LDD position of 5000 pulses. Don’t forget to use double
K5000 word size (8-digit BCD position value).
Output this constant to V3631 and V3632, the location of
OUTD the Target Position double-word register.
V3631

Starting Velocity Load the constant K4 which is required to select a


LD starting velocity of 40 Hz (4 x 10 pps).
K4

Output this constant to V3633, the location of the starting


OUT velocity parameter register.
V3633
Load the constant K20 which is required to select an
Acceleration LD acceleration time of 2 seconds (20 x 100 mS).
K20

Output this constant to V3634, the location of the


OUT acceleration parameter register.
V3634
Load the constant K40 which is required to select a
Deceleration LD deceleration time of 4 seconds (40 x 100 mS).
K40

Output this constant to V3635, the location of the


OUT deceleration parameter register.
V3635

Ending Velocity Load the constant K8 which is required to select an


LD ending velocity of 80Hz (8 x 10 pps).
K8

Output this constant to V3637, the location of the


OUT deceleration parameter register.
Start Profile V3637

X3 Y0
SET We use an input to allow the operator to start the
profile. X3 is a momentary Start switch. When the
operator turns X3 ON, logical output Y0 starts the
Profile Complete profile.
SP104 Y2
OUT SP104 is the logical output of the HSIO to indicate
the move is complete. W e use Y2 to energize an
annunciator that the profile has finished. This won’t
C0
occur until after the interrupt from X1 has occurred
PD and the profile is complete.

C0 Y0
RST

The profile will begin when the start input (X3) is given. Then the motion begins an
indefinite move, which lasts until an external interrupt on X1 occurs. Then the motion
continues on for 5000 more pulses before stopping.

3–52 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 3: High-speed Input and Pulse Output Features

Program Example 3: Automatic Trapezoidal Profile with Home Search


One of the more challenging aspects of motion control is the establishment of actual position
at powerup. This is especially true for open-loop systems which do not have a position
feedback device. However, a simple limit switch located at an exact location on the
positioning mechanism can provide “position feedback” at one point. For most stepper
control systems, this method is a good and economical solution.
Load

Positioning System Motor

Limit Switches CCW limit (X0) Home limit (X1) CW limit (X2)

Motion
Numbering System -3000 -2000 -1000 0 1000 2000 3000
In the drawing above, the load moves left or right depending on the CW/CCW direction of
motor rotation. The PLC ladder program senses the CW and CCW limit switches to stop the
motor, before the load moves out-of-bounds and damages the machine. The home limit
switch is used at powerup to establish the actual position. The numbering system is arbitrary,
depending on a machine’s engineering units.
At powerup, we do not know whether the load is located to the left or to the right of the
home limit switch. Therefore, we will initiate a home search profile, using the registration
mode. The home limit switch is wired to X1, causing the interrupt. We choose an arbitrary
initial search direction, moving in the CW (left-to-right) direction.
• If the home limit switch closes first, then we stop and initialize the position (this value is typically
“0”, but it may be different if preferred).
• However, if the CW limit switch closes first, we must reverse the motor and move until the home
limit switch closes, stopping just past it.
In the latter case, we repeat the first move, because we always need to make the final approach
to the home limit switch from the same direction, so that the final physical position is the same
in either case!
Direct SOFT32 Filtered Inputs
SP0 Selects Mode 30 as The constant K2006
LD the HSIO mode. LD selects a 20 mS filter
K30 K2006 time constant.

Mode 30 Output this constant to


OUT OUT V7634, configuring X0.
V7633 V7634

Locate Configure the address Output this constant to


LDA OUT V7635, configuring X1.
Parameter O3630 of the parameter table. V7635
Table (optional)
The constant K1006
OUT LD selects a 10 mS filter
V7630 K1006 time constant.
Select Pulse / Configure the Y0 and Y1 Output this constant to
LD pulse outputs for pulse OUT V7630, configuring X2.
Direction K103 and direction, respectively.
V7636

Output this constant to


OUT OUT V7637, configuring X3.
V7632 V7637

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 3–53
Chapter 3: High-speed Input and Pulse Output Features

Profile / Target Velocity


C1 Add a timer to
SP0 Select Automatic Trape- TMR
LD zoidal Profile, relative create a slight
KD100 T0 delay before
positioning, and a target K5 reversing motor.
velocity of 1000 pps
OUT (Dxxx times 10 pps). T0 C2
V3630
SET CCW delay done.
Starting Velocity The constant K4 selects a
LD starting velocity of 40 Hz Y0
K4
(4 x 10 pps). SET Start profile again.
CCW past home
OUT C2 C3 X1 C3
V3633
SET CCW past home
The constant K20 selects
Acceleration LD an acceleration time of 2 Load a small
K20 seconds (20 x 100 mS). LDD positive position
K50 count (go CW).
OUT
V3634 OUTD
V3631
Deceleration
OUT We’ll choose the same for
V3635 the deceleration value. Home Limit found, CW search direction
C3 X1 Y0
X7 C10
Start the home search RST Turn off Start Profile.
SET
when X7 turns on.
C4
Go CW back to
Search in CW direction SET home.
C10 C0 The constant K50 selects C4 Add a timer to
LDD a target position of 50 TMR
K50 create a slight
pulses (CW direction). T1 delay before
K5 reversing motor.
Target Position OUTD
V3631 T1 C5
Turn on Start Profile, SET CW delay done.
Y0 searching for either the
home limit or the CW limit
SET (depends on our starting Y0
position). SET Start profile again.
C0
SET Set C0 to indicate the CW
home search has begun. Home Limit found, CW search direction
CW Limit found C0 C1 C3 X1 Y0
C0 C1 X2 Y0 RST Turn off Start Profile.
RST Turn off Start Profile.
C5 Load the constant
LDD
The constant –K200 K0 K0 for our initialized
LDD selects a target position.
K80000200 position of –200
pulses, which is in OUTD Output this constant
the CCW direction. V1174 to V1174/V1175.
OUTD
V3631

C1
The CW limit has
SET been reached.

The home search profile will execute specific parts of the program, based on the order of
detection of the limit switches. Ladder logic sets C0 to initiate a home search in the CW
direction. If the CW limit is encountered, the program searches for home in the CCW
direction, passes it slightly, and does the final CW search for home. After reaching home, the
last ladder rung preloads the current position to “0”.

3–54 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 3: High-speed Input and Pulse Output Features

Step Trapezoidal Profile Operation


With this step trapezoidal profile, you can control the acceleration and deceleration slopes as
you want.

Velocity (Hz) Step Trapezoidal Profile

1000 Step Step


4 5
800 Accel Step Step Decel
3 6
600 Step Step
2 7
400 Step Step
Target position
1 8
200

Time

Start position
Start
External Interrupt Y0
(Optional) X1
SP104
Profile Complete

The time line of signal traces below the profile indicates the order of events. The HSIO uses
logical output Y0 as the start input to the HSIO, which starts the profile. Immediately, the
HSIO turns off the Profile Complete signal (SP104), so the ladder program can monitor the
progress of the move. Typically, a ladder program will monitor this bit so it knows when to
initiate the next profile move. You can also use the external interrupt (X1). Once the external
interrupt feature selected for the profile, the DL06 keeps outputting the pulses until X1 turns
on. Then the DL06 outputs the pulses defined as the target position.
Each acceleration and deceleration slope consists of 4 steps. You can set up the velocity and
the distance (number of pulses) of each step. You don’t need to use all 4 steps of each slope.
For instance, if you want to use only 2 steps, just set zero to the velocity and the distance of
the 3rd and 4th step. If the acceleration slope and the deceleration slope are identical, you can
just put zero into all the velocity and the distance parameters for the deceleration slope.

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 3–55
Chapter 3: High-speed Input and Pulse Output Features

Program Example 4: Step Trapezoidal Profile


Program
Example SP0 Load the constant K30 which is required to select
LD Mode 30 as the HSIO mode.
K30

Mode 30 Output this constant to V7633, the location of the


OUT HSIO mode selection register. .
V7633
Load the octal address O3630 of the beginning of
Locate Parameter LDA the Profile Parameter Table.
O3630
Table
Output this constant to V7630, the location of the
OUT pointer to the Profile Parameter Table.
V7630

Load the constant K3 which is required to select CW


LD and CCW for physical Y0 and Y1 functions.
Select CW/CCW K3

Output this constant to V7632, configuring pulse


OUT output type.
V7632

Load the constant K1006 which is required to


LD select X0 as a filtered input with a 20ms filter time
Filtered Inputs K1006
constant.

OUT Output this constant to V3634, configuring X0.


V3634
Load the constant K1006 which is required to
LD select X1 as a filtered input with a 20ms filter time
K1006 constant.

OUT Output this constant to V7635, configuring X1.


V7635

Load the constant K1006 which is required to


LD select X2 as a filtered input with a 20ms filter time
K1006
constant.

OUT
V7636 Output this constant to V7636, configuring X2.

Load the constant K1006 which is required to


LD select X3 as a filtered input with a 20ms filter time
K1006
constant.

OUT Output this constant to V7637, configuring X3.


V7637
Load the constant K8100 which is required to select
LD trapezoidal profile, relative positioning, without
Profile/Target K8100 interrupt and a target velocity of 1kHz.
Velocity
Output this constant to V3630, the location of the
OUT profile select/starting velocity setup register.
V3630
Load the constant K30000 which selects a target
Target Position LDD position of 30000 pulses. Don't forget to use double
K30000 word size (8-digit BCD position value).
Output this constant to V3631 and V3632, the location of the
OUTD target position double-word register.
V3631

Continued on next page

3–56 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 3: High-speed Input and Pulse Output Features

Continued from previous page

Program
Example SP0 Load the constant K20 which is required to select
LD the step 1 acceleration velocity of 200 Hz.
K20
Step 1 Acceleration Output this constant to V3633, the location of the
OUT step 1 acceleration velocity setup register.
V3633
Load the constant K100 which selects the step 1
LD distance of 100 pulses.
Step 1 Distance K100

Output this constant to V3634, the location of


OUT the step 1 distance.
V3634
Load the constant K40 which is required to select
Step 2 Acceleration LD the step 2 acceleration velocity of 400 Hz.
K40

Output this constant to V3635, the location of the


OUT step 2 acceleration velocity setup register.
V3635
Load the constant K200 which selects the step 2
Step 2 Distance LD distance of 200 pulses.
K200

Output this constant to V3636, the location of


OUT the step 2 distance.
V3636
Load the constant K60 which is required to select
Step 3 Acceleration LD the step 3 acceleration velocity of 600 Hz.
K60

Output this constant to V3637, the location of the


OUT step 3 acceleration velocity setup register.
V3637
Load the constant K300 which selects the step 3
LD distance of 300 pulses.
Step 3 Distance K300

Output this constant to V3640, the location of


OUT the step 3 distance.
V3640
Load the constant K80 which is required to select
LD the step 4 acceleration velocity of 800 Hz.
Step 4 Acceleration K80

Output this constant to V3641, the location of the


OUT step 4 acceleration velocity setup register.
V3641

Load the constant K400 which selects the step 4


Step 4 Distance LD
K400 distance of 100 pulses.

Output this constant to V3642, the location of


OUT the step 4 distance.
V3642
Load the constant K80 which is required to select
LD the step 5 deceleration velocity of 800 Hz.
Step 5 Deceleration K80

Output this constant to V3643 which is required to select


OUT the step 5 deceleration velocity of 800 Hz.
V3643

Continued on next page

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 3–57
Chapter 3: High-speed Input and Pulse Output Features
Continued from previous page

Program
Example SP0 Load the constant K400 which selects the step 5
LD distance of 400 pulses.
K400
Step 5 Distance Output this constant to V3644, the location of
OUT the step 5 distance.
V3644
Load the constant K60 which is required to select
LD the step 6 deceleration velocity of 600 Hz.
Step 6 Deceleration K60

Output this constant to V3645, which is required to select


OUT the step 6 deceleration velocity of 600 Hz.
V3645
Load the constant K200 which selects the step 6
Step 6 Distance LD distance of 300 pulses.
K300

Output this constant to V3646, the location of


OUT the step 6 distance.
V3646
Load the constant K40 which is required to select
LD the step 6 deceleration velocity of 400 Hz.
Step 7 Deceleration K40

Output this constant to V3647, which is required to select


OUT the step 6 deceleration velocity of 400 Hz.
V3647

LD Load the constant K200 which selects the step 7


Step 7 Distance K200 distance of 200 pulses.

Output this constant to V3650, the location of


OUT the step 7 distance.
V3650

Load the constant K20 which is required to select


LD
Step 8 Deceleration K20 the step 8 deceleration velocity of 200 Hz.

Output this constant to V3651, which is required to select


OUT
V3651 the step 8 deceleration velocity of 200 Hz.

Load the constant K10 which selects the step 8


Step 8 Distance LD
K100 distance of 100 pulses.

Output this constant to V3652, the location of


OUT the step 8 distance.
V3652
Start Profile
X3 Y0 We use a spare filtered input to allow the operator
OUT to start the profile. When the operator turns X3 ON,
then OFF, logical output Y0 starts the profile.

X0 Load
LDD value.
K0

Profile / Target Output this constant to V1174/V1175 (CT174/CT175), the


OUTD location of the current position value.
Velocity V1174
Y1
PD Turn on Y1 for 1 scan. The off-to-on transition
causes the HSIO to preload the current position
with the value in V1174/V1175.
END

3–58 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 3: High-speed Input and Pulse Output Features

Velocity Profile Operation


The velocity profile is best suited for applications which involve motion but do not require
moves to specific points. Conveyor speed control is a typical example.

Velocity

Time

Start Y0

Profile
Complete SP104

The time line of signal traces below the profile indicates the order of events. Assuming the
velocity is set greater than zero, motion begins when the Start input (Y0) energizes. Since
there is no end position target, the profile is considered in progress as long as the Start input
remains active. The profile complete logical input to ladder logic (X0) correlates directly to
the Start input status when velocity profiles are in use.
While the Start input is active, the ladder program can command a velocity change by writing
a new value to the velocity register (V3633 by default). The full speed range of 40 Hz to 10
kHz is available. Notice from the drawing that there are no acceleration or deceleration ramps
between velocity updates. This is how velocity profiling works with the HSIO. However, the
ladder program can command more gradual velocity changes by incrementing or
decrementing the velocity value more slowly. A counter or timer can be useful in creating
your own acceleration/deceleration ramps. Unless the load must do a very complex move, it is
easier to let the HSIO function generate the accel/decel ramps by selecting the trapezoidal or
registration profiles instead.
Unlike the trapezoidal and registration profiles, you must specify the desired direction of
travel with velocity profiles. Load the direction select register (V3631/V3632 by default) with
8000 0000 hex for CCW direction, or 0 for CW direction.

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 3–59
Chapter 3: High-speed Input and Pulse Output Features

Program Example 5: Velocity Profile


The velocity profile we want to perform is drawn and labeled in the following figure. Each
velocity segment is of indefinite length. The velocity only changes when ladder logic (or other
device writing to V-memory) updates the velocity parameter.
Velocity Profile
Velocity

Time

The following program uses dedicated discrete inputs to load in new velocity values. This
program is fun to try, because you can create an infinite variety of profiles with just two or
three input switches. The intent is to turn on only one of X2, X3, or X4 at a time. The
beginning of the program contains all the necessary setup parameters for Pulse Output Mode
30. We only have to do this once in the program, so we use first-scan contact SP0 to trigger
the setup.
DirectSOFT32

SP0 Load constant K30 into the accumulator. This selects


LD Mode 30 as the HSIO mode.
K30

Mode 30 Output this constant to V7633, the location of the HSIO


OUT Mode select register.
V7633
Load the octal address of the beginning of the Profile
Locate Parameter LDA Parameter Table. The LDA instruction converts this to
Table (optional) O3630 hex number in the accumulator.
Output this address to V7630, the location of the pointer
OUT to the Profile Parameter Table.
V7630
Load the constant K103 which is required to select
Select Pulse / LD pulse and direction for physical Y0 and Y1 functions,
Direction K103 respectively (Use K3 if your application needs CW and CCW).
Output this constant to V7632, configuring the pulse
OUT output type.
V7632
Load the constant K1006 which is required to select
Filtered Inputs LD filtered inputs with a 10 mS filter time constant.
K1006

Output this constant to V7634, configuring X0.


OUT
V7634

Output this constant to V7635, configuring X1.


OUT
V7635

Output this constant to V7636, configuring X2.


OUT
V7636

Output this constant to V7637, configuring X3.


OUT
V7637

3–60 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 3: High-speed Input and Pulse Output Features

Program Example Cont’d

SP0 Load the constant K2000 which is required to select


LD Velocity Profile. This data word contains no velocity
K2000 information in the case of velocity mode.

Profile / Target Output this constant to V3630, the location of the Profile
OUT Select setup register .
Velocity V3630
Load the constant K80000000 which selects CCW
Select Direction LDD direction for Velocity Profiles. Don’t forget to use double
K80000000 word size (8-digit BCD position value).
Output this constant to V3631 and V3632, the location of
OUTD the Target Position double-word register .
V3631

Set Velocity Load the constant K10 which is required to select an


LD initial velocity of 100 pps (uses x10 multiplier).
K10

Output this constant to V3633, the location of the velocity


OUT parameter register . After the program is running, we can
V3633 write here again, using discrete input switches.

Start Profile
X1 Y0
OUT We use a spare filtered input to allow the operator
to start the profile. When the operator turns X1 ON
and leaves it on, logical output Y0 starts the profile.
Go Slow
X2 Load the constant K50 which is required to select a
LD velocity of 500 pps when the operator closes X2.
K50

OUT Output this constant to V3633, the location of the velocity


V3633 parameter register . The speed will change immediately .
Go Moderately
X3 Load the constant K200 which is required to select a
LD velocity of 2000 pps when the operator closes X3.
K200

OUT Output this constant to V3633, the location of the velocity


V3633 parameter register . The speed will change immediately .
Go Fast
X4 Load the constant K600 which is required to select a
LD velocity of 6000 pps when the operator closes X4.
K600

OUT Output this constant to V3633, the location of the velocity


V3633 parameter register . The speed will change immediately .

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 3–61
Chapter 3: High-speed Input and Pulse Output Features

Automatic Trapezoidal Profile Error Codes


The Profile Parameter Table starting at V3630 (default location) defines the profile. Certain
numbers will result in an error when the HSIO attempts to use the parameters to execute a
move profile. When an error occurs, the HSIO writes an error code in V3636.
Most errors can be corrected by rechecking the Profile Parameter Table values. The error is
automatically cleared at powerup and at Program-to-Run Mode transitions.
Error Code Error Description
0000 No error
0010 Requested profile type code is invalid (must use 4 to 6 or C to F)
0020 Target Velocity is not in BCD
0021 Target Velocity is specified to be less than 40 pps
0022 Target Velocity is specified to be greater than 10,000 pps
0030 Target Position value is not in BCD
0032 Direction Select is not 0 or 80000000.
0040 Starting Velocity is not in BCD
0041 Starting Velocity is specified to be less than 40 pps
0042 Starting Velocity is specified to be greater than 1,000 pps
0050 Acceleration Time is not in BCD
0051 Acceleration Time is zero
0052 Acceleration Time is greater than 10 seconds
0060 Deceleration Time is not in BCD
0061 Deceleration Time is zero
0062 Deceleration Time is greater than 10 seconds

Troubleshooting Guide for Mode 30


If you’re having trouble with Mode 30 operation, please study the following symptoms and
possible causes. The most common problems are listed below:
Symptom: The stepper motor does not rotate.
Possible causes:
1. Configuration – Verify that the HSIO actually generates pulses on outputs Y0 and Y1. Watch the
status LEDs for Y0 and Y1 when you start a motion profile. If the LEDs flicker on and off or are
steadily on, the configuration is probably correct.
2. Programming error – If there are no pulses on Y0 or Y1 you may have a programming error.
Check the contents of V3636 for an error code that may be generated when the PLC attempts to
do the move profile. Error code descriptions are given above.
3. Check target value – The profile will not pulse if the count value is equal to the target value (ex.
count =0, target=0)

3–62 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 3: High-speed Input and Pulse Output Features

4. Wiring – Verify the wiring to the stepper motor is correct. Remember the signal ground
connection from the PLC to the motion system is required.
5. Motion system – Verify that the drive is powered and enabled. To verify the motion system is
working, you can use Mode 60 operation (normal PLC inputs/outputs) as shown in the test
program below. With it, you can manually control Y0 and Y1 with X0 and X1, respectively. Using
an input simulator is ideal for this type of manual debugging. With the switches you can single-
step the motor in either direction. If the motor will not move with this simple control, Mode 30
operation will not be possible until the problem with the motor drive system or wiring is corrected.
DirectSOFT32
SP0 Load constant K60 into the accumulator. This
LD selects Mode 60 as the HSIO mode.
K60

Mode 60 Output the constant to V7633, the location of the


OUT HSIO Mode select register.
V7633

Filtered Inputs Load the constant K1006 which is required to configure


LD filtered inputs with a time constant of 10 mS.
K1006

Output this constant to V7634, configuring X0.


OUT
V7634

Output this constant to V7635, configuring X1.


OUT
V7635

Output this constant to V7636, configuring X2.


OUT
V7636

Output this constant to V7637, configuring X3.


OUT
V7637

X0 Y0
OUT Use a switch on X0 input to manually control output Y0.

X1 Y1
OUT Use a switch on X1 input to manually control output Y1.

END END coil marks the end of the main program..

6. Memory Error – HSIO configuration parameters are stored in the CPU system memory.
Corrupted data in this memory area can sometimes interfere with proper HSIO operation. If all
other corrective actions fail, initializing the scratchpad memory may solve the problem. With
DirectSOFT32, select the PLC menu, then Setup, then Initialize Scratchpad.
Symptom: The motor turns in the wrong direction.
Possible causes:
1. Wiring – If you have selected CW and CCW type operation, just swap the wires on Y0 and Y1
outputs.
2. Direction control – If you have selected Pulse and Direction type operation, just change the
direction bit to the opposite state.

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 3–63
Chapter 3: High-speed Input and Pulse Output Features

Mode 40: High-Speed Interrupts


Purpose
The HSIO Mode 40 provides a high-speed interrupt to the ladder program. This capability is
provided for your choice of the following application scenarios:
• External events need to trigger an interrupt subroutine in the CPU. Using immediate I/O
instructions in the subroutine is typical.
• An interrupt routine needs to occur on a timed basis which is different from the CPU scan time
(either faster or slower). The timed interrupt is programmable, from 5 to 999 mS.
Functional Block Diagram
The HSIO circuit creates the high-speed interrupt to the CPU. The following diagram shows
the external interrupt option, which uses X0. In this configuration X1, X2 and X3 are
external interrupts or normal filtered inputs.

DL06 Output Circuit


PLC
Y0, Y1 Y2 -Y17

HSIO I/O data CPU


Interrupt Interrupt
Interrupt V-memory
or Mode select
Filter V7633 0040

X0 X1, X2, X3 X4 - X23

Input Circuit

Alternately, you may configure the HSIO circuit to generate interrupts based on a timer, as
shown below. In this configuration, inputs X0 is a filtered input.

DL06 Output Circuit


PLC
Y0, Y1 Y2 - Y17
HSIO
I/O data CPU
Interrupt
Timer Interrupt
Interrupt V-memory
or Mode select
Filter Filter V7633 0040

X0 X1, X2, X3 X4 - X23

Input Circuit

3–64 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 3: High-speed Input and Pulse Output Features

Setup for Mode 40


Recall that V7633 is the HSIO Mode Select register. Refer to the diagram below. Use BCD
40 in the lower byte of V7633 to select the High-Speed Counter Mode.
Memory Location V7633
Bits 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0

0 0 4 0

Miscellaneous Setup (BCD) HSIO Mode Setup (BCD)


00 = Not Used (default) 40 = High-Speed Interrupts
10 = Battery Enabled
20 = Power-up in RUN
30 = Battery Enabled and
Power-up in RUN

Choose the most convenient method of programming V7633 from the following:
• Include load and out instructions in your ladder program
• DirectSOFT32’s memory editor
• Use the Handheld Programmer D2–HPP
We recommend using the first method above so that the HSIO setup becomes an integral
part of your application program. An example program later in this section shows how to do
this.
Interrupts and the Ladder Program
Refer to the drawing below. The source of the interrupt may be external (X0 - X3). An
internal timer can be used instead of X0 as the interrupt source. The setup parameter in
V7634 serves a dual purpose:
• It selects between the two interrupt sources (external or internal timer). The timed interrupt can
only be used with X0.
• In the case of the timer interrupt, it programs the interrupt timebase between 5 and 999 mS.
The resulting interrupt uses label INT 0, 1, 2 or 3 in the ladder program. Be sure to include
the Enable Interrupt (ENI) instruction at the beginning of your program. Otherwise, the
interrupt routine will not be executed.
CPU Scan
Input
Update

Ladder INT
X0, External Interrupt Program
Execution
Interrupt
Routine
TIMER Current Program
Instruction
Interrupt source / IRT
Time select Input
Update
V7634 xxx4

X1-X3, External Interrupts

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 3–65
Chapter 3: High-speed Input and Pulse Output Features

External Interrupt Timing Parameters


External interrupt signals must meet certain timing criteria to guarantee an interrupt will
result. Refer to the timing diagram below. The minimum pulse width is 0.1 mS. There must
be some delay before the next interrupt pulse arrives, such that the interrupt period cannot be
smaller than 0.5 mS.
0.5 mS minimum

0.1 mS minimum
External
Interrupt X0

Time

Timed Interrupt Parameters


When the timed interrupt is selected, the HSIO generates the interrupt to ladder logic. There
is no interrupt “pulse width” in this case, but the interrupt period can be adjusted from 5 to
999 mS.
5 mS to 999 mS
Timed
Interrupt
Time

X Input / Timed INT Configuration


The configurable discrete input options for High-Speed Interrupt Mode are listed in the table
below. Input X0 is the external interrupt when “0004” is in V7634. If you need a timed interrupt
instead, then V7634 contains the interrupt time period, and input X0 becomes a filtered input (uses
X1’s filter time constant by default). Inputs X0, X1, X2, and X3, can be filtered inputs, having
individual configuration registers and filter time constants, interrupt inputs or counter inputs.
Input Configuration Register Function Hex Code Required
External Interrupt 0004 (default)
X0 V7634
Timed Interrupt xxx4, xxx = INT timebase 5 - 999 ms (BCD)
Interrupt 0004 (default)
X1 V7635 Pulse Input 0005
Filtered Input xx06 (xx = filter time) 0 - 99 ms (BCD)
Interrupt 0004 (default)
X2 V7636 Pulse Input 0005
Filtered Input xx06 (xx = filter time) 0 - 99 ms (BCD)
Interrupt 0004 (default)
X3 V7637 Pulse Input 0005
Filtered Input xx06 (xx = filter time) 0 - 99 ms (BCD)

If you are only using one of the points for an interrupt, you may want to select a different main
mode (i.e. 10, 20, 30, 50, or 60); and then, just configure one of the terminals not taken as an
interrupt. For example, you might want to configure your CPU for the UP counter mode (Mode
10) and use point 03 for a high speed interrupt. You should read the individual sections for any
alternate mode you might choose. There you will find instructions on how to select a high speed
interrupt as a secondary feature.

3–66 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 3: High-speed Input and Pulse Output Features

Program Example 1: External Interrupt


The following program selects Mode 40, then selects the external interrupt option for inputs
X0 and X1. Inputs X2 and X3 are configured as filtered inputs with a 10 mS time constant.
The program is otherwise generic, and may be adapted to your application.
Direct SOFT32
SP0 Load constant K40 into the accumulator . This
LD selects Mode 40 as the HSIO mode.
K40

Mode 40 Output this constant to V7633, the location of the


OUT HSIO Mode select register .
V7633

External Interrupt Load the constant K4 which is required to select the


LD external interrupt option. X0 is the interrupt input.
K4

Output this constant to V7634, configuring the


OUT external interrupt option for X0.
V7634

Output this constant to V7635, configuring the


OUT external interrupt option for X1.
V7635

Filtered Inputs Load the constant K1006 which is required to select


LD filtered inputs with a 10 mS filter time constant.
K1006

Output this constant to V7636, configuring X2.


OUT
V7636

Output this constant to V7637, configuring X3.


OUT
V7637
Y5
RST Reset output Y5.

Y6
RST Reset output Y6.

INT Enable ENI Enable Interrupts at the beginning of the program.

Insert Main Program rungs here for your application.

Main Program
END END coil marks the end of the main program..

INT O0 The INT label marks the beginning of the interrupt


service routine program.

Interrupt Routine Insert interrupt service routine rungs here for your
application.
SP1 Y5
SETI Set output Y5

IRT Return to the main ladder program.

INT O1

Interrupt Routine Insert interrupt service routine rungs here for your
application.
SP1 Y6
SETI Set output Y6.

IRT Return to the main ladder program.

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 3–67
Chapter 3: High-speed Input and Pulse Output Features

Program Example 2: Timed Interrupt


The following program selects Mode 40, then selects the timed interrupt option, with an
interrupt period of 100 mS.
100 mS
Timed
Interrupt
Time
Inputs X0, X1, X2, and X3, are configured as filtered inputs with a 10 mS time constant.
Note that X0 uses the time constant from X1. The program is otherwise generic, and may be
adapted to your application.

Direct SOFT32

SP0 Load constant K40 into the accumulator . This


LD selects Mode 40 as the HSIO mode.
K40
Output this constant to V7633, the location of the
Mode 40 OUT HSIO Mode select register .
V7633
Load the constant K1004 which is required to select
LD the timed interrrupt option, with a period of 100 mS.
Timed Interrupt K1004
Output this constant to V7634, configuring the timed
OUT interrupt for 100 mS period.
V7634
Load the constant K1006 which is required to select
Filtered Inputs LD filtered inputs with a 10 mS filter time constant.
K1006
Output this constant to V7635, configuring X1 and X0.
OUT
V7635
Output this constant to V7636, configuring X2.
OUT
V7636
Output this constant to V7637, configuring X3.
OUT
V7637

INT Enable ENI Enable Interrupts at the beginning of the program.

Insert Main Program rungs here for your application.


Main Program
END END coil marks the end of the main program..

INT O0 The INT label marks the beginning of the interrupt


service routine program.
Interrupt Routine Insert interrupt service routine rungs here for your
application.

SP1 Load constant K1 into the accumulator .


LD
K1
Add the value in the accumulator with the value in
ADD memory location V2000.
V2000

OUT Output the result into memory location V2000.


V2000

IRT Return to the main ladder program.

3–68 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 3: High-speed Input and Pulse Output Features

Mode 50: Pulse Catch Input


Purpose
The HSIO circuit has a pulse-catch mode of operation. It monitors the signal on inputs X0 -
X3, preserving the occurrence of a narrow pulse. The purpose of the pulse catch mode is to
enable the ladder program to “see” an input pulse which is shorter in duration than the
current scan time. The HSIO circuit latches the input event on input X0 - X3 for one scan.
This contact automatically goes off after one scan.
Functional Block Diagram
Refer to the block diagram below. When the lower byte of HSIO Mode register V7633
contains a BCD “50”, the pulse catch mode in the HSIO circuit is enabled. X0 - X3
automatically become the pulse catch inputs, which set the latch on each rising edge. The
HSIO resets the latch at the end of the next CPU scan. Inputs X1 X2, and X3 can be filtered
discrete inputs, also.

DL06 Output Circuit


PLC
Y0, Y1 Y2 -Y17

HSIO I/O data CPU

Latch Latch
or V-memory
Filter Mode select
Set Reset V7633 0050

X0 scan X1, X2, X3 X4 - X23

Input Circuit

Pulse Catch Timing Parameters


Signal pulses at X0 - X3 must meet certain timing criteria to guarantee a pulse capture will
result. Refer to the timing diagram below. The input characteristics of X0 are fixed (it is not a
programmable filtered input). The minimum pulse width is 0.1 mS. There must be some
delay before the next pulse arrives, such that the pulse period cannot be smaller than 0.5 mS.
If the pulse period is smaller than 0.5 mS, the next pulse will be considered part of the
current pulse.
0.5 mS minimum

0.1 mS minimum
Pulse
Input X0

Time
Note: that the pulse catch and filtered input functions are opposite in nature. The pulse catch feature seeks
to capture narrow pulses, while the filter input feature seeks to reject narrow pulses.

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 3–69
Chapter 3: High-speed Input and Pulse Output Features

When to use Pulse Catch Mode


Use the pulse catch mode for applications where the input (e.g. X0) can not be used in the user
program because the pulse width is very narrow. Use SP100 instead of X0. The SP100 contact
stays on through the next scan, as shown above.
PLC Scan X PLC Scan X + 1 PLC Scan X + 2
Input Output Input Output Input Output
Solve User Logic Solve User Logic Solve User Logic
Update Update Update Update Update Update

X0
SP100

The status relay for X0 is SP100. The other status relays are shown in the table below.

Input Status Relay


X0 SP100
X1 SP101
X2 SP102
X3 SP103

Setup for Mode 50


Recall that V7633 is the HSIO Mode Select register. Refer to the diagram below. Use BCD
50 in the lower byte of V7633 to select the High-Speed Counter Mode.
Memory Location V7633
Bits 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0

0 0 5 0

Miscellaneous Setup (BCD) HSIO Mode Setup (BCD)


00 = Not Used (default) 50 = Pulse Catch
10 = Battery Enabled
20 = Power-up in RUN
30 = Battery Enabled and
Power-up in RUN

Choose the most convenient method of programming V7633 from the following:
• Include load and out instructions in your ladder program
• DirectSOFT32’s memory editor
• Use the Handheld Programmer D2–HPP
We recommend using the first method above so that the HSIO setup becomes an integral
part of your application program. An example program later in this section shows how to do
this.

3–70 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 3: High-speed Input and Pulse Output Features

X Input Configuration
The configurable discrete input options for Pulse Catch Mode are listed in the table below.
Each input has its own configuration register and filter time constant.

Input Configuration Register Function Hex Code Required


X0 V7634 Pulse Catch Input 0005 (default)
Interrupt 0004
X1 V7635 Pulse Catch Input 0005 (default)
Filtered Input xx06 (xx = filter time) 0 - 99 ms (BCD)
Interrupt 0004
X2 V7636 Pulse Catch Input 0005 (default)
Filtered Input xx06 (xx = filter time) 0 - 99 ms (BCD)
Interrupt 0004
X3 V7637 Pulse Catch Input 0005 (default)
Filtered Input xx06 (xx = filter time) 0 - 99 ms (BCD)

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 3–71
Chapter 3: High-speed Input and Pulse Output Features

Program Example 1: Pulse Catch


The following program selects Mode 50, then programs the pulse catch code for X0 and X1.
Inputs X2, and X3 are configured as filtered inputs with 10 and 30 mS time constants
respectively. The program is otherwise generic, and may be adapted to your application.

Direct SOFT32

SP0 Load constant K50 into the accumulator . This


LD selects Mode 50 as the HSIO mode.
K50

Mode 50 Output this constant to V7633, the location of the


OUT HSIO Mode select register.
V7633

Pulse Catch Load the constant K5 which is required to configure X0


LD as the pulse catch input.
K5

Output this constant to V7634, configuring the pulse


OUT catch option for X0.
V7634

Output this constant to V3635, configuring the pulse


OUT catch option for X1.
V7635
Load the constant K1006 which is required to select
LD filtered inputs with a 10 mS filter time constant.
K1006
Filtered Inputs
Output this constant to V7636, configuring X2.
OUT
V7636
Load the constant K3006 which is required to select
LD filtered inputs with a 30 mS filter time constant.
K3006

Output this constant to V7637, configuring X3.


OUT
V7637

Main Program
SP100 Y0
SET Use the pulse catch input to set output Y0 on. This will
work even for a very short pulse on X0.

SP101 Y1
SET Use the pulse catch input to set output Y1 on. This will
work even for a very short pulse on X1.

END END coil marks the end of the main program.

3–72 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 3: High-speed Input and Pulse Output Features

Mode 60: Discrete Inputs with Filter


Purpose
The last mode we will discuss for the HSIO circuit is Mode 60, Discrete Inputs with Filter.
The purpose of this mode is to allow the input circuit to reject narrow pulses and accept wide
ones, as viewed from the ladder program. This is useful in especially noisy environments or
other applications where pulse width is important. In all other modes in this chapter, X0 to
X3 usually support the mode functions as special inputs. Only spare inputs operate as filtered
inputs by default. Now in Mode 60, all four inputs X0 through X3 function only as discrete
filtered inputs.
Functional Block Diagram
Refer to the block diagram below. When the lower byte of HSIO Mode register V7633
contains a BCD “60”, the input filter in the HSIO circuit is enabled. Each input X0 through
X3 has its own filter time constant. The filter circuit assigns the outputs of the filters as logical
references X0 through X3.

DL06 Output Circuit


PLC
Y0, Y1 Y2-Y17

HSIO I/O data CPU

FILTERS X0-X3
V-memory
Mode select
V7633 0060

X0 X1 X2 X3 X4-X23

Input Circuit

Input Filter Timing Parameters


Signal pulses at inputs X0 – X3 are filtered by using a delay time. In the figure below, the
input pulse on the top line is longer than the filter time. The resultant logical input to ladder
is phase-shifted (delayed) by the filter time on both rising and falling edges. In the bottom
waveforms, the physical input pulse width is smaller than the filter time. In this case, the
logical input to the ladder program remains in the OFF state (input pulse was filtered out).

Filter Time Filter Time

Physical Input X0

Logical Input X0

Time
Physical Input X0
Logical Input X0

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 3–73
Chapter 3: High-speed Input and Pulse Output Features

Setup for Mode 60


Recall that V7633 is the HSIO Mode Select register. Refer to the diagram below. Use BCD
60 in the lower byte of V7633 to select the High-Speed Counter Mode.
Memory Location V7633
Bits 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0

0 0 6 0

Miscellaneous Setup (BCD) HSIO Mode Setup (BCD)


00 = Not Used (default) 60 = Filtered Inputs
10 = Battery Enabled
20 = Power-up in RUN
30 = Battery Enabled and
Power-up in RUN

Choose the most convenient method of programming V7633 from the following:
• Include load and out instructions in your ladder program
• DirectSOFT32’s memory editor
• Use the Handheld Programmer D2–HPP
We recommend using the first method above so that the HSIO setup becomes an integral
part of your application program. An example program later in this section shows how to to
this.
X Input Configuration
The configurable discrete input options for Discrete Filtered Inputs Mode are listed in the
table below. The filter time constant (delay) is programmable from 0 to 99 mS (the input acts
as a normal discrete input when the time constant is set to 0). The code for this selection
occupies the upper byte of the configuration register in BCD. We combine this number with
the required “06” in the lower byte to get “xx06”, where xx = 0 to 99. Input X0, X1, X2, and
X3 can only be filtered inputs. Each input has its own configuration register and filter time
constant.

Input Configuration Register Function Hex Code Required


X0 V7634 Filtered Input xx06 (xx = filter delay time) 0 - 99 ms (BCD) (default)

X1 V7635 Filtered Input xx06 (xx = filter delay time) 0 - 99 ms (BCD) (default)

X2 V7636 Filtered Input xx06 (xx = filter delay time) 0 - 99 ms (BCD) (default)

X3 V7637 Filtered Input xx06 (xx = filter delay time) 0 - 99 ms (BCD) (default)

3–74 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 3: High-speed Input and Pulse Output Features

Program Example: Filtered Inputs


The following program selects Mode 60, then programs the filter delay time constants for
inputs X0, X1, X2, and X3. Each filter time constant is different, for illustration purposes.
The program is otherwise generic, and may be adapted to your application.

Direct SOFT32

SP0 Load constant K60 into the accumulator . This


LD selects Mode 60 as the HSIO mode.
K60

Mode 60 Output the constant to V7633, the location of the


OUT HSIO Mode select register .
V7633

Filtered Inputs Load the constant K1006 which is required to configure


LD filtered inputs with a 10 mS filter time constant.
K1006

Output this constant to V7634, configuring X0.


OUT
V7634
Load the constant K2006 which is required to select
LD filtered inputs with a 20 mS filter time constant.
K2006

Output this constant to V7635, configuring X1.


OUT
V7635
Load the constant K5006 which is required to select
LD filtered inputs with a 50 mS filter time constant.
K5006

Output this constant to V7636, configuring X2.


OUT
V7636
Load the constant K5006 which is required to select
LD filtered inputs with a 70 mS filter time constant.
K7006

Output this constant to V7637, configuring X3.


OUT
V7637

Main Program Insert Main Program rungs here for your application.

END END coil marks the end of the main program..

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 3–75
CPU SPECIFICATIONS AND CHAPTER
OPERATION
4
In This Chapter
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–2
CPU Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–3
CPU Hardware Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–4
Using Battery Backup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–8
CPU Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–12
I/O Response Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–17
CPU Scan Time Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . .4–20
Memory Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–25
DL06 System V-memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–29
Control Relay Bit Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–35
Timer Status Bit Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–37
Counter Status Bit Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–37
Remote I/O Bit Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–38
Module Placement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–42
Power Budgeting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–44
Configuring the DL06’s Comm Ports . . . . . . . . . . . . . . . . . . . . . . .4–46
Connecting to MODBUS and DirectNET Networks . . . . . . . . . . . .4–48
MODBUS Port Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–48
Non–Sequence Protocol (ASCII In/Out and PRINT) . . . . . . . . . . . .4–50
Network Slave Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–51
Network Master Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4–56
Network Master Operation (using MRX and MWX Instructions) . .4–60
Chapter 4: CPU Specifications and Operation

Introduction
The Central Processing Unit (CPU) is the heart of the Micro PLC. Almost all PLC
operations are controlled by the CPU, so it is important that it is set up correctly. This
chapter provides the information needed to understand:
• Steps required to set up the CPU
• Operation of ladder programs
• Organization of Variable Memory
Power
Input 16 Discrete Outputs

Output circuit LCD monitor

Power 4 Optional
Supply CPU card slots

Isolation
boundary
Input circuit 2 comm. ports

To programming device
20 discrete Inputs or Operator interface

Note: The High-Speed I/O function (HSIO) consists of dedicated but configurable hardware in the DL06. It
is not considered part of the CPU, because it does not execute the ladder program. For more on
HSIO operation, see Chapter 3.

DL06 CPU Features


The DL06 Micro PLC has 14.8K words of memory comprised of 7.6K of ladder memory
and 7.6K words of V-memory (data registers). Program storage is in the FLASH memory
which is a part of the CPU board in the PLC. In addition, there is RAM with the CPU which
will store system parameters, V-memory, and other data which is not in the application
program. The RAM is backed up by a “super-capacitor”, storing the data for several hours in
the event of a power outage. The capacitor automatically charges during powered operation of
the PLC.
The DL06 supports fixed I/O which includes twenty discrete input points and sixteen output
points.
Over 220 different instructions are available for program development as well as extensive
internal diagnostics that can be monitored from the application program or from an operator
interface. Chapters 5, 6, and 7 provide detailed descriptions of the instructions.
The DL06 provides two built-in communication ports, so you can easily connect a handheld
programmer, operator interface, or a personal computer without needing any additional
hardware.

4–2 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 4: CPU Specifications and Operation

CPU Specifications
Specifications
Feature DL06
Total Program memory (words) 14.8K
Ladder memory (words) 7680
Total V-memory (words) 7616
User V-memory (words) 7488
Non-volatile V Memory (words) 128
Contact execution (boolean) 2.0uS
Typical scan (1k boolean) 3 - 4mS
RLL Ladder style Programming Yes
RLL and RLLPLUS Programming Yes
Run Time Edits Yes
Scan Variable / fixed
Handheld programmer Yes
DirectSOFT32 programming for Windows. Yes
Built-in communication ports (RS232C) Yes
FLASH Memory Standard on CPU
Local Discrete I/O points available 36
Local Analog input / output channels maximum None
High-Speed I/O (quad., pulse out, interrupt, pulse catch, etc.) Yes, 2
I/O Point Density 20 inputs, 16 outputs
Number of instructions available (see Chapter 5 for details) 229
Control relays 1024
Special relays (system defined) 512
Stages in RLLPLUS 1024
Timers 256
Counters 128
Immediate I/O Yes
Interrupt input (external / timed) Yes
Subroutines Yes
For/Next Loops Yes
Math (Integer and floating point) Yes
Drum Sequencer Instruction Yes
Time of Day Clock/Calendar Yes
Internal diagnostics Yes
Password security Yes
System error log Yes
User error log Yes
Optional D2-BAT-1 available
Battery backup (not included with unit)

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 4–3
Chapter 4: CPU Specifications and Operation

CPU Hardware Setup


Communication Port Pinout Diagrams
Cables are available that allow you to quickly and easily connect a Handheld Programmer or a
personal computer to the DL06 PLCs. However, if you need to build your own cables, use
the pinout diagrams shown. The DL06 PLCs require an RJ-12 phone plug for port 1 and a
15-pin svga dsub for port 2.
The DL06 PLC has two built-in serial communication ports. Port 1 (RS232C only) is
generally used for connecting to a D2-HPP, DirectSOFT32, operator interface, MODBUS
slave only, or a DirectNET slave only. The baud rate is fixed at 9600 baud for port 1. Port 2
(RS232C/RS422/RS485) can be used to connect to a D2-HPP, DirectSOFT32, operator
interface, MODBUS master/slave, DirectNET master/slave or ASCII in/out. Port 2 has a
range of speeds from 300 baud to 38.4K baud.
Port 1 Pin Descriptions Port 2 Pin Descriptions
1 0V Power (-) connection (GND) 1 5V Power (+) connection
2 5V Power (+) connection 2 TXD Transmit data (RS-232C)
3 RXD Receive data (RS-232C) 3 RXD Receive data (RS-232C)
4 TXD Transmit data (RS-232C) 4 RTS Ready to send
5 5V Power (+) connection 5 CTS Clear to send
6 0V Power (-) connection (GND) 6 RXD- Receive data (-) (RS-422/485)
TERM 7 0V Power (-) connection (GND)
PORT1 PORT2 RUN STOP
RU
8 0V Power (-) connection (GND)
9 TXD+ Transmit data (+) (RS-422/485)
10 TXD- Transmit data (-) (RS-422/485)
11 RTS+ Ready to send (+) (RS-422/485)
5 4 3 2
6 1 5
10
1
6
12 RTS- Ready to send (-) (RS-422/485)
15 11
13 RXD+ Receive data (+) (RS-422/485)
PORT1 PORT2 14 CTS+ Clear to send (+) (RS-422/485)
15 CTS- Clear to send (-) (RS-422/485)

Communications Port 1 Communications Port 2


Com 1 Connects to HPP, DirectSOFT32, operator Com 2 Connects to HPP, DirectSOFT32, operator
interfaces, etc. interfaces, etc.
6-pin, RS232C 15-pin, multifunction port, RS232C, RS422,
RS485
Communication speed (baud): 9600 (fixed)
Communication speed (baud): 300, 600, 1200,
Parity: odd (default) 2400, 4800, 9600, 19200, 38400
Station Address: 1 (fixed) Parity: odd (default), even, none
8 data bits Station Address: 1 (default)
1 start, 1 stop bit 8 data bits
Asynchronous, half-duplex, DTE 1 start, 1 stop bit
Protocol: (auto-select) Asynchronous, half-duplex, DTE
K-sequence (slave only),
DirectNET (slave only), Protocol: (auto-select) K-sequence (slave only),
MODBUS (slave only) DirectNET (master/slave), MODBUS
(master/slave), non-sequence/print/ASCII in/out

4–4 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 4: CPU Specifications and Operation

Connecting the Programming Devices


If you’re using a Personal Computer with the DirectSOFT32™ programming package, you
can connect the computer to either of the DL06’s serial ports. For an engineering office
environment (typical during program development), this is the preferred method of
programming.

G LG 0V Y0 Y2 C1 Y5 Y7 Y10 Y12 C3 Y15 Y17


PWR
AC(L) AC(N) 24V C0 Y1 Y3 Y4 Y6 C2 Y11 Y13 Y14 Y16 N.C. RUN
OUTPUT: 6-240V 50 - 60Hz 2.0A, 6 - 27V 2.0A PWR: 100-240V 50-60Hz 40VA CPU

Y D0-06DR TX1
RX1
0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23
X TX2
RX2
INPUT: 12 - 24V 3 - 15mA

LOGIC 06
K oyo

C0 X1 X3 X4 X6 C2 X11 X13 X14 X16 C4 X21 X23 N.C.


X0 X2 C1 X5 X7 X10 X12 C3 X15 X17 X20 X22 N.C.
TERM

PORT1 PORT2 RUN STOP

Use cable part no.


D2–DSCBL

The Handheld programmer D2-HPP is connected to the CPU with a handheld programmer
cable. This device is ideal for maintaining existing installations or making small program
changes. The handheld programmer is shipped with a cable, which is approximately 6.5 feet
(200 cm) long.

G LG 0V Y0 Y2 C1 Y5 Y7 Y10 Y12 C3 Y15 Y17


PWR
AC(L) AC(N) 24V C0 Y1 Y3 Y4 Y6 C2 Y11 Y13 Y14 Y16 N.C. RUN
OUTPUT: 6-240V 50 - 60Hz 2.0A, 6 - 27V 2.0A PWR: 100-240V 50-60Hz 40VA CPU

Y D0-06DR TX1
RX1
0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23
X TX2
RX2
INPUT: 12 - 24V 3 - 15mA

LOGIC 06
K oyo

C0
X0
X1
X2
X3
C1
X4
X5
X6
X7
C2 X11 X13 X14 X16 C4 X21 X23 N.C.
X10 X12 C3 X15 X17 X20 X22 N.C.
TERM For replacement
PORT1 PORT2 RUN STOP cable, use part no.
DV–1000CBL

CPU Setup Information


Even if you have years of experience using PLCs, there are a few things you need to do before
you can start entering programs. This section includes some basic things, such as changing
the CPU mode, but it also includes some things that you may never have to use. Here’s a brief
list of the items that are discussed:
• Using Auxiliary Functions
• Clearing the program (and other memory areas)
• How to initialize system memory
• Setting retentive memory ranges
The following paragraphs provide the setup information necessary to get the CPU ready for
programming. They include setup instructions for either type of programming device you are
using. The D2–HPP Handheld Programmer Manual provides the Handheld keystrokes
required to perform all of these operations. The DirectSOFT32™ Manual provides a
description of the menus and keystrokes required to perform the setup procedures via
DirectSOFT32.

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 4–5
Chapter 4: CPU Specifications and Operation

status indicators
G LG 0V Y0 Y2 C1 Y5 Y7 Y10 Y12 C3 Y15 Y17
PWR
AC(L) AC(N) 24V C0 Y1 Y3 Y4 Y6 C2 Y11 Y13 Y14 Y16 N.C. RUN
OUTPUT: 6-240V 50 - 60Hz 2.0A, 6 - 27V 2.0A PWR: 100-240V 50-60Hz 40VA CPU

Y D0-06DR TX1
RX1
0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23
TX2
X RX2
INPUT: 12 - 24V 3 - 15mA

LOGIC 06
K oyo

C0 X1 X3 X4 X6 C2 X11 X13 X14 X16 C4 X21 X23 N.C.


X0 X2 C1 X5 X7 X10 X12 C3 X15 X17 X20 X22 N.C.
TERM mode switch

PORT1 PORT2 RUN STOP

Status Indicators
The status indicator LEDs on the CPU front panels have specific functions which can help in
programming and troubleshooting.
Mode Switch Functions
The mode switch on the DL06 PLC provides positions for enabling and disabling program
changes in the CPU. Unless the mode switch is in the TERM position, RUN and STOP
mode changes will not be allowed by any interface device, (handheld programmer,
DirectSOFT32 programming package or operator interface). Programs may be viewed or
monitored but no changes may be made. If the switch is in the TERM position and no
program password is in effect, all operating modes as well as program access will be allowed
through the connected programming or monitoring device.

Indicator Status Meaning


ON Power good
PWR
OFF Power failure
ON CPU is in Run Mode
RUN OFF CPU is in Stop or program Mode
Blinking CPU is in firmware update mode
ON CPU self diagnostics error
CPU OFF CPU self diagnostics good
Blinking Low battery
ON Data is being transmitted by the CPU - Port 1
TX1
OFF No data is being transmitted by the CPU - Port 1
ON Data is being received by the CPU - Port 1
RX1
OFF No data is being received by the CPU - Port 1
ON Data is being transmitted by the CPU - Port 2
TX2
OFF No data is being transmitted by the CPU - Port 2
ON Data is being received by the CPU - Port 2
RX2
OFF No data is being received by the CPU - Port 2

4–6 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 4: CPU Specifications and Operation

Changing Modes in the DL06 PLC

Mode Switch Position CPU Action


CPU is forced into the RUN mode if no errors are encountered.
RUN (Run Program) No changes are allowed by the attached
programming/monitoring device.
PROGRAM and the TEST modes are available. Mode and
TERM (Terminal) RUN program changes are allowed by the programming/monitoring
device.
CPU is forced into the STOP mode. No changes are allowed by
STOP the programming/monitoring device.
There are two ways to change the CPU mode. You can use the CPU mode switch to select
the operating mode, or you can place the mode switch in the TERM position and use a
programming device to change operating modes. With the switch in this position, the CPU
can be changed between Run and Program modes. You can use either DirectSOFT32 or the
Handheld Programmer to change the CPU mode of operation. With DirectSOFT32 you use
a menu option in the PLC menu. With the Handheld Programmer, you use the MODE key.

MODE
Menu Options Key

Mode of Operation at Power-up


The DL06 CPU will normally power-up in the mode that it was in just prior to the power
interruption. For example, if the CPU was in Program Mode when the power was
disconnected, the CPU will power-up in Program Mode (see warning note below).
WARNING: Once the super capacitor has discharged, the system memory may not retain the previous
mode of operation. When this occurs, the PLC can power-up in either Run or Program Mode
if the mode switch is in the term position. There is no way to determine which mode will be
entered as the startup mode. Failure to adhere to this warning greatly increases the risk of
unexpected equipment startup.

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 4–7
Chapter 4: CPU Specifications and Operation

Using Battery Backup


An optional lithium battery is available to maintain the system RAM retentive memory when
the DL06 system is without external power. Typical CPU battery life is five years, which
includes PLC runtime and normal shutdown periods. However, consider installing a fresh
battery if your battery has not been changed recently and the system will be shut down for a
period of more than ten days.
NOTE: Before installing or replacing your CPU battery, back-up your V-memory and system parameters.
You can do this by using DirectSOFT32 to save the program, V-memory, and system parameters to
hard/floppy disk on a personal computer.

To install the D2–BAT–1 CPU battery in the DL06 CPU:


1. Press the retaining clip on the battery door down and swing the battery door open.
2. Place the battery into the coin–type slot.
3. Close the battery door making sure that it locks securely in place.
4. Make a note of the date the battery was installed

Battery door

WARNING: Do not attempt to recharge the battery or dispose of an old battery by fire. The battery may
explode or release hazardous materials.

Enabling the Battery Backup


Setting bit 12 in V7633 ON enables the battery circuit (SET B7633.12). In this mode the
CPU will maintain the data in C, S, T, CT, and V memory when power is removed from the
CPU, provided the battery is good. The use of a battery can also determine which operating
mode is entered when the system power is connected.
Whenever you have installed a battery, the battery always backs up the memory. However, the
low battery indication can be disabled by turning off bit 12 in V7633.

4–8 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 4: CPU Specifications and Operation

Auxiliary Functions
Many CPU setup tasks involve the use of Auxiliary (AUX) Functions. The AUX Functions
perform many different operations, ranging from clearing ladder memory, displaying the scan
time, copying programs to EEPROM in the handheld programmer, etc. They are divided into
categories that affect different system parameters. Appendix A provides a description of the
AUX functions.
You can access the AUX Functions from DirectSOFT32 or from the D2–HPP Handheld
Programmer. The manuals for those products provide step-by-step procedures for accessing
the AUX Functions. Some of these AUX Functions are designed specifically for the Handheld
Programmer setup, so they will not be needed (or available) with the DirectSOFT32 package.
The following table shows a list of the Auxiliary functions for the Handheld Programmer.
AUX 2* — RLL Operations
21 Check Program 58 Test Operations
22 Change Reference 59 Override Setup
23 Clear Ladder Range 5B HSIO Configuration
24 Clear All Ladders 5C Display Error History
AUX 3* — V-Memory Operations 5D Scan Control Setup
31 Clear V Memory AUX 6* — Handheld Programmer Configuration
AUX 4* — I/O Configuration 61 Show Revision Numbers
41 Show I/O Configuration 62 Beeper On / Off
42 I/O Diagnostics 65 Run Self Diagnostics
44 Power Up I/O Configuration check AUX 7* — EEPROM Operations
45 Select Configuration 71 Copy CPU memory to HPP EEPROM
46 Configure I/O 72 Write HPP EEPROM to CPU
AUX 5* — CPU Configuration 73 Compare CPU to HPP EEPROM
51 Modify Program Name 74 Blank Check (HPP EEPROM)
52 Display/Change Calendar 75 Erase HPP EEPROM
53 Display Scan Time 76 Show EEPROM Type (CPU and HPP)
54 Initialize Scratchpad AUX 8* — Password Operations
55 Set Watchdog Timer 81 Modify Password
56 Set Communication Port 2 82 Unlock CPU
57 Set Retentive Ranges 83 Lock CPU

Clearing an Existing Program


Before you enter a new program, be sure to always clear ladder memory. You can use AUX
Function 24 to clear the complete program.You can also use other AUX functions to clear
other memory areas.
• AUX 23 — Clear Ladder Range
• AUX 24 — Clear all Ladders
• AUX 31 — Clear V Memory
Initializing System Memory
The DL06 Micro PLC maintains system parameters in a memory area often referred to as the
“scratchpad.” In some cases, you may make changes to the system setup that will be stored in
system memory. For example, if you specify a range of Control Relays (CRs) as retentive, these
changes are stored in system memory. AUX 54 resets the system memory to the default values.

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 4–9
Chapter 4: CPU Specifications and Operation

WARNING: You may never have to use this feature unless you want to clear any setup information
that is stored in system memory. Usually, you’ll only need to initialize the system
memory if you are changing programs and the old program required a special system
setup. You can usually load in new programs without ever initializing system memory.

Remember, this AUX function will reset all system memory. If you have set special parameters
such as retentive ranges, etc. they will be erased when AUX 54 is used. Make sure that you
have considered all ramifications of this operation before you select it.
Setting Retentive Memory Ranges
The DL06 PLCs provide certain ranges of retentive memory by default. The default ranges
are suitable for many applications, but you can change them if your application requires
additional retentive ranges or no retentive ranges at all. The default settings are:

DL06
Memory Area
Default Range Available Range
Control Relays C1000 – C1777 C0 – C1777
V Memory V400 – V37777 V0 – V37777
Timers None by default T0 – T377
Counters CT0 – CT177 CT0 – CT177
Stages None by default S0 – S1777

You can use AUX 57 to set the retentive ranges. You can also use DirectSOFT32. menus to
select the retentive ranges. Appendix A contains detailed information about auxiliary
functions.

WARNING: The DL06 CPUs do not come with a battery. The super capacitor will retain the values in
the event of a power loss, but only for a short period of time, depending on conditions. If
the retentive ranges are important for your application, make sure you obtain the optional
battery.

4–10 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 4: CPU Specifications and Operation

Using a Password
The DL06 PLCs allow you to use a password to help minimize the risk of unauthorized
program and/or data changes. Once you enter a password you can “lock” the PLC against
access. Once the CPU is locked you must enter the password before you can use a
programming device to change any system parameters.
You can select an 8-digit numeric password. The Micro PLCs are shipped from the factory
with a password of 00000000. All zeros removes the password protection. If a password has
been entered into the CPU you cannot just enter all zeros to remove it. Once you enter the
correct password, you can change the password to all zeros to remove the password
protection.
WARNING: Make sure you remember your password. If you forget your password you will not be able to
access the CPU. The Micro PLC must be returned to the factory to have the password (along
with the ladder project) removed.

You can use the D2–HPP Handheld Programmer or


DirectSOFT32™. to enter a password. The following
diagram shows how you can enter a password with the
Handheld Programmer.
DirectSOFT32 D2–HPP
DirectSOFT D2–HPP
Select AUX 81
CLR CLR I
8
B
1
AUX ENT
PASSWORD
00000000

Enter the new 8-digit password


X X X ENT
PASSWORD
XXXXXXXX
There are three ways to lock the CPU once the password has been entered.
1. If the CPU power is disconnected, the CPU will be automatically locked against access.
2. If you enter the password with DirectSOFT32, the CPU will be automatically locked against
access when you exit DirectSOFT32.
3. Use AUX 83 to lock the CPU.
When you use DirectSOFT32, you will be prompted for a password if the CPU has been
locked. If you use the Handheld Programmer, you have to use AUX 82 to unlock the CPU.
Once you enter AUX 82, you will be prompted to enter the password.
Note: The DL06 CPUs support multi-level password protection of the ladder program. This allows
password protection while not locking the communication port to an operator interface. The multi-
level password can be invoked by creating a password with an upper case “A” followed by seven
numeric characters (e.g. A1234567).

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 4–11
Chapter 4: CPU Specifications and Operation

CPU Operation
Achieving the proper control for your equipment or process requires a good understanding of
how DL06 CPUs control all aspects of system operation. There are four main areas to
understand before you create your application program:
• CPU Operating System — the CPU manages all aspects of system control. A quick overview of all
the steps is provided in the next section.
• CPU Operating Modes — The two primary modes of operation are Program Mode and Run
Mode.
• CPU Timing — The two important areas we discuss are the I/O response time and the CPU scan
time.
• CPU Memory Map — DL06 CPUs offer a wide variety of resources, such as timers, counters,
inputs, etc. The memory map section shows the organization and availability of these data types.
CPU Operating System
At powerup, the CPU initializes the internal electronic
hardware. Memory initialization starts with examining Power up
the retentive memory settings. In general, the contents
Initialize hardware
of retentive memory is
Initialize various memory
preserved, and non-retentive memory is initialized to based on retentive
zero (unless otherwise specified). configuration

After the one-time powerup tasks, the CPU begins the


Update input
cyclical scan activity. The flowchart to the right shows
how the tasks differ, based on the CPU mode and the Service peripheral
existence of any errors. The “scan time” is defined as the
average time around the task loop. Note that the CPU is Update Special Relays
always reading the inputs, even during program mode.
This allows programming tools to monitor input status PGM
Mode?
at any time.
RUN
The outputs are only updated in Run mode. In program Execute program
mode, they are in the off state.
Update output
Error detection has two levels. Non-fatal errors are
reported, but the CPU remains in its current mode. If a
fatal error occurs, the CPU is forced into program mode Do diagnostics
and the outputs go off.
YES
OK?

NO
Report error , set flag
register , turn on LED

NO
Fatal error

YES
Force CPU into
PGM mode

4–12 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 4: CPU Specifications and Operation

Program Mode
In Program Mode, the CPU does not execute the application program or update the output
points. The primary use for Program Mode is to enter or change an application program. You
also use program mode to set up the CPU parameters, such as HSIO features, retentive
memory areas, etc.
You can use a programming device, such as
DirectSOFT32 or the D2–HPP Handheld
Programmer to place the CPU in Program
Mode.
Run Mode
In Run Mode, the CPU executes the
application program and updates the I/O
system. You can perform many operations
during Run Mode. Some of these include: Download
G LG 0V
AC(L) AC(N) 24V C0
Y0
Y1
Y2
Y3
C1
Y4
Y5
Y6
Y7 Y10 Y12
C2
C3 Y15 Y17
Y11 Y13 Y14 Y16 N.C.
PWR
RUN Program
• Monitor and change I/O point status
OUTPUT: 6-240V 50 - 60Hz 2.0A, 6 - 27V 2.0A PWR: 100-240V 50-60Hz 40VA CPU

Y D0-06DR TX1
RX1
0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23
TX2
X RX2
INPUT: 12 - 24V 3 - 15mA

• Update timer/counter preset values LOGIC 06


K oyo

• Update Variable memory locations C0


X0
X1
X2
X3
C1
X4
X5
X6
X7
C2 X11 X13 X14 X16 C4 X21 X23 N.C.
X10 X12 C3 X15 X17 X20 X22 N.C.
TERM

PORT1 PORT2 RUN STOP

Run Mode operation can be divided into


several key areas. For the vast majority of
applications, some of these execution segments Normal Run mode scan
are more important than others. For example,
you need to understand how the CPU updates
the I/O points, handles forcing operations, and Read Inputs
solves the application program. The remaining
segments are not that important for most Read Inputs from Specialty I/O
applications.
Service Peripherals
You can use DirectSOFT32 or the D2–HPP
Handheld Programmer to place the CPU in
Run Mode. Update Clock, Special Relays

You can also edit the program during Run Solve the Application Program
Mode. The Run Mode Edits are not
“bumpless” to the outputs. Instead, the CPU
Write
Write Outputs
Outputs
maintains the outputs in their last state while it
accepts the new program information. If an
Write Outputs to Specialty I/O
error is found in the new program, then the
CPU will turn all the outputs off and enter the
Diagnostics
Program Mode. This feature is discussed in
more detail in Chapter 9.
WARNING: Only authorized personnel fully familiar with all aspects of the application should make
changes to the program. Changes during Run Mode become effective immediately. Make
sure you thoroughly consider the impact of any changes to minimize the risk of personal
injury or damage to equipment.

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 4–13
Chapter 4: CPU Specifications and Operation

Read Inputs
The CPU reads the status of all inputs, then stores it in the image register. Input image
register locations are designated with an X followed by a memory location. Image register data
is used by the CPU when it solves the application program.
Of course, an input may change after the CPU has just read the inputs. Generally, the CPU
scan time is measured in milliseconds. If you have an application that cannot wait until the
next I/O update, you can use Immediate Instructions. These do not use the status of the
input image register to solve the application program. The Immediate instructions
immediately read the input status directly from the I/O modules. However, this lengthens the
program scan since the CPU has to read the I/O point status again. A complete list of the
Immediate instructions is included in Chapter 5.
Service Peripherals and Force I/O
After the CPU reads the inputs from the input modules, it reads any attached peripheral
devices. This is primarily a communications service for any attached devices. For example, it
would read a programming device to see if any input, output, or other memory type status
needs to be modified. There are two basic types of forcing available with the DL06 CPUs:
• Forcing from a peripheral – not a permanent force, good only for one scan
• Bit Override – holds the I/O point (or other bit) in the current state. Valid bits are X, Y, C, T, CT,
and S. (These memory types are discussed in more detail later in this chapter).
Regular Forcing — This type of forcing can temporarily change the status of a discrete bit.
For example, you may want to force an input on, even though it is really off. This allows you
to change the point status that was stored in the image register. This value will be valid until
the image register location is written to during the next scan. This is primarily useful during
testing situations when you need to force a bit on to trigger another event.
Bit Override — Bit override can be enabled on a point-by-point basis by using AUX 59 from
the Handheld Programmer or, by a menu option from within DirectSOFT32™. Bit
override basically disables any changes to the discrete point by the CPU. For example, if you
enable bit override for X1, and X1 is off at the time, then the CPU will not change the state
of X1. This means that even if X1 comes on, the CPU will not acknowledge the change. So, if
you used X1 in the program, it would always be evaluated as “off ” in this case. Of course, if
X1 was on when the bit override was enabled, then X1 would always be evaluated as “on”.
There is an advantage available when you use the bit override feature. The regular forcing is
not disabled because the bit override is enabled. For example, if you enabled the Bit Override
for Y0 and it was off at the time, then the CPU would not change the state of Y0. However,
you can still use a programming device to change the status. Now, if you use the
programming device to force Y0 on, it will remain on and the CPU will not change the state
of Y0. If you then force Y0 off, the CPU will maintain Y0 as off. The CPU will never update
the point with the results from the application program or from the I/O update until the bit
override is removed. The following diagram shows a brief overview of the bit override feature.
Notice the CPU does not update the Image Register when bit override is enabled.

4–14 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 4: CPU Specifications and Operation

Input Update Input Update


X128 ... X2 X1 X0
OFF ... ON ON OFF
Bit Override OFF Force from Y128 ... Y2 Y1 Y0 Force from Bit Override ON
Programmer OFF ... ON ON OFF Programmer
C377 ... C2 C1 C0
OFF ... ON OFF OFF
Result of Program Image Register (example) Result of Program
Solution Solution

WARNING: Only authorized personnel fully familiar with all aspects of the application should make
changes to the program. Make sure you thoroughly consider the impact of any changes to
minimize the risk of personal injury or damage to equipment.

CPU Bus Communication


It is possible to transfer data to and from the CPU over the CPU bus on the backplane. This
data is more than standard I/O point status. This type of communications can only occur on
the CPU (local) base. There is a portion of the execution cycle used to communicate with
these modules. The CPU performs both read and write requests during this segment.
Update Clock, Special Relays and Special Registers
The DL06 CPUs have an internal real-time clock and calendar timer which is accessible to
the application program. Special V-memory locations hold this information. This portion of
the execution cycle makes sure these locations get updated on every scan. Also, there are
several different Special Relays, such as diagnostic relays, etc., that are also updated during
this segment.

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 4–15
Chapter 4: CPU Specifications and Operation

Solve Application Program


The CPU evaluates each instruction in the
application program during this segment of the scan
G LG 0V Y0 Y2 C1 Y5 Y7 Y10 Y12 C3 Y15 Y17
PWR
AC(L) AC(N) 24V C0 Y1 Y3 Y4 Y6 C2 Y11 Y13 Y14 Y16 N.C. RUN
OUTPUT: 6-240V 50 - 60Hz 2.0A, 6 - 27V 2.0A PWR: 100-240V 50-60Hz 40VA CPU

Y D0-06DR TX1
RX1
0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23

cycle. The instructions define the relationship X TX2


RX2
INPUT: 12 - 24V 3 - 15mA

between the input conditions and the desired output LOGIC 06


response. The CPU uses the output image register
K oyo

C0 X1 X3 X4 X6 C2 X11 X13 X14 X16 C4 X21 X23 N.C.


X0 X2 C1 X5 X7 X10 X12 C3 X15 X17 X20 X22 N.C.
TERM

area to store the status of the desired action for the PORT1 PORT2 RUN STOP

outputs. Output image register locations are


Normal Run mode scan
designated with a Y followed by a memory location.
The actual outputs are updated during the write
outputs segment of the scan cycle. There are Read Inputs from Specialty I/O
immediate output instructions available that will
update the output points immediately instead of Service Peripherals
waiting until the write output segment. A complete
list of the Immediate instructions is provided in Update Special Relays
Chapter 5.
The internal control relays (C), the stages (S), and Solve the Application Program
the variable memory (V) are also updated in this
segment. Write Outputs from Specialty I/O
You may recall that you can force various types of
points in the system. (This was discussed earlier in Diagnostics
this chapter.) If any I/O points or memory data have
been forced, the output image register also contains
this information.
Solve PID Loop Equations
The DL06 CPU can process up to 8 PID loops. The loop calculations are run as a separate
task from the ladder program execution, immediately following it. Only loops which have
been configured are calculated, and then only according to a built-in loop scheduler. The
sample time (calculation interval) of each loop is programmable. Please refer to Chapter 8,
PID Loop Operation, for more on the effects of PID loop calculation on the overall CPU
scan time.

4–16 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 4: CPU Specifications and Operation

Write Outputs
Once the application program has solved the instruction logic and constructed the output
image register, the CPU writes the contents of the output image register to the corresponding
output points. Remember, the CPU also made sure that any forcing operation changes were
stored in the output image register, so the forced points get updated with the status specified
earlier.
Write Outputs to Specialty I/O
After the CPU updates the outputs in the local and expansion bases, it sends the output point
information that is required by any Specialty modules which are installed.
Diagnostics
During this part of the scan, the CPU performs all system diagnostics and other tasks such as
calculating the scan time and resetting the watchdog timer. There are many different error
conditions that are automatically detected and reported by the DL06 PLCs. Appendix B
contains a listing of the various error codes.
Probably one of the more important things that occurs during this segment is the scan time
calculation and watchdog timer control. The DL06 CPU has a “watchdog” timer that stores
the maximum time allowed for the CPU to complete the solve application segment of the
scan cycle. If this time is exceeded the CPU will enter the Program Mode and turn off all
outputs. The default value set from the factory is 200 ms. An error is automatically reported.
For example, the Handheld Programmer would display the following message “E003 S/W
TIMEOUT” when the scan overrun occurs.
You can use AUX 53 to view the minimum, maximum, and current scan time. Use AUX 55
to increase or decrease the watchdog timer value.

I/O Response Time


Is Timing Important for Your Application?
I/O response time is the amount of time required for the control system to sense a change in
an input point and update a corresponding output point. In the majority of applications, the
CPU performs this task in such a short period of time that you may never have to concern
yourself with the aspects of system timing. However, some applications do require extremely
fast update times. In these cases, you may need to know how to to determine the amount of
time spent during the various segments of operation.
There are four things that can affect the I/O response time.
• The point in the scan cycle when the field input changes states
• Input Off to On delay time
• CPU scan time
• Output Off to On delay time
The next paragraphs show how these items interact to affect the response time.

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 4–17
Chapter 4: CPU Specifications and Operation

Normal Minimum I/O Response


The I/O response time is shortest when the input changes just before the Read Inputs portion
of the execution cycle. In this case the input status is read, the application program is solved,
and the output point gets updated. The following diagram shows an example of the timing
for this situation.
Scan

Solve Solve Solve Solve


Scan Program Program Program Program
Read Write
Inputs Outputs

Field Input

CPU Reads CPU Writes


Inputs Outputs
Input
Off/On Delay

Output
Off/On Delay

I/O Response T ime

In this case, you can calculate the response time by simply adding the following items:
Input Delay + Scan Time + Output Delay = Response Time
Normal Maximum I/O Response
The I/O response time is longest when the input changes just after the Read Inputs portion
of the execution cycle. In this case the new input status is not read until the following scan.
The following diagram shows an example of the timing for this situation.
Scan

Solve Solve Solve Solve


Scan Program Program Program Program
Read Write
Inputs Outputs

Field Input

CPU Reads CPU Writes


Inputs Outputs
Input
Off/On Delay

Output
Off/On Delay

I/O Response T ime

In this case, you can calculate the response time by simply adding the following items:
Input Delay +(2 x Scan Time) + Output Delay = Response Time

4–18 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 4: CPU Specifications and Operation

Improving Response Time


There are a few things you can do to help improve throughput.
• You can choose instructions with faster execution times
• You can use immediate I/O instructions (which update the I/O points during the program
execution)
• You can use the HSIO Mode 50 Pulse Catch features designed to operate in high-speed
environments. See Chapter 3 for details on using this feature.
Of these three things the Immediate I/O instructions are probably the most important
and most useful. The following example shows how an immediate input instruction
and immediate output instruction would affect the response time.
Scan

Solve Solve Solve Solve


Scan Program Program Program Program
Normal Read Write Normal
Read Input Output Write
Input Immediate Immediate Outputs

Field Input

Input
Off/On Delay

Output
Off/On Delay

I/O Response Time

In this case, you can calculate the response time by simply adding the following items.
Input Delay + Instruction Execution Time + Output Delay = Response Time
The instruction execution time would be calculated by adding the time for the immediate
input instruction, the immediate output instruction, and any other instructions in between
the two.
NOTE: Even though the immediate instruction reads the most current status from I/O, it only uses the
results to solve that one instruction. It does not use the new status to update the image register.
Therefore, any regular instructions that follow will still use the image register values. Any immediate
instructions that follow will access the I/O again to update the status.

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 4–19
Chapter 4: CPU Specifications and Operation

CPU Scan Time Considerations


Power up
The scan time covers all the cyclical tasks that are
performed by the operating system. You can use
Initialize hardware
DirectSOFT32. or the Handheld Programmer to display
the minimum, maximum, and current scan times that Check I/O module
have occurred since the previous Program Mode to Run config. and verify

Mode transition. This information can be very important Initialize various memory
when evaluating the performance of a system. As we’ve based on retentive
configuration
shown previously there are several segments that make up
the scan cycle. Each of these segments requires a certain
amount of time to complete. Of all the segments, the Update input
following are the most important:
Read input data from
• Input Update Specialty and Remote I/O

• Peripheral Service
Service peripheral
• Program Execution
• Output Update CPU Bus Communication

• Timed Interrupt Execution


Update Clock / Calendar
The one you have the most control over is the amount of
time it takes to execute the application program. This is
because different instructions take different amounts of PGM
Mode?
time to execute. So, if you think you need a faster scan,
then you can try to choose faster instructions. RUN

Execute ladder program


Your choice of I/O type and peripheral devices can also
affect the scan time. However, these things are usually
dictated by the application. PID Equations (DL250)

The following paragraphs provide some general Update output


information on how much time some of the segments
can require. Write output data to
Specialty and Remote I/O

Reading Inputs
The time required during each scan to read the input
Do diagnostics
status of built-in inputs is 52.6 µs. Don’t confuse this
with the I/O response time that was discussed earlier.
OK YES
Writing Outputs OK?

The time required to write the output status of built-in NO


outputs is 41.1 µS. Don’t confuse this with the I/O Report the error, set flag,
register, turn on LED
response time that was discussed earlier.
NO
Fatal error

YES
Force CPU into
PGM mode

4–20 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 4: CPU Specifications and Operation

Service Peripherals
Communication requests can occur at any time during the scan, but the CPU only “logs” the
requests for service until the Service Peripherals portion of the scan. The CPU does not spend
any time on this if there are no peripherals connected.

To Log Request (anytime) DL06


Nothing Connected Min. & Max 0µs
Send Min. / Max. 5.8/11.8 µs
Port 1
Rec. Min. / Max. 12.5/25.2 µs
Port 2 Send Min. / Max. 6.2/14.3 µs
Rec. Min. / Max. 14.2/31.9 µs
LCD Min. / Max. 4.8/49.2 µs

During the Service Peripherals portion of the scan, the CPU analyzes the communications
request and responds as appropriate. The amount of time required to service the peripherals
depends on the content of the request.

To Service Request DL06 DL06


Minimum 9 µs
Run Mode Max. 412 µs
Program Mode Max. 2.5 second

CPU Bus Communication


Some specialty modules can also communicate directly with the CPU via the CPU bus.
During this portion of the cycle the CPU completes any CPU bus communications. The
actual time required depends on the type of modules installed and the type of request being
processed.
Update Clock / Calendar, Special Relays, Special Registers
The clock, calendar, and special relays are updated and loaded into special V-memory
locations during this time. This update is performed during both Run and Program Modes.

Modes DL06
Minimum 12.0µs
Program Mode
Maximum 12.0µs
Minimum 20.0µs
Run Mode
Maximum 27.0µs

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 4–21
Chapter 4: CPU Specifications and Operation

Application Program Execution


The CPU processes the program from address 0 to the END instruction. The CPU executes
the program left to right and top to bottom. As each rung is evaluated the appropriate image
register or memory location is updated. The time required to solve the application program
depends on the type and number of instructions used, and the amount of execution overhead.
Just add the execution times for all the instructions in your program to determine to total
execution time. Appendix C provides a complete list of the instruction execution times for the
DL06 Micro PLC. For example, the execution time for running the program shown below is
calculated as follows:
Instruction Time
X0 X1 Y0
STR X0 .67 µs OUT
OR C0 .51 µs
ANDN X1 .51 µs C0
OUT Y0 1.82 µs
STRN C100 .67 µs
C100
LD K10 9.00 µs LD
STRN C101 .67 µs K10

OUT V2002 9.3 µs C101


STRN C102 .67 µs OUT V2002

LD K50 9.00 µs
STRN C103 .67 µs C102
LD
OUT V2006 1.82 µs K50
STR X5 .67 µs
ANDN X10 .51 µs C103
OUT V2006
OUT Y3 1.82 µs
END 12.80 µs
X5 X10 Y3
OUT
SUBT OTAL 51.11 µs

Overhead DL06 END


Minimum 746.2 µs
Maximum 4352.4 µs
TOTAL TIME = (Program execution time + Overhead) x 1.18
The program above takes only 51.11 µs to execute during each scan. The DL06 spends 0.18
ms, on internal timed interrupt management, for every 1ms of instruction time. The total
scan time is calculated by adding the program execution time to the overhead (shown
above)and multiplying the result (ms) by 1.18. “Overhead” includes all other housekeeping
and diagnostic tasks. The scan time will vary slightly from one scan to the next, because of
fluctuation in overhead tasks.
Program Control Instructions — the DL06 CPUs offer additional instructions that can
change the way the program executes. These instructions include FOR/NEXT loops,
Subroutines, and Interrupt Routines. These instructions can interrupt the normal program
flow and affect the program execution time. Chapter 5 provides detailed information on how
these different types of instructions operate.

4–22 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 4: CPU Specifications and Operation

PLC Numbering Systems octal


BCD ?
binary
If you are a new PLC user or are using 1482
? ? 3 0402 ?
our PLCs for the first time, please take 3A9
a moment to study how our PLCs use numbers. 7 –961428 ASCII
1001011011 hexadecimal
You’ll find that each PLC manufacturer has their own 177
? 1011
conventions on the use of numbers in their PLCs. decimal
We want to take just a moment to familiarize you A 72B
–300124 ?
with how numbers are used in our
PLCs. The information you learn here applies to all of our PLCs!
As any good computer does, PLCs store and manipulate numbers in binary form: just ones
and zeros. So why do we have to deal with numbers in so many different forms? Numbers
have meaning, and some representations are more convenient than others for particular
purposes. Sometimes we use numbers to represent a size or amount of something. Other
numbers refer to locations or addresses, or to time. In science we attach engineering units to
numbers to give a particular meaning.
PLC Resources
PLCs offer a fixed amount of resources, depending on the model and configuration. We use
the word “resources” to include variable memory (V-memory), I/O points, timers, counters,
etc. Most modular PLCs allow you to add I/O points in groups of eight. In fact, all the
resources of our PLCs are counted in octal. It’s easier for computers to count in groups of
eight than ten, because eight is an even power of 2.
Octal means simply counting in groups of eight things Decimal 1 2 3 4 5 6 7 8
at a time. In the figure to the right, there are eight
circles. The quantity in decimal is “8”, but in octal it is
“10” (8 and 9 are not valid in octal). In octal, “10” Octal 1 2 3 4 5 6 7 10
means 1 group of 8 plus 0 (no individuals).
In the figure below, we have two groups of eight circles. Counting in octal we have “20”
items, meaning 2 groups of eight, plus 0 individuals Don’t say “twenty”, say “two–zero octal”.
This makes a clear distinction between number systems.
Decimal 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Octal 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20
After counting PLC resources, it’s time to access PLC resources (there’s a difference). The
CPU instruction set accesses resources of the PLC using octal addresses. Octal addresses are
the same as octal quantities, except they start counting at zero. The number zero is significant
to a computer, so we don’t skip it.
Our circles are in an array of square containers to X= 0 1 2 3 4 5 6 7
the right. To access a resource, our PLC instruction
will address its location using the octal references X
shown. If these were counters, “CT14” would 1X
access the black circle location.
2X

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 4–23
Chapter 4: CPU Specifications and Operation

V-memory address V-memory data


V–Memory (octal)
MSB
(binary)
LSB
Variable memory (called “V- V2017 0 1 0 0 1 1 1 0 0 0 1 0 1 0 0 1
memory”) stores data for the ladder
program and for configuration settings. V-memory locations and V-memory addresses are the
same thing, and are numbered in octal. For example, V2073 is a valid location, while V1983
is not valid (“9” and “8” are not valid octal digits).
Each V-memory location is one data word wide, meaning 16 bits. For configuration registers,
our manuals will show each bit of a V-memory word. The least significant bit (LSB) will be
on the right, and the most significant bit (MSB) on the left. We use the word “significant”,
referring to the relative binary weighting of the bits.
V-memory data is 16-bit binary, but we rarely program the data registers one bit at a time. We
use instructions or viewing tools that let us work with decimal, octal, and hexadecimal
numbers. All these are converted and stored as binary for us.
A frequently-asked question is “How do I tell if a number is octal, BCD, or hex”? The answer
is that we usually cannot tell just by looking at the data... but it does not really matter. What
matters is: the source or mechanism which writes data into a V-memory location and the
thing which later reads it must both use the same data type (i.e., octal, hex, binary, or
whatever). The V-memory location is just a storage box... that’s all. It does not convert or
move the data on its own.
Binary-Coded Decimal Numbers BCD number 4 9 3 6

Since humans naturally count in V-memory storage 0 1 0 0 1 0 0 1 0 0 1 1 0 1 1 0

decimal (10 fingers, 10 toes), we prefer to enter and view PLC data in decimal as well.
However, computers are more efficient in using pure binary numbers. A compromise solution
between the two is Binary-Coded Decimal (BCD) representation. A BCD digit ranges from 0
to 9, and is stored as four binary bits (a nibble). This permits each V-memory location to
store four BCD digits, with a range of decimal numbers from 0000 to 9999.
In a pure binary sense, a 16-bit word can represent numbers from 0 to 65535. In storing
BCD numbers, the range is reduced to only 0 to 9999. Many math instructions use Binary-
Coded Decimal (BCD) data, and DirectSOFT32 and the handheld programmer allow us to
enter and view data in BCD.
Hexadecimal Numbers
Hexadecimal numbers are similar to BCD numbers, except they utilize all possible binary
values in each 4-bit digit. They are base-16 numbers so we need 16 different digits. To extend
our decimal digits 0 through 9, we use A through F as shown.
Decimal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Hexadecimal 0 1 2 3 4 5 6 7 8 9 A B C D E F

A 4-digit hexadecimal number can represent all 65536 values in a V-memory word. The range
is from 0000 to FFFF (hex). PLCs often need this full range for sensor data, etc. Hexadecimal
is just a convenient way for humans to view full binary data.
Hexadecimal number A 7 F 4

V-memory storage 1 0 1 0 0 1 1 1 1 1 1 1 0 1 0 0

4–24 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 4: CPU Specifications and Operation

Memory Map
With any PLC system, you generally have many different types of information to process.
This includes input device status, output device status, various timing elements, parts counts,
etc. It is important to understand how the system represents and stores the various types of
data. For example, you need to know how the system identifies input points, output points,
data words, etc. The following paragraphs discuss the various memory types used in DL06
Micro PLCs. A memory map overview for the
CPU follows the memory descriptions. G LG 0V Y0 Y2 C1 Y5 Y7 Y10 Y12 C3 Y15 Y17
PWR
AC(L) AC(N) 24V C0 Y1 Y3 Y4 Y6 C2 Y11 Y13 Y14 Y16 N.C. RUN
OUTPUT: 6-240V 50 - 60Hz 2.0A, 6 - 27V 2.0A PWR: 100-240V 50-60Hz 40VA

Octal Numbering System


CPU

Y D0-06DR TX1
RX1
0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23
X TX2
RX2
INPUT: 12 - 24V 3 - 15mA

All memory locations and resources are LOGIC 06


numbered in Octal (base 8). For example, the C0
X0
K oyo

X1
X2
X3
C1
X4
X5
X6
X7
C2 X11 X13 X14 X16 C4 X21 X23 N.C.
X10 X12 C3 X15 X17 X20 X22 N.C.
TERM

diagram shows how the octal numbering system PORT1 PORT2 RUN STOP

works for the discrete input points. Notice the


octal system does not contain any numbers with
the digits 8 or 9. X0 X1 X2 X3 X4 X5 X6 X7

Discrete and Word Locations


As you examine the different memory types,
you’ll notice two types of memory in the DL06, X10 X11
discrete and word memory. Discrete memory is
one bit that can be either a 1 or a 0. Word Discrete – On or Off, 1 bit
memory is referred to as V memory (variable) X0
and is a 16-bit location normally used to
manipulate data/numbers, store
data/numbers, etc. Word Locations – 16 bits
Some information is automatically stored 0 1 0 1 0 0 0 0 0 0 1 0 0 1 0 1
in V memory. For example, the timer
current values are stored in V memory.
V Memory Locations for Discrete Memory Areas
The discrete memory area is for inputs, outputs, control relays, special relays, stages, timer
status bits and counter status bits. However, you can also access the bit data types as a V-
memory word. Each V-memory location contains 16 consecutive discrete locations. For
example, the following diagram shows how the X input points are mapped into V-memory
locations.
8 Discrete (X) Input Points

X7 X6 X5 X4 X3 X2 X1 X0

Bit # 15 14 13 12 11 10 9 8 7 6 5 V40400
4 3 2 1 0
These discrete memory areas and their corresponding V memory ranges are listed in the
memory area table for DL06 Micro PLCs on the following pages.

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 4–25
Chapter 4: CPU Specifications and Operation

Input Points (X Data Type)


The discrete input points are noted by an X data X0 Y0
type. There are 8 discrete input points and 256 OUT
discrete input addresses available with DL06
CPUs. In this example, the output point Y0 will
be turned on when input X0 energizes.
Output Points (Y Data Type)
The discrete output points are noted by a Y data X1 Y1
type. There are 6 discrete outputs and 256 discrete OUT
output addresses available with DL06 CPUs. In
this example, output point Y1 will be turned on
when input X1 energizes.
Control Relays (C Data Type)
Control relays are discrete bits normally used to X6 C5
control the user program. The control relays do OUT
not represent a real world device, that is, they
cannot be physically tied to switches, output coils, C5 Y10
etc. They are internal to the CPU. Because of this, OUT
control relays can be programmed as discrete
Y20
inputs or discrete outputs. These locations are used OUT
in programming the discrete memory locations (C)
or the corresponding word location which contains
16 consecutive discrete locations.
In this example, memory location C5 will energize
when input X6 turns on. The second rung shows a
simple example of how to use a control relay as an
input.
Timers and Timer Status Bits (T Data Type)
Timer status bits reflect the relationship between
the current value and the preset value of a specified
timer. The timer status bit will be on when the
current value is equal or greater than the preset X0
TMR T1
value of a corresponding timer. K30

When input X0 turns on, timer T1 will start.


When the timer reaches the preset of 3 seconds (K
T1 Y12
of 30) timer status contact T1 turns on. When T1 OUT
turns on, output Y12 turns on. Turning off X0
resets the timer.

4–26 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 4: CPU Specifications and Operation

Timer Current Values (V Data Type)


As mentioned earlier, some information is automatically
X0
stored in V memory. This is true for the current values TMR T1
associated with timers. For example, V0 holds the K1000
current value for Timer 0, V1 holds the current value
for Timer 1, etc. These can also be designated as V1 K30 Y2
TA0 (Timer Accumulated) for Timer 0, and OUT
TA1 for Timer 1.
V1 K50 Y3
The primary reason for this is programming flexibility. OUT
The example shows how you can use relational contacts
to monitor several time intervals from a single timer.
V1 K75 V1 K100 Y4
Counters and Counter Status Bits (CT Data type) OUT
Counter status bits that reflect the relationship between
the current value and the preset value of a specified
counter. The counter status bit will be on when the
X0
current value is equal to or greater than the preset value CNT CT3
K10
of a corresponding counter.
X1
Each time contact X0 transitions from off to on, the
counter increments by one. (If X1 comes on, the
counter is reset to zero.) When the counter reaches the CT3 Y2
preset of 10 counts (K of 10) counter status contact OUT
CT3 turns on. When CT3 turns on, output Y2 turns
on.
Counter Current Values (V Data Type) X0
CNT CT3
Just like the timers, the counter current values are also K10
automatically stored in V memory. For example, V1000 X1
holds the current value for Counter CT0, V1001 holds
the current value for Counter CT1, etc. These can also
be designated as CTA0 (Counter Accumulated) for V1003 K1 Y2
Counter 0 and CTA01 for Timer 1. OUT

The primary reason for this is programming flexibility.


V1003 K3 Y3
The example shows how you can use relational contacts OUT
to monitor the counter values.
V1003 K5 V1003 K8 Y4
OUT

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 4–27
Chapter 4: CPU Specifications and Operation

Word Memory (V Data Type)


Word memory is referred to as V memory (variable)
and is a 16-bit location normally used to X0
LD
manipulate data/numbers, store data/numbers, etc. K1345
Some information is automatically stored in V
memory. For example, the timer current values are OUT V2000
stored in V memory. The example shows how a
four-digit BCD constant is loaded into the
accumulator and then stored in a V-memory
location.
Stages (S Data type) Word Locations – 16 bits
Stages are used in RLLPLUS programs to create a 0 0 0 1 00 1 1 0 1 0 0 0 1 0 1
structured program, similar to a flowchart. Each
program Stage denotes a program segment. When
the program segment, or Stage, is active, the logic 1 3 4 5
within that segment is executed. If the Stage is off,
or inactive, the logic is not executed and the CPU Ladder Representation
skips to the next active Stage. (See Chapter 7 for a ISG
S0000 Wait for Start
more detailed description of RLLPLUS
Start S1
programming.) JMP
X0
Each Stage also has a discrete status bit that can be S500
JMP
used as an input to indicate whether the Stage is SG
S0001 Check for a Part
active or inactive. If the Stage is active, then the Part
Present S2
status bit is on. If the Stage is inactive, then the JMP
X1
status bit is off. This status bit can also be turned Part
Present S6
on or off by other instructions, such as the SET or JMP
X1
RESET instructions. This allows you to easily SG
control stages throughout the program. S0002 Clamp the part

Clamp
Special Relays (SP Data Type) SET
S400
Part
Special relays are discrete memory locations with Locked S3
JMP
pre-defined functionality. There are many different X2

types of special relays. For example, some aid in


program development, others provide system
operating status information, etc. Appendix D
provides a complete listing of the special relays.
In this example, control relay C10 will energize for SP5 C10
OUT
50 ms and de-energize for 50 ms because SP5 is a
pre–defined relay that will be on for 50 ms and off
for 50 ms.
SP4: 1 second clock
SP5: 100 ms clock
SP6: 50 ms clock

4–28 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 4: CPU Specifications and Operation

DL06 System V-memory


System Parameters and Default Data Locations (V Data Type)
The DL06 PLCs reserve several V-memory locations for storing system parameters or certain
types of system data. These memory locations store things like the error codes, High-Speed
I/O data, and other types of system setup information.
System Description of Contents Default Values /
V-memory Ranges
V700-V707 Sets the V-memory location for option card in slot 1 N/A
V710-V717 Sets the V-memory location for option card in slot 2 N/A
V720-V727 Sets the V-memory location for option card in slot 3 N/A
V730-V737 Sets the V-memory location for option card in slot 4 N/A
V3630–V3707 The default location for multiple preset values for UP/DWN and UP Counter 1 or N/A
pulse catch function
V3710-V3767 The default location for multiple preset values for UP/DWN and UP Counter 2 N/A
V7620–V7627
V7620 "Locations for DV–1000 operator interface parameters.Sets the V-memory V0 – V3760
V7621 location that contains the value.Sets the V-memory location that contains the V0 – V37601 - 32
V7622 message.Sets the total number (1 – 32) of V-memory locations to be V0 – V3760
V7623 displayed.Sets the V-memory location that contains the numbers to be V0 – V3760
V7624 displayed.Sets the V-memory location that contains the character code to be V-memory for X, Y, or C0,
V7625 displayed.Contains the function number that can be assigned to each 1, 2, 3, 12Default = 0000
V7626 key.Powerup operational mode.Change preset value."
V7627

Starting location for the multi–step presets for channel 1. The default value is
V7630 3630, which indicates the first value should be obtained from V3630. Since there Default: V3630
are 24 presets available, the default range is V3630 – V3707. You can change the Range: V0- V3710
starting point if necessary.

Starting location for the multi–step presets for channel 2. The default value is
V7631 3710, which indicates the first value should be obtained from V3710. Since there Default: V3710
are 24 presets available, the default range is V3710 – V3767. You can change the Range: V0- V3710
starting point if necessary.
V7632 Setup Register for Pulse Output N/A
Default: 0060
Lower Byte Range:Range:
10 – Counter 20 –
Quadrature 30 – Pulse Out
Sets the desired function code for the high speed counter, interrupt, pulse catch, 40 – Interrupt 50 – Pulse
V7633 pulse train, and input filter. Location can also be used to set the power-up in Run Catch
In.
60 – Filtered discrete
Upper Byte Range:Bits
Mode option. 8–11, 14, 15: Unused, Bit
13: Power–up in RUN,only
if Mode Switch is inTERM
position. Bit 12 is used to
enable the battery.
V7634 X0 Setup Register for High-Speed I/O functions Default: 1006
V7635 X1 Setup Register for High-Speed I/O functions Default: 1006
V7636 X2 Setup Register for High-Speed I/O functions Default: 1006
V7637 X3 Setup Register for High-Speed I/O functions Default: 1006
V7640 PID Loop table beginning address "V1200 – V7377
V10000 - V17777"

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 4–29
Chapter 4: CPU Specifications and Operation

System Description of Contents Default Values /


V-memory Ranges
V7641 Number of Loops 1-8
V7642 Error Code - V-memory Error location for Loop Table
V7643-V7647 Reserved
V7650 Port 2: Setup for V-memory address for Non-procedure protocol V1200 – V7377
V10000 - V17777
V7653 Port 2: Setup for terminate code for Non-procedure protocol
V7655 Port 2: Setup for the protocol, time-out, and the response delay time.
V7656 Port 2: Setup for the station number, baud rate, STOP bit, and parity.
V7657 Port 2: Setup completion code used to notify the completion of the parameter setup
V7660 Scan control setup: Keeps the scan control mode.
V7661 Setup timer over counter: Counts the times the actual scan time exceeds the user
setup time.
V7662–V7717 Reserved
V7720–V7722 Locations for DV–1000 operator interface parameters.
V7720 Titled Timer preset value pointer
V7721 Title Counter preset value pointer
V7722 HiByte-Titled Timer preset block size, LoByte-Titled Counter preset block size
V7723–V7737 Reserved
V7740 Port 1 and Port 2: Communication Auto Reset Timer Setup Default: 3030
V7741–V7746 Reserved
V7747 Location contains a 10mS counter (0-99). This location increments once every 10 mS
V7750 Reserved
V7751 Fault Message Error Code — stores the 4-digit code used with the FAULT instruction
when the instruction is executed.
V7752 I/O Configuration Error: Current ID code of error slot
V7753 I/O Configuration Error: Old ID code of error slot
V7754 I/O Configuration Error: error slot number
V7755 Error code — stores the fatal error code.
V7756 Error code — stores the major error code.
V7757 Error code — stores the minor error code.
V7760–V7762 Reserved
V7763 Program address where syntax error exists
V7764 Syntax error code
V7765 Scan counter — stores the total number of scan cycles that have occurred since the
last Program Mode to Run Mode transition.
V7766 Contains the number of seconds on the clock (00-59)
V7767 Contains the number of minutes on the clock (00-59)
V7770 Contains the number of hours on the clock (00-23)
V7771 Contains the day of the week (Mon., Tues., Wed., etc.)
V7772 Contains the day of the month (01, 02, etc.)
V7773 Contains the month (01 to 12)
V7774 Contains the year (00 to 99)
V7775 Scan — stores the current scan time (milliseconds).
V7776 Scan — stores the minimum scan time that has occurred since the last
V7777 Program Mode to Run Mode transition (milliseconds).
V37700-V37737 For remote I/O

4–30 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 4: CPU Specifications and Operation

DL06 Memory Map

Discrete Memory Word Memory


Memory Type Reference Reference Decimal Symbol
(octal) (octal)
X0
Input Points X0 – X777 V40400 - V40437 512

Y0
Output Points Y0 – Y777 V40500 – V40537 512

C0 C0
Control Relays C0 – C1777 V40600 - V40677 1024

SP0
Special Relays SP0 – SP777 V41200 – V41237 512

Timers T0 – T377 V41100 – V41117 256 TMR T0


K100
V0 K100
Timer Current Values None V0 – V377 256

T0
Timer Status Bits T0 – T377 V41100 – V41117 256

CNT CT0
Counters CT0 – CT177 V41140 – V41147 128 K10

Counter V1000 K100


Current Values None V1000 – V1177 128

CT0
Counter Status Bits CT0 – CT177 V41140 – V41147 128

V400-V677 192 None specific, used with many


Data Words None V1200 – V7377 3200 instructions
V10000 - V17777 4096

Data Words None V7400 – V7577 128 None specific, used with many
Non-volatile instructions
SG S0
Stages S0 – S1777 V41000 – V41017 1024
S001
GX0 GY0
Remote I/O GX0-GX3777 V40000-V40177 2048
GY0-GY3777 V40200-V40377 2048

V700-V777 64
System parameters None V7600 – V7777 128 None specific, used for various purposes
V36000-V37777 1024
1-The DL06 systems are limited to 20 discrete inputs and 16 discrete outputs with the
present available hardware, but 512 point addresses exist.

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 4–31
Chapter 4: CPU Specifications and Operation

X Input / Y Output Bit Map


This table provides a listing of individual input and output points associated with each V-
memory address bit for the DL06’s twenty integrated physical inputs and 16 integrated
physical outputs in addition to up to 64 inputs and 64 outputs for option cards. Actual
available references are X0 to X777 (V40400 – V40437) and Y0 to Y777 (V40500 -
V40537).
MSB DL06 Input (X) and Output (Y) Points LSB X Input Y Output
17 16 15 14 13 12 11 10 7 6 5 4 3 2 1 0 Address Address
017 016 015 014 013 012 011 010 007 006 005 004 003 002 001 000 V40400 V40500
037 036 035 034 033 032 031 030 027 026 025 024 023 022 021 020 V40401 V40501
057 056 055 054 053 052 051 050 047 046 045 044 043 042 041 040 V40402 V40502
077 076 075 074 073 072 071 070 067 066 065 064 063 062 061 060 V40403 V40503
117 116 115 114 113 112 111 110 107 106 105 104 103 102 101 100 V40404 V40504
137 136 135 134 133 132 131 130 127 126 125 124 123 122 121 120 V40405 V40505
157 156 155 154 153 152 151 150 147 146 145 144 143 142 141 140 V40406 V40506
177 176 175 174 173 172 171 170 167 166 165 164 163 162 161 160 V40407 V40507
217 216 215 214 213 212 211 210 207 206 205 204 203 202 201 200 V40410 V40510
237 236 235 234 233 232 231 230 227 226 225 224 223 222 221 220 V40411 V40511
257 256 255 254 253 252 251 250 247 246 245 244 243 242 241 240 V40412 V40512
277 276 275 274 273 272 271 270 267 266 265 264 263 262 261 260 V40413 V40513
317 316 315 314 313 312 311 310 307 306 305 304 303 302 301 300 V40414 V40514
337 336 335 334 333 332 331 330 327 326 325 324 323 322 321 320 V40415 V40515
357 356 355 354 353 352 351 350 347 346 345 344 343 342 341 340 V40416 V40516
377 376 375 374 373 372 371 370 367 366 365 364 363 362 361 360 V40417 V40517
417 416 415 414 413 412 411 410 407 406 405 404 403 402 401 400 V40420 V40520
437 436 435 434 433 432 431 430 427 426 425 424 423 422 421 420 V40421 V40521
457 456 455 454 453 452 451 450 447 446 445 444 443 442 441 440 V40422 V40522
477 476 475 474 473 472 471 470 467 466 465 464 463 462 461 460 V40423 V40523
517 516 515 514 513 512 511 510 507 506 505 504 503 502 501 500 V40424 V40524
537 536 535 534 533 532 531 530 527 526 525 524 523 522 521 520 V40425 V40525
557 556 555 554 553 552 551 550 547 546 545 544 543 542 541 540 V40426 V40526
577 576 575 574 573 572 571 570 567 566 565 564 563 562 561 560 V40427 V40527
617 616 615 614 613 612 611 610 607 606 605 604 603 602 601 600 V40430 V40530
637 636 635 634 633 632 631 630 627 626 625 624 623 622 621 620 V40431 V40531
657 656 655 654 653 652 651 650 647 646 645 644 643 642 641 640 V40432 V40532
677 676 675 674 673 672 671 670 667 666 665 664 663 662 661 660 V40433 V40533
717 716 715 714 713 712 711 710 707 706 705 704 703 702 701 700 V40434 V40534
737 736 735 734 733 732 731 730 727 726 725 724 723 722 721 720 V40435 V40535
757 756 755 754 753 752 751 750 747 746 745 744 743 742 741 740 V40436 V40536
777 776 775 774 773 772 771 770 767 766 765 764 763 762 761 760 V40437 V40537

4–32 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 4: CPU Specifications and Operation

Stage Control / Status Bit Map


This table provides a listing of individual Stage control bits associated with each V-memory
address bit.
MSB DL06 Stage (S) Control Bits LSB
Address
17 16 15 14 13 12 11 10 7 6 5 4 3 2 1 0
017 016 015 014 013 012 011 010 007 006 005 004 003 002 001 000 V41000
037 036 035 034 033 032 031 030 027 026 025 024 023 022 021 020 V41001
057 056 055 054 053 052 051 050 047 046 045 044 043 042 041 040 V41002
077 076 075 074 073 072 071 070 067 066 065 064 063 062 061 060 V41003
117 116 115 114 113 112 111 110 107 106 105 104 103 102 101 100 V41004
137 136 135 134 133 132 131 130 127 126 125 124 123 122 121 120 V41005
157 156 155 154 153 152 151 150 147 146 145 144 143 142 141 140 V41006
177 176 175 174 173 172 171 170 167 166 165 164 163 162 161 160 V41007
217 216 215 214 213 212 211 210 207 206 205 204 203 202 201 200 V41010
237 236 235 234 233 232 231 230 227 226 225 224 223 222 221 220 V41011
257 256 255 254 253 252 251 250 247 246 245 244 243 242 241 240 V41012
277 276 275 274 273 272 271 270 267 266 265 264 263 262 261 260 V41013
317 316 315 314 313 312 311 310 307 306 305 304 303 302 301 300 V41014
337 336 335 334 333 332 331 330 327 326 325 324 323 322 321 320 V41015
357 356 355 354 353 352 351 350 347 346 345 344 343 342 341 340 V41016
377 376 375 374 373 372 371 370 367 366 365 364 363 362 361 360 V41017
417 416 415 414 413 412 411 410 407 406 405 404 403 402 401 400 V41020
437 436 435 434 433 432 431 430 427 426 425 424 423 422 421 420 V41021
457 456 455 454 453 452 451 450 447 446 445 444 443 442 441 440 V41022
477 476 475 474 473 472 471 470 467 466 465 464 463 462 461 460 V41023

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 4–33
Chapter 4: CPU Specifications and Operation

MSB DL06 Stage (S) Control Bits LSB


Address
17 16 15 14 13 12 11 10 7 6 5 4 3 2 1 0
517 516 515 514 513 512 511 510 507 506 505 504 503 502 501 500 V41024
537 536 535 534 533 532 531 530 527 526 525 524 523 522 521 520 V41025
557 556 555 554 553 552 551 550 547 546 545 544 543 542 541 540 V41026
577 576 575 574 573 572 571 570 567 566 565 564 563 562 561 560 V41027
617 616 615 614 613 612 611 610 607 606 605 604 603 602 601 600 V41030
637 636 635 634 633 632 631 630 627 626 625 624 623 622 621 620 V41031
657 656 655 654 653 652 651 650 647 646 645 644 643 642 641 640 V41032
677 676 675 674 673 672 671 670 667 666 665 664 663 662 661 660 V41033
717 716 715 714 713 712 711 710 707 706 705 704 703 702 701 700 V41034
737 736 735 734 733 732 731 730 727 726 725 724 723 722 721 720 V41035
757 756 755 754 753 752 751 750 747 746 745 744 743 742 741 740 V41036
777 776 775 774 773 772 771 770 767 766 765 764 763 762 761 760 V41037
1017 1016 1015 1014 1013 1012 1011 1010 1007 1006 1005 1004 1003 1002 1001 1000 V41040
1037 1036 1035 1034 1033 1032 1031 1030 1027 1026 1025 1024 1023 1022 1021 1020 V41041
1057 1056 1055 1054 1053 1052 1051 1050 1047 1046 1045 1044 1043 1042 1041 1040 V41042
1077 1076 1075 1074 1073 1072 1071 1070 1067 1066 1065 1064 1063 1062 1061 1060 V41043
1117 1116 1115 1114 1113 1112 1111 1110 1107 1106 1105 1104 1103 1102 1101 1100 V41044
1137 1136 1135 1134 1133 1132 1131 1130 1127 1126 1125 1124 1123 1122 1121 1120 V41045
1157 1156 1155 1154 1153 1152 1151 1150 1147 1146 1145 1144 1143 1142 1141 1140 V41046
1177 1176 1175 1174 1173 1172 1171 1170 1167 1166 1165 1164 1163 1162 1161 1160 V41047
1217 1216 1215 1214 1213 1212 1211 1210 1207 1206 1205 1204 1203 1202 1201 1200 V41050
1237 1236 1235 1234 1233 1232 1231 1230 1227 1226 1225 1224 1223 1222 1221 1220 V41051
1257 1256 1255 1254 1253 1252 1251 1250 1247 1246 1245 1244 1243 1242 1241 1240 V41052
1277 1276 1275 1274 1273 1272 1271 1270 1267 1266 1265 1264 1263 1262 1261 1260 V41053
1317 1316 1315 1314 1313 1312 1311 1310 1307 1306 1305 1304 1303 1302 1301 1300 V41054
1337 1336 1335 1334 1333 1332 1331 1330 1327 1326 1325 1324 1323 1322 1321 1320 V41055
1357 1356 1355 1354 1353 1352 1351 1350 1347 1346 1345 1344 1343 1342 1341 1340 V41056
1377 1376 1375 1374 1373 1372 1371 1370 1367 1366 1365 1364 1363 1362 1361 1360 V41057
1417 1416 1415 1414 1413 1412 1411 1410 1407 1406 1405 1404 1403 1402 1401 1400 V41060
1437 1436 1435 1434 1433 1432 1431 1430 1427 1426 1425 1424 1423 1422 1421 1420 V41061
1457 1456 1455 1454 1453 1452 1451 1450 1447 1446 1445 1444 1443 1442 1441 1440 V41062
1477 1476 1475 1474 1473 1472 1471 1470 1467 1466 1465 1464 1463 1462 1461 1460 V41063
1517 1516 1515 1514 1513 1512 1511 1510 1507 1506 1505 1504 1503 1502 1501 1500 V41064
1537 1536 1535 1534 1533 1532 1531 1530 1527 1526 1525 1524 1523 1522 1521 1520 V41065
1557 1556 1555 1554 1553 1552 1551 1550 1547 1546 1545 1544 1543 1542 1541 1540 V41066
1577 1576 1575 1574 1573 1572 1571 1570 1567 1566 1565 1564 1563 1562 1561 1560 V41067
1617 1616 1615 1614 1613 1612 1611 1610 1607 1606 1605 1604 1603 1602 1601 1600 V41070
1637 1636 1635 1634 1633 1632 1631 1630 1627 1626 1625 1624 1623 1622 1621 1620 V41071
1657 1656 1655 1654 1653 1652 1651 1650 1647 1646 1645 1644 1643 1642 1641 1640 V41072
1677 1676 1675 1674 1673 1672 1671 1670 1667 1666 1665 1664 1663 1662 1661 1660 V41073
1717 1716 1715 1714 1713 1712 1711 1710 1707 1706 1705 1704 1703 1702 1701 1700 V41074
1737 1736 1735 1734 1733 1732 1731 1730 1727 1726 1725 1724 1723 1722 1721 1720 V41075
1757 1756 1755 1754 1753 1752 1751 1750 1747 1746 1745 1744 1743 1742 1741 1740 V41076
1777 1776 1775 1774 1773 1772 1771 1770 1767 1766 1765 1764 1763 1762 1761 1760 V41077

4–34 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 4: CPU Specifications and Operation

Control Relay Bit Map


This table provides a listing of the individual control relays associated with each V-memory
address bit
MSB DL06 Control Relays (C) LSB
Address
17 16 15 14 13 12 11 10 7 6 5 4 3 2 1 0
017 016 015 014 013 012 011 010 007 006 005 004 003 002 001 000 V40600
037 036 035 034 033 032 031 030 027 026 025 024 023 022 021 020 V40601
057 056 055 054 053 052 051 050 047 046 045 044 043 042 041 040 V40602
077 076 075 074 073 072 071 070 067 066 065 064 063 062 061 060 V40603
117 116 115 114 113 112 111 110 107 106 105 104 103 102 101 100 V40604
137 136 135 134 133 132 131 130 127 126 125 124 123 122 121 120 V40605
157 156 155 154 153 152 151 150 147 146 145 144 143 142 141 140 V40606
177 176 175 174 173 172 171 170 167 166 165 164 163 162 161 160 V40607
217 216 215 214 213 212 211 210 207 206 205 204 203 202 201 200 V40610
237 236 235 234 233 232 231 230 227 226 225 224 223 222 221 220 V40611
257 256 255 254 253 252 251 250 247 246 245 244 243 242 241 240 V40612
277 276 275 274 273 272 271 270 267 266 265 264 263 262 261 260 V40613
317 316 315 314 313 312 311 310 307 306 305 304 303 302 301 300 V40614
337 336 335 334 333 332 331 330 327 326 325 324 323 322 321 320 V40615
357 356 355 354 353 352 351 350 347 346 345 344 343 342 341 340 V40616
377 376 375 374 373 372 371 370 367 366 365 364 363 362 361 360 V40617
417 416 415 414 413 412 411 410 407 406 405 404 403 402 401 400 V40620
437 436 435 434 433 432 431 430 427 426 425 424 423 422 421 420 V40621
457 456 455 454 453 452 451 450 447 446 445 444 443 442 441 440 V40622
477 476 475 474 473 472 471 470 467 466 465 464 463 462 461 460 V40623
517 516 515 514 513 512 511 510 507 506 505 504 503 502 501 500 V40624
537 536 535 534 533 532 531 530 527 526 525 524 523 522 521 520 V40625
557 556 555 554 553 552 551 550 547 546 545 544 543 542 541 540 V40626
577 576 575 574 573 572 571 570 567 566 565 564 563 562 561 560 V40627
617 616 615 614 613 612 611 610 607 606 605 604 603 602 601 600 V40630
637 636 635 634 633 632 631 630 627 626 625 624 623 622 621 620 V40631
657 656 655 654 653 652 651 650 647 646 645 644 643 642 641 640 V40632
677 676 675 674 673 672 671 670 667 666 665 664 663 662 661 660 V40633
717 716 715 714 713 712 711 710 707 706 705 704 703 702 701 700 V40634
737 736 735 734 733 732 731 730 727 726 725 724 723 722 721 720 V40635
757 756 755 754 753 752 751 750 747 746 745 744 743 742 741 740 V40636
777 776 775 774 773 772 771 770 767 766 765 764 763 762 761 760 V40637

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 4–35
Chapter 4: CPU Specifications and Operation

MSB DL06 Control Relays (C) LSB


Address
17 16 15 14 13 12 11 10 7 6 5 4 3 2 1 0
1017 1016 1015 1014 1013 1012 1011 1010 1007 1006 1005 1004 1003 1002 1001 1000 V40640
1037 1036 1035 1034 1033 1032 1031 1030 1027 1026 1025 1024 1023 1022 1021 1020 V40641
1057 1056 1055 1054 1053 1052 1051 1050 1047 1046 1045 1044 1043 1042 1041 1040 V40642
1077 1076 1075 1074 1073 1072 1071 1070 1067 1066 1065 1064 1063 1062 1061 1060 V40643
1117 1116 1115 1114 1113 1112 1111 1110 1107 1106 1105 1104 1103 1102 1101 1100 V40644
1137 1136 1135 1134 1133 1132 1131 1130 1127 1126 1125 1124 1123 1122 1121 1120 V40645
1157 1156 1155 1154 1153 1152 1151 1150 1147 1146 1145 1144 1143 1142 1141 1140 V40646
1177 1176 1175 1174 1173 1172 1171 1170 1167 1166 1165 1164 1163 1162 1161 1160 V40647
1217 1216 1215 1214 1213 1212 1211 1210 1207 1206 1205 1204 1203 1202 1201 1200 V40650
1237 1236 1235 1234 1233 1232 1231 1230 1227 1226 1225 1224 1223 1222 1221 1220 V40651
1257 1256 1255 1254 1253 1252 1251 1250 1247 1246 1245 1244 1243 1242 1241 1240 V40652
1277 1276 1275 1274 1273 1272 1271 1270 1267 1266 1265 1264 1263 1262 1261 1260 V40653
1317 1316 1315 1314 1313 1312 1311 1310 1307 1306 1305 1304 1303 1302 1301 1300 V40654
1337 1336 1335 1334 1333 1332 1331 1330 1327 1326 1325 1324 1323 1322 1321 1320 V40655
1357 1356 1355 1354 1353 1352 1351 1350 1347 1346 1345 1344 1343 1342 1341 1340 V40656
1377 1376 1375 1374 1373 1372 1371 1370 1367 1366 1365 1364 1363 1362 1361 1360 V40657
1417 1416 1415 1414 1413 1412 1411 1410 1407 1406 1405 1404 1403 1402 1401 1400 V40660
1437 1436 1435 1434 1433 1432 1431 1430 1427 1426 1425 1424 1423 1422 1421 1420 V40661
1457 1456 1455 1454 1453 1452 1451 1450 1447 1446 1445 1444 1443 1442 1441 1440 V40662
1477 1476 1475 1474 1473 1472 1471 1470 1467 1466 1465 1464 1463 1462 1461 1460 V40663
1517 1516 1515 1514 1513 1512 1511 1510 1507 1506 1505 1504 1503 1502 1501 1500 V40664
1537 1536 1535 1534 1533 1532 1531 1530 1527 1526 1525 1524 1523 1522 1521 1520 V40665
1557 1556 1555 1554 1553 1552 1551 1550 1547 1546 1545 1544 1543 1542 1541 1540 V40666
1577 1576 1575 1574 1573 1572 1571 1570 1567 1566 1565 1564 1563 1562 1561 1560 V40667
1617 1616 1615 1614 1613 1612 1611 1610 1607 1606 1605 1604 1603 1602 1601 1600 V40670
1637 1636 1635 1634 1633 1632 1631 1630 1627 1626 1625 1624 1623 1622 1621 1620 V40671
1657 1656 1655 1654 1653 1652 1651 1650 1647 1646 1645 1644 1643 1642 1641 1640 V40672
1677 1676 1675 1674 1673 1672 1671 1670 1667 1666 1665 1664 1663 1662 1661 1660 V40673
1717 1716 1715 1714 1713 1712 1711 1710 1707 1706 1705 1704 1703 1702 1701 1700 V40674
1737 1736 1735 1734 1733 1732 1731 1730 1727 1726 1725 1724 1723 1722 1721 1720 V40675
1757 1756 1755 1754 1753 1752 1751 1750 1747 1746 1745 1744 1743 1742 1741 1740 V40676
1777 1776 1775 1774 1773 1772 1771 1770 1767 1766 1765 1764 1763 1762 1761 1760 V40677

4–36 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 4: CPU Specifications and Operation

Timer Status Bit Map


This table provides a listing of individual timer contacts associated with each V-memory
address bit.

MSB DL06 Timer (T) Contacts LSB


Address
17 16 15 14 13 12 11 10 7 6 5 4 3 2 1 0
017 016 015 014 013 012 011 010 007 006 005 004 003 002 001 000 V41100
037 036 035 034 033 032 031 030 027 026 025 024 023 022 021 020 V41101
057 056 055 054 053 052 051 050 047 046 045 044 043 042 041 040 V41102
077 076 075 074 073 072 071 070 067 066 065 064 063 062 061 060 V41103
117 116 115 114 113 112 111 110 107 106 105 104 103 102 101 100 V41104
137 136 135 134 133 132 131 130 127 126 125 124 123 122 121 120 V41105
157 156 155 154 153 152 151 150 147 146 145 144 143 142 141 140 V41106
177 176 175 174 173 172 171 170 167 166 165 164 163 162 161 160 V41107
217 216 215 214 213 212 211 210 207 206 205 204 203 202 201 200 V41110
237 236 235 234 233 232 231 230 227 226 225 224 223 222 221 220 V41111
257 256 255 254 253 252 251 250 247 246 245 244 243 242 241 240 V41112
277 276 275 274 273 272 271 270 267 266 265 264 263 262 261 260 V41113
317 316 315 314 313 312 311 310 307 306 305 304 303 302 301 300 V41114
337 336 335 334 333 332 331 330 327 326 325 324 323 322 321 320 V41115
357 356 355 354 353 352 351 350 347 346 345 344 343 342 341 340 V41116
377 376 375 374 373 372 371 370 367 366 365 364 363 362 361 360 V41117

Counter Status Bit Map


This table provides a listing of individual counter contacts associated with each V-memory
address bit.

MSB DL06 Counter (CT) Contacts LSB


Address
17 16 15 14 13 12 11 10 7 6 5 4 3 2 1 0
017 016 015 014 013 012 011 010 007 006 005 004 003 002 001 000 V41140
037 036 035 034 033 032 031 030 027 026 025 024 023 022 021 020 V41141
057 056 055 054 053 052 051 050 047 046 045 044 043 042 041 040 V41142
077 076 075 074 073 072 071 070 067 066 065 064 063 062 061 060 V41143
117 116 115 114 113 112 111 110 107 106 105 104 103 102 101 100 V41144
137 136 135 134 133 132 131 130 127 126 125 124 123 122 121 120 V41145
157 156 155 154 153 152 151 150 147 146 145 144 143 142 141 140 V41146
177 176 175 174 173 172 171 170 167 166 165 164 163 162 161 160 V41147

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 4–37
Chapter 4: CPU Specifications and Operation

Remote I/O Bit Map


This table provides a listing of the individual remote I/O points associated with each
V-memory address bit.

MSB Remote I/O (GX) and (GY) Points LSB GX GY


17 16 15 14 13 12 11 10 7 6 5 4 3 2 1 0 Address Address
017 016 015 014 013 012 011 010 007 006 005 004 003 002 001 000 V40000 V40200
037 036 035 034 033 032 031 030 027 026 025 024 023 022 021 020 V40001 V40201
057 056 055 054 053 052 051 050 047 046 045 044 043 042 041 040 V40002 V40202
077 076 075 074 073 072 071 070 067 066 065 064 063 062 061 060 V40003 V40203
117 116 115 114 113 112 111 110 107 106 105 104 103 102 101 100 V40004 V40204
137 136 135 134 133 132 131 130 127 126 125 124 123 122 121 120 V40005 V40205
157 156 155 154 153 152 151 150 147 146 145 144 143 142 141 140 V40006 V40206
177 176 175 174 173 172 171 170 167 166 165 164 163 162 161 160 V40007 V40207
217 216 215 214 213 212 211 210 207 206 205 204 203 202 201 200 V40010 V40210
237 236 235 234 233 232 231 230 227 226 225 224 223 222 221 220 V40011 V40211
257 256 255 254 253 252 251 250 247 246 245 244 243 242 241 240 V40012 V40212
277 276 275 274 273 272 271 270 267 266 265 264 263 262 261 260 V40013 V40213
317 316 315 314 313 312 311 310 307 306 305 304 303 302 301 300 V40004 V40214
337 336 335 334 333 332 331 330 327 326 325 324 323 322 321 320 V40015 V40215
357 356 355 354 353 352 351 350 347 346 345 344 343 342 341 340 V40016 V40216
377 376 375 374 373 372 371 370 367 366 365 364 363 362 361 360 V40007 V40217
417 416 415 414 413 412 411 410 407 406 405 404 403 402 401 400 V40020 V40220
437 436 435 434 433 432 431 430 427 426 425 424 423 422 421 420 V40021 V40221
457 456 455 454 453 452 451 450 447 446 445 444 443 442 441 440 V40022 V40222
477 476 475 474 473 472 471 470 467 466 465 464 463 462 461 460 V40023 V40223
517 516 515 514 513 512 511 510 507 506 505 504 503 502 501 500 V40024 V40224
537 536 535 534 533 532 531 530 527 526 525 524 523 522 521 520 V40025 V40225
557 556 555 554 553 552 551 550 547 546 545 544 543 542 541 540 V40026 V40226
577 576 575 574 573 572 571 570 567 566 565 564 563 562 561 560 V40027 V40227
617 616 615 614 613 612 611 610 607 606 605 604 603 602 601 600 V40030 V40230
637 636 635 634 633 632 631 630 627 626 625 624 623 622 621 620 V40031 V40231
657 656 655 654 653 652 651 650 647 646 645 644 643 642 641 640 V40032 V40232
677 676 675 674 673 672 671 670 667 666 665 664 663 662 661 660 V40033 V40233
717 716 715 714 713 712 711 710 707 706 705 704 703 702 701 700 V40034 V40234
737 736 735 734 733 732 731 730 727 726 725 724 723 722 721 720 V40035 V40235
757 756 755 754 753 752 751 750 747 746 745 744 743 742 741 740 V40036 V40236
777 776 775 774 773 772 771 770 767 766 765 764 763 762 761 760 V40037 V40237

4–38 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 4: CPU Specifications and Operation

MSB DL06 Remote I/O (GX) and (GY) Points LSB GX GY


17 16 15 14 13 12 11 10 7 6 5 4 3 2 1 0 Address Address
1017 1016 1015 1014 1013 1012 1011 1010 1007 1006 1005 1004 1003 1002 1001 1000 V40040 V40240
1037 1036 1035 1034 1033 1032 1031 1030 1027 1026 1025 1024 1023 1022 1021 1020 V40041 V40241
1057 1056 1055 1054 1053 1052 1051 1050 1047 1046 1045 1044 1043 1042 1041 1040 V40042 V40242
1077 1076 1075 1074 1073 1072 1071 1070 1067 1066 1065 1064 1063 1062 1061 1060 V40043 V40243
1117 1116 1115 1114 1113 1112 1111 1110 1107 1106 1105 1104 1103 1102 1101 1100 V40044 V40244
1137 1136 1135 1134 1133 1132 1131 1130 1127 1126 1125 1124 1123 1122 1121 1120 V40045 V40245
1157 1156 1155 1154 1153 1152 1151 1150 1147 1146 1145 1144 1143 1142 1141 1140 V40046 V40246
1177 1176 1175 1174 1173 1172 1171 1170 1167 1166 1165 1164 1163 1162 1161 1160 V40047 V40247
1217 1216 1215 1214 1213 1212 1211 1210 1207 1206 1205 1204 1203 1202 1201 1200 V40050 V40250
1237 1236 1235 1234 1233 1232 1231 1230 1227 1226 1225 1224 1223 1222 1221 1220 V40051 V40251
1257 1256 1255 1254 1253 1252 1251 1250 1247 1246 1245 1244 1243 1242 1241 1240 V40052 V40252
1277 1276 1275 1274 1273 1272 1271 1270 1267 1266 1265 1264 1263 1262 1261 1260 V40053 V40253
1317 1316 1315 1314 1313 1312 1311 1310 1307 1306 1305 1304 1303 1302 1301 1300 V40054 V40254
1337 1336 1335 1334 1333 1332 1331 1330 1327 1326 1325 1324 1323 1322 1321 1320 V40055 V40255
1357 1356 1355 1354 1353 1352 1351 1350 1347 1346 1345 1344 1343 1342 1341 1340 V40056 V40256
1377 1376 1375 1374 1373 1372 1371 1370 1367 1366 1365 1364 1363 1362 1361 1360 V40057 V40257
1417 1416 1415 1414 1413 1412 1411 1410 1407 1406 1405 1404 1403 1402 1401 1400 V40060 V40260
1437 1436 1435 1434 1433 1432 1431 1430 1427 1426 1425 1424 1423 1422 1421 1420 V40061 V40261
1457 1456 1455 1454 1453 1452 1451 1450 1447 1446 1445 1444 1443 1442 1441 1440 V40062 V40262
1477 1476 1475 1474 1473 1472 1471 1470 1467 1466 1465 1464 1463 1462 1461 1460 V40063 V40263
1517 1516 1515 1514 1513 1512 1511 1510 1507 1506 1505 1504 1503 1502 1501 1500 V40064 V40264
1537 1536 1535 1534 1533 1532 1531 1530 1527 1526 1525 1524 1523 1522 1521 1520 V40065 V40265
1557 1556 1555 1554 1553 1552 1551 1550 1547 1546 1545 1544 1543 1542 1541 1540 V40066 V40266
1577 1576 1575 1574 1573 1572 1571 1570 1567 1566 1565 1564 1563 1562 1561 1560 V40067 V40267
1617 1616 1615 1614 1613 1612 1611 1610 1607 1606 1605 1604 1603 1602 1601 1600 V40070 V40270
1637 1636 1635 1634 1633 1632 1631 1630 1627 1626 1625 1624 1623 1622 1621 1620 V40071 V40271
1657 1656 1655 1654 1653 1652 1651 1650 1647 1646 1645 1644 1643 1642 1641 1640 V40072 V40272
1677 1676 1675 1674 1673 1672 1671 1670 1667 1666 1665 1664 1663 1662 1661 1660 V40073 V40273
1717 1716 1715 1714 1713 1712 1711 1710 1707 1706 1705 1704 1703 1702 1701 1700 V40074 V40274
1737 1736 1735 1734 1733 1732 1731 1730 1727 1726 1725 1724 1723 1722 1721 1720 V40075 V40275
1757 1756 1755 1754 1753 1752 1751 1750 1747 1746 1745 1744 1743 1742 1741 1740 V40076 V40276
1777 1776 1775 1774 1773 1772 1771 1770 1767 1766 1765 1764 1763 1762 1761 1760 V40077 V40277

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 4–39
Chapter 4: CPU Specifications and Operation

MSB DL06 Remote I/O (GX) and (GY) Points LSB GX GY


17 16 15 14 13 12 11 10 7 6 5 4 3 2 1 0 Address Address
2017 2016 2015 2014 2013 2012 2011 2010 2007 2006 2005 2004 2003 2002 2001 2000 V40100 V40300
2037 2036 2035 2034 2033 2032 2031 2030 2027 2026 2025 2024 2023 2022 2021 2020 V40101 V40301
2057 2056 2055 2054 2053 2052 2051 2050 2047 2046 2045 2044 2043 2042 2041 2040 V40102 V40302
2077 2076 2075 2074 2073 2072 2071 2070 2067 2066 2065 2064 2063 2062 2061 2060 V40103 V40303
2117 2116 2115 2114 2113 2112 2111 2110 2107 2106 2105 2104 2103 2102 2101 2100 V40104 V40304
2137 2136 2135 2134 2133 2132 2131 2130 2127 2126 2125 2124 2123 2122 2121 2120 V40105 V40305
2157 2156 2155 2154 2153 2152 2151 2150 2147 2146 2145 2144 2143 2142 2141 2140 V40106 V40306
2177 2176 2175 2174 2173 2172 2171 2170 2167 2166 2165 2164 2163 2162 2161 2160 V40107 V40307
2217 2216 2215 2214 2213 2212 2211 2210 2207 2206 2205 2204 2203 2202 2201 2200 V40110 V40310
2237 2236 2235 2234 2233 2232 2231 2230 2227 2226 2225 2224 2223 2222 2221 2220 V40111 V40311
2257 2256 2255 2254 2253 2252 2251 2250 2247 2246 2245 2244 2243 2242 2241 2240 V40112 V40312
2277 2276 2275 2274 2273 2272 2271 2270 2267 2266 2265 2264 2263 2262 2261 2260 V40113 V40313
2317 2316 2315 2314 2313 2312 2311 2310 2307 2306 2305 2304 2303 2302 2301 2300 V40114 V40314
2337 2336 2335 2334 2333 2332 2331 2330 2327 2326 2325 2324 2323 2322 2321 2320 V40115 V40315
2357 2356 2355 2354 2353 2352 2351 2350 2347 2346 2345 2344 2343 2342 2341 2340 V40116 V40316
2377 2376 2375 2374 2373 2372 2371 2370 2367 2366 2365 2364 2363 2362 2361 2360 V40117 V40317
2417 2416 2415 2414 2413 2412 2411 2410 2407 2406 2405 2404 2403 2402 2401 2400 V40120 V40320
2437 2436 2435 2434 2433 2432 2431 2430 2427 2426 2425 2424 2423 2422 2421 2420 V40121 V40321
2457 2456 2455 2454 2453 2452 2451 2450 2447 2446 2445 2444 2443 2442 2441 2440 V40122 V40322
2477 2476 2475 2474 2473 2472 2471 2470 2467 2466 2465 2464 2463 2462 2461 2460 V40123 V40323
2517 2516 2515 2514 2513 2512 2511 2510 2507 2506 2505 2504 2503 2502 2501 2500 V40124 V40324
2537 2536 2535 2534 2533 2532 2531 2530 2527 2526 2525 2524 2523 2522 2521 2520 V40125 V40325
2557 2556 2555 2554 2553 2552 2551 2550 2547 2546 2545 2544 2543 2542 2541 2540 V40126 V40326
2577 2576 2575 2574 2573 2572 2571 2570 2567 2566 2565 2564 2563 2562 2561 2560 V40127 V40327
2617 2616 2615 2614 2613 2612 2611 2610 2607 2606 2605 2604 2603 2602 2601 2600 V40130 V40330
2637 2636 2635 2634 2633 2632 2631 2630 2627 2626 2625 2624 2623 2622 2621 2620 V40131 V40331
2657 2656 2655 2654 2653 2652 2651 2650 2647 2646 2645 2644 2643 2642 2641 2640 V40132 V40332
2677 2676 2675 2674 2673 2672 2671 2670 2667 2666 2665 2664 2663 2662 2661 2660 V40133 V40333
2717 2716 2715 2714 2713 2712 2711 2710 2707 2706 2705 2704 2703 2702 2701 2700 V40134 V40334
2737 2736 2735 2734 2733 2732 2731 2730 2727 2726 2725 2724 2723 2722 2721 2720 V40135 V40335
2757 2756 2755 2754 2753 2752 2751 2750 2747 2736 2735 2734 2733 2732 2731 2730 V40136 V40336
2777 2776 2775 2774 2773 2772 2771 2770 2767 2766 2765 2764 2763 2762 2761 2760 V40137 V40337

4–40 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 4: CPU Specifications and Operation

MSB DL06 Remote I/O (GX) and (GY) Points LSB GX GY


17 16 15 14 13 12 11 10 7 6 5 4 3 2 1 0 Address Address
3017 3016 3015 3014 3013 3012 3011 3010 3007 3006 3005 3004 3003 3002 3001 3000 V40140 V40340
3037 3036 3035 3034 3033 3032 3031 3030 3027 3026 3025 3024 3023 3022 3021 3020 V40141 V40341
3057 3056 3055 3054 3053 3052 3051 3050 3047 3046 3045 3044 3043 3042 3041 3040 V40142 V40342
3077 3076 3075 3074 3073 3072 3071 3070 3067 3066 3065 3064 3063 3062 3061 3060 V40143 V40343
3117 3116 3115 3114 3113 3112 3111 3110 3107 3106 3105 3104 3103 3102 3101 3100 V40144 V40344
3137 3136 3135 3134 3133 3132 3131 3130 3127 3126 3125 3124 3123 3122 3121 3120 V40145 V40345
3157 3156 3155 3154 3153 3152 3151 3150 3147 3146 3145 3144 3143 3142 3141 3140 V40146 V40346
3177 3176 3175 3174 3173 3172 3171 3170 3167 3166 3165 3164 3163 3162 3161 3160 V40147 V40347
3217 3216 3215 3214 3213 3212 3211 3210 3207 3206 3205 3204 3203 3202 3201 3200 V40150 V40350
3237 3236 3235 3234 3233 3232 3231 3230 3227 3226 3225 3224 3223 3222 3221 3220 V40151 V40351
3257 3256 3255 3254 3253 3252 3251 3250 3247 3246 3245 3244 3243 3242 3241 3240 V40152 V40352
3277 3276 3275 3274 3273 3272 3271 3270 3267 3266 3265 3264 3263 3262 3261 3260 V40153 V40353
3317 3316 3315 3314 3313 3312 3311 3310 3307 3306 3305 3304 3303 3302 3301 3300 V40154 V40354
3337 3336 3335 3334 3333 3332 3331 3330 3327 3326 3325 3324 3323 3322 3321 3320 V40155 V40355
3357 3356 3355 3354 3353 3352 3351 3350 3347 3346 3345 3344 3343 3342 3341 3340 V40156 V40356
3377 3376 3375 3374 3373 3372 3371 3370 3367 3366 3365 3364 3363 3362 3361 3360 V40157 V40357
3417 3416 3415 3414 3413 3412 3411 3410 3407 3406 3405 3404 3403 3402 3401 3400 V40160 V40360
3437 3436 3435 3434 3433 3432 3431 3430 3427 3426 3425 3424 3423 3422 3421 3420 V40161 V40361
3457 3456 3455 3454 3453 3452 3451 3450 3447 3446 3445 3444 3443 3442 3441 3440 V40162 V40362
3477 3476 3475 3474 3473 3472 3471 3470 3467 3466 3465 3464 3463 3462 3461 3460 V40163 V40363
3517 3516 3515 3514 3513 3512 3511 3510 3507 3506 3505 3504 3503 3502 3501 3500 V40164 V40364
3537 3536 3535 3534 3533 3532 3531 3530 3527 3526 3525 3524 3523 3522 3521 3520 V40165 V40365
3557 3556 3555 3554 3553 3552 3551 3550 3547 3546 3545 3544 3543 3542 3541 3540 V40166 V40366
3577 3576 3575 3574 3573 3572 3571 3570 3567 3566 3565 3564 3563 3562 3561 3560 V40167 V40367
3617 3616 3615 3614 3613 3612 3611 3610 3607 3606 3605 3604 3603 3602 3601 3600 V40170 V40370
3637 3636 3635 3634 3633 3632 3631 3630 3627 3626 3625 3624 3623 3622 3621 3620 V40171 V40371
3657 3656 3655 3654 3653 3652 3651 3650 3647 3646 3645 3644 3643 3642 3641 3640 V40172 V40372
3677 3676 3675 3674 3673 3672 3671 3670 3667 3666 3665 3664 3663 3662 3661 3660 V40173 V40373
3717 3716 3715 3714 3713 3712 3711 3710 3707 3706 3705 3704 3703 3702 3701 3700 V40174 V40374
3737 3736 3735 3734 3733 3732 3731 3730 3727 3726 3725 3724 3723 3722 3721 3720 V40175 V40375
3757 3756 3755 3754 3753 3752 3751 3750 3747 3746 3745 3744 3743 3742 3741 3740 V40176 V40376
3777 3776 3775 3774 3773 3772 3771 3770 3767 3766 3765 3764 3763 3762 3761 3760 V40177 V40377

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 4–41
Chapter 4: CPU Specifications and Operation

Module Placement
Slot Numbering
The DL06 has four slots, which are numbered as follows:

Slot 1

Slot 2

Slot 3

Slot 4

4–42 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 4: CPU Specifications and Operation

Automatic I/O Configuration


The DL06 CPUs automatically detect any installed I/O modules (including specialty
modules)at powerup, and establish the correct I/O configuration and addresses. This applies
to modules located in local and expansion I/O bases. For most applications, you will never
have to change the configuration.
I/O addresses use octal numbering, starting at X100 and Y100 in the slot next to the CPU.
The addresses are assigned in groups of 8, or 16 depending on the number of points for the
I/O module. The discrete input and output modules can be mixed in any order, but there
may be restrictions placed on some specialty modules. The following diagram shows the I/O
numbering convention for an example system. Both the Handheld Programmer and
DirectSOFT32 provide AUX functions that allow you to automatically configure the I/O.
For example, with the Handheld Programmer AUX 46 executes an automatic configuration,
which allows the CPU to examine the installed modules and determine the I/O configuration
and addressing.With DirectSOFT32, the PLC Configure I/O menu option would be used.

Slot 1 Slot 2 Slot 3 Slot 4


Automatic 8pt. Input 16pt. Output 16pt. Input 8pt. Input
X100–X107 Y100–Y117 X110–X127 X130–X137

Manual Slot 1 Slot 2 Slot 3 Slot 4


8pt. Input 16pt. Output 16pt. Input 8pt. Input
X100–X107 Y100–Y117 X200–X217 X110–X117
Manual I/O Configuration
It may never become necessary, but DL06 CPUs allow manual I/O address assignments for
any I/O slot(s) . You can manually modify an auto configuration to match arbitrary I/O
numbering. For example, two adjacent input modules can have starting addresses at X100
and X200.Use DirectSOFT32 PLC Configure I/O menu option to assign manual I/O
address. In automatic configuration, the addresses are assigned on 8-point boundaries.
Manual configuration, however, assumes that all modules are at least 16 points, so you can
only assign addresses that are a multiple of 20 (octal). For example, X130 and Y150 are not
valid addresses. You can still use 8 point modules, but 16 addresses will be assigned and the
upper eight addresses will be unused.
WARNING: If you manually configure an I/O slot, the I/O addressing for the other modules may change.
This is because the DL06 CPUs do not allow you to assign duplicate I/O addresses. You
must always correct any I/O configuration errors before you place the CPU in RUN mode.
Uncorrected errors can cause unpredictable machine operation that can result in a risk of
personal injury or damage to equipment.

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 4–43
Chapter 4: CPU Specifications and Operation

Power Budgeting
The DL06 has four option card slots. To determine whether the combination of cards you
select will have sufficient power, you will need to perform a power budget calculation.
Power supplied
Power is supplied from two sources, the internal base unit power supply and, if required, an
external supply (customer furnished). The D0-06xx (AC powered) PLCs supply a limited
amount of 24VDC power. The 24VDC output can be used to power external devices. For
power budgeting, start by considering the power supplied by the base unit. All DL06 PLCs
supply the same amount of 5VDC power. Only the AC units offer 24VDC auxiliary power.
Be aware of the trade-off between 5VDC power and 24VDC power. The amount of 5VDC
power available depends on the amount of 24VDC power being used, and the amount of
24VDC power available depends on the amount of 5VDC power consumed. Determine the
amount of internally supplied power from the table on the following page.
Power required by base unit
Because of the different I/O configurations available in the DL06 family, the power
consumed by the base unit itself varies from model to model. Subtract the amount of power
required by the base unit from the amount of power supplied by the base unit. Be sure to
subtract 5VDC and 24VDC amounts.
Power required by option cards
Next, subtract the amount of power required by the option cards you are planning to use.
Again, remember to subtract both 5VDC and 24VDC. If your power budget analysis shows
surplus power available, you should have a workable configuration.

4–44 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 4: CPU Specifications and Operation

DL06 Power Supplied by Base Units DLO6 Power Consumed by Option Cards
Part Number 5 VDC (mA) 24 VDC (mA) Part number 5 VDC 24 VDC
<1500mA 300mA D0-07CDR 130mA none
D0-06xx
<2000mA 200mA D0-08CDD1 100mA none
D0-06xx-D 1500mA none D0-08TR 280mA none
D0-10ND3 35mA none
If the 5VDC loading is less than 2000mA but more than
1500mA, than available 24VDC supply current is 200mA. D0-10TD1 150mA none
If the 5VDC loading is less than 1500mA, then the D0-10TD2 150mA none
available 24VDC current is 300mA.
D0-16ND3 35mA none
D0-16TD1 200mA none
D0-16TD2 200mA none
F0-04AD-1 50mA none
DL06 Base Unit Power Required
F0-2AD2DA-2 50mA 30mA
Part Number 5 VDC (mA) 24 VDC (mA)
F0-4AD2DA-1 100mA 40mA
D0-06AA 800mA none
F0-4AD2DA-2 100mA none
D0-06AR 900mA none
D0-DEVNETS 45mA none
D0-06DA 800mA none
D0-06DD1 600mA 280mA*
Power Budgeting Example
D0-06DD2 600mA none
5VDC 24VDC
D0-06DR 950mA none Power Source power (mA) power (mA)
D0-06DD1-D 600mA none
D0-06DD1 A 1500mA 300mA
D0-06DR-D 950mA none (select row
A or row B) B 2000mA 200mA
5VDC 24VDC
Current Required power (mA) power (mA)
D0-06DD1 600mA 280mA*
D0-16ND3 35mA 0
D0-10TD1 150mA 0
D0-08TR 280mA 0
DL06 Power Consumed by Other Devices F0-4AD2DA-2 100mA 0
Part Number 5 VDC (mA) 24 VDC (mA) D0-06LCD 50mA 0
D0-06LCD 50mA none Total Used 1215mA 280mA
D2-HPP 200mA none A 285mA 20mA
Remaining
DV1000 150mA none B 785mA note 1
* Auxiliary 24VDC used to power V+ terminal of D0-06DD1
sinking outputs.

Note 1: If the PLC’s auxiliary 24VDC power source is used to power the sinking outputs, use power
choice A, above.

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 4–45
Chapter 4: CPU Specifications and Operation

Configuring the DL06’s Comm Ports


This section describes how to configure the CPU’s built-in networking ports. for either
MODBUS or DirectNET. This will allow you to connect the DL06 PLC system directly to
MODBUS networks using the RTU protocol, or to other devices on a DirectNET network.
MODBUS hosts system on the network must be capable of issuing the MODBUS
commands to read or write the appropriate data. For details on the MODBUS protocol,
please refer to the Gould MODBUS Protocol reference Guide (P1–MBUS–300 Rev. B). In
the event a more recent version is available, check with your MODBUS supplier before
ordering the documentation. For more details on DirectNET, order our DirectNET manual,
part number DA–DNET–M.
Note: For information about the MODBUS protocol see the Group Schneider Web site at:
www.schneiderautomation.com. At the main menu, select Support/Services, Modbus, Modbus
Technical Manuals, PI-MBUS-300 Modbus Protocol Reference Guide or search for PIMBUS300.For
more information about the DirectNET protocol, order our DirectNET user manual, part number
DA–DNET–M,

DL06 Port Specifications Communications Port 2


Port 2 Connects to HPP, DirectSOFT32, operator
Communications Port 1 interfaces, etc.
Port 1 Connects to HPP, DirectSOFT32, operator 15-pin, multifunction port, RS232C, RS422, RS485
interfaces, etc. Communication speed (baud): 300, 600, 1200,
6-pin, RS232C 2400, 4800, 9600, 19200, 38400
Communication speed (baud): 9600 (fixed) Parity: odd (default), even, none
Parity: odd (fixed) Station Address: 1 (default)
Station Address: 1 (fixed) 8 data bits
8 data bits 1 start, 1 stop bit
1 start, 1 stop bit Asynchronous, half-duplex, DTE
Asynchronous, half-duplex, DTE Protocol (auto-select): K-sequence (slave only),
DirectNET (master/slave), MODBUS (master/slave),
Protocol (auto-select): K-sequence (slave only), non-sequence/print/ASCII in/out
DirectNET (slave only), MODBUS (slave only)
Port 2 Pin Descriptions
1 5V Power (+) connection
DL06 Port Pinouts 2 TXD Transmit data (RS-232C)
Port 1 Pin Descriptions 3 RXD Receive data (RS-232C)
TERM
1 0V Power (-) connection (GND) 4 RTS Ready to send
2 5V Power (+) connection 5 CTS Clear to send
PORT1 PORT2 RUN STOP
RU
3 RXD Receive data (RS-232C) 6 RXD- Receive data (-) (RS-422/485)
4 TXD Transmit data (RS-232C) 7 0V Power (-) connection (GND)
5 5V Power (+) connection 8 0V Power (-) connection (GND)
6 0V Power (-) connection (GND) 9 TXD+ Transmit data (+) (RS-422/485)
5 4 3 2
6 1 5 1 10 TXD- Transmit data (-) (RS-422/485)
15
10
11
6
11 RTS+ Ready to send (+) (RS-422/485)
12 RTS- Ready to send (-) (RS-422/485)
PORT1 PORT2 13 RXD+ Receive data (+) (RS-422/485)
14 CTS+ Clear to send (+) (RS-422/485)
15 CTS- Clear to send (-) (RS-422/485)

4–46 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 4: CPU Specifications and Operation

Choosing a Network Specification


The DL06 PLC’s multi-function port gives you the option of using RS-232C, RS-422, or
RS-485 specifications. First, determine whether the network will be a 2-wire RS–232C type,
a 4-wire RS–422 type, or a 2-wire/4-wire RS-485 type.
The RS–232C specification is simple to implement for networks of shorter distances (15
meters max) and where communication is only required between two devices. The RS–422
and RS-485 signals are for networks that cover longer distances (1000 meters max.) and for
multi-drop networks (from 2 to 247 devices).
Note: Termination resistors are required at both ends of RS–422 and RS-485 networks. It is necessary to
select resistors that match the impedance rating of the cable (between 100 and 500 ohms).

RS-232 Network Point-to-point


DTE Device Signal GND
Normally, the RS-232 GND
1 0V Signal GND RXD
signals are used for 3 RXD RXD
TXD
TXD
shorter distances (15 4 TXD TXD
RXD
CTS
meters maximum), for PORT1
RTS
RTS
communications 6P6C
Phone Jack
CTS

between two devices. OR


RTS
Connections on Port 1 Connections on Port 2 Loop
Back CTS

RS-422 Network
RS-422 signals are for RXD+
long distaces ( 1000 ASCII
RXD–
TXD+
meters maximum). Use Slave
Device
TXD–
Signal GND
terminator resistors at 9 TXD+ Termination
10 TXD– Resistor at
both ends of RS-422 13 RXD+ both ends of
The recommended cable 6 RXD– network
network wiring, for RS422 is Belden 11 RTS+
9729 or equivalent. 12 RTS–
matching the 14 CTS+ PORT 2
Master
impedence rating of 15 CTS–
7 0V
the cable (between 100
and 500 ohms).
Termination
Resistor
TXD+ / RXD+ TXD+ / RXD+
TXD+ / RXD+
RS-485 Network
TXD– / RXD– TXD– / RXD– TXD– / RXD–
RS-485 signals are for
longer distances (1000 Signal GND Signal GND Signal GND
Connect shield
meters max) and for RXD– to signal ground
RXD–
multi-drop networks.
Use termination
0V
resistors at both ends RTS+ 0V RTS+

of RS-485 network TXD+ RXD+ RTS– TXD+


RXD+ RTS–

wiring, matching the CTS+ Cable: Use Belden


9841 or equivalent
CTS+

impedance rating of CTS– CTS–

the cable (between 100


and 500 ohms). TXD– TXD–
DL06 CPU Port 2 DL06 CPU Port 2

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02


4–47
Chapter 4: CPU Specifications and Operation

Connecting to MODBUS and DirectNET Networks


MODBUS Port Configuration
In DirectSOFT32, choose the PLC menu, then Setup, then “Secondary Comm Port”.
• Port: From the port number list box at the top, choose “Port 2”.
• Protocol: Click the check box to the left of “MODBUS” (use AUX 56 on the HPP, and select
“MBUS”), and then you’ll see the dialog box below.

• Timeout: amount of time the port will wait after it sends a message to get a response before logging
an error.
• RTS ON / OFF Delay Time: The RTS ON Delay Time specifies the time the DL06 waits to send
the data after it has raised the RTS signal line. The RTS OFF Delay Time specifies the time the
DL06 waits to release the RTS signal line after the data has been sent. When using the DL06 on a
multi-drop network, the RTS ON Delay time must be set to at least 5ms and the RTS OFF Delay time
must be set to at least 2ms. If you encounter problems, the time can be increased.
• Station Number: For making the CPU port a MODBUS master, choose “1”. The possible range for
MODBUS slave numbers is from 1 to 247, but the DL06 network instructions used in Master
mode will access only slaves 1 to 99. Each slave must have a unique number. At powerup, the port is
automatically a slave, unless and until the DL06 executes ladder logic network instructions which
use the port as a master. Thereafter, the port reverts back to slave mode until ladder logic uses the
port again.
• Baud Rate: The available baud rates include 300, 600, 1200, 2400, 4800, 9600, 19200, and 38400
baud. Choose a higher baud rate initially, reverting to lower baud rates if you experience data errors
or noise problems on the network. Important: You must configure the baud rates of all devices on
the network to the same value. Refer to the appropriate product manual for details.
• Stop Bits: Choose 1 or 2 stop bits for use in the protocol.
• Parity: Choose none, even, or odd parity for error checking.
•Echo Suppression: Select the appropriate radio button based on the wiring configuration used on
port 2.
Then click the button indicated to send the Port configuration to the CPU, and click Close.

4–48 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 4: CPU Specifications and Operation

DirectNET Port Configuration


In DirectSOFT32, choose the PLC menu, then Setup, then “Secondary Comm Port”.
• Port: From the port number list box, choose “Port 2 ”.
• Protocol: Click the check box to the left of “DirectNET” (use AUX 56 on the HPP, then select
“DNET”), and then you’ll see the dialog box below.

• Timeout: Amount of time the port will wait after it sends a message to get a response before logging
an error.
• RTS ON / OFF Delay Time: The RTS ON Delay Time specifies the time the DL06 waits to send
the data after it has raised the RTS signal line. The RTS OFF Delay Time specifies the time the
DL06 waits to release the RTS signal line after the data has been sent. When using the DL06 on a
multi-drop network, the RTS ON Delay time must be set to at least 5ms and the RTS OFF Delay
time must be set to at least 2ms. If you encounter problems, the time can be increased.
• Station Number: For making the CPU port a DirectNET master, choose “1”. The allowable range
for DirectNET slaves is from 1 to 90 (each slave must have a unique number). At powerup, the port
is automatically a slave, unless and until the DL06 executes ladder logic instructions which attempt
to use the port as a master. Thereafter, the port reverts back to slave mode until ladder logic uses the
port again.
• Baud Rate: The available baud rates include 300, 600, 1200, 2400, 4800, 9600, 19200, and 38400
baud. Choose a higher baud rate initially, reverting to lower baud rates if you experience data errors
or noise problems on the network. Important: You must configure the baud rates of all devices on
the network to the same value.
• Stop Bits: Choose 1 or 2 stop bits for use in the protocol.
• Parity: Choose none, even, or odd parity for error checking.
• Format: Choose between hex or ASCII formats.
Then click the button indicated to send the Port configuration to the CPU, and click Close.

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 4–49
Chapter 4: CPU Specifications and Operation

Non–Sequence Protocol (ASCII In/Out and PRINT)


MODBUS Port Configuration
Configuring port 2 on the DL06 for Non–Sequence allows the CPU to use port 2 to either
read or write raw ASCII strings using the ASCII instructions. See the ASCII In/Out
instructions and the PRINT instruction in chapter 5.
In DirectSOFT32, choose the PLC menu, then Setup, then “Secondary Comm Port”.
• Port: From the port number list box at the top, choose “Port 2”.
• Protocol: Click the check box to the left of “Non–Sequence”.

• Timeout: Amount of time the port will wait after it sends a message to get a response before logging
an error.
• RTS On Delay Time: The amount of time between raising the RTS line and sending the data.
• RTS Off Delay Time: The amount of time between resetting the RTS line after sending the data.
• Data Bits: Select either 7–bits or 8–bits to match the number of data bits specified for the
connected devices.
• Baud Rate: The available baud rates include 300, 600, 900, 2400, 4800, 9600, 19200, and 38400
baud. Choose a higher baud rate initially, reverting to lower baud rates if you experience data errors
or noise problems on the network. Important: You must configure the baud rates of all devices on
the network to the same value. Refer to the appropriate product manual for details.
• Stop Bits: Choose 1 or 2 stop bits to match the number of stop bits specified for the connected
devices.
• Parity: Choose none, even, or odd parity for error checking. Be sure to match the parity specified
for the connected devices.
• Echo Suppression: Select the appropriate radio button based on the wiring configuration used on
port 2.
• Xon/Xoff Flow Control: Choose this selection if you have port 2 wired for Hardware Flow Control
(Xon/Xoff ) with RTS and CTS signal connected between all devices.
• RTS Flow Control: Choose this selection if you have Port 2 RTS signal wired between all devices.
Then click the button indicated to send the Port configuration to the CPU, and click Close.

4–50 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 4: CPU Specifications and Operation

Network Slave Operation


This section describes how other devices on a network can communicate with a CPU port
that you have configured as a DirectNETslave or MODBUS slave (DL06). A MODBUS host
must use the MODBUS RTU protocol to communicate with the DL06 as a slave. The host
software must send a MODBUS function code and MODBUS address to specify a PLC
memory location the DL06 comprehends. The DirectNET host uses normal I/O addresses to
access applicable DL06 CPU and system. No CPU ladder logic is required to support either
MODBUS slave or DirectNET slave operation.
MODBUS Function Codes Supported
The MODBUS function code determines whether the access is a read or a write, and whether
to access a single data point or a group of them. The DL06 supports the MODBUS function
codes described below.

MODBUS Function Code Function DL06 Data Types Available


01 Read a group of coils Y, CR, T, CT
02 Read a group of inputs X, SP
05 Set / Reset a single coil Y, CR, T, CT
15 Set / Reset a group of coils Y, CR, T, CT
03, 04 Read a value from one or more registers V
06 Write a value into a single register V
16 Write a value into a group of registers V

Determining the MODBUS Address


There are typically two ways that most host software conventions allow you to specify a PLC
memory location. These are:
• By specifying the MODBUS data type and address
• By specifying a MODBUS address only

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 4–51
Chapter 4: CPU Specifications and Operation

If Your Host Software Requires the Data Type and Address...


Many host software packages allow you to specify the MODBUS data type and the
MODBUS address that corresponds to the PLC memory location. This is the easiest method,
but not all packages allow you to do it this way.
The actual equation used to calculate the address depends on the type of PLC data you are
using. The PLC memory types are split into two categories for this purpose.
• Discrete – X, SP, Y, CR, S, T, C (contacts)
• Word – V, Timer current value, Counter current value
In either case, you basically convert the PLC octal address to decimal and add the appropriate
MODBUS address (if required). The table below shows the exact equation used for each
group of data.

MODBUS Address MODBUS Data Type


DL06 Memory Type QTY (Dec.) PLC Range(Octal) Range (Decimal)
For Discrete Data Types .... Convert PLC Addr. to Dec. + Start of Range + Data Type
Inputs (X) 512 X0 – X777 2048 – 2559 Input
Special Relays(SP) 512 SP0 – SP777 3072 – 3583 Input
Outputs (Y) 512 Y0 – Y777 2048 – 2559 Coil
Control Relays (CR) 1024 C0 – C1777 3072 – 4095 Coil
Timer Contacts (T) 256 T0 – T377 6144 – 6399 Coil
Counter Contacts (CT) 128 CT0 – CT177 6400 – 6527 Coil
Stage Status Bits(S) 1024 S0 – S1777 5120 – 6143 Coil
For Word Data Types .... Convert PLC Addr. to Dec. + Data Type
Timer Current Values (V) 256 V0 – V377 0 – 255 Input Register
Counter Current Values (V) 128 V1000 – V1177 512 – 639 Input Register
3200 V1200 – V7377 640 – 3839 Holding Register
V Memory, user data (V)
4096 V10000 - V17777 4096 - 8191 Holding Register
V Memory, non-volatile (V) 128 V7400 – V7577 3840 – 3967 Holding Register

4–52 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 4: CPU Specifications and Operation

The following examples show how to generate the MODBUS address and data type for hosts
which require this format.
Example 1: V2100
Find the MODBUS address for User V location V2100.
Holding Reg 1088
1. Find V memory in the table.
2. Convert V2100 into decimal (1088).
3. Use the MODBUS data type from the table.

V Memory, user data (V) 3200 V1200 – V7377 640 – 3839 Holding Register

Example 2: Y20
Find the MODBUS address for output Y20.
1. Find Y outputs in the table. Coil 2064
2. Convert Y20 into decimal (16).
3. Add the starting address for the range (2048).
4. Use the MODBUS data type from the table.

Outputs (V) 256 Y0 – Y377 2048 - 2303 Coil

Example 3: T10 Current Value


Find the MODBUS address to obtain the current value from Timer T10.
1. Find Timer Current Values in the table.
Input Reg. 8
2. Convert T10 into decimal (8).
3. Use the MODBUS data type from the table.

Timer Current Values (V) 128 V0 – V177 0 - 127 Input Register

Example 4: C54
Find the MODBUS address for Control Relay C54.
1. Find Control Relays in the table.
Coil 3116
2. Convert C54 into decimal (44).
3. Add the starting address for the range (3072).
4. Use the MODBUS data type from the table.

Control Relays (CR) 512 C0 – C77 3072 – 3583 Coil

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 4–53
Chapter 4: CPU Specifications and Operation

If Your MODBUS Host Software Requires an Address ONLY


Some host software does not allow you to specify the MODBUS data type and address.
Instead, you specify an address only. This method requires another step to determine the
address, but it’s still fairly simple. Basically, MODBUS also separates the data types by address
ranges as well. So this means an address alone can actually describe the type of data and
location. This is often referred to as “adding the offset”. One important thing to remember
here is that two different addressing modes may be available in your host software package.
These are:
• 484 Mode
• 584/984 Mode
We recommend that you use the 584/984 addressing mode if your host software allows you
to choose. This is because the 584/984 mode allows access to a higher number of memory
locations within each data type. If your software only supports 484 mode, then there may be
some PLC memory locations that will be unavailable. The actual equation used to calculate
the address depends on the type of PLC data you are using. The PLC memory types are split
into two categories for this purpose.
• Discrete – X, SP, Y, CR, S, T, C (contacts)
• Word – V, Timer current value, Counter current value
In either case, you basically convert the PLC octal address to decimal and add the appropriate
MODBUS addresses (as required). The table below shows the exact equation used for each
group of data.
MODBUS 584/984 MODBUS
PLC Range Address 484 Mode
DL06 Memory Type QTY (Dec.) (Octal) Mode Data
Range Address Address Type
(Decimal)
For Discrete Data Types ....Convert Addr. to Dec. + Start of Range + Data Type
Inputs (X) 512 X0 – X777 2048 – 2559 1001 100001 Input
Special Relays (SP) 512 SP0 – SP777 3072 – 3583 1001 100001 Input
Outputs (Y) 512 Y0 – Y777 2048 – 2559 1 1 Coil
Control Relays (CR) 1024 C0 – C1777 3072 – 4095 1 1 Coil
Timer Contacts (T) 256 T0 – T377 6144 – 6399 1 1 Coil
Counter Contacts (CT) 128 CT0 – CT177 6400 – 6527 1 1 Coil
Stage Status Bits (S) 1024 S0 – S1777 5120 – 6143 1 1 Coil
For Word Data Types .... Convert Addr. to Dec. + Data Type
Input
Timer Current Values (V) 256 V0 – V377 0 – 255 3001 30001 Register
V1000 – Input
Counter Current Values (V) 128 V1177 512 – 639 3001 30001 Register
3200 V1200 – 640 – 3839 Holding
V7377 Register
V Memory, user data (V) V10000 -
4001 40001
Holding
4096 V17777 4096 - 8191 Register
V7400 – Holding
V-Memory, non-volatile (V) 128 V7577 3840 – 3967 4001 40001 Register

4–54 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 4: CPU Specifications and Operation

The following examples show how to generate the MODBUS addresses for hosts which
require this format.
Example 1: V2100 584/984 Mode
Find the MODBUS address for User V location V2100. 41089
1. Find V memory in the table.
2. Convert V2100 into decimal (1088).
3. Add the MODBUS starting address for the
mode (40001).

V Memory, system (V) 128 V1200 – V7377 3480 – 3735 4001 40001 Holding Register

Example 2: Y20 584/984 Mode


Find the MODBUS address for output Y20.
2065
1. Find Y outputs in the table.
2. Convert Y20 into decimal (16).
3. Add the starting address for the range (2048).
4. Add the MODBUS address for the mode (1).

Outputs (V) 256 Y0 – Y377 2048 – 2303 1 1 Coil

Example 3: T10 Current Value 484 Mode


Find the MODBUS address to obtain the current value from Timer T10. 3009
1. Find Timer Current Values in the table.
2. Convert T10 into decimal (8).
3. Add the MODBUS starting address for the mode (3001).
Timer Current Values (V) 128 V0 – V177 0 – 127 3001 3001 Input Register

Example 4: C54 584/984 Mode


Find the MODBUS address for Control Relay C54.
1. Find Control Relays in the table. 3117
2. Convert C54 into decimal (44).
3. Add the starting address for the range (3072).
4. Add the MODBUS address for the mode (1).
Control Relays(V) 512 C0 – C777 3072 – 3583 1 1 Coil

Determining the DirectNET Address


Addressing the memory types for DirectNET slaves is very easy. Use the ordinary native
address of the slave device itself. To access a slave PLC’s memory address V2000 via
DirectNET, for example, the network master will request V2000 from the slave.

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 4–55
Chapter 4: CPU Specifications and Operation

Network Master Operation


This section describes how the DL06 can communicate on a MODBUS or DirectNET
network as a master. For MODBUS networks, it uses the MODBUS RTU protocol, which
must be interpreted by all the slaves on the network. Both MODBUS and DirectNet are
single master/multiple slave networks. The master is the only member of the network that can
initiate requests on the network. This section teaches you how to design the required ladder
logic for network master operation.

G LG 0V Y0 Y2 C1 Y5 Y7 Y10 Y12 C3 Y15 Y17


PWR
AC(L) AC(N) 24V C0 Y1 Y3 Y4 Y6 C2 Y11 Y13 Y14 Y16 N.C. RUN
OUTPUT: 6-240V 50 - 60Hz 2.0A, 6 - 27V 2.0A PWR: 100-240V 50-60Hz 40VA CPU

Y D0-06DR TX1
RX1
0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23
X TX2
RX2
INPUT: 12 - 24V 3 - 15mA

LOGIC 06
K oyo

C0 X1 X3 X4 X6 C2 X11 X13 X14 X16 C4 X21 X23 N.C.


X0 X2 C1 X5 X7 X10 X12 C3 X15 X17 X20 X22 N.C.
TERM

PORT1 PORT2 RUN STOP

Master
MODBUS RTU Protocol,, or DirectNET

Slave #1 Slave #2 Slave #3

When using the DL06 PLC as the master station, simple RLL instructions are used to initiate
the requests. The WX instruction initiates network write operations, and the RX instruction
initiates network read operations. Before executing either the WX or RX commands, we will
need to load data related to the read or write operation onto the CPU’s accumulator stack.
When the WX or RX instruction executes, it uses the information on the stack combined
with data in the instruction box to completely define the task, which goes to the port.

G LG 0V Y0 Y2 C1 Y5 Y7 Y10 Y12 C3 Y15 Y17


PWR
AC(L) AC(N) 24V C0 Y1 Y3 Y4 Y6 C2 Y11 Y13 Y14 Y16 N.C. RUN
OUTPUT: 6-240V 50 - 60Hz 2.0A, 6 - 27V 2.0A PWR: 100-240V 50-60Hz 40VA CPU

Y D0-06DR TX1
RX1
0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23
X TX2
RX2
INPUT: 12 - 24V 3 - 15mA

LOGIC 06
K oyo

C0 X1 X3 X4 X6 C2 X11 X13 X14 X16 C4 X21 X23 N.C.


X0 X2 C1 X5 X7 X10 X12 C3 X15 X17 X20 X22 N.C.
TERM

PORT1 PORT2 RUN STOP

Master
Network

WX (write)
RX (read)

Slave

The following step-by-step procedure will provide you the information necessary to set up
your ladder program to receive data from a network slave.

4–56 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 4: CPU Specifications and Operation

Step 1: Identify Master Port # and Slave # F 2 0 1


The first Load (LD) instruction identifies the
communications port number on the network
master (DL06) and the address of the slave Slave address (BCD)
station. This instruction can address up to 99 Port number (BCD)
MODBUS slaves, or 90 DirectNET slaves. The Internal port (hex)
format of the word is shown to the right. The
“F2” in the upper byte indicates the use of the LD
right port of the DL06 PLC, port number 2. KF201
The lower byte contains the slave address
number in BCD (01 to 99).
6 4 (BCD)
Step 2: Load Number of Bytes to Transfer
The second Load (LD) instruction determines
the number of bytes which will be transferred # of bytes to transfer
between the master and slave in the subsequent
WX or RX instruction. The value to be loaded
LD
is in BCD format (decimal), from 1 to 128 K64
bytes.
The number of bytes specified also depends on the type of data you want to obtain. For
example, the DL06 Input points can be accessed by V-memory locations or as X input
locations. However, if you only want X0 – X27, you’ll have to use the X input data type
because the V-memory locations can only be accessed in 2-byte increments. The following
table shows the byte ranges for the various types of DirectLOGIC™. products.

DL 05 / 06 / 205 / 350 / 405 Memory Bits per unit Bytes


V memory 16 2
T / C current value 16 2
Inputs (X, SP) 8 1
Outputs 8 1
(Y, C, Stage, T/C bits)
Scratch Pad Memory 8 1
Diagnostic Status 8 1

DL330 / 340 Memory Bits per unit Bytes


Data registers 8 1
T / C accumulator 16 2
I/O, internal relays, shift register bits, T/C 1 1
bits, stage bits
Scratch Pad Memory 8 1
Diagnostic Status(5 word R/W) 16 10

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 4–57
Chapter 4: CPU Specifications and Operation

Step 3: Specify Master Memory Area 4 0 6 0 0 (octal)


The third instruction in the RX or WX sequence is a
Load Address (LDA) instruction. Its purpose is to
Starting address of
load the starting address of the memory area to be
master transfer area
transferred. Entered as an octal number, the LDA
instruction converts it to hex and places the result in
LDA
the accumulator. O40600
For a WX instruction, the DL06 CPU sends the
number of bytes previously specified from its memory V40600
area beginning at the LDA address specified. MSB LSB

For an RX instruction, the DL06 CPU reads the 15 0


number of bytes previously specified from the slave, MSB V40601 LSB
placing the received data into its memory area
beginning at the LDA address specified. 15 0
NOTE: Since V memory words are always 16 bits, you may not always use the whole word. For example,
if you only specify 3 bytes and you are reading Y outputs from the slave, you will only get 24 bits
of data. In this case, only the 8 least significant bits of the last word location will be modified. The
remaining 8 bits are not affected.

Step 4: Specify Slave Memory Area


The last instruction in our sequence is the WX or RX SP116
instruction itself. Use WX to write to the slave, and RX LD
KF201
to read from the slave. All four of our instructions are
shown to the right. In the last instruction, you must
LD
specify the starting address and a valid data type for the K64
slave.
• DirectNET slaves – specify the same address in the WX LDA
and RX instruction as the slave’s native I/O address O40600
• MODBUS DL405, DL205, or DL06 slaves – specify the
same address in the WX and RX instruction as the slave’s RX
native I/O address Y0
• MODBUS 305 slaves – use the following table to convert
DL305 addresses to MODBUS addresses

DL305 Series CPU Memory Type–to–MODBUS Cross Reference (excluding 350 CPU)
MODBUS MODBUS
PLC Memory Type PLC Base Address PLC Memory Type PLC Base Address
Base Address Base Address
TMR/CNT Current R600 V0 TMR/CNT Status Bits CT600 GY600
Values
I/O Points IO 000 GY0 Control Relays CR160 GY160
Data Registers R401,R400 V100 Shift Registers SR400 GY400
Stage Status Bits S0 GY200
(D3-330P only)

4–58 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 4: CPU Specifications and Operation

Communications from a Ladder Program


Typically network communications
will last longer than 1 scan. The
program must wait for the
communications to finish before
starting the next transaction. SP117 Y1
Port 2, which can be a master, has two SET

Special Relay contacts associated with SP116


LD
it (see Appendix D for comm port Port Communication Error
KF201

special relays).One indicates “Port LD


Port Busy K0003
busy”(SP116), and the other indicates
”Port Communication Error”(SP117). LDA
O40600
The example above shows the use of
these contacts for a network master RX
Y0
that only reads a device (RX). The
“Port Busy” bit is on while the PLC
communicates with the slave. When
the bit is off the program can initiate
the next network request.
The “Port Communication Error” bit turns on Interlocking Relay
when the PLC has detected an error. Use of this bit SP116 C100
LD
is optional. When used, it should be ahead of any KF201
network instruction boxes since the error bit is reset
when an RX or WX instruction is executed. LD
K0003
Multiple Read and Write Interlocks
If you are using multiple reads and writes in the LDA
O40600
RLL program, you have to interlock the routines to
make sure all the routines are executed. If you don’t RX
use the interlocks, then the CPU will only execute Interlocking VY0
the first routine. This is because each port can only Relay C100
handle one transaction at a time.
SET
In the example to the right, after the RX
instruction is executed, C0 is set. When the port SP116 C100
LD
has finished the communication task, the second KF201
routine is executed and C0 is reset.
LD
If you’re using RLLPLUS Stage Programming, you K0003
can put each routine in a separate program stage to
ensure proper execution and switch from stage to LDA
O40400
stage allowing only one of them to be active at a
time.
WX
VY0

C100
RST

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 4–59
Chapter 4: CPU Specifications and Operation

Network Master Operation (using MRX and MWX


Instructions)
This section describes how the DL06 can communicate on a MODBUS RTU network as a
master using the MRX and MWX read/write instructions. These instructions allow you to
enter native MODBUS addressing in your ladder logic program with no need to perform
octal to decimal conversions. MODBUS is a single master/multiple slave network. The
master is the only member of the network that can initiate requests on the network. This
section teaches you how to design the required ladder logic for network master operation.

G LG 0V Y0 Y2 C1 Y5 Y7 Y10 Y12 C3 Y15 Y17


PWR
AC(L) AC(N) 24V C0 Y1 Y3 Y4 Y6 C2 Y11 Y13 Y14 Y16 N.C. RUN
OUTPUT: 6-240V 50 - 60Hz 2.0A, 6 - 27V 2.0A PWR: 100-240V 50-60Hz 40VA CPU

Y D0-06DR TX1
RX1
0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23
X TX2
RX2
INPUT: 12 - 24V 3 - 15mA

LOGIC 06
K oyo

C0 X1 X3 X4 X6 C2 X11 X13 X14 X16 C4 X21 X23 N.C.


X0 X2 C1 X5 X7 X10 X12 C3 X15 X17 X20 X22 N.C.
TERM

PORT1 PORT2 RUN STOP

Master
MODBUS RTU Protocol,, or DirectNET

Slave #1 Slave #2 Slave #3

MODBUS Function Codes Supported


The MODBUS function code determines whether the access is a read or a write, and whether
to access a single data point or a group of them. The DL06 supports the MODBUS function
codes described below.

MODBUS Function Code Function DL06 Data Types Available


01 Read a group of coils Y, CR, T, CT
02 Read a group of inputs X, SP
05 Set / Reset a single coil (slave only) Y, CR, T, CT
15 Set / Reset a group of coils Y, CR, T, CT
03, 04 Read a value from one or more registers V
06 Write a value into a single register (slave only) V
07 Read Exception Status V
08 Diagnostics V
16 Write a value into a group of registers V

4–60 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 4: CPU Specifications and Operation

MODBUS Port Configuration


In DirectSOFT32, choose the PLC menu, then Setup, then “Secondary Comm Port”.
• Port: From the port number list box at the top, choose “Port 2”.
• Protocol: Click the check box to the left of “MODBUS” (use AUX 56 on the HPP, and
select “MBUS”), and then you’ll see the dialog box below.

Timeout: Amount of time the port will wait after it sends a message to get a response before
logging an error.
• RTS On Delay Time: The amount of time between raising the RTS line and sending the
data.
• RTS Off Delay Time: The amount of time between resetting the RTS line after sending the
data.
• Station Number: For making the CPU port a MODBUS master, choose “1”. The possible
range for MODBUS slave numbers is from 1 to 247. Each slave must have a unique
number. At powerup, the port is automatically a slave, unless and until the DL06 executes
ladder logic MWX/MRX network instructions which use the port as a master. Thereafter,
the port reverts back to slave mode until ladder logic uses the port again.
• Baud Rate: The available baud rates include 300, 600, 900, 2400, 4800, 9600, 19200, and
38400 baud. Choose a higher baud rate initially, reverting to lower baud rates if you
experience data errors or noise problems on the network. Important: You must configure
the baud rates of all devices on the network to the same value. Refer to the appropriate
product manual for details.
• Stop Bits: Choose 1 or 2 stop bits for use in the protocol.
• Parity: Choose none, even, or odd parity for error checking.
• Echo Suppression: Select the appropriate radio button based on the wiring configuration
used on port 2.
Then click the button indicated to send the Port configuration to the CPU, and click Close.

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 4–61
Chapter 4: CPU Specifications and Operation

MODBUS Read from Network(MRX)


The MODBUS Read from Network (MRX) instruction is used by the DL06 network master
to read a block of data from a connected slave device and to write the data into V–memory
addresses within the master. The instruction allows the user the to specify the MODBUS
Function Code, slave station address, starting master and slave memory addresses, number of
elements to transfer, MODBUS data format and the Exception Response Buffer.

• Port Number: must be DL06 Port 2 (K2)


• Slave Address: specify a slave station address (0–247)
• Function Code: The following MODBUS function codes are supported by the MRX
instruction:
01 – Read a group of coils
02 – Read a group of inputs
03 – Read holding registers
04 – Read input registers
07 – Read Exception status
08 – Diagnostics
• Start Slave Memory Address: specifies the starting slave memory address of the data to be
read. See the table on the following page.
• Start Master Memory Address: specifies the starting memory address in the master where
the data will be placed. See the table on the following page.
• Number of Elements: specifies how many coils, input, holding registers or input register
will be read. See the table on the following page.
• MODBUS Data Format: specifies MODBUS 584/984 or 484 data format to be used
• Exception Response Buffer: specifies the master memory address where the Exception
Response will be placed. See the table on the following page.

4–62 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 4: CPU Specifications and Operation

MRX Slave Memory Address


MRX Slave Address Ranges
Function Code MODBUS Data Format Slave Address Range(s)
01 – Read Coil 484 Mode 1–999
01 – Read Coil 584/984 Mode 1–65535
02 – Read Input Status 484 Mode 1001–1999
02 – Read Input Status 584/984 Mode 10001–19999 (5 digit) or 100001–165535
(6 digit)
03 – Read Holding Register 484 Mode 4001–4999
03 – Read Holding Register 584/984 40001–49999 (5 digit) or 4000001–465535
(6 digit)
04 – Read Input Register 484 Mode 3001–3999
04 – Read Input Register 584/984 Mode 30001–39999 (5 digit) or 3000001–365535
(6 digit)
07 – Read Exception Status 484 and 584/984 Mode n/a
08 – Diagnostics 484 and 584/984 Mode 0–65535

MRX Master Memory Addresses


MRX Master Memory Address Ranges
Operand Data Type DL06 Range
Inputs X 0–1777
Outputs Y 0–1777
Control Relays C 0–3777
Stage Bits S 0–1777
Timer Bits T 0–377
Counter Bits CT 0–377
Special Relays SP 0–777
V–memory V All
Global Inputs GX 0–3777
Global Outputs GY 0–3777

MRX Number of Elements


Number of Elements
Operand Data Type DL06 Range
V–memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . V All
Constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K 1–2000

MRX Exception Response Buffer


Exception Response Buffer
Operand Data Type DL06 Range
V–memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . V All

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 4–63
Chapter 4: CPU Specifications and Operation

MODBUS Write to Network (MWX)


The MODBUS Write to Network (MWX) instruction is used to write a block of data from
the network masters’s (DL06) memory to MODBUS memory addresses within a slave device
on the network. The instruction allows the user to specify the MODBUS Function Code,
slave station address, starting master and slave memory addresses, number of elements to
transfer, MODBUS data format and the Exception Response Buffer.

• Port Number: must be DL06 Port 2 (K2)


• Slave Address: specify a slave station address (0–247)
• Function Code: The following MODBUS function codes are supported by the MWX
instruction:
05 – Force Single coil
06 – Preset Single Register
08 – Diagnostics
15 – Force Multiple Coils
16 – Preset Multiple Registers
• Start Slave Memory Address: specifies the starting slave memory address where the data will
be written.
• Start Master Memory Address: specifies the starting address of the data in the master that is
to written to the slave.
• Number of Elements: specifies how many consecutive coils or registers will be written to.
This field is only active when either function code 15 or 16 is selected.
• MODBUS Data Format: specifies MODBUS 584/984 or 484 data format to be used.
• Exception Response Buffer: specifies the master memory address where the Exception
Response will be placed.

4–64 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 4: CPU Specifications and Operation

MWX Slave Memory Address


MWX Slave Address Ranges
Function Code MODBUS Data Format Slave Address Range(s)
05 – Force Single Coil 484 Mode 1–999

05 – Force Single Coil 584/984 Mode 1–65535

06 – Preset Single Register 484 Mode 4001–4999

06 – Preset Single Register 84/984 Mode 40001–49999 (5 digit) or


400001–465535 (6 digit)
08 – Diagnostics 484 and 584/984 Mode 0–65535

15 – Force Multiple Coils 484 1–999

15 – Force Multiple Coils 585/984 Mode 1–65535

16 – Preset Multiple Registers 484 Mode 4001–4999

16 – Preset Multiple Registers 584/984 Mode 40001–49999 (5 digit) or


4000001–465535 (6 digit)

MWX Master Memory Addresses


MRX Master Memory Address Ranges
Operand Data Type DL06 Range
Inputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X 0–777
Outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Y 0–777
Control Relays . . . . . . . . . . . . . . . . . . . . . . . . . . . C 0–1777
Stage Bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . S 0–1777
Timer Bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . T 0–377
Counter Bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CT 0–177
Special Relays. . . . . . . . . . . . . . . . . . . . . . . . . . . . SP 0–777
V–memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V All
Global Inputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . GX 0–3777
Global Outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . GY 0–3777

MWX Number of Elements


Number of Elements
Operand Data Type DL06 Range
V–memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V All
Constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K 1–2000

MWX Exception Response Buffer


Exception Response Buffer
Operand Data Type DL06 Range
V–memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V All

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 4–65
Chapter 4: CPU Specifications and Operation

MRX / MWX Example in DirectSOFT32


DL06 port 2 has two Special Relay contacts associated with it (see Appendix D for comm
port special relays). One indicates “Port busy”(SP116), and the other indicates ”Port
Communication Error”(SP117). The “Port Busy” bit is on while the PLC communicates with
the slave. When the bit is off the program can initiate the next network request. The “Port
Communication Error” bit turns on when the PLC has detected an error and use of this bit is
optional. When used, it should be ahead of any network instruction boxes since the error bit
is reset when an MRX or MWX instruction is executed. Typically network communications
will last longer than 1 CPU scan. The program must wait for the communications to finish
before starting the next transaction.
The “Port Communication Error” bit turns on when the PLC has detected an error. Use of
this bit is optional. When used, it should be ahead of any network instruction boxes since the
error bit is reset when an RX or WX instruction is executed.
Multiple Read and Write Interlocks
If you are using multiple reads and writes in the RLL program, you have to interlock the
routines to make sure all the routines are executed. If you don’t use the interlocks, then the
CPU will only execute the first routine. This is because each port can only handle one
transaction at a time.In the example below, after the RX instruction is executed, C100 is set.
When the port has finished the communication task, the second routine is executed and
C100 is reset. If you’re using RLLPLUS Stage Programming, you can put each routine in a
separate program stage to ensure proper execution and switch from stage to stage allowing
only one of them to be active at a time.
SP116 will execute every time it attempts to poll the network. You should see this
counting up as you enable the MWX and MRX instructions. Some things that would
prevent this: 1) Com Port RTS and CTS not jumpered. 2) Port not set up for MODBUS
RTU. 3) Problem in logic that is not allowing the MWX or MRX to enable.

CNT
Port 2 busy bit Number of times that
1 SP116 the PLC has tried to
poll network
_FirstScan
SP0 CTO
K9999
SP117 will come on when: 1) The slave device sends an "Exception Response." If this
occurs, look at the V-memory location associated with that instruction and consult the
MODICON MODBUS manual for details. 2) Cabling problem. Consult wiring diagram in
user manual and verify. 3) Setting for communications are not matching. For example:
Baud rates, parities, stop bits all must match. 4) Polling a slave address number that
doesn't exist.
Under good conditions, SP116 will be counting up and SP117 will not. You will get an
occasional error in many field environments that introduce electrical/RF noise into the
application. Each application will dictate what allowable "percentage" of error is
acceptable. Anything below 10% typically does not affect the throughput very much.

Port 2 error bit


CNT
2 SP117 Number of times that
the PLC has errored
_FirstScan CT1
SP0
K9999

4–66 DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02
Chapter 4: CPU Specifications and Operation

This rung does a MODBUS write to the first holding register 40001 of slave address number one.
It writes the values over that reside in V2000. This particular function code only writes to one
register. Use function code 16 to write to multiple registers. Only one Network Instruction
(WX, RX, MWX, MRX) can be enabled in one scan. That is the reason for the interlock bits. For using
many network instructions on the same port, use the Shift Register instruction.

SP116 C100 MWX


3 Port Number: K2
Slave Address: K1
Function Code: 06 - Preset Single Register
Start Slave Memory Address: 40001
Number of Elements: n/a
Modbus Data Type: 584/984 Mode
Exception Response Buffer: V400

Instruction interlock bit


C100 ( SET )
This rung does a MODBUS read from the first 32 coils of slave address number one.
It will place the values into 32 bits of the master starting at C0.

SP116 C100 MRX


4 Port Number: K2
Slave Address: K1
Function Code: 01 - Read Coil Status
Start Slave Memory Address: 1
Start Master Memory Address: C0
Number of Elements: 32
Modbus Data Type: 584/984 Mode
Exception Response Buffer: V400
Instruction interlock bit
C100 ( RST )

DL06 Micro PLC User Manual; 1st Ed., Rev. A, 10/02 4–67
STANDARD RLL CHAPTER
INSTRUCTIONS
5
In This Chapter
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–2
Using Boolean Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–5
Boolean Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–10
Comparative Boolean . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–26
Immediate Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–32
Timer, Counter and Shift Register Instructions . . . . . . . . . . . . . . . .5–39
Accumulator / Stack Load and Output Data Instructions . . . . . . . .5–52
Logical Instructions (Accumulator) . . . . . . . . . . . . . . . . . . . . . . . . .5–69
Math Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–86
Transcendental Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–118
Bit Operation Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–120
Number Conversion Instructions (Accumulator) . . . . . . . . . . . . . .5–127
Table Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–141
Clock / Calendar Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–171
CPU Control Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–173
Program Control Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–175
Interrupt Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–183
Message Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–186
MODBUS RTU Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–201
ASCII Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5–207
Chapter 5: Standard RLL Instructions

Introduction
DL06 Micro PLCs offer a wide variety of instructions to perform many different types of
operations. This chapter shows you how to use each standard Relay Ladder Logic (RLL)
instruction. In addition to these instructions, you may also need to refer to the Drum
instruction in Chapter 6, or the Stage programming instructions in Chapter 7.
There are two ways to quickly find the instruction you need.
• If you know the instruction category (Boolean, Comparative Boolean, etc.) just use the title at the
top of the page to find the pages that discuss the instructions in that category.
• If you know the individual instruction name, use the following table to find the page(s) that
discusses the instruction.

Instruction Page Instruction Page


Accumulating Fast Timer (TMRAF) 5–42 And Store (AND STR) 5–16
Accumulating Timer (TMRA) 5–42 And with Stack (ANDS) 5–72
Add (ADD) 5–86 Arc Cosine Real (ACOSR) 5–119
Add Binary (ADDB) 5–99 Arc Sine Real (ASINR) 5–118
Add Binary Double (ADDBD) 5–100 Arc Tangent Real (ATANR) 5–119
Add Binary Top of Stack (ADDBS) 5–114 ASCII Clear Buffer (ACRB) 5–225
Add Double (ADDD) 5–87 ASCII Compare (CMPV) 5–217
Add Formatted (ADDF) 5–106 ASCII Constant (ACON) 5–187
Add Real (ADDR) 5–88 ASCII Extract (AEX) 5–216
Add to Top (ATT) 5–162 ASCII Find (AFIND) 5–213
Add Top of Stack (ADDS) 5–110 ASCII Input (AIN) 5–209
And (AND) 5–69 ASCII Print from V–memory (PRINTV) 5–223
And (AND) 5–31 ASCII Print to V–memory (VPRINT) 5–218
And (AND) 5–14 ASCII Swap Bytes (SWAPB) 5–224
AND Bit-of-Word (ANDB) 5–15 ASCII to HEX (ATH) 5–134
And Double (ANDD) 5–70 Binary (BIN) 5–127
And Formatted (ANDF) 5–71 Binary Coded Decimal (BCD) 5–128
And If Equal (ANDE) 5–28 Binary to Real Conversion (BTOR) 5–131
And If Not Equal (ANDNE) 5–28 Compare (CMP) 5–81
And Immediate (ANDI) 5–33 Compare Double (CMPD) 5–82
AND Move (ANDMOV) 5–167 Compare Formatted (CMPF) 5–83
And Negative Differential (ANDND) 5–22 Compare Real Number (CMPR) 5–85
And Not (ANDN) 5–31 Compare with Stack (CMPS) 5–84
And Not (ANDN) 5–14 Cosine Real (COSR) 5–118
And Not Bit-of-Word (ANDNB) 5–15 Counter (CNT) 5–45
And Not Immediate (ANDNI) 5–33 Data Label (DLBL) 5–187
And Positive Differential (ANDPD) 5–22 Date (DATE) 5–171

5–2 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions

Instruction Page Instruction Page


Decode (DECO) 5–126 Load Accumulator Indexed (LDX) 5–61
Decrement (DEC) 5–98 Load Accumulator Indexed from Data Constants (LDSX) 5–62
Decrement Binary (DECB) 5–105 Load Address (LDA) 5–60
Degree Real Conversion (DEGR) 5–133 Load Double (LDD) 5–58
Disable Interrupts (DISI) 5–184 Load Formatted (LDF) 5–59
Divide (DIV) 5–95 Load Immediate (LDI) 5–37
Divide Binary (DIVB) 5–104 Load Immediate Formatted (LDIF) 5–38
Divide Binary by Top OF Stack (DIVBS) 5–117 Load Label (LDLBL) 5–142
Divide by Top of Stack (DIVS) 5–113 Load Real Number (LDR) 5–63
Divide Double (DIVD) 5–96 Master Line Reset (MLR) 5–181
Divide Formatted (DIVF) 5–109 Master Line Set (MLS) 5–181
Divide Real (DIVR) 5–97 MODBUS Read from Network (MRX) 5–201
Enable Interrupts (ENI) 5–183 MODBUS Write to Network (MWX) 5–204
Encode (ENCO) 5–125 Move (MOV) 5–141
End (END) 5–173 Move Memory Cartridge (MOVMC) 5–142
Exclusive Or (XOR) 5–77 Multiply (MUL) 5–92
Exclusive Or Double (XORD) 5–78 Multiply Binary (MULB) 5–103
Exclusive Or Formatted (XORF) 5–79 Multiply Binary Top of Stack (MULBS) 5–116
Exclusive OR Move (XORMOV) 5–167 Multiply Double (MULD) 5–93
Exclusive Or with Stack (XORS) 5–80 Multiply Formatted (MULF) 5–108
External Interrupt Program Example 5–184 Multiply Real (MULR) 5–94
Fault (FAULT) 5–186 Multiply Top of Stack (MULS) 5–112
Fill (FILL) 5–146 No Operation (NOP) 5–173
Find (FIND) 5–147 Not (NOT) 5–19
Find Block (FINDB) 5–169 Numerical Constant (NCON) 5–187
Find Greater Than (FDGT) 5–148 Or (OR) 5–73
For / Next (FOR) (NEXT) 5–176 Or (OR) 5–30
Goto Label (GOTO) (LBL) 5–175 Or (OR) 5–12
Goto Subroutine (GTS) (SBR) 5–178 Or Bit-of-Word (ORB) 5–13
Gray Code (GRAY) 5–138 Or Double (ORD) 5–74
HEX to ASCII (HTA) 5–135 Or Formatted (ORF) 5–75
Increment (INC) 5–98 Or If Equal (ORE) 5–27
Increment Binary (INCB) 5–105 Or Immediate (ORI) 5–32
Interrupt (INT) 5–183 OR Move (ORMOV) 5–167
Interrupt Return (IRT) 5–183 Or Negative Differential (ORND) 5–21
Interrupt Return Conditional (IRTC) 5–183 Or Not (ORN) 5–30
Invert (INV) 5–129 Or Not (ORN) 5–12
LCD 5–197 Or Not Bit-of-Word (ORNB) 5–13
Load (LD) 5–57 Or Not Immediate (ORNI) 5–32

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–3


Chapter 5: Standard RLL Instructions

Instruction Page Instruction Page


OR Not Immediate Instructions Cont’d 5–33 Shuffle Digits (SFLDGT) 5–139
Or Out (OR OUT) 5–17 Sine Real (SINR) 5–118
Or Out Immediate (OROUTI) 5–34 Source to Table (STT) 5–156
Or Positive Differential (ORPD) 5–21 Square Root Real (SQRTR) 5–119
Or Store (OR STR) 5–16 Stage Counter (SGCNT) 5–47
Or with Stack (ORS) 5–76 Stop (STOP) 5–173
Out (OUT) 5–64 Store (STR) 5–29
Out (OUT) 5–17 Store (STR) 5–10
Out Bit-of-Word (OUTB) 5–18 Store Bit-of-Word (STRB) 5–11
Out Double (OUTD) 5–64 Store If Equal (STRE) 5–26
Out Formatted (OUTF) 5–65 Store If Not Equal (STRNE) 5–26
Out Immediate (OUTI) 5–34 Store Immediate (STRI) 5–32
Out Immediate Formatted (OUTIF) 5–35 Store Negative Differential (STRND) 5–20
Out Indexed (OUTX) 5–67 Store Not (STRN) 5–29
Out Least (OUTL) 5–68 Store Not (STRN) 5–10
Out Most (OUTM) 5–68 Store Not Bit-of-Word (STRNB) 5–11
Pause (PAUSE) 5–25 Store Not Immediate (STRNI) 5–32
Pop (POP) 5–65 Store Positive Differential (STRPD) 5–20
Positive Differential (PD) 5–19 Subroutine Return (RT) 5–178
Print Message (PRINT) 5–189 Subroutine Return Conditional (RTC) 5–178
Radian Real Conversion (RADR) 5–133 Subtract (SUB) 5–89
Read from Network (RX) 5–193 Subtract Binary (SUBB) 5–101
Real to Binary Conversion (RTOB) 5–132 Subtract Binary Double (SUBBD) 5–102
Remove from Bottom (RFB) 5–153 Subtract Binary Top of Stack (SUBBS) 5–115
Remove from Table (RFT) 5–159 Subtract Double (SUBD) 5–90
Reset (RST) 5–23 Subtract Formatted (SUBF) 5–107
Reset Bit-of-Word (RSTB) 5–24 Subtract Real (SUBR) 5–91
Reset Immediate (RSTI) 5–36 Subtract Top of Stack (SUBS) 5–111
Reset Watch Dog Timer (RSTWT) 5–174 Sum (SUM) 5–120
Rotate Left (ROTL) 5–123 Swap (SWAP) 5–170
Rotate Right (ROTR) 5–124 Table Shift Left (TSHFL) 5–165
RSTBIT 5–144 Table Shift Right (TSHFR) 5–165
Segment (SEG) 5–137 Table to Destination (TTD) 5–150
Set (SET) 5–23 Tangent Real (TANR) 5–118
Set Bit-of-Word (SETB) 5–24 Ten’s Complement (BCDCPL) 5–130
Set Immediate (SETI) 5–36 Time (TIME) 5–172
SETBIT 5–144 Timer (TMR) and Timer Fast (TMRF) 5–40
Shift Left (SHFL) 5–121 Understanding Master Control Relays 5–181
Shift Register (SR) 5–51 Up Down Counter (UDC) 5–49
Shift Right (SHFR) 5–122 Write to Network (WX) 5–195

5–4 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Boolean Instructions

Using Boolean Instructions


Do you ever wonder why so many PLC manufacturers always quote the scan time for a 1K
boolean program? Simple. Most all programs utilize many boolean instructions. These are
typically very simple instructions designed to join input and output contacts in various series
and parallel combinations. Since the DirectSOFT32 package allows you to use graphic
symbols to build the program, you don’t absolutely have to know the mnemonics of the
instructions. However, it may helpful at some point, especially if you ever have to
troubleshoot the program with a Handheld Programmer.The following paragraphs show how
these instructions are used to build simple ladder programs.
END Statement
All DL06 programs require an END statement as the last instruction. This tells the CPU that
this is the end of the program. Normally, any instructions placed after the END statement
will not be executed. There are exceptions to this such as interrupt routines, etc. Chapter 5
discusses the instruction set in detail.

X0 Y0
OUT
All programs must have
an END statement
END

Simple Rungs
You use a contact to start rungs that contain both contacts and coils. The boolean instruction
that does this is called a Store or, STR instruction. The output point is represented by the
Output or, OUT instruction. The following example shows how to enter a single contact and
a single output coil.
Direct SOFT32 Example Handheld Mnemonics

X0 Y0 STR X0
OUT Y0
OUT END

END
Normally Closed Contact
Normally closed contacts are also very common. This is accomplished with the Store Not, or
STRN instruction. The following example shows a simple rung with a normally closed
contact.
Direct SOFT32 Example Handheld Mnemonics
X0 Y0 STRN X0
OUT OUT Y0
END

END

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–5


Chapter 5: Standard RLL Instructions - Boolean Instructions

Contacts in Series
Use the AND instruction to join two or more contacts in series. The following example shows
two contacts in series and a single output coil. The instructions used would be STR X0, AND
X1, followed by OUT Y0.
Direct SOFT32 Example Handheld Mnemonics

X0 X1 Y0 STR X0
AND X1
OUT OUT Y0
END

END

Midline Outputs
Sometimes it is necessary to use midline outputs to get additional outputs that are conditional
on other contacts. The following example shows how you can use the AND instruction to
continue a rung with more conditional outputs.

Direct SOFT32 Example Handheld Mnem

X0 X1 Y0 STR X0
AND X1
OUT OUT Y0
AND X2
X2 Y1 OUT Y1
AND X3
OUT OUT Y2
END
X3 Y2
OUT

Parallel Elements

Direct SOFT32 Example Handheld Mnemonics


X0 Y0 STR X0
OUT OR X1
OUT Y0
X1 END

END

You may also have to join contacts in parallel. The OR instruction allows you to do this. The
following example shows two contacts in parallel and a single output coil. The instructions
would be STR X0, OR X1, followed by OUT Y0.

5–6 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Boolean Instructions

Joining Series Branches in Parallel


Quite often it is necessary to join several groups of series elements in parallel. The Or Store
(ORSTR) instruction allows this operation. The following example shows a simple network
consisting of series elements joined in parallel.
Direct SOFT32 Example Handheld Mnemonics
X0 X1 Y0 STR X0
OUT AND X1
STR X2
X2 X3 AND X3
ORSTR
OUT Y0
END END

Joining Parallel Branches in Series


You can also join one or more parallel branches in series. The And Store (ANDSTR)
instruction allows this operation. The following example shows a simple network with contact
branches in series with parallel contacts.
Direct SOFT32 Example Handheld Mnemonics
X0 X1 Y0 STR X0
OUT STR X1
OR X2
X2 ANDSTR
OUT Y0
END
END

Combination Networks
You can combine the various types of series and parallel branches to solve most any
application problem. The following example shows a simple combination network.
X0 X2 X5 Y0
OUT

X1 X3 X4

X6

END

Comparative Boolean
Some PLC manufacturers make it really difficult to do a simple comparison of two numbers.
Some of them require you to move the data all over the place before you can actually perform
the comparison. The DL06 Micro PLCs provide Comparative Boolean instructions that allow
you to quickly and easily solve this problem. The Comparative Boolean provides evaluation of
two 4-digit values using boolean contacts. The valid evaluations are: equal to, not equal to,
equal to or greater than, and less than.
In the following example when the value in V-
V1400 K1234
memory location V1400 is equal to the constant
value 1234, Y3 will energize.

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–7


Chapter 5: Standard RLL Instructions - Boolean Instructions

Boolean Stack
There are limits to how many elements you can include in a rung. This is because the DL06
PLCs use an 8-level boolean stack to evaluate the various logic elements. The boolean stack is
a temporary storage area that solves the logic for the rung. Each time the program encounters
a STR instruction, the instruction is placed on the top of the stack. Any other STR
instructions already on the boolean stack are pushed down a level. The ANDSTR, and
ORSTR instructions combine levels of the boolean stack when they are encountered. An
error will occur during program compilation if the CPU encounters a rung that uses more
than the eight levels of the boolean stack.
The following example shows how the boolean stack is used to solve boolean logic.

X0 X1 ORSTR AND X4 Y0
STR
STR OUT Output

X2 AND X3
STR ANDSTR

X5 OR

STR X0 STR X1 STR X2 AND X3


1 STR X0 1 STR X1 1 STR X2 1 X2 AND X3
2 2 STR X0 2 2 STR X1
STR X1
3 3 3 STR X0 3 STR X0
4 4 4 4
5 5 5 5
6 6 6 6
7 7 7 7
8 8 8 8

ORSTR AND X4 ORNOT X5


1 X1 or (X2 AND X3) 1 X4 AND {X1 or (X2 AND X3)} 1 NOT X5 OR X4 AND {X1 OR (X2 AND X3)}
2 STR X0 2 STR X0 2
STR X0
3 3 3
. . .
. . .

8 8 8

ANDSTR
1 XO AND (NOT X5 or X4) AND {X1 or (X2 AND X3)}
2
3

.
.

5–8 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Boolean Instructions

Immediate Boolean
The DL06 Micro PLCs can usually complete an operation cycle in a matter of milliseconds.
However, in some applications you may not be able to wait a few milliseconds until the next
I/O update occurs. The DL06 PLCs offer Immediate input and outputs which are special
boolean instructions that allow reading directly from inputs and writing directly to outputs
during the program execution portion of the CPU cycle. You may recall that this is normally
done during the input or output update portion of the CPU cycle. The immediate
instructions take longer to execute because the program execution is interrupted while the
CPU reads or writes the I/O point. This function is not normally done until the read inputs
or the write outputs portion of the CPU cycle.
NOTE: Even though the immediate input instruction reads the most current status from the input point, it
only uses the results to solve that one instruction. It does not use the new status to update the image
register. Therefore, any regular instructions that follow will still use the image register values. Any
immediate instructions that follow will access the I/O again to update the status. The immediate output
instruction will write the status to the I/O and update the image register.

PWR
RUN
CPU
TX1
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 RX1
TX2
RX2

LOGIC 06
K oyo

TERM

PORT1 PORT2 RUN STOP

CPU Scan

The CPU reads the inputs from the local


base and stores the status in an input
Read Inputs image register .

X11 ... X2 X1 X0
OFF ... ON OFF OFF OFF X0
Input Image Register,
OFF X1

Read Inputs from Specialty I/O

Solve the Application Program


Immediate instruction does not use the
input image register , but instead reads
X0 Y0 the status from the module immediately .
I I/O Point X0 Changes

ON X0
OFF X1
Write Outputs

Write Outputs to Specialty I/O

Diagnostics

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–9


Chapter 5: Standard RLL Instructions - Boolean Instructions

Boolean Instructions
Store (STR)
The Store instruction begins a new rung or an additional
Aaaa
branch in a rung with a normally open contact. Status of
the contact will be the same state as the associated image
register point or memory location.
Store Not (STRN)
The Store Not instruction begins a new rung or an Aaaa
additional branch in a rung with a normally closed
contact. Status of the contact will be opposite the state of
the associated image register point or memory location.

Operand Data Type DL06 Range


....................................A aaa
Inputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X 0–777
Outputs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Y 0–777
Control Relays . . . . . . . . . . . . . . . . . . . . . . . . . . C 0–1777
Stage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . S 0–1777
Timer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . T 0–377
Counter C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CT 0–177
Special Relay . . . . . . . . . . . . . . . . . . . . . . . . . . SP 0–777

In the following Store example, when input X1 is on, output Y2 will energize.

Direct SOFT32 Handheld Programmer Keystrokes

X1 Y2 $ B ENT
STR 1
OUT
GX C ENT
OUT 2

In the following Store Not example, when input X1 is off output Y2 will energize.
Direct SOFT32 Handheld Programmer Keystrokes
X1 Y2 SP B ENT
OUT STRN 1
GX C ENT
OUT 2

5–10 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Boolean Instructions

Store Bit-of-Word (STRB)


The Store Bit-of-Word instruction begins a new rung or an
additional branch in a rung with a normally open contact. Aaaa.bb
Status of the contact will be the same state as the bit referenced
in the associated memory location.
Store Not Bit-of-Word (STRNB)
The Store Not instruction begins a new rung or an additional Aaaa.bb
branch in a rung with a normally closed contact. Status of the
contact will be opposite the state of the bit referenced in the
associated memory location.
Operand Data Type DL06 Range
..................................... A aaa bb
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B See memory map BCD, 0 to 15
Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PB See memory map BCD, 0 to 15

In the following Store Bit-of-Word example, when bit 12 of V-memory location V1400 is on,
output Y2 will energize.
DirectSOFT32

B1400.12 Y2

OUT

Handheld Programmer Keystrokes

STR SHFT B V 1 4 0 0

K 1 2 ENT

OUT 2 ENT

In the following Store Not Bit-of-Word example, when bit 12 of V-memory location V1400
is off, output Y2 will energize.

DirectSOFT32
B1400.12 Y2

OUT

Handheld Programmer Keystrokes

STRN SHFT B V 1 4 0 0

K 1 2 ENT

OUT 2 ENT

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–11


Chapter 5: Standard RLL Instructions - Boolean Instructions

Or (OR)
The Or instruction logically ors a normally open contact in
parallel with another contact in a rung. The status of the
Aaaa
contact will be the same state as the associated image register
point or memory location.
Or Not (ORN)
The Or Not instruction logically ors a normally closed contact
in parallel with another contact in a rung. The status of the Aaaa
contact will be opposite the state of the associated image
register point or memory location.

Operand Data Type DL06 Range


....................................A aaa
Inputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X 0-777
Outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Y 0-777
Control Relays . . . . . . . . . . . . . . . . . . . . . . . . . . C 0–1777
Stage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . S 0–1777
Timer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . T 0–377
Counter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CT 0–177
Special Relay . . . . . . . . . . . . . . . . . . . . . . . . . . SP 0-777

In the following Or example, when input X1 or X2 is on, output Y5 will energize.

Direct SOFT32 Handheld Programmer Keystrokes

X1 Y5 $ B ENT
STR 1
OUT
Q C ENT
OR 2
X2
GX F ENT
OUT 5

In the following Or Not example, when input X1 is on or X2 is off, output Y5 will


energize.

Direct SOFT32 Handheld Programmer Keystrokes

X1 Y5 $ B ENT
OUT STR 1
R C ENT
ORN 2
X2
GX F ENT
OUT 5

5–12 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Boolean Instructions

Or Bit-of-Word (ORB)
The Or Bit-of-Word instruction logically ors a normally
open contact in parallel with another contact in a rung.
Aaaa.bb
Status of the contact will be the same state as the bit
referenced in the associated memory location.
Or Not Bit-of-Word (ORNB)
The Or Not Bit-of-Word instruction logically ors a
normally closed contact in parallel with another contact
in a rung. Status of the contact will be opposite the state Aaaa.bb
of the bit referenced in the associated memory location.

Operand Data Type DL06 Range


..................................... A aaa bb
V memory. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B See memory map BCD, 0 to 15
Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PB See memory map BCD, 0 to 15

In the following Or Bit-of-Word example, when input X1 or bit 7 of V1400 is on, output Y5
will energize.
DirectSOFT32

X1 Y7

OUT

B1400.7

Handheld Programmer Keystrokes

STR 1 ENT

OR SHFT B V 1 4 0 0

K 7 ENT

OUT 7 ENT

In the following Or Bit-of-Word example, when input X1 is on or bit 7 of V1400 is off,


output Y7 will energize.

DirectSOFT32

X1 Y7

OUT

B1400.7

Handheld Programmer Keystrokes

STR 1 ENT

ORN SHFT B V 1 4 0 0

K 7 ENT

OUT 7 ENT

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–13


Chapter 5: Standard RLL Instructions - Boolean Instructions

And (AND)
The And instruction logically ands a normally open Aaaa
contact in series with another contact in a rung. The
status of the contact will be the same state as the
associated image register point or memory location.
And Not (ANDN)
The And Not instruction logically ands a normally Aaaa
closed contact in series with another contact in a rung.
The status of the contact will be opposite the state of
the associated image register point or memory location.

Operand Data Type DL06 Range


....................................A aaa
Inputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X 0–777
Outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Y 0–777
Control Relays . . . . . . . . . . . . . . . . . . . . . . . . . . C 0–1777
Stage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . S 0–1777
Timer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . T 0–377
Counter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CT 0–177
Special Relay . . . . . . . . . . . . . . . . . . . . . . . . . . SP 0–777

In the following And example, when input X1 and X2 are on output Y5 will energize.

Direct SOFT32 Handheld Programmer Keystrokes

X1 X2 Y5 $ B ENT
STR 1
OUT
V C ENT
AND 2
GX F ENT
OUT 5

In the following And Not example, when input X1 is on and X2 is off output Y5 will
energize.

Direct SOFT32 Handheld Programmer Keystrokes

X1 X2 Y5 $ B ENT
OUT STR 1
W C ENT
ANDN 2
GX F ENT
OUT 5

5–14 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Boolean Instructions

AND Bit-of-Word (ANDB)


The And Bit-of-Word instruction logically ands a Aaaa.bb
normally open contact in series with another contact in a
rung. The status of the contact will be the same state as
the bit referenced in the associated memory location.
And Not Bit-of-Word (ANDNB)
The And Not Bit-of-Word instruction logically ands a Aaaa.bb
normally closed contact in series with another contact in a
rung. The status of the contact will be opposite the state
of the bit referenced in the associated memory location.
Operand Data Type DL06 Range
..................................... A aaa bb
V memory. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B See memory map BCD, 0 to 15
Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PB See memory map BCD, 0 to 15

In the following And Bit-of-Word example, when input X1 and bit 4 of V1400 is on output
Y5 will energize.

DirectSOFT32

X1 B1400.4 Y5

OUT

Handheld Programmer Keystrokes

STR 1 ENT

AND SHFT B V 1 4 0 0

K 4 ENT

OUT 5 ENT

In the following And Not Bit-of-Word example, when input X1 is on and bit 4 of V1400 is
off output Y5 will energize.
DirectSOFT32

X1 B1400.4 Y5

OUT

Handheld Programmer Keystrokes

STR 1 ENT

ANDN SHFT B V 1 4 0 0

K 4 ENT

OUT 5 ENT

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–15


Chapter 5: Standard RLL Instructions - Boolean Instructions

And Store (AND STR)


The And Store instruction logically ands two OUT
branches of a rung in series. Both branches must
1 2
begin with the Store instruction.

Or Store (OR STR) 1


The Or Store instruction logically ors two branches OUT
of a rung in parallel. Both branches must begin with
the Store instruction. 2

In the following And Store example, the branch


consisting of contacts X2, X3, and X4 have been anded with the branch consisting of contact
X1.

Direct SOFT32 Handheld Programmer Keystrokes

X1 X2 X3 Y5 $ B ENT
STR 1
OUT
$ C ENT
STR 2
X4
V D
ENT
AND 3
Q E
ENT
OR 4
L ENT
ANDST
GX F ENT
OUT 5

In the following Or Store example, the branch consisting of X1 and X2 have been ored with
the branch consisting of X3 and X4.
Direct SOFT32 Handheld Programmer Keystrokes

X1 X2 Y5 $ B ENT
STR 1
OUT
V C
ENT
AND 2
X3 X4
$ D ENT
STR 3
V E ENT
AND 4
M ENT
ORST
GX F ENT
OUT 5

5–16 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Boolean Instructions

Out (OUT)
Aaaa
The Out instruction reflects the status of the rung (on/off ) and
outputs the discrete (on/off ) state to the specified image register OUT
point or memory location.
Multiple Out instructions referencing the same discrete location should not be used since
only the last Out instruction in the program will control the physical output point. Instead,
use the next instruction, the Or Out.
Operand Data Type DL06 Range
....................................A aaa
Inputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X 0–777
Outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Y 0–777
Control Relays . . . . . . . . . . . . . . . . . . . . . . . . . . C 0–1777

In the following Out example, when input X1 is on, output Y2 and Y5 will energize.
Direct SOFT32 Handheld Programmer Keystrokes

X1 Y2 $ B ENT
STR 1
OUT
GX C ENT
OUT 2
Y5
GX F ENT
OUT OUT 5

Or Out (OR OUT)


The Or Out instruction allows more than one rung of discrete
logic to control a single output. Multiple Or Out instructions A aaa
referencing the same output coil may be used, since all contacts OR OUT
controlling the output are logically ORed together. If the status
of any rung is on, the output will also be on.

Operand Data Type DL06 Range


....................................A aaa
Inputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X 0–777
Outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Y 0-777
Control Relays . . . . . . . . . . . . . . . . . . . . . . . . . . C 0–1777

In the following example, when X1 or X4 is on, Y2 will energize.

Direct SOFT32 Handheld Programmer Keystrokes

X1 Y2
$ B ENT
OR OUT STR 1
O D F ENT ENT C ENT
INST# 3 5 2
$ E ENT
STR 4
X4 Y2 O D F C
ENT ENT ENT
INST# 3 5 2
OR OUT

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–17


Chapter 5: Standard RLL Instructions - Boolean Instructions

Out Bit-of-Word (OUTB)


The Out Bit-of-Word instruction reflects the status of the rung
(on/off ) and outputs the discrete (on/off ) state to the specified bit
Aaaa.bb
in the referenced memory location. Multiple Out Bit-of-Word
OUT
instructions referencing the same bit of the same word generally
should not be used since only the last Out instruction in the
program will control the status of the bit.

Operand Data Type DL06 Range


A aaa bb
V memory B See memory map BCD, 0 to 15
Pointer PB See memory map BCD, 0 to 15
In the following Out Bit-of-Word example, when input X1 is on, bit 3 of V1400 and bit 6 of
V1401 will turn on.
DirectSOFT32

X1 B1400.3

OUT

B1401.6
Handheld Programmer Keystrokes
OUT

STR 1 ENT

OUT SHFT B V 1 4 0 0

K 3 ENT

OUT SHFT B V 1 4 0 1

K 6 ENT

The following Out Bit-of-Word example contains two Out Bit-of-Word instructions using
the same bit in the same memory word. The final state bit 3 of V1400 is ultimately controlled
by the last rung of logic referencing it. X1 will override the logic state controlled by X0. To
avoid this situation, multiple outputs using the same location must not be used in
programming.

X0 B1400.3

OUT

X1 B1400.3

OUT

5–18 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Boolean Instructions

Not (NOT)
The Not instruction inverts the status of the rung
at the point of the instruction.
In the following example when X1 is off, Y2 will energize. This is because the Not instruction
inverts the status of the rung at the Not instruction.
DirectSOFT32 Handheld Programmer Keystrokes

X1 Y2 $ B ENT
STR 1
OUT
SHFT N O T ENT
TMR INST# MLR
GX C ENT
OUT 2

NOTE: DirectSOFT Release 1.1i and later supports the use of the NOT instruction. The above example rung
is merely intended to show the visual representation of the NOT instruction. The rung cannot be created or
displayed in DirectSOFT versions earlier than 1.1i.

Positive Differential (PD)


The Positive Differential instruction is typically A aaa
known as a one shot. When the input logic PD
produces an off to on transition, the output will
energize for one CPU scan.

Operand Data Type DL06 Range


....................................A aaa
Inputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X 0–777
Outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Y 0–777
Control Relays . . . . . . . . . . . . . . . . . . . . . . . . . . C 0–1777

In the following example, every time X1 makes an off to on transition, C0 will energize for
one scan.

DirectSOFT32 Handheld Programmer Keystrokes

X1 C0 $ B ENT
STR 1
PD
SHFT P SHFT D A
CV 3 0

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–19


Chapter 5: Standard RLL Instructions - Boolean Instructions

Store Positive Differential (STRPD)


The Store Positive Differential instruction begins a
new rung or an additional branch in a rung with a Aaaa
contact. The contact closes for one CPU scan when
the state of the associated image register point makes
an Off-to-On transition. Thereafter, the contact
remains open until the next Off-to-On transition (the
symbol inside the contact represents the transition).
This function is sometimes called a “one-shot”.
Store Negative Differential (STRND)
The Store Negative Differential instruction begins a
new rung or an additional branch in a rung with a
contact. The contact closes for one CPU scan when
the state of the associated image register point makes Aaaa
an On-to-Off transition. Thereafter, the contact
remains open until the next On-to-Off transition
(the symbol inside the contact represents the
transition).

Operand Data Type DL06 Range


....................................A aaa
Inputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X 0–777
Outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Y 0–777
Control Relays . . . . . . . . . . . . . . . . . . . . . . . . . . C 0–1777
Stage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . S 0–1777
Timer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . T 0–377
Counter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CT 0–177

In the following example, each time X1 is makes an Off-to-On transition, Y4 will energize for
one scan.

DirectSOFT32 Handheld Programmer Keystrokes

X1 $ SHFT P D B ENT
Y4 STR CV 3 1
OUT GX E ENT
OUT 4

In the following example, each time X1 is makes an On-to-Off transition, Y4 will energize for
one scan.
DirectSOFT32 Handheld Programmer Keystrokes

X1 $ SHFT N D B ENT
Y4 STR TMR 3 1
OUT GX E
ENT
OUT 4

5–20 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Boolean Instructions

Or Positive Differential (ORPD)


The Or Positive Differential instruction logically ors a
contact in parallel with another contact in a rung. The
status of the contact will be open until the associated Aaaa
image register point makes an Off-to-On transition,
closing it for one CPU scan. Thereafter, it remains open
until another Off-to-On transition.
Or Negative Differential (ORND)
The Or Negative Differential instruction logically ors a
contact in parallel with another contact in a rung. The
status of the contact will be open until the associated Aaaa
image register point makes an On-to-Off transition,
closing it for one CPU scan. Thereafter, it remains open
until another On-to-Off transition.

Operand Data Type DL06 Range


....................................A aaa
Inputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X 0–777
Outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Y 0–777
Control Relays . . . . . . . . . . . . . . . . . . . . . . . . . . C 0–1777
Stage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . S 0–1777
Timer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . T 0–377
Counter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CT 0–177
In the following example, Y 5 will energize whenever X1 is on, or for one CPU scan when X2
transitions from Off to On.

DirectSOFT32 Handheld Programmer Keystrokes


$ B ENT
X1 Y5 STR 1
OUT Q SHFT P D C ENT
OR CV 3 2
X2 GX F
ENT
OUT 5

In the following example, Y 5 will energize whenever X1 is on, or for one CPU scan when X2
transitions from On to Off.

DirectSOFT32 Handheld Programmer Keystrokes


$ B ENT
X1 Y5 STR 1
OUT Q N D C
SHFT ENT
OR TMR 3 2
X2 GX F
ENT
OUT 5

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–21


Chapter 5: Standard RLL Instructions - Boolean Instructions

And Positive Differential (ANDPD)


The And Positive Differential instruction logically ands a
normally open contact in parallel with another contact
in a rung. The status of the contact will be open until Aaaa
the associated image register point makes an Off-to-On
transition, closing it for one CPU scan. Thereafter, it
remains open until another Off-to-On transition.
And Negative Differential (ANDND)
The And Negative Differential instruction logically ands
a normally open contact in parallel with another contact Aaaa
in a rung.The status of the contact will be open until the
associated image register point makes an On-to-Off
transition, closing it for one CPU scan. Thereafter, it
remains open until another On-to-Off transition.
Operand Data Type DL06 Range
....................................A aaa
Inputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X 0–777
Outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Y 0–777
Control Relays . . . . . . . . . . . . . . . . . . . . . . . . . . C 0–1777
Stage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . S 0–1777
Timer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . T 0–377
Counter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CT 0–177

In the following example, Y5 will energize for one CPU scan whenever X1 is on and X2
transitions from Off to On.

DirectSOFT32 Handheld Programmer Keystrokes


$ B ENT
X1 X2 Y5 STR 1
OUT Q SHFT P D C ENT
OR CV 3 2
GX F
ENT
OUT 5

In the following example, Y5 will energize for one CPU scan whenever X1 is on and X2
transitions from On to Off.

DirectSOFT32 Handheld Programmer Keystrokes

X2 $ B ENT
X1 Y5 STR 1
OUT Q N D C
SHFT ENT
OR TMR 3 2
GX F
ENT
OUT 5

5–22 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Boolean Instructions

Set (SET) Optional


The Set instruction sets or turns on an image register memory range

point/memory location or a consecutive range of A aaa aaa


image register points/memory locations. Once the SET
point/location is set it will remain on until it is reset
using the Reset instruction. It is not necessary for the
input controlling the Set instruction to remain on.
Reset (RST) Optional
Memory. range
The Reset instruction resets or turns off an image
register point/memory location or a range of image A aaa aaa
registers points/memory locations. Once the RST
point/location is reset it is not necessary for the input
to remain on.
Operand Data Type DL06 Range
....................................A aaa
Inputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X 0–777
Outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Y 0–777
Control Relays . . . . . . . . . . . . . . . . . . . . . . . . . . C 0–1777
Stage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . S 0–1777
Timer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . T 0–377
Counter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CT 0–177

In the following example when X1 is on, Y2 through Y5 will energize.

DirectSOFT32 Handheld Programmer Keystrokes

X1 $ B
Y2 Y5 ENT
STR 1
SET
X C F ENT
SET 2 5

In the following example when X1 is on, Y2 through Y5 will be reset or de–energized.

DirectSOFT32 Handheld Programmer Keystrokes

X2 $ B
Y2 Y5 ENT
STR 1
RST
S C F ENT
RST 2 5

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–23


Chapter 5: Standard RLL Instructions - Boolean Instructions

Set Bit-of-Word (SETB)


The Set Bit-of-Word instruction sets or turns on a bit in a V
memory location. Once the bit is set it will remain on until it is Aaaa.bb
reset using the Reset Bit-of-Word instruction. It is not necessary SET
for the input controlling the Set Bit-of-Word instruction to
remain on.
Reset Bit-of-Word (RSTB)
The Reset Bit-of-Word instruction resets or turns off a bit in a V A aaa.bb
memory location. Once the bit is reset it is not necessary for the RST
input to remain on.
Operand Data Type DL06 Range
....................................A aaa bb
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B See memory map BCD, 0 to 15
Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PB See memory map BCD, 0 to 15

In the following example when X1 turns on, bit 1 in V1400 is set to the on state.
DirectSOFT32

X1
B1400.1
SET

Handheld Programmer Keystrokes

STR 1 ENT

SET SHFT B V 1 4 0 0

K 1 ENT

In the following example when X2 turns on, bit 1 in V1400 is reset to the off state.
DirectSOFT32

X2
B1400.1
RST

Handheld Programmer Keystrokes

STR 2 ENT

RST SHFT B V 1 4 0 0

K 1 ENT

5–24 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Boolean Instructions

Pause (PAUSE)
The Pause instruction disables the output update on a
range of outputs. The ladder program will continue to Y aaa aaa
run and update the image register. However, the outputs PAUSE
in the range specified in the Pause instruction will be
turned off at the output points.

Operand Data Type DL06 Range


aaa
Outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Y 0–777

In the following example, when X1 is ON, Y5–Y7 will be turned OFF. The execution of the
ladder program will not be affected.
DirectSOFT32

X1 Y5 Y7

PAUSE

Since the D2–HPP Handheld Programmer does not have a specific Pause key, you can use
the corresponding instruction number for entry (#960), or type each letter of the command.

Handheld Programmer Keystrokes

$ B ENT
STR 1
O J G A ENT ENT D F ENT
INST# 9 6 0 3 5

In some cases, you may want certain output points in the specified pause range to operate
normally. In that case, use Aux 58 to over-ride the Pause instruction.

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–25


Chapter 5: Standard RLL Instructions - Comparative Boolean

Comparative Boolean
Store If Equal (STRE)
The Store If Equal instruction begins a new rung or
additional branch in a rung with a normally open V aaa B bbb
comparative contact. The contact will be on when Vaaa
equals Bbbb .
Store If Not Equal (STRNE)
The Store If Not Equal instruction begins a new rung or V aaa B bbb
additional branch in a rung with a normally closed
comparative contact. The contact will be on when Vaaa
does not equal Bbbb.
Operand Data Type DL06 Range
....................................B aaa bbb
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map See memory map
Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P See memory map See memory map
Constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K –– 0–9999

In the following example, when the value in V memory location V2000 = 4933 , Y3 will
energize.

DirectSOFT32 Handheld Programmer Keystrokes

V2000 K4933 Y3 $ SHFT E C A A A


STR 4 2 0 0 0
OUT
E J D D ENT
4 9 3 3
GX D ENT
OUT 3

In the following example, when the value in V memory location V2000 =/ 5060, Y3 will
energize.

DirectSOFT32 Handheld Programmer Keystrokes

Y3 SP SHFT E C A A A
V2000 K5060
STRN 4 2 0 0 0
OUT
F A G A ENT
5 0 6 0
GX D ENT
OUT 3

5–26 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Comparative Boolean

Or If Equal (ORE)
The Or If Equal instruction connects a normally open
comparative contact in parallel with another contact. V aaa B bbb
The contact will be on when Vaaa = Bbbb.
Or If Not Equal (ORNE)
The Or If Not Equal instruction connects a normally
closed comparative contact in parallel with another
contact. The contact will be on when Vaaa does not V aaa B bbb
equal Bbbb.

Operand Data Type DL06 Range


....................................B aaa bbb
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map See memory map
Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P See memory map See memory map
Constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K –– 0–9999

In the following example, when the value in V memory location V2000 = 4500 or V2002 =/
2500, Y3 will energize.

DirectSOFT32 Handheld Programmer Keystrokes

$ SHFT E C A A A
V2000 K4500 Y3
STR 4 2 0 0 0
OUT
E F A A ENT
4 5 0 0

V2002 K2345 Q SHFT E C A A C


OR 4 2 0 0 2
C D E F ENT
2 3 4 5
GX D ENT
OUT 3

In the following example, when the value in V memory location V2000 = 3916 or V2002
050, Y3 will energize.

DirectSOFT32 Handheld Programmer Keystrokes

$ SHFT E C A A A
V2000 K3916 Y3 STR 4 2 0 0 0
OUT D J B G ENT
3 9 1 6

V2002 K2500 R SHFT E C A A C


ORN 4 2 0 0 2
C F A A ENT
2 5 0 0
GX D ENT
OUT 3

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–27


Chapter 5: Standard RLL Instructions - Comparative Boolean

And If Equal (ANDE)


The And If Equal instruction connects a normally V aaa B bbb
open comparative contact in series with another
contact. The contact will be on when Vaaa = Bbbb.
And If Not Equal (ANDNE)
The And If Not Equal instruction connects a V aaa B bbb
normally closed comparative contact in series with
another contact. The contact will be on when Vaaa
does not equal Bbbb

Operand Data Type DL06 Range


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A/B aaa bbb
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map See memory map
Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P See memory map See memory map
Constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K –– 0–9999

In the following example, when the value in V memory location V2000 = 5000 and V2002 =
2345, Y3 will energize.

DirectSOFT32 Handheld Programmer Keystrokes

V2000 K5000 V2002 K2345 Y3 $ SHFT E C A A A


STR 4 2 0 0 0
OUT
F A A A ENT
5 0 0 0
V SHFT E C A A C
AND 4 2 0 0 2
C D E F ENT
2 3 4 5
GX D ENT
OUT 3

In the following example, when the value in V memory location V2000 = 5000 and V2002 =/
2345, Y3 will energize.

DirectSOFT32 Handheld Programmer Keystrokes

V2000 K5000 V2002 K2345 Y3 $ SHFT E C A A A


STR 4 2 0 0 0
OUT
F A A A ENT
5 0 0 0
V SHFT E C A A C
AND 4 2 0 0 2
C D E F ENT
2 3 4 5
GX D ENT
OUT 3

5–28 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Comparative Boolean

Store (STR)
The Comparative Store instruction begins a new rung or A aaa B bbb
additional branch in a rung with a normally open comparative
contact. The contact will be on when Aaaa is equal to or greater
than Bbbb.
Store Not (STRN) A aaa B bbb
The Comparative Store Not instruction begins a new rung or
additional branch in a rung with a normally closed comparative
contact. The contact will be on when Aaaa < Bbbb.
Operand Data Type DL06 Range
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A/B aaa bbb
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map See memory map
Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p See memory map See memory map
Constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K –– 0–9999
Timer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . T 0–377
Counter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CT 0–177

In the following example, when the value in V memory location V2000 욷 1000, Y3 will
energize.

DirectSOFT32 Handheld Programmer Keystrokes

V2000 K1000 Y3 $ SHFT V C A A A


STR AND 2 0 0 0
OUT
B A A A ENT
1 0 0 0
GX D ENT
OUT 3

In the following example, when the value in V memory location V2000 < 4050, Y3 will
energize.

DirectSOFT32 Handheld Programmer Keystrokes

V2000 K4050 Y3 SP SHFT V C A A A


STRN AND 2 0 0 0
OUT
E A F A ENT
4 0 5 0
GX D ENT
OUT 3

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–29


Chapter 5: Standard RLL Instructions - Comparative Boolean

Or (OR)
The Comparative Or instruction connects a normally
open comparative contact in parallel with another contact. A aaa B bbb
The contact will be on when Aaaa is equal to or greater
than Bbbb.
Or Not (ORN)
The Comparative Or Not instruction connects a
normally open comparative contact in parallel with A aaa B bbb
another contact. The contact will be on when Aaaa <
Bbbb.

Operand Data Type DL06 Range


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A/B aaa bbb
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map See memory map
Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p See memory map See memory map
Constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K –– 0–9999
Timer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . T 0–377
Counter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CT 0–177

In the following example, when the value in V memory location V2000 = 6045 or
V2002 욷 2345, Y3 will energize.

DirectSOFT32 Handheld Programmer Keystrokes

$ SHFT E C A A A
V2000 K6045 Y3 STR 4 2 0 0 0
OUT G A E F ENT
6 0 4 5

V2002 K2345 Q SHFT V C A A C


OR AND 2 0 0 2
C D E F ENT
2 3 4 5
GX D ENT
OUT 3

In the following example when the value in V memory location V2000 = 1000 or
V2002 < 2500, Y3 will energize.

DirectSOFT32 Handheld Programmer Keystrokes


$ SHFT E C A A A
V2000 K1000 Y3 STR 4 2 0 0 0
OUT B A A A ENT
1 0 0 0
R SHFT V C A A C
V2002 K2500 ORN AND 2 0 0 2
C F A A ENT
2 5 0 0
GX D ENT
OUT 3

5–30 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Comparative Boolean

And (AND)
The Comparative And instruction connects a normally A aaa B bbb
open comparative contact in series with another
contact. The contact will be on when Aaaa is equal to or
greater than Bbbb.
And Not (ANDN) A aaa B bbb
The Comparative And Not instruction connects a normally
open comparative contact in parallel with another contact.
The contact will be on when Aaaa < Bbbb.
Operand Data Type DL06 Range
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A/B aaa bbb
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map See memory map
Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p See memory map See memory map
Constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K –– 0–9999
Timer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . T 0–377
Counter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CT 0–177

In the following example, when the value in V memory location V2000 = 5000, and
V2002 욷 2345, Y3 will energize.

DirectSOFT32 Handheld Programmer Keystrokes

V2000 K5000 V2002 K2345 Y3 $ SHFT E C A A A


STR 4 2 0 0 0
OUT
F A A A ENT
5 0 0 0
V SHFT V C A A C
AND AND 2 0 0 2
C D E F ENT
2 3 4 5
GX D ENT
OUT 3

In the following example, when the value in V memory location V2000 = 7000 and
V2002 < 2500, Y3 will energize.

DirectSOFT32 Handheld Programmer Keystrokes

$ SHFT E C A A A
V2000 K7000 V2002 K2500 Y3 STR 4 2 0 0 0
OUT H A A A ENT
7 0 0 0
W SHFT V C A A C
ANDN AND 2 0 0 2
C F A A ENT
2 5 0 0
GX SHFT Y D ENT
OUT AND 3

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–31


Chapter 5: Standard RLL Instructions - Immediate Instructions

Immediate Instructions
Store Immediate (STRI)
The Store Immediate instruction begins a new rung
or additional branch in a rung. The status of the X aaa
contact will be the same as the status of the
associated input point at the time the instruction is
executed. The image register is not updated.
Store Not Immediate (STRNI)
The Store Not Immediate instruction begins a new
rung or additional branch in a rung. The status of X aaa
the contact will be opposite the status of the
associated input point at the time the instruction is
executed. The image register is not updated.
Operand Data Type DL06 Range
aaa
Inputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X 0–777

In the following example when X1 is on, Y2 will energize.


DirectSOFT32 Handheld Programmer Keystrokes

X1 Y2 $ SHFT I B ENT
STR 8 1
OUT
GX C ENT
OUT 2

In the following example when X1 is off, Y2 will energize.


DirectSOFT32 Handheld Programmer Keystrokes
X1 Y2 SP I B
SHFT ENT
STRN 8 1
OUT
GX C ENT
OUT 2

Or Immediate (ORI)
The Or Immediate connects two contacts in parallel. The status
of the contact will be the same as the status of the associated X aaa
input point at the time the instruction is executed. The image
register is not updated.
Or Not Immediate (ORNI)
The Or Not Immediate connects two contacts in parallel. The
status of the contact will be opposite the status of the associated X aaa

input point at the time the instruction is executed. The image


register is not updated.

5–32 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Immediate Instructions

OR Not Immediate Instructions Cont’d


Operand Data Type DL06 Range
aaa
Inputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X 0–777
In the following example, when X1 or X2 is on, Y5 will energize.
DirectSOFT32 Handheld Programmer Keystrokes
X1 Y5 $ B ENT
OUT STR 1
Q SHFT I C ENT
X2 OR 8 2
GX F ENT
OUT 5

In the following example, when X1 is on or X2 is off, Y5 will energize.


Handheld Programmer Keystrokes
DirectSOFT32
X1 Y5 $ B ENT
OUT STR 1
R SHFT I C ENT
X2 ORN 8 2
GX F ENT
OUT 5

And Immediate (ANDI)


The And Immediate connects two contacts in series. The
status of the contact will be the same as the status of the X aaa
associated input point at the time the instruction is executed.
The image register is not updated.
And Not Immediate (ANDNI)
The And Not Immediate connects two contacts in series.
The status of the contact will be opposite the status of the X aaa
associated input point at the time the instruction is executed.
The image register is not updated.
Operand Data Type DL06 Range
aaa
Inputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X 0–777

In the following example, when X1 and X2 are on, Y5 will energize.


DirectSOFT32 Handheld Programmer Keystrokes
X1 X2 Y5 $ B ENT
OUT STR 1
V SHFT I C ENT
AND 8 2
GX F ENT
OUT 5

In the following example, when X1 is on and X2 is off, Y5 will energize.


DirectSOFT32 Handheld Programmer Keystrokes

X1 X2 Y5 $ B ENT
STR 1
OUT
W SHFT I C ENT
ANDN 8 2
GX F ENT
OUT 5

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–33


Chapter 5: Standard RLL Instructions - Immediate Instructions

Out Immediate (OUTI)


The Out Immediate instruction reflects the status of the
rung (on/off ) and outputs the discrete (on/off ) status to
the specified module output point and the image register
Y aaa
at the time the instruction is executed. If multiple Out
Immediate instructions referencing the same discrete OUTI
point are used it is possible for the module output status
to change multiple times in a CPU scan. See Or Out
Immediate.
Or Out Immediate (OROUTI)
The Or Out Immediate instruction has been designed to
use more than 1 rung of discrete logic to control a single
output. Multiple Or Out Immediate instructions
Y aaa
referencing the same output coil may be used, since all
OROUTI
contacts controlling the output are ored together. If the
status of any rung is on at the time the instruction is
executed, the output will also be on.

Operand Data Type DL06 Range


aaa
Outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Y 0–777

In the following example, when X1 is on, output point Y2 on the output module will turn
on. For instruction entry on the Handheld Programmer, you can use the instruction number
(#350) as shown, or type each letter of the command.
DirectSOFT32 Handheld Programmer Keystrokes

X1 Y2 $ B ENT
STR 1
OUTI
O D F A ENT ENT
INST# 3 5 0
C ENT
2

In the following example, when X1 or X4 is on, Y2 will energize.

DirectSOFT32 Handheld Programmer Keystrokes

$ B ENT
X1 Y2
STR 1
OR OUTI O D F A ENT ENT
INST# 3 5 0
C ENT
X4 Y2 2
OR OUTI $ E ENT
STR 4
O D F A ENT ENT
INST# 3 5 0
C ENT
2

5–34 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Immediate Instructions

Out Immediate Formatted (OUTIF)


The Out Immediate Formatted instruction outputs a 1–32 OUTIF Y aaa
bit binary value from the accumulator to specified output K bbb
points at the time the instruction is executed. Accumulator bits
that are not used by the instruction are set to zero.
Operand Data Type DL06 Range
aaa
Outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Y 0-777
Constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K 1-32

In the following example when C0 is on,the binary pattern for X10 –X17 is loaded into the
accumulator using the Load Immediate Formatted instruction. The binary pattern in the
accumulator is written to Y30–Y37 using the Out Immediate Formatted instruction. This
technique is useful to quickly copy an input pattern to outputs (without waiting for the CPU
scan).

DirectSOFT32
CO
LDIF X10 Location Constant X17 X16 X15 X14 X13 X12 X11 X10
K8 X10 K8 ON OFF ON ON OFF ON OFF ON
Load the value of 8
Unused accumulator bits
consecutive locations into the
are set to zero
accumulator, starting with X10.

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Acc. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 1

OUTIF Y30
K8

Copy the value in the lower Location Constant Y37 Y36 Y35 Y34 Y33 Y32 Y31 Y30
8 bits of the accumulator to
Y30-Y37 Y30 K8 ON OFF ON ON OFF ON OFF ON

Handheld Programmer Keystrokes

$ NEXT NEXT NEXT NEXT A ENT


STR 0

SHFT L D I F B A I ENT
ANDST 3 8 5 1 0 8
GX SHFT I F D A I ENT
OUT 8 5 3 0 8

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–35


Chapter 5: Standard RLL Instructions - Immediate Instructions

Set Immediate (SETI)


The Set Immediate instruction immediately sets, or
turns on an output or a range of outputs in the image
register and the corresponding output point(s) at the Y aaa aaa
time the instruction is executed. Once the outputs are set SETI
it is not necessary for the input to remain on. The
Reset Immediate instruction can be used to reset the
outputs.
Reset Immediate (RSTI)
The Reset Immediate instruction immediately resets,
or turns off an output or a range of outputs in the Y aaa aaa
image register and the output point(s) at the time the RSTI
instruction is executed. Once the outputs are reset it is
not necessary for the input to remain on.

Operand Data Type DL06 Range


aaa
Outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Y 0–777
In the following example, when X1 is on, Y2 through Y5 will be set on in the image register
and on the corresponding output points.

DirectSOFT32 Handheld Programmer Keystrokes

$ B ENT
X1 Y2 Y5 STR 1
SETI X I C F
SHFT ENT
SET 8 2 5

In the following example, when X1 is on, Y5 through Y22 will be reset (off ) in the image
register and on the corresponding output module(s).

DirectSOFT32
Handheld Programmer Keystrokes
X1 Y5 Y22
$ B ENT
RSTI STR 1
S SHFT I F C C ENT
RST 8 5 2 2

5–36 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Immediate Instructions

Load Immediate (LDI)


The Load Immediate instruction loads a 16-bit V-memory value
into the accumulator. The valid address range includes all input
LDI
point addresses on the local base. The value reflects the current
V aaa
status of the input points at the time the instruction is executed.
This instruction may be used instead of the LDIF instruction
which requires you to specify the number of input points.
Operand Data Type DL06 Range
aaa
Inputs V 40400 - 40437

In the following example, when C0 is on, the binary pattern of X0–X17 will be loaded into
the accumulator using the Load Immediate instruction. The Out Immediate instruction
could be used to copy the 16 bits in the accumulator to output points, such as Y40–Y57. This
technique is useful to quickly copy an input pattern to output points (without waiting for a
full CPU scan to occur).

DirectSOFT32
C0 LDI Location
X17 X16 X15 X14 X13 X12 X11 X10 X7 X6 X5 X4 X3 X2 X1 X0
V40400 V40400 ON OFF ON ON OFF ON OFF OFF ON OFF ON ON OFF ON OFF ON

Load the inputs from X0 to


X17 into the accumulator,
immediately Unused accumulator bits
are set to zero
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Acc. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 0 1

OUTI

V40502

Output the value in the


accumulator to output points
Y40 to Y57 Location Y57 Y56 Y55 Y54 Y53 Y52 Y51 Y50 Y47 Y46 Y45 Y44 Y43 Y42 Y41 Y40
V40502 ON OFF ON ON OFF ON OFF OFF ON OFF ON ON OFF ON OFF ON

Handheld Programmer Keystrokes

$ NEXT NEXT NEXT NEXT A ENT


STR 0

SHFT L D I E A E A A ENT
ANDST 3 8 4 0 4 0 0
GX SHFT I NEXT E A F A C ENT
OUT 8 4 0 5 0 2

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–37


Chapter 5: Standard RLL Instructions - Immediate Instructions

Load Immediate Formatted (LDIF)


The Load Immediate Formatted instruction loads a 1–32 bit binary
value into the accumulator. The value reflects the current status of LDIF X aaa
the input module(s) at the time the instruction is executed. K bbb
Accumulator bits that are not used by the instruction are set to zero.
Operand Data Type DL06 Range
aaa bbb
Inputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X 0-777 --
Constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K -- 1-32

In the following example, when C0 is on, the binary pattern of X10–X17 will be loaded into
the accumulator using the Load Immediate Formatted instruction. The Out Immediate
Formatted instruction could be used to copy the specified number of bits in the accumulator
to the specified outputs on the output module, such as Y30–Y37. This technique is useful to
quickly copy an input pattern to outputs (without waiting for the CPU scan).

DirectSOFT32
C0 Location Constant
LDIF X10 X17 X16 X15 X14 X13 X12 X11 X10
K8 X10 K8 ON OFF ON ON OFF ON OFF ON

Load the value of 8


consecutive location into the Unused accumulator bits
accumulator starting with are set to zero
X10
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Acc. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 1

OUTIF Y30
K8
Location Constant Y37 Y36 Y35 Y34 Y33 Y32 Y31 Y30
Copy the value of the lower
Y30 K8 ON OFF ON ON OFF ON OFF ON
8 bits of the accumulator to
Y30 - Y37

Handheld Programmer Keystrokes

$ NEXT NEXT NEXT NEXT A ENT


STR 0

SHFT L D I F B A I ENT
ANDST 3 8 5 1 0 8
GX SHFT I F D A I ENT
OUT 8 5 3 0 8

5–38 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Timer, Counter and Shift Register Instructions

Timer, Counter and Shift Register Instructions


Using Timers
Timers are used to time an event for a desired length of time. The single input timer will time
as long as the input is on. When the input changes from on to off the timer current value is
reset to 0. There is a tenth of a second and a hundredth of a second timer available with a
maximum time of 999.9 and 99.99 seconds respectively. There is a discrete bit associated with
each timer to indicate that the current value is equal to or greater than the preset value. The
timing diagram below shows the relationship between the timer input, associated discrete bit,
current value, and timer preset.

Seconds
0 1 2 3 4 5 6 7 8 X1
TMR T1
X1 K30

Timer Preset
T1 Timer Preset
T1 Y0
OUT
Current 0 10 20 30 40 50 60 0
Value 1/10 Seconds

There are those applications that need an accumulating timer, meaning it has the ability to
time, stop, and then resume from where it previously stopped. The accumulating timer works
similarly to the regular timer, but two inputs are required. The enable input starts and stops
the timer. When the timer stops, the elapsed time is maintained. When the timer starts again,
the timing continues from the elapsed time. When the reset input is turned on, the elapsed
time is cleared and the timer will start at 0 when it is restarted. There is a tenth of a second
and a hundredth of a second timer available with a maximum time of 9999999.9 and
999999.99 seconds respectively. The timing diagram below shows the relationship between
the timer input, timer reset, associated discrete bit, current value, and timer preset.

Seconds
0 1 2 3 4 5 6 7 8 X1
TMRA T0
K30
X1 Enable
Enable
X2
X2

Reset
Reset Input
Input
T0

Current 0 10 10 20 30 40 50 0
Value 1/10 Seconds

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–39


Chapter 5: Standard RLL Instructions - Timer, Counter and Shift Register Instructions

Timer (TMR) and Timer Fast (TMRF)


The Timer instruction is a 0.1 second single input timer that
times to a maximum of 999.9 seconds. The Timer Fast
instruction is a 0.01 second single input timer that times up to TMR T aaa
a maximum of 99.99 seconds. These timers will be enabled if B bbb
the input logic is true (on) and will be reset to 0 if the input
logic is false (off ).
Instruction Specifications Preset Timer#

Timer Reference (Taaa): Specifies the timer number.


Preset Value (Bbbb): Constant value (K) or a V memory
location. TMRF T aaa
Current Value: Timer current values are accessed by B bbb
referencing the associated V or T memory location*. For
example, the timer current value for T3 physically resides in V-
memory location V3. Preset Timer#

Discrete Status Bit: The discrete status bit is referenced by the


associated T memory location. Operating as a “timer done
bit”, it will be on if the current value is equal to or greater than the preset value. For example,
the discrete status bit for Timer 2 is T2.
NOTE: Timer preset constants (K) may be changed by using a handheld programmer, even when the CPU
is in Run Mode. Therefore, a V-memory preset is required only if the ladder program must change the
preset.

Operand Data Type DL06 Range


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A/B aaa bbb
Timers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . T 0–777 ––
1200–7377
V memory for preset values . . . . . . . . . . . . . . . V –– 7400–7577
10000-17777

1200–7377
Pointers (preset only) . . . . . . . . . . . . . . . . . . . . P –– 7400–7577
10000-17777
Constants (preset only) . . . . . . . . . . . . . . . . . . K –– 0–9999
Timer discrete status bits . . . . . . . . . . . . . . . T/V 0–377 or V41100–41107
Timer current values . . . . . . . . . . . . . . . . . . V /T* 0–377

NOTE: * With the HPP, both the Timer discrete status bits and current value are accessed with the same
data reference. DirectSOFT uses separate references, such as “T2” for discrete status bit for Timer T2, and
“TA2” for the current value of Timer T2.

You can perform functions when the timer reaches the specified preset using the discrete
status bit. Or, use comparative contacts to perform functions at different time intervals, based
on one timer. The examples on the following page show these two methods of programming
timers.

5–40 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Timer, Counter and Shift Register Instructions

Timer Example Using Discrete Status Bits


In the following example, a single input timer is used with a preset of 3 seconds. The timer
discrete status bit (T2) will turn on when the timer has timed for 3 seconds. The timer is reset
when X1 turns off, turning the discrete status bit off and resetting the timer current value to
0.

Direct SOFT32 Timing Diagram


X1 Seconds
TMR T2 0 1 2 3 4 5 6 7 8
K30

X1
T2 Y0

OUT
T2

Y0
Handheld Programmer Keystrokes
Current 0 10 20 30 40 50 60 0
$ B ENT Value
STR 1
N C D A
TMR 2 3 0
ENT 1/10th Seconds
$ SHFT T C ENT
STR MLR 2
GX A ENT
OUT 0

Timer Example Using Comparative Contacts


In the following example, a single input timer is used with a preset of 4.5 seconds.
Comparative contacts are used to energize Y3, Y4, and Y5 at one second intervals respectively.
When X1 is turned off the timer will be reset to 0 and the comparative contacts will turn off
Y3, Y4, and Y5.
Direct SOFT32 Timing Diagram
X1 Seconds
TMR T20
K45 0 1 2 3 4 5 6 7 8

Y3 X1
TA20 K10
OUT
Y3

TA20 K20 Y4 Y4
OUT
Y5

TA20 K30 Y5
T2
OUT
Current 0 10 20 30 40 50 60 0
Value

Handheld Programmer Keystrokes 1/10th Seconds


$ B ENT
STR 1
N C A E F ENT
TMR 2 0 4 5
$ SHFT T C A B A ENT
STR MLR 2 0 1 0
GX D ENT
OUT 3
$ SHFT T C A C A ENT
STR MLR 2 0 2 0
GX E ENT
OUT 4
$ SHFT T C A D A ENT
STR MLR 2 0 3 0
GX F ENT
OUT 5

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–41


Chapter 5: Standard RLL Instructions - Timer, Counter and Shift Register Instructions

Accumulating Timer (TMRA) Enable TMRA T aaa


The Accumulating Timer is a 0.1 second two input timer that B bbb
will time to a maximum of 9999999.9. Reset
Accumulating Fast Timer (TMRAF)
The Accumulating Fast Timer is a 0.01 second two-input
timer that will time to a maximum of 99999.99. Preset Timer#

Each one uses two timer registers in V-memory. These timers


have two inputs, an enable and a reset. The timer starts
timing when the enable is on and stops when the enable is off
(without resetting the count). The reset will reset the timer
Enable TMRAF T aaa
when on and allow the timer to time when off. B bbb
Instruction Specifications
Reset
Timer Reference (Taaa): Specifies the timer number.
Preset Value (Bbbb): Constant value (K) or a V memory
location. Preset Timer#

Current Value: Timer current values are accessed by referencing the associated V or T
memory location*. For example, the timer current value for T3 resides in V-memory location
V3.
Discrete Status Bit: The discrete status bit is accessed by referencing the associated T memory
location. Operating as a “timer done bit,” it will be on if the current value is equal to or
greater than the preset value. For example the discrete status bit for timer 2 would be T2.
NOTE: The accumulating type timer uses two consecutive V-memory locations for the 8-digit value, and therefore
two consecutive timer locations. For example, if TMRA 1 is used, the next available timer number is TMRA 3.

Operand Data Type DL06 Range


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A/B aaa bbb
Timers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . T 0–376 ––
1200–7377
V memory for preset values . . . . . . . . . . . . . . . V –– 7400–7577
10000-17777
1200–7377
Pointers (preset only) . . . . . . . . . . . . . . . . . . . . P –– 7400–7577
10000-17777
Constants (preset only) . . . . . . . . . . . . . . . . . . K –– 0–99999999
Timer discrete status bits . . . . . . . . . . . . . . . T/V 0–376 or V41100–41117
Timer current values . . . . . . . . . . . . . . . . . . V /T* 0–376

NOTE: * With the HPP, both the Timer discrete status bits and current value are accessed with the same
data reference. DirectSOFT uses separate references, such as “T2” for discrete status bit for Timer T2, and
“TA2” for the current value of Timer T2.

The following examples show two methods of programming timers. One performs functions
when the timer reaches the preset value using the discrete status bit, or use comparative
contacts to perform functions at different time intervals.

5–42 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Timer, Counter and Shift Register Instructions

Accumulating Timer Example using Discrete Status Bits


In the following example, a two input timer (accumulating timer) is used with a preset of 3
seconds. The timer discrete status bit (T6) will turn on when the timer has timed for 3
seconds. Notice in this example that the timer times for 1 second , stops for one second, then
resumes timing. The timer will reset when C10 turns on, turning the discrete status bit off
and resetting the timer current value to 0.
Direct SOFT32 Timing Diagram
X1 Seconds
0 1 2 3 4 5 6 7 8
TMRA T6

X1
K30
C10
C10

Y7 T6
T6
OUT Current 0 10 10 20 30 40 50 0
Value

Handheld Programmer Keystrokes Handheld Programmer Keystrokes (cont)

$ B ENT D A ENT
STR 1 3 0
$ SHFT C B A ENT $ SHFT T G ENT
STR 2 1 0 STR MLR 6
N SHFT A G GX B A ENT
TMR 0 6 OUT 1 0

Accumulator Timer Example Using Comparative Contacts


In the following example, a single input timer is used with a preset of 4.5 seconds.
Comparative contacts are used to energized Y3, Y4, and Y5 at one second intervals
respectively. The comparative contacts will turn off when the timer is reset.
Contacts
Direct SOFT32 Timing Diagram
X1
Seconds
TMRA T20 0 1 2 3 4 5 6 7 8

K45 X1
C10

C10

TA20 K10 Y3 Y3

OUT
Y4

TA20 K20 Y4
Y5
OUT

T20
TA20 K30 Y5
Current 0 10 10 20 30 40 50 0
OUT Value

Handheld Programmer Keystrokes Handheld Programmer Keystrokes (cont)

$ B GX E ENT
ENT OUT 4
STR 1
$ C B A $ SHFT T C A
SHFT ENT STR MLR 2 0
STR 2 1 0
N A C A E F D A ENT
SHFT ENT 3 0
TMR 0 2 0 4 5
$ T C A B A GX F ENT
SHFT ENT OUT 5
STR MLR 2 0 1 0
GX D ENT
OUT 3
$ SHFT T C A C A ENT
STR MLR 2 0 2 0

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–43


Chapter 5: Standard RLL Instructions - Timer, Counter and Shift Register Instructions

Using Counters
Counters are used to count events . The counters available are up counters, up/down
counters, and stage counters (used with RLLPLUS programming).
The up counter (CNT) has two inputs, a count input and a reset input. The maximum count
value is 9999. The timing diagram below shows the relationship between the counter input,
counter reset, associated discrete bit, current value, and counter preset.

X1
CNT CT1
X1
Up K3
X2
X2
Reset
CT1
Current 1 2 3 4 0 Counter preset
alue
Counts

The up down counter (UDC) has three inputs, a count up input, count down input and reset
input. The maximum count value is 99999999. The timing diagram below shows the
relationship between the counter up and down inputs, counter reset, associated discrete bit,
current value, and counter preset.

X1
X1 UDC CT2
Up K3

X2 X2

X3
Down
X3

CT2
Reset
Current 1 2 1 2 3 0
Value Counts
Counter Preset

The stage counter (SGCNT) has a count input and is reset by the RST instruction. This
instruction is useful when programming using the RLLPLUS structured programming. The
maximum count value is 9999. The timing diagram below shows the relationship between the
counter input, associated discrete bit, current value, counter preset and reset instruction.

X1 X1
SGCNT CT2
K3
CT2

Current 1 2 3 4 0
Value Counts Counter preset
RST
CT2

5–44 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Timer, Counter and Shift Register Instructions

Counter (CNT)
The Counter is a two input counter that
increments when the count input logic transitions
from off to on. When the counter reset input is
on the counter resets to 0. When the current
value equals the preset value, the counter status
bit comes on and the counter continues to count Counter#
up to a maximum count of 9999. The maximum
value will be held until the counter is reset. Count CNT CT aaa
B bbb
Instruction Specifications
Counter Reference (CTaaa): Specifies the counter Reset
number.
Preset Value (Bbbb): Constant value (K) or a V Preset
memory location.
Current Values: Counter current values are
accessed by referencing the associated V or CT
memory locations*. The V-memory location is
the counter location + 1000. For example, the
counter current value for CT3 resides in V
memory location V1003.
Discrete Status Bit: The discrete status bit is accessed by referencing the associated CT
memory location. It will be on if the value is equal to or greater than the preset value. For
example the discrete status bit for counter 2 would be CT2.
NOTE: Counter preset constants (K) may be changed by using a programming device, even when the CPU
is in Run Mode. Therefore, a V-memory preset is required only if the ladder program must change the
preset.

Operand Data Type DL06 Range


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A/B aaa bbb
Counters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CT 0–177 ––
1200–7377
V memory (preset only) . . . . . . . . . . . . . . . . . . V –– 7400–7577
10000-17777
1200–7377
Pointers (preset only) . . . . . . . . . . . . . . . . . . . . P –– 7400–7577
10000-17777
Constants (preset only) . . . . . . . . . . . . . . . . . . K –– 0–9999
Counter discrete status bits . . . . . . . . . . . . CT/V 0–177 or V41140–41147
Counter current values . . . . . . . . . . . . . . . V /CT* 1000-1177

NOTE: * With the HPP, both the Counter discrete status bits and current value are accessed with the same
data reference. DirectSOFT uses separate references, such as “CT2” for discrete status bit for Counter CT2,
and “CTA2” for the current value of Counter CT2.

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–45


Chapter 5: Standard RLL Instructions - Timer, Counter and Shift Register Instructions

Counter Example Using Discrete Status Bits


In the following example, when X1 makes an off to on transition, counter CT2 will
increment by one. When the current value reaches the preset value of 3, the counter status bit
CT2 will turn on and energize Y7. When the reset C10 turns on, the counter status bit will
turn off and the current value will be 0. The current value for counter CT2 will be held in V
memory location V1002.
DirectSOFT32 Counting diagram
X1
CNT CT2
X1
K3
C10
C10

CT2 or
CT2 Y7 Y7
OUT Current Value 1 2 3 4 0

Handheld Programmer Keystrokes Handheld Programmer Keystrokes (cont)

$ B ENT $ SHFT C SHFT T C ENT


STR 1 STR 2 MLR 2
$ SHFT C B A ENT GX B A ENT
STR 2 1 0 OUT 1 0
GY C D ENT
CNT 2 3

Counter Example Using Comparative Contacts


In the following example, when X1 makes an off to on transition, counter CT2 will
increment by one. Comparative contacts are used to energize Y3, Y4, and Y5 at different
counts. When the reset C10 turns on, the counter status bit will turn off and the counter
current value will be 0, and the comparative contacts will turn off.
DirectSOFT32 Counting diagram
X1
CNT CT2
X1
K3
C10
C10

CTA2 K1 Y3 Y3

OUT
Y4

CTA2 K2 Y4
Y5
OUT
Current 1 2 3 4 0
Value
CTA2 K3 Y5

OUT

Handheld Programmer Keystrokes Handheld Programmer Keystrokes (cont)

$ B ENT $ SHFT C SHFT T C


STR 1 STR 2 MLR 2
$ SHFT C B A ENT C ENT
STR 2 1 0 2
GY C D ENT GX E ENT
CNT 2 3 OUT 4
$ SHFT C SHFT T C $ SHFT C SHFT T C
STR 2 MLR 2 STR 2 MLR 2
B ENT D ENT
1 3
GX D ENT GX F ENT
OUT 3 OUT 5

5–46 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Timer, Counter and Shift Register Instructions

Stage Counter (SGCNT)


The Stage Counter is a single input counter that
increments when the input logic transitions from off to
on. This counter differs from other counters since it will Counter#
hold its current value until reset using the RST
instruction. The Stage Counter is designed for use in SGCNT CT aaa
RLLPLUS programs but can be used in relay ladder logic B bbb
programs. When the current value equals the preset
value, the counter status bit turns on and the counter Preset
continues to count up to a maximum count of 9999.
The maximum value will be held until the counter is
reset.
Instruction Specifications
Counter Reference (CTaaa): Specifies the counter number.
Preset Value (Bbbb): Constant value (K) or a V memory location.
Current Values: Counter current values are accessed by referencing the associated V or CT
memory locations*. The V-memory location is the counter location + 1000. For example, the
counter current value for CT3 resides in V memory location V1003.
Discrete Status Bit: The discrete status bit is accessed by referencing the associated CT
memory location. It will be on if the value is equal to or greater than the preset value. For
example the discrete status bit for counter 2 would be CT2.
Operand Data Type DL06 Range
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A/B aaa bbb
Counters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CT 0–177 ––
1200–7377
V memory (preset only) . . . . . . . . . . . . . . . . . . V –– 7400–7577
10000-17777
1200–7377
Pointers (preset only) . . . . . . . . . . . . . . . . . . . . P –– 7400–7577
10000-17777
Constants (preset only) . . . . . . . . . . . . . . . . . . K –– 0–9999
Counter discrete status bits . . . . . . . . . . . . CT/V 0–177 or V41140–41147
Counter current values . . . . . . . . . . . . . . . V /CT* 1000–1177

NOTE: * With the HPP, both the Counter discrete status bits and current value are accessed with the same
data reference. DirectSOFT uses separate references, such as “CT2” for discrete status bit for Counter CT2,
and “CTA2” for the current value of Counter CT2.

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–47


Chapter 5: Standard RLL Instructions - Timer, Counter and Shift Register Instructions

Stage Counter Example Using Discrete Status Bits


In the following example, when X1 makes an off to on transition, stage counter CT7 will
increment by one. When the current value reaches 3, the counter status bit CT7 will turn on
and energize Y7. The counter status bit CT7 will remain on until the counter is reset using
the RST instruction. When the counter is reset, the counter status bit will turn off and the
counter current value will be 0. The current value for counter CT7 will be held in V memory
location V1007.
DirectSOFT32 Counting diagram
X1
SGCNT CT7
X1
K3

CT7 Y7 Y7
OUT Current 1 2 3 4 0
Value
C5 CT7 RST
RST CT7

Handheld Programmer Keystrokes Handheld Programmer Keystrokes (cont)

$ B ENT GX B A ENT
STR 1 OUT 1 0

SHFT S SHFT G SHFT GY $ SHFT C F ENT


RST 6 CNT STR 2 5
H D ENT S SHFT C SHFT T H ENT
7 3 RST 2 MLR 7
$ SHFT C SHFT T H ENT
STR 2 MLR 7

Stage Counter Example Using Comparative Contacts


In the following example, when X1 makes an off to on transition, counter CT2 will
increment by one. Comparative contacts are used to energize Y3, Y4, and Y5 at different
counts. Although this is not shown in the example, when the counter is reset using the Reset
instruction, the counter status bit will turn off and the current value will be 0. The current
value for counter CT2 will be held in V memory location V1002.
DirectSOFT32 Counting diagram
X1
SGCNT CT2
K10
X1

CT2 K1 Y3
Y3
OUT

Y4
CT2 K2 Y4

OUT
Y5

Y5 Current 1 2 3 4 0
CT2 K3
Value
OUT
RST
CT2

Handheld Programmer Keystrokes Handheld Programmer Keystrokes (cont)

$ B ENT $ SHFT C SHFT T C


STR 1 STR 2 MLR 2

SHFT S G SHFT GY C ENT


RST 6 CNT 2
C B A ENT GX E ENT
2 1 0 OUT 4
$ SHFT C SHFT T C $ SHFT C SHFT T C
STR 2 MLR 2 STR 2 MLR 2
B ENT D ENT
1 3
GX D ENT GX F ENT
OUT 3 OUT 5

5–48 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Timer, Counter and Shift Register Instructions

Up Down Counter (UDC)


This Up/Down Counter counts up on each off to
on transition of the Up input and counts down on
each off to on transition of the Down input. The Up UDC CT aaa
B bbb
counter is reset to 0 when the Reset input is on.
The count range is 0–99999999. The count input Down
Counter #
not being used must be off in order for the active
count input to function. Reset
Preset
Instruction Specification
Counter Reference (CTaaa): Specifies the counter
Caution: The UDC uses two
number. V memory locations for the 8 digit
Preset Value (Bbbb): Constant value (K) or two current value. This means that the
consecutive V memory locations. UDC uses two consecutive
counter locations. If UDC CT1 is
Current Values: Current count is a double word used in the program, the next
value accessed by referencing the associated V or available counter is CT3.
CT memory locations*. The V-memory location is
the counter location + 1000. For example, the counter The counter discrete status bit and
the current value are not specified in
current value for CT5 resides in V memory location
the counter instruction
V1005 and V1006.
Discrete Status Bit: The discrete status bit is accessed
by referencing the associated CT memory location.
Operating as a “counter done bit” it will be on if the
value is equal to or greater than the preset value. For
example the discrete status bit for counter 2 would be CT2.

Operand Data Type DL06 Range


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A/B aaa bbb
Counters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CT 0–176 ––
1200–7377
V memory (preset only) . . . . . . . . . . . . . . . . . . V –– 7400–7577
10000-17777
1200–7377
Pointers (preset only) . . . . . . . . . . . . . . . . . . . . P –– 7400–7577
10000-17777
Constants (preset only) . . . . . . . . . . . . . . . . . . K –– 0–99999999
Counter discrete status bits . . . . . . . . . . . . CT/V 0–176 or V41140–41147
Counter current values . . . . . . . . . . . . . . . V /CT* 1000-1176

NOTE: * With the HPP, both the Counter discrete status bits and current value are accessed with the same
data reference. DirectSOFT32 uses separate references, such as “CT2” for discrete status bit for
Counter CT2, and “CTA2” for the current value of Counter CT2.

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–49


Chapter 5: Standard RLL Instructions - Timer, Counter and Shift Register Instructions

Up / Down Counter Example Using Discrete Status Bits


In the following example, if X2 and X3 are off, when X1 toggles from off to on the counter
will increment by one. If X1 and X3 are off the counter will decrement by one when X2
toggles from off to on. When the count value reaches the preset value of 3, the counter status
bit will turn on. When the reset X3 turns on, the counter status bit will turn off and the
current value will be 0.

DirectSOFT32 Counting Diagram


X1
UDC CT2
K3 X1
X2

X2

X3
X3

CT2
CT2 Y7
Current 1 2 1 2 3 0
OUT Value

Handheld Programmer Keystrokes Handheld Programmer Keystrokes (cont)

$ B ENT D ENT
STR 1 3
$ C ENT $ SHFT C SHFT T C ENT
STR 2 STR 2 MLR 2
$ D ENT GX B A ENT
STR 3 OUT 1 0

SHFT U D C C
ISG 3 2 2

Up / Down Counter Example Using Comparative Contacts


In the following example, when X1 makes an off to on transition, counter CT2 will
increment by one. Comparative contacts are used to energize Y3 and Y4 at different counts.
When the reset (X3) turns on, the counter status bit will turn off, the current value will be 0,
and the comparative contacts will turn off.
DirectSOFT32 Counting Diagram
X1
UDC CT2
V2000 X1
X2

X2

X3
X3

CTA2 K1 Y3 Y3
OUT

Y4

CTA2 K2 Y4 1 2 3 4 0
Current
Value
OUT

Handheld Programmer Keystrokes Handheld Programmer Keystrokes (cont)

$ B ENT B ENT
STR 1 1
$ C ENT GX D ENT
STR 2 OUT 3
$ D ENT $ SHFT C SHFT T C
STR 3 STR 2 MLR 2

SHFT U D C C C ENT
ISG 3 2 2 2

SHFT V C A A A ENT GX E ENT


AND 2 0 0 0 OUT 4
$ SHFT C SHFT T C
STR 2 MLR 2

5–50 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Timer, Counter and Shift Register Instructions

Shift Register (SR)


The Shift Register instruction shifts data through a
DATA SR
predefined number of control relays. The control ranges
in the shift register block must start at the beginning of
From A aaa
an 8 bit boundary use 8-bit blocks.
CLOCK
The Shift Register has three contacts.
To B bbb
• Data — determines the value (1 or 0) that will enter the
register RESET
• Clock — shifts the bits one position on each low to high
transition
• Reset —resets the Shift Register to all zeros.
With each off to on transition of the clock input, the bits which make up the shift register
block are shifted by one bit position and the status of the data input is placed into the starting
bit position in the shift register. The direction of the shift depends on the entry in the From
and To fields. From C0 to C17 would define a block of sixteen bits to be shifted from left to
right. From C17 to C0 would define a block of sixteen bits, to be shifted from right to left.
The maximum size of the shift register block depends on the number of available control
relays. The minimum block size is 8 control relays.

Operand Data Type DL06 Range


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A/B aaa bbb
Control Relay . . . . . . . . . . . . . . . . . . . . . . . . . . . C 0–1777 0–1777

Direct SOFT32 Handheld Programmer Keystrokes

X1 $ B ENT
Data Input SR STR 1
$ C ENT
STR 2
From C0
X2 $ D
Clock Input ENT
STR 3

SHFT S SHFT R SHFT A


To C17 RST ORN 0
X3
Reset Input
B H ENT
1 7

Inputs on Successive Scans Shift Register Bits


Data Clock Reset
C0 C17
1 0-1-0 0
0 0-1-0 0
0 0-1-0 0
1 0-1-0 0
0 0-1-0 0
0 0 1
Indicates
Indicates ON Indicates
Indicates OFF
ON OFF
DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–51
Chapter 5: Standard RLL Instructions - Accumulator/Stack Load and Output Data

Accumulator / Stack Load and Output Data Instructions


Using the Accumulator
The accumulator in the DL06 internal CPUs is a 32 bit register which is used as a temporary
storage location for data that is being copied or manipulated in some manner. For example,
you have to use the accumulator to perform math operations such as add, subtract, multiply,
etc. Since there are 32 bits, you can use up to an 8-digit BCD number. The accumulator is
reset to 0 at the end of every CPU scan.
Copying Data to the Accumulator
The Load and Out instructions and their variations are used to copy data from a V-memory
location to the accumulator, or to copy data from the accumulator to V memory. The
following example copies data from V-memory location V2000 to V-memory location
V2010.
V2000
X1 LD 8 9 3 5
V2000
Unused accumulator bits
Copy data from V2000 to the
are set to zero
lower 16 bits of the accumu-
lator
Acc. 0 0 0 0 88 99 33 55

OUT
V2010 8 9 3 5

Copy data from the lower 16 bits V2010


of the accumulator to V2010

Since the accumulator is 32 bits and V memory locations are 16 bits, the Load Double and
Out Double (or variations thereof ) use two consecutive V-memory locations or 8 digit BCD
constants to copy data either to the accumulator from a V-memory address or from a V-
memory address to the accumulator. For example if you wanted to copy data from V2000
and V2001 to V2010 and V2011 the most efficient way to perform this function would be as
follows:
X1 V2001 V2000
LDD
V2000 6 7 3 9 5 0 2 6

Copy data from V2000 and


V2001 to the accumulator

Acc. 6 7 3 9 55 00 22 66

OUTD
V2010 6 7 3 9 5 0 2 6
Copy data from the accumulator to
V2010 and V2011 V2011 V2010

5–52 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Accumulator/Stack Load and Output Data

Changing the Accumulator Data


Instructions that manipulate data also use the accumulator. The result of the manipulated
data resides in the accumulator. The data that was being manipulated is cleared from the
accumulator. The following example loads the constant value 4935 into the accumulator,
shifts the data right 4 bits, and outputs the result to V2010.

X1 LD Constant 4 9 3 5
K4935

Load the value 4935 into the


accumulator
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Acc. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 1 1 0 1 0 1

The upper 16 bits of the accumulator


will be set to 0

Shifted out of
accumulator

SHFR 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
K4 Acc. 0 0 0 0 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 1 1

Shift the data in the accumulator


4 bits (K4) to the right

OUT
V2010
0 4 9 3
Output the lower 16 bits of the ac-
cumulator to V2010 V2010

Some of the data manipulation instructions use 32 bits. They use two consecutive V memory
locations or an 8 digit BCD constant to manipulate data in the accumulator.
In the following example, when X1 is on, the value in V2000 and V2001 will be loaded into
the accumulator using the Load Double instruction. The value in the accumulator is added
with the value in V2006 and V2007 using the Add Double instruction. The value in the
accumulator is copied to V2010 and V2011 using the Out Double instruction.
V2001 V2000
X1 6 7 3 9 5 0 2 6
LDD
V2000

Load the value in V2000 and


V2001 into the accumulator
6 7 3 9 5 0 2 6 (Accumulator)
ADDD
+ 2 0 0 0 4 0 4 6 (V2006&V2007)
V2006
Acc. 8 7 3 9 9 0 7 2
Add the value in the
accumulator with the value
in V2006 and V2007

OUTD
V2010 8 7 3 9 9 0 7 2

Copy the value in the V2011 V2010


accumulator to V2010 and
V2011

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–53


Chapter 5: Standard RLL Instructions - Accumulator/Stack Load and Output Data

Using the Accumulator Stack


The accumulator stack is used for instructions that require more than one parameter to
execute a function or for user defined functionality. The accumulator stack is used when more
than one Load instruction is executed without the use of an Out instruction. The first load
instruction in the scan places a value into the accumulator. Every Load instruction thereafter
without the use of an Out instruction places a value into the accumulator and the value that
was in the accumulator is placed onto the accumulator stack. The Out instruction nullifies
the previous load instruction and does not place the value that was in the accumulator onto
the accumulator stack when the next load instruction is executed. Every time a value is placed
onto the accumulator stack the other values in the stack are pushed down one location. The
accumulator is eight levels deep (eight 32 bit registers). If there is a value in the eighth
location when a new value is placed onto the stack, the value in the eighth location is pushed
off the stack and cannot be recovered.
X1 LD Constant 3 2 4 5
K3245
Current Acc. value
Accumulator Stack
Load the value 3245 into the accumu- Acc. 0 0 0 0 3 2 4 5
lator Level 1 X X X X X X X X
Previous Acc. value X X X X X X X
Level 2 X X X X X X X X
X X X X X X X
Acc. X X X X X
X X X X
Level 3 X X X X X X X X
Level 4 X X X X X X X X
Level 5 X X X X X X X X
Level 6 X X X X X X X X
Constant 5 1 5 1 Level 7 X X X X X X X X
LD
K5151 Level 8 X X X X X X X X
Current Acc. value

Load the value 5151 into the accumu- Acc. 0 0 0 0 55 1 5 1


lator, pushing the value 3245 onto the Bucket
Previous Acc. value Accumulator Stack
stack
Acc. 0 0 0 0 33 22 44 55 Level 1 0 0 0 0 3 2 4 5
Level 2 X X X X X X X X
Level 3 X X X X X X X X
Level 4 X X X X X X X X
Level 5 X X X X X X X X
Level 6 X X X X X X X X

6 3 6 3 Level 7 X X X X X X X X
LD Constant
Level 8 X X X X X X X X
K6363 Current Acc. value

Acc. 0 0 0 0 66 33 66 33
Load the value 6363 into the accumu- Bucket
lator, pushing the value 5151 to the 1st Previous Acc. value Accumulator Stack
stack location and the value 3245 to
the 2nd stack location Acc. 0 0 0 0 55 1 5 1 Level 1 0 0 0 0 5 1 5 1
Level 2 0 0 0 0 3 2 4 5
0 0 0 0
Level 3 X X X X X X X X
Level 4 X X X X X X X X
Level 5 X X X X X X X X
Level 6 X X X X X X X X
Level 7 X X X X X X X X
Level 8 X X X X X X X X

Bucket

The POP instruction rotates values upward through the stack into the accumulator. When a
POP is executed the value which was in the accumulator is cleared and the value that was on
top of the stack is in the accumulator. The values in the stack are shifted up one position in
the stack.

5–54 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Accumulator/Stack Load and Output Data

X1 POP Previous Acc. value

Acc. X X X X XX XX XX X

Current Acc. value Accumulator Stack


POP the 1st value on the stack into the
accumulator and move stack values Level 1 0 0 0 0 3 7 9 2
Acc. 0 0 0 0 44 55 4 5
up one location
Level 2 0 0 0 0 7 9 3 0
Level 3 X X X X X X X X
Level 4 X X X X X X X X
Level 5 X X X X X X X X
OUT
V2000 4 5 4 5 Level 6 X X X X X X X X
V2000
Level 7 X X X X X X X X
Copy data from the accumulator to Level 8 X X X X X X X X
V2000

POP Previous Acc. value

Acc. 0 0 0 0 44 55 44 55

Current Acc. value Accumulator Stack


POP the 1st value on the stack into the
accumulator and move stack values Acc. 0 0 0 0 33 77 99 22 Level 1 0 0 0 0 7 9 3 0
up one location
Level 2 X X X X X X X X
Level 3 X X X X X X X X
Level 4 X X X X X X X X
Level 5 X X X X X X X X
OUT
V2001 3 7 9 2 Level 6 X X X X X X X X
V2001
Level 7 X X X X X X X X
Copy data from the accumulator to Level 8 X X X X X X X X
V2001.

Previous Acc. value


POP
Acc. 0 0 0 0 33 47 69 02

Current Acc. value Accumulator Stack


POP the 1st value on the stack into the
Acc. X X X X 77 99 33 00 Level 1 X X X X X X X X
accumulator and move stack values
up one location Level 2 X X X X X X X X
Level 3 X X X X X X X X
Level 4 X X X X X X X X
Level 5 X X X X X X X X
OUT V2002 7 9 3 0 Level 6 X X X X X X X X
V2002
Level 7 X X X X X X X X
Copy data from the accumulator to Level 8 X X X X X X X X
V2002

Using Pointers
Many of the DL06 series instructions will allow V-memory pointers as a operand (commonly
known as indirect addressing). Pointers allow instructions to obtain data from V-memory
locations referenced by the pointer value.
NOTE: DL06 V-memory addressing is in octal. However, the pointers reference a V-memory location with
values viewed as HEX. Use the Load Address (LDA) instruction to move an address into the pointer
location. This instruction performs the Octal to Hexadecimal conversion automatically.

In the following simple example we are using a pointer operand in a Load instruction. V-
memory location 2000 is being used as the pointer location. V2000 contains the value 440
which the CPU views as the Hex equivalent of the Octal address V-memory location V2100.
The CPU will copy the data from V2100 which in this example contains the value 2635 into
the lower word of the accumulator.

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–55


Chapter 5: Standard RLL Instructions - Accumulator/Stack Load and Output Data

X1 V2076 X X X X
LD
V2077 X X X X
P2000
V2100 2 6 3 5
V2000 (P2000) contains the value 440 V2101 X X X X
HEX. 440 HEX. = 2100 Octal which
contains the value 2635. V2102 X X X X
V2000 V2103 X X X X
Accumulator
0 4 4 0 V2104 X X X X
2 6 3 5
V2105 X X X X
OUT
V2200

Copy the data from the lower 16 bits of


the accumulator to V2200. V2200 2 6 3 5
V2201 X X X X

The following example is identical to the one above with one exception. The LDA (Load
Address) instruction automatically converts the Octal address to Hex.

X1 LDA Load the lower 16 bits of the


accumulator with Hexadecimal
O 2100 equivalent to Octal 2100 (440) 2 1 0 0

2100 Octal is converted to Hexadecim


Unused accumulator bits 440 and loaded into the accumulator
are set to zero

Acc. 0 0 0 0 00 44 44 00

OUT Copy the data from the lower 16 bits of


the accumulator to V2000 0 4 4 0
V 2000
V2000

V2076 X X X X
V2077 X X X X

V2000 (P2000) contains the value 440 V2100 2 6 3 5


LD
Hex. 440 Hex. = 2100 Octal which V2101 X X X X
P 2000 contains the value 2635
V2102 X X X X
V2100 V2103 X X X X
Accumulator
0 4 4 0 V2104 X X X X
V2105 X X X X 0 0 0 0 22 66 33 55

OUT Copy the data from the lower 16 bits of


the accumulator to V2200 V2200 2 6 3 5
V 2200
V2201 X X X X

5–56 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Accumulator/Stack Load and Output Data

Load (LD)
The Load instruction is a 16 bit instruction that loads the
LD
value (Aaaa), which is either a V memory location or a 4
A aaa
digit constant, into the lower 16 bits of the accumulator.
The upper 16 bits of the accumulator are set to 0.
Operand Data Type DL06 Range
....................................A aaa
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map
Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P See memory map
Constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K 0–FFFF

Discrete Bit Flags Description


SP53 on when the pointer is outside of the available range.
SP70 On anytime the value in the accumulator is negative.
SP76 On when any instruction loads a value of zero into the
accumulator.

NOTE: Two consecutive Load instructions will place the value of the first load instruction onto the
accumulator stack.

In the following example, when X1 is on, the value in V2000 will be loaded into the
accumulator and output to V2010.
Direct SOFT32
V2000
X1 LD 8 9 3 5
V2000

Load the value in V2000 into The unused accumulator


the lower 16 bits of the bits are set to zero
accumulator
Acc. 0 0 0 0 88 99 33 55

OUT
V2010

Copy the value in the lower 8 9 3 5


16 bits of the accumulator to V2010
V2010

Handheld Programmer Keystrokes

$ B X
STR 1 SET

SHFT L D
ANDST 3
C A A A ENT
2 0 0 0
GX SHFT V C A B A ENT
OUT AND 2 0 1 0

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–57


Chapter 5: Standard RLL Instructions - Accumulator/Stack Load and Output Data

Load Double (LDD)


The Load Double instruction is a 32 bit instruction that loads LDD
the value (Aaaa), which is either two consecutive V memory A aaa
locations or an 8 digit constant value, into the accumulator.

Operand Data Type DL06 Range


....................................A aaa
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map
Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P See memory map
Constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K 0–FFFF

Discrete Bit Flags Description


SP53 on when the pointer is outside of the available range.
SP70 On anytime the value in the accumulator is negative.
SP76 On when any instruction loads a value of zero into the accumulator.

NOTE: Two consecutive Load instructions will place the value of the first load instruction onto the
accumulator stack.

In the following example, when X1 is on, the 32 bit value in V2000 and V2001 will be
loaded into the accumulator and output to V2010 and V2011.

Direct SOFT32
X1 LDD V2001 V2000

V2000 6 7 3 9 5 0 2 6

Load the value in V2000 and


V2001 into the 32 bit
accumulator
Acc. 6 7 3 9 65 00 22 66

6 7 3 9 5 0 2 6
OUTD
V2010 V2011 V2010

Copy the value in the 32 bit


accumulator to V2010 and
V2011

Handheld Programmer Keystrokes

$ B ENT
STR 1

SHFT L D D
ANDST 3 3
C A A A ENT
2 0 0 0
GX SHFT D
OUT 3
C A B A ENT
2 0 1 0

5–58 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Accumulator/Stack Load and Output Data

Load Formatted (LDF)


The Load Formatted instruction loads 1–32
consecutive bits from discrete memory locations into LDF A aaa
the accumulator. The instruction requires a starting K bbb
location (Aaaa) and the number of bits (Kbbb) to be
loaded. Unused accumulator bit locations are set to
zero.

Operand Data Type DL06 Range


..................................... A aaa bbb
Inputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X 0–777 ––
Outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Y 0–777 ––
Control Relays . . . . . . . . . . . . . . . . . . . . . . . . . . . C 0–1777 ––
Stage Bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . S 0–1777 ––
Timer Bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . T 0–377 ––
Counter Bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CT 0–177 ––
Special Relays . . . . . . . . . . . . . . . . . . . . . . . . . . . SP 0–777 ––
Constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K –– 1–32

Discrete Bit Flags Description


SP70 On anytime the value in the accumulator is negative.
SP76 On when any instruction loads a value of zero into the accumulator.

NOTE: Two consecutive Load instructions will place the value of the first load instruction onto the
accumulator stack.

In the following example, when C0 is on, the binary pattern of C10–C16 (7 bits) will be
loaded into the accumulator using the Load Formatted instruction. The lower 7 bits of the
accumulator are output to Y0–Y6 using the Out Formatted instruction.

Direct SOFT32
C0 Location Constant
LDF C10 C16 C15 C14 C13 C12 C11 C10
K7 C10 K7 OFF OFF OFF ON ON ON OFF

Load the status of 7


consecutive bits (C10–C16) The unused accumulator bits are set to zero
into the accumulator
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Acc. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0

OUTF Y0
K7
Location Constant Y6 Y5 Y4 Y3 Y2 Y1 Y0
Copy the value from the
specified number of bits in Y0 K7 OFF OFF OFF ON ON ON OFF
the accumulator to Y0 – Y6
Handheld Programmer Keystrokes

$ SHFT C A ENT
STR 2 0

SHFT L D F
ANDST 3 5

SHFT C B A H ENT
2 1 0 7
GX SHFT F
OUT 5
A H ENT
0 7

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–59


Chapter 5: Standard RLL Instructions - Accumulator/Stack Load and Output Data

Load Address (LDA)


The Load Address instruction is a 16 bit instruction. It
converts any octal value or address to the HEX equivalent LDA
value and loads the HEX value into the accumulator. This O aaa
instruction is useful when an address parameter is required
since all addresses for the DL06 system are in octal.

Operand Data Type DL06 Range


aaa
Octal Address . . . . . . . . . . . . . . . . . . . . . . . . . . O See memory map

Discrete Bit Flags Description


SP70 On anytime the value in the accumulator is negative.
SP76 On when any instruction loads a value of zero into the accumulator.

NOTE: Two consecutive Load instructions will place the value of the first load instruction onto the
accumulator stack.

In the following example when X1 is on, the octal number 40400 will be converted to a HEX
4100 and loaded into the accumulator using the Load Address instruction. The value in the
lower 16 bits of the accumulator is copied to V2000 using the Out instruction.

Direct SOFT32
X1 LDA Octal Hexadecimal
O 40400 4 0 4 0 0 4 1 0 0

Load The HEX equivalent to


the octal number into the The unused accumulator
lower 16 bits of the bits are set to zero
accumulator
Acc. 0 0 0 0 4 1 0 0

4 1 0 0
OUT
V2000 V2000

Copy the value in lower 16


bits of the accumulator to
V2000

Handheld Programmer Keystrokes

$ B ENT
STR 1

SHFT L D A
ANDST 3 0
E A E A A ENT
4 0 4 0 0
GX SHFT V C A A A ENT
OUT AND 2 0 0 0

5–60 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Accumulator/Stack Load and Output Data

Load Accumulator Indexed (LDX)


Load Accumulator Indexed is a 16 bit instruction that
specifies a source address (V memory) which will be offset by
the value in the first stack location. This instruction LDX
interprets the value in the first stack location as HEX. The A aaa
value in the offset address (source address + offset) is loaded
into the lower 16 bits of the accumulator. The upper 16 bits
of the accumulator are set to 0.
Helpful Hint: — The Load Address instruction can be used to convert an octal address to a
HEX address and load the value into the accumulator.
Operand Data Type DL06 Range
A aaa aaa
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map See memory map
Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P See memory map See memory map

NOTE: Two consecutive Load instructions will place the value of the first load instruction onto the
accumulator stack.

In the following example when X1 is on, the HEX equivalent for octal 25 will be loaded into
the accumulator (this value will be placed on the stack when the Load Accumulator Indexed
instruction is executed). V memory location V1410 will be added to the value in the 1st. level
of the stack and the value in this location (V1435 = 2345) is loaded into the lower 16 bits of
the accumulator using the Load Accumulator Indexed instruction. The value in the lower 16
bits of the accumulator is output to V1500 using the Out instruction.
X1 LDA Octal Hexadecimal

O 25 2 5 0 0 1 5

Load The HEX equivalent to The unused accumulator


octal 25 into the lower 16 bits are set to zero
bits of the accumulator

Acc. 0 0 0 0 0 0 1 5

LDX
V1410
HEX Value in 1st
Octal stack location Octal Accumulator Stack
Move the offset to the stack.
Load the accumulator with V 1 4 1 0 + 1 5 = V 1 4 3 5 Level 1 0 0 0 0 0 0 1 5
the address to be offset Level 2 X X X X X X X X
The unused accumulator
Level 3 X X X X X X X X
bits are set to zero
OUT Level 4 X X X X X X X X
V1500 Acc. 0 0 0 0 2 3 4 5
Level 5 X X X X X X X X
The value in V1435 Level 6 X X X X X X X X
Copy the value in the lower is 2345
16 bits of the accumulator Level 7 X X X X X X X X
to V1500
2 3 4 5 Level 8 X X X X X X X X

V1500
Handheld Programmer Keystrokes

$ B ENT
STR 1
L D A C F ENT
SHFT
ANDST 3 0 2 5

SHFT L D X B E B A ENT
ANDST 3 SET 1 4 1 0
GX B F A A
PREV PREV PREV ENT
OUT 1 5 0 0

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–61


Chapter 5: Standard RLL Instructions - Accumulator/Stack Load and Output Data

Load Accumulator Indexed from Data Constants (LDSX)


The Load Accumulator Indexed from Data Constants is a
16 bit instruction. The instruction specifies a Data Label LDSX
Area (DLBL) where numerical or ASCII constants are K aaa
stored. This value will be loaded into the lower 16 bits.
The LDSX instruction uses the value in the first level of the accumulator stack as an offset to
determine which numerical or ASCII constant within the Data Label Area will be loaded into
the accumulator. The LDSX instruction interprets the value in the first level of the
accumulator stack as a HEX value.
Helpful Hint: — The Load Address instruction can be used to convert octal to HEX and
load the value into the accumulator.
Operand Data Type DL06 Range
aaa
Constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K 1-FFFF

NOTE: Two consecutive Load instructions will place the value of the first load instruction onto the
accumulator stack.

In the following example when X1 is on, the offset of 1 is loaded into the accumulator. This
value will be placed into the first level of the accumulator stack when the LDSX instruction is
executed. The LDSX instruction specifies the Data Label (DLBL K2) where the numerical
constant(s) are located in the program and loads the constant value, indicated by the offset in
the stack, into the lower 16 bits of the accumulator.

Hexadecimal
X1 Value in 1st. level of stack is
LD 0 0 0 1 used as offset. The value is 1
K1
The unused accumulator
bits are set to zero Accumulator Stack
Load the offset value of 1 (K1) into the lower 16
bits of the accumulator. Level 1 0 0 0 0 0 0 0 1
Acc. 0 0 0 0 0 0 0 1
Level 2 X X X X X X X X
LDSX
Level 3 X X X X X X X X
K2
Constant Level 4 X X X X X X X X
Move the offset to the stack. K 0 0 0 2 X X X X X X X X
Level 5
Load the accumulator with the data label
number The unused accumulator Level 6 X X X X X X X X
bits are set to zero
Level 7 X X X X X X X X
OUT
Acc. 0 0 0 0 0 0 0 2
Level 8 X X X X X X X X
V2000
.
. Copy the value in the lower
16 bits of the accumulator
. The unused accumulator
to V2000
bits are set to zero
END
Acc. 0 0 0 0 2 3 2 3

DLBL
DLBL K2

2 3 2 3
NCON
Offset 0
K3333 V2000

NCON
Offset 1
K2323

NCON
Offset 2
K4549

5–62 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Accumulator/Stack Load and Output Data

$ B ENT Handheld Programmer Keystrokes


STR 1

SHFT L D SHFT K B ENT


ANDST 3 JMP 1

SHFT L D S X C ENT
ANDST 3 RST SET 2

SHFT E N D ENT
4 TMR 3

SHFT D L B L C ENT
3 ANDST 1 ANDST 2

SHFT N C O N D D D D ENT
TMR 2 INST# TMR 3 3 3 3

SHFT N C O N C D C D ENT
TMR 2 INST# TMR 2 3 2 3

SHFT N C O N E F E J ENT
TMR 2 INST# TMR 4 5 4 9
GX SHFT V C A A A ENT
OUT AND 2 0 0 0

Load Real Number (LDR)


The Load Real Number instruction loads a real number
contained in two consecutive V-memory locations, or an 8-digit LDR
A aaa
constant into the accumulator.

Operand Data Type DL06 Range


....................................A aaa
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map
Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P See memory map
Real Constant . . . . . . . . . . . . . . . . . . . . . . . . . . R -3.402823E+038 to + -3.402823E+038
DirectSOFT32 allows you to enter real numbers directly,
by using the leading “R” to indicate a real number entry.
You can enter a constant such as Pi, shown in the LDR
example to the right. To enter negative numbers, use a R3.14159

minus (–) after the “R”.


For very large numbers or very small numbers, you can
use exponential notation. The number to the right is 5.3 LDR
R5.3E6
million. The OUTD instruction stores it in V1400 and
V1401.
OUTD
These real numbers are in the IEEE 32-bit floating point V1400
format, so they occupy two V-memory locations,
regardless of how big or small the number may be! If you
view a stored real number in hex, binary, or even BCD,
the number shown will be very difficult to decipher. Just
like all other number types, you must keep track of real
number locations in memory, so they can be read with the
proper instructions later.
The previous example above stored a real number in LDR
V1400 and V1401. Suppose that now we want to retrieve V1400
that number. Just use the Load Real with the V data type,
as shown to the right. Next we could perform real math on
it, or convert it to a binary number.

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–63


Chapter 5: Standard RLL Instructions - Accumulator/Stack Load and Output Data

Out (OUT)
The Out instruction is a 16 bit instruction that copies the value OUT
in the lower 16 bits of the accumulator to a specified V A aaa
memory location (Aaaa).
Operand Data Type DL06 Range
....................................A aaa
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map
Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P See memory map

Discrete Bit Flags Description


SP53 On if CPU cannot solve the logic.
In the following example, when X1 is on, the value in V2000 will be loaded into the lower 16
bits of the accumulator using the Load instruction. The value in the lower 16 bits of the
accumulator are copied to V2010 using the Out instruction.V2000
Direct SOFT32 Handheld Programmer Keystrokes
X1 LD V2000 $ B ENT
8 9 3 5 STR 1
V2000
SHFT L D
Load the value in V2000 into ANDST 3
the lower 16 bits of the The unused accumulator
accumulator bits are set to zero C A A A ENT
2 0 0 0
Acc. 0 0 0 0 88 99 33 55
OUT GX SHFT V C A B A ENT
OUT AND 2 0 1 0
V2010

Copy the value in the lower


16 bits of the accumulator to 8 9 3 5
V2010 V2010

Out Double (OUTD)


The Out Double instruction is a 32 bit instruction that OUTD
copies the value in the accumulator to two consecutive V A aaa
memory locations at a specified starting location (Aaaa).
Operand Data Type DL06 Range
....................................A aaa
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map
Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P See memory map

Discrete Bit Flags Description


SP53 On if CPU cannot solve the logic.

In the following example, when X1 is on, the 32 bit value in V2000 and V2001 will be
loaded into the accumulator using the Load Double instruction. The value in the
accumulator is output to V2010 and V2011 using the Out Double instruction.
Direct SOFT32 V2001 V2000 Handheld Programmer Keystrokes
6 7 3 9 5 0 2 6
X1 $ B ENT
LDD STR 1
V2000
SHFT L D D
Load the value in V2000 and ANDST 3 3
V2001 into the accumulator Acc. 6 7 3 9 55 00 22 66
C A A A ENT
2 0 0 0
OUTD
GX SHFT D
V2010 OUT 3
Copy the value in the 6 7 3 9 5 0 2 6 C A B A ENT
accumulator to V2010 and V2011 V2010 2 0 1 0
V2011

5–64 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Accumulator/Stack Load and Output Data

Out Formatted (OUTF)


The Out Formatted instruction outputs 1–32 bits from the
OUTF A aaa
accumulator to the specified discrete memory locations. The
K bbb
instruction requires a starting location (Aaaa) for the
destination and the number of bits (Kbbb) to be output.
Operand Data Type DL06 Range
....................................A aaa bbb
Inputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X 0–777 ––
Outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Y 0–777 ––
Control Relays . . . . . . . . . . . . . . . . . . . . . . . . . . C 0–1777 ––
Constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K –– 1–32

In the following example, when C0 is on, the binary pattern of C10–C16 (7 bits) will be
loaded into the accumulator using the Load Formatted instruction. The lower 7 bits of the
accumulator are output to Y0–Y6 using the Out Formatted instruction.
Direct SOFT32
C0 Location Constant
LDF C10 C16 C15 C14 C13 C12 C11 C10
K7 C10 K7 OFF OFF OFF ON ON ON OFF

Load the status of 7


consecutive bits (C10–C16) The unused accumulator bits are set to zero
into the accumulator
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0
OUTF Y20
Accumulator
K7

Copy the value of the


specified number of bits
from the accumulator to
Y20–Y26 Location Constant Y26 Y25 Y24 Y23 Y22 Y21 Y20
Y0 K7 OFF OFF OFF ON ON ON OFF
Handheld Programmer Keystrokes

$ SHFT C A ENT
STR 2 0

SHFT L D F
ANDST 3 5

SHFT C B A H ENT
2 1 0 7
GX SHFT F
OUT 5
A H ENT
0 7

Pop (POP)
The Pop instruction moves the value from the first level of the
accumulator stack (32 bits) to the accumulator and shifts each
value in the stack up one level. POP

Discrete Bit Flags Description


SP63 on when the result of the instruction causes the value in the accumulator to be zero.

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–65


Chapter 5: Standard RLL Instructions - Accumulator/Stack Load and Output Data

Pop Instruction Continued


In the example below, when C0 is on, the value 4545 that was on top of the stack is moved
into the accumulator using the Pop instruction The value is output to V2000 using the Out
instruction. The next Pop moves the value 3792 into the accumulator and outputs the value
to V2001. The last Pop moves the value 7930 into the accumulator and outputs the value to
V2002. Please note if the value in the stack were greater than 16 bits (4 digits) the Out
Double instruction would be used and 2 V memory locations for each Out Double must be
allocated.
Direct SOFT32
Previous Acc. value
C0 POP
Acc. X X X X XX XX XX XX

Current Acc. value Accumulator Stack


Pop the 1st. value on the stack into the
Acc. 0 0 0 0 44 55 44 55 Level 1 0 0 0 0 3 7 9 2
accumulator and move stack values
up one location Level 2 0
0 0
0 0 0 7 9 3 0
Level 3 X X X X X X X X

OUT Level 4 X X X X X X X X
V2000 Level 5 X X X X X X X X
V2000 4 5 4 5 Level 6 X X X X X X X X
Copy the value in the lower 16 bits of
the accumulator to V2000 Level 7 X X X X X X X X
Level 8 X X X X X X X X

POP
Previous Acc. value

Acc. 0 0 0 0 44 55 44 55
Pop the 1st. value on the stack into the
accumulator and move stack values Current Acc. value Accumulator Stack
up one location
Acc. 0 0 0 0 3 7 9 2 Level 1 0 0 0 0 7 9 3 0
Level 2 X X X X X X X X
OUT Level 3 X X X X X X X X
V2001
Level 4 X X X X X X X X

Copy the value in the lower 16 bits of Level 5 X X X X X X X X


the accumulator to V2001 V2001 3 7 9 2 Level 6 X X X X X X X X
Level 7 X X X X X X X X
POP Level 8 X X X X X X X X

Pop the 1st. value on the stack into the Previous Acc. value
accumulator and move stack values
up one location Acc. 0 0 0 0 3 7 9 2

Current Acc. value Accumulator Stack

OUT Acc. 0 0 0 0 7 9 3 0 Level 1 X X X X X X X X


V2002 Level 2 X X X X X X X X
Level 3 X X X X X X X X
Copy the value in the lower 16 bits of
the accumulator to V2002 Level 4 X X X X X X X X
Level 5 X X X X X X X X
V2002 7 9 3 0 Level 6 X X X X X X X X
Handheld Programmer Keystrokes
Level 7 X X X X X X X X
$ SHFT C A ENT Level 8 X X X X X X X X
STR 2 0

SHFT P SHFT O P ENT


CV INST# CV
GX SHFT V C A A A ENT
OUT AND 2 0 0 0

SHFT P SHFT O P ENT


CV INST# CV
GX SHFT V C A A B ENT
OUT AND 2 0 0 1

SHFT P SHFT O P ENT


CV INST# CV
GX SHFT V C A A C ENT
OUT AND 2 0 0 2

5–66 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Accumulator/Stack Load and Output Data

Out Indexed (OUTX)


The Out Indexed instruction is a 16 bit instruction. It copies
a 16 bit or 4 digit value from the first level of the O UT X
accumulator stack to a source address offset by the value in A aaa
the accumulator(V memory + offset).This instruction
interprets the offset value as a HEX number. The upper 16
bits of the accumulator are set to zero.
Operand Data Type DL06 Range
....................................A aaa
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map
Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P See memory map

In the following example, when X1 is on, the constant value 3544 is loaded into the
accumulator. This is the value that will be output to the specified offset V memory location
(V1525). The value 3544 will be placed onto the stack when the Load Address instruction is
executed. Remember, two consecutive Load instructions places the value of the first load
instruction onto the stack. The Load Address instruction converts octal 25 to HEX 15 and
places the value in the accumulator. The Out Indexed instruction outputs the value 3544
which resides in the first level of the accumulator stack to V1525.
DirectSOFT32
Constant
X1 LD
3 5 4 4
K3544
The unused accumulator
Load the accumulator with
bits are set to zero
the value 3544

Acc. 0 0 0 0 3 5 4 4

Octal HEX
LDA
2 5 0 0 1 5
O25
Load the HEX equivalent to
The unused accumulator
octal 25 into the lower 16 bits
bits are set to zero
of the accumulator. This is the
offset for the Out Indexed 0 0 0 0 0 0 1 5
Acc.
instruction, which determines
the final destinaltion address
Octal Octal Octal
OUTX
V 1 5 0 0 + 2 5 = V 1 5 2 5
V1500 Accumulator Stack
The hex 15 converts
to 25 octal, which is 3 5 4 4 Level 1 0 0 0 0 3 5 4 4
Copy the value in the first
level of the stack to the added to the base Level 2 X X X X X X X X
address of V1500 to yield V1525
offset address 1525
(V1500+25) the final answer Level 3 X X X X X X X X
Level 4 X X X X X X X X
Handheld Programmer Keystrokes
Level 5 X X X X X X X X
$ B ENT
STR 1 Level 6 X X X X X X X X
Level 7 X X X X X X X X
SHFT L D PREV D F E E ENT
ANDST 3 3 5 4 4 Level 8 X X X X X X X X
L D A C F ENT
SHFT
ANDST 3 0 2 5
GX SHFT X B F A A ENT
OUT SET 1 5 0 0

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–67


Chapter 5: Standard RLL Instructions - Accumulator/Stack Load and Output Data

Out Least (OUTL)


The Out Least instruction copies the value in the lower eight O UT L
bits of the accumulator to the lower eight bits of the specified A aaa
V-memory location (i.e., it copies the low byte of the low
word of the accumulator).
In the following example, when X1 is on, the value in V1400 will be loaded into the lower 16
bits of the accumulator using the Load instruction. The value in the lower 8 bits of the
accumulator are copied to V1500 using the Out Least instruction.
DirectSOFT32
X1 Load the value in V1400 into V1400
LD the lower 16 bits of the
V1400 accumulater 8 9 3 5

Copy the value in the lower The unused accumulator


OUTL bits are set to zero
8 bits of the accumulator to
V1500 V1500
0 0 0 0 8 9 3 5
Acc.
Handheld Programmer Keystrokes

$ B ENT
STR 1
0 0 3 5
SHFT L D B E A A ENT
ANDST 3 1 4 0 0 V1500
GX SHFT L B F A A ENT
OUT ANDST 1 5 0 0

Out Most (OUTM)


The Out Most instruction copies the value in the upper eight
bits of the lower sixteen bits of the accumulator to the upper O UT M
eight bits of the specified V-memory location (i.e., it copies the A aaa
high byte of the low word of the accumulator).

Operand Data Type DL06 Range


....................................A aaa
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map
Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P See memory map

In the following example, when X1 is on, the value in V1400 will be loaded into the lower 16
bits of the accumulator using the Load instruction. The value in the upper 8 bits of the lower
16 bits of the accumulator are copied to V1500 using the Out Most instruction.
DirectSOFT32
X1 Load the value in V1400 into V1400
LD the lower 16 bits of the
V1400 accumulator 8 9 3 5

Copy the value in the upper The unused accumulator


OUTM
8 bits of the lower 16 bits of bits are set to zero
V1500 the accumulator to 1500
Acc. 0 0 0 0 8 9 3 5

Handheld Programmer Keystrokes

$ B ENT 8 9 0 0
STR 1
V1500
SHFT L D B E A A ENT
ANDST 3 1 4 0 0
GX SHFT M B F A A ENT
OUT ORST 1 5 0 0

5–68 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Logical

Logical Instructions (Accumulator)


And (AND)
The And instruction is a 16 bit instruction that logically ands
AND
the value in the lower 16 bits of the accumulator with a A aaa
specified V memory location (Aaaa). The result resides in the
accumulator. The discrete status flag indicates if the result of
the And is zero.
Operand Data Type DL06 Range
....................................A aaa
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map
Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P See memory map

Discrete Bit Flags Description


SP63 Will be on if the result in the accumulator is zero.
SP70 on when the value loaded into the accumulator by any instruction is zero.

NOTE: The status flags are only valid until another instruction that uses the same flags is executed.

In the following example, when X1 is on, the value in V2000 will be loaded into the
accumulator using the Load instruction. The value in the accumulator is anded with the value
in V2006 using the And instruction. The value in the lower 16 bits of the accumulator is
output to V2010 using the Out instruction.

Direct SOFT32
X1 V2000
LD
2 8 7 A
V2000

Load the value in V2000 into The upper 16 bits of the accumulator
the lower 16 bits of the will be set to 0
accumulator
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Acc. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 1 1 1 0 1 0

AND
V2006 Acc. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 1 1 1 0 1 0

AND the value in the 6A38


accumulator with AND (V2006) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 0 0 1 1 1 0 0 0
the value in V2006
Acc. 0 0 0 0 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 1 1 0 0 0

OUT
V2010
2 8 3 8
Copy the lower 16 bits of the
accumulator to V2010 V2010

Handheld Programmer Keystrokes

$ B ENT
STR 1

SHFT L D C A A A ENT
ANDST 3 2 0 0 0
V SHFT V C A A G ENT
AND AND 2 0 0 6
GX SHFT V C A B A ENT
OUT AND 2 0 1 0

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–69


Chapter 5: Standard RLL Instructions - Logical

And Double (ANDD)


The And Double is a 32 bit instruction that logically ands the
value in the accumulator with two consecutive V memory
ANDD
locations or an 8 digit (max.) constant value (Aaaa). The result
K aaa
resides in the accumulator. Discrete status flags indicate if the
result of the And Double is zero or a negative number (the most
significant bit is on).
Operand Data Type DL06 Range
aaa
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map
Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P See memory map
Constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K 0–FFFFFFFF

Discrete Bit Flags Description


SP63 Will be on if the result in the accumulator is zero.
SP70 Will be on if the result in the accumulator is negative

NOTE: The status flags are only valid until another instruction that uses the same flags is executed.

In the following example, when X1 is on, the value in V2000 and V2001 will be loaded into
the accumulator using the Load Double instruction. The value in the accumulator is anded
with 36476A38 using the And Double instruction. The value in the accumulator is output to
V2010 and V2011 using the Out Double instruction.

Direct SOFT32 V2000 V2000


X1 LDD 5 4 7 E 2 8 7 A

V2000

Load the value in V2000 and


V2001 into the accumulator
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Acc. 0 1 0 1 0 1 0 0 0 1 1 1 1 1 1 0 0 0 1 0 1 0 0 0 0 1 1 1 1 0 1 0

ANDD
K36476A38 Acc. 0 1 0 1 0 1 0 0 0 1 1 1 1 1 1 0 0 0 1 0 1 0 0 0 0 1 1 1 1 0 1 0

AND the value in the


accumulator with AND 36476A38 0 0 1 1 0 1 1 0 0 1 0 0 0 1 1 1 0 1 1 0 1 0 1 0 0 0 1 1 1 0 0 0
the constant value
36476A38 Acc. 0 0 0 0
1 0 1 0 0 0 0
1 0 0 0 0
1 0
1 0 0 0 1 0 1 0 0 0 0 0 1 1 1 0 0 0

OUTD
V2010 1 4 4 6 2 8 3 8

Copy the value in the V2011 V2010


accumulator to V2010 and
V2011

Handheld Programmer Keystrokes


$ B ENT
STR 1

SHFT L D D C A A A ENT
ANDST 3 3 2 0 0 0
V SHFT D SHFT K D G E H G SHFT A SHFT D I ENT
AND 3 JMP 3 6 4 7 6 0 3 8
GX SHFT D C A B A ENT
OUT 3 2 0 1 0

5–70 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Logical

And Formatted (ANDF)


The And Formatted instruction logically ANDs the binary
value in the accumulator and a specified range of discrete
memory bits (1–32). The instruction requires a starting ANDF A aaa
K bbb
location (Aaaa) and number of bits (Kbbb) to be ANDed.
Discrete status flags indicate if the result is zero or a
negative number (the most significant bit =1).
Operand Data Type DL06 Range
....................................B aaa bbb
Inputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X 0-777 -
Outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Y 0-777 -
Control Relays . . . . . . . . . . . . . . . . . . . . . . . . . . C 0-1777 -
Stage Bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . S 0-1777 -
Timer Bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . T 0-377 -
Counter Bits . . . . . . . . . . . . . . . . . . . . . . . . . . CT 177 -
Special Relays . . . . . . . . . . . . . . . . . . . . . . . . . SP 0-777 -
Constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K - 1-32

Discrete Bit Flags Description


SP63 Will be on if the result in the accumulator is zero.
SP70 Will be on if the result in the accumulator is negative

NOTE: Status flags are valid only until another instruction uses the same flag.

In the following example, when X1 is on the Load Formatted instruction loads C10–C13 (4
binary bits) into the accumulator. The accumulator contents is logically ANDed with the bit
pattern from Y20–Y23 using the And Formatted instruction. The Out Formatted instruction
outputs the accumulator’s lower four bits to C20–C23.
DirectSOFT32
X1 Location Constant
LDF C10 C13 C12 C11 C10
K4 C10 K4 ON ON ON OFF

Load the status of 4


consecutive bits (C10-C13) The unused accumulator bits are set to zero
into the accumulator
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ANDF Y20
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0
K4
Accumulator
And the binary bit pattern 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0
Acc.
(Y20-Y23) with the value in
the accumulator Y23 Y22 Y21 Y20
AND (Y20-Y23) ON OFF OFF OFF 1 0 0 0
OUTF C20

K4 Acc. 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0
ndard RLL

Copy the value in the lower


4 bits in accumulator to
C20-C23
Location Constant C23 C22 C21 C20
Handheld Programmer Keystrokes
C20 K4 ON OFF OFF OFF
$ B ENT
STR 1

SHFT L D F NEXT NEXT NEXT NEXT B A E ENT


ANDST 3 5 1 0 4
V SHFT F NEXT C A E ENT
AND 5 2 0 4
GX SHFT F PREV PREV C A E ENT
OUT 5 2 0 4

DL06 Micro PLC User Manual, 1st Ed., Rev. A


5–71
Chapter 5: Standard RLL Instructions - Logical

And with Stack (ANDS)


The And with Stack instruction is a 32 bit instruction that
logically ands the value in the accumulator with the first level of
ANDS
the accumulator stack. The result resides in the accumulator. The
value in the first level of the accumulator stack is removed from
the stack and all values are moved up one level. Discrete status
flags indicate if the result of the And with Stack is zero or a
negative number (the most significant bit is on).

Discrete Bit Flags Description


SP63 Will be on if the result in the accumulator is zero.
SP70 Will be on if the result in the accumulator is negative

NOTE: Status flags are valid only until another instruction uses the same flag.

In the following example when X1 is on, the binary value in the accumulator will be anded
with the binary value in the first level or the accumulator stack. The result resides in the
accumulator. The 32 bit value is then output to V1500 and V1501.

DirectSOFT32
X1 LDD V1401 V1400
5 4 7 E 2 8 7 A
V1400
Load the value in V1400 and
1401 into the accumulator

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Acc. 0 1 0 1 0 1 0 0 0 1 1 1 1 1 1 0 0 0 1 0 1 0 0 0 0 1 1 1 1 0 1 0

ANDS
Acc. 0 1 0 1 0 1 0 0 0 1 1 1 1 1 1 0 0 0 1 0 1 0 0 0 0 1 1 1 1 0 1 0
36476A38
AND the value in the
accumulator with the AND (top of stack) 0 0 1 1 0 1 1 0 0 1 0 0 0 1 1 1 0 1 1 0 1 0 1 0 0 0 1 1 1 0 0 0
first level of the
accumulator stack Acc. 0 0 0 1
0 0 1 0 0 0 0
1 0 0 0 1
0 0
1 0 0 0 1 0 1 0 0 0 0 0 1 1 1 0 0 0

OUTD
V1500

Copy the value in the 1 4 4 6 2 8 3 8


accumulator to V1500 V1501 V1500
and 1501

Handheld Programmer Keystrokes

$ B ENT
STR 1

SHFT L D D B E A A ENT
ANDST 3 3 1 4 0 0
V SHFT S ENT
AND RST
GX SHFT D B F A A ENT
OUT 3 1 5 0 0

5–72 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Logical

Or (OR)
The Or instruction is a 16 bit instruction that logically ors the
value in the lower 16 bits of the accumulator with a specified V OR
memory location (Aaaa). The result resides in the accumulator. A aaa
The discrete status flag indicates if the result of the Or is zero.

Operand Data Type DL06 Range


....................................A aaa
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map
Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P See memory map

Discrete Bit Flags Description


SP63 Will be on if the result in the accumulator is zero.
SP70 on when the value loaded into the accumulator by any instruction is zero.

NOTE: The status flags are only valid until another instruction that uses the same flags is executed.

In the following example, when X1 is on, the value in V2000 will be loaded into the
accumulator using the Load instruction. The value in the accumulator is ored with V2006
using the Or instruction. The value in the lower 16 bits of the accumulator are output to
V2010 using the Out instruction.

Direct SOFT32
X1 V2000
LD
2 8 7 A
V2000

Load the value in V2000 into The upper 16 bits of the accumulator
the lower 16 bits of the will be set to 0
accumulator
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Acc. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 1 1 1 0 1 0

OR
V2006 Acc. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 1 1 1 0 1 0

Or the value in the 6A38


accumulator with OR (V2006) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 0 0 1 1 1 0 0 0
the value in V2006
Acc. 0 0 0 0 0 1
0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1 0

OUT
V2010
6 A 7 A
Copy the value in the lower
16 bits of the accumulator to V2010
V2010
Handheld Programmer Keystrokes

$ B ENT
STR 1

SHFT L D C A A A ENT
ANDST 3 2 0 0 0
Q SHFT V C A A G ENT
OR AND 2 0 0 6
GX SHFT V C A B A ENT
OUT AND 2 0 1 0

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–73


Chapter 5: Standard RLL Instructions - Logical

Or Double (ORD)
The Or Double is a 32 bit instruction that ors the value in the
accumulator with the value (Aaaa), which is either two ORD
consecutive V memory locations or an 8 digit (max.) constant K aaa
value. The result resides in the accumulator. Discrete status flags
indicate if the result of the Or Double is zero or a negative
number (the most significant bit is on).
Operand Data Type DL06 Range
aaa
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map
Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P See memory map
Constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K 0–FFFFFFFF

Discrete Bit Flags Description


SP63 Will be on if the result in the accumulator is zero.
SP70 Will be on if the result in the accumulator is negative

NOTE: The status flags are only valid until another instruction that uses the same flags is executed.

In the following example, when X1 is on, the value in V2000 and V2001 will be loaded
into the accumulator using the Load Double instruction. The value in the accumulator is
ored with 36476A38 using the Or Double instruction. The value in the accumulator is
output to V2010 and V2011 using the Out Double instruction.
Direct SOFT32
X1 V2001 V2000
LDD
5 4 7 E 2 8 7 A
V2000

Load the value in V2000 and


V2001 into accumulator

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Acc. 0 1 0 1 0 1 0 0 0 1 1 1 1 1 1 0 0 0 1 0 1 0 0 0 0 1 1 1 1 0 1 0

ORD
K36476A38 Acc. 0 1 0 1 0 1 0 0 0 1 1 1 1 1 1 0 0 0 1 0 1 0 0 0 0 1 1 1 1 0 1 0

OR the value in the


accumulator with OR 36476A38 0 0 1 1 0 1 1 0 0 1 0 0 0 1 1 1 0 1 1 0 1 0 1 0 0 0 1 1 1 0 0 0
the constant value
36476A38 Acc. 0 0
1 0
1 0
1 0 1 0
1 0 0 0
1 0
1 0
1 0
1 0
1 1
0 1
0 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1 0

OUTD
V2010
7 6 7 F 6 A 7 A
Copy the value in the
accumulator to V2010 and V2011 V2010
V2011

Handheld Programmer Keystrokes

$ B ENT
STR 1

SHFT L D D C A A A ENT
ANDST 3 3 2 0 0 0
Q SHFT D SHFT K D G E H G SHFT A SHFT D I ENT
OR 3 JMP 3 6 4 7 6 0 3 8
GX SHFT D C A B A ENT
OUT 3 2 0 1 0

5–74 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Logical

Or Formatted (ORF)
The Or Formatted instruction logically ORs the binary
value in the accumulator and a specified range of discrete ORF A aaa
bits (1–32). The instruction requires a starting location K bbb
(Aaaa) and the number of bits (Kbbb) to be ORed.
Discrete status flags indicate if the result is zero or negative
(the most significant bit =1).
Operand Data Type DL06 Range
A/B aaa bbb
Inputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X 0-777 --
Outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Y 0-777 --
Control Relays . . . . . . . . . . . . . . . . . . . . . . . . . . C 0-1777 --
Stage Bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . S 0-1777 --
Timer Bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . T 0-377 --
Counter Bits . . . . . . . . . . . . . . . . . . . . . . . . . . CT 0-177 --
Special Relays . . . . . . . . . . . . . . . . . . . . . . . . . SP 0-777 --
Constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K - 1-32

Discrete Bit Flags Description


SP63 Will be on if the result in the accumulator is zero.
SP70 on when the value loaded into the accumulator by any instruction is zero.

NOTE: Status flags are valid only until another instruction uses the same flag.

In the following example, when X1 is on the Load Formatted instruction loads C10–C13 (4
binary bits) into the accumulator. The Or Formatted instruction logically ORs the
accumulator contents with Y20–Y23 bit pattern. The Out Formatted instruction outputs the
accumulator’s lower four bits to C20–C23.
DirectSOFT32
X1 LDF C10 Location Constant C13 C12 C11 C10
K4 C10 K4 OFF ON ON OFF
Load the status fo 4
consecutive bits (C10-C13)
into the accumulator The unused accumulator bits are set to zero

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ORF Y20
Acc. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0
K4
OR the binary bit pattern
(Y20 - Y23) with the value in
the accumulator Y23 Y22 Y21 Y20
OR (Y20-- Y23) ON OFF OFF OFF 1 0 0 0
OUTF C20
Acc. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0
K4
Copy the specified number
of bits from the accumulator
to C20-C23
Handheld Programmer Keystrokes
Location Constant C23 C22 C21 C20
$ B ENT
STR 1 C20 K4 ON ON ON OFF

SHFT L D F NEXT NEXT NEXT NEXT B A E ENT


ANDST 3 5 1 0 4
Q SHFT F NEXT C A E ENT
OR 5 2 0 4
GX SHFT F PREV PREV C A E ENT
OUT 5 2 0 4

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–75


Chapter 5: Standard RLL Instructions - Logical

Or with Stack (ORS)


The Or with Stack instruction is a 32 bit instruction that
logically ors the value in the accumulator with the first
level of the accumulator stack. The result resides in the OR S
accumulator. The value in the first level of the
accumulator stack is removed from the stack and all values
are moved up one level. Discrete status flags indicate if the
result of the Or with Stack is zero or a negative number
(the most significant bit is on).

Discrete Bit Flags Description


SP63 Will be on if the result in the accumulator is zero.
SP70 on when the value loaded into the accumulator by any instruction is zero.

In the following example when X1 is on, the binary value in the accumulator will be ored
with the binary value in the first level of the stack. The result resides in the accumulator.

DirectSOFT32
X1 V1401 V1400
LDD
5 4 7 E 2 8 7 A
V1400
Load the value in V1400 and
V1401 in the accumulator

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Acc. 0 1 0 1 0 1 0 0 0 1 1 1 1 1 1 0 0 0 1 0 1 0 0 0 0 1 1 1 1 0 1 0

ORS
Acc. 0 1 0 1 0 1 0 0 0 1 1 1 1 1 1 0 0 0 1 0 1 0 0 0 0 1 1 1 1 0 1 0
OR the value in the 36476A38
accumulator with the value OR (top of stack) 0 0 1 1 0 1 1 0 0 1 0 0 0 1 1 1 0 1 1 0 1 0 1 0 0 0 1 1 1 0 0 0
in the first level of the
accumulator stack Acc. 0 0
1 0 1
1 0 0 1 0
1 0 0 0
1 0
1 0
1 0 1
1 0 0
1 1
0 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1 0

OUTD

V1500
Copy the value in the 7 6 7 F 6 A 7 A
accumulator to V1500 and
V1501 V1501 V1500

Handheld Programmer Keystrokes

$ B ENT
STR 1

SHFT L D D B E A A ENT
ANDST 3 3 1 4 0 0
Q SHFT S ENT
OR RST
GX SHFT D B F A A ENT
OUT 3 1 5 0 0

5–76 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Logical

Exclusive Or (XOR)
The Exclusive Or instruction is a 16 bit instruction that
performs an exclusive or of the value in the lower 16 bits XOR
of the accumulator and a specified V memory location A aaa
(Aaaa). The result resides in the in the accumulator. The
discrete status flag indicates if the result of the XOR is
zero.
Operand Data Type DL06 Range
....................................A aaa
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map
Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P See memory map

Discrete Bit Flags Description


SP63 Will be on if the result in the accumulator is zero.
SP70 on when the value loaded into the accumulator by any instruction is zero.

NOTE: The status flags are only valid until another instruction that uses the same flags is executed.

In the following example, when X1 is on, the value in V2000 will be loaded into the
accumulator using the Load instruction. The value in the accumulator is exclusive ored with
V2006 using the Exclusive Or instruction. The value in the lower 16 bits of the accumulator
are output to V2010 using the Out instruction.

Direct SOFT32
X1 V2000
LD
2 8 7 A
V2000

Load the value in V2000 into The upper 16 bits of the accumulator
the lower 16 bits of the will be set to 0
accumulator
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Acc. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 1 1 1 0 1 0

XOR
V2006 Acc. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 1 1 1 0 1 0

XOR the value in the 6A38


accumulator with XOR (V2006) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 0 0 1 1 1 0 0 0
the value in V2006
Acc. 0 0 0 0 0 1
0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 1 0

OUT
V2010
4 2 4 2
Copy the lower 16 bits of the
accumulator to V2010 V2010

Handheld Programmer Keystrokes

$ SHFT X B ENT
STR SET 1

SHFT L D SHFT V C A A A ENT


ANDST 3 AND 2 0 0 0

SHFT X SHFT Q SHFT V C A A G ENT


SET OR AND 2 0 0 6
GX SHFT V C A B A ENT
OUT AND 2 0 1 0

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–77


Chapter 5: Standard RLL Instructions - Logical

Exclusive Or Double (XORD)


The Exclusive OR Double is a 32 bit instruction that
performs an exclusive or of the value in the accumulator
XORD
and the value (Aaaa), which is either two consecutive V K aaa
memory locations or an 8 digit (max.) constant. The result
resides in the accumulator. Discrete status flags indicate if
the result of the Exclusive Or Double is zero or a negative
number (the most significant bit is on).
Operand Data Type DL06 Range
....................................A aaa
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map
Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P See memory map
Constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K 0–FFFFFFFF

Discrete Bit Flags Description


SP63 Will be on if the result in the accumulator is zero.
SP70 Will be on if the result in the accumulator is negative

NOTE: The status flags are only valid until another instruction that uses the same flags is executed.

In the following example, when X1 is on, the value in V2000 and V2001 will be loaded into
the accumulator using the Load Double instruction. The value in the accumulator is
exclusively ored with 36476A38 using the Exclusive Or Double instruction. The value in the
accumulator is output to V2010 and V2011 using the Out Double instruction.

Direct SOFT32 V2001 V2000


X1 LDD 5 4 7 E 2 8 7 A

V2000

Load the value in V2000 and


V2001 into the accumulator
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
XORD Acc. 0 1 0 1 0 1 0 0 0 1 1 1 1 1 1 0 0 0 1 0 1 0 0 0 0 1 1 1 1 0 1 0
K36476A38

XORD the value in the 0 1 0 1 0 1 0 0 0 1 1 1 1 1 1 0 0 0 1 0 1 0 0 0 0 1 1 1 1 0 1 0


Acc.
accumulator with
the constant value
36476A38 XORD 36476A38 0 0 1 1 0 1 1 0 0 1 0 0 0 1 1 1 0 1 1 0 1 0 1 0 0 0 1 1 1 0 0 0

OUTD Acc. 0 0
1 0
1 0 0 1
0 0
1 0 0 0 0
1 0
1 0
1 0 0 1
0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 1 0
V2010

Copy the value in the


accumulator to V2010
and V2011 6 2 3 9 4 2 4 2

Handheld Programmer Keystrokes V2011 V2010

$ B ENT
STR 1

SHFT L D D C A A A ENT
ANDST 3 3 2 0 0 0

SHFT X Q SHFT D SHFT K


SET OR 3 JMP
D G E H G SHFT A SHFT D I ENT
3 6 4 7 6 0 3 8
GX SHFT D C A B A ENT
OUT 3 2 0 1 0

5–78 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Logical

Exclusive Or Formatted (XORF)


The Exclusive Or Formatted instruction performs an XO R F A aaa
exclusive OR of the binary value in the accumulator and a K bbb
specified range of discrete memory bits (1–32).
The instruction requires a starting location (Aaaa) and the number of bits (Bbbb) to be
exclusive ORed. Discrete status flags indicate if the result of the Exclusive Or Formatted is
zero or negative (the most significant bit =1).
Operand Data Type DL06 Range
A/B aaa bbb
Inputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X 0-777 -
Outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Y 0-777 -
Control Relays . . . . . . . . . . . . . . . . . . . . . . . . . . C 0-1777 -
Stage Bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . S 0-1777 -
Timer Bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . T 0-377 -
Counter Bits . . . . . . . . . . . . . . . . . . . . . . . . . . CT 177 -
Special Relays . . . . . . . . . . . . . . . . . . . . . . . . . SP 0-777 -
Constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K - 1-32

Discrete Bit Flags Description


SP63 Will be on if the result in the accumulator is zero.
SP70 on when the value loaded into the accumulator by any instruction is zero.

NOTE: Status flags are valid only until another instruction uses the same flag.

In the following example, when X1 is on, the binary pattern of C10–C13 (4 bits) will be
loaded into the accumulator using the Load Formatted instruction. The value in the
accumulator will be logically Exclusive Ored with the bit pattern from Y20–Y23 using the
Exclusive Or Formatted instruction. The value in the lower 4 bits of the accumulator are
output to C20–C23 using the Out Formatted instruction.
DirectSOFT32
Location Constant C13 C12 C11 C10
X1
LDF C10 C10 K4 OFF ON ON OFF
K4

Load the status of 4 The unused accumulator bits are set to zero
consecutive bits (C10-C13)
into the accumulator
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
X0RF Y20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0
K4 Accumulator
Exclusive OR the binary bit Acc. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0
pattern (Y20-Y23) with the
value in the accumulator Y23 Y22 Y21 Y20
XORF (Y20-Y23) ON OFF OFF OFF 1 0 0 0
OUTF C20
Acc. 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0
K4
Standard RLL

Copy the specified number


of bits from the accumulator
to C20-C23

Location Constant C23 C22 C21 C20


Handheld Programmer Keystrokes C20 K4 ON ON ON OFF

$ B ENT
STR 1

SHFT L D F NEXT NEXT NEXT NEXT B A E ENT


ANDST 3 5 1 0 4

SHFT X Q SHFT F NEXT C A E ENT


SET OR 5 2 0 4
GX SHFT F PREV PREV C A E ENT
OUT 5 2 0 4

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–79


Chapter 5: Standard RLL Instructions - Logical

Exclusive Or with Stack (XORS)


The Exclusive Or with Stack instruction is a 32 bit instruction
that performs an exclusive or of the value in the accumulator with
the first level of the accumulator stack. The result resides in the XO R S
accumulator. The value in the first level of the accumulator stack
is removed from the stack and all values are moved up one level.
Discrete status flags indicate if the result of the Exclusive Or with
Stack is zero or a negative number (the most significant bit is on).
NOTE: Status flags are valid only until another instruction uses the same flag.

Discrete Bit Flags Description


SP63 Will be on if the result in the accumulator is zero.
SP70 on when the value loaded into the accumulator by any instruction is zero.

In the following example when X1 is on, the binary value in the accumulator will be exclusive
ored with the binary value in the first level of the accumulator stack. The result will reside in
the accumulator.

DirectSOFT32
X1 LDD V1401 V1400
5 4 7 E 2 8 7 A
V1400
Load the value in V1400 and
V1401 into the accumulator

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Acc. 0 1 0 1 0 1 0 0 0 1 1 1 1 1 1 0 0 0 1 0 1 0 0 0 0 1 1 1 1 0 1 0

XORS
Acc. 0 1 0 1 0 1 0 0 0 1 1 1 1 1 1 0 0 0 1 0 1 0 0 0 0 1 1 1 1 0 1 0
Exclusive OR the value 36476A38
in the accumulator XOR (1st level of Stack) 0 0 1 1 0 1 1 0 0 1 0 0 0 1 1 1 0 1 1 0 1 0 1 0 0 0 1 1 1 0 0 0
with the value in the
first level of the Acc. 0 0
1 0 0
1 0 1
0 0
1 0 0 0 0
1 0
1 0 0
1 0 0
1 0 1 0 0 0 0 1 0 0 1 0 0 0 0 1 0
accumulator stack
OUTD

V1500
6 2 3 9 4 2 4 2
Copy the value in the
accumulator to V1500 and V1501 V1501 V1500

Handheld Programmer Keystrokes

$ B ENT
STR 1

SHFT L D D B E A A ENT
ANDST 3 3 1 4 0 0

SHFT X Q SHFT S ENT


SET OR RST
GX SHFT D B F A A ENT
OUT 3 1 5 0 0

5–80 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Logical

Compare (CMP)
The compare instruction is a 16 bit instruction that compares the
value in the lower 16 bits of the accumulator with the value in a CMP
specified V memory location (Aaaa). The corresponding status A aaa
flag will be turned on indicating the result of the comparison.

Operand Data Type DL06 Range


....................................A aaa
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map
Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P See memory map

Discrete Bit Flags Description


SP60 On when the value in the accumulator is less than the instruction value.
SP61 On when the value in the accumulator is equal to the instruction value.
SP62 On when the value in the accumulator is greater than the instruction value.

NOTE: The status flags are only valid until another instruction that uses the same flags is executed.

In the following example when X1 is on, the constant 4526 will be loaded into the lower 16
bits of the accumulator using the Load instruction. The value in the accumulator is compared
with the value in V2000 using the Compare instruction. The corresponding discrete status
flag will be turned on indicating the result of the comparison. In this example, if the value in
the accumulator is less than the value specified in the Compare instruction, SP60 will turn on
energizing C30.
Direct SOFT32
X1 LD CONSTANT
K4526 4 5 2 6

Load the constant value


4526 into the lower 16 bits of The unused accumulator
the accumulator bits are set to zero

Acc. 0 0 0 0 44 55 22 66

Compared
with
CMP
V2000
8 9 4 5
Compare the value in the
accumulator with the value V2000
in V2000

SP60 C30

Handheld Programmer Keystrokes


$ B ENT
STR 1

SHFT L D SHFT K E F C G ENT


ANDST 3 JMP 4 5 2 6

SHFT C SHFT M P C A A A ENT


2 ORST CV 2 0 0 0
$ SHFT SP G A ENT
STR STRN 6 0
GX SHFT C D A ENT
OUT 2 3 0

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–81


Chapter 5: Standard RLL Instructions Logical

Compare Double (CMPD)


The Compare Double instruction is a 32–bit instruction that
compares the value in the accumulator with the value (Aaaa), CMPD
which is either two consecutive V memory locations or an 8–digit A aaa
(max.) constant. The corresponding status flag will be turned on
indicating the result of the comparison.
Operand Data Type DL06 Range
....................................A aaa
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map
Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P See memory map
Constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K 0–FFFFFFFF

Discrete Bit Flags Description


SP60 On when the value in the accumulator is less than the instruction value.
SP61 On when the value in the accumulator is equal to the instruction value.
SP62 On when the value in the accumulator is greater than the instruction value.

NOTE: The status flags are only valid until another instruction that uses the same flags is executed.

In the following example when X1 is on, the value in V2000 and V2001 will be loaded into
the accumulator using the Load Double instruction. The value in the accumulator is
compared with the value in V2010 and V2011 using the CMPD instruction. The
corresponding discrete status flag will be turned on indicating the result of the comparison. In
this example, if the value in the accumulator is less than the value specified in the Compare
instruction, SP60 will turn on energizing C30.
Direct SOFT32
X1 V2001 V2000
LDD
4 5 2 6 7 2 9 9
V2000

Load the value in V2000 and


V2001 into the accumulator

Acc. 4 5 2 6 77 72 9 9

Compared
CMPD with
V2010
6 7 3 9 5 0 2 6
Compare the value in the
accumulator with the value V2011 V2010
in V2010 and V2011

SP60 C30

Handheld Programmer Keystrokes

$ B ENT
STR 1

SHFT L D D C A A A ENT
ANDST 3 3 2 0 0 0

SHFT C SHFT M P D C A B A ENT


2 ORST CV 3 2 0 1 0
$ SHFT SP G A ENT
STR STRN 6 0
GX SHFT C D A ENT
OUT 2 3 0

5–82 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Logical

Compare Formatted (CMPF)


The Compare Formatted compares the value in the
accumulator with a specified number of discrete locations C MP F A aaa
(1–32). The instruction requires a starting location (Aaaa) K bbb
and the number of bits (Kbbb) to be compared. The
corresponding status flag will be turned on indicating the
result of the comparison.

Operand Data Type DL06 Range


..................................... A/B aaa bbb
Inputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X 0-777 -
Outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Y 0-777 -
Control Relays . . . . . . . . . . . . . . . . . . . . . . . . . . . C 0-1777 -
Stage Bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . S 0-1777 -
Timer Bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . T 0-377 -
Counter Bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CT 0-177 -
Special Relays . . . . . . . . . . . . . . . . . . . . . . . . . . . SP 0-777 -
Constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K - 1-32

Discrete Bit Flags Description


SP60 On when the value in the accumulator is less than the instruction value.
SP61 On when the value in the accumulator is equal to the instruction value.
SP62 On when the value in the accumulator is greater than the instruction value.

NOTE: Status flags are valid only until another instruction uses the same flag.

In the following example, when X1 is on the Load Formatted instruction loads the binary
value (6) from C10–C13 into the accumulator. The CMPF instruction compares the value in
the accumulator to the value in Y20–Y23 (E hex). The corresponding discrete status flag will
be turned on indicating the result of the comparison. In this example, if the value in the
accumulator is less than the value specified in the Compare instruction, SP60 will turn on
energizing C30.

DirectSOFT32
Location Constant
X1 Load the value of the C13 C12 C11 C10
LDF C10
specified discrete locations C10 K4 OFF ON ON OFF
K4 (C10-- C13) into the
accumulator The unused accumulator
bits are set to zero
Compare the value in the
CMPF Y20 accumulator with the value
K4 of the specified discrete Acc. 0 0 0 0 0 0 0 6
location (Y20-- Y23)
SP60 C30 Compared
Y23 Y22 Y21 Y20 with
OUT
ON ON ON OFF
E

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–83


Chapter 5: Standard RLL Instructions - Logical

Compare with Stack (CMPS)


The Compare with Stack instruction is a 32-bit instruction that
compares the value in the accumulator with the value in the first level C MP S
of the accumulator stack.
The corresponding status flag will be turned on indicating the result
of the comparison. This does not affect the value in the accumulator.
Discrete Bit Flags Description
SP60 On when the value in the accumulator is less than the instruction value.
SP61 On when the value in the accumulator is equal to the instruction value.
SP62 On when the value in the accumulator is greater than the instruction value.

NOTE: Status flags are valid only until another instruction uses the same flag.

In the following example when X1 is on, the value in V1400 and V1401 is loaded into the
accumulator using the Load Double instruction. The value in V1410 and V1411 is loaded
into the accumulator using the Load Double instruction. The value that was loaded into the
accumulator from V1400 and V1401 is placed on top of the stack when the second Load
instruction is executed. The value in the accumulator is compared with the value in the first
level or the accumulator stack using the CMPS instruction. The corresponding discrete status
flag will be turned on indicating the result of the comparison. In this example, if the value in
the accumulator is less than the value in the stack, SP60 will turn on, energizing C30.
DirectSOFT32 V1401 V1400
X1 Load the value in V1400 and 6 5 0 0 3 5 4 4
LDD V1401 into the accumulator
V1400

Load the value in V1410 and


LDD Acc. 6 5 0 0 3 5 4 4
V1411 into the accumulator
V1410

Compare the value in the V1411 V1410


CMPS accumulator with the value
in the first level of the 5 5 0 0 3 5 4 4
accumulator stack

SP60 C30
OUT Acc. 5 5 0 0 3 5 4 4

Handheld Programmer Keystrokes Compared with


Top of Stack
$ B ENT
STR 1

SHFT L D D B E A A ENT
ANDST 3 3 1 4 0 0

SHFT L D D B E B A ENT
ANDST 3 3 1 4 1 0

SHFT C SHFT M P S ENT


2 ORST CV RST
$ PREV G A ENT
STR 6 0
GX NEXT NEXT NEXT SHFT C D A ENT
OUT 2 3 0

5–84 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Logical

Compare Real Number (CMPR)


The Compare Real Number instruction compares a real
number value in the accumulator with two consecutive C MP R
V memory locations containing a real number. The A aaa
corresponding status flag will be turned on indicating
the result of the comparison. Both numbers being
compared are 32 bits long.

Operand Data Type DL06 Range


....................................A aaa
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map
Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P See memory map
Constant. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . R -3.402823E+038 to + -3.402823E+038

Discrete Bit Flags Description


SP60 On when the value in the accumulator is less than the instruction value.
SP61 On when the value in the accumulator is equal to the instruction value.
SP62 On when the value in the accumulator is greater than the instruction value.
SP71 On anytime the V-memory specified by a pointer (P) is not valid
SP75 On if a BCD number is expected and a non–BCD number is encountered.

NOTE: Status flags are valid only until another instruction uses the same flag.

In the following example when X1 is on, the LDR instruction loads the real number
representation for 7 decimal into the accumulator. The CMPR instruction compares the
accumulator contents with the real representation for decimal 6. Since 7 > 6, the
corresponding discrete status flag is turned on (special relay SP60).

DirectSOFT32
X1 LDR
R7.0
Acc. 4 0 E 0 0 0 0 0

CMPR
R6.0
CMPR 4 0 D 0 0 0 0 0

SP60 C1
OUT

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–85


Chapter 5: Standard RLL Instructions -Math

Math Instructions
Add (ADD)
ADD
Add is a 16 bit instruction that adds a BCD value in the
A aaa
accumulator with a BCD value in a V memory location (Aaaa).
The result resides in the accumulator.
Operand Data Type DL06 Range
....................................A aaa
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map
Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P See memory map

Discrete Bit Flags Description


SP63 On when the result of the instruction causes the value in the accumulator to be zero.
SP66 On when the 16 bit addition instruction results in a carry.
SP67 On when the 32 bit addition instruction results in a carry.
SP70 On anytime the value in the accumulator is negative.
SP75 On when a BCD instruction is executed and a NON–BCD number was encountered.

NOTE: The status flags are only valid until another instruction that uses the same flags is executed.

In the following example, when X1 is on, the value in V2000 will be loaded into the
accumulator using the Load instruction. The value in the lower 16 bits of the accumulator are
added to the value in V2006 using the Add instruction. The value in the accumulator is
copied to V2010 using the Out instruction.
Direct SOFT32 V2000
X1 4 9 3 5
LD
V2000

Load the value in V2000 into


the lower 16 bits of the The unused accumulator
accumulator bits are set to zero
0 0 0 0 4 9 3 5 (Accumulator)
ADD
+ 2 5 0 0 (V2006)
V2006
Acc. 7 4 3 5
Add the value in the lower
16 bits of the accumulator
with the value in V2006

OUT
V2010 7 4 3 5

Copy the value in the lower V2010


16 bits of the accumulator to
V2010
Handheld Programmer Keystrokes

$ B ENT
STR 1

SHFT L D C A A A ENT
ANDST 3 2 0 0 0

SHFT A D D C A A G ENT
0 3 3 2 0 0 6
GX SHFT V C A B A ENT
OUT AND 2 0 1 0

5–86 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions -Math

Add Double (ADDD)


Add Double is a 32 bit instruction that adds the
BCD value in the accumulator with a BCD value ADDD
(Aaaa), which is either two consecutive V memory A aaa
locations or an 8–digit (max.) BCD constant. The
result resides in the accumulator.
Operand Data Type DL06Range
....................................A aaa
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map
Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P See memory map
Constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K 0–99999999

Discrete Bit Flags Description


SP63 On when the result of the instruction causes the value in the accumulator to be zero.
SP66 On when the 16 bit addition instruction results in a carry.
SP67 On when the 32 bit addition instruction results in a carry.
SP70 On anytime the value in the accumulator is negative.
SP75 On when a BCD instruction is executed and a NON–BCD number was encountered.

NOTE: The status flags are only valid until another instruction that uses the same flags is executed.

In the following example, when X1 is on, the value in V2000 and V2001 will be loaded into
the accumulator using the Load Double instruction. The value in the accumulator is added
with the value in V2006 and V2007 using the Add Double instruction. The value in the
accumulator is copied to V2010 and V2011 using the Out Double instruction.
Direct SOFT32 V2000
X1 4 9 3 5
LD
V2000

Load the value in V2000 into


the lower 16 bits of the The unused accumulator
accumulator bits are set to zero
0 0 0 0 4 9 3 5 (Accumulator)
ADD
+ 2 5 0 0 (V2006)
V2006
Acc. 7 4 3 5
Add the value in the lower
16 bits of the accumulator
with the value in V2006

OUT
V2010 7 4 3 5

Copy the value in the lower V2010


16 bits of the accumulator to
V2010
Handheld Programmer Keystrokes

$ B ENT
STR 1

SHFT L D C A A A ENT
ANDST 3 2 0 0 0

SHFT A D D C A A G ENT
0 3 3 2 0 0 6
GX SHFT V C A B A ENT
OUT AND 2 0 1 0

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–87


Chapter 5: Standard RLL Instructions - Math

Add Real (ADDR)


The Add Real instruction adds a real number in the accumulator with
ADDR
either a real constant or a real number occupying two consecutive V- A aaa
memory locations. The result resides in the accumulator. Both
numbers must conform to the IEEE floating point format.
Operand Data Type DL06 Range
....................................A aaa
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map
Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P See memory map
Constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . R -3.402823E +038 to+-3.402823E +038

Discrete Bit Flags Description


SP63 On when the result of the instruction causes the value in the accumulator to be zero.
SP70 On anytime the value in the accumulator is negative.
SP71 On anytime the V-memory specified by a pointer (P) is not valid.
SP72 On anytime the value in the accumulator is an invalid floating point number.
SP73 on when a signed addition or subtraction results in a incorrect sign bit.
SP74 On anytime a floating point math operation results in an underflow error.
SP75 On if a BCD number is expected and a non–BCD number is encountered.

NOTE: Status flags are valid only until another instruction uses the same flag.

DirectSOFT32

X1 4 0 E 0 0 0 0 0
LDR
R7.0

Load the real number 7.0


into the accumulator
7 (decimal) 4 0 E 0 0 0 0 0 (Accumulator)
+ 1 5 + 4 1 7 0 0 0 0 0 (ADDR)
2 2 Acc. 4 1 B 0 0 0 0 0
ADDR
R15.0 V1401 V1400
Add the real number 15.0 to 4 1 B 0 0 0 0 0 (Hex number)
the accumulator contents,
which is in real number
format.
Real Value

8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1
OUTD
Acc. 0 1 0 0 0 0 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
V1400

Copy the result in the accumulator


to V1400 and V1401. Sign Bit Exponent (8 bits) Mantissa (23 bits)

128 + 2 + 1 = 131 1.011 x 2 (exp 4) = 10110. binary= 22 decimal


131 - 127 = 4
Implies 2 (exp 4)

NOTE: The current HPP does not support real number entry with automatic conversion to the 32-bit IEEE
format. You must use DirectSOFT32 for this feature.

5–88 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions -Math

Subtract (SUB)
Subtract is a 16 bit instruction that subtracts the BCD value SUB
(Aaaa) in a V memory location from the BCD value in the lower A aaa
16 bits of the accumulator. The result resides in the accumulator.
Operand Data Type DL06Range
....................................A aaa
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map
Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P See memory map

Discrete Bit Flags Description


SP63 On when the result of the instruction causes the value in the accumulator to be zero.
SP64 On when the 16 bit subtraction instruction results in a borrow
SP65 On when the 32 bit subtraction instruction results in a borrow
SP70 On anytime the value in the accumulator is negative.
SP75 On when a BCD instruction is executed and a NON–BCD number was encountered.

NOTE: The status flags are only valid until another instruction that uses the same flags is executed.

In the following example, when X1 is on, the value in V2000 will be loaded into the
accumulator using the Load instruction. The value in V2006 is subtracted from the value in
the accumulator using the Subtract instruction. The value in the accumulator is copied to
V2010 using the Out instruction.

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–89


Chapter 5: Standard RLL Instructions - Math

Subtract Double (SUBD)


Subtract Double is a 32 bit instruction that subtracts the BCD value SUBD
(Aaaa), which is either two consecutive V memory locations or an 8- A aaa
digit (max.) constant, from the BCD value in the accumulator.

Operand Data Type DL06 Range


....................................A aaa
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map
Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P See memory map
Constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K 0–99999999

Discrete Bit Flags Description


SP63 On when the result of the instruction causes the value in the accumulator to be zero.
SP64 On when the 16 bit subtraction instruction results in a borrow
SP65 On when the 32 bit subtraction instruction results in a borrow
SP70 On anytime the value in the accumulator is negative.
SP75 On when a BCD instruction is executed and a NON–BCD number was encountered.

NOTE: The status flags are only valid until another instruction that uses the same flags is executed.

In the following example, when X1 is on, the value in V2000 and V2001 will be loaded into
the accumulator using the Load Double instruction. The value in V2006 and V2007 is
subtracted from the value in the accumulator. The value in the accumulator is copied to
V2010 and V2011 using the Out Double instruction.
Direct SOFT32 V2001 V2000
0 1 0 6 3 2 7 4
X1 LDD
V2000

Load the value in V2000 and


V2001 into the accumulator
0 1 0 6 3 2 7 4
_ 6 7 2 3 7 5
SUBD
V2006 ACC. 0 0 3 9 0 8 9 9

The in V2006 and V2007 is


subtracted from the value in
the accumulator

OUTD 0 0 3 9 0 8 9 9
V2010
V2011 V2010
Copy the value in the
accumulator to V2010 and
V2011

Handheld Programmer Keystrokes

$ B ENT
STR 1

SHFT L D D C A A A ENT
ANDST 3 3 2 0 0 0

SHFT S SHFT U B D C A A G ENT


RST ISG 1 3 2 0 0 6
GX SHFT D C A B A ENT
OUT 3 2 0 1 0

5–90 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions -Math

Subtract Real (SUBR)


The Subtract Real instruction subtracts a real number in the
accumulator from either a real constant or a real number S UBR
occupying two consecutive V-memory locations. The result A aaa
resides in the accumulator. Both numbers must conform to the
IEEE floating point format.
Operand Data Type DL06 Range
....................................A aaa
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map
Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P See memory map
Constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . R -3.402823E +038 to+-3.402823E +038

Discrete Bit Flags Description


SP63 On when the result of the instruction causes the value in the accumulator to be zero.
SP70 On anytime the value in the accumulator is negative.
SP71 On anytime the V-memory specified by a pointer (P) is not valid.
SP72 On anytime the value in the accumulator is an invalid floating point number.
SP73 On when a signed addition or subtraction results in a incorrect sign bit.
SP74 On anytime a floating point math operation results in an underflow error.
SP75 On when a BCD instruction is executed and a NON–BCD number was encountered.

NOTE: Status flags are valid only until another instruction uses the same flag.

DirectSOFT32

X1 4 1 B 0 0 0 0 0
LDR
R22.0

Load the real number 22.0


into the accumulator.
2 2 (decimal) 4 1 B 0 0 0 0 0 (Accumulator)
- 1 5 + 4 1 7 0 0 0 0 0 (SUBR)

7 Acc. 4 0 E 0 0 0 0 0
SUBR
R15.0 V1401 V1400
Subtract the real number 4 0 E 0 0 0 0 0 (Hex number)
15.0 from the accululator
contents, which is in real
number format.
Real Value

8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1
OUTD
Acc. 0 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
V1400

Copy the result in the accumulator


to V1400 and V1401. Sign Bit Exponent (8 bits) Mantissa (23 bits)
ndard RLL
s tructions

128 + 1 = 129 1.11 x 2 (exp 2) = 111. binary= 7 decimal


129 - 127 = 2
Implies 2 (exp 2)

NOTE: The current HPP does not support real number entry with automatic conversion to the 32-bit IEEE
format. You must use DirectSOFT32 for this feature

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–91


Chapter 5: Standard RLL Instructions- -Math

Multiply (MUL)
Multiply is a 16 bit instruction that multiplies the BCD
MUL
value (Aaaa), which is either a V memory location or a
A aaa
4–digit (max.) constant, by the BCD value in the lower 16
bits of the accumulator The result can be up to 8 digits
and resides in the accumulator.
Operand Data Type DL06 Range
....................................A aaa
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map
Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P See memory map
Constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K 0–9999

Discrete Bit Flags Description


SP63 On when the result of the instruction causes the value in the accumulator to be zero.
SP70 On anytime the value in the accumulator is negative.
SP75 On when a BCD instruction is executed and a NON–BCD number was encountered.

NOTE: The status flags are only valid until another instruction that uses the same flags is executed.

In the following example, when X1 is on, the value in V2000 will be loaded into the
accumulator using the Load instruction. The value in V2006 is multiplied by the value in the
accumulator. The value in the accumulator is copied to V2010 and V2011 using the Out
Double instruction.
Direct SOFT32 V2000

X1 1 0 0 0
LD
V2000
The unused accumulator
Load the value in V2000 into bits are set to zero
the lower 16 bits of the
accumulator 0 0 0 0 1 0 0 0 (Accumulator)
(V2006)
X 2 5
MUL
V2006 Acc. 0 0 0 2 5 0 0 0

The value in V2006 is


multiplied by the value in the
accumulator

0 0 0 2 5 0 0 0
OUTD
V2011 V2010
V2010

Copy the value in the


accumulator to V2010 and
V2011

Handheld Programmer Keystrokes

$ B ENT
STR 1

SHFT L D C A A A ENT
ANDST 3 2 0 0 0

SHFT M U L C A A G ENT
ORST ISG ANDST 2 0 0 6
GX SHFT D C A B A ENT
OUT 3 2 0 1 0

5–92 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions -Math

Multiply Double (MULD)


Multiply Double is a 32 bit instruction that multiplies the
8-digit BCD value in the accumulator by the 8-digit BCD
value in the two consecutive V-memory locations MULD
specified in the instruction. The lower 8 digits of the A aaa
results reside in the accumulator. Upper digits of the result
reside in the accumulator stack.
Operand Data Type DL06 Range
....................................A aaa
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map
Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P See memory map

Discrete Bit Flags Description


SP63 On when the result of the instruction causes the value in the accumulator to be zero.
SP70 On anytime the value in the accumulator is negative.
SP75 On when a BCD instruction is executed and a NON–BCD number was encountered.

NOTE: Status flags are valid only until another instruction uses the same flag.

In the following example, when X1 is on, the constant Kbc614e hex will be loaded into the
accumulator. When converted to BCD the number is ”12345678”. That numbers stored in
V1400 and V1401. After loading the constant K2 into the accumulator, we multiply it times
12345678, which is 24691356.
Direct SOFT32 Display
1 2 3 4 5 6 7 8 (Accumulator)
X1 LDD Load the hex equivalent
of 12345678 decimal into
Kbc614e the accumulator.

Convert the value to V1401 V1400


BCD
BCD format. It will 1 2 3 4 5 6 7 8
occupy eight BCD digits
(32 bits).
OUTD Output the number to X 2 (Accumulator)
V1400 and V1401 using
V1400 the OUTD instruction. Acc. 2 4 6 9 1 3 5 6

LD Load the constant K2


into the accumulator.
K2

2 4 6 9 1 3 5 6
MULD Multiply the accumulator
contents (2) by the
V1400 V1403 V1402
8-digit number in V1400
and V1401.

OUTD Move the result in the


accumulator to V1402
V1402 and V1403 using the
OUTD instruction.
Handheld Programmer Keystrokes

$ B ENT
STR 1

SHFT L D D PREV SHFT B C SHFT G B E SHFT E ENT


ANDST 3 3 1 2 6 1 4 4

SHFT B C D ENT
1 2 3
GX SHFT D B E A A ENT
OUT 3 1 4 0 0

SHFT L D PREV C ENT


ANDST 3 2

SHFT M U L D B E A A ENT
ORST ISG ANDST 3 1 4 0 0
GX SHFT D B E A C ENT
OUT 3 1 4 0 2

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–93


Chapter 5: Standard RLL Instructions - Math

Multiply Real (MULR)


The Multiply Real instruction multiplies a real number in the MULR
accumulator with either a real constant or a real number occupying A aaa
two consecutive V-memory locations. The result resides in the
accumulator. Both numbers must conform to the IEEE floating
point format.
Operand Data Type DL06 Range
....................................A aaa
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map
Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P See memory map
Real Constant . . . . . . . . . . . . . . . . . . . . . . . . . . R -3.402823E+038 to + -3.402823E+038

Discrete Bit Flags Description


SP63 On when the result of the instruction causes the value in the accumulator to be zero.
SP70 On anytime the value in the accumulator is negative.
SP71 On anytime the V-memory specified by a pointer (P) is not valid.
SP72 On anytime the value in the accumulator is an invalid floating point number.
SP73 On when a signed addition or subtraction results in a incorrect sign bit.
SP74 On anytime a floating point math operation results in an underflow error.
SP75 On when a real number instruction is executed and a non-real number was encountered.

NOTE: Status flags are valid only until another instruction uses the same flag.

DirectSOFT32 Display
X1 4 0 E 0 0 0 0 0
LDR
R 7.0

Load the real number 7.0


into the accumulator.
7 (decimal) 4 0 E 0 0 0 0 0 (Accumulator)
x 1 5 X 4 1 7 0 0 0 0 0 (MULR)

1 0 5 Acc. 4 2 D 2 0 0 0 0
MULR
R 15.0 V1401 V1400
Multiply the accumulator 4 2 D 2 0 0 0 0 (Hex number)
contents by the real number
15.0

Real Value

8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1
OUTD
Acc. 0 1 0 0 0 0 1 0 1 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
V1400

Copy the result in the accumulator


to V1400 and V1401. Sign Bit Exponent (8 bits) Mantissa (23 bits)

128 + 4 + 1 = 133 1.101001 x 2 (exp 6) = 1101001. binary= 105 decimal


133 - 127 = 6
Implies 2 (exp 6)

NOTE: The current HPP does not support real number entry with automatic conversion to the 32-bit IEEE
format. You must use DirectSOFT32 for this feature.

5–94 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions -Math

Divide (DIV)
Divide is a 16 bit instruction that divides the BCD
value in the accumulator by a BCD value (Aaaa), DIV
which is either a V memory location or a 4-digit A aaa
(max.) constant. The first part of the quotient resides
in the accumulator and the remainder resides in the
first stack location.
Operand Data Type DL06 Range
....................................A aaa
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map
Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P See memory map
Constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K 0–9999

Discrete Bit Flags Description


SP53 On when the value of the operand is larger than the accumulator can work with.
SP63 On when the result of the instruction causes the value in the accumulator to be zero.
SP70 On anytime the value in the accumulator is negative.
SP75 On when a BCD instruction is executed and a NON–BCD number was encountered.

NOTE: The status flags are only valid until another instruction that uses the same flags is executed.

In the following example, when X1 is on, the value in V2000 will be loaded into the
accumulator using the Load instruction. The value in the accumulator will be divided by the
value in V2006 using the Divide instruction. The value in the accumulator is copied to
V2010 using the Out instruction.
Direct SOFT32 V2000
5 0 0 0
X1 LD
V2000

Load the value in V2000 into The unused accumulator


the lower 16 bits of the bits are set to zero
accumulator
0 0 0 0 5 0 0 0 (Accumulater)
DIV ÷ V2006
4 9
V2006
Acc. 1 0 2 0 0 0 0 0 0 0 2
The value in the
accumulator is divided by First stak location contains
the value in V2006 the remainder

OUT 1 0 2
V2010 V2010

Copy the value in the lower


16 bits of the accumulator to
V2010
Handheld Programmer Keystrokes

$ B ENT
STR 1

SHFT L D C A A A ENT
ANDST 3 2 0 0 0

SHFT D I V C A A G ENT
3 8 AND 2 0 0 6
GX SHFT V C A B A ENT
OUT AND 2 0 1 0

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–95


Chapter 5: Standard RLL Instructions

Divide Double (DIVD)


Divide Double is a 32 bit instruction that divides the BCD
value in the accumulator by a BCD value (Aaaa), which
must be obtained from two consecutive V memory DIVD
locations. (You cannot use a constant as the parameter in the A aaa
box.) The first part of the quotient resides in the
accumulator and the remainder resides in the first stack
location.
Operand Data Type DL06 Range
....................................A aaa
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map
Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P See memory map

Discrete Bit Flags Description


SP53 On when the value of the operand is larger than the accumulator can work with.
SP63 On when the result of the instruction causes the value in the accumulator to be zero.
SP70 On anytime the value in the accumulator is negative.
SP75 On when a BCD instruction is executed and a NON–BCD number was encountered.

NOTE: Status flags are valid only until another instruction uses the same flag.

In the following example, when X1 is on, the value in V1400 and V1401 will be loaded into
the accumulator using the Load Double instruction. The value in the accumulator is divided
by the value in V1420 and V1421 using the Divide Double instruction. The first part of the
quotient resides in the accumulator an the remainder resides in the first stack location. The
value in the accumulator is copied to V1500 and V1501 using the Out Double instruction.
Direct SOFT32 V1401 V1400
X1 LDD 0 1 5 0 0 0 0 0
V1400

Load the value in V1400 and The unused accumulator


bits are set to zero
V1401 into the accumulator
0 1 5 0 0 0 0 0 (Accumulator)

DIVD 0 0 0 0 0 0 5 0 (V1421 and V1420)


V1420
Acc. 0 0 0 3 0 0 0 0 0 0 0 0 0 0 0 0
The value in the accumulator First stack location contains
is divided by the value in the remainder
V1420 and V1421

OUTD
V1500 0 0 0 3 0 0 0 0

Copy the value in the V1501 V1500


accumulator to V1500
and V1501

Handheld Programmer Keystrokes

$ B ENT
STR 1

SHFT L D C A A A ENT
ANDST 3 2 0 0 0

SHFT D I V C A A G ENT
3 8 AND 2 0 0 6
GX SHFT V C A B A ENT
OUT AND 2 0 1 0

5–96 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions -Math

Divide Real (DIVR)


The Divide Real instruction divides a real number in the
accumulator by either a real constant or a real number
occupying two consecutive V-memory locations. The DIVR
result resides in the accumulator. Both numbers must A aaa
conform to the IEEE floating point format.

Operand Data Type DL06 Range


....................................A aaa
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map
Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P See memory map
Real Constant . . . . . . . . . . . . . . . . . . . . . . . . . . R -3.402823E+038 to + -3.402823E+038

Discrete Bit Flags Description


SP63 On when the result of the instruction causes the value in the accumulator to be zero.
SP70 On anytime the value in the accumulator is negative.
SP71 On anytime the V-memory specified by a pointer (P) is not valid.
SP72 On anytime the value in the accumulator is an invalid floating point number.
SP73 On when a signed addition or subtraction results in a incorrect sign bit.
SP74 On anytime a floating point math operation results in an underflow error.
SP75 On when a real number instruction is executed and a non-real number was encountered.

NOTE: Status flags are valid only until another instruction uses the same flag.

DirectSOFT32 Display
X1 4 1 7 0 0 0 0 0
LDR
R15.0

Load the real number 15.0


into the accumulator.
1 5 (decimal) 4 1 7 0 0 0 0 0 (Accumulator)
¸ 1 0 ¸ 4 1 2 0 0 0 0 0 (DIVR )
1 . 5 Acc. 3 F C 0 0 0 0 0
DIVR
R10.0 V1401 V1400
Divide the accumulator contents 3 F C 0 0 0 0 0 (Hex number)
by the real number 10.0.

Real Value

8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1
OUTD
Acc. 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
V1400

Copy the result in the accumulator


to V1400 and V1401. Sign Bit Exponent (8 bits) Mantissa (23 bits)
d d RLL

64 + 32 + 16 + 8 + 4 + 2 + 1 = 127 1.1 x 2 (exp 0) = 1.1 binary= 1.5 decimal


127 - 127 = 0
Implies 2 (exp 0)

NOTE: The current HPP does not support real number entry with automatic conversion to the 32-bit IEEE
format. You must use DirectSOFT32 for this feature.

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–97


Chapter 5: Standard RLL Instructions - Math

Increment (INC)
The Increment instruction increments a BCD value in a INC
specified V memory location by “1” each time the instruction A aaa
is executed.
Decrement (DEC)
The Decrement instruction decrements a BCD value in a DEC
specified V memory location by “1” each time the instruction is
A aaa
executed.

Operand Data Type DL06 Range


....................................A aaa
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map
Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P See memory map

Discrete Bit Flags Description


SP63 On when the result of the instruction causes the value in the accumulator to be zero.
SP75 On when a BCD instruction is executed and a NON–BCD number was encountered.

NOTE: Status flags are valid only until another instruction uses the same flag.

In the following increment example, when C5 is on the value in V1400 increases by one.
Direct SOFT32 V1400

C5 8 9 3 5
INC
V1400

Increment the value in


V1400 by “1”. V1400
8 9 3 6
Handheld Programmer Keystrokes

$ NEXT NEXT NEXT NEXT F ENT


STR 5

SHFT I N C B E A A ENT
8 TMR 2 1 4 0 0

In the following decrement example, when C5 is on the value in V1400 is decreased by one.
Direct SOFT32 V1400
C5 8 9 3 5
DEC
V1400

Decrement the value in


V1400 by “1”.
V1400
8 9 3 4
Handheld Programmer Keystrokes

$ NEXT NEXT NEXT NEXT F ENT


STR 5

SHFT D E C B E A A ENT
3 4 2 1 4 0 0

5–98 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions -Math

Add Binary (ADDB)


Add Binary is a 16 bit instruction that adds the
unsigned 2’s complement binary value in the
lower 16 bits of the accumulator with an unsigned ADDB
2’s complement binary value (Aaaa), which is A aaa
either a V memory location or a 16-bit constant.
The result can be up to 32 bits (unsigned 2’s
complement) and resides in the accumulator.

Operand Data Type DL06 Range


....................................A aaa
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map
Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P See memory map
Constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K 0-FFFF

Discrete Bit Flags Description


SP63 On when the result of the instruction causes the value in the accumulator to be zero.
SP66 On when the 16-bit addition instruction results in a carry.
SP67 On when the 32-bit addition instruction results in a carry.
SP70 On anytime the value in the accumulator is negative.
SP73 On when a signed addition or subtraction results in an incorrect sign bit.

NOTE: Status flags are valid only until another instruction uses the same flag.

In the following example, when X1 is on, the value in V1400 will be loaded into the
accumulator using the Load instruction. The binary value in the accumulator will be added to
the binary value in V1420 using the Add Binary instruction. The value in the accumulator is
copied to V1500 and V1501 using the Out instruction.
DirectS OF T 32 Dis play V1400
0 A 0 5
X1 LD
V1400

Load the value in V1400 into the T he unus ed accumulator


lower 16 bits of the accumulator bits are s et to zero
0 0 0 0 0 A 0 5 (Accumulator)
ADDB + (V1420)
1 2 C 4
V1420
Acc. 1 C C 9
T he binary value in the
accumulator is added to the
binary value in V1420

OU T D 1 C C 9
V1500
V1500
C opy the value in the lower
16 bits of the accumulator to
V1500 and V1501

Handheld Programmer Keys trokes

STR X(IN) 1 E NT

S HF T L D V 1 4 0 0 E NT

S HF T A D D B V 1 4 2 0 E NT

OU T S HF T D V 1 5 0 0 E NT

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–99


Chapter 5: Standard RLL Instructions -Math

Add Binary Double (ADDBD)


Add Binary Double is a 32 bit instruction that adds the
unsigned 2’s complement binary value in the accumulator ADDBD
with the value (Aaaa), which is either two consecutive V A aaa
memory locations or 32-bit unsigned 2’s complement
binary constant. The result resides in the accumulator.
Operand Data Type DL06 Range
....................................A aaa
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map
Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P See memory map
Constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K 0-FFFF FFFF

Discrete Bit Flags Description


SP63 On when the result of the instruction causes the value in the accumulator to be zero.
SP66 On when the 16-bit addition instruction results in a carry.
SP67 On when the 32-bit addition instruction results in a carry.
SP70 On anytime the value in the accumulator is negative.
SP73 On when a signed addition or subtraction results in an incorrect sign bit.

NOTE: Status flags are valid only until another instruction uses the same flag.

In the following example, when X1 is on, the value in V1400 and V1401 will be loaded into
the accumulator using the Load Double instruction. The binary value in the accumulator is
added with the binary value in V1420 and V1421 using the Add Binary Double instruction.
The value in the accumulator is copied to V1500 and V1501 using the Out Double
instruction.
DirectS OF T 32 Dis play V1401 V1400

X1 0 0 0 0 0 A 0 1
LDD
V1400

Load the value in V1400 and


V1401 into the accumulator
0 0 0 0 0 A 0 1 (Accumulator)

+ 1 0 0 0 C 0 1 0 (V1421 and V1420)


ADDBD
V1420 Acc. 1 0 0 0 C A 1 1

T he binary value in the


accumulator is added with the
value in V1420 and V1421

1 0 0 0 C A 1 1
OU T D
V1500 V1501 V1500

C opy the value in the


accumulator to V1500
and V1501

Handheld Programmer Keystrokes


$ B ENT
STR 1

SHFT L D D B E A A ENT
ANDST 3 3 1 4 0 0

SHFT A D D B D B E C A ENT
0 3 3 1 3 1 4 2 0
GX D B F A A ENT
SHFT
OUT 3 1 5 0 0

5–100 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions -Math

Subtract Binary (SUBB)


Subtract Binary is a 16 bit instruction that subtracts the unsigned S UBB
2–s complement binary value (Aaaa), which is either a V memory A aaa
location or a 16-bit 2’s complement binary value, from the binary
value in the accumulator. The result resides in the accumulator.
Operand Data Type DL06 Range
....................................A aaa
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map
Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P See memory map
Constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K 0-FFFF

Discrete Bit Flags Description


SP63 On when the result of the instruction causes the value in the accumulator to be zero.
SP64 On when the 16-bit subtraction instruction results in a borrow.
SP65 On when the 32-bit subtraction instruction results in a borrow.
SP70 On anytime the value in the accumulator is negative.

NOTE: Status flags are valid only until another instruction uses the same flag.

In the following example, when X1 is on, the value in V1400 will be loaded into the
accumulator using the Load instruction. The binary value in V1420 is subtracted from the
binary value in the accumulator using the Subtract Binary instruction. The value in the
accumulator is copied to V1500 using the Out instruction.
DirectS OF T 32 Dis play V1400
1 0 2 4
X1 LD
V1400

Load the value in V1400 into the T he unus ed accumulator


lower 16 bits of the accumulator
bits are s et to zero
0 0 0 0 1 0 2 4 (Accumulator)
S U BB y 0 A 0 B (V1420)
V1420
Acc. 0 6 1 9
T he binary value in V1420 is
s ubtracted from the value in
the accumulator

OU T 0 6 1 9
V1500
V1500
C opy the value in the lower 16
bits of the accumulator to V1500

Handheld Programmer Keys trokes

STR X(IN) 1 E NT

S HF T L D V 1 4 0 0 E NT

S HF T S S HF T U B B

V 1 4 2 0 E NT

OU T S HF T D V 1 5 0 0 E NT

DL06 Micro PLC User Manual, 1st Ed., Rev. A


5–101
Chapter 5: Standard RLL Instructions - Math

Subtract Binary Double (SUBBD)


Subtract Binary Double is a 32 bit instruction that subtracts
S UBBD
the unsigned 2’s complement binary value (Aaaa), which is
either two consecutive V memory locations or a 32-bit A aaa
unsigned 2’s complement binary constant, from the binary
value in the accumulator The result resides in the accumulator.
Operand Data Type DL06 Range
....................................A aaa
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map
Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P See memory map
Constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K 0-FFFF FFFF

Discrete Bit Flags Description


SP63 On when the result of the instruction causes the value in the accumulator to be zero.
SP64 On when the 16-bit subtraction instruction results in a borrow.
SP65 On when the 32-bit subtraction instruction results in a borrow.
SP70 On anytime the value in the accumulator is negative.

NOTE: Status flags are valid only until another instruction uses the same flag.

In the following example, when X1 is on, the value in V1400 and V1401 will be loaded into
the accumulator using the Load Double instruction. The binary value in V1420 and V1421 is
subtracted from the binary value in the accumulator using the Subtract Binary Double
instruction. The value in the accumulator is copied to V1500 and V1501 using the Out
Double instruction.
DirectS OF T 32 Dis play V1401 V1400
0 0 0 6 0 0 F F
X1
LDD
V1400

Load the value in V1400 and


V1401 into the accumulator
0 0 0 6 0 0 F F (Accumulator)

y 0 0 0 0 1 A 0 1 (V1421 and V1420)


S U BBD
V1420 Acc. 0 0 0 5 E 6 F E

T he binary value in V1420 and


V1421 is s ubtracted from the
binary value in the accumulator

0 0 0 5 E 6 F E
OU T D
V1501 V1500
V1500

C opy the value in the


accumulator to V1500
and V1501

Handheld Programmer Keystrokes


$ B ENT
STR 1

SHFT L D D B E A A ENT
ANDST 3 3 1 4 0 0

SHFT S U B B D B E C A ENT
SHFT
RST ISG 1 1 3 1 4 2 0
GX D B F A A ENT
SHFT
OUT 3 1 5 0 0

5–102 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions -Math

Multiply Binary (MULB)


Multiply Binary is a 16 bit instruction that multiplies the
unsigned 2’s complement binary value (Aaaa), which is either MULB
a V memory location or a 16-bit unsigned 2’s complement A aaa
binary constant, by the16-bit binary value in the
accumulator The result can be up to 32 bits and resides in
the accumulator.
Operand Data Type DL06 Range
....................................A aaa
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map
Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P See memory map
Constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K 0-FFFF

Discrete Bit Flags Description


SP63 On when the result of the instruction causes the value in the accumulator to be zero.
SP70 On anytime the value in the accumulator is negative.

NOTE: Status flags are valid only until another instruction uses the same flag.

In the following example, when X1 is on, the value in V1400 will be loaded into the
accumulator using the Load instruction. The binary value in V1420 is multiplied by the
binary value in the accumulator using the Multiply Binary instruction. The value in the
accumulator is copied to V1500 using the Out instruction.

DirectS OF T 32 Dis play V1400


X1 0 A 0 1
LD
V1400

Load the value in V1400 into the


lower 16 bits of the accumulator T he unus ed accumulator
bits are s et to zero
0 0 0 0 0 A 0 1 (Accumulator)
MU LB ¢ (V1420)
0 0 2 E
V1420
Acc. 0 0 0 1 C C 2 E
T he binary value in V1420 is
multiplied by the binary
value in the accumulator

OU T D 0 0 0 1 C C 2 E
V1500
V1501 V1500
C opy the value in the lower
16 bits of the accumulator to
V1500 and V1501

Handheld Programmer Keys trokes

STR X 1 E NT

S HF T L D V 1 4 0 0 E NT

S HF T M U L B V 1 4 2 0 E NT

OU T S HF T D V 1 5 0 0 E NT

DL06 Micro PLC User Manual, 1st Ed., Rev. A


5–103
Chapter 5: Standard RLL Instructions -Math

Divide Binary (DIVB)


Divide Binary is a 16 bit instruction that divides the unsigned 2’s
complement binary value in the accumulator by a binary value (Aaaa), DIVB
which is either a V memory location or a 16-bit unsigned 2’s A aaa
complement binary constant. The first part of the quotient resides in
the accumulator and the remainder resides in the first stack location.
Operand Data Type DL06 Range
....................................A aaa
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map
Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P See memory map
Constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K 0-FFFF

Discrete Bit Flags Description


SP53 On when the value of the operand is larger than the accumulator can work with.
SP63 On when the result of the instruction causes the value in the accumulator to be zero.
SP70 On anytime the value in the accumulator is negative.

NOTE: Status flags are valid only until another instruction uses the same flag.

In the following example, when X1 is on, the value in V1400 will be loaded into the
accumulator using the Load instruction. The binary value in the accumulator is divided by
the binary value in V1420 using the Divide Binary instruction. The value in the accumulator
is copied to V1500 using the Out instruction.
DirectS OF T32 Dis play V1400
F A 0 1
X1 LD
V1400

Load the value in V1400 into the The unus ed accumulator


lower 16 bits of the accumulator bits are s et to zero
0 0 0 0 F A 0 1 (Accumulator)
DIVB - 0 (V1420)
0 5 0
V1420
Acc. 0 3 2 0 0 0 0 0 0 0 0 0
The binary value in the
accumulator is divided by F irs t s tack location contains
the binary value in V1420 the remainder

OUT 0 3 2 0
V1500
V1500
Copy the value in the lower 16
bits of the accumulator to V1500

Handheld Programmer Keys trokes


S TR X 1 E NT

S HF T L D V 1 4 0 0 E NT

S HF T D I V B V 1 4 2 0 E NT

OUT S HF T D V 1 5 0 0 E NT

5–104 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions -Math

Increment Binary (INCB)


The Increment Binary instruction increments a binary INCB
value in a specified V memory location by “1” each A aaa
time the instruction is executed.

Operand Data Type DL06 Range


....................................A aaa
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map
Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P See memory map

Discrete Bit Flags Description


SP63 On when the result of the instruction causes the value in the accumulator to be zero.

In the following example when C5 is on, the binary value in V2000 is increased by 1.
Direct SOFT32 V2000 Handheld Programmer Keystrokes
C5 4 A 3 C
INCB $ SHFT C F ENT
STR 2 5
V2000
SHFT I N C B C A A A ENT
Increment the binary value 8 TMR 2 1 2 0 0 0
in the accumulator by“1” V2000
4 A 3 D

Decrement Binary (DECB)


The Decrement Binary instruction decrements a DECB
binary value in a specified V memory location by “1” A aaa
each time the instruction is executed.

Operand Data Type DL06 Range


....................................A aaa
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map
Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P See memory map

Discrete Bit Flags Description


SP63 On when the result of the instruction causes the value in the accumulator to be zero.

NOTE: The status flags are only valid until another instruction that uses the same flags is executed.

In the following example when C5 is on, the value in V2000 is decreased by 1.


Direct SOFT32 V2000
Handheld Programmer Keystrokes
4 A 3 C
C5 DECB $ C F
SHFT ENT
STR 2 5
V2000
SHFT D E C B C A A A ENT
Decrement the binary value 3 4 2 1 2 0 0 0
in the accumulator by“1” V2000
4 A 3 B

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–105


Chapter 5: Standard RLL Instructions -Math

Add Formatted (ADDF)


Add Formatted is a 32 bit instruction that adds the BCD
ADDF A aaa
value in the accumulator with the BCD value (Aaaa) which is
K bbb
a range of discrete bits. The specified range (Kbbb) can be 1
to 32 consecutive bits. The result resides in the accumulator.
Operand Data Type DL06 Range
..................................... A aaa bbb
Inputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X 0–777 ––
Outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Y 0–777 ––
Control Relays . . . . . . . . . . . . . . . . . . . . . . . . . . . C 0–1777 ––
Stage Bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . S 0–1777 ––
Timer Bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . T 0–377 ––
Counter Bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CT 0–177 ––
Special Relays . . . . . . . . . . . . . . . . . . . . . . . . . . . SP 0-137 320-717 ––
Global I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GX 0-3777 ––
Constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K –– 1–32

Discrete Bit Flags Description


SP63 On when the result of the instruction causes the value in the accumulator to be zero.
SP66 On when the 16 bit addition instruction results in a carry.
SP67 On when the 32 bit addition instruction results in a carry.
SP70 On anytime the value in the accumulator is negative.
SP75 On when a BCD instruction is executed and a NON-BCD number was encountered.

NOTE: Status flags are valid only until another instruction uses the same flag.

In the following example, when X6 is on, the value formed by discrete locations X0–X3 is
loaded into the accumulator using the Load Formatted instruction. The value formed by
discrete locations C0–C3 is added to the value in the accumulator using the Add Formatted
instruction. The value in the lower four bits of the accumulator is copied to Y10–Y13 using
the Out Formatted instruction.
Direct SOFT32 Display
X3 X2 X1 Z0
X6 LDF X0 Load the value represented ON OFF OFF OFF
by discrete locations X0–X3
K4 into the accumulator
The unused accumulator
bits are set to zero
Add the value in the 0 0 0 0 0 0 0 8 (Accumulator) C3 C2 C1 C0
ADDF C0
accumulator with the value
K4 represented by discrete + 3 (C0-C3) OFF OFF ON ON
location C0–C3
Acc. 0 0 0 1 0 0 0 1

OUTF Y10 Copy the lower 4 bits of the


accumulator to discrete
K5 locations Y10–Y14

Handheld Programmer Keystrokes


$ G Y13 Y12 Y11 Y10
ENT
STR 6 OFF OFF OFF ON

SHFT L D F A E ENT
ANDST 3 5 0 4

SHFT A D D F NEXT NEXT NEXT NEXT A E ENT


0 3 3 5 0 4
GX SHFT F B A E ENT
OUT 5 1 0 4

5–106 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions -Math

Subtract Formatted (SUBF)


Subtract Formatted is a 32 bit instruction that subtracts the S UBF A aaa
BCD value (Aaaa), which is a range of discrete bits, from the K bbb
BCD value in the accumulator. The specified range (Kbbb)
can be 1 to 32 consecutive bits. The result resides in the
accumulator.
Operand Data Type DL06 Range
..................................... A aaa bbb
Inputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X 0–777 ––
Outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Y 0–777 ––
Control Relays . . . . . . . . . . . . . . . . . . . . . . . . . . . C 0–1777 ––
Stage Bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . S 0–1777 ––
Timer Bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . T 0–377 ––
Counter Bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CT 0–177 ––
Special Relays . . . . . . . . . . . . . . . . . . . . . . . . . . . SP 0-137 320-717 ––
Global I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GX 0-3777 ––
Constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K –– 1–32
Discrete Bit Flags Description
SP63 On when the result of the instruction causes the value in the accumulator to be zero.
SP64 On when the 16 bit subtraction instruction results in a borrow
SP65 On when the 32 bit subtraction instruction results in a borrow
SP70 On any time the value in the accumulator is negative.
SP75 On when a BCD instruction is executed and a NON-BCD number was encountered.

NOTE: Status flags are valid only until another instruction uses the same flag.

In the following example, when X6 is on, the value formed by discrete locations X0–X3 is
loaded into the accumulator using the Load Formatted instruction. The value formed by
discrete location C0–C3 is subtracted from the value in the accumulator using the Subtract
Formatted instruction. The value in the lower four bits of the accumulator is copied to
DirectSOFT32 Display X3 X2 X1 X0
X6 Load the value represented ON OFF OFF ON
LDF X0
by discrete locations X0-- X3
K4 into the accumulator
The unused accumulator
bits are set to zero

Subtract the value 0 0 0 0 0 0 0 9 (Accumulator) C3 C2 C1 C0


SUBF C0
represented by C0-- C3 from
K4 y 8 (C0-- C3) ON OFF OFF OFF
the value in the accumulator
ACC. 0 0 0 0 0 0 0 1

OUTF Y10 Copy the lower 4 bits of the


accumulator to discrete
K4 locations Y10-- Y13

Handheld Programmer Keystrokes


Y13 Y12 Y11 Y10
$ G ENT OFF OFF OFF ON
STR 6

SHFT L D F A E ENT
ANDST 3 5 0 4

SHFT S U B F NEXT NEXT NEXT NEXT A E ENT


SHFT
RST ISG 1 5 0 4
GX SHFT F B A E ENT
OUT 5 1 0 4

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–107


Chapter 5: Standard RLL Instructions -Math

Multiply Formatted (MULF)


Multiply Formatted is a 16 bit instruction that multiplies the MULF A aaa
BCD value in the accumulator by the BCD value (Aaaa) which is K bbb
a range of discrete bits. The specified range (Kbbb) can be 1 to
16 consecutive bits. The result resides in the accumulator.
Operand Data Type DL06 Range
..................................... A aaa bbb
Inputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X 0–777 ––
Outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Y 0–777 ––
Control Relays . . . . . . . . . . . . . . . . . . . . . . . . . . . C 0–1777 ––
Stage Bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . S 0–1777 ––
Timer Bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . T 0–377 ––
Counter Bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CT 0–177 ––
Special Relays . . . . . . . . . . . . . . . . . . . . . . . . . . . SP 0-137 320-717 ––
Global I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GX 0-3777 ––
Constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K –– 1–16

Discrete Bit Flags Description


SP63 On when the result of the instruction causes the value in the accumulator to be zero.
SP70 On any time the value in the accumulator is negative.
SP75 On when a BCD instruction is executed and a NON-BCD number was encountered.

NOTE: Status flags are valid only until another instruction uses the same flag.

In the following example, when X6 is on, the value formed by discrete locations X0–X3 is
loaded into the accumulator using the Load Formatted instruction. The value formed by
discrete locations C0–C3 is multiplied by the value in the accumulator using the Multiply
Formatted instruction. The value in the lower four bits of the accumulator is copied to
Y10–Y13 using the Out Formatted instruction.

DirectSOFT32 Display
X3 X2 X1 X0
X6 Load the value represented OFF OFF ON ON
LDF X0
by discrete locations X0-- X3
K4 into the accumulator
The unused accumulator
bits are set to zero
Multiply the value in the 0 0 0 0 0 0 0 3 (Accumulator) C3 C2 C1 C0
MULF C0
accumulator with the value
K4 represented by discrete ¢ 2 (C0-- C3) OFF OFF ON OFF
locations C0-- C3
Acc. 0 0 0 0 0 0 0 6
Copy the lower 4 bits of the
OUTF Y10 accumulator to discrete
K4 locations Y10-- Y13

Handheld Programmer Keystrokes


$ G Y13 Y12 Y11 Y10
ENT
STR 6 OFF ON ON OFF

SHFT L D F A E ENT
ANDST 3 5 0 4

SHFT M U L F NEXT NEXT NEXT NEXT A E ENT


ORST ISG ANDST 5 0 4
GX SHFT F B A E ENT
OUT 5 1 0 4

5–108 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions -Math

Divide Formatted (DIVF)


Divide Formatted is a 16 bit instruction that divides the BCD
value in the accumulator by the BCD value (Aaaa), a range of DIVF A aaa
discrete bits. The specified range (Kbbb) can be 1 to 16 K bbb
consecutive bits. The first part of the quotient resides in the
accumulator and the remainder resides in the first stack location.

Operand Data Type DL06 Range


..................................... A aaa bbb
Inputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X 0–777 ––
Outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Y 0–777 ––
Control Relays . . . . . . . . . . . . . . . . . . . . . . . . . . . C 0–1777 ––
Stage Bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . S 0–1777 ––
Timer Bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . T 0–377 ––
Counter Bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CT 0–177 ––
Special Relays . . . . . . . . . . . . . . . . . . . . . . . . . . . SP 0-137 320-717 ––
Global I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GX 0-3777 ––
Constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K –– 1–16

Discrete Bit Flags Description


SP53 On when the value of the operand is larger than the accumulator can work with.
SP63 On when the result of the instruction causes the value in the accumulator to be zero.
SP70 On any time the value in the accumulator is negative.
SP75 On when a BCD instruction is executed and a NON-BCD number was encountered.

NOTE: Status flags are valid only until another instruction uses the same flag.

In the following example, when X6 is on, the value formed by discrete locations X0–X3 is
loaded into the accumulator using the Load Formatted instruction. The value in the
accumulator is divided by the value formed by discrete location C0–C3 using the Divide
Formatted instruction. The value in the lower four bits of the accumulator is copied to
Y10–Y13 using the Out Formatted instruction.
DirectSOFT32 Display X3 X2 X1 X0
X6 Load the value represented ON OFF OFF OFF
LDF X0 by discrete locations X0-- X3
K4 into the accumulator
The unused accumulator
bits are set to zero
Divide the value in the 0 0 0 0 0 0 0 8 (Accumulator) C3 C2 C1 C0
DIVF C0
accumulator with the value
K4 - 2 (C0-- C3) OFF OFF ON OFF
represented by discrete
location C0-- C3
Acc. 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0

Copy the lower 4 bits of the First stack location contains


OUTF Y10 the remainder
accumulator to discrete
K4 locations Y10-- Y13

Handheld Programmer Keystrokes Y13 Y12 Y11 Y10

$ G OFF ON OFF OFF


ENT
STR 6

SHFT L D F A E ENT
ANDST 3 5 0 4

SHFT D I V F NEXT NEXT NEXT NEXT A E ENT


3 8 AND 5 0 4
GX SHFT F B A E ENT
OUT 5 1 0 4

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–109


Chapter 5: Standard RLL Instructions -Math

Add Top of Stack (ADDS)


Add Top of Stack is a 32 bit instruction that adds the BCD
value in the accumulator with the BCD value in the first level ADDS
of the accumulator stack. The result resides in the
accumulator. The value in the first level of the accumulator
stack is removed and all stack values are moved up one level.
Discrete Bit Flags Description
SP63 On when the result of the instruction causes the value in the accumulator to be zero.
SP66 On when the 16 bit addition instruction results in a carry.
SP67 On when the 32 bit addition instruction results in a carry.
SP70 On anytime the value in the accumulator is negative.
SP75 On when a BCD instruction is executed and a NON-BCD number was encountered.

NOTE: Status flags are valid only until another instruction uses the same flag.

In the following example, when X1 is on, the value in V1400 and V1401 will be loaded into
the accumulator using the Load Double instruction. The value in V1420 and V1421 is
loaded into the accumulator using the Load Double instruction, pushing the value previously
loaded in the accumulator onto the accumulator stack. The value in the first level of the
accumulator stack is added with the value in the accumulator using the Add Stack
instruction. The value in the accumulator is copied to V1500 and V1501 using the Out
Double instruction.
DirectS OF T 32 Dis play V1401 V1400

X1 Load the value in V1400 and 0 0 3 9 5 0 2 6 Accumulator s tack


LDD after 1s t LDD
V1401 into the accumulator
V1400
Level 1 X X X X X X X X
Acc. 0 0 3 9 5 0 2 6 Level 2 X X X X X X X X
Level 3 X X X X X X X X
V1421 V1420 Level 4 X X X X X X X X
0 0 1 7 2 0 5 6 Level 5 X X X X X X X X
LDD Load the value in V1420 and
V1421 into the accumulator Level 6 X X X X X X X X
V1420
Level 7 X X X X X X X X
Acc. 0 0 1 7 2 0 5 6
Level 8 X X X X X X X X

ADDS Add the value in the


accumulator with the value
in the firs t level of the Acc. 0 0 5 6 7 0 8 2
accumulator s tack
Accumulator s tack
after 2nd LDD

C opy the value in the Level 1 0 0 3 9 5 0 2 6


OU T D
accumulator to V1500 Level 2 X X X X X X X X
V1500 and V1501
0 0 5 6 7 0 8 2 Level 3 X X X X X X X X

Handheld Programmer Keystrokes Level 4 X X X X X X X X


V1501 V1500
Level 5 X X X X X X X X
$ B ENT
STR 1 Level 6 X X X X X X X X

L D D B E A A Level 7 X X X X X X X X
SHFT ENT
ANDST 3 3 1 4 0 0 X X X X X X X X
Level 8

SHFT L D D B E C A ENT
ANDST 3 3 1 4 2 0

SHFT A D D S ENT
0 3 3 RST
GX SHFT D B F A A ENT
OUT 3 1 5 0 0

5–110 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions -Math

Subtract Top of Stack (SUBS)


Subtract Top of Stack is a 32 bit instruction that subtracts the
BCD value in the first level of the accumulator stack from S UBS
the BCD value in the accumulator. The result resides in the
accumulator. The value in the first level of the accumulator
stack is removed and all stack values are moved up one level.
Discrete Bit Flags Description
SP63 On when the result of the instruction causes the value in the accumulator to be zero.
SP64 On when the 16 bit subtraction instruction results in a borrow
SP65 On when the 32 bit subtraction instruction results in a borrow
SP70 On any time the value in the accumulator is negative.
SP75 On when a BCD instruction is executed and a NON-BCD number was encountered.

NOTE: Status flags are valid only until another instruction uses the same flag.

In the following example, when X1 is on, the value in V1400 and V1401 will be loaded into
the accumulator using the Load Double instruction. The value in V1420 and V1421 is
loaded into the accumulator using the Load Double instruction, pushing the value previously
loaded into the accumulator onto the accumulator stack. The BCD value in the first level of
the accumulator stack is subtracted from the BCD value in the accumulator using the
Subtract Stack instruction. The value in the accumulator is copied to V1500 and V1501
using the Out Double instruction.
DirectSOFT32 Display V1401 V1400
X1 Load the value in V1400 and 0 0 1 7 2 0 5 6 Accumulator stack
LDD after 1st LDD
V1401 into the accumulator
V1400
Level 1 X X X X X X X X
Acc. 0 0 1 7 2 0 5 6 Level 2 X X X X X X X X
Level 3 X X X X X X X X

LDD Load the value in V1420 and V1421 V1420 Level 4 X X X X X X X X


V1421 into the accumulator
V1420 0 0 3 9 5 0 2 6 Level 5 X X X X X X X X
Level 6 X X X X X X X X
Level 7 X X X X X X X X
Acc. 0 0 3 9 5 0 2 6
Level 8 X X X X X X X X
SUBS Subtract the value in the first
level of the accumulator
stack from the value in the
accumulator
Acc. 0 0 2 2 2 9 7 0
Accumulator stack
after 2nd LDD
OUTD Copy the value in the
Level 1 0 0 1 7 2 0 5 6
accumulator to V1500
V1500 and V1501 Level 2 X X X X X X X X
Sta

0 0 2 2 2 9 7 0 Level 3 X X X X X X X X
V1501 V1500 Level 4 X X X X X X X X
Handheld Programmer Keystrokes Level 5 X X X X X X X X

$ B Level 6 X X X X X X X X
ENT
STR 1 Level 7 X X X X X X X X
SHFT L D D B E A A ENT Level 8 X X X X X X X X
ANDST 3 3 1 4 0 0

SHFT L D D B E C A ENT
ANDST 3 3 1 4 2 0

SHFT S SHFT U B S ENT


RST ISG 1 RST
GX SHFT D B F A A ENT
OUT 3 1 5 0 0

DL06 Micro PLC User Manual, 1stDL06 Micro


Ed., Rev. A PLC User Manual, 1st Ed., Rev. A 5–111
Chapter 5: Standard RLL Instructions -Math

Multiply Top of Stack (MULS)


Multiply Top of Stack is a 16 bit instruction that multiplies a 4-
digit BCD value in the first level of the accumulator stack by a MULS
4-digit BCD value in the accumulator. The result resides in the
accumulator. The value in the first level of the accumulator stack
is is removed and all stack values are moved up one level.

Discrete Bit Flags Description


SP63 On when the result of the instruction causes the value in the accumulator to be zero.
SP70 On any time the value in the accumulator is negative.
SP75 On when a BCD instruction is executed and a NON-BCD number was encountered.

NOTE: Status flags are valid only until another instruction uses the same flag.

In the following example, when X1 is on, the value in V1400 will be loaded into the
accumulator using the Load instruction. The value in V1420 is loaded into the accumulator
using the Load instruction, pushing the value previously loaded in the accumulator onto the
accumulator stack. The BCD value in the first level of the accumulator stack is multiplied by
the BCD value in the accumulator using the Multiply Stack instruction. The value in the
accumulator is copied to V1500 and V1501 using the Out Double instruction.

DirectSOFT32 Display V1400


X1 Load the value in V1400 into 5 0 0 0 Accumulator stack
LD The unused accumulator after 1st LDD
the accumulator
V1400 bits are set to zero
Level 1 X X X X X X X X
Acc. 0 0 0 0 5 0 0 0 Level 2 X X X X X X X X
Level 3 X X X X X X X X
V1420 Level 4 X X X X X X X X
Load the value in V1420 into 0 2 0 0 Level 5 X X X X X X X X
LD
the accumulator The unused accumulator
V1420 Level 6 X X X X X X X X
bits are set to zero
Level 7 X X X X X X X X
Acc. 0 0 0 0 0 2 0 0
Level 8 X X X X X X X X

Multiply the value in the


MULS
accumulator with the value
in the first level of the
accumulator stack Acc. 0 1 0 0 0 0 0 0
Accumulator stack
after 2nd LDD

OUTD Copy the value in the Level 1 0 0 0 0 5 0 0 0


accumulator to V1500
V1500 and V1501 Level 2 X X X X X X X X
0 1 0 0 0 0 0 0
Level 3 X X X X X X X X d d RLL
V1501 V1500 Level 4 X X X X X X X X
Level 5 X X X X X X X X
Handheld Programmer Keystrokes
Level 6 X X X X X X X X
$ B ENT
STR 1 Level 7 X X X X X X X X
Level 8 X X X X X X X X
SHFT L D B E A A ENT
S

ANDST 3 1 4 0 0

SHFT L D B E C A
ENT
ANDST 3 1 4 2 0

SHFT M U L S ENT
ORST ISG ANDST RST
GX SHFT D B F A A ENT
OUT 3 1 5 0 0

5–112 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions -Math

Divide by Top of Stack (DIVS)


Divide Top of Stack is a 32 bit instruction that divides the
8-digit BCD value in the accumulator by a 4-digit BCD DIVS
value in the first level of the accumulator stack. The result
resides in the accumulator and the remainder resides in the
first level of the accumulator stack.
Discrete Bit Flags Description
SP53 On when the value of the operand is larger than the accumulator can work with.
SP63 On when the result of the instruction causes the value in the accumulator to be zero.
SP70 On any time the value in the accumulator is negative.
SP75 On when a BCD instruction is executed and a NON-BCD number was encountered.

NOTE: Status flags are valid only until another instruction uses the same flag.

In the following example, when X1 is on, the Load instruction loads the value in V1400 into
the accumulator. The value in V1420 is loaded into the accumulator using the Load Double
instruction, pushing the value previously loaded in the accumulator onto the accumulator
stack. The BCD value in the accumulator is divided by the BCD value in the first level of the
accumulator stack using the Divide Stack instruction. The Out Double instruction copies the
value in the accumulator to V1500 and V1501.

DirectSOFT32 Display V1400 Accumulator stack


after 1st LDD
X1 Load the value in V1400 into 0 0 2 0
LD The unused accumulator X X X X X X X X
the accumulator Level 1
V1400 bits are set to zero
Level 2 X X X X X X X X
Acc. 0 0 0 0 0 0 2 0 Level 3 X X X X X X X X
Level 4 X X X X X X X X
V1421 V1420 Level 5 X X X X X X X X

Load the value in V1420 and 0 0 5 0 0 0 0 0 Level 6 X X X X X X X X


LDD
V1421 into the accumulator Level 7 X X X X X X X X
V1420
Level 8 X X X X X X X X
Acc. 0 0 5 0 0 0 0 0

Accumulator stack
after 2nd LDD
Divide the value in the
DIVS Level 1 0 0 0 0 0 0 2 0
accumulator by the value in 0 0 0 2 5 0 0 0
the first level of the Acc.
Level 2 X X X X X X X X
accumulator stack
Level 3 X X X X X X X X
Level 4 X X X X X X X X
Copy the value in the
OUTD Level 5 X X X X X X X X
accumulator to V1500
V1500 and V1501 0 0 0 2 5 0 0 0
Level 6 X X X X X X X X
V1501 V1500 Level 7 X X X X X X X X
Level 8 X X X X X X X X

Handheld Programmer Keystrokes


The remainder resides in the
$ B first stack location
ENT
STR 1
Level 1 0 0 0 0 0 0 0 0
SHFT L D B E A A ENT X X X X X X X X
Level 2
ANDST 3 1 4 0 0
Level 3 X X X X X X X X
SHFT L D D B E C A ENT
ANDST 3 3 1 4 2 0 Level 4 X X X X X X X X

D I V S Level 5 X X X X X X X X
SHFT ENT
3 8 AND RST Level 6 X X X X X X X X
GX SHFT D B F A A ENT Level 7 X X X X X X X X
OUT 3 1 5 0 0
Level 8 X X X X X X X X

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–113


Chapter 5: Standard RLL Instructions -Math

Add Binary Top of Stack (ADDBS)


Add Binary Top of Stack instruction is a 32 bit instruction that
adds the binary value in the accumulator with the binary value ADDBS
in the first level of the accumulator stack. The result resides in
the accumulator. The value in the first level of the accumulator
stack is removed and all stack values are moved up one level.
Discrete Bit Flags Description
SP63 On when the result of the instruction causes the value in the accumulator to be zero.
SP66 On when the 16 bit addition instruction results in a carry.
SP67 On when the 32 bit addition instruction results in a carry.
SP70 On anytime the value in the accumulator is negative.
SP73 On when a signed addition or subtraction results in an incorrect sign bit.

NOTE: Status flags are valid only until another instruction uses the same flag.

In the following example, when X1 is on, the value in V1400 and V1401 will be loaded into
the accumulator using the Load Double instruction. The value in V1420 and V1421 is
loaded into the accumulator using the Load Double instruction, pushing the value previously
loaded in the accumulator onto the accumulator stack. The binary value in the first level of
the accumulator stack is added with the binary value in the accumulator using the Add Stack
instruction. The value in the accumulator is copied to V1500 and V1501 using the Out
Double instruction.

DirectS OF T 32 Dis play V1401 V1400

X1 Load the value in V1400 and 0 0 3 A 5 0 C 6 Accumulator s tack


LDD after 1s t LDD
V1401 into the accumulator
V1400
Level 1 X X X X X X X X
Acc. 0 0 3 A 5 0 C 6 Level 2 X X X X X X X X
Level 3 X X X X X X X X
V1421 V1420 Level 4 X X X X X X X X
0 0 1 7 B 0 5 F Level 5 X X X X X X X X
Load the value in V1420 and
LDD
V1421 into the accumulator Level 6 X X X X X X X X
V1420
Level 7 X X X X X X X X
Acc. 0 0 1 7 B 0 5 F
Level 8 X X X X X X X X

ADDBS Add the binary value in the


accumulator with the binary 0 0 5 2 0 1 2 5
value in the firs t level of the Acc.
accumulator s tack Accumulator s tack
after 2nd LDD

Level 1 0 0 3 A 5 0 C 6
OU T D C opy the value in the
accumulator to V1500 Level 2 X X X X X X X X
V1500 and V1501 0 0 5 2 0 1 2 5
Level 3 X X X X X X X X
S tandard R LL

Level 4 X X X X X X X X
Handheld Programmer Keystrokes
Level 5 X X X X X X X X
$ B Level 6 X X X X X X X X
ENT
STR 1
Level 7 X X X X X X X X
SHFT L D D B E A A ENT Level 8 X X X X X X X X
ANDST 3 3 1 4 0 0

SHFT L D D B E C A ENT
ANDST 3 3 1 4 2 0

SHFT A D D B S ENT
0 3 3 1 RST
GX SHFT D B F A A ENT
OUT 3 1 5 0 0

5–114 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions -Math

Subtract Binary Top of Stack (SUBBS)


Subtract Binary Top of Stack is a 32 bit instruction that
subtracts the binary value in the first level of the accumulator S UBBS
stack from the binary value in the accumulator. The result
resides in the accumulator. The value in the first level of the
accumulator stack is removed and all stack locations are
moved up one level.

Discrete Bit Flags Description


SP63 On when the result of the instruction causes the value in the accumulator to be zero.
SP64 On when the 16 bit subtraction instruction results in a borrow
SP65 On when the 32 bit subtraction instruction results in a borrow
SP70 On any time the value in the accumulator is negative.

NOTE: Status flags are valid only until another instruction uses the same flag.

In the following example, when X1 is on, the value in V1400 and V1401 will be loaded into
the accumulator using the Load Double instruction. The value in V1420 and V1421 is
loaded into the accumulator using the Load Double instruction, pushing the value previously
loaded in the accumulator onto the accumulator stack. The binary value in the first level of
the accumulator stack is subtracted from the binary value in the accumulator using the
Subtract Stack instruction. The value in the accumulator is copied to V1500 and V1501
using the Out Double instruction.

DirectSOFT32 Display V1401 V1400

X1 0 0 1 A 2 0 5 B Accumulator stack
LDD Load the value in V1400 and
V1401 into the accumulator after 1st LDD
V1400
Level 1 X X X X X X X X
Acc. 0 0 1 A 2 0 5 B Level 2 X X X X X X X X
Level 3 X X X X X X X X
V1421 V1420 Level 4 X X X X X X X X
Load the value in V1420 and 0 0 3 A 5 0 C 6 Level 5 X X X X X X X X
LDD
V1421 into the accumulator
V1420 Level 6 X X X X X X X X
Level 7 X X X X X X X X
Acc. 0 0 3 A 5 0 C 6
Level 8 X X X X X X X X

SUBBS Subtract the binary value in


the first level of the
accumulator stack from the 0 0 2 0 3 0 6 B
Acc.
binary value in the
accumulator Accumulator stack
after 2nd LDD

Copy the value in the Level 1 0 0 1 A 2 0 5 B


OUTD
accumulator to V1500 Level 2 X X X X X X X X
V1500 and V1501
0 0 2 0 3 0 6 B Level 3 X X X X X X X X
V1501 V1500 X X X X X X X X
Level 4
Handheld Programmer Keystrokes
Level 5 X X X X X X X X
$ B ENT Level 6 X X X X X X X X
STR 1
Level 7 X X X X X X X X
SHFT L D D B E A A ENT
ANDST 3 3 1 4 0 0 Level 8 X X X X X X X X

SHFT L D D B E C A ENT
ANDST 3 3 1 4 2 0

SHFT S U B B S ENT
SHFT
RST ISG 1 1 RST
GX SHFT D B F A A ENT
OUT 3 1 5 0 0

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–115


Chapter 5: Standard RLL Instructions -Math

Multiply Binary Top of Stack (MULBS)


Multiply Binary Top of Stack is a 16 bit instruction that
multiplies the 16 bit binary value in the first level of the
accumulator stack by the 16 bit binary value in the MULBS
accumulator. The result resides in the accumulator and can
be 32 bits (8 digits max.). The value in the first level of the
accumulator stack is removed and all stack locations are
moved up one level.

Discrete Bit Flags Description


SP63 On when the result of the instruction causes the value in the accumulator to be zero.
SP70 On any time the value in the accumulator is negative.

NOTE: Status flags are valid only until another instruction uses the same flag.

In the following example, when X1 is on, the Load instruction moves the value in V1400 into
the accumulator. The value in V1420 is loaded into the accumulator using the Load
instruction, pushing the value previously loaded in the accumulator onto the stack. The
binary value in the accumulator stack’s first level is multiplied by the binary value in the
accumulator using the Multiply Binary Stack instruction. The Out Double instruction copies
the value in the accumulator to V1500 and V1501.
DirectSOFT32 Display V1400 Accumulator stack
C 3 5 0 after 1st LDD
X1 Load the value in V1400 into
LD The unused accumulator
the accumulator Level 1 X X X X X X X X
V1400 bits are set to zero
Level 2 X X X X X X X X
Acc. 0 0 0 0 C 3 5 0
Level 3 X X X X X X X X
Level 4 X X X X X X X X
V1420 Level 5 X X X X X X X X
0 0 1 4 Level 6 X X X X X X X X
LD Load the value in V1420 into The unused accumulator
the accumulator bits are set to zero Level 7 X X X X X X X X
V1420
Level 8 X X X X X X X X
Acc. 0 0 0 0 0 0 1 4

MULBS Multiply the binary value in


the accumulator with the
0 0 0 F 4 2 4 0 Accumulator stack
binary value in the first level Acc.
of the accumulator stack after 2nd LDD

Level 1 0 0 0 0 C 3 5 0
Level 2 X X X X X X X X
OUTD Copy the value in the
Level 3 X X X X X X X X
accumulator to V1500
V1500 0 0 0 F 4 2 4 0
and V1501 Level 4 X X X X X X X X
V1501 V1500 Level 5 X X X X X X X X
Standard RLL
Instructions

Level 6 X X X X X X X X
Handheld Programmer Keystrokes
Level 7 X X X X X X X X
$ B ENT
STR 1 Level 8 X X X X X X X X

SHFT L D B E A A ENT
ANDST 3 1 4 0 0

SHFT L D B E C A
ENT
ANDST 3 1 4 2 0

SHFT M U L B S ENT
ORST ISG ANDST 1 RST
GX SHFT D B F A A ENT
OUT 3 1 5 0 0

5–116 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions -Math

Divide Binary by Top OF Stack (DIVBS)


Divide Binary Top of Stack is a 32 bit instruction that
divides the 32 bit binary value in the accumulator by the DIVBS
16 bit binary value in the first level of the accumulator
stack. The result resides in the accumulator and the
remainder resides in the first level of the accumulator
stack.
Discrete Bit Flags Description
SP53 On when the value of the operand is larger than the accumulator can work with.
SP63 On when the result of the instruction causes the value in the accumulator to be zero.
SP70 On any time the value in the accumulator is negative.

NOTE: Status flags are valid only until another instruction uses the same flag.

In the following example, when X1 is on, the value in V1400 will be loaded into the
accumulator using the Load instruction. The value in V1420 and V1421 is loaded into the
accumulator using the Load Double instruction also, pushing the value previously loaded in
the accumulator onto the accumulator stack. The binary value in the accumulator is divided
by the binary value in the first level of the accumulator stack using the Divide Binary Stack
instruction. The value in the accumulator is copied to V1500 and V1501 using the Out
Double instruction.

DirectSOFT32 Display V1400 Accumulator stack


after 1st LDD
X1 Load the value in V1400 into 0 0 1 4
LD The unused accumulator Level 1 X X X X X X X X
the accumulator
V1400 bits are set to zero
Level 2 X X X X X X X X
Acc. 0 0 0 0 0 0 1 4 Level 3 X X X X X X X X
Level 4 X X X X X X X X

V1421 V1420 Level 5 X X X X X X X X


0 0 0 0 C 3 5 0 Level 6 X X X X X X X X
LDD Load the value in V1420 and
V1421 into the accumulator Level 7 X X X X X X X X
V1420
Level 8 X X X X X X X X
Acc. 0 0 0 0 C 3 5 0
Accumulator stack
after 2nd LDD
DIVBS Divide the binary value in
the accumulator by the Level 1 0 0 0 0 0 0 1 4
binary value in the first level Acc. 0 0 0 0 0 9 C 4
Level 2 X X X X X X X X
of the accumulator stack
Level 3 X X X X X X X X
Level 4 X X X X X X X X
Level 5 X X X X X X X X
Copy the value in the
OUTD Level 6 X X X X X X X X
accumulator to V1500
V1500 and V1501 0 0 0 0 0 9 C 4
Level 7 X X X X X X X X
V1501 V1500
Level 8 X X X X X X X X
Handheld Programmer Keystrokes
The remainder resides in the
$ B ENT first stack location
STR 1
Level 1 0 0 0 0 0 0 0 0
SHFT L D B E A A ENT
ANDST 3 1 4 0 0 Level 2 X X X X X X X X

L D D B E C A Level 3 X X X X X X X X
SHFT ENT
ANDST 3 3 1 4 2 0 Level 4 X X X X X X X X

SHFT D I V B S ENT Level 5 X X X X X X X X


3 8 AND 1 RST
Level 6 X X X X X X X X
GX SHFT D B F A A ENT
OUT 3 1 5 0 0 Level 7 X X X X X X X X
Level 8 X X X X X X X X

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–117


Chapter 5: Standard RLL Instructions - Transcendental Functions

Transcendental Functions
The DL06 CPU features special numerical functions to complement its real number
capability. The transcendental functions include the trigonometric sine, cosine, and tangent,
and also their inverses (arc sine, arc cosine, and arc tangent). The square root function is also
grouped with these other functions.
The transcendental math instructions operate on a real number in the accumulator (it cannot
be BCD or binary). The real number result resides in the accumulator. The square root
function operates on the full range of positive real numbers. The sine, cosine and tangent
functions require numbers expressed in radians. You can work with angles expressed in
degrees by first converting them to radians with the Radian (RAD) instruction, then
performing the trig function. All transcendental functions utilize the following flag bits.

Discrete Bit Flags Description


SP53 On when the value of the operand is larger than the accumulator can work with.
SP63 On when the result of the instruction causes the value in the accumulator to be zero.
SP70 On anytime the value in the accumulator is negative.
SP72 On anytime the value in the accumulator is a valid floating point number
SP73 On anytime the value in the accumulator is negative.
SP75 On when a real number instruction is executed and a non-real number was encountered.

Sine Real (SINR)


The Sine Real instruction takes the sine of the real number stored in the accumulator. The
result resides in the accumulator. Both the original number and the result are in IEEE 32-bit
format.
S INR
Cosine Real (COSR)
The Cosine Real instruction takes the cosine of the real number
stored in the accumulator. The result resides in the accumulator.
Both the original number and the result are in IEEE 32-bit format.
Tangent Real (TANR) COSR
The Tangent Real instruction takes the tangent of the real number
stored in the accumulator. The result resides in the accumulator.
Both the original number and the result are in IEEE 32-bit format.
Arc Sine Real (ASINR) S INR
The Arc Sine Real instruction takes the inverse sine of the real
number stored in the accumulator. The result resides in the
accumulator. Both the original number and the result are in IEEE
32-bit format. AS INR

5–118 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Transcendental Functions

Arc Cosine Real (ACOSR)


The Arc Cosine Real instruction takes the inverse cosine of the COSR
real number stored in the accumulator. The result resides in the
accumulator. Both the original number and the result are in
IEEE 32-bit format.
Arc Tangent Real (ATANR)
The Arc Tangent Real instruction takes the inverse tangent of ATANR
the real number stored in the accumulator. The result resides in
the accumulator. Both the original number and the result are in
IEEE 32-bit format.
Square Root Real (SQRTR)
The Square Root Real instruction takes the square root of the SQR TR
real number stored in the accumulator. The result resides in the
accumulator. Both the original number and the result are in
IEEE 32-bit format.
NOTE: The square root function can be useful in several situations. However, if you are trying to do the
square-root extract function for an orifice flow meter measurement as the PV to a PID loop, note that the
PID loop already has the square-root extract function built in.

The following example takes the sine of 45 degrees. Since these transcendental functions
operate only on real numbers, we do a LDR (load real) 45. The trig functions operate only in
radians, so we must convert the degrees to radians by using the RADR command. After using
the SINR (Sine Real) instruction, we use an OUTD (Out Double) instruction to move the
result from the accumulator to V-memory. The result is 32-bits wide, requiring the Out
Double to move it.
Accumula tor contents
DirectS OF T 32 Dis play (viewed a s rea l number)
X1 Load the real number 45 into
LDR
R 45
the accumulator. 45. 000000

R ADR C onvert the degrees into radians ,


leaving the res ult in the 0. 7358981
accumulator.

S INR Take the s ine of the number in


the accumulator, which is in 0. 7071067
radians .

OU T D C opy the value in the


V2000
accumulator to V2000
and V2001.
0. 7071067

NOTE: The current HPP does not support real number entry with automatic conversion to the 32-bit IEEE
format. You must use DirectSOFT32 for entering real numbers, using the LDR (Load Real) instruction.

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–119


Chapter 5: Standard RLL Instructions - Bit Operation

Bit Operation Instructions


Sum (SUM) SUM
The Sum instruction counts number of bits that are set
to “1” in the accumulator. The HEX result resides in
the accumulator.
Discrete Bit Flags Description
SP63 On when the result of the instruction causes the value in the accumulator to be zero.

In the following example, when X1 is on, the value formed by discrete locations X10–X17 is
loaded into the accumulator using the Load Formatted instruction. The number of bits in the
accumulator set to “1” is counted using the Sum instruction. The value in the accumulator is
copied to V1500 using the Out instruction.

Direct SOFT32 Display


X17 X16 X15 X14 X13 X12 X11 X10
X1 ON ON OFF OFF ON OFF ON ON
LDF X10
K8 The unused accumulator
bits are set to zero
Load the value represented by
discrete locations X10–X17
into the accumulator 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Acc. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 1 1

Acc. 0 0 0 0 0 0 0 5
SUM

Sum the number of bits in


the accumulator set to “1”

OUT 0 0 0 5
V1500
V1500
Copy the value in the lower
16 bits of the accumulator
to V1500
Handheld Programmer Keystrokes

$ B ENT
STR 1

SHFT L D F B A I ENT
ANDST 3 5 1 0 8

SHFT S SHFT U M ENT


RST ISG ORST
GX PREV PREV PREV B F A A ENT
OUT 1 5 0 0

5–120 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Bit Operation

Shift Left (SHFL)


Shift Left is a 32 bit instruction that shifts the bits in the
SHFL
accumulator a specified number (Aaaa) of places to the left.
The vacant positions are filled with zeros and the bits shifted A aaa
out of the accumulator are discarded.
Operand Data Type DL06 Range
....................................A aaa
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map
Constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K 1-32

Discrete Bit Flags Description


SP63 On when the result of the instruction causes the value in the accumulator to be zero.
SP70 On anytime the value in the accumulator is negative.

In the following example, when X1 is on, the value in V2000 and V2001 will be loaded into
the accumulator using the Load Double instruction. The bit pattern in the accumulator is
shifted 2 bits to the left using the Shift Left instruction. The value in the accumulator is
copied to V2010 and V2011 using the Out Double instruction.

Direct SOFT32
V2001 V2000
X1 LDD 6 7 0 5 33 31 10 01

V2000

Load the value in V2000 and


V2001 into the accumulator

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
SHFL Acc. 0 1 1 0 0 1 1 1 0 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 1
K2

The bit pattern in the


accumulator is shifted 2 bit
positions to the left Shifted out of the
. . . .
accumulator

OUTD
V2010
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Copy the value in the Acc. 0
1 0 0 0
1 0
1 1 0 0 0 0 0 0
1 0 0
1 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0
accumulator to V2010 and
V2011

9 C 1 4 C 4 0 4

V2011 V2010
Handheld Programmer Keystrokes

$ B ENT
STR 1

SHFT L D D C A A A ENT
ANDST 3 3 2 0 0 0

SHFT S SHFT H F L C ENT


RST 7 5 ANDST 2
GX SHFT D C A B A ENT
OUT 3 2 0 1 0

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–121


Chapter 5: Standard RLL Instructions - Bit Operation

Shift Right (SHFR)


Shift Right is a 32 bit instruction that shifts the bits in the SHFR
accumulator a specified number (Aaaa) of places to the right. A aaa
The vacant positions are filled with zeros and the bits shifted out
of the accumulator are lost.
Operand Data Type DL06Range
....................................A aaa
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map
Constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K 1-32

Discrete Bit Flags Description


SP63 On when the result of the instruction causes the value in the accumulator to be zero.
SP70 On anytime the value in the accumulator is negative.

In the following example, when X1 is on, the value in V2000 and V2001 will be loaded into
the accumulator using the Load Double instruction. The bit pattern in the accumulator is
shifted 2 bits to the right using the Shift Right instruction. The value in the accumulator is
copied to V2010 and V2011 using the Out Double instruction.

Direct SOFT32 V2001 V2000


X1 Constant 6 7 0 5 33 11 00 11
LDD
V2000

Load the value in V2000 and


V2001 into the accumulator
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
SHFR Acc. 0 1 1 0 0 1 1 1 0 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 1
K2

... .
The bit pattern in the
accumulator is shifted 2 bit
positions to the right Shifted out of the
accumulator

OUTD
V2010 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Copy the value in the Acc. 0 0 0 0


1 1
0 1
0 0 0
1 0
1 0
1 0 0 0 0 0 0
1 0 1 0 0 1 1 0 0 0 1 0 0 0 0 0 0
accumulator to V2010 and
V2011

1 9 C 1 4 C 4 0

V2011 V2010

Handheld Programmer Keystrokes

$ B ENT
STR 1

SHFT L D D C A A A ENT
ANDST 3 3 2 0 0 0

SHFT S SHFT H F R C ENT


RST 7 5 ORN 2
GX SHFT D C A B A ENT
OUT 3 2 0 1 0

5–122 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Bit Operation

Rotate Left (ROTL)


Rotate Left is a 32 bit instruction that rotates the R OTL
bits in the accumulator a specified number (Aaaa) A aaa
of places to the left.

Operand Data Type DL06 Range


....................................A aaa
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map
Constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K 1-32

In the following example, when X1 is on, the value in V1400 and V1401 will be loaded into
the accumulator using the Load Double instruction. The bit pattern in the accumulator is
rotated 2 bit positions to the left using the Rotate Left instruction. The value in the
accumulator is copied to V1500 and V1501 using the Out Double instruction.

DirectSOFT32 Display
V1401 V1400
X1
LDD 6 7 0 5 3 1 0 1
V1400

Load the value in V1400 and


V1401 into the accumulator

ROTL 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
K2 Acc. 0 1 1 0 0 1 1 1 0 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 1

The bit pattern in the


accumulator is rotated 2
bit positions to the left

OUTD
V1500
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Copy the value in the
accumulator to V1500 Acc. 1 0 0 1 1 1 0 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1
and V1501

9 C 1 4 C 4 0 5

Handheld Programmer Keystrokes V1501 V1500

$ B ENT
STR 1

SHFT L D D B E A A ENT
ANDST 3 3 1 4 0 0

SHFT R O T L C ENT
ORN INST# MLR ANDST 2
GX SHFT D B F A A ENT
OUT 3 1 5 0 0

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–123


Chapter 5: Standard RLL Instructions- -Bit Operation

Rotate Right (ROTR)


Rotate Right is a 32 bit instruction that rotates the bits in R OTR
the accumulator a specified number (Aaaa) of places to the A aaa
right.

Operand Data Type DL06 Range


....................................A aaa
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map
Constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K 1-32

In the following example, when X1 is on, the value in V1400 and V1401 will be loaded into
the accumulator using the Load Double instruction. The bit pattern in the accumulator is
rotated 2 bit positions to the right using the Rotate Right instruction. The value in the
accumulator is copied to V1500 and V1501 using the Out Double instruction.

Direct SOFT Display


V1401 V1400
X1
LDD 6 7 0 5 3 1 0 1
V1400

Load the value in V1400 and


V1401 into the accumulator

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ROTR
Acc. 0 1 1 0 0 1 1 1 0 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 1
K2

The bit pattern in the


accumulator is rotated 2
bit positions to the right

OUTD
V1500
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Copy the value in the 0 0
1 0 0
1 0
1 1
0 0 0
1 0
1 0
1 0 0 0 0 0 0
1 0 1 0 0 1 1 0 0 0 1 0 0 0 0 0 0
Acc.
accumulator to V1500
and V1501

5 9 C 1 4 C 4 0

Handheld Programmer Keystrokes V1501 V1500

$ B ENT
STR 1

SHFT L D D B E A A ENT
ANDST 3 3 1 4 0 0

SHFT R O T R C ENT
ORN INST# MLR ORN 2
GX SHFT D B F A A ENT
OUT 3 1 5 0 0

5–124 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Bit Operation

Encode (ENCO)
The Encode instruction encodes the bit position in the
accumulator having a value of 1, and returns the
appropriate binary representation. If the most significant ENCO
bit is set to 1 (Bit 31), the Encode instruction would place
the value HEX 1F (decimal 31) in the accumulator. If the
value to be encoded is 0000 or 0001, the instruction will
place a zero in the accumulator. If the value to be encoded
has more than one bit position set to a “1”, the least
significant “1” will be encoded and SP53 will be set on.
Discrete Bit Flags Description
SP53 On when the value of the operand is larger than the accumulator can work with.
SP63 On when the result of the instruction causes the value in the accumulator to be zero.
SP70 On anytime the value in the accumulator is negative.

NOTE: The status flags are only valid until another instruction that uses the same flags is executed.

In the following example, when X1 is on, The value in V2000 is loaded into the accumulator
using the Load instruction. The bit position set to a “1” in the accumulator is encoded to the
corresponding 5 bit binary value using the Encode instruction. The value in the lower 16 bits
of the accumulator is copied to V2010 using the Out instruction.
Direct SOFT32 V2000
1 0 0 0
X1 LD
V2000

Load the value in V2000 into


the lower 16 bits of the 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
accumulator
Acc. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0

Bit postion 12 is
converted
to binary

ENCO

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Encode the bit position set
to “1” in the accumulator to a Acc. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0
5 bit binary value

OUT
V2010

Copy the value in the lower 16 bits 0 0 0 C


of the accumulator to V2010
V2010 Binary value
for 12.
Handheld Programmer Keystrokes

$ B ENT
STR 1

SHFT L D C A A A ENT
ANDST 3 2 0 0 0

SHFT E N C O ENT
4 TMR 2 INST#
GX SHFT V C A B A ENT
OUT AND 2 0 1 0

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–125


Chapter 5: Standard RLL Instructions - Bit Operation

Decode (DECO)
The Decode instruction decodes a 5 bit binary value of 0–31
(0–1F HEX) in the accumulator by setting the appropriate bit DECO
position to a 1. If the accumulator contains the value F (HEX),
bit 15 will be set in the accumulator. If the value to be decoded
is greater than 31, the number is divided by 32 until the value
is less than 32 and then the value is decoded.
In the following example when X1 is on, the value formed by discrete locations X10–X14 is
loaded into the accumulator using the Load Formatted instruction. The five bit binary
pattern in the accumulator is decoded by setting the corresponding bit position to a “1” using
the Decode instruction.

Direct SOFT32
X14 X13 X12 X11 X10
X1 LDF X10 OFF ON OFF ON ON

K5

Load the value in


represented by discrete
locations X10–X14 into the
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
accumulator
Acc. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1

The binary vlaue


is converted to
bit position 11.
DECO

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Decode the five bit binary Acc. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0
pattern in the accumulator
and set the corresponding
bit position to a “1”

Handheld Programmer Keystrokes

$ B ENT
STR 1

SHFT L D F B A F ENT
ANDST 3 5 1 0 5

SHFT D E C O ENT
3 4 2 INST#

5–126 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Number Conversion

Number Conversion Instructions (Accumulator)


Binary (BIN) BIN
The Binary instruction converts a BCD value in the
accumulator to the equivalent binary value. The result
resides in the accumulator.

Discrete Bit Flags Description


SP63 On when the result of the instruction causes the value in the accumulator to be zero.
SP70 On anytime the value in the accumulator is negative.
SP75 On when a BCD instruction is executed and a NON–BCD number was encountered.

In the following example, when X1 is on, the value in V2000 and V2001 is loaded into the
accumulator using the Load Double instruction. The BCD value in the accumulator is
converted to the binary (HEX) equivalent using the BIN instruction. The binary value in the
accumulator is copied to V2010 and V2011 using the Out Double instruction. (The
handheld programmer will display the binary value in V2010 and V2011 as a HEX value.)

DirectS OF T 32 V2001 V2000

X1 0 0 0 2 8 5 2 9
LDD
V2000

Load the value in V2000 and


V2001 into the accumulator

8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1
Acc. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 1 0 0 1 0 1 0 0 1

BCD Value

28529 = 16384 + 8192 + 2048 + 1024 + 512 + 256 + 64 + 32 + 16 + 1

BIN Binary Equivalent Value

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Convert the BCD value in Acc. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 1 1 0 1 1 1 0 0 0 1
the accumulator to the
binary equivalent value 2 1 5 2 1 6 3 1 8 4 2 1 5 2 1 6 3 1 8 4 2 1 5 2 1 6 3 1 8 4 2 1
1 0 3 6 3 7 3 6 3 1 0 0 2 6 3 5 2 6 1 0 0 0 1 5 2 4 2 6
4 7 6 8 4 1 5 7 8 9 9 4 4 2 1 5 7 3 9 9 4 2 2 6 8
7 3 8 4 2 0 5 7 8 4 7 8 2 1 0 3 6 8 2 6 8 4
4 7 7 3 1 8 4 7 6 3 1 5 8 4 7 6 8 4
4 4 0 5 7 8 4 2 0 0 5 7 8 4 2
8 1 9 4 7 6 3 1 8 4 2 6
3 8 1 5 2 4 2 6
6 2 2 6 8
4 4
8

OU T D
V2010 The Binary (HEX)
0 0 0 0 6 F 7 1 value copied to
Copy the binary data in the
V2010
accumulator to V2010 and V2011 V2011 V2010
S tandard R LL
Ins tructions

Handheld Programmer Keys trokes

$ B
E NT
STR 1
L D D C A A A
S HF T E NT
ANDS T 3 3 2 0 0 0

S HF T B I N E NT
1 8 T MR
GX D C A B A
S HF T E NT
OU T 3 2 0 1 0

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–127


Chapter 5: Standard RLL Instructions - Number Conversion

Binary Coded Decimal (BCD)


The Binary Coded Decimal instruction converts a binary value BCD
in the accumulator to the equivalent BCD value. The result
resides in the accumulator.

Discrete Bit Flags Description


SP63 On when the result of the instruction causes the value in the accumulator to be zero.
SP70 On anytime the value in the accumulator is negative.

In the following example, when X1 is on, the binary (HEX) value in V2000 and V2001 is
loaded into the accumulator using the Load Double instruction. The binary value in the
accumulator is converted to the BCD equivalent value using the BCD instruction. The BCD
value in the accumulator is copied to V2010 and V2011 using the Out Double instruction.

DirectS OF T 32 V2001 V2000

X1 0 0 0 0 6 F 7 1
LDD
V2000 Binary Value

Load the value in V2000 and


V2001 into the accumulator
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Acc. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 1 1 0 1 1 1 0 0 0 1
2 1 5 2 1 6 3 1 8 4 2 1 5 2 1 6 3 1 8 4 2 1 5 2 1 6 3 1 8 4 2 1
1 0 3 6 3 7 3 6 3 1 0 0 2 6 3 5 2 6 1 0 0 0 1 5 2 4 2 6
4 7 6 8 4 1 5 7 8 9 9 4 4 2 1 5 7 3 9 9 4 2 2 6 8
7 3 8 4 2 0 5 7 8 4 7 8 2 1 0 3 6 8 2 6 8 4
4 7 7 3 1 8 4 7 6 3 1 5 8 4 7 6 8 4
4 4 0 5 7 8 4 2 0 0 5 7 8 4 2
8 1 9 4 7 6 3 1 8 4 2 6
3 8 1 5 2 4 2 6
6 2 2 6 8
4 4
8

BC D
16384 + 8192 + 2048 + 1024 + 512 + 256 + 64 + 32 + 16 + 1 = 28529

C onvert the binary value in BC D E quivalent Value


the accumulator to the BC D
equivalent value 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1
Acc. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 1 0 0 1 0 1 0 0 1

OU T D
V2010

C opy the BC D value in the 0 0 0 2 8 5 2 9 T he BC D value


accumulator to V2010 and V2011 copied to
V2011 V2010 V2010 and V2011

Handheld Programmer Keys trokes

$ B E NT
STR 1
L D D C A A A
S HF T E NT
ANDS T 3 3 2 0 0 0
B C D
S HF T E NT
1 2 3
GX S HF T D C A B A E NT
OU T 3 2 0 1 0

5–128 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Number Conversion

Invert (INV)
The Invert instruction inverts or takes the one’s INV
complement of the 32 bit value in the accumulator. The
result resides in the accumulator.
In the following example, when X1 is on, the value in V2000 and V2001 will be loaded into
the accumulator using the Load Double instruction. The value in the accumulator is inverted
using the Invert instruction. The value in the accumulator is copied to V2010 and V2011
using the Out Double instruction.

Direct SOFT32 V2001 V2000

X1 0 4 0 5 00 22 55 00
LDD
V2000

Load the value in V2000 and


V2001 into the accumulator
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Acc. 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 0

INV
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Acc. 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 0 1 1 0 1 0 1 1 1 1
Invert the binary bit pattern
in the accumulator

OUTD F B F A F D A F
V2010 V2011 V2010
Copy the value in the
accumulator to V2010 and
V2011

Handheld Programmer Keystrokes

$ B ENT
STR 1

SHFT L D D C A A A ENT
ANDST 3 3 2 0 0 0

SHFT I N V ENT
8 TMR AND
GX SHFT D C A B A ENT
OUT 3 2 0 1 0

DL06 Micro PLC User Manual, 1stDL06 Micro


Ed., Rev. A PLC User Manual, 1st Ed., Rev. A 5–129
Chapter 5: Standard RLL Instructions - Number Conversion

Ten’s Complement (BCDCPL)


The Ten’s Complement instruction takes the 10’s complement BC DC P L
(BCD) of the 8 digit accumulator. The result resides in the
accumulator. The calculation for this instruction is :
100000000
– accumulator value
10’s complement value

In the following example when X1 is on, the value in V2000 and V2001 is loaded into the
accumulator. The 10’s complement is taken for the 8 digit accumulator using the Ten’s
Complement instruction. The value in the accumulator is copied to V2010 and V2011 using
the Out Double instruction.

DirectS OF T 32 V2001 V2000


0 0 0 0 0 0 8 7
X1 LDD
V2000

Load the value in V2000 and Acc. 0 0 0 0 0 0 8 7


V2001 into the accumulator

BC DC PL 9 9 9 9 9 9 1 3
Acc.

Takes a 10’s complement of


the value in the accumulator

OU T D
9 9 9 9 9 9 1 3
V2010
V2011 V2010
C opy the value in the
accumulator to V2010 and
V2011

Handheld Programmer Keys trokes

$ B E NT
STR 1
L D D C A A A
S HF T E NT
ANDS T 3 3 2 0 0 0
B C D C P L
S HF T E NT
1 2 3 2 CV ANDS T
GX D C A B A
S HF T E NT
OU T 3 2 0 1 0

5–130 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Number Conversion

Binary to Real Conversion (BTOR)


The Binary-to-Real instruction converts a binary value in BT O R
the accumulator to its equivalent real number (floating
point) format. The result resides in the accumulator. Both
the binary and the real number may use all 32 bits of the
accumulator.
Discrete Bit Flags Description
SP63 On when the result of the instruction causes the value in the accumulator to be zero.
SP70 On anytime the value in the accumulator is negative.

In the following example, when X1 is on, the value in V1400 and V1401 is loaded into the
accumulator using the Load Double instruction. The BTOR instruction converts the binary
value in the accumulator the equivalent real number format. The binary weight of the MSB is
converted to the real number exponent by adding it to 127 (decimal). Then the remaining
bits are copied to the mantissa as shown. The value in the accumulator is copied to V1500
and V1501 using the Out Double instruction. The handheld programmer would display the
binary value in V1500 and V1501 as a HEX value.
DirectSOFT32 Display V1401 V1400

X1 0 0 0 5 7 2 4 1
LDD
V1400

Load the value in V1400 and


V1401 into the accumulator
8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1
Acc. 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 1 1 0 0 1 0 0 0 1 0 0 0 0 1

Binary Value
2 (exp 18)
127 + 18 = 145
145 = 128 + 16 + 1

BTOR

Convert the binary value in


the accumulator to the real
number equivalent format
Acc. 0 1 0 0 1 0 0 0 1 0 1 0 1 1 1 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0

Sign Bit Exponent (8 bits) Mantissa (23 bits)

Real Number Format

OUTD
V1500
4 8 A E 4 8 2 0 The real number (HEX) value
Copy the real value in the copied to V1500
accumulator to V1500 and V1501 V1501 V1500

Handheld Programmer Keystrokes

$ B ENT
STR 1

SHFT L D D B E A A ENT
ANDST 3 3 1 4 0 0

SHFT B T O R ENT
1 MLR INST# ORN
GX SHFT D B F A A ENT
OUT 3 1 5 0 0

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–131


Chapter 5: Standard RLL Instructions - Number Conversion

Real to Binary Conversion (RTOB)


The Real-to-Binary instruction converts the real number in the R TOB
accumulator to a binary value. The result resides in the
accumulator. Both the binary and the real number may use all
32 bits of the accumulator.
Discrete Bit Flags Description
SP63 On when the result of the instruction causes the value in the accumulator to be zero.
SP70 On anytime the value in the accumulator is negative.
SP72 On anytime the value in the accumulator is a valid floating point number.
SP73 On when a signed addition or subtraction results in an incorrect sign bit.
SP75 On when a number cannot be converted to binary.

In the following example, when X1 is on, the value in V1400 and V1401 is loaded into the
accumulator using the Load Double instruction. The RTOB instruction converts the real
value in the accumulator the equivalent binary number format. The value in the accumulator
is copied to V1500 and V1501 using the Out Double instruction. The handheld programmer
would display the binary value in V1500 and V1501 as a HEX value.

DirectSOFT32 Display

X1 4 8 A E 4 8 2 0 Real Number Format


LDD
V1400 V1401 V1400

Load the value in V1400 and


V1401 into the accumulator
Sign Bit Exponent (8 bits) Mantissa (23 bits)

Acc. 0 1 0 0 1 0 0 0 1 0 1 0 1 1 1 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0

RTOB

Convert the real number in


the accumulator to binary 128 + 16 + 1 = 145
format.
127 + 18 = 145
Binary Value
2 (exp 18)
8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1
Acc. 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 1 1 0 0 1 0 0 0 1 0 0 0 0 1

OUTD
V1500

Copy the real value in the


accumulator to V1500 and V1501 V1501 V1500
The binary number copied to
0 0 0 5 7 2 4 1 V1500.

Handheld Programmer Keystrokes

$ B ENT
STR 1

SHFT L D D B E A A ENT
ANDST 3 3 1 4 0 0

SHFT R T O B ENT
ORN MLR INST# 1
GX SHFT D B F A A ENT
OUT 3 1 5 0 0

5–132 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Number Conversion

Radian Real Conversion (RADR)


R ADR
The Radian Real Conversion instruction converts the real
degree value stored in the accumulator to the equivalent
real number in radians. The result resides in the
accumulator.
Degree Real Conversion (DEGR) DE G R
The Degree Real instruction converts the degree real
radian value stored in the accumulator to the equivalent
real number in degrees. The result resides in the
accumulator.
The two instructions described above convert real numbers into the accumulator from degree
format to radian format, and visa-versa. In degree format, a circle contains 360 degrees. In
radian format, a circle contains about 6.28 radians. These convert between both positive and
negative real numbers, and for angles greater than a full circle. These functions are very useful
when combined with the transcendental trigonometric functions (see the section on math
instructions).
Discrete Bit Flags Description
SP63 On when the result of the instruction causes the value in the accumulator to be zero.
SP70 On anytime the value in the accumulator is negative.
SP71 On anytime the V-memory specified by a pointer (P) is not valid.
SP72 On anytime the value in the accumulator is a valid floating point number.
SP74 On anytime a floating point math operation results in an underflow error.
SP75 On when a BCD instruction is executed and a NON-BCD number was encountered.

NOTE: The current HPP does not support real number entry with automatic conversion to the 32-bit IEEE
format. You must use DirectSOFT32 for entering real numbers, using the LDR (Load Real) instruction.

The following example takes the sine of 45 degrees. Since transcendental functions operate
only on real numbers, we do a LDR (load real) 45. The trig functions operate only in radians,
so we must convert the degrees to radians by using the RADR command. After using the
SINR (Sine Real) instruction, we use an OUTD (Out Double) instruction to move the result
from the accumulator to V-memory. The result is 32-bits wide, requiring the Out Double to
move it.
Accumulator contents
DirectSOFT32 Display
(viewed as real number)
X1 Load the real number 45 into
LDR
R45
the accumulator. 45.000000

RADR Convert the degrees into radians,


leaving the result in the 0.7853982
accumulator.

SINR Take the sine of the number in


the accumulator, which is in 0.7071067
radians.

OUTD Copy the value in the


V2000
accumulator to V2000
and V2001.
0.7071067

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–133


Chapter 5: Standard RLL Instructions - Number Conversion

ASCII to HEX (ATH)


The ASCII TO HEX instruction converts a table of ASCII values to
a specified table of HEX values. ASCII values are two digits and ATH
their HEX equivalents are one digit. This means an ASCII table of V aaa
four V memory locations would only require two V memory
locations for the equivalent HEX table. The function parameters are
loaded into the accumulator stack and the accumulator by two
additional instructions. Listed below are the steps necessary to
program an ASCII to HEX table function. The example on the
following page shows a program for the ASCII to HEX table function.
Step 1: — Load the number of V memory locations for the ASCII table into the first level of
the accumulator stack.
Step 2: — Load the starting V memory location for the ASCII table into the accumulator.
This parameter must be a HEX value.
Step 3: — Specify the starting V memory location (Vaaa) for the HEX table in the ATH
instruction.
Helpful Hint: — For parameters that require HEX values when referencing memory
locations, the LDA instruction can be used to convert an octal address to the HEX equivalent
and load the value into the accumulator.
Operand Data Type DL06 Range
aaa
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map

Discrete Bit Flags Description


SP53 On when the value of the operand is larger than the accumulator can work with.
In the example on the following page, when X1 is ON the constant (K4) is loaded into the
accumulator using the Load instruction and will be placed in the first level of the accumulator
stack when the next Load instruction is executed. The starting location for the ASCII table
(V1400) is loaded into the accumulator using the Load Address instruction. The starting
location for the HEX table (V1600) is specified in the ASCII to HEX instruction. The table
below lists valid ASCII values for ATH conversion.

ASCII Values Valid for ATH Conversion


ASCII Value Hex Value ASCII Value Hex Value
30 0 38 8
31 1 39 9
32 2 41 A
33 3 42 B
34 4 43 C
35 5 44 D
36 6 45 E
37 7 46 F

5–134 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Number Conversion

Direct SOFT32 Hexadecimal


ASCII T ABLE Equivalents
X1 LD Load the constant value
into the lower 16 bits of the
K4 accumulator. This value
defines the number of V
memory location in the
ASCII table
V1400 33 34
LDA Convert octal 1400 to HEX

O 1400
300 and load the value into
the accumulator
1234 V1600

V1401 31 32
ATH V1600 is the starting
location for the HEX table
V1600

Handheld Programmer Keystrokes

$
STR
B
1
ENT V1402 37 38
L D E
SHFT
ANDST 3
PREV
4
ENT 5678 V1601

L D A B E A A
SHFT
ANDST 3 0 1 4 0 0
ENT
V1403 35 36
SHFT A T H B G A A ENT
0 MLR 7 1 6 0 0

HEX to ASCII (HTA)


The HEX to ASCII instruction converts a table of
HEX values to a specified table of ASCII values. HTA
HEX values are one digit and their ASCII V aaa
equivalents are two digits.
This means a HEX table of two V memory locations would require four V memory locations
for the equivalent ASCII table. The function parameters are loaded into the accumulator
stack and the accumulator by two additional instructions. Listed below are the steps necessary
to program a HEX to ASCII table function. The example on the following page shows a
program for the HEX to ASCII table function.
Step 1: Load the number of V memory locations in the HEX table into the first level
of the accumulator stack.
Step 2: Load the starting V memory location for the HEX table into the accumulator.
This parameter must be a HEX value.
Step 3:Specify the starting V memory location (Vaaa) for the ASCII table in the HTA
instruction.
Helpful Hint: — For parameters that require HEX values when referencing memory
locations, the LDA instruction can be used to convert an octal address to the HEX equivalent
and load the value into the accumulator.

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–135


Chapter 5: Standard RLL Instructions - Number Conversion

Operand Data Type DL06 Range


aaa
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map

Discrete Bit Flags Description


SP53 On when the value of the operand is larger than the accumulator can work with.
In the following example, when X1 is ON the constant (K2) is loaded into the accumulator
using the Load instruction. The starting location for the HEX table (V1500) is loaded into
the accumulator using the Load Address instruction. The starting location for the ASCII table
(V1400) is specified in the HEX to ASCII instruction.
Direct SOFT32
Hexadecimal
X1 LD Equivalents ASCII T ABLE
K2

Load the constant value into


the lower 16 bits of the
accumulator. This value
defines the number of V 33 34 V1400
locations in the HEX table.
V1500 1234
LDA
O 1500
31 32 V1401

Convert octal 1500 to HEX


340 and load the value into
the accumulator

HTA 37 38 V1402
V1400

V1400 is the starting


V1501 5678
location for the ASCII table.
The conversion is executed
by this instruction.
35 36 V1403

Handheld Programmer Keystrokes

$ B ENT
STR 1

SHFT L D SHFT K E ENT


ANDST 3 JMP 4

SHFT L D A B F A A ENT
ANDST 3 0 1 5 0 0

SHFT H T A B E A A ENT
7 MLR 0 1 4 0 0

The table below lists valid ASCII values for HTA conversion.

ASCII Values Valid for HTA Conversion


Hex Value ASCII Value Hex Value ASCII Value
0 30 8 38
1 31 9 39
2 32 A 41
3 33 B 42
4 34 C 43
5 35 D 44
6 36 E 45
7 37 F 46

5–136 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Number Conversion

Segment (SEG)
The BCD / Segment instruction converts a four digit HEX SEG
value in the accumulator to seven segment display format.
The result resides in the accumulator.
In the following example, when X1 is on, the value in V1400 is loaded into the lower 16 bits
of the accumulator using the Load instruction. The binary (HEX) value in the accumulator is
converted to seven segment format using the Segment instruction. The bit pattern in the
accumulator is copied to Y20–Y57 using the Out Formatted instruction.

DirectSOFT32 Display V1400

X1 6 F 7 1
LD
V1400

Load the value in V1400 nto the


lower 16 bits of the accumulator
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Acc. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 1 1 0 1 1 1 0 0 0 1

SEG

Convert the binary (HEX)


value in the accumulator to
seven segment display
format

OUTF Y20
K32

Copy the value in the 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0


accumulator to Y20-- Y57
Acc. 0 1 1 1 1 1 0 1 0 1 1 1 0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 0

- g f e d c b a - g f e d c b a - g f e d c b a - g f e d c b a Segment
Labels
a
f b
Segment Y57 Y56 Y55 Y54 Y53 Y24 Y23 Y22 Y21 Y20
Labels g
OFF ON ON ON ON OFF OFF ON ON OFF
e c

Handheld Programmer Keystrokes

$ B ENT
STR 1
L D B E A A ENT
ANDST 3 1 4 0 0
S E G ENT
SHFT SHFT
RST 4 6
GX F C A D C
SHFT ENT
OUT 5 2 0 3 2

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–137


Chapter 5: Standard RLL Instructions - Number Conversion

Gray Code (GRAY)


The Gray code instruction converts a 16 bit gray code
value to a BCD value. The BCD conversion requires 10
bits of the accumulator. The upper 22 bits are set to “0”.
This instruction is designed for use with devices
(typically encoders) that use the grey code numbering
scheme. The Gray Code instruction will directly convert
a gray code number to a BCD number for devices GRAY
having a resolution of 512 or 1024 counts per
revolution. If a device having a resolution of 360 counts
per revolution is to be used you must subtract a BCD
value of 76 from the converted value to obtain the
proper result. For a device having a resolution of 720
counts per revolution you must subtract a BCD value of
152.
In the following example, when X1 is ON the binary value represented by X10–X27 is loaded
into the accumulator using the Load Formatted instruction. The gray code value in the
accumulator is converted to BCD using the Gray Code instruction. The value in the lower 16
bits of the accumulator is copied to V2010.
Discrete Bit Flags Description
SP63 On when the result of the instruction causes the value in the accumulator to be zero.
SP70 On anytime the value in the accumulator is negative.

Direct SOFT32
X27 X26 X25 X12 X11 X10
X1 LDF K16 OFF OFF OFF ON OFF ON

X10

Load the value represented


by X10–X27 into the lower
16 bits of the accumulator
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Acc. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1
GRAY

Convert the 16 bit grey code


value in the accumulator to a
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
BCD value
Acc. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0
OUT
V2010

Copy the value in the lower


16 bits of the accumulator to Gray Code BCD
V2010
0000000000 0000 0 0 0 6

Handheld Programmer Keystrokes 0000000001 0001 V2010


0000000011 0002
$ B ENT
STR 1 0000000010 0003
L D F B A B G 0000000110 0004
SHFT ENT
ANDST 3 5 1 0 1 6
0000000111 0005
SHFT G R A Y ENT
6 ORN 0 MLS 0000000101 0006

GX V C A B A 0000000100 0007
SHFT ENT
OUT AND 2 0 1 0

1000000001 1022
1000000000 1023

5–138 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Number Conversion

Shuffle Digits (SFLDGT)


The Shuffle Digits instruction shuffles a maximum of 8
digits rearranging them in a specified order. This function SFLDGT
requires parameters to be loaded into the first level of the
accumulator stack and the accumulator with two additional
instructions. Listed below are the steps necessary to use the shuffle digit function. The
example on the following page shows a program for the Shuffle Digits function.
Step 1: Load the value (digits) to be shuffled into the first level of the accumulator
stack.
Step 2: Load the order that the digits will be shuffled to into the accumulator.
Step 3: Insert the SFLDGT instruction.
Note: If the number used to specify the order contains a 0 or 9–F, the corresponding position
will be set to 0.

Discrete Bit Flags Description


SP63 On when the result of the instruction causes the value in the accumulator to be zero.
SP70 On anytime the value in the accumulator is negative.

Shuffle Digits Block Diagram Digits to be


shuffled (first stack location)
There are a maximum of 8 digits that can be
shuffled. The bit positions in the first level of 9 A B C D E F 0
the accumulator stack defines the digits to be
shuffled. They correspond to the bit positions in
the accumulator that define the order the digits 1 2 8 7 3 6 5 4
will be shuffled. The digits are shuffled and the
result resides in the accumulator. Specified order (accumulator)

Bit Positions 8 7 6 5 4 3 2 1

B C E F 0 D A 9

Result (accumulator)

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–139


Chapter 5: Standard RLL Instructions - Number Conversion

In the following example when X1 is on, The value in the first level of the accumulator stack
will be reorganized in the order specified by the value in the accumulator.
Example A shows how the shuffle digits works when 0 or 9 –F is not used when specifying
the order the digits are to be shuffled. Also, there are no duplicate numbers in the specified
order.
Example B shows how the shuffle digits works when a 0 or 9–F is used when specifying the
order the digits are to be shuffled. Notice when the Shuffle Digits instruction is executed, the
bit positions in the first stack location that had a corresponding 0 or 9–F in the accumulator
(order specified) are set to “0”.
Example C shows how the shuffle digits works when duplicate numbers are used specifying
the order the digits are to be shuffled. Notice when the Shuffle Digits instruction is executed,
the most significant duplicate number in the order specified is used in the result.

Direct SOFT32
A B C
X1 LDD V2001 V2000 V2001 V2000 V2001 V2000
V2000 9 A B C D E F 0 0 F E D C B A 9 9 A B C D E F 0

Load the value in V2000 and


V2001 into the accumulator
Original 8 7 6 5 4 3 2 1 8 7 6 5 4 3 2 1 8 7 6 5 4 3 2 1
bit
Positions 9 A B C D E F 0 Acc. 0 F E D C B A 9 Acc. 9 A B C D E F 0 Acc.

V2007 V2006 V2007 V2006 V2007 V2006


LDD
V2006 1 2 8 7 3 6 5 4 0 0 4 3 0 0 2 1 4 3 2 1 4 3 2 1

Load the value in V2006 and


V2007 into the accumulator Specified 8 7 6 5 4 3 2 1 8 7 6 5 4 3 2 1 8 7 6 5 4 3 2 1
order
1 2 8 7 3 6 5 4 Acc. 0 0 4 3 0 0 2 1 Acc. 4 3 2 1 4 3 2 1 Acc.

New bit 8 7 6 5 4 3 2 1 8 7 6 5 4 3 2 1 8 7 6 5 4 3 2 1
SFLDGT Positions
B C E F 0 D A 9 Acc. 0 0 0 0 E D A 9 Acc. 0 0 0 0 9 A B C Acc.

Shuf fle the digits in the first


level of the accumulator
stack based on the pattern
in the accumulator. The
result is in the accumulator .

OUTD
B C E F 0 D A 9 0 0 0 0 E D A 9 0 0 0 0 9 A B C
V2010
V2011 V2010 V2011 V2010 V2011 V2010
Copy the value in the
accumulator to V2010 and
V2011

Handheld Programmer Keystrokes

$ B ENT
STR 1

SHFT L D D C A A A ENT
ANDST 3 3 2 0 0 0

SHFT L D D C A A G ENT
ANDST 3 3 2 0 0 6

SHFT S SHFT F L D G T ENT


RST 5 ANDST 3 6 MLR
GX SHFT D C A B A ENT
OUT 3 2 0 1 0

5–140 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Table Instructions

Table Instructions
Move (MOV)
The Move instruction moves the values from a V
memory table to another V memory table the same
MOV
length. The function parameters are loaded into the first
V aaa
level of the accumulator stack and the accumulator by
two additional instructions. Listed below are the steps
necessary to program the Move function.
• Step 1 Load the number of V memory locations to be moved into the first level of the accumulator
stack. This parameter is a HEX value (K40 max, 100 octal).
• Step 2 Load the starting V memory location for the locations to be moved into the accumulator.
This parameter is a HEX value.
• Step 3 Insert the MOVE instruction which specifies starting V memory location (Vaaa) for the
destination table.
Helpful Hint: — For parameters that require HEX values when referencing memory
locations, the LDA instruction can be used to convert an octal address to the HEX equivalent
and load the value into the accumulator.
Operand Data Type DL06 Range
aaa
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map
Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P See memory map

Discrete Bit Flags Description


SP53 On when the value of the operand is larger than the accumulator can work with.
In the following example, when X1 is on, the constant value (K6) is loaded into the
accumulator using the Load instruction. This value specifies the length of the table and is
placed in the first stack location after the Load Address instruction is executed. The octal
address 2000 (V2000), the starting location for the source table is loaded into the
accumulator. The destination table location (V2030) is specified in the Move instruction.

Direct SOFT32

X1 Load the constant value 6


LD (HEX) into the lower 16 bits X X X X V2026
K6 of the accumulator
X X X X V2027
Convert octal 2000 to HEX 0 1 2 3 V2000 0 1 2 3 V2030
LDA 400 and load the value into
O 2000 the accumulator 0 5 0 0 V2001 0 5 0 0 V2031
9 9 9 9 V2002 9 9 9 9 V2032
Copy the specified table
MOV locations to a table 3 0 7 4 V2003 3 0 7 4 V2033
V2030 beginning at location V2030
8 9 8 9 V2004 8 9 8 9 V2034
1 0 1 0 V2005 1 0 1 0 V2035
Handheld Programmer Keystrokes
X X X X V2006 X X X X V2036
$ B ENT
STR 1 X X X X V2007 X X X X V2037

SHFT L D SHFT K G ENT


ANDST 3 JMP 6

SHFT L D A C A A A ENT
ANDST 3 0 2 0 0 0

SHFT M O V C A D A ENT
ORST INST# AND 2 0 3 0

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–141


Chapter 5: Standard RLL Instructions - Table Instructions

Move Memory Cartridge (MOVMC)


Load Label (LDLBL)
The Move Memory Cartridge and the Load Label instructions are
MOVMC
used to copy data from program ladder memory to V memory. The
V aaa
Load Label instruction is used with the MOVMC instruction when
copying data from program ladder memory to V memory.
To copy data from the program ladder memory to V memory, the
function parameters are loaded into the first two levels of the
accumulator stack and the accumulator by two additional LDLBL
instructions. Listed below are the steps necessary to program the K aaa
Move Memory Cartridge and Load Label functions.
• Step 1: Load the number of words to be copied into the second level of the accumulator stack.
• Step 2: Load the offset for the data label area in ladder memory and the beginning of the V memory
block into the first level of the stack.
• Step 3: Load the source data label (LDLBL Kaaa) into the accumulator when copying data from
ladder memory to V memory. This is the source location of the value.
• Step 4: Insert the MOVMC instruction which specifies destination in V-memory (Vaaa). This is the
copy destination.

Operand Data Type DL06 Range


....................................A aaa
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map

5–142 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Table Instructions

Copy Data From a Data Label Area to V Memory


In the example below, data is copied from a Data Label Area to V memory. When X1 is on,
the constant value (K4) is loaded into the accumulator using the Load instruction. This value
specifies the length of the table and is placed in the second stack location after the next Load
and Load Label (LDLBL) instructions are executed. The constant value (K0) is loaded into
the accumulator, specifying the offset for the source and destination data. It is placed in the
first stack location after the LDLBL instruction is executed. The source address where data is
being copied from is loaded into the accumulator using the LDLBL instruction. The
MOVMC instruction specifies the destination starting location and executes the copying of
data from the Data Label Area to V memory.

Direct SOFT32
Data label area X1
programmed after LD
the END instruction K4
.
DLBL K1 . Load the value 4 into the
accumulator specifying the
N C O N 1 2 3 4 V2000 number of locations to be
copied.
K 1 2 3 4

N C O N 4 5 3 2 V2001 LD
K 4 5 3 2 K0

N C O N 6 1 5 1 V2002 Load the value 0 into the


K 6 1 5 1 accumulator specifying the
offset for source and
N C O N 8 8 4 5 V2003 destination locations
K 8 8 4 5
LDLBL
X X X X V2004 K1
.
. Load the value 1 into the
accumulator specifying the
Data Label Area K1 as the
starting address of the data
to be copied.
Handheld Programmer Keystrokes
MOVMC
$ B ENT
STR 1 V2000

SHFT L D SHFT K E ENT V2000 is the destination


ANDST 3 JMP 4 starting address for the data
to be copied.
SHFT L D SHFT K A ENT
ANDST 3 JMP 0

SHFT L D L B L B ENT
ANDST 3 ANDST 1 ANDST 1

SHFT M O V M C C A A A ENT
ORST INST# AND ORST 2 2 0 0 0

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–143


Chapter 5: Standard RLL Instructions - Table Instructions

SETBIT
The Set Bit instruction sets a single bit to one SETBIT
within a range of V-memory locations. A aaa

RSTBIT RSTBIT
The Reset Bit instruction resets a single bit to zero A aaa
within a range of V-memory locations.
The following description applies to both the Set Bit and Reset Bit table instructions.
Step 1: Load the length of the table (number of V memory locations) into the first level of the
accumulator stack. This parameter must be a HEX value, 0 to FF.
Step 2: Load the starting V memory location for the table into the accumulator. This
parameter must be a HEX value. You can use the LDA instruction to convert an octal
address to hex.
Step 3: Insert the Set Bit or Reset Bit instruction. This specifies the reference for the bit
number of the bit you want to set or reset. The bit number is in octal, and the first bit
in the table is number “0”.
Helpful hint: — Remember that each V memory location contains 16 bits. So, the bits of the
first word of the table are numbered from 0 to 17 octal. For example, if the table length is six
words, then 6 words = (6 x 16) bits, = 96 bits (decimal), or 140 octal. The permissible range
of bit reference numbers would be 0 to 137 octal. SP 53 will be set if the bit specified is
outside the range of the table.

Operand Data Type DL06 Range


aaa
Vmemory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See Memory Map

Discrete Bit Flags Description


SP53 On when the bit number which is referenced in the Set Bit or Reset Bit exceeds the range of the
table

NOTE: Status flags are only valid until the end of the scan or until another instruction that uses the same
flag is executed.

For example, suppose we have a table V3000


starting at V3000 that is two words MSB LSB
long, as shown to the right. Each word
in the table contains 16 bits, or 0 to 17
in octal. To set bit 12 in the second 16 bits
word, we use its octal reference (bit
14). Then we compute the bit’s octal
address from the start of the table, so V3001
17 + 14 = 34 octal. The following MSB LSB
program shows how to set the bit as
shown to a “1”. 1 1 1 1 11 1 1 7 6 5 4 3 2 1 0
7 6 5 4 32 1 0

5–144 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Table Instructions

In this ladder example, we will use input X0 to trigger the Set Bit operation. First, we will
load the table length (2 words) into the accumulator stack. Next, we load the starting address
into the accumulator. Since V3000 is an octal number we have to convert it to hex by using
the LDA command. Finally, we use the Set Bit (or Reset Bit) instruction and specify the octal
address of the bit (bit 34), referenced from the table.

Direct SOFT Display32

X0 Load the constant value 2


LD
(Hex.) into the lower 16 bits
K2 of the accumulator.

Convert octal 3000 to HEX


LDA
and load the value into the
O 3000 accumulator. This is the
table beginning.

SETBIT Set bit 34 (octal) in the table


to a ”1”.
O 34

Handheld Programmer Keystrokes

$ A ENT
STR 0
L D C ENT
SHFT PREV
ANDST 3 2

SHFT L D A D A A A ENT
ANDST 3 0 3 0 0 0
X B I T D E
SHFT NEXT ENT
SET 1 8 MLR 3 4

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–145


Chapter 5: Standard RLL Instructions - Table Instructions

Fill (FILL)
The Fill instruction fills a table of up to 255 V memory locations with
F ILL
a value (Aaaa), which is either a V memory location or a 4-digit
A aaa
constant. The function parameters are loaded into the first level of the
accumulator stack and the accumulator by two additional instructions.
Listed below are the steps necessary to program the Fill function.
Step 1:— Load the number of V memory locations to be filled into the first level of the
accumulator stack. This parameter must be a HEX value, 0–FF.
Step 2:— Load the starting V memory location for the table into the accumulator. This
parameter must be a HEX value.
Step 3:— Insert the Fill instructions which specifies the value to fill the table with. Helpful
Hint: — For parameters that require HEX values when referencing memory locations, the
LDA instruction can be used to convert an octal address to the HEX equivalent and load the
value into the accumulator.
Operand Data Type DL06 Range
....................................A aaa
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map
Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P See memory map
Constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K 0–FF

In the following example, when X1 is on, the constant value (K4) is loaded into the
accumulator using the Load instruction. This value specifies the length of the table and is
placed on the first level of the accumulator stack when the Load Address instruction is
executed. The octal address 1600 (V1600) is the starting location for the table and is loaded
into the accumulator using the Load Address instruction. The value to fill the table with
(V1400) is specified in the Fill instruction.
DirectS OF T 32 Dis play

X1 Load the cons tant value 4


LD (HE X) into the lower 16 bits S
K4 of the accumulator S

X X X X V1576

C onvert the octal addres s X X X X V1577


LDA
1600 to HE X 380 and load the 2 5 0 0 V1600
O 1600 value into the accumulator V1400
2 5 0 0 V1601
2 5 0 0
2 5 0 0 V1602
F ill the table with the value
F ILL 2 5 0 0 V1603
in V1400
V1400
X X X X V1604
X X X X V1605

Handheld Programmer Keys trokes S


S
$ B ENT
STR 1

SHFT L D PREV E ENT


ANDST 3 4

SHFT L D A B G A A ENT
ANDST 3 0 1 6 0 0

SHFT F I L L B E A A ENT
5 8 ANDST ANDST 1 4 0 0

5–146 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Table Instructions

Find (FIND)
The Find instruction is used to search for a specified value in a
V memory table of up to 255 locations. The function F IND
parameters are loaded into the first and second levels of the A aaa
accumulator stack and the accumulator by three additional
instructions. Listed below are the steps necessary to program
the Find function.
Step 1: Load the length of the table (number of V memory locations) into the second level of
the accumulator stack. This parameter must be a HEX value, 0–FF.
Step 2: Load the starting V memory location for the table into the first level of the
accumulator stack. This parameter must be a HEX value.
Step 3: Load the offset from the starting location to begin the search. This parameter must be
a HEX value.
Step 4: Insert the Find instruction which specifies the first value to be found in the table.
Results:— The offset from the starting address to the first V memory location which contains
the search value is returned to the accumulator. SP53 will be set on if an address outside the
table is specified in the offset or the value is not found. If the value is not found 0 will be
returned in the accumulator.
Helpful Hint: — For parameters that require HEX values when referencing memory
locations, the LDA instruction can be used to convert an octal address to the HEX equivalent
and load the value into the accumulator.
Operand Data Type DL06 Range
....................................A aaa
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map
Constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K 0–FFFF

Discrete Bit Flags Description


SP53 On if there is no value in the table that is equal to the search value.

NOTE: Status flags are only valid until another instruction that uses the same flags is executed. The pointer
for this instruction starts at 0 and resides in the accumulator.

In the following example, when X1 is on, the constant value (K6) is loaded into the
accumulator using the Load instruction. This value specifies the length of the table and is
placed in the second stack location when the following Load Address and Load instruction is
executed. The octal address 1400 (V1400) is the starting location for the table and is loaded
into the accumulator. This value is placed in the first level of the accumulator stack when the
following Load instruction is executed. The offset (K2) is loaded into the lower 16 bits of the
accumulator using the Load instruction. The value to be found in the table is specified in the
Find instruction. If a value is found equal to the search value, the offset (from the starting
location of the table) where the value is located will reside in the accumulator.

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–147


Chapter 5: Standard RLL Instructions - Table Instructions

DirectS OF T 32 Dis play S


S
X1
LD Table length
0 1 2 3 V1400 0
K6 Offs et
0 5 0 0 V1401 1
Load the cons tant value 6
Begin here 9 9 9 9 V1402 2
(HE X) into the lower 16 bits
of the accumulator 3 0 7 4 V1403 3 Accumulator
0 0 0 0 0 0 0 4
LDA 8 9 8 9 V1404 4
1 0 1 0 V1405 V1404 contains the location
O 1400 5
where the match was found.
X X X X V1406 The value 8989 was the 4th
C onvert octal 1400 to HE X location after the s tart of the
300 and load the value into X X X X V1407 s pecified table.
the accumulator.
S
S
LD
K2 Handheld Programmer Keystrokes

$ B
Load the cons tant value ENT
STR 1
2 into the lower 16 bits
of the accumulator L D G
SHFT PREV ENT
ANDST 3 6

L D A B E A
F IND SHFT
ANDST 3 0 1 4 0
K8989
L D C ENT
SHFT PREV
F ind the location in the table ANDST 3 2
where the value 8989 res ides
SHFT F I N D I J I J ENT
NEXT
5 8 TMR 3 8 9 8 9

Find Greater Than (FDGT)


The Find Greater Than instruction is used to search for the
first occurrence of a value in a V memory table that is greater
than the specified value (Aaaa), which can be either a V F DG T
memory location or a 4-digit constant. The function A aaa
parameters are loaded into the first level of the accumulator
stack and the accumulator by two additional instructions.
Listed below are the steps necessary to program the Find
Greater Than function.
Step 1: Load the length of the table (up to 255 locations) into the first level of the
accumulator stack. This parameter must be a HEX value, 0–FF.
Step 2: Load the starting V memory location for the table into the accumulator. This
parameter must be a HEX value.
Step 3: Insert the FDGT instructions which specifies the greater than search value.
Results:— The offset from the starting address to the first V memory location
which contains the greater than search value is returned to the accumulator.
SP53 will be set on if the value is not found and 0 will be returned in the
accumulator.
Helpful Hint: — For parameters that require HEX values when referencing memory
locations, the LDA instruction can be used to convert an octal address to the HEX equivalent
and load the value into the accumulator.
Note: This instruction does not have an offset, such as the one required for the FIND instruction.

5–148 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Table Instructions

Operand Data Type DL06 Range


....................................A aaa
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map
Constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K 0–FFFF

Discrete Bit Flags Description


SP53 On if there is no value in the table that is greater than the search value.

NOTE: Status flags are only valid until another instruction that uses the same flags is executed. The pointer
for this instruction starts at 0 and resides in the accumulator.

In the following example, when X1 is on, the constant value (K6) is loaded into the
accumulator using the Load instruction. This value specifies the length of the table and is
placed in the first stack location after the Load Address instruction is executed. The octal
address 1400 (V1400) is the starting location for the table and is loaded into the accumulator.
The greater than search value is specified in the Find Greater Than instruction. If a value is
found greater than the search value, the offset (from the starting location of the table) where
the value is located will reside in the accumulator. If there is no value in the table that is
greater than the search value, a zero is stored in the accumulator and SP53 will come ON.

DirectS OF T 32 Dis play

X1
LD
K6

Load the cons tant value 6 S


(HE X) into the lower 16 bits S
of the accumulator Table length
Begin here 0 1 2 3 V1400 0
LDA 0 5 0 0 V1401 1 Accumulator
O 1400 9 9 9 9 V1402 2 0 0 0 0 0 0 0 2
C onvert octal 1400 to HE X 3 0 7 4 V1403 3 V1402 contains the location
300 and load the value into 8 9 8 9 V1404 where the firs t value greater
4
the accumulator. than the s earch value was
1 0 1 0 V1405 5 found. 9999 was the 2nd
location after the s tart of the
X X X X V1406 s pecified table.
F DG T
K8989 X X X X V1407

S
F ind the value in the table
greater than the s pecified value S

Handheld Programmer Keystrokes

$ B ENT
STR 1

SHFT L D PREV G ENT


ANDST 3 6

SHFT L D A B E A A ENT
ANDST 3 0 1 4 0 0

SHFT F D G T I J I J
NEXT ENT
5 3 6 MLR 8 9 8 9

DL06 Micro PLC User Manual, 1st Ed., Rev. A


5–149
Chapter 5: Standard RLL Instructions - Table Instructions

Table to Destination (TTD)


The Table To Destination instruction moves a value from a
V memory table to a V memory location and increments
the table pointer by 1. The first V memory location in the
table contains the table pointer which indicates the next
TTD
location in the table to be moved. The instruction will be
Aaaa
executed once per scan provided the input remains on. The
table pointer will reset to 1 when the value equals the last
location in the table. The function parameters are loaded
into the first level of the accumulator stack and the
accumulator by two additional instructions. Listed below
are the steps necessary to program the Table To Destination
function.
Step 1: Load the length of the data table (number of V memory locations) into the
first level of the accumulator stack. This parameter must be a HEX value, 0 to
FF.
Step 2: Load the starting V memory location for the table into the accumulator.
(Remember, the starting location of the table is used as the table pointer.) This
parameter must be a HEX value.
Step 3: Insert the TTD instruction which specifies destination V memory location
(Vaaa).
Helpful Hint: — For parameters that require HEX values when referencing memory
locations, the LDA instruction can be used to convert an octal address to the HEX equivalent
and load the value into the accumulator.
Helpful Hint:— The instruction will be executed every scan if the input logic is on. If you do
not want the instruction to execute for more than one scan, a one shot (PD) should be used
in the input logic.
Helpful Hint: — The pointer location should be set to the value where the table operation
will begin. The special relay SP0 or a one shot (PD) should be used so the value will only be
set in one scan and will not affect the instruction operation.

Operand Data Type DL06 Range


....................................A aaa
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map

Discrete Bit Flags Description


SP56 On when the table pointer equals the table length.

NOTE: Status flags (SPs) are only valid until: — another instruction that uses the same flag is executed, or
— the end of the scan The pointer for this instruction starts at 0 and resets when the table length is
reached. At first glance it may appear that the pointer should reset to 0. However, it resets to 1, not 0.

5–150 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Table Instructions

In the following example, when X1 is on, the constant value (K6) is loaded into the
accumulator using the Load instruction. This value specifies the length of the table and is
placed in the first stack location after the Load Address instruction is executed. The octal
address 1400 (V1400) is the starting location for the source table and is loaded into the
accumulator. Remember, V1400 is used as the pointer location, and is not actually part of the
table data source. The destination location (V1500) is specified in the Table to Destination
instruction. The table pointer (V1400 in this case) will be increased by “1” after each
execution of the TTD instruction.
DirectSOFT32

X1 LD Load the constant value 6


(HEX) into the lower 16 bits
K6 of the accumulator

Convert octal 1400 to HEX


LDA
300 and load the value into
0 1400 the accumulator. This is the
table pointer location

Copy the specified value from


TTD
the table to the specified
V1500 destination (V1500)

Handheld Programmer Keystrokes

$ B ENT
STR 1

SHFT L D PREV G ENT


ANDST 3 6

SHFT L D A B E A A ENT
ANDST 3 0 1 4 0 0

SHFT T T D B F A A ENT
MLR MLR 3 1 5 0 0

It is important to understand how the table


Table Table Pointer
locations are numbered. If you examine the
V1401 0 5 0 0 0 6 0 0 0 0 V1400
example table, you’ll notice that the first data V1402 9 9 9 9 1
location, V1401, will be used when the V1403 3 0 7 4 2
Des tination

pointer is equal to zero, and again when the V1404 8 9 8 9 3


X X X X V1500

pointer is equal to six. Why? Because the V1405 1 0 1 0 4

pointer is only equal to zero before the very V1406 2 0 4 6 5


V1407 X X X X
first execution. From then on, it increments
S
from one to six, and then resets to one. S

Also, our example uses a normal input contact DirectSOFT32 (optional latch example using SP56)

(X1) to control the execution. Since the CPU X1 C0


PD
scan is extremely fast, and the pointer
C1
increments automatically, the table would LD
K6
cycle through the locations very quickly. If this Load the constant value 6
is a problem, you have an option of using (HEX) into the lower 16 bits
of the accumulator
SP56 in conjunction with a one-shot (PD) C0 C1
and a latch (C1 for example) to allow the table SET

to cycle through all locations one time and SP56 C1


RST
then stop. The logic shown here is not
required, it’s just an optional method. Since Special Relays are
reset at the end of the scan,
this latch must follow the TTD
instruction in the program

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–151


Chapter 5: Standard RLL Instructions - Table Instructions

The following diagram shows the scan-by-scan results of the execution for our example
program. Notice how the pointer automatically cycles from 0 – 6, and then starts over at 1
instead of 0. Also, notice how SP56 is only on until the end of the scan.

Scan N Before TTD Execution After TTD Execution

Table Table Pointer Table Table Pointer (Automatically Incremented)


V1401 0 5 0 0 0 6 0 0 0 0 V1400 V1401 0 5 0 0 0 6 0 0 0 1 V1400

V1402 9 9 9 9 1 V1402 9 9 9 9 1
Destination Destination
V1403 3 0 7 4 2 V1403 3 0 7 4 2
X X X X V1500 0 5 0 0 V1500
V1404 8 9 8 9 3 V1404 8 9 8 9 3
V1405 1 0 1 0 4 V1405 1 0 1 0 4
SP56 SP56
V1406 2 0 4 6 5 V1406 2 0 4 6 5
SP56 = OFF SP56 = OFF
V1407 X X X X V1407 X X X X

S S
S S

Scan N+1 Before TTD Execution After TTD Execution

Table Table Pointer Table Table Pointer (Automatically Incremented)


V1401 0 5 0 0 0 6 0 0 0 1 V1400 V1401 0 5 0 0 0 6 0 0 0 2 V1400
V1402 9 9 9 9 1 V1402 9 9 9 9 1
Destination Destination
V1403 3 0 7 4 2 V1403 3 0 7 4 2
0 5 0 0 V1500 9 9 9 9 V1500
V1404 8 9 8 9 3 V1404 8 9 8 9 3
V1405 1 0 1 0 4 V1405 1 0 1 0 4
2 0 4 6 5 SP56 2 0 4 6 5 SP56
V1406 V1406
SP56 = OFF SP56 = OFF
V1407 X X X X V1407 X X X X
S S
S S

S
S
S

Scan N+5 Before TTD Execution After TTD Execution

Table Table Pointer Table Table Pointer (Automatically Incremented)


V1401 0 5 0 0 0 6 0 0 0 5 V1400 V1401 0 5 0 0 0 6 0 0 0 6 V1400
V1402 9 9 9 9 1 V1402 9 9 9 9 1
Destination Destination
V1403 3 0 7 4 2 V1403 3 0 7 4 2
1 0 1 0 V1500 2 0 4 6 V1500
V1404 8 9 8 9 3 V1404 8 9 8 9 3
V1405 1 0 1 0 4 V1405 1 0 1 0 4
V1406 2 0 4 6 5 SP56 V1406 2 0 4 6 5 SP56
SP56 = OFF SP56 = ON
V1407 X X X X V1407 X X X X
until end of scan
S S or next instruction
S S that uses SP56

Scan N+6 Before TTD Execution After TTD Execution

Table Table Pointer Table Table Pointer (Resets to 1, not 0)


V1401 0 5 0 0 0 6 0 0 0 6 V1400 V1401 0 5 0 0 0 6 0 0 0 1 V1400

V1402 9 9 9 9 1 V1402 9 9 9 9 1
Destination Destination
V1403 3 0 7 4 2 V1403 3 0 7 4 2
2 0 4 6 V1500 0 5 0 0 V1500
V1404 8 9 8 9 3 V1404 8 9 8 9 3
V1405 1 0 1 0 4 V1405 1 0 1 0 4
V1406 2 0 4 6 5 SP56 V1406 2 0 4 6 5 SP56
V1407 X X X X SP56 = OFF V1407 X X X X SP56 = OFF

S S
S S

5–152 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Table Instructions

Remove from Bottom (RFB)


The Remove From Bottom instruction moves a value from the
bottom of a V memory table to a V memory location and
decrements a table pointer by 1. The first V memory location in RFB
the table contains the table pointer which indicates the next Aaaa
location in the table to be moved. The instruction will be executed
once per scan provided the input remains on. The instruction will
stop operation when the pointer equals 0. The function
parameters are loaded into the first level of the accumulator stack
and the accumulator by two additional instructions. Listed below
are the steps necessary to program the Remove From Bottom
function.
Step 1:— Load the length of the table (number of V memory locations) into the first level of
the accumulator stack. This parameter must be a HEX value, 0 to FF.
Step 2:— Load the starting V memory location for the table into the accumulator.
(Remember, the starting location of the table blank is used as the table pointer.) This
parameter must be a HEX value.
Step 3:— Insert the RFB instructions which specifies destination V memory location (Vaaa).
Helpful Hint: — For parameters that require HEX values when referencing memory
locations, the LDA instruction can be used to convert an octal address to the HEX equivalent
and load the value into the accumulator.
Helpful Hint:— The instruction will be executed every scan if the input logic is on. If you do
not want the instruction to execute for more than one scan, a one shot (PD) should be used
in the input logic.
Helpful Hint: — The pointer location should be set to the value where the table operation
will begin. The special relay SP0 or a one shot (PD) should be used so the value will only be
set in one scan and will not affect the instruction operation.

Operand Data Type DL06 Range


....................................A aaa
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map

Discrete Bit Flags Description


SP56 On when the table pointer equals 0.

NOTE: Status flags (SPs) are only valid until another instruction that uses the same flag is executed, or the
end of the scan The pointer for this instruction can be set to start anywhere in the table. It is not set
automatically. You have to load a value into the pointer somewhere in your program.

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–153


Chapter 5: Standard RLL Instructions - Table Instructions

In the following example, when X1 is on, the constant value (K6) is loaded into the
accumulator using the Load instruction. This value specifies the length of the table and is
placed in the first stack location after the Load Address instruction is executed. The octal
address 1400 (V1400) is the starting location for the source table and is loaded into the
accumulator. Remember, V1400 is used as the pointer location, and is not actually part of the
table data source. The destination location (V1500) is specified in the Remove From Bottom.
The table pointer (V1400 in this case) will be decremented by “1” after each execution of the
RFB instruction.
DirectSOFT32

X1 LD

K6

Load the constant value 6


(HEX) into the lower 16 bits
of the accumulator

LDA
0 1400

Convert octal 1400 to HEX


300 and load the value into
the accumulator. This is the
table pointer location

RFB
V1500
Copy the specified value from
the table to the specified
destination (V1500)

Handheld Programmer Keystrokes

$ B ENT
STR 1

SHFT L D PREV G ENT


ANDST 3 6

SHFT L D A B E A A ENT
ANDST 3 0 1 4 0 0

SHFT R F B B F A A ENT
ORN 5 1 1 5 0 0

Table Table Pointer


It is important to understand how the table
V1401 0 5 0 0 1 0 0 0 0 V1400
locations are numbered. If you examine the V1402 9 9 9 9 2
example table, you’ll notice that the first data V1403 3 0 7 4 3
Des tination

location, V1401, will be used when the pointer is V1404 8 9 8 9 4


X X X X V1500

equal to one. The second data location, V1402, V1405 1 0 1 0 5

will be used when the pointer is equal to two, etc. V1406 2 0 4 6 6


V1407 X X X X
S
S

DirectSOFT32 Display (optional one-shot method)


Also, our example uses a normal input contact X1 C0
(X1) to control the execution. Since the CPU scan PD

is extremely fast, and the pointer decrements C0


LD

automatically, the table would cycle through the K6


Load the constant value 6
locations very quickly. If this is a problem for your (HEX) into the lower 16 bits
of the accumulator
application, you have an option of using a one-
shot (PD) to remove one value each time the LDA
O 1400
input contact transitions from low to high.
Convert octal 1400 to HEX
300 and load the value into
the accumulator. This is the
table pointer location.

5–154 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Table Instructions

The following diagram shows the scan-by-scan results of the execution for our example
program. Notice how the pointer automatically decrements from 6 – 0. Also, notice how
SP56 is only on until the end of the scan.

Example of Execution
Scan N Before RFB Execution After RFB Execution

Table Table Pointer Table Table Pointer (Automatically Decremented)


V1401 0 5 0 0 1 0 0 0 6 V1400 V1401 0 5 0 0 1 0 0 0 5 V1400
V1402 9 9 9 9 2 V1402 9 9 9 9 2
Destination Destination
V1403 3 0 7 4 3 V1403 3 0 7 4 3
X X X X V1500 2 0 4 6 V1500
V1404 8 9 8 9 4 V1404 8 9 8 9 4

V1405 1 0 1 0 5 V1405 1 0 1 0 5
SP56 SP56
V1406 2 0 4 6 6 V1406 2 0 4 6 6
SP56 = OFF SP56 = OFF
V1407 X X X X V1407 X X X X

S S
S S

Scan N+1 Before RFB Execution After RFB Execution

Table Table Pointer Table Table Pointer (Automatically Decremented)


V1401 0 5 0 0 1 0 0 0 5 V1400 V1401 0 5 0 0 1 0 0 0 4 V1400
V1402 9 9 9 9 2 V1402 9 9 9 9 2
Destination Destination
V1403 3 0 7 4 3 V1403 3 0 7 4 3
2 0 4 6 V1500 1 0 1 0 V1500
V1404 8 9 8 9 4 V1404 8 9 8 9 4
V1405 1 0 1 0 5 V1405 1 0 1 0 5
V1406 2 0 4 6 6 SP56 V1406 2 0 4 6 6 SP56
SP56 = OFF SP56 = OFF
V1407 X X X X V1407 X X X X
S S
S S

S
S
S

Scan N+4 Before RFB Execution After RFB Execution

Table Table Pointer Table Table Pointer (Automatically Decremented)

V1401 0 5 0 0 1 0 0 0 2 V1400 V1401 0 5 0 0 1 0 0 0 1 V1400


V1402 9 9 9 9 2 V1402 9 9 9 9 2
Destination Destination
V1403 3 0 7 4 3 V1403 3 0 7 4 3
3 0 7 4 V1500 9 9 9 9 V1500
V1404 8 9 8 9 4 V1404 8 9 8 9 4
V1405 1 0 1 0 5 V1405 1 0 1 0 5
V1406 2 0 4 6 6 SP56 V1406 2 0 4 6 6 SP56
X X X X SP56 = OFF X X X X SP56 = OFF
V1407 V1407
S S
S S

Scan N+5 Before RFB Execution After RFB Execution

Table Table Pointer Table Table Pointer


V1401 0 5 0 0 1 0 0 0 1 V1400 V1401 0 5 0 0 1 0 0 0 0 V1400

V1402 9 9 9 9 2 V1402 9 9 9 9 2
Destination Destination
V1403 3 0 7 4 3 V1403 3 0 7 4 3
9 9 9 9 V1500 0 5 0 0 V1500
V1404 8 9 8 9 4 V1404 8 9 8 9 4
V1405 1 0 1 0 5 V1405 1 0 1 0 5

V1406 2 0 4 6 6 SP56 V1406 2 0 4 6 6 SP56


V1407 X X X X SP56 = OFF V1407 X X X X SP56 = ON
until end of scan
S S or next instruction
S S that uses SP56

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–155


Chapter 5: Standard RLL Instructions - Table Instructions

Source to Table (STT)


The Source To Table instruction moves a value from a V
memory location into a V memory table and increments a
table pointer by 1. When the table pointer reaches the end
of the table, it resets to 1. The first V memory location in STT
the table contains the table pointer which indicates the V aaa
next location in the table to store a value. The instruction
will be executed once per scan provided the input remains
on. The function parameters are loaded into the first level
of the accumulator stack and the accumulator with two
additional instructions. Listed below are the steps
necessary to program the Source To Table function.
Step 1: Load the length of the table (number of V memory locations) into the first
level of the accumulator stack. This parameter must be a HEX value, 0 to FF.
Step 2: Load the starting V memory location for the table into the accumulator.
(Remember, the starting location of the table is used as the table pointer.) This
parameter must be a HEX value.
Step 3: Insert the STT instruction which specifies the source V memory location
(Vaaa). This is where the value will be moved from.
Helpful Hint: — For parameters that require HEX values when referencing memory
locations, the LDA instruction can be used to convert an octal address to the HEX equivalent
and load the value into the accumulator.
Helpful Hint:— The instruction will be executed every scan if the input logic is on. If you do
not want the instruction to execute for more than one scan, a one shot (PD) should be used
in the input logic.
Helpful Hint: — The table counter value should be set to indicate the starting point for the
operation. Also, it must be set to a value that is within the length of the table. For example, if
the table is 6 words long, then the allowable range of values that could be in the pointer
should be between 0 and 6. If the value is outside of this range, the data will not be moved.
Also, a one shot (PD) should be used so the value will only be set in one scan and will not
affect the instruction operation.
Operand Data Type DL06 Range
aaa
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map

Discrete Bit Flags Description


SP56 On when the table pointer equals the table length.

NOTE: Status flags (SPs) are only valid until: — another instruction that uses the same flag is executed, or
— the end of the scan The pointer for this instruction starts at 0 and resets to 1 automatically when
the table length is reached.

5–156 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Table Instructions

In the following example, when X1 is on, the constant value (K6) is loaded into the
accumulator using the Load instruction. This value specifies the length of the table and is
placed in the first stack location after the Load Address instruction is executed. The octal
address 1400 (V1400), which is the starting location for the destination table and table
pointer, is loaded into the accumulator. The data source location (V1500) is specified in the
Source to Table instruction. The table pointer will be increased by “1” after each time the
instruction is executed.
DirectS OF T 32

X1 LD
K6

Load the constant value 6


(HEX) into the the lower 16 bits
of the accumulator

LDA
0 1400

Convert octal 1400 to HEX


300 and load the value into
the accumulator

STT
V1500

Copy the specified value


from the source location
(V1500) to the table

Handheld Programmer Keystrokes

$ B ENT
STR 1

SHFT L D PREV G ENT


ANDST 3 6

SHFT L D A B E A A ENT
ANDST 3 0 1 4 0 0

SHFT S T T B F A A
SHFT ENT
RST MLR MLR 1 5 0 0

It is important to understand how the table locations Table Table Pointer

are numbered. If you examine the example table, V1401 X X X X 0 6 0 0 0 0 V1400

you’ll notice that the first data storage location, V1402 X X X X 1


Data S ource
V1401, will be used when the pointer is equal to V1403 X X X X 2
0 5 0 0 V1500
V1404 X X X X 3
zero, and again when the pointer is equal to six.
V1405 X X X X 4
Why? Because the pointer is only equal to zero before X X X X 5
V1406
the very first execution. From then on, it increments V1407 X X X X
from one to six, and then resets to one. S
S
Also, our example uses a normal input contact (X1)
DirectSOFT32 (optional one-shot method)
to control the execution. Since the CPU scan is X1 C0
extremely fast, and the pointer increments PD

automatically, the source data would be moved into C0


LD
K6
all the table locations very quickly. If this is a problem Load the constant value 6
(HEX) into the lower 16 bits
for your application, you have an option of using a of the accumulator

one-shot (PD) to move one value each time the input LDA

contact transitions from low to high. O 1400

Convert octal 1400 to HEX


300 and load the value into
the accumulator. This is the
starting table location.

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–157


Chapter 5: Standard RLL Instructions - Table Instructions

The following diagram shows the scan-by-scan results of the execution for our example
program. Notice how the pointer automatically cycles from 0 – 6, and then starts over at 1
instead of 0. Also, notice how SP56 is affected by the execution. Although our example does
not show it, we are assuming that there is another part of the program that changes the value
in V1500 (data source) prior to the execution of the STT instruction. This is not required,
but it makes it easier to see how the data source is copied into the table.

Scan N Before STT Execution After STT Execution

Table Table Pointer Table Table Pointer (Automatically Incremented)


V1401 X X X X 0 6 0 0 0 0 V1400 V1401 0 5 0 0 0 6 0 0 0 1 V1400

V1402 X X X X 1 V1402 X X X X 1
Source Source
V1403 X X X X 2 V1403 X X X X 2
0 5 0 0 V1500 0 5 0 0 V1500
V1404 X X X X 3 V1404 X X X X 3
V1405 X X X X 4 V1405 X X X X 4
SP56 SP56
V1406 X X X X 5 V1406 X X X X 5
SP56 = OFF SP56 = OFF
V1407 X X X X V1407 X X X X

S S
S S

Scan N+1 Before STT Execution After STT Execution


Table Table Pointer Table Table Pointer (Automatically Incremented)
V1401 0 5 0 0 0 6 0 0 0 1 V1400 V1401 0 5 0 0 0 6 0 0 0 2 V1400
V1402 X X X X 1 V1402 9 9 9 9 1
Source Source
V1403 X X X X 2 V1403 X X X X 2
9 9 9 9 V1500 9 9 9 9 V1500
V1404 X X X X 3 V1404 X X X X 3
V1405 X X X X 4 V1405 X X X X 4
V1406 X X X X 5 SP56 5 SP56
V1406 X X X X
SP56 = OFF SP56 = OFF
V1407 X X X X V1407 X X X X
S S
S S

S
S
S

Scan N+5 Before STT Execution After STT Execution


Table Table Pointer Table Table Pointer (Automatically Incremented)
V1401 0 5 0 0 0 6 0 0 0 5 V1400 V1401 0 5 0 0 0 6 0 0 0 6 V1400
V1402 9 9 9 9 1 V1402 9 9 9 9 1
Source Source
V1403 3 0 7 4 2 V1403 3 0 7 4 2
2 0 4 6 V1500 2 0 4 6 V1500
V1404 8 9 8 9 3 V1404 8 9 8 9 3
V1405 1 0 1 0 4 V1405 1 0 1 0 4
V1406 X X X X 5 SP56 V1406 2 0 4 6 5 SP56
X X X X SP56 = OFF X X X X SP56 = ON
V1407 V1407 until end of scan
S S or next instruction
that uses SP56
S S

Scan N+6 Before STT Execution After STT Execution

Table Table Pointer Table Table Pointer (Resets to 1, not 0)


V1401 0 5 0 0 0 6 0 0 0 6 V1400 V1401 1 2 3 4 0 6 0 0 0 1 V1400

V1402 9 9 9 9 1 V1402 9 9 9 9 1
Source Source
V1403 3 0 7 4 2 V1403 3 0 7 4 2
1 2 3 4 V1500 1 2 3 4 V1500
V1404 8 9 8 9 3 V1404 8 9 8 9 3
V1405 1 0 1 0 4 V1405 1 0 1 0 4
V1406 2 0 4 6 5 SP56 V1406 2 0 4 6 5 SP56
V1407 SP56 = OFF SP56 = OFF
X X X X V1407 X X X X

S S
S S

5–158 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Table Instructions

Remove from Table (RFT)


The Remove From Table instruction pops a value off of a table and
stores it in a V memory location. When a value is removed from
the table all other values are shifted up 1 location. The first V RFT
memory location in the table contains the table length counter. The V aaa
table counter decrements by 1 each time the instruction is
executed. If the length counter is zero or greater than the maximum
table length (specified in the first level of the accumulator stack)
the instruction will not execute and SP56 will be on.
The instruction will be executed once per scan provided the input remains on. The function
parameters are loaded into the first level of the accumulator stack and the accumulator by two
additional instructions. Listed below are the steps necessary to program the Remove From
Table function.
Step 1: Load the length of the table (number of V memory locations) into the first
level of the accumulator stack. This parameter must be a HEX value, 0 to FF.
Step 2: Load the starting V memory location for the table into the accumulator.
(Remember, the starting location of the table is used as the table length
counter.) This parameter must be a HEX value.
Step 3: Insert the RFT instructions which specifies destination V memory location
(Vaaa). This is where the value will be moved to.
Helpful Hint: — For parameters that require HEX values when referencing memory
locations, the LDA instruction can be used to convert an octal address to the HEX equivalent
and load the value into the accumulator.
Helpful Hint:— The instruction will be executed every scan if the input logic is on. If you do
not want the instruction to execute for more than one scan, a one shot (PD) should be used
in the input logic.
Helpful Hint: — The table counter value should be set to indicate the starting point for the
operation. Also, it must be set to a value that is within the length of the table. For example, if
the table is 6 words long, then the allowable range of values that could be in the table counter
should be between 1 and 6. If the value is outside of this range or zero, the data will not be
moved from the table. Also, a one shot (PD) should be used so the value will only be set in
one scan and will not affect the instruction operation.
Operand Data Type DL06 Range
aaa
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map

Discrete Bit Flags Description


SP56 On when the table counter equals 0.

NOTE: Status flags (SPs) are only valid until another instruction that uses the same flag is executed, or the
end of the scan The pointer for this instruction can be set to start anywhere in the table. It is not set
automatically. You have to load a value into the pointer somewhere in your program.

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–159


Chapter 5: Standard RLL Instructions - Table Instructions

In the following example, when X1 is on, the constant value (K6) is loaded into the
accumulator using the Load instruction. This value specifies the length of the table and is
placed in the first stack location after the Load Address instruction is executed. The octal
address 1400 (V1400) is the starting location for the source table and is loaded into the
accumulator. The destination location (V1500) is specified in the Remove from Table
instruction. The table counter will be decreased by “1” after the instruction is executed.
DirectSOFT32 Display

X1 LD Load the constant value 6


(Hex.) into the lower 16 bits
K6 of the accumulator

LDA Convert octal 1400 to HEX


300 and load the value into
O 1400 the accumulator

RFT Copy the specified value


from the table to the
V1500 specified location (V1500)

Handheld Programmer Keystrokes

$ B ENT
STR 1

SHFT L D PREV G ENT


ANDST 3 6

SHFT L D A B E A A ENT
ANDST 3 0 1 4 0 0

SHFT R F T B F A A ENT
ORN 5 MLR 1 5 0 0

Since the table counter specifies the range of data Table Table C ounter
that will be removed from the table, it is important 0 5 0 0 1 0 0 0 6 V1400
V1401
to understand how the table locations are V1402 9 9 9 9 2
numbered. If you examine the example table, you’ll V1403 3 0 7 4 3
Des tination
notice that the data locations are numbered from 8 9 8 9 4
X X X X V1500
V1404
the top of the table. For example, if the table V1405 1 0 1 0 5
counter started at 6, then all six of the locations V1406 2 0 4 6 6
would be affected during the instruction execution. X X X X
V1407
S
S
DirectSOFT32 Display (optional one-shot method)

X1 C0
Also, our example uses a normal input contact (X1) PD

to control the execution. Since the CPU scan is C0 LD


extremely fast, and the pointer decrements K6

automatically, the data would be removed from the Load the constant value 6
(HEX) into the lower 16 bits
table very quickly. If this is a problem for your of the accumulator

application, you have an option of using a one-shot LDA


O 1400
(PD) to remove one value each time the input
Convert octal 1400 to HEX
contact transitions from low to high. 300 and load the value into
the accumulator. This is the
table pointer location.

5–160 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Table Instructions

The following diagram shows the scan-by-scan results of the execution for our example
program. In our example we’re showing the table counter set to 4 initially. (Remember, you
can set the table counter to any value that is within the range of the table.) The table counter
automatically decrements from 4–0 as the instruction is executed. Notice how the last two
table positions, 5 and 6, are not moved up through the table. Also, notice how SP56, which
comes on when the table counter is zero, is only on until the end of the scan.

Scan N
Before RFT Execution After RFT Execution
Table Counter
Table Table Counter Table (Automatically d ecremented)

Table Counter V1401 0 5 0 0 1 0 0 0 4 V1400 V1401 9 9 9 9 1 0 0 0 0 3 V1400


indicates that 5
V1402 9 9 9 9 2 V1402 4 0 7 9 2 0
these 4 Destination 0 Destination
positions will V1403 3 0 7 4 3 V1403 8 9 8 9 3
be X X X X V1500 0 5 0 0 V1500
V1404 8 9 8 9 4 Start here V1404 8 9 8 9 4
used
V1405 1 0 1 0 5 V1405 1 0 1 0 5
SP56 SP56
V1406 2 0 4 6 6 V1406 2 0 4 6 6
SP56 = OFF SP56 = OFF
V1407 X X X X V1407 X X X X

Scan N+1 Before RFT Execution After RFT Execution


Table Counter
Table Table Counter Table (Automatically decremented)
V1401 9 9 9 9 1 0 0 0 3 V1400 V1401 4 0 7 9 1 9 0 0 0 2 V1400
9
V1402 4 0 7 9 2 V1402 8 9 8 9 2 9
Destination 9 Destination
V1403 8 9 8 9 3 Start here V1403 8 9 8 9 3
0 5 0 0 V1500 9 9 9 9 V1500
V1404 8 9 8 9 4 V1404 8 9 8 9 4
V1405 1 0 1 0 5 V1405 1 0 1 0 5
V1406 6 SP56 6 SP56
2 0 4 6 V1406 2 0 4 6
SP56 = OFF SP56 = OFF
V1407 X X X X V1407 X X X X

Scan N+2 Before RFT Execution After RFT Execution


Table Counter
Table Counter (Automatically decremented)
Table Table
V1401 4 0 7 9 1 0 0 0 2 V1400 V1401 8 9 8 9 1 4 0 0 0 1 V1400
0
V1402 8 9 8 9 2 Start here V1402 8 9 8 9 2 7
Destination 9
8 9 8 9 3 8 9 8 9 3 Destination
V1403 V1403
9 9 9 9 V1500 4 0 7 9 V1500
V1404 8 9 8 9 4 V1404 8 9 8 9 4
V1405 1 0 1 0 5 V1405 1 0 1 0 5
V1406 2 0 4 6 6 SP56 V1406 2 0 4 6 6 SP56
X X X X SP56 = OFF X X X X SP56 = OFF
V1407 V1407

Scan N+3 Before RFT Execution After RFT Execution


Table Counter
Table Counter (Automatically decremented)
Table Table
V1401 8 9 8 9 1 0 0 0 1 V1400 Start here V1401 8 9 8 9 1 8 0 0 0 0 V1400
9
V1402 8 9 8 9 2 V1402 8 9 8 9 2 8
Destinatio 9
V1403 8 9 8 9 3 V1403 8 9 8 9 3 Destination
4 0 7 9 V1500 8 9 8 9 V1500
V1404 8 9 8 9 4 V1404 8 9 8 9 4
V1405 1 0 1 0 5 V1405 1 0 1 0 5
V1406 2 0 4 6 6 SP56 V1406 2 0 4 6 6 SP56
X X X X SP56 = OFF X X X X SP56 = ON
V1407 V1407
until end of scan
or next instruction
that uses SP56

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–161


Chapter 5: Standard RLL Instructions - Table Instructions

Add to Top (ATT)


The Add To Top instruction pushes a value on to a V AT T
memory table from a V memory location. When the V aaa
value is added to the table all other values are pushed
down 1 location.
The instruction will be executed once per scan provided the input remains on. The function
parameters are loaded into the first level of the accumulator stack and the accumulator by two
additional instructions. Listed below are the steps necessary to program the Add To Top
function.
Step 1: Load the length of the table (number of V memory locations) into the first
level of the accumulator stack. This parameter must be a HEX value, 0 to FF.
Step 2 Load the starting V memory location for the table into the accumulator.
(Remember, the starting location of the table is used as the table length
counter.) This parameter must be a HEX value.
Step 3: Insert the ATT instructions which specifies source V memory location (Vaaa).
This is where the value will be moved from.
Helpful Hint:— The instruction will be executed every scan if the input logic is on. If you do
not want the instruction to execute for more than one scan, a one shot (PD) should be used
in the input logic.
Helpful Hint: — For parameters that require HEX values when referencing memory
locations, the LDA instruction can be used to convert an octal address to the HEX equivalent
and load the value into the accumulator.
Helpful Hint: — The table counter value should be set to indicate the starting point for the
operation. Also, it must be set to a value that is within the length of the table. For example, if
the table is 6 words long, then the allowable range of values that could be in the table counter
should be between 1 and 6. If the value is outside of this range or zero, the data will not be
moved into the table. Also, a one shot (PD) should be used so the value will only be set in
one scan and will not affect the instruction operation.

Operand Data Type DL06 Range


aaa
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map

Discrete Bit Flags Description


SP56 On when the table counter is equal to the table size.

NOTE: Status flags (SPs) are only valid until: — another instruction that uses the same flag is executed, or
— the end of the scan The pointer for this instruction can be set to start anywhere in the table. It is not set
automatically. You have to load a value into the pointer somewhere in your program.

5–162 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Table Instructions

In the following example, when X1 is on, the constant value (K6) is loaded into the
accumulator using the Load instruction. This value specifies the length of the table and is
placed in the first stack location after the Load Address instruction is executed. The octal
address 1400 (V1400), which is the starting location for the destination table and table
counter, is loaded into the accumulator. The source location (V1500) is specified in the Add
to Top instruction. The table counter will be increased by “1” after the instruction is
executed.
DirectSOFT32 Display

X1 LD
K6

Load the constant value 6


(Hex.) into the lower 16 bits
of the accumulator

LDA
O 1400

Convert octal 1400 to HEX


300 and load the value into
the accumulator

ATT
V1500

Copy the specified value


from V1500 to the table

Handheld Programmer Keystrokes

$ B ENT
STR 1

SHFT L D PREV G ENT


ANDST 3 6

SHFT L D A B E A A ENT
ANDST 3 0 1 4 0 0

SHFT A T T B F A A ENT
0 MLR MLR 1 5 0 0

For the ATT instruction, the table counter Table Table Counter
determines the number of additions that can be V1401 0 5 0 0 1 0 0 0 2 V1400
made before the instruction will stop executing. So, V1402 9 9 9 9 2
it is helpful to understand how the system uses this V1403 3 0 7 4 3
Data Source
counter to control the execution. V1404 8 9 8 9 4
X X X X V1500

For example, if the table counter was set to 2, and V1405 1 0 1 0 5


the table length was 6 words, then there could only V1406 2 0 4 6 6
be 4 additions of data before the execution was V1407 X X X X
stopped. This can easily be calculated by:
( e .g .: 6 - 2 = 4 )
Table length – table counter = number of executions
DirectSOFT32 Display (optional one-shot method)
Also, our example uses a normal input contact (X1)
X1 C0
to control the execution. Since the CPU scan is PD
extremely fast, and the table counter increments C0
LD
automatically, the data would be moved into the K6
table very quickly. If this is a problem for your Load the constant value 6
(HEX) into the lower 16 bits
application, you have an option of using a one-shot of the accumulator
(PD) to add one value each time the input contact LDA
transitions from low to high. O 1400

Convert octal 1400 to HEX


300 and load the value into
the accumulator. This is the
starting table location.

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–163


Chapter 5: Standard RLL Instructions - Table Instructions

The following diagram shows the scan-by-scan results of the execution for our example
program. The table counter is set to 2 initially, and it will automatically increment from 2 – 6
as the instruction is executed. Notice how SP56 comes on when the table counter is 6, which
is equal to the table length. Plus, although our example does not show it, we are assuming
that there is another part of the program that changes the value in V1500 (data source) prior
to the execution of the ATT instruction.
Example of Execution
Scan N Before ATT Execution After ATT Execution
Table counter
Table Table counter Table (Automatically Incremented)

V1401 0 5 0 0 1 0 0 0 2 V1400 V1401 1 2 3 4 1 1 0 0 0 3 V1400


2
V1402 9 9 9 9 2 V1402 0 5 0 0 2 3
Data Source 4 Data Source
V1403 3 0 7 4 3 V1403 9 9 9 9 3
1 2 3 4 V1500 1 2 3 4 V1500
V1404 8 9 8 9 4 V1404 3 0 7 4 4

V1405 1 0 1 0 5 V1405 8 9 8 9 5
SP56 SP56
V1406 2 0 4 6 6 V1406 1 0 1 0 6
SP56 = OFF SP56 = OFF
V1407 X X X X V1407 X X X X

Discard Bucket
2046

Scan N+1 Before ATT Execution After ATT Execution


Table counter
Table Table counter Table (Automatically Incremented)
V1401 1 2 3 4 1 0 0 0 3 V1400 V1401 5 6 7 8 1 5 0 0 0 4 V1400
6
V1402 0 5 0 0 2 V1402 1 2 3 4 2 7
Data Source 8 Data Source
V1403 9 9 9 9 3 V1403 0 5 0 0 3
5 6 7 8 V1500 5 6 7 8 V1500
V1404 3 0 7 4 4 V1404 9 9 9 9 4
V1405 8 9 8 9 5 V1405 3 0 7 4 5
6 SP56 SP56
V1406 1 0 1 0 V1406 8 9 8 9 6
SP56 = OFF SP56 = OFF
V1407 X X X X V1407 X X X X

Discard Bucket
1010

Scan N+2 Before ATT Execution After ATT Execution Table counter
Table counter Table (Automatically Incremented)
Table
V1401 5 6 7 8 1 0 0 0 4 V1400 V1401 4 3 4 3 1 4 0 0 0 5 V1400
3
V1402 1 2 3 4 2 V1402 5 6 7 8 2 4
3 Data Source
Data Source
V1403 0 5 0 0 3 V1403 1 2 3 4 3
4 3 3 4 V1500 4 3 4 3 V1500
V1404 9 9 9 9 4 V1404 0 5 0 0 4
V1405 3 0 7 4 5 V1405 9 9 9 9 5
V1406 8 9 8 9 6 SP56 V1406 3 0 7 4 6 SP56
X X X X SP56 = OFF X X X X SP56 = OFF
V1407 V1407
Discard Bucket
8989

Scan N+3 Before ATT Execution After ATT Execution Table counter
Table Table counter Table (Automatically Incremented)

V1401 4 3 4 3 1 0 0 0 5 V1400 V1401 7 7 7 7 1 7 0 0 0 6 V1400


7
V1402 5 6 7 8 2 V1402 4 3 4 3 2 7
Data Source 7
1 2 3 4 5 6 7 8 3 Data Source
V1403 3 V1403
7 7 7 7 V1500 7 7 7 7 V1500
V1404 0 5 0 0 4 V1404 1 2 3 4 4
V1405 9 9 9 9 5 V1405 0 5 0 0 5
V1406 3 0 7 4 6 SP56 V1406 9 9 9 9 6 SP56
V1407 SP56 = OFF SP56 = ON
X X X X V1407 X X X X until end of scan
Discard Bucket or next instruction
3074 that uses SP56

5–164 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Table Instructions

Table Shift Left (TSHFL)


The Table Shift Left instruction shifts all the bits in a V- T S HF L
memory table to the left, the specified number of bit A aaa
positions.
Table Shift Right (TSHFR)
The Table Shift Right instruction shifts all the bits in a V- TSHFR
memory table to the right, a specified number of bit A aaa
positions.
The following description applies to both the Table Shift Left and Table Shift Right
instructions. A table is just a range of V-memory locations. The Table Shift Left and Table
Shift Right instructions shift bits serially throughout the entire table. Bits are shifted out the
end of one word and into the opposite end of an adjacent word. At the ends of the table, bits
are either discarded, or zeros are shifted into the table. The example tables below are
arbitrarily four words long.
Table Shift Left
Table Shift Right
Shift in zeros Discard Bits
V - xxxx

V - xxxx + 1

V - xxxx + 2

Discard Bits Shift in zeros

Step 1: Load the length of the table (number of V memory locations) into the first
level of the accumulator stack. This parameter must be a HEX value, 0 to FF.
Step 2: Load the starting V memory location for the table into the accumulator. This
parameter must be a HEX value. You can use the LDA instruction to convert
an octal address to hex.
Step 3: Insert the Table Shift Left or Table shift Right instruction. This specifies the
number of bit positions you wish to shift the entire table. The number of bit
positions must be in octal.
Helpful hint: — Remember that each V memory location contains 16 bits. So, the bits of the
first word of the table are numbered from 0 to 17 octal. If you want to shift the entire table
by 20 bits, that is 24 octal. SP 53 will be set if the number of bits to be shifted is larger than
the total bits contained within the table. Flag 67 will be set if the last bit shifted (just before it
is discarded) is a “1”.
Operand Data Type DL06 Range
aaa
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–165


Chapter 5: Standard RLL Instructions - Table Instructions

Discrete Bit Flags Description


SP53 On when the number of bits to be shifted is larger than the total bits contained within the table
SP67 On when the last bit shifted (just before it is discarded) is a “1.”
NOTE: Status flags are only valid until: — the end of the scan
— another instruction that uses the same flag is executed.

The example table to the right contains


BCD data as shown (for demonstration V 3000 V 3000
purposes). Suppose we want to do a table 1 2 3 4 6 7 8 1
shift right by 3 BCD digits (12 bits).
Converting to octal, 12 bits is 14 octal.
Using the Table Shift Right instruction 5 6 7 8 1 2 2 5
and specifying a shift by octal 14, we have
the resulting table shown at the far right. 1 1 2 2 3 4 4 1
Notice that the 2–3–4 sequence has been
discarded, and the 0–0–0 sequence has 3 3 4 4 5 6 6 3
been shifted in at the bottom.
The following ladder example assumes the 5 5 6 6 0 0 0 5
data at V3000 to V3004 already exists as
shown above. We will use input X0 to trigger the Table Shift Right operation. First, we will
load the table length (5 words) into the accumulator stack. Next, we load the starting address
into the accumulator. Since V3000 is an octal number we have to convert it to hex by using
the LDA command. Finally, we use the Table Shift Right instruction and specify the number
of bits to be shifted (12 decimal), which is 14 octal.

DirectSOFT 32

X0 Load the constant value 5


LD
(Hex.) into the lower 16 bits
K5 of the accumulator.

Convert octal 3000 to HEX


LDA and load the value into the
0 3000 accumulator. This is the
table beginning.

Do a table shift right by 12


TSHFR
bits, which is 14 octal.
0 14

Handheld Programmer Keystrokes

$ A ENT
STR 0

SHFT L D PREV F ENT


ANDST 3 5

SHFT L D A D A A A ENT
ANDST 3 0 3 0 0 0

SHFT T S H F R B E
SHFT NEXT ENT
MLR RST 7 5 ORN 1 4

5–166 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Table Instructions

AND Move (ANDMOV)


The AND Move instruction copies data from a table to the ANDMO V
specified memory location, ANDing each word with the A aaa
accumulator data as it is written.
OR Move (ORMOV)
The Or Move instruction copies data from a table to the specified ORMOV
memory location, ORing each word with the accumulator contents A aaa
as it is written.
Exclusive OR Move (XORMOV)
The Exclusive OR Move instruction copies data from a table to the XO R MO V
specified memory location, XORing each word with the A aaa
accumulator value as it is written.
The following description applies to the AND Move, OR Move, and Exclusive OR Move
instructions. A table is just a range of V-memory locations. These instructions copy the data
of a table to another specified location, preforming a logical operation on each word with the
accumulator contents as the new table is written.
Step 1: Load the length of the table (number of V memory locations) into the first
level of the accumulator stack. This parameter must be a HEX value, 0 to FF.
Step 2: Load the starting V memory location for the table into the accumulator. This
parameter must be a HEX value. You can use the LDA instruction to convert
an octal address to hex.
Step 3: Load the BCD/hex bit pattern into the accumulator which will be logically
combined with the table contents as they are copied.
Step 4: Insert the AND Move, OR Move, or XOR Move instruction. This specifies
the starting location of the copy of the original table. This new table will
automatically be the same length as the original table.
Operand Data Type DL06 Range
aaa
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map

The example table to the right contains V 3000 V 3100


BCD data as shown (for demonstration ANDMOV
purposes). Suppose we want to move a 3 3 3 3 2 2 2 2
K 6666
table of two words at V3000 and AND it
with K6666. The copy of the table at F F F F 6 6 6 6
V3100 shows the result of the AND
operation for each word.
The program on the next page performs the ANDMOV operation example above. It assumes
that the data in the table at V3000 – V3001 already exists. First we load the table length (two
words) into the accumulator. Next we load the starting address of the source table, using the
LDA instruction. Then we load the data into the accumulator to be ANDed with the table.
In the ANDMOV command, we specify the table destination, V3100.

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–167


Chapter 5: Standard RLL Instructions - Table Instructions

DirectSOFT 32

Handheld Programmer Keystrokes Load the constant value 2


X0
$ A
LD (Hex.) into the lower 16
ENT
STR 0 K2 bits of the accumulator.

SHFT L D PREV C ENT


ANDST 3 2

L D A D A A A Convert otal 3000 to HEX


SHFT ENT LDA and load the value into the
ANDST 3 0 3 0 0 0
0 3000 accumulator. This is the
SHFT L D PREV G G G G ENT table beginning.
ANDST 3 6 6 6 6

V SHFT M O V D B A A ENT
AND ORST INST# AND 3 1 0 0 Load the constant value
LD 6666 (Hex.) into the lower
K6666 16 bits of the accumulator.

Copy the table to V3100,


The example to the right shows a table of two ANDMOV ANDing its contents with the
words at V3000 and logically ORs it with 0 3100
accumulator as it is written.

K8888. The copy of the table at V3100 shows


the result of the OR operation for each word.
V 3000 V 3100
The program to the right performs the ORMOV 1 1 1 1 OR MOV 9 9 9 9
example above. It assumes that the data in the table K 8888
at V3000 – V3001 already exists. First we load the 1 1 1 1 9 9 9 9
table length (two words) into the accumulator. Next
we load the starting address of the source table, using DirectSOFT 32

the LDA instruction. Then we load the data into the X0 LD


accumulator to be ORed with the table. In the K2

ORMOV command, we specify the table destination, Load the constant value 2
(Hex) into the lower 16 bits
V3100. of the accumulator.

Handheld Programmer Keystrokes LDA


$ A 0 3000
ENT
STR 0
Convert octal 3000 to HEX
SHFT L D PREV C ENT
ANDST 3 2
and load the value into the
accumulator. This is the
SHFT L D A D A A A ENT table beginning.
ANDST 3 0 3 0 0 0
L D I I I I LD
SHFT PREV ENT
ANDST 3 8 8 8 8 K8888
Q SHFT M O V D B A A ENT
OR ORST INST# AND 3 1 0 0 Load the constant value
8888 (Hex.) into the lower
16 bits of the accumulator.

ORMOV
0 3100
The example to the right shows a table of two words
at V3000 and logically XORs it with K3333. The Copy the table to V3100,
ORing its contents with the
copy of the table at V3100 shows the result of the accumulator as it is written.
XOR operation for each word.
The ladder program example for the XORMOV is V 3000 V 3100
similar to the one above for the ORMOV. Just use X OR MOV
1 1 1 1 2 2 2 2
the XORMOV instruction. On the handheld K 3333
programmer, you must use the SHFT key and spell
1 1 1 1 2 2 2 2
“XORMOV” explicitly.

5–168 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Table Instructions

Find Block (FINDB)


The Find Block instruction searches for an occurrence of a
specified block of values in a V memory table. The function
parameters are loaded into the first and second levels of the F INDB
accumulator stack and the accumulator by three additional A aaa
instructions. If the block is found, its starting address will be
stored in the accumulator. If the block is not found, flag SP53
will be set.
Operand Data Type DL06 Range
aaa
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P See memory map

Discrete Bit Flags Description


SP53 On when the Find Block instruction was executed but did not find the block of data in
table specified
The steps listed below are the steps necessary to program the Find Block function.
Step 1: Load the number of bytes in the block to be located. This parameter must be a
HEX value, 0 to FF.
Step 2: Load the length of a table (number of words) to be searched. The Find Block
will search multiple tables that are adjacent in V memory. This parameter
must be a HEX value, 0 to FF.
Step 3: Load the ending location for all the tables into the accumulator. This
parameter must be a HEX value. You can use the LDA instruction to convert
an octal address to hex.
Step 4: Load the table starting location for all the tables into the accumulator. This
parameter must be a HEX value. You can use the LDA instruction to convert
an octal address to hex.
Step 5: Insert the Find Block instruction. This specifies the starting location of the
block of data you are trying to locate.

S tart Addr.
Number
Table 1
of words
Table 2 S tart Addr.
Table 3
Number
Block
of bytes

Table n
E nd Addr.

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–169


Chapter 5: Standard RLL Instructions - Table Instructions

Swap (SWAP)
S WAP
The Swap instruction exchanges the A aaa
data in two tables of equal length.
The following description applies to both the Set Bit and Reset Bit table instructions.
Step 1: Load the length of the tables (number of V memory locations) into the first level of
the accumulator stack. This parameter must be a HEX value, 0 to FF. Remember that
the tables must be of equal length.
Step 2: Load the starting V memory location for the first table into the accumulator. This
parameter must be a HEX value. You can use the LDA instruction to convert an octal
address to hex.
Step 3: Insert the Swap instruction. This specifies the starting address of the second table.
This parameter must be a HEX value. You can use the LDA instruction to convert an
octal address to hex.
Helpful hint: — The data swap occurs within a single scan. If the instruction executes on
multiple consecutive scans, it will be difficult to know the actual contents of either table at
any particular time. So, remember to swap just on a single scan.
Operand Data Type DL06 Range
aaa
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map

The example to the right shows a table of V 3000 V 3100


two words at V3000. We will swap its
1 2 3 4 S WAP A B C D
contents with another table of two words at
3100 by using the Swap instruction. The
required ladder program is given below. 5 6 7 8 0 0 0 0

The example program below uses a PD contact (triggers for one scan for off-to-on transition).
First, we load the length of the tables (two words) into the accumulator. Then we load the
address of the first table (V3000) into the accumulator using the LDA instruction, converting
the octal address to hex. Note that it does not matter which table we declare “first”, because
the swap results will be the same.
DirectSOFT 32
X0 Load the constant value 2
LD (Hex.) into the lower 16 bits
K2 of the accumulator.
Handheld Programmer Keystrokes

$ P D A ENT
SHFT
Convert octal 3000 to HEX STR CV 3 0
LDA and load the value into the
SHFT L D PREV C ENT
0 3000 accumulator. This is the ANDST 3 2
table beginning. L D A D A A A
SHFT ENT
ANDST 3 0 3 0 0 0

SWAP Swap the contents of the S W A P D B A A


SHFT SHFT ENT
table in the previous RST ANDN 0 CV 3 1 0 0
0 3100 instruction with the one
at V3100.

5–170 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Clock/Calendar Instructions

Clock / Calendar Instructions


Date (DATE)
The Date instruction can be used to set the date in the CPU.
The instruction requires two consecutive V memory locations DAT E
(Vaaa) to set the date. If the values in the specified locations V aaa
are not valid, the date will not be set. The current date can be
read from 4 consecutive V memory locations
(V7771–V7774).
In the following example, when C0 is on, the constant value (K94010301) is loaded into the
accumulator using the Load Double instruction (C0 should be a contact from a one shot
(PD) instruction). The value in the accumulator is output to V2000 using the Out Double
instruction. The Date instruction uses the value in V2000 to set the date in the CPU.
V Memory Location (BCD)
Date Range (READ Only)
Year 0-99 V7774
Month 1-12 V7773
Day 1-31 V7772
Day of Week 0-06 V7771
The values entered for the day of week are:
0=Sunday, 1=Monday, 2=Tuesday, 3=Wednesday, 4=Thursday, 5=Friday, 6=Saturday

Operand Data Type DL06 Range


A aaa
V memory. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map
DirectSOFT 32 Constant (K)
9 4 0 1 0 3 0 1
C0 LDD In this example, the Date
K94010301 instruction uses the value set in
Load the constant Acc. 9 4 0 1 0 3 0 1 V2000 and V2001 to set the date
value (K94010301) in the appropriate V memory
into the accumulator
locations (V7771-V7774).
9 4 0 1 0 3 0 1
OUTD Acc.

V2000

Copy the value in 9 4 0 1 0 3 0 1


the accumulator to
V2000 and V2001 V2001 V2000
Format
DATE
V2001 V2000
V2000
Set the date in the CPU
9 4 0 1 0 3 0 1
using the value in V2000
and 2001
Handheld Programmer Keystrokes

$ A Year Month Day Day of Week


NEXT NEXT NEXT NEXT ENT
STR 0

SHFT L D D PREV J E A B ENT


ANDST 3 3 9 4 0 1
A D A B ENT
0 3 0 1
GX SHFT D C A A A ENT
OUT 3 2 0 0 0

SHFT D A T E C A A A ENT
3 0 MLR 4 2 0 0 0

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–171


Chapter 5: Standard RLL Instructions - Clock/Calendar Instructions

Time (TIME)
The Time instruction can be used to set the time (24 hour
clock) in the CPU. The instruction requires two consecutive T IME
V memory locations (Vaaa) which are used to set the time. If V aaa
the values in the specified locations are not valid, the time
will not be set. The current time can be read from memory
locations V7747 and V7766–V7770.

VMemory Location (BCD)


Date Range (READ Only)
1/100 seconds (10ms) 0-99 V7747
Seconds 0-59 V7766
Minutes 0-59 V7767
Hour 0-23 V7770

Operand Data Type DL06 Range


A aaa
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map

In the following example, when C0 is on, the constant value (K73000) is loaded into the
accumulator using the Load Double instruction (C0 should be a contact from a one shot
(PD) instruction). The value in the accumulator is output to V2000 using the Out Double
instruction. The Time instruction uses the value in V2000 to set the time in the CPU.

DirectSOFT 32 Constant (K)

C0
0 0 0 7 3 0 0 0 The TIME instruction uses the
LDD
value set in V2000 and V2001 to
K7300
set the time in the appropriate V
Acc. 0 0 0 7 3 0 0 0
memory locations (V7766-V7770)

OUTD Acc. 0 0 0 7 3 0 0 0

V2000

0 0 0 7 3 0 0 0

V2001 V2000 Format


V2001 V2000
TIME
0 0 0 7 3 0 0 0
V2000

Handheld Programmer Keystrokes Not Hour Minutes Seconds


$ NEXT NEXT NEXT NEXT A ENT
Used
STR 0

SHFT L D D PREV H D A A A ENT


ANDST 3 3 7 3 0 0 0
A D A B ENT
0 3 0 1
GX SHFT D C A A A ENT
OUT 3 2 0 0 0

SHFT T SHFT I M E C A A A ENT


MLR 8 ORST 4 2 0 0 0

5–172 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - CPU Control Instructions

CPU Control Instructions


No Operation (NOP)
The No Operation is an empty (not programmed) memory location. NOP

Direct SOFT32 Handheld Programmer Keystrokes

SHFT N O P ENT
NOP TMR INST# CV

End (END)
The End instruction marks the termination point of the normal END
program scan. An End instruction is required at the end of the main
program body. If the End instruction is omitted an error will occur
and the CPU will not enter the Run Mode. Data labels, subroutines
and interrupt routines are placed after the End instruction. The End instruction is not
conditional; therefore, no input contact is allowed.
Direct SOFT32 Handheld Programmer Keystrokes

SHFT E N D ENT
4 TMR 3
END

Stop (STOP)
The Stop instruction changes the operational mode of the CPU
from Run to Program (Stop) mode. This instruction is typically STOP
used to stop PLC operation in an error condition.
In the following example, when C0 turns on, the CPU will stop
operation and switch to the program mode.

DirectSOFT32 Handheld Programmer Keystrokes

C0 $ SHFT C A ENT
STR 2 0
STOP S T O P
SHFT SHFT ENT
RST MLR INST# CV

Discrete Bit Flags Description


SP16 On when the DL06 goes into the TERM_PRG mode.
SP53 On when the DL06 goes into the PRG mode.

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–173


Chapter 5: Standard RLL Instructions - CPU Control

Reset Watch Dog Timer (RSTWT)


The Reset Watch Dog Timer instruction resets the CPU scan
timer. The default setting for the watch dog timer is 200ms. RSTWT
Scan times very seldom exceed 200ms, but it is possible.
For/next loops, subroutines, interrupt routines, and table
instructions can be programmed such that the scan becomes
longer than 200ms. When instructions are used in a manner
that could exceed the watch dog timer setting, this instruction
can be used to reset the timer.
A software timeout error (E003) will occur and the CPU will enter the program mode if the
scan time exceeds the watch dog timer setting. Placement of the RSTWT instruction in the
program is very important. The instruction has to be executed before the scan time exceeds
the watch dog timer’s setting.
If the scan time is consistently longer than the watch dog timer’s setting, the timeout value
may be permanently increased from the default value of 200ms by AUX 55 on the HPP or
the appropriate auxiliary function in your programming package. This eliminates the need for
the RSTWT instruction.
In the following example the CPU scan timer will be reset to 0 when the RSTWT instruction
is executed. See the For/Next instruction for a detailed example.
Direct SOFT 32 Handheld Programmer Keystrokes

SHFT R S T W T ENT
ORN RST MLR ANDN MLR
RSTWT

5–174 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Program Control Instructions

Program Control Instructions


Goto Label (GOTO) (LBL)
The Goto / Label skips all instructions between the Goto and K aaa
the corresponding LBL instruction. The operand value for GOTO
the Goto and the corresponding LBL instruction are the
same. The logic between Goto and LBL instruction is not
LBL K aaa
executed when the Goto instruction is enabled. Up to 256
Goto instructions and 256 LBL instructions can be used in
the program.

Operand Data Type DL06 Range


aaa
Constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K 1-FFFF

In the following example, when C7 is on, all the program logic between the GOTO and the
corresponding LBL instruction (designated with the same constant Kaaa value) will be
skipped. The instructions being skipped will not be executed by the CPU.

DirectS OF T32 Handheld Programmer Keys trokes

$ C H
C7 K5 S HF T E NT
S TR 2 7
GOTO G O T O F
S HF T E NT
6 INS T# MLR INS T# 5

$ B E NT
S TR 1
X1 C2 GX C C
S HF T E NT
OUT 2 2
OUT

L B L F
S HF T E NT
ANDS T 1 ANDS T 5

LBL K5 $ F E NT
S TR 5
GX C E NT
OUT 2

X5 Y2

OUT

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–175


Chapter 5: Standard RLL Instructions - Program Control Instructions

For / Next (FOR) (NEXT)


The For and Next instructions are used to execute a section of ladder logic between the For
and Next instruction a specified numbers of times. When the For instruction is enabled, the
program will loop the specified number of times. If the For
instruction is not energized the section of ladder logic between the
For and Next instructions is not executed. A aaa
For / Next instructions cannot be nested. The normal I/O update FOR
and CPU housekeeping is suspended while executing the For /
Next loop. The program scan can increase significantly, depending
on the amount of times the logic between the For and Next
instruction is executed. With the exception of immediate I/O
instructions, I/O will not be updated until the program execution
is completed for that scan. Depending on the length of time
required to complete the program execution, it may be necessary NEXT
to reset the watch dog timer inside of the For / Next loop using
the RSTWT instruction.

Operand Data Type DL06 Range


....................................A aaa
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map
Constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K 1-9999

5–176 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Program Control Instructions

In the following example, when X1 is on, the application program inside the For / Next loop
will be executed three times. If X1 is off the program inside the loop will not be executed.
The immediate instructions may or may not be necessary depending on your application.
Also, The RSTWT instruction is not necessary if the For / Next loop does not extend the
scan time larger the Watch Dog Timer setting. For more information on the Watch Dog
Timer, refer to the RSTWT instruction.
Direct SOFT32
X1 1 2 3
K3

FOR

RSTWT

X20 Y5
OUT

NEXT

Handheld Programmer Keystrokes

$ B ENT
STR 1

SHFT F O R D ENT
5 INST# ORN 3

SHFT R S T W T ENT
ORN RST MLR ANDN MLR
$ SHFT I C A ENT
STR 8 2 0
GX F ENT
OUT 5

SHFT N E X T ENT
TMR 4 SET MLR

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–177


Chapter 5: Standard RLL Instructions - Program Control Instructions

Goto Subroutine (GTS) (SBR)


The Goto Subroutine instruction allows a section of ladder
logic to be placed outside the main body of the program K aaa
execute only when needed. There can be a maximum of 256 GTS
GTS instructions and 256 SBR instructions used in a
program. The GTS instructions can be nested up to 8 levels.
An error E412 will occur if the maximum limits are exceeded.
Typically this will be used in an application where a block of
program logic may be slow to execute and is not required to
execute every scan. The subroutine label and all associated SBR K aaa
logic is placed after the End statement in the program. When
the subroutine is called from the main program, the CPU will
execute the subroutine (SBR) with the same constant number
(K) as the GTS instruction which called the subroutine.
By placing code in a subroutine it is only scanned and executed when needed since it resides
after the End instruction. Code which is not scanned does not impact the overall scan time of
the program.
Subroutine Return (RT)
Operand Data Type DL06 Range
aaa
Constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K 1-FFFF
When a Subroutine Return is executed in the subroutine the
CPU will return to the point in the main body of the program
RT
from which it was called. The Subroutine Return is used as
termination of the subroutine which must be the last instruction
in the subroutine and is a stand alone instruction (no input
contact on the rung).
Subroutine Return Conditional (RTC)
RTC
The Subroutine Return Conditional instruction is a optional
instruction used with a input contact to implement a
conditional return from the subroutine. The Subroutine Return
(RT) is still required for termination of the Subroutine.

5–178 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Program Control Instructions

In the following example, when X1 is on, Subroutine K3 will be called. The CPU will jump
to the Subroutine Label K3 and the ladder logic in the subroutine will be executed. If X35 is
on the CPU will return to the main program at the RTC instruction. If X35 is not on
Y0–Y17 will be reset to off and then the CPU will return to the main body of the program.
Direct SOFT32 Display X1 K3
GTS
C0
LD
K10

END

SBR K3

X20 Y5
OUTI

X21 Y10
OUTI

X35
RT C

X35 Y0 Y17
RSTI

RT

Handheld Programmer Keystrokes

$ B ENT
STR 1

SHFT G T S D ENT
6 MLR RST 3

SHFT E N D ENT
4 TMR 3

SHFT S SHFT B R D ENT


RST 1 ORN 3
$ SHFT I C A ENT
STR 8 2 0
GX SHFT I F ENT
OUT 8 5
$ SHFT I C B ENT
STR 8 2 1
GX SHFT I B A ENT
OUT 8 1 0
$ SHFT I D F ENT
STR 8 3 5

SHFT R T C ENT
ORN MLR 2
SP SHFT I D F ENT
STRN 8 3 5
S SHFT I A B H ENT
RST 8 0 1 7

SHFT R T ENT
ORN MLR

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–179


Chapter 5: Standard RLL Instructions - Program Control Instructions

In the following example, when X1 is on, Subroutine K3 will be called. The CPU will jump
to the Subroutine Label K3 and the ladder logic in the subroutine will be executed. The CPU
will return to the main body of the program after the RT instruction is executed.
Direct SOFT32

X1 K3
GTS

END

SBR K3

X20 Y5

OUT

X21 Y10

OUT

RT

Handheld Programmer Keystrokes

$ B ENT
STR 1

SHFT G T S D ENT
6 MLR RST 3

SHFT E N D ENT
4 TMR 3

SHFT S SHFT B R D ENT


RST 1 ORN 3
$ SHFT I C A ENT
STR 8 2 0
GX F ENT
OUT 5
$ SHFT I C B ENT
STR 8 2 1
GX B A ENT
OUT 1 0

SHFT R T ENT
ORN MLR

5–180 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Program Control Instructions

Master Line Set (MLS)


The Master Line Set instruction allows the program to control
K aaa
sections of ladder logic by forming a new power rail controlled
MLS
by the main left power rail. The main left rail is always master
line 0. When a MLS K1 instruction is used, a new power rail is
created at level 1. Master Line Sets and Master Line Resets can
be used to nest power rails up to seven levels deep.
Operand Data Type DL06 Range
aaa
Constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K 1-7

Master Line Reset (MLR)


The Master Line Reset instruction marks the end of control
for the corresponding MLS instruction. The MLR reference K aaa
is one less than the corresponding MLS. MLR

Operand Data Type DL06 Range


aaa
Constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K 0-7

Understanding Master Control Relays


The Master Line Set (MLS) and Master Line Reset (MLR) instructions allow you to quickly
enable (or disable) sections of the RLL program. This provides program control flexibility.
The following example shows how the MLS and MLR instructions operate by creating a sub
power rail for control logic.

X0 MLS
When contact XO is on, logic under the first MLS
K1 will be executed .

X1 Y7
OUT

X2 MLS
When contacts X2 and X0 are on, logic
K2 under the second MLS will be
executed.

X3

MLR MLR
The MLR instructions note the end of the Master Control area.
K0 K1 (They will be entered in adjacent addresses.)

X10

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–181


Chapter 5: Standard RLL Instructions - Program Control Instructions

MLS/MLR Example
In the following MLS/MLR example logic between the first MLS K1 (A) and MLR K0 (B)
will function only if input X0 is on. The logic between the MLS K2 (C) and MLR K1 (D)
will function only if input X10 and X0 is on. The last rung is not controlled by either of the
MLS coils.
Direct SOFT 32 Handheld Programmer Keystrokes
X0 K1
A $ A ENT
MLS STR 0
Y B ENT
X1 C0 MLS 1

OUT $ B ENT
STR 1

X2 C1 GX SHFT C A ENT
OUT 2 0
OUT
$ C ENT
STR 2
X3 Y0
GX SHFT C B ENT
OUT OUT 2 1
$ D ENT
X10 K2 STR 3
C
GX A ENT
MLS
OUT 0

X5 $ B A ENT
Y1
STR 1 0
OUT Y C ENT
MLS 2
X4 Y2 $ F ENT
STR 5
OUT
GX B ENT
OUT 1
K1 D
$ E ENT
MLR STR 4
GX C ENT
X5 C2 OUT 2
OUT T B ENT
MLR 1
X6 Y3 $ F ENT
STR 5
OUT
GX SHFT C C ENT
OUT 2 2
K0
B
$ G ENT
MLR STR 6
GX D ENT
X7 Y4 OUT 3
OUT T A ENT
MLR 0
$ H ENT
STR 7
GX E C ENT
OUT 4 2

5–182 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions -Interrupt Instructions

Interrupt Instructions
Interrupt (INT)
The Interrupt instruction allows a section of ladder logic INT O aaa
to be placed below the main body of the program and
executed only when needed. High-Speed I/O Modes 10,
20, and 40 can generate an interrupt. With Mode 40,
you may select an external interrupt (input X0), or a
time-based interrupt (3–999 ms).
Typically, interrupts are used in an application when a fast response to an input is needed or a
program section must execute faster than the normal CPU scan. The interrupt label and all
associated logic must be placed after the End statement in the program. When an interrupt
occurs, the CPU will complete execution of the current instruction it is processing in ladder
logic, then execute the interrupt routine. After interrupt routine execution, the ladder
program resumes from the point at which it was interrupted.
See Chapter 3, the section on Mode 40 (Interrupt) Operation for more details on interrupt
configuration. In the DL06, only one software interrupt is available. The software interrupt
uses interrupt #00 (INT 0), which means the hardware interrupt #0 and the software
interrupt cannot be used together. Hardware interrupts are labeled in octal to correspond
with the hardware input signal (e.g. X1 will initiate INT 1).

Operand Data Type DL06 Range


aaa
Constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . O 0-3

Interrupt Return (IRT)


An Interrupt Return is normally executed as the last instruction
in the interrupt routine. It returns the CPU to the point in the IRT
main program from which it was called. The Interrupt Return is
a stand-alone instruction (no input contact on the rung).
Interrupt Return Conditional (IRTC)
The Interrupt Return Conditional instruction is a optional
instruction used with an input contact to implement a IRTC
conditional return from the interrupt routine. The Interrupt
Return is required to terminate the interrupt routine.
Enable Interrupts (ENI)
The Enable Interrupt instruction is placed in the main ladder
program (before the End instruction), enabling the interrupt. ENI
The interrupt remains enabled until the program executes a
Disable Interrupt instruction.

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–183


Chapter 5: Standard RLL Instructions -Interrupt Instructions

Disable Interrupts (DISI)


A Disable Interrupt instruction in the main body of the
application program (before the End instruction) will disable
DISI
the interrupt (either external or timed). The interrupt remains
disabled until the program executes an Enable Interrupt
instruction.
External Interrupt Program Example
In the following example, we do some initialization on the first scan, using the first-scan
contact SP0. The interrupt feature is the HSIO Mode 40. Then we configure X0 as the
external interrupt by writing to its configuration register, V7634. See Chapter 3, Mode 40
Operation for more details.
During program execution, when X2 is on the interrupt is enabled. When X2 is off the
interrupt will be disabled. When an interrupt signal (X0) occurs the CPU will jump to the
interrupt label INT O 0. The application ladder logic in the interrupt routine will be
performed. The CPU will return to the main body of the program after the IRT instruction is
executed.

Direct SOFT32 Handheld Programmer Keystrokes


SP0 LD Load the constant value
(K40) into the lower 16 bits $ SHFT SP A ENT
K40
of the accumulator STR STRN 0

SHFT L D SHFT K E A ENT


OUT Copy the value in the lower
16 bits of the accumulator to ANDST 3 JMP 4 0
V7633
V7633 GX V H G D D
SHFT ENT
OUT AND 7 6 3 3
LD Load the constant value (K4)
K4 into the lower 16 bits of the L D K E
SHFT SHFT ENT
accumulator ANDST 3 JMP 4

Copy the value in the lower GX SHFT V H G D E ENT


OUT OUT AND 7 6 3 4
V7634 16 bits of the accumulator to
V7634 $ C ENT
STR 2
X2
ENI SHFT E N I ENT
4 TMR 8
X2 SP C ENT
DISI STRN 2

SHFT D I S I ENT
3 8 RST 8

SHFT E N D ENT
END 4 TMR 3

SHFT I N T A ENT
8 TMR MLR 0
INT O0
$ SHFT I B ENT
STR 8 1
X1 Y5
X SHFT I F ENT
SETI SET 8 5
$ SHFT I D ENT
X3 Y7 STR 8 3
SETI
X SHFT I H ENT
SET 8 7

IRT SHFT I R T ENT


8 ORN MLR

5–184 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions -Interrupt Instructions

Timed Interrupt Program Example


In the following example, we do some initialization on the first scan, using the first-scan
contact SP0. The interrupt feature is the HSIO Mode 40. Then we configure the HSIO timer
as a 10 mS interrupt by writing K104 to the configuration register for X0 (V7634). See
Chapter 3, Mode 40 Operation for more details.
When X4 turns on, the interrupt will be enabled. When X4 turns off, the interrupt will be
disabled. Every 10 mS the CPU will jump to the interrupt label INT O 0. The application
ladder logic in the interrupt routine will be performed. If X3 is not on Y0–Y7 will be reset to
off and then the CPU will return to the main body of the program.
Direct SOFT32 Handheld Programmer Keystrokes
SP0 Load the constant value
LD $ B
(K40) into the lower 16 bits ENT
K40 STR 1
of the accumulator
SHFT L D SHFT K E A ENT
ANDST 3 JMP 4 0

OUT Copy the value in the lower GX V H G D D


16 bits of the accumulator to SHFT ENT
OUT AND 7 6 3 3
V7633 V7633
SHFT L D SHFT K B A E ENT
ANDST 3 JMP 1 0 4

LD Load the constant value GX V H G D E


SHFT ENT
(K10) into the lower 16 bits OUT AND 7 6 3 4
K104 of the accumulator
$ E ENT
STR 4

OUT Copy the value in the lower SHFT E N I ENT


16 bits of the accumulator to 4 TMR 8
V7634 V7634
SP E ENT
STRN 4
X4
SHFT D I S I ENT
ENI 3 8 RST 8

X4
DISI
SHFT E N D ENT
4 TMR 3

SHFT I N T A ENT
8 TMR MLR 0
END
$ SHFT I C ENT
STR 8 2
INT O0
X SHFT I F ENT
SET 8 5
SP SHFT I D ENT
X2 Y5 STRN 8 3
SETI X SHFT I A H ENT
SET 8 0 7

SHFT I R T ENT
X3 Y0 Y7 8 ORN MLR
RSTI

IRT

Independent Timed Interrupt


Interrupt O0 is also available as an interrupt. This interrupt is independent of the HSIO
features. Interrupt O0 uses an internal timer that is configured in V memory location V7647.
The interrupt period can be adjusted from 5 to 9999 mS. Once the interrupt period is set
and the interrupt is enabled in the program, the CPU will continuously call the interrupt
routine based on the time setting in V7647.
Note: Independent timed interrupt must be Int. 0.
Input Configuration Function Hex Code Required
Register
– V7647 High-Speed xxxx (xxxx = timer setting)
Timed Interrupt 5 - 9999 mS (BCD)

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–185


Chapter 5: Standard RLL Instructions - Message Instructions

Message Instructions
Fault (FAULT)
The Fault instruction is used to display a message on the handheld
programmer, the optional LCD display or in the DirectSOFT FAULT
status bar. The message has a maximum of 23 characters and can A aaa
be either V memory data, numerical constant data or ASCII text.
To display the value in a V memory location, specify the V memory location in the
instruction. To display the data in ACON (ASCII constant) or NCON (Numerical constant)
instructions, specify the constant (K) value for the corresponding data label area.
Operand Data Type DL06 Range
....................................A aaa
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map
Constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K 1-FFFF

Discrete Bit Flags Description


SP50 On when the FAULT instruction is executed

Fault Example
In the following example when X1 is on, the message SW 146 will display on the handheld
programmer. The NCONs use the HEX ASCII equivalent of the text to be displayed. (The
HEX ASCII for a blank is 20, a 1 is 31, 4 is 34 ...)

FAULT :
*SW 146

Direct SOFT32 Handheld Programmer Keystrokes

X1 FAULT $ B ENT
K1 STR 1

SHFT F A U L T B ENT
5 0 ISG ANDST MLR 1

END

DLBL E N D
K1 SHFT ENT
4 TMR 3

SHFT D L B L B ENT
ACON
3 ANDST 1 ANDST 1
A SW
SHFT A C O N S W ENT
0 2 INST# TMR RST ANDN

SHFT N C O N C A D B ENT
NCON TMR 2 INST# TMR 2 0 3 1
K 2031
SHFT N C O N D E D G ENT
TMR 2 INST# TMR 3 4 3 6

NCON
K 3436

5–186 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions- Message Instructions

Data Label (DLBL)


The Data Label instruction marks the
beginning of an ASCII / numeric data area. DLBL K aaa
DLBLs are programmed after the End
statement. A maximum of 64 DLBL
instructions can be used in a program.
Multiple NCONs and ACONs can be used
in a DLBL area.

Operand Data Type DL06 Range


aaa
Constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K 1-FFFF

ASCII Constant (ACON)


The ASCII Constant instruction is used ACON
with the DLBL instruction to store A aaa
ASCII text for use with other
instructions. Two ASCII characters can
be stored in an ACON instruction. If
only one character is stored in a ACON
a leading space will be inserted.
Operand Data Type DL06 Range
aaa
ASCII . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A 0-9 A-Z

Numerical Constant (NCON)


The Numerical Constant instruction is
used with the DLBL instruction to store
the HEX ASCII equivalent of numerical NCON
data for use with other instructions. Two K aaa
digits can be stored in an NCON
instruction.

Operand Data Type DL06 Range


aaa
Constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K 0-FFFF

DL06 Micro PLC User Manual, 1st Ed., Rev. A


5–187
Chapter 5: Standard RLL Instructions - Message Instructions

Data Label Example


In the following example, an ACON and two NCON instructions are used within a DLBL
instruction to build a text message. See the FAULT instruction for information on displaying
messages. The DV-1000 Manual also has information on displaying messages.

Direct SOFT32

END

DLBL
K1

ACON
A SW

NCON
K 2031

NCON
K 3436

Handheld Programmer Keystrokes

SHFT E N D ENT
4 TMR 3

SHFT D L B L B ENT
3 ANDST 1 ANDST 1

SHFT A C O N S W ENT
0 2 INST# TMR RST ANDN

SHFT N C O N C A D B ENT
TMR 2 INST# TMR 2 0 3 1

SHFT N C O N D E D G ENT
TMR 2 INST# TMR 3 4 3 6

5–188 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions- Message Instructions

Print Message (PRINT)


The Print Message instruction prints the embedded PRINT A aaa
text or text/data variable message to the specified “Hello, this is a PLC message”
communications port (Port 2 on the DL06 CPU),
which must have the communications port
configured.
Operand Data Type DL06 Range
A aaa
Constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K 2

You may recall from the CPU specifications in Chapter 3 that the DL06’s ports are capable of
several protocols. Port 1 cannot be configured for the non-sequence protocol. To configure
port 2 using the Handheld Programmer, use AUX 56 and follow the prompts, making the
same choices as indicated below on this page. To configure a port in DirectSOFT32, choose
the PLC menu, then Setup, then Setup Secondary Comm Port.
• Port: From the port number list box at the top, choose “Port 2”.
• Protocol: Click the check box to the left of “Non-sequence”, and then you’ll see the dialog box
shown below.

• Baud Rate: Choose the baud rate that matches your printer.
• Stop Bits, Parity: Choose number of stop bits and parity setting to match your printer.
• Memory Address: Choose a V-memory address for DirectSOFT32 to use to store the port setup
information. You will need to reserve 9 words in V-memory for this purpose. Select “Always use for
printing” if it applies.
Then click the button indicated to send the Port 2 configuration to the CPU,
and click Close. Then see Chapter 3 for port wiring information, in order to
connect your printer to the DL06.

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–189


Chapter 5: Standard RLL Instructions - Message Instructions

Port 2 on the DL06 has standard RS232 levels, and should work with most printer serial
input connections.
Text element – this is used for printing character strings. The character strings are defined as
the character (more than 0) ranged by the double quotation marks. Two hex numbers
preceded by the dollar sign means an 8-bit ASCII character code. Also, two characters
preceded by the dollar sign is interpreted according to the following table:

# Character code Description


1 $$ Dollar sign ($)
2 $” Double quotation (”)
3 $L or $l Line feed (LF)
4 $N or $n Carriage return line feed (CRLF)
5 $P or $p Form feed
6 $R or $r Carriage return (CR)
7 $T or $t Tab
The following examples show various syntax conventions and the length of the output to the
printer.
Example:
” ” Length 0 without character
”A” Length 1 with character A
” ” Length 1 with blank
” $” ” Length 1 with double quotation mark
” $ R $ L ” Length 2 with one CR and one LF
” $ 0 D $ 0 A ” Length 2 with one CR and one LF
” $ $ ” Length 1 with one $ mark
In printing an ordinary line of text, you will need to include double quotation marks before
and after the text string. Error code 499 will occur in the CPU when the print instruction
contains invalid text or no quotations. It is important to test your PRINT instruction data
during the application development.
The following example prints the message to port 2. We use a PD contact, which causes the
message instruction to be active for just one scan. Note the $N at the end of the message,
which produces a carriage return / line feed on the printer. This prepares the printer to print
the next line, starting from the left margin.

X1 PRINT K2 Print the message to Port 2 when


“Hello, this is a PLC message.$N” X1 makes an off-to-on transition.

5–190 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions- Message Instructions

V-memory element - this is used for printing V-memory contents in the integer format or
real format. Use V-memory number or V-memory number with “:” and data type. The data
types are shown in the table below. The Character code must be capital letters.
NOTE: There must be a space entered before and after the V-memory address to separate it from the text
string. Failure to do this will result in an error code 499.

# Character code Description


1 none 16-bit binary (decimal number)
2 :B 4 digit BCD
3 :D 32-bit binary (decimal number)
4 :DB 8 digit BCD

Example:
V2000 Print binary data in V2000 for decimal number
V2000 : B Print BCD data in V2000
V2000 : D Print binary number in V2000 and V2001 for decimal number
V2000 : D B Print BCD data in V2000 and V2001
Example: The following example prints a message containing text and a variable. The “reactor
temperature” labels the data, which is at V2000. You can use the : B qualifier after the V2000
if the data is in BCD format, for example. The final string adds the units of degrees to the
line of text, and the $N adds a carriage return / line feed.

X1 PRINT K2 Print the message to Port 2


“Reactor temperature = ” V2000 “deg. $N” when X1 makes an off-to-on
⊥ ⊥ transition.
⊥ represents a space
Message will read:
Reactor temperature = 0156 deg

V-memory text element ¨This is used for printing text stored in V-memory. Use the %
followed by the number of characters after V-memory number for representing the text. If
you assign “0” as the number of characters, the print function will read the character count
from the first location. Then it will start at the next V-memory location and read that number
of ASCII codes for the text from memory.
Example:
V2000 % 16 16 characters in V2000 to V2007 are printed.
V2000 % 0 The characters in V2001 to Vxxxx (determined by the number in V2000)
will be printed.

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–191


Chapter 5: Standard RLL Instructions - Message Instructions

Bit element
This is used for printing the state of the designated bit in V-memory or a relay bit. The bit
element can be assigned by the designating point (.) and bit number preceded by the V-
memory number or relay number. The output type is described as shown in the table below.
# Data Format Description
1 none Print 1 for an ON state, and 0 for an
OFF state
2 :BOOL Print “TRUE” for an ON state, and
“FALSE” for an OFF state
3 :ONOFF Print “ON” for an ON state, and
“OFF” for an OFF state

Example:
V2000 . 15 Prints the status of bit 15 in V2000, in 1/0 format
C100 Prints the status of C100 in 1/0 format
C100 : BOOL Prints the status of C100 in TRUE/FALSE format
C100 : ON/OFF Prints the status of C100 in ON/OFF format
V2000.15 : BOOL Prints the status of bit 15 in V2000 in TRUE/FALSE format
The maximum numbers of characters you can print is 128. The number of characters for
each element is listed in the table below:
Element Type Maximum Characters
Text, 1 character 1
16 bit binary 6
32 bit binary 11
4 digit BCD 4
8 digit BCD 8
Floating point (real number) 12
Floating point (real with exponent) 12
V-memory/text 2
Bit (1/0 format) 1
Bit (TRUE/FALSE format) 5
Bit (ON/OFF format) 3

The handheld programmer’s mnemonic is “PRINT” followed by the DEF field.


Special relay flags SP116 and SP117 indicate the status of the DL06 CPU ports (busy, or
communications error). See the appendix on special relays for a description.

NOTE: You must use the appropriate special relay in conjunction with the PRINT command to ensure the
ladder program does not try to PRINT to a port that is still busy from a previous PRINT or WX or
RX instruction.

5–192 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Network Instructions
Read from Network (RX)
The Read from Network instruction is used by the master device
on a network to read a block of data from a slave device on the RX
same network. The function parameters are loaded into the first A aaa
and second level of the accumulator stack and the accumulator
by three additional instructions. Listed below are the steps
necessary to program the Read from Network function.
• Step 1: Load the slave address (0-- 90 BCD) into the first byte and the PLC internal port (KF2) or
slot number of the master DCM or ECOM (0-- 7) into the second byte of the second level
of the accumulator stack.
• Step 2: Load the number of bytes to be transferred into the first level of the accumulator stack.
• Step 3: Load the address of the data to be read into the accumulator. This parameter requires a
HEX value.
• Step 4: Insert the RX instruction which specifies the starting Vmemory location (Aaaa) where the
data will be read from in the slave.
Helpful Hint: — For parameters that require HEX values, the LDA instruction can be used
to convert an octal address to the HEX equivalent and load the value into the accumulator.

Operand Data Type DL06 Range


....................................A aaa
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map
Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P See memory map
Inputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X 0–777
Outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Y 0–777
Control Relays . . . . . . . . . . . . . . . . . . . . . . . . . . C 0–1777
Stage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . S 0–1777
Timer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . T 0–377
Counter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CT 0–177
Special Relay . . . . . . . . . . . . . . . . . . . . . . . . . . SP 0–777
Program Memory . . . . . . . . . . . . . . . . . . . . . . . $ 0–7680 (2K program mem.)

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–193


Chapter 5: Standard RLL Instructions - Network Instructions

In the following example, when X1 is on and the port busy relay SP116 (see special relays) is
not on, the RX instruction will access port 2 operating as a master. Ten consecutive bytes of
data (V2000 – V2004) will be read from a CPU at station address 5 and copied into V
memory locations V2300–V2304 in the CPU with the master port.
Direct SOFT32

X1 SP116 LD
KF205

The constant value KF205


Master Slave
specifies the port number (2) CPU CPU
and the slave address (5)

LD
K10
V2277 X X X X X X X X V1777
The constant value K10 V2300 3 4 5 7 3 4 5 7 V2000
specifies the number of
bytes to be read V2301 8 5 3 4 8 5 3 4 V2001
V2302 1 9 3 6 1 9 3 6 V2002
LDA
V2303 9 5 7 1 9 5 7 1 V2003
O 2300
V2304 1 4 2 3 1 4 2 3 V2004
Octal address 2300 is
converted to 4C0 HEX and V2305 X X X X X X X X V2005
loaded into the accumulator.
V2300 is the starting
location for the Master CPU
where the specified data will
be read into

RX
V2000

V2000 is the starting


location in the for the Slave
CPU where the specified
data will be read from

Handheld Programmer Keystrokes

$ B ENT
STR 1
W SHFT SP B B G ENT
ANDN STRN 1 1 6

SHFT L D SHFT K SHFT F SHFT C A F ENT


ANDST 3 JMP 5 2 0 5

SHFT L D SHFT K B A ENT


ANDST 3 JMP 1 0

SHFT L D A C D A A ENT
ANDST 3 0 2 3 0 0

SHFT R X C A A A ENT
ORN SET 2 0 0 0

5–194 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - Network Instructions

Write to Network (WX)


The Write to Network instruction is used to write a
block of data from the master device to a slave device
on the same network. The function parameters are WX
loaded into the accumulator and the first and second A aaa
level of the stack. Listed below are the program steps
necessary to execute the Write to Network function.
Step 1: Load the slave address (0–90 BCD) into the low byte and “F2” into the high
byte of the accumulator (the next two instructions push this word down to the
second layer of the stack).
Step 2: Load the number of bytes to be transferred into the accumulator (the next
instruction pushes this word onto the top of the stack).
Step 3: Load the starting Master CPU address into the accumulator. This is the
memory location where the data will be written from. This parameter requires
a HEX value.
Step 4: Insert the WX instruction which specifies the starting V memory location
(Aaaa) where the data will be written to in the slave.
Helpful Hint: — For parameters that require HEX values, the LDA instruction can be used
to convert an octal address to the HEX equivalent and load the value into the accumulator.

Operand Data Type DL06 Range


....................................A aaa
V memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V See memory map
Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P See memory map
Inputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X 0–777
Outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Y 0–777
Control Relays . . . . . . . . . . . . . . . . . . . . . . . . . . C 0–1777
Stage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . S 0–1777
Timer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . T 0–377
Counter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CT 0–177
Special Relay . . . . . . . . . . . . . . . . . . . . . . . . . . SP 0–777
Program Memory . . . . . . . . . . . . . . . . . . . . . . . $ 0–7680 (2K program mem.)

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–195


Chapter 5: Standard RLL Instructions - Network Instructions

In the following example when X1 is on and the module busy relay SP116 (see special relays)
is not on, the WX instruction will access port 2 operating as a master. Ten consecutive bytes
of data is read from the Master CPU and copied to V memory locations V2000–V2004 in
the slave CPU at station address 5.
Direct SOFT32

X1 SP116 LD
KF205

The constant value KF205


Master Slave
specifies the port number (2) CPU CPU
and the slave address (5)

LD
K10
V2277 X X X X X X X X V1777
The constant value K10 V2300 3 4 5 7 3 4 5 7 V2000
specifies the number of
bytes to be written V2301 8 5 3 4 8 5 3 4 V2001
V2302 1 9 3 6 1 9 3 6 V2002
LDA
V2303 9 5 7 1 9 5 7 1 V2003
O 2300
V2304 1 4 2 3 1 4 2 3 V2004
Octal address 2300 is
converted to 4C0 HEX and V2305 X X X X X X X X V2005
loaded into the accumulator.
V2300 is the starting
location for the Master CPU
where the specified data will
be read from.

WX
V2000

V2000 is the starting


location in the for the Slave
CPU where the specified
data will be written to

Handheld Programmer Keystrokes

$ B ENT
STR 1
W SHFT SP B C E ENT
ANDN STRN 1 1 6

SHFT L D SHFT K F C A F ENT


SHFT SHFT
ANDST 3 JMP 5 2 0 5

SHFT L D SHFT K B A ENT


ANDST 3 JMP 1 0

SHFT L D A C D A A ENT
ANDST 3 0 2 3 0 0

SHFT W X C A A A ENT
ANDN SET 2 0 0 0

5–196 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions -LCD

LCD
When enabled, the LCD instruction causes a user-defined
LCD
text message to be displayed on the LCD Display Panel.
Line Number: Kn
The display is 16 characters wide by 2 rows high so a total "text message"
of 32 characters can be displayed. Each row is addressed
separately; the maximum number of characters the
instruction will accept is 16.
The text message can be entered directly into the message field of the instruction set-up
dialog, or it can be located anywhere in user V-memory. If the text is located in V-memory,
the LCD instruction is used to point to the memory location where the desired text
originates. The length of the text string is also required.
From the DirectSOFT32 project folder, use the Instruction Browser to locate the LCD
instruction. When you select the LCD instruction and click OK, the LCD dialog will appear,
as shown in the examples. The LCD instruction is inserted into the ladder program via this
set-up dialog box.
Display text strings can include embedded variables. Date and time settings and V-memory
values can be embedded in the displayed text. Examples of each are shown.

Direct Text Entry


The two dialogs to the right show the
selections necessary to create the two ladder
instructions below. Double quotation marks
are required to delineate the text string. In
the first dialog, the text “Sludge Pit Alarm“
uses sixteen character spaces and will appear
on line 1 when the instruction is enabled.
Note, the line number is K1. Clicking the
“check” button causes the instruction to be
inserted into the ladder program.
LCD
Line Number: K1
"Sludge Pit Alarm"

LCD
Line Number: K2
"Effluent Overflo"

By identifying the second Line Number as


K2, the text string “Effluent Overflow” will
appear on the second line of the display
when the second instruction is enabled.

S l u d g e P i t A l a r m
E f f l u e n t O v e r f l o

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–197


Chapter 5: Standard RLL Instructions - LCD

Embedding date and/or time variables


The date and/or time can be embedded in
the displayed text by using the variables
listed in the table below. These variables
can be included in the “LCD message”
field of the LCD dialog. In the example
the time variable (12 hour format) is
embedded by adding _time:12. This time
format uses a maximum of seven character
spaces. The second dialog creates an
instruction that prints the date on the
second line of the display, when enabled.

Date and Time Variables and Formats


_date:us US format MM/DD/YY
_date:e European format DD/MM/YY
_date:a Asian format YY/MM/DD
_time:12 12 hour format HH:MMAM/PM
_time:24 24 hour format HH:MM:SS

LCD
Line Number: K1
"Alarm 1 " _time:12

LCD
Line Number: K2
_date:us

A l a r m 1 1 1 : 2 1 P M
0 5 - 0 8 - 0 2
Embedding V-memory data
Any V-memory data can be displayed in
any one of six available data formats. An
example appears to the right. A list of data
formats and modifiers is on the next page.
Note that different data formats require
differing numbers of character positions
on the display.

LCD
Line Number: K1
"Count = " V2500:B

C o u n t = 0 4 1 2

5–198 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - LCD

Data Format Suffixes for Embedded V-memory Data


Several data formats are available for displaying V-memory data on the LCD. The choices are
shown in the table below. A colon is used to separate the embedded V-memory location from
the data format suffix and modifier. An example appears on the previous page.

Data Format Modifier Example Displayed Characters


V2000 = 0000 0000 0001 0010 1 2 3 4
V2000 1 8
none [:S] V2000:S 1 8
(16-bit format)
[:C0] V2000:C0 0 0 1 8
[:0] V2000:0 1 8
V2000 = 0000 0000 0001 0010 1 2 3 4
[:B] V2000:B 0 0 1 2
:B [:BS] V2000:BS 1 2
(4 digit BCD)
[:BC0] V2000:BC0 0 0 1 2
[:B0] V2000:B0 1 2
V2000 = 0000 0000 0000 0000 Double Word
V2001 = 0000 0000 0000 0001 1 2 3 4 5 6 7 8 9 10 11
:D [:D] V2000:D 6 5 5 3 6
(32-bit decimal) [:DS] V2000:DS 6 5 5 3 6
[:DC0] V2000:DC0 0 0 0 0 0 0 6 5 5 3 6
[:D0] V2000:D0 6 5 5 3 6
V2000 = 0000 0000 0000 0000 Double Word
V2001 = 0000 0000 0000 0011 1 2 3 4 5 6 7 8
:DB [:DB] V2000:DB 0 0 0 3 0 0 0 0
(8 digit BCD) [:DBS] V2000:DBS 3 0 0 0 0
[:DBC0] V2000:DBC0 0 0 0 3 0 0 0 0
[:DB0] V2000:DB0 3 0 0 0 0
V2001/V2000 = 222.11111 Double Word
(real number) 1 2 3 4 5 6 7 8 9 10 11 12 13
:R [:R] V2000:R f 2 2 2 . 1 1 1 1 1
(DWord floating
point number) [:RS] V2000:RS f 2 2 2 . 1 1 1 1 1
[:RC0] V2000:RC0 f 0 0 0 2 2 2 . 1 1 1 1 1
[:R0] V2000:R0 f 2 2 2 . 1 1 1 1 1
V2001/V2000 = 222.1 Double Word
(real number) 1 2 3 4 5 6 7 8 9 10 11 12 13
:E
(DWord floating [:E] V2000:E f 2 . 2 2 1 0 0 E + 0 2
point number [:ES] V2000:ES f 2 . 2 2 1 0 0 E + 0 2
with exponent) [:EC0] V2000:EC0 f 2 . 2 2 1 0 0 E + 0 2
[:E0] V2000:E0 f 2 . 2 2 1 0 0 E + 0 2
f = plus/minus flag (plus = no symbol, minus = - )

The S, C0, and 0 modifiers alter the presentation of leading zeros and spaces. S removes
leading spaces and left justifies the result. C0 replaces leading spaces with leading zeros.
0 is a modification of C0. 0 eliminates any leading zeros in the C0 format version and
converts them to spaces.

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–199


Chapter 5: Standard RLL Instructions - LCD

Text Entry from V-memory


Alternatively, text that resides in V-memory can be displayed on the LCD following the
example on this page. The LCD dialog is used twice, once for each line on the display. The
dialog requires the address of the first character to be displayed and the number of characters
to be displayed.
For example, the two dialogs shown on this page would create the two LCD instructions
below. When enabled, these instructions would cause the ASCII characters in V10000 -
V10020 to be displayed. The ASCII characters and their corresponding memory locations are
shown in the table below.

V10000 d A
V10001 i m
LCD V10002 n
Line Number: K1 V10003 f O
Starting V Memory Address: V10000 V10004 i f
Number of Characters: K16
V10005 e c
V10006
LCD
V10007
Line Number: K2
V10010 i H
V10011 h g
Starting V Memory Address: V10010
V10012 T
Number of Characters: K16
V10013 m e
V10014 p
V10015 l A
V10016 r a
A d m i n O f f i c e V10017 m
H i g h T e m p A l a r m

5–200 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - MODBUS

MODBUS RTU Instructions


MODBUS Read from Network (MRX)
The MODBUS Read from Network (MRX) instruction is used by the DL06 network master
to read a block of data from a connected slave device and to write the data into V–memory
addresses within the master. The instruction allows the user the to specify the MODBUS
Function Code, slave station address, starting master and slave memory addresses, number of
elements to transfer, MODBUS data format and the Exception Response Buffer.

• Port Number: must be DL06 Port 2 (K2)


• Slave Address: specify a slave station address (0–247)
• Function Code: The following MODBUS function codes are supported by the MRX
instruction:
01 – Read a group of coils
02 – Read a group of inputs
03 – Read holding registers
04 – Read input registers
07 – Read Exception status
• Start Slave Memory Address: specifies the starting slave memory address of the data to be
read. See the table on the following page.
• Start Master Memory Address: specifies the starting memory address in the master where
the data will be placed. See the table on the following page.
• Number of Elements: specifies how many coils, inputs, holding registers or input register
will be read. See the table on the following page.
• MODBUS Data Format: specifies MODBUS 584/984 or 484 data format to be used
• Exception Response Buffer: specifies the master memory address where the Exception
Response will be placed. See the table on the following page.

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–201


Chapter 5: Standard RLL Instructions - MODBUS

MRX Slave Address Ranges


Function Code MODBUS Data Format Slave Address Range(s)
01 – Read Coil 484 Mode 1–999
01 – Read Coil 584/984 Mode 1–65535
02 – Read Input Status 484 Mode 1001–1999
02 – Read Input Status 584/984 Mode 10001–19999 (5 digit) or 100001–165535
(6 digit)
03 – Read Holding Register 484 Mode 4001–4999
03 – Read Holding Register 584/984 Mode 40001–49999 (5 digit) or
4000001–465535 (6 digit)
04 – Read Input Register 484 Mode 3001–3999
04 – Read Input Register 584/984 Mode 30001–39999 (5 digit) or
3000001–365535 (6 digit)
07 – Read Exception Status 484 and 584/984 Mode n/a

MRX Master Memory Address Ranges


Operand Data Type DL06 Range
Inputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X 0–1777
Outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Y 0–1777
Control Relays. . . . . . . . . . . . . . . . . . . . . . . . . . C 0–3777
Stage Bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . S 0–1777
Timer Bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . T 0–377
Counter Bits . . . . . . . . . . . . . . . . . . . . . . . . . . CT 0–377
Special Relays . . . . . . . . . . . . . . . . . . . . . . . . . SP 0–777
V–memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . V all
Global Inputs . . . . . . . . . . . . . . . . . . . . . . . . . GX 0–3777
Global Outputs . . . . . . . . . . . . . . . . . . . . . . . . GY 0–3777

Number of Elements
Operand Data Type DL06 Range
V–memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . V all
Constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K Bits: 1–2000 Registers: 1–125

Exception Response Buffer


Operand Data Type DL06 Range
V–memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . V all

5–202 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - MODBUS

MRX Example
DL06 port 2 has two Special Relay contacts associated with it (see Appendix D for comm
port special relays). One indicates “Port busy”(SP116), and the other indicates ”Port
Communication Error”(SP117). The “Port Busy” bit is on while the PLC communicates with
the slave. When the bit is off the program can initiate the next network request. The “Port
Communication Error” bit turns on when the PLC has detected an error. Use of this bit is
optional. When used, it should be ahead of any network instruction boxes since the error bit
is reset when an MRX or MWX instruction is executed. Typically network communications
will last longer than 1 CPU scan. The program must wait for the communications to finish
before starting the next transaction.

This rung does a MODBUS read from the first 32 coils of slave address number one.
It will place the values into 32 bits of the master starting at C0.

Port 2 busy bit Instruction Interlock bit


SP116 C100
MRX
4 Port Number: K2
Slave Address: K1
Function Code: 01 - Read Coil Status
Start Slave Memory Address: 1
Start Master Memory Address C0
Number of Elements 32
Modbus Data type 584/984 Mode
Exception Response buffer V400

Instruction Interlock bit


C100
RST

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–203


Chapter 5: Standard RLL Instructions - MODBUS

MODBUS Write to Network (MWX)


The MODBUS Write to Network (MWX) instruction is used to write a block of data from
the network masters’s (DL06) memory to MODBUS memory addresses within a slave device
on the network. The instruction allows the user the to specify the MODBUS Function Code,
slave station address, starting master and slave memory addresses, number of elements to
transfer, MODBUS data format and the Exception Response Buffer.

• Port Number: must be DL06 Port 2 (K2)


• Slave Address: specify a slave station address (0–247)
• Function Code: The following MODBUS function codes are supported by the MWX
instruction:
05 – Force Single coil
06 – Preset Single Register
15 – Force Multiple Coils
16 – Preset Multiple Registers
• Start Slave Memory Address: specifies the starting slave memory address where the data will
be written.
• Start Master Memory Address: specifies the starting address of the data in the master that is
to written to the slave.
• Number of Elements: specifies how many consecutive coils or registers will be written to.
This field is only active when either function code 15 or 16 is selected.
• MODBUS Data Format: specifies MODBUS 584/984 or 484 data format to be used
• Exception Response Buffer: specifies the master memory address where the Exception
Response will be placed

5–204 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - MODBUS

MWX Slave Address Ranges


MWX Slave Address Ranges
Function Code MODBUS Data Format Slave Address Range(s)
05 – Force Single Coil 484 Mode 1–999
05 – Force Single Coil 584/984 Mode 1–65535
06 – Preset Single Register 484 Mode 4001–4999
06 – Preset Single Register 584/984 Mode 40001–49999 (5 digit) or 400001–465535 (6 digit)
15 – Force Multiple Coils 484 Mode 1–999
15 – Force Multiple Coils 585/984 Mode 1–65535
16 – Preset Multiple Registers 484 Mode 4001–4999
16 – Preset Multiple Registers 584/984 Mode 40001–49999 (5 digit) or 4000001–465535 (6 digit)

MWX Master MWX Master Memory Address Ranges


Memory Address Operand Data Type DL06 Range
Inputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X 0–1777
Ranges Outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Y 0–1777
Control Relays . . . . . . . . . . . . . . . . . . . . . . . . . . C 0–3777
Stage Bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . S 0–1777
Timer Bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . T 0–377
Counter Bits . . . . . . . . . . . . . . . . . . . . . . . . . . CT 0–377
Special Relays. . . . . . . . . . . . . . . . . . . . . . . . . SP 0–777
V–memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . V all
Global Inputs . . . . . . . . . . . . . . . . . . . . . . . . . GX 0–3777
Global Outputs . . . . . . . . . . . . . . . . . . . . . . . . GY 0–3777

MWX Number of Number of Elements


Elements Operand Data Type DL06 Range
V–memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . V all
Constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K Bits: 1–2000 Registers: 1–125

MWX Exception Number of Elements


Response Buffer Operand Data Type DL06 Range
V–memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . V all

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–205


Chapter 5: Standard RLL Instructions - MODBUS

MWX Example
DL06 port 2 has two Special Relay contacts associated with it (see Appendix D for comm
port special relays). One indicates “Port busy”(SP116), and the other indicates ”Port
Communication Error”(SP117). The “Port Busy” bit is on while the PLC communicates with
the slave. When the bit is off the program can initiate the next network request. The “Port
Communication Error” bit turns on when the PLC has detected an error. Use of this bit is
optional. When used, it should be ahead of any network instruction boxes since the error bit
is reset when an MRX or MWX instruction is executed.
Typically network communications will last longer than 1 CPU scan. The program must wait
for the communications to finish before starting the next transaction.

This rung does a MODBUS write to the first holding register 40001 of slave address
number one. It will write the values over that reside in V2000. This particular function
code only writes to 1 register. Use Function Code 16 to write to multiple registers.
Only one Network instruction (WX, RX, MWX, MRX) can be enabled in one scan.
That is the reason for the interlock bits. For using many network instructions on the
same port, look at using the Shift Register instruction.

Port 2 busy bit Instruction Interlock bit


SP116 C100
MWX
3 Port Number: K2
Slave Address: K1
Function Code: 06-Preset Single Register
Start Slave Memory Address: 40001
Start Master Memory Address: V2000
Number of Elements: n/a
Modbus Data type: 584/984 Mode
Exception Response Buffer: V400

Instruction Interlock bit


C100
SET

5–206 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - ASCII

ASCII Instructions
The DL06 CPU supports several instructions and methods that allow ASCII strings to be
read into and written from the PLC communications ports. Specifically, port 2 on the DL06
can be used for either reading or writing raw ASCII strings, but cannot be used for both on
the same CPU. The DL06 can also decipher ASCII embedded within a supported protocol
(K–Sequence, DirectNet, Modbus) via the CPU port.
Reading ASCII Input Strings
There are several methods that the DL06 can use to read ASCII input strings.
1) ASCII IN (AIN) – This instruction configures port 2 for raw ASCII input strings with
parameters such as fixed and variable length ASCII strings, termination characters, byte
swapping options, and instruction control bits. Use barcode scanners, weight scales, etc. to
write raw ASCII input strings into port 2 based on the (AIN) instruction’s parameters.
2) Write embedded ASCII strings directly to V–memory from an external HMI or similar
master device via a supported communications protocol using the CPU ports. The AIN
instruction is not used in this case. 3) If a DL06 PLC is a master on a network, the
Network Read instruction (RX) can be used to read embedded ASCII data from a slave
device via a supported communications protocol using port 2. The RX instruction places
the data directly into V–memory.
Writing ASCII Output Strings
The following instructions can be used to write ASCII output strings:
1) Print from V–memory (PRINTV) – Use this instruction to write raw ASCII strings out of
port 2 to a display panel or a serial printer, etc. The instruction features the starting
V–memory address, string length, byte swapping options, etc. When the instruction’s
permissive bit is enabled, the string is written to port 2.
2) Print to V–memory (VPRINT) – Use this instruction to create pre–coded ASCII strings in
the PLC (i.e. alarm messages). When the instruction’s permissive bit is enabled, the
message is loaded into a pre–defined V–memory address location. Then the (PRINTV)
instruction may be used to write the pre–coded ASCII string out of port 2. American,
European and Asian Time/Date stamps are supported.
Additionally, if a DL06 PLC is a master on a network, the Network Write instruction (WX)
can be used to write embedded ASCII data to an HMI or slave device directly from
V–memory via a supported communications protocol using port 2.

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–207


Chapter 5: Standard RLL Instructions - ASCII

Managing the ASCII Strings


The following instructions can be helpful in managing the ASCII strings within the CPUs
V–memory:
• ASCII Find (AFIND) – Finds where a specific portion of the ASCII string is located in
continuous V–memory addresses. Forward and reverse searches are supported.
• ASCII Extract (AEX) – Extracts a specific portion (usually some data value) from the ASCII
find location or other known ASCII data location.
• Compare V–memory (CMPV) – This instruction is used to compare two blocks of
V–memory addresses and is usually used to detect a change in an ASCII string. Compared
data types must be of the same format (i.e. BCD, ASCII, etc.).
• Swap Bytes (SWAPB) – usually used to swap V–memory bytes on ASCII data that was
written directly to V–memory from an external HMI or similar master device via a
communications protocol. The AIN and AEX instructions have a built–in byte swap
feature.

5–208 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - ASCII

ASCII Input (AIN)


The ASCII Input instruction allows the CPU to receive ASCII strings through the specified
communications port and places the string into a series of specified V–memory registers. The
ASCII data can be received as a fixed number of bytes or as a variable length string with a
specified termination character(s). Other features include, Byte Swap preferences, Character
Timeout, and user defined flag bits for Busy, Complete and Timeout Error.
AIN Fixed Length Configuration
• Length Type: select fixed length based on the
length of the ASCII string that will be sent to the
CPU port
• Port Number: must be DL06 port 2 (K2)
• Data Destination: specifies where the ASCII
string will be placed in V–memory
• Fixed Length: specifies the length, in bytes, of the
fixed length ASCII string the port will receive
• Inter–character Timeout: if the amount of time
between incoming ASCII characters exceeds the
set time, the specified Timeout Error bit will be
set. No data will be stored at the Data
Destination V–memory location. The bit will
reset when the AIN instruction permissive bits
are disabled. 0ms selection disables this feature.
• First Character Timeout: if the amount of time
from when the AIN is enabled to the time the
first character is received exceeds the set time, the
specified First Character Timeout bit will be set.
The bit will reset when the AIN instruction
permissive bits are disabled. 0ms selection
disables this feature.
• Byte Swap: swaps the high–byte and low–byte
within each V–memory register of the Fixed
Length ASCII string. See the SWAPB instruction
for details.
• Busy Bit: is ON while the AIN instruction is
receiving ASCII data
• Complete Bit: is set once the ASCII data has
been received for the specified fixed length and
reset when the AIN instruction permissive bits
are disabled.
• Inter–character Timeout Error Bit: is set when
the Character Timeout is exceeded. See
Character Timeout explanation above.

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–209


Chapter 5: Standard RLL Instructions - ASCII

Parameter
Data Destination All V–memory
Fixed Length K1–128
Bits: Busy, Complete,
Timeout Error, Overflow C0–3777

AIN Fixed Length Examples

Fixed Length example when the PLC is reading the port continuously and timing is not critical

AIN Complete

C1 AIN Port Number: K2


1 Data Destination: V2000
Fixed Length K32
Interchar. Timeout: None
First Char. Timeout: None
Byte Swap: None
Busy: C0
Complete: C1
Interchar. Timeout Error: C2
First Char. Timeout Error: C3
AIN Complete
Data Read
C1 C100
2 OUT

Fixed Length example when character to character timing is critical

AIN Complete Intercharacter timeout


C1 C2 AIN Port Number: K2
5 Data Destination: V2000
Fixed Length K32
Interchar. Timeout: 20ms
First Char. Timeout: None
Byte Swap: All
Busy: C0
Complete: C1
Interchar. Timeout Error: C2
First Char. Timeout Error: C3
AIN Complete
Data Read
C1 C100
6 OUT

5–210 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - ASCII

AIN Variable Length Configuration:


• Length Type: select Variable Length if the ASCII string
length followed by termination characters will vary in
length
• Port Number: must be DL06 port 2 (K2)
• Data Destination: specifies where the ASCII string will
be placed in V–memory Maximum Variable Length:
specifies, in bytes, the maximum length of a Variable
Length ASCII string the port will receive
• Inter–character Timeout: if the amount of time between
incoming ASCII characters exceeds the set time, the
Timeout Error bit will be set. No data will be stored at
the Data Destination V–memory location. The Timeout
Error bit will reset when the AIN instruction permissive
bits are disabled. 0ms selection disables this feature.
• First Character Timeout: if the amount of time from
when the AIN is enabled to the time the first character is
received exceeds the set time, the specified First
Character Timeout bit will be set. The bit will reset when
the AIN instruction permissive bits are disabled. 0ms
selection disables this feature.
• Byte Swap: swaps the high–byte and low–byte within
each V–memory register of the Variable Length ASCII
string. See the SWAPB instruction for details.
• Termination Code Length: consists of either 1 or 2
characters. Refer to the ASCII table on the following
page.
• Busy Bit: is ON while the AIN instruction is receiving
ASCII data
• Complete Bit: is set once the ASCII data has been
received up to the termination code characters. It will be
reset when the AIN instruction permissive bits are
disabled.
• Inter–character Timeout Error Bit: is set when the
Character Timeout is exceeded. See Character Timeout
explanation above.
• First Character Timeout Error Bit: is set when the First
Character Timeout is exceeded. See First Character
Timeout explanation above.
• Overflow Error Bit: is set when the ASCII data received
exceeds the Maximum Variable Length specified.

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–211


Chapter 5: Standard RLL Instructions - ASCII

Parameter
Data Destination All V–memory
Fixed Length K1–128
Bits: Busy, Complete,
Timeout Error, Overflow C0–3777

AIN Variable Length Example

AIN variable length example used to read barcodes on boxes (PE = photoelectric sensor)

Box present PE
Scan code
C5 C6
9
SET

C6 AIN Port Number: K2


Data Destination: V2000
10 Fixed Length K40
Interchar. Timeout: 100ms
First Char. Timeout: 2000ms
Byte Swap: All but Null
Termination Code(s): 0D
Overflow Error: C4
Busy: C0
Complete: C1
Interchar. Timeout Error: C2
First Char. Timeout Error: C3
AIN Complete
Scan code
C1 C6
11
RST
Intercharacter Timeout
C2

Firstcharacter Timeout
C3

AIN Overflow error


C4

AIN Complete Data Read


C1 C100
12
OUT

5–212 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - ASCII

ASCII Find (AFIND)


The ASCII Find instruction locates a specific ASCII string or portion of an ASCII string
within a range of V–memory registers and places the string’s Found Index number (byte
number where desired string is found), in Hex, into a specified V–memory register. Other
features include, Search Starting Index number for skipping over unnecessary bytes before
beginning the FIND operation, Forward or Reverse direction search, and From Beginning
and From End selections to reference the Found Index Value.
• Base Address: specifies the beginning V–memory register where the entire ASCII string is
stored in memory
• Total Number of Bytes: specifies the total number of bytes to search for the desired ASCII
string
• Search Starting Index: specifies which byte to skip to (with respect to the Base Address)
before beginning the search
• Direction: Forward begins the search from lower numbered V–memory registers to higher
numbered V–memory registers. Reverse does the search from higher numbered V–memory
registers to lower numbered V–memory registers.
• Found Index Value: specifies whether the Beginning or the End byte of the ASCII string
found will be loaded into the Found Index register
• Found Index: specifies the V–memory register where the Found Index Value will be stored.
A value of FFFF will result if the desired string is not located in the memory registers
specified.
• Search for String: up to 128 characters.

Parameter DL06 Range


Base Address All V–memory
Total Number of Bytes All V–memory or K1–128
Search Starting Index All V–memory or K0–127
Found Index All V–memory

NOTE: Quotation marks are not required around the Search String
item. Quotes are valid characters that the AFIND can search for.

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–213


Chapter 5: Standard RLL Instructions - ASCII

AFIND Search Example


In the following example, the AFIND instruction is used to search for the “day” portion of
“Friday” in the ASCII string “Today is Friday.”, which had previously been loaded into
V–memory. Note that a Search Starting Index of constant (K) 5 combined with a Forward
Direction Search is used to prevent finding the “day” portion of the word “Today”. The
Found Index will be placed into V4000.

Notice that quotation marks


are not placed around the
Search String. Only use
quotation marks if they’re
actually part of the Search
String.

ASCII Characters
HEX Equivalent

Base Address 0 T 54h Low


1 o High V3000
6Fh
Reverse Direction Search 2 d 64h Low
3 a High V3001
61h
4 y 79h Low
Search start Index Number V3002
5 20h High
6 i 69h Low
s High V3003
7 73h
8 20h Low V3004
Forward Direction Search
9 F 46h High
10 r 72h Low
V3005
11 i 69h High
Beginning Index Number 12 d 64h Low
V3006
13 a 61h High
End Index Number 14 y 79h Low
. V3007
15 2Eh High

Found Index Number = 0012 V4000

5–214 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - ASCII

AFIND Example Combined with AEX Instruction


When an AIN instruction has executed, its Complete bit can be used to trigger an AFIND
instruction to search for a desired portion of the ASCII string. Once the string is found, the
AEX instruction can be used to extract the located string.

AIN Complete AFIND


C1
15
Base Address: V2001
Total Number of Bytes: K32
Search Starting Index: K0
Direction: Forward
Found Index Value: From Beginning
Found Index: V2200
Code 39
Give delay time for
AFIND instruction
to complete
C7
SET
Give delay time for
AFIND instruction
to complete Search string not found Data not found with
in table AFIND
C7 Km
V2200 C10
16 SET

Give delay time for


AFIND instruction
to complete
C7
RST
Give delay time for
AFIND instruction TMR
Data not found with
to complete AFIND Delay for
C10 AFIND to complete
17 T0
K2
Delay time for
AFIND to complete AEX
T0
18 Source Base Address: V2001
Extract at Index: K0
Number of Bytes: K4
Shift ASCII Option: None
Byte Swap: All
Convert ASCII: To BCD (HEX)
Destination Base Address: V3000
Give delay time for
AFIND instruction
to complete
C7
RST

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–215


Chapter 5: Standard RLL Instructions - ASCII

ASCII Extract (AEX)


The ASCII Extract instruction extracts a specified number of bytes of ASCII data from one
series of V–memory registers and places it into another series of V–memory registers. Other
features include, Extract at Index for skipping over unnecessary bytes before beginning the
Extract operation, Shift ASCII Option, for One Byte Left or One Byte Right, Byte Swap and
Convert data to a BCD format number.
• Source Base Address: specifies the beginning V–memory register where the entire ASCII
string is stored in memory
• Extract at Index: specifies which byte to skip to (with respect to the Source Base Address)
before extracting the data
• Number of Bytes: specifies the number of bytes to be extracted
• Shift ASCII Option: shifts all extracted data one byte left or one byte right to displace
“unwanted” characters if necessary
• Byte Swap: swaps the high–byte and the low–byte within each V–memory register of the
extracted data. See the SWAPB instruction for details.
• Convert BCD(Hex) ASCII to BCD (Hex): if enabled, this will convert ASCII numerical
characters to Hexadecimal numerical values
• Destination Base Address: specifies the V–memory register where the extracted data will be
stored
See the previous page for an example using the AEX instruction.

Parameter DL06 Range


Source Base Address All V–memory
Extract at Index All V–memory or K0–127

Number of Bytes Constant range: V-memory location


“Convert BCD (HEX) ASCII” K1–128 containing BCD value:
not checked 1–128

Number of Bytes Constant range: V-memory location


“Convert BCD (HEX) ASCII” K1–4 containing BCD value:
checked 1–4

Destination Base All V–memory


Address

5–216 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - ASCII

ASCII Compare (CMPV)


The ASCII Compare instruction compares
two groups of V–memory registers. The
CMPV will compare any data type (ASCII to
ASCII, BCD to BCD, etc.) of one series
(group) of V–memory registers to another
series of V–memory registers for a specified
byte length.
• “Compare from” Starting Address: specifies
the beginning V–memory register of the
first group of V–memory registers to be
compared from.
• “Compare to” Starting Address: specifies
the beginning V–memory register of the
second group of V–memory registers to be
compared to.
• Number of Bytes: specifies the length of SP61 = 1, the result is equal
each V–memory group to be compared SP61 = 0, the result is not equal
Parameter DL06 Range
Compare from Starting Address All V–memory
Compare to Starting Address All V–memory
Number of Bytes K0–127

CMPV Example
The CMPV instruction executes when the AIN instruction is complete. If the compared
V–memory tables are equal, SP61 will turn ON.

AIN Complete

C1
CMPV

"Compare from" Starting Address: V2001


"Compare to" Starting Address: V10001
Number of Bytes: K32

Strings are equal


SP61 C11
OUT

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–217


Chapter 5: Standard RLL Instructions - ASCII

ASCII Print to V–memory (VPRINT)


The ASCII Print to V–memory
instruction will write a specified ASCII
string into a series of V–memory
registers. Other features include Byte
Swap, options to suppress or convert
leading zeros or spaces, and _Date and
_Time options for U.S., European, and
Asian date formats and 12 or 24 hour
time formats.
• Byte Swap: swaps the high–byte and
low–byte within each V–memory
register the ASCII string is printed to.
See the SWAPB instruction for details.
• Print to Starting V–memory Address:
specifies the beginning of a series of
V–memory addresses where the ASCII
string will be placed by the VPRINT
instruction.
• Starting V–memory Address: the first
V–memory register of the series of
registers specified will contain the
ASCII string’s length in bytes.
• Starting V–memory Address +1: the
2nd and subsequent registers will
contain the ASCII string printed to
V–memory.
Parameter DL06 Range
Print to Starting V–memory Address All V–memory

VPRINT Time / Date Stamping– the codes in the table below can be used in the VPRINT
ASCII string message to “print to V–memory” the current time and/or date.

# Character code Date / Time Stamp Options


1 _Date:us American standard (month/day/2 digit year)
2 _Date:e European standard (day/month/2 digit year)
3 _Date:a Asian standard (2 digit year/month/day)
4 _Time:12 standard 12 hour clock (0–12 hour:min am/pm)
5 _Time:24 standard 24 hour clock (0–12 hour:min am/pm)

5–218 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - ASCII

VPRINT V-memory element – the following modifiers can be used in the VPRINT ASCII
string message to “print to V–memory” register contents in integer format or real format. Use
V-memory number or V-memory number with “:” and data type. The data types are shown
in the table below. The Character code must be capital letters.

NOTE: There must be a space entered before and after the V-memory address to separate it from the text
string. Failure to do this will result in an error code 499.

# Character code Description


1 none 16-bit binary (decimal number)
2 :B 4 digit BCD
3 :D 32-bit binary (decimal number)
4 :DB 8 digit BCD
5 :R Floating point number (real number)
6 :E Floating point number (real number with exponent)
Examples:
V2000 Print binary data in V2000 for decimal number
V2000 : B Print BCD data in V2000
V2000 : D Print binary number in V2000 and V2001 for decimal number
V2000 : D B Print BCD data in V2000 and V2001
V2000 : R Print floating point number in V2000/V2001 as real number
V2000 : E Print floating point number in V2000/V2001 as real number with exponent
The following modifiers can be added to any of the modifies above to suppress or convert
leading zeros or spaces. The character code must be capital letters.
# Character code Description
1 S Suppresses leading spaces
2 C0 Converts leading spaces to zeros
3 0 Suppresses leading zeros

Example with V2000 = 0018 (binary format)


V–memory Register Number of Characters
with Modifier 1 2 3 4
V2000 0 0 1 8
V2000:B 0 0 1 2
V2000:B0 1 2

Example with V2000 = sp sp18 (binary format) where sp = space


V–memory Register Number of Characters
with Modifier 1 2 3 4
V2000 sp sp 1 8
V2000:B sp sp 1 2
V2000:BS 1 2
V2000:BC0 0 0 1 2

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–219


Chapter 5: Standard RLL Instructions - ASCII

VPRINT V-memory text element – the following is used for “printing to V–memory” text
stored in registers. Use the % followed by the number of characters after V-memory number
for representing the text. If you assign “0” as the number of characters, the function will read
the character count from the first location. Then it will start at the next V-memory location
and read that number of ASCII codes for the text from memory.
Example:
V2000 % 16 16 characters in V2000 to V2007 are printed.
V2000 % 0 The characters in V2001 to Vxxxx (determined by the number in V2000) will be
printed.
VPRINT Bit element – the following is used for “printing to V–memory” the state of the
designated bit in V-memory or a control relay bit. The bit element can be assigned by the
designating point (.) and bit number preceded by the V-memory number or relay number.
The output type is described as shown in the table below.
# Data format Description
1 none Print 1 for an ON state, and 0 for an OFF state
2 : BOOL Print “TRUE” for an ON state, and “FALSE” for an OFF state
3 : ONOFF Print “ON” for an ON state, and “OFF” for an OFF state

Example:
V2000 . 15 Prints the status of bit 15 in V2000, in 1/0 format
C100 Prints the status of C100 in 1/0 format
C100 : BOOL Prints the status of C100 in TRUE/FALSE format
C100 : ON/OFF Prints the status of C00 in ON/OFF format
V2000.15 : BOOL Prints the status of bit 15 in V2000 in TRUE/FALSE format
The maximum numbers of characters you can VPRINT is 128. The number of characters
required for each element, regardless of whether the :S, :C0 or :0 modifiers are used, is listed
in the table below.

Maximum
Element type Characters
Text, 1 character 1
16 bit binary 6
32 bit binary 11
4 digit BCD 4
8 digit BCD 8
Floating point (real number) 3
Floating point (real with exponent) 13
V-memory/text 2
Bit (1/0 format) 1
Bit (TRUE/FALSE format) 5
Bit (ON/OFF format) 3

5–220 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - ASCII

Text element – the following is used for “printing to V–memory” character strings. The
character strings are defined as the character (more than 0) ranged by the double quotation
marks. Two hex numbers preceded by the dollar sign means an 8-bit ASCII character code.
Also, two characters preceded by the dollar sign is interpreted according to the following
table:

# Character code Description


1 $$ Dollar sign ($)
2 $” Double quotation (”)
3 $Lor $l Line feed (LF)
4 $N or $n Carriage return line feed (CRLF)
5 $P or $p Form feed
6 $R or $r Carriage return (CR)
7 $T or $t Tab

The following examples show various syntax conventions and the length of the output to the
printer.
”” Length 0 without character
”A” Length 1 with character A
”” Length 1 with blank
” $” ” Length 1 with double quotation mark
”$R$L” Length 2 with one CR and one LF
”$0D$0A” Length 2 with one CR and one LF
”$$” Length 1 with one $ mark

In printing an ordinary line of text, you will need to include double quotation marks before
and after the text string. Error code 499 will occur in the CPU when the print instruction
contains invalid text or no quotations. It is important to test your VPRINT instruction data
during the application development.

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–221


Chapter 5: Standard RLL Instructions - ASCII

VPRINT Example Combined with PRINTV Instruction

The VPRINT instruction is used to create a string in V–memory. The PRINTV is used to print the string out
of port 2.

Create String Permissive


C12 VPRINT
28 Byte Swap: All
"Print to" Address V4000

"STX" V3000:B"$0D"

Delay permissive for


VPRINT
C13
SET
Delay permissive for
VPRINT
C13 TMR
29
Delay for VPRINT
to complete
T1

Delay for Vprint to K10


complete
T1 PRINTV
30 Port Number: K2
Start Address: V4001
Number of Bytes: V4000
Append: None
Byte Swap: None
Busy: C15
Complete: C16

Delay Permissive for


VPRINT
C13
RST

5–222 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - ASCII

ASCII Print from V–memory (PRINTV)


The ASCII Print from V–memory instruction will send an ASCII string out of the designated
communications port from a specified series of V–memory registers for a specified length in
number of bytes. Other features include user specified Append Characters to be placed after
the desired data string for devices that require specific termination character(s), Byte Swap
options, and user specified flags for Busy and Complete.
• Port Number: must be DL06 port 2 (K2)
• Start Address: specifies the beginning of
series of V–memory registers that contain
the ASCII string to print
• Number of Bytes: specifies the length of
the string to print
• Append Characters: specifies ASCII
characters to be added to the end of the
string for devices that require specific
termination characters
• Byte Swap: swaps the high–byte and
low–byte within each V–memory register
of the string while printing. See the
SWAPB instruction for details.
• Busy Bit: will be ON while the instruction
is printing ASCII data
• Complete Bit: will be set once the ASCII
data has been printed and reset when the
PRINTV instruction permissive bits are
disabled.
See the previous page for an example using
the PRINTV instruction.

Parameter DL06 Range


Port Number port 2 (K2)
Start Address All V–memory
Number of Bytes All V–memory or k1–128
Bits: Busy, Complete C0–3777

DL06 Micro PLC User Manual, 1st Ed., Rev. A 5–223


Chapter 5: Standard RLL Instructions - ASCII

ASCII Swap Bytes (SWAPB)


The ASCII Swap Bytes instruction swaps byte
positions (high–byte to low–byte and low–byte to
high–byte) within each V–memory register of a
series of V–memory registers for a specified number
of bytes.
• Starting Address: specifies the beginning of a series
of V–memory registers the instruction will use to
begin byte swapping
• Number of Bytes: specifies the number of bytes,
beginning with the Starting Address, to byte swap.

Parameter DL06 Range


Starting Address All V–memory
Number of Bytes All V–memory or K1–128

Byte Swap No Byte Swapping Byte


Preferences (AIN, AEX, PRINTV, VPRINT) High Low
V2000 0005h
A B C D E V2001 B A
V2002 D C
V2003 xx E

Byte Swap All


Byte
A B C D E High Low
V2000 0005h
V2001 A B
V2002 C D
B A D C E V2003 E xx

Byte Swap All but Null


Byte
A B C D E High Low
V2000 0005h
V2001 A B
V2002 C D
B A D C E V2003 xx E

5–224 DL06 Micro PLC User Manual, 1st Ed., Rev. A


Chapter 5: Standard RLL Instructions - ASCII

SWAPB Example
The AIN Complete bit is used to trigger the SWAPB instruction. Use a one–shot so the
SWAPB only executes once.

AIN complete
SWAPB
C1
21
Starting Address: V2001
Number of Bytes: K32
Byte Swap: All

ASCII Clear Buffer (ACRB)


The ASCII Clear Buffer instruction will clear the ASCII receive buffer of the specified
communications port number. Port Number:must be DL06 port 2 (K2)

ACRB Example
The AIN Complete bit or the AIN diagnostic bits are used to clear the ASCII buffer.
Ain Complete
ACRB
C1
33 K2

Intercharacter timeout
C2

Firstcharacter timeout
C3

AIN overflow error


C4

Informações sobre programação


www.soliton.com.br - e-mail: soliton@soliton.com.br
SOLITON CONTROLES INDUSTRIAIS LTDA
Rua Alfredo Pujol, 1010 - Santana - São Paulo - SP.
Tel:11 - 6950-1834 / Fax: 11 - 6979-8980 - e-mail: vendas@soliton.com.br

DL06 Micro PLC User Manual, 1st Ed., Rev. A


5–225

You might also like