Page View / The Manual D3350

User Manual: View / the Manual D3-350 CPU User Manual

Open the PDF directly: View PDF PDF.
Page Count: 561

DownloadPage View /  The Manual D3350
Open PDF In BrowserView PDF
DL350 PLC User Manual
Manual Number: D3--350--M

1

1

WARNING
Thank you for purchasing automation equipment from Automationdirect.com™, doing business as,
AutomationDirect. We want your new automation equipment to operate safely. Anyone who installs or uses this
equipment should read this publication (and any other relevant publications) before installing or operating the
equipment.
To minimize the risk of potential safety problems, you should follow all applicable local and national codes that regulate
the installation and operation of your equipment. These codes vary from area to area and usually change with time. It is
your responsibility to determine which codes should be followed, and to verify that the equipment, installation, and
operation are in compliance with the latest revision of these codes.
At a minimum, you should follow all applicable sections of the National Fire Code, National Electrical Code, and the
codes of the National Electrical Manufacturer’s Association (NEMA). There may be local regulatory or government
offices that can also help determine which codes and standards are necessary for safe installation and operation.
Equipment damage or serious injury to personnel can result from the failure to follow all applicable codes and
standards. We do not guarantee the products described in this publication are suitable for your particular application,
nor do we assume any responsibility for your product design, installation, or operation.
Our products are not fault--tolerant and are not designed, manufactured or intended for use or resale as on--line control
equipment in hazardous environments requiring fail--safe performance, such as in the operation of nuclear facilities,
aircraft navigation or communication systems, air traffic control, direct life support machines, or weapons systems, in
which the failure of the product could lead directly to death, personal injury, or severe physical or environmental
damage (”High Risk Activities”). AutomationDirect specifically disclaims any expressed or implied warranty of fitness
for High Risk Activities.
For additional warranty and safety information, see the Terms and Conditions section of our Desk Reference. If you
have any questions concerning the installation or operation of this equipment, or if you need additional information,
please call us at 770--844--4200.
This publication is based on information that was available at the time it was printed. We at AutomationDirect
constantly strive to improve our products and services, so we reserve the right to make changes to the products and/or
publications at any time without notice and without any obligation. This publication may also discuss features that may
not be available in certain revisions of the product.

Trademarks
This publication may contain references to products produced and/or offered by other companies. The product and
company names may be trademarked and are the sole property of their respective owners. AutomationDirect
disclaims any proprietary interest in the marks and names of others.
Copyright 2010, Automationdirect.com™ Incorporated
All Rights Reserved
No part of this manual shall be copied, reproduced, or transmitted in any way without the prior, written consent of
Automationdirect.com Incorporated. AutomationDirect retains the exclusive rights to all information included in
this document.

AVERTISSEMENT
Nous vous remercions d’avoir acheté l’équipement d’automatisation de Automationdirect.comMC, en faisant des affaires
comme, AutomationDirect. Nous tenons à ce que votre nouvel équipement d’automatisation fonctionne en toute sécurité.
Toute personne qui installe ou utilise cet équipement doit lire la présente publication (et toutes les autres publications
pertinentes) avant de l’installer ou de l’utiliser.
Afin de réduire au minimum le risque d’éventuels problèmes de sécurité, vous devez respecter tous les codes locaux et
nationaux applicables régissant l’installation et le fonctionnement de votre équipement. Ces codes diffèrent d’une région à
l’autre et, habituellement, évoluent au fil du temps. Il vous incombe de déterminer les codes à respecter et de vous assurer
que l’équipement, l’installation et le fonctionnement sont conformes aux exigences de la version la plus récente de ces
codes.
Vous devez, à tout le moins, respecter toutes les sections applicables du Code national de prévention des incendies, du
Code national de l’électricité et des codes de la National Electrical Manufacturer’s Association (NEMA). Des organismes de
réglementation ou des services gouvernementaux locaux peuvent également vous aider à déterminer les codes ainsi que
les normes à respecter pour assurer une installation et un fonctionnement sûrs.
L’omission de respecter la totalité des codes et des normes applicables peut entraîner des dommages à l’équipement ou
causer de graves blessures au personnel. Nous ne garantissons pas que les produits décrits dans cette publication
conviennent à votre application particulière et nous n’assumons aucune responsabilité à l’égard de la conception, de
l’installation ou du fonctionnement de votre produit.
Nos produits ne sont pas insensibles aux défaillances et ne sont ni conçus ni fabriqués pour l’utilisation ou la revente en tant
qu’équipement de commande en ligne dans des environnements dangereux nécessitant une sécurité absolue, par
exemple, l’exploitation d’installations nucléaires, les systèmes de navigation aérienne ou de communication, le contrôle de
la circulation aérienne, les équipements de survie ou les systèmes d’armes, pour lesquels la défaillance du produit peut
provoquer la mort, des blessures corporelles ou de graves dommages matériels ou environnementaux (”activités à risque
élevé”). La société AutomationDirect nie toute garantie expresse ou implicite d’aptitude à l’emploi en ce qui a trait aux
activités à risque élevé.
Pour des renseignements additionnels touchant la garantie et la sécurité, veuillez consulter la section Modalités et
conditions de notre documentation. Si vous avez des questions au sujet de l’installation ou du fonctionnement de cet
équipement, ou encore si vous avez besoin de renseignements supplémentaires, n’hésitez pas à nous téléphoner au
770--844--4200.
Cette publication s’appuie sur l’information qui était disponible au moment de l’impression. À la société AutomationDirect,
nous nous efforçons constamment d’améliorer nos produits et services. C’est pourquoi nous nous réservons le droit
d’apporter des modifications aux produits ou aux publications en tout temps, sans préavis ni quelque obligation que ce soit.
La présente publication peut aussi porter sur des caractéristiques susceptibles de ne pas être offertes dans certaines
versions révisées du produit.

Marques de commerce
La présente publication peut contenir des références à des produits fabriqués ou offerts par d’autres entreprises. Les
désignations des produits et des entreprises peuvent être des marques de commerce et appartiennent exclusivement à
leurs propriétaires respectifs. AutomationDirect nie tout intérêt dans les autres marques et désignations.
Copyright 2010, Automationdirect.com Incorporated
Tous droits réservés
Nulle partie de ce manuel ne doit être copiée, reproduite ou transmise de quelque façon que ce soit sans le consentement
préalable écrit de la société Automationdirect.com Incorporated. AutomationDirect conserve les droits exclusifs à
l’égard de tous les renseignements contenus dans le présent document.

1
Manual Revisions
If you contact us in reference to this manual, remember to include the revision number.
Title: DL350 PLC User Manual
Manual Number: D3--350--M
Issue

Date

Description of Changes

Original

8/97

Original Issue

Rev A

6/98

Minor corrections

Rev B

5/99

Automationdirect.com

Rev C

8/02

Replaced F3--16TA--1 with F3--16TA--2

2nd Edition

3/10

Updated entire manual

1

1
Table of Contents

i

Chapter 1: Getting Started
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
The Purpose of this Manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Where to Begin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Supplemental Manuals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Technical Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Conventions Used . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Key Topics for Each Chapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DL305 System Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
CPUs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Bases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
I/O Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
I/O Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Programming Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DirectSOFT Programming for Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Handheld Programmer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DL305 System Diagrams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DirectLOGIC Part Numbering System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1--2
1--2
1--2
1--2
1--2
1--3
1--3
1--4
1--4
1--4
1--4
1--4
1--4
1--4
1--4
1--5
1--8

Quick Start for PLC Validation and Programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1--10

Steps to Designing a Successful System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Step 1: Review the Installation Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Step 2: Understand the CPU Setup Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Step 3: Understand the I/O System Configurations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Step 4: Determine the I/O Module Specifications and Wiring Characteristics . . . . . . . . . . . . . . .
Step 5: Understand the System Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Step 6: Review the Programming Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Step 7: Choose the Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Step 8: Understand the Maintenance and Troubleshooting Procedures . . . . . . . . . . . . . . . . . . .

1--13
1--13
1--13
1--13
1--13
1--13
1--14
1--14
1--14

Chapter 2: Installation, Wiring, and Specifications
Safety Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Plan for Safety . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Three Levels of Protection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Emergency Stops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Emergency Power Disconnect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Orderly System Shutdown . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Class 1, Division 2 Approval . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Mounting Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Base Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Panel Mounting and Layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Enclosures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Environmental Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

DL350 User Manual, 2nd Edition

2--2
2--2
2--3
2--3
2--4
2--4
2--4
2--5
2--5
2--6
2--7
2--8

ii

Table of Contents
Agency Approvals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Marine Use . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Power . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Component Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Installing DL305 Bases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Choosing the Base Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Mounting the Base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Installing Components in the Base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Base Wiring Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Base Wiring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Expansion Base Wiring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
I/O Wiring Strategies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PLC Isolation Boundaries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Powering I/O Circuits with the Auxiliary Supply . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Powering I/O Circuits Using Separate Supplies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Sinking / Sourcing Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
I/O “Common” Terminal Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Connecting DC I/O to “Solid State” Field Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Solid State Input Sensors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Solid State Output Loads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Relay Output Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Surge Suppresion For Inductive Loads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Prolonging Relay Contact Life . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
I/O Modules Position, Wiring, and Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Slot Numbering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
I/O Module Placement Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Discrete Module Status Indicators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Color Coding of I/O Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Wiring the Different Module Connectors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
I/O Wiring Checklist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Glossary of Specification Terms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2--8
2--8
2--9
2--10
2--11
2--11
2--11
2--12
2--13
2--13
2--13
2--14
2--14
2--15
2--16
2--17
2--18
2--19
2--19
2--19
2--21
2--21
2--23
2--24
2--24
2--24
2--25
2--25
2--25
2--26
2--27

D3--08ND2, 24 VDC Input Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2--29

D3--16ND2--1, 24 VDC Input Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2--30

D3--16ND2--2, 24 VDC Input Module Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2--31

D3--16ND2F, 24 VDC Fast Response Input Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2--32

F3--16ND3F, TTL/24 VDC Fast Response Input Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Selection of Operating Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
D3--08NA--1, 110 VAC Input Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2--33
2--34
2--35

D3--08NA--2, 220 VAC Input Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2--36

D3--16NA, 110 VAC Input Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2--37

D3--08NE3, 24 VAC/DC Input Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2--38

D3--16NE3, 24 VAC/DC Input Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2--39

D3--08SIM, Input Simulator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2--40

D3--08TD1, 24 VDC Output Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2--41

D3--08TD2, 24 VDC Output Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2--42

DL350 User Manual, 2nd Edition

iii

Table of Contents
D3--16TD1--1, 24 VDC Output Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2--43

D3--16TD1--2, 24 VDC Output Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2--44

D3--16TD2, 24 VDC Output Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2--45

D3--04TAS, 110--220 VAC Output Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2--46

F3--08TAS, 250 VAC Isolated Output Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2--47

F3--08TAS--1, 125 VAC Isolated Output Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2--48

D3--08TA--1, 110--220 VAC Output Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2--49

D3--08TA--2, 110--220 VAC Output Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2--50

F3--16TA--2, 20--125 VAC Output Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2--51

D3--16TA--2, 15--220 VAC Output Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2--52

D3--08TR, Relay Output Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2--53

F3--08TRS--1, Relay Output Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2--54

F3--08TRS--2, Relay Output Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2--55

D3--16TR, Relay Output Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2--56

Chapter 3: CPU Specifications and Operations
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
General CPU Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DL350 CPU Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
CPU General Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3--2
3--2
3--2
3--3

CPU Hardware Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Mode Switch Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Status Indicators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Port 1 Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Port 2 Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using Battery Backup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Enabling the Battery Backup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
CPU Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Installing the CPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Connecting the Programming Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Auxiliary Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Clearing an Existing Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Setting the Clock and Calendar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Initializing System Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Setting the CPU Network Address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Setting Retentive Memory Ranges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Password Protection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
CPU Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
CPU Operating System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Program Mode Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Run Mode Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Read Inputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Read Inputs from Specialty and Remote I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3--4
3--4
3--4
3--5
3--5
3--6
3--6
3--7
3--7
3--7
3--8
3--9
3--9
3--9
3--10
3--10
3--10
3--11
3--11
3--12
3--12
3--13
3--13

iv

Table of Contents
Service Peripherals and Force I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Update Clock, Special Relays, and Special Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Solve Application Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Solve PID Loop Equations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Write Outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Write Outputs to Specialty and Remote I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Diagnostics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
I/O Response Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Is Timing Important for Your Application? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Normal Minimum I/O Response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Normal Maximum I/O Response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Improving Response Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
CPU Scan Time Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Intialization Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Service Peripherals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
CPU Bus Communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Update Clock / Calendar, Special Relays, Special Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Diagnostics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Application Program Execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PLC Numbering Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PLC Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
V--Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Binary-Coded Decimal Numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Hexadecimal Numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Memory Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Octal Numbering System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Discrete and Word Locations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
V--Memory Locations for Discrete Memory Areas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Input Points (X Data Type) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Output Points (Y Data Type) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Control Relays (C Data Type) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Timers and Timer Status Bits (T Data type) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Timer Current Values (V Data Type) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Counters and Counter Status Bits (CT Data type) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Counter Current Values (V Data Type) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Word Memory (V Data Type) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Stages (S Data type) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Special Relays (SP Data Type) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DL350 System V-memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DL350 Memory Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DL350 Aliases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3--13
3--13
3--14
3--14
3--14
3--15
3--15
3--16
3--16
3--16
3--16
3--17
3--18
3--19
3--19
3--19
3--19
3--19
3--20
3--21
3--21
3--22
3--22
3--22
3--23
3--23
3--23
3--23
3--24
3--24
3--24
3--24
3--25
3--25
3--25
3--26
3--26
3--26
3--27
3--29
3--30

X Input / Y Output Bit Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3--31

Control Relay Bit Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3--32

Stage Control / Status Bit Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3--34

Timer and Counter Status Bit Maps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3--36

Chapter 4: System Design and Configuration
DL305 System Design Strategies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

DL350 User Manual, 2nd Edition

4--2

v

Table of Contents
I/O System Configurations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Networking Configurations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Base Configurations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Module Placement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Slot Numbering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
I/O Module Placement Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
I/O Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Calculating the Power Budget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Managing your Power Resource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Base Power Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
I/O Points Required for Each Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Module Power Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Power Budget Calculation Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Power Budget Calculation Worksheet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Local I/O Expansion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Base Uses Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Local/Expansion Connectivity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Connecting Expansion Bases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Setting the Base Switches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Jumper Switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
I/O Configurations with a 5 Slot Local CPU Base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Switch settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5 Slot Base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5 Slot Base and up to two 5 Slot Expansion Bases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
I/O Configurations with an 8 Slot Local CPU Base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8 Slot Base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8 Slot Base and 5 Slot Expansion Base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8 Slot Base and One 8 slot and one 5 slot Expansion Bases . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8 Slot Base and two 8 slot Expansion Bases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
I/O Configurations with a 10 Slot Local CPU Base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10 Slot Base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10 Slot Base and 5 Slot Expansion Base with 16 Point I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10 Slot Base and 10 Slot Expansion Base with 16 Point I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Remote I/O Expansion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How to Add Remote I/O Channels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Configuring the CPU’s Remote I/O Channel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Configure Remote I/O Slaves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Configuring the Remote I/O Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Remote I/O Setup Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Remote I/O Test Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Network Connections to MODBUS and DirectNET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Configuring the CPU’s Comm Port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
MODBUS Port Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DirectNET Port Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Network Slave Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
MODBUS Function Codes Supported . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Determining the MODBUS Address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
If Your Host Software Requires the Data Type and Address... . . . . . . . . . . . . . . . . . . . . . . . . . . .
Example 1: V2100 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4--2
4--2
4--2
4--3
4--3
4--3
4--3
4--4
4--4
4--4
4--5
4--5
4--7
4--8
4--9
4--9
4--9
4--10
4--11
4--11
4--12
4--12
4--12
4--12
4--13
4--13
4--13
4--13
4--14
4--15
4--15
4--15
4--15
4--16
4--16
4--17
4--19
4--19
4--20
4--21
4--22
4--22
4--23
4--24
4--25
4--25
4--25
4--26
4--27

vi

Table of Contents
Example 2: Y20 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Example 3: T10 Current Value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Example 4: C54 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
If Your MODBUS Host Software Requires an Address ONLY . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Example 1: V2100 584/984 Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Example 2: Y20 584/984 Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Example 3: T10 Current Value 484 Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Example 4: C54 584/984 Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Determining the DirectNET Address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Network Master Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Step 1: Identify Master Port # and Slave # . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Step 2: Load Number of Bytes to Transfer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Step 3: Specify Master Memory Area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Step 4: Specify Slave Memory Area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Communications from a Ladder Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Multiple Read and Write Interlocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4--27
4--27
4--27
4--28
4--29
4--29
4--29
4--29
4--29
4--30
4--31
4--31
4--32
4--32
4--33
4--33

Chapter 5: Standard RLL Instructions
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5--2

Using Boolean Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
END Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Simple Rungs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Normally Closed Contact . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Contacts in Series . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Midline Outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Parallel Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Joining Series Branches in Parallel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Joining Parallel Branches in Series . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Combination Networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Boolean Stack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Comparative Boolean . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Immediate Boolean . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Boolean Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Store (STR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Store Not (STRN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Store Bit-of-Word (STRB) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Store Not Bit-of-Word (STRNB) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Or (OR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Or Not (ORN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Or Bit-of-Word (ORB) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Or Not Bit-of-Word (ORNB) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
And (AND) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
And Not (ANDN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
And Bit-of-Word (ANDB) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
And Not Bit-of-Word (ANDNB) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
And Store (AND STR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Or Store (OR STR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Out (OUT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Out Bit-of-Word (OUTB) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Or Out (OR OUT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Not (NOT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Positive Differential (PD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5--4
5--4
5--4
5--4
5--4
5--5
5--5
5--5
5--5
5--6
5--6
5--7
5--7
5--8
5--8
5--8
5--9
5--9
5--10
5--10
5--11
5--11
5--12
5--12
5--13
5--13
5--14
5--14
5--15
5--16
5--17
5--17
5--18

DL350 User Manual, 2nd Edition

vii

Table of Contents
Store Positive Differential (STRPD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Store Negative Differential (STRND) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Or Positive Differential (ORPD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Or Negative Differential (ORND) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
And Positive Differential (ANDPD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
And Negative Differential (ANDND) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Set (SET) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Reset (RST) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Set Bit-of-Word (SETB) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Reset Bit-of-Word (RSTB) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Comparative Boolean . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Store If Equal (STRE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Store If Not Equal (STRNE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Or If Equal (ORE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Or If Not Equal (ORNE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
And If Equal (ANDE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
And If Not Equal (ANDNE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Store (STR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Store Not (STRN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Or (OR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Or Not (ORN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
And (AND) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
And Not (ANDN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Immediate Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Store Immediate (STRI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Store Not Immediate (STRNI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Or Immediate (ORI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Or Not Immediate (ORNI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
And Immediate (ANDI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
And Not Immediate (ANDNI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Out Immediate (OUTI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Or Out Immediate (OROUTI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Set Immediate (SETI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Reset Immediate (RSTI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Timer, Counter and Shift Register Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using Timers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Timer (TMR) and Timer Fast (TMRF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Timer Example Using Discrete Status Bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Timer Example Using Comparative Contacts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Accumulating Timer (TMRA) Accumulating Fast Timer (TMRAF) . . . . . . . . . . . . . . . . . . . . . . . . .
Accumulating Timer Example using Discrete Status Bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Accumulator Timer Example Using Comparative Contacts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Counter (CNT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Counter Example Using Discrete Status Bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Counter Example Using Comparative Contacts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Stage Counter (SGCNT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Stage Counter Example Using Discrete Status Bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Stage Counter Example Using Comparative Contacts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Up Down Counter (UDC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Up / Down Counter Example Using Discrete Status Bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Up / Down Counter Example Using Comparative Contacts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Shift Register (SR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Accumulator / Stack Load and Output Data Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5--19
5--19
5--20
5--20
5--21
5--21
5--22
5--22
5--23
5--23
5--24
5--24
5--24
5--25
5--25
5--26
5--26
5--27
5--27
5--28
5--28
5--29
5--29
5--30
5--30
5--30
5--31
5--31
5--32
5--32
5--33
5--33
5--34
5--34
5--35
5--35
5--36
5--37
5--37
5--38
5--39
5--39
5--40
5--41
5--41
5--42
5--43
5--43
5--44
5--45
5--45
5--46
5--47

viii

Table of Contents

Using the Accumulator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Copying Data to the Accumulator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Changing the Accumulator Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using the Accumulator Stack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using Pointers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Load (LD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Load Double (LDD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Load Formatted (LDF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Load Address (LDA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Load Accumulator Indexed (LDX) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Load Accumulator Indexed from Data Constants (LDSX) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Load Real Number (LDR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Out (OUT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Out DOUBLE (OUTD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Out Formatted (OUTF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Out Indexed (OUTX) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Pop (POP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Accumulator Logical Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
And (AND) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
And Double (ANDD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
And Formatted (ANDF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Or (OR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Or Double (ORD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Or Formatted (ORF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exclusive Or (XOR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exclusive Or Double (XORD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exclusive Or Formatted (XORF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Compare (CMP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Compare Double (CMPD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Compare Formatted (CMPF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Compare Real Number (CMPR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Math Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Add (ADD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Add Double (ADDD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Add Real (ADDR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Subtract (SUB) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Subtract Double (SUBD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Subtract Real (SUBR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Multiply (MUL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Multiply Double (MULD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Multiply Real (MULR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Divide (DIV) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Divide Double (DIVD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Divide Real (DIVR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Increment (INC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Decrement (DEC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Add Binary (ADDB) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Subtract Binary (SUBB) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Multiply Binary (MULB) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Divide Binary (DIVB) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Increment Binary (INCB) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Decrement Binary (DECB) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Bit Operation Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

DL350 User Manual, 2nd Edition

5--47
5--47
5--48
5--49
5--51
5--52
5--53
5--54
5--55
5--56
5--57
5--58
5--59
5--60
5--61
5--62
5--63
5--64
5--64
5--65
5--66
5--67
5--68
5--69
5--70
5--71
5--72
5--73
5--74
5--75
5--76
5--77
5--77
5--78
5--79
5--80
5--81
5--82
5--83
5--84
5--85
5--86
5--87
5--88
5--89
5--89
5--90
5--91
5--92
5--93
5--94
5--95
5--96

Table of Contents
Sum (SUM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5--96
Shift Left (SHFL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5--97
Shift Right (SHFR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5--98
Rotate Left (ROTL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5--99
Rotate Right (ROTR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5--100
Encode (ENCO) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5--101
Decode (DECO) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5--102
Number Conversion Instructions (Accumulator) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5--103
Binary (BIN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5--103
Binary Coded Decimal (BCD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5--104
Invert (INV) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5--105
Ten’s Complement (BCDCPL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5--106
Binary to Real Conversion (BTOR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5--107
Real to Binary Conversion (RTOB) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5--108
ASCII to HEX (ATH) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5--109
HEX to ASCII (HTA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5--110
Segment (SEG) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5--112
Gray Code (GRAY) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5--113
Shuffle Digits (SFLDGT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5--114
Shuffle Digits Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5--114
Table Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5--116
Move (MOV) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5--116
Move Memory Cartridge / Load Label (MOVMC) (LDLBL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5--117
Copy Data From a Data Label Area to V--Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5--118
Copy Data From V--Memory to a Data Label Area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5--119
Clock / Calendar Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5--120
Date (DATE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5--120
Time (TIME) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5--121
CPU Control Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5--122
No Operation (NOP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5--122
End (END) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5--122
Stop (STOP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5--123
Reset Watch Dog Timer (RSTWT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5--123
Program Control Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5--124
Goto Label (GOTO) (LBL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5--124
For / Next (FOR) (NEXT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5--125
Goto Subroutine (GTS) (SBR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5--127
Subroutine Return (RT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5--127
Subroutine Return Conditional (RTC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5--127
Master Line Set(MLS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5--130
Master Line Reset(MLR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5--130
Understanding Master Control Relays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5--130
MLS/MLR Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5--131
Interrupt Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5--132
Interrupt (INT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5--132
Interrupt Return (IRT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5--133
Interrupt Return Conditional (IRTC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5--133
Enable Interrupts (ENI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5--133
Disable Interrupts (DISI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5--133
Interrupt Example for Software Interrupt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5--134
..
5--134

ix

x

Table of Contents
Intelligent I/O Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Read from Intelligent Module (RD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Write to Intelligent Module (WT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Network Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Read from Network (RX) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Write to Network (WX) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Message Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Fault (FAULT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Fault Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Data Label (DLBL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ASCII Constant (ACON) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Numerical Constant (NCON) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Data Label Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Print Message (PRINT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5--135
5--135
5--136
5--137
5--137
5--139
5--141
5--141
5--142
5--143
5--143
5--143
5--144
5--145

Chapter 6: Drum Instruction Programming
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Purpose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Drum Terminology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Drum Chart Representation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Output Sequences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Step Transitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Drum Instruction Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Timer-Only Transitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Timer and Event Transitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Event-Only Transitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Counter Assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Last Step Completion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Overview of Drum Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Drum Instruction Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Powerup State of Drum Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Drum Control Techniques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Drum Control Inputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Self-Resetting Drum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Initializing Drum Outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Drum Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Timed Drum with Discrete Outputs (DRUM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Event Drum with Discrete Outputs (EDRUM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Masked Event Drum with Discrete Outputs(MDRUMD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Masked Event Drum with Word Output (MDRUMW) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6--2
6--2
6--2
6--3
6--3
6--4
6--4
6--4
6--5
6--6
6--6
6--7
6--8
6--8
6--9
6--10
6--10
6--11
6--11
6--12
6--12
6--14
6--18
6--20

Chapter 7: RLL PLUS Stage Programming
Introduction to Stage Programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Overcoming “Stage Fright” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Learning to Draw State Transition Diagrams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Introduction to Process States . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
The Need for State Diagrams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
A 2--State Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

DL350 User Manual, 2nd Edition

7--2
7--2
7--3
7--3
7--3
7--3

xi

Table of Contents
RLL Equivalent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Stage Equivalent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Let’s Compare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Initial Stages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
What Stage Bits Do . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Stage Instruction Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using the Stage Jump Instruction for State Transitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Stage Jump, Set, and Reset Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Stage Program Example: Toggle On/Off Lamp Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
A 4--State Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Four Steps to Writing a Stage Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

7--4
7--4
7--5
7--5
7--6
7--6
7--7
7--7
7--8
7--8
7--9

Stage Program Example: A Garage Door Opener . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Garage Door Opener Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Draw the Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Draw the State Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Add Safety Light Feature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Modify the Block Diagram and State Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using a Timer Inside a Stage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Add Emergency Stop Feature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exclusive Transitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Stage Program Design Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Stage Program Organization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How Instructions Work Inside Stages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using a Stage as a Supervisory Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Stage Counter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Unconditional Outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Power Flow Transition Technique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Parallel Processing Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Parallel Processes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Converging Processes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Convergence Stages (CV) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Convergence Jump (CVJMP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Convergence Stage Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Managing Large Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Stage Blocks (BLK, BEND) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Block Call (BCALL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
RLL PLUS Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Stage (SG) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Initial Stage (ISG) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Jump (JMP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Not Jump (NJMP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Converge Stage (CV) and Converge Jump (CVJMP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Block Call (BCALL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Block (BLK) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Block End (BEND) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Stage View in DirectSOFT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Questions and Answers about Stage Programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

7--10
7--10
7--10
7--11
7--12
7--12
7--13
7--14
7--14
7--15
7--15
7--16
7--17
7--17
7--18
7--18
7--19
7--19
7--19
7--19
7--20
7--20
7--21
7--21
7--22
7--23
7--23
7--24
7--24
7--24
7--25
7--27
7--27
7--27
7--28
7--29

xii

Table of Contents

Chapter 8: PID Loop Operation
DL350 PID Loop Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Main Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Introduction to PID Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
What is PID Control? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Introducing DL350 PID Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Process Control Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PID Loop Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PID Position Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Reset Windup Protection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Freeze Bias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Adjusting the Bias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Step Bias Proportional to Step Change SP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Eliminating Proportional, Integral or Derivative Action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Velocity Form of the PID Equation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Bumpless Transfer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Loop Alarms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Loop Operating Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Special Loop Calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ten Steps to Successful Process Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Step 1: Know the Recipe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Step 2: Plan Loop Control Strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Step 3: Size and Scale Loop Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Step 4: Select I/O Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Step 5: Wiring and Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Step 6: Loop Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Step 7: Check Open Loop Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Step 8: Loop Tuning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Step 9: Run Process Cycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Step 10: Save Loop Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PID Loop Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Some Things to Do and Know Before Starting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PID Error Flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Establishing the Loop Table Size and Location . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Loop Table Word Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PID Mode Setting 1 Bit Descriptions (Addr + 00) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PID Mode Setting 2 Descriptions (Addr + 01) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Mode/Alarm Monitoring Word (Addr + 06) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ramp/Soak Table Flags (Addr + 33) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ramp/Soak Table Location (Addr + 34) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ramp/Soak Table Programming Error Flags (Addr + 35) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Configure the PID Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PID Loop Tuning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Open--Loop Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Manual Tuning Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Auto Tuning Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Use DirectSOFT 5 Data View with PID View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Open a New Data View Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Open PID View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using Other PID Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

DL350 User Manual, 2nd Edition

8--2
8--2
8--4
8--4
8--6
8--8
8--9
8--9
8--10
8--11
8--11
8--12
8--12
8--12
8--13
8--13
8--14
8--14
8--16
8--16
8--16
8--16
8--16
8--17
8--17
8--17
8--17
8--17
8--17
8--18
8--18
8--18
8--19
8--21
8--22
8--23
8--24
8--24
8--25
8--25
8--26
8--40
8--40
8--41
8--44
8--48
8--48
8--48
8--51

xiii

Table of Contents
How to Change Loop Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Operator Panel Control of PID Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PLC Modes’ Effect on Loop Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Loop Mode Override . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Creating an Analog Filter in Ladder Logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Use the DirectSOFT 5 Filter Intelligent Box Instruction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
FilterB Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ramp/Soak Generator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ramp/Soak Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ramp/Soak Table Flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ramp/Soak Generator Enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ramp/Soak Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ramp/Soak Profile Monitoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ramp/Soak Programming Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Testing Your Ramp/Soak Profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DirectSOFT Ramp/Soak Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Setup the Profile in PID Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Program the Ramp/Soak Control in Relay Ladder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Program the Ramp/Soak Control in Relay Ladder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Cascade Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Cascaded Loops in the DL350 CPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Tuning Cascaded Loops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Time-Proportioning Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
On/Off Control Program Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Feedforward Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Feedforward Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PID Example Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Program Setup for the PID Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Troubleshooting Tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8--51
8--52
8--52
8--52
8--53
8--54
8--54
8--55
8--55
8--56
8--58
8--58
8--58
8--59
8--59
8--59
8--60
8--60
8--61
8--62
8--63
8--63
8--64
8--65
8--66
8--67
8--68
8--69
8--70
8--70
8--72

Glossary of PID Loop Terminology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8--74

Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8--76

Chapter 9: Maintenance and Troubleshooting
Hardware Maintenance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9--2

Diagnostics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9--3

CPU Indicators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9--9

PWR Indicator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9--10

RUN Indicator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9--12

CPU Indicator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9--12

BATT Indicator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9--12

Communications Problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9--12

I/O Module Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9--13

xiv

Table of Contents

Noise Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9--16

Machine Startup and Program Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9--17

Appendix A: Auxiliary Functions
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
What are Auxiliary Functions? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Accessing AUX Functions via DirectSOFT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Accessing AUX Functions via the Handheld Programmer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
AUX 2* — RLL Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
AUX 21, 22, 23 and 24 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
AUX 21 Check Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
AUX 22 Change Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
AUX 23 Clear Ladder Range . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
AUX 24 Clear Ladders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
AUX 3* — V-memory Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
AUX 31 Clear V--Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
AUX 4* — I/O Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
AUX 41 Show I/O Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
AUX 5* — CPU Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
AUX 51 -- 58 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
AUX 51 Modify Program Name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
AUX 52 Display /Change Calendar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
AUX 53 Display Scan Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
AUX 54 Initialize Scratchpad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
AUX 55 Set Watchdog Timer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
AUX 56 CPU Network Address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
AUX 57 Set Retentive Ranges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
AUX 5C Display Error History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
AUX 6* — Handheld Programmer Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
AUX 61 Show Revision Numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
AUX 7* — EEPROM Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
AUX 71 -- 76 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
AUX 71 CPU to HPP EEPROM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
AUX 72 HPP EEPROM to CPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
AUX 73 Compare HPP EEPROM to CPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
AUX 74 HPP EEPROM Blank Check . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
AUX 75 Erase HPP EEPROM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
AUX 76 Show EEPROM Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
AUX 8* — Password Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
AUX 81 -- 83 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
AUX 81 Modify Password . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
AUX 82 Unlock CPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
AUX 83 Lock CPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

DL350 User Manual, 2nd Edition

A--2
A--2
A--3
A--3
A--4
A--4
A--4
A--4
A--4
A--4
A--4
A--4
A--5
A--5
A--5
A--5
A--5
A--5
A--6
A--6
A--6
A--6
A--7
A--7
A--8
A--8
A--8
A--8
A--8
A--8
A--8
A--8
A--8
A--8
A--9
A--9
A--9
A--9
A--9

xv

Table of Contents

Appendix B: Error Codes
Appendix C: Instruction Execution Times
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
V-Memory Data Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
V-Memory Bit Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How to Read the Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Boolean Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

C--2
C--2
C--2
C--3
C--4

Comparative Boolean . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

C--5

Immediate Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C--11
Timer, Counter, Shift Register Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C--12
Accumulator Data Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C--13
Logical Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C--14
Math Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C--15
Bit Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C--16
Number Conversion Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C--16
Table Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C--17
CPU Control Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C--17
Program Control Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C--17
Interrupt Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C--18
Network Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C--18
Message Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C--18
RLL PLUS Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C--18
Clock / Calendar Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C--19
Drum Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C--19

Appendix D: Special Relays
DL350 CPU Special Relays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Startup and Real-Time Relays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
CPU Status Relays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
System Monitoring Relays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Accumulator Status Relays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Communications Monitoring Relays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

D--2
D--2
D--2
D--3
D--3
D--4

Appendix E: DL305 Product Weights
Product Weight Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

E--2

xvi

Table of Contents

Appendix F: I/O Addressing Conventional Method
Understanding Conventional I/O Numbering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DL305 I/O Configuration History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Octal Numbering System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Fixed I/O Numbering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
I/O Numbering Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Number of I/O Points Required for Each Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
I/O Module Placement Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Conventional Base Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Auxiliary 24VDC Output at Base Terminal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Power Supply Schematics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using the Run Relay on the Base Power Supply . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Local or Expansion I/O Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Base Uses Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Local/Expansion Connectivity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Connecting Expansion Bases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Setting the Base Switches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5 Slot Bases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10 Slot Base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Example I/O Configurations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16 Point I/O Allocation Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Examples Show Maximum I/O Points Available . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
I/O Configurations with a 5 Slot Local CPU Base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Switch settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5 Slot Base with 8 Point I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5 Slot Base with 16 Point I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5 Slot Base and 5 Slot Expansion Base with 8 Point I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5 Slot Base and 5 Slot Expansion Base with 16 Point I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5 Slot Base and Two 5 Slot Expansion Bases with 8 Point I/O . . . . . . . . . . . . . . . . . . . . . . . . . . .
5 Slot Base and Two 5 Slot Expansion Bases with 16 and 8 Point I/O . . . . . . . . . . . . . . . . . . . .
I/O Configurations with an 8 Slot Local CPU Base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8 Slot Base with 8 Point I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8 Slot Base with 16 Point I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8 Slot Base and 5 Slot Expansion Base with 8 Point I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8 Slot Base and 5 Slot Expansion Base with 16 Point I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
I/O Configurations with a 10 Slot Local CPU Base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Switch settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Last Slot Address Range 100 to 107 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Last Slot Address Range 700 to 707 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10 Slot Expansion Base with 16 Point I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Configuration 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Configuration 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10 Slot Base and 5 Slot Expansion Base with 16 Point I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Expansion Addresses Depend on Local CPU Base Configuration. . . . . . . . . . . . . . . . . . . . . . . .
10 Slot Base and 10 Slot Expansion Base with 8 Point I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10 Slot Base and 10 Slot Expansion Base with 16 Point I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

DL350 User Manual, 2nd Edition

F--2
F--2
F--2
F--2
F--3
F--3
F--4
F--5
F--5
F--6
F--7
F--8
F--8
F--8
F--9
F--10
F--10
F--10
F--11
F--11
F--11
F--12
F--12
F--12
F--12
F--13
F--13
F--14
F--14
F--15
F--15
F--15
F--15
F--15
F--16
F--16
F--16
F--16
F--17
F--17
F--17
F--18
F--19
F--19
F--19

Table of Contents

xvii

Appendix G: PLC Memory
DL350 PLC Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Non--volatile V--memory in the DL350 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

G--2
G--3

Appendix H: ASCII Table
Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

H--2

Appendix I: Numbering Systems
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

I--2

Binary Numbering System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

I--2

Hexadecimal Numbering System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

I--3

Octal Numbering System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

I--4

Binary Coded Decimal (BCD) Numbering System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

I--5

Real (Floating Point) Numbering System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

I--6

BCD/Binary/Decimal/Hex/Octal -- What is the Difference? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

I--7

Data Type Mismatch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

I--8

Signed vs. Unsigned Intergers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

I--9

AutomationDirect.com Products and Data Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DirectLOGIC PLCs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
C--more/C--more Micro--Graphic Panels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

I--10
I--10
I--10

Appendix J: European Union Directives (CE)
European Union (EU) Directives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Member Countries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
General Safety . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Special Installation Manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Other Sources of Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Basic EMC Installation Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Enclosures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Suppression and Fusing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Internal Enclosure Grounding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Equi--potential Grounding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Communications and Shielded Cables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Analog and RS232 Cables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Multidrop Cables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Shielded Cables within Enclosures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Caution Regarding RF Interference near Analog Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Network Isolation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Items Specific to the DL350 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Index

J--2
J--2
J--4
J--4
J--4
J--5
J--5
J--5
J--6
J--6
J--6
J--7
J--7
J--8
J--8
J--8
J--9

Getting Started

11

In This Chapter. . . .
— Introduction
— DL305 System Components
— Programming Methods
— DirectLOGIC™ Part Numbering System
— Quick Start for PLC Validation and Programming
— Steps to Designing a Successful System

1--2

Getting Started

Getting Started

Introduction
The Purpose of
this Manual

Thank you for purchasing our DL305
family of products. This manual shows you
how to install, program, and maintain the
equipment. 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
DL305 PLCs, DL350 CPU and
components,
and
for
the
PLC
programmer. If you understand PLC
systems, our manuals will provide all the
information you need to start and keep
your system up and running.

Where to Begin

If you already understand PLCs please read Chapter 2, “Installation, Wiring, and
Specifications”, and proceed on to other chapters as needed. Keep this manual
handy for reference when you have questions. If you are a new DL305 customer, we
suggest you read this manual completely to understand the wide variety of features
in the DL305 family of products. We believe you will be pleasantly surprised with how
much you can accomplish with AutomationDirect™ products.

Supplemental
Manuals

If you have purchased operator interfaces or DirectSOFT™, you will need to
supplement this manual with the manuals that are written for these products.

Technical Support

We realize that even though we strive to be the best, we may have arranged our
information in such a way you cannot find what you are looking for. First, check these
resources for help in locating the information:
S
S
S

Table of Contents -- chapter and section listing of contents, in the front
of this manual
Appendices -- reference material for key topics, near the end of this
manual
Index -- alphabetical listing of key words, at the end of this manual

You can also check our online resources for the latest product support information:
S Internet -- Our Web address is
http://www.automationdirect.com
If you still need assistance, please call us at 770--844--4200. Our technical support
group is glad to work with you in answering your questions. They are available
Monday through Friday from 9:00 A.M. to 6:00 P.M. Eastern Standard Time. If you
have a comment or question about any of our products, services, or manuals, please
fill out and return the ‘Suggestions’ card that was shipped with this manual.

DL350 User Manual, 2nd Edition

Getting Started

1--3

Conventions Used

When you see the “notepad” icon in the left--hand margin, the paragraph to its
immediate right will be a special note.
The word NOTE: in boldface will mark the beginning of the text.

When you see the “exclamation mark” 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).
The word WARNING: and text will be in boldface.
Key Topics for
Each Chapter

The beginning of each chapter will list the
key topics that can be found in that
chapter.

1

DL350 User Manual, 2nd Edition

Getting Started

When you see the “light bulb” icon in the left--hand margin, the paragraph to its
immediate right will give you a special tip.
The word TIP: in boldface will mark the beginning of the text.

1--4

Getting Started

Getting Started

DL305 System Components
The DL305 family is a versatile product line that provides a wide variety of features in
an extremely compact package. The CPUs are small, but offer many instructions
normally only found in larger, more expensive systems. The modular design also
offers more flexibility in the fast moving industry of control systems. The following is a
summary of the major DL305 system components.
There are three feature enhanced CPUs in this product line, the DL330, DL340, and
the DL350. This manual covers the DL350 CPU only. The DL330 and DL340 CPUs
are covered in detail in the DL305C User Manual. The DL350 CPU includes built-in
communication ports, a large amount of program memory, a substantial instruction
set and advanced diagnostics. It also features drum timers, floating--point math, and
built in PID loops with automatic tuning.

CPUs

Bases

Three base sizes are available: 5 slot, 8 slot, and 10 slot. One slot is for the CPU, the
remaining slots are for I/O modules. All bases include a built-in power supply.
Currently there are two versions of the bases. The xxxxx--1 bases were designed to
compliment the DL350 CPU. Any of the three CPUs will work in either type of base
and the bases can be mixed in a system. When the DL350 CPU is used in an old
base, or if it is in a system of mixed bases, it will act similar to the DL340 CPU in
addressing and I/O configuration (See Appendix F).

I/O Configuration

The DL350 CPU can support up to 368 I/O points with the bases currently available.
These points can be assigned as input or output points. The DL305 system can also
be expanded by adding remote I/O. The DL350 also provides a built--in master for
remote I/O networks. The I/O configuration is explained in Chapter 4, System
Design and Configuration.

I/O Modules

The DL305 has some of the most powerful modules in the industry. A complete
range of discrete modules which support 24 VDC, 110/220 VAC and up to 10A relay
outputs are offered. The analog modules provide 12 bit resolution and several
selections of input and output signal ranges (including bipolar).

Programming Methods
There are two programming methods available to the DL350 CPU, RLL (Relay
Ladder Logic) and RLL PLUS (Stage Programming). Both the DirectSOFT™
programming package and the handheld programmer support RLL and Stage.
DirectSOFT
Programming for
Windows™

The DL305 can be programmed with one of the most advanced programming
packages in the industry ----DirectSOFT. DirectSOFT is a Windows-based software
package that supports many Windows-features you are already know, such as cut
and paste between applications, point and click editing, viewing and editing multiple
application programs at the same time, etc. DirectSOFT universally supports the
DirectLOGIC™ CPU families. This means you can use the same DirectSOFT
package to program DL105, DL205, DL305, DL405 or any new CPUs we may add to
our product line. There is a separate manual that discusses the DirectSOFT
programming software.

Handheld
Programmer

The DL350 CPU has a built-in programming port for use with the DL205 handheld
programmer (D2--HPP). The handheld programmer can be used to create, modify
and debug your application program. A separate manual that discusses the
Handheld Programmer is available.

DL350 User Manual, 2nd Edition

1--5

Getting Started

The diagram below shows the major components and configurations of the DL305
system. The next two pages show specific components for building your system.

Machine Control

Computer Controlled I/O

Packaging
Conveyors
Elevators

Handheld Programmer

Industry Standard Computer I/O Protocol
OPTOMUX™ (Serial RS422/485)
PAMUX™ (Parallel)

DL305
DL305

1.5ft
(.05m)

1.5ft
(.05m)

RS232C

(max.50ft/16.2m)

RS422/485

DL305

DL305

Programming or
Computer Interface
Computer Interface
with OPTOMUX™ Driver

Networking
DL305

Operator Interface

Programming or
Computer
Interface
Handheld Programmer

RS422

RS232C

(max.50ft/16.2m)

DL305

RS232C/422
Convertor

(max. 4.6ft / 1.5m)

DL305

RS232C/422
Convertor

RS232C

(max.50ft/16.2m)

DL305

RS232C/422
Convertor

DL350 User Manual, 2nd Edition

Getting Started

DL305 System
Diagrams

Getting Started

DirectLOGIC

Getting Started

1--6

DC INPUT
8pt
16pt
16pt
16pt

24 VDC
24 VDC
5-24 VDC
12-24 VDC

AC INPUT

AC/DC INPUT

8pt 110 VAC
16pt 110 VAC
8pt 220 VAC

8pt 24 VAC/DC
16pt 24 VAC/DC

PROGRAMMING
Handheld Programmer for RLL and
RLL PLUS
DirectSOFT Programming for Windows™

CPUs
DL350
7.6K Built in Flash memory
and 2 Built-in Ports

ASCII BASIC Modules
RS232C / RS422 / RS485
Built-in Radio Modem
Built-in Telephone Modem
Program Memory 64K/128K

DL350 User Manual, 2nd Edition

BASES

5 Slot Base w/Expansion Capability,
110/220 VAC P/S
5 Slot Base w/Expansion Capability,
24 VDC Supply
8 Slot Base w/Expansion Capability,
110/220 VAC P/S
10 Slot Base w/Expansion Capability,
110/220 VAC P/S

Getting Started

DC OUTPUT
8pt 5--24 VDC
16pt 5--24 VDC

Getting Started

DL305 Family
RELAY OUTPUT

AC OUTPUT
4 pt
8pt
8pt
16pt
16pt

8pt
8pt
8pt
16pt

110--220 VAC
110--220 VAC
12--220 VAC
12--220VAC
15--220VAC

4A/pt AC
5A/pt DC
10A/pt
2A/pt

ANALOG
4ch
8ch
16ch
2ch
4ch
8ch

INPUT
INPUT
INPUT
OUTPUT
OUTPUT
TEMPERATURE
TRANSDUCER INPUT
8ch THERMOCOUPLE
INPUT

SPECIALTY CPUs
Bridge CPU to connect
to host w/OPTOMUX™ Driver
Bridge CPU w/FACTS
Extended Basic Programming
Bridge CPU to connect to
High-speed PAMUX™
compatible host

SPECIALTY
MODULES / UNITS

1--7

NETWORKING
RS232C Data Communication Unit
RS422 Data Communication Unit
MODBUS® Slave Module
MODBUS® Slave Module
w/Radio Modem
Universal connector:
RS232C / RS422/485 Convertor

8pt INPUT Simulator
1pt High Speed Counter
PROM Writer Unit
Filler Module

DL350 User Manual, 2nd Edition

1--8

Getting Started

Getting Started

DirectLOGIC Part Numbering System
As you examine this manual, you will notice there are many different products available. Sometimes it is
difficult to remember the specifications for any given product. However, if you take a few minutes to
understand the numbering system, it may save you some time and confusion. The charts below show how
the part numbering systems work for each product category. Part numbers for accessory items such as
cables, batteries, memory cartridges, etc. are typically an abbreviation of the description for the item.

CPUs
Specialty CPUs
Product family

D1/F1

D4--

440DC

--1

D2/F2
D3/F3
D4/F4
Class of CPU / Abbreviation

230...,330...,430...

Denotes a differentiation between
Similar modules

--1, --2, --3, --4

Bases
Product family

D3--

05B

DC

D4--

16

N

D

2

D3--

16

N

D

2

D2/F2
D3/F3
D4/F4

Number of slots

##B

Type of Base

DC or empty

Discrete I/O
DL205 Product family
y

D2/F2
/

DL305 Product family
y

D3/F3

DL405 Product family

D4/F4

Number of points

04/08/12/16/32

Input
p

N

Output
p

T

Combination

C

AC

A

DC

D

Either

E

Relay
Current Sinking
g

R
1

Current Sourcing
g

2

Current Sinking/Sourcing

3

High
g Current

H

Isolation

S

Fast I/O
Denotes a differentiation between
Similar modules

F
--1, --2, --3, --4

DL350 User Manual, 2nd Edition

F
--1

1--9

Getting Started

F3--

DL205 Product family
y

D2/F2
/

DL305 Product family
y

D3/F3

DL405 Product family

D4/F4

Number of channels

02/04/08/16

Input
p ((Analog
g to Digital)
g )

AD

Output
p ((Digital
g
to Analog)
g)

DA

Combination
Isolated

AND
S

Denotes a differentiation between
Similar modules

--1, --2, --3, --4

Communication and Networking
Special I/O and Devices
Programming
DL205 Product family

D2/F2

DL305 Product family

D3/F3

DL405 Product family

D4/F4

Name Abbreviation

see example

CoProcessors and ASCII BASIC Modules
DL205 Product family
y

D2/F2
/

DL305 Product family
y

D3/F3

DL405 Product family

D4/F4

CoProcessor

CP

ASCII BASIC

AB

64K memoryy

64

128K memoryy

128

512K memory

512

Radio modem

R

Telephone modem

T

04

AD

S

--1

Alternate example of Analog I/O
using
abbreviations
o
F3--

08

THM

--n

note: --n indicates thermocouple type
such as: J, K, T, R, S or E

D4--

DCM

DCM (Data Communication Module)

D3--

HSC

HSC (High Speed Counter)

D3--

HPP

F4--

CP

HPP (RLL PLUS Handheld Programmer)

128

-- R

DL350 User Manual, 2nd Edition

Getting Started

Analog I/O

1--10

Getting Started

Getting Started

Quick Start for PLC Validation and Programming
If you have experience with PLCs, or want to setup a quick example, this section is
what you want to use. This example is not intended to explain everything needed to
start-up your system. It is only intended to provide a general picture of what is
needed to get your system powered-up.
Step 1: Unpack the Unpack the DL305 equipment and verify you have the parts necessary to build this
demonstration system. The minimum parts needed are as follows:
DL305
Equipment
S Base
S CPU
S D3--08ND2 DC input module or a D3--08SIM input simulator module
S D3--08TD2 DC output module
S *Power cord
S *Hook up wire
S *A 24 VDC toggle switch (if not using the input simulator module)
S *A screwdriver, regular or Phillips type
* These items are not supplied with your PLC.
You will need at least one of the following programming options:
S DirectSOFT Programming Software, DirectSOFT Manual, and a
programming cable (connects the CPU to a personal computer), or
S D2--HPP Handheld Programmer and the Handheld Programmer Manual

DL350 User Manual, 2nd Edition

1--11

Getting Started

Insert the CPU and I/O into the base. The CPU must go into the first slot of the base
(adjacent to the power supply).
S Each unit has a plastic retaining
clip at the top and bottom.
S With the unit square to the base,
slide it in using the upper and
lower guides.
S Gently push the unit back until it
is firmly seated in the backplane
and the plastic clips lock in place.
CPU must reside in first slot!

Placement of discrete, analog and relay modules are not critical and may go in any
slot in any base however for this example install the output module in the slot next to
the CPU and the input module in the next. Limiting factors for other types of modules
are discussed in Chapter 4, System Design and Configuration. You must also make
sure you do not exceed the power budget for each base in your system
configuration. Power budgeting is also discussed in Chapter 4.
Step 3: Remove
Terminal Strip
Access Cover

Remove the terminal strip
cover. It is a small strip of
clear plastic that is located on
the base power supply.

Step 4: Add I/O
Simulation

To finish this quick start exercise or study other examples in this manual, you will
need to install an input simulator module (or wire an input switch as shown below),
and add an output module. Using an input simulator is the quickest way to get
physical inputs for checking out the system or a new program. To monitor output
status, any discrete output module will work.
Wire the switches or other field devices prior to applying power to the system to
ensure a point is not accidentally turned on during the wiring operation. Wire the
input module (X0) to the toggle switch and 24VDC auxiliary power supply on the
CPU terminal strip as shown. Chapter 2, Installation, Wiring, and Specifications
provides a list of I/O wiring guidelines.

Lift off

Toggle switch

DL350 User Manual, 2nd Edition

Getting Started

Step 2: Install the
CPU and I/O
Modules

Getting Started

1--12

Getting Started

Step 5: Connect Connect the wires as shown. Observe all
the Power Wiring precautions stated earlier in this manual. For
details on wiring see Chapter 2, Installation,
Wiring, and Specifications. When the wiring
is complete, replace the CPU and module
covers. Do not apply power at this time.

Line
Neutral

Ground

Step 6: Connect
the Handheld
Programmer

Connect the D2--HPP to the top port (RJ
style phone jack) of the CPU using the
appropriate cable.

Step 7: Switch On
the System Power

Apply power to the system and ensure the PWR indicator on the CPU 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 8: Enter the
Program

Slide the Mode Switch on the CPU to the STOP position and then back to the TERM
position. This puts the CPU in the program mode and allows access to the CPU
program. The PGM indicator should be illuminated on the HPP. Enter the following
keystrokes on the HPP:
NOTE: It is not necessary for you to configure the I/O for this system since the DL350
CPU automatically examines any installed modules and establishes the correct
configuration.

Handheld Programmer Keystrokes
$

STR

GX
OUT

B
C

1
2

X1

Y0
OUT

ENT
ENT

NOP

After entering the simple example program slide the switch from the TERM position
to the RUN position and back to TERM. The RUN indicator on the CPU will come on
indicating the CPU has entered the run mode. If not repeat Step 8 insuring the
program is entered properly or refer to the troubleshooting guide in chapter 9.
During Run mode operation, the output status indicator on the output module should
reflect the switch status. When the switch is on the output should be on.

DL350 User Manual, 2nd Edition

Getting Started

1--13

Steps to Designing a Successful System
Always make safety your first priority in
any system application. Chapter 2
provides several guidelines that will help
provide a safer, more reliable system.
This chapter also includes wiring
guidelines for the various system
components.

Step 2:
Understand the
CPU Setup
Procedures

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

Step 3:
Understand the
I/O System
Configurations

It is important to understand how your
local I/O system can be configured. It is
also important to understand how the
system Power Budget is calculated. This
can affect your I/O placement and/or
configuration options.

Step 4:
Determine the I/O
Module
Specifications
and Wiring
Characteristics

There are many different I/O modules
available with the DL305 system.
Chapter 2 provides the specifications
and wiring diagrams for the discrete I/O
modules.

Getting Started

Step 1:
Review the
Installation
Guidelines

Y40 X20 X10
to
to
to
Y57 X37 X17

NOTE: Specialty modules have their
own manuals and are not included in this
manual.
Step 5:
Understand the
System Operation

Before you begin to enter a program, it is
very helpful to understand how the
DL305 system processes information.
This involves not only program execution
steps, but also involves the various
modes of operation and memory layout
characteristics. See Chapter 3 for more
information.

Power up
Initialize hardware
Check I/O module
config. and verify

DL350 User Manual, 2nd Edition

Getting Started

1--14

Getting Started

Step 6:
Review the
Programming
Concepts

The DL305 provides four main approaches to solving the application program,
including the PID loop task depicted in the next figure.
S 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 augment drums, stages, and loops.
S The DL350 has four timer/event drum types, each with up to 16 steps.
They offer both time and/or event-based step transitions. Drums are
best for a repetitive process based on a single series of steps.
S Stage programming (also called RLL Plus) is based on state-transition
diagrams. Stages divide the ladder program into sections which
correspond to the states in a flow chart of your process.
S The DL350 PID Loop Operation uses setup tables to configure 4 loops.
Features include; auto tuning, alarms, SP ramp/soak generation, and
more.
Timer/Event Drum Sequencer
(see Chapter 6)

Standard RLL Programming
(see Chapter 5)
X0

LDD
V1076
CMPD
K309482

SP62

Y0
OUT

Stage Programming
(see Chapter 7)
Push--UP

PID Loop Operation
(see Chapter 8)

RAISE

SP
DOWN

LIGHT

UP

+

Σ

PID

Process

-PV

LOWER

Push-DOWN

Step 7:
Choose the
Instructions

Once you have installed the system and
understand the theory of operation, you
can choose from one of the most
powerful instruction sets available.

Step 8:
Understand the
Maintenance and
Troubleshooting
Procedures

Equipment failures can occur at any time.
Switches fail, batteries need to be
replaced, etc. In most cases, the majority
of the troubleshooting and maintenance
time is spent trying to locate the problem.
The DL305 system has many built-in
features that help you quickly identify
problems. Refer to Chapter 9 for
diagnostics and troubleshooting tips.

DL350 User Manual, 2nd Edition

TMR

K30

T1
CNT CT3
K10

Installation, Wiring,
and Specifications

12

In This Chapter. . . .
— Safety Guidelines
— Mounting Guidelines
— Installing DL305 Bases
— Installing Components in the Base
— Base Wiring Guidelines
— I/O Wiring Strategies
— I/O Modules Position, Wiring, and Specifications
— Glossary of Specification Terms

2--2

Installation, Wiring, and Specifications

Safety Guidelines

Installation, Wiring,
and Specifications

NOTE: Products with CE marks perform their required functions safely and adhere
to relevant standards as specified by CE directives provided they are usedaccording
to their intended purpose and that the instructions in this manual areadhered to. The
protection provided by the equipment may be impaired if thisequipment is used in a
manner not specified in this manual. A listing of ourinternational affiliates is available
on our web site: http://www.automationdirect.com.

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 electromechanical 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.

Installation and
Safety Guidelines

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.
S 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.

DL350 User Manual, 2nd Edition

Installation, Wiring, and Specifications
Three Levels of
Protection

Emergency Stops

2--3

Installation, Wiring
and Specifications

The publications mentioned provide many ideas and requirements for system
safety. At a minimum, you should follow these regulations. Using the techniques
listed below will further help reduce the risk of safety problems.
• Emergency stop switch for disconnecting system power.
• Mechanical disconnect for output module power.
• Orderly system shutdown sequence in the PLC control program.
It is recommended that emergency stop circuits be incorporated into the system for
every machine controlled by a PLC. For maximum safety in a PLC system, these
circuits must not be wired into the controller, but should be hardwired external to the
PLC. The emergency stop switches should be easily accessed by the operator and
are generally wired into a master control relay (MCR) or a safety control relay (SCR)
that will remove power from the PLC I/O system in an emergency.
MCRs and SCRs provide a convenient means for removing power from the I/O
system during an emergency situation. by de--energizing an MCR (or SCR) coil,
power to the input (optional) and output devices is removed. This event occurs when
any emergency stop switch opens. However, the PLC continues to receive power
and operate even though all its inputs and outputs are disabled.
The MCR circuit could be extended by placing a PLC fault relay (closed during
normal PLC operation) in series with any other emergency stop conditions. This
would cause the MCR circuit to drop the PLC I/O power in case of a PLC failure
(memory error, I/O communications error. etc.).

Use E-Stop and Master Relay

Guard Limit Switch

E STOP

Power On

Emergency
Stop

Guard
Limit

Master
Relay

Master Relay Contacts

Master
Relay
Contacts

Output
Module

Saw
Arbor

To disconnect output
module power

DL350 User Manual, 2nd Edition

Installation and
Safety Guidelines

PLC Power

2--4

Installation, Wiring, and Specifications

Installation, Wiring,
and Specifications

Emergency Power
Disconnect

Orderly System
Shutdown

A properly rated emergency power disconnect should be used to power the PLC
controlled system as ameans of removing the power from the entire control system.
It may be necessary to install a capacitor across the disconnect to protect against a
condition known as “outrush“. This condition occurs when the output triacs are
turned off by powering off the disconnect, thus causing the energy stored in the
inductive loads to seek the shortest distance to ground, which is often through the
triacs.
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.
Ideally, the first level of protection can be
provided with the PLC control program
by identifying machine problems.
Analyze your application and identify any
shutdown sequences that must be
performed. Typical problems such as
jammed or missing parts, empty bins,
etc., create a risk of personal injury or
equipment damage.
WARNING: The control program must
not be the only form of protection for
any problems that may result in a risk
of personal injury or equipment
damage.

Installation and
Safety Guidelines

Class 1, Division 2
Approval

Jam
Detect

Turn off
Saw
RST
RST
Retract
Arm

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.
WARNING: Explosion Hazard! -- Do not disconnect equipment unless power
has been switched off or area is known to be non--hazardous.

DL350 User Manual, 2nd Edition

Installation, Wiring, and Specifications

2--5

Mounting Guidelines
Before installing the PLC system you will need to know the dimensions for the
components. The diagrams on the following pages provide the component
dimensions to use in defining your enclosure specifications. Remember to leave
room for potential expansion.
NOTE: If you are using other components in your system, refer to the appropriate
manual to determine how those units can affect mounting dimensions.
The following information shows the proper mounting dimensions. The height
dimension is the same for all bases. The depth varies depending on your choice of
I/O module. The length varies as the number of slots increase. Make sure you have
followed the installation guidelines for proper spacing.
5 slot base

11.41”
290mm
10.63”
270mm

Installation, Wiring
and Specifications

Base Dimensions

3.54”
90mm

4.84”
123mm

4.41”
112mm

8 slot base

15.55”
395mm
14.76”
375mm

3.54”
90mm

4.84”
123mm

18.30”
465mm
17.51”
445mm

4.84”
123mm

3.54”
90mm

DL350 User Manual, 2nd Edition

Installation and
Safety Guidelines

10 slot base

2--6

Installation, Wiring, and Specifications

Installation, Wiring,
and Specifications

Panel Mounting
and Layout

It is important to design your panel properly to help ensure the DL305 products
operate within their environmental and electrical limits. The system installation
should comply with all appropriate electrical codes and standards. It is important the
system also conforms to the operating standards for the application to insure proper
performance.
1. Mount the bases horizontally to provide proper ventilation.
2. If you place more than one base in a cabinet, there should be a minimum of
7.2” (183mm) between bases.
3. Provide a minimum clearance of 2” (50mm) between the base and all sides
of the cabinet. There should also be at least 1.2” (30mm) of clearance
between the base and any wiring ducts.
4. There must be a minimum of 2” (50mm) clearance between the panel door
and the nearest DL305 component.

3”
75mm
min.

2”
50mm
min.

DL305 CPU Base

‘

•

‘

2”
50mm
min.

Temperature
Probe



Power
Source

ƒ
7.2” -- 13.75”
183 -- 350mm

DL305 Local Expasion Base



Installation and
Safety Guidelines



2”
50mm
min.

BUS Bar

‘
”

“

’
Panel Ground
Terminal

Earth Ground
Note: there is a minimum of 2” (50mm)
clearance between the panel door
and the nearest DL305 component.

Component

Ground Braid
Copper Lugs

Panel

Chassis

–

Star Washers
Star Washers

DL350 User Manual, 2nd Edition

–

Panel or
Single Point
Ground

Installation, Wiring, and Specifications

2--7

A good common ground reference (Earth ground) is essential for proper
operation of the DL305. 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.

DL350 User Manual, 2nd Edition

Installation and
Safety Guidelines

Enclosures

7. Properly evaluate any installations where the ambient temperature may
approach the lower or upper limits of the specifications. Place a
temperature probe in the panel, close the door and operate the system until
the ambient temperature has stabilized. If the ambient temperature is not
within the operating specification for the DL305 system, measures such as
installing a cooling/heating source must be taken to get the ambient
temperature within the DL305 operating specifications.
8. Device mounting bolts and ground braid termination bolts should be #10
copper bolts or equivalent. Tapped holes instead of nut--bolt arrangements
should be used whenever possible. To assure good contact on termination
areas impediments such as paint, coating or corrosion should be removed
in the area of contact.
9. The DL305 system is designed to be powered by 110/220 VAC, or 24 VDC
normally available throughout an industrial environment. Isolation
transformers and noise suppression devices are not normally necessary,
but may be helpful in eliminating/reducing suspect power problems.
Your selection of a proper enclosure is important to ensure safe and proper
operation of your DL305 system. Applications of DL305 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
S Sufficient space for proper installation and maintenance of equipment

Installation, Wiring
and Specifications

5. The ground terminal on the DL305 base must be connected to a single
point ground. Use copper stranded wire to achieve a low impedance.
Copper eye lugs should be crimped and soldered to the ends of the
stranded wire to ensure good surface contact. Remove anodized finishes
and use copper lugs and star washers at termination points. A general rule
is to achieve a 0.1 ohm of DC resistance between the DL305 base and the
single point ground.
6. 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. For this
connection you should use #12 AWG stranded copper wire as a minimum.
Minimum wire sizes, color coding, and general safety practices should
comply with appropriate electrical codes and standards for your region.

2--8

Installation, Wiring, and Specifications

Installation and
Safety Guidelines

Installation, Wiring,
and Specifications

Environmental
Specifications

The following table lists the environmental specifications that generally apply to the
DL350 system (CPU, Bases, I/O Modules). The ranges that vary for the Handheld
Programmer are noted at the bottom of this chart. I/O module operation may
fluctuate depending on the ambient temperature and your application. Please refer
to the appropriate I/O module specifications for the temperature derating curves
applying to specific modules.
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

* 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 below 30% humidity. However, static electricity problems occur much more frequently at
lower humidity levels. 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. Typical agency approvals which your
application may require are:
• UL (Underwriters’ Laboratories, Inc.)
• CSA (Canadian Standards Association)
• FM (Factory Mutual Research Corporation)
S CUL (Canadian Underwriters’ Laboratories, Inc.)

Marine Use

American Bureau of Shipping (ABS) certification requires flame--retarding insulation
as per 4--8--3/5.3.6(a). ABS will accept Navy low smoke cables, cable qualified to
NEC “Plenum rated” (fire resistant level 4), or other similar flammablity resistant
rated cables. Use cable specifications for your system that meet a recognized flame
retardant standard (i.e. UL, IEEE, etc.), including evidence of cable test certification
(i.e. tests certificate, UL file number, etc.).
NOTE: Wiring needs to be “low smoke” per the above paragraph. Teflon coated wire
is also recommended.

DL350 User Manual, 2nd Edition

Installation, Wiring, and Specifications
Power

2--9

The power source must be capable of supplying voltage and current complying with
the base power supply specifications.
D3--05B--1

D3--05BDC--1

D3--08B--1

D3--10B--1

Input Voltage Range\

85--264 VAC
47--63Hz

20.5--30 VDC <10%
ripple

85--264 VAC
47--63Hz

85--264 VAC
47--63Hz

Base Power Consumption

85 VA max

48 Watts

85 VA max

85 VA max

Inrush Current max.

30A

30A

30A

30A

Dielectric Strength

1500VAC for 1
minute between
terminals of AC P/S,
Run output,
Common, 24VDC

1500VAC for 1
minute between
24VDC input
terminals and Run
output

1500VAC for 1
minute between
terminals of AC P/S,
Run output,
Common, 24VDC

2000VAC for 1
minute between
terminals of AC P/S,
Run output,
Common, 24VDC

Insulation Resistance

>10MΩ at 500VDC

>10MΩ at 500VDC

>10MΩ at 500VDC

>10MΩ at 500VDC

Power Supply Output
(Voltage Ranges and
Ripple)

(5VDC) 4.75--5.25V
less than 0.25V p--p

(5VDC) 4.75--5.25V
less than 0.25V p--p

(5VDC) 4.75--5.25V
less than 0.25V p--p

(5VDC) 4.75--5.25V
less than 0.25V p--p

(9VDC) 8.0--10.0V
less than 0.45 V p--p

(9VDC) 8.5--13.5V
less than 0.45 V p--p

(9VDC) 8.0--10.0V
less than 0.45 V p--p

(9VDC) 8.0--10.0V
less than 0.45 V p--p

(24VDC) 20--28V
less than 1.2V p--p

(24VDC) 20--28V
less than 1.2V p--p

(24VDC) 20--28V
less than 1.2V p--p

(24VDC) 20--28V
less than 1.2V p--p

Installation, Wiring
and Specifications

Specifications

Installation and
Safety Guidelines

DL350 User Manual, 2nd Edition

2--10

Installation, Wiring, and Specifications
Before installing your PLC system you will need to know the dimensions for the
components in your system. The diagrams on the following pages provide the
component dimensions and should be used to define your enclosure specifications.
Remember to leave room for potential expansion. Appendix E provides the weights
for each component.

Component
Dimensions

Installation, Wiring,
and Specifications

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.

DirectVIEW 1000
5.12 ”
(130mm)

Optimation Units

(Large panel rear view shown)
9.5”
(241.3mm)

1.34 ”
(34mm)
2.64 ”
(67mm)

2.83 ”
(72mm)

4.92 ”
(125mm)

0.5”
(12.7mm)

1.03 ”
(26mm)

1.75”
(44.5mm)

4”
(101.6mm

2”
(50.8mm)

8.4”
(213.3mm)
Note: Space allowance should be made behind
3.5”
(88.9mm) the panel for the serial cable, and power
connector. If you will be adding or removing
panels for a multi-drop, then you may want to
allow for hand room to reach the address switch
on the back. We recommend 4 inches.
1.37”
34.8mm

4.65”/118nn -- 8 I/O Pts
4.86”/123mm -- 16 I/O Pts

3.86”
98mm

Installation and
Safety Guidelines

1.37”
34.8mm

3.86”
98mm

4.67”
118.6mm

4.84”
123mm

I/O modules
I/O module w/24 pin connector

DL350 User Manual, 2nd Edition

.55”

2.00”
51mm

24 pin connector

2.06”
52.4mm

Handheld programmer cable

14mm

0.4”
10.3mm

1.85”
47mm

0.51”
13mm

Installation, Wiring, and Specifications

2--11

Installing DL305 Bases
Choosing the Base The DL305 system offers three different sizes of bases and two different power
supply options.
Type
The following diagram shows an example of a 5-slot base.

CPU Slot

Your choice of base depends on three things.
• Number of I/O modules required
• Input power requirement (AC or DC power)
S Available power budget

Installation, Wiring
and Specifications

I/O Slots

Power Wiring
Connections

Mounting the Base All I/O configurations of the DL305 may use any of the base configurations. The
bases are secured to the equipment panel or mounting location using four M4
screws in the corner mounting cut--outs of the base. The full mounting dimensions
are given in the previous section on Mounting Guidelines.

Mounting Slots

DL350 User Manual, 2nd Edition

Installation and
Safety Guidelines

WARNING: To minimize the risk of electrical shock, personal injury, or
equipment damage, always disconnect the system power before installing or
removing any system component.

2--12

Installation, Wiring, and Specifications

Installing Components in the Base

Installation, Wiring,
and Specifications

When inserting components into the base, align the PC board(s) of the module with
the grooves on the top and bottom of the base. Push the module straight into the
base until it is firmly seated in the backplane connector. Once the module is inserted
into the base, push in the retaining clips (located at the top and bottom of the module)
to firmly secure the module to the base.

CPU must be positioned in
the first slot of the base
Align module to
slots in base and slide in

Installation and
Safety Guidelines

WARNING: Minimize the risk of electrical shock, personal injury, or equipment
damage, always disconnect the system power before installing or removing
any system component.

DL350 User Manual, 2nd Edition

Installation, Wiring, and Specifications

2--13

Base Wiring Guidelines
Base Wiring

The diagram shows the terminal connections located on the power supply of the
DL305 xxxxx--1 bases. The base terminals can accept up to 16 AWG.
NOTE: You can connect either a 115 VAC or 220 VAC supply to the AC
terminals. Special wiring or jumpers are not required as with some of the other
DirectLOGIC™ products.
24 VDC Base Terminal Strip

110/220 VAC Base Terminal Strip

115 VAC
230 VAC

RUN

RUN
+
24 VDC OUT
-LG

Logic Ground

LG

G

Frame Ground

G

Installation, Wiring
and Specifications

+
24 VDC
--

WARNING: Once the power wiring is connected, install the plastic protective
cover. When the cover is removed there is a risk of electrical shock if you
accidentally touch the wiring or wiring terminals.

Expansion Base
Wiring

The following example illustrates connections when using Expansion bases.
110VAC

220VAC
Line

Neutral

24VDC
+ --

Neutral

110VAC

220VAC

24VDC +
--

Local CPU

Local CPU

Local CPU

110VAC

220VAC

24VDC +
--

Expansion
Base 1

Expansion
Base 1

Expansion
Base 1

110VAC

220VAC

24VDC +
--

Expansion
Base 2

Expansion
Base 2

Expansion
Base 2

DL350 User Manual, 2nd Edition

Installation and
Safety Guidelines

Line

2--14

Installation, Wiring, and Specifications

I/O Wiring Strategies

Installation, Wiring,
and Specifications

PLC Isolation
Boundaries

The DL305 PLC system 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 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 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 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.
Primary Side

Secondary, or
Logic side

PLC
Main
Power
Supply

Power Input

Installation and
Safety Guidelines

Isolation
Boundary

CPU

Field Side

(backplane)

Input
Module

Inputs

(backplane)

Output
Module

Outputs

Programming Device,
Operator Interface, or Network

Isolation
Boundary

The next figure shows the physical layout of a DL305 PLC system, as viewed from
the front. In addition to the basic circuits covered above, AC-powered bases include
an auxiliary +24VDC power supply with its own isolation boundary. Since the supply
output is isolated from the other three circuits, it can power input and/or output
circuits!
Primary Side
Power Input

+24VDC Out

Main
Power
Supply

DL305
PLC

Secondary, or
Logic side
Internal

CPU

Auxiliary
+24VDC
Supply

Backplane

Comm.

Input Module

To Programming
Device, Operator
Interface, Network

Inputs Commons

DL350 User Manual, 2nd Edition

Field Side

Output Module

Outputs Commons
Supply for
Output Circuit

Installation, Wiring, and Specifications

Powering I/O
Circuits with the
Auxiliary Supply

2--15

In some cases, using the built-in auxiliary +24VDC supply can result in a cost
savings for your control system. It can power combined loads up to 100 mA. Be
careful not to exceed the current rating of the supply. If you are the system designer
for your application, you may be able to select and design in field devices which can
use the +24VDC auxiliary supply.
All AC powered DL305 bases feature the internal auxiliary supply. If input devices
AND output loads need +24VDC power, the auxiliary supply may be able to power
both circuits as shown in the following diagram.
AC Power

Auxiliary
+24VDC
Supply

+

DL305 PLC
Input Module

Output Module

Inputs

Outputs Com.

Com.

--

Installation, Wiring
and Specifications

Power Input

Loads

DC-powered DL305 bases are designed for application environments in which
low-voltage DC power is more readily available than AC. These include a wide range
of battery--powered applications, such as remotely-located control, in vehicles,
portable machines, etc. For this application type, all input devices and output loads
typically use the same DC power source. Typical wiring for DC-powered applications
is shown in the following diagram.
+

--

--

DC Power

DL305 PLC
Power Input

Input Module
Inputs

Com.

Output Module
Outputs Com.

Loads

DL350 User Manual, 2nd Edition

Installation and
Safety Guidelines

+

2--16

Installation, Wiring, and Specifications

Powering I/O
Circuits Using
Separate Supplies

In most applications it will be necessary to power the input devices from one power
source, and to power output loads from another source. Loads often require
high-energy AC power, while input sensors use low-energy DC. If a machine
operator is likely to come in close contact with input wiring, then safety reasons also
require isolation from high-energy output circuits. It is most convenient if the loads
can use the same power source as the PLC, and the input sensors can use the
auxiliary supply, as shown to the left in the figure below.
If the loads cannot be powered from the PLC supply, then a separate supply must be
used as shown to the right in the figure below.

Installation, Wiring,
and Specifications

AC Power
Power Input

Auxiliary
+24VDC
Supply

+

AC Power
Power Input

DL305 PLC
Input Module

Output Module

Inputs

Outputs Com.

Com.

--

Auxiliary
+24VDC
Supply

+

DL305 PLC
Input Module

Output Module

Inputs

Outputs Com.

Com.

--

Loads

Loads

Load
Supply

Installation and
Safety Guidelines

Some applications will use the PLC external power source to also power the input
circuit. This typically occurs on DC-powered PLCs, as shown in the drawing below to
the left. The inputs share the PLC power source supply, while the outputs have their
own separate supply.
A worst-case scenario, from a cost and complexity view-point, is an application
which requires separate power sources for the PLC, input devices, and output loads.
The example wiring diagram below on the right shows how this can work, but also
the auxiliary supply output is an unused resource. You will want to avoid this situation
if possible.
+

+

--

--

DC Power
AC Power

DL305 PLC
Power Input

Input Module
Inputs

Com.

Power Input

Output Module

Auxiliary
+24VDC
Supply

Outputs Com.

+
Loads

DL350 User Manual, 2nd Edition

Load
Supply

DL305 PLC
Input Module

Output Module

Inputs

Com.

Outputs Com.

Input
Supply

Loads

-Load
Supply

2--17

Installation, Wiring, and Specifications
Sinking / Sourcing
Concepts

Before going further in the study of wiring strategies, you must have a solid
understanding of “sinking” and “sourcing” concepts. Use of these terms occurs
frequently in input or output circuit discussions. It is the goal of this section to make
these concepts easy to understand, further ensuring your success in installation.
First the following short definitions are provided, followed by practical applications.

Sinking = provides a path to supply ground (--)
Sourcing = provides a path to supply source (+)

For example, the figure to the right depicts
a “sinking” input. To properly connect the
external supply, you will have to connect it
so the input provides a path to ground (--).
Start at the PLC input terminal, follow
through the input sensing circuit, exit at
the common terminal, and connect the
supply (--) to the common terminal. By
adding the switch, between the supply (+)
and the input, the circuit has been
completed . Current flows in the direction
of the arrow when the switch is closed.

Input
(sinking)
+

PLC

Input
Sensing

-Common

Input
+
--

Common

PLC
Input
Sensing

Sourcing Input
Common
+
--

Input

Sinking Output
PLC

Output
Switch

Output

Load
+
--

Common

Sourcing Output
PLC
Input
Sensing

PLC
Output
Switch

Common
+
Output

Load

DL350 User Manual, 2nd Edition

--

Installation and
Safety Guidelines

By applying the circuit principle above to the four possible combinations of
input/output sinking/sourcing types as shown below. The I/O module specifications
at the end of this chapter list the input or output type.
Sinking Input

Installation, Wiring
and Specifications

First you will notice these are only associated with DC circuits and not AC, because
of the reference to (+) and (--) polarities. Therefore, sinking and sourcing terminology
only applies to DC input and output circuits. Input and output points that are sinking
or sourcing only 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, you can
successfully connect the supply and field device every time by understanding
“sourcing” and “sinking”.

2--18

Installation, Wiring, and Specifications

Installation, Wiring,
and Specifications

In order for a PLC I/O circuit to operate,
I/O “Common”
Terminal Concepts current must enter at one terminal and exit
at another. Therefore, at least two
terminals 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. One additional terminal must
provide the return path to the power
supply.
If there was unlimited space and budget
for I/O terminals, every I/O point could
have two dedicated terminals as the figure
above shows. However, providing this
level of flexibility is not practical or even
necessary
for
most
applications.
Therefore, most Input or Output points on
PLCs are in groups which share the return
path (called commons). The figure to the
right shows a group (or bank) of 4 input
points which share a common return path.
In this way, the four inputs require only five
terminals instead of eight.

Field
Device

PLC

Main Path
(I/O Point)

I/O
Circuit

+
-Return Path

PLC
Input 1

Input
Sensing

Input 2
Input 3
Input 4
+
--

Common

Installation and
Safety Guidelines

NOTE: In the circuit above, the current in the common path is 4 times any channel’s
input current when all inputs are energized. This is especially important in output
circuits, where heavier gauge wire is sometimes necessary on commons.

DL350 User Manual, 2nd Edition

Installation, Wiring, and Specifications

2--19

Connecting DC I/O In the previous section on Sourcing and Sinking concepts, the DC I/O circuits were
explained to sometimes will only allow current to flow one way. This is also true for
to “Solid State”
many of the field devices which have solid-state (transistor) interfaces. In other
Field Devices
words, field devices can also be sourcing or sinking. When connecting two devices
in a series DC circuit, one must be wired as sourcing and the other as sinking.
Solid State
Several DL305 DC input modules are flexible because they detect current flow in
either direction, so they can be wired as either sourcing or sinking. In the following
Input Sensors
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 +24
auxiliary supply or another supply (+12 VDC or +24VDC), as long as the input
specifications are met.
PLC DC Input

Installation, Wiring
and Specifications

Field Device
Input
(sourcing)

Output
(sinking)
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.
Field Device
+V

PLC DC Input
Input
Output (sourcing)
Ground

Common

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 control
signal, not to send DC power to an actuator.
Several of the DL305 DC output modules are the sinking type. This means that each
DC output provides a path to ground when it is energized. 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 Sinking Output
Power
+DC pwr

Field Device
+V

Output
(sinking)

+

Common

--

Input
(sourcing)
10--30 VDC
Ground

DL350 User Manual, 2nd Edition

Installation and
Safety Guidelines

Solid State
Output Loads

(sinking)

2--20

Installation, Wiring, and Specifications
In the next example a PLC sinking DC output point is connected to the sinking input
of a field device. This is tricky, because both the PLC output and field device input are
sinking type. Since the circuit must have one sourcing and one sinking device, a
sourcing capability needs to be added to the PLC output by using a pull-up resistor.
In the circuit below, a Rpull-up is connected from the output to the DC output circuit
power input.
PLC DC Output
+DC pwr

Power
Field Device

Installation, Wiring,
and Specifications

Rpull-up
(sourcing)
(sinking)

Output
Supply
Common

+

Input
(sinking)

--

Ground

Rinput

NOTE 1: 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, you 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 Rpull-up properly.

Installation and
Safety Guidelines

I

input

=

Rpull-up =

DL350 User Manual, 2nd Edition

Vinput (turn--on)
Rinput
Vsupply -- 0.7
I input

-- Rinput

Ppull-up

=

Vsupply
Rpullup

2

Installation, Wiring, and Specifications
Relay Output
Guidelines

2--21

Four output modules in the DL305 I/O family feature relay outputs: D3--08TR,
F3--08TRS--1, F3--08TRS--2, D3--16TR. Relays are best for the following
applications:
•

Loads that require higher currents than the solid-state outputs can
deliver

•

Cost-sensitive applications

•

Some output channels need isolation from other outputs (such as when
some loads require different voltages than other loads)

Some applications in which NOT to use relays:
Loads that require currents under 10 mA

S

Loads which must be switched at high speed or heavy duty cycle

Surge Suppresion
For Inductive
Loads

Relay with Form A contacts

Relay with Form C contacts

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.
DL350 User Manual, 2nd Edition

Installation and
Safety Guidelines

Relay outputs in the DL305 output
modules are available in two contact
arrangements, shown to the right. The
Form A type, or SPST (single pole, single
throw) type is normally open and is the
simplest to use. The Form C type, or
SPDT (single pole, double throw) type has
a center contact which moves and a
stationary contact on either side. This
provides a normally closed contact and a
normally open contact.
Some relay output module’s relays share
common terminals, which connect to the
wiper contact in each relay of the bank.
Other relay modules have relays which
are completely isolated from each other. In
all cases, the module drives the relay coil
when the corresponding output point is on.

Installation, Wiring
and Specifications

•

2--22

Installation, Wiring, and Specifications

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.

Installation, Wiring,
and Specifications

+24 VDC

--24 VDC

+24 VDC

Module Relay Contact
--324 VDC

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

Installation and
Safety Guidelines

--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.
hhVendor / Catalog

Type (TVS, MOV, Diode)

Inductive Load Voltage

Part Number

AutomationDirect

TVS

110/120 VAC

ZL--TD8--120

Transient Voltage
Suppressors,

TVS

24 VDC

ZL--TD8--24

LiteOn Diodes; from

TVS

220/240 VAC

P6K350CA

Diode

12/24 VDC or VAC

Contact

12/24 VDC

Digi--key Corp.
Contact Digi--key Corp.

DigiKey Catalog: Phone
1--800--344--4539
Digi--key

MOV

110/120 VAC

www.didikey.com

MOV

220/240 VAC

DL350 User Manual, 2nd Edition

Installation, Wiring, and Specifications
Prolonging Relay
Contact Life

2--23

Installation, Wiring
and Specifications

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.
Inductive Field Device

PLC Relay Output

Input

Output
Supply
Common

+

--

Common

Installation and
Safety Guidelines

DL350 User Manual, 2nd Edition

2--24

Installation, Wiring, and Specifications

I/O Modules Position, Wiring, and Specification

Installation, Wiring,
and Specifications

Slot Numbering

The DL305 bases each provide different numbers of slots for use with the I/O
modules. You may notice the bases refer to 5-slot, 8-slot, etc. One of the slots is
dedicated to the CPU, so you always have one less I/O slot. For example, you have
four I/O slots with a 5-slot base. The I/O slots are numbered 0 -- 3. The CPU slot
always contains a CPU and is not numbered.
The examples below show the I/O numbering for a 5 slot local CPU base with 8 point
I/O and a 5 slot local CPU base with 16 point I/O using the xxxxx--1 bases.
5 Slot Base Using 8 Point I/O Modules
5 Slot Base Using 16 Point I/O Modules
060

to
to
067 047

Slot Number: 3 2
I/O Module
Placement Rules

Installation and
Safety Guidelines

040

020
to
027

000
to
007

1 0

C
P
U

DL305

060 040 020 000
to
to
to
to
067 047 027 007
070 050 030 010
to
to
to
to
077 057 037 017

Slot Number: 3 2

C
P
U

DL305

1 0

There are some limitations that determine where you can place certain types of
modules. Some modules require certain locations and may limit the number or
placement of other modules. If you have difficulty with some of the explanations,
please look ahead to the illustrations in this chapter. They should clear up any gray
areas in the explanation and you will probably find the configuration you intend to
use in your installation.
In all of the configurations mentioned the number of slots from the CPU that are to be
used can roll over into an expansion base if necessary. For example if a rule states a
module must reside in one of the six slots adjacent to the CPU, and the system
configuration is comprised of two 5 slot bases, slots 1 and 2 of the expansion base
are valid locations.
The following table provides the general placement rules for the DL305
components.
Module
CPU
16 Point I/O
Modules
Analog Modules
ASCII Basic
Modules
High Speed
Counter

DL350 User Manual, 2nd Edition

Restriction
The CPU must reside in the first slot of the local CPU
base. The first slot is the closest slot to the power supply.
Any slot.
Analog modules must reside in any valid 16 point I/O slot.
ASCII Basic modules must reside in any valid 16 point I/O
slot.
The D3--350 CPU does not support a high speed counter
module.

Installation, Wiring, and Specifications

2--25

The discrete modules provide LED status indicators to show status of input points.
Discrete Module
Status Indicators
Color Coding of I/O The DL305 family of I/O modules have a color coding scheme to help you quickly
identify if a module is either an input module, output module, or a specialty module.
Modules
This is done through a color bar indicator located on the front of each module. The
color scheme is listed below:
110VAC INPUT
D3--16NA
I

Status Indicators

0
1
2
3

4
5
6
7

0
1
2
3

4 II
5
6
7

Color Bar

Module Type
Discrete/Analog Output
Discrete/Analog Input
Other

Color Code
Red
Blue
White

Wiring the Different There are three types of module connectors for the DL305 I/O. Some modules have
normal screw terminal connectors. Other modules have connectors with recessed
Module
screws. The recessed screws help minimize the risk of someone accidentally
Connectors
touching active wiring. The third type has a D--shell connector for special cable
connections.
Both types of screw connectors can be easily removed. If you examine the
connectors closely, you will notice there are squeeze tabs on the top and bottom. To
remove the terminal block, press the squeeze tabs and pull the terminal block away
from the module.
We also have DIN rail mounted terminal blocks, DINnectors (refer to our catalog for a
complete listing of all available products). The DINnectors come with special
pre--assembled cables with the I/O connectors installed and wired.

Squeeze Tab

Squeeze Tab
D--shell
Connector

Removable Cover

Removable
Terminal Block

DL350 User Manual, 2nd Edition

Installation and
Safety Guidelines

WARNING: For some modules, field device power may still be present on the
terminal block even though the PLC system is turned off. To minimize the risk
of electrical shock, check all field device power before you remove the
connector.

Installation, Wiring
and Specifications

I C
0
1
2
3
4
5
6
7
C
0
1
2
3
4
5
6
7
II

2--26

Installation, Wiring, and Specifications

Installation, Wiring,
and Specifications

I/O Wiring
Checklist

Use the following guidelines when wiring the I/O modules in your system.
1. There is a limit to the size of wire the modules can accept. The table below
lists the maximum AWG for each module type. Smaller AWG is acceptable
to use for each of the modules.
Module type

Maximum AWG

8 point

12 AWG

16 point

16 AWG

2. Always use a continuous length of wire, do not combine 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. To reduce the risk of having a module with a blown fuse, we suggest you
add external fuses to your I/O wiring. A fast blow fuse, with a lower current
rating than the I/O module fuse can be added 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 our catalog for a complete line of
DINnectors, DIN rail mounted fuse blocks.

Installation and
Safety Guidelines

DINnector External Fuses
(DIN rail mounted Fuses)

NOTE: For modules which have soldered or non-replaceable fuses, we recommend
you return your module to us and let us replace your blown fuse(s) since
disassembling the module will void your warranty.

DL350 User Manual, 2nd Edition

Installation, Wiring, and Specifications

2--27

Glossary of Specification Terms

Commons Per
Module

Number of commons per module and their electrical characteristics.

Input Voltage
Range

The operating voltage range of the input circuit.

Output Voltage
Range

The operating voltage range of the output circuit.

Peak Voltage

Maximum voltage allowed for the input circuit.

AC Frequency

AC modules are designed to operate within a specific frequency range.

ON Voltage Level

The voltage level at which the input point will turn ON.

OFF Voltage Level

The 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.

Minimum Load

The minimum load current for the output circuit to operate properly.

External DC
Required

Some output modules require external power for the output circuitry.

ON Voltage Drop

Sometimes called “saturation voltage”, it is the voltage measured from an output
point to its common terminal when the output is ON at max. load.

Maximum Leakage The maximum current a connected maximum load will receive when the output point
is OFF.
Current
Maximum Inrush
Current

The maximum current used by a load for a short duration upon an OFF to ON
transition of a output point. It is greater than the normal ON state current and is
characteristic of inductive loads in AC circuits.

Base Power
Required

Power from the base power supply is used by the DL305 input modules and varies
between different modules. The guidelines for using module power is explained in
the power budget configuration section in Chapter 4--5.
DL350 User Manual, 2nd Edition

Installation and
Safety Guidelines

Indicates number of input or output points per module and designates current
sinking, current sourcing, or either.

Installation, Wiring
and Specifications

Inputs or Outputs
Per Module

Installation, Wiring, and Specifications

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.

Terminal Type

Indicates whether the terminal type is a removable or non-removable connector or a
terminal.

Status Indicators

The LEDs that indicate the ON/OFF status of an input point. These LEDs are
electrically located on either the logic side or the field device side of the input circuit.

Weight

Indicates the weight of the module. See Appendix E for a list of the weights for the
various DL305 components.

Fuses

Protective device for an output circuit, which stops current flow when current
exceeds the fuse rating. They may be replaceable or non--replaceable, or located
externally or internally.

Installation and
Safety Guidelines

Installation, Wiring,
and Specifications

2--28

DL350 User Manual, 2nd Edition

2--29

Installation, Wiring, and Specifications

D3--08ND2, 24 VDC Input Module
8 (current sourcing)
2 (internally connected)
18--36VDC
Internally supplied
40 VDC
N/A
<3V
>18 V
1.8 K ohm
12 mA Max
7 mA
3 mA

Base power
p
required
q

9V 10 mA Max
24V 14mA/ON
14 A/ON pt.
t
(112 mA Max)

OFF to ON response
ON to OFF response
Terminal type
Status indicators
Weight

4--15 ms
4--15 ms
Non--removable
Field side
4.2 oz. (120 g)

Installation, Wiring
and Specifications

Inputs per module
Commons per module
Input voltage range
Input voltage
Peak voltage
AC frequency
ON voltage level
OFF voltage level
Input impedance
Input current
Minimum ON current
Maximum OFF current

Derating Chart for D3--08ND2
Points

24VDC INPUT

8

D3--08ND2

Internallly
Connected

C1

0

4

1

5

2

6

3

7

6
4
2

1

C
1

2

3

0 1

4

5

2 3

6

7

4 5

0
0
32

Common

10
20
30
40
50
60°C
50
68
86 104 122 140°F
Ambient Temperature (°C/°F)

24VDC
-- +

Other 7
Circuits
9V

6 7

C2
C
2

Input

1.8k

Optical
Coupler

DL350 User Manual, 2nd Edition

Installation and
Safety Guidelines

0

2--30

Installation, Wiring, and Specifications

Installation, Wiring,
and Specifications

D3--16ND2--1, 24 VDC Input Module
Inputs per module
Commons per module
Input voltage range
Input voltage
Peak voltage
AC frequency
ON voltage level
OFF voltage level
Input impedance
Input current
Minimum ON current
Maximum OFF current

16 (current sourcing)
2 (internally connected)
18--36VDC
Internally supplied
36VDC
N/A
< 3V
>19 V
1.8 K ohm
20 mA Max
5 mA
1 mA

Base power
p
required
q

9V 25 mA Max
24V 14mA/ON
14 A/ON pt.
t
(224 mA Max)

OFF to ON response
ON to OFF response
Terminal type
Status indicators
Weight

3--15 ms
4--15 ms
Removable
Field side
6.3 oz. (180 g)

Derating Chart for D3--16ND2--1
Points
16

24VDC INPUT
D3--16ND2--1

I

CI

Common
0
2

Installation and
Safety Guidelines

4
6
Common

Internally
Connected

CII
1
3
5
7

I
1
3
5
7
0
2
4
6

DL350 User Manual, 2nd Edition

0
2
4
6
C
1
3
5
7

0
1
2
3

4
5
6
7

0
1
2
3

4
5
6
7

12

II

8
4

C

0

1

0
32

3

10
20
30
40
50
60°C
50
68
86 104 122 140°F
Ambient Temperature (°C/°F)

5
7
0

Common

24VDC
-- +

Other 15
Circuits

2

9V

4

0.1μF

1.5k

6
II

Input

1.8k

Optical
Coupler

2--31

Installation, Wiring, and Specifications

D3--16ND2--2, 24 VDC Input Module Module
16 (current sourcing)
8 internally connected
18--36 VDC
Internally supplied
36 VDC
N/A
<3V
> 19 V
2.2 K ohm
20 mA Max
5 mA
2 mA

Base power
p
required
q

9V 3mA+1.3mA/ON pt
p
(24 mA
A Max)
M )
24V 1mA+13mA/ON pt
(209 mA Max)

OFF to ON response
ON to OFF response
Terminal type
yp

4--15 ms
4--15 ms
24 Pin Removable
connector
t

Status indicators
Weight

Field side
5.3 oz. (150 g)

Derating Chart for D3--16ND2--2

Installation, Wiring
and Specifications

Inputs per module
Commons per module
Input voltage range
Input voltage
Peak voltage
AC frequency
ON voltage level
OFF voltage level
Input impedance
Input current
Minimum ON current
Maximum OFF current

Points

24VDC INPUT

16

D3--16ND2--2

A 1 B

DC GRND

1

2

3

4

5

6

Internally
7 Connected
I

C
0

1

2

3

4

5

6

7

C
12

II

A
0
2
4
6
C
C
0
2
4
6
C
C

12

II

0
1
2
3
4
5
6
7

0
1
2
3
4
5
6
7

B
1
3
5
7
C
C
1
3
5
7
C
C

8
4
0
0
32

Input

10
20
30
40
50
60°C
50
68
86 104 122 140°F
Ambient Temperature (°C/°F)

2.2K
Internal
Power
Supply

9V

680 Ω

24VDC
-- +
Common

Optical
Coupler

DL350 User Manual, 2nd Edition

Installation and
Safety Guidelines

DC GRND

I

0

2--32

Installation, Wiring, and Specifications

Installation, Wiring,
and Specifications

D3--16ND2F, 24 VDC Fast Response Input Module
Inputs per module
Commons per module
Input voltage range
Input voltage
Peak voltage
AC frequency
ON voltage level
OFF voltage level
Input impedance
Input current
Minimum ON current
Maximum OFF current

16 (current sourcing)
2 (internally connected)
18--36VDC
Internally supplied
36VDC
N/A
< 13V
>19 V
1.8 K ohm
20 mA Max
5 mA
1 mA

Base power
p
required
q

9V 25 mA Max
24V 14 mA/ON
A/ON pt.
t
(224 mA Max)

OFF to ON response
ON to OFF response
Terminal type
Status indicators
Weight

0.8 ms
0.8 ms
Removable
Field side
6.3 oz. (180 g)

Derating Chart for D3--16ND2F
Points
16

24VDC INPUT
D3--16ND2F

I
Internally
Connected
CI

Common
0
2

Installation and
Safety Guidelines

4
6
Common

CII
1
3
5
7

I
1
3
5
7
0
2
4
6

DL350 User Manual, 2nd Edition

0
2
4
6
C
1
3
5
7

0
1
2
3

4
5
6
7

0
1
2
3

4
5
6
7

12

II

8

C

4

1

0
0
32

3
5

10
20
30
40
50
60°C
50
68
86 104 122 140°F
Ambient Temperature (°C/°F)

7
0
2

Common

24VDC
-- +

Other 15
Circuits
9V

4

0.1μF

1.5k

6
II

Input

1.8k

Optical
Coupler

Installation, Wiring, and Specifications

2--33

F3--16ND3F, TTL/24 VDC Fast Response Input Module
Base power required

2 (non-isolated)
5 VDC TTL & CMOS,
12--24 VDC
(jumper selectable)*
Internal (used with sinking loads)
External (used with
sourcing loads)

Input impedance
OFF to ON response

9V 148 mA Max
24V 68 mA Max
1 mA @ 5VDC
3 mA @ 12--24 DC
4.7K
1 ms

ON to OFF response

1 ms

Maximum input rate

500 Hz

Minimum ON current

0.4 mA @ 5VDC
0.9 mA @ 12--24VDC

Peak voltage

100 VDC
(35 VDC Continuous)

Maximum OFF current

AC frequency
ON voltage level

N/A
0--1.5VDC @ 5VDC
0--4VDC @ 12--24VDC
3.5--5VDC @ 5VDC
10--24VDC @12--24VDC

Terminal type
Status indicators

0.8 mA @ 5VDC
2.2 mA @ 12--24VDC
Removable
Logic side

Weight

5.4 oz. (153 g)

Commons per module
Input voltage range
Input voltage supplied

OFF voltage level

* 12 Inputs are jumper selectable for
5VDC/12--24VDC and Sink Load/Source
Load
4 Inputs are jumper selectable for
5VDC/12--24VDC and Sink Load/Source
Load

TTL/24VDC INPUT
F3--16ND3F

I

Internally
Connected
Common
0
2
4
6
Common

CII
1
3
5
7

I
0
1

2

3

4

5

6

7

C
O
M

0

1

2

3

4

5

6

7

0
1
2
3
C
O
M

1
3
5

4
5
6
7

0
1
2
3

4
5
6
7

II

Derating Chart for F3--16ND3F
Points
16
12
8
4
0
0 10 20 30 40 50 60°C
32 50 68 86 104 122 140°F
Ambient Temperature (°C/°F)

7
0
2
4
6
II

Sinking Load Configuration

DL350 User Manual, 2nd Edition

Installation and
Safety Guidelines

CI

Input current

Installation, Wiring
and Specifications

16 sink/source
(ju
pe se
ec ab e ssink//
(jumper
selectable
source)*

Inputs per module

2--34

Installation, Wiring, and Specifications

Common
Internal
Power
Sources

5VDC
-- +
--

+V
TTL

+

15VDC

+VCC

To other 12
or 4 circuits

12-24
VDC

Source Sink
4.7k

Optical
Coupler

Installation, Wiring,
and Specifications

Input
Jumper selected for 12--24VDC, sinking load configuration

Common
Internal
Power
Sources
12-24
VDC

5VDC
-- +
--

+V
TTL

+

15VDC

+VCC

To other 12
or 4 circuits

12-24
VDC

Source Sink
4.7k

Optical
Coupler

Input

Installation and
Safety Guidelines

Jumper selected for sourcing load configuration. An external power supply must be used in this configuration.

Selection of
Operating Mode

The DC power to sense the state of the inputs when jumpers are installed for sinking
type signals is provided by the rack power supply. Sinking type inputs are turned ON
by switching the input circuit to common. Source type input signals assume the ON
state until the input device provides the voltage to turn the input OFF.
The mode of operation, either 5VDC or 12--24VDC sink or source, for each group of
circuits is determined by the position of jumper plugs on pins located on the edge of
the circuit board. There are four sets of pins (3 pins in each set), with two sets for
each group of inputs. The first two sets of pins are used to configure the first 12 inputs
(eg. 0 to 7 and 100 to 103) and are labeled 12 CIRCUITS. Above the first set of pins
are the labels 12/24V and 5V. Above the second set of pins are the labels SINK and
SRC (source). To select an operating mode for the first 12 circuits, place a jumper on
the two pins nearest the appropriate labels. For example, to select 24VDC Sink input
operation for the first 12 inputs, place a jumper on the two pins labeled 12/24V and on
the two pins labeled SINK. The last two sets of pins are used to configure the last 4
inputs (eg. 104 to 107) and are labeled 4 CIRCUITS. The operating mode selected
for the last group of 4 inputs can be different than the mode chosen for the first group
of 12 inputs. Correct module operation requires each set of three pins have a jumper
installed (four jumpers total).
NOTE:When a group of inputs are used with TTL logic, select the SINK operating
mode for that group. “Standard” TTL can sink several milliamps but can source less
than 1 mA.

DL350 User Manual, 2nd Edition

2--35

Installation, Wiring, and Specifications

D3--08NA--1, 110 VAC Input Module
8
2 (isolated)
85--132VAC
External
132VAC
47--63 Hz
>80 VAC
<20 VAC
10 K ohm
15 mA @ 50 Hz
18 mA
A @ 60 Hz
H

Minimum ON current
Maximum OFF current
Base power
p
required
q

8 mA
2 mA
9V 10 mA Max
24V N/A

OFF to ON response
ON to OFF response
Terminal type
Status indicators
Weight

10--30 ms
10--60 ms
Non--removable
Field side
5 oz. (140 g)

Installation, Wiring
and Specifications

Inputs per module
Commons per module
Input voltage range
Input voltage supply
Peak voltage
AC frequency
ON voltage level
OFF voltage level
Input impedance
Input
p current

Derating Chart for D3--08NA--1
Points
8

110VAC INPUT
D3--08NA--1

4

1

5

2

6

C1

3

7

0

1

C
1

2

3

0 1

4

5

2 3

6

7

4 5

110VAC

6
4
2
0
0
32

110VAC
Common
Line

6 7
110VAC

10
20
30
40
50
60°C
50
68
86 104 122 140°F
Ambient Temperature (°C/°F)

2.2k

0.33μF

Optical
Coupler

9V

C2
C
2

Input

DL350 User Manual, 2nd Edition

Installation and
Safety Guidelines

0

2--36

Installation, Wiring, and Specifications

Installation, Wiring,
and Specifications

D3--08NA--2, 220 VAC Input Module
Inputs per module
Commons per module
Input voltage range
Input voltage supply
Peak voltage
AC frequency
ON voltage level
OFF voltage level
Input impedance
Input
p current

8
2 (isolated)
180--265VAC
External
265 VAC
50--60Hz
>180 VAC
< 40 VAC
18 K ohm
13 mA @ 50 Hz
18 mA
A @ 60 Hz
H

Minimum ON current
Maximum OFF current
Base power
p
required
q

10 mA
2 mA
9V 10 mA max
24V N/A

OFF to ON response
ON to OFF response
Terminal type
Status indicators
Weight

5--50 ms
5--60 ms
Non--removable
Field side
5 oz. (140 g)

Derating Chart for D3--08NA--2
Points
220VAC INPUT

8

D3--08NA--2

180--265VAC
Line Neut

C1

0

4

1

5

2

6

3

7

6
4
2

1

C
1

2

3

0 1

4

5

2 3

6

7

4 5

Installation and
Safety Guidelines

0

0
0
32

10
20
30
40
50
60°C
50
68
86 104 122 140°F
Ambient Temperature (°C/°F)
270

185--265
VAC
Line

Common

Optical
Coupler

6 7
Line Neut
180--265VAC

9V

C2
C
2

470K
Input

DL350 User Manual, 2nd Edition

1K .15μF

2--37

Installation, Wiring, and Specifications

D3--16NA, 110 VAC Input Module
16
2 (isolated)
80--132VAC
External
132VAC
50--60 Hz
>80 VAC
<15 VAC
8 K ohm
16 mA @ 50 Hz
25 mA
A @ 60 Hz
H

Minimum ON current
Maximum OFF current
Base power
p
required*
q

8 mA
1.5 mA
9V 6.25 mA Max/ON ppt.
100 A max
100mA

OFF to ON response
ON to OFF response
Terminal type
Status indicators
Weight

5--50 ms
5--60 ms
Removable
Logic side
6.4 oz. (180 g)

Installation, Wiring
and Specifications

Inputs per module
Commons per module
Input voltage range
Input voltage supply
Peak voltage
AC frequency
ON voltage level
OFF voltage level
Input impedance
Input
p current

* 9V typical values are 4
mA/ON pt., 64 mA total

Derating Chart for D3--16NA
Points
16

110VAC INPUT
D3--16NA

I
80--132VAC
Common

CI
0

Line

2

80--132VAC
Common
Line

6
CII
1
3
5
7

1
3
5
7
0
2
4
6

0
2
4
6
C
1
3
5
7

4
5
6
7

0
1
2
3

4
5
6
7

12
II
8
4

C
0

1

0
32

3

10
20
30
40
50
60°C
50
68
86 104 122 140°F
Ambient Temperature (°C/°F)

5
7
0
2
4

110VAC
Line

Common

9V

Other 7
Circuits

0.33μF

6
II

Input 150k

Optical
Coupler

DL350 User Manual, 2nd Edition

Installation and
Safety Guidelines

4

I

0
1
2
3

2--38

Installation, Wiring, and Specifications

Installation, Wiring,
and Specifications

D3--08NE3, 24 VAC/DC Input Module
Inputs per module
Commons per module
Input voltage range
Input voltage
Peak voltage
AC frequency
ON voltage level
OFF voltage level
Input impedance
Input current
Minimum ON current
Maximum OFF current

8 (sink/source)
2 (isolated)
20--28 VAC/VDC
External
28 VAC/VDC
47--63 Hz
>20 V
<6V
1.5 K ohm
19 mA Max
10 mA
2 mA

Base power
p
required
q

9V 10 mA max
24V N/A

OFF to ON response
p

AC: 5--50 ms
DC 6--30
DC:
6 30 ms

ON to OFF response
Terminal type
Status indicators
Weight

AC/DC: 5--60 ms
Non--removable
Field side
4.2 oz. (120 g)

Derating Chart for D3--08NE3
Points
8

24VAC/DC INPUT
D3--08NE3

0

4

1

5

2

6

C1

3

7

0

1

C
1

2

3

0 1

4

5

2 3

Common

Installation and
Safety Guidelines

24VAC/DC

6

6
4
2
0
0
32
24VAC

270
LED

+24VDC

7

4 5

+

10
20
30
40
50
60°C
50
68
86 104 122 140°F
Ambient Temperature (°C/°F)

--

Common

Optical
Coupler

9V

6 7

+
--

-+

C2
Common

24VAC/DC

C
2
Input

1.5k
Sinking Module Configuration

NOTE: This module can be wired in a sourcing configuration
and it will be operational except there will be no module
LED indication for each input.

DL350 User Manual, 2nd Edition

2--39

Installation, Wiring, and Specifications

D3--16NE3, 24 VAC/DC Input Module
16 (sink/source)
2 (isolated)
14--30VAC/VDC
External
30 VAC/VDC
47--63 Hz
>14 V
<3 V
1.8 K ohm
16 mA Max
7 mA
2 mA

Base power
p
required
q

9V 2.5 mA.+4.5mA/
ON pt.(130
t (130 mA
A max))
24V N/A

OFF to ON response
p

AC 5--30 ms
DC 5--25
5 25 ms

ON to OFF response
p

AC 5--30 ms
DC 5--25
5 25 ms

Terminal type
Status indicators
Weight

Removable
Logic side
6 oz. (170 g)

Installation, Wiring
and Specifications

Inputs per module
Commons per module
Input voltage range
Input voltage supplied
Peak voltage
AC frequency
ON voltage level
OFF voltage level
Input impedance
Input current
Minimum ON current
Maximum OFF current

Derating Chart for D3--16NE3
Points
16

24VAC/DC INPUT
D3--16NE3

I
24VAC
Common

CI
0

Line

2
4

CII
1

24VDC

3
5
7

1
3
5
7
0
2
4
6

2
4
6
C
1
3
5
7

4
5
6
7

0
1
2
3

4
5
6
7

12
II

Vin=30V

8

10 circuits ON

Vin=24V

4

7 circuits ON
5 circuits ON

0

C

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

1
3
5

9V

7

Common

0
2

24VAC
24VDC

4
6
II

1.8k
Input

Optical
Coupler

Sinking Module Configuration

DL350 User Manual, 2nd Edition

Installation and
Safety Guidelines

24VDC
Common

6

I
0

0
1
2
3

16 circuits ON
Vin=18V

2--40

Installation, Wiring, and Specifications

Installation, Wiring,
and Specifications

D3--08SIM, Input Simulator
Inputs per module

8

Base Power required
OFF to ON response

10mA @ 9VDC
112mA max @
24VDC
4--15 ms

ON to OFF response

4--15 ms

Terminal type

None

Status indicators

Switch side

Weight

3.0 oz. (85 g)

INPUT SIMULATOR
D3--08SIM

0

4

1

5

2

6

3

7

0
1
2
3

Installation and
Safety Guidelines

4
5
6
7

DL350 User Manual, 2nd Edition

Installation, Wiring, and Specifications

2--41

D3--08TD1, 24 VDC Output Module
Outputs per module
Commons per module
Operating voltage
Output
p type
yp

8 (current sinking)
2(internally connected)
5--24VDC
NPN
(
(open
collector)
ll t )
45VDC
N/A
0.8V @ 0.5A
0.5A / point
p
1 8 / common
1.8

Max leakage current
Max inrush current

0.1 mA @ 40VDC
3A / 20ms
1A / 100ms

1 mA
9V 20 mA Max
24V 3mA/pt.
3 A/ t
(24mA Max)

OFF to ON response
ON to OFF response
Terminal type
Status indicators
Weight
Fuses

0.1 ms
0.1 ms
Non-removable
Logic Side
4.2 oz. (120 g)
((2))
O 3A per common
One
Non replaceable
Non--replaceable

Installation, Wiring
and Specifications

Peak voltage
AC frequency
ON voltage drop
Max current

Minimum load
Base power
p
required
q

Derating Chart for D3--08TD1
Points

8

24VDC OUTPUT
D3--08TD1

0

4

1

5

2

6

C1

3

7

Internally
Connected

5--24VDC
+ --

6
4
2

L

0

1

C
1

L

2

3

0 1

4

5

2 3

6

7

4 5

0
0
32

L

L

L

10
20
30
40
50
60°C
50
68
86 104 122 140°F
Ambient Temperature (°C/°F)

Output

L
L

Optical
Coupler

L

6 7

C2
C
2

3A
Common
+ -5--24VDC

24VDC
-- +
Internal
Power Supply

DL350 User Manual, 2nd Edition

9V

Installation and
Safety Guidelines

L

2--42

Installation, Wiring, and Specifications

Installation, Wiring,
and Specifications

D3--08TD2, 24 VDC Output Module
Outputs per module
Commons per module
Operating voltage
Output
p type
yp

8 (current sourcing)
2 (internally connected)
5--24VDC
NPN Transistor
( itt ffollower)
(emitter
ll
)

Peak voltage
AC frequency
ON voltage drop
Max current

40VDC
N/A
1V @ 0.5A
0.5A / point
p
1 8A/ common
1.8A/

Max leakage current
Max inrush current

0.1 mA @ 24VDC
3A / 20ms
1A / 100ms
100

Minimum load
Base power
p
required
q

1 mA
9V 30 mA Max
24V N/A

OFF to ON response
ON to OFF response
Terminal type
Status indicators
Weight
Fuses

0.1 ms
0.1 ms
Non-removable
Logic Side
4.2 oz. (120 g)
((2))
O 3A per common
One
Non replaceable
Non--replaceable

Derating Chart for D3--08TD2

24VDC OUTPUT
D3--08TD2

Internally
Connected

Installation and
Safety Guidelines

5--24VDC
-- +

C1

0

4

1

5

2

6

3

7

Points
8
6
4
2

C
1

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

L
L

0

1

0 1

L

2

3

2 3

L

L

4

5

6

7

L
L
L

4 5

DL350 User Manual, 2nd Edition

3A
Common

6 7
C
2

C2

5--24VDC
-- +

L

Output

Optical
Coupler

9V

Installation, Wiring, and Specifications

2--43

D3--16TD1--1, 24 VDC Output Module
Outputs per module
Commons per module
Operating voltage
Output type
Peak voltage
AC frequency
ON voltage drop
Max current
Max leakage current
Max inrush current

0.1mA @ 40VDC
3A / 20 ms
1A / 100 ms

Minimum load
Base power
p
required
q

1 mA
9V (40
( mA Max))
3 A 2 3 A/ON pt.
3mA+2.3mA/ON
t
24V 6 mA/ON pt.
pt
(96 mA Max)

OFF to ON response
ON to OFF response
Terminal type
Status indicators
Weight
Fuses

0.1 ms
0.1 ms
Removable
Logic Side
5.6 oz. (160 g)
((2))
O 3A per common
One
Non-replaceable

Installation, Wiring
and Specifications

16 (current sinking)
2 (internally connected)
5--24VDC
NPN transistor
(open collector)
45VDC
N/A
2V @ 0.5A
0.5A/ p
point
2A/ common

Derating Chart for D3--16TD1--1
Points
16

24VDC OUTPUT
D3--16TD1--1

Internally
Connected
5--24VDC
+ --

CI
0

L
L

2

L
L

L

5--24VDC
+ --

6

L
L

CII

L
L

1

L
L

3

L
L
L
L

5
7

I
1
3
5
7
0
2
4
6

0
2
4
6
C
1
3
5
7

0
1
2
3

4
5
6
7

0
1
2
3

4
5
6
7

II

12

0.25A
0.35A

8
0.5A

4

C

0

1

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

3
5
7

24VDC
9V

0
2
4

L

3A

6
II

Output

+ -5--24VDC

Common

DL350 User Manual, 2nd Edition

Installation and
Safety Guidelines

4

L

I

2--44

Installation, Wiring, and Specifications

Installation, Wiring,
and Specifications

D3--16TD1--2, 24 VDC Output Module
Outputs per module
Commons per module

16 (current sinking)
4 (internally connected)

Operating voltage

5--24VDC

Output type

NPN transistor
(open collector)

Minimum load
Base power required

OFF to ON response
ON to OFF response
Terminal type
Status indicators
Weight
Fuses

Peak voltage
AC frequency
ON voltage drop
Max current

45VDC
N/A
2.0V @ 0.5A
0.5A / point
p
1 8A common
1.8A

Max leakage current
Max inrush current

0.3 mA @ 40VDC
3A / 20ms
1A / 100ms

1 mA
9V (40mA Max)
3mA+2 3mA/ON pt
3mA+2.3mA/ON
pt.
24V 6mA/ON pt.
(96mA Max)
0.1 ms
0.1 ms
Removable connector
Logic Side
5.6 oz. (160 g)
((4))
O 3A per common
One
Non replaceable
Non--replaceable

Derating Chart for D3--16TD1--2
Points
16

24VDC OUTPUT
A
L

1
0

D3--16TD1--2

B
1

I

L
L

2

3

4

5

6

7

L
L
L
L
L

Installation and
Safety Guidelines

C

I
L

0

1

2

3

4

5

L
L

Internally
Connected

L
L
L
L

6

7

L

C
+

--

5--24VDC

II

0
1
2
3
4
5
6
7

II

A
0
2
4
6
C
C
0
2
4
6
C
C

8

0
1
2
3
4
5
6
7

B
1
3
5
7
C
C
1
3
5
7
C
C

0.5A

12

4
0
0 10 20 30 40 50 60°C
32 50 68 86 104 122 140°F
Ambient Temperature (°C/°F)
Output 0, 2, 4, 6 (FUSED with 3A on Common)
Same circuit as shown below
Output 1, 3, 5, 7 (FUSED with 3A on Common)
Same circuit as shown below
L

Output

Optical
Coupler

To Other
3 Circuits

12

Common
+ -5--24VDC

3A

24VDC
-- +
Internal
Power Supply
To Other 3 Commons

DL350 User Manual, 2nd Edition

Installation, Wiring, and Specifications

2--45

D3--16TD2, 24 VDC Output Module
Outputs per module
Commons per module
Operating voltage
Output
p type
yp

16 (current sourcing)
2 (isolated)
5--24VDC
NPN transistor
( itt ffollower)
(emitter
ll
)
40VDC
N/A
1.5V @ 0.5A
0.5A / point
p
3A common

Max leakage current
Max inrush current

0.01 mA @ 40VDC
3A / 20ms
1A / 100ms

1 mA
9V 7.5 mA/ON pt.
p
(180 mA
A Max)
M )
24V N/A

OFF to ON response
ON to OFF response
Terminal type
Status indicators
Weight
Fuses

0.1 ms
1 ms
Removable
Logic Side
7.1 oz. (210 g)
((2))
O 5A per common
One
Non replaceable
Non--replaceable

Installation, Wiring
and Specifications

Peak voltage
AC frequency
ON voltage drop
Max current

Minimum load
Base power
p
required
q

Derating Chart for D3--16TD2
Points
16

24VDC OUTPUT
D3--16TD2

I
5--24VDC
-- +

CI
0

L
L

2

L
L

L

5--24VDC
-- +

6

L
L

CII

L
L

1

L

3

L

5

L

7

L

L

L

1
3
5
7
0
2
4
6

0
2
4
6
C
1
3
5
7

4
5
6
7

0
1
2
3

4
5
6
7

II

0.25A

12
0.5A

8
4

C

0

1

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

3
5
7
0
2

5--24VDC
-- +

4

9VDC
Common
5A

6
II

L

Output

Optical
Isolator

DL350 User Manual, 2nd Edition

Installation and
Safety Guidelines

4

L

I

0
1
2
3

2--46

Installation, Wiring, and Specifications

Installation, Wiring,
and Specifications

D3--04TAS, 110--220 VAC Output Module
Outputs per module
Commons per module
Operating voltage
Output type
Peak voltage
AC frequency
ON voltage drop
Max current

4
4 (isolated)
80--265VAC
Triac
265 VAC
47--63 Hz
1.5 VAC @ 2A
2A / point
p
2A / common

Max leakage current

7 mA @ 220VAC
3.5 mA @ 110VAC
20A for 16 ms
10A for
f 100 ms

Max inrush current

Minimum load
Base power
p
required
q

10 mA
9V 12 mA Max
24V N/A

OFF to ON response
ON to OFF response
Terminal type
Status indicators
Weight
Fuses

1 ms Max
10 ms Max
Non--removable
Logic Side
6.4 oz. (180 g)
((4))
O 3A per common
One
User replaceable

Derating Chart for D3--04TAS
Points
4

110/220VAC OUTPUT
D3--04TAS

80--265VAC
Neut
Line

Installation and
Safety Guidelines

L

0

0

4

1

5

2

6

3

7

2

2A

1
0

C0

L

1

C1

0 C
0

L

2

C2

1 C
1

L

3

C3

2 C
2

Neut
Line
80--265VAC

1A

3

0
32

10
20
30
40
50
60°C
50
68
86 104 122 140°F
Ambient Temperature (°C/°F)

Output
L

9V

3 C
3
3A
Line
80--265VAC

DL350 User Manual, 2nd Edition

.33

Common

47Ω

Installation, Wiring, and Specifications

2--47

F3--08TAS, 250 VAC Isolated Output Module
Outputs per module
Commons per module
Operating voltage

Minimum load

Base power required

9V 10mA / ON pt.
80mA Max.
24V
V N/A

OFF to ON response

8 ms Max

ON to OFF response

8 ms Max

Terminal type
Status indicators
Weight
Fuses
BK/PCE 5 B
BK/PCE--5
Bussman
(One spare fuse
included)

Removable
Logic Side
6.3 oz. (178g)
((8)) fast blow
O 5A (125V fast
One
f t
blow) per each circuit
User replaceable

Installation, Wiring
and Specifications

Output type
Peak voltage
AC frequency
ON voltage drop
Max current
Max leakage current
Max inrush current*

8 (500V point-to-point
isolation)
8 (isolated)
12--125 VAC
125--250 VAC requires
external fuses
SSR Array (TRIAC)
400 VAC
47 -- 440 Hz
1 VAC @ 1A
1A / point
10 μA @ 240 VAC
20A for 16 ms
3A for
f 100 ms
0.5 mA

*Fuse blows at 30 Amp surge
Motor starters up to and including
a NEMA size 3 can be used with
this module.

Derating Chart for F3--08TAS
OUTPUT 250VAC
ISOLATED
0
1
2
3

Neut

Line

Neut

Line

Neut

Line

Neut

Line

Neut

Line

Neut

6

0.75A

4
5
6
7

4

1A

0
L

1
L

2
L

3
L

4
L

5
L

6
L

7
L

0
1
2
3
4
5
6
7

0
C
1
C
2
C
3
C
4
C
5
C
6
C
7
C

0

0
NO

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

1
NO
2
NO
3
NO
4
NO

12--250VAC

5A
9V

Line

5
NO
6
NO
7
NO

L

Output

DL350 User Manual, 2nd Edition

Installation and
Safety Guidelines

Line

Neut

0.5A

2

12--250VAC
Line
Neut
Line

Points
8

2--48

Installation, Wiring, and Specifications

F3--08TAS--1, 125 VAC Isolated Output Module
Outputs per module
Commons per module

8 (1500V point-topoint isolation)
8 (isolated)

Operating voltage

20--125VAC
SSR (TRIAC with zero
cross--over)
140VAC
47 -- 63 Hz
1.6V(rms) @ 1.5A
1.5A/point
0.7mA (rms)
15A for 20 ms
8A for
f 100 ms

Installation, Wiring,
and Specifications

Output type
Peak voltage
AC frequency
ON voltage drop
Max current
Max leakage current
Max inrush current*
Minimum load

Base power required

9V 25mA/ON pt.
((200mA Max),
),
24V
V N/A

OFF to ON response
ON to OFF response

1 ms Max
9 ms Max

Terminal type

Removable

Status indicators
Weight

Logic Side
6.3 oz. (177g)
8 (1
( per
p common))
5A 125V fast
5A,
f t bl
blow
Order D3--FUSE--4
D3 FUSE 4
(5 per pack)

Fuses

50mA

Derating Chart
F3--08TAS--1
OUTPUT 125VAC
ISOLATED
0
1
2
3

20 ----125VAC

Installation and
Safety Guidelines

Line
Line

0
L

1
L

Line
Line

2
L
L

Line

3
4

L
Line
Line

5
L

6
L

Line

7
L

4
5
6
7

0
1

0
C

2

1
C

3

2
C

4

3
C

5

4
C

6
7

5
C
6
C
7
C

0
NO

Derating Note: All outputs
can be run at the current
per point shown.

1
NO
2
NO
3
NO
4
NO
5
NO

L

Z
C

6
NO
7
NO

COM
20--125VAC

DL350 User Manual, 2nd Edition

Output

Line

5A

To LED

Installation, Wiring, and Specifications

2--49

D3--08TA--1, 110--220 VAC Output Module
8
2 (isolated)
80--265VAC
Triac
265VAC
47--63 Hz
1.5 VAC @ 1A
1A / point
p
3A / common

Max leakage current

1.2 mA @ 220VAC
0.52 mA @ 110VAC
10A for 16 ms
5A for 100 ms

Max inrush current

Minimum load
Base power
p
required
q

25 mA
9V 20mA/ON p
pt.
(160 mA
A Max)
M )
24V N/A

OFF to ON response
ON to OFF response
Terminal type
Status indicators
Weight
Fuses

1 ms Max
8.33 ms Max
Removable
Logic Side
7.4 oz. (210 g)
(2)
One 5A p
per common
N
Non-replaceable
l
bl

Installation, Wiring
and Specifications

Outputs per module
Commons per module
Operating voltage
Output type
Peak voltage
AC frequency
ON voltage drop
Max current

Derating Chart for D3--08TA--1
Points
8

INTERNALLY CONNECTED

110--220VAC OUTPUT
80--265VAC
Neut
Line

D3--08TA--1

0

L

L

L

L

C1

C1

C1

0
1
2
3

1

3

C
1

C1

NC

1A

4
2
0

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

1
2
3

NC

4

L

L

L

L

C2

C2

C2

4

5
6
7

C
2

5

80--265VAC
Neut
Line

Common
5A

6
7

L

Output

C2

INTERNALLY CONNECTED

DL350 User Manual, 2nd Edition

9V

Installation and
Safety Guidelines

80--265VAC
Neut
Line

4
5
6
7

0

2

0.5A

6

2--50

Installation, Wiring, and Specifications

Installation, Wiring,
and Specifications

D3--08TA--2, 110--220 VAC Output Module
Outputs per module
Commons per module
Operating voltage
Output type
Peak voltage
AC frequency
ON voltage drop
Max current

8
2 (isolated)
80--265VAC
Triac
265VAC
47--63 Hz
1.5 VAC @ 1A
1A / point
p
3A / common

Max leakage current

1.2 mA @ 220VAC
0 52 mA @ 110VAC
0.52

Max inrush current

10A for 16 ms
5A for
f 100 ms

Minimum load

25 mA

Base power
p
required
q

9V 20mA/ON p
pt.
(160 mA
A Max)
M )
24V N/A

OFF to ON response
ON to OFF response
Terminal type
Status indicators
Weight
Fuses

1 ms Max
8.33 ms Max
Non-removable
Logic Side
6.4 oz. (180 g)
(2)
One 5A per common
Non--replaceable

Derating Chart for D3--08TA--2
110-220VAC OUTPUT

Points
8

D3--08TA--2

80--265VAC

Installation and
Safety Guidelines

Neut

Line

L

0

1

L

2

3

4

5

L

L
L

6

L

7

L

Neut

Line

0

4

1

5

2

6

3

7

C2

80--265VAC

DL350 User Manual, 2nd Edition

1A

4
2
0

C1

L

0.5A

6

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

C
1
0 1
2 3

80--265VAC
Neut
Line Common

4 5

5A

6 7
C
2

L

Output

9V

Installation, Wiring, and Specifications

2--51

F3--16TA--2, 20--125 VAC Output Module
Outputs per module
Commons per module

16
2 (isolated)

Operating voltage

20--125VAC
OFF to ON response
ON to OFF response
Terminal type
Status indicators
Weight
Fuses

SSR Array (TRIAC)
140VAC
47 -- 63Hz
1.1VAC @ 1.1A
1.1A / point
0.7mA @ 125VAC
15A for 20 ms
8A for
f 100 ms
Points

50mA
9V 14mA / ON pt.
250mA Max.
Max
24V N/A
8ms Max
8ms Max
Removable
Logic Side
7.7oz. (218g)
4 ((One 5A 125V fast
bl
blow
per each
h group
of four outputs)
Order D3--FUSE--4
(5 per pack)

Installation, Wiring
and Specifications

Output type
Peak voltage
AC frequency
ON voltage drop
Max current
Max leakage current
Max inrush current*

Minimum load
Base power required

Derating Chart

16

1.0A

12

0.5A

1.1A

8

20--125VAC OUTPUT

4

F3----16TA----2

0
0
32

10
20
30
40
50
60 C
50
68
86
104 122 140 F
Ambient Temperature (degrees C / F)
*Fuse blows at 20 Amp surge
Motor starters up to and including
a NEMA size 3 can be used with
this module.
20--125VAC
L
L
L
L
L
20--125VAC

L
L

7
0

L

3

L

5

L

7

L

5A

L

5

6

1

L

Common

3

4

L
L

5A

1
2

H II

L

20--125VAC

0

2
4
6

To other 4 circuits
To other 3 circuits
9V

0
1
2
3

4
5
6
7

0
1
2
3

4 II
5
6
7

I H
0 I
1
2
3
4
5
6
7
H
II
0
1
2
3
4
5
6
7
II

Output

DL350 User Manual, 2nd Edition

Installation and
Safety Guidelines

L

H
I

I

2--52

Installation, Wiring, and Specifications

Installation, Wiring,
and Specifications

D3--16TA--2, 15--220 VAC Output Module
Outputs per module
Commons per module
Operating voltage
Output type
Peak voltage
AC frequency
ON voltage drop
Max current

16
2 (isolated)
15--265 VAC
Triac
265 VAC
47--63 Hz
1.5 VAC @ 0.5A
0.5A / point
p
3A / common
6A / per module

Max leakage current
Max inrush current

4 mA @ 265 VAC
10A for 10 ms
5A for 100 ms

Minimum load
Base power
p
required
q
*

10 mA @ 15VAC
9V 25mA Max/ON p
pt.
400 mA
A Max
M
24V N/A

OFF to ON response
ON to OFF response
Terminal type
Status indicators
Weight
Fuses

1 ms Max
9 ms Max
Removable
Logic Side
7.2 0z. (210 g)
((2))
O 5A per common
One
Non replaceable
Non--replaceable
total

*

9V

typical

values

17mA/ON pt., 272 mA

Derating Chart for D3--16TA--2
Points
16

110--220VAC OUTPUT
D3--16TA--2

I

15--265VAC

CI
0

L

Installation and
Safety Guidelines

L

2

L
L

4

L
L

15--265VAC

6

L
L

CII

L
L

1

L

3

L

5

L

L

L
L

7

I
1
3
5
7
0
2
4
6

DL350 User Manual, 2nd Edition

0
2
4
6
C
1
3
5
7

0
1
2
3

4
5
6
7

0
1
2
3

4
5
6
7

II

0.30A

12

0.5A

8
Max 3A/common

4

C

0.2A

0

1

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

3
5
7

15--265VAC

0

Line

Common
5A

2

9V
.33

4
6
II

47Ω
L

Output

Installation, Wiring, and Specifications

2--53

D3--08TR, Relay Output Module
Outputs per module
Commons per module
Operating voltage
Output type
Peak voltage
AC frequency
ON voltage drop
Max current

Max leakage current
Max inrush current

Minimum load
Base power
p
required
q

5 mA @ 5v
9V 45 mA/ON p
pt.
(360 mA
A Max)
M )
24V N/A

OFF to ON response
ON to OFF response
Terminal type
Status indicators
Weight
Fuses

5 ms
5 ms
Non-removable
Logic Side
7 oz. (200 g)
(2)
One 10A per common
User replaceable

1 mA @ 220VAC
5A

Installation, Wiring
and Specifications

8
2 (isolated)
5--265VAC
5--30VDC
Form A (SPST)
265VAC / 30VDC
47--63 Hz
N/A
4A / point
p
AC
5A / point
i t DC
6A / common

Derating Chart for D3--08TR

Typical Relay Life (Operations)
Voltage Resistive Solenoid Closures
220VAC
220VAC
110VAC
110VAC
24VDC

4A
4A
5A

0.5A
0.05A
0.5A
0.1A
0.5A

5--265VAC

100k
800k
100k
650k
100k

C1

D3--08TR

0

4

1

5

2

6

3

7

4
2
0
0 10 20 30 40 50 60°C
32 50 68 86 104 122 140°F
Ambient Temperature (°C/°F)

C
1
0 1

L

0

1

L

2

3

4

5

6

7

2 3

L

4 5
L

L

Common

10A
9V

6 7

L

C
2

L

-- +
5--30VDC

6

C2

L

Output

Relay

DL350 User Manual, 2nd Edition

Installation and
Safety Guidelines

L

RELAY OUTPUT

Points
8

2--54

Installation, Wiring, and Specifications

F3--08TRS--1, Relay Output Module

Installation, Wiring,
and Specifications

Outputs per module
Commons per module
Operating
p
g voltage*
g

8
8 (isolated)
12--125 VAC
125 250 VAC requires
125--250
i
external fuses
12--30 VDC

Max leakage current
Max inrush current
Minimum load

N/A
10A Inductive
100 mA @12VDC

Base power required

Output
p type
yp

6 Form A ((SPST)
2 Form
F
C (SPDT)

Peak voltage
AC frequency
ON voltage drop
Max current (resistive)

265 VAC / 120 VDC
47--63 Hz
N/A
10A / point AC/DC
30A / module AC/DC

OFF to ON response
ON to OFF response
Terminal type
Status indicators
Weight
Fuses

9V 37mA / ON pt.
(296 mA Max)
24V N/A
13 ms Max
9 ms Max
Removable
Logic Side
8.9 oz. (252 g)
(8) One 10A (125V)
per common
Non-replaceable

NOTE: Contact life may be lengthened beyond those values shown by the use of an appropriate arc
suppression. This technique is discussed earlier in this chapter.
Derating Chart for F3--08TRS--1

Typical Relay Life (Operations)

Points
8

Output Current
10A/point
(30A/module)

6
4

RELAY OUTPUT
F3--08TRS--1

0
1
2
3

Installation and
Safety Guidelines

2
0
0 10 20 30 40 50 60°C
32 50 68 86 104 122 140°F
Ambient Temperature (°C/°F)
L

0C

+

L

--

1C
L

2C

--

+

L

3C
L

L

4C
5C

L

6C

--

+

L

L
L

7C
7NC

0
C

0
NC
0
NO
1
NO
2
NO
3
NO
4
NO
5
NO
6
NO
7
NO

DL350 User Manual, 2nd Edition

1
C
2
C
3
C
4
C
5
C
6
C
7
C
7
NC

4
5
6
7

Maximum Resistive
or Inductive Inrush
Load Current
1/4HP
10.0A
5.0A
3.0A
.05A

Operating Voltage
28VDC
50K
200K
325K
>50M

12--250VAC

0
NC

120VAC 240VAC
25K
50K
100K
125K
50K

10A
Common

0
NO
1
NO

NO

L

2
NO
3
NO

12--30VDC

--

+

4
NO
5
NO
6
NO
7
NO

9V

Outputs 1--6
10A
Common

L

L

NC
NO

Outputs 0 & 7
*Maximum DC voltage rating is 120 VDC at
.5 Amp, 30,000 cycles typical
Motor starters up to and including
a NEMA size 4 can be used with
this module.

9V

2--55

Installation, Wiring, and Specifications

F3--08TRS--2, Relay Output Module
Outputs per module
Commons per module
Operating
p
g voltage*
g

8
8 (isolated)
12--125 VAC
12 30 VDC
12--30

6 Form A ((SPST)
2 Form
F
C (SPDT)

Peak voltage
AC frequency
ON voltage drop
Max current (resistive)

265 VAC / 120 VDC
47--63 Hz
N/A
5A / point AC/DC
40A / module AC/DC

N/A
10A Inductive
100 mA @12VDC

Base power required

9V 37mA / ON pt.
(296 mA Max)
24V N/A
13 ms Max
9 ms Max
Removable
Logic Side
9 oz. (255 g)
(8) One 5A (125V) per
common
User replaceable

OFF to ON response
ON to OFF response
Terminal type
Status indicators
Weight
Fuses
19379--K--10A
Wickman

Installation, Wiring
and Specifications

Output
p type
yp

Max leakage current
Max inrush current
Minimum load

NOTE: Contact life may be lengthened beyond those values shown by the use of an appropriate arc
suppression. This technique is discussed earlier in this chapter.
Derating Chart for F3--08TRS--2

Typical Relay Life (Operations)

Points
8

Output Current
5A/point
(40A/module)

6
4

RELAY OUTPUT
F3--08TRS--2

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

0C

+

L

--

1C
L

2C

--

+

L

3C
L

L

4C
5C

L

6C

--

+

L

L
L

7C
7NC

0
C

0
NC
0
NO
1
NO
2
NO
3
NO
4
NO
5
NO
6
NO
7
NO

1
C
2
C
3
C
4
C
5
C
6
C
7
C
7
NC

4
5
6
7

5.0A
3.0A
.05A

Operating Voltage
28VDC
200K
325K
>50M

120VAC 240VAC
100K
125K
50K

Expected mechanical relay life is 100 million operations.
12--250VAC

0
NC

Installation and
Safety Guidelines

0
1
2
3

2

L

Maximum Resistive
or Inductive Inrush
Load Current

5A
Common

0
NO
1
NO

NO

L

2
NO
3
NO

12--30VDC

--

Common

5
NO

7
NO

5A

+

4
NO

6
NO

9V

Outputs 1--6

L

L

NC

9V

NO

Outputs 0 & 7
*Maximum DC voltage rating is 120 VDC at
.5 Amp, 30,000 cycles typical
Motor starters up to and including
a NEMA size 3 can be used with
this module.

DL350 User Manual, 2nd Edition

2--56

Installation, Wiring, and Specifications

D3--16TR, Relay Output Module

Installation, Wiring,
and Specifications

Outputs per module
Commons per module
Operating voltage
Output type
Peak voltage
AC frequency
ON voltage drop
Max current
Max leakage current
Max inrush current

16
2 (isolated)
5--265 VAC
5--30 VDC
16 Form A (SPST)
265 VAC / 30 VDC
47--63 Hz
N/A
2A / point AC/DC
(resistive)
8A / common AC/DC
0.1mA @ 220 VAC
2A

Minimum load
Base power
p
required
q

5 mA @ 5v
9V 30 mA/ON p
pt.
(480 mA
A Max)
M )
24V N/A

OFF to ON response
ON to OFF response
Terminal type
Status indicators
Weight

12 ms
12 ms
Removable
Logic Side
8.5 oz. (248g)

Fuses

None

Typical Relay Life (Operations)
Voltage Resistive Solenoid Closures
220VAC
220VAC
110VAC
110VAC
24VDC

2A

0.25A
0.03A
0.25A
0.05A
0.25A

2A
2A

100k
800k
100k
650k
100k

5--265VAC

CI
0

L
L

2

L
L

4

Installation and
Safety Guidelines

L
L

5--30VDC

6

L
L

CII

L
L

1

L
L

3

L

5

L

L
L

7

Derating Chart for D3--16TR
D3--16TR

I

I
1
3
5
7
0
2
4
6

Points
16

RELAY OUTPUT

0
2
4
6
C
1
3
5
7

0
1
2
3

4
5
6
7

0
1
2
3

4
5
6
7

II

12
8
4

C

0

1

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

3
5

5--265
VAC

7
0
2

5--30VDC
-- +

Common

4
6

L

II
Output

DL350 User Manual, 2nd Edition

9V

Relay

CPU Specifications
and Operations
In This Chapter. . . .
— Overview
— CPU General Specifications
— CPU Hardware Features
— Using Battery Backup
— Selecting the Program Storage Media
— CPU Setup
— CPU Operation
— I/O Response Time
— CPU Scan Time Considerations
— PLC Numbering Systems
— Memory Map
— DL350 System V-Memory
— X Input / Y Output Bit Map
— Control Relay Bit Map
— Stage™ Control / Status Bit Map
— Timer and Counter Status Bit Maps

13

3--2

CPU Specifications and Operation

Overview
The CPU is the heart of the control
system. Almost all system operations are
controlled by the CPU, so it is important
that it is set-up and installed correctly.
This chapter provides the information
needed to understand:
S the differences between the
different models of CPUs
S the steps required to setup and
install the CPU

CPU Specifications
and Operation

General CPU
Features

DL350 CPU
Features

The DL350 is a modular CPU which can be installed in 5, 8, or 10 slot bases. All I/O
modules in the DL305 family will work with the CPU. The DL350 CPU offers a wide
range of processing power and program RLL and Stage program instructions (see
Chapters 5 and 7). It also provides extensive internal diagnostics that can be
monitored from the application program or from an operator interface. The DL350 is
different than the other CPUs in the DL305 family. It supports a 16 bit addressing
format where the DL330/340 are 8 bit. This has enabled the DL350 to expanded its
instruction set, memory, and features much like the DL205 and DL405 CPUs.
The DL350 has a maximum of 14.8K of program memory comprised of 7.6K of
ladder memory and 7.2K of V-memory (data registers). It supports a maximum of
368 points of local I/O, and 880 points with remote I/O. It includes an additional
internal RISC--based microprocessor for greater processing power. The DL350 has
over 150 instructions, including drum timers, a print function, floating point math, and
PID loop control for 4 loops.
The DL350 has a total of two communications ports. The top port is a 6 pin modular
that provides a built--in RS232 communication port. It can be used for easy
connection of the handheld programmer, PC, or used for a DirectNET slave. The
bottom port is a 25--pin RS232C/RS422 port. It will interface with DirectSOFT, and
operator interfaces, provides built--in Remote I/O, DirectNET and MODBUS RTU
Master/Slave connections.

DL350 User Manual, 2nd Edition

CPU Specifications and Operation

3--3

CPU General Specifications
Feature

DL350

Total Program memory (words)

14.8K

Ladder memory (words)

7680 (Flash)

V-memory (words)

7168

Non-volatile V--Memory (words)

No

Boolean execution /K

5--6 ms

RLL and

RLL PLUS

Programming

Yes

Handheld programmer
DirectSOFT™

Yes

programming for Windows™

Yes
Yes

CMOS RAM

No

UVPROM

No

EEPROM

Flash

Local Discrete I/O points available

368

Remote I/O points available

512

Remote I/O Channels

1

Max Number of Remote Slaves

7

Local Analog input / output channels maximum

128 / 32

Counter Interface Module (quad., pulse out, pulse catch, etc.) No
I/O Module Point Density

8/16

Slots per Base

5/8/10

Number of instructions available (see Chapter 5 for details)

170

Control relays

1024

Special relays (system defined)

144

Stages in

RLL PLUS

1024

Timers

256

Counters

128

Immediate I/O

Yes

Interrupt input (hardware / timed)

No / Yes

Subroutines

Yes

Drum Timers

Yes

For/Next Loops

Yes

Math

Integer,Floating Point

PID Loop Control, Built In

Yes

Time of Day Clock/Calendar

Yes

Run Time Edits

Yes

Supports Overrides

Yes

Internal diagnostics

Yes

Password security

Yes

System error log

Yes

User error log

Yes

Battery backup

Yes (optional)

DL350 User Manual, 2nd Edition

CPU Specifications
and Operation

Built-in communication ports (RS232C)

3--4

CPU Specifications and Operation

CPU Hardware Features
Port 1

Status Indicators

6P6C Phone Jack
RS232C, 9600 baud
Communication Port
--K-sequence
--DirectNET™ slave
--easily connect
DirectSOFT™,
handhelds, operator interfaces,
any DirectNET master

Port 2
25-pin D--Shell Connector
RS232C/RS422, up to 38.4K baud
Communication Port
--K-sequence
--DirectNET™ Master/Slave
--MODBUS RTU Master/Slave
--Built--in Remote I/O
--easily connect
DirectSOFT,
handhelds, operator interfaces,
any DirectNET or MODBUS
master or slave

Mode Switch
Battery Slot

CPU Specifications
and Operation

Mode Switch
Functions

The mode switch on the DL350 CPUs provide 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, DirectSOFT programing package or operator interface). 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 programming or monitoring device.
Mode--switch Position
(Run Program)

RUN

TERM (Terminal)
STOP

(Stop Program)

CPU Action
CPU is forced into the RUN mode if no errors are encountered. No
changes are allowed by the attached programming/monitoring device.
RUN, PROGRAM and the TEST modes are available. Mode and
program changes are allowed by the programming/monitoring device.
CPU is forced into the STOP mode. No change or monitoring is
allowed by the programming/monitoring device.

There are two ways to change the CPU mode.
1. Use the CPU mode switch to select the operating mode.
2. Place the CPU mode switch in the TERM position and use a programming
device to change operating modes. In this position, you can change
between Run and Program modes.
Status Indicators

The status indicator LEDs on the CPU front panels have specific functions which can
help in programming and troubleshooting.
Indicator

Status

Meaning

PWR

ON

Power good

RUN

ON

CPU is in Run Mode

RUN

FLASHING

CPU is in Firmware upgrade mode

CPU

ON

CPU self diagnostics error

BATT

ON

CPU battery voltage is low

TX1

ON

Transmitting Data from Port 1

RX1

ON

Receiving Data at port 1

TX2

ON

Transmitting Data from Port 2

RX2

ON

Receiving Data at Port 2

DL350 User Manual, 2nd Edition

CPU Specifications and Operation

Port 1
Specifications

The operating parameters for Port 1 on the DL350 CPU are fixed.
S 6 Pin female modular (RJ12 phone jack) type connector
S DirectNet (slave), K--sequence protocol
S RS232C, 9600 baud
S Connect to DirectSOFT, D2--HPP, DV1000 or DirectNET master

1
6

6-pin Female
Modular Connector

Port 2
Specifications

13

14

25

25-pin Female
D Connector

Port 1 Pin Descriptions (DL350 only)
1
2
3
4
5
6

0V
5V
RXD
TXD
5V
0V

Power (--) connection (GND)
Power (+) connection
Receive Data (RS232C)
Transmit Data (RS232C
Power (+) connection
Power (--) connection (GND)

Port 2 on the DL350 CPU is located on the 25 pin D-shell connector. It is configurable
using AUX functions on a programming device.
S 25 Pin female D type connector
S Protocol: K sequence, DirectNET Master/Slave, MODBUS RTU
Master/Slave, Remote I/O, non--procedure
S RS232C, non-isolated, distance within 15 m (approx. 50 feet)
S RS422C, non-isolated, distance within 1000 m
S Up to 38.4K baud
S Address selectable (1--90)
S Connects to DirectSOFT, operator interfaces, any DirectNETor
MODBUS master or slave
Port 2 Pin Descriptions (DL350 CPU)

Port 2 Pin Descriptions (Cont’d)

1
2
3
4
5
6
7
8
9
10
11
12
13

14
15
16
17
18
19
20
21
22
23
24
25

not used
TXD
Transmit Data (RS232C)
RXD
Receive Data (RS232C)
RTS
Ready to Send (RS--232C)
CTS
Clear to Send (RS--232C)
not used
0V
Power (--) connection (GND)
0V
Power (--) connection (GND)
RXD + Receive Data + (RS--422)
RXD -- Receive Data (RS--422)
CTS + Clear to Send + (RS422)
TXD + Transmit Data + (REMIO)
TXD -- Transmit Data -- (REMIO)

TXD +
not used
TXD -not used
RTS -RTS +
not used
not used
not used
CTS -RXD +
RXD --

Transmit Data + (RS--422
Transmit Data -- (RS--422)
Request to Send -- (RS--422)
Request to Send -- (RS--422)

Clear to Send -- (RS--422)
Receive Data + (REMIO)
Receive Data -- (REMIO)

DL350 User Manual, 2nd Edition

CPU Specifications
and Operation

1

3--5

3--6

CPU Specifications and Operation

Using Battery Backup
An optional lithium battery is available to maintain the system RAM retentive
memory when the DL305 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 shutdown 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 DirectSOFT to save the program,
V-memory, and system parameters to hard/floppy disk on a personal computer.

CPU Specifications
and Operation

To install the D2--BAT--1 CPU battery in the
DL350 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.

DL350

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

The battery can be enabled by setting bit 12 in V7633 (B7633.12) ON (see example
below). In this mode the battery Low LED will come on when the battery voltage is
less than 2.5VDC (SP43) and error E41 will occur. 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. See CPU Setup,
which is discussed later in this chapter.
If you have installed a battery, the battery circuit can be disabled by turning OFF
B7633.12. However, if you have a battery installed and select “No Battery”
operation, the battery LED will not turn on if the battery voltage is low.
SP0

LD
K1000
OUT
B7633.12

SP43

SP4

Y0
OUT
Battery Low Lamp

DL350 User Manual, 2nd Edition

This rung enables the
battery operation.

This rung will flash Y0 if
the battery gets low.

CPU Specifications and Operation

3--7

CPU Setup
Installing the CPU

The CPU must be installed in the first slot in the base (closest to the power supply).
You cannot install the CPU in any other slot. When inserting the CPU into the base,
align the PC board with the grooves on the top and bottom of the base. Push the CPU
straight into the base until it is firmly seated in the backplane connector.

CPU must reside in first slot!

WARNING: To minimize the risk of electrical shock, personal injury, or
equipment damage, always disconnect the system power before installing or
removing any system component.
The Handheld programmer is connected to the CPU with a handheld programmer
cable. You can connect the Handheld to port 1 on a DL350 CPU. The handheld
programmer is shipped with a cable. The cable is approximately 6.5 feet (200 cm).

Connect Handheld to Port 1

If you are using a Personal Computer with the DirectSOFT™ programming package,
you can use either the top or bottom port.

Connect PC to either Port

DL350 User Manual, 2nd Edition

CPU Specifications
and Operation

Connecting the
Programming
Devices

3--8

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 DirectSOFT™ or from the 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 DirectSOFT package. The following table shows a list of the
Auxiliary functions for the different CPUs and the Handheld Programmer. Note, the
Handheld Programmer may have additional AUX functions that are not supported
with the DL305 CPUs.
AUX Function and Description 350

HPP

CPU Specifications
and Operation

AUX 2* — RLL Operations

AUX Function and Description

350

HPP

AUX 6* — Handheld Programmer Configuration

21

Check Program



--

22

Change Reference



--

61

Show Revision Numbers



23

Clear Ladder Range



--

62

Beeper On / Off





24

Clear All Ladders



--

65

Run Self Diagnostics





AUX 3* — V-Memory Operations
31

Clear V Memory

AUX 7* — EEPROM Operations


--

71

Copy CPU memory to
HPP EEPROM





AUX 4* — I/O Configuration
41

Show I/O Configuration



--

72

Write HPP EEPROM to CPU





42

I/O Diagnostics



--

73





44

Power-up I/O Configuration Check



--

Compare CPU to
HPP EEPROM

74

Blank Check (HPP EEPROM)





45

Select Configuration



--

75

Erase HPP EEPROM





76

Show EEPROM Type
(CPU and HPP)





AUX 5* — CPU Configuration
51

Modify Program Name



--

52

Display / Change Calendar



--

53

Display Scan Time



--

54

Initialize Scratchpad



--

55

Set Watchdog Timer



--

56

Set CPU Network Address



--

57

Set Retentive Ranges



--

58

Test Operations



--

59

Bit Override



--

5B

Counter Interface Config.



--

5C

Display Error History



--

DL350 User Manual, 2nd Edition

AUX 8* — Password Operations
81

Modify Password



--

82

Unlock CPU



--

83

Lock CPU



--



supported



not supported

-- not applicable

CPU Specifications and Operation
Clearing an
Existing Program

Before you enter a new program, you should 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.
S
S
S

Setting the Clock
and Calendar

3--9

AUX 23 — Clear Ladder Range
AUX 24 — Clear all Ladders
AUX 31 — Clear V-Memory

The DL350 also has a Clock / Calendar that can be used for many purposes. If you
need to use this feature there are also AUX functions available that allow you set the
date and time. For example, you would use AUX 52, Display/Change Calendar to set
the time and date with the Handheld Programmer. With DirectSOFT you would use
the PLC Setup menu options using K--Sequence protocol only.
The CPU uses the following format to
display the date and time.
S Date — Year, Month, Date, Day of
week (0 -- 6, Sunday thru Saturday)
S Time — 24 hour format, Hours,
Minutes, Seconds

Handheld Programmer Display

23:08:17

97/05/20

Initializing System
Memory

The DL350 CPU maintains system parameters in a memory area 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.
AUX 54 resets the system memory to the default values.
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 change from
program to program 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 you that you have considered all ramifications of
this operation before you select it.

DL350 User Manual, 2nd Edition

CPU Specifications
and Operation

You can use the AUX function to change any component of the date or time.
However, the CPU will not automatically correct any discrepancy between the date
and the day of the week. For example, if you change the date to the 15th of the month
and the 15th is on a Thursday, you will also have to change the day of the week
(unless the CPU already shows the date as Thursday). The day of the week can only
be set using the handheld programmer.

3--10

CPU Specifications and Operation

Setting the CPU
Network Address

The DL350 CPU has a built in DirectNET port. You can use the Handheld
Programmer to set the network address for the port and the port communication
parameters. The default settings are:
S Station Address 1
S Hex Mode
S Odd Parity
S 9600 Baud
The DirectNET Manual provides additional information about choosing the
communication settings for network operation.

Setting Retentive
Memory Ranges

The DL350 CPU provides 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:
DL350

CPU Specifications
and Operation

Memory Area

Default Range

Avail. Range

Control Relays

C1000 -- C1777

C0 -- C1777

V--Memory

V1400 -- 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 DirectSOFT™
menus to select the retentive ranges.
WARNING: The DL350 CPU does 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.
Password
Protection

The DL350 CPU allows you to use a password to help minimize the risk of
unauthorized program and/or data changes. The DL350 offers multi--level
passwords for even more security. Once you enter a password you can “lock” the
CPU 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 CPUs 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 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.
For more information on passwords, see Appendix A, Auxiliary Functions, Aux 8* -Password Operations.
WARNING: Make sure you remember your password. If you forget your
password you will not be able to access the CPU. The CPU must be returned to
AutomationDirect to have the entire memory cleared in order to clear the
password which is the policy of the AutomationDirect.

DL350 User Manual, 2nd Edition

3--11

CPU Specifications and Operation

CPU Operation
Achieving the proper control for your equipment or process requires a good
understanding of how DL350 CPUs control all aspects of system operation. The flow
chart below shows the main tasks of the CPU operating system. In this section, we
will investigate four aspects of CPU operation:
S
S

S

S

At powerup, the CPU initializes the internal
electronic hardware. Memory initialization starts
with examining the retentive memory settings. In
general, the contents of retentive memory is
preserved, and non-retentive memory is initialized
to zero (unless otherwise specified).
After the one-time powerup tasks, the CPU begins
the cyclical scan activity. The flowchart to the right
shows how the tasks differ, based on the CPU mode
and the existence of any errors. The “scan time” is
defined as the average time around the task loop.
Note that the CPU is always reading the inputs,
even during program mode. This allows
programming tools to monitor input status at any
time.
The outputs are only updated in Run mode. In
program mode, they are in the off state.
In Run Mode, the CPU executes the user ladder
program. Immediately afterwards, any PID loops
which are configured are executed (DL350 only).
Then the CPU writes the output results of these two
tasks to the appropriate output points.
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 and the outputs go off.

Power up

Initialize hardware
Check I/O module
config. and verify
Initialize various memory
based on retentive
configuration

Update input
Read input data from
Specialty and Remote I/O
Service peripheral

CPU Specifications
and Operation

CPU Operating
System

CPU Operating System — the CPU manages
all aspects of system control.
CPU Operating Modes — The three primary
modes of operation are Program Mode, Run
Mode, and Test Mode.
CPU Timing — The two important areas we
discuss are the I/O response time and the
CPU scan time.
CPU Memory Map — The CPUs memory map
shows the CPU addresses of various system
resources, such as timers, counters, inputs,
and outputs.

CPU Bus Communication

Update Clock / Calendar

PGM

Mode?
RUN
Execute ladder program

PID Operations (DL350)

Update output
Write output data to
Specialty and Remote I/O

Do diagnostics

OK
OK?

YES

NO
Report the error, set flag,
register, turn on LED

Fatal error
YES
Force CPU into
PGM mode

DL350 User Manual, 2nd Edition

NO

3--12

CPU Specifications and Operation

Program Mode
Operation

In Program Mode the CPU does not
execute the application program or update
the output modules. The primary use for
Program Mode is to enter or change an
application program. You also use the
program mode to set up CPU parameters,
such as the network address, retentive
memory areas, etc.

Download Program

You can use the mode switch on the DL350 CPU to select Program Mode operation.
Or, with the switch in TERM position, you can use a programming device such as the
Handheld Programmer to place the CPU in Program Mode.

CPU Specifications
and Operation

Run Mode
Operation

In Run Mode, the CPU executes the
application
program,
does
PID
calculations for configured PID loops
(DL350 only), and updates the I/O system.
You can perform many operations during
Run Mode. Some of these include:
S Monitor and change I/O point status
S Update timer/counter preset values
S Update Variable memory locations

Read Inputs
Read Inputs from Specialty I/O
Service Peripherals, Force I/O
CPU Bus Communication
Update Clock, Special Relays

Run Mode operation can be divided into
several key areas. It is very important you
understand how each of these areas of
execution can affect the results of your
application program solutions.
You can use the mode switch to select Run
Mode operation. Or, with the mode switch
in TERM position, you can use a
programming device, such as the
Handheld Programmer to place the CPU
in Run Mode.

Solve the Application Program
Solve PID Equations (DL350)
Write Outputs
Write Outputs to Specialty I/O
Diagnostics

You can also edit the program during Run Mode. The Run Mode Edits are not
“bumpless”. Instead, the CPU maintains the outputs in their last state while it accepts
the new program information. If an error is found in the new program, then the CPU
will turn all the outputs off and enter the Program Mode.
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.

DL350 User Manual, 2nd Edition

CPU Specifications and Operation

3--13

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 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 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.

Read Inputs from
Specialty and
Remote I/O

After the CPU reads the inputs from the
input modules, it reads any input point
data from any Specialty modules that are
installed. This is also the portion of the
scan that reads the input status from
Remote I/O racks.
DL205

DL305

RSSS

_

_

_

Service Peripherals 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
and Force I/O
devices. For example, it would read a programming device to see if any input, output,
or other memory type status needs to be modified.
S Forcing from a peripheral -- not a permanent force, good only for one
scan
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.
Update Clock,
The DL350 CPUs has an internal real-time clock and calendar timer which is
accessible to the application program. Special V-memory locations hold this
Special Relays,
information. This portion of the execution cycle makes sure these locations get
and Special
updated on every scan. Also, there are several different Special Relays, such as
Registers
diagnostic relays, etc., that are also updated during this segment.

DL350 User Manual, 2nd Edition

CPU Specifications
and Operation

NOTE: It may appear the Remote I/O point status is updated every scan. This is not
quite true. The CPU will receive information from the Remote I/O Master module
every scan, but the Remote Master may not have received an update from all the
Remote slaves. Remember, the Remote I/O link is managed by the Remote Master,
not the CPU.

3--14

CPU Specifications and Operation

Solve Application
Program

The CPU evaluates each instruction in the
application program during this segment
of the scan cycle. The instructions define
the relationship between input conditions
and the system outputs.
The CPU begins with the first rung of the
ladder program, evaluating it from left to
right and from top to bottom. It continues,
rung by rung, until it encounters the END
coil instruction. At that point, a new image
for the outputs is complete.
X0

X1

Y0
OUT

C0

CPU Specifications
and Operation

Read Inputs from Specialty I/O
Service Peripherals, Force I/O
CPU Bus Communication
Update Clock, Special Relays
Solve the Application Program
Solve PID equations (DL350)

C100
X5

Read Inputs

LD
X10

K10

Write Outputs

Y3
OUT

Write Outputs to Specialty I/O

END

Diagnostics

The internal control relays (C), the stages (S), and the variable memory (V) are also
updated in this segment.
You may recall the CPU may have obtained and stored forcing information when it
serviced the peripheral devices. If any I/O points or memory data have been forced,
the output image register also contains this information.
NOTE: If an output point was used in the application program, the results of the
program solution will overwrite any forcing information that was stored. For example,
if Y0 was forced on by the programming device, and a rung containing Y0 was
evaluated such that Y0 should be turned off, then the output image register will show
that Y0 should be off. Of course, you can force output points that are not used in the
application program. In this case, the point remains forced because there is no
solution that results from the application program execution.
Solve PID
Loop Equations

The DL350 CPU can process up to 4 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.

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 located in the local CPU base or the local expansion
bases. Remember, the CPU also made sure any forcing operation changes were
stored in the output image register, so the forced points get updated with the status
specified earlier.

DL350 User Manual, 2nd Edition

CPU Specifications and Operation
Write Outputs to
Specialty and
Remote I/O

3--15

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. For example, this is the portion of the scan that writes the output status
from the image register to the Remote I/O racks.
NOTE: It may appear the Remote I/O point status is updated every scan. This is not
quite true. The CPU will send the information to the Remote I/O Master module every
scan, but the Remote Master will update the actual remote modules during the next
communication sequence between the master and slave modules. Remember, the
Remote I/O link communication is managed by the Remote Master, not the CPU.

Diagnostics

Read Inputs
Read Inputs from Specialty I/O
Service Peripherals, Force I/O
CPU Bus Communication
Update Clock, Special Relays
Solve the Application Program
Solve PID Loop Equations
Write Outputs
Write Outputs to Specialty I/O
Diagnostics

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. There is also an RSTWT
instruction that can be used in the application program to reset the watch dog timer
during the CPU scan.

DL350 User Manual, 2nd Edition

CPU Specifications
and Operation

During this part of the scan, the CPU
performs all system diagnostics and other
tasks, such as:
S calculating the scan time
S updating special relays
S resetting the watchdog timer
The DL350 CPU automatically detects
and reports many different error
conditions. Appendix B contains a listing
of the various error codes available with
the DL305 system.
One of the more important diagnostic
tasks is the scan time calculation and
watchdog timer control. The DL350 CPU
has a “watchdog” timer that stores the
maximum time allowed for the CPU to
complete the solve application segment of
the scan cycle. The default value set from
the factory is 200 mS. If this time is
exceeded the CPU will enter the Program
Mode, turn off all outputs, and report the
error. For example, the Handheld
Programmer displays “E003 S/W
TIMEOUT” when the scan overrun occurs.

3--16

CPU Specifications and Operation

I/O Response Time
Is Timing Important 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
for Your
applications, the CPU performs this task practically instantaneously. However,
Application?
some applications do require extremely fast update times. There are four things that
can affect the I/O response time:

Normal Minimum
I/O Response

S

The point in the scan period when the field input changes states

S

Input module Off to On delay time

S

CPU scan time

S

Output module Off to On delay time

The I/O response time is shortest when the module senses the input change 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.

CPU Specifications
and Operation

Scan
Scan

Solve
Program

Solve
Program
Read
Inputs

Solve
Program

Solve
Program

Write
Outputs

Field Input

Input Module
Off/On Delay

CPU Reads
Inputs

CPU Writes
Outputs

Output Module
Off/On Delay
I/O Response Time

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 module senses the input change after the
Read Inputs portion of the execution cycle. In this case the new input status does not
get read until the following scan. The following diagram shows an example of the
timing for this situation.
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

DL350 User Manual, 2nd Edition

CPU Specifications and Operation

3--17

Scan
Scan

Solve
Program

Solve
Program
Read
Inputs

Solve
Program

Solve
Program

Write
Outputs

Field Input
CPU Reads
Inputs

Input Module
Off/On Delay

CPU Writes
Outputs

Output Module
Off/On Delay
I/O Response Time

Improving
Response Time

Scan
Scan

Solve
Program

Solve
Program
Normal Read
Input

Read
Input
Immediate

Solve
Program
Write
Output
Immediate

Solve
Program

Normal
Write
Outputs

Field Input
Input Module
Off/On Delay
Output Module
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 is calculated by adding the time for the immediate
input instruction, the immediate output instruction, and all instructions in between.
NOTE: When the immediate instruction reads the current status from a module, it
uses the results to solve that one instruction without updating the image register.
Therefore, any regular instructions that follow will still use image register values. Any
immediate instructions that follow will access the module again to update the status.

DL350 User Manual, 2nd Edition

CPU Specifications
and Operation

There are a few things you can do the help improve throughput.
S Choose instructions with faster execution times
S Use immediate I/O instructions (which update the I/O points during the
ladder program execution segment)
S Choose modules that have faster response times
Immediate I/O instructions are probably the most useful technique. The following
example shows immediate input and output instructions, and their effect.

3--18

CPU Specifications and Operation

CPU Specifications
and Operation

CPU Scan Time Considerations
The scan time covers all the cyclical
tasks that are performed by the operating
system. You can use DirectSOFT or the
Handheld Programmer to display the
minimum, maximum, and current scan
times that have occurred since the
previous Program Mode to Run Mode
transition. This information can be very
important
when
evaluating
the
performance of a system.
As 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 only one you really
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
time to execute. So, if you think you need
a faster scan, then you can try to choose
faster instructions.
Your choice of I/O modules and system
configuration, such as expansion or
remote I/O, can also affect the scan time.
However, these things are usually
dictated by the application.
For example, if you have a need to count
pulses at high rates of speed, then you’ll
probably have to use a High-Speed
Counter module. Also, if you have I/O
points that need to be located several
hundred feet from the CPU, then you
need remote I/O because it’s much faster
and cheaper to install a single remote I/O
cable than it is to run all those signal
wires for each individual I/O point.
The following paragraphs provide some
general information on how much time
some of the segments can require.

Power up

Initialize hardware
Check I/O module
config. and verify
Initialize various memory
based on retentive
configuration

Update input
Read input data from
Specialty and Remote I/O
Service peripheral

CPU Bus Communication

Update Clock / Calendar

PGM

Mode?
RUN
Execute ladder program

PID Equations (DL350)

Update output
Write output data to
Specialty and Remote I/O

Do diagnostics

OK
OK?
NO
Report the error, set flag,
register, turn on LED

Fatal error
YES
Force CPU into
PGM mode

DL350 User Manual, 2nd Edition

YES

NO

CPU Specifications and Operation
Intialization
Process

3--19

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 Service Request

DL350

Minimum

1.2 μs

Maximum

1.5-- μs

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)
Nothing
Connected
Port 1
Port 2

Min. & Max.

0 μs

Send Min. / Max.

6.8/12.6 μs

Rec. Min. / Max.

9.2/972 ms

Send Min. / Max.

6.8/12.6 μs

Rec. Min. / Max.

9.2/972 ms

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.
NOTE: Some specialty modules can have a considerable impact on the CPU scan
time. If timing is critical in your application, consult the module documentation for any
information concerning the impact on the scan time.

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
Program Mode
Run Mode

Diagnostics

DL350

Minimum

79.0 μs

Maximum

79.0 μs

Minimum

79.0 μs

Maximum

79.0 μs

The DL305 CPUs perform many types of system diagnostics. The amount of time
required depends on many things, such as the number of I/O modules installed, etc.
The following table shows the minimum and maximum times that can be expected.
Diagnostic Time

DL350

Minimum

104.0 μs

Maximum

139.6 μs

DL350 User Manual, 2nd Edition

CPU Specifications
and Operation

CPU Bus
Communication

DL350

3--20

CPU Specifications and Operation

CPU Specifications
and Operation

The CPU processes the program from the
Application
Program Execution top (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.
You can add the execution times for all the
instructions in your program to find the
total program execution time.
For example, the execution time for a
DL350 running the program shown would
be calculated as follows.
Instruction

Time

STR X0
OR C0
ANDN X1
OUT Y0
STRN C100
LD K10
STRN C101
OUT V2002
STRN C102
LD K50
STRN C103
OUT V2006
STR X5
ANDN X10
OUT Y3
END

1.4μs
1.0μs
1.2μs
7.95μs
1.6μs
62μs
1.6μs
21.0μs
1.6μs
62μs
1.6μs
21.0μs
1.4μs
1.2μs
7.95μs
16μs

TOTAL

X0

X1

Y0
OUT

C0

C100

LD

C101

OUT
V2002

C102

LD

C103

X5

K10

K50

OUT
V2006
X10

Y3
OUT

END

210.5μs

Appendix C provides a complete list of instruction execution times for the DL350
CPU.
Program Control Instructions — the DL350 CPU offers 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 effect the program execution time. Chapter 5 provides
detailed information on how these different types of instructions operate.

DL350 User Manual, 2nd Edition

3--21

CPU Specifications and Operation

PLC Numbering Systems
If you are a new PLC user or are using octal
49.832
binary
AutomationDirect PLCs for the first time,
?
1482 BCD
please take a moment to study how our
?
0402 ?
? 3
PLCs use numbers. You will find that each
3A9
ASCII
PLC manufacturer has their own
7
conventions on the use of numbers in their
hexadecimal
PLCs. Take a moment to familiarize 1001011011
1011
--961428
yourself with how numbers are used in
?
decimal
AutomationDirect
PLCs.
The
A
72B
information you learn here applies to all
?
177
--300124
our PLCs!

?

Octal means simply counting in groups of
eight things 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”
means 1 group of 8 plus 0 (no individuals).

Decimal 1 2 3 4 5 6 7 8
Octal

1 2 3 4 5 6 7 10

In the figure below, ther are two groups of eight circles. Counting in octal ther are “20”
items, meaning 2 groups of eight, plus 0 individuals Avoid saying “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

5

6

7 10

11 12 13 14 15 16 17 20

1

2 3 4

After counting PLC resources, it’s time to access PLC resources (there is 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.
The circles are in an array of square
containers to the right. To access a
resource, the PLC instruction will address
its location using the octal references
shown. If these were counters, “CT14”
would access the black circle location.

X= 0

1

2 3

4

X
1X
2X

DL350 User Manual, 2nd Edition

5

6

7

CPU Specifications
and Operation

PLC Resources

PLCs store and manipulate numbers in binary form: ones and zeros. So why do we
have 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 (see Appendix I for numbering system
details).
PLCs offer a fixed amount of resources, depending on the model and configuration.
The word “resources” includes 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.

3--22

CPU Specifications and Operation

V--Memory

Variable memory (called “V-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. The word
“significant”, refers to the relative binary weighting of the bits.
V-memory address
(octal)

MSB

CPU Specifications
and Operation

LSB

0 1 0 0 1 1 1 0 0 0 1 0 1 0 0 1

V2017

Binary-Coded
Decimal Numbers

V-memory data
(binary)

V-memory data is 16-bit binary, but the data registers are rarely programmmed one
bit at a time. Instructions or viewing tools work with binary, decimal, octal, and
hexadecimal numbers. All of these are converted and stored as binary for us.
A frequently-asked question is “How do I tell if a number is binary, octal, BCD, or
hex”? The answer is that we usually cannot tell 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 a storage box...
that’s all. It does not convert or move the data on its own.
Since humans naturally count in decimal, we prefer to enter and view PLC data in
decimal as well (via operator interfaces). 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.

4

BCD number
8

V-memory storage

4

9
2

1

0 1 0 0

8

4

3
2

1

1 0 0 1

8

4

6
2

1

0 0 1 1

8

4

2

1

0 1 1 0

In a pure binary sense, a 16-bit word represents numbers from 0 to 65535. In storing
BCD numbers, the range is reduced to 0 to 9999. Many math instructions use BCD
data, and DirectSOFT and the handheld programmer allow us to enter and view
data in BCD. Special RLL instructions convert from BCD to binary, or visa--versa.
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
Hexadecimal

0 1 2 3
0 1 2 3

4 5
4 5

6
6

7
7

8 9 10 11 12 13 14 15
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 a convenient way for humans to view full binary data.
Hexadecimal number
V-memory storage

DL350 User Manual, 2nd Edition

A

7

F

4

1 0 1 0

0 1 1 1

1 1 1 1

0 1 0 0

3--23

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 the DL350 CPU. A memory map overview
follows the memory descriptions.
Octal Numbering
System

All memory locations or areas are
numbered in Octal (base 8). For
example, the diagram shows how the
octal numbering system works for the
discrete input points. Notice the octal
system does not contain any numbers
with the digits 8 or 9.
X0

Y40

X20

X0

Y57

X37

X17

X1

X2

X3

X4

X5

X6

X7

Discrete and Word
Locations

V--Memory
Locations for
Discrete Memory
Areas

As you examine the different memory
types, you’ll notice two types of memory
in the DL350, discrete and word memory.
Discrete memory is one bit that can be
either a 1 or a 0. Word memory is referred
to as V--memory (variable) and is a 16-bit
location normally used to manipulate
data/numbers, store data/numbers, etc.
Some information is automatically stored
in V--memory. For example, the timer
current values are stored in V--memory.

Discrete -- On or Off, 1 bit
X0

Word Locations -- 16 bits
0 1 0 1 00 0 0 0 0 1 0 0 1 0 1

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.
16 Discrete (X) Input Points
X17 X16 X15 X14 X13 X12 X11 X10

Bit # 15

14

13

12

11

10

9

8

X7

X6

X5

X4

X3

X2

X1

X0

7

6

5

4

3

2

1

0

V40400

These discrete memory areas and their corresponding V memory ranges are listed
in the memory area table for the DL350 CPU in this chapter.

DL350 User Manual, 2nd Edition

CPU Specifications
and Operation

X10 X11 X12 X13 X14 X15 X16 X17

3--24

CPU Specifications and Operation

Input Points
(X Data Type)

Output Points
(Y Data Type)

CPU Specifications
and Operation

Control Relays
(C Data Type)

Timers and
Timer Status Bits
(T Data type)

The discrete input points are noted by an
X data type. There are up to 512 discrete
input points available with the DL350
CPU. In this example, the output point Y0
will be turned on when input X0
energizes.
The discrete output points are noted by a
Y data type. There are up to 512 discrete
output points available with the DL350
CPU. In this example, output point Y1 will
turn on when input X1 energizes.
Control relays are discrete bits normally
used to control the user program. The
control relays do not represent a real
world device, that is, they cannot be
physically tied to switches, output coils,
etc. They are internal to the CPU. Control
relays can be programmed as discrete
inputs or discrete outputs. These
locations are used in programming the
discrete memory locations (C) or the
corresponding word location which has
16 consecutive discrete locations.
In this example, memory location C5 will
energize when input X10 turns on. The
second rung shows a simple example of
how to use a control relay as an input.
The amount of timers available depends
on the model of CPU you are using. The
tables at the end of this section provide
the number of timers for the DL350.
Regardless of the number of timers, you
have access to timer status bits that
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 value of a
corresponding timer.
When input X0 turns on, timer T1 will
start. When the timer reaches the preset
of 3 seconds (K of 30) timer status
contact T1 turns on. When T1 turns on,
output Y12 turns on.

DL350 User Manual, 2nd Edition

X0

Y0
OUT

X1

Y1
OUT

X10

C5
OUT

C5

Y10
OUT
Y20
OUT

X0

T1

TMR

K30

T1

Y12
OUT

3--25

CPU Specifications and Operation
Timer Current
Values
(V Data Type)

Counters and
Counter Status
Bits
(CT Data type)

The amount of counters available
depends on the model of CPU you are
using. The tables at the end of this
section provide the number of counters
for the DL350. Regardless of the number
of counters, you have access to 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 current
value is equal to or greater than the
preset value of a corresponding counter.
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 preset of
10 counts (K of 10) counter status
contact CT3 turns on. When CT3 turns
on, output Y12 turns on.

Like the timers, the counter current
values are also automatically stored in
V--memory. For example, V1000 holds
the current value for Counter CT0,
V1001 holds the current value for
Counter CT1, etc.
The primary reason for this is
programming flexibility. The example
shows how you can use relational
contacts to monitor the counter values.

X0

TMR
T1
K1000

V1

K30

Y12
OUT

V1

K50

Y13
OUT

V1

K75

V1

X0

K100

CNT

K10

Y14
OUT

CT3

X1

CT3

Y12
OUT

X0

CNT

K10

CT3

X1

V1003

K1

Y12
OUT

V1003

K3

Y13
OUT

V1003

K5

V1003

K8

DL350 User Manual, 2nd Edition

Y14
OUT

CPU Specifications
and Operation

Counter Current
Values
(V Data Type)

As mentioned earlier, some information
is automatically stored in V--memory.
This is true for the current values
associated with timers. For example, V0
holds the current value for Timer 0, V1
holds the current value for Timer 1, etc.
The primary reason for this is
programming flexibility. The example
shows how you can use relational
contacts to monitor several time intervals
from a single timer.

3--26

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 manipulate
data/numbers, store data/numbers, etc.
Some information is automatically stored
in V--memory. For example, the timer
current values are 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.

X0

LD

OUT

CPU Specifications
and Operation
Special Relays
(SP Data Type)

Stages are used in RLL PLUS programs to
create a structured program, similar to a
flowchart. Each program Stage denotes
a program segment. When the program
segment, or Stage, is active, the logic
within that segment is executed. If the
Stage is off, or inactive, the logic is not
executed and the CPU skips to the next
active Stage. See Chapter 7 for a more
detailed
description
of
RLL PLUS
programming.
Each Stage also has a discrete status bit
that can be used as an input to indicate
whether the Stage is active or inactive. If
the Stage is active, then the status bit is
on. If the Stage is inactive, then the status
bit is off. This status bit can also be turned
on or off by other instructions, such as the
SET or RESET instructions. This allows
you to easily control stages throughout
the program.
Special relays are discrete memory
locations with pre-defined functionality.
There are many different 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 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.

DL350 User Manual, 2nd Edition

V2000

Word Locations -- 16 bits

1

Stages
(S Data type)

K1345

3

4

5

Ladder Representation
ISG
S0000

Wait forStart
Start
X0

S1
JMP
S500
JMP

SG

S0001

Check for a Part
Part Present
X1

S2
JMP

Part Present
X1

SG

S0002

S6
JMP

Clamp the part
Clamp
SET
S400
S3
JMP

Part Locked
X2

SP5

C10
OUT

SP4: 1 second clock
SP5: 100 ms clock
SP6: 50 ms clock

CPU Specifications and Operation

3--27

DL350 System V-memory
System
V-memory
V7620--V7627

Description of Contents

Default Values / Ranges

Locations for DV--1000 operator interface parameters

V7620 Sets the V-memory location that contains the value.

V0 -- V3777

V7621 Sets the V-memory location that contains the message.

V0 -- V3777

V7622 Sets the total number (1 -- 16) of V-memory locations to be displayed.

1 -- 16

V7623 Sets the V-memory location that contains the numbers to be displayed.

V0 -- V3777

V7624 Sets the V-memory location that contains the character code to be displayed.

V0 -- V3777

V7625 Contains the function number that can be assigned to each key.

V-memory for X, Y, or C

V7626 Reserved

0,1,2,3,12

V7627 Reserved

Default=0000

Reserved

--

V7633

User defined timer interrupt/operation of battery/Binary instruction sign flag*
Bit 0--7
40H Setting Interrupt
Bit 12
ON with battery sign flag. ON use sign flag -OFF no sign flag
Bit 15
Binary instruction sign flag. ON use sign flag -OFF no sign flag

V7634

User defined timer interrupt

V7640

Loop Table Beginning address

V1400--V7340

V7641

Number of Loops Enabled

1--4

V7642

Error Code -- V--memory Error Location for Loop Table

V7643--V7647

Reserved

V7650

Port 2 End--code setting Setting (A55A), Nonprocedure communications start.

V7651

Port 2 Data format --Non--procedure communications format setting.

V7652

Port 2 Format Type setting -- Non--procedure communications type code
setting.

V7653

Port 2 Terminate--code setting -- Non--procedure communications Termination
code setting.

V7654

Port 2 Store V--mem address -- Non--procedure communication data store
V--Memory address.

V7655

Port 2 Setup area --0--7 Comm protocol (flag 0) 8--15 Comm time
out/response delay time (flag 1)

V7656

Port 2 setup area -- 0--15 Communication (flag2, flag 3)

V7657

Port 2 setup area -- Bit to select use of parameter

V7660--V7707

Set--up Information

V7710--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
V7730--V7737

For slot 0 to 7 D3--DCM

V7747

Location contains a 10ms counter. This location increments once every 10ms.

V7750

Reserved

DL350 User Manual, 2nd Edition

CPU Specifications
and Operation

V7630--V7632

3--28

CPU Specifications and Operation

CPU Specifications
and Operation

System
V-memory

Description of Contents

V7751

Fault Message Error Code — stores the 4-digit code used with the FAULT instruction when the
instruction is executed.

V7752

Reserved

V7753

Reserved

V7754

Reserved

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--V7764

Location for syntax error information.

V7765

Scan — 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 to 59).

V7767

Contains the number of minutes on the clock. (00 to 59).

V7770

Contains the number of hours on the clock. (00 to 23).

V7771

Contains the day of the week. (Mon, Tue, etc.).

V7772

Contains the day of the month (1st, 2nd, 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 Program Mode to Run Mode
transition (milliseconds).

V7777

Scan — stores the maximum scan time that has occurred since the last Program Mode to Run Mode
transition (milliseconds).

The following system control relays are valid only for D3--350 CPU remote I/O setup
on Communications Port 2.
System CRs

Description of Contents

C740

Completion of setups -- ladder logic must turn this relay on when it has finished writing to
the Remote I/O setup table

C741

Erase received data -- turning on this flag will erase the received data during a communication error.

C743

Re-start -- Turning on this relay will resume after a communications hang-up on an error.

C750 to C757

Setup Error -- The corresponding relay will be ON if the setup table contains an error (C750
= master, C751 = slave 1... C757=slave 7

C760 to C767

Communications Ready -- The corresponding relay will be ON if the setup table data is valid
(C760 = master, C761 = slave 1... C767=slave 7

DL350 User Manual, 2nd Edition

CPU Specifications and Operation

3--29

DL350 Memory
Map
Memory Type

Discrete Memory
Reference
(octal)

Word Memory
Reference
(octal)

Qty.
Decimal

Symbol

Input Points

X0 -- X777

V40400 -- V40437

512

X0

Output Points

Y0 -- Y777

V40500 -- V40537

512

Y0

Control Relays

C0 -- C1777

V40600 -- V40677

1024

Special Relays

SP0 -- SP777

V41200 -- V41237

512

Timer Current
Values

None

V0 -- V377

256

Timer Status Bits T0 -- T377

V41100 -- V41117

256

Counter
Current Values

None

V1000 -- V1177

128

Counter Status
Bits

CT0 -- CT177

V41140 -- V41147

128

Data Words

none

V1400 -- V7377
V10000--V17777

3072
4096

Stages

S0 -- S1777

V41000 -- V41077

1024

None

V7400--V7777

256

C0
SP0

V0

K100

CPU Specifications
and Operation

System
parameters

C0

T0

V1000

K100

CT0

None specific, used with many
instructions
SG

S0
S 001

System specific, used for various
purposes

DL350 User Manual, 2nd Edition

3--30

CPU Specifications and Operation

DL350 Aliases
An alias is an alternate way of referring to certain memory types, such as
timer/counter current values, V--memory locations for I/O points, etc., which
simplifies understanding the memory address. The use of the alias is optional, but
some users may find the alias to be helpful when developing a program. The table
below shows how the aliases can be used to reference memory locations.
Address Start

Alias Start

V0

TA0

V1000

CTA0

V1000 is the counter accumulator value for counter 0,
therefore, it’s alias is CTA0. CTA1 is the alias for V1001, etc.

VGX

V40000 is the word memory reference for discrete bits GX0
through GX17, therefore, it’s alias is VGX0. V40001 is the word
memory reference for discrete bits GX20 through GX 37,
therefore, it’s alias is VGX20.

VGY

V40200 is the word memory reference for discrete bits GY0
through GY17, therefore, it’s alias is VGY0. V40201 is the word
memory reference for discrete bits GY20 through GY 37,
therefore, it’s alias is VGY20.

VX0

V40400 is the word memory reference for discrete bits X0
through X17, therefore, it’s alias is VX0. V40401 is the word
memory reference for discrete bits X20 through X37, therefore,
it’s alias is VX20.

VY0

V40500 is the word memory reference for discrete bits Y0
through Y17, therefore, it’s alias is VY0. V40501 is the word
memory reference for discrete bits Y20 through Y37, therefore,
it’s alias is VY20.

VC0

V40600 is the word memory reference for discrete bits C0
through C17, therefore, it’s alias is VC0. V40601 is the word
memory reference for discrete bits C20 through C37, therefore,
it’s alias is VC20.

VS0

V41000 is the word memory reference for discrete bits S0
through S17, therefore, it’s alias is VS0. V41001 is the word
memory reference for discrete bits S20 through S37, therefore,
it’s alias is VS20.

VT0

V41100 is the word memory reference for discrete bits T0
through T17, therefore, it’s alias is VT0. V41101 is the word
memory reference for discrete bits T20 through T37, therefore,
it’s alias is VT20.

VCT0

V41140 is the word memory reference for discrete bits CT0
through CT17, therefore, it’s alias is VCT0. V41141 is the word
memory reference for discrete bits CT20 through CT37,
therefore, it’s alias is VCT20.

VSP0

V41200 is the word memory reference for discrete bits SP0
through SP17, therefore, it’s alias is VSP0. V41201 is the word
memory reference for discrete bits SP20 through SP37,
therefore, it’s alias is VSP20.

V40000

CPU Specifications
and Operation

V40200

V40400

V40500

V40600

V41000

V41100

V41140

V41200

DL350 User Manual, 2nd Edition

Example
V0 is the timer accumulator value for timer 0, therefore, it’s
alias is TA0. TA1 is the alias for V1, etc..

CPU Specifications and Operation

3--31

X Input / Y Output Bit Map
This table provides a listing of the individual Input points associated with each V-memory address bit.
MSB

DL350 Input (X) and Output (Y) Points

LSB

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

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
517

476
516

475
515

474
514

473
513

472
512

471
511

470
510

467
507

466
506

465
505

464
504

463
503

462
502

461
501

460
500

V40423
V40424

V40523
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

DL350 User Manual, 2nd Edition

Y Output
Address

CPU Specifications
and Operation

15

X Input
Address

3--32

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.

CPU Specifications
and Operation

MSB

DL350 Control Relays (C)

LSB

Address

15

14

13

12

11

10

9

8

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

DL350 User Manual, 2nd Edition

CPU Specifications and Operation

MSB
15

Additional DL350 Control Relays (C)
14

13

12

11

10

1017 1016 1015 1014 1013 1012

9
1011

8

7

6

5

LSB
4

3

2

1

0

3--33
Address

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

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

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

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

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

1311

1411

1511

1611

1710 1707 1706 1705

1704 1703

1702 1701 1700

V40674

1737 1736 1735 1734 1733 1732 1731 1730 1727 1726 1725

1711

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

DL350 User Manual, 2nd Edition

CPU Specifications
and Operation

1010 1007 1006 1005

3--34

CPU Specifications and Operation

Staget Control / Status Bit Map
This table provides a listing of the individual Staget control bits associated with each V-memory address.

CPU Specifications
and Operation

MSB

DL350 Stage (S) Control Bits

LSB

Address

15

14

13

12

11

10

9

8

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

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

DL350 User Manual, 2nd Edition

CPU Specifications and Operation

MSB
15

DL350 Additional Stage (S) Control Bits (continued)
14

13

12

11

10

1017 1016 1015 1014 1013 1012

9
1011

8

7

6

5

4

LSB
3

2

1

0

3--35
Address

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

1116

1115

1114

1113

1112

1111

1110

1107

1106

1105

1104

1103

1102

1101

1100

V41044

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

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

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

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

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

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

1311

1411

1511

1611

1711

DL350 User Manual, 2nd Edition

CPU Specifications
and Operation

1117
1137

3--36

CPU Specifications and Operation

Timer and Counter Status Bit Maps
This table provides a listing of the individual timer and counter contacts associated with each V-memory
address bit.
MSB

DL350 Timer (T) and Counter (CT) Contacts

LSB

Timer

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

Address

Counter
Address

017

016

015

014

013

012

011

010

007

006

005

004

003

002

001

000

V41100

V41140

037

036

035

034

033

032

031

030

027

026

025

024

023

022

021

020

V41101

V41141

057

056

055

054

053

052

051

050

047

046

045

044

043

042

041

040

V41102

V41142

077

076

075

074

073

072

071

070

067

066

065

064

063

062

061

060

V41103

V41143

117

116

115

114

113

112

111

110

107

106

105

104

103

102

101

100

V41104

V41144

137

136

135

134

133

132

131

130

127

126

125

124

123

122

121

120

V41105

V41145

157

156

155

154

153

152

151

150

147

146

145

144

143

142

141

140

V41106

V41146

177

176

175

174

173

172

171

170

167

166

165

164

163

162

161

160

V41107

V41147

This portion of the table shows additional Timer contacts available with the DL350.

CPU Specifications
and Operation

MSB

DL350 Additional Timer (T) Contacts

LSB

Timer

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

Address

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

DL350 User Manual, 2nd Edition

System Design and
Configuration

14

In This Chapter. . . .
— DL305 System Design Strategies
— Module Placement
— Calculating the Power Budget
— Expansion I/O
— Remote I/O
— Network Connections to MODBUS and DirectNET
— Network Slave Operation
— Network Master Operation

4--2

System Design and Configuration

DL305 System Design Strategies
I/O System
Configurations

The DL350 CPU offers the following ways to add I/O to the system:
S Local I/O -- consists of I/O modules located in the same base as the CPU.
S Remote I/O -- consists of I/O modules located in bases which are serially
connected to the bottom port on a DL350 CPU.
S Expansion I/O -- consists of I/O modules located in expansion bases
located close to the local base. Expansion cables connect them to the local
CPU base’s serial bus in a daisy--chain fashion.
A DL305 system can be developed using many different arrangements of these
configurations. All I/O configurations use the standard complement of DL305 I/O
modules and bases.

Networking
Configurations

The DL350 CPU offers the following way to add networking to the system:
S DL350 Communications Port -- The DL350 CPU has a 25--Pin
connector on Port 2 that provides a built--in RTU MODBUS connection.
S MODBUS Master Module-- MODBUS master modules can be used in
any slot for connecting as a master to a MODBUS network.
S MODBUS Slave Module-- MODBUS slave modules can be used in any
slot for connecting as a slave to a MODBUS network.
Module/Unit

System Design
and Configuration

DL350 CPU

Base
Configurations

Master
DirectNET
MODBUS RTU

Slave
DirectNET
K--Sequence
MODBUS RTU

The DL305 system currently offers two types of bases. Both types come in 5, 8, or 10
slot configurations. All DL305 CPUs will work in either type of base. The xxxxx--1
bases are designed to compliment the features of the DL350 CPU, however all other
DL305 CPUs will work in these bases. You can also mix the bases in a system. By
mixing the bases or by installing the DL350 in an conventional base, you will loose
some of the features of the CPU. The DL350 will revert back to 8--bit addressing and
will virtually function like a DL340 CPU. This section will focus on the xxxxx--1 bases
using the DL350 CPU. If you will be using the DL350 in a conventional base or if you
are mixing bases in a system, refer to Appendix F for base, I/O, and module
placement information.
The xxxxx--1 bases support a 8 bit parallel bus that allows the use of intelligent
modules when using the DL350 CPU. The addressing scheme is simplified and also
extends the number of I/O points you can use. You will have a bigger power budget to
work with due to the increase in the power supply capacity to 2.0A.

DL350 User Manual, 2nd Edition

System Design and Configuration

4--3

Module Placement
Slot Numbering

The DL305 bases each provide different numbers of slots for use with the I/O
modules. You may notice the bases refer to 5-slot, 8-slot, etc. One of the slots is
dedicated to the CPU, so you always have one less I/O slot. For example, you have
four I/O slots with a 5-slot base. The I/O slots are numbered 0 -- 3. The CPU slot
always contains a CPU and is not numbered.
The examples below show the I/O numbering for a 5 slot local CPU base with 8 point
I/O and a 5 slot local CPU base with 16 point I/O.
5 Slot Base Using 8 Point I/O Modules
5 Slot Base Using 16 Point I/O Modules
060
to
067

040
to
047

Slot Number: 3 2
I/O Module
Placement Rules

020
to
027

000
to
007

C
P
U

DL305

070
to
077

020
to
027

000
to
007

050 030 010
to
to
to
057 037 017

Slot Number: 3 2

1 0

C
P
U

DL305

1 0

There are some limitations that determine where you can place certain types of
modules. Some modules require certain locations and may limit the number or
placement of other modules. The table on pages 4-6 and 4-7 should clear up any
gray areas in the explanation and you will probably find the configuration you intend
to use in your installation.
In all of the configurations mentioned the number of slots from the CPU that are to be
used can roll over into an expansion base if necessary. For example if a rule states a
module must reside in one of the six slots adjacent to the CPU, and the system
configuration is comprised of two 5 slot bases, slots 1 and 2 of the expansion base
are valid locations.
The following table provides the general placement rules for the DL305
components.
CPU
16 Point I/O
Modules
Analog Modules
ASCII Basic
Modules
High Speed
Counter

Restriction
The CPU must reside in the first slot of the local CPU
base. The first slot is the closest slot to the power supply.
Any slot.
Any slot.
Any slot.
The D3--350 CPU does not support a high speed counter
module.

I/O addresses use octal numbering, starting in the slot next to the CPU. The
addresses are assigned in groups of 16 for each slot regardless of what module is in
the slot. The discrete input and output modules can be mixed in any order, but there
may be restrictions placed on some specialty modules.

DL350 User Manual, 2nd Edition

System Design
and Configuration

Module

I/O Configuration

060 040
to
to
067 047

4--4

System Design and Configuration

Calculating the Power Budget
Managing your
Power Resource

When you determine the types and quantity of I/O modules you will be using in the
DL305 system it is important to remember there is a limited amount of power
available from the power supply. We have provided a chart to help you easily see the
amount of power available with each base. The following chart will help you calculate
the amount of power you need with your I/O selections. At the end of this section you
will also find an example of power budgeting and a worksheet for your own
calculations.
WARNING: It is extremely important to calculate the power budget. If you
exceed the power budget, the system may operate in an unpredictable
manner which may result in a risk of personal injury or equipment damage.

Base Power
Specifications

This chart shows the amount of current available for the three voltages supplied on
the new xxxxx--1 bases. Use these currents when calculating the power budget for
your system.
5V Power
Supplied in
Amps

9V Power
Supplied in
Amps

24V Power
Supplied in
Amps

Auxiliary
24 VDC
Output at
Base Terminal

D3--05B--1

1.0A (50_C)
0.7A (60_C)

2.0

0.6

100mA max

D3--05BDC

1.4A (50_C)
0.7A (60_C)

0.8

0.6

None

D3--08B--1

1.0A (50_C)
0.7A (60_C)

2.0

0.6

100mA max

D3--10B--1

1.0A (50_C)
0.7A (60_C)

2.0

0.6

100mA max

D3--10BDC

1.4A (50_C)
0.7A (60_C)

1.7

0.6

None

System Design
and Configuration

Bases

DL350 User Manual, 2nd Edition

System Design and Configuration

4--5

I/O Points Required Each type of module requires a certain number of I/O points. This is also true for the
specialty modules, such as analog, counter interface, etc. The table on page 4--5
for Each Module
lists the number and type of I/O points required for each module.
Module Power
Requirements

The next three pages show the amount of maximum current required for each of the
DL305 modules. The column labeled “External Power Source Required” is for
module operation and is not for field wiring. Use these currents when calculating the
power budget for your system. If 24 VDC is needed for external devices, the 24 VDC
(100mA maximum) output at the base terminal strip may be used as long as the
power budget is not exceeded.
I/O Points
Required

5V Power
Required (mA)

9V Power
Required in (A)

24V Power
Required (mA)

External Power
Source Required

500

20

0

None

CPUs
D3--350
DC Input Modules
D3--08ND2

8

0

10

112

None

D3--16ND2--1

16

0

25

224

None

D3--16ND2--2

16

0

24

209

None

D3--16ND2F

16

0

25

224

None

F3--16ND3F

16

0

148

68

None

D3--08NA--1

8

0

10

0

None

D3--08NA--2

8

0

10

0

None

D3--16NA

16

0

100

0

None

D3--08NE3

8

0

10

0

None

D3--16NE3

16

0

130

0

None

D3--08TD1

8

0

20

24

None

D3--08TD2

8

0

30

0

None

D3--16TD1--1

16

0

40

96

None

D3--16TD1--2

16

0

40

96

None

D3--16TD2

16

0

180

0

None

D3--04TAS

8

0

12

0

None

F3--08TAS

8

0

80

0

None

F3--08TAS--1

8

0

25

0

None

D3--08TA--1

8

0

96

0

None

D3--08TA--2

8

0

160

0

None

F3--16TA--2

16

0

250

0

None

D3--16TA--2

16

0

400

0

None

AC Input Modules

AC/DC Input Modules

AC Output Modules

DL350 User Manual, 2nd Edition

System Design
and Configuration

DC Output Modules

4--6

System Design and Configuration

I/O Point
Required

5V Power
Required in mA

9V Power
Required in mA

24V Power
Required in mA

External Power
Source Required

D3--08TR

8

0

360

0

None

F3--08TRS--1

8

0

296

0

None

F3--08TRS--2

8

0

296

0

None

D3--16TR

16

0

480

0

None

D3--04AD

16

0

55

0

24VDC @ 65mA
max

F3--04ADS

16

0

183

50

None

F3--08AD

16

0

25

37

None

F3--08TEMP

16

0

25

37

None

F3--08THM--n

16

0

50

34

None

F3--16AD

16

0

33

47

None

D3--02DA

16

0

80

0

24VDC @ 170mA
max

F3--04DA--1

16

0

144

108

None

F3--04DA--2

16

0

144

108

None

F3--04DAS

16

0

154

145

None

0

0

0

0

(24 VDC or
5 VDC) @ 100mA

F3--AB128--R

16

0

205

0

None

F3--AB128--T

16

0

205

0

None

F3--AB128

16

0

90

0

None

F3--AB64

16

0

90

0

None

D3--08SIM

8

0

10

112

None

D3--HSC

16

0

70

0

None

200

50

0

Optional

Relay Output
Modules

Analog

Communications and
Networking
FA--UNICON

System Design
and Configuration

ASCII BASIC Modules

Specialty Modules

Programming
D2--HPP

DL350 User Manual, 2nd Edition

4--7

System Design and Configuration
Power Budget
Calculation
Example
Base #

The following example shows how to calculate the power budget for the DL305
system.
Module Type

5 VDC (mA)

9 VDC (mA)

Auxiliary
Power Source
24 VDC Output (mA)

0
Available
Base Power

D3--05B

1000

2000

600

CPU Slot

D3--350

+500

+ 120

Slot 0

D3--16NE3

+ 0

+ 130

+

0

Slot 1

D3--16NE3

+ 0

+ 130

+

0

Slot 2

F3--16TA--2

+ 0

+ 250

+

0

Slot 3

F3--16TA--2

+ 0

+ 250

+

0

Slot 4
Slot 5

+

0

Slot 6

+

0

Slot 7

+

0

+

0

Other
Handheld Prog D2--HPP
Total Power Required
Remaining Power Available

+ 200

+ 200

700

1080

1000--700=300

2000--1080=920

0
600 -- 0

= 600

WARNING: It is extremely important to calculate the power budget. If you
exceed the power budget, the system may operate in an unpredictable
manner which may result in a risk of personal injury or equipment damage.

DL350 User Manual, 2nd Edition

System Design
and Configuration

1. Use the power budget table to fill in the power requirements for all the
system components. First, enter the amount of power supplied by the base.
Next, list the requirements for the CPU, any I/O modules, and any other
devices, such as the Handheld Programmer or the DV--1000 operator
interface. Remember, even though the Handheld or the DV--1000 are not
installed in the base, they still obtain their power from the system. Also,
make sure you obtain any external power requirements, such as the
24VDC power required by the analog modules.
2. Add the current columns starting with Slot 0 and put the total in the row
labeled “Total power required”.
3. Subtract the row labeled “Total power required” from the row labeled
“Available Base Power”. Place the difference in the row labeled
“Remaining Power Available”.
4. If “Total Power Required” is greater than the power available from the
base, the power budget will be exceeded. It will be unsafe to used this
configuration and you will need to restructure your I/O configuration.

4--8

System Design and Configuration

Power Budget
Calculation
Worksheet
Base #

This blank chart is provided for you to copy and use in your power budget
calculations.
Module Type

0

5 VDC (mA)

9 VDC (mA)

Auxiliary
Power Source
24 VDC Output (mA)

Available
Base Power
CPU Slot
Slot 0
Slot 1
Slot 2
Slot 3
Slot 4
Slot 5
Slot 6
Slot 7
Other
Handheld Prog D2--HPP
Total Power Required

System Design
and Configuration

Remaining Power Available
1. Use the power budget table to fill in the power requirements for all the
system components. First, enter the amount of power supplied by the base.
Next, list the requirements for the CPU, any I/O modules, and any other
devices, such as the Handheld Programmer or the DV--1000 operator
interface. Remember, even though the Handheld or the DV--1000 are not
installed in the base, they still obtain their power from the system. Also,
make sure you obtain any external power requirements, such as the
24VDC power required by the analog modules.
2. Add the current columns starting with Slot 0 and put the total in the row
labeled “Total power required”.
3. Subtract the row labeled “Total power required” from the row labeled
“Available Base Power”. Place the difference in the row labeled
“Remaining Power Available”.
4. If “Total Power Required” is greater than the power available from the
base, the power budget will be exceeded. It will be unsafe to used this
configuration and you will need to restructure your I/O configuration.
WARNING: It is extremely important to calculate the power budget. If you
exceed the power budget, the system may operate in an unpredictable
manner which may result in a risk of personal injury or equipment damage.

DL350 User Manual, 2nd Edition

System Design and Configuration

4--9

Local I/O Expansion
Base Uses Table

Local/Expansion
Connectivity

It is helpful to understand how you can use the various DL305 bases in your control
system. The following table shows how the bases can be used.
Base Part #

Number of Slots

Can Be Used As
A Local CPU
Base

Can Be Used As
An Expansion
Base

D3--05B--1

5

Yes

Yes

D3--05BDC--1

5

Yes

Yes

D3--08B--1

8

Yes

Yes

D3--08BDC--1

8

Yes

Yes

D3--10B--1

10

Yes

Yes

D3--10BDC--1

10

Yes

Yes

The configurations below show the valid combinations of local and expansion bases
using the DL350 CPU.
NOTE: You should use one of the configurations listed below when designing an
expansion system. If you use a configuration not listed below the system will not
function properly.
8 slot local CPU base with a
8 slot and 5 slot expansion
base

1.5 ft (0.5m)

1.5 ft (0.5m)

8 slot local CPU base with a
5 slot expansion base

1.5 ft (0.5m)

8 slot local CPU base with a
8 slot expansion base

DL350 User Manual, 2nd Edition

System Design
and Configuration

1.5 ft (0.5m) 1.5 ft (0.5m)

5 slot local CPU base
with a maximum of two 5
slot expansion bases

System Design and Configuration

10 slot local CPU base with a
5 slot expansion base

1.5 ft (0.5m)

1.5 ft (0.5m)

8 slot local CPU base with two 8
slot expansion bases

Connecting
Expansion Bases

10 slot local CPU base with a
10 slot expansion base

1.5 ft (0.5m)

4--10

The local CPU base is connected to the expansion base using a 1.5 ft. cable
(D3--EXCBL). The base must be connected as shown in the diagram below.
The top expansion connector on the base is the input from a previous base. The
bottom expansion connector on the base is the output to an expansion base. The
expansion cable is marked with “CPU Side” and “Expansion Side”. The“ CPU Side”
of the cable is connected to the bottom port of the base and the “Expansion Side” of
the cable is connected to the top port of the next base.

Expansion Cable

1.5 ft (0.5 m)

077 057 037 017

C
P
U

Expansion Side

200 160 140 120 100
to
to
to
to
to

CPU Side

217 177 157 137 117

1.5 ft (0.5 m)

System Design
and Configuration

CPU Side

060 040 020 000
to
to
to
to

Expansion Side

DL305

DL305

320 300 260 240 220
to

to

to

to

to

DL305

337 317 277 257 237
Note: Avoid placing the expansion cable in the same wiring tray as the I/O and power source wiring.

DL350 User Manual, 2nd Edition

System Design and Configuration

4--11

Setting the Base Switches
Jumper Switch

The 5, and 8 slot bases have a jumper switch between slot 3 and 4 used to set the
base to local CPU base or expansion base. The 10 slot base has two jumpers, one is
located between slots 4 and 5 and the other is located between slot 5 and 6. The
second switch sets I/O addressing ranges for the DL330/340 CPUs. This switch
should always be bridged to the right hand position for the DL350 CPU.

5 and 8 slot bases

10 slot base

System Design
and Configuration

DL350 User Manual, 2nd Edition

4--12

System Design and Configuration

I/O Configurations with a 5 Slot Local CPU Base
Switch settings

5 Slot Base

The 5 slot base has a jumper switch on the inside of the base between slots 3 and 4
which allows you to select:
Type of Base

Switch Position

Local CPU

right side bridged

First Expansion

left side bridged

Last Expansion

right side bridged

Total I/O:
8 pt. modules 32
16 pt. modules 64

EXP
060
to
067

040
to
047

020
to
027

000
to
007

070
to
077

050
to
057

030
to
037

010
to
017

C
P
U

CPU

DL305

Jumper
Switch

5 Slot Base and up
to two 5 Slot
Expansion Bases

Total I/O:
1 Expansion base
8 pt. modules -- 72
16 pt. modules -- 144
2 Expansion Bases
8 pt. modules -- 112
16 pt modules -- 224

EXP
060
to
067

040
to
047

020
to
027

000
to
007

070
to
077

050
to
057

030
to
037

010
to
017

C
P
U

DL305

Jumper Switch
EXP

System Design
and Configuration

CPU

200 160
to
to
207 167

140
to
147

120
to
127

100
to
107

210 170
to
to
217 177

150
to
157

130
to
137

110
to
117

CPU

DL305

Jumper Switch

DL350 User Manual, 2nd Edition

320 300
to
to
327 307

260
to
267

240
to
247

220
to
227

330 310
to
to
337 317

270
to
277

250
to
257

230
to
237

EXP
DL305

CPU

4--13

System Design and Configuration

I/O Configurations with an 8 Slot Local CPU Base
8 Slot Base

EXP

Total I/O:
8 pt. modules -- 56
16 pt. modules -- 112

140
to
147

120
to
127

100
to
107

060
to
067

040
to
047

020
to
027

000
to
007

150
to
157

130
to
137

110
to
117

070
to
077

050
to
057

030
to
037

010
to
017

C
P
U

CPU

DL305

Jumper Switch

8 Slot Base and
5 Slot Expansion
Base
Total I/O:
8 pt modules -- 96
16 pt modules -- 192

8 Slot Base and
One 8 slot and one
5 slot Expansion
Bases

2 Expansion Bases
1 -- 8 slot 1 -- 5 slot
8 pt. modules -- 160
16 pt. modules -- 320

140
to
147

120
to
127

100
to
107

060
to
067

040
to
047

020
to
027

000
to
007

150
to
157

130
to
137

110
to
117

070
to
077

050
to
057

030
to
037

010
to
017

C
P
U

CPU

DL305

Jumper Switch
EXP
260
to
267

240
to
247

220
to
227

200
to
207

160
to
167

270
to
277

250
to
257

230
to
237

210
to
217

170
to
177

CPU

DL305

EXP
140
to
147

120
to
127

100
to
107

060
to
067

040
to
047

020
to
027

000
to
007

150
to
157

130
to
137

110
to
117

070
to
077

050
to
057

030
to
037

010
to
017

C
P
U

CPU

DL305

Jumper Switch
EXP
340
to
347

320
to
327

300
to
307

260
to
267

240
to
247

220
to
227

200
to
207

160
to
167

350
to
357

330
to
337

310
to
317

270
to
277

250
to
257

230
to
237

210
to
217

170
to
177

DL305

Jumper Switch
EXP
460
to
467

440
to
447

420
to
427

400
to
407

360
to
367

470
to
477

450
to
457

430
to
437

410
to
417

370
to
377

DL305

DL350 User Manual, 2nd Edition

CPU

System Design
and Configuration

Total I/O:
1 Expansion Base
8 pt modules -- 120
16 pt modules -- 240

EXP

4--14

System Design and Configuration

8 Slot Base and
two 8 slot
Expansion Bases
Total I/O:
2 Expansion Bases
2 -- 8 slot
8 pt. modules -- 184
16 pt. modules -- 368

Jumper Switch
EXP
140
to
147

120
to
127

100
to
107

060
to
067

040
to
047

020
to
027

000
to
007

150
to
157

130
to
137

110
to
117

070
to
077

050
to
057

030
to
037

010
to
017

C
P
U

CPU

DL305

Jumper Switch
EXP
340
to
347

320
to
327

300
to
307

260
to
267

240
to
247

220
to
227

200
to
207

160
to
167

350
to
357

330
to
337

310
to
317

270
to
277

250
to
257

230
to
237

210
to
217

170
to
177

DL305

Jumper Switch

System Design
and Configuration

EXP

DL350 User Manual, 2nd Edition

540
to
547

520
to
527

500
to
507

460
to
467

440
to
447

420
to
427

400
to
407

550
to
557

530
to
537

510
to
517

470
to
477

450
to
457

430
to
437

410 370
to
to
417 377

360
to
367

DL305

CPU

4--15

System Design and Configuration

I/O Configurations with a 10 Slot Local CPU Base
700
EXP

160
to
167

140
to
147

120
to
127

100
to
107

060
to
067

040
to
047

020
to
027

000
to
007

210
to
217

170
to
177

150
to
157

130
to
137

110
to
117

070
to
077

050
to
057

030
to
037

010
to
017

C
P
U

700
EXP

DL305

Jumper
SW1

100
200
to
207

160
to
167

140
to
147

120
to
127

100
to
107

060
to
067

040
to
047

020
to
027

000
to
007

210
to
217

170
to
177

150
to
157

130
to
137

110
to
117

070
to
077

050
to
057

030
to
037

010
to
017

320
to
327

300
to
307

260
to
267

240
to
247

220
to
227

330
to
337

310
to
317

270
to
277

250
to
257

230
to
237

C
P
U

CPU

EXP1

CPU
/EXP2

DL305

Jumper
SW1

100

EXP
200
to
207

160
to
167

140
to
147

120
to
127

100
to
107

060
to
067

040
to
047

020
to
027

000
to
007

210
to
217

170
to
177

150
to
157

130
to
137

110
to
117

070
to
077

050
to
057

030
to
037

010
to
017

C
P
U

CPU

DL305

SW2

700
EXP

EXP
DL305

Jumper
SW2

700
EXP

CPU

SW1
100

440
to
447

420
to
427

400
to
407

360
to
367

340
to
347

320
to
327

300
to
307

260
to
267

240
to
247

220
to
227

450
to
457

430
to
437

410
to
417

370
to
377

350
to
357

330
to
337

310
to
317

270
to
277

250
to
257

230
to
237

EXP
DL305

DL350 User Manual, 2nd Edition

CPU

System Design
and Configuration

Total I/O:
8 pt. modules -- 152
16 pt. modules -- 304

200
to
207

Jumper
SW2

Total I/O:
8 pt. modules -- 112
16 pt. modules -- 224

10 Slot Base and
10 Slot Expansion
Base with
16 Point I/O

EXP

100

Total I/O:
8 pt. modules -- 72
16 pt. modules -- 144

10 Slot Base and
5 Slot Expansion
Base with
16 Point I/O

Jumper
SW1

Jumper
SW2

10 Slot Base

4--16

System Design and Configuration

Remote I/O Expansion
How to Add
Remote I/O
Channels

Remote I/O is useful for a system that has a sufficient number of sensors and other
field devices located a relative long distance away (up to 1000 meters, or 3050 feet)
from the more central location of the CPU. The DL350 supports a built--in Remote
master, however the DL305 family does not have any Remote I/O modules.
‘
Therefore,
you must use a DL205 or DL405 base for the slave channels. The
methods of adding remote I/O are:
S DL350 CPU: The CPU’s comm port 2 features a built-in Remote I/O
channel.
DL350
Maximum number of Remote Masters supported in
the local CPU base (1 channel per Remote Master)

1

CPU built-in Remote I/O channels

1

Maximum I/O points supported by each channel

512

Maximum Remote I/O points supported

512

Maximum number of remote I/O bases per channel
(RM--NET)

7

Remote I/O points map into different CPU memory locations, therefore it does not
reduce the number of local I/O points. Refer to the DL205 Remote I/O manual for
details on remote I/O configuration and numbering. Configuring the built-in remote
I/O channel is described in the following section.
The following figure shows 1 CPU base with seven remote bases. The remote bases
can be DL205 or DL405 bases.

System Design
and Configuration

Remote I/O
-- 7 Bases per channel (RM--Net)
-- 3050 ft. (1000m) Total distance]
-- 512 I/O Points Total

CPU Base

DL350 CPU Only
RM--Net

DL350 User Manual, 2nd Edition

System Design and Configuration
Configuring the
CPU’s Remote
I/O Channel

4--17

This section describes how to configure the DL350’s built-in remote I/O channel.
Additional information is in the Remote I/O manual, D2--REMIO--M, which you will
need in configuring the Remote slave units on the network.
The DL350 CPU’s built-in remote I/O channel has the same capability as the DL250
and DL450 CPUs. It can communicate with up to seven remote bases containing a
maximum of 512 I/O points, at a maximum distance of 1000 meters.
You may recall from the CPU specifications in Chapter 3 that the DL350’s Port 2 is
capable of several protocols. To configure the port using the Handheld Programmer,
use AUX 56 and follow the prompts, making the same choices as indicated below on
this page. To configure the port in DirectSOFT, 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 “Remote I/O” (called
“M--NET” on the HPP), and then you’ll see the dialog box shown below.

S

Memory Address: Choose a V-memory address to use as the starting
location of a Remote I/O configuration table (V37700 is the default). This
table is separate and independent from the table for any Remote
Master(s) in the system.
Station Number: Choose “0” as the station number, which makes the
DL350 the master. Station numbers 1--7 are reserved for remote slaves.
Baud Rate: The baud rates 19200 and 38400 baud are available.
Choose 38400 initially as the remote I/O baud rate, and revert to 19200
baud if you experience data errors or noise problems on the link.
Important: You must configure the baud rate on the Remote Slaves (via
DIP switches) to match the baud rate selection for the CPU’s Port 2.
Then click the button indicated to send the Port 2 configuration
to the CPU, and click Close.

S
S

DL350 User Manual, 2nd Edition

System Design
and Configuration

S
S

4--18

System Design and Configuration
The next step is to make the connections between all devices on the Remote I/O link.
The location of the Port 2 on the DL350 is
on the 25-pin connector , as pictured to the
right.
S

Pin 7

S

Pin 12

TXD+

S

Pin 13

TXD--

S

Pin 24

RXD+

S

Pin 25

RXD--

1

14

Signal GND
0V

Port 2
TXD+
TXD--

13

25

RXD+
RXD--

Now we are ready to discuss wiring the DL350 to the remote slaves on the remote
base(s). The remote I/O link is a 3-wire, half-duplex type. Since Port 2 of the DL350
CPU is a 5-wire port, we must jumper its transmit and receive lines together as
shown below (converts it to 3-wire, half-duplex).
DL350 CPU Port 2

D2--RSS
Remote I/O Slave

0V 7
Termination Resistor
RXD+
TXD+
TXD--

13

25

RXD--

T

D4--RM
Remote I/O Slave

Jumper

TXD+ / RXD+

1

1

TXD-- / RXD--

2

2

3

3

Signal GND
Connect shield to
signal ground

Remote I/O Master

T

Internal
330 ohm
resistor

G

System Design
and Configuration

(end of chain)

The twisted/shielded pair connects to the DL350 Port 2 as shown. Be sure to
connect the cable shield wire to the signal ground connection. A termination resistor
must be added externally to the CPU, as close as possible to the connector pins. Its
purpose is to minimize electrical reflections that occur over long cables. Be sure to
add the jumper at the last slave to connect the required internal termination resistor.
Ideally, the two termination resistors at
the cables opposite ends and the
cable’s rated impedance will all three
match. For cable impedances greater
than 330 ohms, add a series resistor at the
last slave as shown to the right. If less than
330 ohms, parallel a matching resistance
across the slave’s pins 1 and 2 instead.
Remember to size the termination resistor
at Port 2 to match the cables rated
impedance. The resistance values should
be between 100 and 500 ohms.

DL350 User Manual, 2nd Edition

Add series external resistor

T
1
2
3

Internal
resistor
D4--RM -- 330
ohm
D2--RSS -- 150
ohm

System Design and Configuration

4--19

Configure Remote
I/O Slaves

After configuring the DL350 CPU’s Port 2 and wiring it to the remote slave(s), use the
following checklist to complete the configuration of the remote slaves. Full
instructions for these steps are in the Remote I/O manual.
S Set the baud rate to match CPU’s Port 2 setting.
S Select a station address for each slave, from 1 to 7. Each device on the
remote link must have a unique station address. There can be only one
master (address 0) on the remote link.

Configuring the
Remote I/O Table

The beginning of the configuration table
for the built-in remote I/O channel is the
memory address we selected in the Port 2
setup.
The table consists of blocks of four words
which correspond to each slave in the
system, as shown to the right. The first
four table locations are reserved.
The CPU reads data from the table after
powerup, interpreting the four data words
in each block with these meanings:
1. Starting address of slave’s input data
2. Number of slave’s input points
3. Starting address of outputs in slave
4. Number of slave’s output points

37700

Remote I/O data
Reserved V37700
V37701
V37702
V37703

xxxx
xxxx
xxxx
xxxx

Slave 1 V37704
V37705
V37706
V37707

xxxx
xxxx
xxxx
xxxx

V37734
V37735
V37736
V37737

0000
0000
0000
0000

Slave 7

DirectSOFT
SP0

LDA
O40000
OUT
V37704
LD
K16
OUT
V37705

DL350 User Manual, 2nd Edition

System Design
and Configuration

The table is 32 words long. If your system
has fewer than seven remote slave bases,
then the remainder of the table must be
filled with zeros. For example, a 3--slave
system will have a remote configuration
table containing 4 reserved words,12
words of data and 16 words of “0000”.
A portion of the ladder program must
configure this table (only once) at
powerup. Use the LDA instruction as
shown to the right, to load an address to
place in the table. Use the regular LD
constant to load the number of the slave’s
input or output points.
The following page gives a short program
example for one slave.

Memory Addr. Pointer

4--20

System Design and Configuration
Consider the simple system featuring Remote I/O shown below. The DL350’s built-in
Remote I/O channel connects to one slave base, which we will assign a station
address=1. The baud rates on the master and slave will be 38400 kB.
We can map the remote I/O points as any type of I/O point, simply by choosing the
appropriate range of V-memory. Since we have plenty of standard I/O addresses
available (X and Y), we will have the remote I/O points start at the next X and Y
addresses after the main base points (X60 and Y40, respectively).
Main Base with CPU as Master

Remote Slave Worksheet
1

16

16

O

O

16

16

16

I

I

I

Remote Base Address_________(Choose 1--7)

DL350
CPU

Port 2
Y20-Y37 Y0-Y17 X40-X57 X20-X37
V40501 V40500 V40402 V40401

X0-X17
V40400

1

08ND3S

2

08TD1

Y040

8

3

08TD1

Y050

8

X070

OUTPUT
Output Addr.

No.Outputs

8

4

Remote Slave
D2
RSSS
Slave

0

INPUT
Module
Name Input Addr.
No. Inputs
08ND3S
X060
8

Slot
Number

5
6

8

8

8

8

I

I

O

O

7
X060
Input Bit Start Address:________V-Memory
Address:V_______
40403
16
Total Input Points_____
Y040
40502
Output Bit Start Address:________V-Memory
Address:V_______

X60-X67 X70-X77 Y40-Y47 Y50-Y57
V40403 V40404 V40502 V40503

System Design
and Configuration

Remote I/O
Setup Program

Using the Remote Slave Worksheet
shown above can help organize our
system data in preparation for writing our
ladder program (a blank full-page copy of
this worksheet is in the Remote I/O
Manual). The four key parameters we
need to place in our Remote I/O
configuration table is in the lower right
corner of the worksheet. You can
determine the address values by using the
memory map given at the end of Chapter
3, CPU Specifications and Operation.
The program segment required to transfer
our worksheet results to the Remote I/O
configuration table is shown to the right.
Remember to use the LDA or LD
instructions appropriately.
The next page covers the remainder of the
required program to get this remote I/O
link up and running.

16
Total Output Points_____

DirectSOFT
SP0

LDA
O40403
OUT
V37704
LD
K16
OUT
V37705
LDA
O40502
OUT
V37706
LD
K16
OUT
V37707

DL350 User Manual, 2nd Edition

Slave 1
Input

Slave 1
Output

System Design and Configuration

When configuring a Remote I/O channel
for fewer than 7 slaves, we must fill the
remainder of the table with zeros. This is
necessary because the CPU will try to
interpret any non-zero number as slave
information.
We continue our setup program from the
previous page by adding a segment which
fills the remainder of the table with zeros.
The example to the right fills zeros for
slave numbers 2--7, which do not exist in
our example system.

4--21

DirectSOFT
LD
K0
OUTD
V37710

OUTD
V37736
C740
SET

On the last rung in the example program above, we set a special relay contact C740.
This particular contact indicates to the CPU the ladder program has finished
specifying a remote I/O system. At that moment the CPU begins remote I/O
communications. Be sure to include this contact after any Remote I/O setup
program.
Remote I/O
Test Program

Now we can verify the remote I/O link and
setup program operation. A simple quick
check can be done with one rung of ladder,
shown to the right. It connects the first
input of the remote base with the first
output. After placing the PLC in RUN
mode, we can go to the remote base and
activate its first input. Then its first output
should turn on.

DirectSOFT
X60

Y40
OUT

System Design
and Configuration

DL350 User Manual, 2nd Edition

4--22

System Design and Configuration

Network Connections to MODBUS and DirectNET
Configuring
the CPU’s
Comm Port

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 DL305 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.
You will need to determine whether the network connection is a 3-wire RS--232 type,
or a 5-wire RS--422 type. Normally, the RS--232 signals are used for shorter
distances (15 meters max), for communications between two devices. RS--422
signals are for longer distances (1000 meters max.), and for multi-drop networks
(from 2 to 247 devices). Use termination resistors at both ends of RS--422 network
wiring, matching the impedance rating of the cable, for example, to match the
termination resistance to Belden 9841 use a 120 ohm resistor. Resistors should be
insatlled close to the end of the cable at the master and last slave connections.
14 TXD+
16 TXD-9 RXD+
10 RXD-19 RTS+
18 RTS-11 CTS+
23 CTS-7 GND

14 TXD+
16 TXD-9 RXD+
10 RXD-19 RTS+
18 RTS-11 CTS+
23 CTS-7 GND

System Design
and Configuration

PC/PLC
Master

Slave

14 TXD+
16 TXD-9 RXD+
10 RXD-19 RTS+
18 RTS-11 CTS+
23 CTS-7 GND

Last Slave

The recommended cable for RS422 is Beldon 8102 or equivalent.
1

13

14

25

25-pin Female
D Connector

Port 2 Pin Descriptions (DL350 CPU)

Port 2 Pin Descriptions (Cont’d)

1
2
3
4
5
6
7
8
9
10
11
12
13

14
15
16
17
18
19
20
21
22
23
24
25

not used
TXD
Transmit Data (RS232C)
RXD
Receive Data (RS232C)
RTS
Ready to Send (RS--232C)
CTS
Clear to Send (RS--232C)
not used
0V
Power (--) connection (GND)
0V
Power (--) connection (GND)
RXD + Receive Data + (RS--422)
RXD -- Receive Data (RS--422)
CTS + Clear to Send + (RS422)
TXD + Transmit Data + (REMIO)
TXD -- Transmit Data -- (REMIO)

DL350 User Manual, 2nd Edition

TXD +
not used
TXD -not used
RTS -RTS +
not used
not used
not used
CTS -RXD +
RXD --

Transmit Data + (RS--422
Transmit Data -- (RS--422)
Request to Send -- (RS--422)
Request to Send -- (RS--422)

Clear to Send -- (RS--422)
Receive Data + (REMIO)
Receive Data -- (REMIO)

System Design and Configuration
MODBUS Port
Configuration

4--23

In DirectSOFT, choose the PLC menu, then Setup, then “Secondary Comm Port”.
S Port: From the port number list box at the top, choose “Port 2”.
S 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.
Setup Communication Ports

S
S

S

S
S

DL350 User Manual, 2nd Edition

System Design
and Configuration

S

Timeout: amount of time the port will wait after it sends a message to
get a response before logging an error.
Response Delay Time: The amount of time between raising the RTS
line and sending the data. This is for devices that do not use RTS/CTS
handshaking. The RTS and CTS lines must be bridged together for the
CPU to send any 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,
but the DL350 network instructions used in Master mode will access
only slaves 1 to 90. Each slave must have a unique number. At
powerup, the port is automatically a slave, unless and until the DL350
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, 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.
Then click the button indicated to send the Port configuration to
the CPU, and click Close.

4--24

System Design and Configuration

DirectNET Port
Configuration

In DirectSOFT, choose the PLC menu, then Setup, then “Secondary Comm Port”.
S Port: From the port number list box, choose “Port 2 ”.
S 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.
Setup Communication Ports

S

System Design
and Configuration

S

S

S

S
S
S

Timeout: amount of time the port will wait after it sends a message to
get a response before logging an error.
Response Delay Time: The amount of time between raising the RTS
line and sending the data. This is for devices that do not use RTS/CTS
handshaking. The RTS and CTS lines must be bridged together for the
CPU to send any data.
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 DL350 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, 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.
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.

DL350 User Manual, 2nd Edition

System Design and Configuration

4--25

Network Slave Operation
This section describes how other devices on a network can communicate with a CPU
port that you have configured as a DirectNET slave or MODBUS slave (DL350). A
MODBUS host must use the MODBUS RTU protocol to communicate with the DL350
as a slave. The host software must send a MODBUS function code and MODBUS
address to specify a PLC memory location the DL350 comprehends. The DirectNET
host uses normal I/O addresses to access the applicable DL305 CPU and system. No
CPU ladder logic is required to support either MODBUS slave or DirectNET slave
operation.
MODBUS Function The MODBUS function code determines whether the access is a read or a write, and
Codes Supported whether to access a single data point or a group of them. The DL350 supports the
MODBUS function codes described below.
MODBUS
Function Code

DL305 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

Determining the
MODBUS Address

Function

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

DL350 User Manual, 2nd Edition

System Design
and Configuration

There are typically two ways that most host software conventions allow you to
specify a PLC memory location. These are:
S By specifying the MODBUS data type and address
S By specifying a MODBUS address only.

4--26

System Design and Configuration

If Your Host Software Many host software packages allow you to specify the MODBUS data type and the
Requires the Data
MODBUS address that corresponds to the PLC memory location. This is the easiest
Type and Address... 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)
S 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.
S

DL350 Memory Type

QTY
(Dec.)

PLC Range
(Octal)

For Discrete Data Types .... Convert PLC Addr. to Dec.

+

Start of Range

MODBUS
Data Type
+ Data Type

Inputs (X)

512

X0

--

X777

2048

--

2560

Input

Special Relays (SP)

512

SP0

--

SP777

3072

--

3584

Input

Outputs (Y)

512

Y0

--

Y777

2048

--

2560

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

--

6271

Coil

Stage Status Bits (S)

1024

S0

--

S1777

5120

--

6143

Coil

For Word Data Types ....
Timer Current Values (V)

System Design
and Configuration

MODBUS
Address Range
(Decimal)

Convert PLC Addr. to Dec.
256

V0

--

V377

Counter Current Values (V) 128

V1000

--

V1177

V--Memory, user data (V)

3072
4096

V1400 -V10000 --

V--Memory, system (V)

256

V7400

DL350 User Manual, 2nd Edition

--

+

Data Type

0

--

255

Input Register

512

--

639

Input Register

V7377
V17777

768
4096

---

3839
8191

Holding Register

V7777

3480

--

3735

Holding Register

System Design and Configuration

4--27

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.
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)

Example 2: Y20

3072
12288

V2100 = 1088 decimal
1088 + Hold. Reg. = Holding Reg. 1088

V1400
-V7377
V10000--V37777

768
4096

---

3839
16383

Holding Register

Find the MODBUS address for output Y20.
PLC Addr. (Dec) + Start Addr. + Data Type
1. Find Y outputs in the table.
Y20 = 16 decimal
2. Convert Y20 into decimal (16).
16 + 2048 + Coil =
Coil 2064
3. Add the starting address for the range
(2048).
4. Use the MODBUS data type from the table.
Outputs (Y)

1024

Y0

--

Y1777

Example 3: T10 Current Find the MODBUS address to obtain the
current value from Timer T10.
Value

1. Find Timer Current Values in the table.
2. Convert T10 into decimal (8).
3. Use the MODBUS data type from the table.
256

V0

--

2048

--

3071

Coil

PLC Address (Dec.) + Data Type
T10 = 8 decimal
8 + Input Reg. = Input Reg. 8

V377

0

--

255

Input Register

Find the MODBUS address for Control Relay PLC Addr. (Dec) + Start Addr. +Data Type
C54.
C54 = 44 decimal
1. Find Control Relays in the table.
44 + 3072 + Coil = 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)

2048

C0

--

C3777

3072

--

5119

Coil

DL350 User Manual, 2nd Edition

System Design
and Configuration

Timer Current Values (V)

Example 4: C54

PLC Address (Dec.) + Data Type

4--28

System Design and Configuration

If Your MODBUS
Host Software
Requires an
Address ONLY

DL350 Memory Type

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:
S 484 Mode
S 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.
S Discrete -- X, SP, Y, CR, S, T, C (contacts)
S 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.
QTY
(Dec.)

PLC Range
(Octal)

System Design
and Configuration

For Discrete Data Types ... Convert PLC Addr. to Dec. +

MODBUS
Address Range
(Decimal)
Start of Range

484 Mode
Address

584/984
Mode
Address

MODBUS
Data Type

+ Appropriate Mode Address

Inputs (X)

512

X0

--

X777

2048

--

2560

1001

10001

Input

Special Relays (SP)

512

SP0

--

SP777

3072

--

3584

1001

10001

Input

Outputs (Y)

512

Y0

--

Y777

2048

--

2560

1

1

Coil

Control Relays (CR)

1024

C0

--

C3777

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 PLC Addr. to Dec.
Timer Current Values (V)

256

V0

--

V377

Counter Current Values (V)

128

V1000

--

V1177

V Memory, user data (V)

3072
4096

V1400 -V10000 --

V Memory, system (V)

256

V7400

DL350 User Manual, 2nd Edition

--

+

Appropriate Mode Address

0

--

255

3001

30001

Input Reg.

512

--

639

3001

30001

Input Reg

V7377
V17777

768
4096

---

3839
8192

4001

40001

Hold Reg.

V7777

3840

--

3735

4001

40001

Hold Reg.

System Design and Configuration

4--29

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.
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)

320

V700
-V777
V7400 -- V7777

Outputs (Y)

1024

Y0

--

Y1777

2. Convert T10 into decimal (8).
3. Add the MODBUS starting address for the
mode (3001).
256

V0

--

V377

---

768
3735

4001

40001

Hold Reg.

PLC Addr. (Dec) + Start Addr. + Mode
Y20 = 16 decimal
16 + 2048 + 1 = 2065

2048

Example 3: T10 Current Find the MODBUS address to obtain the
current value from Timer T10.
Value
484 Mode
1. Find Timer Current Values in the table.

Timer Current Values (V)

V2100 = 1088 decimal
1088 + 40001 = 41089

448
3840

Find the MODBUS address for output Y20.
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).

Example 2: Y20
584/984 Mode

PLC Address (Dec.) + Mode Address

--

3071

1

1

Coil

PLC Address (Dec.) + Mode Address
T10 = 8 decimal
8 + 3001 = 3009

0

--

255

3001

30001

Input Reg.

Control Relays (CR)

Determining the
DirectNET Address

2048

C0

--

C3777

3072

--

5119

1

1

Coil

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.

DL350 User Manual, 2nd Edition

System Design
and Configuration

Find the MODBUS address for Control Relay PLC Addr. (Dec) + Start Address + Mode
C54.
C54 = 44 decimal
1. Find Control Relays in the table.
44 + 3072 + 1 = 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).

Example 4: C54
584/984 Mode

4--30

System Design and Configuration

Network Master Operation
This section describes how the DL350 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.

Master

Slave #1

Slave #2

Slave #3

System Design
and Configuration

MODBUS RTU Protocol, or DirectNET

When using the DL350 CPU as the master
station, you use simple RLL instructions 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.

Master

Slave
WX (write)
RX (read)
Network

Network 1

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.
DL350 User Manual, 2nd Edition

System Design and Configuration

Step 1:
Identify Master
Port # and Slave #

Step 2:
Load Number of
Bytes to Transfer

The first Load (LD) instruction identifies
the communications port number on the
network master (DL350) and the address
of the slave station. This instruction can
address up to 90 MODBUS slaves, or 90
DirectNET slaves. The format of the word
is shown to the right. The “F” in the upper
nibble tells the CPU the port is internal to
the CPU (and not in a slot in the base). The
second nibble indicates the port number,
1. This is the logical port number (0 for top
port and 1 for the bottom). The lower byte
contains the slave address number in
BCD (01 to 90).

F

1

0

4--31

1

Slave address (BCD)
Port number (BCD)
Internal port (hex)
LD
KF101

The second Load (LD) instruction
determines the number of bytes which will
be transferred between the master and
slave in the subsequent WX or RX
instruction. The value to be loaded is in
BCD format (decimal), from 1 to 128
bytes.

1

2

8

(BCD)

# of bytes to transfer
LD
K128

The number of bytes specified also depends on the type of data you want to obtain.
For example, the DL305 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.
DL205 / 305 / 405 Memory

Bytes

V--memory
T / C current value

16
16

2
2

Inputs (X, SP)

8

1

Outputs
(Y, C, Stage, T/C bits)

8

1

Scratch Pad Memory

8

1

Diagnostic Status

8

1

Bits per unit

Bytes

Data registers
T / C accumulator

8
16

1
2

I/O, internal relays, shift register
bits, T/C bits, stage bits

8

1

Scratch Pad Memory

8

2

Diagnostic Status(5 word R/W)

16

10

DL305C (DL330/340 CPUs)
Memory

DL350 User Manual, 2nd Edition

System Design
and Configuration

Bits per unit

4--32

System Design and Configuration

Step 3:
Specify Master
Memory Area

The third instruction in the RX or WX
sequence is a Load Address (LDA)
instruction. Its purpose is to load the
starting address of the memory area to be
transferred. Entered as an octal number,
the LDA instruction converts it to hex and
places the result in the accumulator.
For a WX instruction, the DL350 CPU
sends the number of bytes previously
specified from its memory area beginning
at the LDA address specified.
For an RX instruction, the DL350 CPU
reads the number of bytes previously
specified from the slave, placing the
received data into its memory area
beginning at the LDA address specified.

4

0

6

0

0

(octal)

Starting address of
master transfer area
LDA
O40600

MSB

V40600

LSB

15

0

MSB

V40601

LSB

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 instruction itself. Use WX to
write to the slave, and RX to read from the
slave. All four of our instructions are
shown to the right. In the last instruction,
you must specify the starting address and
a valid data type for the slave.

SP116

LD
KF101
LD
K128
LDA
O40600

System Design
and Configuration

RX
Y0

S
S

S

DirectNET slaves -- specify the same address in the WX and RX
instruction as the slave’s native I/O address
MODBUS DL405, DL305 (DL350 CPU), or DL205 slaves -- specify the
same address in the WX and RX instruction as the slave’s native I/O
address
MODBUS 305C (DL330/340 CPUs) slaves -- use the following table to
convert DL305 addresses to MODBUS addresses

DL305C (DL330/340 CPUs) Series CPU Memory Type--to--MODBUS Cross Reference
PLC Memory type

PLC base
address

MODBUS
base addr.

PLC Memory Type

PLC base
address

MODBUS
base addr.

TMR/CNT Current Values

R600

V0

TMR/CNT Status Bits

CT600

GY600

I/O Points

IO 000

GY0

Control Relays

CR160

GY160

Data Registers

R401,
R400

V100

Shift Registers

SR400

GY400

Stage Status Bits (D3--330P only)

S0

GY200

DL350 User Manual, 2nd Edition

4--33

System Design and Configuration

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
SET

SP116

LD
KF101

Port Communication Error

LD
K0003

Port Busy

LDA
O40600
RX
Y0

The port which can be a master 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 example above
shows the use of these contacts for a network master 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 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

Interlocking Relay
SP116 C100

LD
KF101
LD
K0003
LDA
O40600

Interlocking
Relay
SP116 C100

RX
Y0
C100
SET
LD
KF101
LD
K0003
LDA
O40400
WX
Y0
C100
RST

DL350 User Manual, 2nd Edition

System Design
and Configuration

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 to the right, after the RX
instruction is executed, C0 is set. When
the port has finished the communication
task, the second routine is executed and
C0 is reset.
If you’re using RLLPLUS Stage Programing,
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.

1

Standard RLL
Instructions

15

In This Chapter. . . .
— Introduction
— Using Boolean Instructions
— Boolean Instructions
— Comparative Boolean Instructions
— Immediate Instructions
— Timer, Counter and Shift Register Instructions
— Accumulator / Stack Load and Output Data Instructions
— Accumulator Logical Instructions
— Math Instructions
— Bit Operation Instructions
— Number Conversion Instructions
— Table Instructions
— Clock / Calendar Instructions
— CPU Control Instructions
— Program Control Instructions
— Intelligent I/O Instructions
— Network Instructions
— Message Instructions

5--2

Standard RLL Instructions

Introduction
The DL350 CPU offers a wide variety of instructions to perform many different types
of operations. This chapter shows you how to use these individual instructions.
There are two ways to quickly find the instruction you need.
S If you know the instruction category (Boolean, Comparative Boolean,
etc.) use the header at the top of the page to find the pages that discuss
the instructions in that category.
S If you know the individual instruction name, use the following table to
find the page that discusses the instruction.

Standard RLL
Instructions

Instruction

Page

Instruction

Page

ACON

ASCII Constant

5--143

DATE

Date

5--120

ADD

Adds BCD

5--77

DEC

Decrement

5--89

ADDB

Add Binary

5--90

DECB

Decrement Binary

5--95

ADDD

Add Double

5--78

DECO

Decode

5--102

ADDR

Add Real Number

5--79

DISI

Disable Interrupts

5--133

AND

And for contacts or boxes

5--12, 5--29, 5--64

DIV

Divide

5--86

AND STR

And Store

5--14

DIVB

Divide Binary

5--93

ANDB

And Bit--of--Word

5--13

DIVD

Divide Double

5--87

ANDD

And Double

5--65

DIVR

Divide Real Number

5--88

ANDE

And if Equal

5--26

DLBL

Data Label

5--143

ANDF

And Formatted

5--66

DRUM

Timed Drum

6--12

ANDI

And Immediate

5--32

EDRUM

Event Drum

6--14

ANDN

And Not

5--12, 5--29

ENCO

Encode

5--101

ANDNB

And Not Bit--of--Word

5--13

END

End

5--122

ANDNE

And if Not Equal

5--26

ENI

Enable Interrupts

5--133

ANDNI

And Not Immediate

5--32

FAULT

Fault

5--141

ANDND

And Negative Differential

5--21

FOR

For/Next

5--125

ANDPD

And Positive Differential

5--21

GOTO

Goto/Label

5--124

ATH

ASCII to Hex

5--109

GRAY

Gray Code

5--113

BCD

Binary Coded Decimal

5--104

GTS

Goto Subroutine

5--127

BCDCPL

Tens Compliment

5--106

HTA

HEX to ASCII

5--110

BIN

Binary

5--103

INC

Increment

5--89

BCALL

Block Call (Stage)

7--27

INCB

Increment Binary

5--94

BEND

Block End (Stage)

7--27

INT

Interrupt

5--132

BLK

Block (Stage)

7--27

INV

Invert

5--105

BTOR

Binary to Real

5--107

IRT

Interrupt Return

5--133

CMP

Compare

5--73

IRTC

Interrupt Return Conditional

5--133

CMPD

Compare Double

5--74

ISG

Initial Stage

7--24

CMPF

Compare Formatted

5--75

JMP

Jump

7--24

CMPR

Compare Real Number

5--76

LBL

Label (Goto/Lbl)

5--124

CNT

Counter

5--40

LD

Load

5--52

CV

Converge Stage

7--25

LDA

Load Address

5--55

CVJMP

Converge Jump (Stage)

7--25

LDD

Load Double

5--53

LDF

Load Formatted

5--54

LDR

Load Real number

5--58

LDX

Load Indexed

5--56

LDLBL

Load Label

5--117

LDSX

Load Indexed from Constant

5--57

DL350 User Manual, 2nd Edition

5--3

Standard RLL Instructions

Instruction

Page

Instruction

Page

Masked Event Drum Discrete

6--18

RX

Read From Network

5--137

MDRUMW

Masked Event Drum Word

6--20

SBR

Subroutine (Goto Subroutine)

5--127

MLR

Master Line Reset

5--130

SEG

Segment

5--112

MLS

Master Line Set

5--130

SET

Set

5--22

MOV

Move

5--116

SETB

Set Bit--of--Word

5--23

MOVMC

Move Memory Cartridge

5--117

SETI

Set Immediate

5--34

MUL

Multiply

5--83

SFLDGT

Shuffle Digits

5--114

MULB

Multiply Binary

5--92

SG

Stage

7--23

MULD

Multiply Double

5--84

SGCNT

Stage Counter

5--42

MULR

Multiply Real Number

5--85

SHFL

Shift Left

5--97

NCON

Numeric Constant

5--143

SHFR

Shift Right

5--98

NEXT

Next (For/Next)

5--125

SR

Shift Register

5--46

NJMP

Not Jump (Stage)

7--24

STOP

Stop

5--123

NOP

No Operation

5--122

STR

Store

5--8, 5--27

NOT

Not

5--17

STRB

Store Bit--of--word

5--9

OR

Or

5--10, 5--28, 5--67

STRE

Store if Equal

5--24

OR OUT

Or Out

5--17

STRI

Store Immediate

5--30

OR OUTI

Or Out Immediate

5--33

STRN

Store Not

5--8, 5--27

OR STR

Or Store

5--14

STRNB

Store Not Bit--of--Word

5--9

ORB

Or Bit--of--word

5--11

STRNE

Store if not Equal

5--24

ORD

Or Double

5--68

STRNI

Store Not Immediate

5--30

ORE

Or if Equal

5--25

STRND

Store Negative Differential

5--19

ORF

Or Formatted

5--69

STRPD

Store Positive Differential

5--19

ORI

Or Immediate

5--31

SUB

Subtract

5--80

ORN

Or Not

5--10, 5--28

SUBB

Subtract Binary

5--91

ORNB

Or Not Bit--of--Word

5--11

SUBD

Subtract Double

5--81

ORND

Or Negative Differential

5--20

SUBR

Subtract Real Number

5--82

ORNE

Or if Not Equal

5--25

SUM

Sum

5--96

ORNI

Or Not Immediate

5--31

TIME

Time of CPU

5--121

ORPD

Or Positve Differential

5--20

TMR

Timer

5--36

OUT

Out

5--15, 5--59

TMRA

Accumualting Timer

5--38

OUTB

Out Bit--of--Word

5--16

TMRAF

Accumualting Fast Timer

5--38

OUTD

Out Double

5--60

TMRF

Fast Timer

5--36

OUTF

Out Formatted

5--61

UDC

Up Down Couonter

5--44

OUTI

Out immediate

5--33

WT

Write to Intelligent Module

5--136

OUTX

Indexed

5--62

WX

Write to Network

5--139

PD

Positve Differential

5--18

XOR

Exclusive Or

5--70

POP

Pop

5--63

XORD

Exclusive Or Double

5--71

PRINT

Print

5--145

XORF

Exclusive Or Formatted

5--72

RD

Read from Intelligent Module

5--135

ROTL

Rotate Left

5--99

ROTR

Rotate Right

5--100

RST

Reset

5--22

RSTB

Reset Bit--of--Word

5--23

RSTI

Reset Immediate

5--34

RSTWT

Reset Watch Dog Timer

5--123

RT

Subroutine return

5--127

RTC

Subroutine Return Conditional

5--127

RTOB

Real to Binary

5--108

Standard RLL
Instructions

MDRUMD

DL350 User Manual, 2nd Edition

5--4

Standard RLL Instructions
Boolean Instructions

Using Boolean Instructions

END Statement

Do you question why many PLC manufacturers quote the scan time for a 1K boolean
program? It is because 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 DirectSOFT package allows the
use of 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.
All programs require an END statement as the last instruction. This tells the CPU it 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. The
instruction set at the end of this chapter discussed this in detail.
Y0

X0

OUT
END

All programs must have and END statement

Simple Rungs

You will use a contact to start rungs that contain both contacts and coils. The boolean
instruction, Store or, STR instruction performs this function. 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.
DirectSOFT Example

X0

Y0
OUT

Handheld Mnemonics
STR X0
OUT Y0
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.
DirectSOFT Example

X0

Y0
OUT

Handheld Mnemonics
STRN X0
OUT Y0
END

Standard RLL
Instructions

END

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
are STR X0, AND X1, followed by OUT Y0.
X0

X1

DirectSOFT Example

Y0
OUT
END

DL350 User Manual, 2nd Edition

Handheld Mnemonics
STR X0
AND X1
OUT Y0
END

Standard RLL Instructions
Boolean Instructions
Midline Outputs

5--5

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.
X1

DirectSOFT Example

Handheld Mnemonics

Y0
OUT

X2

Y1
OUT
END

Parallel Elements

STR X0
AND X1
OUT Y0
AND X2
OUT Y1
END

Standard

X0

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.
DirectSOFT Example
X0

Y0

Handheld Mnemonics

OUT
X1

END

Joining Series
Branches in
Parallel

STR X0
OR X1
OUT Y0
END

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.
X0

DirectSOFT Example

X1

Y0
OUT

X2

X3
END

Handheld Mnemonics
STR X0
AND X1
STR X2
AND X3
ORSTR
OUT Y0
END

Joining Parallel
You can also join one or more parallel branches in series. The And Store (ANDSTR)
Branches in Series instruction allows this operation. The following example shows a simple network
with contact branches in series with parallel contacts.
DirectSOFT Example
X0

X1

Y0
OUT

X2

STR X0
STR X1
OR X2
ANDSTR
OUT Y0
END

DL350 User Manual, 2nd Edition

Standard RLL
Instructions

END

Handheld Mnemonics

5--6

Standard RLL Instructions
Boolean Instructions
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.

Combination
Networks

X2

X0

X5

Y0
OUT

X3

X1

X4

X6

END

There are limits to how many elements you can include in a rung. This is because the
DL350 CPU uses 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 you enter a STR instruction, the instruction is placed on the top of the
boolean stack. Any other STR instructions on the boolean stack are pushed down a
level. The ANDSTR, and ORSTR instructions combine levels of the boolean stack
when they are encountered. Since the boolean stack is only eight levels, an error will
occur if the CPU encounters a rung that uses more than the eight levels of stack.

Boolean Stack

X0

STR

X1

STR

X2 AND

STR

X5

AND X4

Y0
OUT

X3

Output

ANDSTR

OR

STR X0

STR X1

1

1

STR X1

1

STR X2

1

X2 AND X3

2

2

STR X0

2

STR X1

2

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

STR X0

STR X2

AND X3

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

Standard RLL
Instructions

ORSTR

3
S

3
S

8

8

ANDSTR
1
2
3

X0 AND (NOT X5 OR X4) AND [X1 OR (X2 AND X3)]

S
S

8

DL350 User Manual, 2nd Edition

S

8

5--7

Standard RLL Instructions
Boolean Instructions
Comparative
Boolean

In the following example when the value
in Vmemory location V1400 is equal to
the constant 1234, Y3 will energize.

V1400

Y3
OUT

K1234

Standard

The DL350 CPU provides Comparative Boolean instructions that allow you to
quickly and easily compare two numbers. 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.

Immediate Boolean The DL350 CPU usually can complete an operation cycle in milliseconds. However,
in some applications you may not be able to wait a few milliseconds until the next I/O
update occurs. The DL350 CPU offers 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. This is
normally performed 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 module. This function is not normally
performed 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 module, 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 module again to update the status. The immediate output instruction
will write the status to the module and update the image register.

CPU Scan
Read Inputs
X128
OFF

...
X2
X1
X0
...
ON OFF OFF
Input Image Register

The CPU reads the inputs from
the local base and stores the
status in an input image
register.

OFF

X0

OFF

X1

Read Inputs from Specialty I/O

Solve the Application Program
X0
I

Y0

I/O Point X0 Changes

Write Outputs
Write Outputs to Specialty I/O

ON

X0

OFF

X1

Diagnostics

DL350 User Manual, 2nd Edition

Standard RLL
Instructions

Immediate instruction does
not use the input image
register, but instead reads the
status from the module
immediately.

5--8

Standard RLL Instructions
Boolean Instructions

Boolean Instructions
Store
(STR)

Store Not
(STRN)

The Store instruction begins a new rung
or an additional 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.

Aaaa

The Store Not instruction begins a new
rung or an 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.

Aaaa

Operand Data Type

DL350 Range
A

aaa

X

0--777

Inputs
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--0777

In the following Store example, when input X1 is on, output Y2 will energize.
Handheld Programmer Keystrokes

DirectSOFT
X1

Y2
OUT

STR

1

ENT

OUT

2

ENT

In the following Store Not example, when input X1 is off output Y2 will energize.
Handheld Programmer Keystrokes

DirectSOFT
X1

Y2

Standard RLL
Instructions

OUT

DL350 User Manual, 2nd Edition

STRN

1

ENT

OUT

2

ENT

Standard RLL Instructions
Boolean Instructions

Store Bit-of-Word
(STRB)

Aaaa.bb

The Store Not instruction begins a new
rung or an additional 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.

Aaaa.bb

Operand Data Type

Standard

Store Not
Bit-of-Word
(STRNB)

The Store Bit-of-Word instruction begins a
new rung or an additional branch in a rung
with a normally open contact. Status of the
contact will be the same state as the bit
referenced in the associated memory
location.

5--9

DL350 Range
A

aaa

bb

B

All (See p.3--29 )

BCD, 0 to 15

PB

All (See p 3--29)

BCD, 0 to 15

V--memory
Pointer

In the following Store Bit-of-Word example, when bit 12 of V-memory location V1400
is on, output Y2 will energize.
DirectSOFT
B1400.12

Y2
OUT

Handheld Programmer Keystrokes
STR

SHFT

B

K

1

2

2

ENT

OUT

V

1

4

0

0

ENT

In the following Store Not Bit-of-Word example, when bit 12 of V-memory location
V1400 is off, output Y2 will energize.
DirectSOFT
B1400.12

Y2
OUT

STRN

OUT

SHFT

B

V

K

1

2

2

ENT

1

4

0

0

ENT

DL350 User Manual, 2nd Edition

Standard RLL
Instructions

Handheld Programmer Keystrokes

5--10

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
contact will be the same state as the
associated image register point or
memory location.

Or Not
(ORN)

Aaaa

The Or Not instruction logically ors a
normally closed contact in parallel 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

Aaaa

DL350 Range
A

aaa

X

0--777

Inputs
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.
Handheld Programmer Keystrokes

DirectSOFT
X1

Y5

STR

1

ENT

OR

2

ENT

OUT

5

ENT

OUT
X2

In the following Or Not example, when input X1 is on or X2 is off, output Y5 will
energize.
Handheld Programmer Keystrokes

DirectSOFT
X1

Y5

Standard RLL
Instructions

OUT
X2

DL350 User Manual, 2nd Edition

STR

1

ENT

ORN

2

ENT

OUT

5

ENT

Standard RLL Instructions
Boolean Instructions

Or Bit-of-Word
(ORB)

Aaaa.bb

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 of the bit referenced in the
associated memory location.

Operand Data Type

V--memory
Pointer

Standard

Or Not Bit-of-Word
(ORNB)

The Or Bit-of-Word instruction logically
ors a normally open contact in parallel
with another contact in a rung. Status of
the contact will be the same state as the
bit referenced in the associated memory
location.

5--11

Aaaa.bb

DL350 Range
A

aaa

bb

B

All (See p. 3--29)

BCD, 0 to 15

PB

All (See p.3--29)

BCD

In the following Or Bit-of-Word example, when input X1 or bit 7 of V1400 is on, output
Y7 will energize.
DirectSOFT
X1

Y7
OUT

B1400.7
Handheld Programmer Keystrokes
STR
OR

1
SHFT

B

K

7

OUT

ENT
V

1

4

0

0

ENT

7

ENT

In the following Or Bit-of-Word example, when input X1 or bit 7 of V1400 is off, output
Y7 will energize.
DirectSOFT
X1

Y7

B1400.7
Handheld Programmer Keystrokes
STR
ORN

OUT

1

ENT

SHFT

B

V

K

7

ENT

5

ENT

1

4

0

0

DL350 User Manual, 2nd Edition

Standard RLL
Instructions

OUT

5--12

Standard RLL Instructions
Boolean Instructions

And
(AND)

And Not
(ANDN)

The And instruction logically ands a
normally open 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.

Aaaa

The And Not instruction logically ands a
normally 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.

Aaaa

Operand Data Type

DL350 Range
A

aaa

X

0--777

Inputs
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.
Handheld Programmer Keystrokes

DirectSOFT
X1

X2

Y5

STR

1

ENT

AND

2

ENT

OUT

5

ENT

OUT

In the following And Not example, when input X1 is on and X2 is off output Y5 will
energize.
Handheld Programmer Keystrokes

DirectSOFT
X1

X2

Y5

Standard RLL
Instructions

OUT

DL350 User Manual, 2nd Edition

STR

1

ENT

ANDN

2

ENT

OUT

5

ENT

Standard RLL Instructions
Boolean Instructions

And Bit-of-Word
(ANDB)

Aaaa.bb

The And Not Bit-of-Word instruction
logically ands a 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.

Aaaa.bb

Operand Data Type

Standard

And Not
Bit-of-Word
(ANDNB)

The And Bit-of-Word instruction logically
ands a 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.

5--13

DL350 Range

V--memory
Pointer

A

aaa

bb

B

All (See p. 3--29)

BCD, 0 to 15

PB

All (See p. 3--29)

BCD

In the following And Bit-of-Word example, when input X1 and bit 4 of V1400 is on
output Y5 will energize.
DirectSOFT
X1

B1400.4

Y5
OUT

Handheld Programmer Keystrokes

STR

1

AND

ENT

SHFT

B

K

4

ENT

5

ENT

OUT

V

1

4

0

0

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.
DirectSOFT
X1

Y5

B1400.4

OUT

STR
ANDN

OUT

1

ENT

SHFT

B

K

4

ENT

V

5

ENT

1

4

0

0

DL350 User Manual, 2nd Edition

Standard RLL
Instructions

Handheld Programmer Keystrokes

5--14

Standard RLL Instructions
Boolean Instructions

And Store
(AND STR)

Or Store
(OR STR)

The And Store instruction logically ands
two branches of a rung in series. Both
branches must begin with the Store
instruction.

OUT




The Or Store instruction logically ors two
branches of a rung in parallel. Both
branches must begin with the Store
instruction.



OUT


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.
Handheld Programmer Keystrokes

DirectSOFT
X1

X2

X3

Y5

STR

1

ENT

STR

2

ENT

AND

3

ENT

OR

4

ENT

5

ENT

OUT
X4

ANDST

ENT

OUT

In the following Or Store example, the branch consisting of X1 and X2 have been
ored with the branch consisting of X3 and X4.
Handheld Programmer Keystrokes

DirectSOFT
X1

X2

Y5

STR

1

ENT

AND

2

ENT

STR

3

ENT

AND

4

ENT

5

ENT

OUT
X3

X4

ORST

Standard RLL
Instructions

OUT

DL350 User Manual, 2nd Edition

ENT

Standard RLL Instructions
Boolean Instructions

Out
(OUT)

Operand Data Type

Inputs

Aaaa
OUT

Standard

The Out instruction reflects the status of
the rung (on/off) and outputs the discrete
(on/off) state to the specified image
register 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.

5--15

DL350 Range
A

aaa

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.
Handheld Programmer Keystrokes

DirectSOFT
X1

Y2
OUT

STR

1

ENT

OUT

2

ENT

OUT

5

ENT

Y5
OUT

In the following Out example the program contains two Out instructions using the
same location (Y10). The physical output of Y10 is ultimately controlled by the last
rung of logic referencing Y10. X1 will override the Y10 output being controlled by X0.
To avoid this situation, multiple outputs using the same location should not be used
in programming. If you need to have an output controlled by multiple inputs see the
OROUT instruction on page 5--17.
X0

Y10
OUT

X1

Y10
OUT

Standard RLL
Instructions

DL350 User Manual, 2nd Edition

5--16

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 in the referenced memory location.
Multiple Out Bit-of-Word 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

Aaaa.bb
OUT

DL350 Range
A

aaa

bb

B

All (See p. 3--29)

BCD, 0 to 15

PB

All (See p. 3--29)

BCD

V--memory
Pointer

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.
DirectSOFT
X1

B1400.3
OUT
B1401.6

Handheld Programmer Keystrokes

STR

1

OUT

OUT

SHFT

B

K

3

SHFT

B

K

4

OUT

ENT
V

1

4

0

0

V

1

4

0

0

ENT

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

V1400

K3

Standard RLL
Instructions

OUT

X1

K3

V1400
OUT

DL350 User Manual, 2nd Edition

5--17

Standard RLL Instructions
Boolean Instructions

Or Out
(OR OUT)

The Or Out instruction has been
designed to used more than 1 rung of
discrete logic to control a single output.
Multiple Or Out instructions referencing
the same output coil may be used, since
all contacts controlling the output are
ored together. If the status of any rung is
on, the output will also be on.

Inputs

Standard

Operand Data Type

A aaa
OR OUT

DL350 Range
A

aaa

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.
Handheld Programmer Keystrokes

DirectSOFT
X1

Y2

STR

OR OUT

INST#

3

STR
INST#
X4

3

1

ENT

5

ENT

4

ENT

5

ENT

ENT

2

ENT

ENT

2

ENT

Y2
OR OUT

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.
Handheld Programmer Keystrokes

DirectSOFT
X1

Y2
OUT

STR
SHFT

ENT

O

T

2

ENT

ENT

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.

DL350 User Manual, 2nd Edition

Standard RLL
Instructions

OUT

N

1

5--18

Standard RLL Instructions
Boolean Instructions

Positive
Differential
(PD)

The Positive Differential instruction is
typically known as a one shot. When the
input logic produces an off to on
transition, the output will energize for one
CPU scan.

Operand Data Type

A aaa
PD

DL350 Range
A

aaa

Inputs

X

0--777

Outputs

Y

0--777

Control Relays

C

0--1777

In the following example, every time X1 is makes an off to on transition, C0 will
energize for one scan.
DirectSOFT
X1

C0
PD

C0
LD

V2000

OUT
V3000
Handheld Programmer Keystrokes
STR
P

ENT

SHFT

D

Standard RLL
Instructions

SHFT

1

DL350 User Manual, 2nd Edition

0

ENT

Standard RLL Instructions
Boolean Instructions

The Store Positive Differential instruction
begins a new rung or an additional branch
in a rung with a normally open 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 normally closed contact.
The contact closes for one CPU scan
when the state of the associated image
register point makes 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

aaa

Inputs

X

0--777

Outputs

Y

0--777

Control Relays

C

0--1777

Stage

S

0--1777

T

0--377

CT

0--177

Counter

Aaaa

DL350 Range
A

Timer

Aaaa

Standard

Store Positive
Differential
(STRPD)

5--19

In the following example, each time X1 is makes an Off-to-On transition, Y4 will
energize for one scan.
DirectSOFT
X1

Handheld Programmer Keystrokes
Y4
OUT

STR

SHFT

X

1

OUT

Y

P

D

ENT
4

ENT

In the following example, each time X1 is makes an On-to-Off transition, Y4 will
energize for one scan.
X1

Handheld Programmer Keystrokes
Y4
OUT

STR

SHFT

N

X

1

ENT

OUT

Y

4

D

ENT

DL350 User Manual, 2nd Edition

Standard RLL
Instructions

DirectSOFT

5--20

Standard RLL Instructions
Boolean Instructions

Or Positive
Differential
(ORPD)

Or Negative
Differential
(ORND)

The Or Positive Differential instruction
logically ors a normally open contact in
parallel with another contact in a rung. The
status of the contact will be open until 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.

Aaaa

The Or Negative Differential instruction
logically ors a normally open contact in
parallel with another contact 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

DL350 Range
A

aaa

X

0--777

Inputs
Outputs

Y

0--777

Control Relays

C

0--1777

Stage

S

0--1777

Timer

T

0--377

CT

0--177

Counter

Aaaa

In the following example, Y 5 will energize whenever X1 is on, or for one CPU scan
when X2 transitions from Off to On.
Handheld Programmer Keystrokes

DirectSOFT
X1

Y5

STR

X

OUT

OR
X
OUT

X2

1

ENT

SHFT

P

D

2

ENT

Y

5

ENT

In the following example, Y 5 will energize whenever X1 is on, or for one CPU scan
when X2 transitions from On to Off.
DirectSOFT
X1

Handheld Programmer Keystrokes
Y5

Standard RLL
Instructions

OUT
X2

DL350 User Manual, 2nd Edition

STR

X

1

ENT

OR

SHFT

N

D

X

2

ENT

OUT

Y

5

ENT

Standard RLL Instructions
Boolean Instructions

The And Positive Differential instruction
logically ands a normally open contact in
series with another contact in a rung. The
status of the contact will be open until 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
series with another contact 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

Aaaa

Standard

And Positive
Differential
(ANDPD)

5--21

Aaaa

DL350 Range

Inputs

A

aaa

X

0--777

Outputs

Y

0--777

Control Relays

C

0--1777

Stage

S

0--1777

Timer

T

0--377

CT

0--177

Counter

In the following example, Y5 will energize for one CPU scan whenever X1 is on and
X2 transitions from Off to On.
DirectSOFT
X1

Handheld Programmer Keystrokes
X2

Y5
OUT

STR

X

1

ENT

AND

SHFT

P

D

X

2

ENT

OUT

Y

5

ENT

In the following example, Y5 will energize for one CPU scan whenever X1 is on and
X2 transitions from On to Off.
DirectSOFT
X1

Handheld Programmer Keystrokes
X2

Y5
OUT

STR

X(IN)

ENT

AND

SHFT

N

D

X(IN)

2

ENT

OUT

Y(OUT)

5

ENT

DL350 User Manual, 2nd Edition

Standard RLL
Instructions

1

5--22
Set
(SET)

Reset
(RST)

Standard RLL Instructions
Boolean Instructions

The Set instruction sets or turns on an
image register point/memory location or
a consecutive range of image register
points/memory locations. Once the
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.
The Reset instruction resets or turns off
an image register point/memory location
or a range of image registers
points/memory locations. Once the
point/location is reset it is not necessary
for the input to remain on.
Operand Data Type

A aaa
aaa
SET

Optional
memory range

A aaa
aaa
RST

DL350 Range
A

aaa

Inputs

X

0--777

Outputs

Y

0--777

Control Relays

C

0--1777

Stage

S

0--1777

T

0--377

CT

0--177

Timer*
Counter*

Optional
memory range

* Timer and counter operand data types are not valid using the Set instruction.

NOTE: You cannot set inputs (X’s) that are assigned to input modules
In the following example when X1 is on, Y5 through Y22 will energize.
DirectSOFT
X1

Y5

Y22
SET

Handheld Programmer Keystrokes
STR

1

SET

5

ENT
2

2

ENT

In the following example when X1 is on, Y5 through Y22 will be reset or
de--energized.
Standard RLL
Instructions

DirectSOFT
X1

Y5

Y22
RST

Handheld Programmer Keystrokes
STR

1

RST

5

ENT

DL350 User Manual, 2nd Edition

2

2

ENT

Standard RLL Instructions
Boolean Instructions

Set Bit-of-Word
(SETB)

Aaaa.bb
SET

The Reset Bit-of-Word instruction resets
or turns off a bit in a V--memory location.
Once the bit is reset it is not necessary for
the input to remain on.

Operand Data Type

Standard

Reset Bit-of-Word
(RSTB)

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
reset using the Reset Bit-of-Word
instruction. It is not necessary for the input
controlling the Set Bit-of-Word instruction
to remain on.

5--23

A aaa.bb
RST

DL350 Range

V--memory
Pointer

A

aaa

bb

B

All (See p. 3--29)

0 to 15

PB

All (See p. 3--29)

0 to 15

In the following example when X1 turns on, bit 0 in V1400 is set to the on state.
DirectSOFT
X1

B1400.0
SET

Handheld Programmer Keystrokes
STR

1

SET

SHFT

B

K

1

ENT
V

1

4

0

0

ENT

In the following example when X1 turns on, bit 15 in V1400 is reset to the off state.
DirectSOFT
X1

V1400.15
RST

Handheld Programmer Keystrokes
STR

B

K

1

ENT
V
5

1

4

0

0

ENT

DL350 User Manual, 2nd Edition

Standard RLL
Instructions

RST

1
SHFT

5--24

Standard RLL Instructions
Comparative Boolean

Comparative Boolean
Store If Equal
(STRE)

Store If Not Equal
(STRNE)

The Store If Equal instruction begins a
new rung or additional branch in a rung
with a normally open comparative
contact. The contact will be on when
Vaaa =Bbbb .

The Store If Not Equal instruction begins
a new rung or additional branch in a rung
with a normally closed comparative
contact. The contact will be on when
Vaaa ¸ Bbbb.

Operand Data Type

V aaa

B bbb

V aaa

B bbb

DL350 Range
B

aaa

bbb

V--memory

V

All (See page 3--29)

All (See page 3--29)

Pointer

P

----

All V mem.
(See page 3--29)

Constant

K

----

0--FFFF

In the following example, when the value in V--memory location V2000 = 4933 , Y3
will energize.
Handheld Programmer Keystrokes

DirectSOFT
V2000

K4933

Y3
OUT

$

STR

SHFT

E

E

J

4

GX
OUT

D

C

4
9
3

D

3

D

2

A

0

A

0

A

0

ENT

3

ENT

In the following example, when the value in V--memory location V2000 ¸ 5060, Y3
will energize.
Handheld Programmer Keystrokes

DirectSOFT
V2000

K5060

Y3

SP
STRN

OUT

Standard RLL
Instructions

GX
OUT

DL350 User Manual, 2nd Edition

SHFT

E

F

A

5

D

C

4
0
3

G

6

ENT

A

2
0

A

0

ENT

A

0

A

0

Standard RLL Instructions
Comparative Boolean

Or If Equal
(ORE)

Or If Not Equal
(ORNE)

The Or If Equal instruction connects a
normally open comparative contact in
parallel with another contact. The
contact will be on when Vaaa = Bbbb.

V aaa

B bbb

The Or If Not Equal instruction connects
a normally closed comparative contact in
parallel with another contact. The
contact will be on when Vaaa ¸ Bbbb.

V aaa

B bbb

Operand Data Type

5--25

DL350 Range
B

aaa

bbb

V--memory

V

All (See page 3--29)

All (See page 3--29)

Pointer

P

----

All V mem.
(See page 3--29)

Constant

K

----

0--FFFF

In the following example, when the value in V--memory location V2000 = 4500 or
V2002 = 2345 , Y3 will energize.
DirectSOFT
V2000

Handheld Programmer Keystrokes
K4500

Y3
OUT

V2002

$

STR

E
Q

K2345

C

4
OR
2

SHFT

E

F

A

5

SHFT

E

D

E

3

GX
OUT

D

C

4
0

A

0

4
3

F

5

A

0

A

0

A

0

ENT
C

4

2

2

A

0

A

0

C

2

ENT

ENT

In the following example, when the value in V--memory location V2000 = 3916 or
V2002 ¸ 2500, Y3 will energize.
Handheld Programmer Keystrokes

DirectSOFT
V2000

K3916

Y3
OUT

V2002

K2500

$

STR

D

3

SHFT

E

J

B

9

R
ORN

SHFT

E

C

F

A

2

GX
OUT

5

D

C

4
1

G

6

0
3

A

0

A

0

A

0

A

0

ENT
C

4

2

2

A

0

A

0

C

2

ENT

ENT

Standard RLL
Instructions

DL350 User Manual, 2nd Edition

5--26

Standard RLL Instructions
Comparative Boolean

And If Equal
(ANDE)

The And If Equal instruction connects a
normally 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 normally closed comparative contact in
series with another contact. The contact
will be on when Vaaa ¸ Bbbb

Operand Data Type

V aaa

B bbb

V aaa

B bbb

DL350 Range
A/B

aaa

bbb

V--memory

V

All (See page 3--29)

All (See page 3--29)

Pointer

P

----

All V mem.
(See page 3--29)

Constant

K

----

0--FFFF

In the following example, when the value in V--memory location V2000 = 5000 and
V2002 = 2345, Y3 will energize.
Handheld Programmer Keystrokes

DirectSOFT
V2000

K5000

V2002

K2345

Y3
OUT

$

STR

F

5

SHFT

E

A

A

0

V
AND

SHFT

E

C

D

E

2

3

GX
OUT

D

C

4
0

A

0

4
3

F

5

A

0

A

0

A

0

ENT
C

4

2

2

A

0

A

0

C

2

ENT

ENT

In the following example, when the value in V--memory location V2000 = 2550 and
V2002 ¸ 2500, Y3 will energize.
Handheld Programmer Keystrokes

DirectSOFT
V2000

K2550

V2002

K2500

Y3

Standard RLL
Instructions

OUT

$

STR

C

2

E

F

F

5

W
ANDN

SHFT

E

C

F

A

2

GX
OUT

DL350 User Manual, 2nd Edition

SHFT

5

D

C

4
5

A

0

0
3

A

0

ENT

A

0

A

0

A

0

ENT
C

4

2

2

ENT

A

0

A

0

C

2

Standard RLL Instructions
Comparative Boolean

Store
(STR)

Store Not
(STRN)

The Comparative Store instruction
begins a new rung or additional branch in
a rung with a normally open comparative
contact. The contact will be on when
Aaaa ² Bbbb.

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.

A aaa

B bbb

Operand Data Type

5--27

DL350 Range
A/B

aaa

bbb

V--memory

V

All (See page 3--29)

All (See page 3--29)

Pointer

P

----

All V mem.
(See page 3--29)

Constant

K

----

0--FFFF

Timer

T

0--377

CT

0--177

Counter

In the following example, when the value in V--memory location V2000 ² 1000, Y3
will energize.
Handheld Programmer Keystrokes

DirectSOFT
V2000

K1000

Y3
OUT

$

STR
B

1

GX
OUT

SHFT

V
AND

C

A

A

A

D

0

0

2

A

0

A

0

A

0

ENT

0

ENT

3

In the following example, when the value in V--memory location V2000 < 4050, Y3
will energize.
Handheld Programmer Keystrokes

DirectSOFT
V2000

K4050

Y3
OUT

SP
STRN
E
GX
OUT

4

SHFT

V
AND

C

A

F

A

D

0
3

5

2
0

A

0

A

0

A

0

ENT

ENT

Standard RLL
Instructions

DL350 User Manual, 2nd Edition

5--28

Standard RLL Instructions
Comparative Boolean

Or
(OR)

The
Comparative
Or
instruction
connects a normally open comparative
contact in parallel with another contact.
The contact will be on when Aaaa ²
Bbbb.

Or Not
(ORN)

A aaa

The Comparative Or Not instruction
connects a normally open comparative
contact in parallel with another contact.
The contact will be on when Aaaa < Bbbb.

Operand Data Type

A aaa

B bbb

DL350 Range
A/B

aaa

bbb

V--memory

V

All (See page 3--29)

All (See page 3--29)

Pointer

P

----

All V mem.
(See page 3--29)

Constant

K

----

0--FFFF

Timer

T

0--377

CT

0--177

Counter

B bbb

In the following example, when the value in V--memory location V2000 = 6045 or
V2002 ² 2345, Y3 will energize.
Handheld Programmer Keystrokes

DirectSOFT
V2000

K6045

Y3
OUT

V2002

$

STR

G
Q

K2345

C

6

SHFT

E

A

E

0

OR
2

D

3

GX
OUT

C

4
4

F

5

SHFT

V
AND

E

F

D

4
3

5

2

A

0

A

0

A

0

ENT
C

2

A

0

A

0

C

2

ENT

ENT

In the following example when the value in V--memory location V2000 = 1000 or
V2002 < 2500, Y3 will energize.
Handheld Programmer Keystrokes

DirectSOFT
V2000

K1000

Y3

Standard RLL
Instructions

OUT

V2002

K2500

$

STR

B

1

E

A

A

0

R
ORN
C

2

GX
OUT

DL350 User Manual, 2nd Edition

SHFT

F

5

C

4
0

A

0

SHFT

V
AND

A

A

D

0
3

0

ENT

2

A

0

A

0

A

0

ENT
C

2

ENT

A

0

A

0

C

2

Standard RLL Instructions
Comparative Boolean

And
(AND)

And Not
(ANDN)

The Comparative And instruction
connects a normally open comparative
contact in series with another contact.
The contact will be on when Aaaa ²
Bbbb.

A aaa

B bbb

The Comparative And Not instruction
connects a normally open comparative
contact in series with another contact.
The contact will be on when Aaaa <
Bbbb.

A aaa

B bbb

Operand Data Type

DL350 Range
A/B

aaa

bbb

V--memory

V

All (See page 3--29)

All (See page 3--29)

Pointer

P

----

All V mem.
(See page 3--29)

Constant

K

----

0--FFFF

Timer

T

0--377

CT

0--177

Counter

5--29

In the following example, when the value in V--memory location V2000 = 5000, and
V2002 ² 2345, Y3 will energize.
Handheld Programmer Keystrokes

DirectSOFT
V2000

K5000

V2002

K2345

Y3
OUT

$

STR

F

5

SHFT

E

A

A

0

V
AND
C

2

D

3

GX
OUT

C

4
0

A

SHFT
E

F

D

4

A

0

A

0

A

0

ENT

0

V
AND

2

C

2

A

0

A

0

C

2

ENT

5

ENT

3

In the following example, when the value in V--memory location V2000 = 7000 and
V2002 < 2500, Y3 will energize.
Handheld Programmer Keystrokes

DirectSOFT
V2000

K7000

V2002

K2500

Y3
OUT

$

STR

H

7

SHFT

E

A

A

0

W
ANDN
C

2

5

0

A

0

SHFT

V
AND

A

A

0

SHFT

0

Y
AND

2

A

0

A

0

A

0

ENT
C

2

A

0

A

0

C

2

ENT
D

3

ENT

DL350 User Manual, 2nd Edition

Standard RLL
Instructions

GX
OUT

F

C

4

5--30

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 contact will be the same
as the status of the associated input point
on the module 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 the contact will be
opposite the status of the associated input
point on the module at the time the
instruction is executed. The image
register is not updated.
Operand Data Type

DL350 Range
aaa

Inputs

X

0--777

In the following example, when X1 is on, Y2 will energize.
DirectSOFT
Y2

X1

OUT

Handheld Programmer Keystrokes
$

STR

SHFT

GX
OUT

I
C

B

8
2

1

ENT

ENT

In the following example when X1 is off, Y2 will energize.
DirectSOFT
Y2

X1

OUT

Standard RLL
Instructions

Handheld Programmer Keystrokes
SP
STRN
GX
OUT

SHFT

I
C

B

8
2

ENT

DL350 User Manual, 2nd Edition

1

ENT

X aaa

X aaa

Standard RLL Instructions
Immediate Instructions

The Or Immediate connects two contacts
in parallel. The status of the contact will be
the same as the status of the associated
input point on the module at the time the
instruction is executed. The image register
is not updated.

Or Immediate
(ORI)

The Or Not Immediate connects two
contacts in parallel. The status of the
contact will be opposite the status of the
associated input point on the module at
the time the instruction is executed. The
image register is not updated.

Or Not Immediate
(ORNI)

Operand Data Type

5--31

X aaa

X aaa

DL350 Range
aaa

Inputs

X

0--777

In the following example, when X1 or X2 is on, Y5 will energize.
DirectSOFT
Y5

X1

OUT
X2

Handheld Programmer Keystrokes
$

B

STR

Q

OR

SHFT

GX
OUT

I
F

1

ENT
C

8
5

2

ENT

ENT

In the following example, when X1 is on or X2 is off, Y5 will energize.
DirectSOFT
Y5

X1

OUT
X2

Standard RLL
Instructions

Handheld Programmer Keystrokes
$

B

STR

R
ORN
GX
OUT

SHFT

I
F

1

ENT
C

8
5

2

ENT

ENT

DL350 User Manual, 2nd Edition

5--32

Standard RLL Instructions
Immediate Instructions

And Immediate
(ANDI)

And Not Immediate
(ANDNI)

The And Immediate connects two
contacts in series. The status of the
contact will be the same as the status of
the associated input point on the module
at the time the instruction is executed.
The image register is not updated.

X aaa

The And Not Immediate connects two
contacts in series. The status of the
contact will be opposite the status of the
associated input point on the module at
the time the instruction is executed. The
image register is not updated.

X aaa

Operand Data Type

DL350 Range
aaa

Inputs

X

0--777

In the following example, when X1 and X2 are on, Y5 will energize.
DirectSOFT
X1

Y5

X2

OUT

Handheld Programmer Keystrokes
$

B

STR

V
AND

SHFT

GX
OUT

I
F

1

ENT
C

8
5

2

ENT

ENT

In the following example, when X1 is on and X2 is off, Y5 will energize.
DirectSOFT
X1

Y5

X2

OUT

Handheld Programmer Keystrokes

Standard RLL
Instructions

$

B

STR

W
ANDN
GX
OUT

SHFT

I
F

1

ENT
C

8
5

ENT

DL350 User Manual, 2nd Edition

2

ENT

Standard RLL Instructions
Immediate Instructions

Out Immediate
(OUTI)

Or Out Immediate
(OROUTI)

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
at the time the instruction is executed. If
multiple Out Immediate instructions
referencing the same discrete point are
used it is possible for the module output
status to change multiple times in a CPU
scan. See Or Out Immediate.

Y aaa
OUTI

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
referencing the same output coil may be
used, since all 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

5--33

Y aaa
OROUTI

DL350 Range
aaa

Outputs

Y

0--777

In the following example, when X1 or X4 is on, Y2 will energize.
Handheld Programmer Keystrokes

DirectSOFT
X1

Y2
OR OUTI

X4

$

O
INST#

D
C

Y2
OR OUTI

B

STR

$

3
2

D
C

3
2

5

ENT
A

0

ENT

ENT

ENT

ENT

ENT
E

STR

O
INST#

F

1

F

4
5

ENT
A

0

ENT

Standard RLL
Instructions

DL350 User Manual, 2nd Edition

5--34

Standard RLL Instructions
Immediate Instructions

Set Immediate
(SETI)

Reset
Immediate
(RSTI)

The
Set
Immediate
instruction
immediately sets, or turns on an output or
a range of outputs in the image register
and the corresponding output module(s)
at the time the instruction is executed.
Once the outputs are set it is not
necessary for the input to remain on. The
Reset Immediate instruction can be used
to reset the outputs.

Y aaa
aaa
SETI

The
Reset
Immediate
instruction
immediately resets, or turns off an output
or a range of outputs in the image register
and the output module(s) at the time the
instruction is executed. Once the outputs
are reset it is not necessary for the input to
remain on.
Operand Data Type

Y aaa
aaa
RSTI

DL350 Range
aaa

Outputs

Y

0--777

In the following example, when X1 is on, Y5 through Y22 will be set on in the image
register and on the corresponding output module(s).
DirectSOFT
X1

Y5

Y22
SETI

Handheld Programmer Keystrokes
$

B

STR

X
SET

SHFT

I

1

ENT
F

8

5

C

C

2

2

ENT

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).
DirectSOFT

Standard RLL
Instructions

X1

Y22

Y5

RSTI

Handheld Programmer Keystrokes
$

B

STR

S
RST

SHFT

I

1
8

DL350 User Manual, 2nd Edition

ENT
F

5

C

2

C

2

ENT

5--35

Standard RLL Instructions
Timer, Counter and Shift Register

Timer, Counter and Shift Register Instructions
Using Timers

0

Timers are used to time an event for a desired length of time. 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 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 discrete bit associated with each timer to indicate 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.
1

2

Seconds
4

3

5

6

7

X1

8

TMR

T1
K30

X1

Timer preset

T1
T1
0

Current
Value

10

20

30
40
1/10 Seconds

50

60

Y0
OUT

0

The accumulating timer works similarly to the regular timer, but two inputs are
required. The start/stop 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.
0

1

2

3

Seconds
4

5

6

7

8

X1

Start/Stop

X1

TMRA

T0
K30

X2
X2

Reset Input
T0
Current
Value

0

10

10

20
30
1/10 Seconds

40

50

0

Standard RLL
Instructions

DL350 User Manual, 2nd Edition

5--36

Standard RLL Instructions
Timer, Counter and Shift Register

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 a maximum of 99.99
seconds. These timers will be enabled if
the input logic is true (on) and will be reset
to 0 if the input logic is false (off).
Instruction Specifications
Timer Reference (Taaa): Specifies the
timer number.
Preset Value (Bbbb): Constant value
(K), V--memory location, or Pointer (P).
Current Value: Timer current values are
accessed by referencing the associated
V or T memory location*. For example,
the timer current value for T3 physically
resides in V-memory location V3.
Discrete Status Bit: The discrete status
bit is accessed by referencing the
associated T memory location. 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.
Operand Data Type

Timers

T aaa

TMR
B bbb

Preset

Timer #

TMRF
T aaa
B bbb

Preset

Timer #

The timer discrete status bit and the
current value are not specified in the timer
instruction.

DL350 Range
A/B

aaa

T

0--377

bbb
----

V--memory for preset
values

V

----

All Data Words
(See Page 3--29)

Pointers (preset only)

P

----

All Data Words
(See Page 3--29)

Constants
(preset only)

K

----

0--9999

Timer discrete status
bits

T/V

0--377

Timer current values

V /T*

0--377

There are two methods of programming timers. You can perform functions when the
timer reaches the specified preset using the the discrete status bit, or use the
comparative contacts to perform functions at different time intervals based on one
timer. The following examples show each method of using timers.

Standard RLL
Instructions

NOTE: The current value of a timer can be accessed by using the TA data type (i.e.,
TA2). Current values may also be accessed by the V-memory location.

DL350 User Manual, 2nd Edition

5--37

Standard RLL Instructions
Timer, Counter and Shift Register

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.

Timer Example
Using Discrete
Status Bits

Timing Diagram

DirectSOFT
X1

TMR

T2

0

K30

1

2

3

0

10

20

Seconds
4

5

6

7

30

40

50

60

8

X1
Y0

T2

T2

OUT
Y0
Current
Value

Handheld Programmer Keystrokes
$

B

STR

1

N
TMR

C

$

SHFT

STR

GX
OUT

A

ENT
D

2

0

0

1/10 Seconds

T
MLR

C

3
2

A

0

ENT

ENT

ENT

In the following example, a single input timer is used with a preset of 4.5 seconds.
Timer Example
Using Comparative 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
contacts will turn off Y3, Y4, and Y5.
Timing Diagram

DirectSOFT
X1

TMR

Seconds

T20

0

K45
TA20

OUT

TA20

3

0

10

20

4

5

6

7

30

40

50

60

8

Y3

Y4

K20

2

X1

Y3

K10

1

Y4

OUT
Y5
TA20

Y5

K30

T2

OUT

Current
Value
Handheld Programmer Keystrokes
$

STR

B

1

N
TMR

C

$

SHFT

STR

2

D

$

SHFT

STR

3

GX
OUT

E

$

SHFT

STR

GX
OUT

F

4

5

ENT
A

E

0

T
MLR

C

2

A

4
0

F

5

ENT
B

1

A

0

ENT

ENT
T
MLR

C

2

A

0

C

2

A

0

Standard RLL
Instructions

GX
OUT

0

1/10 Seconds

ENT

ENT
T
MLR

C

2

A

0

D

3

A

0

ENT

ENT

DL350 User Manual, 2nd Edition

5--38

Standard RLL Instructions
Timer, Counter and Shift Register

Accumulating
Timer (TMRA)
Accumulating Fast
Timer (TMRAF)

The Accumulating Timer is a 0.1 second
two input timer that will time to a
maximum
of
9999999.9.
The
Accumulating Fast Timer is a 0.01
second two input timer that will time to a
maximum of 99999.99. These timers
have two inputs, an enable and a reset.
The timer will start timing when the
enable is on and stop timing when the
enable is off without resetting the current
value to 0. The reset will reset the timer
when on and allow the timer to time when
off.
Instruction Specifications
Timer Reference (Taaa): Specifies the
timer number.
Preset Value (Bbbb): Constant value
(K), V--memory location,or Pointer (P).
Current Value: Timer current values are
accessed by referencing the associated
V or T memory location (See Note). 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. 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.
Operand Data Type

Standard RLL
Instructions

Timers

Enable

T aaa
TMRA
B bbb

Reset

Preset

Enable

Timer #

T aaa
TMRAF
B bbb

Reset

Preset

Timer #

Caution: The TMRA uses two
consecutive timer locations, since
the preset can now be 8 digits, which
requires two V-memory locations. For
example, if TMRA T0 is used in the
program, the next available timer
would be T2. Or if T0 was a normal
timer, and T1 was an accumulating
timer, the next available timer would
be T3.
The timer discrete status bit and the
current value are not specified in the
timer instruction.

DL350 Range
A/B

aaa

T

0--377

bbb
----

V--memory for preset
values

V

----

All Data Words
(See Page 3--29)

Pointers (preset only)

P

----

All Data Words
(See Page 3--29)

Constants
(preset only)

K

----

0--9999

Timer discrete status
bits

T/V

0--377 or V41100--41117

Timer current values

V /T*

0--377

There are two methods of programming timers. You can perform functions when the
timer reaches the specified preset using the the discrete status bit, or use the
comparative contacts to perform functions at different time intervals based on one
timer. The following examples show each method of using timers.
NOTE: The current value of a timer can be accessed by using the TA data type (i.e.,
TA2). Current values may also be accessed by the V-memory location.

DL350 User Manual, 2nd Edition

5--39

Standard RLL Instructions
Timer, Counter and Shift Register

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 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.

Accumulating
Timer Example
using Discrete
Status Bits

Timing Diagram

DirectSOFT
X1
TMRA

0

T6

2

3

0

10

10

Seconds
4

5

6

7

20

30

40

50

8

X1

K30

C10

1

C10

T6

Y10

T6

OUT

Current
Value

Handheld Programmer Keystrokes
$
$

B

STR

SHFT

STR

N
TMR

1

SHFT

A

Handheld Programmer Keystrokes (cont)
D

ENT
C

2

B
G

0

0

1/10 Seconds

1

A

0

$

ENT

A

3

ENT

0

STR

GX
OUT

6

SHFT

T
MLR

B

A

1

G

ENT

6

ENT

0

Accumulator Timer 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
Example Using
respectively. The comparative contacts will turn off when the timer is reset.
Comparative
Contacts
Timing Diagram

DirectSOFT
X1
TMRA

0

T20

2

3

0

10

10

Seconds
4

5

6

7

20

30

40

50

8

X1

K45

C10

1

C10
TA20

Y3

Y3

K10

OUT
Y4
TA20

Y4

K20

Y5

OUT
T20
TA20

Y5

K30

Current
Value

OUT

Handheld Programmer Keystrokes
$
$

SHFT

A

GX
OUT

D

$

SHFT

STR

ENT
C

2

3

B
C

0

SHFT

Handheld Programmer Keystrokes (cont)

T
MLR

C

1
2
2

A
A
A

0
0
0

ENT
E
B

4
1

F
A

5
0

ENT
ENT

GX
OUT

E

$

SHFT

STR

D

3

GX
OUT

A

0

4

ENT
T
MLR

C

2

A

0

ENT
F

5

ENT

ENT
T
MLR

C

2

A

0

C

2

A

0

ENT

DL350 User Manual, 2nd Edition

Standard RLL
Instructions

STR

1

SHFT

STR

N
TMR
$

B

STR

0

1/10 Seconds

5--40

Standard RLL Instructions
Timer, Counter and Shift Register

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 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),
V--memory location, or Pointer (P).
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

Counters

Counter #
Count

CNT

CT aaa
B bbb

Reset

Preset

The counter discrete status bit and the
current value are not specified in the
counter instruction.

DL350 Range
A/B

aaa

CT

0--177

bbb
----

V--memory
(preset only)

V

----

All Data Words
(See Page 3--29)

Pointers (preset only)

P

----

All Data Words
(See Page 3--29)

Constants
(preset only)

K

----

0--9999

Counter discrete
status bits

CT/V

0--177 or V41140--41147

Counter current
values

V/CT*

1000--1177

Standard RLL
Instructions

NOTE: The current value of a counter can be accessed by using the CTA data type
(i.e., CTA2). Current values may also be accessed by the V-memory location.

DL350 User Manual, 2nd Edition

5--41

Standard RLL Instructions
Timer, Counter and Shift Register
Counter Example
Using Discrete
Status Bits

In the following example, when X1 makes an off to on transition, counter CTA2 will
increment by one. When the current value reaches the preset value of 3, the counter
status bit CTA2 will turn on and energize Y10. 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 CTA2 will be held in V--memory location V1002.
Counting diagram

DirectSOFT
X1
CNT

CT2
X1
K3

C10

C10

CT2

Y10

Y10

OUT

Current
Value

1

Handheld Programmer Keystrokes
$
$

B

STR

1

SHFT

STR

GY
CNT

C

2

$
B
D

2

3

4

0

Handheld Programmer Keystrokes (cont)

ENT
C

2

1
3

A

0

GX
OUT

ENT

SHFT

C

B

A

STR

1

SHFT

2

T
MLR

C

2

ENT

ENT

0

ENT

In the following example, when X1 makes an off to on transition, counter CTA2 will
Counter Example
Using Comparative 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
Contacts
the counter current value will be 0, and the comparative contacts will turn off.
Counting diagram

DirectSOFT
X1
CNT

CT2
X1
K3

C10

C10

CTA2

Y3

K1

Y3

OUT
Y4
CTA2

Y4

K2

OUT

CTA2

Y5

K3

Y5
1

Current
Value

2

3

4

0

OUT

Handheld Programmer Keystrokes
$

STR

1

SHFT

STR

GY
CNT

C

$

SHFT

STR
B

GX
OUT

1

Handheld Programmer Keystrokes (cont)
$

ENT
C

2

B
D

2
C

2

1
3

SHFT

A

0

T
MLR

C

ENT

ENT
C

2

3

$

SHFT

STR

GX
OUT

3

C

2

SHFT

T
MLR

C

SHFT

T
MLR

C

2

ENT
E

D
ENT

2

GX
OUT

ENT
D

SHFT

STR

4

ENT
C

2

2

ENT
F

5

ENT

DL350 User Manual, 2nd Edition

Standard RLL
Instructions

$

B

5--42

Standard RLL Instructions
Timer, Counter and Shift Register

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 hold
its current value until reset using the RST
instruction. The Stage Counter is designed
for use in RLL PLUS programs but can be
used in relay ladder logic programs. When
the current value equals the preset value,
the counter status bit turns on and the
counter continues to count up to a
maximum count of 9999. The maximum
value will be held until the counter is reset.

Counter #
CT aaa
SGCNT
B bbb
Preset

The counter discrete status bit and the
current value are not specified in the
counter instruction.

Instruction Specifications
Counter Reference (CTaaa): Specifies
the counter number.
Preset Value (Bbbb): Constant value (K),
V--memory location or Pointer (P).
Current Values: Counter current values
are accessed by referencing the
associated V or CTA 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
aaa

bbb

CT

0--177

----

V--memory
(preset only)

V

----

All Data Words
(See Page 3--29)

Pointers (preset only)

P

----

All Data Words
(See Page 3--29)

Constants
(preset only)

K

----

0--9999

Counters

Standard RLL
Instructions

DL350 Range
A/B

Counter discrete
status bits

CT/V

0--177 or V41140--41147

Counter current
values

V/CTA*

1000--1177

NOTE: The current value of a counter can be accessed by using the CTA data type
(i.e., CTA2). Current values may also be accessed by the V-memory location.

DL350 User Manual, 2nd Edition

5--43

Standard RLL Instructions
Timer, Counter and Shift Register

In the following example, when X1 makes an off to on transition, stage counter CTA7
will increment by one. When the current value reaches 3, the counter status bit CTA7
will turn on and energize Y10. The counter status bit CTA7 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 CTA7 will be held in V--memory location V1007.

Stage Counter
Example Using
Discrete Status
Bits

Counting diagram

DirectSOFT
X1

SGCNT
K3

CT7

C5

CT7

X1

Y10

Y10

OUT

Current
Value

CT7

Handheld Programmer Keystrokes

SHFT
H
$

B

STR
S
RST

SHFT
D

7

1

3

SHFT

STR

6

SHFT

GY
CNT

2

GX
OUT

B

$

SHFT

C

SHFT

C

STR

S
RST

ENT
C

3

4

0

Handheld Programmer Keystrokes (cont)

ENT
G

2

RST
CT7

RST

$

1

SHFT

T
MLR

H

7

A

1

ENT

0

F

2

ENT

5

T
MLR

SHFT

2

H

7

ENT

ENT

In the following example, when X1 makes an off to on transition, counter CTA2 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 CTA2 will be held in V--memory location
V1007.

Stage Counter
Example Using
Comparative
Contacts

Counting diagram

DirectSOFT
X1

CTA2

SGCNT
CT2
K10

Y3

K1

OUT

CTA2

Y4

K2

OUT

CTA2

Y5

K3

X1

Y3
Y4
Y5
Current
Value

1

2

3

4

0

OUT

Handheld Programmer Keystrokes
$

C

S
RST

B

2

6
1

SHFT

STR
B

GX
OUT

G

1

1

$

ENT
SHFT
A
C

0
2

GY
CNT

C

ENT
SHFT

T
MLR

C

2

3

E

$

SHFT

STR
D

ENT

2

GX
OUT

3

C

2

SHFT

T
MLR

C

SHFT

T
MLR

C

2

ENT

GX
OUT

ENT
D

SHFT

STR

4

ENT
C

2

2

ENT
F

5

ENT

DL350 User Manual, 2nd Edition

Standard RLL
Instructions

SHFT

$

B

STR

Handheld Programmer Keystrokes (cont)

5--44

Standard RLL Instructions
Timer, Counter and Shift Register

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 counter is reset to 0
when the Reset input is on. The count
range is 0--99999999. The count input not
being used must be off in order for the
active count input to function.
Instruction Specification
Counter Reference (CTaaa): Specifies
the counter number.
Preset Value (Bbbb): Constant value (K),
V--memory locations, or Pointer (P).
Current Values: Current count is a double
word value 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 CT5 resides in V--memory
location V1005 and V1006.
Discrete Status Bit: The discrete status
bit is accessed by referencing the
associated CT memory location. It will be
on if 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

Counters

Up
Down

Reset

UDC

CT aaa
B bbb
Counter #

Preset

Caution : The UDC uses two
V memory locations for the 8 digit
current value. This means the
UDC uses two consecutive
counter locations. If UDC CT1 is
used in the program, the next
available counter is CT3.
The counter discrete status bit and the
current value are not specified in the
counter instruction.

DL350 Range
A/B

aaa

CT

0--177

bbb
----

V--memory
(preset only)

V

----

All Data Words
(See Page 3--29)

Pointers (preset only)

P

----

All Data Words
(See Page 3--29)

Constants
(preset only)

K

----

0--99999999

Counter discrete
status bits

CT/V

0--177 or V41140--41147

Counter current
values

V/CTA*

1000--1177

Standard RLL
Instructions

NOTE: The current value of a counter can be accessed by using the CTA data type
(i.e., CTA2). Current values may also be accessed by the V-memory location.

DL350 User Manual, 2nd Edition

5--45

Standard RLL Instructions
Timer, Counter and Shift Register
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.
Counting Diagram

DirectSOFT
X1
UDC

CT2
X1

K3
X2

X2
X3
X3

Y10

CTA2

OUT

CT2

Handheld Programmer Keystrokes
$
$
$

B

STR

C

STR

D

STR

SHFT

U

ISG

D

1
2
3
3

1

Current
Value

D

ENT

$

ENT

GX
OUT
C

2

Up / Down Counter
Example Using
Comparative
Contacts

1

2

3

0

Handheld Programmer Keystrokes (cont)

ENT

C

2

3

STR

ENT
SHFT

C

B

A

1

2
0

SHFT

T
MLR

C

2

ENT

ENT

2

In the following example, when X1 makes an off to on transition, counter CTA2 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.
Counting Diagram

DirectSOFT
X1
UDC

CT2
V2000

X1

X2
X2
X3
X3

CTA2

Y3

K1

Y3

OUT
Y4
CTA2

Y4

K2

OUT
Handheld Programmer Keystrokes
$

$

STR

C

STR

D

STR

SHFT

U

SHFT

V
AND

$

STR

ISG

D
C

1
2
3
3
2

SHFT

1

2

B

1

GX
OUT

D

ENT

$

SHFT

C

C

2
0
2

0

ENT

ENT

A

4

Handheld Programmer Keystrokes (cont)

ENT

C

3

A

0

SHFT

A

STR
C

2
0

T
MLR

ENT
C

GX
OUT

2

3

ENT
C

2

SHFT

T
MLR

C

2

ENT
E

4

ENT

2

DL350 User Manual, 2nd Edition

Standard RLL
Instructions

$

B

Current
Value

5--46

Standard RLL Instructions
Timer, Counter and Shift Register

Shift Register
(SR)

The Shift Register instruction shifts data
through a predefined number of control
relays. The control ranges in the shift
register block must start at the beginning
of an 8 bit boundary and end at the end of
an 8 bit boundary.
The Shift Register has three contacts.
S Data — determines the value (1 or
0) that will enter the register
S Clock — shifts the bits one position
on each low to high transition
S Reset —resets the Shift Register to
all zeros.

DATA

SR
From A aaa

CLOCK
To

B bbb

RESET

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

Control Relay

DL350 Range
A/B

aaa

bbb

C

0--1777

0--1777
Handheld Programmer Keystrokes

DirectSOFT
X1

$

Data Input

SR
$
From

X2

C0

Clock Input
To

X3

C17

Reset Input

Standard RLL
Instructions

Inputs on Successive Scans
Data

Clock

1

1

Reset

0

0

1

0

0

1

0

1

1

0

0

1

0

0

0

1

-- indicates on

DL350 User Manual, 2nd Edition

$

B

STR

C

STR

D

STR

SHFT

1
2
3

S
RST

SHFT

B

H

1

7

Shift Register Bits
C0

C17

-- indicates off

ENT
ENT
ENT
R
ORN
ENT

SHFT

A

0

Standard RLL Instructions
Accumulator/Stack Load

5--47

Accumulator / Stack Load and Output Data Instructions
Using the
Accumulator

Copying Data to
the Accumulator

The accumulator in the DL350 CPU is a 32 bit register which is used as a temporary
storage location for data that is being copied or manipulated in some manor. 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, or a 32-bit 2’s complement number. The accumulator is reset to 0 at the end
of every CPU scan.
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 V1400 to
V--memory location V1410.
X1

V1400

LD

8

V1400
Copy data from V1400 to the
lower 16 bits of the
accumulator

9

3

5

8

9

3

5

8

9

3

5

Unused accumulator bits
are set to zero
Acc. 0

0

0

0

OUT
V1410

V1410

Copy data from the lower 16 bits
of the accumulator to V1410

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 V--memory location V1400 and V1401 to V--memory
location V1410 and V1411 the most efficient way to perform this function would be as
follows:
X1

V1400

V1401

LDD
V1400

6

7

3

9

5

0

2

6

Acc. 6

7

3

9

5

0

2

6

6

7

3

9

5

0

2

6

Copy data from V1400 and
V1401 to the accumulator

OUTD
V1410
Copy data from the accumulator to
V1410 and V1411

V1411

V1410

Standard RLL
Instructions

DL350 User Manual, 2nd Edition

5--48

Standard RLL Instructions
Accumulator/Stack Load
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 BCD
value 4935 into the accumulator, shifts the data right 4 bits, and outputs the result to
V1410.

Changing the
Accumulator Data

X1

4

Constant

LD

9

3

5

8

7

6 5

4 3

2

1

0

1

0

0

1

1

0

1

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
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

The upper 16 bits of the accumulator
will be set to 0
S S

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

SHFR
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

S S

Shifted out of
accumulator

8

7

6 5

4 3

2

1

0

0

1

0

1

0

1

1

9

3

0

0

Shift the data in the accumulator
4 bits (K4) to the right

OUT
V1410
0

Output the lower 16 bits of the
accumulator to V1410

4

V1410

Some of the data manipulation instructions use 32 bits. They use two consecutive
V--memory locations or 8 digit BCD constants to manipulate data in the accumulator.
The following example rotates the value 67053101 two bits to the right and outputs
the value to V1410 and V1411.
X1

Constant 6

LDD

7

0

5

3

1

0

1

K67053101
Load the value 67053101
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
Acc.

ROTR
K2

Standard RLL
Instructions

Rotate the data in the
accumulator 2 bits to the right

Acc.

8

7

6 5

4 3

2

1

0

0

1

0

0

0

0

0

0

1

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

1

0

0

0

0

C

4

0

0

0

1

0
1

1

0

0

0
1

0

0
1

1

1
0

1

0

1

0

0

0
1

0
1

0
1

9

C

1

0

0

0

0

0

0

1

0

0

0

1

0
1

0

0

0

1

1

0

1

0

0

1

0

1

0

OUTD
V1410
Output the value in the
accumulator to V1410 and V1411

DL350 User Manual, 2nd Edition

5

V1411

8

V1410

0

0

0

Standard RLL Instructions
Accumulator/Stack Load

5--49

The accumulator stack is used for instructions that require more than one parameter
Using the
Accumulator Stack to execute a function or for user defined functionality. The accumulator stack is used
when more than one Load type instruction is executed without the use of the Out
type 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

Constant

LD
K3245
Load the value 3245 into the
accumulator

Acc. 0

0

0

0

LD

X

X

X

3

2

4

5

X

5

X

1

X

5

X

1

Acc. 0

0

0

0

5

1

5

Accumulator Stack
Level 1

X

X

X

X X

X

X

X

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

Level 7

X

X

X

X X

X

X

X

Level 8

X

X

X

X X

X

X

X

1

0

0

LD

0

3

6

2

3

4

6

5

3

Current Acc. value
Acc. 0

0

0

0

6

3

6

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

Level 7

X

X

X

X X

X

X

X

Level 8

X

X

X

X X

X

X

X

3

Bucket
Accumulator Stack

Previous Acc. value
Acc. 0

0

0

Bucket

Accumulator Stack

Previous Acc. value

Constant

Load the value 6363 into the
accumulator, pushing the value 5151
to the 1st stack location and the value
3245 to the 2nd stack location

5

Current Acc. value

Acc. 0

K6363

4

Previous Acc. value

Constant

Load the value 5151 into the
accumulator, pushing the value 1234
onto the stack

2

Current Acc. value

Acc. X

K5151

3

0

5

1

5

1

0

0

0

0

5

1

5

Level 2

0

0

0

0

3

2

4

1
5

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.

DL350 User Manual, 2nd Edition

Standard RLL
Instructions

Level 1

5--50

Standard RLL Instructions
Accumulator/Stack Load

X1

Previous Acc. value

POP

Acc. X
POP the 1st value on the stack into the
accumulator and move stack values
up one location

X

X

X

X

X

X

X
Accumulator Stack

Current Acc. value
Acc. 0

0

OUT

0

0

V1400

V1400

4

4

5

5

4

4

5

5

Copy data from the accumulator to
V1400

Level 1

0

0

0

0

3

7

9

Level 2

0

0

0

0

7

9

3

2
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

Level 1

0

0

0

0

7

9

3

0

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

Level 7

X

X

X

X X

X

X

X

Level 8

X

X

X

X X

X

X

X

Level 1

X

X

X

X X

X

X

X

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

Level 7

X

X

X

X X

X

X

X

Level 8

X

X

X

X X

X

X

X

Previous Acc. value

POP

Acc. 0
POP the 1st value on the stack into the
accumulator and move stack values
up one location

0

0

0

4

5

4

5

0

3

7

9

2

Accumulator Stack

Current Acc. value
Acc. 0

0

OUT

0

V1400

V1401

3

7

9

2

Copy data from the accumulator to
V1401
Previous Acc. value
POP

Acc. 0

0

0

0

3

7

9

2

X

7

9

3

0

Accumulator Stack

Current Acc. value
POP the 1st value on the stack into the
accumulator and move stack values
up one location

OUT
V1402

Standard RLL
Instructions

Copy data from the accumulator to
V1402

DL350 User Manual, 2nd Edition

Acc. X

X

X

V1400

7

9

3

0

5--51

Standard RLL Instructions
Accumulator/Stack Load
Using Pointers

Many of the instructions will allow V--memory pointers as a operand. Pointers can be
useful in ladder logic programming, but can be difficult to understand or implement in
your application if you do not have prior experience with pointers (commonly known
as indirect addressing). Pointers allow instructions to obtain data from V--memory
locations referenced by the pointer value.
NOTE: V-memory addressing is in octal. However the value in the pointer location
which will reference a V-memory location is viewed as HEX. Use the Load Address
instruction to move a address into the pointer location. This instruction performs the
Octal to Hexadecimal conversion for you.
The following example uses a pointer operand in a Load instruction. V-memory
location 3000 is the pointer location. V3000 contains the value 400 which is the HEX
equivalent of the Octal address V-memory location V2000. The CPU copies the data
from V2000 into the lower word of the accumulator.

X1

LD
P3000
V3000 (P3000) contains the value 400
Hex. 400 Hex. = 2000 Octal which
contains the value 2635.
V3000
0

4

0

0

OUT

V2000

2

6

3

5

V2001

X

X

X

X

V2002

X

X

X

X

V2003

X

X

X

X

V2004

X

X

X

X

V2005

X

X

X

X

Accumulator
2

6

3

5

S
S

V3100
Copy the data from the lower 16 bits of
the accumulator to V3100.

V3100

2

6

3

5

V3101

X

X

X

X

The following example is similar to the one above, except for the LDA (load address)
instruction which automatically converts the Octal address to the Hex equivalent.
X1

LDA
O 2000

OUT
V 3000

LD
P 3000

Load the lower 16 bits of the
accumulator with Hexadecimal
equivalent to Octal 2000 (400))

2

0

0

0
2000 Octal is converted to Hexadecimal
400 and loaded into the accumulator

Unused accumulator bits
are set to zero

Copy the data from the lower 16 bits of
the accumulator to V3000

Acc. 0

0

0

0

V3000 (P3000) contains the value 400
HEX 400 HEX. = 2000 Octal which
contains the value 2635

0

4

0

0

0

4

0

0

V3000
OUT
V 3100

Copy the data from the lower 16 bits of
the accumulator to V3100

S
S

0

4

0

0

2

6

3

5

V2001

X

X

X

X

V2002

X

X

X

X

V2003

X

X

X

X

V2004

X

X

X

X

V2005

X

X

X

X

Accumulator
0

0

0

0

2

6

3

S
S
V3100

2

6

3

5

V3101

X

X

X

X

DL350 User Manual, 2nd Edition

5

Standard RLL
Instructions

V3000

V2000

5--52
Load
(LD)

Standard RLL Instructions
Accumulator/Stack Load

The Load instruction is a 16 bit instruction
that loads the value (Aaaa), which is either
a V--memory location or a 4 digit constant,
into the lower 16 bits of the accumulator.
The upper 16 bits of the accumulator are
set to 0.

Operand Data Type

LD
A aaa

DL350 Range
A

aaa

V--memory

V

All (See page 3--29)

Pointer

P

All V mem. (See page 3--29)

Constant

K

0--FFFF

Discrete Bit Flags

Description

SP76

on when the value loaded into the accumulator by any instruction is zero.

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.
DirectSOFT
X1

V2000

LD
V2000
Load the value in V2000 into
the lower 16 bits of the
accumulator

Acc. 0

V2010

Handheld Programmer Keystrokes
B

SHFT

L
ANDST

D

C

A

A

2

3
0

SHFT

A

0

V
AND

Standard RLL
Instructions

GX
OUT

0

ENT

1

DL350 User Manual, 2nd Edition

ENT
C

2

3

5

0

0

0

8

9

3

5

8

9

3

5

V2010

Copy the value in the lower
16 bits of the accumulator to
V2010

STR

9

The unused accumulator
bits are set to zero

OUT

$

8

A

0

B

1

A

0

ENT

5--53

Standard RLL Instructions
Accumulator/Stack Load

Load Double
(LDD)

The Load Double instruction is a 32 bit
instruction that loads the value (Aaaa),
which is either two consecutive
V--memory locations or an 8 digit constant
value, into the accumulator.

Operand Data Type

LDD
A aaa

DL350 Range
A

aaa

V--memory

V

All (See page 3--29)

Pointer

P

All V mem. (See page 3--29)

Constant

K

0--FFFF

Discrete Bit Flags

Description

SP76

on when the value loaded into the accumulator by any instruction is zero.

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.
DirectSOFT
X1

V2001

LDD
V2000

V2000

6

7

3

9

5

0

2

6

Acc. 6

7

3

9

5

0

2

6

6

7

3

9

5

0

2

6

Load the value in V2000 and
V2001 into the 32 bit
accumulator

OUTD
V2010

V2011

V2010

Copy the value in the 32 bit
accumulator to V2010 and
V2011
Handheld Programmer Keystrokes
$

B

STR

SHFT

L
ANDST

D

C

A

A

2

0

SHFT

D

C

A

B

2

0

3
0

ENT
D
A

3
0

ENT

3
1

A

0

Standard RLL
Instructions

GX
OUT

1

ENT

DL350 User Manual, 2nd Edition

5--54

Standard RLL Instructions
Accumulator/Stack Load

The Load Formatted instruction loads
1--32 consecutive bits from discrete
memory locations into the accumulator.
The instruction requires a starting location
(Aaaa) and the number of bits (Kbbb) to be
loaded. Unused accumulator bit locations
are set to zero.

Load
Formatted
(LDF)

Operand Data Type

LDF

A aaa
K bbb

DL350 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

----

K

----

1--32

Constant

Discrete Bit Flags

Description

SP76

on when the value loaded into the accumulator by any instruction is zero.

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 6
bits of the accumulator are output to Y20--Y26 using the Out Formatted instruction.
DirectSOFT
C0

LDF

C10
K7

Load the status of 7
consecutive bits (C10--C16)
into the accumulator

Location

Constant

C10

K7

C16 C15 C14 C13 C12 C11 C10
OFF OFF OFF ON ON ON OFF

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
Acc.

OUTF

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

8

7

6 5

4 3

2

1

0

0

0

0

0

1

1

0

0

1

Y20
K7

Copy the value from the
specified number of bits in
the accumulator to Y20--Y26

Standard RLL
Instructions

Handheld Programmer Keystrokes
$

SHFT

C

SHFT

L
ANDST

D

F

SHFT

C

B

GX
OUT

SHFT

C

A

STR

2

2

0

F

3
1

A

2

A

0

ENT

5
H

0

7

ENT

5
H

7

ENT

DL350 User Manual, 2nd Edition

Location

Constant

Y26 Y25 Y24 Y23 Y22 Y21 Y20

Y20

K7

OFF OFF OFF ON ON ON OFF

Standard RLL Instructions
Accumulator/Stack Load

Load Address
(LDA)

The Load Address instruction is a 16 bit
instruction. It converts any octal value or
address to the HEX equivalent value and
loads the HEX value into the accumulator.
This instruction is useful when an address
parameter is required since all addresses
for the system are in octal.
Operand Data Type

5--55

LDA
O aaa

DL350 Range
aaa

Octal Address

O

All V mem. (See page 3--29)

Discrete Bit Flags

Description

SP76

on when the value loaded into the accumulator by any instruction is zero.

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.
DirectSOFT
X1

Octal

LDA
4

O 40400

0

Load The HEX equivalent to
the octal number into the
lower 16 bits of the
accumulator

4

Hexadecimal
0

0

4

1

0

0

4

1

0

0

4

1

0

0

The unused accumulator
bits are set to zero
Acc. 0

OUT
V2000

0

0

0

V2000

Copy the value in lower 16
bits of the accumulator to
V2000
Handheld Programmer Keystrokes
$

B

STR

SHFT

L
ANDST

D

E

A

E

4

GX
OUT

0

1
3
4

SHFT

ENT
A
A

0
0

V
AND

A
C

0
2

ENT
A

0

A

0

A

0

ENT

Standard RLL
Instructions

DL350 User Manual, 2nd Edition

5--56

Standard RLL Instructions
Accumulator/Stack Load

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
interprets the value in the first stack location
as HEX. The 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.

LDX
A aaa

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

DL350 Range
A

aaa

V--memory

V

All (See p. 3--29)

Pointer

P

All (See p. 3--29)

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
O 25
Load The HEX equivalent to
octal 25 into the lower 16
bits of the accumulator

Octal

Hexadecimal

2

0

0

1

5

0

0

1

5

V 1

4

5

The unused accumulator
bits are set to zero
Acc. 0

0

0

0

LDX
V1410

HEX Value in 1st
stack location

Octal

Move the offset to the stack.
Load the accumulator with
the address to be offset

V 1

4

1

0

+

1

5

Acc. 0

V1500

0

0

0

2

2

Standard RLL
Instructions

3

4

5

3

4

5

Level 1

0

0

0

0

0

0

1

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

Level 7

X

X

X

X X

X

X

X

Level 8

X

X

X

X X

X

X

X

V1500

Handheld Programmer Keystrokes
1

ENT

SHFT

L

D

A

O

2

5

ENT

SHFT

L

D

X

SHFT

V

1

4

V

1

0

0

OUT

5

The value in V1435
is 2345

Copy the value in the lower
16 bits of the accumulator
to V1500

X

3

The unused accumulator
bits are set to zero

OUT

STR

Accumulator Stack

Octal

=

5

DL350 User Manual, 2nd Edition

ENT

1

0

ENT

5--57

Standard RLL Instructions
Accumulator/Stack Load

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 Area
LDSX
(DLBL) where numerical or ASCII
K aaa
constants are 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

DL350 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.
X1

Hexadecimal
LD

0
K1

Load the offset value of 1 (K1) into the lower 16
bits of the accumulator.

0

0

1

0

0

1

The unused accumulator
bits are set to zero
Acc. 0

0

0

0

Accumulator Stack

0

LDSX
K2

Constant

Move the offset to the stack.
Load the accumulator with the data label
number

S
S
S

END

0

K

0

0

0

0

0

0

0

0

K2

NCON
K3333

NCON
K2323

Offset 0

2

The unused accumulator
bits are set to zero
Acc. 0

DLBL

Value in 1st. level of stack is
used as offset. The value is 1

2

Level 1

0

0

0

0

0

0

0

1

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

Level 7

X

X

X

X X

X

X

X

Level 8

X

X

X

X X

X

X

X

The unused accumulator
bits are set to zero
Acc. 0

0

0

0

2

3

2

3

2

3

2

3

Offset 1

K4549

Offset 2

OUT
V2000
Copy the value in the lower
16 bits of the accumulator
to V2000

DL350 User Manual, 2nd Edition

Standard RLL
Instructions

V2000
NCON

5--58

Standard RLL Instructions
Accumulator/Stack Load

$

B

STR

Handheld Programmer Keystrokes

ENT

1

SHFT

L
ANDST

D

SHFT

L
ANDST

D

SHFT

E

4

N
TMR

D

SHFT

D

3

L
ANDST

B

1

L
ANDST

C

SHFT

N
TMR

C

2

O
INST#

N
TMR

D

SHFT

N
TMR

C

2

O
INST#

N
TMR

C

SHFT

N
TMR

C

2

O
INST#

N
TMR

E

V
AND

C

GX
OUT

SHFT

3
S
RST

3

SHFT

3

K
JMP

X
SET

B
C

1
2

ENT
ENT

ENT

2

A

0

A

2
3
2
4
0

ENT
D
D
F
A

3
3
5
0

D
C
E

3
2
4

D
D
J

aaa

V

All V mem (See p. 3--29)

Pointer

P

All V mem (See p. 3--29)

Real Constant

R

Full IEEE 32-bit range

DirectSOFT 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 example to the right. To enter
negative numbers, use a 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 million. The OUTD instruction
stores it in V1400 and V1401.

Standard RLL
Instructions

9

ENT
ENT

LDR
A aaa

DL350 Range
A

V--memory

3

ENT

ENT

Load Real Number The Load Real Number instruction loads a
real number contained in two consecutive
(LDR)
V-memory locations, or an 8-digit constant
into the accumulator.
Operand Data Type

3

LDR
R3.14159

LDR
R5.3E6
OUTD
V1400

These real numbersare in the IEEE 32-bit floating point format. 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. 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 V1400 and V1401. Suppose that now we want to
retreive 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.

DL350 User Manual, 2nd Edition

LDR
V1400

Standard RLL Instructions
Accumulator/Stack Load

Out
(OUT)

The Out instruction is a 16 bit instruction
that copies the value in the lower 16 bits of
the accumulator to a specified V--memory
location (Aaaa).

Operand Data Type

5--59

OUT
A aaa

DL350 Range
A

aaa

V--memory

V

All (See page 3--29)

Pointer

P

All V mem. (See page 3--29)

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.
DirectSOFT
X1

V2000

LD
8

V2000
Load the value in V2000 into
the lower 16 bits of the
accumulator

9

3

5

8

9

3

5

8

9

3

5

The unused accumulator
bits are set to zero
Acc. 0

0

OUT
V2010

0

0

V2010

Copy the value in the lower
16 bits of the accumulator to
V2010

Handheld Programmer Keystrokes
$

B

STR

SHFT

L
ANDST

D

C

A

A

2

GX
OUT

0

1

ENT

3
0

SHFT

A

0

V
AND

ENT
C

2

A

0

B

1

A

0

ENT

Standard RLL
Instructions

DL350 User Manual, 2nd Edition

5--60

Standard RLL Instructions
Accumulator/Stack Load

Out DOUBLE
(OUTD)

The Out Double instruction is a 32 bit
instruction that copies the value in the
accumulator
to
two
consecutive
V--memory locations at a specified starting
location (Aaaa).

Operand Data Type

OUTD
A aaa

DL350 Range
A

aaa

V--memory

V

All (See page 3--29)

Pointer

P

All V mem. (See page 3--29)

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.
DirectSOFT
V2001

X1

LDD

V2000

6

7

3

9

5

0

2

6

Acc. 6

7

3

9

5

0

2

6

6

7

3

9

5

0

2

6

V2000
Load the value in V2000 and
V2001 into the accumulator

OUTD
V2010
Copy the value in the
accumulator to V2010 and
V2011
Handheld Programmer Keystrokes
$

B

STR

SHFT

L
ANDST

D

C

A

A

2

0

GX
OUT

SHFT

D

C

A

B

0

3
0

D
A

3
0

ENT

3
1

A

Standard RLL
Instructions

2

ENT

1

DL350 User Manual, 2nd Edition

0

ENT

V2011

V2010

5--61

Standard RLL Instructions
Accumulator/Stack Load

The Out Formatted instruction outputs
1--32 bits from the accumulator to the
specified discrete memory locations. The
instruction requires a starting location
(Aaaa) for the destination and the number
of bits (Kbbb) to be output.

Out
Formatted
(OUTF)

Operand Data Type

OUTF
A aaa
K bbb

DL350 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 Y20--Y26 using the Out Formatted instruction.
DirectSOFT
C0

LDF

C10
K7

Load the status of 7
consecutive bits (C10--C16)
into the accumulator

Location

Constant

C10

K7

C16 C15 C14 C13 C12 C11 C10
OFF OFF OFF ON ON ON OFF

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
0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

8

7

6 5

4 3

2

1

0

0

0

0

0

1

1

0

0

1

Accumulator
OUTF

Y20
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

Y20

K7

OFF OFF OFF ON ON ON OFF

Handheld Programmer Keystrokes
$

SHFT

C

SHFT

L
ANDST

D

F

SHFT

C

B

GX
OUT

SHFT

C

A

STR

2

2

0

F

3
1

A

2

A

0

ENT

5
H

0

7

ENT

5
H

7

ENT

Standard RLL
Instructions

DL350 User Manual, 2nd Edition

5--62

Standard RLL Instructions
Accumulator/Stack Load

The Out Indexed instruction is a 16 bit
instruction. It copies a 16 bit or 4 digit value
from the first level of the accumulator stack
to a source address offset by the value in
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.

Out Indexed
(OUTX)

Operand Data Type

OUTX
A aaa

DL350 Range
A

aaa

V--memory

V

All (See p. 3--29)

Pointer

P

All (See p. 3--29)

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.
DirectSOFT

Constant

X1

LD

3

5

4

4

3

5

4

4

0

0

1

5

0

0

1

5

V 1

5

K3544
The unused accumulator
bits are set to zero

Load the accumulator with
the value 3544

Acc. 0

0

0

0

HEX

Octal

LDA

2

O 25
Load The HEX equivalent to
octal 25 into the lower 16 bits
of the accumulator. This is the
offset for the Out Indexed
instruction, which determines
the final destination address

5

The unused accumulator
bits are set to zero
Acc. 0

OUTX

V

V1500

1

Octal
5 0 0

0

0

Octal
+ 2

5 =

The hex 15 converts
to 25 octal, which is
added to the base
address of V1500 to yield
the final destination.

Copy the value in the first
level of the stack to the
offset address 1525
(V1500 + 25)

0

Octal

3

Standard RLL
Instructions

1

ENT

L

D

3

SHFT

L

D

A

OUT

SHFT

X

SHFT

5

V

4

4

ENT

O

2

5

ENT

1

5

0

0

DL350 User Manual, 2nd Edition

4

V1525

Handheld Programmer Keystrokes
STR

5

2

ENT

5
4

Accumulator Stack
Level 1

0

0

0

0

3

5

4

4

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

Level 7

X

X

X

X X

X

X

X

Level 8

X

X

X

X X

X

X

X

Standard RLL Instructions
Accumulator/Stack Load

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
(POP)

5--63

POP

In the example, 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 two V--memory
locations for each Out Double need to be allocated.

C0

Discrete Bit Flags

Description

SP63

on when the result of the instruction causes the value in the accumulator to be zero.
Previous Acc. value

POP

Acc. X

X

X

X

X

X

X

X

0

4

5

4

5

Accumulator Stack

Current Acc. value

Pop the 1st. value on the stack into the
accumulator and move stack values
up one location

Acc. 0

0

0

OUT
V2000
Copy the value in the lower 16 bits of
the accumulator to V2000

V2000

4

5

4

5

POP

Pop the 1st. value on the stack into the
accumulator and move stack values
up one location

Level 1

0

0

0

0

3

7

9

Level 2

0

0

0

0

7

9

3

2
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

Level 1

0

0

0

0

7

9

3

0

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

Level 7

X

X

X

X X

X

X

X

Level 8

X

X

X

X X

X

X

X

Level 1

X

X

X

X X

X

X

X

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

Level 7

X

X

X

X X

X

X

X

Level 8

X

X

X

X X

X

X

X

Previous Acc. value
Acc. 0

OUT

0

0

0

4

5

4

5

0

3

7

9

2

Accumulator Stack

Current Acc. value

V2001

Acc. 0

0

0

Copy the value in the lower 16 bits of
the accumulator to V2001
POP
V2001

Pop the 1st. value on the stack into the
accumulator and move stack values
up one location

3

7

9

2

OUT
Previous Acc. value

V2002

Acc. 0

Copy the value in the lower 16 bits of
the accumulator to V2002

Acc. 0

Handheld Programmer Keystrokes
$

STR

SHFT

P

CV

SHFT

GX
OUT

SHFT

O
INST#

P

V
AND

C

SHFT
P

CV

GX
OUT
SHFT

C

P

CV

2

A

SHFT

O
INST#

P

SHFT

V
AND

C

SHFT

O
INST#

P

SHFT

V
AND

0

3

7

9

2

0

0

0

7

9

3

0

Accumulator Stack

ENT

0
CV

ENT
A

2
CV

CV
2

0

A

0

A

0

ENT

ENT
A

2

C

0

0

A

0

B

1

V2002

7

9

3

0

ENT

ENT
A

0

A

0

C

2

ENT

DL350 User Manual, 2nd Edition

Standard RLL
Instructions

GX
OUT

SHFT

0

Current Acc. value

5--64

Standard RLL Instructions
Accumualtor Logical Instructions

Accumulator Logical Instructions
The And instruction is a 16 bit instruction
that logically ands the value in the lower
16 bits of the accumulator with a
specified V--memory location (Aaaa).
The result resides in the accumulator.
The discrete status flag indicates if the
result of the And is zero.

And
(AND)

Operand Data Type

AND
A aaa

DL3540 Range
A

aaa

V--memory

V

All (See page 3--29)

Pointer

P

All V mem. (See page 3--29)

Discrete Bit Flags

Description

SP63

Will be on if the result in the accumulator 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.
DirectSOFT
X1

V2000

LD

2

V2000
Load the value in V2000 into
the lower 16 bits of the
accumulator

8

7

A

The upper 16 bits of the accumulator
will be set to 0
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

1

0

1

0

0

0

0

1

1

1

1

0

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

6A38
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

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

8

3

8

Acc.
AND
V2006
AND the value in the
accumulator with
the value in V2006

Acc.
OUT

Standard RLL
Instructions

V2010
2

Copy the lower 16 bits of the
accumulator to V2010

V2010

Handheld Programmer Keystrokes
$

B

STR

SHFT
V
AND
GX
OUT

L
ANDST

D

1

ENT
C

3

SHFT

V
AND

C

SHFT

V
AND

C

2
2
2

A
A
A

0
0
0

A
A
B

0
0
1

DL350 User Manual, 2nd Edition

A
G
A

0
6
0

ENT
ENT
ENT

5--65

Standard RLL Instructions
Accumulator Logical Instructions

The And Double is a 32 bit instruction that
logically ands the value in the
accumulator with an 8 digit (max.)
constant value (Aaaa). The result
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).

And Double
(ANDD)

Operand Data Type

ANDD
K aaa

DL350 Range
aaa

Constant

K

0--FFFF

Discrete Bit Flags

Description

SP63

Will be on if the result in the accumulator is zero

SP70

Will be on is 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.
DirectSOFT

V2000

V2001

X1

5

LDD

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

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.

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 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

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

4

4

6

8

3

8

Acc.
ANDD
K36476A38
AND the value in the
accumulator with
the constant value
36476A38

Acc.

OUTD
V2010

1

Copy the value in the
accumulator to V2010 and
V2011

2

V2011

V2010

Handheld Programmer Keystrokes
$

B

STR

D

V
AND

SHFT

D

GX
OUT

SHFT

D

3
3
3

ENT
D

C

3

2

A

SHFT

K
JMP

D

C

A

B

2

0

0
3
1

A
G
A

0
6
0

A
E

0
4

ENT
H

7

G

6

SHFT

A

0

SHFT

D

3

I

8

ENT

ENT

DL350 User Manual, 2nd Edition

Standard RLL
Instructions

L
ANDST

SHFT

1

5--66

Standard RLL Instructions
Accumualtor Logical Instructions

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 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).

And
Formatted
(ANDF)

Operand Data Type

ANDF
A aaa
K bbb

DL350 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

----

K

----

1--32

Constant

Discrete Bit Flags

Description

SP63

Will be on if the result in the accumulator is zero

SP70

Will be on is 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.
DirectSOFT
X1

LDF

C10
K4

Load the status of 4
consecutive bits (C10--C13)
into the accumulator

Location

Constant

C10

K4

ON ON ON OFF

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

ANDF

Y20

0

K4

0

0

0

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

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

0

0

0

1

1

1

0

1

0

0

0

1

0

0

0

Accumulator

And the binary bit pattern
(Y20--Y23) with the value in
the accumulator

Acc.

0

0

0

0

Y23 Y22 Y21 Y20
AND (Y20--Y23)

OUTF

ON OFF OFF OFF

C20

Acc.

K4

Standard RLL
Instructions

C13 C12 C11 C10

0

0

0

0

0

0

0

0

0

0

0

0

Copy the value in the lower
4 bits in accumulator to
C20--C23
Handheld Programmer Keystrokes
STR

1

ENT

SHFT

L

D

C

1

K

4

AND

SHFT

F

F
Y

2

0

K

4

ENT

OUT

SHFT

F

C

2

0

K

4

ENT

DL350 User Manual, 2nd Edition

0

Location

Constant

C23 C22 C21 C20

C20

K4

ON OFF OFF OFF

ENT

5--67

Standard RLL Instructions
Accumulator Logical Instructions

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--memory location (Aaaa). The result
resides in the accumulator. The discrete
status flag indicates if the result of the Or
is zero.

Or
(OR)

Operand Data Type

OR
A aaa

DL350 Range
A

aaa

V--memory

V

All (See page 3--29)

Pointer

P

All V mem. (See page 3--29)

Discrete Bit Flags

Description

SP63

Will be on if the result in the accumulator 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.
DirectSOFT
X1

V2000

LD

2

V2000
Load the value in V2000 into
the lower 16 bits of the
accumulator

8

7

A

The upper 16 bits of the accumulator
will be set to 0
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

1

0

1

0

0

0

0

1

1

1

1

0

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

6A38
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

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

A

7

A

Acc.
OR
V2006
Or the value in the
accumulator with
the value in V2006

Acc.
OUT
V2010

6

Copy the value in the lower
16 bits of the accumulator to
V2010
Handheld Programmer Keystrokes
$

B

STR

SHFT
OR

GX
OUT

D

ENT
C

3

SHFT

V
AND

C

SHFT

V
AND

C

2
2
2

A
A
A

0
0
0

A
A
B

0
0
1

A
G
A

0
6
0

ENT

Standard RLL
Instructions

Q

L
ANDST

1

V2010

ENT
ENT

DL350 User Manual, 2nd Edition

5--68

Standard RLL Instructions
Accumualtor Logical Instructions

The Or Double is a 32 bit instruction that
ors the value in the accumulator with an 8
digit (max.) constant 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).

Or Double
(ORD)

Operand Data Type

ORD
K aaa

DL350 Range

Constant

A

aaa

K

0--FFFF

Discrete Bit Flags

Description

SP63

Will be on if the result in the accumulator is zero

SP70

Will be on is 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.
DirectSOFT
X1

V2000

V2001

LDD

5

V2000

4

7

E

2

8

7

A

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

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.

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 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

Acc.

0

0
1

0
1

0
1

0

1

0
1

0

0

0
1

0
1

0
1

0
1

0
1

0
1

0
1

0

1

1

0

1

0

1

0

0

1

1

1

1

0

1

0

6

7

F

A

7

A

Acc.
ORD
K36476A38
OR the value in the
accumulator with
the constant value
36476A38
OUTD
V2010

7

Copy the value in the
accumulator to V2010 and
V2011

6

V2011

V2010

Handheld Programmer Keystrokes

Standard RLL
Instructions

$

B

STR

SHFT

L
ANDST

D

Q

SHFT

D

SHFT

D

OR

GX
OUT

1
3
3
3

ENT
D

C

3

2

A

SHFT

K
JMP

D

C

A

B

2

0

0
3
1

DL350 User Manual, 2nd Edition

A
G
A

0
6
0

A
E

0
4

ENT

ENT
H

7

G

6

SHFT

A

0

SHFT

D

3

I

8

ENT

5--69

Standard RLL Instructions
Accumulator Logical Instructions

The Or Formatted instruction logically
ORs the binary value in the accumulator
and a specified range of discrete bits
(1--32). The instruction requires a starting
location (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).

Or
Formatted
(ORF)

Operand Data Type

ORF

A aaa
K bbb

DL350 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

----

K

----

1--32

Constant

Discrete Bit Flags

Description

SP63

Will be on if the result in the accumulator is zero

SP70

Will be on is 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 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.
DirectSOFT
X1

LDF

C10
K4

Load the status of 4
consecutive bits (C10--C13)
into the accumulator
ORF

Constant
K4

C13 C12 C11 C10
OFF ON ON OFF

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

Y20

Acc.

K4
Or the binary bit pattern
(Y20--Y23) with the value in
the accumulator
OUTF

Location
C10

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

8

7

6 5

4 3

2

1

0

0

0

0

0

0

1

1

0

1

0

0

0

1

1

1

0

0

Y23 Y22 Y21 Y20
OR (Y20--Y23)

C20

Acc.

K4

ON OFF OFF OFF
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

Handheld Programmer Keystrokes
STR

1

SHFT

L

D

OR

SHFT

F

OUT

SHFT

F

ENT
F

C

1

Y

2

0

C

2

0

0

K

4

K

4

ENT

K

4

ENT

Location

Constant

C23 C22 C21 C20

C20

K4

ON ON ON OFF

ENT

DL350 User Manual, 2nd Edition

Standard RLL
Instructions

Copy the specified number
of bits from the accumulator
to C20--C23

5--70

Standard RLL Instructions
Accumualtor Logical Instructions

The Exclusive Or instruction is a 16 bit
instruction that performs an exclusive or
of the value in the lower 16 bits of the
accumulator and a specified V--memory
location (Aaaa). The result resides in the
in the accumulator. The discrete status
flag indicates if the result of the XOR is
zero.

Exclusive Or
(XOR)

Operand Data Type

XOR
A aaa

DL350 Range
A

aaa

V--memory

V

All (See page 3--29)

Pointer

P

All V mem. (See page 3--29)

Discrete Bit Flags

Description

SP63

Will be on if the result in the accumulator 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.
DirectSOFT
X1

V2000

LD

2

V2000
Load the value in V2000 into
the lower 16 bits of the
accumulator

8

7

A

The upper 16 bits of the accumulator
will be set to 0
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
Acc.

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

1

0

1

0

0

0

0

1

1

1

1

0

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

0

1

0

0

0

1

1

1

1

0

1

0

XOR
V2006

Acc.
6A38
XOR (V2006)

XOR the value in the
accumulator with
the value in V2006

Acc.

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

0

0

0

0

0

1
0

0

0

0

0

0

0

0

0

0

0

0

1

0

0

1

1

1

0

0

1

0

0

0

0

1

0

E

4

2

OUT
V2010
4

Copy the lower 16 bits of the
accumulator to V2010

V2010

Handheld Programmer Keystrokes

Standard RLL
Instructions

$

SHFT

STR

X
SET

SHFT

L
ANDST

D

SHFT

X
SET

SHFT

Q

SHFT

V
AND

GX
OUT

B

1

SHFT

3
OR

C

2

ENT
V
AND

C

SHFT

V
AND

C

A

B

A

0

2

1

A

DL350 User Manual, 2nd Edition

0
2
0

A
A

0
0

ENT

A
A

0
0

ENT
G

6

ENT

5--71

Standard RLL Instructions
Accumulator Logical Instructions

The Exclusive OR Double is a 32 bit
instruction that performs an exclusive or
of the value in the accumulator and the
value (Aaaa), which is a 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).

Exclusive Or
Double
(XORD)

Operand Data Type

XORD
K aaa

DL350 Range
A

aaa

K

0--FFFF

Constant

Discrete Bit Flags

Description

SP63

Will be on if the result in the accumulator is zero

SP70

Will be on is 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.
DirectSOFT

V2000

V2001

X1

5

LDD

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

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.

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

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

0

0
1

0
1

0

0

1
0

0
1

0

0

0

0
1

0
1

0
1

0

0

0
1

0

1

0

0

0

0

1

0

0

1

0

0

0

0

1

0

2

3

9

2

4

2

XORD

Acc.

K36476A38
XORD the value in the
accumulator with
the constant value
36476A38
OUTD

Acc.
V2010

Copy the value in the
accumulator to V2010
and V2011

6

V2011

Handheld Programmer Keystrokes
$

B

STR

D

SHFT

X
SET

Q

D

G

E

3

GX
OUT

6

SHFT

D

1
3
OR
4
3

V2010

ENT
D

C

3

SHFT

D

H

G

7

C

2

2

0

A

0

SHFT

K
JMP

SHFT

A

SHFT

A

B

3
6

A

0

0
1

A

0

A

D

ENT

0

3

I

8

Standard RLL
Instructions

SHFT

L
ANDST

4

ENT

ENT

DL350 User Manual, 2nd Edition

5--72

Standard RLL Instructions
Accumualtor Logical Instructions

The Exclusive Or Formatted instruction
performs an exclusive OR of the binary
value in the accumulator and a specified
range of discrete memory bits (1--32).

Exclusive Or
Formatted
(XORF)

XORF
A aaa
K bbb

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

DL350 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

----

K

----

1--32

Constant

Discrete Bit Flags

Description

SP63

Will be on if the result in the accumulator is zero

SP70

Will be on is 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 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.
DirectSOFT
X1

LDF

C10

Location

Constant

C10

K4

C13 C12 C11 C10
OFF ON ON OFF

K4
Load the status of 4
consecutive bits (C10--C13)
into the accumulator
XORF

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

Y20

0

K4

0

0

0

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

1

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

1

1

0

1

0

0

0

Acc.

0

0

0

0

0

0

0

0

0

0

0

0

1

1

1

0

Accumulator

Exclusive Or the binary bit
pattern (Y20--Y23) with the
value in the accumulator.
OUTF

C20

Acc.

0

0

0

0

Y23 Y22 Y21 Y20
XORF (Y20--Y23)

ON OFF OFF OFF

Standard RLL
Instructions

K4
Copy the specified number
of bits from the accumulator
to C20--C23
Handheld Programmer Keystrokes
STR

1

ENT

SHFT

L

D

F

SHFT

X

OR

SHFT

OUT

SHFT

F

C
F
C

2

DL350 User Manual, 2nd Edition

1

0

Y

2

0

K
0
K

4

Location

Constant

C20

K4

4

ENT

K

4

ENT

ENT

C23 C22 C21 C20
ON ON ON OFF

Standard RLL Instructions
Accumulator Logical Instructions

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 specified V--memory location
(Aaaa). The corresponding status flag
will be turned on indicating the result of
the comparison.
Operand Data Type

5--73

CMP
A aaa

DL350 Range
A

aaa

V--memory

V

All (See page 3--29)

Pointer

P

All V mem. (See page 3--29)

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 updated immediately after the instruction is carried out
during the scan of the CPU, therefore, it is 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.
DirectSOFT
X1

Constant

LD
K4526
Load the constant value
4526 into the lower 16 bits of
the accumulator

4

5

2

6

4

5

2

6

The unused accumulator
bits are set to zero
Acc. 0

0

0

0

Compared
with

CMP
V2000

8

Compare the value in the
accumulator with the value
in V2000
SP60

9

4

5

V2000

C30
OUT

$

B

STR

1

ENT

SHFT

L
ANDST

D

SHFT

C

SHFT

M
ORST

P

SHFT

SP
STRN

G

SHFT

C

D

$

STR

GX
OUT

2

SHFT

3

2

K
JMP

C

CV
6
3

E

A
A

0
0

4
2

F
A

5
0

C
A

2
0

G
A

6
0

ENT
ENT

ENT
ENT

DL350 User Manual, 2nd Edition

Standard RLL
Instructions

Handheld Programmer Keystrokes

5--74

Standard RLL Instructions
Accumualtor Logical Instructions

Compare Double
(CMPD)

The Compare Double instruction is a
32--bit instruction that compares the
value in the accumulator with the value
(Aaaa), which is either two consecutive
V--memory locations or an 8--digit (max.)
constant. The corresponding status flag
will be turned on indicating the result of
the comparison.
Operand Data Type

CMPD
A aaa

DL350 Range
A

aaa

V--memory

V

All (See page3--29)

Pointer

P

All V mem. (See page 3--29)

Constant

K

1--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 updated immediately after the instruction is carried out
during the scan of the CPU, therefore, it is 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.
X1

V2000

V2001

LDD

4

5

2

6

7

2

9

9

Acc. 4

5

2

6

7

2

9

9

0

2

6

V2000
Load the value in V2000 and
V2001 into the accumulator

Compared
with

CMPD
V2010
6

Compare the value in the
accumulator with the value
in V2010 and V2011
SP60

7

3

9

5

V2011

V2010

C30

Standard RLL
Instructions

OUT

Handheld Programmer Keystrokes
$

B

STR

1

ENT

SHFT

L
ANDST

D

SHFT

C

SHFT

M
ORST

P

SHFT

SP
STRN

G

SHFT

C

D

$

STR

GX
OUT

2

3

DL350 User Manual, 2nd Edition

D

C

3

2

CV
6
3

D
A
A

2

A

0

C

3
0
0

A

ENT
ENT

0
2

A
A

0
0

ENT
B

1

A

0

ENT

Standard RLL Instructions
Accumulator Logical Instructions

The Compare Formatted compares the
value in the accumulator with a specified
number of discrete locations (1--32). The
instruction requires a starting location
(Aaaa) and the number of bits (Kbbb) to be
compared. The corresponding status flag
will be turned on indicating the result of the
comparison.

Compare
Formatted
(CMPF)

Operand Data Type

CMPF
A aaa
K bbb

DL350 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

----

K

----

1--32

Constant

5--75

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.
DirectSOFT
X1

LDF

C10
K4

CMPF

Y20
K4

SP60

C30

OUT

Load the value of the
specified discrete locations
(C10--C13) into the
accumulator
Compare the value in the
accumulator with the value
of the specified discrete
location (Y20--Y23)

Location

Constant

C10

K4

C13 C12 C11 C10
OFF ON ON OFF

The unused accumulator
bits are set to zero
Acc. 0
Y23 Y22 Y21 Y20

0

0

0

0

0

0

6

Compared
with

ON ON ON OFF
E

Standard RLL
Instructions

DL350 User Manual, 2nd Edition

5--76

Standard RLL Instructions
Accumualtor Logical Instructions

Compare Real
Number
(CMPR)

The Compare Real Number instruction
compares a real number value in the
accumulator with two consecutive
V--memory locations containing a real
number. The corresponding status flag will
be turned on indicating the result of the
comparison. Both numbers being
compared are 32 bits long.
Operand Data Type

CMPR
A aaa

DL350 Range
A

aaa

V--memory

V

All (See p. 3--29)

Pointer

P

All (See p. 3--29)

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 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.
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).
DirectSOFT
X1

R7.0

Load the real number
representation for decimal 7
into the accumulator.

R6.0

Compare the value with the
real number representation
for decimal 6.

LDR

CMPR

Standard RLL
Instructions

SP60

DL350 User Manual, 2nd Edition

C1
OUT

Acc. 4

0

E

0

0

0

0

0

CMPR 4

0

D

0

0

0

0

0

Standard RLL Instructions
Math Instructions

5--77

Math Instructions
Add
(ADD)

Add is a 16 bit instruction that adds a
BCD value in the accumulator with a
BCD value in a V--memory location
(Aaaa). The result resides in the
accumulator. You cannot use a constant
as the parameter in the box.

Operand Data Type

ADD
A aaa

DL350 Range
A

aaa

V--memory

V

All (See page 3--29)

Pointer

P

All V mem. (See page 3--29)

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.
DirectSOFT

V2000

X1

4

9

3

5

The unused accumulator
bits are set to zero
0 0 0 0
4

9

3

5

(Accumulator)
(V2006)

LD
V2000
Load the value in V2000 into
the lower 16 bits of the
accumulator
ADD

+

V2006

Acc.

Add the value in the lower
16 bits of the accumulator
with the value in V2006

2

5

0

0

7

4

3

5

7

4

3

5

OUT
V2010

$

B

STR

SHFT

L
ANDST

D

SHFT

A

D

GX
OUT

0

1

ENT
C

3
3

SHFT

V2010

D

2

C

3

V
AND

A

C

2

A

0
2
0

A
A
B

0
0
1

A
A
A

0
0
0

ENT
G

6

ENT

ENT

DL350 User Manual, 2nd Edition

Standard RLL
Instructions

Copy the value in the lower
16 bits of the accumulator to
V2010
Handheld Programmer Keystrokes

5--78

Standard RLL Instructions
Math Instructions

Add Double
(ADDD)

Add Double is a 32 bit instruction that
adds the BCD value in the accumulator
with a BCD value (Aaaa), which is either
two consecutive V--memory locations or
an 8--digit (max.) BCD constant. The
result resides in the accumulator.

Operand Data Type

ADDD
A aaa

DL350 Range
A

aaa

V--memory

V

All (See page 3--29)

Pointer

P

All V mem. (See page 3--29)

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.
DirectSOFT
X1

V2001
6

LDD

7

V2000

3

9

5

0

2

6

V2000
Load the value in V2000 and
V2001 into the accumulator
ADDD
V2006
Add the value in the
accumulator with the value
in V2006 and V2007

6

7

3

9

5

0

2

6

(Accumulator)

+ 2

0

0

0

4

0

4

6

(V2006 and V2007)

Acc. 8

7

3

9

9

0

7

2

8

7

3

9

9

0

7

2

OUTD

Standard RLL
Instructions

V2010

V2011

Copy the value in the
accumulator to V2010 and
V2011

V2010

Handheld Programmer Keystrokes
$

B

STR

SHFT

L
ANDST

D

SHFT

A

D

GX
OUT

SHFT

0

D

ENT

1
3
3

D
D

3

DL350 User Manual, 2nd Edition

C

3
3

D

2

C

3

SHFT

A

V
AND

C

0
2
2

A
A
A

0
0
0

A
A
B

0
0
1

ENT
G
A

6
0

ENT
ENT

5--79

Standard RLL Instructions
Math Instructions

Add Real is a 32--bit instruction that adds a
real number, which is either two
consecutive V--memory locations or a
32--bit constant, to a real number in the
accumulator. Both numbers must conform
to the IEEE floating point format. The
result is a 32--bit real number that resides
in the accumulator.

Add Real
(ADDR)

Operand Data Type

ADDR
A aaa

DL350 Range
A

aaa

V--memory

V

All (See p. 3--29)

Pointer

P

All V mem (See p. 3--29)

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.
X1

4

LDR

0

E

0

0

0

0

0

R7.0
Load the real number 7.0
into the accumulator

7
+

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

0

0

(decimal)

ADDR
R15.0

V1401
4

Add the real number 15.0 to
the accumulator contents,
which is in real number
format.

OUTD
V1400
Copy the result in the accumulator
to V1400 and V1401.

1

B

V1400
0

0

0

(Hex number)

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

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

Sign Bit

Exponent (8 bits)

1.011 x 2 (exp 4) = 10110. binary= 22 decimal

NOTE: The current HPP does not support real number entry with automatic
conversion to the 32-bit IEEE format. You must use DirectSOFT for this feature.

DL350 User Manual, 2nd Edition

Standard RLL
Instructions

128 + 2 + 1 = 131
131 -- 127 = 4
Implies 2 (exp 4)

Mantissa (23 bits)

5--80

Standard RLL Instructions
Math Instructions

Subtract
(SUB)

Subtract is a 16 bit instruction that
subtracts the BCD value (Aaaa) in a
V--memory location from the BCD value
in the lower 16 bits of the accumulator
The result resides in the accumulator.
You cannot use a constant as the
parameter in the box.

Operand Data Type

SUB
A aaa

DL350 Range
A

aaa

V--memory

V

All (See page 3--29)

Pointer

P

All V mem. (See page 3--29)

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.
V2000

DirectSOFT
X1

2

4

7

5

2

4

7

5

(Accumulator)

1

5

9

2

(V2006)

0

8

8

3

0

8

8

3

LD
V2000
Load the value in V2000 into
the lower 16 bits of the
accumulator

The unused accumulator
bits are set to zero
0 0 0 0

SUB

y
V2006
Acc.

Subtract the value in V2006
from the value in the lower
16 bits of the accumulator
OUT

Standard RLL
Instructions

V2010

V2010

Copy the value in the lower
16 bits of the accumulator to
V2010
Handheld Programmer Keystrokes
$

B

STR

SHFT

L
ANDST

D

SHFT

S
RST

U

GX
OUT

1

ENT
C

3
ISG

SHFT

DL350 User Manual, 2nd Edition

B

2

1

V
AND

C

2

A

0

A

0

A

SHFT

V
AND

C

A

B

A

0

1

0
2
0

ENT
A

0

ENT

A

0

G

6

ENT

Standard RLL Instructions
Math Instructions

Subtract Double
(SUBD)

Subtract Double is a 32 bit instruction that
subtracts the BCD value (Aaaa), which is
either two consecutive V--memory
locations or an 8-digit (max.) constant,
from the BCD value in the accumulator.
The result resides in the accumulator.

Operand Data Type

5--81

SUBD
A aaa

DL350 Range
A

aaa

V--memory

V

All (See page 3--29)

Pointer

P

All V mem. (See page 3--29)

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.
V2001

DirectSOFT
X1

V2000

0

1

0

6

3

2

7

4

0

1

0

6

3

2

7

4

(Accumulator)

6

7

2

3

7

5

(V2006 and V2007)

0

0

3

9

0

8

9

9

0

0

3

9

0

8

9

9

LDD
V2000
Load the value in V2000 and
V2001 into the accumulator
y

SUBD
V2006

ACC.

The in V2006 and V2007 is
subtracted from the value in
the accumulator
OUTD
V2010

V2011

V2010

Handheld Programmer Keystrokes
$

B

STR

1

SHFT

L
ANDST

D

SHFT

S
RST

SHFT

GX
OUT

SHFT

D

3

3

ENT
D
U

C

3
ISG

B
C

1
2

D
A

2

A

0

C

3
0

A

B

1

A

0
2
0

A
A

0
0

ENT
A

0

G

6

ENT

ENT

DL350 User Manual, 2nd Edition

Standard RLL
Instructions

Copy the value in the
accumulator to V2010 and
V2011

5--82

Standard RLL Instructions
Math Instructions

Subtract Real is a 32--bit instruction that
subtracts a real number, which is either
two consecutive V--memory locations or a
32--bit constant, from a real number in the
accumulator. Both numbers must conform
to the IEEE floating point format. The
result is a 32--bit real number that resides
in the accumulator.

Subtract Real
(SUBR)

Operand Data Type

SUBR
A aaa

DL350 Range
A

aaa

V--memory

V

All (See p. 3--29)

Pointer

P

All V mem (See p. 3--29)

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 a valid 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.
DirectSOFT Display
X1

4

LDR

1

B

0

0

0

0

0

R22.0
Load the real number 22.0
into the accumulator.
--

2

2

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

0

0

(decimal)

SUBR
R15.0

V1401
4

Subtract the real number
15.0 from the accululator
contents, which is in real
number format.

OUTD
V1400

E

V1400
0

0

0

(Hex number)

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

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

Sign Bit

Standard RLL
Instructions

Copy the result in the accumulator
to V1400 and V1401.

0

Exponent (8 bits)
128 + 1 = 129
129 -- 127 = 2
Implies 2 (exp 2)

Mantissa (23 bits)
1.11 x 2 (exp 2) = 111. binary= 7 decimal

NOTE: The current HPP does not support real number entry with automatic
conversion to the 32-bit IEEE format. You must use DirectSOFT for this feature.

DL350 User Manual, 2nd Edition

Standard RLL Instructions
Math Instructions

Multiply
(MUL)

Multiply is a 16 bit instruction that
multiplies the BCD value (Aaaa), which is
either a V--memory location or a 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

5--83

MUL
A aaa

DL350 Range
A

aaa

V--memory

V

All (See page 3--29)

Pointer

P

All V mem. (See page 3--29)

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.
DirectSOFT

V2000

X1

LD

1

0

1

0

0

0

V2000
The unused accumulator
bits are set to zero

Load the value in V2000 into
the lower 16 bits of the
accumulator

0

0

0

0

¢

MUL

Acc.

V2006

0

0

(Accumulator)

2

5

(V2006)

0

0

0

2

5

0

0

0

0

0

0

2

5

0

0

0

The value in V2006 is
multiplied by the value in the
accumulator

OUTD

V2011

V2010

V2010

Copy the value in the
accumulator to V2010 and
V2011

$

B

STR

SHFT

L
ANDST

D

SHFT

M
ORST

U

GX
OUT

SHFT

D

1

ENT
C

3
ISG
3

2

L
ANDST

A
C

C

2

A

0
2
0

A
A
B

0
0
1

A
A
A

0
0
0

ENT
G

6

ENT

ENT

DL350 User Manual, 2nd Edition

Standard RLL
Instructions

Handheld Programmer Keystrokes

5--84

Standard RLL Instructions
Math Instructions

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
specified in the instruction. You cannot
use a constant as the parameter in the
box. The lower 8 digits of the results reside
in the accumulator. Upper digits of the
result reside in the accumulator stack.
Operand Data Type

MULD
A aaa

DL350 Range
A

aaa

V--memory

V

All (See p. 3--29)

Pointer

P

----

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
numberis stored in V1400 and V1401. After loading the constant K2 into the
accumulator, we multiply it times 12345678, which is 24691356.
DirectSOFT Display
X1

1

2

3

4

5

4

5

6

Kbc614e

1

Output the number to
V1400 and V1401 using
the OUTD instruction.

OUTD
V1400

2

3

6

Standard RLL
Instructions

SHFT

ENT

SHFT

B(H)

C(H)

SHFT

SHFT

B

C

OUT

SHFT

D

DL350 User Manual, 2nd Edition

(Accumulator)

Acc.

D

L

D

2

4

6

9

1

3

5

6

2

4

6

9

1

3

5

6

V1500

D

6

1

4

ENT

1

4

0

0

ENT
V

8

2

Handheld Programmer Keystrokes
1

7

¢

V1403

K

8

V1400

V1401

Convert the value to
BCD format. It will
occupy eight BCD digits
(32 bits).

BCD

STR

7

Load the hex equivalent
of 12345678 decimal into
the accumulator.

LDD

ENT

(Accumulator)

5--85

Standard RLL Instructions
Math Instructions

The Multiply Real instruction multiplies a
real number in the accumulator with either
a real constant or a real number occupying
two consecutive V-memory locations. The
result resides in the accumulator. Both
numbers must conform to the IEEE
floating point format.

Multiply Real
(MULR)

Operand Data Type

V--memory

MULR
A aaa

DL350 Range
A

aaa

V

All (See p. 3--29)

Pointer

P

All (See p. 3--29)

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 a valid 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.
DirectSOFT Display
X1

4

LDR

0

E

0

0

0

0

0

R 7.0
Load the real number 7.0
into the accumulator.

7

4

0

E

0

0

0

0

0

(Accumulator)

x

1

5

+ 4

1

7

0

0

0

0

0

(MULR)

1

0

5

Acc. 4

2

D

2

0

0

0

0

2

0

(decimal)

MULR
R 15.0

V1401
4

Multiply the accumulator
contents by the real number
15.0

2

D

V1400
0

0

0

(Hex number)

Real Value

OUTD
V1400
Copy the result in the accumulator
to V1400 and V1401.

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

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

Sign Bit

Exponent (8 bits)

1.101001 x 2 (exp 6) = 1101001. binary= 105 decimal

NOTE: The current HPP does not support real number entry with automatic
conversion to the 32-bit IEEE format. You must use DirectSOFT for this feature.

DL350 User Manual, 2nd Edition

Standard RLL
Instructions

128 + 4 + 1 = 133
133 -- 127 = 6
Implies 2 (exp 6)

Mantissa (23 bits)

5--86

Standard RLL Instructions
Math Instructions

Divide
(DIV)

Divide is a 16 bit instruction that divides
the BCD value in the accumulator by a
BCD value (Aaaa), which is either a
V--memory location or a 4-digit (max.)
constant. The first part of the quotient
resides in the accumulator and the
remainder resides in the first stack
location.
Operand Data Type

DIV
A aaa

DL350 Range
A

aaa

V--memory

V

All (See page 3--29)

Pointer

P

All V mem. (See page 3--29)

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.
DirectSOFT

V2000

X1

5

0

0

0

The unused accumulator
bits are set to zero
0 0 0 0
5

0

0

0

(Accumulator)

5

0

(V2006)

0

0

LD
V2000
Load the value in V2000 into
the lower 16 bits of the
accumulator
DIV

­
V2006
1

Acc.

The value in the
accumulator is divided by
the value in V2006

1

Standard RLL
Instructions

V2010

0

V2010

Copy the value in the lower
16 bits of the accumulator to
V2010
Handheld Programmer Keystrokes
B

STR

SHFT

L
ANDST

D

SHFT

D

I

GX
OUT

3

1

ENT
C

3
8

SHFT

DL350 User Manual, 2nd Edition

2

V
AND
V
AND

A
C

C

2

0

0

0

0

0

0

0

First stack location contains
the remainder

OUT

$

0

A

0
2
0

A
A
B

0
0
1

A
A
A

0
0
0

ENT
G

6

ENT

ENT

0

5--87

Standard RLL Instructions
Math 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
locations. You cannot use a constant as
the parameter in the box. The first part of
the quotient resides in the accumulator
and the remainder resides in the first stack
location.
Operand Data Type

DIVD
A aaa

DL350 Range
A

aaa

V--memory

V

All (See p. 3--29)

Pointer

P

All (See p. 3--29)

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.
DirectSOFT Display
X1

V1401
0

LDD

1

V1400

5

0

0

0

0

0

V1400
The unused accumulator
bits are set to zero

Load the value in V1400 and
V1401 into the accumulator
DIVD
V1420

0

1

5

0

0

0

0

0

(Accumulator)

­ 0

0

0

0

0

0

5

0

(V1421 and V1420)

0

0

0

3

0

0

0

0

Acc.

0

The value in the accumulator
is divided by the value in
V1420 and V1421

0

0

0

0

0

0

0

First stack location contains
the remainder

OUTD
0

V1500

0

0

3

V1501

Copy the value in the
accumulator to V1500
and V1501

0

0

0

0

V1500

STR

1

ENT

SHFT

L

V

1

4

0

0

ENT

SHFT

D

I

V

OUT

SHFT

D

V

D

D

V

1

4

2

0

1

5

0

0

ENT

ENT

DL350 User Manual, 2nd Edition

Standard RLL
Instructions

Handheld Programmer Keystrokes

5--88

Standard RLL Instructions
Math Instructions

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
result resides in the accumulator. Both
numbers must conform to the IEEE
floating point format.

Divide Real
(DIVR)

Operand Data Type

V--memory

DIVR
A aaa

DL350 Range
A

aaa

V

All (See p. 3--29)

Pointer

P

All (See p. 3--29)

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 a valid 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.
DirectSOFT Display
X1

4

LDR

1

7

0

0

0

0

0

R15.0
Load the real number 15.0
into the accumulator.

1

5

÷ 1

0

4

1

7

0

0

0

0

0

(Accumulator)

÷ 4

1

2

0

0

0

0

0

(DIVR)

Acc. 3

F

C

0

0

0

0

0

0

0

(decimal)

1 . 5
DIVR
R10.0

V1401
3

Divide the accumulator contents
by the real number 10.0.

F

C

V1400
0

0

0

(Hex number)

Real Value

OUTD
V1400

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

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

Sign Bit

Standard RLL
Instructions

Copy the result in the accumulator
to V1400 and V1401.

8
Acc. 0

Exponent (8 bits)

64 + 32 + 16 + 8 + 4 + 2 + 1 = 127
127 -- 127 = 0
Implies 2 (exp 0)

Mantissa (23 bits)
1.1 x 2 (exp 0) = 1.1 binary= 1.5 decimal

NOTE: The current HPP does not support real number entry with automatic
conversion to the 32-bit IEEE format. You must use DirectSOFT for this feature.

DL350 User Manual, 2nd Edition

Standard RLL Instructions
Math Instructions

Increment
(INC)

The Increment instruction increments a
BCD value in a specified V--memory
location by “1” each time the instruction is
executed.

Decrement
(DEC)

The Decrement instruction decrements a
BCD value in a specified V--memory
location by “1” each time the instruction is
executed.

Operand Data Type

5--89

INC
A aaa

DEC
A aaa

DL350 Range
A

aaa

V--memory

V

All (See p. 3--29)

Pointer

P

All (See p. 3--29)

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.
X1

V1400

C5

( PD )
C5

8

9

8

9

3

5

INC
V1400

V1400

Increment the value in
V1400 by “1”.

3

6

Handheld Programmer Keystrokes
STR
SHFT

I

C

5

N

C

ENT
V

1

4

0

0

ENT

In the following decrement example, when C5 is on the value in V1400 is decreased
by one.
V1400

C5

( PD )
C5

8

9

8

9

5

DEC
V1400

V1400

Decrement the value in
V1400 by “1”.
Handheld Programmer Keystrokes
STR
SHFT

3

Standard RLL
Instructions

X1

D

C

5

E

C

3

4

ENT
V

1

4

0

0

ENT

DL350 User Manual, 2nd Edition

5--90

Standard RLL Instructions
Math Instructions

Add Binary
(ADDB)

Add Binary is a 16 bit instruction that adds
the binary value in the lower 16 bits of the
accumulator with a binary value (Aaaa),
which is either a V--memory location or a
16-bit constant. The result can be up to 32
bits and resides in the accumulator.

Operand Data Type

ADDB
A aaa

DL350 Range
A

aaa

V--memory

V

All (See p. 3--29)

Pointer

P

All V mem (See p. 3--29)

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 a 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.
DirectSOFT Display
X1

V1400
0

A

0

5

The unused accumulator
bits are set to zero
0 0 0 0
0

A

0

5

(Accumulator)

1

2

C

4

(V1420)

1

C C

9

1

C C

9

LD
V1400
Load the value in V1400 into the
lower 16 bits of the accumulator
ADDB

+

V1420

Acc.

The binary value in the
accumulator is added to the
binary value in V1420

OUTD
V1500

V1500

Standard RLL
Instructions

Copy the value in the lower
16 bits of the accumulator to
V1500 and V1501
Handheld Programmer Keystrokes
STR

X(IN)

1

ENT

SHFT

L

D

V

1

SHFT

A

D

D

B

OUT

SHFT

D

DL350 User Manual, 2nd Edition

V

4

1

0

0

ENT

V

1

4

2

5

0

0

ENT

0

ENT

Standard RLL Instructions
Math Instructions

Subtract Binary
(SUBB)

Subtract Binary is a 16 bit instruction that
subtracts the binary value (Aaaa), which is
either a V--memory location or a 4--digit
(max.) binary constant, from the binary
value in the accumulator. The result
resides in the accumulator.

Operand Data Type

5--91

SUBB
A aaa

DL350 Range
A

aaa

V--memory

V

All (See p. 3--29)

Pointer

P

All (See p. 3--29)

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.
DirectSOFT Display
X1

V1400
1

0

2

4

The unused accumulator
bits are set to zero
0 0 0 0
1

0

2

4

(Accumulator)

0

A

0

B

(V1420)

0

6

1

9

0

6

1

9

LD
V1400
Load the value in V1400 into the
lower 16 bits of the accumulator
SUBB

y
V1420
Acc.

The binary value in V1420 is
subtracted from the value in
the accumulator

OUT
V1500

V1500

Copy the value in the lower 16
bits of the accumulator to V1500

Standard RLL
Instructions

Handheld Programmer Keystrokes
STR

X(IN)

1

L

D

V

SHFT

S

SHFT

U

B

B

V

1

4

2

0

ENT

OUT

SHFT

D

V

1

SHFT

ENT
1

4

0

0

ENT

5

0

0

ENT

DL350 User Manual, 2nd Edition

5--92

Standard RLL Instructions
Math Instructions

Multiply Binary
(MULB)

Multiply Binary is a 16 bit instruction that
multiplies the binary value (Aaaa), which
is either a V--memory location or a 4--digit
(max.) binary constant, by the binary value
in the accumulator. The result can be up to
32 bits and resides in the accumulator.

Operand Data Type

MULB
A aaa

DL350 Range
A

aaa

V--memory

V

All (See p. 3--29)

Pointer

P

All (See p. 3--29)

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.
DirectSOFT Display
X1

V1400
0

A

0

The unused accumulator
bits are set to zero
0
0 0 0 0

A

0

1

(Accumulator)

0

0

2

E

(V1420)

LD

1

V1400
Load the value in V1400 into the
lower 16 bits of the accumulator
MULB

¢

V1420

Acc.

The binary value in V1420 is
multiplied by the binary
value in the accumulator

OUTD
V1500

0

0

0

1

C

C

2

E

0

0

0

1

C

C

2

E

V1501

V1500

Copy the value in the lower
16 bits of the accumulator to
V1500 and V1501
Handheld Programmer Keystrokes

Standard RLL
Instructions

STR

X

1

SHFT

L

D

V

1

SHFT

M

U

L

B

OUT

SHFT

D

DL350 User Manual, 2nd Edition

ENT

V

4

1

0

0

ENT

V

1

4

2

5

0

0

ENT

0

ENT

5--93

Standard RLL Instructions
Math Instructions

Divide Binary
(DIVB)

Divide Binary is a 16 bit instruction that
divides the binary value in the
accumulator by a binary value (Aaaa),
which is either a V--memory location or a
16--bit (max.) binary constant. The first
part of the quotient resides in the
accumulator and the remainder resides in
the first stack location.
Operand Data Type

DIVB
A aaa

DL350 Range
A

aaa

V--memory

V

All (See p. 3--29)

Pointer

P

All (See p. 3--29)

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.
DirectSOFT Display
X1

V1400
A

0

1

F

A

0

1

(Accumulator)

0

0

5

0

(V1420)

0

3

2

0

F

LD
V1400
Load the value in V1400 into the
lower 16 bits of the accumulator

The unused accumulator
bits are set to zero
0

0
DIVB

0

0

­
V1420
Acc.

The binary value in the
accumulator is divided by
the binary value in V1420

0

0

0

0

0

0

0

0

First stack location contains
the remainder

0

OUT
V1500

3

2

0

V1500

Copy the value in the lower 16
bits of the accumulator to V1500

STR

X

1

ENT

SHFT

L

D

V

1

SHFT

D

I

V

B

OUT

SHFT

D

V

4

1

0

0

ENT

V

1

4

2

5

0

0

ENT

0

DL350 User Manual, 2nd Edition

ENT

Standard RLL
Instructions

Handheld Programmer Keystrokes

5--94

Standard RLL Instructions
Math Instructions

Increment Binary
(INCB)

The
Increment
Binary
instruction
increments a binary value in a specified
V--memory location by “1” each time the
instruction is executed.

INCB
A aaa

Operand Data Type

DL350 Range
A

aaa

V--memory

V

All (See page 3--29)

Pointer

P

All V mem. (See page 3--29)

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 binary value in V2000 is increased by 1.
DirectSOFT

V2000

C5

INCB

4

A

4

A

3

C

V2000
Increment the binary value
in the accumulator by“1”

V2000
3

D

Handheld Programmer Keystrokes
$

STR
I

8

C

N
TMR

C

Standard RLL
Instructions

SHFT

SHFT

DL350 User Manual, 2nd Edition

2
2

F
B

5
1

ENT
C

2

A

0

A

0

A

0

ENT

Standard RLL Instructions
Math Instructions

Decrement Binary
(DECB)

The Decrement Binary instruction
decrements a binary value in a specified
V--memory location by “1” each time the
instruction is executed.

Operand Data Type

5--95

DECB
A aaa

DL350 Range
A

aaa

V--memory

V

All (See page 3--29)

Pointer

P

All V mem. (See page 3--29)

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.
V2000

DirectSOFT
C5

DECB

4

A

4

A

3

C

V2000
Decrement the binary value
in the accumulator by“1”

V2000
3

B

Handheld Programmer Keystrokes
$

STR

SHFT

D

3

SHFT

C

E

C

4

2
2

F
B

5
1

ENT
C

2

A

0

A

0

A

0

ENT

Standard RLL
Instructions

DL350 User Manual, 2nd Edition

5--96

Standard RLL Instructions
Bit Operation Instructions

Bit Operation Instructions
The Sum instruction counts number of bits
that are set to “1” in the accumulator. The
HEX result resides in the accumulator.

Sum
(SUM)

SUM

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.
DirectSOFT Display
X1

X17 X16 X15 X14 X13 X12 X11 X10
LDF

ON ON OFF OFF ON OFF ON ON

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
Acc.

0

0

0

0

0

0

0

0

0

0

0

0

Acc. 0

SUM

0

0

0

0

0

0

0

0

0

0

0

0

0

0

5

0

0

0

5

0

Sum the number of bits in
the accumulator set to “1”

OUT
V1500

V1500

Copy the value in the lower
16 bits of the accumulator
to V1500

Handheld Programmer Keystrokes
STR

X

1

ENT

SHFT

L

D

F

SHFT

S

SHFT

U

M

ENT

V

1

5

0

Standard RLL
Instructions

OUT

X

DL350 User Manual, 2nd Edition

1

0

0

K

8

ENT

0

0

8

7

6 5

4 3

2

1

0

0

1

1

0

0

1

1

0

1

5--97

Standard RLL Instructions
Bit Operation Instructions

Shift Left is a 32 bit instruction that shifts
the bits in the accumulator a specified
number (Aaaa) of places to the left. The
vacant positions are filled with zeros and
the bits shifted out of the accumulator are
lost.

Shift Left
(SHFL)

Operand Data Type

SHFL
A aaa

DL350 Range
A

aaa

V--memory

V

All (See page 3--29)

Constant

K

1--32

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.
DirectSOFT

V2001

X1

6

LDD

7

0

V2000
5

3

1

0

1

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
SHFL

Acc.

K2
The bit pattern in the
accumulator is shifted 2 bit
positions to the left

0

1

1

0

0

1

1

1

0

0

0

0

0

1

0

1

0

0

1

1

0

0

0

8

7

6 5

4 3

2

1

0

1

0

0

0

0

0

0

1

S S

Shifted out of the
accumulator

0

S S

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

Copy the value in the
accumulator to V2010 and
V2011

Acc.

0
1

0

0

0
1

0
1

1

0

9

B

STR

1

L
ANDST

D

SHFT

S
RST

SHFT

GX
OUT

SHFT

D

3

3

0

C

1

4

0

0
1

0

0
1

0

0

1

1

0

0

0

1

0

C

8

7

6 5

4 3

2

1

0

0

0

0

0

1

0

0

4

0

4

0

0

V2010

ENT
D
H

C

3
7

F
C

5
2

2

A

0

L
ANDST
A

0

A
C

B

1

A

0
2
0

A

0

ENT

ENT

Standard RLL
Instructions

SHFT

0

V2011

Handheld Programmer Keystrokes
$

0

ENT

DL350 User Manual, 2nd Edition

5--98

Standard RLL Instructions
Bit Operation Instructions

Shift Right is a 32 bit instruction that shifts
the bits in the accumulator a specified
number (Aaaa) of places to the right. The
vacant positions are filled with zeros and
the bits shifted out of the accumulator are
lost.

Shift Right
(SHFR)

Operand Data Type

SHFR
A aaa

DL350 Range
A

aaa

V--memory

V

All (See page 3--29)

Constant

K

1--32

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.
DirectSOFT

V2001

X1

Constant 6

LDD

7

0

V2000
5

3

1

0

1

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
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

8

7

6 5

4 3

2

1

0

1

0

0

0

0

0

1

0

0

K2
The bit pattern in the
accumulator is shifted 2 bit
positions to the right

S S

S S

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
Acc.

Copy the value in the
accumulator to V2010 and
V2011

0

0

0

0
1

0
1

1
0

0

1

0
1

0
1

0
1

9

C

1

V2011
Handheld Programmer Keystrokes

Standard RLL
Instructions

$

B

STR

1

SHFT

L
ANDST

D

SHFT

S
RST

SHFT

GX
OUT

SHFT

D

3

3

ENT
D
H

C

3
7

F
C

5
2

2

A

0

R
ORN
A

0

A
C

B

1

A

DL350 User Manual, 2nd Edition

0
2
0

A

0

ENT
ENT

ENT

0

0

0

0

0

0
1

0

1

0

0

1

1

0

4

8

7

6 5

4 3

2

1

0

0

0

1

0

0

0

0

C

4

0

V2010

0

0

5--99

Standard RLL Instructions
Bit Operation Instructions

Rotate Left is a 32 bit instruction that rotates
the bits in the accumulator a specified
number (Aaaa) of places to the left.

Rotate Left
(ROTL)

Operand Data Type

ROTL
A aaa

DL350 Range
A

aaa

V--memory

V

All (See p. 3--29)

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.
DirectSOFT Display
X1

V1401

LDD

6

V1400

7

0

V1400
5

3

1

0

1

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

ROTL
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

8

7

6 5

4 3

2

1

0

1

0

0

0

0

0

0

1

The bit pattern in the
accumulator is rotated 2
bit positions to the left

S S

0

S S

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

Copy the value in the
accumulator to V1500
and V1501

Acc.

0
1

0

0

0
1

0
1

1

0

9

STR

X

1

D

D
T

SHFT

R

O

OUT

SHFT

D

0

C

1

4

0

0
1

0

0
1

0

0

1

1

0

0

0

1

0

C

8

7

6 5

4 3

2

1

0

0

0

0

0

1

0

1

4

0

5

0

0

V1500

ENT
V
L
V

1

1

4

0

K

2

ENT

5

0

0

0

ENT

DL350 User Manual, 2nd Edition

Standard RLL
Instructions

L

0

V1501

Handheld Programmer Keystrokes

SHFT

0

5--100

Standard RLL Instructions
Bit Operation Instructions

Rotate Right is a 32 bit instruction that
rotates the bits in the accumulator a
specified number (Aaaa) of places to the
right.

Rotate Right
(ROTR)

Operand Data Type

ROTR
A aaa

DL350 Range
A

aaa

V--memory

V

All (See p. 3--29)

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.
DirectSOFT Display
X1

V1401
LDD

6

7

0

V1400
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

ROTR

Acc.

K2

8

7

6 5

4 3

2

1

0

0

1

0

0

0

0

0

0

1

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

1

0

0

0

0

C

4

0

0

1

1

0

0

The bit pattern in the
accumulator is rotated 2
bit positions to the right

1

1

S S

1

0

0

0

0

0

1

0

1

0

0

1

1

0

0

0

S S

OUTD
V1500
Copy the value in the
accumulator to V1500
and V1501

Acc.

0

0
1

0

0
1

0
1

1
0

0

5

Standard RLL
Instructions

X

0
1

0
1

9

C

1

0

0

0

1

SHFT

L

D

D

SHFT

R

O

T

OUT

SHFT

D

V

V

1

DL350 User Manual, 2nd Edition

0

0
1

0

1

0

0

1

1

0

V1500

ENT

R

0

4

V1501

Handheld Programmer Keystrokes
STR

0
1

1

4

0

K

2

ENT

5

0

0

0

ENT

0

0

5--101

Standard RLL Instructions
Bit Operation Instructions

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 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.

Encode
(ENCO)

ENCO

Discrete Bit Flags

Description

SP53

On when the value of the operand is larger than the accumulator can work
with.

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.
V2000

DirectSOFT
X1

1

LD

0

0

0

V2000
Load the value in V2000 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

0

0

0

0

0

0

0

0

0

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

1

0

0

Acc.

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

0

0

Bit postion 12 is
converted
to binary
ENCO

Encode the bit position set
to “1” in the accumulator to a
5 bit binary 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

1

OUT
V2010
0

Copy the value in the lower 16 bits
of the accumulator to V2010

0

0

C

Handheld Programmer Keystrokes
$

B

STR

1

ENT

SHFT

L
ANDST

D

SHFT

E

N
TMR

C

SHFT

V
AND

GX
OUT

4

C

3
2

2

O
INST#
C

2

A

0

A

0

A

0

ENT

ENT
A

0

B

1

A

0

ENT

DL350 User Manual, 2nd Edition

Binary value
for 12.

Standard RLL
Instructions

V2010

5--102

Standard RLL Instructions
Bit Operation Instructions

The Decode instruction decodes a 5 bit
binary value of 0--31 (0--1F HEX) in the
accumulator by setting the appropriate bit
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.

Decode
(DECO)

DECO

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.
DirectSOFT

X14 X13 X12 X11 X10

X1

LDF

OFF ON OFF ON ON

X10
K5

Load the value in
represented by discrete
locations X10--X14 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
Acc.

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

8

7

6 5

4 3

2

1

0

0

0

0

0

0

1

1

0

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
Decode the five bit binary
pattern in the accumulator
and set the corresponding
bit position to a “1”

Acc.

0

0

0

0

0

0

0

Handheld Programmer Keystrokes
$

B

STR

SHFT

L
ANDST

D

SHFT

D

E

3
4

ENT
F
C

B

5
2

O
INST#

1

A

0

ENT

Standard RLL
Instructions

3

1

1

DL350 User Manual, 2nd Edition

F

5

ENT

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

0

8

7

6 5

4 3

2

1

0

0

0

0

0

0

0

0

0

0

5--103

Standard RLL Instructions
Number Conversion Instructions

Number Conversion Instructions (Accumulator)
The Binary instruction converts a BCD
value in the accumulator to the equivalent
binary value. The result resides in the
accumulator.

Binary
(BIN)

BIN

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.)
DirectSOFT

V2001

X1

0

LDD

V2000

0

0

2

8

5

2

9

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
Binary Equivalent Value

BIN

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
Convert the BCD value in
the accumulator to the
binary equivalent value

Acc.

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

1

1

0

1

1

1

1

0

1

1

1

0

0

0

1

2
1
4
7
4
4
8
3
6
4
8

1
0
7
3
7
4
1
8
2
4

5
3
6
8
7
0
9
1
2

2
6
8
4
3
5
4
5
6

1
3
4
2
1
7
7
2
8

6
7
1
0
8
8
6
4

3
3
5
5
4
4
3
2

1
6
7
7
7
2
1
6

8
3
8
8
6
0
8

4
1
9
4
3
0
4

2
0
9
7
1
5
2

1
0
4
8
5
7
6

5
2
4
2
8
8

2
6
2
1
4
4

1
3
1
0
7
2

6
5
5
3
6

3
2
7
6
8

1
6
3
8
4

8
1
9
2

4
0
9
6

2
0
4
8

1
0
2
4

5
1
2

2
5
6

1 6
2 4
8

3
2

1 8
6

4

2

1

F

7

1

OUTD
V2010
0

Copy the binary value in the
accumulator to V2010 and V2011

0

0

V2011

0

6

V2010

The binary (HEX) value
copied to V2010

Standard RLL
Instructions

Handheld Programmer Keystrokes
$

B

STR

SHFT

L
ANDST

D

SHFT

B

I

GX
OUT

SHFT

1

D

1
3
8
3

ENT
D

C

3

N
TMR

2

A

0

A

0

A

0

ENT

ENT
C

2

A

0

B

1

A

0

ENT

DL350 User Manual, 2nd Edition

5--104

Standard RLL Instructions
Number Conversion Instructions

The Binary Coded Decimal instruction
converts a binary value in the accumulator
to the equivalent BCD value. The result
resides in the accumulator.

Binary Coded
Decimal
(BCD)

BCD

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.
DirectSOFT

V2001

X1

0

LDD

0

0

V2000
0

6

F

7

1

Binary Value

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
Acc.

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

1

1

0

1

1

1

1

0

1

1

1

0

0

0

1

2
1
4
7
4
4
8
3
6
4
8

1
0
7
3
7
4
1
8
2
4

5
3
6
8
7
0
9
1
2

2
6
8
4
3
5
4
5
6

1
3
4
2
1
7
7
2
8

6
7
1
0
8
8
6
4

3
3
5
5
4
4
3
2

1
6
7
7
7
2
1
6

8
3
8
8
6
0
8

4
1
9
4
3
0
4

2
0
9
7
1
5
2

1
0
4
8
5
7
6

5
2
4
2
8
8

2
6
2
1
4
4

1
3
1
0
7
2

6
5
5
3
6

3
2
7
6
8

1
6
3
8
4

8
1
9
2

4
0
9
6

2
0
4
8

1
0
2
4

5
1
2

2
5
6

1 6
2 4
8

3
2

1 8
6

4

2

1

BCD

16384 + 8192 + 2048 + 1024 + 512 + 256 + 64 + 32 + 16 + 1 = 28529

Convert the binary value in
the accumulator to the BCD
equivalent value

BCD Equivalent Value

Acc.

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

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

0

2

8

5

2

OUTD
V2010
Copy the BCD value in the
accumulator to V2010 and V2011

0

V2011

Handheld Programmer Keystrokes

Standard RLL
Instructions

$

B

STR

SHFT

L
ANDST

D

SHFT

B

C

GX
OUT

SHFT

1

D

1
3
2
3

ENT
D
D

C

3
3

2

A

0

A

0

A

0

ENT
C

2

A

0

0

B

1

A

DL350 User Manual, 2nd Edition

0

ENT

ENT

V2010

9

The BCD value
copied to
V2010 and V2011

5--105

Standard RLL Instructions
Number Conversion Instructions

The Invert instruction inverts or takes the
one’s complement of the 32 bit value in the
accumulator. The result resides in the
accumulator.

Invert
(INV)

INV

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.
DirectSOFT

V2001

X1

0

LDD

4

0

V2000
5

0

2

5

0

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
Acc.

INV
Acc.

8

7

6 5

4 3

2

1

0

1

0

0

1

1

0

0

0

0

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

1

1

0

0

1

1

1

0

1

0

1

0

0

1

1

0

1

1

0

0

1

0

1

0

1

0

1

0

1

0

1

0

1

1

0

0

1

0

1

0

1

F

A

F

0

0

0

1

1

1

D

A

F

0

1

0

1

0

0

1

1

Invert the binary bit pattern
in the accumulator

F

OUTD
V2010

B

V2011

V2010

Copy the value in the
accumulator to V2010 and
V2011

Handheld Programmer Keystrokes
$

B

STR

1

SHFT

L
ANDST

D

SHFT

I

N
TMR

GX
OUT

SHFT

8

D

3

3

ENT
D

C

3

V
AND

2

A

0

A

0

A

0

ENT

ENT
C

2

A

0

B

1

A

0

ENT

Standard RLL
Instructions

DL350 User Manual, 2nd Edition

5--106

Standard RLL Instructions
Number Conversion Instructions

Ten’s Complement
(BCDCPL)

The Ten’s Complement instruction takes
the 10’s complement (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

BCDCPL

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.
DirectSOFT

V2000

V2001

X1

0

0

0

0

0

0

8

7

Acc. 0

0

0

0

0

0

8

7

Acc. 9

9

9

9

9

9

1

3

9

9

9

9

9

9

1

3

LDD
V2000
Load the value in V2000 and
V2001 into the accumulator

BCDCPL

Takes a 10’s complement of
the value in the accumulator
OUTD
V2010

V2011

Copy the value in the
accumulator to V2010 and
V2011

V2010

Handheld Programmer Keystrokes
$

B

STR

SHFT

L
ANDST

D

SHFT

B

C

GX
OUT

SHFT

D

3
2
3

Standard RLL
Instructions

1

1

DL350 User Manual, 2nd Edition

ENT
D
D

C

3
3

C
C

2
2

P
A

2
CV
0

A

0

L
ANDST
B

1

A

0

A

0

ENT
A

0

ENT

ENT

5--107

Standard RLL Instructions
Number Conversion Instructions

The Binary-to-Real instruction converts a
binary value in 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.

Binary to Real
Conversion
(BTOR)

BTOR

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.
DirectSOFT Display
X1

V1401
0

LDD

V1400

0

0

5

7

2

4

1

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

1

0

1

0

0

0

0

0

1

0

0

0

0

0

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

Sign Bit

1

0

0

1

0

0

0

1

0

1

0

1

1

1

0

0

Exponent (8 bits)

0

Mantissa (23 bits)

Real Number Format

OUTD
V1500
4

8

A

E

4

V1501

8

2

V1500

0

The real number (HEX) value
copied to V1500

Handheld Programmer Keystrokes
STR
SHFT

L

X

1

D

D
O

SHFT

B

T

OUT

SHFT

D

ENT
V

1

R

SHFT

ENT

V

1

5

4

0

0

0

0

ENT

ENT

DL350 User Manual, 2nd Edition

Standard RLL
Instructions

Copy the real value in the
accumulator to V1500 and V1501

5--108

Standard RLL Instructions
Number Conversion Instructions

The Real-to-Binary instruction converts the
real number in the 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.

Real to Binary
Conversion
(RTOB)

RTOB

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 a 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.
DirectSOFT Display
X1

4

LDD

8

A

E

4

V1401

V1400
Load the value in V1400 and
V1401 into the accumulator

Sign Bit

Exponent (8 bits)

Acc. 0

1

0

0

1

0

0

0

1

8

2

0

Real Number Format

V1400

Mantissa (23 bits)

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
format.

128 + 16 + 1 = 145
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

5

7

OUTD
V1500
Copy the real value in the
accumulator to V1500 and V1501

V1501

Standard RLL
Instructions

0

0

0

V1500

Handheld Programmer Keystrokes
X

1

SHFT

STR
L

D

D

SHFT

R

T

O

OUT

SHFT

D

ENT
V

1

B

SHFT

ENT

V

1

5

DL350 User Manual, 2nd Edition

4

0

0

0

0

ENT

ENT

2

4

1

The binary number copied to
V1400.

Standard RLL Instructions
Number Conversion Instructions

ASCII to HEX
(ATH)

5--109

The ASCII TO HEX instruction converts a
ATH
table of ASCII values to a specified table of
V aaa
HEX values. ASCII values are two digits
and their HEX equivalents are one digit.
This means an ASCII table of 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

DL350 Range
aaa

V--memory

V

All (See p. 3--29)

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
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

DL350 User Manual, 2nd Edition

Standard RLL
Instructions

ASCII Value

5--110

Standard RLL Instructions
Number Conversion Instructions

DirectSOFT Display
X1

LD
K4

V1400

Convert octal 1400 to HEX
300 and load the value into
the accumulator

LDA
O 1400

V1600

V1401

31 32

V1402

37 38

Handheld Programmer Keystrokes

SHFT

X
L

33 34

1

V1403

ENT

V1600

5678

V1601

D

K

4

ENT

35 36

SHFT

L

D

A

O

1

4

0

0

ENT

SHFT

A

T

H

V

1

6

0

0

ENT

HEX to ASCII
(HTA)

1234

V1600 is the starting
location for the HEX table

ATH

STR

Hexadecimal
Equivalents

ASCII TABLE

Load the constant value
into the lower 16 bits of the
accumulator. This value
defines the number of V
memory location in the
ASCII table

The HEX to ASCII instruction converts a
table of HEX values to a specified table of
ASCII values. HEX values are one digit and
their ASCII equivalents are two digits.

HTA
V aaa

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.

Standard RLL
Instructions

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.
Operand Data Type

DL350 Range
aaa

V--memory

V

DL350 User Manual, 2nd Edition

All (See p. 3--29)

5--111

Standard RLL Instructions
Number Conversion Instructions

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.
DirectSOFT Display
X1

Hexadecimal
Equivalents

LD

ASCII TABLE

K2
Load the constant value into
the lower 16 bits of the
accumulator. This value
defines the number of V
locations in the HEX table.

33 34

V1400

31 32

V1401

37 38

V1402

35 36

V1403

1234

V1500
LDA
O 1500
Convert octal 1500 to HEX
340 and load the value into
the accumulator

HTA
V1400

5678

V1501

V1400 is the starting
location for the ASCII table.
The conversion is executed
by this instruction.
Handheld Programmer Keystrokes
STR

X

SHFT

1

ENT

L

D

4

ENT

SHFT

L

D

A

K

O

1

5

0

0

ENT

SHFT

H

T

A

V

1

4

0

0

ENT

The table below lists valid ASCII values for HTA conversion.
ASCII Values Valid for HTA Conversion
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

DL350 User Manual, 2nd Edition

Standard RLL
Instructions

Hex Value

5--112

Standard RLL Instructions
Number Conversion Instructions

The BCD / Segment instruction converts a
four digit HEX value in the accumulator to
seven segment display format. The result
resides in the accumulator.

Segment
(SEG)

SEG

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.
DirectSOFT Display
X1

V1400
6

LD

F

7

1

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
Acc.

8

7

6 5

4 3

2

1

0

1

1

0

1

1

0

0

0

1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

1

0

1

1

1

SEG

Convert the binary (HEX)
value in the accumulator to
seven segment display
format

OUTF

Y20
K32

Copy the value in the
accumulator to Y20--Y57

Acc.

8

7

6 5

4 3

2

1

0

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
Labels

Y57 Y56 Y55 Y54 Y53

g
e

S S

OFF ON ON ON ON

S S

S S

c
d

Standard RLL
Instructions

Handheld Programmer Keystrokes
STR
L

X
D

SHFT

S

SHFT

OUT

SHFT

F

1

ENT

V

1

4

E

G

ENT

Y

2

DL350 User Manual, 2nd Edition

0

0

0

ENT

K

3

2

S S

Y24 Y23 Y22 Y21 Y20
OFF OFF ON ON OFF

5--113

Standard RLL Instructions
Number Conversion Instructions

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 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.

Gray Code
(GRAY)

GRAY

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.
DirectSOFT

X27 X26 X25

X1

LDF

S S

OFF OFF OFF

K16

X12 X11 X10

S S

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
Acc.

GRAY
Acc.

8

7

6 5

4 3

2

1

0

0

0

0

0

0

0

1

0

1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

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

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

8

7

6 5

4 3

2

1

0

0

0

0

0

0

1

1

0

0

0

0

6

0

0

Convert the 16 bit grey code
value in the accumulator to a
BCD value
OUT
V2010

V2010

Copy the value in the lower
16 bits of the accumulator to
V2010
Gray Code
Handheld Programmer Keystrokes
$

B

STR

SHFT

GX
OUT

G

6

D

3

F

B

5

R
ORN

A

SHFT

V
AND

0

Y
MLS
C

2

1

A

B

0

1

ENT
A

0

B

1

A

0

ENT

G

6

ENT

0000000000

0000

0000000001

0001

0000000011

0002

0000000010

0003

0000000110

0004

0000000111

0005

0000000101

0006

0000000100

0007

S
S

S
S

S

S

1000000001

1022

1000000000

1023

DL350 User Manual, 2nd Edition

Standard RLL
Instructions

SHFT

L
ANDST

1

ENT

BCD

5--114

Standard RLL Instructions
Number Conversion Instructions

Shuffle Digits
(SFLDGT)

The Shuffle Digits instruction shuffles a
maximum of 8 digits rearranging them in a
specified order. This function 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.

SFLDGT

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.
Note:— If the number used to specify the order contains a 0 or 9--F, the
corresponding position will be set to 0.
See example on the next page.
Note:—If the number used to specify the order contains duplicate numbers, the
most significant duplicate number is valid. The result resides in the accumulator.
See example on the next page.
Step 3:— Insert the SFLDGT instruction.
Shuffle Digits
Block Diagram

There are a maximum of 8 digits that can
be shuffled. The bit positions in the first
level of the accumulator stack defines the
digits to be shuffled. They correspond to
the bit positions in the accumulator that
define the order the digits will be shuffled.
The digits are shuffled and the result
resides in the accumulator.

Digits to be
shuffled (first stack location)
9

A

B

C D

E

F

0

1

2

8

7

6

5

4

3

Specified order (accumulator)
Bit Positions

8

7

6

5

4

3

2

1

B

C

E

F

0

D

A

9

Standard RLL
Instructions

Result (accumulator)

DL350 User Manual, 2nd Edition

5--115

Standard RLL Instructions
Number Conversion Instructions

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.
DirectSOFT

A

X1

B

V2001

LDD
9

V2000
Load the value in V2000 and
V2001 into the accumulator

A

B

V2000
C

Original
8 7 6 5
bit
Positions 9 A B C

D

E

1

V2006
Load the value in V2006 and
V2007 into the accumulator

Specified
order

New bit
Positions

SFLDGT

8
1

8

2

7
2

7

8

4

3

2

1

E

F

0

3

6

6

5
7

6

0

Acc.

F

5

5

E

4

3

2

1

3

6

5

4

4

3

2

1

B

C

E

F

0

D

A

9

B

C

E

F

0

D

A

9

V2001

C

B

A

9

8 7 6 5
0 F E D

4
C

3
B

2
A

1
9

0

0

2

1

4

3

2

1

0

0

2

1

V2007
4

C
V2000

D

V2006
7

8

0

D

V2007

LDD

F

V2001

0

0

8

7
0

4

6
4

9

Acc.

5
3

B

V2000
C

D

E

F

0

8

7

6

5

4

3

2

1

9

A

B

C

D

E

F

0

4

3

1

4

3

2

1

V2006
3

A

V2007

Acc.

0

Acc.

8 7 6 5
0 0 0 0

4
E

3 2
D A

1
9

0

E

D

9

2

Acc.

V2006

8

7

6

5

4

3

2

1

Acc.

4

3

2

1

4

3

2

1

8

7

6

5

4

3

2

1

Acc.

0

0

0

0

9

A

B

C

0

0

0

0

9

A

B

C

Acc.

Acc.

Shuffle the digits in the first
level of the accumulator
stack based on the pattern
in the accumulator. The
result is in the accumulator.
OUTD
V2010

V2011

0

0

V2011

V2010

0

A

V2010

V2011

V2010

Copy the value in the
accumulator to V2010 and
V2011

Handheld Programmer Keystrokes
$

B

STR

1

L
ANDST

D

SHFT

L
ANDST

D

SHFT

S
RST

SHFT

GX
OUT

SHFT

D

3
3

3

D
D
F

C

3

C

3
5

L
ANDST

D

C

A

2

2
2
3
0

A
A
G
B

0
0
6
1

A
A

0
0

A
G

0
6

T
MLR

ENT

A

ENT

0

ENT

Standard RLL
Instructions

SHFT

ENT

ENT

DL350 User Manual, 2nd Edition

5--116

Standard RLL Instructions
Table Instructions

Table Instructions
The Move instruction moves the values
from a V--memory table to another
V--memory table the same length. 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 Move function.

Move
(MOV)

MOV
V aaa

Step 1:— Load the number of V--memory locations to be moved into the first level
of the accumulator stack. This parameter must be a HEX value.
Step 2:— Load the starting V--memory location for the locations to be moved into
the accumulator. This parameter must be 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

DL350 Range
aaa

V--memory

V

All (See page 3--29)

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.
X1

LD
K6

LDA

Convert octal 2000 to HEX
400 and load the value into
the accumulator

O 2000

Copy the specified table
locations to a table
beginning at location V2030

MOV

Standard RLL
Instructions

S
S

Load the constant value 6
(HEX) into the lower 16 bits
of the accumulator

V2030
Handheld Programmer Keystrokes
$

B

STR

1

SHFT

L
ANDST

D

SHFT

L
ANDST

D

SHFT

M
ORST

O
INST#

ENT
SHFT

3
3

A

0

V
AND

K
JMP

G

C

A

C

2
2

A

DL350 User Manual, 2nd Edition

6
0
0

A
D

0
3

X

X

X

X V1776

X

X

X

X V2026

X

X

X

X V1777

X

X

X

X V2027

0

1

2

3 V2000

0

1

2

3 V2030

0

5

0

0 V2001

0

5

0

0 V2031

9

9

9

9 V2002

9

9

9

9 V2032

3

0

7

4 V2003

3

0

7

4 V2033

8

9

8

9 V2004

8

9

8

9 V2034

1

0

1

0 V2005

1

0

1

0 V2035

X

X

X

X V2006

X

X

X

X V2036

X

X

X

X V2007

X

X

X

X V2037

S
S

ENT
A
A

0
0

ENT
ENT

S
S

S
S

Standard RLL Instructions
Table Instructions

Move Memory
Cartridge /
Load Label
(MOVMC)
(LDLBL)

The Move Memory Cartridge instruction is
used to copy data between V--memory
and program ladder memory. The Load
Label instruction is only used with the
MOVMC instruction when copying data
from program ladder memory to
V--memory.
To copy data between V--memory and
program ladder memory, the function
parameters are loaded into the first two
levels of the accumulator stack and the
accumulator
by
two
additional
instructions. Listed below are the steps
necessary to program the Move Memory
Cartridge and Load Label functions.

5--117

MOVMC
V aaa

LDLBL
K aaa

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 the program ladder memory and
the beginning of the V--memory block into the first level of the accumulator stack.
Step 3:— Load the source data label (LDLBL Kaaa) into the accumulator when
copying data from ladder memory to V--memory. Load the source address into the
accumulator when copying data from V--memory to ladder memory. This is where
the value will be copied from. If the source address is a V--memory location, the
value must be entered in HEX.
Step 4:— Insert the MOVMC instruction which specifies destination (Aaaa). This is
where the value will be copied to.
Operand Data Type

V--memory

DL350 Range
A

aaa

V

All (See page 3--29)

Standard RLL
Instructions

DL350 User Manual, 2nd Edition

5--118

Standard RLL Instructions
Table Instructions

Copy Data From a
Data Label Area to
V--Memory

In the following example, 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 using the Load
instruction. This value specifies the offset for the source and destination data, and 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.
DirectSOFT
X1

S
S

Data Label Area
Programmed
After the END
Instruction

LD
K4

DLBL K1

Load the value 4 into the
accumulator specifying the
number of locations to be
copied.
LD
K0
Load the value 0 into the
accumulator specifying the
offset for source and
destination locations
LDLBL

N

C O N

K

1

N

C O N

K

4

N

C O N

K

6

N

C O N

K

8

2

3

5

3

1

5

8

4

X

X

X

X V1777

1

2

3

4

V2000

4

5

3

2

V2001

6

1

5

1

V2002

8

8

4

5

V2003

X

X

X

X V2004

4
2
1
5

K1

S
S

Load the value 1 into the
accumulator specifying the
Data Label Area K1 as the
starting address of the data
to be copied.
MOVMC
V2000
V2000 is the destination
starting address for the data
to be copied.
Handheld Programmer Keystrokes
$

B

STR

1

SHFT

L
ANDST

D

SHFT

L
ANDST

D

SHFT

L
ANDST

D

3

SHFT

M
ORST

O
INST#

ENT
SHFT

K
JMP

E

SHFT

K
JMP

A

L
ANDST

B

L
ANDST

B

V
AND

M
ORST

C

C

3

Standard RLL
Instructions

3

DL350 User Manual, 2nd Edition

1

2

4
0

ENT
ENT
1
2

ENT
A

0

A

0

A

0

ENT

Standard RLL Instructions
Table Instructions
Copy Data From
V--Memory to a
Data Label Area

5--119

In the following example, data is copied from V--memory to a data label area. 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 Address instructions are executed. The
constant value (K2) is loaded into the accumulator using the Load instruction. This
value specifies the offset for the source and destination data, and is placed in the first
stack location after the Load Address instruction is executed. The source address
where data is being copied from is loaded into the accumulator using the Load
Address instruction. The MOVMC instruction specifies the destination starting
location and executes the copying of data from V--memory to the data label area.
DirectSOFT
X1

Data Label Area
Programmed
After the END
Instruction

LD
K4

S
S

Load the value 4 into the
accumulator specifying the
number of locations to be
copied.
LD
K2

X

X

X

X V1777

DLBL K1

1

2

3

4

N

V2000

Offset

Load the value 2 into the
accumulator specifying the
offset for source and
destination locations.

Convert octal 2000 to HEX
400 and load the value into
the accumulator. This
specifies the source location
where the data will be
copied from
MOVMC

7

C O N

0

4

4

5

3

2

V2001

N
K

4

6

1

5

1

V2002

N

C O N

K

6

8

8

4

5

V2003

N

C O N

K

8

2

5

0

0

V2004

N

C O N

K

2

6

8

3

5

V2005

N

C O N

K

6

X

X

X

X V2006

LDA
O 2000

C O N

K

6
1
8
5
8

4
5
4
0
3

1

Offset

8
1
5
0
5

K1
S
S

K1 is the data label
destination area where the
data will be copied to
Handheld Programmer Keystrokes
$

B

STR

1

SHFT

L
ANDST

D

SHFT

L
ANDST

D

SHFT

L
ANDST

D

SHFT

M
ORST

O
INST#

ENT

3
3
3

A

SHFT

K
JMP

E

SHFT

K
JMP

C

C

A

0

V
AND

M
ORST

C

2
2

4
2
0

ENT
ENT
A

A

0

SHFT

0

K
JMP

ENT
B

1

ENT

Standard RLL
Instructions

DL350 User Manual, 2nd Edition

5--120

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
(Vaaa) to set the date. If the values in the
specified locations are not valid, the date will
not be set. The current date can be read
from 4 consecutive V--memory locations
(V7771--V7774).

DATE
V aaa

Date

Range

V Memory Location (BCD)
(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

V--memory

DL350 Range
A

aaa

V

All (See p. 3--29)

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.
DirectSOFT Display
C0

Constant (K)
9

4

0

1

0

3

0

1

Acc. 9

4

0

1

0

3

0

1

Acc. 9

4

0

1

0

3

0

1

9

4

0

1

0

3

0

1

LDD

In this example, the Date
instruction uses the value set in
V2000 and V2001 to set the date
in the appropriate V memory
locations (V7771--V7774)

K94010301
Load the constant
value (K94010301)
into the accumulator
OUTD
V2000
Copy the value in
the accumulator to
V2000 and V2001

V2001

V2000

Format
V2001

DATE

Standard
RLL Instructions

V2000

9

Set the date in the CPU
using the value in V2000
and V2001

4

0

V2000
1

0

3

0

1

Handheld Programmer Keystrokes
STR
SHFT

L

C

0

D

D
1

0

3

0

OUT

SHFT

D

SHFT

D

A

DL350 User Manual, 2nd Edition

Month

Day

K

9

4

0

1

2

0

0

0

ENT

V

2

0

0

Day of Week

ENT
V

T

Year

ENT

E

0

ENT

5--121

Standard RLLInstructions
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
V--memory locations (Vaaa) which are used
to set the time. If 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.

TIME
V aaa

Date

Range

V Memory Location (BCD)
(READ Only)

1/100 seconds (10ms)

0--99

V7747

Seconds

0--59

V7766

Minutes

0--59

V7767

Hour

0--23

V7770

Operand Data Type

V--memory

DL350 Range
A

aaa

V

All (See p. 3--29)

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 Display
C0

Constant (K)
0

0

0

7

3

0

0

0

Acc. 0

0

0

7

3

0

0

0

Acc. 0

0

0

7

3

0

0

0

0

0

0

7

3

0

0

0

LDD

The Time instruction uses the
value set in V2000 and V2001 to
set the time in the appropriate V
memory locations (V7766--V7770)

K73000
Load the constant
value (K73000) into
the accumulator
OUTD
V2000
Copy the value in the
accumulator to V2000
and V2001

V2001

Format

V2000

V2001

TIME

0

V2000

0

0

V2000
7

3

0

0

0

Set the time in the CPU
using the value in V2000
and V2001

C

0

SHFT

STR
L

D

D

OUT

SHFT

D

SHFT

T

I

ENT
K
V

M

E

2

Hour Minutes

7

3

0

0

0

0

0

ENT

V

2

0

0

Seconds

ENT

0

DL350 User Manual, 2nd Edition

ENT

Standard
RLL Instructions

Not
Used

Handheld Programmer Keystrokes

5--122

Standard RLL Instructions
CPU Control Instructions

CPU Control Instructions
No Operation
(NOP)

The No Operation is an empty (not
programmed) memory location.
NOP

DirectSOFT

NOP

Handheld Programmer Keystrokes
SHFT

End
(END)

N
TMR

O
INST#

P

CV

ENT

The End instruction marks the termination
point of the normal 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.
DirectSOFT

END

Handheld Programmer Keystrokes
E

4

N
TMR

Standard RLL
Instructions

SHFT

DL350 User Manual, 2nd Edition

D

3

ENT

END

Standard RLL Insturctions
CPU Control Instructions

Stop
(STOP)

The Stop instruction changes the
operational mode of the CPU from Run to
Program (Stop) mode. This instruction is
typically used to stop PLC operation in a
shutdown condition such as a I/O module
failure.

5--123

STOP

In the following example, when SP45 comes on indicating a I/O module failure, the
CPU will stop operation and switch to the program mode.
Handheld Programmer Keystrokes

SP45
STOP

STR

SHFT

SP45 will turn on
if there is an I/O
module falure

Reset Watch Dog
Timer
(RSTWT)

$

S
RST

SHFT

SP
STRN

E

SHFT

T
MLR

O
INST#

4

F
P

5
CV

ENT
ENT

The Reset Watch Dog Timer instruction
resets the CPU scan timer. The default
setting for the watch dog timer is 200ms.
Scan times very seldom exceed 200ms,
RSTWT
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.
DirectSOFT

Handheld Programmer Keystrokes
SHFT

R
ORN

S
RST

T
MLR

W
ANDN

T
MLR

ENT

RSTWT

Standard RLL
Instructions

DL350 User Manual, 2nd Edition

5--124

Instruction Set
Program Control Instructions

Program Control Instructions
Goto Label
(GOTO)
(LBL)

The GOTO / Label skips all instructions
between
the
GOTO
and
the
corresponding LBL instruction. The
operand value for the GOTO and the
corresponding LBL instruction are the
same. The logic between GOTO and LBL
instruction is not executed when the
GOTO instruction is enabled. Up to 128
GOTO instructions and 64 LBL
instructions can be used in the program.

Operand Data Type

K aaa
GOTO

K aaa

LBL

DL350 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.
DirectSOFT

Handheld Programmer Keystrokes
C7

K5

$

GOTO

SHFT
$

X1

C2
OUT

STR
G

6

SHFT

C

O
INST#

T
MLR

B

STR

GX
OUT

1

2

H

7

ENT

O
INST#

F

5

ENT

SHFT

C

B

L
ANDST

2

C

2

ENT

S
S

S
S

SHFT

S
LBL

$

K5

STR

GX
OUT
X5

Y2

Standard RLL
Instructions

OUT

DL350 User Manual, 2nd Edition

L
ANDST

F
C

1
5
2

ENT
ENT

F

5

ENT

ENT

Instruction Set
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.
For / Next instructions cannot be nested.
Up to 64 For / Next loops may be used in a
program. If the maximum number of For /
Next loops is exceeded, error E413 will
occur. The normal I/O update 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 to reset the
watch dog timer inside of the For / Next
loop using the RSTWT instruction.
Operand Data Type

5--125

A aaa
FOR

NEXT

DL350 Range
A

aaa

V--memory

V

All (See page 3--29)

Constant

K

1--9999

Standard RLL
Instructions

DL350 User Manual, 2nd Edition

5--126

Instruction Set
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.
DirectSOFT
X1

1

K3

2

FOR

RSTWT

X20

Y5
OUT

NEXT

Handheld Programmer Keystrokes
$

B

STR

1

ENT

SHFT

F

5

O
INST#

R
ORN

SHFT

R
ORN

S
RST

T
MLR

$

SHFT

I

STR

GX
OUT
N
TMR

E

5
4

Standard RLL
Instructions

SHFT

F

8

DL350 User Manual, 2nd Edition

D

3

W
ANDN

T
MLR

ENT

C

A

ENT

2

0

ENT
X
SET

ENT

T
MLR

ENT

3

Instruction Set
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 execute only
when needed. There can be a maximum
of 128 GTS instructions and 64 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 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.
Operand Data Type

5--127

K aaa
GTS

K aaa

SBR

DL350 Range
aaa

Constant

Subroutine Return
(RT)

Subroutine Return
Conditional
(RTC)

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 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).

RTC

DL350 User Manual, 2nd Edition

Standard RLL
Instructions

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.

RT

5--128

Instruction Set
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.
DirectSOFT Display

X1

K3
GTS

C0
LD
K10

S
S
S
END

SBR

K3

X20

Y5
OUTI

X21

Y10
OUTI

X35
RTC

X35

Y0

Y17
RSTI

RT

Handheld Programmer Keystrokes
STR

X

1

G

T

S

E

N

D

ENT

SHFT

S

SHFT

B

R

K
1

3

STR

SHFT

I

X

2

0

ENT

OUT

SHFT

I

Y

5

ENT

STR

SHFT

I

X

2

1

ENT

OUT

SHFT

I

Y

1

0

ENT

X

3

5

ENT

X

3

5

ENT

Y

0

Y

1

SHFT

ENT
K

3

ENT

S
S

Standard RLL
Instructions

SHFT

STR

SHFT

I

SHFT

R

T

STRN

SHFT

I

RST

SHFT

I

SHFT

R

T

DL350 User Manual, 2nd Edition

C

ENT

ENT

ENT

7

ENT

Instruction Set
Program Control Instructions

5--129

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.
DirectSOFT
X1

K3
GTS

S
S
S
END

SBR

K3

X20

Y5
OUT

X21

Y10
OUT

RT

Handheld Programmer Keystrokes
$

B

STR

1

SHFT

G

SHFT

E

SHFT

S
RST

SHFT

SHFT

I

ENT

6

T
MLR

S
RST

4

N
TMR

D
B

D

3

ENT

S
S

$

STR

GX
OUT

F

$

I

STR

SHFT

GX
OUT
SHFT

B

1

T
MLR

2

D
A

0

3

ENT

ENT

ENT
C

8
1

R
ORN
C

8
5

ENT

A

0

2

B

1

ENT

ENT

ENT

Standard RLL
Instructions

R
ORN

3

DL350 User Manual, 2nd Edition

5--130

Instruction Set
Program Control Instructions

Master Line Set
(MLS)

The Master Line Set instruction allows the
program to control sections of ladder logic
by forming a new power rail controlled 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. Note
that unlike stages in RLL PLUS, the logic
within the master control relays is still
scanned and updated even though it will
not function if the MLS is off.
Operand Data Type

K aaa
MLS

DL350 Range
aaa

Constant

Master Line Reset
(MLR)

K

1--7

The Master Line Reset instruction marks
the end of control for the corresponding
MLS instruction. The MLR reference is one
less than the corresponding MLS.

Operand Data Type

K aaa
MLR

DL350 Range
aaa

Constant

Understanding
Master Control
Relays

K

0--7

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

When contact X0 is on, logic under the first MLS
will be executed.

MLS

Y10

X1

OUT

Standard RLL
Instructions

X2

MLS

When contact X2 and X0 is on, logic
under the second MLS will be
executed.
X3

MLR

X10

DL350 User Manual, 2nd Edition

MLR

The MLR instructions note the end of the Master Control area. (They will be entered in
adjacent addresses.)

Instruction Set
Program Control Instructions

5--131

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.
DirectSOFT

Handheld Programmer Keystrokes

X0

K1
MLS

X1

A

C0
OUT

X2

C1
OUT

X3

Y0
OUT

X10

K2

Y1
OUT

X4

Y2

D

MLR
X5

C2
OUT

X6

Y3

$

B

MLR
X7

Y22
OUT

B

STR

0
1
1

GX
OUT

SHFT

$

C

STR

2

GX
OUT

SHFT

$

D

STR

GX
OUT

A

$

B

STR

Y
MLS

C

$

F

STR

GX
OUT

B

$

E

STR

GX
OUT

C

T
MLR

B

$

F

OUT
K0

A
B

OUT
K1

STR

Y
MLS

C

MLS
X5

$

STR

3
0
1
2
5
1
4
2
1
5

GX
OUT

SHFT

$

G

STR

GX
OUT

D

T
MLR

A

$

H

STR

GX
OUT

C

6
3
0
7
2

ENT
ENT
ENT
C

2

A

0

ENT

ENT
C

2

B

1

ENT

ENT
ENT
A

0

ENT

ENT
ENT
ENT
ENT
ENT
ENT
ENT
C

2

C

2

ENT

ENT
ENT
ENT
ENT
C

2

ENT

Standard RLL
Instructions

DL350 User Manual, 2nd Edition

5--132

Standard RLL Instructions
Interrupt Instructions

Interrupt Instructions
Interrupt
(INT)

The Interrupt instruction allows a section
of ladder logic to be placed outside the
main body of the program and executed
when needed. Interrupts can be called
from the program or by external interrupts
via the counter interface module which
provides 4 interrupts.

INT

O aaa

Typically, interrupts will be used in an application where a fast response to an input
is needed or a program section needs to 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 the interrupt routine is called from the interrupt module or
software interrupt, the CPU will complete execution of the instruction it is currently
processing in ladder logic then execute the designated interrupt routine. Interrupt
module interrupts are labeled in octal to correspond with the hardware input signal
(X1 will initiate interrupt INT1). There is only one software interrupt and it is labeled
INT 0. The program execution will continue from where it was before the interrupt
occurred once the interrupt is serviced.
The software interrupt is setup by programming the interrupt time in V7634. The
valid range is 3--999 ms. The value must be a BCD value. The interrupt will not
execute if the value is out of range.

NOTE: See the example program of a software interrupt.
Operand Data Type

DL350 Range
aaa
O

Standard RLL
Instructions

Constant

DL350 User Manual, 2nd Edition

0--3

Standard RLL Instructions
Interrupt Instructions

Interrupt Return
(IRT)

Interrupt Return
Conditional
(IRTC)

Enable Interrupts
(ENI)

Disable Interrupts
(DISI)

When an Interrupt Return is executed in
the interrupt routine the CPU will return to
the point in the main body of the program
from which it was called. The Interrupt
Return is programmed as the last
instruction in an interrupt routine and is a
stand alone instruction (no input contact
on the rung).
The
Interrupt
Return
Conditional
instruction is a optional instruction used
with an input contact to implement a
condtional return from the interrupt
routine. The Interrupt Return is required to
terminate the interrupt routine.

5--133

IRT

IRTC

The Enable Interrupt instruction is
programmed in the main body of the
application program (before the End
instruction) to enable hardware or
software interrupts. Once the coil has
been energized interrupts will be enabled
until the interrupt is disabled by the
Disable Interrupt instruction.

ENI

The Disable Interrupt instruction is
programmed in the main body of the
application program (before the End
instruction) to disable both hardware or
software interrupts. Once the coil has
been energized interrupts will be
disabled until the interrupt is enabled by
the Enable Interrupt instruction.

DISI

Standard RLL
Instructions

DL350 User Manual, 2nd Edition

5--134

Standard RLL Instructions
Interrupt Instructions
In the following example, when X1 is on, the value 10 is copied to V7634. This value
sets the software interrupt to 10 ms. When X20 turns on, the interrupt will be
enabled. When X20 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 X35 is not on Y0--Y17 will be reset to off and then the
CPU will return to the main body of the program.

Interrupt Example
for Software
Interrupt

Handheld Programmer Keystrokes

DirectSOFT
SP0

$

LD
K40

SHFT
OUT
V7633
X1

K104 *

L
ANDST

V
AND

$

C

A

STR
E

4

SP
STRN

V7634

S

Copy the value in the lower
16 bits of the accumulator to
V7634

S

X20
ENI

X20
DISI

S
S

3

SHFT

SHFT

OUT

D

ENT

1

GX
OUT

LD

Load the constant value
(K10) into the lower 16 bits
of the accumulator

B

STR

2

N
TMR

I

C

A

SHFT

D

SHFT

E

SHFT

I

$

SHFT

I

X
SET

SHFT

I

SP
STRN

SHFT

I

X
SET

SHFT

I

SHFT

I

R
ORN

STR

3

I

2
8

K
JMP

B

H

G

D

D

8

N
TMR

T
MLR

3

I

8

D

8

B

8
T
MLR

ENT

4

ENT

A

F

8

E

ENT

C

8

3

ENT

0

ENT

0

N
TMR

6

A

ENT

8

S
RST

7

4

ENT

0

4

8

SHFT

2
5
3
1

A

0
0

ENT
ENT

ENT
F
A

5
0

ENT
B

1

H

ENT

S
END

INT

* The value entered, 0--999 must be followed by the
digit 4 to complete the instruction.

O0

X20

Y5
SETI

X35

Y0

Y17

Standard RLL
Instructions

RSTI

IRT

DL350 User Manual, 2nd Edition

7

ENT

Standard RLL Instructions
Intelligent I/O Instructions

5--135

Intelligent I/O Instructions
Read from
Intelligent Module
(RD)

The Read from Intelligent Module
instruction reads a block of data (1--128
RD
bytes maximum) from an intelligent I/O
V aaa
module into the CPU’s V--memory. It loads
the function parameters into the first and
second level of the accumulator stack, and
the accumulator by three additional
instructions.
Listed below are the steps to program the Read from Intelligent module function.
Step 1: — Load the base number (0--3) into the first byte and the slot number (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. (maximum of 128 bytes)
Step 3: — Load the address from which the data will be read into the accumulator.
This parameter must be a HEX value.
Step 4: — Insert the RD instruction which specifies the starting V--memory location
(Vaaa) where the data will be read into.
Helpful Hint: —Use the LDA instruction to convert an octal address to its HEX
equivalent and load it into the accumulator when the hex format is required.
Operand Data Type

DL350 Range
aaa

V--memory

V

All (See p. 3--29)

Discrete Bit Flags

Description

SP54

on when RX, WX, RD, WT instructions are executed with the wrong parameters.

NOTE: Status flags are valid only until another instruction uses the same flag.
In the following example when X1 is on, the RD instruction will read six bytes of data
from a intelligent module in base 1, slot 2 starting at address 0 in the intelligent
module and copy the information into V-memory locations V1400--V1402.
DirectSOFT Display
X1

LD
K0102

LD
K6

K0

RD
V1400

Data

The constant value K6
specifies the number of
bytes to be read

The constant value K0
specifies the starting address
in the intelligent module

V1400 is the starting location
in the CPU where the
specified data will be stored

SHFT

V1400

3

4

1

2

V1401

7

8

5

6

V1402

0

1

9

0

V1403

X

X

X

X

V1404

X

X

X

X

12

Address 0

34

Address 1

56

Address 2

78

Address 3

90

Address 4

01

Address 5

Handheld Programmer Keystrokes
STR

X

1

SHFT

L

D

K

0

1

SHFT

L

D

K

6

ENT

SHFT

L

D

K

0

ENT

R

D

V

ENT

1

4

0

0

2

0

DL350 User Manual, 2nd Edition

ENT

ENT

Standard
RLL Instructions

LD

Intelligent Module

CPU

The constant value K1020
specifies the base number
(01) and the base slot
number (02)

5--136

Standard RLL Instructions
Intelligent I/O Instructions

Write to Intelligent
Module
(WT)

The Write to Intelligent Module instruction
writes a block of data (1--128 bytes
maximum) to an intelligent I/O module from
WT
a block of V--memory in the CPU. The
V aaa
function parameters are loaded into the first
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
Intelligent module function.
Step 1: — Load the base number (0--3) into the first byte and the slot number (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. (maximum of 128 bytes)
Step 3: — Load the intelligent module address which will receive the data into the
accumulator. This parameter must be a HEX value.
Step 4: — Insert the WT instruction which specifies the starting V--memory location
(Vaaa) where the data will be written from in the CPU.
Helpful Hint: —Use the LDA instruction to convert an octal address to its HEX
equivalent and load it into the accumulator when the hex format is required.
Operand Data Type

DL350 Range
aaa

V--memory

V

All (See p. 3--29)

Discrete Bit Flags

Description

SP54

on when RX, WX, RD, WT instructions are executed with the wrong parameters.

NOTE: Status flags are valid only until another instruction uses the same flag.
In the following example, when X1 is on, the WT instruction will write six bytes of data
to an intelligent module in base 1, slot 2 starting at address 0 in the intelligent module
and copy the information from V--memory locations V1400--V1402.
DirectSOFT Display
X1

CPU
LD
K0102

LD

Standard
RLL Instructions

K6

LD
K0

The constant value K0102
specifies the base number
(01) and the base slot
number (02)

Data

The constant value K6
specifies the number of
bytes to be written

The constant value K0
specifies the starting address
in the intelligent module

V1400

V1400 is the starting
location in the CPU where
the specified data will be
written from

SHFT

DL350 User Manual, 2nd Edition

V1377

X

X

X

X

V1400

3

4

1

2

V1401

7

8

5

6

V1402

0

1

9

0

V1403

X

X

X

X

V1404

X

X

X

X

12

Address 0

34

Address 1

56

Address 2

78

Address 3

90

Address 4

01

Address 5

Handheld Programmer Keystrokes
STR

WT

Intelligent Module

SHFT

X
L

1

ENT

D

K

0

1

6

ENT

0

ENT

SHFT

L

D

K

SHFT

L

D

K

W

T

V

1

4

0

0

2

0

ENT

ENT

Standard RLL Instructions
Network Instructions

5--137

Network Instructions
Read from Network The Read from Network instruction is used
(RX)
by the master device on a network to read
a block of data from another CPU. The
RX
function parameters are loaded into the
A aaa
first 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 Intelligent module function.
Step 1: — Load the slave address (0--90 BCD) into the first byte and the slot
number of the master DCM (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 V memory 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

DL350 Range
A

aaa

V--memory

V

All (See page 3--29)

Pointer

P

All V mem. (See page 3--29)

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

$

0--7679 (7.5K program mem.)
0--15873 (15.5K program mem.)

Program Memory

Standard RLL
Instructions

DL350 User Manual, 2nd Edition

5--138

Standard RLL Instructions
Network Instructions
In the following example, when X1 is on and the module busy relay SP124 (see
special relays) is not on, the RX instruction will access a DCM operating as a master
in slot 2. 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 DCM.
DirectSOFT
X1

SP124

LD
K0205

Master
CPU

The constant value K0205
specifies the slot number (2)
and the slave address (5)

Slave
CPU

S
S

LD
K10
The constant value K10
specifies the number of
bytes to be read
LDA
O 2300
Octal address 2300 is
converted to 4C0 HEX and
loaded into the accumulator.
V2300 is the starting
location for the Master CPU
where the specified data will
be read into

S
S

V2277

X

X

X

X

X

X

X

X V1777

V2300

3

4

5

7

3

4

5

7

V2000

V2301

8

5

3

4

8

5

3

4

V2001

V2302

1

9

3

6

1

9

3

6

V2002

V2303

9

5

7

1

9

5

7

1

V2003

V2304

1

4

2

3

1

4

2

3

V2004

V2305

X

X

X

X

X

X

X

X V2005

S
S

S
S

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

STR

W
ANDN

1

SHFT

SHFT

L
ANDST

D

SHFT

L
ANDST

D

SHFT

L
ANDST

D

SHFT

R
ORN

X
SET

ENT
SP
STRN

3
3

Standard RLL
Instructions

3

DL350 User Manual, 2nd Edition

A

B

1

C

2

E

SHFT

K
JMP

C

SHFT

K
JMP

B

C

D

0
C

2

A

2
0

A

4
2
1
3
0

ENT
A
A
A
A

0
0
0
0

F

5

ENT

ENT
A

0

ENT

ENT

Standard RLL Instructions
Network Instructions

Write to Network
(WX)

5--139

The Write to Network instruction is used to
write a block of data from the master
device to a slave device on the same
WX
network. The function parameters are
A aaa
loaded into the first and second level of the
accumulator stack and the accumulator by
three additional instructions. Listed below
are the steps necessary to program the
Write to Network function.
Step 1: — Load the slave address (0--90 BCD) into the first byte and the slot
number of the master DCM (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 in the master that is to be written to the
network into the accumulator. 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 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

DL350 Range
A

aaa

V--memory

V

All (See page 3--29)

Pointer

P

All V mem. (See page 3--29)

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

$

0--7679 (7.5K program mem.)
0--15873 (15.5K program mem.)

Program Memory

Standard RLL
Instructions

DL350 User Manual, 2nd Edition

5--140

Standard RLL Instructions
Network Instructions
In the following example when X1 is on and the module busy relay SP124 (see
special relays) is not on, the RX instruction will access a DCM operating as a master
in slot 2. 10 consecutive bytes of data is read from the CPU at station address 5 and
copied to V--memory locations V2000--V2004 in the slave CPU.
DirectSOFT
X1

SP124

LD
K0205

Master
CPU

The constant value K0205
specifies the slot number (2)
and the slave address (5)

Slave
CPU

S
S

LD
K10
The constant value K10
specifies the number of
bytes to be read
LDA
O 2300
Octal address 2300 is
converted to 4C0 HEX and
loaded into the accumulator.
V2300 is the starting
location for the Master CPU
where the specified data will
be read from.

S
S

V2277

X

X

X

X

X

X

X

X V1777

V2300

3

4

5

7

3

4

5

7

V2000

V2301

8

5

3

4

8

5

3

4

V2001

V2302

1

9

3

6

1

9

3

6

V2002

V2303

9

5

7

1

9

5

7

1

V2003

V2304

1

4

2

3

1

4

2

3

V2004

V2305

X

X

X

X

X

X

X

X V2005

S
S

S
S

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

STR

W
ANDN

ENT

1

SHFT

SHFT

L
ANDST

D

SHFT

L
ANDST

D

SHFT

L
ANDST

D

SHFT

W
ANDN

X
SET

SP
STRN

3
3
A

Standard RLL
Instructions

3

DL350 User Manual, 2nd Edition

B

1

C

2

E

4

ENT

SHFT

K
JMP

C

SHFT

K
JMP

B

SHFT

O
INST#

C

V
AND

C

A

0
SHFT

2
1

2

A
A

0
0
2
0

F

5

ENT

ENT
D
A

3
0

A
A

0
0

A

0

ENT

ENT

Standard RLL Instructions
Message Instructions

5--141

Message Instructions
Fault
(FAULT)

The Fault instruction is used to display a
message on the handheld programmer or
DirectSOFT. The message has a
maximum of 23 characters and can 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

FAULT
A aaa

DL350 Range
A

aaa

V--memory

V

All (See page 3--29)

Constant

K

1--FFFF

NOTE: The FAULT instruction takes a considerable amount of time to execute. This
is because the FAULT parameters are stored in EEPROM. Make sure you consider
the instructions execution times (shown in Appendix C) if you are attempting to use
the FAULT instructions in applications that require faster than normal execution
cycles.

Standard RLL
Instructions

DL350 User Manual, 2nd Edition

5--142

Standard RLL Instructions
Message Instructions

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 ...)
DirectSOFT
S
S
X1

FAULT
K1

S
S
SW 146

END

DLBL
K1

ACON
A SW

NCON
K 2031

NCON
K 3436

Handheld Programmer Keystrokes
$

B

STR

SHFT

F

SHFT

E

SHFT

D

SHFT

A

SHFT

N
TMR

C

SHFT

N
TMR

C

5

A

1
0

ENT
U

ISG

L
ANDST

T
MLR

B

1

ENT

S
S

4

N
TMR

D

3

L
ANDST

B

1

L
ANDST

B

C

2

O
INST#

N
TMR

S
RST

W
ANDN

2

O
INST#

N
TMR

C

A

2

O
INST#

N
TMR

D

Standard RLL
Instructions

0

DL350 User Manual, 2nd Edition

3

ENT
1

2
3

ENT

E

0
4

ENT
D
D

3
3

B
G

1
6

ENT
ENT

Standard RLL Instructions
Message Instructions

Data Label
(DLBL)

The Data Label instruction marks the
beginning of an ASCII / numeric data area.
DLBLs are programmed after the End
statement. A maximum of 64 DLBL
instructions can be used in a DL350
program. Multiple NCONs and ACONs can
be used in a DLBL area.
Operand Data Type

DLBL

5--143

K aaa

DL350 Range
aaa

Constant

ASCII Constant
(ACON)

K

1--FFFF

The ASCII Constant instruction is used
with the DLBL instruction to store 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
printed in the Fault message.
Operand Data Type

ACON
A aaa

DL350 Range
aaa

ASCII

Numerical
Constant
(NCON)

A

0--9 A--Z

The Numerical Constant instruction is
used with the DLBL instruction to store the
HEX ASCII equivalent of numerical data
for use with other instructions. Two digits
can be stored in an NCON instruction.

Operand Data Type

NCON
K aaa

DL350 Range
aaa

Constant

K

0--FFFF

Standard RLL
Instructions

DL350 User Manual, 2nd Edition

5--144

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.
DirectSOFT
S
S
S
END

DLBL
K1

ACON
A SW

NCON
K 2031

NCON
K 3436

Handheld Programmer Keystrokes
S
S
SHFT

E

4

N
TMR

D

SHFT

D

3

L
ANDST

B

1

L
ANDST

B

SHFT

A

C

2

O
INST#

N
TMR

S
RST

W
ANDN

SHFT

N
TMR

C

2

O
INST#

N
TMR

C

A

SHFT

N
TMR

C

2

O
INST#

N
TMR

D

Standard RLL
Instructions

0

DL350 User Manual, 2nd Edition

3

ENT
1

2
3

ENT

E

0
4

ENT
D
D

3
3

B
G

1
6

ENT
ENT

Standard RLL Instructions
Message Instructions

Print Message
(PRINT)

The Print Message instruction prints the
embedded text or text/data variable
message to Port 2 on the DL350 CPU, which
must have the communications port
configured.
Data Type

Constant

PRINT

5--145

A aaa

“Hello, this is a PLC message”

DL350 Range
A

aaa

K

1

You may recall from the CPU specifications in Chapter 3 that the DL350’s ports are
capable of several protocols. To configure a port 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 DirectSOFT, choose the PLC menu, then Setup,
then Setup Secondary Comm Port.
S Port: From the port number list box at the top, choose “Port 2”.
S Protocol: Click the check box to the left of “Non-sequence”, and then
you’ll see the dialog box shown below.

S

DL350 User Manual, 2nd Edition

Standard RLL
Instructions

S
S

Memory Address: Choose a V-memory address for DirectSOFT to use
to store the port setup information. You will need to reserve 9 words in
V-memory for this purpose. Select “Use for printing” if you are only using
the port for print instructions output.
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.
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 DL350.

5--146

Standard RLL Instructions
Message Instructions
Port 2 on the DL350 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
”$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 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.

Standard RLL
Instructions

X1

PRINT
K2
“Hello, this is a PLC message.$N”

DL350 User Manual, 2nd Edition

Print the message to Port 2 when
X1 makes an off-to-on transition.

Standard RLL Instructions
Message Instructions

5--147

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 all
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

1

none

2

:B

4 digit BCD

3

:D

32-bit binary (decimal number)

4

:DB

5

:R

Floating point number (real number)

6

:E

Floating point number (real number
with exponent)

Example:
V2000
V2000 : B
V2000 : D
V2000 : D B
V2000 : R
V2000 : E

Description
16-bit binary (decimal number)

8 digit BCD

Print binary data in V2000 for decimal number
Print BCD data in V2000
Print binary number in V2000 and V2001 for decimal number
Print BCD data in V2000 and V2001
Print floating point number in V2000/V2001 as real number
Print floating point number in V2000/V2001 as real number
with exponent

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
“Reactor temperature = ” V2000 “deg. $N”
∧
∧
Message will read:
Reactor temperature = 0156 deg

Print the message to Port 2
when X1 makes an off-to-on
transition.
∧ represents a space

DL350 User Manual, 2nd Edition

Standard RLL
Instructions

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.

5--148

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

1

none

2

: BOOL

3

: ONOFF

Example:
V2000 . 15
C100
C100 : BOOL
C100 : ON/OFF
V2000.15 : BOOL

Description
Print 1 for an ON state, and 0 for an
OFF state
Print “TRUE” for an ON state, and
“FALSE” for an OFF state
Print “ON” for an ON state, and “OFF”
for an OFF state

Prints the status of bit 15 in V2000, in 1/0 format
Prints the status of C100 in 1/0 format
Prints the status of C100 in TRUE/FALSE format
Prints the status of C00 in ON/OFF format
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:

Standard RLL
Instructions

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 DL350 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.

DL350 User Manual, 2nd Edition

Drum Instruction
Programming
In This Chapter. . . .
— Introduction
— Step Transitions
— Overview of Drum Operation
— Drum Control Techniques
— Drum Instructions

16

6--2

Drum Instruction Programming

Drum Instruction
Programming

Introduction
Purpose
Drum Terminology

The four drum instructions available in the DL350 CPU electronically simulate an
electro-mechanical drum sequencer. The instructions offer slight variations on the
basic principle.
Drum instructions are best suited for repetitive processes consisting of a finite
number of steps. They can do the work of many rungs of ladder logic with simplicity.
Therefore, drums can save a programming and debugging time.
We introduce some terminology associated with drum instructions by describing the
original electro-mechanical drum pictured below. The mechanical drum generally
has pegs on its curved surface. The pegs are populated in a particular pattern,
representing a set of desired actions for machine control. A motor or solenoid rotates
the drum a precise amount at specific times. During rotation, stationary wipers sense
the presence of pegs (present = on, absent = off). This interaction makes or breaks
electrical contact with the wipers, creating electrical outputs from the drum. The
outputs are wired to devices on a machine for On/Off control.
Drums usually have a finite number of positions within one rotation, called steps.
Each step represents some process step. At powerup, the drum resets to a
particular step. The drum rotates from one step to the next based on a timer, or on
some external event. During special conditions, a machine operator can manually
increment the drum step using a jog control on the drum’s drive mechanism. The
contact closure of each wiper generates a unique on/off pattern called a sequence,
designed for controlling a specific machine. Because the drum is circular, it
automatically repeats the sequence once per rotation. Applications vary greatly, and
a particular drum may rotate once per second, or as slowly as once per week.
Pegs

Wipers
Drum

Outputs

Electronic drums provide the benefits of mechanical drums and more. For example,
they have a preset feature that is impossible for mechanical drums: The preset
function lets you move from the present step directly to any other step on command!

DL350 User Manual, 2nd Edition

6--3

Drum Instruction Programming

For editing purposes, the electronic drum is presented in chart form in DirectSOFT
and in this manual. Imagine slicing the surface of a hollow drum cylinder between
two rows of pegs, then pressing it flat. Now you can view the drum as a chart as
shown below. Each row represents a step, numbered 1 through 16. Each column
represents an output, numbered 0 through 15 (to match word bit numbering). The
solid circles in the chart represent pegs (On state) in the mechanical drum, and the
open circles are empty peg sites (Off state).
OUTPUTS
STEP 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
1
f F f F f f F f f f F f f F f f
2
f F f F F f F f f f f F f f F f
3
f F F F F f F F f f f f f f f f
4
F F f F F f F f F f f f f f f F
5
f f f F f f F f F f F f F f f F
6
f f f F f f F f F f F f F F f F
7
F f f F f f F F F F f F F F f F
8
F f F f f F f F F f f f F f f F
9
f f f f f f f F F f f f F f f f
10
f f f f f f f F F F f f f f f f
11
F f f f F f f f f F f f f f F f
12
f F f f F F f f F f F F f F F f
13
f f F f f f f f f f f F F f F f
14
f f f f f f f F f f f F F f F F
15
F f f f f F f F f F f F f f F F
16
f f F f f f f F f F f F F f f F

Output Sequences The mechanical drum sequencer derives its name from sequences of control
changes on its electrical outputs. The following figure shows the sequence of On/Off
controls generated by the drum pattern above. Compare the two, and you will find
they are equivalent! If you can see their equivalence, you are on your way to
understanding drum instruction operation.
Step
Output
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0

DL350 User Manual, 2nd Edition

16

Drum Instruction
Programming

Drum Chart
Representation

6--4

Drum Instruction Programming

Drum Instruction
Programming

Step Transitions
Drum Instruction
Types

Timer-Only
Transitions

There are four types of Drum instructions in the DL350 CPU:
S Timed Drum with Discrete Outputs (DRUM)
S Time and Event Drum with Discrete Outputs (EDRUM)
S Masked Event Drum with Discrete Outputs (MDRUMD)
S Masked Event Drum with Word Output (MDRUMW)
The four drum instructions all include time-based step transitions, and three include
event-based transitions as well. Other options include outputs defined as a single
word or as individual bits, and an output mask (individual output disable/enable).
Each drum has 16 steps, and each step has 16 outputs. Refer to the figure below.
Each output can be either an X, Y, or C coil, offering programming flexibility. We
assign Step 1 an arbitrary unique output pattern (f= Off, F= On) as shown. When
programming a drum instruction, you also determine both the output assignment
and the On/Off state (pattern) at that time. All steps use the same output assignment,
but each step may have its own unique output pattern.
Drums move from step to step based on time and/or an external event (input). All
four drum types offer timer step transitions, and three types also offer events. The
figure below shows how timer-only transitions work.
Step 1

Outputs:

F f f f F f F f f f f F F f f f

Outputs:

f f f F f f f f F F f F f f F F

Increment
count timer

No

Has counts per
step expired?
Yes

Step 2

Use next transition criteria

The drum stays in each step for a specific duration (user-programmable). The
timebase of the timer is programmable, from 0.01 seconds to 99.99 seconds. This
establishes the resolution, or the duration of each “tick of the clock”. Each step uses
the same timebase, but has its own unique counts per step, which you program. The
drum spends a specific amount of time in each step, given by the formula:
Time in step = 0.01 seconds X Timebase x Counts per step

DL350 User Manual, 2nd Edition

Drum Instruction Programming

6--5

NOTE: When first choosing the timebase resolution, a good rule is to make it
approximately 1/10 the duration of the shortest step in your drum. You will be able to
optimize the duration of that step in 10% increments. Other steps with longer
durations allow optimizing by even smaller increments (percentage-wise). Also,
note the drum instruction executes once per CPU scan. Therefore, it is pointless to
specify a drum timebase faster than the CPU scan time.
Timer and Event
Transitions

Time and Event Drums move from step to step based on time and/or external events.
The figure below shows how step transitions work for these drums.
Step 1

No

Outputs:

F f f f F f F f f f f F F f f f

Is Step event
true?
Yes
Increment
count timer

No

Has step
counts expired?
Yes

Step 2

Outputs:

f f f F f f f f F F f F f f F F

Use next transition criteria

When the drum enters Step 1, the output pattern shown is set. It begins polling the
external input programmed for that step. You can define event inputs as X, Y, or C
discrete point types. Suppose we select X0 for the Step 1 event input. If X0 is off, then
the drum remains in Step 1. When X0 is On, the event criteria is met and the timer
increments. The timer increments as long as the event remains true. When the
counts for Step 1 have expired, the drum moves to Step 2. The outputs change
immediately to match the new pattern for Step 2.

DL350 User Manual, 2nd Edition

Drum Instruction
Programming

For example, if you program a 5 second time base and 12 counts for Step 1, the drum
will spend 60 seconds in Step 1. The maximum time for any step is given by the
formula:
Max Time per step = 0.01 seconds X 9999 X 9999
= 999,800 seconds = 277.7 hours = 11.6 days

Drum Instruction
Programming

6--6

Drum Instruction Programming

Event-Only
Transitions

Time and Event drums do not have to possess both the event and the timer criteria
programmed for each step. You have the option of programming one of the two, and
even mixing transition types among all the steps of the drum. For example, you might
want Step 1 to transition on an event, Step 2 to transition on time only, and Step 3 to
transition on both time and an event. Furthermore, you may elect to use only part of
the 16 steps, and only part of the 16 outputs.
Step 1

No

Outputs:

F f f f F f F f f f f F F f f f

Outputs:

f f f F f f f f F F f F f f F F

Is Step event
true?
Yes

Step 2

Use next transition criteria

Counter
Assignments

Each drum instruction uses the resources of four counters in the CPU. When
programming the drum instruction, you select the first counter number. The drum
also uses the next three counters automatically. The counter bit associated with the
first counter turns on when the drum has completed its cycle, going off when the
drum is reset. These counter values and counter bit precisely indicate the progress
of the drum instruction, and can be monitored by your ladder program.
Suppose you program a timer drum to
have 8 steps, and we select CT10 for the
counter number (remember, counter
numbering is in octal). Counter usage is
shown to the right. The right column holds
typical values, interpreted below.

Counter Assignments
CT10 Counts in step V1010

1528

CT11 Timer Value

V1011

0200

CT12 Preset Step

V1012

0001

CT13 Current Step

V1013

0004

CT10 shows you are at the 1528th count in the current step, which is step 4 (shown in
CT13). If we have programmed step 4 to have 3000 counts, the step is over half
completed. CT11 is the count timer, shown in units of 0.01 seconds. So, each
least-significant-digit change represents 0.01 seconds. The value of 200 means you
have been in the current count (1528) for 2 seconds (0.01 x 100). Finally, CT12 holds
the preset step value which was programmed into the drum instruction. When the
drum’s Reset input is active, it presets to step 1 in this case. The value of CT12 does
not change without a program edit. Counter bit CT10 turns on when the drum cycle is
complete, and turns off when the drum is reset.

DL350 User Manual, 2nd Edition

Drum Instruction Programming

The last step in a drum sequence may be any step number, since partial drums are
valid. Refer to the following figure. When the transition conditions of the last step are
satisfied, the drum sets the counter bit corresponding to the counter named in the
drum instruction box (such as CT0). Then it moves to a final “drum complete” state.
The drum outputs remain in the pattern defined for the last step (including any output
mask logic). Having finished a drum cycle, the Start and Jog inputs have no effect at
this point.
The drum leaves the “drum complete” state when the Reset input becomes active (or
on a program-to-run mode transition). It resets the drum complete bit (such as CT0),
and then goes directly to the appropriate step number defined as the preset step.
Last step

No

Outputs:

Are transition
conditions met?

F F F f f f F f f F f F F F f F

(Timer and/or Event criteria)

Yes
Set
CT0 = 1

Complete

No

Set Drum Complete bit

Outputs:

F F F f f f F f f F f F F F f F

Reset Input
Active?
Yes
Reset
CT0 = 0

Reset Drum Complete bit

Go to Preset Step

DL350 User Manual, 2nd Edition

Drum Instruction
Programming

Last Step
Completion

6--7

6--8

Drum Instruction Programming

Drum Instruction
Programming

Overview of Drum Operation
Drum Instruction
Block Diagram

The drum instruction utilizes various inputs and outputs in addition to the drum
pattern itself. Refer to the figure below.
Inputs

DRUM INSTRUCTION
Block Diagram

Outputs

Start
Realtime
Inputs
(from ladder)

Jog *
Reset

Drum

Preset Step
Counts/Step
Timebase
Programming
Selections

Step
Control

Step
Pointer

Events *

f
f
f
F
f
f
f
f

f
f
f
F
F
F
F
F

F
f
f
f
F
F
f
F

f
f
f
F
f
f
f
f

f f
f f
F f
F f
F f
F F
F F
f F

Outputs

Output
Mask *

Final Drum
Outputs

Counter #
Pattern
Output Mask *

Counter Assignments
* Asterisked inputs
are applicable only
to particular drum
instructions.

CT0

Counts in step

V1000

xxxx

CT1

Timer Value

V1001

xxxx

CT2

Preset Step

V1002

xxxx

CT3

Current Step

V1003

xxxx

The drum instruction accepts several inputs for step control, the main control of the
drum. The inputs and their functions are:
S

S

S

S

Start -- The Start input is effective only when Reset is off. When Start is
on, the drum timer runs if it is in a timed transition, and the drum looks
for the input event during event transitions. When Start is off, the drum
freezes in its current state (Reset must remain off), and the drum
outputs maintain their current on/off pattern.
Jog -- The jog input is only effective when Reset is off (Start may be
either on or off). The jog input increments the drum to the next step on
each off-to-on transition. Note that only the basic timer drum does not
have a jog input.
Reset -- The Reset input has priority over the Start input. When Reset is
on, the drum moves to its preset step. When Reset is off, then the Start
input operates normally.
Preset Step -- A step number from 1 to 16 that you define (typically is
step 1). The drum moves to this step whenever Reset is on, and
whenever the CPU first enters run mode.

DL350 User Manual, 2nd Edition

Drum Instruction Programming

S

S

Counts/Step -- The number of timer counts the drum spends in each
step. Each step has its own counts parameter. However, programming
the counts/step is optional on Timer/Event drums.
Timer Value -- the current value of the counts/step timer.
Counter # -- The counter number specifies the first of four consecutive
counters which the drum uses for step control. You can monitor these to
determine the drum’s progress through its control cycle.
Events -- Either an X, Y, C, S, C, CT, or SP type discrete point serves
as step transition inputs. Each step has its own event. However,
programming the event is optional on Timer/Event drums.

WARNING: The outputs of a drum are enabled any time the CPU is in Run
Mode. The Start Input does not have to be on, and the Reset input does not
disable the outputs. Upon entering Run Mode, drum outputs automatically
turn on or off according to the pattern of the preset step. This includes any
effect of the output mask when applicable.
Powerup State of
Drum Registers

The choice of the starting step on powerup and program-to-run mode transitions are
important to consider for your application. Please refer to the following chart. If the
counter memory is configured as non-retentive, the drum is initialized the same way
on every powerup or program-to-run mode transition. However, if the counter
memory is configured to be retentive, the drum will stay in its previous state.
Counter NumNum
ber

Function

Initialization on Powerup
Non-Retentive Case

Retentive Case

CT(n)

Current Step
Count

Initialize = 0

Use Previous (no
change)

CT(n + 1)

Counter Timer
Value

Initialize = 0

Use Previous (no
change)

CT(n + 2)

Preset Step

Initialize = Preset Step #

Use Previous (no
change)

CT(n + 3)

Current Step #

Initialize = Preset Step #

Use Previous (no
change)

Applications with relatively fast drum cycle times typically will need to be reset on
powerup, using the non-retentive option. Applications with relatively long drum cycle
times may need to resume at the previous point where operations stopped, using the
retentive case. The default option is the retentive case. This means that if you
initialize scratchpad V-memory, the memory will be retentive.

DL350 User Manual, 2nd Edition

Drum Instruction
Programming

S
S

6--9

6--10

Drum Instruction Programming

Drum Instruction
Programming

Drum Control Techniques
Drum
Control Inputs

Now we are ready to put together the
concepts on the previous pages and
demonstrate general control of the drum
instruction box. The drawing to the right
shows a simplified generic drum
instruction. Inputs from ladder logic
control the Start, Jog, and Reset Inputs.
The first counter bit of the drum (CT0, for
example) indicates the drum cycle is
done.

X0

Start

X1

Jog

X2

Reset

Outputs

Setup
Info.
Steps

Mask
f
f
f
F
f
f
f
f

f
f
f
F
F
F
F
F

F
f
f
f
F
F
f
F

f
f
f
F
f
f
f
f

f f
f f
F f
F f
F f
F F
F F
f F

The timing diagram below shows an arbitrary timer drum input sequence and how
the drum responds. As the CPU enters run mode it initializes the step number to the
preset step number (typically is Step 1). When the Start input goes high the drum
begins running, looking for an event and/or running the count timer (depending on
the drum type and setup).
After the drum enters Step 2, Reset turns On while Start is still On. Since Reset has
priority over Start, the drum goes to the preset step (Step 1). Note the drum is held in
the preset step during Reset, and that step does not run (respond to events or run the
timer) until Reset turns off.
After the drum has entered step 3, the Start input goes off momentarily, halting the
drum’s timer until Start turns on again.
Start
drum
Inputs
Start

1
0

Jog

1
0

Reset

1
0

Reset
drum

Hold
drum

Resume
drum

Drum
Reset
Complete drum

Drum Status
1

Step #
Drum
Complete (CT0)

1

Outputs (x 16)

1
0

1

2

1

1

2

3

3

4

...

15

16

16

16

1

1

0

When the drum completes the last step (Step 16 in this example), the Drum
Complete bit (CT0) turns on, and the step number remains at 16. When the Reset
input turns on, it turns off the Drum Complete bit (CT0), and forces the drum to enter
the preset step.
NOTE: The timing diagram shows all steps using equal time durations. Step times
can vary greatly, depending on the counts/step programmed.

DL350 User Manual, 2nd Edition

6--11

Drum Instruction Programming

Jog
drum
Inputs
Start

1
0

Jog

1
0

Reset

1
0

Reset
drum

Jog
drum

Jog
drum

Drum
Complete

Drum Status
1

Step #

Self-Resetting
Drum

Initializing Drum
Outputs

Drum
Complete (CT0)

1

Outputs (x 16)

1
0

2

3

3

3

4

5

6,7

8

...

14

15

16

16

16

1

0

Applications often require drums that
automatically start over once they
complete a cycle. This is easily
accomplished, using the drum complete
bit. In the figure to the right, the drum
instruction setup is for CT0, so we logically
OR the drum complete bit (CT0) with the
Reset input. When the last step is done,
the drum turns on CT0 which resets itself
to the preset step, also resetting CT0.
Contact X1 still works as a manual reset.

X0
X1
CT0

Start
Reset

Outputs

Setup
Info.
Steps

Mask
f
f
f
F
f
f
f
f

f
f
f
F
F
F
F
F

F
f
f
f
F
F
f
F

f
f
f
F
f
f
f
f

f f
f f
F f
F f
F f
F F
F F
f F

The outputs of a drum are enabled any time the CPU is in run mode. On
program-to-run mode transitions, the drum goes to the preset step, and the outputs
energize according to the pattern of that step. If your application requires all outputs
to be off at powerup, there are two approaches:
S Make the preset step in the drum a “reset step”, with all outputs off.
S Or, use a drum with an output mask. Initialize the mask to “0000” on the
first scan using contact SP0, and LD K000 and OUT Vxxx instructions,
where Vxxxx is the location of the mask register.

DL350 User Manual, 2nd Edition

Drum Instruction
Programming

In the figure below, we focus on how the Jog input works on event drums. To the left
of the diagram, note the off-to-on transitions of the Jog input increments the step.
Start may be either on or off (however, Reset must be off). Two jogs takes the drum to
step three. Next, the Start input turns on, and the drum begins running normally.
During step 6 another Jog input signal occurs. This increments the drum to step 7,
setting the timer to 0. The drum begins running immediately in step 7, because Start
is already on. The drum advances to step 8 normally.
As the drum enters step 14, the Start input turns off. Two more Jog signals moves the
drum to step 16. However, note that a third Jog signal is required to move the drum
through step 16 to “drum complete”. Finally, a Reset input signal arrives which forces
the drum into the preset step and turns off the drum complete bit.

6--12

Drum Instruction Programming

Drum Instruction
Programming

Drum Instructions

Timed Drum with
Discrete Outputs
(DRUM)

The DL350 drum instructions may be programmed using DirectSOFT or for the
EDRUM instruction only you can use a handheld programmer (firmware version
v1.8 or later. This section covers entry using DirectSOFT for all instructions plus the
handheld mnemonics for the EDRUM instruction.
The Timed Drum with Discrete Outputs is the most basic of the DL350’s drum
instructions. It operates according to the principles covered on the previous pages.
Below is the instruction in chart form as displayed by DirectSOFT.
Step Preset
Timebase

Counter Number

Discrete Output Assignment

Start

Control
Inputs

Reset

Step Number
Counts per Step
Output Pattern

f= Off, F= On

The Timed Drum features 16 steps and 16 outputs. Step transitions occur only on a
timed basis, specified in counts per step. Unused steps must be programmed with
“counts per step” = 0 (this is the default entry). The discrete output points may be
individually assigned as X, Y, or C types, or may be left unused. The output pattern
may be edited graphically with DirectSOFT.
Whenever the Start input is energized, the drum’s timer is enabled. It stops when the
last step is complete, or when the Reset input is energized. The drum enters the
preset step chosen upon a CPU program-to-run mode transition, and whenever the
Reset input is energized.
Drum Parameters

Field

Data Types

Ranges

Counter Number

aaa

--

0 -- 177

Preset Step

bb

K

1 -- 16

Timer base

cccc

K

0 -- 99.99 seconds

Counts per step

dddd

K

0 -- 9999

Discrete Outputs

Fffff

X, Y, C

see page 3--29

DL350 User Manual, 2nd Edition

Drum Instruction Programming

6--13

Counter Number

Ranges of (n)

Function

Counter Bit Function

CT(n)

0 -- 124

Counts in step

CTn = Drum Complete

CT( n+1)

1 -- 125

Timer value

CT(n+1) = (not used)

CT( n+2)

2 --126

Preset Step

CT(n+2) = (not used)

CT( n+3)

3 --127

Current Step

CT(n+1) = (not used)

The following ladder program shows the DRUM instruction in a typical ladder
program, as shown by DirectSOFT. Steps 1 through 10 are used, and twelve of the
sixteen output points are used. The preset step is step 1. The timebase runs at 100
mS per count. Therefore, the duration of step 1 is (25 x 0.1) = 2.5 seconds. In the last
rung, the Drum Complete bit (CT0) turns on output Y0 upon completion of the last
step (step 10). A drum reset also resets CT0.

DL350 User Manual, 2nd Edition

Drum Instruction
Programming

Drum instructions use four counters in the CPU. The ladder program can read the
counter values for the drum’s status. The ladder program may write a new preset
step number to CT(n+2) at any time. However, the other counters are for monitoring
purposes only.

Drum Instruction
Programming

6--14

Drum Instruction Programming

Event Drum with
Discrete Outputs
(EDRUM)

The Event Drum with Discrete Outputs has all the features of the Timed Drum, plus
event-based step transitions. It operates according to the general principles of drum
operation covered in the beginning of this section. Below is the instruction in chart
form as displayed by DirectSOFT.
Counter Number
Step Preset

EDRUM1

Timebase

Discrete Output Assignment

Start

Control
Inputs

Jog
Reset

Step Number
Counts per Step
Event per step
Output Pattern
f= Off, F= On

The Event Drum with Discrete Outputs features 16 steps and 16 outputs. Step
transitions occur on timed and/or event basis. The jog input also advances the step
on each off-to-on transition. Time is specified in counts per step, and events are
specified as discrete contacts. Unused steps must be programmed with “counts per
step” = 0, and event = “0000”. The discrete output points may be individually
assigned. The output pattern may be edited graphically with DirectSOFT.
Whenever the Start input is energized, the drum’s timer is enabled. As long as the
event is true for the current step, the timer runs during that step. When the step count
equals the counts per step, the drum transitions to the next step. This process stops
when the last step is complete, or when the Reset input is energized. The drum
enters the preset step chosen upon a CPU program-to-run mode transition, and
whenever the Reset input is energized.
Drum Parameters

Field

Data Types

Ranges

Counter Number

aaa

--

0 -- 177

Preset Step

bb

K

1 -- 16

Timer base

cccc

K

0 -- 99.99 seconds

Counts per step

dddd

K

0 -- 9999

Event

eeee

X, Y, C, S, T, ST

Discrete Outputs

Fffff

X, Y, C ,

DL350 User Manual, 2nd Edition

Drum Instruction Programming

6--15

Counter Number

Ranges of (n)

Function

Counter Bit Function

CT(n)

0 -- 124

Counts in step

CTn = Drum Complete

CT( n+1)

1 -- 125

Timer value

CT(n+1) = (not used)

CT( n+2)

2 --126

Preset Step

CT(n+2) = (not used)

CT( n+3)

3 --127

Current Step

CT(n+1) = (not used)

The following ladder program shows the EDRUM instruction in a typical ladder
program, as shown by DirectSOFT. Steps 1 through 11 are used, and all sixteen
output points are used. The preset step is step 1. The timebase runs at 100 mS per
count. Therefore, the duration of step 1 is (5 x 0.1) = 0.5 seconds. Note that step 1 is
time-based only (event = “K0000”). And, the output pattern for step 1 programs all
outputs off, which is a typically desirable powerup condition. In the last rung, the
Drum Complete bit (CT4) turns on output Y0 upon completion of the last step (step
10). A drum reset also resets CT4.

DL350 User Manual, 2nd Edition

Drum Instruction
Programming

Drum instructions use four counters in the CPU. The ladder program can read the
counter values for the drum’s status. The ladder program may write a new preset
step number to CT(n+2) at any time. However, the other counters are for monitoring
purposes only.

Drum Instruction
Programming

6--16

Drum Instruction Programming
The handheld programmer can also enter or edit drum instructions. The diagram
below lists the keystrokes for entering the drum example on the previous page.
NOTE: Drum editing requires Handheld Programmer firmware version 1.8 or later.
Handheld Programmer Keystrokes

Start

$

Jog

$

Reset

$

Drum Inst.

SHFT

A

STR

B

STR

C

STR
E

4

D

NOTE: You may use the NXT and PREV keys
to skip past entries for unused outputs or steps.

ENT

0

ENT

1

ENT

2

R
ORN

3

U

Preset Step

( DEF K0001)

NEXT

Time Base

( DEF K0000 )

G

( DEF 0000 )

SHFT

C

( DEF 0000 )

SHFT

C

( DEF 0000 )

SHFT

Y
MLS

B

( DEF 0000 )

SHFT

Y
MLS

E

( DEF 0000 )

SHFT

Y
MLS

F

( DEF 0000 )

SHFT

Y
MLS

G

( DEF 0000 )

SHFT

C

E

( DEF 0000 )

SHFT

C

( DEF 0000 )

SHFT

Y
MLS

A

( DEF 0000 )

SHFT

Y
MLS

C

( DEF 0000 )

SHFT

C

B

( DEF 0000 )

SHFT

C

( DEF 0000 )

SHFT

Y
MLS

G

( DEF 0000 )

SHFT

Y
MLS

H

( DEF 0000 )

SHFT

C

D

16 ( DEF 0000 )

SHFT

Y
MLS

1

6

Outputs

E

4
2
2

2
2

2
2

2

M
ORST

ISG

A

0

ENT

Handheld Programmer Keystrokes cont’d

NEXT
H
B

C

D

B

7
1
1
4
5
6
4
2
0
2
1
3
6
7
3
1

NEXT
A

0

NEXT

1 ( DEF K0000 )

F

( DEF K0000 )

C

NEXT

( DEF K0000 )

NEXT

( DEF K0000 )

NEXT

( DEF K0000 )

NEXT

( DEF K0000 )

NEXT

( DEF K0000 )

NEXT

Counts/
Step

( DEF K0000 )

B
E
B
J
B
I

5
2
1
4
1
9
1
8

( DEF K0000 )

B

( DEF K0000 )

E

NEXT

( DEF K0000 )

NEXT

NEXT

( DEF K0000 )

NEXT

NEXT

( DEF K0000 )

NEXT

NEXT

( DEF K0000 )

NEXT

( DEF K0000 )

NEXT

16 ( DEF K0000 )

NEXT

NEXT
NEXT
E
A

E

4
0

4

NEXT

NEXT

1
4

NEXT
A
F
F
I
C
C
G
C
A

0
5
5
8
2
2
6
2
0

(Continued on next page)

DL350 User Manual, 2nd Edition

NEXT
A

NEXT

0

NEXT
A
D
A
E
A
A

0
3
0
4
0
0

NEXT
NEXT
NEXT
NEXT
A

0

NEXT

NEXT

skip over
unused steps

Drum Instruction Programming

Handheld Programmer Keystrokes cont’d
( DEF 0000 )
( DEF 0000 )

( DEF 0000 )
( DEF 0000 )
( DEF 0000 )
( DEF 0000 )
( DEF 0000 )
( DEF 0000 )

SHFT
SHFT
SHFT
SHFT
SHFT
SHFT

Events
( DEF 0000 )
( DEF 0000 )
( DEF 0000 )

16

skip over unused event

NEXT
SHFT

SHFT
SHFT
SHFT

( DEF 0000 )

NEXT

( DEF 0000 )

NEXT

( DEF 0000 )

NEXT

( DEF 0000 )

NEXT

( DEF 0000 )

NEXT

Handheld Programmer Keystrokes cont’d

Y
MLS

E

X
SET

B

X
SET

C

C

A

C

2
2

B

X
SET

A

X
SET

F

X
SET

D

Y
MLS

H

C

C

2

4
1
2
0
1
0
5
3
7
2

1

NEXT

( DEF K0000 )

NEXT

( DEF K0000 )

NEXT

( DEF K0000 )

NEXT
NEXT
NEXT
NEXT

Output
Pattern

NEXT

0

NEXT

Last rung

C
E

( DEF K0000 )

J

( DEF K0000 )

E

( DEF K0000 )

J

( DEF K0000 )

16

J

F

( DEF K0000 )

step 1 pattern = 0000

NEXT

( DEF K0000 )

( DEF K0000 )

NEXT
A

( DEF K0000 )

D
F
I

9
2
4
5
9
4
9
3
5
8

I
I
E
B
D
E
E
I
I
E

( DEF K0000 )

NEXT

( DEF K0000 )

NEXT

( DEF K0000 )

NEXT

( DEF K0000 )

NEXT

( DEF K0000 )

NEXT

$

GY
CNT

A

Y
MLS

A

STR

SHFT

8
8
4
1
3
4
4
8
8
4

B
J
H
G
E
I
F

1
9
7
6
4
8
5

C
E
G
J
D
G
J

SHFT

A

G

E

E

6
4

H

2
4
6
9
3
6
9
0
4
7

NEXT
NEXT
NEXT
NEXT
NEXT
NEXT
NEXT
NEXT
NEXT
NEXT

unused steps

0
0

NEXT
NEXT

NOTE: You may use the NXT and PREV keys
to skip past entries for unused outputs or steps.

DL350 User Manual, 2nd Edition

Drum Instruction
Programming

1

6--17

Drum Instruction
Programming

6--18

Drum Instruction Programming

Masked
Event Drum with
Discrete Outputs
(MDRUMD)

The Masked Event Drum with Discrete Outputs has all the features of the basic
Event Drum plus final output control for each step. It operates according to the
general principles of drum operation covered in the beginning of this section. Below
is the instruction in chart form as displayed by DirectSOFT.

MDRUMD1

Counter Number

Step Preset
Timebase

Discrete Output Assignment
Output Mask Word

Start

Control
Inputs

Jog
Reset

Step Number
Counts per Step
Event per step
Output Pattern

f= Off, F= On

The Masked Event Drum with Discrete Outputs features sixteen steps and sixteen
outputs. Drum outputs are logically ANDed bit-by-bit with an output mask word for
each step. The Ggggg field specifies the beginning location of the 16 mask words.
Step transitions occur on timed and/or event basis. The jog input also advances the
step on each off-to-on transition. Time is specified in counts per step, and events are
specified as discrete contacts. Unused steps must be programmed with “counts per
step” = 0, and event = “0000”.
Whenever the Start input is energized, the drum’s timer is enabled. As long as the
event is true for the current step, the timer runs during that step. When the step count
equals the counts per step, the drum transitions to the next step. This process stops
when the last step is complete, or when the Reset input is energized. The drum
enters the preset step chosen upon a CPU program-to-run mode transition, and
whenever the Reset input is energized.
Drum Parameters

Field

Data Types

Ranges

Counter Number

aaa

--

0 -- 177

Preset Step

bb

K

1 -- 16

Timer base

cccc

K

0 -- 99.99 seconds

Counts per step

dddd

K

0 -- 9999

Event

eeee

X, Y, C, S, T, ST

Discrete Outputs

Fffff

X, Y, C

Output Mask

Ggggg

V

DL350 User Manual, 2nd Edition

Drum Instruction Programming

6--19

Counter Number

Ranges of (n)

Function

Counter Bit Function

CT(n)

0 -- 124

Counts in step

CTn = Drum Complete

CT( n+1)

1 -- 125

Timer value

CT(n+1) = (not used)

CT( n+2)

2 --126

Preset Step

CT(n+2) = (not used)

CT( n+3)

3 --127

Current Step

CT(n+1) = (not used)

The following ladder program shows the MDRUMD instruction in a typical ladder
program, as shown by DirectSOFT. Steps 1 through 11 are used, and all 16 output
points are used. The output mask word is at V2000. The final drum outputs are
shown above the mask word as individual bits. The data bits in V2000 are logically
ANDed with the output pattern of the current step in the drum. If you want all drum
outputs to be off after powerup, write zeros to V2000 on the first scan. Ladder logic
may update the output mask at any time to enable or disable the drum outputs. The
preset step is step 1. The timebase runs at 100 mS per count. Therefore, the
duration of step 1 is (5 x 0.1) = 0.5 seconds. Note that step 1 is time-based only
(event -- “K0000”). In the last rung, the Drum Complete bit (CT10) turns on output Y0
upon completion of the last step (step 10). A drum reset also resets CT10.
DirectSOFT Display

NOTE: The ladder program must load constants in V2000 through
V2012 to cover all mask registers for the eleven steps used in this drum.

DL350 User Manual, 2nd Edition

Drum Instruction
Programming

Drum instructions use four counters in the CPU. The ladder program can read the
counter values for the drum’s status. The ladder program may write a new preset
step number to CT(n+2) at any time. However, the other counters are for monitoring
purposes only.

Drum Instruction
Programming

6--20

Drum Instruction Programming

Masked
Event Drum with
Word Output
(MDRUMW)

The Masked Event Drum with Word Output features outputs organized as bits of a
single word, rather than discrete points. It operates according to the general
principles of drum operation covered in the beginning of this section. Below is the
instruction in chart form as displayed by DirectSOFT.

MDRUMW1

Counter Number

Step Preset
Timebase

Word Output Assignment
Output Mask Word

Start

Control
Inputs

Jog
Reset

Step Number
Counts per Step
Event per step
Output Pattern
f= Off, F= On

The Masked Event Drum with Word Output features sixteen steps and sixteen
outputs. Drum outputs are logically ANDed bit-by-bit with an output mask word for
each step. The Ggggg field specifies the beginning location of the 16 mask words,
creating the final output (Fffff field). Step transitions occur on timed and/or event
basis. The jog input also advances the step on each off-to-on transition. Time is
specified in counts per step, and events are specified as discrete contacts. Unused
steps must be programmed with “counts per step” = 0, and event = “0000”.
Whenever the Start input is energized, the drum’s timer is enabled. As long as the
event is true for the current step, the timer runs during that step. When the step count
equals the counts per step, the drum transitions to the next step. This process stops
when the last step is complete, or when the Reset input is energized. The drum
enters the preset step chosen upon a CPU program-to-run mode transition, and
whenever the Reset input is energized.
Drum Parameters

Field

Data Types

Ranges

Counter Number

aaa

--

0 -- 177

Preset Step

bb

K

1 -- 16

Timer base

cccc

K

0 -- 99.99 seconds

Counts per step

dddd

K

0 -- 9999

Event

eeee

X, Y, C, S, T, ST

see page 3--29

Word Output

Fffff

V

see page 3--29

Output Mask

Ggggg

V

see page 3--29

DL350 User Manual, 2nd Edition

Drum Instruction Programming

6--21

Counter Number

Ranges of (n)

Function

Counter Bit Function

CT(n)

0 -- 124

Counts in step

CTn = Drum Complete

CT( n+1)

1 -- 125

Timer value

CT(n+1) = (not used)

CT( n+2)

2 --126

Preset Step

CT(n+2) = (not used)

CT( n+3)

3 --127

Current Step

CT(n+1) = (not used)

The following ladder program shows the MDRUMD instruction in a typical ladder
program, as shown by DirectSOFT. Steps 1 through 11 are used, and all sixteen
output points are used. The output mask word is at V2000. The final drum outputs
are shown above the mask word as a word at V2001. The data bits in V2000 are
logically ANDed with the output pattern of the current step in the drum, generating
the contents of V2001. If you want all drum outputs to be off after powerup, write
zeros to V2000 on the first scan. Ladder logic may update the output mask at any
time to enable or disable the drum outputs. The preset step is step 1. The timebase
runs at 50 mS per count. Therefore, the duration of step 1 is (5 x 0.1) = 0.5 seconds.
Note that step 1 is time-based only (event -- “K0000”). In the last rung, the Drum
Complete bit (CT14) turns on output Y0 upon completion of the last step (step 10). A
drum reset also resets CT14.
DirectSOFT Display

NOTE: The ladder program must load constants in V2000 through
V2012 to cover all mask registers for the eleven steps used in this drum.

DL350 User Manual, 2nd Edition

Drum Instruction
Programming

Drum instructions use four counters in the CPU. The ladder program can read the
counter values for the drum’s status. The ladder program may write a new preset
step number to CT(n+2) at any time. However, the other counters are for monitoring
purposes only.

1

RLL PLUS
Stage Programming

17

In This Chapter. . . .
— Introduction to Stage Programming
— Learning to Draw State Transition Diagrams
— Using the Stage Jump Instruction for State Transitions
— Stage Program Example: Toggle On/Off Lamp Controller
— Four Steps to Writing a Stage Program
— Stage Program Example: A Garage Door Opener
— Stage Program Design Considerations
— Parallel Processing Concepts
— Managing Large Programs
— RLL PLUS Instructions
— Questions and Answers About Stage Programming

7--2

RLL PLUS Stage Programming

Introduction to Stage Programming

RLLPLUS
Stage Programming

Stage Programming provides a way to organize and program complex applications
with relative ease, when compared to purely relay ladder logic (RLL) solutions.
Stage programming does not replace or negate the use of traditional boolean ladder
programming. This is why Stage Programming is also called RLL PLUS. You will not
have to discard any training or experience you already have. Stage programming
simply allows you to divide and organize a RLL program into groups of ladder
instructions called stages. This allows quicker and more intuitive ladder program
development than traditional RLL alone provides.

Overcoming
“Stage Fright”

Many PLC programmers in the industry
have become comfortable using RLL for
every PLC program they write... but often
remain skeptical or even fearful of learning
new techniques such as stage
programming. While RLL is great at
solving boolean logic relationships, it has
disadvantages as well:
S Large programs can become almost
unmanageable, because of a lack of
structure.
S In RLL, latches must be tediously
created from self-latching relays.
S When a process gets stuck, it is
difficult to find the rung where the
error occurred.
S Programs become difficult to modify
later, because they do not intuitively
resemble the application problem
they are solving.

X0

X4

C0
RST
C1

Y0
SET

STAGE!
X3

Y2
OUT

It’s easy to see that these inefficiencies consume a lot of additional time, and time is
money. Stage programming overcomes these obstacles! We believe a few
moments of studying the stage concept is one of the greatest investments in
programming speed and efficiency a PLC programmer can make!
So, we encourage you to study stage programming and add it to your “toolbox” of
programming techniques. This chapter is designed as a self-paced tutorial on stage
programming. For best results:
S Start at the beginning and do not skip over any sections.
S Study each stage programing concept by working through each
example. The examples build progressively on each other.
S Read the Stage Questions and Answers at the end of the chapter for a
quick review.

DL350 User Manual, 2nd Edition

RLL PLUS Stage Programming

7--3

Learning to Draw State Transition Diagrams
Introduction to
Process States

Inputs

Ladder
Program

Outputs

PLC Scan
1) Read

Execute

Write

2) Read

Execute

Write

3) Read

(etc....)

If you’re following along, you are very close to grasping the concept and the
problem-solving power of state transition diagrams. The output of our controller is
Y0, which is true any time we are in the ON state. In a boolean sense, Y0=ON state.
Next, we will implement the state diagram first as RLL, then as a stage program. This
will help you see the relationship between the two methods in problem solving.

DL350 User Manual, 2nd Edition

PLUS

Most manufacturing processes consist of a series of activities or conditions , each
lasting for several seconds. minutes, or even hours. We might call these “process
states”, which are either active or inactive at any particular time. A challenge for RLL
programs is that a particular input event may last for a brief instant. We typically
create latching relays in RLL to preserve the input event in order to maintain a
process state for the required duration.
We can organize and divide ladder logic into sections called “stages”, representing
process states. But before we describe stages in detail, we will reveal the secret to
understanding stage programming: state transition diagrams.
The Need for State Sometimes we need to forget about the scan nature of PLCs, and focus our thinking
toward the states of the process we need to identify. Clear thinking and concise
Diagrams
analysis of an application gives us the best chance at writing efficient, bug-free
programs. State diagrams are tools to help us draw a picture of our process! You will
discover that if we can get the picture right, our program will also be right!
Inputs
Outputs
A 2--State Process Consider the simple process shown to the
right, which controls an industrial motor.
On
We will use a green momentary SPST
X0
Motor
pushbutton to turn the motor on, and a red
Ladder Y0
one to turn it off. The machine operator will
Program
Off
X1
press the appropriate pushbutton for a
second or so. The two states of our
process are ON and OFF.
Transition condition
The next step is to draw a state transition
State
diagram, as shown to the right. It shows
X0
the two states OFF and ON, with two
transition lines in-between. When the
OFF
ON
event X0 is true, we transition from OFF to
X1
ON. When X1 is true, we transition from
Output equation: Y0 = ON
ON to OFF.

RLL
Stage Programming

Those familiar with ladder program
execution know the CPU must scan the
ladder program repeatedly, over and over.
Its three basic steps are:
1. Read the inputs
2. Execute the ladder program
3. Write the outputs
The benefit is that a change at the inputs
can affect the outputs in a few
milliseconds.

7--4

RLL PLUS Stage Programming
The state transition diagram to the right is
a picture of the solution we need to create.
It expresses the problem independently of
the programming language we may use to
realize it. In other words, by drawing the
diagram we have already solved the
control problem!

X0

OFF

ON
X1

Output equation: Y0 = ON

First, we will translate the state diagram to traditional RLL. Then we will show how
easy it is to translate the diagram into a stage programming solution.
RLLPLUS
Stage Programming

RLL Equivalent

Stage Equivalent

The RLL solution is shown to the right. It
consists of a self-latching control relay,
C0. When the On momentary pushbutton
(X0) is pressed, output coil C0 turns on
and the C0 contact on the second row
latches itself on. So, X0 sets the latch C0
on, and it remains on after the X0 contact
opens. The motor output Y0 also has
power flow, so the motor is now on.
When the Off pushbutton (X1) is pressed,
it opens the normally-closed X1 contact,
which resets the latch. Motor output Y0
turns off when the latch coil C0 goes off.
The stage program solution is shown to
the right. The two inline stage boxes S0
and S1 correspond to the two states OFF
and ON. The ladder rung(s) below each
stage box belong to each respective
stage. This means the PLC only has to
scan those rungs when the corresponding
stage is active!
For now, let’s assume we begin in the OFF
State, so stage S0 is active. When the On
pushbutton (X0) is pressed, a stage
transition occurs. The JMP S1 instruction
executes, which simply turns off the Stage
bit S0 and turns on Stage bit S1. So on the
next PLC scan, the CPU will not execute
Stage S0, but will execute stage S1!
In the On State (Stage S1), we want the
motor to always be on. The special relay
contact SP1 is defined as always on, so Y0
turns the motor on.

Set

Reset

X0

X1

Latch

Latch
C0
OUT

Output

C0

Y0
OUT

SG
S0

OFF State
Transition
S1

X0

JMP
SG
S1

ON State
SP1 Always on

Output
Y0
OUT

Transition
X1

S0

JMP

When the Off pushbutton (X1) is pressed, a transition back to the Off State occurs.
The JMP S0 instruction executes, which simply turns off the Stage bit S1 and turns
on Stage bit S0. On the next PLC scan, the CPU will not execute Stage S1, so the
motor output Y0 will turn off. The Off state (Stage 0) will be ready for the next cycle.

DL350 User Manual, 2nd Edition

RLL PLUS Stage Programming
Let’s Compare

You may be thinking “I don’t see the big advantage to Stage Programming... in fact,
the stage program is longer than the standard RLL program”. As control problems
grow in complexity, stage programming quickly out-performs RLL in simplicity,
program size, etc.
For example, consider the diagram below.
Notice how easy it is to correlate the OFF
SG
and ON states of the state transition
OFF State
S0
diagram below to the stage program at the
S1
X0
right. Now, we challenge anyone to
JMP
easily identify the same states in the
RLL program on the previous page!

OFF

X0

ON

At powerup and Program--to--Run Mode
transitions, the PLC always begins with all
normal stages (SG) off. So, the stage
ISG
programs shown so far have actually had no
S0
way to get started (because rungs are not
scanned unless their stage is active).
Assume that we want to always begin in the
Off state (motor off), which is how the RLL
program works. The Initial Stage (ISG) is SG
S1
defined to be active at powerup. In the
modified program to the right, we have
changed stage S0 to the ISG type. This
ensures the PLC will scan contact X0 after
powerup, because Stage S0 is active. After
powerup, an Initial Stage (ISG) works like
any other stage!
We can change both programs so the motor is
ON at powerup. In the RLL below, we must add
a first scan relay SP0, latching C0 on. In the SGS0
stage example to the right, we simply make
Stage S1 an initial stage (ISG) instead of S0.

SP1

Y0
OUT

X1

S0
JMP

Powerup in OFF State
Initial Stage
S1

X0

JMP

SP1

Y0
OUT

X1

S0
JMP

Powerup in ON State

S1

X0

JMP

Powerup in ON State
X0

X1

C0
SP0

C0
OUT
Y0
OUT

First Scan

ISG
S1

Initial Stage
SP1

X1

Y0
OUT
S0
JMP

NOTE: If the ISG is within the retentive range for stages, the ISG will remain in the
state it was in before power down and will NOT turn itself on during the first scan.

DL350 User Manual, 2nd Edition

PLUS

X1

ON State

RLL
Stage Programming

SG
S1

Initial Stages

7--5

7--6

RLL PLUS Stage Programming
Mark the desired powerup state as shown
to the right, which helps us remember to
use the appropriate Initial Stages when
creating a stage program. It is permissible
to have as many initial stages as the
process requires.

Powerup

X0

OFF

ON
X1

What Stage Bits Do You may recall that a stage is a section of ladder program which is either active or
inactive at a given moment. All stage bits (S0 -- Sxxx) reside in the PLCs image
register as individual status bits. Each stage bit is either a boolean 0 or 1 at any time.
Program execution always reads ladder rungs from top to bottom, and from left to
right. The drawing below shows the effect of stage bit status. The ladder rungs below
the stage instruction continuing until the next stage instruction or the end of program
belong to stage 0. Its equivalent operation is shown on the right. When S0 is true, the
two rungs have power flow.
S If Stage bit S0 = 0, its ladder rungs are not scanned (executed).
S If Stage bit S0 = 1, its ladder rungs are scanned (executed).
Actual Program Appearance

SG
S0

Functionally Equivalent Ladder

S0

(includes all rungs in stage)

Stage Instruction
Characteristics

The inline stage boxes on the left power
rail divide the ladder program rungs into
stages. Some stage rules are:
S Execution -- Only logic in active
stages are executed on any scan.
S Transitions -- Stage transition
instructions take effect on the next
occurrence of the stages involved.
S Octal numbering -- Stages are
numbered in octal, like I/O points,
etc. So “S8” is not valid.
S Total Stages -- The maximum
number of stages is CPU-dependent.
S No duplicates -- Each stage number
is unique and can be used once.
S Any order -- You can skip numbers
and sequence the stage numbers in
any order.
S Last Stage -- the last stage in the
ladder program includes all rungs
from its stage box until the end coil.

DL350 User Manual, 2nd Edition

SG
S0

SG
S1

SG
S2

END

7--7

RLL PLUS Stage Programming

Using the Stage Jump Instruction for State Transitions
Stage Jump, Set,
and Reset
Instructions

The Stage JMP instruction deactivates the stage in which the instruction occurs,
while activating the stage in the JMP instruction. Refer to the state transition shown
below. When contact X0 energizes, the state transition from S0 to S1 occurs. The
two stage examples shown below are equivalent. The Stage Jump instruction is
equal to a Stage Reset of the current stage, plus a Stage Set instruction for the stage
you want to transition.
X0

S1

SG
S0

Equivalent

S1

X0

SG
S0
S0

X0

RST
S1
SET

Please Read Carefully -- The jump instruction is easily misunderstood. The “jump”
does not occur immediately like a GOTO or GOSUB program control instruction
when executed. Here’s how it works:
S The jump instruction resets the stage bit of the stage in which it occurs.
All rungs in the stage still finish executing during the current scan, even
if there are other rungs in the stage below the jump instruction!
S The reset will be in effect on the following scan, so the stage that
executed the jump instruction previously will be inactive and bypassed.
S The stage bit of the stage named in the Jump instruction will be set
immediately, so the stage will be executed on its next occurrence. In the
left program shown below, stage S1 executes during the same scan as
the JMP S1 occurs in S0. In the example on the right, Stage S1
executes on the next scan after the JMP S1 executes, because stage
S1 is located above stage S0.
SG
S0

Executes on next
scan after Jmp

SG
S1
X0

S1

S1

JMP

Executes on same
scan as Jmp

SG
S1
S1

Y0
OUT

Y0
OUT

SG
S0
X0

S1
JMP

NOTE: Assume we start with Stage 0 active and Stage 1 inactive for both examples.

DL350 User Manual, 2nd Edition

PLUS

JMP

RLL
Stage Programming

S0

7--8

RLL PLUS Stage Programming

Stage Program Example: Toggle On/Off Lamp Controller

RLLPLUS
Stage Programming

A 4--State Process

In the process shown to the right, an
ordinary momentary pushbutton is used to
control a light bulb. The ladder program
will latch the switch input. Push and
release to turn on the light, push and
release again to turn it off (sometimes
called toggle function). You could buy a
mechanical switch with the alternate
on/off action built in... However, this
example is educational and also fun!
Next draw the state transition diagram. A
typical first approach is to use X0 for both
transitions (like the example shown to the
right). However, this is incorrect (please
keep reading).

Inputs
Toggle

X0

Outputs
Ladder
Program

Powerup

Y0

X0

OFF

ON
X0

Output equation: Y0 = ON

This example differs from the motor example, because there is only one pushbutton.
When the pushbutton is pressed, both transition conditions are met. If implemented
in Stage, this solution would flash the light on or off each scan (obviously
undesirable)!
The solution is to make the the push and the release of the pushbutton separate
events. Refer to the new state transition diagram below. At powerup enter the OFF
state. When switch X0 is pressed, enter the Press-ON state. When it is released,
enter the ON state. Note that X0 with the bar above it denotes X0 NOT.
Powerup

X0

Push--ON

X0

OFF

ISG
S0

Push--OFF

X0

JMP
SG
S1

DL350 User Manual, 2nd Edition

Push--On State
S2

X0

Output equation: Y0 = ON

When in the ON state, another push and
release cycle similarly takes us back to the
OFF state. Now there are two unique states
(OFF and ON) used when the pushbutton is
released, which is what was required to solve
the control problem.
The equivalent stage program is shown to the
right. The desired powerup state is OFF,
therefore, make S0 an initial stage (ISG). In
the ON state, add special relay contact SP1,
which is always on.
Note that even as the programs grow more
complex, it is still easy to correlate the state
transition diagram with the stage program!

S1

X0

ON

X0

OFF State

JMP
SG
S2

ON State
SP1

Output
Y0
OUT
S3

X0

JMP
SG
S3

Push--Off State
X0

S0
JMP

RLL PLUS Stage Programming

7--9

Four Steps to Writing a Stage Program
By now, you’ve probably noticed that the same steps are followed to solve each
example problem. The steps will probably come to you automatically if you work
through all the examples in this chapter. It’s helpful to have a checklist to guide
through the problem solving. The following steps summarize the stage program
design procedure:

1. Write a Word Description of the application.

2. Draw the Block Diagram.

3. Draw the State Transition Diagram.
The state transition diagram describes the central function of the block diagram,
reading inputs and generating outputs.
S Identify and name the states of the process.
S Identify the event(s) required for each transition between states.
S Ensure the process has a way to re-start itself, or is cyclical.
S Choose the powerup state for your process.
S Write the output equations.

4. Write the Stage Program.
Translate the state transition diagram into a stage program.
S Make each state a stage. Remember to number stages in octal. Up to
1024 total stages are available in the DL350 CPUs.
S Put transition logic inside the stage which originates each transition (the
stage each arrow points away from).
S Use an initial stage (ISG) for any states that must be active at powerup.
S Place the outputs or actions in the appropriate stages.
You will notice that Steps 1 through 3 prepare us to write the stage program in Step 4.
However, the program virtually writes itself because of the preparation beforehand.
Soon you will be able to start with a word description of an application and create a
stage program in one easy session!

DL350 User Manual, 2nd Edition

PLUS

Inputs represent all the information the process needs for decisions, and outputs
connect to all devices controlled by the process.
S Make lists of inputs and outputs for the process.
S Assign I/O point numbers (X and Y) to physical inputs and outputs.

RLL
Stage Programming

Describe all functions of the process in your own words. Start by listing what
happens first, then next, etc. If you find there are too many things happening at once,
try dividing the problem into more than one process. Remember, you can still have
the processes communicate with each other to coordinate their overall activity.

7--10

RLL PLUS Stage Programming

Stage Program Example: A Garage Door Opener

RLLPLUS
Stage Programming

Garage Door
Opener Example

In this next stage programming example
we will create a garage door opener
controller. Hopefully most readers are
familiar with this application, and we can
have fun besides!
The first step we must take is to describe
how the door opener works. We will start
by achieving the basic operation, waiting
to add extra features later (stage
programs are very easy to modify).
Our garage door controller has a motor
which raises or lowers the door on
command. The garage owner pushes and
releases a momentary pushbutton once to
raise the door. After the door is up, another
push-release cycle will lower the door.
In order to identify the inputs and outputs
of the system, it’s sometimes helpful to
sketch its main components, as shown in
the door side view to the right. The door
has an up limit and a down limit switch.
Each limit switch closes only when the
door has reached the end of travel in the
corresponding direction. In the middle of
travel, neither limit switch is closed.
The motor has two command inputs: raise
and lower. When neither input is active,
the motor is stopped.
The door command is a simple
pushbutton. Whether wall-mounted as
shown, or a radio-remote control, all door
control commands logically OR together
as one pair of switch contacts.

Draw the Block
Diagram

Up limit switch

Door
Command
Down limit switch

The block diagram of the controller is Inputs
shown to the right. Input X0 is from the
pushbutton door control. Input X1 Toggle X0
energizes when the door reaches the full
up position. Input X2 energizes when the
Up limit
door reaches the full down position. When
X1
the door is positioned between fully up or
down, both limit switches are open.
Down limit
The controller has two outputs to drive the
X2
motor. Y1 is the up (raise the door)
command, and Y2 is the down (lower the
door) command.

DL350 User Manual, 2nd Edition

Raise
Lower

Motor

Outputs

To motor:
Ladder
Program Y1

Raise

Y2

Lower

7--11

RLL PLUS Stage Programming
Draw the State
Diagram

X0

Push--UP

X0

RAISE

X1

X2

X0

Push-DOWN

JMP
SG
S1

X0

S1

X0

UP
LOWER

DOWN State

Push--UP State
S2

X0

JMP

Output equations: Y1 = RAISE Y2 = LOWER

The equivalent stage program is shown to the
right. For now, we will assume the door is
down at powerup, so the desired powerup
state is DOWN. We make S0 an initial stage
(ISG). Stage S0 remains active until the door
control pushbutton activates. Then we
transition (JMP) to Push-UP stage, S1.
A push-release cycle of the pushbutton takes
us through stage S1 to the RAISE stage, S2.
We use the always-on contact SP1 to
energize the motor’s raise command, Y1.
When the door reaches the fully-raised
position, the up limit switch X1 activates. This
takes us to the UP Stage S3, where we wait
until another door control command occurs.
In the UP Stage S3, a push-release cycle of
the pushbutton will take us to the LOWER
Stage S5, where we activate Y2 to command
the motor to lower the door. This continues
until the door reaches the down limit switch,
X2. When X2 closes, we transition from Stage
S5 to the DOWN stage S0, where we began.
NOTE: The only special thing about an initial
stage (ISG) is that it is automatically active at
powerup. Afterwards, it is like any other.

SG
S2

RAISE State
SP1

Y1
OUT
S3

X1

JMP
SG
S3

UP State
S4

X0

JMP
SG
S4

Push--DOWN State
S5

X0

JMP
SG
S5

LOWER State
SP1
X2

DL350 User Manual, 2nd Edition

Y2
OUT
S0
JMP

PLUS

DOWN

ISG
S0

RLL
Stage Programming

Powerup

Now we are ready to draw the state transition diagram. Like the previous light bulb
controller example, this application also has only one switch for the command input.
Refer to the figure below.
S When the door is down (DOWN state), nothing happens until X0
energizes. Its push and release brings us to the RAISE state, where
output Y1 turns on and causes the motor to raise the door.
S We transition to the UP state when the up limit switch (X1) energizes,
and turns off the motor.
S Then nothing happens until another X0 press-release cycle occurs. That
takes us to the LOWER state, turning on output Y2 to command the
motor to lower the door. We transition back to the DOWN state when the
down limit switch (X2) energizes.

7--12

RLL PLUS Stage Programming

RLLPLUS
Stage Programming

Add Safety
Light Feature

Next we will add a safety light feature to
the door opener system. It’s best to get the
main function working first as we have
done, then adding the secondary features.
The safety light is standard on many
commercially-available garage door
openers. It is shown to the right, mounted
on the motor housing. The light turns on
upon any door activity, remaining on for
approximately 3 minutes afterwards.
This part of the exercise will demonstrate
the use of parallel states in our state
diagram. Instead of using the JMP
instruction, we will use the set and reset
commands.

Safety light

To control the light bulb, we add an output Inputs
Modify the
Block Diagram and to our controller block diagram, shown to
Toggle
the right, Y3 is the light control output.
State Diagram
X0
In the diagram below, we add an additional
state called “LIGHT”. Whenever the
garage owner presses the door control Up limit
X1
switch and releases, the RAISE or
LOWER state is active and the LIGHT
state is simultaneously active. The line to
Down limit
the Light state is dashed, because it is not
X2
the primary path.

Outputs
Y1

Ladder
Program Y2

Y3

Raise

Lower

Light

We can think of the Light state as a parallel process to the raise and lower state. The
paths to the Light state are not a transition (Stage JMP), but a State Set command. In
the logic of the Light stage, we will place a three-minute timer. When it expires, timer
bit T0 turns on and resets the Light stage. The path out of the Light stage goes
nowhere, indicating the Light stage becomes inactive, and the light goes out!
Output equations:
X0
X0

RAISE

Push--UP

X1

Y1 = RAISE
Y2 = LOWER
Y3 = LIGHT

X0

DOWN

LIGHT

UP

T0

X0
X2

LOWER

Push--DOWN

X0

DL350 User Manual, 2nd Edition

X0

7--13

RLL PLUS Stage Programming
Using a Timer
Inside a Stage

DOWN State
S1

X0

JMP
SG
S1

Push--UP State
S2

X0

JMP
S6
SET

SG
S2

RAISE State
SP1

Y1
OUT
S3

X1

JMP
SG
S3

UP State
S4

X0

JMP
SG
S4

Push--DOWN State
S5

X0

JMP
S6
SET

SG
S5

LOWER State
SP1

Y2
OUT

X2

S0
JMP

SG
S6

LIGHT State
SP1

Y3
OUT
TMR T0
K1800

T0

DL350 User Manual, 2nd Edition

S6
RST

PLUS

K= 1800 counts
The timer has power flow whenever stage
S6 is active. The corresponding timer bit
T0 is set when the timer expires. So three
minutes later, T0=1 and the instruction
Reset S6 causes the stage to be inactive.
While Stage S6 is active and the light is on,
stage transitions in the primary path
continue normally and independently of
Stage 6. That is, the door can go up, down,
or whatever, but the light will be on for
precisely 3 minutes.

ISG
S0

RLL
Stage Programming

The finished modified program is shown to
the right. The shaded areas indicate the
program additions.
In the Push-UP stage S1, we add the Set
Stage Bit S6 instruction. When contact X0
opens, we transition from S1 and go to two
new active states: S2 and S6. In the
Push-DOWN state S4, we make the same
additions. So, any time someone presses
the door control pushbutton, the light turns
on.
Most new stage programmers would be
concerned about where to place the Light
Stage in the ladder, and how to number it.
The good news is that it doesn’t matter!
S Choose an unused Stage number,
and use it for the new stage and as
the reference from other stages.
S Placement in the program is not
critical, so we place it at the end.
You might think that each stage has to be
directly under the stage that transitions to
it. While it is good practice, it is not
required (that’s good, because our two
locations for the Set S6 instruction make
that impossible). Stage numbers and how
they are used determines the transition
paths.
In stage S6, we turn on the safety light by
energizing Y3. Special relay contact SP1
is always on. Timer T0 times at 0.1 second
per count. To achieve 3 minutes time
period, we calculate:
3 min. x 60 sec/min
K=
0.1 sec/count

7--14

RLL PLUS Stage Programming

RLLPLUS
Stage Programming

Add Emergency
Stop Feature

Some garage door openers today will
detect an object under the door. This halts
further lowering of the door. Usually
implemented
with
a
photocell
(“electric-eye”), a door in the process of
being lowered will halt and begin raising.
We will define our safety feature to work in
this way, adding the input from the
photocell to the block diagram as shown to
the right. X3 will be on if an object is in the
path of the door.
Next, we make a simple addition to the
state transition diagram, shown in shaded
areas in the figure below. Note the new
transition path at the top of the LOWER
state. If we are lowering the door and
detect an obstruction (X3), we then jump
to the Push-UP State. We do this instead
of jumping directly to the RAISE state, to
give the Lower output Y2 one scan to turn
off, before the Raise output Y1 energizes.

Inputs
Toggle

Outputs
X0

Y1

X1

Ladder Y2
Program

Down limit
X2

Y3

Up limit

Raise
Lower
Light

Obstruction
X3

X0
X0

RAISE

Push--UP

X1

X0

DOWN

X2 and X3

X3

LIGHT

UP

T0

X0

LOWER

Push--DOWN

X0

X0

Exclusive
Transitions

It is theoretically possible the down limit (X2) and the obstruction input (X3) could
energize at the same moment. In that case, we would “jump” to the Push-UP and
DOWN states simultaneously, which does not make sense.
Instead, we give priority to the obstruction
by changing the transition condition to the
SG
LOWER State
DOWN state to [X2 AND NOT X3]. This
S5
ensures the obstruction event has the
SP1
Y2
priority. The modifications we must make
OUT
to the LOWER Stage (S5) logic are shown
to the right. The first rung remains
X2
X3 to Push-UP S0
unchanged. The second and third rungs
JMP
implement the transitions we need. Note
S2
X3
to DOWN
the opposite relay contact usage for X3,
which ensures the stage will execute only
JMP
one of the JMP instructions.

DL350 User Manual, 2nd Edition

RLL PLUS Stage Programming

7--15

Stage Program Design Considerations
Stage Program
Organization

Main Process
XXX

= ISG

Powerup Initialization
Powerup

Fill

Agitate

E-Stop and Alarm Monitoring

Rinse

Spin

PLUS

Idle

Operator Interface

Monitor

Recipe

Control

Status

In a typical application, the separate stage sequences above operate as follows:
S Powerup Initialization -- This stage contains ladder rung tasks
performed once at powerup. Its last rung resets the stage, so this stage
is only active for one scan (or only as many scans that are required).
S Main Process -- This stage sequence controls the heart of the process
or machine. One pass through the sequence represents one part cycle
of the machine, or one batch in the process.
S E-Stop and Alarm Monitoring -- This stage is always active because it
is watching for errors that could indicate an alarm condition or require an
emergency stop. It is common for this stage to reset stages in the main
process or elsewhere, in order to initialize them after an error condition.
S Operator Interface -- This is another task that must always be active
and ready to respond to an operator. It allows an operator interface to
change modes, etc. independently of the current main process step.
Although we have separate processes,
there can be coordination among them.
For example, in an error condition, the
Status Stage may want to automatically
switch the operator interface to the status
mode to show error information as shown
to the right. The monitor stage could set
the stage bit for Status and Reset the
stages Control and Recipe.

Operator Interface
Recipe

Control

Monitor

Set

RLL
Stage Programming

The examples so far in this chapter used one self-contained state diagram to
represent the main process. However, we can have multiple processes
implemented in stages, all in the same ladder program. New stage programmers
sometimes try to turn a stage on and off each scan, based on the false assumption
that only one stage can be on at a time. For ladder rungs that you want to execute
each scan, put them in a stage that is always on.
The following figure shows a typical application. During operation, the primary
manufacturing activity Main Process, Powerup Initialization, E-Stop and Alarm
Monitoring, and Operator Interface are all running. At powerup, four initial stages
shown begin operation.

Status

E-Stop and
Alarm Monitoring

DL350 User Manual, 2nd Edition

7--16

RLL PLUS Stage Programming

We can think of states or stages as simply dividing up our ladder program as
How Instructions
Work Inside Stages depicted in the figure below. Each stage contains only the ladder rungs which are
needed for the corresponding state of the process. The logic for transitioning out of a
stage is contained within that stage. It’s easy to choose which ladder rungs are active
at powerup by using an “initial” stage type (ISG).

RLLPLUS
Stage Programming

Stage 0

Stage 1

Stage 2

Most instructions work like they do in standard RLL. You can think of a stage like a
miniature RLL program which is either active or inactive.
Output Coils -- As expected, output coils in active stages will turn on or off outputs
according to power flow into the coil. However, note the following:
S Outputs work as usual, provided each output reference (such as “Y3”) is
used in only one stage.
S Output coils automatically turn off when leaving a stage. However, Set
and Reset instructions are not “undone” when leaving a stage.
S An output can be referenced from more than one stage, as long as only
one of the stages is active at a time.
S If an output coil is controlled by more than one stage simultaneously, the
active stage nearest the bottom of the program determines the final
output status during each scan. So, use the OROUT instruction instead
when you want multiple stages to have a logical OR control of an output.
One-Shot or PD coils -- Use care if you must use a Positive Differential coil in a
stage. Remember the input to the coil must make a 0--1 transition. If the coil is
already energized on the first scan when the stage becomes active, the PD coil will
not work. This is because the 0--1 transition did not occur.
PD coil alternative: If there is a task which you want to do only once (on 1 scan), it can
be placed in a stage which transitions to the next stage on the same scan.
Counter -- When using a counter inside a stage, the stage must be active for one
scan before the input to the counter makes a 0--1 transition. Otherwise, there is no
real transition and the counter will not count. The ordinary Counter instruction does
have a restriction inside stages: it may not be reset from other stages using the RST
instruction for the counter bit. However, the special Stage Counter provides a
solution (see next paragraph).
Stage Counter -- The Stage Counter has the benefit that its count may be globally
reset from other stages by using the RST instruction. It has a count input, but no reset
input. This is the only difference from a standard counter instruction.
Drum -- Realize the drum sequencer is its own process, and is a different
programming method than stage programming. If you need to use a drum and
stages, be sure to place the drum instruction in an ISG stage that is always active.

DL350 User Manual, 2nd Edition

7--17

RLL PLUS Stage Programming
Using a Stage as a You may recall the light bulb on-off
controller example from earlier in this
Supervisory
chapter. For the purpose of illustration, Toggle X0
Process
suppose we want to monitor the
“productivity” of the lamp process, by
counting the number of on-off cycles
which occurs. This application will require
the addition of a simple counter, but the
key decision is in where to put the counter.

Ladder
Program

Y0

Powerup

Supervisor

Supervisor Process

OFF State
S1

X0

JMP

X0

Push--ON

Main Process

OFF

X0

Push--OFF

SG
S1

X0

PLUS

Powerup

Push--On State
S2

X0

ON

JMP
SG
S2

X0

New stage programming students will
typically try to place the counter inside one the
the stages of the process they are trying to
monitor. The problem with this approach is
that the stage is active only part of the time. In
order for the counter to count, the count input
must transition from off to on at least one scan
after its stage activates. Ensuring this
requires extra logic that can be tricky.
In this case, we only need to add another
supervisory stage as shown above, to “watch”
the main process. The counter inside the
supervisor stage uses the stage bit S1 of the
main process as its count input. Stage bits
used as a contact let us monitor a process!

ON State
SP1

Y0
OUT
S3

X0

JMP
SG
S3

Push--Off State
S0

X0

JMP
ISG
S4

Supervisor State
S1

SGCNT

CT0

K5000

NOTE: Both the Supervisor stage and the OFF stage are initial stages. The
supervisor stage remains active indefinitely
Stage Counter

The counter in the above example is a special Stage Counter. Note that it does not
have a reset input. The count is reset by executing a Reset instruction, naming the
counter bit (CT0 in this case). The Stage Counter has the benefit that its count may
be globally reset from other stages. The standard Counter instruction does not have
this global reset capability. You may still use a regular Counter instruction inside a
stage... however, the reset input to the counter is the only way to reset it.

DL350 User Manual, 2nd Edition

RLL
Stage Programming

ISG
S0

7--18

RLL PLUS Stage Programming

RLLPLUS
Stage Programming

Unconditional
Outputs

As in most example programs in this
chapter and Stage 0 to the right, your
application may require a particular output
to be ON unconditionally when a particular
stage is active. Until now, the examples
always use the SP1 special relay contact
(always on) in series with the output coils.
It’s possible to omit the contact, as long as
you place any unconditional outputs first
(at the top) of a stage section of ladder.
The first rung of Stage 1 does this.
WARNING: Unconditional outputs placed
elsewhere in a stage do not necessarily
remain on when the stage is active. In
Stage 2 to the right, Y0 is shown as an
unconditional output, but its powerflow
comes from the rung above. So, Y0 status
will be the same as Y1 (is not correct).

Power Flow
Transition
Technique

SG
S0
SP1

Y0
OUT

Unconditional
Output

SG
S1

Y0
OUT

X0

Y1
OUT

X0

Y1
OUT

SG
S2

Y0
OUT

Our discussion of state transitions has shown how the Stage JMP instruction makes
the current stage inactive and the next stage (named in the JMP) active. As an
alternative way to enter this in DirectSOFT, you may use the power flow method for
stage transitions. The main requirement is the current stage be located directly
above the next (jump-to) stage in the ladder program. This arrangement is shown in
the diagram below, by stages S0 and S1, respectively.
S0

X0

SG
S0

S1

SG
S0
X0

S1

All other rungs in stage...

JMP
SG
S1

X0

Equivalent

Power flow
transition
SG
S1

Recall the Stage JMP instruction may occur anywhere in the current stage, and the
result is the same. However, power flow transitions (shown above) must occur as the
last rung in a stage. All other rungs in the stage will precede it. The power flow
transition method is also achievable on the handheld programmer, by simply
following the transition condition with the Stage instruction for the next stage.
The power flow transition method does eliminate one Stage JMP instruction, its only
advantage. However, it is not as easy to make program changes as using the Stage
JMP. Therefore, we advise using Stage JMP transitions for most programs.

DL350 User Manual, 2nd Edition

7--19

RLL PLUS Stage Programming

Parallel Processing Concepts
Parallel Processes Previously in this chapter we discussed how a state may transition to either one state
or another, called an exclusive transition. In other cases, we may need to branch
simultaneously to two or more parallel processes, as shown below. It is acceptable
to use all JMP instructions as shown, or we could use one JMP and a Set Stage bit
instruction(s) (at least one must be a JMP, in order to leave S1). Remember that all
instructions in a stage execute, even when it transitions (the JMP is not a GOTO).
Process A

S1

S2
JMP

S4

S4

S5

S1

S2

= Convergence Stage

S5
Process B

S3

S6

S4

While the converging principle is simple enough, it brings a new complication. As
parallel processing completes, the multiple processes almost never finish at the
same time. In other words, how can we know whether Stage S2 or S4 will finish last?
This is an important point, because we have to decide how to transition to Stage S5.
The solution is to coordinate the transition
condition out of convergence stages. We
accomplish this with a stage type
designed
for
this
purpose:
the
Convergence Stage (type CV). In the
example to the right, convergence stages
S2 and S4 are required to be grouped
together as shown. No logic is permitted
between CV stages! The transition
condition (X3 in this case) must be located
in the last convergence stage. The
transition condition only has power flow
when all convergence stages in the group
are active.

CV
S2

Convergence
Stages

CV
S4
X3

S5
CVJMP

SG
S5

DL350 User Manual, 2nd Edition

PLUS

JMP

Note that if we want Stages S2 and S4 to energize exactly on the same scan, both
stages must be located below or above Stage S1 in the ladder program (see the
explanation at the bottom of page 7--7). Overall, parallel branching is easy!
Now we consider the opposite case of parallel branching, which is converging
processes. This simply means we stop doing multiple things and continue doing one
thing at a time. In the figure below, processes A and B converge when stages S2 and
S4 transition to S5 at some point in time. So, S2 and S4 are Convergence Stages.
Process A

Convergence
Stages
(CV)

Push--On State
X0

X0

Process B

Converging
Processes

SG
S1

S3

RLL
Stage Programming

S0

S2

RLLPLUS
Stage Programming

7--20

RLL PLUS Stage Programming

Convergence Jump Recall the last convergence stage only
has power flow when all CV stages in the
(CVJMP)
group are active. To complement the
convergence stage, we need a new jump
instruction. The Convergence Jump
(CVJMP) shown to the right will transition
to Stage S5 when X3 is active (as one
might expect), but it also automatically
resets all convergence stages in the
group. This makes the CVJMP jump a
very powerful instruction. Note that this
instruction may only be used with
convergence stages.
Convergence
Stage Guidelines

CV
S2

Convergence
Jump

CV
S4
X3

S5
CVJMP

SG
S5

The following summarizes the requirements in the use of convergence stages,
including some tips for their effective application:
S

S

S

S

S

S

S
S

A convergence stage is to be used as the last stage of a process which
is running in parallel to another process or processes. A transition to the
convergence stage means that a particular process is through, and
represents a waiting point until all other parallel processes also finish.
The maximum number of convergence stages which make up one
group is 17. In other words, a maximum of 17 stages can converge into
one stage.
Convergence stages of the same group must be placed together in the
program, connected on the power rail without any other logic in
between.
Within a convergence group, the stages may occur in any order, top to
bottom. It does not matter which stage is last in the group, because all
convergence stages have to be active before the last stage has power
flow.
The last convergence stage of a group may have ladder logic within the
stage. However, this logic will not execute until all convergence stages
of the group are active.
The convergence jump (CVJMP) is the intended method to be used to
transition from the convergence group of stages to the next stage. The
CVJMP resets all convergence stages of the group, and energizes the
stage named in the jump.
The CVJMP instruction must only be used in a convergence stage, as it
is invalid in regular or initial stages.
Convergence Stages or CVJMP instructions may not be used in
subroutines or interrupt routines.

DL350 User Manual, 2nd Edition

RLL PLUS Stage Programming

7--21

Managing Large Programs

Stage Blocks
(BLK, BEND)

Block 0

Block 1

Block 2

PLUS

RLL
Stage Programming

A stage may contain a lot of ladder rungs, or only one or two program rungs. For most
applications, good program design will ensure the average number of rungs per
stage will be small. However, large application programs will still create a large
number of stages. We introduce a new construct which will help us organize related
stages into groups called blocks. So, program organization is the main benefit of the
use of stage blocks.
A block is a section of ladder program which contains stages. In the figure below,
each block has its own reference number. Like stages, a stage block may be active
or inactive. Stages inside a block are not limited in how they may transition from one
to another. Note the use of stage blocks does not require each stage in a program to
reside inside a block, shown below by the “stages outside blocks”.

Stages outside blocks:

A program with 20 or more stages may be considered large enough to use block
grouping (however, their use is not mandatory). When used, the number of stage
blocks should probably be two or higher, because the use of one block provides a
negligible advantage.
A block of stages is separated from other
ladder logic with special beginning and
ending instructions. In the figure to the
BLK
Block Instruction
C0
right, the BLK instruction at the top marks
the start of the stage block. At the bottom,
the Block End (BEND) marks the end of
SG
the block. The stages in between these
S0
boundary markers (S0 and S1 in this case)
All other rungs in stage...
and their associated rungs make up the
block.
SG
Note the block instruction has a reference
S1
value field (set to “C0” in the example).
All other rungs in stage...
The block instruction borrows or uses a
control relay contact number, so that other
Block End
parts of the program can control the block.
Instruction
BEND
Any control relay number (such as C0)
used in a BLK instruction is not available
for use as a control relay.
Note the stages within a block must be regular stages (SG) or convergence stages
(CV). So, they cannot be initial stages. The numbering of stages inside stage blocks
can be in any order, and is completely independent from the numbering of the
blocks.

DL350 User Manual, 2nd Edition

7--22

RLL PLUS Stage Programming

RLLPLUS
Stage Programming

Block Call
(BCALL)

The purpose of the Block Call instruction is to activate a stage block. At powerup or
upon Program-to-Run mode transitions, all stage blocks and the stages within them
are inactive. Shown in the figure below, the Block Call instruction is a type of output
coil. When the X0 contact is closed, the BCALL will cause the stage block referenced
in the instruction (C0) to become active. When the BCALL is turned off, the
corresponding stage block and the stages within it become inactive.
We must avoid confusing block call operation with how a “subroutine call” works.
After a BCALL coil executes, program execution continues with the next program
rung. Whenever program execution arrives at the ladder location of the stage block
named in the BCALL, then logic within the block executes because the block is now
active. Similarly, do not classify the BCALL as type of state transition (is not a JMP).
Block C0
X0

C0
BCALL

Activate

(next rung)

When a stage block becomes active, the first stage in the block automatically
becomes active on the same scan. The “first” stage in a block is the one located
immediately under the block (BLK) instruction in the ladder program. So, that stage
plays a similar role to the initial type stage we discussed earlier.
The Block Call instruction may be used in several contexts. Obviously, the first
execution of a BCALL must occur outside a stage block, since stage blocks are
initially inactive. Still, the BCALL may occur on an ordinary ladder rung, or it may
occur within an active stage as shown below. Note that either turning off the BCALL
or turning off the stage containing the BCALL will deactivate the corresponding
stage block. You may also control a stage block with a BCALL in another stage block.
Stage Block

SG
S0
X0

C0
BCALL

All other rungs in stage...
SG
S11

BLK
C0
SG
S10

All rungs in stage...
SG
S11

All other rungs in stage...
NOTE: Stage Block may come before or
after the location of the BCALL instruction
in the program.

BEND

The BCALL may be used in many ways or contexts, so it can be difficult to find the
best usage. Remember the purpose of stage blocks is to help you organize the
application problem by grouping related stages together. Remember that initial
stages must exist outside stage blocks.

DL350 User Manual, 2nd Edition

RLL PLUS Stage Programming

7--23

RLL PLUS Instructions
Stage
(SG)

The Stage instructions are used to create
structured RLL PLUS programs. Stages are
program segments which can be activated
by transitional logic, a jump or a set stage
that is executed from an active stage.
Stages are deactivated one scan after
transitional logic, a jump, or a reset stage
instruction is executed.

S aaa

DL350 Range
aaa

Stage

S

0--1777

DirectSOFT Display

Handheld Programmer Keystrokes
ISG

ISG

S(SG)

0

ENT

STR

X(IN)

0

ENT

OUT

Y(OUT)

1

0

STR

X(IN)

1

ENT

SET

S(SG)

2

ENT

STR

X(IN)

5

ENT

S2

JMP

S(SG)

1

ENT

SET

SG

S(SG)

1

ENT

S0

X0

Y10
OUT

X1

X5

SG

S1

STR

X(IN)

2

ENT

JMP

OUT

Y(OUT)

1

1

SG

S(SG)

2

ENT

STR

X(IN)

6

ENT

OUT

Y(OUT)

1

2

S1

X2

Y11
OUT

SG

STR

X(IN)

7

ENT

AND

S(SG)

1

ENT

JMP

S(SG)

0

ENT

S2

X6

Y12
OUT

X7

S1

S0
JMP

DL350 User Manual, 2nd Edition

ENT

ENT

PLUS

The following example is a simple RLL PLUS program. This program utilizes the initial
stage, stage, and jump instruction to create a structured program.

RLL
Stage Programming

Operand Data Type

SG

7--24

RLL PLUS Stage Programming

RLLPLUS
Stage Programming

Initial Stage
(ISG)

The Initial Stage instruction is normally used
as the first segment of an RLL PLUS program.
Initial stages will be active when the CPU
enters the run mode allowing for a starting
point in the program. Initial Stages are also
activated by transitional logic, a jump or a
set stage executed from an active stage.
Initial Stages are deactivated one scan after
transitional logic, a jump, or a reset stage
instruction is executed. Multiple Initial
Stages are allowed in a program.
Operand Data Type

ISG

S aaa

DL350 Range
aaa

Stage

S

0--1777

NOTE: If the ISG is within the retentive range for stages, the ISG will remain in the
state it was before power down and will NOT turn itself on during the first scan.
The Jump instruction allows the program to
transition from an active stage which
contains the jump instruction to another
which stage is specified in the instruction.
The jump will occur when the input logic is
true. The active stage that contains the
Jump will be deactivated 1 scan after the
Jump instruction is executed.

Jump
(JMP)

Operand Data Type

S aaa
JMP

DL350 Range
aaa

Stage

Not Jump
(NJMP)

S

0--1777

The Not Jump instruction allows the
program to transition from an active stage
which contains the jump instruction to
another which is specified in the instruction.
The jump will occur when the input logic is
off. The active stage that contains the Not
Jump will be deactivated 1 scan after the
Not Jump instruction is executed.
Operand Data Type

DL350 Range
aaa

Stage

S

DL350 User Manual, 2nd Edition

0--1777

S aaa
NJMP

RLL PLUS Stage Programming

7--25

In the following example, when the CPU begins program execution only ISG 0 will be
active. When X1 is on, the program execution will jump from Initial Stage 0 to Stage 1. In
Stage 1, if X2 is on, output Y5 will be turned on. If X7 is on, program execution will jump
from Stage 1 to Stage 2. If X7 is off, program execution will jump from Stage 1 to Stage 3.
DirectSOFT Display

ISG

Handheld Programmer Keystrokes
S(SG)

0

ENT

X(IN)

1

ENT

JMP

S(SG)

1

ENT

S1

SG

S(SG)

1

ENT

JMP

STR

X(IN)

2

ENT

OUT

Y(OUT)

5

ENT

STR

X(IN)

7

ENT

JMP

S(SG)

2

ENT

S0

X1

SG

S1

X2

SHFT

N

JMP

OUT

S(SG)

3

ENT

PLUS

X7

Y5

S2
JMP
S3
NJMP

Converge Stage
The Converge Stage instruction is used to
(CV) and Converge group certain stages together by defining
them as Converge Stages.
Jump (CVJMP)
When all of the Converge Stages within a
group become active, the CVJMP
instruction (and any additional logic in the
final CV stage) will be executed. All
preceding CV stages must be active before
the final CV stage logic can be executed. All
Converge Stages are deactivated one scan
after the CVJMP instruction is executed.
Additional logic instructions are only
allowed following the last Converge Stage
instruction and before the CVJMP
instruction. Multiple CVJUMP instructions
are allowed.
Converge Stages must be programmed in
the main body of the application program.
This means they cannot be programmed in
Subroutines or Interrupt Routines.
Operand Data Type

CV
S aaa

S aaa
CVJMP

DL350 Range
aaa

Stage

S

RLL
Stage Programming

ISG
STR

0--1777

DL350 User Manual, 2nd Edition

7--26

RLL PLUS Stage Programming
In the following example, when Converge Stages S10 and S11 are both active the
CVJMP instruction will be executed when X4 is on. The CVJMP will deactivate S10
and S11, and activate S20. Then, if X5 is on, the program execution will jump back to
the initial stage, S0.
Handheld Programmer Keystrokes

DirectSOFT Display

RLLPLUS
Stage Programming

ISG

ISG

S(SG)

0

ENT

STR

X(IN)

0

ENT

OUT

Y(OUT)

0

ENT

STR

X(IN)

1

ENT

Y0

JMP

S(SG)

1

ENT

OUT

JMP

S(SG)

1

0

SG

S(SG)

1

ENT

STR

X(IN)

2

ENT

JMP

S(SG)

1

1

ENT

S0

X0

X1

S1
JMP
S10
JMP

SG

S1

X2

CV

CV

X4

SG

V

S(SG)

1

0

ENT

C

V

S(SG)

1

1

ENT

STR

X(IN)

3

ENT

Y(OUT)

3

ENT

STR

X(IN)

4

ENT

JMP

SHFT

Y3
OUT
S20
CVJMP

S20

X5

C

SHFT

OUT

S11

X3

SHFT

S11

S10

S0
JMP

DL350 User Manual, 2nd Edition

ENT

V

SHFT

JMP

S(SG)

SG

C

S(SG)

2

0

ENT

STR

X(IN)

5

ENT

JMP

S(SG)

0

ENT

2

0

ENT

RLL PLUS Stage Programming

7--27

The stage block instructions are used to activate a block of stages. The Block Call,
Block, and Block End instructions must be used together.
Block Call
(BCALL)

C aaa
BCALL

Operand Data Type

DL350 Range
aaa

Control Relay

Block (BLK)

C

0--1777

The Block instruction is a label which
marks the beginning of a block of stages
that can be activated as a group. A Stage
instruction must immediately follow the
Start Block instruction. Initial Stage
instructions are not allowed in a block.
The control relay (Caaa) specified in
Block instruction must not be used as an
output any where else in the program.
Operand Data Type

BLK
C aaa

DL350 Range
aaa

Control Relay

Block End (BEND)

C

0--1777

The Block End instruction is a label used
with the Block instruction. It marks the
end of a block of stages. There is no
operand with this instruction. Only one
Block End is allowed per Block Call.

BEND

DL350 User Manual, 2nd Edition

PLUS

Must Remain Active — The BCALL instruction actually controls all the stages
between the BLK and the BEND instructions even after the stages inside the block
have started executing. The BCALL must remain active or all the stages in the block
will automatically be turned off. If either the BCALL instruction, or the stage that
contains the BCALL instruction goes off, then the stages in the defined block will be
turned off automatically.
Activates First Block Stage — When the BCALL is executed it automatically
activates the first stage following the BLK instructions.

RLL
Stage Programming

The BCALL instruction is used to activate
a stage block. There are several things
you need to know about the BCALL
instruction.
Uses CR Numbers — The BCALL appears
as an output coil, but does not actually
refer to a Stage number as you might think.
Instead, the block is identified with a
Control Relay (Caaa). This control relay
cannot be used as an output anywhere
else in the program.

7--28

RLL PLUS Stage Programming

RLLPLUS
Stage Programming

In this example, the Block Call is executed
when stage 1 is active and X6 is on. The
Block Call then automatically activates
stage S10, which immediately follows the
Block instruction.
This allows the stages between S10 and
the Block End instruction to operate as
programmed. If the BCALL instruction is
turned off, or if the stage containing the
BCALL instruction is turned off, then all
stages between the BLK and BEND
instructions are automatically turned off.
If you examine S15, you will notice that
X7 could reset Stage S1, which would
disable the BCALL, thus resetting all
stages within the block.

DirectSOFT Display

SG

S(SG)

1

ENT

STR

X(IN)

2

ENT

OUT

Y(OUT)

5

ENT

STR

X(IN)

6

ENT
L

SHFT

B

C

A

SHFT

B

L

K

SG

S(SG)

1

0

STR

X(IN)

3

ENT

OUT

Y(OUT)

6

ENT

SHFT

Stage View in
DirectSOFT

SG

B

Y5

X2

OUT
C0

X6

BLK
SG

BCALL

C0
S10
Y6

X3

OUT
BEND

Handheld Programmer Keystrokes
SG

S1

SG

S15
S1

X7

L

C(CR)

C(CR)

0

0

RST

ENT

ENT

ENT

E

N

D

ENT

SG

S(SG)

1

5

ENT

STR

X(IN)

7

ENT

RST

S(SG)

1

ENT

The Stage View option in DirectSOFT will let you view the ladder program as a flow
chart. The figure below shows the symbol convention used in the diagrams. You may
find the stage view useful as a tool to verify that your stage program has faithfully
reproduced the logic of the state transition diagram you intend to realize.

Stage

Transition
Logic

Reference to
a Stage

J

Jump

Output

S

Set Stage

R

Reset Stage

The following diagram is a typical stage view of a ladder program containing stages.
Note the left-to-right direction of the flow chart.
ISG
S0

J

DL350 User Manual, 2nd Edition

SG
S1

J

SG
S2

S

SG
S4

J

SG
S3

J

SG
S5

RLL PLUS Stage Programming

7--29

Questions and Answers about Stage Programming
We include the following commonly-asked questions about Stage Programming as
an aid to new students. All question topics are covered in more detail in this chapter.

Q. What are Stage Bits?
A. A stage bit is a single bit in the CPU’s image register, representing the
active/inactive status of the stage in real time. For example, the bit for Stage 0 is
referenced as “S0”. If S0 = 0, then the ladder rungs in Stage 0 are bypassed (not
executed) on each CPU scan. If S0 = 1, then the ladder rungs in Stage 0 are
executed on each CPU scan. Stage bits, when used as contacts, allow one part of
your program to monitor another part by detecting stage active/inactive status.
Q. How does a stage become active?
A. There are three ways:
S If the Stage is an initial stage (ISG), it is automatically active at powerup.
S Another stage can execute a Stage JMP instruction naming this stage,
which makes it active upon its next occurrence in the program.
S A program rung can execute a Set Stage Bit instruction (such as SET
S0).
Q. How does a stage become inactive?
A. There are three ways:
S Standard Stages (SG) are automatically inactive at powerup.
S A stage can execute a Stage JMP instruction, resetting its Stage Bit to
0.
S Any rung in the program can execute a Reset Stage Bit instruction (such
as RST S0).
Q. What about the power flow technique of stage transitions?
A. The power flow method of connecting adjacent stages (directly above or below in
the program) actually is the same as the Stage Jump instruction executed in the
stage above, naming the stage below. Power flow transitions are more difficult to edit
in DirectSOFT, we list them separately from two preceding questions.

DL350 User Manual, 2nd Edition

PLUS

Q. Isn’t a stage really like a software subroutine?
A. No, it is very different. A subroutine is called by a main program when needed, and
executes only once before returning to the point from which it was called. A stage,
however, is part of the main program. It represents a state of the process, so an
active stage executes on every scan of the CPU until it becomes inactive.

RLL
Stage Programming

Q. What does stage programming do that I cannot do with regular RLL programs?
A. Stages allow you to identify all the states of your process before you begin
programming. This approach is more organized, because you divide up a ladder
program into sections. As stages, these program sections are active only when they
are actually needed by the process. Most processes can be organized into a
sequence of stages, connected by event-based transitions.

7--30

RLL PLUS Stage Programming

RLLPLUS
Stage Programming

Q. Can I have a stage which is active for only one scan?
A. Yes, but this is not the intended use for a stage. Instead, make a ladder rung active
for 1 scan by including a stage Jump instruction at the bottom of the rung. Then the
ladder will execute on the last scan before its stage jumps to a new one.
Q. Isn’t a Stage JMP like a regular GOTO instruction used in software?
A. No, it is very different. A GOTO instruction sends the program execution
immediately to the code location named by the GOTO. A Stage JMP simply resets
the Stage Bit of the current stage, while setting the Stage Bit of the stage named in
the JMP instruction. Stage bits are 0 or 1, determining the inactive/active status of
the corresponding stages. A stage JMP has the following results:
S When the JMP is executed, the remainder of the current stage’s rungs
are executed, even if they reside past(under) the JMP instruction. On
the following scan, that stage is not executed, because it is inactive.
S The Stage named in the Stage JMP instruction will be executed upon its
next occurrence. If located past (under) the current stage, it will be
executed on the same scan. If located before (above) the current stage,
it will be executed on the following scan.
Q. How can I know when to use stage JMP, versus a Set Stage Bit or Reset Stage Bit?
A. These instructions are used according to the state diagram topology you have
derived:
S Use a Stage JMP instruction for a state transition... moving from one
state to another.
S Use a Set Stage Bit instruction when the current state is spawning a
new parallel state or stage sequence, or when a supervisory state is
starting a state sequence under its command.
S Use a Reset Stage Bit instruction when the current state is the last state
in a sequence and its task is complete, or when a supervisory state is
ending a state sequence under its command.
Q. What is an initial stage, and when do I use it?
A. An initial stage (ISG) is automatically active at powerup. Afterwards, it works like
any other stage. You can have multiple initial stages, if required. Use an initial stage
for ladder that must always be active, or as a starting point.
Q. Can I place program ladder rungs outside of the stages, so they are always on?
A. It is possible, but it’s not good software design practice. Place ladder that must
always be active in an initial stage, and do not reset that stage or use a Stage JMP
instruction inside it. It can start other stage sequences at the proper time by setting
the appropriate Stage Bit(s).
Q. Can I have more than one active stage at a time?
A. Yes, and this is a normal occurrence for many programs. However, it is important
to organize your application into separate processes, each made up of stages. And a
good process design will be mostly sequential, with only one stage on at a time.
However, all the processes in the program may be active simultaneously.

DL350 User Manual, 2nd Edition

1
PID Loop Operation
In This Chapter. . . .
— DL350 PID Loop Features
— Introduction to PID Control
— Introducing DL350 PID Control
— PID Loop Operation
— Ten Steps to Successful Process Control
— PID Loop Setup
— PID Loop Tuning
— Using Other PID Features
— Ramp/Soak Generator
— DirectSOFT Ramp/Soak Example
— Cascade Control
— Time Proportioning Control
— Feedforward Control
— PID Example Program
— Troubleshooting Tips
— Glossary of PID Loop Terminology
— Bibliography

8

8--2

PID Loop Operation

DL350 PID Loop Features
Main Features

The DL350 process loop control offers a sophisticated set of features to address
many application needs. The main features are:
Up to 4 loops, individual programmable sample rates
Manual/Automatic/Cascaded loop capability available
Two types of bumpless transfer available
Full-featured alarms
Ramp/soak generator with up to 16 segments
Auto Tuning

The DL350 CPU has process control loop capability in addition to ladder program
execution. You can select and configure up to four loops. All sensor and actuator
wiring connects to standard DL305 I/O modules, as shown below. All process
variables, gain values, alarm levels, etc., associated with each loop reside in a Loop
Variable Table in the CPU. The DL350 CPU reads process variable (PV) inputs
during each scan. Then it makes PID loop calculations during a dedicated time slice
on each PLC scan, updating the control output value. The control loops use the
Proportional-Integral-Derivative (PID) algorithm to generate the control output
command. This chapter describes how the loops operate,and what you must do to
configure and tune the loops.

DL350 CPU
PID Loop Calculations

Maintenance
and Troubleshooting

PID Loop Operation

S
S
S
S
S
S

0
1
2
3
C
1
01
23
45
67
C
2

C
1
01
23
45
67
C
2

4
5
6
7

Analog or Digital Output

Manufacturing Process

Analog Input

The best tool for configuring loops in the DL350 is the DirectSOFT programming
software, Release 2.2 or later. DirectSOFT uses dialog boxes to create a forms-like
editor to let you individually set up the loops. After completing the setup, you can use
DirectSOFT’s PID Trend View to tune each loop. The configuration and tuning
selections made are stored in the CPUs V--memory, which can be set as retentive.
The loop parameters also may be saved to disk for recall later.

DL350 User Manual, 2nd Edition

PID Loop Operation

Number of loops

Selectable, 4 maximum

CPU V-memory needed

32 words (V locations) per loop selected, 64 words if using ramp/soak

PID algorithm

Position or Velocity form of the PID equation

Control Output polarity

Selectable direct-acting or reverse-acting

Error term curves

Selectable as linear, square root of error, and error squared

Loop update rate (time
between PID calculation)

0.05 to 99.99 seconds, user programmable

Minimum loop update rate

0.05 seconds for 1 to 4 loops,

Loop modes

Automatic, Manual (operator control), or Cascade control

Ramp/Soak Generator

Up to 8 ramp/soak steps (16 segments) per loop with indication of
ramp/soak step number

PV curves

Select standard linear, or square-root extract (for flow meter input)

Set Point Limits

Specify minimum and maximum setpoint values

Process Variable Limits

Specify minimum and maximum Process Variable values

Proportional Gain

Specify gains of 0.01 to 99.99

Integrator (Reset)

Specify reset time of 0.1 to 999.8 in units of seconds or minutes

Derivative (Rate)

Specify the derivative time from 0.01 to 99.99 seconds

Rate Limits

Specify derivative gain limiting from 1 to 20

Bumpless Transfer I

Automatically sets the bias equal to the control output and the
setpointequal to the process variable when control switches from manual to
automatic

Bumpless Transfer II

Automatically sets the bias equal to the control output when control
switches from manual to automatic

Step Bias

Provides proportional bias adjustment for large setpoint changes

Anti-windup

For position form of PID, this inhibits integrator action when the control
output reaches 0% or 100% (speeds up loop recovery when output
recovers from saturation)

Error Deadband

Specify a tolerance (plus and minus) for the error term (SP--PV), so that no
change in control output value is made

Alarm Feature

Specifications

PV Alarm Hysteresis

Specify 1 to 200 (word/binary) does not affect all alarms, such as PV
Rate--of--Change Alarm

PV Alarm Points

Select PV alarm settings for Low--low, Low, High, and High-high conditions

PV Deviation

Specify alarms for two ranges of PV deviation from the setpoint value

Rate of Change

Detect when PV exceeds a rate of change limit you specify

DL350 User Manual, 2nd Edition

Maintenance

Specifications

PID Loop Operation

PID Loop Feature

8--3

8--4

PID Loop Operation

Introduction to PID Control

Maintenance
and Troubleshooting

PID Loop Operation

What is PID
Control?

In this discussion, we will explain why PID control is used in process control instead
of trying to provide control by simply using an analog input and a discrete output.
There are many types of analog controllers available, and the proper selection will
depend upon the particular application. There are two types of analog controllers
that are used throughout industry:
S 1. The ON--OFF controller, sometimes referred to as an open loop
controller.
S 2. The PID controller, sometimes called a closed loop controller.
Regardless of type, analog controllers require input signals from electronic sensors
such as pressure, differential pressure, level, flow meter or thermocouples. As an
example, one of the most common analog control applications is located in your
house for controlling either heat or air conditioning, the thermostat.
You wish for your house to be at a comfortable temperature so you set a thermostat
to a desired temperature (setpoint). You then select the “comfort“ mode, either heat
or A/C. A temperature sensing device, normally a thermistor, is located within the
thermostat. If the thermostat is set for heat and the setpoint is set for 69_, the furnace
will be turned on to provide heat at, normally, 2_ below the setpoint. In this case, it
would turn on at 67_. When the temperature reaches 71_, 2_ above setpoint, the
furnace will turn off. In the opposite example, if the thermostat is set for A/C (cooling),
the thermostat will turn the A/C unit on/off opposite the heat setting. For instance, if
the thermostat is set to cool at 76_, the A/C unit will turn on when the sensed
temperature reaches 2_ above the setpoint or 78_, and turn off when the
temperature reaches 74_. This would be considered to be an ON--OFF controller.
The waveform below shows the action of the heating cycle. Note that there is a slight
overshoot at the turn--off point, also a slight undershoot at the turn--on point.

71_

OFF

OFF

69_

67_

SETPOINT

ON

ON

ON
TIME

The ON--OFF controller is used in some industial control applications, but is not
practical in the majority of industrial control processes.
The most common process controller that is used in industry is the PID controller.

DL350 User Manual, 2nd Edition

PID Loop Operation

8--5

Maintenance

DL350 User Manual, 2nd Edition

PID Loop Operation

The PID controller controls a continuous feedback loop that keeps the process
output (control variable) flowing normally by taking corrective action whenever there
is a deviation from the desired value (setpoint) of the process variable (PV) such as,
rate of flow, temperature, voltage, etc. An “error“ occurs when an operator manually
changes the setpoint or when an event (valve opened, closed, etc.) or a disturbance
(cold water, wind, etc.) changes the load, thus causing a change in the process
variable.
The PID controller receives signals from sensors and computes corrective action to
the actuator from a computation based on the error (Proportional), the sum of all
previous errors (Integral) and the rate of change of the error (Derivative).
We can look at the PID controller in more simple terms. Take the cruise control on an
automobile as an example. Let’s say that we are cruising on an interstate highway in
a car equipped with cruise control. The driver decides to engage the cruise control by
turning it ON, then he manually brings the car to the desired cruising speed, say 70
miles per hour. Once the cruise speed is reached, the SET button is pushed fixing
the speed at 70 mph, the setpoint. Now, the car is cruising at a steady 70 mph until it
comes to a hill to go up. As the car goes up the hill, it tends to slow down. The speed
sensor senses this and causes the throttle to increase the fuel to the engine. The
vehicle speeds up to maintain 70 mph without jerking the car and it reaches the top at
the set speed. When the car levels out after reaching the top of the hill it will speed up.
The speed sensor senses this and signals the throttle to provide less fuel to the
engine, thus, the engine slows down allowing the car to maintain the 70 mph speed.
How does this application apply to PID control? Lets look at the function of P, I and D
terms:
S Proportional -- is commonly referred to as Proportional Gain. The
proportional term is the corrective action which is proportional to the
error, that is, the change of the manipulated variable is equal to the
proportional gain multiplied by the error (the activating signal). In
mathematical terms:
Proportional action = proportional gain X error
Error = Setpoint (SP) -- Process Variable (PV)
Applying this to the cruise control, the speed was set at 70 mph which is
the Setpoint. The speed sensor senses the actual speed of the car and
sends this signal to the cruise controller as the Process Variable (PV).
When the car is on a level highway, the speed is maintained at 70 mph,
thus, no error since the error would be SP -- PV = 0. When the car goes
up the hill, the speed sensor detected a slow down of the car, SP--PV =
error. The proportional gain would cause the output of the speed
controller to bring the car back to the setpoint of 70 mph. This would be
the Controlled Output.
S Integral -- this term is often referred to as Reset action. It provides
additional compensation to the control output, which causes a change in
proportion to the value of the error over a period of time. In other words,
the reset term is the integral sum of the error values over a period of
time.
S Derivative -- this term is referred to as rate. The Rate action adds
compensation to the control output, which causes a change in
proportion to the rate of change of error. Its job is to anticipate the
probable growth of the error and generate a contribution to the output in
advance.

8--6

PID Loop Operation

Maintenance
and Troubleshooting

PID Loop Operation

Introducing DL350 PID Control
The DL350 is capable of controlling a process variable such as those already
mentioned. As previously mentioned, the control of a variable, such as temperature,
at a given level (setpoint) as long as there are no disturbances (cold water) in the
process.
The DL350 CPU has the ability to directly accept signals from electronic sensors,
such as thermocouples, pressure, VFDs, etc. These signals may be used in
mathematically derived control systems.
In addition, the DL350 has built--in PID control algorithms that can be implemented.
The basic function of PID closed loop process control is to maintain certain process
characteristics at desired setpoints. As a rule, the process deviates from the desired
setpoint reference as a result of load material changes and interaction with other
processes. During this control, the actual condition of the process characteristics
(liquid level, temperature, motor control, etc.) is measured as a process variable
(PV) and compared with the target setpoint (SP). When deviations occur, an error is
generated by the difference between the process variable (actual value) and the
setpoint (desired value). Once an error is detected, the function of the control loop is
to modify the control output in order to force the error to zero.
The DL350 PID control provides feedback loops using the PID algorithm. The
control output is computed from the measured process variable as follows:
Let:
Kc = proportional gain
Ti = Reset or integral time
Td = Derivative time or rate
SP = Setpoint
PV(t) = Process Variable at time “t”
e(t) = SP--PV(t) = PV deviation from setpoint at time “t” or PV error.
Then:
M(t) = Control output at time “t”
t

M(t) = Kc [ e(t) + 1/Ti ∫ 0 e(x) dx + Td d/dt e(t) ] + M0
The analog input module receives the process variable in analog form along with an
operator entered setpoint; the CPU computes the error. The error is used in the
algorithm computation to provide corrective action at the control output. The function
of the control action is based on an output control, which is proportional to the
instantaneous error value. The integral control action (reset action) provides
additional compensation to the control output, which causes a change in proportion
to the value of the change of error over a period of time. The derivative control action
(rate change) adds compensation to the control output, which causes a change in
proportion to the rate of change of error. These three modes are used to provide the
desired control action in Proportional (P), Proportional--Integral (PI), or
Proportional--Integral--Derivative (PID) control fashion.

DL350 User Manual, 2nd Edition

PID Loop Operation

8--7

Standard DL405 analog input modules are used to interface to field transmitters to
obtain the PV. These transmitters normally provide a 4--20mA current or an analog
voltage of various ranges for the control loop.
For temperature control, thermocouple or RTD can be connected directly to the
appropriate module. The PID control algorithm, residing in the CPU memory,
receives information from the user program, primarily control parameters and
setpoints. Once the CPU makes the PID calculation, the result may be used to
directly control an actuator connected to a 4--20mA current output module to control
a valve.
With DirectSOFT, additional ladder logic programming, both time proportioning (eg.
heaters for temperature control) and position actuator (eg. reversible motor on a
valve) type of control schemes can be easily implemented. This chapter will explain
how to set up the PID control loop, how to implement the software and how to tune
the loop.
The following block diagram shows the key parts of a PID control loop. The path from
the PLC to the manufacturing process and back to the PLC is the closed loop control.
Loop Configuring
and Monitoring

External
Disturbances

PLC System

+

Error Term

Σ
--

Loop
Calculation

Control Output

Manufacturing
Process

Process Variable

PID Loop Operation

Setpoint Value

Maintenance

DL350 User Manual, 2nd Edition

8--8

PID Loop Operation

Maintenance
and Troubleshooting

PID Loop Operation

Process Control
Definitions

Manufacturing Process -- the set of actions that adds value to raw materials. The
process can involve physical changes and/or chemical changes to the material. The
changes render the material more useful for a particular purpose, ultimately used in
a final product.
Process Variable -- a measurement of some physical property of the raw materials.
Measurements are made using some type of sensor. For example, if the
manufacturing process uses an oven, we will have a strong interest in controlling
temperature. Therefore, temperature is a process variable.
Setpoint Value -- the theoretically perfect quantity of the process variable, or the
desired amount which yields the best product. The machine operator knows this
value, and either sets it manually or programs it into the PLC for later automated use.
External Disturbances -- the unpredictable sources of error which the control
system attempts to cancel by offsetting their effects. For example, if the fuel input is
constant an oven will run hotter during warm weather than it does during cold
weather. An oven control system must counter-act this effect to maintain a constant
oven temperature during any season. Thus, the weather (which is not very
predictable), is one source of disturbance to this process.
Error Term -- the algebraic difference between the process variable and the
setpoint. This is the control loop error, and is equal to zero when the process variable
is equal to the setpoint (desired) value. A well-behaved control loop is able to
maintain a small error term magnitude.
Loop Calculation -- the real-time application of a mathematical algorithm to the
error term, generating a control output command appropriate for minimizing the
error magnitude. Various control algorithms are available, and the DL350 uses the
Proportional-Derivative-Integral (PID) algorithm (more on this later).
Control Output -- the result of the loop calculation, which becomes a command for
the process (such as the heater level in an oven).
Loop Configuring -- operator-initiated selections which set up and optimize the
performance of a control loop. The loop calculation function uses the configuration
parameters in real time to adjust gains, offsets, etc.
Loop Monitoring -- the function which allows an operator to observe the status and
performance of a control loop. This is used in conjunction with the loop configuring to
optimize the performance of a loop (minimize the error term).

DL350 User Manual, 2nd Edition

PID Loop Operation

8--9

PID Loop Operation

PID Position
Algorithm

PID Loop Operation

The Proportional--Integral--Derivative (PID) algorithm is widely used in process
control. The PID method of control adapts well to electronic solutions, whether
implemented in analog or digital (CPU) components. The DL350 CPU implements
the PID equations digitally by solving the basic equations in software. I/O modules
serve only to convert electronic signals into digital form (or vice versa).
The DL350 uses two types of PID controls: “position“ and “velocity“. These terms
usually refer to motion control situations, but here we use them in a different sense:
S PID Position Algorithm -- The control output is calculated so it responds
to the displacement (position) of the PV from the SP (error term).
S PID Velocity Algorithm -- The control output is calculated to represent
the rate of change (velocity) for the PV to become equal to the SP.
Referring to the control output equation on page 8--6, the DL350 CPU approximates
the output M(t) using a discrete position form of the PID equation.
Let:
Ts = Sample rate
Kc = Proportional gain
Ki = Kc * (Ts/Ti) = Coefficient of integral term
Kr = Kc * (Td/Ts) = Coefficient of derivative term
Ti = Reset or integral time
Td = Derivative time or rate
SP = Setpoint
PVn = Process variable at nth sample
en = SP -- PVn = Error at nth sample
Mo = Value to which the controller output has been initialized
Then:
Mn = Control output at nth sample
n

Mn = Kc £ en + Ki Σ ei + Kr (en -- en--1) + Mo
This form of the PID equation is referred to as the position form since the actual
actuator position is computed. The velocity form of the PID equation computes the
change in actuator position. The CPU modifies the standard equation slightly to use
the derivative of the process variable instead of the error as follows:

Mn = Kc £ en + Ki

n

Σ ei + Kr (PVn -- PVn--1) + Mo

i=1

These two forms are equivalent unless the setpoint is changed. In the original
equation, a large step change in the setpoint will cause a correspondingly large
change in the error resulting in a bump to the process due to derivative action. This
bump is not present in the second form of the equation.

DL350 User Manual, 2nd Edition

Maintenance

i=1

8--10

PID Loop Operation
The DL350 also combines the integral sum and the initial output into a single term
called the bias (Mx). This results in the following set of equations:
Mxo = Mo
Mx = Ki * en + Mxn--1
Mn = Kc * en -- Kr(PVn -- PVn--1) + Mxn
The DL350 by default will keep the normalized output M in the range of 0.0 to 1.0.
This is done by clamping M to the nearer of 0.0 or 1.0 whenever the calculated output
falls outside this range. The DL350 also allows you to specify the minimum and
maximum output limit values (within the range 0 to 4095 in binary if using 12 bit
unipolar).
NOTE: The equations and algorithms, or parts of, in this chapter are only for
references. Analysis of these equations can be found in most good text books about
process control.

Maintenance
and Troubleshooting

PID Loop Operation

Reset Windup
Protection

Reset windup can occur if reset action (integral term) is specified and the
computation of the bias term Mx is:
Mx = Ki * en + Mxn--1
For example, assume the output is controlling a valve and the PV remains at some
value greater than the setpoint. The negative error (en) will cause the bias term (Mx)
to constantly decrease until the output M goes to 0 closing the valve. However, since
the error term is still negative, the bias will continue to decrease becoming ever more
negative. When the PV finally does come back down below the SP, the valve will stay
closed until the error is positive for long enough to cause the bias to become positive
again. This will cause the process variable to undershoot.
One way to solve the problem is to simply clamp the normalized bias between 0.0
and 1.0. The DL350 CPU does this. However, if this is the only thing that is done, then
the output will not move off 0.0 (thus opening the valve) until the PV has become less
than the SP. This will also cause the process variable to undershoot.
The DL350 CPU is programmed to solve the overshoot problem by either freezing
the bias term, or by adjusting the bias term.

DL350 User Manual, 2nd Edition

PID Loop Operation
Freeze Bias

Adjusting the Bias

8--11

Maintenance

DL350 User Manual, 2nd Edition

PID Loop Operation

If the “Freeze Bias” option is selected when setting up the PID loop (discussed later)
then the CPU simply stops changing the bias (Mx) whenever the computed
normalized output (M) goes outside the interval 0.0 to 1.0.
Mx = Ki * en + Mxn--1
M = Kc * en -- Kr(PVn -- PVn--1) + Mx
Mn = 0
“if M < 0”
Mn = M
“if 0 < M > 1”
“if M > 1”
Mn = 1
Mxn = Mx
“if 0 < M > 1”
Mxn = Mxn--1
“otherwise”
Thus in this example, the bias will probably not go all the way to zero so that, when
the PV does begin to come down, the loop will begin to open the valve sooner than it
would have if the bias had been allowed to go all the way to zero. This action has the
effect of reducing the amount of overshoot.
The normal action of the CPU is to adjust the bias term when the output goes out of
range as shown below.
Mx = Ki * en + Mxn--1
M = Kc * en -- Kr(PVn -- PVn--1) + Mx
Mn = 0
“if M < 0”
“if 0 < M > 1”
Mn = M
Mn = 1
“if M > 1”
Mxn = Mx
“if 0 < M > 1“
Mxn = Mn -- Kc * en -- Kr(PVn -- PVn--1) “otherwise”
By adjusting the bias, the valve will begin to open as soon as the PV begins to come
down. If the loop is properly tuned, overshoot can be eliminated entirely. If the output
went out of range due to a setpoint change, then the loop probably will oscillate
because we must wait for the bias term to stabilize again.
The choice of whether to use the default loop action or to freeze the bias is
dependent on the application. If large step changes to the setpoint are
anticipated, then it is probably better to select the freeze bias option (see page
8--34).

8--12

PID Loop Operation

Step Bias
Proportional to
Step Change SP

Maintenance
and Troubleshooting

PID Loop Operation

Eliminating
Proportional,
Integral or
Derivative Action

Velocity Form of
the PID Equation

This feature reduces oscillation caused by a step change in setpoint when the
adjusting bias feature is used.
Mx = Mx * SPn / SPn--1 if the loop is direct acting
Mx = Mx * SPn--1 / SPn if the loop is reverse acting
Mxn = 0
“if Mx < 0”
Mxn = Mx “if 0 < Mx > 1”
Mxn = 1
“if M > 1”
It is not always necessary to run a full three mode PID control loop. Most loops
require only the PI terms or just the P term. Parts of the PID equation may be
eliminated by choosing appropriate values for the gain (Kc), reset (Ti) and rate (Td)
yielding a P, PI, PD, I and even an ID and a D loop.
Eliminating Integral Action
The effect of integral action on the output may be
eliminated by setting Ti = 9999 or 0000. When
this is done, the user may then manually control
the bias term (Mx) to eliminate any steady--state
offset.
Eliminating Derivative Action The effect of derivative action on the output may
be eliminated by setting Td = 0 (most loops do
not require a D parameter; it may make the loop
unstable).
Eliminating Proportional Action Although rarely done, the effect of proportional
term on the output may be eliminated by setting
Kc = 0. Since Kc is also normally a multiplier of
the integral coefficient (Ki) and the derivative
coefficient (Kr), the CPU makes the computation
of these values conditional on the value of \Kc as
follows:
Ki = Kc * (Ts / Ti)
“if Kc ¸ 0”
Ki = Ts / Ti
“if Kc = 0 (I or ID only)”
Kr = Kc * (Td / Ts)
“if Kc ¸ 0”
Kr = Td / Ts
“if Kc = 0 (ID or D only)”
The standard position form of the PID equation computes the actual actuator
position. An alternative form of the PID equation computes the change in actuator
position. This form of the equation is referred to as the velocity PID equation and is
obtained by subtracting the equation at time “n“ from the equation at time “n--1“.
The velocity equation is given by:
nMn = M -- Mn--1

DL350 User Manual, 2nd Edition

PID Loop Operation

8--13

Maintenance

DL350 User Manual, 2nd Edition

PID Loop Operation

Bumpless Transfer The DL350 loop controller provides for bumpless mode changes. A bumpless
transfer from manual mode to automatic mode is achieved by preventing the control
output from changing immediately after the mode change.
When a loop is switched from Manual mode to Automatic mode, the setpoint and
Bias are initialized as follows:
Position PID Algorithm
Velocity PID Algorithm
SP = PV
SP = PV
Mx = M
The bumpless transfer feature of the DL350 is available in two types: Bumpless I and
Bumpless II (see page 8--27). The transfer type is selected when the loop is set up.
Loop Alarms
The DL350 allows the user to specify alarm conditions that are to be monitored for
each loop. Alarm conditions are reported to the CPU by setting up the alarms in
DirectSOFT using the PID setup alarm dialog when the loop is setup. The alarm
features for each loop are:
S PV Limit y Specify up to four PV alarm points.
High--High PV rises above the programmed High--High
Alarm Limit.
High
PV rises above the programmed High Alarm
Limit.
Low
PV fails below the Low Alarm Limit.
Low--Low PV fails below the Low--Low Limit.
S PV Deviation Alarm y Specify an alarm for High and Low PV deviation
from the setpoint (Yellow Deviation). An alarm for High High and Low
Low PV deviation from the setpoint (Orange Deviation) may also be
specified. When the PV is further from the setpoint than the
programmed Yellow or Orange Deviation Limit the corresponding alarm
bit is activated.
S Rate--of--Change y This alarm is set when the PV changes faster than
a specified rate--of--change limit.
S PV Alarm Hysteresis y The PV Limit Alarms and PV Deviation Alarms
are programmed using threshold values. When the absolute value or
deviation exceeds the threshold, the alarm status becomes true.
Real--world PV signals have some noise on them, which can cause
some fluctuation in the PV value in the CPU. As the PV value crosses
an alarm threshold, its fluctuations will cause the alarm to be intermittent
and annoy process operators. The solution is to use the PV Alarm
Hysteresis feature.

8--14

PID Loop Operation

Loop Operating
Modes

Maintenance
and Troubleshooting

PID Loop Operation

Special Loop
Calculations

The DL350 loop controller operates in one of two modes, either Manual or
Automatic.
Manual
In manual mode, the control output is determined by the operator, not the loop
controller. While in manual mode, the loop controller will still monitor all of the alarms
including High--High, High, Low, Low--Low, Yellow deviation, Orange deviation and
Rate--of--Change.
Automatic
In automatic mode, the loop controller computes the control output based on the
programmed parameters stored in V--memory. All alarms are monitored while in
automatic.
Cascade
Cascade mode is an option with the DL350 PLC and is used in special control
applications. If the cascade feature is used, the loop will operate as it would if in
automatic mode except for the fact that a cascaded loop has a setpoint which is the
control output from another loop.
Reverse Acting Loop
Although the PID algorithm is used in a direct, or forward, acting loop controller, there
are times when a reverse acting control output is needed. The DL350 loop controller
allows a loop to operate as reverse acting. With a reverse acting loop, the output is
driven in the opposite direction of the error. For example, if SP > PV, then a reverse
acting controller will decrease the output to increase the PV.
Mx = --Ki * en + Mxn--1
M = --Kc * en + Kr(PVn --PVn--1) + Mxn
Square Root of the Process Variable
Square root is selected whenever the PV is from a device such as an orifice meter
which requires this calculation.
Error Squared Control
Whenever error squared control is selected, the error is calculated as:
en= (SP -- PVn) * ABS(SP -- PVn)
A loop using the error squared is less responsive than a loop using just the error,
however, it will respond faster with a large error. The smaller the error, the less
responsive the loop. Error squared control would typically be used in a pH control
application.

DL350 User Manual, 2nd Edition

PID Loop Operation

8--15

Error Deadband Control
With error deadband control, no control action is taken if the PV is within the specified
deadband area around the setpoint. The error deadband is the same above and
below the setpoint.
Once the PV is outside of the error deadband around the setpoint, the entire error is
used in the loop calculation.
en = 0
“SP -- Deadband__Below_SP < PV < SP -- Deadband_Above_SP”
“otherwise”
en = P -- PVn
The error will be squared first if both Error Squared and Error Deadband is selected.
Derivative Gain Limiting
When the coefficient of the derivative term, Kr, is a large value, noise introduced into
the PV can result in erratic loop output. This problem is corrected by specifying a
derivative gain limiting coefficient, Kd. Derivative gain limiting is a first order filter
applied to the derivative term computation, Yn, as shown below.
Yn = Yn--1 +

__________
Ts
Ts + ( Td )

* (PVn

= Yn--1 )

Kd

PID Loop Operation

Position Algorithm
Mx = Ki * en + Mxn--1
M = Kc * en -- Kr * (Yn --Yn--1) + Mx
Velocity Algorithm
nM = Kc * (en -- en--1) + Ki * en -- Kr * (Yn -- 2 * Yn--1 + Yn--2)

Maintenance

DL350 User Manual, 2nd Edition

8--16

PID Loop Operation

Maintenance
and Troubleshooting

PID Loop Operation

Ten Steps to Successful Process Control
Modern electronic controllers such as the DL350 CPU provide sophisticated
process control features. Automated control systems can be very difficult to debug,
because a given symptom can have many possible causes. We recommend a
careful, step-by-step approach to bringing new control loops online:
The most important knowledge is -- how to produce your product. This knowledge is
Step 1:
the foundation for designing an effective control system. A good process recipe will
Know the Recipe
do the following:
S Identify all relevant Process Variables, such as temperature, pressure,
or flow rates, etc. which need precise control.
S Plot the desired Setpoint values for each of the process variables for the
duration of one process cycle.
This simply means choosing the method the machine will use to maintain control
Step 2:
over the Process Variables to follow their Setpoints. This involves many issues and
Plan Loop
trade-offs, such as, energy efficiency, equipment costs, ability to service the
Control Strategy
machine during production, and more. You must also determine how to generate the
Setpoint value during the process, and whether a machine operator can change the
SP.
Step 3:
Assuming the control strategy is sound, it is still crucial to properly size the actuators
and properly scale the sensors.
Size and Scale
Loop Components
S Choose an actuator (heater, pump. etc.) which matches the size of the
load. An oversized actuator will have an overwhelming effect on your
process after a SP change. However, an undersized actuator will allow
the PV to lag or drift away from the SP after a SP change or process
disturbance.
S Choose a PV sensor which matches the range of interest (and control)
for our process. Decide the resolution of control you need for the PV
(such as within 2°C), and make sure the sensor input value provides the
loop with at least 5 times that resolution (at LSB level). However, an
over-sensitive sensor can cause control oscillations, etc. The DL350
provides 12-bit and 15-bit, unipolar and bipolar data format options, and
a 16--bit unipolar option. This selection affects SP, PV, Control Output,
and Integrator sum.
After deciding the number of loops, PV variables to measure, and SP values, you
Step 4:
Select I/O Modules can choose the appropriate I/O modules. Refer to the figure on the next page. In
many cases, you will be able to share input or output modules among several control
loops. The example shown sends the PV and Control Output signals for two loops
through the same set of modules. Up to four loops could be handled by the modules
shown.
AutomationDirect offers DL305 analog modules with 2, 4, 8, and 16 channels per
module in various signal types and ranges. Also available are thermocouple and
RTD modules which can be used to maintain temperatures to within a 10th of a
degree. Refer to our sales catalog for further information on these modules, or find
the modules on our website, www.automationdirect.com.

DL350 User Manual, 2nd Edition

PID Loop Operation

DL350 CPU
V-memory

Input
Module

Loop 1 Data

Channel 1

PV

Channel 2

PV

SP

OUT

Loop 2 Data
SP

OUT

8--17

Output
Module
Channel 1
Channel 2

Channel 3

Channel 3

Channel 4

Channel 4

Process 1
Process 2

After selection and procurement of all loop components and I/O modules, we can
perform the wiring and installation. Refer to the wiring guidelines in Chapter 2 of this
Manual, and to the DL205 Analog I/O Module manual as needed. The most
commonly overlooked wiring details when installing PID loop controls are:
S Reversing the polarity of sensor or actuator wiring connections.
S Incorrect signal ground connections between loop components.

Step 6:
Loop Parameters

After wiring and installation, choose the loop setup parameters. The easiest method
for programming the loop tables is by using DirectSOFT. This software provides PID
Setup using dialog boxes to simplify the task. Note: It is important to understand
the meaning of all loop parameters mentioned in this chapter before choosing
values to enter.
With the sensor and actuator wiring completed, and loop parameters entered, the
Manual mode must be used to manually and carefully check out the new control
system.
S Verify that the PV value from the sensor is correct.
S If it is safe to do so, gradually increase the control output up above 0%,
and see if the PV responds (and moves in the correct direction!).

Step 7:
Check Open Loop
Performance

If the open loop test (page 8--40) shows the PV reading is good and the control output
has the proper effect on the process; follow the closed--loop auto tuning procedure
(see page 8--45). In this step, the loop is tuned so the PV automatically follows the
SP.
If the closed loop test shows PV will follow small changes in the SP, consider running
Step 9:
Run Process Cycle an actual process cycle. The programming which will generate the desired SP in real
time must be completed. In this step, it may desirable to run a small test batch of
product through the machine, while watching the SP change according to the recipe.
WARNING: Be sure the Emergency Stop and power-down provision is readily
accessible, in case the process goes out of control. Damage to equipment
and/or serious injury to personnel can result from loss of control of some
processes.
Step 10:
Save Loop
Parameters

When the loop tests and tuning sessions are complete, be sure to save all loop setup
parameters to disk.

DL350 User Manual, 2nd Edition

Maintenance

Step 8:
Loop Tuning

PID Loop Operation

Step 5:
Wiring and
Installation

8--18

PID Loop Operation

PID Loop Setup
Some Things to Do Have your analog module installed and operational before beginning the loop setup
(refer to the DL305 Analog I/O Modules Manual, D3--ANLG--M). The DL350 CPU
and Know Before
gets its PID loop processing instructions from V--memory tables. There isn’t a PID
Starting
instruction that can be used in RLL, such as a block, to setup the PID loop control.
Instead, the CPU reads the setup parameters from system V--memory locations.
These locations are shown in the table below for reference only; they can be used in
a RLL program if needed.
Address

Setup Parameter

Data type

Ranges

Read/Write

V7640

Loop Parameter
Table Pointer

Octal

V1400 -- V7340,
V10000 -- V17740

write

V7641

Number of Loops

BCD

0 -- 4

write

V7642

Loop Error Flags

Binary

0 or 1

read

Maintenance
and Troubleshooting

PID Loop Operation

If the number of loops is “0”, the loop controller task is turned off during the ladder
program scan. The loop controller will allow use of loops in ascending order,
beginning with 1. For example, you cannot use loop 1 and 4 while skipping 2 and 3.
The loop controller attempts to control the full number of loops specified in V7641.
NOTE: NOTE: The V--memory data is stored in RAM memory. If power is removed
from the CPU for an extended period of time, the PID Setup Parameters will be lost. It
is recommended to use the optional D2--BAT--1 for memory backup.
PID Error Flags

The CPU reports any programming errors of
the setup parameters in V7640 and V7641. It
does this by setting the appropriate bits in
V7642 on program-to-run mode transitions.

PID Error Flags, V7642
Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

If you use the DirectSOFT loop setup dialog box, its automatic range checking
prohibits possible setup errors. However, the setup parameters may be written using
other methods such as RLL, so the error flag register may be helpful in those cases.
The following table lists the errors reported in V7642.
Bit

Error Description (0 = no error, 1 = error)

0

The starting address (in V7640) is out of the lower V-memory range.

1

The starting address (in V7640) is out of the upper V-memory range.

2

The number of loops selected (in V7641) is greater than 4.

3

The loop table extends past (straddles) the boundary at V7377. Use an
address closer to V1400.

4

The loop table extends past (straddles) the boundary at V17777. Use
an address closer to V10000.

As a quick check, if the CPU is in Run mode and V7642=0000, then we know there
are no programming errors.

DL350 User Manual, 2nd Edition

PID Loop Operation
Establishing the
Loop Table Size
and Location

8--19

On a PROGRAM-to-RUN mode transition, the CPU reads the loop setup
parameters as pictured below. At that moment, the CPU learns the location of the
loop table and the number of loops it configures. Then during the ladder program
scan, the PID Loop task uses the loop data to perform calculations, generate alarms,
and so on. There are some loop table parameters the CPU will read or write on every
loop calculation.
CPU Tasks

Ladder
Program

V--Memory Space

READ/
WRITE

User Data

LOOP
DATA
CONFIGURE/
MONITOR

PID Loop
Task
READ
(at powerup)

Setup Parameters
V7640, V7641
DirectSOFT 5 Programming Software

NOTE: Whether one or more loops are being setup, this block of V--memory will only
be used for the PID loop parameters, do not use this block of memory for
anything else in your program.

DL350 User Manual, 2nd Edition

Maintenance

The Loop Table contains data for only the
V--Memory Space
number of loops selected. The address for
User Data
the table is stored in V7641. Each loop
V2000
LOOP #1
configuration occupies 32 words (0 to 37
V2037
32 words
octal) in the loop table.
LOOP #2
V2040
For example, consider an application with
32 words
V2077
4 loops, and V2000 has been chosen as
LOOP #3
the starting location. The Loop Parameter
32 words
will occupy V2000 -- V2037 for loop 1,
LOOP #4
V2040 -- V2077 for loop 2 and so on. Loop
32 words
4 occupies V2140 -- V2177.
Determine the block of V--memory to be used for each PID loop. Besides being the
beginning of the PID parameter memory block, the first address will be the start of
loop 1 parameters. Remember, there are 32 words (0 to 37 octal) needed for each
loop. Once you have determined the beginning V--memory address to be used, you
can setup and store the PID parameters either directly in your RLL program or by the
using PID Setup in DirectSOFT.

PID Loop Operation

NOTE: The DL350 CPU’s PID algorithm requires at least DirectSOFT, version 3.0c,
Build 58 (or later), or DirectSOFT 5, version 5.0 (or later). See our website for more
information: www.automationdirect.com.

8--20

PID Loop Operation

First type the beginning address in the PID Table Address dialog. After the address
has been entered, the memory range will appear.i Also, entering the number of PID
loops (1 to 4) will set the total V--memory range for the number of loops entered. After
the V--memory address has been entered, the necessary PID parameters for a basic
loop operation for each loop can be setup with the dialogs made available.

Maintenance
and Troubleshooting

PID Loop Operation

Using DirectSOFT is the simplest way to setup the parameters. The DL350 PID
parameters can be setup either offline or online while developing the user program.
The parameters wil be loaded to V--memory as the program is loaded into the PLC. If
the PID parameters are setup or changed while the PLC is connected to the
programming computer, this can only be don in Program Mode.
To begin the PID setup, open an edited program with DirectSOFT, then click on PLC
> Setup > PID to access the Setup PID dialog which is pictured below.

DL350 User Manual, 2nd Edition

8--21

PID Loop Operation
Loop Table
Word Definitions

Word #

The parameters associated with each loop are listed in the following table. The
address offset is in octal, to help you locate specific parameters in a loop table. For
example, if a table begins at V2000, then the location of the reset (integral) term is
Addr+11, or V2011. Do not use the word# to calculate addresses.

Address+Offset Description

Format

Read onthe-fly***

PID Loop Mode Setting 1

bits

Yes

2

Addr + 1

PID Loop Mode Setting 2

bits

Yes

3

Addr + 2

Setpoint Value (SP)

word/binary

Yes

4

Addr + 3

Process Variable (PV)

word/binary

Yes

5

Addr + 4

Bias (Integrator) Value

word/binary

Yes

6

Addr + 5

Control Output Value

word/binary

Yes

7

Addr + 6

Loop Mode and Alarm Status

bits

--

8

Addr + 7

Sample Rate Setting

word/BCD

Yes

9

Addr + 10

Gain (Proportional) Setting

word/BCD

Yes

10

Addr + 11

Reset (Integral) Time Setting

word/BCD

Yes

11

Addr + 12

Rate (Derivative) Time Setting

word/BCD

Yes

12

Addr + 13

PV Value, Low-low Alarm

word/binary

No*

13

Addr + 14

PV Value, Low Alarm

word/binary

No*

14

Addr + 15

PV Value, High Alarm

word/binary

No*

15

Addr + 16

PV Value, High-high Alarm

word/binary

No*

16

Addr + 17

PV Value, deviation alarm (YELLOW)

word/binary

No*

17

Addr + 20

PV Value, deviation alarm (RED)

word/binary

No*

18

Addr + 21

PV Value, rate-of-change alarm

word/binary

No*

19

Addr + 22

PV Value, alarm hysteresis setting

word/binary

No*

20

Addr + 23

PV Value, error deadband setting

wordbinary

Yes

21

Addr + 24

reserved for future use

--

--

22

Addr + 25

Loop derivative gain limiting factor setting

word/BCD

No**

23

Addr + 26

SP value lower limit setting

word/binary

Yes

24

Addr + 27

SP value upper limit setting

word/binary

Yes

25

Addr + 30

Control output value lower limit setting

word/binary

No**

26

Addr + 31

Control output value upper limit setting

word/binary

No**

27

Addr + 32

Remote SP Value V-Memory Address Pointer

word/hex

Yes

28

Addr + 33

Ramp/Soak Setting Flag

bit

Yes

29

Addr + 34

Ramp/Soak Programming Table Starting Address

word/hex

No**

30

Addr + 35

Ramp/Soak Programming Table Error Flags

bits

No**

31

Addr + 36

reserved for future use

--

--

32

Addr + 37

reserved for future use

--

--

* Read data only when alarm enable bit transitions 0 to1,

** Read data only on PLC Mode change,
*** Read on--the--fly means that the content of V--memory can be changed while the PID loop is in operation.

DL350 User Manual, 2nd Edition

Maintenance

Addr + 0

PID Loop Operation

1

8--22

PID Loop Operation

PID Mode Setting 1 The individual bit definitions of PID Mode Setting 1 word (Addr+00) are listed in the
following table.
Bit Descriptions
(Addr + 00)
PID Mode Setting 1 Description

Read/Write

Bit=0

Bit=1

0

Manual Mode Loop Operation request

write

--

0¤1
request

1

Automatic Mode Loop Operation request

write

--

0¤1
request

2

Cascade Mode Loop Operation request

write

--

0¤1
request

3

Bumpless Transfer select

write

Mode I

Mode II

4

Direct or Reverse-Acting Loop select

write

Direct

Reverse

5

Position/Velocity Algorithm select

write

Position

Velocity

6

PV Linear/Square Root Extract select

write

Linear

Sq. root

7

Error Term Linear/Squared select

write

Linear

Squared

8

Error Deadband enable

write

Disable

Enable

9

Derivative Gain Limit select

write

Off

On

10

Bias (Integrator) Freeze select

write

Off

On

11

Ramp/Soak Operation select

write

Off

On

12

PV Alarm Monitor select

write

Off

On

13

PV Deviation alarm select

write

Off

On

14

PV rate-of-change alarm select

write

Off

On

15

reserved for future use

--

--

--

Maintenance
and Troubleshooting

PID Loop Operation

Bit

DL350 User Manual, 2nd Edition

8--23

PID Loop Operation

PID Mode Setting 2 The bit definitions for PID Mode Setting 2 word (Addr+01) are listed in the following
table. More information about the use of this word is available later in this chapter.
Descriptions
(Addr + 01)
Bit

PID Mode Setting 2 Description

Read/Write

Bit=0

Bit=1

write

unipolar

bipolar

1

Input/Output Data Format select
(See Notes 1 and 2)

write

12 bit

15 bit

2

reserved for future use

--

--

--

3

SP Input limit enable

write

disable

enable

4

Integral Gain (Reset) units select

write

seconds

minutes

5

Select Autotune PID algorithm

write

closed loop

open loop

6

Autotune selection

write

PID

PI only
(rate = 0)

7

Autotune start

read/write

autotune
done

force start

8

PID Scan Clock (internal use)

read

--

--

9

Input/Output Data Format 16-bit select
(See Notes 1 and 2)

write

not
16 bit

select
16 bit

10

Select separate data format for input and
output (See Notes 2 and 3)

write

same
format

separate
formats

11

Control Output Range
Unipolar/Bipolar select
(See Notes 2 and 3)

write

unipolar

bipolar

12

Output Data Format select
(See Notes 2 and 3)

write

12 bit

15 bit

13

Output data format 16-bit select
(See Notes 2 and 3)

write

not
16 bit

select
16 bit

--

--

--

14--15

Reserved for future use

NOTE 1: If the value in bit 9 is 0, then the values in bits 0 and 1 are read. If the value in
bit 9 is 1, then the values in bits 0 and 1 are not read, and bit 9 defines the data format
(the range is automatically unipolar).
NOTE 2: If the value in bit 10 is 0, then the values in bits 0, 1, and 9 define the input
and output ranges and data formats (the values in bits 11, 12, and 13 are not read). If
the value in bit 10 is 1, then the values in bits 0, 1, and 9 define only the input range
and data format, and bits 11, 12, and 13 are read and define the output range and
data format..
NOTE 3: If bit 10 has a value of 1 and bit 13 has a value of 0, then bits 11 and 12 are
read and define the output range and data format. If bit 10 and bit 13 each have a
value of 1, then bits 11 and 12 are not read, and bit 13 defines the data format (the
output range is automatically unipolar).

DL350 User Manual, 2nd Edition

Maintenance

Input (PV) and Control Output Range
Unipolar/Bipolar select
(See Notes 1 and 2)

PID Loop Operation

0

8--24

PID Loop Operation

Mode/Alarm
Monitoring Word
(Addr + 06)

The individual bit definitions of the Mode/Alarm monitoring word (Addr+06) are listed
in the following table.

PID Loop Operation

Bit

Bit=0

Bit=1

Manual Mode Indication

read

--

Manual

1

Automatic Mode Indication

read

--

Auto

2

Cascade Mode Indication

read

--

Cascade

3

PV Input LOW--LOW Alarm

read

Off

On

4

PV Input LOW Alarm

read

Off

On

5

PV Input HIGH Alarm

read

Off

On

6

PV Input HIGH--HIGH Alarm

read

Off

On

7

PV Input YELLOW Deviation Alarm

read

Off

On

8

PV Input RED Deviation Alarm

read

Off

On

9

PV Input Rate-of-Change Alarm

read

Off

On

10

Alarm Value Programming Error

read

--

Error

11

Loop Calculation Overflow/Underflow

read

--

Error

12

Loop Auto--Tune indication

read

Off

On

13

Auto--Tune error indication

read

--

Error

--

--

--

Reserved for Future Use

The individual bit definitions of the Ramp/Soak Table Flag word (Addr+33) are listed
in the following table.
Bit

Maintenance
and Troubleshooting

Read/Write

0

14--15

Ramp/Soak Table
Flags
(Addr + 33)

Mode / Alarm Bit Description

Ramp/Soak Flag Bit Description

Read/Write

Bit=0

Bit=1

0

Start Ramp/Soak Profile

write

--

0¤1 Start

1

Hold Ramp/Soak Profile

write

--

0¤1 Hold

2

Resume Ramp/soak Profile

write

--

0¤1
Resume

3

Jog Ramp/Soak Profile

write

--

0¤1 Jog

4

Ramp/Soak Profile Complete

read

--

Complete

5

PV Input Ramp/Soak Deviation

read

Off

On

6

Ramp/Soak Profile in Hold

read

Off

On

7

Reserved

read

--

--

Current Step in R/S Profile

read

8--15

decode as byte (hex)

Bits 8--15 must be read as a byte to indicate the current segment number of the
Ramp/Soak generator in the profile. This byte will have the values 1, 2, 3, 4, 5, 6, 7, 8,
9, A, B, C, D, E, F, and 10. which represent segments 1 to 16 respectively. If the
byte=0. then the Ramp/Soak table is not active.

DL350 User Manual, 2nd Edition

8--25

PID Loop Operation
Ramp/Soak
Table Location
(Addr + 34)

V2000
V2037

Each loop that you configure has the option of using a built-in Ramp/Soak generator
dedicated to that loop. This feature generates SP values in a continuous stream,
called a profile. To use the Ramp/Soak feature, you must program a separate table
of 32 words with appropriate values. A DirectSOFT dialog box makes this easy to
do.
In the basic loop table, the Ramp/Soak Table Pointer at Addr + 34 must point to the
start of the ramp/soak data for that loop. This may be anywhere in user memory, and
does not have to be adjoining to the Loop Parameter table, as shown to the left. Each
R/S table requires 32 words, regardless of the number of segments programmed.
The ramp/soak table parameters are defined in the table below. Further details are in
the section on Ramp/Soak Generator section in this chapter.

V--Memory Space

Addr
Offset

Step

User Data

+ 00

1

+ 01

32 words

LOOP #2

LOOP #1

32 words

Ramp/Soak #1
32 words

V2034 = 3000 octal
Pointer to R/S table

Step

Ramp End SP Value

+ 20

9

Ramp End SP Value

1

Ramp Slope

+ 21

9

Ramp Slope

+ 02

2

Soak Duration

+ 22

10

Soak Duration

+ 03

2

Soak PV Deviation

+ 23

10

Soak PV Deviation

+ 04

3

Ramp End SP Value

+ 24

11

Ramp End SP Value

+ 05

3

Ramp Slope

+ 25

11

Ramp Slope

+ 06

4

Soak Duration

+ 26

12

Soak Duration

+ 07

4

Soak PV Deviation

+ 27

12

Soak PV Deviation

+ 10

5

Ramp End SP Value

+ 30

13

Ramp End SP Value

+ 11

5

Ramp Slope

+ 31

13

Ramp Slope

+ 12

6

Soak Duration

+ 32

14

Soak Duration

+ 13

6

Soak PV Deviation

+ 33

14

Soak PV Deviation

+ 14

7

Ramp End SP Value

+ 34

15

Ramp End SP Value

+ 15

7

Ramp Slope

+ 35

15

Ramp Slope

+ 16

8

Soak Duration

+ 36

16

Soak Duration

+ 17

8

Soak PV Deviation

+ 37

16

Soak PV Deviation

Description

Write

0

Starting Addr out of lower V-memory range

read

--

Error

1

Starting Addr out of upper V-memory range

read

--

Error

--

--

--

2--3
4
5--15

Reserved for future Use
Starting Addr out of System Parameter
V-memory Range
Reserved for future Use

read
--

--

Error

--

DL350 User Manual, 2nd Edition

--

Maintenance

Ramp/Soak Table
The individual bit definitions of the Ramp/Soak Table Programming Error Flags
Programming Error (Addr + 35) word are listed in the following table.
Flags
Read/
(Addr + 35)
Bit
R/S Error Flag Bit Description
Bit=0
Bit=1

PID Loop Operation

V3000

Addr
Offset

Description

8--26

PID Loop Operation

Maintenance
and Troubleshooting

PID Loop Operation

Configure the PID
Loop

Once the PID table is established in V--memory, configuring the PID loop continues
with the DirectSOFT PID setup configuration dialog. You will need to check and fill in
the data required to control the PID loop. Select Configure and the following dialog
will appear for this process.

Select the Algorithm Type
Chose either Position or Velocity. The default algorithm is Position. This is the choice
for most applications which include heating and cooling loops as well as most
position and level control loops. A typical velocity control will consist of a process
variable such as a flow totalizer in a flow control loop.
Enter the Sample Rate
The main tasks of the CPU fall into
categories as shown to the right. The list
represents the tasks done when the CPU
is in Run Mode, on each PLC scan. Note
that PID loop calculations occur after the
ladder logic task.
The sample rate of a control loop is simply
the frequency of the PID calculation. Each
calculation generates a new control output
value. With the DL350 CPU, you can set
the sample rate of a loop from 50 mS to
99.99 seconds. Most loops do not require
a fresh PID calculation on every PLC
scan. Some loops may need calculating
only once in 1000 scans.
Enter 0.05 sec., or the sample rate of your
choice, for each loop, and the CPU
automatically schedules and executes
PID calculations on the appropriate scans.

Read
Inputs
Service
Peripherals

PLC
Scan

Ladder
Program

Calculate
PID Loops
Internal
Diagnostics

Write
Outputs

DL350 User Manual, 2nd Edition

PID Loop Operation

8--27

Select Forward/Reverse
It is important to know which direction the control output will respond to the error
(SP--PV), either forward or reverse. A forward (direct) acting control loop means that
whenever the control output increases, the process variable will also increase. The
control output of most PID loops are forward acting, such as a heating control loop.
An increase in heat applied will increase the PV (temperature).
A reverse acting control loop is one where an increase in the control output results in
a decrease in the PV. A common example of this would be a refrigeration system,
where an increase in the cooling input causes a decrease in the PV (temperature).
The Transfer Mode
Choose either Bumpless I or Bumpless II to provide a smooth transition of the control
output from Manual Mode to Auto Mode. Choosing Bumpless I will set the SP equal
to the PV when the control output is switched from Manual to Auto. If this is not
desired, choose Bumpless II.
The characteristics of Bumpless I and II transfer types are listed in the chart below.
Note that their operation also depends on which PID algorithm you are using, the
position or velocity form of the PID equation. Note that you must use Bumpless
Transfer type I when using the velocity form of the PID algorithm.
Transfer
Select Bit

Bumpless
Transfer I

0

Bumpless
Transfer II

1

PID Algorithm

Manual-to-Auto
Transfer Action

Auto-to-Cascade
Transfer Action

Position

Forces Bias = Control Output
Forces SP = PV

Forces Major Loop Output =
Minor Loop PV

Velocity

Forces SP = PV

Forces Major Loop Output =
Minor Loop PV

Position

Forces Bias = Control Output

none

Velocity

none

none

PID Loop Operation

Transfer
Type

The transfer type can also be selected in a RLL program by setting bit 3 of PID Mode
1, V+00 setting as shown.
Bumpless Transfer I / II select

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

SP/PV & Output Format
This block allows you to select either Common format or Independent format.
Common format is the default and is most commonly used. With this format both
SP/PV and Output will have the same data structure. Both will have the same
number of bits and either bipolar or unipolar. If Independent format is selected, the
data structure selections will be grayed out. The reason for this is that they become
independently selectable in the SP/PV and the Output dialogs.
Common Data Format
Select either Unipolar data format (which is positive data only) in 12 bit (0 to 4095),
15 bit (0 to 32767), or 16 bit (0 to 65535) format, or Bipolar data format, which ranges
from negative to positive (--4095 to 4095 or --32767 to 32767) and requires a sign bit.
Bipolar selection displays input/output as magnitude plus sign, not two’s
complement. The bipolar selection is not available when 16--bit data format is
selected.

DL350 User Manual, 2nd Edition

Maintenance

PID Mode 1 Setting V+00

8--28

PID Loop Operation

Setpoint V+02
+

Σ
--

Control Output V+05

Loop
Calculation

Process Variable V+03

PID Mode 2 Setting V+01
Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Data formats
00
Select data
format using
bits 0 and 1.

LSB

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

12 bit unipolar

0 to 0FFF (0 to 4095)

01

12 bit bipolar

0 to 0FFF, 8FFF to 8001
(0 to 4095, --4095 to --1)

10

15 bit unipolar

0 to 32767

11

15 bit bipolar

0 to 7FFF, FFF to 8001
(0 to 32767, --32767 to --1)

Maintenance
and Troubleshooting

PID Loop Operation

= sign bit

The data format determines the numerical interface between the PID loop and the
PV sensor and the control output device. This selects the data format for both the SP
and the PV.
Loop Mode
The feature called Independent of CPU mode in the dialog is not available in the
DL350. However, the DL350 does provide the three standard control modes:
Manual, Automatic, and Cascade. The sources of the three basic variables SP, PV
and control output are different for each mode.
In Manual Mode, the loop is not executing PID calculations (however, loop alarms
are still active). With regard to the loop table, the CPU stops writing values to location
V+05 (control output) for that loop. It is expected that an operator or other intelligent
source is manually controlling the output by observing the PV and writing data to the
control output as necessary to keep the process under control. The drawing below
shows the equivalent schematic diagram of manual mode operation.
Input from Operator

Manual
Control Output V+05

Loop
Calculation

Auto

In Automatic Mode, the loop operates normally and generates new control output
values. It calculates the PID equation and writes the result in location V+05 every
sample period of that loop. The equivalent schematic diagram is shown below.
Input from Operator

Manual
Control Output V+05

Loop
Calculation

DL350 User Manual, 2nd Edition

Auto

PID Loop Operation

8--29

In Cascade Mode, the loop operates just as in Automatic Mode, with one important
change. The data source for the SP changes from its normal location at V+02, using
the control output value from another loop (the purpose of cascading loops is
covered later in this chapter). So in Auto or Manual modes, the loop calculation uses
the data at V+02. In Cascade Mode, the loop calculation reads the control output
from another loop’s parameter table.
Another loop

Cascaded loop

Control Output V+05
Loop
Calculation

Cascade
Setpoint
+

Normal SP V+02
Auto/Manual

Σ
--

Loop
Calculation

Control Output

Process Variable

As pictured below, a loop change from one mode to another, but cannot go from
Manual Mode to Cascade. This mode change is prohibited because a loop would be
changing two data sources at the same time, and could cause a loss of control.
Manual

Automatic

Cascade

PID Loop Operation

When the CPU is operating in the Run Mode, the normal operation of the PID loop
controller is to read the loop data and perform calculations on each scan of the RLL
program. When the CPU is placed in the Program Mode, the RLL program halts
operation and all PID loops are automatically put into the Manual Mode. The PID
parameters can then be changed if desired. Similarly, by placing the CPU in the Run
mode, the PID loops are returned to the operational mode which they were
previously in, i.e., Manual, Automatic and Cascade. With this selection you
automatically affect the modes by changing the CPU mode.

Maintenance

DL350 User Manual, 2nd Edition

8--30

PID Loop Operation

NOTE: The SP/PV dialog can be left as it first appears for basic PID operations.

Maintenance
and Troubleshooting

PID Loop Operation

SP/PV Addresses
An SP/PV dialog will be made available to setup how the setpoint (SP) and the
process variable (PV) will be used in the loop. If this loop is the minor loop of a
cascaded pair, enter that control output address in the Remote SP from Cascaded
Loop Output area. It is sometimes desirable to limit the range of setpoint values
allowed to be entered. To activate this feature, check the box next to Enable Limiting.
This will activate the Upper and Lower fields for the values to be entered. Set the
limits around the SP value to prevent an operator from entering a setpoint value
outside of a safe range. The Square root box is only used for certain PID loops, such
as a flow control loop. The Auto transfer from I/O module will be grayed out and not
available for use by the DL350.

DL350 User Manual, 2nd Edition

PID Loop Operation

8--31

Set Control Output Limits
Another dialog that will be available in the PID setup will be the Output dialog. The
control output address, V+05, (determined by the PID loop table beginning address)
will be in view. Enter the output range limits, Upper Limit and Lower Limit, that will
meet the requirement of the process and which will agree with the data format that
has been selected. For a basic PID operation using a 12 bit output module, set the
Upper Limit to 4095 and leave the Lower Limit set to 0. The Auto transfer to I/O
module is not available for use by the DL350. The Output Data format area is not
available and is grayed out if Common format has been chosen (see page 8--26).

PID Loop Operation

WARNING: If the Upper Limit is set to zero, the output will never get above
zero. In effect, there will be not control output.

Maintenance

DL350 User Manual, 2nd Edition

8--32

PID Loop Operation

PID Loop Operation

Enter PID Parameters
Another PID setup dialog, Tuning, is for entering the PID parameters shown as: Gain
(Proportional Gain), Reset (Integral Gain) and Rate (Derivative Gain)

Recall the position and velocity forms of the PID loop equations which were
introduced earlier. The equations basically show the three components of the PID
calculation: Proportional Gain (P), Integral Gain (I) and Derivative Gain (D). The
following diagram shows a form of the PID calculation in which the control output is
the sum of the proportional gain, integral gain and derivative gain. With each
calculation of the loop, each term receives the same error signal value.

Setpoint
+

Error Term

Σ
--

Maintenance
and Troubleshooting

Process Variable

Loop Calculation
P
I
D

+
+

Σ

Control Output

+

The P, I and D gains are 4--digit BCD numbers with values from 0000 to 9999. They
contain an implied decimal point in the middle, so the values are actually 00.00 to
99.99. Some gain values have units y Proportional gain has no unit, Integral gain
may be selected in seconds or in minutes, and Derivative gain is in seconds.
Gain (Proportional Gain) y This is the most basic gain of the three. Values range
from 0000 to 9999, but they are used internally as xx.xx. An entry of “0000“
effectively removes the proportional term from the PID equation. This
accommodates applications which need integral--only loops.
Reset (Integral Gain) y Values range from 0001 to 9998, but they are used
internally as xx.xx. An entry of “0000“ or “9999“causes the integral gain to be “∞”,
effectively removing the integrator term from the PID equation. This accommodates
applications which need proportional--only loops. The units of integral gain may be
either seconds or minutes, as shown in the above dialog.
Rate (Derivative Gain) y Values which can be entered range from 0001 to 9999,
but they are used internally as xx.xx. An entry of “0000“ allows removal of the
derivative term from the PID equation (a common practice). This accommodates
applications which require only proportional and/or integral loops. Most control
loops will operate as a PI loop.

DL350 User Manual, 2nd Edition

PID Loop Operation

8--33

NOTE: You may elect to leave the tuning dialog blank and enter the tuning
parameters in the DirectSOFT PID View.
Derivative Gain Limiting
The derivative gain (rate) has an optional gain--limiting feature. This is provided
because the derivative gain reacts badly to PV signal noise or other causes of
sudden PV fluctuations. The function of the gain--limiting is shown in the diagram
below.
Loop Calculation
P
Setpoint

+

Σ

Error Term

--

D

Process Variable

Loop Table
00XX

Integral

+
+

Derivative

Σ

Control
Output

+

0
Derivative,
gain-limited

1

PID Mode 1 Setting V+00

Derivative Gain Limit
Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Derivative gain limit select

The gain limit can be particularly useful during loop tuning. Most loops can tolerate
only a little derivative gain without going into uncontrolled oscillations.
If this option is checked, a Limit from 0 to 20 must also be entered for Limit.
NOTE: When first configuring a loop, it’s best to use the standard error term until
after the loop is tuned. Once the loop is tuned, you will be able to tell if these functions
will enhance control. The Error Squared and/or Enable Deadband can be selected
later in the PID setup. Also, values are not required to be entered in the Tuning
dialog, but they can set later in the DirectSOFT PID View.

DL350 User Manual, 2nd Edition

Maintenance

Error Term Selection
The error term is internal to the CPUs PID loop controller, and is generated again in
each PID calculation. Although its data is not directly accessible, you can easily
calculate it by subtracting: Error = (SP -- PV). The PID calculation operates on this
value linearly to give the result. However, a few applications can benefit from
non--linear control. The Error--squared method of non--linear control exaggerates
large errors and diminisihes small error.
Error Squared y When selected, the squared error function simply squares the
error term (but preserves the original algebraic sign), which is used in the
calculation. This affects the Control Output by diminishing its response to smaller
error values, but maintaining its response to larger errors. Some situations in which
the error squared term might be useful:
S Noisy PV signal -- using a squared error term can reduce the effect of
low--frequency electrical noise on the PV, which will make the control
system jittery. A squared error maintains the response to larger errors.
S Non--linear process -- some processes (such as chemical pH control)
require non--linear controllers for best results. Another application is
surge tank control, where the Control Output signal must be smooth.

PID Loop Operation

V+25

I

Proportional

8--34

PID Loop Operation
Enable Deadband y When selected, the enable deadband function takes a range
of small error values near zero, and simply substitutes zero as the value of the error.
If the error is larger than the deadband range, then the error value is used normally.
Freeze Bias
The term reset windup refers to an undesirable characteristic of integrator behavior
which occurs naturally under certain conditions. Refer to the figure below. Suppose
the PV signal becomes disconnected, and the PV value goes to zero. While this is a
serious loop fault, it is made worse by reset windup. Notice the bias (reset) term
keeps integrating normally during the PV disconnect, until its upper limit is reached.
When the PV signal returns, the bias value is saturated (windup) and takes a long
time to return to normal. The loop output consequently has an extended recovery
time. Until recovery, the output level is wrong and causes further problems.
PV

PV loss

0

Reset windup

PV loss
Freeze bias enabled

Maintenance
and Troubleshooting

PID Loop Operation

Bias

Output
Recovery time

Recovery time

In the second PV signal loss episode in the figure, the freeze bias feature is enabled.
It causes the bias value to freeze when the control output goes to its range limits.
Much of the reset windup is thus avoided, and the output recovery time is much less.
For most applications, the freeze bias feature will work with the loop as described
above. It is suggested to enable this feature by selecting it in the dialog. Bit 10 of PID
Mode 1 Setting (V+00) word can also be set in RLL.
NOTE: The freeze bias feature stops the bias term from changing when the control
output reaches the end of the data range. If you have set limits on the control output
other than the range (i.e, 0--4095 for a unipolar/12 bit loop), the bias term still uses
the end of range for the stopping point and bias freeze will not work.

DL350 User Manual, 2nd Edition

PID Loop Operation

8--35

Setup the PID Alarms
Although the setup of the PID alarms is optional, you surely would not want to
operate a process without monitoring it. The performance of a process control loop
may generally be measured by how closely the process variable matches the
setpoint. Most process control loops in industry operate continuously, and will
eventually lose control of the PV due to an error condition. Process alarms are vital in
early discovery of a loop error condition and can alert plant personnel to manually
control a loop or take other measures until the error condition has been repaired.
The alarm thresholds are fully programmable, and each type of alarm may be
independently enabled and monitored. The following diagram shows the Alarm
dialog in the PID setup which simplifies the alarm setup.

High Alarm
PV
Low Alarm
Low--low Alarm

Loop Table
V+16

XXXX

High-high Alarm

V+15

XXXX

High Alarm

V+14

XXXX

Low Alarm

V+13

XXXX

Low-low Alarm

NOTE: The Alarm dialog can be left as it first appears, without alarm entries. The
alarms can then be setup in the DirectSOFT PID View.

DL350 User Manual, 2nd Edition

Maintenance

High--high Alarm

PID Loop Operation

Monitor Limit Alarms
Checking this box will allow all of the PV limit alarms to be monitored once the limits
are entered.The PV absolute value alarms are organized as two upper and two
lower alarms. The alarm status is false as long as the PV value remains in the region
between the upper and lower alarms, as shown below. The alarms nearest the safe
zone are named High Alarm and Low Alarm. If the loop loses control, the PV will
cross one of these thresholds first. Therefore, you can program the appropriate
alarm threshold values in the loop table locations shown below to the right. The data
format is the same as the PV and SP (12--bit or 15--bit). The threshold values for
these alarms should be set to give an operator an early warning if the process loses
control.

8--36

PID Loop Operation
If the process remains out of control for some time, the PV will eventually cross one
of the outer alarm thresholds, named High-high alarm and Low-low alarm. Their
threshold values are programmed using the loop table registers listed above. A
High-high or Low-low alarm indicates a serious condition exists, and needs the
immediate attention of the operator.
The PV Absolute Value Alarms are
reported in the four bits in the PID Mode
and Alarm Status word in the loop table, as
shown to the right. We highly recommend
using ladder logic to monitor these bits.
The bit-of-word instructions make this
easy to do. Additionally, you can monitor
PID alarms using DirectSOFT.
Red Deviation Alarm
Yellow Deviation Alarm

Yellow Deviation Alarm

Maintenance
and Troubleshooting

PID Loop Operation

Red Deviation Alarm

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

High-high Alarm
High Alarm
Low Alarm
Low-low Alarm

Red
Yellow
Green

SP

PID Mode and Alarm Status V+06

Yellow

Loop Table
V+17

XXXX

Yellow Deviation Alarm

V+20

XXXX

Red Deviation Alarm

Red

The thresholds define zones, which fluctuate with the SP value. The green zone
which surrounds the SP value represents a safe (no alarm) condition. The yellow
zones lie just outside the green zone, and the red zones are just beyond those.
The PV Deviation Alarms are reported in
the two bits in the PID Mode and Alarm
Status word in the loop table, as shown to
the right. We highly recommend using
ladder logic to monitor these bits. The
bit-of-word instructions make this easy to
do. Additionally, you can monitor PID
alarms using DirectSOFT.

PID Mode and Alarm Status V+06
Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Red Deviation
Yellow Deviation

The PV Deviation Alarm can be independently enabled and disabled from the other
PV alarms, using bit 13 of the PID Mode 1 Setting V+00 word.
Remember, the alarm hysteresis feature works in conjunction with both the deviation
and absolute value alarms, and is discussed at the end of this section.

DL350 User Manual, 2nd Edition

PID Loop Operation

8--37

PV Rate--of--Change Alarm
An excellent way to get an early warning of a process fault is to monitor the
rate-of-change of the PV. Most batch processes have large masses and
slowly-changing PV values. A relatively fast-changing PV will result from a broken
signal wire for either the PV or control output, a SP value error, or other causes. If the
operator responds to a PV Rate-of-Change Alarm quickly and effectively, the PV
absolute value will not reach the point where the material in process would be ruined.
The DL350 loop controller provides a programmable PV Rate-of-Change Alarm, as
shown below. The rate-of-change is specified in PV units change per loop sample
time. This value is programmed into the loop table location V+21.
Loop Table
PV slope OK

PV slope excessive

V+21

XXXX

PV Rate-of-Change Alarm

PV
PID Mode and Alarm Status V+06

rate-of-change alarm
Sample time

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

Sample time

As an example, suppose the PV is temperature for our process, and we want an
alarm when the temperature changes faster than 15 degrees/minute. We must know
PV counts per degree and the loop sample rate. Then, suppose the PV value (in
V+03 location) represents 10 counts per degree, and the loop sample rate is 2
seconds. We will use the formula below to convert our engineering units to
counts/sample period:
Alarm Rate-of-Change =

15 degrees
1 minute

X

10 counts / degree
30 loop samples / min.

=

150
30

=

PID Loop Operation

PV Rate of
Change Alarm

5 counts / sample period

DL350 User Manual, 2nd Edition

Maintenance

From the calculation result, we would program the value “5” in the loop table for the
rate-of-change. The PV Rate-of-Change Alarm can be independently enabled and
disabled from the other PV alarms, using bit 14 of the PID Mode 1 Setting V+00 word.
The alarm hysteresis feature (discussed next) does not affect the Rate-of-Change
Alarm.

8--38

PID Loop Operation
PV Alarm Hysteresis
The PV Absolute Value Alarm and PV Deviation Alarm are programmed using
threshold values. When the absolute value or deviation exceeds the threshold, the
alarm status becomes true. Real-world PV signals have some noise on them, which
can cause some fluctuation in the PV value in the CPU. As the PV value crosses an
alarm threshold, its fluctuations cause the alarm to be intermittent and annoy
process operators. The solution is to use the PV Alarm Hysteresis feature.
The PV Alarm Hysteresis amount is programmable from 1 to 200 (binary/decimal).
When using the PV Deviation Alarm, the programmed hysteresis amount must be
less than the programmed deviation amount. The figure below shows how the
hysteresis is applied when the PV value goes past a threshold and descends back
through it.
Alarm threshold
Hysteresis
Loop Table

PV

V+22

XXXX

PV Alarm Hysteresis

Maintenance
and Troubleshooting

PID Loop Operation

Alarm 1
0

The hysteresis amount is applied after the threshold is crossed, and toward the safe
zone. In this way, the alarm activates immediately above the programmed threshold
value. It delays turning off until the PV value has returned through the threshold by
the hysteresis amount.
Alarm Programming Error
The PV Alarm threshold values must have
certain mathematical relationships to be
valid. The requirements are listed below. If
not met, the Alarm Programming Error bit
will be set, as indicated to the right.

PID Mode and Alarm Status V+06
Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Alarm Programming Error

PV Absolute Alarm value requirements:
Low-low < Low < High < High-high
S PV Deviation Alarm requirements:
Yellow < Red
Loop Calculation Overflow/Underflow Error
S

This error occurs whenever the output
reaches it’s upper or lower limit and the PV
does not reach the setpoint. A typical
example might be when a valve is stuck,
the output is at it’s limit, but the PV has not
reached setpoint.

PID Mode and Alarm Status V+06
Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Loop Calculation
Overflow/Underflow Error

NOTE: Overflow/Underflow can be alarmed in PID View. The optional C--more
operator interface panel (see the automationdirect.com website) can also be setup
to read these error bits using the PID Faceplate templates.

DL350 User Manual, 2nd Edition

PID Loop Operation

8--39

Ramp/Soak
R/S (Ramp/Soak) is the last dialog available in the PID setup. The basic PID does
not require any entries to be made in order to operate the PID loop. Ramp/Soak will
be discussed in another section in this chapter.

PID Loop Operation

Complete the PID Setup
Once you have filled in the necessary information for the basic PID setup, the
configuration should be saved. The icons on the Setup PID dialog will allow you to
save the configuration to the PLC and to disk. The save to icons have the arrow
pointing to the PLC and disk. The read from icons have the arrows pointing away
from the PLC and disk.
An optional feature is available with the Doc tab in the Setup PID window. You enter a
name and description for the loop. This is useful if there are more than one PID loop
in your application.

Maintenance

NOTE: It is good practice to save your project after setting up the PID loop by
selecting File from the menu toolbar, then Save project > to disk. In addition to
saving your entire project, all the PID parameters are also saved.

DL350 User Manual, 2nd Edition

8--40

PID Loop Operation

PID Loop Tuning

Maintenance
and Troubleshooting

PID Loop Operation

Once you have set up a PID loop, it must be tuned in order for it to work. The goal of
loop tuning is to adjust the loop gains so the loop has optimal performance in
dynamic conditions. The quality of a loop’s performance may generally be judged by
how well the PV follows the SP after a SP step change. It is important to keep in mind
that understanding the process is fundamental to getting a well designed control
loop. Sensors must be in appropriate locations and valves must be sized correctly
with appropriate trim. PID control does not have typical values. There isn’t one
control process that is identical to another.
Manual Tuning vs. Auto Tuning
You may enter the PID gain values to tune your loops (manual tuning), or you can
rely on the PID processing “engine“ in the CPU to automatically calculate the gain
values (auto tuning). Most experienced process engineers will have a favorite
method; the DL350 will accommodate either preference. The use of auto tuning can
eliminate much of the trial--and--error of the manual tuning approach, especially if
you do not have a lot of loop tuning experience. However, performing the auto tuning
procedure will get the gains close to optimal values, but additional manual tuning can
get the gain values to their optimal values.
WARNING: Only authorized personnel fully familiar with all aspects of the
process should make changes that affect the loop tuning constants. Using the
loop auto tune procedures will affect the process, including inducing large
changes in the control output value. Make sure you thoroughly consider the
impact of any changes to minimize the risk of injury to personnel or damage to
equipment. The auto tune in the DL350 is not intended to be used as a
replacement for your process knowledge.
Open--Loop Test

Whether you use manual or auto tuning, it is very important to verify basic
characteristics of a newly--installed process before attempting to tune it. With the
loop in Manual Mode, verify the following items for each new loop.
S Setpoint y verify that the SP source can generate a setpoint. Put the
PLC in Run Mode and leave the loop in Manual Mode, then monitor the
loop table location V+02 to see the SP value(s). (If you are using the
ramp/soak generator, test it now).
S Process Variable y verify that the PV value is an accurate
measurement, and the PV data arriving in the loop table location V+03
is correct. If the PV signal is very noisy, consider filtering the input either
through hardware (RC low--pass filter), or using the filter in this chapter.
S Control Output y if it is safe to do so, manually change the output a
small amount (perhaps 10%) and observe its affect on the process
variable. Verify the process is direct--acting or reverse acting, and check
the setting for the control output (inverted or non--inverted). Make sure
the control output upper and lower limits are not equal to each other.
S Sample Rate y while operating open--loop, this is a good time to find
the ideal sample rate (see Configure the PID Loop beginning on page
8--25). However, if you are going to use auto tuning, the auto tuning
procedure will automatically calculate the sample rate in addition to the
PID gains.

DL350 User Manual, 2nd Edition

PID Loop Operation
Manual Tuning
Procedure

8--41

It is not necessary to try to obtain the best values for the P, I and D parameters in the
PID loop by trial and error. Following is a typical procedure for tuning a temperature
control loop which you may use to tune your loop.
Monitor the values of SP, PV and CV with a loop trending instrument or use the PID
View feature in DirectSOFT (see page 8--49).
NOTE: We recommend using the PID View to select manual for the vertical scale
feature, for both SP/PV area and Bias/Control Output areas. The auto scaling
feature would otherwise change the vertical scale on the process parameters and
add confusion to the loop tuning process.
S

S
S
S

S

S

Increase the Proportional gain in small increments, such as 4, 6, 7, etc.
until the control output response begins to oscillate. This is the
Proportional gain that should be recorded.

DL350 User Manual, 2nd Edition

Maintenance

The response may take awhile, but you will see that there isn’t any oscillation. This
response is not desirable since it takes a long time to correct the error; also, there is a
difference between the SP and the PV.
S Increase the Proportional gain, for example to 2.0. The control output
will be greater and the response time will be quicker. The trend should
resemble the figure below.

PID Loop Operation

Adjust the gains so the Proportional Gain = 0.5 or 1.0 (1.0 is a good
value based on experience), Integral Gain = 9999 (this basically
eliminates reset) and Derivative Gain = 0000. This disables the
integrator and derivative terms, and provides some proportional gain.
Check the bias value in the PID View and set it to zero.
Set the SP to a value equal to 50% of the full range.
Now, select Auto Mode. If the loop will not stay in Auto Mode, check the
troubleshooting tips at the end of this chapter. Allow the PV to stabilize
around the 50% point of the range.
Change the SP to the 60% point of the range.

8--42

PID Loop Operation

S
S

PID Loop Operation

S

Maintenance
and Troubleshooting

S

S

Now, return the Proportional gain to the stable response, for example,
9.7. The error, SP--PV, should be small, but not at zero.
Next, add a small amount of Integral gain (reset) in order for the error to
reach zero. Begin by using 80 seconds (adjust in minutes if necessary).
The error should get smaller.
Set the Integral gain to a lower value, such as 50 for a different
response. If there is no response, continue to decrease the reset value
until the response becomes unstable. See the figure below.

For discussion, let us say that a reset value of 35 made the control
output unstable. Return the reset value to the stable value, such as 38.
Be careful with this adjustment since the oscillation can destroy the
process.
The control output response should be optimal now, without a Derivative
gain. The example recorded values are: Proportional gain = 9.7 and
Integral gain = 38 seconds. Note that the error has been minimized.

DL350 User Manual, 2nd Edition

PID Loop Operation

8--43

The foregone method is the most common method used to tune a PID loop.
Derivative gain is almost never used in a temperature control loop. This method can
also be used for other control loops, but other parameters may need to be added for
a stable control output.
Test your loop for a high PV of 80% and again for a low PV of 20%, and correct the
values if necessary. Small adjustments of the parameters can make the control
output more precise or more unstable. It is sometimes acceptable to have a small
overshoot to make the control output react quicker.
The derivative gain can be helpful for those control loops which are not controlling
temperature. For these loops, try adding a value of 0.5 for the derivative gain and see
if this improves the control output. If there is little or no response, increase the
derivative by increments of 0.5 until there is an improvement to the output trend.
Recall that the derivative gain reacts with a rate of change of the error.

PID Loop Operation
Maintenance

DL350 User Manual, 2nd Edition

8--44

PID Loop Operation

Auto Tuning
Procedure

The auto tuning feature for the DL350 loop controller will only run once each time it is
enabled in the PID table. Therefore, auto tuning does not run continuously during
operation (this would be adaptive control). Whenever there is a substantial change
in loop dynamics, such as mass of process, size of actuator, etc., the tuning process
will need to be repeated in order to derive new gains required for optimal control.

Once the physical loop components are connected to the PLC, auto tuning can be
initiated within DirectSOFT (see the DirectSOFT Programming Software Manual),
and it can be used to establish initial PID parameter values. Auto tuning is the best
“guess“ the CPU can do after some trial tests.
The loop controller offers both closed--loop and open--loop methods. The following
sections describe how to use the auto tuning feature, and what occurs in open and
closed--loop auto tuning.
The controls for the auto tuning function use three bits in the PID Mode 2 word V+01,
as shown below. DirectSOFT will manipulate these bits automatically when you use
the auto tune feature within DirectSOFT. Or, you may have your ladder logic access
these bits directly for allowing control from another source such as a dedicated
operator interface. The individual control bits allow you to start the auto tune
procedure, select PID or PI tuning and select closed--loop or open--loop tuning. If
you select PI tuning, the auto tune procedure leaves the derivative gain at 0. The
Loop Mode and Alarm Status word V+06 reports the auto tune status as shown. Bit
12 will be on (1) during the auto tune cycle, automatically returning to off (0) when
done.

Maintenance
and Troubleshooting

PID Loop Operation

WARNING: Only authorized personnel fully familiar with all aspects of the
process should make changes that affect the loop tuning constants. Using the
loop auto tuning procedures will affect the process, including inducing large
changes in the control output value. Make sure you thoroughly consider the
impact of any changes to minimize the risk of injury to personnel or damage to
equipment. The auto tune in the DL350 is not intended to be used as a
replacement for your process knowledge.

DL350 User Manual, 2nd Edition

PID Loop Operation

8--45

Open--Loop Auto Tuning
During an open--loop auto tuning cycle, the loop controller operates as shown in the
diagram below. Before starting this procedure, place the loop in Manual Mode and
ensure the PV and control output values are in the middle of their ranges (away from
the end points).

NOTE: In theory, the SP value does not matter in this case, because the loop is not
closed. However, the requirement of the firmware is that the SP value must be more
than 5% of the PV range from the actual PV before starting the auto tune cycle (for
the DL350, 12 bit PV should be 205 counts or more below the SP for forward--acting
loops, or 205 counts or more above the SP for reverse--acting loops).

Maintenance

DL350 User Manual, 2nd Edition

PID Loop Operation

When auto tuning, the loop controller induces a step change on the output and
simply observes the response of the PV. From the PV response, the auto tune
function calculates the gains and the sample time. It automatically places the results
in the corresponding registers in the loop table.
The following timing diagram shows the events which occur in the open--loop auto
tuning cycle. The auto tune function takes control of the control output and induces a
10%--of--span step change. If the PV change which the loop controller observes is
less than 2%, then the step change on the output is increased to 20%--of--span.
S
When Auto Tune starts, step change output m = 10%
S
During Auto Tune, the controller output reached the full scale positive
limit. Auto Tune stopped and the Auto Tune Error bit in the Alarm word
bit turned on.
S
When PV change is under 2%, output is changed at 20%. Open Loop
Auto Tune Cycle Wave: Step Response Method.

8--46

PID Loop Operation
When the loop tuning observations are complete, the loop controller computes Rr
(maximum slope in %/sec.) and Lr (dead time in sec). The auto tune function
computes the gains according to the Zeigler--Nichols equations, shown below:
PID Tuning

SP Range

P = 1.2* nm/LrRr

P = 0.9* nm/LrRr

I = 2.0* Lr

I = 3.33* Lr

D = 0.5* Lr

D=0

Sample Rate = 0.056* Lr

Sample Rate = 0.12* Lr

Maintenance
and Troubleshooting

PID Loop Operation

nm = Output step change (10% = 0.1, 20% = 0.2)

We highly recommend using DirectSOFT for the auto tuning interface. The duration
of each auto tuning cycle will depend on the mass of the process. A slowly--changing
PV will result in a longer auto tune cycle time. When the auto tuning is complete, the
proportional, integral, and derivative gain values are automatically updated in loop
table locations V+10, V+11, and V+12 respectively. The sample time in V+07 is also
updated automatically. You can test the validity of the values the auto tuning
procedure yields by measuring the closed--loop response of the PV to a step change
in the output. The instructions on how to do this are in the section on the manual
tuning procedure (located prior to this auto tuning section).
Closed--Loop Auto Tuning
During a closed--loop auto tuning cycle the loop controller operates as shown in the
diagram below.

When auto tuning, the loop controller imposes a square wave on the output. Each
transition of the output occurs when the PV value crosses over/under the SP value.
Therefore, the frequency of the limit cycle is roughly proportional to the mass of the
process. From the PV response, the auto tune function calculates the gains and the
sample time. It automatically places the results in the corresponding registers in the
loop table.

DL350 User Manual, 2nd Edition

PID Loop Operation

8--47

The following timing diagram shows the events which occur in the closed--loop auto
tuning cycle. The auto tune function examines the direction of the offset of the PV
from the SP. The auto tune function then takes control of the control output and
induces a full--span step change in the opposite direction. Each time the sign of the
error (SP y PV) changes, the output changes full--span in the opposite direction.
This proceeds through three full cycles.

Kpc = 4M / (π £ X0)

PID Loop Operation

*Mmax = Output Value upper limit setting. Mmin = Output Value lower limit setting.
* This example is direct--acting.
When set to reverse--acting, the output will be inverted. When the loop tuning
observations are complete, the loop controller computes To (bump period) and Xo
(amplitude of the PV). Then it uses these values to compute Kpc (sensitive limit) and
Tpc (period limit). From these values, the loop controller auto tune function
computes the PID gains and the sample rate according to the Zeigler--Nichols
equations shown below:
Tpc = 0

M = Amplitude of output
PI Tuning

P = 0.45 £ Kpc

P = 0.30 £ Kpc

I = 0.60 £ Tpc

I = 1.00 £ Tpc

D = 0.10 £ Tpc

D=0

Sample Rate = 0.014 £ Tpc

Sample Rate = 0.03 £ Tpc

Auto Tuning Error
In open--loop tuning, if the auto tune error bit (bit 13 of loop Mode/Alarm status word
V+06) is on, please verify the PV and SP values are at least 5% of full scale
difference, as required by the auto tune function.
NOTE: If your PV fluctuates rapidly, you probably need to create a filter in ladder
logic (see example on page 8--54).

DL350 User Manual, 2nd Edition

Maintenance

PID Tuning

8--48

PID Loop Operation

Maintenance
and Troubleshooting

PID Loop Operation

Use DirectSOFT 5
Data View with PID
View
Open a New Data
View Window

Open PID View

The Data View window is a very useful tool which can be used to help tune your PID
loop. You can compare the variables in the PID View with the actual values in the
V--memory location with Data View.
A new Data View window can be opened in any one of three ways; the menu bar
Debug > Data View > New, the keyboard shortcut Ctrl + Shift + F3 or the Data
button on the Status toolbar. By default, the Data View window is assigned Data1 as
the default name. This name can be changed for the current view using the Options
dialog. The following diagram is an example of a newly opened Data View. The
window will open next to the Ladder View by default.

The Data View window can be used just as it is shown above for troubleshooting your
PID logic, and it can be most useful when tuning the PID loop.
The PID View can only be opened after a loop has been setup in your ladder program
and the programming computer is connected to the PLC (online). PID View is
opened by selecting it from the View submenu on the Menu bar, View > PID View.
The PID View can also be opened by clicking on the PID View button from the PLC
Setup toolbar if it is in view.

DL350 User Manual, 2nd Edition

PID Loop Operation

8--49

The PID View will open and appear over the Ladder View which can be brought into
view by clicking on it’s tab. When using the Data View and the PID View together,
each view can be sized for better use as shown in the below diagram.

PID Loop Operation

The two views are now ready to be used to tune your loop. You will be able to see
where the PID values have been set and see the process that it is controlling.
The diagram on the following page illustrates how the to use the views to see the
current SP, PV and Output values, along with the other PID addresses. Refer to the
Loop Table Definitions page 8--21 for details of each word in the table. This is also a
good data type reference for each word in the table.

Maintenance

DL350 User Manual, 2nd Edition

8--50

PID Loop Operation

Scale the time axis of the viewing

The trend can be cleared and

window by using this input box.

restarted from the left at anytime.
Process Variable and
Setpoint trends are
color coded.

The loop name area
turns red whenever there is an
overflow error.

With both windows positioned in this manner, you are able to see where the PID
values have been set and see the process that it is controlling.

Maintenance
and Troubleshooting

PID Loop Operation

P
I
D

DL350 User Manual, 2nd Edition

PID Loop Operation

8--51

Using Other PID Features
How to Change
Loop Modes

The first three bits of the PID Mode 1 word V+00
requests the operating mode of the corresponding
loop. Note: these bits are mode change requests,
not commands (certain conditions can prohibit a
particular mode change -- see next page).

PID Mode 1 Setting V+00
Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Manual
Cascade
Automatic

The normal state of these mode request bits is “000”. To request a mode change, you
must SET the corresponding bit to a “1”, for one scan. The PID loop controller
automatically resets the bits back to “000” after it reads the mode change request.
Methods of requesting mode changes are:
S DirectSOFT’s PID View -- this is the easiest method. Use the drop--down
menu, or click on one of the radio buttons if using older DirectSOFT version,
and the appropriate bit will be set.

S

HPP -- Use Word Status (WD ST) to monitor the contents of V+00, which will be
a 4-digit BCD/hex value. You must calculate and enter a new value for V+00
that ORs the correct mode bit with its current value.

S

Ladder program-- ladder logic can request any loop mode when the PLC is in
Run Mode. This will be necessary after application startup.

S

X0

Go to Auto Mode
B2000.1
SET

Operator panel -- interface the operator’s panel to ladder logic using standard
methods, then use the technique above to set the mode bit.

Input from Operator

Control Output
from another loop

Manual

Cascade

Control Output
Setpoint
+

Normal Source
Auto/Manual

Σ
--

Error
Term

Loop
Calculation

Auto/Cascade

Process Variable
Mode Select
PID Mode
Control

PID Mode 1 Setting V+00
Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Mode Request

Cascade

Automatic Manual

Loop Mode and Alarm Status V+06
Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Mode Monitoring

Cascade
Manual
Automatic

DL350 User Manual, 2nd Edition

Maintenance

Since we can only request mode changes, the PID loop controller decides when to
permit mode changes and provides the loop mode status. It reports the current mode
on bits 0, 1, and 2 of the Loop Mode and Alarm Status word, location V+06 in the loop
table. The parallel request / monitoring functions are shown in the figure below. The
figure also shows the mode-dependent two possible SP sources, and the two
possible Control Output sources.

PID Loop Operation

Use the rung shown to the right to SET the
mode bit on (do not use an out coil). On a 0--1
transition of X0, the rung sets the Auto bit = 1.
The loop controller resets it.

8--52

PID Loop Operation

Operator Panel
Control of
PID Modes

Since the modes Manual, Auto, and Cascade are the most fundamental and
important PID loop controls, you may want to “hard-wire” mode control switches to
an operator’s panel. Most applications will need only Manual and Auto selections
(Cascade is used in a few advanced applications). Remember that mode controls
are really mode request bits, and the actual loop mode is indicated elsewhere.
The following figure shows an operator’s panel using momentary push-buttons to
request PID mode changes. The panel’s mode indicators do not connect to the
switches, but interface to the corresponding data locations.
Operator’s Panel
Manual
Auto

Mode Request
PID Mode 1 Setting V+00

Maintenance
and Troubleshooting

PID Loop Operation

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

Cascade

Mode Monitoring

Loop Mode and Alarm Status V+06
Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

PLC Modes’ Effect
on Loop Modes

The modes of the PLC (Program, Run) interact with the loops as a group. The
following summarizes this interaction:
S When the PLC is in Program Mode, all loops are placed in Manual Mode
and no loop calculations occur. However, note that output modules
(including analog outputs) turn off in PLC Program Mode. So, actual
manual control is not possible when the PLC is in Program Mode.
S The only time the CPU will allow a loop mode change is during PLC run
Mode operation. As such, the CPU records the modes of all 16 loops as
the desired mode of operation. If power failure and restoration occurs
during PLC run Mode, the CPU returns all loops to their prior mode
(which could be Manual, Auto, or Cascade).
S On a Program-to-Run mode transition, the CPU forces each loop to
return to its prior mode recorded during the last PLC Run Mode.
S You can add and configure new loops only when the PLC is in Program
Mode. New loops automatically begin in Manual Mode.

Loop Mode
Override

In normal conditions and during PLC Run Mode operation, the mode of a loop is
determined by the request to V+00, bits 0, 1, and 2. However, a condition exists
which will prevent a requested mode change from occurring:
S A major loop of a cascaded pair of loops cannot go from Manual to Auto
until its minor loop is in Cascade mode.
In other situations, the PID loop controller will automatically change the mode of the
loop to ensure safe operation:
S A loop which develops an error condition automatically goes to Manual.
S If the minor loop of a cascaded pair of loops leaves Cascade Mode for
any reason, its major loop automatically goes to Manual Mode.

DL350 User Manual, 2nd Edition

PID Loop Operation

8--53

Creating an Analog A similar algorithm can be built in your ladder program. Your analog inputs can be
filtered effectively using either method. The following programming example
Filter in Ladder
describes the ladder logic you will need. Be sure to change the example memory
Logic
locations to those that fit your application.
Filtering can induce a 1 part in 1000 error in your output because of “rounding”.
Because of the rounding error, you should not use zero or full scale as alarm points.
Additionally, the smaller the filter constant the greater the smoothing effect, but the
slower the response time. Be certain that a slower response is acceptable in
controlling your process.
SP1

LD
V2000

BIN

BTOR

Converts the BCD value in the accumulator
to binary. This instruction is not needed if the
analog value is originally brought in as a
binary number.
Converts the binary value in the accumulator
to a real number.
Subtracts the real number stored in location
V1400 from the real number in the
accumulator, and stores the result in the
accumulator. V1400 is the designated
workspace in this example.

MULR
R0.2

Multiplies the real number in the
accumulator by 0.2 (the filter factor),
and stores the result in the
accumulator. This is the filtered value.

ADDR
V1400

Adds the real number stored in
location V1400 to the real number
filtered value in the accumulator, and
stores the result in the accumulator.

OUTD
V1400

BCD

OUT
V1402

Copies the value in the accumulator
to location V1400.

Converts the real number in the
accumulator to a binary value, and
stores the result in the accumulator.
Converts the binary value in the accumulator
to a BCD number. Note: the BCD instruction
is not needed for PID loop PV (loop PV is a
binary number).
Loads the BCD number filtered value from
the accumulator into location V1402 to use
in your application or PID loop.

DL350 User Manual, 2nd Edition

Maintenance

RTOB

PID Loop Operation

SUBR
V1400

Loads the analog signal, which is a BCD value
and has been loaded from V-memory location
V2000, into the accumulator. Contact SP1 is
always on.

8--54

PID Loop Operation

Use the
DirectSOFT 5 Filter
Intelligent Box
Instruction

For those who are using DirectSOFT 5, you have the opportunity to use the Analog
Helper Intelligent Boxes (IBox) instructions. Following is one example which is
available. IBox instruction IB--402, Filter Over Time in Binary (decimal) will perform a
first--order filter on the Raw Data on a defined time interval. The equation is,

Maintenance
and Troubleshooting

PID Loop Operation

New = Old + [(Raw -- Old)/FDC] where,
New = New Filtered Value
Old = Old Filered Value
FDC = Filter Divisor Constant
Raw = Raw Data
The Filter Divisor Constant is an integer in the range K1 to K100, such that
if it equaled K1, then no filtering is performed.

FilterB Example

The rate at which the calculation is performed is specified by time in hundreths of a
second (0.01 seconds) as the Filter Freq Time parameter. Note that this Timer
instruction is embedded in the IBox and must NOT be used any other place in your
program. Power flow controls whether the calculation is enabled. If it is disabled, the
Filter Value is not updated. On the first scan from Program to Run mode, the Filter
Value is initialized to 0 to give the calculation a consistent starting point.
Since the following binary filter example does not write directly to the PID PV
location, the BCD filter could be used with BCD values and then converted to BIN.
Following is an example of how the FilterB IBox is used in a ladder program. The
instruction is used to filter a binary value that is in V2000. Timer (T1) is set to 0.5
seconds, the rate at which the filter calculation will be performed. The filter constant
is set to 3.0. A larger value will increase the smoothing effect of the filter. A value of 1
results with no filtering. The filtered value will be placed in V2100.

See DL350 IBox Instructions PLC User Manual Supplement for more detailed
information.

DL350 User Manual, 2nd Edition

PID Loop Operation

8--55

Ramp/Soak Generator
Introduction

Our discussion of basic loop operation noted the setpoint for a loop will be generated
in various ways, depending on the loop operating mode and programming
preferences. In the figure below, the ramp/soak generator is one of the ways the SP
may be generated. It is the responsibility of your ladder program to ensure only one
source attempts to write the SP value at V+02 at any particular time.

If the SP for your process rarely changes or can tolerate step changes, you probably
will not need to use the ramp/soak generator. However, some processes require
precisely--controlled SP value changes. The ramp/soak generator can greatly
reduce the amount of programming required for these applications.

Maintenance

DL350 User Manual, 2nd Edition

PID Loop Operation

The terms “ramp” and “soak” have special
meanings in the process control industry,
and refer to desired setpoint (SP) values in
temperature control applications. In the figure to the right, the setpoint increases during
the ramp segment. It remains steady at one
value during the soak segment.
Complex SP profiles can be generated by specifying a series of ramp/soak
segments. The ramp segments are specified in SP units per second. The soak time
is also programmable in minutes.
It is instructive to view the ramp/soak generator as a dedicated function to generate
SP values, as shown below. It has two categories of inputs which determine the SP
values generated. The ramp/soak table must be programmed in advance,
containing the values that will define the ramp/soak profile. The loop reads from the
table during each PID calculation as necessary. The ramp/soak controls are bits in a
special loop table word that control the real--time start/stop functionality of the
ramp/soak generator. The ladder program can monitor the status of the ramp soak
profile (current ramp/segment number).

8--56

PID Loop Operation

Maintenance
and Troubleshooting

PID Loop Operation

Now that we have described the general ramp/soak generator operation, we list its
specific features:
S
Each loop has its own ramp/soak generator (use is optional).
S
You may specify up to eight ramp/soak steps (16 segments).
S
The ramp soak generator can run anytime the PLC is in Run mode. Its
operation is independent of the loop mode (Manual or Auto).
S
Ramp/soak real--time controls include Start, Hold, Resume, and Jog.
S
Ramp/soak monitoring includes Profile Complete, Soak Deviation (SP
minus PV), and current ramp/soak step number.
The following figure shows a SP profile consisting of ramp/soak segment pairs. The
segments are individually numbered as steps from 1 to 16. The slope of each of the
ramp may be either increasing or decreasing. The ramp/soak generator
automatically knows whether to increase or decrease the SP based on the relative
values of a ramp’s end points. These values come from the ramp/soak table.

Ramp/Soak Table

The parameters which define the ramp/soak
profile for a loop are in a ramp/soak table.
Each loop may have its own ramp/soak table,
but it is optional. Recall the Loop Parameter
table consists a 32--word block of memory for
each loop, and together they occupy one contiguous memory area. However, the ramp/soak
table for a loop is individually located, because
it is optional for each loop. An address pointer
in location V+34 in loop table specifies the
starting location of the ramp/soak table.
In the example to the right, the loop parameter
tables for Loop #1 and #2 occupy contiguous
32--word blocks as shown. Each has a pointer
to its ramp/soak table, independently located
elsewhere in user V--memory. Of course, you
may locate all the tables in one group, as long
as they do not overlap.

DL350 User Manual, 2nd Edition

PID Loop Operation

8--57

The parameters in the ramp/soak table must be user--defined. the most convenient
way is to use DirectSOFT, which features a special editor for this table. Four
parameters are required to define a ramp and soak segment pair, as pictured below.
S Ramp End Value y specifies the destination SP value for the end of
the ramp. Use the same data format for this number as you use for the
SP. It may be above or below the beginning SP value, so the slope
could be up or down (we don’t have to know the starting SP value for
ramp #1).
S Ramp Slope y specifies the SP increase in counts (units) per second.
It is a BCD number from 00.00 to 99.99 (uses implied decimal point).
S Soak Duration y specifies the time for the soak segment in minutes,
ranging from 000.1 to 999.9 minutes in BCD (implied decimal point).
S Soak PV Deviation y (optional) specifies an allowable PV deviation
above and below the SP value during the soak period. A PV deviation
alarm status bit is generated by the ramp/soak generator.
Ramp End
SP Value

Soak
duration

segment becomes active

Ramp/Soak Table
V+00

XXXX

Ramp End SP Value

V+01

XXXX

Ramp Slope

V+02

XXXX

Soak Duration

V+03

XXXX

Soak PV Deviation

The ramp segment becomes active when the previous soak segment ends. If the
ramp is the first segment, it becomes active when the ramp/soak generator is
started, and automatically assumes the present SP as the starting SP.
Step

Addr
Offset

Step

+ 00
+ 01

1
1

Ramp End SP Value
Ramp Slope

+ 20
+ 21

9
9

Ramp End SP Value
Ramp Slope

+ 02

2

Soak Duration

+ 22

10

Soak Duration

+ 03

2

Soak PV Deviation

+ 23

10

Soak PV Deviation

+ 04

3

Ramp End SP Value

+ 24

11

Ramp End SP Value

+ 05

3

Ramp Slope

+ 25

11

Ramp Slope

+ 06

4

Soak Duration

+ 26

12

Soak Duration

+ 07

4

Soak PV Deviation

+ 27

12

Soak PV Deviation

+ 10

5

Ramp End SP Value

+ 30

13

Ramp End SP Value

+ 11

5

Ramp Slope

+ 31

13

Ramp Slope

+ 12

6

Soak Duration

+ 32

14

Soak Duration

+ 13

6

Soak PV Deviation

+ 33

14

Soak PV Deviation

+ 14

7

Ramp End SP Value

+ 34

15

Ramp End SP Value

+ 15

7

Ramp Slope

+ 35

15

Ramp Slope

+ 16

8

Soak Duration

+ 36

16

Soak Duration

+ 17

8

Soak PV Deviation

+ 37

16

Soak PV Deviation

Description

Description

DL350 User Manual, 2nd Edition

Maintenance

Addr
Offset

PID Loop Operation

SP

Slope

Soak PV
deviation

8--58

PID Loop Operation

Ramp/Soak Table
Flags

Many applications do not require all 16 R/S steps. Use all zeros in the table for
unused steps. The R/S generator ends the profile when it finds ramp slope = 0.
The individual bit definitions of the Ramp/Soak Table Flag (Addr+33) word is listed in
the following table.
Bit

PID Loop Operation
Maintenance
and Troubleshooting

Ramp/Soak
Controls

Read/Write

Bit=0

Bit=1

0
1

Start Ramp/Soak Profile
Hold Ramp/Soak Profile

write
write

---

0¤1 Start
0¤1 Hold

2

Resume Ramp/soak Profile

write

--

3

Jog Ramp/Soak Profile

write

--

0¤1
Resume
0¤1 Jog

4

Ramp/Soak Profile Complete

read

--

Complete

5

PV Input Ramp/Soak Deviation

read

Off

On

6

Ramp/Soak Profile in Hold

read

Off

On

7

Reserved

read

Off

On

Current Step in R/S Profile

read

8--15

Ramp/Soak
Generator Enable

Ramp/Soak Flag Bit Description

decode as byte (hex)

The main enable control to permit ramp/soak
generation of the SP value is accomplished with
bits 11 in the PID Mode 1 Setting V+00 word, as
shown to the right. The other ramp/soak controls
in V+33 shown in the table above will not operate unless this bit=1 during the entire ramp/soak
process.
The four main controls for the ramp/soak generator
are in bits 0 to 3 of the ramp/soak settings word in
the loop parameter table. DirectSOFT controls
these bits directly from the ramp/soak settings dialog. However, you must use ladder logic to control
these bits during program execution. We recommend using the bit--of--word instructions.
Ladder logic must set a control bit to a “1“ to command the corresponding function.
When the loop controller reads the ramp/soak value, it automatically turns off the bit
for you. Therefore, a reset of the bit is not required when the CPU is in Run Mode.
The example program rung to the right shows
how an external switch X0 can turn on and the
PD contact uses the leading edge to set the
proper control bit to start the ramp soak profile.
This uses the Set Bit--of--Word instruction.

DL350 User Manual, 2nd Edition

PID Loop Operation

8--59

The normal state for the ramp/soak control bits is all zeros. Ladder logic must set
only one control bit at a time.
S Start y a 0 to 1 transition will start the ramp soak profile. The CPU
must be in Run Mode, and the loop can be in Manual or Auto Mode. If
the profile is not interrupted by a Hold or Jog command, it finishes
normally.
S Hold y a 0 to 1 transition will stop the ramp/soak profile in its current
state, and the SP value will be frozen.
S Resume y a 0 to 1 transition cause the ramp/soak generator to resume
operation if it is in the hold state. The SP values will resume from their
previous value.
S Jog y a 0 to 1 transition will cause the ramp/soak generator to truncate
the current segment (step), and go to the next segment.
Ramp/Soak Profile
Monitoring

You can monitor the Ramp/Soak profile status
using other bits in the Ramp/Soak Settings
V+33 word, shown to the right.
R/S Profile Complete y =1 when the
last programmed step is done.
S Soak PV Deviation y =1 when the error
(SP--PV) exceeds the specified deviation
in the R/S table.
S R/S Profile in Hold y =1 when the pro
file was active but is now in hold. Ramp/
Soak Settings V+33.
S

The starting address for the ramp/soak table
must be a valid location. If the address points
outside the range of user V--memory, one of
the bits to the right will turn on when the
ramp/soak generator is started. We recommend using DirectSOFT to configure the
ramp/soak table. It automatically range
checks the addresses for you.

Testing Your
It’s a good idea to test your ramp/soak profile before using it to control the process.
Ramp/Soak Profile This is easy to do, because the ramp/soak generator will run even when the loop is in
Manual Mode. Using DirectSOFT’s PID View will be a real time--saver, because it
will draw the profile on--screen for you. Be sure to set the trending timebase slow
enough to display completed ramp--soak segment pairs in the waveform window.

DL350 User Manual, 2nd Edition

Maintenance

Ramp/Soak
Programming
Errors

PID Loop Operation

The number of the current step is available in
the upper 8 bits of the Ramp/Soak Settings
V+33 word. The bits represent a 2--digit hex
number, ranging from 1 to 10. Ladder logic
can monitor these to synchronize other parts
of the program with the ramp/soak profile.
Load this word to the accumulator and shift
right 8 bits, and you have the step number.

8--60

PID Loop Operation

DirectSOFT Ramp/Soak Example
The following following example will step you through the Ramp/Soak setup.

Maintenance
and Troubleshooting

PID Loop Operation

Setup the Profile in The first step is to use Setup in DirectSOFT PID to set the profile of your process.
Open the Setup PID window and select the R/S tab, and then enter the Ramp/Soak
PID Setup
data. Note the V--memory location for the beginning of this profile is V5000, and
V5037 is the end of the range of the profile.

DL350 User Manual, 2nd Edition

PID Loop Operation

8--61

Program the
Refer to the Ramp/Soak Flag Bit Description table on page 8--58 when adding the
Ramp/Soak Control control rungs to your program similar to the ladder rungs below. For the example
below, the PID parameters begin at V7000. The Ramp/Soak bit flags are located at
in Relay Ladder
V7033.

PID Loop Operation
Maintenance

DL350 User Manual, 2nd Edition

8--62

PID Loop Operation

Maintenance
and Troubleshooting

PID Loop Operation

Program the
Refer to the Ramp/Soak Flag Bit Description table on page 8--58 when adding the
Ramp/Soak Control control rungs to your program similar to the ladder rungs below. For the example
below, the PID parameters begin at V7000. The Ramp/Soak bit flags are located at
in Relay Ladder
V7033.

DL350 User Manual, 2nd Edition

PID Loop Operation

8--63

Cascade Control
Introduction

Cascaded loops are an advanced control technique that is superior to individual loop
control in certain situations. As the name implies, cascade means that one loop is
connected to another loop. In addition to Manual (open loop) and Auto (closed loop)
Modes, the DL350 also provides a Cascade Mode.
NOTE: Cascaded loops are an advanced process control technique. Therefore we
recommend their use only for experienced process control engineers.
When a manufacturing process is complex and contains a lag time from control input
to process variable output, even the most perfectly tuned single loop around the
process may yield slow and inaccurate control. It may be that the actuator operates
on one physical property, which eventually affects the process variable, measured
by a different physical property. Identifying the intermediate variable allows us to
divide the process into two parts as shown in the following figure.
PROCESS
Control input

Process A

Intermediate
Variable

Process B

Process
Variable (PV)

Setpoint
+

Loop B
Calculation

Σ
--

Major
Loop

Output B/
Setpoint A
+

Loop A
Calculation

Σ

Output A

Process A
(secondary)

External
Disturbances
Process B
(primary)

-Minor
Loop
PV, Process A
PV, Process B

One of the benefits to cascade control can be seen by examining its response to
external disturbances. Remember that the minor loop is faster acting than the major
loop. Therefore, if a disturbance affects process A in the minor loop, the Loop A PID
calculation can correct the resulting error before the major loop sees the effect.

DL350 User Manual, 2nd Edition

Maintenance

External
Disturbances

PID Loop Operation

The principle of cascaded loops is simply that we add another process loop to more
precisely control the intermediate variable! This separates the source of the control
lag into two parts, as well.
The diagram below shows a cascade control system, showing that it is simply one
loop nested inside another. The inside loop is called the minor loop, and the outside
loop is called the major loop. For overall stability, the minor loop must be the fastest
responding loop of the two. We do have to add the additional sensor to measure the
intermediate variable (PV for process A). Notice that the setpoint for the minor loop is
automatically generated for us, by using the output of the major loop. Once the
cascaded control is programmed and debugged, we only need to deal with the
original setpoint and process variable at the system level. The cascaded loops
behave as one loop, but with improved performance over the previous single-loop
solution.

8--64

PID Loop Operation

Cascaded Loops in In the use of the term “cascaded loops”, we must make an important distinction. Only
the minor loop will actually be in the Cascade Mode. In normal operation, the major
the DL350 CPU
loop must be in Auto Mode. If you have more than two loops cascaded together, the
outer-most (major) loop must be in Auto Mode during normal operation, and all inner
loops in Cascade Mode.
NOTE: Technically, both major and minor loops are “cascaded” in strict process
control terminology. Unfortunately, we are unable to retain this convention when
controlling loop modes. Just remember that all minor loops will be in Cascade Mode,
and only the outer-most (major) loop will be in Auto Mode.
You can cascade together as many loops as necessary on the DL350, and you may
have multiple groups of cascaded loops. For proper operation on cascaded loops
you must use the same data range (12/15 bit) and polar/bipolar settings on the major
and minor loop.
To prepare a loop for Cascade Mode operation as a minor loop, you must program its
remote Setpoint Pointer in its loop parameter table location V+32, as shown below.
The pointer must be the address of the V+05 location (control output) of the major
loop. In Cascade Mode, the minor loop will ignore the its local SP register (V+02),
and read the major loop’s control output as its SP instead.
Major Loop (Auto mode)
Loop Table

PID Loop Operation
Maintenance
and Troubleshooting

Minor Loop (Cascade Mode)
Loop Table

V+02

XXXX

SP

V+02

XXXX

SP

V+03

XXXX

PV

V+03

XXXX

PV

V+05

XXXX

Control Output

V+05

XXXX

Control Output

V+32

XXXX

Remote SP Pointer

When using DirectSOFT’s PID View to watch the SP value of the minor loop,
DirectSOFT automatically reads the major loop’s control output and displays it for
the minor loop’s SP. The minor loop’s normal SP location, V+02, remains
unchanged.
Now, we use the loop parameter arrangement above and draw its equivalent loop
schematic, shown below.
Major loop

Minor Cascaded loop
Cascade

Control Output V+05
Loop
Calculation
Remote SP

Setpoint
+

Local SP
V+02

Auto/Manual

Σ
--

Loop
Calculation

Control
Output

Process Variable

Remember that a major loop goes to Manual Mode automatically if its minor loop is
taken out of Cascade Mode.

DL350 User Manual, 2nd Edition

PID Loop Operation
Tuning Cascaded
Loops

8--65

When tuning cascaded loops, you will need to de--couple the cascade relationship
and tune the minor loop, using one of the loop tuning procedures previously covered.
Once this has been done, have the minor loop in cascade mode and auto tune the
major loop (see Step 4).
1. If you are not using auto tuning, then find the loop sample rate for the minor
loop, using the method discussed earlier in this chapter. Then set the sample
rate of the major loop slower than the minor loop by a factor of 10. Use this as a
starting point.
2. Tune the minor loop first. Leave the major loop in Manual Mode, and you will
need to generate SP changes for the minor loop manually as described in the
loop tuning procedure.
3. Verify the minor loop gives a critically--damped response to a 10% SP change
while in Auto Mode. Then we are finished tuning the minor loop.
4. In this step, you will need to get the minor loop in Cascade Mode, and then the
Major loop in Auto Mode. We will be tuning the major loop with the minor loop
treated as a series component its overall process. Therefore, do not go back and
tune the minor loop again while tuning the major loop.
5. Tune the major loop, following the standard loop tuning procedure in this
section. The response of the major loop PV is actually the overall response of the
cascaded loops together.
PID Loop Operation
Maintenance

DL350 User Manual, 2nd Edition

8--66

PID Loop Operation

Time-Proportioning Control

Maintenance
and Troubleshooting

PID Loop Operation

The PID loop controller in the DL350 CPU generates a smooth control output signal
across a numerical range. The control output value is suitable to drive an analog
output module, which connects to the process. In the process control field, this is
called continuous control, because the output is on (at some level) continuously.
While continuous control can be smooth and robust, the cost of the loop components
(such as actuators, heater amplifiers) can be expensive. A simpler form of control is
called time-proportioning control. This method uses actuators which are either on or
off (no in-between). Loop components for on/off-based control systems are lower
cost than their continuous control counterparts.
In this section, we will show you how to convert the control output of a loop to
time-proportioning control for the applications that need it. Let’s take a moment to
review how alternately turning a load on and off can control a process. The diagram
below shows a hot-air balloon following a path across some mountains. The desired
path is the setpoint. The balloon pilot turns the burner on and off alternately, which is
his control output. The large mass of air in the balloon effectively averages the effect
of the burner, converting the bursts of heat into a continuous effect: slowly changing
balloon temperature and ultimately the altitude, which is the process variable.

Time-proportioning control approximates continuous control by virtue of its
duty-cycle -- the ratio of ON time to OFF time. The following figure shows an example
of how duty cycle approximates a continuous level when it is averaged by a large
process mass.
period
Desired
Effect
On/Off
Control

On
Off

If we were to plot the on/off times of the burner in the hot-air balloon, we would
probably see a very similar relationship to its effect on balloon temperature and
altitude.

DL350 User Manual, 2nd Edition

PID Loop Operation

8--67

The following ladder segment provides a time proportioned on/off control output. It
converts the continuous output in V2005 to on/off control, using the ouptut coil, Y0.

On/Off Control
Program Example
SP
+

Loop
Calculation

Σ
--

Time
Proportioning

V2005
continuous

PV

Y0

Process

P
V

on/off

The example program uses two timers to generate on/off control. It makes the
following assumptions, which you can alter to fit your application:
S The loop table starts at V2000, so the control output is at V2005.
S The data format of the control output is 12-bit, unipolar (0 -- FFF or
0 -- 4095).
S The on/off control output is Y0.
The control program must “match” the resolution of the PID output to the resolution
of the time interval. The time interval for one full cycle of the on/off waveform is 10
seconds.
NOTE: Some processes change too fast for time proportioning control. Consider the
speed of your process when you choose this control method. Use continuous control
for processes that change too fast for time proportioning control.
TMRF
T0
K1000

T0

At the end of the 10 second period, T0 turns on, and
loads the control output value (binary) from the loop table
V+05 location (V2005).

BTOR

The BTOR instruction changes the number in the
accumulator to a real number.

DIVR
R4.095

Dividing the control output by 4.095, converts the
0 -- 4095 range to 0 -- 1000, which “matchs” the preset
time for TMRF T0.

RTOB

This instruction converts the real number back to
binary. This step prepares the number for conversion
to BCD. There is no real-to-BCD instruction.

BCD

Convert the number in the accumulator to BCD format.
This satisfies the timer preset format requirement.

T1

TMRF
T1
V1400
TA1

K0

Output the result to V1400. In our example, this is the
location of the timer preset for the second timer, T1.
The second fast timer also counts in increments of .01
seconds, so its range is variable from 0 to a maximum
of 1000 ticks, or 10 seconds. This timer’s output, T1,
turns off the output coil, Y0, when the preset is reached.

Y0
OUT

The N.C. T1 contact, inverts the T1 timer output. The
control output is on at the beginning of the 10-second time
interval. Y0 turns off when T1 times out. The STRNE
contact prevents Y0 from energizing during the one scan
when T0 resets T1. Y0 is the actual control output.

END

END coil marks the end of the main program.

DL350 User Manual, 2nd Edition

Maintenance

LD
V2005

OUT
V1400
T0

A fast timer (0.01 sec. timebase) establishes the primary
time interval. The constant, K1000, sets the preset at 10
seconds (1,000 ticks). The N.C. enabling contact, T0,
makes the timer self-resetting. T0 is on for one scan
each 10 seconds, when it resets itself and T1.

PID Loop Operation

T0

8--68

PID Loop Operation

Feedforward Control
Feedforward control is an enhancement to standard closed-loop control. It is most
useful for diminishing the effects of a quantifiable and predictable loop disturbance
or sudden change in setpoint. Use of this feature is an option available to you on the
DL350. However, it’s best to implement and tune a loop without feedforward, and
adding it only if better loop performance is still needed. The term “feed-forward”
refers to the control technique involved, shown in the diagram below. The incoming
setpoint value is fed forward around the PID equation, and summed with the output.
Feedforward path

Setpoint
+

kf

Loop
Calculation

Σ
--

+
+

Σ

Control Output

Process Variable

Maintenance
and Troubleshooting

PID Loop Operation

In the previous section on the bias term, we said that “the bias term value establishes
a “working region” or operating point for the control output. When the error fluctuates
around its zero point, the output fluctuates around the bias value.” Now, when there
is a change in setpoint, an error is generated and the output must change to a new
operating point. This also happens if a disturbance introduces a new offset in the
loop. The loop does not really “know its way” to the new operating point... the
integrator (bias) must increment/decrement until the error disappears, and then the
bias has found the new operating point.
Suppose that we are able to know a sudden setpoint change is about to occur
(common in some applications). We can avoid much of the resulting error in the first
place, if we can quickly change the output to the new operating point. If we know
(from previous testing) what the operating point (bias value) will be after the setpoint
change, we can artificially change the output directly (which is feedforward). The
benefits from using feedforward are:
S The SP--PV error is reduced during predictable setpoint changes or loop
offset disturbances.
S Proper use of feedforward will allow us to reduce the integrator gain.
Reducing integrator gain gives us an even more stable control system.
Feedforward is very easy to use in the DL350 loop controller, as shown below. The
bias term has been made available to the user in a special read/write location, at PID
Parameter Table location V+04.

kp
Setpoint
+

Error Term

Σ

ki

Loop Calculation
P
I

--

Process Variable

DL350 User Manual, 2nd Edition

kd

D

V+04
XXXX Bias Term

+
+

Σ
+

Control Output

PID Loop Operation

8--69

To change the bias (operating point), ladder logic only has to write the desired value
to V+04. The PID loop calculation first reads the bias value from V+04 and modifies
the value based on the current integrator calculation. Then it writes the result back to
location V+04. This arrangement creates a sort of “transparent” bias term. All you
have to do to implement feed forward control is write the correct value to the bias
term at the right time (the example below shows you how).
NOTE: When writing the bias term, one must be careful to design ladder logic to
write the value just once, at the moment when the new bias operating point is to
occur. If ladder logic writes the bias value on every scan, the loop’s integrator is
effectively disabled.
Feedforward
Example

How do we know when to write to the bias term, and what value to write? Suppose we
have an oven temperature control loop, and we have already tuned the loop for
optimal performance. Refer to the figure below. We notice that when the operator
opens the oven door, the temperature sags a bit while the loop bias adjusts to the
heat loss. Then when the door closes, the temperature rises above the SP until the
loop adjusts again. Feedforward control can help diminish this effect.

Open

PV

PV sags

Closed

PV excess

Bias

Oven Closed
door

Open

Closed

PV
Feed-forward

Feed-forward

Bias

The step changes in the bias are the result of our two feed-forward writes to the bias
term. We can see that the PV variations are greatly reduced. The same technique
may be applied for changes in setpoint.

DL350 User Manual, 2nd Edition

Maintenance

First, we record the amount of bias change the loop controller generates when the
door opens or closes. Then, we write a ladder program to monitor the position of an
oven door limit switch. When the door opens, our ladder program reads the current
bias value from V+04, adds the desired change amount, and writes it back to V+04.
When the door closes, we duplicate the procedure, but subtracting desired change
amount instead. The following figure shows the results.

PID Loop Operation

Oven Closed
door

8--70

PID Loop Operation

PID Example Program
After the PID loop(s) has been setup with DirectSOFT, you will need to edit your RLL
program to include the rungs needed to setup the analog I/O module to be used by
the PID loop(s).

Maintenance
and Troubleshooting

PID Loop Operation

Program Setup for
the PID Loop

DL350 User Manual, 2nd Edition

PID Loop Operation

8--71

The example program shows how an analog input module, F3--08AD is used to
setup a PID loop. This example assumes that the PID table for loop 1 has a
beginning address of V3000.
All of the analog I/O modules used with the DL350 is setup in a similar manner. Refer
to the DL305 Analog I/O Manual for the setup information for the particular module
that you will be using.
Note that the modules used in the PID loop example program were set up for binary
format. They could have been set up for BCD format. In the later case, the BCD data
would have to be converted to binary format before being stored to the setpoint and
process variable, and the control output would have to be converted from binary to
BCD before being stored to the analog output.
By following the steps outlined in this chapter, you should be able to setup workable
PID control loops. The DirectSOFT Programming Software Manual provides more
information for the use of PID View.
For a step--by--step tutorial, go to the Technical Support section located on our
website, www.automationdirect.com. Once you are at the website, click on
Technical Support Home. After this page opens, find and select Guided Tutorials
located under the Using Your Products column. An Animated Tutorial page will
open. Under Available Tutorials, find PID Trainer and select View the
Powerpoint slide show and begin viewing the tutorial. The Powerpoint Viewer can
be downloaded if your computer does not have Powerpoint installed.
PID Loop Operation
Maintenance

DL350 User Manual, 2nd Edition

8--72

PID Loop Operation

Troubleshooting Tips
Q. The loop will not go into Automatic Mode.
A. Check the following for possible causes:
S The PLC is in Program Mode. It must be in Run Mode for loops to run.
S A PV alarm exists, or a PV alarm programming error exists.
S The loop is the major loop of a cascaded pair, and the minor loop is not
in Cascade Mode.

Maintenance
and Troubleshooting

PID Loop Operation

Q. The Control Output just stays at zero constantly when the loop is in Automatic Mode.
A. Check the following for possible causes:
S The Control Output upper limit in loop table location V+31 is zero.
S The loop is driven into saturation, because the error never goes to zero
value and changes (algebraic) sign.
Q. The Control Output value is not zero, but it is incorrect.
A. Check the following for possible cause:
S The gain values are entered improperly. Remember, gains are entered
in the loop table in BCD, while the SP and PV are in binary. If you are
using DirectSOFT 5, it displays the SP, PV, Bias and Control output in
decimal, converting it to binary before updating the loop table.
Q. The Ramp/Soak Generator does not operate when I activate the Start bit.
A. Check the following for possible causes:
S The Ramp/Soak enable bit is off. Check the status of bit 11 of loop
parameter table location V+00. It must be set =1.
S The hold bit or other bits in the Ramp/Soak control are on.
S The beginning SP value and the first ramp ending SP value are the
same, so first ramp segment has no slope and consequently has no
duration. The ramp/soak generator moves quickly to the soak segment,
giving the illusion that the first ramp is not working.
S The loop is in Cascade Mode, and is trying to get the SP remotely.
S The SP upper limit value in the loop table location V+27 is too low.
S Check your ladder program to verify it is not writing to the SP location
(V+02 in the loop table). A quick way to do this is to temporarily place an
end coil at the beginning of your program, then go to PLC Run Mode,
and manually start the ramp/soak generator.
Q. The PV value in the table is constant, even though the analog module receives the PV signal.
A. Your ladder program must read the analog value from the module successfully
and write it into the loop table V+03 location. Verify that the analog module is
generating the value, and that the ladder is working.
Q. The Derivative gain doesn’t seem to have any affect on the output.
A. The derivative limit is probably enabled (see section on derivative gain limiting).

DL350 User Manual, 2nd Edition

PID Loop Operation

8--73

Maintenance

DL350 User Manual, 2nd Edition

PID Loop Operation

Q. The loop Setpoint appears to be changing by itself.
A. Check the following for possible causes:
S The Ramp/Soak generator is enabled, and is generating setpoints.
S If this symptom occurs on loop Manual-to-Auto Mode changes, the loop
automatically sets the SP=PV if set to Bumpless Transfer Mode 1.
S Check your ladder program to verify it is not writing to the SP location
(V+02 in the loop table). A quick way to do this is to temporarily place an
end coil at the beginning of your program, then go to PLC Run Mode.
Q. The SP and PV values I enter with DirectSOFT work okay, but these values do not work
properly when the ladder program writes the data.
A. The PID View in DirectSOFT lets you enter SP, PV, and Bias values in decimal,
and displays them in decimal for your convenience. For example, when the data
format is 12 bit unipolar, the values range from 0 to 4095. However, the loop table
actually requires these in hex, so DirectSOFT converts them for you. The values in
the table range from 0 to FFF, for 12-bit unipolar format. Your ladder program must
convert constant values from the BCD format (when entered as Kxxxx) to binary with
the BIN instruction or you must enter them in the constant field (Kxxxx) as the hex
equivalent of the decimal value.
Q. The loop seems unstable and impossible to tune, no matter what gains I use.
A. Check the following for possible causes:
S The loop sample time is set too long. Refer to the section near the front
of this chapter on selecting the loop update time.
S The gains are too high. Start out by reducing the derivative gain to zero.
Then reduce the integral gain by increasing the integral time value, and
the proportional gain if necessary.
S There is too much transfer lag in your process. This means the PV
reacts sluggishly to control output changes. There may be too much
“distance” between actuator and PV sensor, or the actuator may be
weak in its ability to transfer energy into the process.
S There may be a process disturbance that is over-powering the loop.
Make sure the PV is relatively steady when the SP is not changing.

8--74

PID Loop Operation

Maintenance
and Troubleshooting

PID Loop Operation

Glossary of PID Loop Terminology
Automatic Mode

An operational mode of a loop, in which it makes PID calculations and update the loop’s
control output.

Bias Freeze

A method of preserving the bias value (operating point) for a control output, by inhibiting
the integrator when the output goes out-of-range. The benefit is a faster loop recovery.

Bias Term

In the position form of the PID equation, it is the sum of the integrator and the initial
control output value.

Bumpless Transfer

A method of changing the operation mode of a loop while avoiding the usual sudden
change in control output level. This consequence is avoided by artificially making the SP
and PV equal, or the bias term and control output equal at the moment of mode change.

Cascaded Loops

A cascaded loop receives its setpoint from the output of another loop. Cascaded loops
have a major/minor relationship, and work together to ultimately control one PV.

Cascade Mode

An operational mode of a loop, in which it receives its SP from another loop’s output.

Continuous Control

Control of a process done by delivering a smooth (analog) signal as the control output.

Direct-Acting Loop

A loop in which the PV increases in response to a control output increase. In other
words, the process has a positive gain.

Error

The difference in value between the SP and PV,

Error Deadband

An optional feature which makes the loop insensitive to errors when they are small. You
can specify the size of the deadband.

Error Squared

An optional feature which multiplies the error by itself, but retains the original algebraic
sign. It reduces the effect of small errors, while magnifying the effect of large errors.

Feedforward

A method of optimizing the control response of a loop when a change in setpoint or
disturbance offset is known and has a quantifiable effect on the bias term.

Control Output

The numerical result of a PID equation which is sent by the loop with the intention of
nulling out the current error.

Derivative Gain

A constant that determines the magnitude of the PID derivative term in response to the
current error.

Integral Gain

A constant that determines the magnitude of the PID integral term in response to the
current error.

Major Loop

In cascade control, it is the loop that generates a setpoint for the cascaded loop.

Manual Mode

An operational mode of a loop, in which the PID calculations are stopped. The operator
must manually control the loop by writing to the control output value directly.

Minor Loop

In cascade control, the minor loop is the subordinate loop that receives its SP from the
major loop.

On / Off Control

A simple method of controlling a process, through on/off application of energy into the
system. The mass of the process averages the on/off effect for a relatively smooth PV. A
simple ladder program can convert the DL350’s continuous loop output to on/off control.

PID Loop

A mathematical method of closed-loop control involving the sum of three terms based
on proportional, integral, and derivative error values. The three terms have independent
gain constants, allowing one to optimize (tune) the loop for a particular physical system.

Position Algorithm

The control output is calculated so it responds to the displacement (position) of the PV
from the SP (error term)

Process

A manufacturing procedure which adds value to raw materials. Process control
particularly refers to inducing chemical changes to the material in process.

Process Variable (PV)

A quantitative measurement of a physical property of the material in process, which
affects final product quality and is important to monitor and control.

DL350 User Manual, 2nd Edition

Error=SP -- PV

PID Loop Operation

8--75

PV Absolute Alarm

A programmable alarm that compares the PV value to alarm threshold values.

PV Deviation Alarm

A programmable alarm that compares the difference between the SP and PV values to
a deviation threshold value.

Ramp / Soak Profile

A set of SP values called a profile, which is generated in real time upon each loop
calculation. The profile consists of a series of ramp and soak segment pairs, greatly
simplifying the task of programming the PLC to generate such SP sequences.

Rate

Also called differentiator, the rate term responds to the changes in the error term.

Remote Setpoint

The location where a loop reads its setpoint when it is configured as the minor loop in a
cascaded loop topology.

Reset

Also called integrator, the reset term adds each sampled error to the previous,
maintaining a running total called the bias.

Reset Windup

A condition created when the loop is unable to find equilibrium, and the persistent error
causes the integrator (reset) sum to grow excessively (windup). Reset windup causes
an extra recovery delay when the original loop fault is remedied.

Reverse-Acting Loop

A loop in which the PV increases in response to a control output decrease. In other
words, the process has a negative gain.

Sampling time

The time between PID calculations. The CPU method of process control is called a
sampling controller, because it samples the SP and PV only periodically.

Setpoint (SP)

The desired value for the process variable. The setpoint (SP) is the input command to
the loop controller during closed loop operation.

Soak Deviation

The soak deviation is a measure of the difference between the SP and PV during a soak
segment of the Ramp/Soak profile, when the Ramp / Soak generator is active.

Step Response

The behavior of the process variable in response to a step change in the SP (in closed
loop operation), or a step change in the control output (in open loop operation)

Transfer

To change from one loop operational mode to another ( between Manual, Auto, or
Cascade). The word “transfer” probably refers to the transfer of control of the control
output or the SP, depending on the particular mode change.

Velocity Algorithm

The control output is calculated to represent the rate of change (velocity) for the PV to
become equal to the SP.

DL350 User Manual, 2nd Edition

Maintenance

A constant that determines the magnitude of the PID proportional term in response to
the current error.

PID Loop Operation

Proportional Gain

8--76

PID Loop Operation

Fundamentals of Process Control Theory, Second Edition
Author: Paul W. Murrill
Publisher: Instrument Society of America
ISBN 1--55617--297--4

Application Concepts of Process Control
Author: Paul W. Murrill
Publisher: Instrument Society of America
ISBN 1--55617--080--7

PID Controllers: Theory, Design, and Tuning, 2nd Edition
Author: K. Astrom and T Hagglund
Publisher: Instrument Society of America
ISBN 1--55617--516--7

Fundamentals of Temperature, Pressure, and Flow
Measurements, Third edition
Author: Robert P. Benedict
Publisher: John Wiley and Sons
ISBN 0--471--89383--8

Process / Industrial Instruments & Controls Handbook,
Fourth Edition
Author (Editor-in-Chief): Douglas M. Considine
Publisher: McGraw-Hill, Inc.
ISBN 0--07--012445--0

pH Measurement and Control, Second Edition
Author: Gregory K. McMillan
Publisher: Instrument Society of America
ISBN 1--55617--483--7

Programmable Controllers Concepts and Applications,
First Edition,
Authors: C.T. Jones and L.A. Bryant
Publisher: International Programmable Controls
ISBN 0--915425--00--9

Fundamentals of Programmable Logic Controllers, Sensors, and Communications
Author: Jon Stenerson
Publisher: Prentice Hall
ISBN 0--13--726860--2

Process Control, Third Edition
Instrument Engineer’s Handbook
Author (Editor-in-Chief): Bela G. Liptak
Publisher: Chilton
ISBN 0--8019--8242--1

Process Measurement and Analysis, Third Edition
Instrument Engineer’s Handbook
Author (Editor-in-Chief): Bela G. Liptak
Publisher: Chilton
ISBN 0--8019--8197--2

Maintenance
and Troubleshooting

PID Loop Operation

Bibliography

DL350 User Manual, 2nd Edition

Maintenance and
Troubleshooting

19

In This Chapter. . . .
— Hardware Maintenance
— Diagnostics
— CPU Indicators
— PWR Indicator
— RUN Indicator
— CPU Indicator
— BATT Indicator
— Communications Problems
— I/O Module Troubleshooting
— Noise Troubleshooting
— Machine Startup and Program Troubleshooting

9--2

Maintenance and Troubleshooting

Hardware Maintenance
Standard
Maintenance

Maintenance
and Troubleshooting

Air Quality
Maintenance

Low Battery
Indicator
CPU Battery
Replacement

The DL305 is a low maintenance system requiring only a few periodic checks to help
reduce the risks of problems. Routine maintenance checks should be made
regarding two key items.
S Air quality (cabinet temperature, airflow, etc.)
S CPU battery
The quality of the air your system is exposed to can affect system performance. If
you have placed your system in an enclosure, check to see the ambient temperature
is not exceeding the operating specifications. If there are filters in the enclosure,
clean or replace them as necessary to ensure adequate airflow. A good rule of thumb
is to check your system environment every one to two months. Make sure the DL305
is operating within the system operating specifications.
The CPU has a battery LED that indicates the battery voltage is low. You should
check this indicator periodically to determine if the battery needs replacing. You can
also detect low battery voltage from within the CPU program. SP43 is a special relay
that comes on when the battery needs to be replaced.
The CPU battery is used to retain program V--memory and the system parameters.
The life expectancy of this battery is five years.

To install the D3--BAT--1 CPU battery in the
DL350 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.

WARNING: Do not attempt to recharge the battery or dispose of an old battery
by fire. The battery may explode or release hazardous materials.

Maintenance
and Troubleshooting

Maintenance
and Troubleshooting

NOTE: Before installing or replacing your CPU battery, back-up your V-memory and
system parameters. You can do this by using DirectSOFT to save the program,
V-memory, and system parameters to hard/floppy disk on a personal computer.

DL350 User Manual, 2nd Edition

Maintenance and Troubleshooting

9--3

Diagnostics
Your DL305 system performs many pre-defined diagnostic routines with every CPU
scan. The diagnostics have been designed to detect various types of failures for the
CPU and I/O modules. There are two primary error classes, fatal and non-fatal.

Fatal Errors

Fatal errors are errors the CPU has detected that offer a risk of the system not
functioning safely or properly. If the CPU is in Run Mode when the fatal error occurs,
the CPU will switch to Program Mode. (Remember, in Program Mode all outputs are
turned off.) If the fatal error is detected while the CPU is in Program Mode, the CPU
will not enter Run Mode until the error has been corrected.
Here are some examples of fatal errors.
S Base power supply failure
S Parity error or CPU malfunction
S I/O configuration errors
S Certain programming errors

Non-fatal Errors

Non-fatal errors are errors that are flagged by the CPU as requiring attention. They
can neither cause the CPU to change from Run Mode to Program Mode, nor do they
prevent the CPU from entering Run Mode. There are special relays the application
program can use to detect if a non-fatal error has occurred. The application program
can then be used to take the system to an orderly shutdown or to switch the CPU to
Program Mode if necessary.
Some examples of non-fatal errors are:
S Backup battery voltage low
S All I/O module errors
S Certain programming errors

DL350 User Manual, 2nd Edition

Maintenance
and Troubleshooting

Many of these messages point to supplemental memory locations which can be
referenced for additional related information. These memory references are in the
form of V-memory and SPs (special relays).
The following two tables name the specific memory locations that correspond to
certain types of error messages. The special relay table also includes status
indicators which can be used in programming. For a more detailed description of
each of these special relays refer to Appendix D.

Maintenance
and Troubleshooting

Finding Diagnostic Diagnostic information can be found in several places with varying levels of
message detail.
Information
S The CPU automatically logs error codes and any FAULT messages into
two separate tables which can be viewed with the Handheld or
DirectSOFT.
S The handheld programmer displays error numbers and short
descriptions of the error.
S DirectSOFT provides the error number and an error message.
S Appendix B in this manual has a complete list of error messages sorted
by error number.

Maintenance
and Troubleshooting

Diagnostics

9--4

Maintenance and Troubleshooting

V-memory
Locations
Corresponding to
Error Codes

Error Class

Error Category

Diagnostic Vmemory

User-Defined

Error code used with FAULT instruction

V7751

System Error

Fatal Error code

V7755

Major Error code

V7756

Minor Error code

V7757

Address where syntax error occurs

V7763

Error Code found during syntax check

V7764

Number of scans since last Program to Run
Mode transition

V7765

Current scan time (ms)

V7775

Minimum scan time (ms)

V7776

Maximum scan time (ms)

V7777

Grammatical

Maintenance
and Troubleshooting

Maintenance
and Troubleshooting

Maintenance
and Troubleshooting

CPU Scan

DL350 User Manual, 2nd Edition

Maintenance and Troubleshooting

9--5

Special Relays (SP)
Corresponding to
Error Codes
On first scan only

SP60

Acc. is less than value

SP1

Always ON

SP61

Acc. is equal to value

SP3

1 minute clock

SP62

Acc. is greater than value

SP4

1 second clock

SP63

Acc. result is zero

SP5

100 millisecond clock

SP64

Half borrow occurred

SP6

50 millisecond clock

SP65

Borrow occurred

SP7

On alternate scans

SP66

Half carry occurred

SP67

Carry occurred

Forced run mode

SP70

Result is negative (sign)

SP12

Terminal run mode

SP71

Pointer reference error

SP13

Test run mode

SP73

Overflow

SP14

Test hold mode

SP75

Data is not in BCD

SP15

Test program mode

SP76

Load zero

SP16

Terminal program mode

Communication Monitoring Relays

SP20

STOP instruction was executed

SP116

SP21

BREAK instruction was executed

Port 2 is communicating with another
device

SP22

Interrupt enabled

SP117

Communication error on Port 2

SP120

Module busy, Slot 0

SP121

Communication error Slot 0

SP122

Module busy, Slot 1

SP123

Communication error Slot 1

SP124

Module busy, Slot 2

SP125

Communication error Slot 2

SP126

Module busy, Slot 3

SP127

Communication error Slot 3

SP130

Module busy, Slot 4

SP131

Communication error Slot 4

SP132

Module busy, Slot 5

SP133

Communication error Slot 5

SP134

Module busy, Slot 6

SP135

Communication error Slot 6

SP136

Module busy, Slot 7

SP137

Communication error Slot 7

CPU Status Relays
SP11

System Monitoring Relays
SP40

Critical error

SP41

Non-critical error

SP43

Battery low

SP46

Communications error

SP47

I/O configuration error

SP50

Fault instruction was executed

SP51

Watchdog timeout

SP52

Syntax error

SP53

Cannot solve the logic

SP54

Intelligent module communication error

DL350 User Manual, 2nd Edition

Maintenance
and Troubleshooting

SP0

Maintenance
and Troubleshooting

Accumulator Status Relays

Maintenance
and Troubleshooting

Startup and Real-time Relays

9--6

Maintenance and Troubleshooting

Maintenance
and Troubleshooting

Error Message
Tables

The DL350 CPU will automatically log any system error codes and any custom
messages you have created in your application program with the FAULT
instructions. The CPU logs the error code, the date, and the time the error occurred.
There are two separate tables that store this information.
S

Error Code Table -- the system logs up to 32 errors in the table. When
an error occurs, the errors already on the table are pushed down and
the most recent error is loaded into the top slot. If the table is full when
an error occurs, the oldest error is pushed (erased) from the table.

S

Message Table -- the system logs up to 16 messages in this table. When
a message is triggered, the messages already stored in the table are
pushed down and the most recent message is loaded into the top slot. If
the table is full when an error occurs, the oldest message is pushed
(erased) from the table.

The following diagram shows an example of an error table for messages.
Date

Time

Message

1993--05--26

08:41:51:11

*Conveyor--2 stopped

1993--04--30

17:01:11:56

* Conveyor--1 stopped

1993--04--30

17:01:11:12

* Limit SW1 failed

1993--04--28

03:25:14:31

* Saw Jam Detect

You can access the error code table and the message table through DirectSOFT’s
PLC Diagnostic sub-menus or from the Handheld Programmer. Details on how to
access these logs are provided in the DirectSOFT and D2--HPP manual.
The following examples show you how to use the Handheld and AUX Function 5C to
show the error codes. The most recent error or message is always displayed. You
can use the PREV and NXT keys to scroll through the messages.

Maintenance
and Troubleshooting

Maintenance
and Troubleshooting

Use AUX 5C to view the tables
CLR

F

5

SHFT

C

2

AUX

AUX 5C HISTORY D
ERROR/MESAGE

ENT

Use the arrow key to select Errors or Messages

AUX 5C HISTORY D
ERROR/MESAGE

ENT

Example of an error display

E252NEW I/O CFG
93/09/21 10:11:15
Year

DL350 User Manual, 2nd Edition

Month

Day

Time

Maintenance and Troubleshooting
System Error
Codes

9--7

The System error log contains 32 of the most recent errors that have been detected.
The errors that are trapped in the error log are a subset of all the error messages
which the DL305 systems generate. These errors can be generated by the CPU or
by the Handheld Programmer, depending on the actual error. Appendix B provides a
more complete description of the error codes.
The errors can be detected at various times. However, most of them are detected at
power-up, on entry to Run Mode, or when a Handheld Programmer key sequence
results in an error or an illegal request.
Description

E003

Software time-out

E520

Bad operation -- CPU in Run

E004

Invalid instruction (RAM parity error)

E521

Bad operation -- CPU in Test Run

E041

CPU battery low

E523

Bad operation -- CPU in Test Program

E043

Memory cartridge battery low

E524

Bad operation -- CPU in Program

E099

Program memory exceeded

E525

Mode switch not in TERM

E101

CPU memory cartridge missing

E526

Unit is offline

E104

Write fail

E527

Unit is online

E151

Invalid command

E528

CPU mode

E155

RAM failure

E540

CPU locked

E201

Terminal block missing

E541

Wrong password

E202

Missing I/O module

E542

Password reset

E203

Blown fuse

E601

Memory full

E206

User 24V power supply failure

E602

Instruction missing

E210

Power fault

E604

Reference missing

E250

Communication failure in the I/O chain

E610

Bad I/O type

E251

I/O parity error

E611

Bad Communications ID

E252

New I/O configuration

E620

Out of memory

E262

I/O out of range

E621

EEPROM Memory not blank

E312

Communications error 2

E622

No Handheld Programmer EEPROM

E313

Communications error 3

E624

V memory only

E316

Communications error 6

E625

Program only

E320

Time out

E627

Bad write operation

E321

Communications error

E628

Memory type error (should be EEPROM)

E499

Invalid Text entry for Print Instruction

E640

Miscompare

E501

Bad entry

E650

Handheld Programmer system error

E502

Bad address

E651

Handheld Programmer ROM error

E503

Bad command

E652

Handheld Programmer RAM error

E504

Bad reference / value

E505

Invalid instruction

E506

Invalid operation

DL350 User Manual, 2nd Edition

Maintenance
and Troubleshooting

Error
Code

Maintenance
and Troubleshooting

Description

Maintenance
and Troubleshooting

Error
Code

9--8

Maintenance and Troubleshooting

Program Error
Codes

The following list shows the errors that can occur when there are problems with the
program. These errors will be detected when you try to place the CPU into Run
Mode, or, when you use AUX 21 -- Check Program. The CPU will also turn on SP52
and store the error code in V7755. Appendix B provides a more complete description
of the error codes.

Maintenance
and Troubleshooting

Maintenance
and Troubleshooting

Maintenance
and Troubleshooting

Error Code

Description

Error Code

Description

E4**

No Program in CPU

E461

Stack Overflow

E401

Missing END statement

E462

Stack Underflow

E402

Missing LBL

E463

Logic Error

E403

Missing RET

E464

Missing Circuit

E404

Missing FOR

E471

Duplicate coil reference

E405

Missing NEXT

E472

Duplicate TMR reference

E406

Missing IRT

E473

Duplicate CNT reference

E412

SBR/LBL >64

E480

CV position error

E413

FOR/NEXT >64

E481

CV not connected

E421

Duplicate stage reference

E482

CV exceeded

E422

Duplicate SBR/LBL reference

E483

CVJMP placement error

E423

Nested loops

E484

No CV

E431

Invalid ISG/SG address

E485

No CVJMP

E432

Invalid jump (GOTO) address

E486

BCALL placement error

E433

Invalid SBR address

E487

No Block defined

E434

Invalid RTC address

E488

Block position error

E435

Invalid RT address

E489

Block CR identifier error

E436

Invalid INT address

E490

No Block stage

E437

Invalid IRTC address

E491

ISG position error

E438

Invalid IRT address

E492

BEND position error

E440

Invalid Data Address

E493

BEND I error

E441

ACON/NCON

E494

No BEND

E451

Bad MLS/MLR

E452

X input used as output coil

E453

Missing T/C

E454

Bad TMRA

E455

Bad CNT

E456

Bad SR

DL350 User Manual, 2nd Edition

Maintenance and Troubleshooting

9--9

CPU Indicators
The DL350 CPU has indicators on the front to help you diagnose problems with the
system. The table below gives a quick reference of potential problems associated
with each status indicator. Following the table will be a detailed analysis of each of
these indicator problems.
Potential Problems

PWR (off)

1. System voltage incorrect.
2. Power supply/CPU is faulty
3. Other component such an I/O module has power
supply shorted
4. Power budget exceeded for the base being used

RUN
(will not come on)

1. CPU programming error
2. Switch in TERM position
3. Switch in STOP position

RUN (flashing)

1. CPU in firmware upgrade mode.

CPU (on)

1. Electrical noise interference
2. CPU defective

BATT (on)

1. CPU battery low
2. CPU battery missing, or disconnected

TX1

1. Transmitting data from Port 1

RX1

1. Receiving data at Port 1

TX2

1. Transmitting data from Port 2

RX2

1. Receiving data at Port 2

Status Indicators

Port 1

Maintenance
and Troubleshooting

DL350

Maintenance
and Troubleshooting

Indicator Status

Mode Switch

Port 2

DL350 User Manual, 2nd Edition

Maintenance
and Troubleshooting

Battery Slot

9--10

Maintenance and Troubleshooting

PWR Indicator

Maintenance
and Troubleshooting

There are four general reasons for the CPU power status LED (PWR) to be OFF:
1. Power to the base is incorrect or is not applied.
2. Base power supply is faulty.
3. Other component(s) have the power supply shut down.
4. Power budget for the base has been exceeded.
Incorrect Base
Power

WARNING: To minimize the risk of electrical shock, always disconnect the
system power before inspecting the physical wiring.

Faulty CPU

1. First, disconnect the system power and check all incoming wiring for loose
connections.
2. If you are using a separate termination panel, check those connections to
make sure the wiring is connected to the proper location.
3. If the connections are acceptable, reconnect the system power and
measure the voltage at the base terminal strip to insure it is within
specification. If the voltage is not correct shut down the system and correct
the problem.
4. If all wiring is connected correctly and the incoming power is within the
specifications required, the base power supply should be returned for
repair.
There is not a good check to test for a faulty CPU other than substituting a known
good one to see if this corrects the problem. If you have experienced major power
surges, it is possible the CPU and power supply have been damaged. If you suspect
this is the cause of the power supply damage, a line conditioner which removes
damaging voltage spikes should be used in the future.

Maintenance
and Troubleshooting

Maintenance
and Troubleshooting

If the voltage to the power supply is not correct, the CPU and/or base may not
operate properly or may not operate at all. Use the following guidelines to correct the
problem.

DL350 User Manual, 2nd Edition

Maintenance and Troubleshooting

9--11

It is possible a faulty module or external device using the system 5V can shut down
Device or Module
causing the Power the power supply. This 5V can be coming from the base or from the CPU
communication ports.
Supply to
Shutdown
To test for a device causing this problem:
1. Turn off power to the CPU.
2. Disconnect all external devices (i.e., communication cables) from the CPU.
3. Reapply power to the system.

Maintenance
and Troubleshooting

If the power supply operates normally you may have either a shorted device or a
shorted cable. If the power supply does not operate normally then test for a module
causing the problem by following the steps below:
If the PWR LED operates normally the problem could be in one of the modules. To
isolate which module is causing the problem, disconnect the system power and
remove one module at a time until the PWR LED operates normally.
Follow the procedure below:
S Turn off power to the base.
S Remove a module from the base.
S Reapply power to the base.
Bent base connector pins on the module can cause this problem. Check to see the
connector is not the problem.
Power Budget
Exceeded

If the machine had been operating correctly for a considerable amount of time prior
to the indicator going off, the power budget is not likely to be the problem. Power
budgeting problems usually occur during system start-up when the PLC is under
operation and the inputs/outputs are requiring more current than the base power
supply can provide.
Maintenance
and Troubleshooting

WARNING: The PLC may reset if the power budget is exceeded. If there is any
doubt about the system power budget please check it at this time. Exceeding
the power budget can cause unpredictable results which can cause damage
and injury. Verify the modules in the base operate within the power budget for
the chosen base. You can find these tables in Chapter 4, System Design and
Configuration.

Maintenance
and Troubleshooting

DL350 User Manual, 2nd Edition

9--12

Maintenance and Troubleshooting

Maintenance
and Troubleshooting

RUN Indicator
If the CPU will not enter the Run mode (the RUN indicator is off), the problem is
usually in the application program, unless the CPU has a fatal error. If a fatal error
has occurred, the CPU LED should be on. You can use a programming device to
determine the cause of the error.
If you are using a DL350 and you are trying to change the modes with a programming
device, make sure the mode switch is in the TERM position.
Both of the programming devices, Handheld Programmer and DirectSOFT, will
return a error message describing the problem. Depending on the error, there may
also be an AUX function you can use to help diagnose the problem. The most
common programming error is “Missing END Statement”. All application programs
require an END statement for proper termination. A complete list of error codes can
be found in Appendix B.

CPU Indicator
If the CPU indicator is on, a fatal error has occurred in the CPU. Generally, this is not
a programming problem but an actual hardware failure. You can power cycle the
system to clear the error. If the error clears, you should monitor the system and
determine what caused the problem. You will find this problem is sometimes caused
by high frequency electrical noise introduced into the CPU from an outside source.
Check your system grounding and install electrical noise filters if the grounding is
suspected. If power cycling the system does not reset the error, or if the problem
returns, you should replace the CPU.

Maintenance
and Troubleshooting

Maintenance
and Troubleshooting

BATT Indicator
If the BATT indicator is on, the CPU battery is either disconnected or needs
replacing. The battery voltage is continuously monitored while the system voltage is
being supplied.

Communications Problems
If you cannot establish communications with the CPU, check these items.
S The cable is disconnected.
S The cable has a broken wire or has been wired incorrectly.
S The cable is improperly terminated or grounded.
S The device connected is not operating at the correct baud rate (9600
baud for the top port. Use AUX 56 to select the baud rate for the bottom
port on a DL350).
S The device connected to the port is sending data incorrectly.
S A grounding difference exists between the two devices.
S Electrical noise is causing intermittent errors
S The CPU has a bad comm port and the CPU should be replaced.
S If you are using DirectSOFT, refer to the troubleshooting section of the
Quick Start Manual.
If an error occurs the indicator will come on and stay on until a successful
communication has been completed.

DL350 User Manual, 2nd Edition

Maintenance and Troubleshooting

9--13

I/O Module Troubleshooting
If you suspect an I/O error, there are several things that could be causing the
problem.
S A blown fuse
S A loose terminal block
S The 24 VDC supply has failed
S The module has failed
S The I/O configuration check detects a change in the I/O configuration

I/O Diagnostics

If the modules are not providing any clues to the problem, run AUX 42 from the
handheld programmer or I/O diagnostics in DirectSOFT. Both options will provide
the base number, the slot number and the problem with the module. Once the
problem is corrected the indicators will reset.
An I/O error will not cause the CPU to switch from the run to program mode, however
there are special relays (SPs) available in the CPU which will allow this error to be
read in ladder logic. The application program can then take the required action such
as entering the program mode or initiating an orderly shutdown. The following figure
shows an example of the failure indicators.

V7752 0020 Desired module ID code

E252
NEW I/O CFG

V7753 0021 Current module ID code
V7754 0002 Location of conflict

Maintenance
and Troubleshooting

Program Control Information

Maintenance
and Troubleshooting

Things to Check

V7755 0252 Fatal error code
I/O Configuration Error

Maintenance
and Troubleshooting

SP47

DL350 User Manual, 2nd Edition

9--14

Maintenance and Troubleshooting
When troubleshooting the DL305 series I/O modules there are a few facts you
should be aware of. These facts may assist you in quickly correcting an I/O problem.
S The output modules cannot detect shorted or open output points. If you
suspect one or more points on a output module to be faulty, you should
measure the voltage drop from the common to the suspect point.
Remember when using a Digital Volt Meter, leakage current from an
output device such as a triac or a transistor must be considered. A point
which is off may appear to be on if no load is connected the the point.
S The I/O point status indicators on the modules are logic side indicators.
This means the LED which indicates the on or off status reflects the
status of the point in respect to the CPU. On an output module the
status indicators could be operating normally while the actual output
device (transistor, triac etc.) could be damaged. With an input module if
the indicator LED is on, the input circuitry should be operating properly.
To verify proper functionality check to see the LED goes off when the
input signal is removed.
S Leakage current can be a problem when connecting field devices to I/O
modules. False input signals can be generated when the leakage
current of an output device is great enough to turn on the connected
input device. To correct this, install a resistor in parallel with the input or
output of the circuit. The value of this resistor will depend on the amount
of leakage current and the voltage applied but usually a 10K to 20KΩ
resistor will work. Insure the wattage rating of the resistor is correct for
your application.
S The easiest method to determine if a module has failed is to replace it if
you have a spare. However, if you suspect another device to have
caused the failure in the module, that device may cause the same
failure in the replacement module as well. As a point of caution, you
may want to check devices or power supplies connected to the failed
module before replacing it with a spare module.

Maintenance
and Troubleshooting

Maintenance
and Troubleshooting

Maintenance
and Troubleshooting

Some Quick Steps

DL350 User Manual, 2nd Edition

Maintenance and Troubleshooting
Testing Output
Points

9--15

If you want to do an I/O check out independent of the application program, for the
DL350 follow the procedure below:
Step

Action
Use a handheld programmer or DirectSOFT to communicate online to
the PLC.

2

Change to Program Mode.

3

Go to address 0.

4

Insert an “END” statement at address 0. (This will cause program
execution to occur only at address 0 and prevent the application program from turning the I/O points on or off).

5

Change to Run Mode.

6

Use the programming device to set (turn) on or off the points you wish
to test.

7

When you finish testing I/O points delete the “END” statement at
address 0.

WARNING: Depending on your application, forcing I/O points may cause
unpredictable machine operation that can result in a risk of personal injury or
equipment damage. Make sure you have taken all appropriate safety
precautions prior to testing any I/O points.
Handheld
Programmer
Keystrokes Used
to Test an Output
Point

Maintenance
and Troubleshooting

1

END

X0

X2

X1

X3

X5

X7

Y2

Insert an END statement
at the beginning of the
program. This disables
the remainder of the
program.

X4
END

STAT

16P STATUS
BIT REF
X

ENT

Use the PREV or NEXT keys to select the Y data type
NEXT

A

0

Y

ENT

SHFT

ON
INS

Y

0

Y2 is now on

Y

10

Y

0

DL350 User Manual, 2nd Edition

Maintenance
and Troubleshooting

Use arrow keys to select point, then use
ON and OFF to change the status

10

Maintenance
and Troubleshooting

From a clear display, use the following keystrokes

9--16

Maintenance and Troubleshooting

Electrical Noise
Problems

Noise is one of the most difficult problems to diagnose. Electrical noise can enter a
system in many different ways and fall into one of two categories, conducted or
radiated. It may be difficult to determine how the noise is entering the system but the
corrective actions for either of the types of noise problems are similar.
S Conducted noise is when the electrical interference is introduced into
the system by way of a attached wire, panel connection ,etc. It may
enter through an I/O module, a power supply connection, the
communication ground connection, or the chassis ground connection.
S Radiated noise is when the electrical interference is introduced into the
system without a direct electrical connection, much in the same manner
as radio waves.

Reducing
Electrical Noise

While electrical noise cannot be eliminated it can be reduced to a level that will not
affect the system.
S Most noise problems result from improper grounding of the system. A
good earth ground can be the single most effective way to correct noise
problems. If a ground is not available, install a ground rod as close to
the system as possible. Insure all ground wires are single point grounds
and are not daisy chained from one device to another. Ground metal
enclosures around the system. A loose wire is no more than a large
antenna waiting to introduce noise into the system; therefore, you
should tighten all connections in your system. Loose ground wires are
more susceptible to noise than the other wires in your system. Review
Chapter 2 Installation, Wiring, and Specifications if you have questions
regarding how to ground your system.
S Electrical noise can enter the system through the power source for the
CPU and I/O. Installing a isolation transformer for all AC sources can
correct this problem. DC sources should be well grounded good quality
supplies. Switching DC power supplies commonly generate more noise
than linear supplies.
S Separate input wiring from output wiring. Never run I/O wiring close to
high voltage wiring.

Maintenance
and Troubleshooting

Maintenance
and Troubleshooting

Maintenance
and Troubleshooting

Noise Troubleshooting

DL350 User Manual, 2nd Edition

Maintenance and Troubleshooting

9--17

Machine Startup and Program Troubleshooting
The DL350 CPU provides several features to help you debug your program before
and during machine startup. This section discusses the following topics which can
be very helpful.
Program Syntax Check

S

Duplicate Reference Check

S

Test Modes

S

Special Instructions

S

Run Time Edits

S

Forcing I/O Points

Even though the Handheld Programmer and DirectSOFT provide error checking
during program entry, you may want to check a modified program. Both
programming devices offer a way to check the program syntax. For example, you
can use AUX 21, CHECK PROGRAM to check the program syntax from a Handheld
Programmer, or you can use the PLC Diagnostics menu option within DirectSOFT.
This check will find a wide variety of programming errors. The following example
shows how to use the syntax check with a Handheld Programmer.

Maintenance
and Troubleshooting

Syntax Check

S

Use AUX 21 to perform syntax check
CLR

C

2

B

1

AUX

AUX 21 CHECK PRO
1:SYN 2:DUP REF

ENT

Select syntax check (default selection)
(You may not get the busy display
if the program is not very long.)

BUSY

One of two displays will appear
Error Display (example)

$00050 E401
MISSING END

Maintenance
and Troubleshooting

ENT

(shows location in question)

NO SYNTAX ERROR
?

See Appendix B for a complete listing of programming error codes. If you get an
error, press CLR and the Handheld will display the instruction where the error
occurred. Correct the problem and continue running the Syntax check until the NO
SYNTAX ERROR message appears.

DL350 User Manual, 2nd Edition

Maintenance
and Troubleshooting

Syntax OK display

9--18

Maintenance and Troubleshooting

Duplicate
Reference Check

You can also check for multiple uses of the same output coil. Both programming
devices offer a way to check for this condition. For example, you can AUX 21,
CHECK PROGRAM to check for duplicate references from a Handheld
Programmer, or you can use the PLC Diagnostics menu option within DirectSOFT.
The following example shows how to perform the duplicate reference check with a
Handheld Programmer.
Use AUX 21 to perform syntax check

Maintenance
and Troubleshooting

CLR

C

2

B

1

AUX

ENT

AUX 21 CHECK PRO
1:SYN 2:DUP REF

Select duplicate reference check
ENT

(You may not get the busy
display if the program is not
very long.)

BUSY

One of two displays will appear
Error Display (example)

$00024 E471
DUP COIL REF
(shows location in question)

NO DUP REFS
?

If you get an error, press CLR and the Handheld will display the instruction where the
duplicate reference occurred. Correct the problem and continue running the
Duplicate Reference check until no duplicate references are found.
NOTE: You can use the same coil in more than one location, especially in programs
using the Stage instructions and/or the OROUT instructions. The Duplicate
Reference check will find these outputs even though they may be used in an
acceptable fashion.

Maintenance
and Troubleshooting

Maintenance
and Troubleshooting

Syntax OK display

DL350 User Manual, 2nd Edition

Maintenance and Troubleshooting
TEST-PGM and
TEST-RUN Modes

9--19

Test Mode allows the CPU to start in TEST-PGM mode, enter TEST-RUN mode, run
a fixed number of scans, and return to TEST-PGM mode. You can select from 1 to
65,525 scans. Test Mode also allows you to maintain output status while you switch
between Test-Program and Test-Run Modes. You can select Test Modes from either
the Handheld Programmer (by using the MODE key) or from DirectSOFT via a PLC
Modes menu option.
The primary benefit of using the TEST mode is to maintain certain outputs and other
parameters when the CPU transitions back to Test-program mode. Also, the CPU
will maintain timer and counter current values when it switches to TEST-PGM mode.

With the Handheld, the actual mode entered when you first select Test Mode
depends on the mode of operation at the time you make the request. If the CPU is in
Run Mode mode, then TEST-RUN is available. If the mode is Program, then
TEST-PGM is available. Once you’ve selected TEST Mode, you can easily switch
between TEST-RUN and TEST-PGM. DirectSOFT provides more flexibility in
selecting the various modes with different menu options. The following example
shows how you can use the Handheld to select the Test Modes.

Maintenance
and Troubleshooting

NOTE: You can only use DirectSOFT to specify the number of scans. This feature is
not supported on the Handheld Programmer. However, you can use the Handheld to
switch between Test Program and Test Run Modes.

Use the MODE key to select TEST Modes (example assumes Run Mode)
MODE

NEXT

*MODE CHANGE*
GO TO T-RUN MODE

ENT

Press ENT to confirm TEST-RUN Mode
ENT

(Note, the TEST LED on the DL205
Handheld indicates the CPU is in
TEST Mode.)

*MODE CHANGE*
CPU T-RUN

CLR

MODE

NEXT

NEXT

*MODE CHANGE*
GO TO T-PGM MODE

ENT

Press ENT to confirm TEST-PGM Mode
ENT

*MODE CHANGE*
CPU T-PGM

DL350 User Manual, 2nd Edition

Maintenance
and Troubleshooting

(Note, the TEST LED on the DL205
Handheld indicates the CPU is in
TEST Mode.)

Maintenance
and Troubleshooting

You can return to Run Mode, enter Program Mode, or enter TEST-PGM
Mode by using the Mode Key

9--20

Maintenance and Troubleshooting
Test Displays: With the Handheld Programmer you also have a more detailed
display when you use TEST Mode. For some instructions, the TEST-RUN mode
display is more detailed than the status displays shown in RUN mode. The following
diagram shows an example of a Timer instruction display during TEST-RUN mode.
RUN Mode

TEST-RUN Mode

S

1425
TMR T0 K1000

Maintenance
and Troubleshooting

TMR T0 K1000
T0 Contact (S is off)
(is on)

S

T0 Contact (S is off)
(is on)
Current Value

Input to Timer

Holding Output States: The ability to hold output states is very useful, because it
allows you to maintain key system I/O points. In some cases you may need to modify
the program, but you do not want certain operations to stop. In normal Run Mode, the
outputs are turned off when you return to Program Mode. In TEST-RUN mode you
can set each individual output to either turn off, or, to hold its last output state on the
transition to TEST-PGM mode. This feature is available via a menu option within
DirectSOFT. The following diagram shows the differences between RUN and
TEST-RUN modes.
RUN Mode to PGM Mode

Maintenance
and Troubleshooting

X2

X1

X3

X10

X2

X1

X3

Y0
X4

X10

Status on final scan
X0

X0

Y0
END

X4
Y1

END

TEST-RUN to TEST-PGM
X0
X2
Y0
X1

X3

X4

Hold Y0 ON
Y1

X10

Maintenance
and Troubleshooting

Outputs are
OFF
Y1

Let Y1 turn
OFF
END

Before you decide that Test Mode is the perfect choice, remember the DL350 CPU
also allows you to edit the program during Run Mode. The primary difference
between the Test Modes and the Run Time Edit feature is you do not have to
configure each individual I/O point to hold the output status. When you use Run Time
Edits, the CPU automatically maintains all outputs in their current states while the
program is being updated.

DL350 User Manual, 2nd Edition

Maintenance and Troubleshooting
Special
Instructions

9--21

There are several instructions that can be used to help you debug your program
during machine startup operations.
S END
S PAUSE
S STOP
END Instruction: If you need a way to quickly disable part of the program, insert an
END statement prior to the portion that should be disabled. When the CPU
encounters the END statement, it assumes it is the end of the program. The following
diagram shows an example.
X0

X2

X1

X3

Y0
X4

X0

X2

X1

X3

Y0
X4

Y1

X10

END

Y1

X10

Maintenance
and Troubleshooting

New END disables X10 and Y1

Normal Program

END

END

STOP Instruction: Sometimes during machine startup you need a way to quickly
turn off all the outputs and return to Program Mode. In addition to using the Test
Modes, you can also use the STOP instruction. When this instruction is executed the
CPU automatically exits Run Mode and enters Program Mode. Remember, all
outputs are turned off during Program Mode. The following diagram shows an
example of a condition that returns the CPU to Program Mode.
STOP puts CPU in Program Mode

Normal Program
X2

Y0

X20
STOP

X1
X10

X3

X4
Y1

X0

X2

X1

X3

X10

Y0
X4
Y1

END

Maintenance
and Troubleshooting

X0

END

DL350 User Manual, 2nd Edition

Maintenance
and Troubleshooting

In the example shown above, you could trigger X20 which would execute the STOP
instruction. The CPU would enter Program Mode and all outputs would be turned off.

9--22

Maintenance and Troubleshooting

Run Time Edits

The DL350 CPU allows you to make changes to the application program during Run
Mode. These edits are not “bumpless.” Instead, CPU scan is momentarily
interrupted (and the outputs are maintained in their current state) until the program
change is complete. This means if the output is off, it will remain off until the program
change is complete. If the output is on, it will remain on.

Maintenance
and Troubleshooting

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. There are some important operations sequence changes during
Run Time Edits.
1. If there is a syntax error in the new instruction, the CPU will not enter the
Run Mode.
2. If you delete an output coil reference and the output was on at the time, the
output will remain on until it is forced off with a programming device.
3. Input point changes are not acknowledged during Run Time Edits. So, if
you’re using a high-speed operation and a critical input comes on, the CPU
may not see the change.

Maintenance
and Troubleshooting

Maintenance
and Troubleshooting

Not all instructions can be edited during a Run Time Edit session. The following list
shows the instructions that can be edited.
Mnemonic

Description

Mnemonic

Description

TMR

Timer

OR, ORN

TMRF

Fast timer

Or greater than or equal
Or less than

TMRA

Accumulating timer

LD

Load data (constant)

TMRAF

Accumulating fast timer

LDD

Load data double (constant)

CNT

Counter

ADDD

Add data double (constant)

UDC

Up / Down counter

SUBD

Subtract data double (constant)

SGCNT

Stage counter

MUL

Multiply (constant)

STR, STRN

Store, Store not

DIV

Divide (constant)

AND, ANDN

And, And not

CMPD

Compare accumulator (constant)

OR, ORN

Or, Or not

ANDD

And accumulator (constant)

STRE, STRNE

Store equal, Store not equal

ORD

Or accumulator (constant)

ANDE, ANDNE

And equal, And not equal

XORD

Exclusive or accumulator (constant)

ORE, ORNE

Or equal, Or not equal

LDF

Load discrete points to accumulator

STR, STRN

Store greater than or equal
Store less than

OUTF

Output accumulator to discrete points

SHFR

Shift accumulator right

AND, ANDN

And greater than or equal
And less than

SHFL

Shift accumulator left

NCON

Numeric constant

DL350 User Manual, 2nd Edition

Maintenance and Troubleshooting

Use the program logic shown to describe
how this process works. In the example,
change X0 to C10. Note, the example assumes you have already placed the CPU
in Run Mode.

X0

X1

9--23

Y0
OUT

C0

Use the MODE key to select Run Time Edits
NEXT

NEXT

*MODE CHANGE*
RUN TIME EDIT?

ENT

Press ENT to confirm the Run Time Edits
ENT

(Note, the RUN LED on the DL205
Handheld starts flashing to indicate
Run Time Edits are enabled.)

*MODE CHANGE*
RUNTIME EDITS

Maintenance
and Troubleshooting

MODE

Find the instruction you want to change (X0)
SHFT

X
SET

A

0

SHFT

FD REF
FIND

$00000 STR X0

Press the arrow key to move to the X. Then enter the new contact (C10).
SHFT

C

2

B

1

A

0

ENT

RUNTIME EDIT?
STR C10

ENT

(Note, once you press ENT, the next
address is displayed.

OR C0

Maintenance
and Troubleshooting

Press ENT to confirm the change

Maintenance
and Troubleshooting

DL350 User Manual, 2nd Edition

9--24

Maintenance and Troubleshooting

Forcing I/O Points

There are many times, especially during machine startup and troubleshooting,
where you need the capability to force an I/O point to be either on or off. Before you
use a programming device to force any data type, it is important to understand how
the DL350 CPU processes the forcing requests.

Maintenance
and Troubleshooting

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.
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.

S

The following diagrams show a brief
example of how you could use the
Handheld Programmer to force an I/O
point. The image register will not be
updated with the status from the input
module. Also, the solution from the
application program will not be used to
update the output image register. The
example assumes you have already
placed the CPU into Run Mode.

X0

Y0
OUT

C0

From a clear display, use the following keystrokes

Maintenance
and Troubleshooting

Maintenance
and Troubleshooting

STAT

16P STATUS
BIT REF
X

ENT

Use the PREV or NEXT keys to select the Y data type. (Once the Y
appears, press 0 to start at Y0.)
NEXT

A

0

Y

ENT

Use arrow keys to select point, then use
ON and OFF to change the status
SHFT

DL350 User Manual, 2nd Edition

ON
INS

10

Y

0

Y

0

Y2 is now on

Y

10

Maintenance and Troubleshooting

Regular Forcing
with Direct Access

From a clear display, use the following
keystrokes to force Y10 ON
SHFT

Y
MLS

B

1

A

0

SHFT

ON
INS

B

1

A

0

SHFT

OFF
DEL

No fill indicates point is off.

BIT FORCE
Y10

Maintenance
and Troubleshooting

Y
MLS

Solid fill indicates point is on.

BIT FORCE
Y10

From a clear display, use the following
keystrokes to force Y10 OFF
SHFT

9--25

Maintenance
and Troubleshooting
Maintenance
and Troubleshooting

DL350 User Manual, 2nd Edition

1

Auxiliary Functions

1A

In This Appendix. . . .
— Introduction
— AUX 2* — RLL Operations
— AUX 3* — V-memory Operations
— AUX 4* — I/O Configuration
— AUX 5* — CPU Configuration
— AUX 6* — Handheld Programmer Configuration
— AUX 7* — EEPROM Operations
— AUX 8* — Password Operations

Appendix A
Auxiliary Functions

A--2

Auxiliary Functions

Introduction
What are 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. You can access the AUX Functions from DirectSOFT or from the
DL205 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 DirectSOFT package. Even though this
Appendix provides many examples of how the AUX functions operate, you should
supplement this information with the documentation for your choice of programming
device. Note, the Handheld Programmer may have additional AUX functions that
are not supported with the DL350 CPU.

AUX Function and Description 350

HPP

AUX 2* — RLL Operations
21

Check Program



--

22

Change Reference



--

23

Clear Ladder Range



--

24

Clear All Ladders



--



--

AUX 3* — V-Memory Operations
31

Clear V Memory

AUX Function and Description

Show I/O Configuration



--

42

I/O Diagnostics



--

44

Power-up I/O Configuration Check



--

45

Select Configuration



--

61

Show Revision Numbers





62

Beeper On / Off





65

Run Self Diagnostics





AUX 7* — EEPROM Operations
71

Copy CPU memory to
HPP EEPROM





72

Write HPP EEPROM to CPU





73

Compare CPU to
HPP EEPROM





74

Blank Check (HPP EEPROM)





75

Erase HPP EEPROM





76

Show EEPROM Type
(CPU and HPP)





AUX 5* — CPU Configuration

AUX 8* — Password Operations

51

Modify Program Name



--

52

Display / Change Calendar



--

53

Display Scan Time



--

54

Initialize Scratchpad



--

55

Set Watchdog Timer



--



56

Set CPU Network Address



--



57

Set Retentive Ranges



--

-- not applicable

58

Test Operations



--

59

Bit Override



--

5B

Counter Interface Config.



--

5C

Display Error History



--

DL350 User Manual, 2nd Edition

HPP

AUX 6* — Handheld Programmer Configuration

AUX 4* — I/O Configuration
41

350

81

Modify Password



--

82

Unlock CPU



--

83

Lock CPU



--

supported
not supported

Auxiliary Functions

DirectSOFT provides various menu options during both online and offline
programming. Some of the AUX functions are only available during online
programming, some only during offline programming, and some during both online
and offline programming. The following diagram shows and example of the PLC
operations menu available within DirectSOFT.

Menu Options

Accessing AUX
Functions via the
Handheld
Programmer

You can also access the AUX functions by using a Handheld Programmer. Plus,
remember some of the AUX functions are only available from the Handheld.
Sometimes the AUX name or description cannot fit on one display. If you want to see
the complete description, press the arrow keys to scroll left and right. Also,
depending on the current display, you may have to press CLR more than once.
CLR

AUX FUNCTION SELECTION
AUX 2* RLL OPERATIONS

AUX

Use NXT or PREV to cycle through the menus

AUX FUNCTION SELECTION
AUX 3* V OPERATIONS

NEXT

Press ENT to select sub-menus

AUX 3* V OPERATIONS
AUX 31 CLR V MEMORY

ENT

You can also enter the exact AUX number to go straight to the sub-menu.
Enter the AUX number directly
CLR

D

3

B

1

AUX

AUX 3* V OPERATIONS
AUX 31 CLR V MEMORY

DL350 User Manual, 2nd Edition

Appendix A
Auxiliary Functions

Accessing AUX
Functions via
DirectSOFT

A--3

Appendix A
Auxiliary Functions

A--4

Auxiliary Functions

AUX 2* — RLL Operations
AUX 21, 22, 23
and 24

AUX 21
Check Program

There are four AUX functions available that you can use to perform various
operations on the control program.
S AUX 21 — Check Program
S AUX 22 — Change Reference
S AUX 23 — Clear Ladder Range
S AUX 24 — Clear Ladders
Both the Handheld and DirectSOFT automatically check for errors during program
entry. However, there may be occasions when you want to check a program that has
already been in the CPU. There are two types of checks available:
S Syntax
S Duplicate References
The Syntax check will find a wide variety of programming errors, such as missing
END statements, incomplete FOR/NEXT loops, etc. If you perform this check and
get an error, see Appendix B for a complete listing of programming error codes.
Correct the problem and then continue running the Syntax check until the message
“NO SYNTAX ERROR” appears.
Use the Duplicate Reference check to verify you have not used the same output coil
reference more than once. Note, this AUX function will also find the same outputs
even if they have been used with the OROUT instruction, which is perfectly
acceptable.
This AUX function is available on the PLC Diagnostics sub-menu from within
DirectSOFT.

AUX 22
Change Reference

There will be times when you need to change an I/O address reference or control
relay reference. AUX 22 allows you to quickly and easily change all occurrences,
(within an address range), of a specific instruction. For example, you can replace
every instance of X5 with X10.

AUX 23
Clear Ladder
Range

There have been many times when you take existing programs and add or remove
certain portions to solve new application problems. By using AUX 23 you can select
and delete a portion of the program. DirectSOFT does not have a menu option for
this AUX function, but you can select the appropriate portion of the program and cut it
with the editing tools.

AUX 24
Clear Ladders

AUX 24 clears the entire program from CPU memory. Before you enter a new
program, you should always clear ladder memory. This AUX function is available on
the PLC/Clear PLC sub-menu within DirectSOFT.

AUX 3* — V-memory Operations
AUX 31
Clear V--Memory

S AUX 31 — Clear V--memory
AUX 31 clears all the information from the V-memory locations available for general
use. This AUX function is available on the PLC/Clear PLC sub-menu within
DirectSOFT.

DL350 User Manual, 2nd Edition

Auxiliary Functions

A--5

AUX 41
Show I/O
Configuration

This AUX function allows you to display the current I/O configuration. With the
Handheld Programmer, you can scroll through each base and I/O slot to view the
complete configuration. The configuration shows the type of module installed in
each slot. DirectSOFT provides the same information, but it is much easier to view
because you can view a complete base on one screen.

AUX 5* — CPU Configuration
AUX 51 -- 58

AUX 51
Modify Program
Name

AUX 52
Display /Change
Calendar

There are several AUX functions available that you can use to setup, view, or change
the CPU configuration.
S AUX 51 — Modify Program Name
S AUX 52 — Display / Change Calendar
S AUX 53 — Display Scan Time
S AUX 54 — Initialize Scratchpad
S AUX 55 — Set Watchdog Timer
S AUX 56 — Configure Comm Port
S AUX 57 — Set Retentive Ranges
S AUX 5C — Display Error / Message History
The DL305 products can use a program name for the CPU program or a program
stored on EEPROM in the Handheld Programmer. Note, you cannot have multiple
programs stored on the EEPROM. The program name can be up to eight characters
in length and can use any of the available characters (A--Z, 0--9). AUX 51 allows you
to enter a program name. You can also perform this operation from within
DirectSOFT by using the PLC/Setup sub-menu. Once you’ve entered a program
name, you can only clear the name by using AUX 54 to reset the system memory.
Make sure you understand the possible ramifications of AUX 54 before you use it!
The DL350 CPU has a clock and calendar feature. If you are using this, you can use
the Handheld and AUX 52 to set the time and date. The following format is used.
S Date — Year, Month, Date, Day of week (0 -- 6, Sunday thru Saturday)
S Time — 24 hour format, Hours, Minutes, Seconds
You can use the AUX function to change any component of the date or time.
However, the CPU will not automatically correct any discrepancy between the date
and the day of the week. For example, if you change the date to the 15th of the month
and the 15th is on a Thursday, you will also have to change the day of the week
(unless the CPU already shows the date as Thursday).
You can also perform this operation from within DirectSOFT by using the PLC/Setup
sub-menu.

DL350 User Manual, 2nd Edition

Appendix A
Auxiliary Functions

AUX 4* — I/O Configuration

Appendix A
Auxiliary Functions

A--6

Auxiliary Functions

AUX 53
Display Scan Time
AUX 54
Initialize
Scratchpad

AUX 53 displays the current, minimum, and maximum scan times. The minimum
and maximum times are the ones that have occurred since the last Program Mode to
Run Mode transition. You can also perform this operation from within DirectSOFT
by using the PLC/Diagnostics sub-menu.
The DL350 CPU 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.
NOTE: You may never have to use this feature unless you have made changes that
affect 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 change from program to program without ever initializing system
memory.
AUX 54 resets the system memory to the default values. You can also perform this
operation from within DirectSOFT by using the PLC/Setup sub-menu.

AUX 55
Set Watchdog
Timer

The DL350 CPU has a “watchdog” timer that is used to monitor the scan time. The
default value set from the factory is 200 ms. If the scan time exceeds the watchdog
time limit, the CPU automatically leaves RUN mode and enters PGM mode. The
Handheld displays the following message E003 S/W TIMEOUT when the scan
overrun occurs.
Use AUX 55 to increase or decrease the watchdog timer value. You can also perform
this operation from within DirectSOFT by using the PLC/Setup sub-menu.

AUX 56
CPU Network
Address

Since the DL350 CPU has an additional communication port, you can use the
Handheld to set the network address for the port and the port communication
parameters. The default settings are:
S Station address 1
S HEX mode
S Odd parity
You can use this port with either the Handheld Programmer, DirectSOFT, or, as a
DirectNET communication port. The DirectNET Manual provides additional
information about communication settings required for network operation.
NOTE: You will only need to use this procedure if you have the bottom port
connected to a network. Otherwise, the default settings will work fine.
Use AUX 56 to set the network address and communication parameters. You can
also perform this operation from within DirectSOFT by using the PLC/Setup
sub-menu.

DL350 User Manual, 2nd Edition

Auxiliary Functions

The DL350 CPU provides 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:
DL350

Memory Area

Default Range

Avail. Range

Control Relays

C1000 -- C1777

C0 -- C1777

V--Memory

V1400 -- V37777

V0 -- V37777

Timers

None by default

T0 -- T377

Counters

CT0 -- CT177

CT0 -- CT177

Stages

None by default

S0 -- S1777

Use AUX 57 to change the retentive ranges. You can also perform this operation
from within DirectSOFT™ by using the PLC/Setup sub-menu.
WARNING: The DL350 CPUs do not come with a battery. The super capacitor
will retain the values in the event of a power loss, but only up to 1 week. The
retention time may be less in some conditions. If the retentive ranges are
important for your application, make sure you obtain the optional battery.
AUX 5C
Display Error
History

The DL350 CPU will automatically log any system error codes and custom
messages created with the FAULT instructions. The CPU logs the error code, date,
and time the error occurred. There are two separate tables that store this
information.
S Error Code Table -- the system logs up to 32 errors in the table. When
an error occurs, the errors already on the table are pushed down and
the most recent error is loaded into the top slot. If the table is full when
an error occurs, the oldest error is pushed out (erased) of the table.
S Message Table -- the system logs up to 16 messages in this table. When
a message is triggered, the messages already stored in the table are
pushed down and the most recent message is loaded into the top slot. If
the table is full when an error occurs, the oldest message is pushed out
(erased) of the table.
The following diagram shows an example of an error table for messages.
Date

Time

Message

1997--05--26

08:41:51:11

* Conveyor--2 stopped

1997--04--30

17:01:11:56

* Conveyor--1 stopped

1997--04--30

17:01:11:12

* Limit SW1 failed

1997--04--28

03:25:14:31

* Saw Jam Detect

You can use AUX Function 5C to show the error codes or messages. You can also
view the errors and messages from within DirectSOFT by using the
PLC/Diagnostics sub-menu.

DL350 User Manual, 2nd Edition

Appendix A
Auxiliary Functions

AUX 57
Set Retentive
Ranges

A--7

Appendix A
Auxiliary Functions

A--8

Auxiliary Functions

AUX 6* — Handheld Programmer Configuration
AUX 61
Show Revision
Numbers

As with most industrial control products, there are cases when additional features
and enhancements are made. Sometimes these new features only work with certain
releases of firmware. By using AUX 61 you can quickly view the CPU and Handheld
Programmer firmware revision numbers. This information (for the CPU) is also
available from within DirectSOFT from the PLC/Diagnostics sub-menu.

AUX 7* — EEPROM Operations
AUX 71 -- 76

There are several AUX functions available you can use to move programs between
the CPU memory and an optional EEPROM installed in the Handheld Programmer.
S AUX 71 — Read from CPU memory to HPP EEPROM
S AUX 72 — Write HPP EEPROM to CPU
S AUX 73 — Compare CPU to HPP EEPROM
S AUX 74 — Blank Check (HPP EEPROM)
S AUX 75 — Erase HPP EEPROM
S AUX 76 — Show EEPROM Type (CPU and HPP)

AUX 71
CPU to HPP
EEPROM

AUX 71 copies information from the CPU memory to an EEPROM installed in the
Handheld Programmer.
You can copy different portions of EEPROM (HP) memory to the CPU memory as
shown in the previous table. The amount of data you can copy depends on the CPU.

AUX 72
HPP EEPROM to
CPU

AUX 72 copies information from an EEPROM installed in the Handheld Programmer
to the CPU. You can copy different types of information from CPU memory as shown
in the previous table.

AUX 73
Compare HPP
EEPROM to CPU

AUX 73 compares the program in the Handheld programmer (EEPROM) with the
CPU program. You can compare different types of information as shown previously.
There is also an option called “etc.” that allows you to check all of the areas
sequentially without re-executing the AUX function every time.

AUX 74
HPP EEPROM
Blank Check

AUX 74 allows you to check the EEPROM in the handheld programmer to make sure
it is blank. It’s a good idea to use this function anytime you start to copy an entire
program to an EEPROM in the handheld programmer.

AUX 75
Erase HPP
EEPROM

AUX 75 allows you to clear all data in the EEPROM in the handheld programmer.
You should use this AUX function before you copy a program from the CPU.

AUX 76
Show EEPROM
Type

You can use AUX 76 to quickly determine what size EEPROM is installed in the
Handheld Programmer.

DL350 User Manual, 2nd Edition

Auxiliary Functions

A--9

AUX 81 -- 83

There are several AUX functions available that you can use to modify or enable the
CPU password. You can use these features during on-line communications with the
CPU, or, you can also use them with an EEPROM installed in the Handheld
Programmer during off-line operation. This will allow you to develop a program in the
Handheld Programmer and include password protection.
S AUX 81 — Modify Password
S AUX 82 — Unlock CPU
S AUX 83 — Lock CPU

AUX 81
Modify Password

You can use AUX 81 to provide an extra measure of protection by entering a
password that prevents unauthorized machine operations. If you are using the
standard level password, it must be an eight-character numeric (0--9) code. Once
you’ve entered a password, you can remove it by entering all zeros (00000000). This
is the default from the factory.
The DL350 also features a multi--level password that you select by entering the
character “A” and seven numeric characters. This level of protection differs from the
standard in that it allows an operator interface device to access and change
V--memory data (i.e., presets). However, it also does not allow a ladder program edit.
Once you’ve entered a password, you can lock the CPU against access. There are
two ways to lock the CPU with the Handheld Programmer.
S The CPU is always locked after a power cycle (if a password is present).
S You can use AUX 83 and AUX 84 to lock and unlock the CPU.
You can also enter or modify a password from within DirectSOFT by using the
PLC/Password sub-menu. This feature works slightly differently in DirectSOFT.
Once you’ve entered a password, the CPU is automatically locked when you exit the
software package. It will also be locked if the CPU is power cycled.
WARNING: Make sure you remember the password before you lock the CPU.
Once the CPU is locked you cannot view, change, or erase the password. If
you do not remember the password, you must return the CPU to the factory to
have the password removed. This will also erase ALL memory in the CPU
which is the policy of AutomationDirect.
NOTE: The D3--350 CPU supports 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).

AUX 82
Unlock CPU

AUX 81 can be used to unlock a CPU that has been password protected.
DirectSOFT will automatically ask you to enter the password if you attempt to
communicate with a CPU that contains a password.

AUX 83
Lock CPU

AUX 83 can be used to lock a CPU that contains a password. Once the CPU is
locked, you will have to enter a password to gain access. Remember, this is not
necessary with DirectSOFT since the CPU is automatically locked whenever you
exit the software package.

DL350 User Manual, 2nd Edition

Appendix A
Auxiliary Functions

AUX 8* — Password Operations

1

Error Codes

In This Appendix. . . .
— Error Code Table

1B

Appendix C
Error Codes

Appendix B
Error Codes

Appendix A
DL405 Error Codes

B--2

Error Codes

DL305 Error Code

Description

E003
SOFTWARE
TIME-OUT

If the program scan time exceeds the time allotted to the watchdog timer, this
error will occur. SP51 will be on and the error code will be stored in V7755. To
correct this problem add RSTWT instructions in FOR NEXT loops and
subroutines or use AUX 55 to extend the time allotted to the watchdog timer.

E041
CPU BATTERY LOW

The CPU battery is low and should be replaced. SP43 will be on and the error
code will be stored in V7757.

E099
PROGRAM
MEMORY
EXCEEDED

If the compiled program length exceeds the amount of available CPU RAM
this error will occur. SP52 will be on and the error code will be stored in
V7755. Reduce the size of the application program.

E104
WRITE FAILED

A write to the CPU was not successful. Disconnect the power, remove the
CPU, and make sure the EEPROM is not write protected. If the EEPROM is
not write protected, make sure the EEPROM is installed correctly. If both
conditions are OK, replace the CPU.

E151
BAD COMMAND

A parity error has occurred in the application program. SP44 will be on and
the error code will be stored in V7755 .This problem may possibly be due to
electrical noise .Clear the memory and download the program again. Correct
any grounding problems .If the error returns replace the EEPROM or the
CPU.

E155
RAM FAILURE

A checksum error has occurred in the system RAM. SP44 will be on and the
error code will be stored in V7755. This problem may possibly be due to a low
battery, electrical noise or a CPU RAM failure. Clear the memory and
download the program again. Correct any grounding problems. If the error
returns replace the CPU.

E202
MISSING I/O
MODULE

An I/O module has failed to communicate with the CPU or is missing from the
base. SP45 will be on and the error code will be stored in V7756. Run AUX42
to determine the slot and base location of the module reporting the error.

E210
POWER FAULT

A short duration power drop-out occurred on the main power line supplying
power to the base.

E250
COMMUNICATION
FAILURE IN THE I/O
CHAIN

A failure has occurred in the local I/O system. The problem could be in the
base I/O bus or the base power supply. SP45 will be on and the error code
will be stored in V7755. Run AUX42 to determine the base location reporting
the error.

E252
NEW I/O CFG

This error occurs when the auto configuration check is turned on in the CPU
and the actual I/O configuration has changed either by moving modules in a
base or changing types of modules in a base. You can return the modules to
the original position/types or run AUX45 to accept the new configuration.
SP47 will be on and the error code will be stored in V7755.

E262
I/O OUT OF RANGE

An out of range I/O address has been encountered in the application
program. Correct the invalid address in the program. SP45 will be on and the
error code will be stored in V7755.

DL350 User Manual, 2nd Edition

Error Codes

B--3

A data error was encountered during communications with the CPU. Clear
the error and retry the request. If the error continues check the cabling
between the two devices, replace the handheld programmer, then if
necessary replace the CPU. SP46 will be on and the error code will be stored
in V7756.

E313
HP COMM
ERROR 3

An address error was encountered during communications with the CPU.
Clear the error and retry the request. If the error continues check the cabling
between the two devices, replace the handheld programmer, then if
necessary replace the CPU. SP46 will be on and the error code will be stored
in V7756.

E316
HP COMM
ERROR 6

A mode error was encountered during communications with the CPU. Clear
the error and retry the request. If the error continues replace the handheld
programmer, then if necessary replace the CPU. SP46 will be on and the
error code will be stored in V7756.

E320
HP COMM
TIME-OUT

The CPU did not respond to the handheld programmer communication
request. Check to insure cabling is correct and not defective. Power cycle the
system if the error continues replace the CPU first and then the handheld
programmer if necessary.

E321
COMM ERROR

A data error was encountered during communication with the CPU. Check to
insure cabling is correct and not defective. Power cycle the system and if the
error continues replace the CPU first and then the handheld programmer if
necessary.

E4**
NO PROGRAM

A syntax error exists in the application program. The most common is a
missing END statement. Run AUX21 to determine which one of the E4**
series of errors is being flagged. SP52 will be on and the error code will be
stored in V7755.

E401
MISSING END
STATEMENT

All application programs must terminate with an END statement. Enter the
END statement in appropriate location in your program. SP52 will be on and
the error code will be stored in V7755.

E402
MISSING LBL

A GOTO, GTS, MOVMC or LDLBL instruction was used without the
appropriate label. Refer to the programming manual for details on these
instructions. SP52 will be on and the error code will be stored in V7755.

E403
MISSING RET

A subroutine in the program does not end with the RET instruction. SP52 will
be on and the error code will be stored in V7755.

E404
MISSING FOR

A NEXT instruction does not have the corresponding FOR instruction. SP52
will be on and the error code will be stored in V7755.

DL350 User Manual, 2nd Edition

Appendix C
Error Codes

E312
HP COMM
ERROR 2

Appendix B
Error Codes

Description

Appendix A
DL405 Error Codes

DL305 Error Code

Appendix C
Error Codes

Appendix B
Error Codes

Appendix A
DL405 Error Codes

B--4

Error Codes

DL305 Error Code

Description

E405
MISSING NEXT

A FOR instruction does not have the corresponding NEXT instruction. SP52
will be on and the error code will be stored in V7755.

E406
MISSING IRT

An interrupt routine in the program does not end with the IRT instruction.
SP52 will be on and the error code will be stored in V7755.

E412
SBR/LBL>64

There is greater than 64 SBR, LBL or DLBL instructions in the program. This
error is also returned if there is greater than 128 GTS or GOTO instructions
used in the program. SP52 will be on and the error code will be stored in
V7755.

E413
FOR/NEXT>64

There is greater than 64 FOR/NEXT loops in the application program. SP52
will be on and the error code will be stored in V7755.

E421
DUPLICATE STAGE
REFERENCE

Two or more SG or ISG labels exist in the application program with the same
number. A unique number must be allowed for each Stage and Initial Stage.
SP52 will be on and the error code will be stored in V7755.

E422
DUPLICATE
SBR/LBL
REFERENCE

Two or more SBR or LBL instructions exist in the application program with the
same number. A unique number must be allowed for each Subroutine and
Label. SP52 will be on and the error code will be stored in V7755.

E423
NESTED LOOPS

Nested loops (programming one FOR/NEXT loop inside of another) is not
allowed in the DL350 series. SP52 will be on and the error code will be stored
in V7755.

E431
INVALID ISG/SG
ADDRESS

An ISG or SG must not be programmed after the end statement such as in a
subroutine. SP52 will be on and the error code will be stored in V7755.

E432
INVALID JUMP
(GOTO) ADDRESS

A LBL that corresponds to a GOTO instruction must not be programmed after
the end statement such as in a subroutine. SP52 will be on and the error
code will be stored in V7755.

E433
INVALID SBR
ADDRESS

A SBR must be programmed after the end statement, not in the main body of
the program or in an interrupt routine. SP52 will be on and the error code will
be stored in V7755.

E435
INVALID RT
ADDRESS

A RT must be programmed after the end statement, not in the main body of
the program or in an interrupt routine. SP52 will be on and the error code will
be stored in V7755.

DL350 User Manual, 2nd Edition

Error Codes

B--5

An INT must be programmed after the end statement, not in the main body of
the program. SP52 will be on and the error code will be stored in V7755.

E438
INVALID IRT
ADDRESS

An IRT must be programmed after the end statement, not in the main body of
the program. SP52 will be on and the error code will be stored in V7755.

E440
INVALID DATA
ADDRESS

Either the DLBL instruction has been programmed in the main program area
(not after the END statement), or the DLBL instruction is on a rung containing
input contact(s).

E441
ACON/NCON

An ACON or NCON must be programmed after the end statement, not in the
main body of the program. SP52 will be on and the error code will be stored
in V7755.

E451
BAD MLS/MLR

MLS instructions must be numbered in ascending order from top to bottom.

E452
X AS COIL

An X data type is being used as a coil output.

E453
MISSING T/C

A timer or counter contact is being used where the associated timer or
counter does not exist.

E454
BAD TMRA

One of the contacts is missing from a TMRA instruction.

E455
BAD CNT

One of the contacts is missing from a CNT or UDC instruction.

E456
BAD SR

One of the contacts is missing from the SR instruction.

E461
STACK OVERFLOW

More than nine levels of logic have been stored on the stack. Check the use
of OR STR and AND STR instructions.

E462
STACK
UNDERFLOW

An unmatched number of logic levels have been stored on the stack. Insure
the number of AND STR and OR STR instructions match the number of STR
instructions.

E463
LOGIC ERROR

A STR instruction was not used to begin a rung of ladder logic.

E464
MISSING CKT

A rung of ladder logic is not terminated properly.

E471
DUPLICATE COIL
REFERENCE

Two or more OUT instructions reference the same I/O point.

E472
DUPLICATE TMR
REFERENCE

Two or more TMR instructions reference the same number.

DL350 User Manual, 2nd Edition

Appendix C
Error Codes

E436
INVALID INT
ADDRESS

Appendix B
Error Codes

Description

Appendix A
DL405 Error Codes

DL305 Error Code

Appendix C
Error Codes

Appendix B
Error Codes

Appendix A
DL405 Error Codes

B--6

Error Codes

DL305 Error Code

Description

E473
DUPLICATE CNT
REFERENCE

Two or more CNT instructions reference the same number.

E480
INVALID CV
ADDRESS

The CV instruction is used in a subroutine or program interrupt routine. The
CV instruction may only be used in the main program area (before the END
statement).

E481
CONFLICTING
INSTRUCTIONS

An instruction exists between convergence stages.

E482
MAX. CV
INSTRUCTIONS
EXCEEDED

Number of CV instructions exceeds 17.

E483
INVALID CVJMP
ADDRESS

CVJMP has been used in a subroutine or a program interrupt routine.

E484
MISSING CV
INSTRUCTION

CVJMP is not preceded by the CV instruction. A CVJMP must immediately
follow the CV instruction.

E485
NO CVJMP

A CVJMP instruction is not placed between the CV and the SG, ISG, BLK,
BEND, END instruction.

E486
INVALID BCALL
ADDRESS

A BCALL is used in a subroutine or a program interrupt routine. The
BCALL instruction may only be used in the main program area (before the
END statement).

E487
MISSING BLK
INSTRUCTION

The BCALL instruction is not followed by a BLK instruction.

E488
INVALID BLK
ADDRESS

The BLK instruction is used in a subroutine or a program interrupt. Another
BLK instruction is used between the BCALL and the BEND instructions.

E489
DUPLICATED CR
REFERENCE

The control relay used for the BLK instruction is being used as an output
elsewhere.

DL350 User Manual, 2nd Edition

Error Codes

E490
MISSING SG
INSTRUCTION

The BLK instruction is not immediately followed by the SG instruction.

E491
INVALID ISG
INSTRUCTION
ADDRESS

There is an ISG instruction between the BLK and BEND instructions.

E492
INVALID BEND
ADDRESS

The BEND instruction is used in a subroutine or a program interrupt routine.
The BEND instruction is not followed by a BLK instruction.

E493
A [CV, SG, ISG, BLK, BEND] instruction must immediately follow the BEND
MISSING REQUIRED instruction.
INSTRUCTION
The BLK instruction is not followed by a BEND instruction.

E499
PRINT
INSTRUCTION

Invalid PRINT instruct usage. Quotations and/or spaces were not entered or
entered incorrectly.

E501
BAD ENTRY

An invalid keystroke or series of keystrokes was entered into the handheld
programmer.

E502
BAD ADDRESS

An invalid or out of range address was entered into the handheld
programmer.

E503
BAD COMMAND

An invalid instruction was entered into the handheld programmer.

E504
BAD REF/VAL

An invalid value or reference number was entered with an instruction.

E505
INVALID
INSTRUCTION

An invalid instruction was entered into the handheld programmer.

E506
INVALID
OPERATION

An invalid operation was attempted by the handheld programmer.

E520
BAD OP--RUN

An operation which is invalid in the RUN mode was attempted by the
handheld programmer.

E521
BAD OP--TRUN

An operation which is invalid in the TEST RUN mode was attempted by the
handheld programmer.

E523
BAD OP--TPGM

An operation which is invalid in the TEST PROGRAM mode was attempted
by the handheld programmer.

E524
BAD OP--PGM

An operation which is invalid in the PROGRAM mode was attempted by the
handheld programmer.

DL350 User Manual, 2nd Edition

Appendix C
Error Codes

E494
MISSING BEND
INSTRUCTION

Appendix B
Error Codes

Description

Appendix A
DL405 Error Codes

DL305 Error Code

B--7

Appendix C
Error Codes

Appendix B
Error Codes

Appendix A
DL405 Error Codes

B--8

Error Codes

DL305 Error Code

Description

E525
MODE SWITCH

An operation was attempted by the handheld programmer while the CPU
mode switch was in a position other than the TERM position.

E526
OFF LINE

The handheld programmer is in the OFFLINE mode. To change to the
ONLINE mode use the MODE key.

E527
ON LINE

The handheld programmer is in the ON LINE mode. To change to the OFF
LINE mode use the MODE the key.

E528
CPU MODE

The operation attempted is not allowed during a Run Time Edit.

E540
CPU LOCKED

The CPU has been password locked. To unlock the CPU use AUX82 with the
password.

E541
WRONG
PASSWORD

The password used to unlock the CPU with AUX82 was incorrect.

E542
PASSWORD RESET

The CPU powered up with an invalid password and reset the password to
00000000. A password may be re-entered using AUX81.

E601
MEMORY FULL

Attempted to enter an instruction which required more memory than is
available in the CPU.

E602
INSTRUCTION
MISSING

A search function was performed and the instruction was not found.

E604
REFERENCE
MISSING

A search function was performed and the reference was not found.

E610
BAD I/O TYPE

The application program has referenced an I/O module as the incorrect type
of module.

E620
OUT OF MEMORY

Incorrect structure of LDLBL, MOV, or MOVMC command. An attempt to
transfer more data between the CPU and handheld programmer than the
receiving device can hold.

E621
EEPROM NOT
BLANK

An attempt to write to a non-blank EEPROM was made. Erase the EEPROM
and then retry the write.

E622
NO HPP EEPROM

A data transfer was attempted with no EEPROM (or possibly a faulty
EEPROM) installed in the handheld programmer.

E623
SYSTEM EEPROM

A function was requested with an EEPROM which contains system
information only.

E624
V-MEMORY ONLY

A function was requested with an EEPROM which contains V-memory data
only.

E625
PROGRAM ONLY

A function was requested with an EEPROM which contains program data
only.

DL350 User Manual, 2nd Edition

Error Codes

B--9

E627
BAD WRITE

An attempt to write to a write protected or faulty EEPROM was made. Check
the write protect jumper and replace the EEPROM if necessary.

E640
COMPARE ERROR

A compare between the EEPROM and the CPU was found to be in error.

E650
HPP SYSTEM
ERROR

A system error has occurred in the handheld programmer. Power cycle the
handheld programmer. If the error returns replace the handheld programmer.

E651
HPP ROM ERROR

A ROM error has occurred in the handheld programmer. Power cycle the
handheld programmer. If the error returns replace the handheld programmer.

E652
HPP RAM ERROR

A RAM error has occurred in the handheld programmer. Power cycle the
handheld programmer. If the error returns replace the handheld programmer.

Appendix B
Error Codes

Description

Appendix A
DL405 Error Codes

DL305 Error Code

Appendix C
Error Codes

DL350 User Manual, 2nd Edition

1

Instruction
Execution Times
In This Appendix. . . .
— Introduction
— Boolean Instructions
— Comparative Boolean
— Immediate Instructions
— Timer, Counter, Shift Register Instructions
— Accumulator Data Instructions
— Logical Instructions
— Math Instructions
— Bit Instructions
— Number Conversion Instructions
— Table Instructions
— CPU Control Instructions
— Program Control Instructions
— Interrupt Instructions
— Network Instructions
— Message Instructions
— RLL PLUS Instructions

1C

Appendix C
Inst. Execution Times

Appendix B
DL405 Error Codes

Appendix A
DL405 Error Codes

C--2

Instruction Execution Times

Introduction
This appendix contains several tables that provide the instruction execution times
for the DL350 CPU. You will notice is that many of the execution times depend on the
type of data being used with the instruction. For example, a few of the instructions
that use V-memory locations are further defined by the following items.
S Data Registers
S Bit Registers
V-Memory Data
Registers

Some V-memory locations are considered data registers. For example, the
V-memory locations that store the timer or counter current values, or just regular
user V--memory would be considered as a V-memory data register. Don’t think that
you cannot load a bit pattern into these types of registers, you can. It’s just that their
primary use is as a data register. The following locations are considered as data
registers.
Data Registers

V-Memory Bit
Registers

DL350

Timer Current Values

V0 -- V377

Counter Current Values

V1000 -- V1177

User Data Words

V1400 -- V7377
V10000 -- V17777

You may recall that some of the discrete points such as X, Y, C, etc. are automatically
mapped into V--memory. The following locations that contain this data are
considered bit registers.
Bit Registers

DL350

Input Points (X)

V40400 -- V 40437

Output Points (Y)

V40500 -- V40537

Control Relays (C)

V40600 -- V40677

Timer Status Bits

V41100 -- V41117

Counter Status Bits

V41040 -- V41147

Stages

V41000 -- V41077

DL350 User Manual, 2nd Edition

Instruction Execution Times

Some of the instructions can have more than one parameter so the table shows
execution times that depend on the amount and type of parameters. For example,
the SET instruction can be used to set a single point or a range of points. If you
examine the execution table you’ll notice the available data types and execution
times for both situations. The following diagram shows an example.
X0

X1

Y0 -- Y7
SET

Two Locations Available

Appendix A
DL405 Error Codes

How to Read the
Tables

C--3

C0

RST

1st #:

X, Y, C, S

2nd #:

X, Y, C, S, (N pt)

1st #:

X, Y, C, S

2nd #:

X, Y, C, S, (N pt)

17.4 μs
12.0μs+5.4μsxN
19.5 μs
10.5μs+5.2μsxN

Appendix B
DL405 Error Codes

SET

Execution depends
on numbers of
locations and types
of data used

Appendix C
Inst. Execution Times
Appendix C
Inst. Execution Times

DL350 User Manual, 2nd Edition

Appendix C
Inst. Execution Times

Appendix B
DL405 Error Codes

Appendix A
DL405 Error Codes

C--4

Instruction Execution Times

Boolean Instructions
Boolean Instructions
Instruction

Legal Data Types

DL350
Execute

Not Exec

STR

X, Y, C, T, CT,S, SP

.74 μs

.74 μs

STRN

X, Y, C, T, CT,S, SP

0.68 μs

0.74 μs

OR

X, Y, C, T, CT, S, SP

0.56 μs

0.56 μs

ORN

X, Y, C, T, CT,S, SP

0.6 μs

0.6 μs

AND

X, Y, C, T, CT, S, SP

0.46 μs

0.46 μs

ANDN

X, Y, C, T, CT, S, SP

0.56 μs

0.56 μs

ANDSTR

None

0.4 μs

0.4 μs

ORSTR

None

0.4 μs

0.4 μs

OUT

X, Y, C

2.0 μs

2.0 μs

OUTH

X, Y, C

1.1 μs

1.1 μs

OROUT

X, Y, C

2.4 μs

2.4 μs

PD

X, Y, C

16.6 μs

16.6 μs

SET

1st #:

X, Y, C, S

2nd #:

X, Y, C, S (N pt)

1st #:

X, Y, C, S

2nd #:

X, Y, C, S (N pt)

1st #:

T, CT

2nd #:

T, CT (N pt)

RST

DL350 User Manual, 2nd Edition

10.6 μs

1.1 μs

11.4μs+ 0.9μsxN

1.1 μs

10.6 μs

1.1 μs

11.4μs+ 0.9μsxN

1.1 μs

10.6 μs

1.1 μs

11.4μs+ 0.9μsxN

1.1 μs

Instruction Execution Times

Comparative Boolean Instructions
Instruction
STRE

Legal Data Types
1st

2nd

V: Data Reg.

V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)

P:Indir. (Data)

P:Indir. (Bit)

V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)
V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)

1st

2nd

V: Data Reg.

V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)

V: Bit Reg.

P:Indir. (Bit)

V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)
V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)

8.7μs

8.7μs

5.5μs
35.9μs

5.5μs
35.9μs

8.7μs

8.7μs

5.5μs
35.9μs

5.5μs
35.9μs

—
35.6μs

35.6μs

32.6μs
60.7μs

32.6μs
60.7μs

35.6μs
32.6μs
60.7μs

35.6μs
—
32.6μs
60.7μs

8.7μs

8.7μs

5.5μs
35.9μs

5.5μs
35.9μs

8.7μs

8.7μs

5.5μs
35.9μs

5.5μs
35.9μs

—
35.6μs

—
35.6μs

32.6μs
60.7μs

32.6μs
60.7μs

35.6μs

35.6μs

32.6μs
60.7μs

32.6μs
60.7μs

DL350 User Manual, 2nd Edition

Appendix C
Inst. Execution Times

P:Indir. (Data)

V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)

Not Exec

Appendix C
Inst. Execution Times

STRNE

V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)

Execute

Appendix B
DL405 Error Codes

V: Bit Reg.

DL350

Appendix A
DL405 Error Codes

Comparative Boolean

C--5

Appendix A
DL405 Error Codes

C--6

Instruction Execution Times

Comparative Boolean (cont.)
Instruct
ORE

Legal Data Types
1st

2nd

V: Data Reg.

V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)

Appendix C
Inst. Execution Times

Appendix B
DL405 Error Codes

V: Bit Reg.

P:Indir. (Data)

P:Indir. (Bit)

ORNE

V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)
V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)
V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)

1st

2nd

V: Data Reg.

V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)

V: Bit Reg.

P:Indir. (Data)

P:Indir. (Bit)

DL350 User Manual, 2nd Edition

V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)
V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)
V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)

DL350
Execute

Not Exec

8.7μs

8.7μs

5.5μs
35.9μs

5.5μs
35.9μs

8.7μs

8.7μs

5.5μs
35.9μs

5.5μs
35.9μs

—
35.6μs

—
35.6μs

32.6μs
60.7μs

32.6μs
60.7μs

35.6μs

35.6μs

32.6μs
60.7μs

32.6μs
60.7μs

8.7μs

8.7μs

5.5μs
35.9μs

5.5μs
35.9μs

8.7μs

8.7μs

5.5μs
35.9μs

5.5μs
35.9μs

—
35.6μs

—
35.6μs

32.6μs
60.7μs

32.6μs
60.7μs

35.6μs

35.6μs

32.6μs
60.7μs

32.6μs
60.7μs

Instruction Execution Times

Instruct
ANDE

Legal Data Types
1st

2nd

V: Data Reg.

V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)

V: Bit Reg.

P:Indir. (Bit)

V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)

1st

2nd

V: Data Reg.

V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)

V: Bit Reg.

P:Indir. (Bit)

V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)
V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)

8.7μs

8.7μs

5.5μs
35.9μs

5.5μs
35.9μs

8.7μs

8.7μs

5.5μs
35.9μs

5.5μs
35.9μs

—
35.6μs

—
35.6μs

32.6μs
60.7μs

32.6μs
60.7μs

35.6μs

35.6μs

32.6μs
60.7μs

32.6μs
60.7μs

8.7μs

8.7μs

5.5μs
35.9μs

5.5μs
35.9μs

8.7μs

8.7μs

5.5μs
35.9μs

5.5μs
35.9μs

—
35.6μs

—
35.6μs

32.6μs
60.7μs
35.6μs

32.6μs
60.7μs
35.6μs

32.6μs

32.6μs

60.7μs

60.7μs

DL350 User Manual, 2nd Edition

Appendix C
Inst. Execution Times

P:Indir. (Data)

V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)

Not Exec

Appendix C
Inst. Execution Times

ANDNE

V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)

Execute

Appendix B
DL405 Error Codes

P:Indir. (Data)

V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)

DL350

Appendix A
DL405 Error Codes

Comparative Boolean (cont.)

C--7

Instruction Execution Times

Comparative Boolean (cont.)
Instruc
STR

Appendix C
Inst. Execution Times

Appendix B
DL405 Error Codes

Appendix A
DL405 Error Codes

C--8

Legal Data Types
1st

2nd

T, CT

V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)

1st

2nd

V: Data Reg.

V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)

V: Bit Reg.

P:Indir. (Data)

P:Indir. (Bit)

STRN

V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)
V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)
V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)

1st

2nd

T, CT

V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)

1st

2nd

V: Data Reg.

V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)

V: Bit Reg.

P:Indir. (Data)

P:Indir. (Bit)

DL350 User Manual, 2nd Edition

V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)
V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)
V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)

DL350
Execute

Not Exec

8.7μs

8.7μs

5.5μs
35.9μs

5.5μs
35.9μs

8.7μs

8.7μs

5.5μs
35.9μs

5.5μs
35.9μs

8.7μs

8.7μs

5.5μs
35.9μs

5.5μs
35.9μs

—
35.6μs

—
35.6μs

32.6μs
60.7μs

32.6μs
60.7μs

35.6μs

35.6μs

32.6μs
60.7μs

32.6μs
60.7μs

8.7μs

8.7μs

5.5μs
35.9μs

5.5μs
35.9μs

8.7μs

8.7μs

5.5μs
35.9μs

5.5μs
35.9μs

8.7μs

8.7μs

5.5μs
35.9μs

5.5μs
35.9μs

—
35.6μs

—
35.6μs

32.6μs
60.7μs

32.6μs
60.7μs

35.6μs

35.6μs

32.6μs
60.7μs

32.6μs
60.7μs

Instruction Execution Times

Instruc
OR

Legal Data Types
1st

2nd

T, CT

V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)
2nd

V: Data Reg.

V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)

V: Bit Reg.

P:Indir. (Data)

ORN

V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)
V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)
2nd

T, CT

V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)

1st

2nd

V: Data Reg.

V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)

V: Bit Reg.

P:Indir. (Data)

P:Indir. (Bit)

V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)
V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)
V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)

8.7μs

8.7μs

5.5μs
35.9μs

5.5μs
35.9μs

8.7μs

8.7μs

5.5μs
35.9μs

5.5μs
35.9μs

8.7μs

8.7μs

5.5μs
35.9μs

5.5μs
35.9μs

—
35.6μs

—
35.6μs

32.6μs
60.7μs

32.6μs
60.7μs

35.6μs

35.6μs

32.6μs
60.7μs

32.6μs
60.7μs

8.7μs

8.7μs

5.5μs
35.9μs

5.5μs
35.9μs

8.7μs

8.7μs

5.5μs
35.9μs

5.5μs
35.9μs

8.7μs

8.7μs

5.5μs
35.9μs

5.5μs
35.9μs

—
35.6μs

—
35.6μs

32.6μs
60.7μs

32.6μs
60.7μs

35.6μs

35.6μs

32.6μs
60.7μs

32.6μs
60.7μs

DL350 User Manual, 2nd Edition

Appendix C
Inst. Execution Times

1st

Not Exec

Appendix C
Inst. Execution Times

P:Indir. (Bit)

V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)

Execute

Appendix B
DL405 Error Codes

1st

DL350

Appendix A
DL405 Error Codes

Comparative Boolean (cont.)

C--9

Instruction Execution Times

Comparative Boolean (cont.)
Instruc
AND

Appendix C
Inst. Execution Times

Appendix B
DL405 Error Codes

Appendix A
DL405 Error Codes

C--10

Legal Data Types
1st

2nd

T, CT

V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)

1st

2nd

V: Data Reg.

V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)

V: Bit Reg.

P:Indir. (Data)

P:Indir. (Bit)

ANDN

V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)
V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)
V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)

1st

2nd

T, CT

V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)

1st

2nd

V: Data Reg.

V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)

V: Bit Reg.

P:Indir. (Data)

P:Indir. (Bit)

DL350 User Manual, 2nd Edition

V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)
V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)
V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)

DL350
Execute

Not Exec

8.7μs

8.7μs

5.5μs
35.9μs

5.5μs
35.9μs

8.7μs

8.7μs

5.5μs
35.9μs

5.5μs
35.9μs

8.7μs

8.7μs

5.5μs
35.9μs

5.5μs
35.9μs

—
35.6μs

—
35.6μs

32.6μs
60.7μs

32.6μs
60.7μs

35.6μs

35.6μs

32.6μs
60.7μs

32.6μs
60.7μs

8.7μs

8.7μs

5.5μs
35.9μs

5.5μs
35.9μs

8.7μs

8.7μs

5.5μs
35.9μs

5.5μs
35.9μs

8.7μs

8.7μs

5.5μs
35.9μs

5.5μs
35.9μs

—
35.6μs

—
35.6μs

32.6μs
60.7μs

32.6μs
60.7μs

35.6μs

35.6μs

32.6μs
60.7μs

32.6μs
60.7μs

Instruction Execution Times

Immediate Instructions
Instruc

DL350
Execute

Not Exec

STRI

X

78.6 μs

78.6 μs

STRNI

X

78.6 μs

78.6 μs

ORI

X

78.6 μs

78.6 μs

ORNI

X

78.6 μs

78.6 μs

ANDI

X

78.6 μs

78.6 μs

ANDNI

X

78.6 μs

78.6 μs

OUTI

Y

91.0 μs

91.0 μs

OROUTI

Y

94.0 μs

94.0 μs

SETI

1st #:

Y

87.6 μs

1.1 μs

2nd #:

Y (N pt)

97.5μs+ 16.25xN

1.1 μs

1st #:

Y

87.6 μs

1.1 μs

2nd #:

Y (N pt)

RSTI

Appendix B
DL405 Error Codes

Legal Data Types

Appendix A
DL405 Error Codes

Immediate Instructions

C--11

97.5μs+ 16.25xN

Appendix C
Inst. Execution Times
Appendix C
Inst. Execution Times

DL350 User Manual, 2nd Edition

Appendix C
Inst. Execution Times

Appendix B
DL405 Error Codes

Appendix A
DL405 Error Codes

C--12

Instruction Execution Times

Timer, Counter, Shift Register Instructions
Timer, Counter, Shift Register
Instructions
Instruc
TMR

TMRF

TMRA

Legal Data Types
1st

2nd

T

V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)

1st

2nd

T

V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)

1st

2nd

T

V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)

TMRAF 1st
T

CNT

UDC

SR

V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)
2nd

CT

V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)

CT

Not Exec

38.6μs

24.6μs

23.0μs
54.3μs

24.6μs
52.0μs

61.2μs

23.0μs

57.6μs
90.4μs

19.4μs
37.5μs

58.2μs

27.1μs

53.6μs
90.4μs

22.4μs
59.2μs

64.5μs

27.6μs

59.9μs
96.7μs

22.4μs
59.2μs

36.1μs

24.6μs

32.5μs
97.1μs

21.0μs
56.8μs

35.2μs

27.7μs

33.7μs
67.4μs

27.1μs
57.9μs

47.4μs

40.0μs

42.7μs
81.7μs

35.3μs
72.1μs

17.8μs+
1.0μsxN

12.6 μs

2nd
V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)

1st

2nd

CT

V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)

C (N points to shift)

DL350 User Manual, 2nd Edition

Execute

2nd

1st

SGCNT 1st

DL350

Instruction Execution Times

Accumulator / Stack Load
and Output Data Instructions
Instruc
LD

LDF

V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)
V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)
1st

2nd

X, Y, C, S
T, CT, SP

K:Constant

Execute

Not Exec

13.6μs

1.1μs

10.4μs
40.4μs

1.1μs
1.1μs

14.0μs

1.1μs

10.4μs
45.0μs

1.1μs
1.3μs

10.5μs+
3.45μs x N

1.4μs

O: (Octal constant for address)

10.4 μs

1.1μs

LDSX

K: Constant

14.6 μs

1.5μs

OUT

V:Data Reg.
V:Bit Reg.
P:Indir. (Data)
P:Indir. (Bit)

10.7 μs

V:Data Reg.
V:Bit Reg.
P:Indir. (Data)
P:Indir. (Bit)

11.7 μs

OUTD

OUTF

42.6 μs

1st

2nd

X, Y, C

K:Constant

None

1.1μs

1.1μs

43.8μs+
6.2μs x N

1.1μs

7.8 μs

1.0μs

DL350 User Manual, 2nd Edition

Appendix C
Inst. Execution Times

POP

41.9 μs

Appendix C
Inst. Execution Times

LDA

Appendix B
DL405 Error Codes

LDD

Legal Data Types

DL350

Appendix A
DL405 Error Codes

Accumulator Data Instructions

C--13

Appendix B
DL405 Error Codes

Appendix A
DL405 Error Codes

C--14

Instruction Execution Times

Logical Instructions
Logical (Accumulator)
Instructions
Instruc
AND

ANDD

OR

Appendix C
Inst. Execution Times

ORD

XOR

XORD

CMP

CMPD

CMPS

Legal Data Types
V:Data Reg.
V:Bit Reg.
P:Indir. (Data)
P:Indir. (Bit)
V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)
V:Data Reg.
V:Bit Reg.
P:Indir. (Data)
P:Indir. (Bit)
V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)
V:Data Reg.
V:Bit Reg.
P:Indir. (Data)
P:Indir. (Bit)
V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)
V:Data Reg.
V:Bit Reg.
P:Indir. (Data)
P:Indir. (Bit)
V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)
None

DL350 User Manual, 2nd Edition

DL350
Execute

Not Exec

9.1μs

1.1μs

39.8μs

1.1μs

10.2μs

1.1μs

6.5μs
40.9μs

1.1μs
1.1μs

9.3μs

1.1μs

40.2μs

1.1μs

10.4μs

1.1μs

6.7μs
41.1μs

1.1μs
1.1μs

9.2μs

1.1μs

40.0μs

1.1μs

10.3μs

1.1μs

6.2μs
41.0μs

1.1μs
1.1μs

10.8μs

1.1μs

41.5μs

1.1μs

11.4μs

1.2μs

7.7μs
42.1μs

1.2μs

—

—

1.2μs

Instruction Execution Times

Math Instructions (Accumulator)
Instruc
ADD

ADDD

SUBD

MULD

DIV

INCB

DECB

V:Data Reg.
V:Bit Reg.
P:Indir. (Data)
P:Indir. (Bit)
V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)
V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)
V:Data Reg.
V:Bit Reg.
P:Indir. (Data)
P:Indir. (Bit)
V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)
V:Data Reg.
V:Bit Reg.
P:Indir. (Data)
P:Indir. (Bit)
V:Data Reg.
V:Bit Reg.
P:Indir. (Data)
P:Indir. (Bit)
V:Data Reg.
V:Bit Reg.
P:Indir. (Data)
P:Indir. (Bit)

93.3μs

1.2μs

129.8μs

1.1μs

99.2μs

1.2μs

80.6μs
129.8μs

1.2μs
1.2μs

92.1μs

1.1μs

121.9μs

1.1μs

98.2μs

1.1μs

78.6μs
127.8μs

1.1μs
1.1μs

341.1μs

1.1μs

367.8
371.8μs

1.1μs
1.1μs

1075.8μs

1.1μs

1106.5μs

1.1μs

466.6μs

1.1μs

492.8μs
538.2μs

1.1μs
1.1μs

510.6μs

1.1μs

501.1μs

1.1μs

15.2μs

1.1μs

45.9μs

1.1μs

15.2μs

1.1μs

45.2μs

1.1μs

DL350 User Manual, 2nd Edition

Appendix C
Inst. Execution Times

DIVD

V:Data Reg.
V:Bit Reg.
K:Constant
P:Indir. (Data)
P:Indir. (Bit)

Not Exec

Appendix C
Inst. Execution Times

MUL

V:Data Reg.
V:Bit Reg.
P:Indir. (Data)
P:Indir. (Bit)

Execute

Appendix B
DL405 Error Codes

SUB

Legal Data Types

DL350

Appendix A
DL405 Error Codes

Math Instructions

C--15

Appendix C
Inst. Execution Times

Appendix B
DL405 Error Codes

Appendix A
DL405 Error Codes

C--16

Instruction Execution Times

Bit Instructions
Bit Instructions (Accumulator)
Instruc

Execute

Not Exec

V:Data Reg. (N bits)
V:Bit Reg. (N bits)
K:Constant (N bits)

9.8μs+ 0.2 x N

1.2 μs

SHFL

V:Data Reg. (N bits)
V:Bit Reg. (N bits)
K:Constant (N bits)

9.8μs+ 0.2 x N

ROTR

V:Data Reg. (N bits)
V:Bit Reg. (N bits)
K:Constant (N bits)

15.7

V:Data Reg. (N bits)
V:Bit Reg. (N bits)
K:Constant (N bits)

15.7μs

ENCO

None

40.3 μs

1.0 μs

DECO

None

6.5 μs

1.0 μs

SHFR

ROTL

Legal Data Types

DL350

7.9μs+0.2 x N
1.2 μs

7.9μs+ 0.2 x N
1.2 μs

12.3
1.2 μs

12.3μs

Number Conversion Instructions
Number Conversion Instructions
(Accumulator)
Instruc

Legal Data Types

DL350
Execute

Not Exec

BIN

None

128.4 μs

1.0 μs

BCD

None

122.0 μs

1.0 μs

INV

None

2.9 μs

1.0 μs

BCDCPL

None

74.5 μs

1.0 μs

ATH

None

29.2 μs

1.0 μs

HTA

None

29.2 μs

1.0 μs

SEG

None

12.6 μs

1.0 μs

GRAY

None

142.0 μs

1.0 μs

SFLDGT

None

26.6 μs

1.0 μs

DL350 User Manual, 2nd Edition

Instruction Execution Times

Table Instructions
Instruc
MOV

Legal Data Types
Move V:data reg. to V:data reg
.
Move V:bit reg. to V:data reg.

DL350
Not Exec

63μs+ 16xN

1.20 μs

50μs+ 15xN

1.2 μs

7.4μs

1.5 μs

Move V:data reg to V:bit reg.
Move V:bit reg. to V:bit reg.
N= #of words
MOVMC

LDLBL

Move V:Data Reg. to E2
Move V:Bit Reg. to E2
Move from E2 to V:Data Reg.
Move from E2 to V:Bit Reg.
N= #of words
K

CPU Control Instructions
Instruct

Legal Data Types

DL350
Execute

Not Exec

NOP

None

0.6 μs

0.6 μs

END

None

14.7 μs

14.7 μs

STOP

None

4.1 μs

1.0 μs

RSTWT

None

5.4 μs

1.0 μs

NOT

None

1.0 μs

1.0 μs

Program Control Instructions
Instruct

Legal Data Types

DL350
Execute

Not Exec

GOTO

K

5.0 μs

4.9 μs

LBL

K

0.6 μs

0.6 μs

FOR

V, K

110 μs

7.9 μs

NEXT

None

48.4 μs

0 μs

GTS

K

12.5 μs

6.3 μs

SBR

K

0.5 μs

0 μs

RT

None

11.4 μs

11.4 μs

MLS

K (1--7)

4.2 μs

4.2 μs

MLR

K (0--7)

4.0 μs

4.0 μs

DL350 User Manual, 2nd Edition

Appendix C
Inst. Execution Times

Program Control Instructions

Appendix C
Inst. Execution Times

CPU Control Instructions

Appendix B
DL405 Error Codes

Execute

Appendix A
DL405 Error Codes

Table Instructions

C--17

Appendix C
Inst. Execution Times

Appendix B
DL405 Error Codes

Appendix A
DL405 Error Codes

C--18

Instruction Execution Times

Interrupt Instructions
Interrupt Instructions
Instruc

Legal Data Types

DL350
Execute

Not Exec

ENI

None

45.8 μs

1.1 μs

DISI

None

5.7 μs

1.1 μs

INT

0 (0--7)

0 μs

0 μs

IRT

None

1.5 μs

—

IRTC

None

0.5 μs

0.5

Network Instructions
Network Instructions
Instruc

Legal Data Types

DL350
Execute

Not Exec

RX

X, Y, C, T, CT, SP, S
V:Data Reg.
V:Bit Reg.

2024.1 μs

1.4 μs

WX

X, Y, C, T, CT, SP, S
V:Data Reg.
V:Bit Reg.

2024.1 μs

1.4 μs

Message Instructions
Message Instructions
Instruc

Legal Data Types

DL350
Execute

Not Exec

108.9 μs
108.9 μs
96.2 μs

1.4 μs
1.4 μs
1.4 μs

FAULT

V:Data Reg.
V:Bit Reg.
K:Constant

DLBL

K

0 μs

0 μs

NCON

K

0 μs

μs

ACON

K

0 μs

0 μs

104.0 μs

1.4 μs

PRINT

RLL PLUS Instructions
RLL PLUS Instructions
Instruc

Legal Data Types

DL350
Execute

Not Exec

ISG

S

24.3 μs

21.5 μs

SG

S

24.3 μs

21.5 μs

JMP

S

24.4 μs

4.3 μs

NJMP

S

24.4 μs

4.6 μs

CV

S

13.9 μs

13.9 μs

CVJMP

S (N stages, 1 to 16)

12.6μs

12.6 μs

BCALL

C

17.1 μs

17.1 μs

BLK

C

22.1 μs

22.6 μs

BEND

None

8.7 μs

0 μs

DL350 User Manual, 2nd Edition

Instruction Execution Times

Clock / Calendar Instructions
Instruction

Legal Data Types

DL350
Execute

Not Exec

DATE

V:Data Reg.
V:Bit Reg.

21.3 μs
21.3 μs

1.9 μs
1.9 μs

TIME

V:Data Reg.
V:Bit Reg.

13.2 μs
13.2 μs

1.9 μs
1.9 μs

Drum Instructions
Instruction

Legal Data Types

DL350
Execute

Not Exe.

DRUM

CT

340.0 μs

62.6 μs

EDRUM

CT

243.0 μs

100.0 μs

MDRMD

CT

206.0 μs

142.00 μs

MDRMW

CT

150.0 μs

94.00 μs

Appendix B
DL405 Error Codes

Drum Instructions

Appendix A
DL405 Error Codes

Clock / Calendar Instructions

C--19

Appendix C
Inst. Execution Times
Appendix C
Inst. Execution Times

DL350 User Manual, 2nd Edition

1

Special Relays

In This Appendix. . . .
— DL350 CPU Special Relays

1D

Special Relays

DL350 CPU Special Relays
Startup and
Real-Time Relays

CPU Status Relays

SP0

First scan

on for the first scan after a power cycle or program to run transition
only. The relay is reset to off on the second scan. It is useful where a
function needs to be performed only on program startup.

SP1

Always ON

provides a contact to insure an instruction is executed every scan.

SP2

Always OFF

provides a contact that is always off.

SP3

1 minute clock

on for 30 seconds and off for 30 seconds.

SP4

1 second clock

on for 0.5 second and off for 0.5 second.

SP5

100 ms clock

on for 50 ms. and off for 50 ms.

SP6

50 ms clock

on for 25 ms. and off for 25 ms.

SP7

Alternate scan

on every other scan.

SP11

Forced run mode on anytime the CPU switch is in the RUN position.

SP12

Terminal
run mode

on when the CPU switch is in the TERM position and the CPU is in
the RUN mode.

SP13

Test run mode

on when the CPU switch is in the TERM position and the CPU is in
the test RUN mode.

SP14

Test hold mode

on when theCPU switch is in the TERM position and the CPU is in the
TEST HOLD mode

SP15

Test program
mode

on when the CPU is in the TERM position and the CPU is in the TEST
PROGRAM MODE.

SP16

Terminal
program mode

on when the CPU switch is in the TERM position and the CPU is in
the PROGRAM MODE.

SP17

Forced stop
mode relay

on anytime the CPU mode switch is in the STOP position.

SP20

Forced
stop mode

on when the STOP instruction is executed.

SP21

Break Relay 2

on when the BREAK instructions is executed. It is OFF when the CPU
mode is changed to RUN.

SP22

Interrupt enabled

on when interrupts have been enabled using the ENI instruction.

SP25

CPU battery disabled relay

on when the CPU battery is disabled by special V--memory.

Appendix E
Special Relays

Appendix D
Special Relays

Appendix C
Special Relays

Appendix B
DL405 Error Codes

Appendix A
DL405 Error Codes

D--2

DL350 User Manual, 2nd Edition

Special Relays

Warning

on when a non-critical error such as a low battery has occurred.

SP43

Battery low

on when the CPU battery voltage is low.

SP44

Reserved

SP45

Reserved

SP46

Communications on when a communications error has occurred on any of the CPU
error
ports.

SP47

I/O configuration
error

on if an I/O configuration error has occurred. The CPU power-up I/O
configuration check must be enabled before this relay will be
functional.

SP50

Fault instruction

on when a Fault Instruction is executed.

SP51

Watch Dog
timeout

on if the CPU Watch Dog timer times out.

SP52

Grammatical
error

on if a grammatical error has occurred either while the CPU is
running or if the syntax check is run. V7755 contains the exact error
code.

SP53

Solve logic error

on if CPU cannot solve the logic.

SP54

Intelligent I/O
error

on when communications with an intelligent module has occurred.

SP60

Value less than

on when the accumulator value is less than the instruction value.

SP61

Value equal to

on when the accumulator value is equal to the instruction value.

SP62

Greater than

on when the accumulator value is greater than the instruction value.

SP63

Zero

on when the result of the instruction is zero (in the accumulator.)

SP64

Half borrow

on when the 16 bit subtraction instruction results in a borrow.

SP65

Borrow

on when the 32 bit subtraction instruction results in a borrow.

SP66

Half carry

on when the 16 bit addition instruction results in a carry.

SP67

Carry

when the 32 bit addition instruction results in a carry.

SP70

Sign

on anytime the value in the accumulator is negative.

SP71

Invalid octal
number

on when an Invalid octal number was entered. This also occurs when
the V-memory specified by a pointer (P) is not valid.

SP72

Invalid Real
Number

On when an invalid real number is in the accumulator

SP73

Overflow

on if overflow occurs in the accumulator when a signed addition or
subtraction results in a incorrect sign bit.

SP74

Underflow

On if real number underflow occurs in the accumulator
(numbers are too close to 0.0)

SP75

Data error

on if a BCD number is expected and a non--BCD number is
encountered.

SP76

Load zero

on when any instruction loads a value of zero into the accumulator.

DL350 User Manual, 2nd Edition

Appendix E
Special Relays

SP41

Appendix D
Special Relays

on when a critical error such as I/O communication loss has
occurred.

Appendix C
Special Relays

Critical error

Appendix B
DL405 Error Codes

Accumulator
Status Relays

SP40

Appendix A
DL405 Error Codes

System Monitoring
Relays

D--3

Appendix E
Special Relays

Appendix D
Special Relays

Appendix C
Special Relays

Appendix B
DL405 Error Codes

Appendix A
DL405 Error Codes

D--4

Special Relays

Communications
Monitoring Relays

SP116

DL350 CPU
communication

on when port 2 is communicating with another device

SP117

Comm error port
2

on when Port 2 has encountered a communication error.

SP120

Module busy
Slot 0

on when the communication module in slot 0 is busy transmitting or
receiving. You must use this relay with the RX or WX instructions to
prevent attempting to execute a RX or WX while the module is busy .

SP121

Com. error
Slot 0

on when the communication module in slot 0 of the local base has
encountered a communication error.

SP122

Module busy
Slot 1

on when the communication module in slot 1 of the local base is busy
transmitting or receiving. You must use this relay with the RX or WX
instructions to prevent attempting to execute a RX or WX while the
module is busy.

SP123

Com. error
Slot 1

on when the communication module in slot 1 of the local base has
encountered a communication error.

SP124

Module busy
Slot 2

on when the communication module in slot 2 of the local base is busy
transmitting or receiving. You must use this relay with the RX or WX
instructions to prevent attempting to execute a RX or WX while the
module is busy.

SP125

Com. error
Slot 2

on when the communication module in slot 2 of the local base has
encountered a communication error.

SP126

Module busy
Slot 3

on when the communication module in slot 3 of the local base is busy
transmitting or receiving. You must use this relay with the RX or WX
instructions to prevent attempting to execute a RX or WX while the
module is busy.

SP127

Com. error
Slot 3

on when the communication module in slot 3 of the local base has
encountered a communication error.

SP130

Module busy
Slot 4

on when the communication module in slot 4 of the local base is busy
transmitting or receiving. You must use this relay with the RX or WX
instructions to prevent attempting to execute a RX or WX while the
module is busy.

SP131

Com. error
Slot 4

on when the communication module in slot 4 of the local base has
encountered a communication error.

SP132

Module busy
Slot 5

on when the communication module in slot 5 of the local base is busy
transmitting or receiving. You must use this relay with the RX or WX
instructions to prevent attempting to execute a RX or WX while the
module is busy.

SP133

Com. error
Slot 5

on when the communication module in slot 5 of the local base has
encountered a communication error.

SP134

Module busy
Slot 6

on when the communication module in slot 6 of the local base is busy
transmitting or receiving. You must use this relay with the RX or WX
instructions to prevent attempting to execute a RX or WX while the
module is busy.

SP135

Com. error
Slot 6

on when the communication module in slot 6 of the local base has
encountered a communication error.

SP136

Module busy
Slot 7

on when the communication module in slot 7 of the local base is busy
transmitting or receiving. You must use this relay with the RX or WX
instructions to prevent attempting to execute a RX or WX while the
module is busy.

SP137

Com. error
Slot 7

on when the communication module in slot 7 of the local base has
encountered a communication error.

DL350 User Manual, 2nd Edition

DL305
Product Weights
In This Appendix. . . .
— Product Weight Table

1E

E--2

DL305 Product Weights

Product Weight Table
CPUs

Weight

D3--330

6.3 oz. (178g)

D3--330P

6.3 oz. (178g)

D3--340

5.2 oz. (146g)

D3--350

4.9 oz. (140g)

Specialty
CPUs
F3--OMUX--1

6.4 oz. (182g)

F3--OMUX--2

6.4 oz. (182g)

F3--PMUX

3.7 oz. (104g)

F3--RTU

6.7 oz. (190g)

Appendix E
Product Weights

Appendix D
DL405 Product Weights

Appendix C
DL405 Product Weights

Bases

DC Output
Modules

Weight

Communications
and Networking

Weight

D3--08TD1

4.2 oz. (120g)

D3--232--DCU

15.0 oz. (427g)

D3--08TD2

4.2 oz. (120g)

D3--422--DCU

14.8 oz. (419g)

D3--16TD1--1

5.6 oz. (160g)

D3--16TD1--2

5.6 oz. (160g)

ASCII BASIC
Modules

D3--16TD2

7.1 oz. (210g)

AC Output
Modules
D3--04TAS

6.4 oz. (180g)

F3--08TAS

6.3 oz. (178g)

F3--08TAS--1

6.3 oz. (178g)

D3--08TA--1

7.4 oz. (210g)

D3--08TA--2

6.4 oz. (180g)

F3--16TA--2

7.7 oz. (218g)

D3--16TA--2

7.2 oz. (210g)

D3--05B--1

37.0 oz. (1050g)

D3--05BDC--1

37.0 oz.(1050g)

D3--08B--1

44.1 oz.(1250g)

D3--10B--1

51.1 oz.(1450g)

D3--05B

34.0 oz. (964g)

Relay Output
Modules

D3--05BDC

34.0 oz.(964g)

D3--08TR

7 oz. (200g)

D3--08B

44.2 oz.(1253g)

F3--08TRS--1

8.9 oz. (252g)

D3--10B

50.5 oz.(1432g)

F3--08TRS--2

9 oz. (255g)

D3--16TR

8.5 oz. (248g)

DC
Input
Modules
D3--08ND2

4.2 oz. (120g)

D3--16ND2--1

6.3 oz. (180g)

D3--16ND2--2

5.3 oz. (150g)

D3--16ND2F

6.3 oz. (180g)

F3--16ND3F

5.4 oz. (153g)

AC
Input
Modules

Analog Modules
D3--04AD

7 oz. (200g)

F3--04ADS

6.9 oz. (195g)

F3--08AD

5.5 oz. (154g)

F3--08TEMP

5.2 oz. (147g)

F3--08THM--n

6 oz. (170g)

F3--16AD

5.4 oz. (152g)

D3--08NA--1

5 oz. (140g)

D3--02DA

7 oz. (200g)

D3--08NA--2

5 oz. (140g)

F3--04DA--1

6.3 oz. (180g)

D3--16NA

6.4 oz. (180g)

F3--04DA--2

6.3 oz. (180g)

F3--04DAS

7 oz. (200g)

AC/DC Input
Modules
D3--08NE3

4.2 oz. (120g)

D3--16NE3

6 oz. (170g)

DL350 User Manual, 2nd Edition

F3--AB128--R

5.1 oz. (146g)

F3--AB128--T

6.2 oz. (175g)

F3--AB128

5.4 oz. (154g)

Specialty
Modules
D3--08SIM

3.0 oz. (85g)

D3--HSC

5.2 oz. (147g)

D3--PWU

13.0 oz. (368g)

D3--FILL

1oz. (30g)

Programming
D3--HP

7.1 oz. (202g)

D3--HPP

7.2 oz. (204g)

D2--HPP

7.7 oz. (220g)

I/O Addressing
Conventional Method

1F

In This Appendix. . . .
— Understanding Conventional I/O Numbering
— Conventional Base Specifications
— Local and Expansion I/O Systems
— Setting the Base Switches
— Example I/O Configurations

F--2

Bases and I/O Configuration
(Conventional Method)

Appendix F
Bases and I/O

Understanding Conventional I/O Numbering
This Appendix covers the information needed when installing a DL350 CPU in an
conventional base or when the DL350 is in a new base in a mixed system. Since the
DL350 can be used in either scenario, both 16 bit and 8 bit addressing needs to be
addressed. Chapter 4 provides the information on the xxxx--1 bases and the 16 bit
addressing scheme. The DL350 CPU will revert to the DL340 CPU I/O scheme when
it is configured for either of these scenarios.
The conventional DL305 product family has had several enhancements over the
years. Each time the product family has grown or has been enhanced, compatibility
with the earlier products has been of the utmost concern. Some of these
enhancements such as increasing the I/O count and supporting 16 point modules
have impacted the numbering system. To help you understand the numbering
scheme, the following account of how the numbering system has been affected is
provided.

DL305 I/O
Configuration
History

When the 16 point I/O modules were introduced to the standard line of 8
point modules, the I/O numbering system was not modified to count in
16 consecutive units. This was done to maintain compatibility with the 8
point systems. This means each 16 point module uses two groups of
eight consecutive numbers such as 000 through 007 and 100 through
107.
When the I/O count was increased from the original 112 maximum to
176 maximum (DL330/DL330P CPU) to 184 maximum (DL340/DL350
CPU), most of the new I/O addresses were not set up to be consecutive
with the the original 112 I/O. This means you will see a large jump in the
I/O number ranges.

Appendix F
Bases and I/O (alt)

Appendix D
DL405 Product Weights

Appendix C
DL405 Product Weights

S

S

The conventional DL305 I/O points are numbered in octal (base 8.) The octal
numbering system does not include the numbers 8 and 9. The following table lists
the first few octal numbers with the equivalent decimal numbers so you can see the
numbering pattern.

Octal Numbering
System

Octal
Numbers

0

1

2

3

4

5

6

7

10

11

12

13

14

15

16

17

20

21

22

23

24

...

Decimal
Numbers

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

...

Fixed
I/O Numbering

The DL305 base I/O numbering is fixed, you cannot choose the I/O address of
specific points since the system allocates the addresses for each slot. The I/O
number ranges are 0--177 and 700--767. The I/O numbering for each slot in the base
depends on two things:
1. The base configuration, which is determined by the size of the base and
whether you are using an expansion base.
2. The number of I/O points per module and the location of the I/O modules in
the base.

DL350 User Manual, 2nd Edition

F--3

Bases and I/O Configuration
(Conventional Method)

5 Slot Base Using 8 Point I/O Modules
030
to
037

020
to
027

Slot Number: 3 2

010
to
017

000
to
007

C
P
U

5 Slot Base Using 16 Point I/O Modules

DL305

1 0

030
to
037

020
to
027

010
to
017

000
to
007

130
to
137

120
to
127

110
to
117

100
to
107

Slot Number: 3 2

C
P
U

DL305

1 0

8
8
16
16

F3--16ND3

16

D3--16TD2

16

AC Input Modules
D3--08NA--1
D3--08NA--2
D3--16NA

8
8
16

AC/DC Input Modules
D3--08NE3
D3--16NE3

8
16

AC Output Modules
8*
D3--04TAS
8
F3--08TAS
8
D3--08TA--1
8
D3--08TA--2
16
F3--16TA--2
D3--16TA--2

16

Relay Output Modules
8
D3--08TR
8
F3--08TRS--1
8
F3--08TRS--2
16
D3--16TR

Analog Modules (cont.)
16
F3--04DA--1
16
F3--04DA--2
16
F3--04DAS
ASCII BASIC Modules
16
F3--AB128--R
16
F3--AB128--T

Analog Modules
D3--04AD

16

F3--04ADS
F3--08AD
F3--08TEMP

16
16
16

F3--AB128
F3--AB64

F3--08THM--n
F3--16AD

16
16

D3--08SIM
D3--HSC

D3--02DA

16

16
16

Specialty Modules

* This is a 4-point module, but each slot is assigned a minimum of 8 I/O points.

8
16

Appendix D
DL405 Product Weights

8
16
16
16

DC Output Modules
D3--08TD1
D3--08TD2
D3--16TD1--1
D3--16TD1--2

Appendix C
DL405 Product Weights

Number of I/O
Points Required for
Each Module
DC Input Modules
D3--08ND2
D3--16ND2--1
D3--16ND2--2
D3--16ND2F

Appendix F
Bases and I/O

I/O numbering begins with address “000” which is the slot adjacent to the CPU. Each
module uses increments of eight I/O points. For 8 point modules the I/O addresses
are made up of eight contiguous points for each module. For 16 point modules the
I/O addresses are made up of two groups of eight contiguous points, the first group
follows the same scheme as the 8 point module and the second group adds 100 to
the values of the first group.
The examples below show the I/O numbering for a 5 slot local CPU base with 8 point
I/O and a 5 slot local CPU base with 16 point I/O.

I/O Numbering
Guidelines

Appendix E
DL405 Product Weights

DL350 User Manual, 2nd Edition

Appendix F
Bases and I/O

F--4

Bases and I/O Configuration
(Conventional Method)

I/O Module
Placement Rules

There are some limitations that determine where you can place certain types of
modules. Some modules require certain locations and may limit the number or
placement of other modules. We have tried to give clearly written explanations of the
rules governing module placement, but we realize a picture can sometimes be worth
a thousand words. If you have difficulty with some of our explanations, please look
ahead to the illustrations in this chapter. They should clear up any gray areas in the
explanation and you will probably find the configuration you intend to use in your
installation.
In all of the configurations mentioned the number of slots from the CPU that are to be
used can roll over into an expansion base if necessary. For example if a rule states a
module must reside in one of the six slots adjacent to the CPU, and the system
configuration is comprised of two 5 slot bases, slots 1 and 2 of the expansion base
are valid locations.
The following table provides the general placement rules for the DL305
components.
Module

16 Point I/O
Modules

Analog Modules
ASCII Basic
Modules
High Speed
Counter

Appendix F
Bases and I/O (alt)

Appendix D
DL405 Product Weights

Appendix C
DL405 Product Weights

CPU

DL350 User Manual, 2nd Edition

Restriction
The CPU must reside in the first slot of the local CPU
base. The first slot is the closest slot to the power supply.
There can be a maximum of eight 16 point modules
installed in a system depending on the CPU type and I/O
modules used. The 16 point modules must be in the first 8
slots adjacent to the CPU rolling over into an expansion
base if necessary. If any of the eight slots adjacent to the
CPU are not used for 16 point modules, they can be used
for 8 point modules.
Analog modules must reside in any valid 16 point I/O slot.
ASCII Basic modules must reside in any valid 16 point I/O
slot.
High Speed Counters may be used in one of the first 4
slots in the local CPU base.

Bases and I/O Configuration
(Conventional Method)

F--5

Conventional Base Specifications

D3--05B

D3--05BDC

D3--08B

D3--10B

Number of Slots

5

5

8

10

Local CPU Base

Yes

Yes

Yes

Yes

Expansion Base

Yes

Yes

No

Yes

Input Voltage Range

97--132 VAC
194--264 VAC
47--63Hz

20.5--30 VDC <10%
ripple

97--132 VAC
194--264 VAC
47--63Hz

97--132 VAC
194--264 VAC
47--63Hz

Base Power

70 VA max (46W)

48 Watts

70 VA max (57W)

70 VA max (57W)

Inrush Current max.

30A

30A

30A

30A

Dielectric Strength

1500VAC for 1 minute
between terminals of
AC P/S, Run output,
Common, 24VDC

1500VAC for 1 minute
between 24VDC input
terminals and Run
output

1500VAC for 1 minute
between terminals of
AC P/S, Run output,
Common, 24VDC

2000VAC for 1 minute
between terminals of
AC P/S, Run output,
Common, 24VDC

Insulation Resistance

>10MΩ at 500VDC

>10MΩ at 500VDC

>10MΩ at 500VDC

>10MΩ at 500VDC

Power Supply Output
(Voltage Ranges and
Ripple)

(5VDC) 4.75--5.25V
less than 0.1V p--p

(5VDC) 4.75--5.25V
less than 0.1V p--p

(5VDC) 4.75--5.25V
less than 0.1V p--p

(5VDC) 4.75--5.25V
less than 0.1V p--p

(9VDC) 8.5--13.5V
less than 0.2V p--p

(9VDC) 8.5--13.5V
less than 0.2V p--p

(9VDC) 8.0--12.0V
less than 0.2V p--p

(9VDC) 8.0--12.0V
less than 0.2V p--p

(24VDC) 20--28V
less than 1.2V p--p

(24VDC) 20--28V
less than 1.2V p--p

(24VDC) 20--28V
less than 1.2V p--p

(24VDC) 20--28V
less than 1.2V p--p

5 VDC current
available

1.4A *

1.4A

1.4A @ 122° F (50° C)
1.0A @ 140° F (60° C)

1.4A @ 122° F (50° C)
1.0A @ 140° F (60° C)

9 VDC current
available

0.8A *

0.8A

1.7A @ 122° F (50° C)
1.4A @ 140° F (60° C)

1.7A @ 122° F (50° C)
1.4A @ 140° F (60° C)

24 VDC current
available

0.5A *

0.5A

0.6A

0.6A

Auxiliary 24 VDC

100mA max

None

100mA max

100mA max

Run Relay

250 VAC,
4A (resistive load)

250 VAC,
4A (resistive load)

250 VAC,
4A (resistive load)

250 VAC,
4A (resistive load)

Fuses

2A (250V)

4A (250V)

2A (250V)

2A (250V)

User replaceable

User replaceable

User replaceable

User replaceable

WxHxD

11.42x4.85x4.41 in.
(290x123x112 mm)

11.42x4.85x4.41 in
(290x123x112 mm)

15.55x4.85x4.41 in
(395x123x112 mm)

18.3x4.85x4.41 in.
(465x123x112 mm)

Weight

34 oz. (964g)

34 oz. (964g)

44.2 oz. (1253g)

50.5 oz. (1432g)

Appendix F
Bases and I/O

The table below provides the specifications for the conventional DL305 bases. The
xxxx--1 bases are covered in Chapter 2, Installation, Wiring, and Specifications.

Consumption

DL350 User Manual, 2nd Edition

Appendix E
DL405 Product Weights

* The total current for the D3--05B must not exceed 2.3A.
Auxiliary 24VDC
There is 24 VDC available from the 24 VDC output terminals on all bases except the
5 slot DC version (D3--05BDC). The 24 VDC supply can be used to power external
Output at Base
devices or DL305 modules that require external 24 VDC. The power used from the
Terminal
this 24 VDC output reduces the internal system 24 VDC available to the modules by
an equal amount.

Appendix D
DL405 Product Weights

Dimensions

Appendix C
DL405 Product Weights

Output

Appendix F
Bases and I/O

F--6

Bases and I/O Configuration
(Conventional Method)

Power Supply
Schematics

The following diagram shows the details of how the DL305 base provides many of
the specifications listed on the previous page.

Schematic for D3--05B, D3--08B, D3--10B
2A
+24V

+

0V

--

+9V

+

+5V

+ --

115VAC

Switching
Power
Source
Circuit

24V/9V
Voltage
Abnormality
Detection

N

Appendix C
DL405 Product Weights
Appendix D
DL405 Product Weights

230VAC

Coil
RUN
Output

CPU
Normal
RUN

Appendix F
Bases and I/O (alt)

L

+
24VDC Output
--

Inside
of CPU

G

0V

Schematic for D3--05BDC
4A
+24V

+

0V

--

+9V

+

+5V

+ --

24V/9V
Voltage
Abnormality
Detection

Switching
Power
Source
Circuit

+
--

Coil
RUN
Output

CPU
Normal
RUN
Inside
of CPU
0V

DL350 User Manual, 2nd Edition

G

24VDC

Bases and I/O Configuration
(Conventional Method)

The RUN relay output, located on the DL305 base power supply, can be used to
detect an undesired failure on the local CPU base or an expansion base. The
following table shows the operating characteristics of the RUN relay for a local CPU
base or an expansion base.
Event

Local CPU Base
RUN Relay Would:

Expansion Base
RUN Relay Would:

PROGRAM to RUN mode
Transition

Energize

Not change

The CPU detects a fatal error

De--energize

Not change

CPU Local Base is Removed
Form the RUN Mode

De--energize

Not change

Power Source to the Power
Supply is Turned OFF

De--energize

De--energize

9 VDC or 24 VDC Failure on the
Power Supply

De--energize

De--energize

Relay
Power
Supply

Use of the RUN relay to
shutdown critical field
devices upon error detection

Critical
Field
Device

Field
Power
Supply
Panel
Lamp
Power

Use of the RUN relay to
monitor system operation

DL350 User Manual, 2nd Edition

Appendix E
DL405 Product Weights

PLC
OK
Lamp

Appendix D
DL405 Product Weights

Relay

Appendix C
DL405 Product Weights

The following example demonstrates possible uses for the RUN relay on the DL305
bases.

Appendix F
Bases and I/O

Using the Run
Relay on the Base
Power Supply

F--7

F--8

Bases and I/O Configuration
(Conventional Method)

Base Uses Table

Base Part #

Number of Slots

Can Be Used As
A Local CPU
Base

Can Be Used As
An Expansion
Base

D3--05B

5

Yes

Yes

D3--05BDC

5

Yes

Yes

D3--08B

8

Yes

No

D3--10B

10

Yes

Yes

The configurations below show the valid combinations of local CPU bases and
expansion bases.
NOTE: You should use one of the configurations listed below when designing an
expansion system. If you use a configuration not listed below the system will not
function properly.
8 slot local CPU base with
a 5 slot expansion base

10 slot local CPU base with
a 5 slot expansion base

1.5 ft (0.5m)

1.5 ft (0.5m) 1.5 ft (0.5m)

5 slot local CPU base
with a maximum of two
5 slot expansion bases

10 slot local CPU base
with a
10 slot expansion base
1.5 ft (0.5m)

Appendix F
Bases and I/O (alt)

Appendix D
DL405 Product Weights

Appendix C
DL405 Product Weights

Local/Expansion
Connectivity

It is helpful to understand how you can use the various DL305 bases in your control
system. The following table shows how the bases can be used.

1.5 ft (0.5m)

Appendix F
Bases and I/O

Local or Expansion I/O Systems

DL350 User Manual, 2nd Edition

Bases and I/O Configuration
(Conventional Method)
Connecting
Expansion Bases

F--9

The local CPU base is connected to the expansion base using a 1.5 ft. cable
(D3--EXCBL). The base must be connected as shown in the diagram below.

Expansion
Cable

030
to
037

020
to
027

010
to
017

000
to
007

100
to
107

070
to
077

060
to
067

050
to
057

040
to
047

DL305

150
to
157

140
to
147

130
to
137

120
to
127

110
to
117

DL305

DL305

Expansion Side

Expansion Side

DL350 User Manual, 2nd Edition

Appendix E
DL405 Product Weights

Note: Avoid placing the expansion cable in the same wiring
tray as the I/O and power source wiring.

Appendix D
DL405 Product Weights

1.5 ft (0.5 m)

CPU Side

Appendix C
DL405 Product Weights

1.5 ft (0.5 m)

CPU Side

C
P
U

Appendix F
Bases and I/O

The top expansion connector on the base is the input from a previous base. The
bottom expansion connector on the base is the output to an expansion base. The
expansion cable is marked with “CPU Side” and “Expansion Side”. The“ CPU Side”
of the cable is connected to the bottom port of the base and the “Expansion Side” of
the cable is connected to the top port of the next base.

F--10

Bases and I/O Configuration
(Conventional Method)

Appendix F
Bases and I/O

Setting the Base Switches

5 Slot Bases

The conventional 5 slot and 10 slot bases have jumper switches that need to be set
depending on which system configuration is used. The 8 slot base does not have any
switches. All of the xxxxx--1 bases have a jumper switch and the 10 slot has two.
The conventional 5 slot bases have a two position toggle switch which is used to set
the base as the CPU local base, the first expansion base, or the second (last)
expansion base. The xxxxx--1 bases have a jumper switch between slots 3 and 4.
The switch is set to the “1,3” position if the base is the local CPU base or the third
base in the system. The switch is set to the “2” position if the base is the 2nd base in
the system. If the 5 slot base is used as an expansion base for a 10 slot local CPU
base the switch is set in the “1,3” position.

xxxxx--1 Bases

Appendix F
Bases and I/O (alt)

Appendix D
DL405 Product Weights

Appendix C
DL405 Product Weights

BASE
1,3
2

conventional
Bases

10 Slot Base

The 10 slot base has a jumper switch between slot 3 and 4 used to set the base to
local CPU base or expansion base. There is also a jumper switch between slot 9 and
10 (4 and 5 on the xxxxx--1 bases) that sets slot 10 to the 100--107 I/O address range
or to the 700--707 I/O address range.

conventional
Bases

DL350 User Manual, 2nd Edition

xxxxx--1 Bases

Bases and I/O Configuration
(Conventional Method)

F--11

Example I/O Configurations
Appendix F
Bases and I/O

The following system configurations will allow you to quickly configure your system
by using examples. These system configurations show the I/O numbering and the
base switch settings for every valid base configuration for a DL305 system.
16 Point I/O
When a 16 point I/O module is used the last 8 I/O addresses of each 16 point module
Allocation Example could have been used in another base slot. In the illustration below Example A
shows a 16 point module in the slot next to the CPU using address 000--007 and
100--107. The expansion I/O cannot use the last slot of the expansion base since it is
assigned addresses 100--107 and the 16 point module next to the CPU has already
used these addresses. Example B shows an 8 point module in the slot next to the
CPU and an 8 point module in the last slot of the expansion base. Both examples are
valid configurations .

Example A
or
BASE BASE
1,3
2

Local CPU Base

010
to
017

000
to
007

130
to
137

120
to
127

110
to
117

100
to
107

070
to
077

060
to
067

050
to
057

040
to
047

170
to
177

160
to
167

150
to
157

140
to
147

030
to
037

020
to
027

010
to
017

000
to
007

130
to
137

120
to
127

110
to
117

100
to
107

070
to
077

060
to
067

050
to
057

040
to
047

170
to
177

160
to
167

150
to
157

140
to
147

or
BASE BASE
1,3
2

C
P
U

DL305

Expansion Base
DL305

Example B
or
BASE BASE
1,3
2

or
BASE BASE
1,3
2

C
P
U

DL305

Expansion Base
DL305

For the following examples the configurations using 16 point I/O modules are shown
with the maximum I/O points supported so you can always reduce the I/O count in
one of our examples and the configuration will still be valid. Substitution of 8 point I/O
modules can be made in place of any of the 16 point modules without affecting the
I/O numbering for any of the other I/O modules. When a 16 point module is replaced
with a 8 point I/O module the last 8 I/O addresses of that 16 point module may or may
not be useable in another slot location, depending on the system configuration used

DL350 User Manual, 2nd Edition

Appendix E
DL405 Product Weights

Examples Show
Maximum I/O
Points Available

Local CPU Base

Appendix D
DL405 Product Weights

020
to
027

Appendix C
DL405 Product Weights

030
to
037

F--12

Bases and I/O Configuration
(Conventional Method)

Appendix F
Bases and I/O

I/O Configurations with a 5 Slot Local CPU Base
The configurations below and on the next few pages show a 5 slot base with 8 point
I/O modules, 16 point modules, one expansion base and two expansion bases.
Switch settings

The 5 slot base has a toggle switch or jumper on the inside of the base which allows
you to select:
Type of Base

Switch Position
convent. bases

Jumper Position
xxxxx--1 bases

Local CPU

Base 1,3

right pins bridged

First Expansion

Base 2*

left pins bridged

Last Expansion

Base 1,3

right pins bridged

*used only with a 5 slot local CPU base

Total I/O: 32

or

030
to
037

020
to
027

010
to
017

000
to
007

030
to
037

020
to
027

010
to
017

000
to
007

130
to
137

120
to
127

110
to
117

100
to
107

C
P
U

DL305

C
P
U

DL305

BASE BASE
1,3
2

5 Slot Base
with 16 Point I/O

Total I/O: 64

or

Appendix D
DL405 Product Weights

Appendix C
DL405 Product Weights

5 Slot Base
with 8 Point I/O

Appendix F
Bases and I/O (alt)

BASE BASE
1,3
2

DL350 User Manual, 2nd Edition

Bases and I/O Configuration
(Conventional Method)

Total I/O: 72

or

030
to
037

020
to
027

010
to
017

000
to
007

100
to
107

070
to
077

060
to
067

050
to
057

030
to
037

020
to
027

010
to
017

000
to
007

130
to
137

120
to
127

110
to
117

100
to
107

070
to
077

060
to
067

050
to
057

040
to
047

170
to
177

160
to
167

150
to
157

140
to
147

C
P
U

DL305

BASE BASE
1,3
2

or

040
to
047

Appendix F
Bases and I/O

5 Slot Base and
5 Slot Expansion
Base with 8 Point
I/O

F--13

DL305

BASE BASE
1,3
2

Total I/O: 128

or
BASE BASE
1,3
2

or

DL305

DL305

DL340 and DL350
NOTE: If a 16pt module is used in the last two available slots of the expansion base,
160 through 177 will not be available for control relay assignments. Also, even
though you are using these points as I/O, you still enter them as C160--C177 in
DirectSOFT.

Appendix D
DL405 Product Weights

BASE BASE
1,3
2

C
P
U

Appendix C
DL405 Product Weights

5 Slot Base and 5
Slot Expansion
Base with 16 Point
I/O

Appendix E
DL405 Product Weights

DL350 User Manual, 2nd Edition

Appendix F
Bases and I/O

F--14

Bases and I/O Configuration
(Conventional Method)

5 Slot Base and
Two 5 Slot
Expansion Bases
with 8 Point I/O

Total I/O: 112

or

030
to
037

020
to
027

010
to
017

000
to
007

100
to
107

070
to
077

060
to
067

050
to
057

040
to
047

DL305

150
to
157

140
to
147

130
to
137

120
to
127

110
to
117

DL305

030
to
037

020
to
027

010
to
017

000
to
007

070
to
077

060
to
067

050
to
057

040
to
047

170
to
177

160 150
to
to
167 157

140
to
147

120
to
127

110
to
117

C
P
U

DL305

BASE BASE
1,3
2

or
BASE BASE
1,3
2

or

Appendix F
Bases and I/O (alt)

Appendix D
DL405 Product Weights

Appendix C
DL405 Product Weights

BASE BASE
1,3
2

5 Slot Base and
Two 5 Slot
Expansion Bases
with 16 and 8 Point
I/O

Total I/O: 128

or
BASE BASE
1,3
2

or

130
to
137

100
to
107
BASE BASE
1,3
2

C
P
U

DL305

DL305

DL340 DL350

or

DL305

BASE BASE
1,3
2

NOTE: If a 16pt module is used in the last two available slots of the expansion base,
160 through 177 will not be available for control relay assignments. Also, even
though you are using these points as I/O, you still enter them as C160--C177 in
DirectSOFT.

DL350 User Manual, 2nd Edition

Bases and I/O Configuration
(Conventional Method)

F--15

I/O Configurations with an 8 Slot Local CPU Base

8 Slot Base
with 8 Point I/O

8 Slot Base
with 16 Point I/O

Total I/O: 56
050
to
057

040
to
047

030
to
037

020
to
027

010
to
017

000
to
007

060
to
067

050
to
057

040
to
047

030
to
037

020
to
027

010
to
017

000
to
007

160
to
167

150
to
157

140
to
147

130
to
137

120
to
127

110
to
117

100
to
107

6

5

060
to
067

050
to
057

040
to
047

030
to
037

020
to
027

740
to
747

730
to
737

720
to
727

710
to
717

700
to
707

C
P
U

DL305

C
P
U

DL305

C
P
U

DL305

Total I/O: 112
*See note below

regarding points
160--167

Total I/O: 96

4 3

2

1 0
010
to
017

000
to
007

DL305

8 Slot Base and
5 Slot Expansion
Base with
16 Point I/O

Total I/O: 152
*See note below

regarding points
160--167

050
to
057

040
to
047

030
to
037

020
to
027

010
to
017

000
to
007

160
to
167

150
to
157

140
to
147

130
to
137

120
to
127

110
to
117

100
to
107

6

5

4 3

2

1 0

740
to
747

730
to
737

700
to
707

DL305

720
to
727

710
to
717

C
P
U

DL305

BASE BASE
1,3
2

NOTE: If a 16pt module is used in the last two available slots of the expansion base,
160 through 177 will not be available for control relay assignments. Also, even
though you are using these points as I/O, you still enter them as C160--C177 in
DirectSOFT.

DL350 User Manual, 2nd Edition

Appendix E
DL405 Product Weights

060
to
067

Appendix D
DL405 Product Weights

BASE BASE
1,3
2

Appendix C
DL405 Product Weights

8 Slot Base and
5 Slot Expansion
Base with
8 Point I/O

060
to
067

Appendix F
Bases and I/O

The configurations below show an 8 slot base with 8 point I/O modules, 16 point
modules, one 5 slot expansion base and two 5 slot expansion bases. Postion of the
jumper for xxxx--1 bases is shown to the right of the base.

F--16

Bases and I/O Configuration
(Conventional Method)

Appendix F
Bases and I/O

I/O Configurations with a 10 Slot Local CPU Base

Switch settings

The configurations below and on the next few pages show a 10 slot base with 8 point
I/O modules, with 16 point modules, with a 5 slot expansion base and with a 10 slot
expansion base.
The 10 slot base has two jumper switches to select the base type and the address
ranges to use. These switches can be found on the base between slots 3 and 4
(SW1) and slots 9 and 10 (SW2). Jumper switch SW1 is used to select if the base is a
local CPU base or an expansion base. Jumper switch SW2 determines the I/O
address range (100 -- 107 or 700 -- 707) for the 10th slot on the local CPU base. By
selecting the address range of 700 to 707 for slot 10, it is possible to use a 16 point
module next to the CPU (which uses the ranges of 000 to 007 and 100 to 107),
however; the position of this switch will affect the I/O numbering for the expansion I/O
if used.

Last Slot Address
Range 100 to 107

Total I/O: 72
Jumper
SW2 100

700

Jumper
SW1

EXP

EXP
100
to
107

Last Slot Address
Range 700 to 707

070
to
077

060
to
067

050
to
057

040
to
047

030
to
037

020
to
027

010
to
017

000
to
007

C
P
U

CPU

DL305

Total I/O: 72
Jumper
SW2 100

700

Jumper
SW1

EXP

EXP
700
to
707

Appendix F
Bases and I/O (alt)

Appendix D
DL405 Product Weights

Appendix C
DL405 Product Weights

NOTE: Jumper switch SW2 must be set to “100 EXP” on the expansion base.

DL350 User Manual, 2nd Edition

070
to
077

060
to
067

050
to
057

040
to
047

030
to
037

020
to
027

010
to
017

000
to
007

C
P
U

DL305

CPU

F--17

Bases and I/O Configuration
(Conventional Method)

The next two configurations show a local CPU base using 16 point I/O modules and
the two possibilities for how to configure the base to use the maximum number of I/O
points.

Configuration 1

Configuration 1 shows an 8 point I/O module the slot next to the CPU and the
address range of 100--107 for the last slot. When jumper switch SW2 is set to the
“100 EXP” position, the address range for the last slot is set to 100--107, thereby
limiting the address range for the first module to 000--007. This means if you use this
configuration, the first module must be an 8 point I/O module. You will have more
available addresses for an expansion base as you will see in the example using a 10
slot expansion base.
Total I/O:128

Configuration 1

Jumper
SW2

Jumper
SW1

100
EXP

700

EXP
100
to
107

DL340 and DL350

Configuration 2

070
to
077

060
to
067

050
to
057

040
to
047

030
to
037

020
to
027

010
to
017

170
to
177

160
to
167

150
to
157

140
to
147

130
to
137

120
to
127

110
to
117

6 5

4

8 7

3 2

000
to
007

C
P
U

CPU

DL305

1 0

Total I/O: 136

Configuration 2

Jumper
SW2
700

Jumper
SW1

100
EXP

EXP
700
to
707

DL340 and DL350

060
to
067

050
to
057

040
to
047

030
to
037

020
to
027

010
to
017

000
to
007

170
to
177

160
to
167

150
to
157

140
to
147

130
to
137

120
to
127

110
to
117

100
to
107

6 5

4

8 7

3 2

C
P
U

CPU

DL305

1 0

NOTE: If a 16pt module is used in Slot 6 for the DL330 or DL330P CPU, 160 through
167 will not be available for control relay assignments. If a 16pt module is used in Slot
6 and/or Slot 7 for a DL340 or DL350 CPU, 160--167 and/or 170--177 are not
available for control relay assignments. Also, even though you are using these
points as I/O, you still enter them as C160--C167/C170--C177 in DirectSOFT.

DL350 User Manual, 2nd Edition

Appendix E
DL405 Product Weights

*See note below regarding
points 160--167 and
170--177.

070
to
077

Appendix D
DL405 Product Weights

Configuration 2 shows a 16 point I/O module in the slot next to the CPU and the
address range of 700--707 for the last slot. This is the maximum I/O configuration for
a 10 slot local CPU base. When jumper switch SW2 is set to the “700” position the
address range for the last slot is set to 700--707 making addresses 000--007 and
100--107 available for use in the first slot. The position of jumper switch SW2 can limit
the amount of I/O addresses available to the larger expansion bases since
expansion I/O numbering would normally start with address 700.

Appendix C
DL405 Product Weights

*See note below regarding
points 160--167 and
170--177.

Appendix F
Bases and I/O

10 Slot Expansion
Base with
16 Point I/O

Appendix F
Bases and I/O

F--18

Bases and I/O Configuration
(Conventional Method)

10 Slot Base and
5 Slot Expansion
Base with
16 Point I/O

Total I/O: 176
Jumper
SW2
700

Jumper
SW1

100
EXP

EXP
700
to
707

060
to
067

050
to
057

040
to
047

030
to
037

020
to
027

010
to
017

000
to
007

170 160
to
to
177 167

150
to
157

140
to
147

130
to
137

120
to
127

110
to
117

100
to
107

6 5

4

070
to
077

8 7
750
to
757

740
to
747

730
to
737

720
to
727

710
to
717

3 2

C
P
U

CPU

DL305

1 0
DL340 and DL350

DL305

NOTE: If a 16pt module is used in Slot 6 for the DL330 or DL330P CPU, 160 through
167 will not be available for control relay assignments. If a 16pt module is used in Slot
6 and/or Slot 7 for a DL340 or DL350 CPU, 160--167 and/or 170--177 are not
available for control relay assignments. Also, even though you are using these
points as I/O, you still enter them as C160--C167/C170--C177 in DirectSOFT.

Appendix F
Bases and I/O (alt)

Appendix D
DL405 Product Weights

Appendix C
DL405 Product Weights

BASE BASE
1,3
2

DL350 User Manual, 2nd Edition

F--19

Bases and I/O Configuration
(Conventional Method)

10 Slot Base and
10 Slot Expansion
Base with
8 Point I/O

I/O addresses change depending on the point configuration in the local CPU base.
Notice, when the local CPU base contains only 8 point I/O modules, addresses
110--117, 120--127 and 130--137 are available for use in the expansion base. When
the local CPU base has 16 point I/O modules, which use the I/O addresses 110--117,
120--127 and 130--137, these addresses are taken up and are not available for use
in the expansion base.
Total I/O: 152
Jumper
SW2
700

Jumper
SW1

100
EXP

EXP
100
to
107

SW2
700

070
to
077

060
to
067

050
to
057

040
to
047

030
to
037

020
to
027

010
to
017

000
to
007

CPU

DL305

C
P
U

SW1

100
EXP

EXP
760
to
767

750
to
757

740
to
747

730
to
737

720
to
727

710
to
717

700
to
707

130
to
137

120 110
to
to
127 117

CPU

DL305

Total I/O: 184
Jumper
SW2

SW2
700

100
EXP

8 7

6 5

4

3 2

1 0

070
to
077

060
to
067

050
to
057

040
to
047

030
to
037

020
to
027

010
to
017

000
to
007

170
to
177

160
to
167

150
to
157

140
to
147

130
to
137

120
to
127

110
to
117

100
to
107

EXP

C
P
U

DL305

SW1

DL340 or DL350

100
EXP
760
to
767

750
to
757

740
to
747

730
to
737

720
to
727

710
to
717

700
to
707

CPU

EXP

CPU

DL305

DL350 User Manual, 2nd Edition

Appendix E
DL405 Product Weights

NOTE: If a 16pt module is used in Slot 6 for the DL330 or DL330P CPU, 160 through
167 will not be available for control relay assignments. If a 16pt module is used in Slot
6 and/or Slot 7 for a DL340 or DL350 CPU, 160--167 and/or 170--177 are not
available for control relay assignments. Also, even though you are using these
points as I/O, you still enter them as C160--C167/C170--C177 in DirectSOFT.

Appendix D
DL405 Product Weights

700

Jumper
SW1

Appendix C
DL405 Product Weights

10 Slot Base and
10 Slot Expansion
Base with
16 Point I/O

Appendix F
Bases and I/O

Expansion
Addresses Depend
on Local CPU Base
Configuration.

1

PLC Memory

In This Appendix. . . .
— DL350 PLC Memory

1G

G--2

PLC Memory

PLC Memeory

Appendix G

DL350 PLC Memory
When designing a PLC application, it is important for the PLC user to understand the
different types of memory in the PLC. Two types of memory are used by the DL350
CPU: RAM and EEPROM. RAM is Random Access Memory and EEPROM is
Electrically erasable Programmable Read Only Memory. The PLC program is stored
in EEPROM, and the PLC V--memory data is stored in RAM. There is also a small
range of V--memory that can be copied to EEPROM which will be explained later.
The V--memory in RAM can be configured as either retentive or non--retentive
memory.
Retentive memory is memory that is configured by the user to maintain values
through a power cycle or a PROGRAM to RUN transition. Non--retentive memory is
memory that is configured by the PLC user to clear data after a power cycle or a
PROGRAM to RUN transition. The retentive ranges can be configured with the
handheld programmer using AUX 57 or DirectSOFT (PLC Setup).
The contents of RAM memory can be written to and read from for an infinite number
of times, but RAM requires a power source to maintain the contents of memory.The
contents of RAM are maintained by the internal power supply (5VDC) only while the
PLC is powered by an external source, normally 120VAC. When power to the PLC is
turned off, the contents of RAM are maintained by a “Super--Capacitor”. If the
Super--Capacitor ever discharges, the contents of RAM will be lost. The data
retention time of the super--Capacitor backed RAM is 3 weeks maximum, and 4 1/2
days minimum (at 60° F). An optional batery, D2--BAT--1, can be added to maintain RAM
retentive memory if the DL350 is ever without external power (see page 3--6 for a detailed
explanation).

The contents of EEPROM memory can be read from for an infinite number of times
but there is a limit to the number of times it can be written to (typical specification is
100,000 writes). EEPROM does not require a power source to maintain the memory
contents. It will retain the contents of memory indefinately.
PLC user V--memory is stored in both volatile RAM and non--volatile EEPROM
memory. Data being stored in RAM uses V1400 -- V7377 and V10000 -- V17777.
Data stored in EEPROM uses V7400 -- V7777
Data values that must be retained for long periods of time, when the PLC is powered
off, should be stored in EEPROM based V--memory. Since EEPROM is limited to the
number of times it can be written to, it is suggested that transitional logic, such as a
one--shot, be used to write the data one time instead of on each CPU scan.
Data values that are continually changing or which can be initialized with program
logic should be stored in RAM based V--memory.

DL350 User Manual, 2nd Edition

PLC Memory
Non--volatile
V--memory in the
DL350

G--3

There are two types of memory assigned for the non--volatile V--memory area. They
are RAM and flash ROM (EEPROM). They are sharing the same V--memory
addresses; however, you can only use the MOV instruction, D2--HPP and
DirectSOFT to write data to the flash ROM. When you write data to the flash ROM,
the same data is also written to RAM. If you use other instructions, you can only write
data to RAM. When you read data from the nonvolatile V--memory area, the data is
always read from RAM.
Writing Data

Reading Data
RAM

V4000--V4377

V4000--V4377

V4000--V4377

V4000--V4377

There is no way to read data
from the Flash ROM directly.

Other instructions
(OUT, OUTD...)

MOV

MOV

D2--HPP

D2--HPP

DirectSOFT

DirectSOFT

Flash RAM

After a power cycle, the PLC always copies the data in the flash ROM to the RAM.
If you use the instructions except for the MOV instruction to write data into the
non--volatile V--memory area, you only update the data in RAM. After a power cycle,
the PLC copies the previous data from the flash memory to the RAM, so you may
think the data you changed has disappeared. To avoid trouble such as this, we
recommend that you use the MOV instruction.

LD K2222
OUT V4000

RAM

Flash RAM

V4000 = 1111

V4000 = 1111
Copy

V4000 = 2222

V4000 = 1111

V4000 = 1111

V4000 = 1111

Not changed

Cycle power

This appears to be previous data returning.

DL350 User Manual, 2nd Edition

Appendix G

Flash RAM

PLC Memory

RAM

1

ASCII Table

In This Appendix. . . .
— ASCII Conversion Table

1H

Appendix H
ASCII Table

H--2

ASCII Table

DECIMAL TO HEX TO ASCII CONVERTER
DEC

HEX

ASCII

DEC

HEX

ASCII

DEC

HEX

ASCII

DEC

HEX

ASCII

0

00

NUL

32

20

space

64

40

@

96

60

‘

1

01

SOH

33

21

!

65

41

A

97

61

a

2

02

STX

34

22

“

66

42

B

98

62

b

3

03

ETX

35

23

#

67

43

C

99

63

c

4

04

EOT

36

24

$

68

44

D

100

64

d

5

05

ENQ

37

25

%

69

45

E

101

65

e

6

06

ACK

38

26

&

70

46

F

102

66

f

7

07

BEL

39

27

’

71

47

G

103

67

g

8

08

BS

40

28

(

72

48

H

104

68

h

9

09

TAB

41

29

)

73

49

I

105

69

i

10

0A

LF

42

2A

*

74

4A

J

106

6A

j

11

0B

VT

43

2B

+

75

4B

K

107

6B

k

12

0C

FF

44

2C

,

76

4C

L

108

6C

l

13

0D

CR

45

2D

--

77

4D

M

109

6D

m

14

0E

SO

46

2E

.

78

4E

N

110

6E

n

15

0F

SI

47

2F

/

79

4F

O

111

6F

o

16

10

DLE

48

30

0

80

50

P

112

70

p

17

11

DC1

49

31

1

81

51

Q

113

71

q

18

12

DC2

50

32

2

82

52

R

114

72

r

19

13

DC3

51

33

3

83

53

S

115

73

s

20

14

DC4

52

34

4

84

54

T

116

74

t

21

15

NAK

53

35

5

85

55

U

117

75

u

22

16

SYN

54

36

6

86

56

V

118

76

v

23

17

ETB

55

37

7

87

57

W

119

77

w

24

18

CAN

56

38

8

88

58

X

120

78

x

25

19

EM

57

39

9

89

59

Y

121

79

y

26

1A

SUB

58

3A

:

90

5A

Z

122

7A

z

27

1B

ESC

59

3B

;

91

5B

[

123

7B

{

28

1C

FS

60

3C

<

92

5C

\

124

7C

|

29

1D

GS

61

3D

=

93

5D

]

125

7D

}

30

1E

RS

62

3E

>

94

5E

^

126

7E

~

31

1F

US

63

3F

?

95

5F

_

127

7F

DEL

DL350 User Manual, 2nd Edition

Numbering Systems

1I

In This Appendix. . . .
— Introduction
— Binary Numbering System
— Hexadecimal Numbering System
— Octal Numbering System
— Binary Coded Decimal (BCD) Numbering System
— Real (Floating Point) Numbering System
— BCD/Binary/Decimal/Hex/Octal -- What is the Difference?
— Data Type Mismatch
— Signed vs. Unsigned Integers
— AutomationDirect.com Products and Data Types

I--2

Numbering Systems

Introduction
As almost anyone who uses a computer is somewhat aware, the actual operations of
a computer are done with a binary number system. Traditionally, the two possible
states for a binary system are represented by the digits for ”zero” (0) and ”one” (1)
although ”off” and ”on” or sometimes ”no” and yes” are closer to what is actually
involved. Most of the time a typical PC user has no need to think about this aspect of
computers, but every now and then one gets confronted with the underlying nature
of the binary system.
A PLC user should be more aware of the binary system specifically the PLC
programmer. This appendix will provide an explaination of the numbering systems
most commonly used by a PLC.

Appendix I
Numbering Systems

Binary Numbering System
Computers, including PLCs, use the Base 2 numbering system, which is called
Binary and often called Decimal. Like in a computer there are only two valid digits a
PLC relys on, zero and one, or off and on respectively. You would think that it would
be hard to have a numbering system built on Base 2 with only two possible values,
but the secret is by encoding using several digits.
Each digit in the base 2 system when referenced by a computer is called a bit. When
four bits are grouped together, they form what is known as a nibble. Eight bits or two
nibbles would be a byte. Sixteen bits or two bytes would be a word (Table 1).
Thirty--two bits or two words is a double word.
Word
Byte
Nibble

Byte

Nibble

Nibble

Nibble

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Table 1
Binary is not “natural“ for us to use since we have grown up using the base 10
system. Base 10 uses the numbers 0--9, as we are all well aware. From now on, the
different bases will be shown as a subscripted number following the number.
Example; 10 decimal would be 1010.
Table 2 shows how base 2 numbers relate to their decimal equivalents.
A nibble of 10012 would be equal to a decimal number 9 (1*23 + 1*20 or 810 + 110). A
byte of 110101012 would be equal to 213 (1*27 + 1*26 +1*24 + 1*22 +1*20 or 12810 +
6410 + 1610 + 410 + 110).

Table 2

DL350 User Manual, 2nd Edition

Numbering Systems

I--3

Hexadecimal Numbering System
The binary numbering system can be difficult and cumbersome to interpret for some
users. Therefore, the hexadecimal numbering system was developed as a
convenience for humans since the PLC (computer) only uderstands pure binary.
The hexadecimal system is useful because it can represent every byte (8 bits) as two
consecutive hexadecimal digits. It is easier for us to read hexadecimal numbers than
binary numbers.
The hexadecimal numbering system uses 16 characters (base 16) to represent
values. The first ten characters are the same as our decimal system, 0--9, and the
first six letters of the alphabet, A--F. Table 3 lists the first eighteen decimal numbers;
0--17 in the left column and the equivalent hexadecimal numbers are shown in the
right column.
Hex

Decimal

Hex

0

0

9

9

1

1

10

A

2

2

11

B

3

3

12

C

4

4

13

D

5

5

14

E

6

6

15

F

7

7

16

10

8

8

17

11

Table 3
Note that “10” and “11“ in hex are not the same as “10“ and “11“ in decimal. Only the
first ten numbers 0--9 are the same in the two representations. For example,
consider the hex number “D8AF“. To evaluate this hex number use the same method
used to write decimal numbers. Each digit in a decimal number represents a multiple
of a power of ten (base 10). Powers of ten increase from right to left. For example, the
decimal number 365 means 3x102 + 6x10 + 5. In hex each digit represents a multiple
of a power of sixteen (base 16). Therefore, the hex number D8AF translated to
decimal means 13x163 + 8x162 + 10x16 + 15 = 55471. However, going through the
arithmetic for hex numbers in order to evaluate them is not really necessay. The
easier way is to use the calculator that comes as an accessory in Windows. It can
convert between decimal and hex when in “Scientific“ view.
Note that a hex number such as “365“ is not the same as the decimal number “365“.
Its actual value in decimal terms is 3x162 6x16 + 5 = 869. To avoid confusion, hex
numbers are often labeled or tagged so that their meaning is clear. One method of
tagging hex numbers is to append a lower case “h“ at the end. Another method of
labeling is to precede the number with 0x. Thus, the hex number “D8AF“ can also be
written “D8AFh“, where the lower case “h” at the end is just a label to make sure we
know that it is a hex number. Also, D8AF can be written with a labeling prefix as
“0xD8AF”.

DL350 User Manual, 2nd Edition

Appendix I
Numbering Systems

Decimal

I--4

Numbering Systems

Octal Numbering System

Appendix I
Numbering Systems

Many of the early computers used the octal numbering system for compiled
printouts. Today, the PLC is about the only device that uses the Octal numbering
system. The octal numbering system uses 8 values to represent numbers. The
values are 0--7 being Base 8. Table 4 shows the first 31 decimal digits in octal. Note
that the octal values are 0--7, 10--17, 20--27, and 30--37.
Decimal

Hex

Decimal

Hex

0

0

20

16

1

1

21

17

2

2

22

18

3

3

23

19

4

4

24

20

5

5

25

21

6

6

26

22

7

7

27

23

10

8

30

24

11

9

31

25

12

10

32

26

13

11

33

27

14

12

34

28

15

13

35

29

16

14

36

30

17

15

37

31

Table 4
This follows the DirectLOGIC PLCs. Refer to the bit maps in Chapter 3 and notice
that the memory addresses are numbered in octal, as well as each bit. The octal
system is much like counting in the decimal system without the digits 8 and 9 being
available.
The general format for four digits of the octal number is:
(d x 80) + (d x 81) + (d x 82) + (d x 83)
where “d“ means digit. This is the same format used in the binary, decimal, or
hexadecimal systems except that the base number for octal is 8.

DL350 User Manual, 2nd Edition

I--5

Numbering Systems

Using the powers of expansion, the example below shows octal 4730 converted to
decimal.

Binary Coded Decimal (BCD) Numbering System

BCD Bit Pattern
Bit #

15 14 13 12 11 10
103

Power
Bit Value
Max Value

8

4

2
9

9

8

7

102
1

8

4

2
9

6

5

4

3

101
1

8

4

2
9

2

1

0

100
1

8

4

2

1

9

Table 5
One plus for BCD is that it reads like a decimal number, whereas 867 in BCD would
mean 867 decimal. No conversion is needed; however, within the PLC, BCD
calculations can be performed if numbers are adjusted to BCD after normal binary
arithmetic.

DL350 User Manual, 2nd Edition

Appendix I
Numbering Systems

BCD is a numbering system where four bits are used to represent each decimal digit.
The binary codes corresponding to the hexadecimal digits A--F are not used in the
BCD system. For this reason numbers cannot be coded as efficiently using the BCD
system. For example, a byte can represent a maximum of 256 different numbers (i.e.
0--255) using normal binary, whereas only 100 distinct numbers (i.e. 0--99) could be
coded using BCD. Also, note that BCD is a subset of hexadecimal and neither one
does negative numbers.

I--6

Numbering Systems

Real (Floating Point) Numbering System
The terms Real and floating--point both describe IEEE--754 floating point arithmetic.
This standard specifies how single precision (32 bit) and double precision (64 bit)
floating point numbers are to be represented as well as how arithmetic should be
carried out on them. Most PLCs use the 32--bit format for floating point (or Real)
numbers which will be discussed here.

Real (Floating Point 32) Bit Pattern
31

Bit #

Sign
Bit #

15

30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Exponent
14 13 12 11 10

Mantissa
9

8

7

6

5

4

3

2

1

0

Appendix I
Numbering Systems

Mantissa (continues from above)
Table 6
Floating point numbers which DirectLOGIC PLCs use have three basic
components: sign, exponent and mantissa. The 32 bit word required for the IEEE
standard floating point numbers is shown in Table 6. It is represented as a number
from 0 to 31, left to right. The first bit (31) is the sign bit, the next eight bits (30--23) are
the exponent bits and the final 23 bits (22--0) are the fraction bits. In summary:
The sign bit is either “0” for positive or “1“ for negative;
The exponent uses base 2;
The first bit of the mantissa is typically assumed to be “1.fff“, where “f“ is the field of
fraction bits.
The Internet can provide a more indepth explaination of the floating point numbering
system. One website to look at is:
http://www.psc.edu/general/software/packages/ieee/ieee.html

DL350 User Manual, 2nd Edition

Numbering Systems

I--7

BCD/Binary/Decimal/Hex/Octal -What is the Difference?
Sometimes there is confusion about the differences between the data types used in
a PLC. The PLC’s native data format is BCD, while the I/O numbering system is
octal. Other numbering formats used are binary and Real. Although data is stored in
the same manner (0’s and 1’s), there are differences in the way that the PLC
interprets it.
While all of the formats rely on the base 2 numbering system and bit--coded data, the
format of the data is dissimilar. Table 7 below shows the bit patterns and values for
various formats.

Appendix I
Numbering Systems
Table 7
As seen in Table 7, the BCD and hexadecimal formats are similar, although the
maximum number for each grouping is different (9 for BCD and F for hexadecimal).
This allows both formats to use the same display method. The unfortunate side
effect is that unless the data type is documented, it’s difficult to know what the data
type is unless it contains the letters A--F.

DL350 User Manual, 2nd Edition

I--8

Numbering Systems

Data Type Mismatch
Data type mismatching is a common problem when using an operator interface.
Diagnosing it can be a challenge until you identify the symptoms. Since the PLC
uses BCD as the native format, many people tend to think it is interchangeable with
binary (unsigned integer) format. This is true to some extent, but not in this case.
Table 8 shows how BCD and binary numbers differ.

Data Type Mismatch

Appendix I
Numbering Systems

Decimal

0

1

2

3

4

5

6

7

8

9

10

11

BCD

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 0001 0000 0001 0001

Binary

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 0000 1010 0000 1011
Table 8
As the table shows, BCD and binary share the same bit pattern up until you get to the
decimal number 10. Once you get past 10, the bit pattern changes. The BCD bit
pattern for the decimal 10 is actually equal to a value of 16 in binary, causing the
number to jump six digits by when viewing it as the BCD. With larger numbers, the
error multiplies. Binary values from 10 to 15 Decimal are actually invalid for the BCD
data type.
Looking at a larger number, such as the value shown in Table 9, both the BCD bit
pattern and the decimal bit pattern correspond to a base 10 value of 409510. If bit
patterns are read, or interpreted, in a different format than what is used to write them,
the data will not be correct. For instance, if the BCD bit pattern is interpreted as a
decimal (binary) bit pattern, the result is a base 10 value of 1653310. Similarly, if you
try to view the decimal (binary) bit pattern as a BCD value, it is not a valid BCD value
at all, but could be represented in hexadecimal as 0xFFF.

Base 10 Value

BCD Bit Pattern

Binary Bit Pattern

4095

0100 0000 1001 0101

1111 1111 1111

Table 9
Look at the following example and note the same value represented by the different
numbering systems.

DL350 User Manual, 2nd Edition

I--9

Numbering Systems

Signed vs. Unsigned Intergers
So far, we have dealt with unsigned data types only. Now we will deal with signed
data types (negative numbers). The BCD and hexadecimal numbering systems do
not use signed data types.
In order to signify that a number is negative or positive, we must assign a bit to it.
Usually, this is the Most Significant Bit (MSB) as shown in Table 10. For a 16--bit
number, this is bit 15. This means that for 16--bit numbers we have a range of --32767
to 32767.
Bit # 15 14 13 12 11 10

9

8

7

6

5

4

3

2

1

0

Magnitude Plus Sign
Decimal

Binary

100

0000 0000 0110 0100

--100

1000 0000 0110 0100

Table 11
Two’s complement is a bit more complicated. Without getting involved with a full
explanation, a simple formula for two’s complement is to invert the binary and add
one (see Table 12). Basically, 1’s are being changed to 0’s and all 0’s are being
changed to 1.
Two’s Compliment
Decimal

Binary

100

0000 0000 0110 0100

--100

1111 1111 1010 1100

Table 12
More information about 2’s complement can be found on the Internet at the following
websites:
http://www.evergreen.edu/biophysics/technotes/program/2s_comp.htm

DL350 User Manual, 2nd Edition

Appendix I
Numbering Systems

Table 10
There are two ways to encode a negative number: two’s complement and Magnitude
Plus sign. The two methods are not compatible.
The simplest method to represent a negative number is to use one bit of the PLC
word as the sign of a number while the remainder of the word gives its magnitude. It
is general convention to use the most significant bit (MSD) as the sign bit: a 1 will
indicate a negative, and a 0 a positive number. Thus, a 16 bit word allows numbers in
the range ¦32767. The following tables show a representation of 100 and a
representation of --100 in this format.

I--10

Numbering Systems

AutomationDirect.com Products and Data Types

Appendix I
Numbering Systems

DirectLOGIC PLCs

The DirectLOGIC PLC family uses the octal numbering system for all addressing
which includes: inputs, outputs, internal V--memory locations, timers, counters,
internal control relays (bits), etc. Most data in the PLC, including timer and counter
current values, is in BCD format by default. User data in V--memory loacations may
be stored in other data types if it is changed by the programmer, or comes from some
external source, such as an operator interface. Any manipulation of data must use
instructions appropriate for that data type which includes: Load instructions, Math
instructions, Out box instructions, comparison instructions, etc. In many cases, the
data can be changed from one data type to another, but be aware of the limitations of
the various data types when doing so. For example, to change a value from BCD to
decimal (binary), use a BIN instruction box. To change from BCD to a real number,
use a BIN and a BTOR instruction box. When using Math instructions, the data
types must match. For example, a BCD or decimal (binary) number cannot be
added to a real number, and a BCD number cannot be added to a decimal (binary)
number. If the data types are mismatched, the results of any math operation will be
meaningless.
To simplify making, number conversions Intelligent Box (IBox) Instructions are
avaialable with DirectSOFT. These instruction descriptions are located in Volume 1,
page 5--230, in the Math IBox group.
Most DirectLOGIC analog modules can be setup to give the raw data in decimal
(binary) format or in BCD format, so it is necessary to know how the module is being
used. DirectLOGIC PID is another area where not all values are in BCD. In fact,
nearly all of the PID parameters are stored in the PLC memory as decimal (binary)
numbers.
NOTE: The PID algorithm uses magnitude plus sign for negative decimal (binary)
numbers, whereas the standard math functions use two’s complement. This can
cause confusion while debugging a PID loop.

C--more/C--more
Micro--Graphic
Panels

When using the Data View in DirectSOFT, be certain that the proper format is
selected for the element to be viewed. The data type and length is selected using the
drop--down boxes at the top of the Data View window. Also notice that BCD is called
BCD/Hex. Remember that BCD is a subset of hexadecimal so they share a display
format even though the values may be different. This is where good documentation
of the data type stored in memory is crucial.
In the C--more and C--more Micro--Graphic HMI operator panels, the 16--bit BCD
format is listed as “BCD int 16“. Binary format is either “Unsigned int 16“ or “Signed
int 16“ depending on whether or not the value can be negative. Real number format
is “Floating PT 32”.
More available formats are, “BCD int 32“, “Unsigned int 32“ and “Signed int 32“.

DL350 User Manual, 2nd Edition

European Union
Directives (CE)
In This Appendix. . . .
— European Union (EU) Directives
— Basic EMC Installation Guidelines

1J

J--2

European Union Directives

European Union (EU) Directives
NOTE: The information contained in this section is intended as a guideline and is
based on our interpretation of the various standards and requirements. Since the
actual standards are issued by other parties and in some cases Governmental
agencies, the requirements can change over time without advance warning or notice.
Changes or additions to the standards can possibly invalidate any part of the
information provided in this section.

Member Countries

As of January 1, 2007, the members of the EU are Austria, Belgium, Cyprus, Czech
Republic, Denmark, Estonia, Finland, France, Germany, Greece, Ireland, Italy,
Latvia, Lithonia, Luxembourg, Malta, Netherlands, Poland, Portugal, Romania,
Slovakia, Slovenia, Spain, Sweden, and the United Kingdom. Iceland,
Liechtenstein, and Norway together with the EU members make up the European
Economic Area (EEA) and all are covered by the Directives.

Applicable
Directives

There are several Directives that apply to our products. Directives may be amended,
or added, as required.
Electromagnetic Compatibility Directive (EMC) — this Directive attempts
to ensure that devices, equipment, and systems have the ability to
function satisfactorily in its electromagnetic environment without
introducing intolerable electromagnetic disturbance to anything in that
environment.

EU Directives

Appendix J

This area of certification and approval is absolutely vital to anyone who wants to do
business in Europe. One of the key tasks that faced the EU member countries and
the European Economic Area (EEA) was the requirement to harmonize several
similar yet distinct standards together into one common standard for all members.
The primary purpose of a harmonized standard was to make it easier to sell and
transport goods between the various countries and to maintain a safe working and
living environment. The Directives that resulted from this merging of standards are
now legal requirements for doing business in Europe. Products that meet these
Directives are required to have a CE mark to signify compliance.

Machinery Safety Directive — this Directive covers the safety aspects of
the equipment, installation, etc. There are several areas involved,
including testing standards covering both electrical noise immunity and
noise generation.
Low Voltage Directive — this Directive is also safety related and covers
electrical equipment that has voltage ranges of 50--1000VAC and/or
75--1500VDC.
Battery Directive — this Directive covers the production, recycling, and
disposal of batteries.
Compliance

Certain standards within each Directive already require mandatory compliance. The
EMC Directive, which has gained the most attention, became mandatory as of
January 1, 1996. The Low Voltage Directive became mandatory as of January 1,
1997.
Ultimately, we are all responsible for our various pieces of the puzzle. As
manufacturers, we must test our products and document any test results and/or

DL350 User Manual, 2nd Edition

European Union Directives

J--3

installation procedures that are necessary to comply with the Directives. As a
machine builder, you are responsible for installing the products in a manner which
will ensure compliance is maintained. You are also responsible for testing any
combinations of products that may (or may not) comply with the Directives when
used together. The end user of the products must comply with any Directives that
may cover maintenance, disposal, etc. of equipment or various components.
Although we strive to provide the best assistance available, it is impossible for us to
test all possible configurations of our products with respect to any specific Directive.
Because of this, it is ultimately your responsibility to ensure that your machinery (as
a whole) complies with these Directives and to keep up with applicable Directives
and/or practices that are required for compliance.

DL350 User Manual, 2nd Edition

Appendix J
EU Directives

As of January 1, 1999, the DL05, DL06 DL205, DL305, and DL405 PLC systems
manufactured by either Koyo Electronics Industries, FACTS Engineering or Host
Engineering, when properly installed and used, conform to the Electromagnetic
Compatibility (EMC) and Low Voltage Directive requirements of the following
standards.
EMC Directive Standards Revelant to PLCs
EN50081--1 Generic immunity standard for residential, commercial,
and light industry
EN50081--2 Generic emission standard for industrial environment.
EN50082--1 Generic immunity standard for residential, commercial,
and light industry
EN50082--2 Generic immunity standard for industrial environment.
Low Voltage Directive Standards Applicable to PLCs
EN61010--1 Safety requirements for electrical equipment for
measurement, control, and laboratory use.
Product Specific Standard for PLCs
EN61131--2 Programmable controllers, equipment requirements and
tests. This standard replaces the above generic standards for immunity
and safety. However, the generic emissions standards must still be used
in conjunction with the following standards:
EN 61000-3-2 Harmonics
EN 61000-3-2 Fluctuations
Warning on Electrostatic Discharge (ESD)
We recommend that all personnel take necessary precautions to avoid
the risk of transferring static charges to the inside of the control cabinet,
and clear warnings and instructions should be provided on the cabinet
exterior. Such precautions may include the use of earth straps, similar
devices or the powering down of the equipment inside the enclosure
before the door is opened.
Warning on Radio Interference (RFI)
This is a class A product. In a domestic environment this product may
cause radio interference in which case the user may be required to take
adequate measures.

J--4

European Union Directives

External switches, circuit breakers or external fusing, are required for these
devices.
The switch or circuit breaker should be mounted near the PLC equipment.
AutomationDirect is currently in the process of changing their testing procedures
from the generic standards to the product specific standards.
Special Installation The installation requirements to comply with the requirements of the Machinery
Directive, EMC Directive and Low Voltage Directive are slightly more complex than
Manual
the normal installation requirements found in the United States. To help with this, we
have published a special manual which you can order:
DA--EU--M -- This is an EU Installation Manual that covers special
installation requirements to meet the EU Directive requirements. Order
this manual to obtain the most up-to-date information.
Although the EMC Directive gets the most attention, other basic Directives, such as
Other Sources of
the Machinery Directive and the Low Voltage Directive, also place restrictions on the
Information
control panel builder. Because of these additional requirements it is recommended
that the following publications be purchased and used as guidelines:
BSI publication TH 42073: February 1996 -- covers the safety and electrical
aspects of the Machinery Directive
EN 60204--1:1992 -- General electrical requirements for machinery, including
Low Voltage and EMC considerations
IEC 1000--5--2: EMC earthing and cabling requirements
IEC 1000--5--1: EMC general considerations
It may be possible for you to obtain this information locally; however, the official
source of applicable Directives and related standards is:
The Office for Official Publications of the European Communities L--2985
Luxembourg; quickest contact is via the World Wide Web at
http://euro--op.eu.int/indexn.htm
Another source is:
British Standards Institution -- Sales Department
Linford Wood
Milton Keynes
MK14 6LE
United Kingdom: the quickest contact is via the internet at
http://www.bsi.org.uk

EU Directives

Appendix J

General Safety

DL350 User Manual, 2nd Edition

European Union Directives

J--5

Basic EMC Installation Guidelines
Enclosures

The simplest way to meet the safety requirements of the Machinery and Low Voltage
Directives is to house all control equipment in an industry standard lockable steel
enclosure. This normally has an added benefit because it will also help ensure that
the EMC characteristics are well within the requirements of the EMC Directive.
Although the RF emissions from the PLC equipment, when measured in the open
air, are below the EMC Directive limits, certain configurations can increase emission
levels. Holes in the enclosure, for the passage of cables or to mount operator
interfaces, will often increase emissions.

AC Mains Filters

The DL205 and DL305 AC
powered base power supplies
require extra mains filtering to
comply with the EMC Directive
on conducted RF emissions.
All PLC equipment has been
tested with filters from
Schaffner,
which
reduce
emissions levels if the filters
are properly grounded (earth
ground). A filter with a current
rating suitable to supply all
PLC power supplies and AC
input modules should be
selected. We suggest the
FN2010 for the DL205
systems and the FN2080 for
DL305 systems. The DL05,
DL06 and DL405 systems do
not require extra filtering.

Filter

Schaffner
FN2010

Transient
Suppressor

To AC
Input
Circuitry

Fused
Terminals

Earth
Terminal
L N

Suppression and
Fusing

In order to comply with the fire risk requirements of the Low Voltage and Machinery

Directive electrical standards EN 61010--1, and EN 60204--1, by limiting the power
into “unlimited” mains circuits with power leads reversed, it is necessary to fuse both
AC and DC supply inputs. You should also install a transient voltage suppressor
across the power input connections of the PLC. Choose a suppressor such as a metal
oxide varistor, with a rating of 275VAC working voltage for 230V nominal supplies
(150VAC working voltage for 115V supplies) and high energy capacity (eg. 140
joules).
Transient suppressors must be protected by fuses and the capacity of the transient
suppressor must be greater than the blow characteristics of the fuses or circuit
breakers to avoid a fire risk. A recommended AC supply input arrangement for Koyo
PLCs is to use twin 3 amp TT fused terminals with fuse blown indication, such as
DINnectors DN--F10L terminals, or twin circuit breakers, wired to a Schaffner FN2010
filter or equivalent, with high energy transient suppressor soldered directly across the

DL350 User Manual, 2nd Edition

Appendix J
EU Directives

NOTE: Very few mains filters can reduce problem emissions to negligible levels. In
some cases, filters may increase conducted emissions if not properly matched to the
problem emissions.

J--6

European Union Directives
output terminals of the filter. PLC system inputs should also be protected from voltage
impulses by deriving their power from the same fused, filtered, and surge-suppressed
supply.

Internal Enclosure
Grounding

A heavy-duty star earth terminal block should be provided in every cubicle for the
connection of all earth ground straps, protective earth ground connections, mains
filter earth ground wires, and mechanical assembly earth ground connections. This
should be installed to comply with safety and EMC requirements, local standards, and
the requirements found in IEC 1000--5--2.The Machinery Directive also requires that
the common terminals of PLC input modules, and common supply side of loads driven
from PLC output modules should be connected to the protective earth ground
terminal.

Equi--potential
Grounding

EU Directives

Appendix J

Key

Serial Communication Cable
Equi-potential Bond

Adequate site earth grounding must be provided for equipment containing modern
electronic circuitry. The use of isolated earth electrodes for electronic systems is
forbidden in some countries. Make sure you check any requirements for your
particular destination. IEC 1000--5--2 covers equi-potential bonding of earth grids
adequately, but special attention should be given to apparatus and control cubicles
that contain I/O devices, remote I/O racks, or have inter-system communications with
the primary PLC system enclosure. An equi-potential bond wire must be provided
alongside all serial communications cables, and to any separate items of the plant
which contain I/O devices connected to the PLC. The diagram shows an example
of four physical locations connected by a communications cable.
Communications
and Shielded
Cables

Screened
Cable

Conductive
Adapter
Serial
I/O

To Earth
Block
Equi-potential
Bond
Control Cubicle

DL350 User Manual, 2nd Edition

European Union Directives

Analog and RS232
Cables

Multidrop Cables

J--7

Last Slave

100Ω

Master

Slave n

TXD 0V RXD
+ -+ --

TXD 0V RXD
+ -+ --

RXD 0V TXD
+ -+ --

100Ω
100Ω
Termination

Termination

DL350 User Manual, 2nd Edition

Appendix J
EU Directives

Good quality 24 AWG minimum twisted-pair shielded cables, with overall foil and
braid shields are recommended for analog cabling and communications cabling
outside of the PLC enclosure.
To date, it has been a common practice to only provide an earth ground for one end of
the cable shield in order to minimize the risk of noise caused by earth ground loop
currents between apparatus. The procedure of only grounding one end, which
primarily originated as a result of trying to reduce hum in audio systems, is no longer
applicable to the complex industrial environment. Shielded cables are also efficient
emitters of RF noise from the PLC system, and can interact in a parasitic manner in
networks and between multiple sources of interference.
The recommendation is to use shielded cables as electrostatic “pipes” between
apparatus and systems, and to run heavy gauge equi-potential bond wires
alongside all shielded cables. When a shielded cable runs through the metallic wall
of an enclosure or machine, it is recommended in IEC 1000--5--2 that the shield
should be connected over its full perimeter to the wall, preferably using a conducting
adapter, and not via a pigtail wire connection to an earth ground bolt. Shields must be
connected to every enclosure wall or machine cover that they pass through.
Providing an earth ground for both ends of the shield for analog circuits provides the
perfect electrical environment for the twisted pair cable as the loop consists of signal
and return, in a perfectly balanced circuit arrangement, with connection to the
common of the input circuitry made at the module terminals. RS232 cables are
handled in the same way.
RS422 twin twisted pair, and RS485 single twisted pair cables also require a 0V link,
which has often been provided in the past by the cable shield. It is now
recommended that you use triple twisted pair cabling for RS422 links, and twin
twisted pair cable for RS485 links. This is because the extra pair can be used as the
0V inter-system link. With loop DC power supplies earth grounded in both systems,
earth loops are created in this manner via the inter-system 0v link. The installation
guides encourage earth loops, which are maintained at a low impedance by using
heavy equi-potential bond wires. To account for non--European installations
using single-end earth grounds, and sites with far from ideal earth ground
characteristics, we recommend the addition of 100 ohm resistors at each 0V
link connection in network and communications cables.

J--8

European Union Directives

When you run cables between PLC items within an enclosure which also contains
susceptible electronic equipment from other manufacturers, remember that these cables
may be a source of RF emissions. There are ways to minimize this risk. Standard data
cables connecting PLCs and/or operator interfaces should be routed well away from
other equipment and their associated cabling. You can make special serial cables where
the cable shield is connected to the enclosure’s earth ground at both ends, the same way
as external cables are connected.
Caution Regarding The readings from all analog modules can be affected by the use of devices that
exhibit high field strengths such as mobile phones and motor drives.
RF Interference
near Analog
All AutomationDirect products are tested to withstand field strength levels up to
Modules
10V/m. which is the maximum required by the relevant EU standards. While all
products pass this test, analog modules will typically exhibit deviations of their
readings. This is quite normal, however, systems designers should be aware of this
and plan accordingly.
When assembling a control system using analog modules, these issues must be
adhered to and should be integrated into the system design. This is the responsibility
of the system builder/commissioner.
Again, for further information on EU directives we recommend that you get a copy of
our EU Installation Manual (DA--EU--M). The EU Commision’s official website is:
http://eur--op.eu.int/
Network Isolation For safety reasons, it is a specific requirement of the Machinery Directive that a
keyswitch must be provided that isolates any network input signal during
maintenance, so that remote commands cannot be received that could result in the
operation of the machinery. The FA--ISONET does not have a keyswitch! Use a
keylock and switch on your enclosure which when open removes power from the
FA--ISONET. To avoid the introduction of noise into the system, any keyswitch
assembly should be housed in its own earth grounded steel box and the integrity of
the shielded cable must be maintained.
Again, for further information on EU directives we recommend that you get a copy of
our EU Installation Manual (DA--EU--M). Also, if you are connected to the World
Wide Web, you can check the EU Commission’s official site at:
http://ec.europa.eu/index_en.htm. DC Powered Versions Due to slightly higher
emissions radiated by the DC powered versions of the DL350, and the differing
emissions performance for different DC supply voltages, the following stipulations
must be met:
The PLC must be housed within a metallic enclosure with a minimum
amount of orifices.
I/O and communications cabling exiting the cabinet must be contained
within metallic
conduit/trunking.

EU Directives

Appendix J

Shielded Cables
within Enclosures

DL350 User Manual, 2nd Edition

European Union Directives
Items Specific to
the DL350

J--9

The rating between all circuits in this product are rated as basic insulation
only, as appropriate for single fault conditions.
There is no isolation offered between the PLC and the analog inputs of this
product.
It is the responsibility of the system designer to earth ground one side of all
control and power circuits, and to earth the braid of screened cables.
This equipment must be properly installed while adhering to the guidelines
of the PLC installation manual DA--EU--M, and the installation standards
IEC 1000--5--1, IEC 1000--5--2 and IEC 1131--4.
It is a requirement that all PLC equipment must be housed in a protective
steel enclosure, which limits access to operators by a lock and power
breaker. If access is required by operators or untrained personnel, the
equipment must be installed inside an internal cover or secondary
enclosure. A warning label must be used on the front door of the
installation cabinet as follows:
Warning: Exposed terminals and hazardous voltages inside.
It should be noted that the safety requirements of the machinery directive
standard EN60204--1 state that all equipment power circuits must be
wired through isolation transformers or isolating power supplies, and
that one side of all AC or DC control circuits must have a earth ground.
Both power input connections to the PLC must be separately fused using 3
amp T type anti--surge fuses, and a transient suppressor fitted to limit
supply overvoltages.
If the user is made aware by notice in the documentation that if the
equipment is used in a manner not specified by the manufacturer the
protection provided by the equipment may be impaired.
Input power cables must be externally fused and have an externally
mounted switch or circuit breaker, preferably mounted near the PLC.

For hardware maintenance instructions, see the Maintenance and
Troubleshooting section in this manual. This section also includes
battery replacement information. Also, only replacement parts supplied
by Automationdirect.com or its agents should be used.

DL350 User Manual, 2nd Edition

Appendix J
EU Directives

NOTE: The AC powered DL350 internal base supply has a 2A@250V slow blow
fuse which is not replaceble, so external fusing is required.

1

1
Index

A
ASCII Table, H--2
Auxiliary Functions, 3--8, A--2
accessing
with DirectSOFT, A--3
with the Handheld, A--3

B
Bases
conventional specifications, F--5
expansion, 4--9, F--8
installing modules, 2--9, 2--11
local, 4--9, F--8
mounting dimensions, 2--10
power wiring, 2--13
setting base jumpers, F--10
setting switches, 4--11, F--10
Slot Numbering, 2--25
Specifications, 4--5
Battery
CPU indicator, 9--2
replacement, 9--2
I/O Modules, Troubleshooting, 9--13

C
Clock and Calendar, 3--9
Communication
ports, 3--5
setting addresses, 3--10
Communications, Problems, 9--12
Configuration
I/O
automatic check, A--5
selecting a new configuration, A--5
viewing, A--5

I/O examples, F--11–F--19
Convergence Stages, 7--19, 7--25
Conventional I/O Numbering, F--2
CPU
battery, 9--2
Battery Backup, 3--6
clearing memory, 3--9, A--4
Diagnostics, 3--15
features, 3--2, 3--4
Indicators, 9--9
Mode Operation, 3--12
Mode Switch, 3--4
Port 1 Specifications, 3--5
Port 2 Specifications, 3--5
Scan Time, 3--18
setup, 3--7
clearing memory, 3--9
initializing system memory, 3--9
Specifications, 3--3
Status Indicators, 3--4

D
Diagnostics, 9--3
Dimensions, 2--10
DirectNET, 4--22
DirectNET Port Configuration, 4--24
Network Master Operation, 4--30
Network Slave Operation, 4--25
Discrete Input, specifications, 2--28–2--39
Discrete Output, specifications, 2--40–2--54
DL405 Aliases, 3--30
Drum instructions, 6--12
Drum sequencers, 6--2
Drum step transitions, 6--4
Duplicate Reference Check, A--4

E
Emergency Stop Switch, 2--3
Error Codes
fatal, 9--3

DL350 User Manual, 2nd Edition

Index--2
listing, B--2–B--9
non--fatal, 9--3
Program, 9--8
special relays assigned to, 9--5
System, 9--7
V--memory locations for, 9--4
European Directives, J--2
Expansion Bases, 4--9, 4--10, & F--8 to F--9

F
Fatal Errors, 9--3, 9--7
Forcing I/O, 3--13, 9--24

G
Grounding, 2--6 to 2--7 & 2--8 to 2--9

I
I/O Modules
address switch (base), 4--11, F--10
configuration, A--5
power up check, A--5
viewing, A--5
configuration history, F--2
diagnostics, A--5
discrete input specifications, 2--28–2--39
discrete output specifications, 2--40–2--54
example configurations, F--11–F--19
numbering, F--2, F--3
placement, 4--3–4--7, F--4–F--6
point requirements, F--3
I/O Modules Wiring, 2--24, 2--26
I/O Response Time, 3--16
I/O Wiring Strategies, 2--14
Initial Stages, 7--5, 7--23
Input Modules
specifications, 2--28–2--39
wiring diagrams, 2--28–2--39
Installation
base, mounting dimensions, 2--10
component dimensions, 2--10
grounding, 2--4–2--5
installing modules, 2--9, 2--11
local and expansion bases, 4--9, F--8
panel design specifications, 2--4
Instruction Set, index table, 5--3
Instructions, 5--2
execution times, C--2–C--23
stage, 7--23
stage programming, 7--2

DL350 User Manual, 2nd Edition

J
Jump Instruction, 7--7 & 7--24
Jumpers, on bases, F--10
Jumpers, on bases, 4--11

L
Local Bases, 4--9, F--8

M
Masked drums, 6--18
Math Instructions, 5--77
Memory, G--2
clearing, 3--9
program memory, A--4
V--memory, A--4
Control Relay Bit Map, 3--31, 3--33
DL350 Memory Map, 3--29
initializing system memory, 3--9
map, 3--23
Scratch Pad Memory, 3--9
Stage Bit Map, 3--35
X input/Y output map, 3--30, 3--32
MODBUS, 4--22
MODBUS Port Configuration, 4--23
Network Master Operation, 4--30
Network Slave Operation, 4--25
Mode Switch, 3--4
Module Placement, 4--3
Module Power Requirement, 4--5
Mounting
Guidelines, 2--4
Panel, 2--5, 2--7

N
Netork Address, A--6
Network Address, 3--10
Non--fatal Errors, 9--3
Number Conversions, 5--103
Numbering Systems
BCD, I--5
Binary, I--2
Floating Point, I--6
Hexadecimal, I--3
Octal, I--4

O
Output Modules
power disconnect, 2--3
specifications, 2--40–2--54
wiring diagrams, 2--40–2--54

Index--3
P
Part Numbering Scheme, 1--8
Password Protection, 3--10
PID
Analog Filter, 8--54
Bumpless Transfer, 8--13, 8--27
Cascade Control, 8--63
Tuning, 8--65
Control Introduction, 8--4
DirectSOFT 5 Filter, 8--55
DL450 Control, 8--6
Error Flags, 8--18
Error Term Selection, 8--33
Example Program, 8--70
Loop Modes, 8--28, 8--53
On/Off Control, 8--66
Operation, 8--9
Parameters, 8--32
PID View, 8--49–8--51
Ramp/Soak, 8--39
Reset Windup, 8--10, 8--34
Special Features, 8--52
Time Proportioning, 8--66
PID Alarms
Alarm Features, 8--3
Auto Tuning Error, 8--48
Hysteresis, 8--13, 8--36, 8--38
Monitor Limit, 8--35
Overflow/Underflow Error, 8--38
Programming Error, 8--38
PV Deviation, 8--36
Rate--of--Change, 8--13, 8--37
Setup Alarms, 8--35
PID Loop
Alarms, 8--13
Configure, 8--26
Features, 8--2, 8--3
Feedforward Control, 8--68
Freeze Bias, 8--11, 8--34
Loop Definitions, 8--21
Mode, 8--28
Operating Modes, 8--14
Special Loop Calculations, 8--14
Setup, 8--18
Terminology, 8--74
Time--Proportioning Control, On/Off Control
Example, 8--67
Transfer Mode, 8--27
Troubleshooting Tips, 8--72
Tuning, 8--40
Auto , 8--45

Manual, 8--41–8--44
PID Mode 2 Word Description, 8--23
PID Mode Setting 1 Description, 8--22
PID Position Algorithm, 8--9, 8--15
Position Form, 8--9
PID Velocity Algorithm, 8--9
Algorithm Form, 8--12
Velocity Algorithm, 8--15
PLC Numbering System, 3--21
Power Budget, 4--5
Example, 4--7
Power Indicator, 9--10
Programming
changing I/O references, A--4
checking for duplicate references, A--4
checking the program syntax, A--4
clearing memory, A--4
instruction execution times, C--2–C--23
instruction set index, 5--3

R
Ramp/Soak Generator, 8--56
Controls, 8--59
DirectSOFT Example, 8--61
Flag Bit Description Table, 8--24
Profile Monitoring, 8--60
Table, 8--57
Table Flags, 8--59
Table Location, 8--25
Test the Profile, 8--62
Testing, 8--60
Remote I/O
Port Connections, 4--18
Remote I/O Expansion, 4--16
Retentive Memory, 3--10
RLLPLUS, instructions, 7--23–7--29
Run Relay, F--7
Run Time Edits, 9--22

S
Safety
emergency switch, 2--3
guidelines, 2--2–2--3
levels of protection, 2--2
output module power disconnect, 2--3
panel design specifications, 2--4
planning for, 2--2
sources of assistance, 2--2
Scan Time, 3--18
Sinking/Sourcing, 2--17
Special Relays, 9--5
Specifications
component weights, E--2

DL350 User Manual, 2nd Edition

Index--4
discrete input modules, 2--28–2--39
discrete output modules, 2--40–2--54
panel design, 2--4
Stage Counter instruction, 7--16
Stage programming, 7--2
convergence, 7--19
four steps to writing a stage program, 7--9
garage door opener example, 7--10
initial stages, 7--5
instructions, 7--23–7--29
introduction, 7--2
jump instruction, 7--7
managing large programs, 7--21
mutually exclusive transitions, 7--14
parallel processes, 7--12
parallel processing concepts, 7--19
power flow transition, 7--18
program organization, 7--15
questions and answers, 7--29
stage view, 7--28
state transition diagrams, 7--3
supervisor process, 7--17
timer inside stage, 7--13
unconditional outputs, 7--18
Stages, blocks, 7--27
System
component dimensions, 2--10
memory initialization, 3--9
panel design specifications, 2--4
V--Memory, 3--27
System design strategies, 4--2

T

Timed drum, 6--12
Troubleshooting, 9--16
cabinet air environment, 9--2
error codes, B--2
special relays for, 9--5
V--memory locations for, 9--4
fatal errors, 9--3
finding diagnostic information, 9--3
I/O modules, A--5
selecting a new configuration, A--5
low battery, 9--2
machine startup and program, 9--17
non--fatal errors, 9--3

DL350 User Manual, 2nd Edition

W
Watchdog Timer, A--6
Wiring, base power supply, 2--13

V
Velocity algorithm, 8--30

W
Watchdog Timer, A--6
Wiring, base power supply, 2--11



Source Exif Data:
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.6
Linearized                      : Yes
Author                          : ghawkinson
Create Date                     : 2010:04:23 10:21:22-04:00
Modify Date                     : 2012:01:24 12:38:37-05:00
Has XFA                         : No
XMP Toolkit                     : Adobe XMP Core 4.2.1-c043 52.372728, 2009/01/18-15:08:04
Metadata Date                   : 2012:01:24 12:38:37-05:00
Creator Tool                    : PScript5.dll Version 5.2
Format                          : application/pdf
Title                           : title page
Creator                         : ghawkinson
Document ID                     : uuid:4de8fc7c-d308-4359-83fb-de3d4688f7d3
Instance ID                     : uuid:65b0181f-d47d-497d-a47e-507b3a8ec7f3
Producer                        : Acrobat Distiller 8.1.0 (Windows)
Page Mode                       : UseOutlines
Page Count                      : 561
EXIF Metadata provided by EXIF.tools

Navigation menu