Page View / The Manual D3350
User Manual: View / the Manual D3-350 CPU User Manual
Open the PDF directly: View PDF .
Page Count: 561
Download | |
Open PDF In Browser | View 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 : 561EXIF Metadata provided by EXIF.tools