Вы находитесь на странице: 1из 392

96M0366

Users Manual
Visual KV Series

Programming

How this manual is organized: The Visual KV Series Users Manual is composed of 3 separate manuals; 1-Installation, 2-Support Software, 3-Programming. Please read each manual relevant to your purpose.

Safety Precautions
This instruction manual describes the operation and function of the KV Series PLC. Read this manual carefully to ensure safe use and maximum performance from your KV Series PLC.

Symbols
The following symbols alert you to important messages. Be sure to read these messages carefully.

WARNING shock, burn, etc.)

Failure to follow instructions may lead to injury. (electric

CAUTION
Note:

Failure to follow instructions may lead to product damage.

Provides additional information on proper operation.

Conventions
This manual describes the operation/function of all Keyence KV Series PLC. Note following conventions when you use.
Visual KV (Series) KV-10xx, 16xx, 24xx, 40xx Conventional KV (Series) KV-300 (Series) KV-10/80 (Series) KV-10AR/AT/DR/DT KV-24AR/AT/DR/DT KV-10R(W)/T(W) KV-24R(W)/T(W) KV-80R(W)/T(W) KV-300 KV-16AR/AT/DR/DT KV-40AR/AT/DR/DT KV-16R(W)/T(W) KV-40R(W)/T(W)

General Precautions
At startup and during operation, be sure to monitor the functions and performance of the KV Sereis PLC. We recommend that you take substantial safety measures to avoid any damage in the event a problem occurs. Do not open or modify the KV Series PLC or use it in any way other than described in the specifications. When the KV Series PLC is used in combination with other instruments, functions and performance may be degraded, depending on operating conditions and the surrounding environment. Do not use the KV Series PLC for the purpose of protecting the human body. Note: The built-in display may show the error message "Error 40" blinking the very first time you turn on the power supply to the Visual KV Series. Press any key around the display to cancel this message. The Visual KV Series shows this message when no program is loaded.

(1)

Note to User
When using the Visual KV Series in the following conditions or environments, be sure to use the Visual KV Series with sufficient margin regarding the rating and functions, take appropriate safety precautions such as fail-safe, and contact our sales personnel if any questions arise. Use in conditions or environments not described in this manual Use for nuclear power control, railway facilities, air service facilities, vehicles, combustion devices, medical equipment, amusement machines, safety equipment, etc. Use for applications where large effects are predicted to be given on human lives and properties and safety is especially requested.

Restriction on Acquiring the CE Marking


Restriction to be compatible with EMC directives When using a relay output type unit (whose model name ends with "R"), connect spark killers having the appropriate withstand voltage against the load to the output terminals in parallel to contacts (because the unit discharges when a relay contact becomes open and noise is generated). In our experiments, we use the following models of spark killers. XEB0101 0.1 F-10 manufactured by OKAYA DENKI SANGYO The following 1-turn ferrite core is added to the AC power input circuit of the KV40AR/T, the KV-24AR/T and to the DC power input circuit of the KV-40DR/T. ZCAT3035-1330 manufactured by TDK Note: The contents above do not by themselves ensure that the entire machine manufactured in accordance with the above contents is compatible with EMC directives. You must judge by yourself whether or not the entire machine is compatible with EMC directives because compatibility may change depending on the component configuration, wiring and location inside of the machine. Restriction on compatibility with low-voltage directives (IEC-1010-1) Use insulated type crimp-style terminals. For wiring materials, use lead wires whose sheath is 0.4 mm or more. The Visual KV Series is allowed to be installed in a vertical position only. (Spacers for expansion units are not available.) Be sure to use the Visual KV Series inside the control panel.

96M0366

(2)

Features of the Visual KV Series


Extremely small The Visual KV Series is the smallest in the world among AC type PLCs equipped with screw terminal blocks, and saves installation space. Extremely fast The minimum scan time is 140 s and minimum instruction execution time is 0.7 s, which is the fastest control in its class. AC power built-in type newly added AC power built-in type units are newly added. This type can be used in small spaces where a switching power supply unit cannot be installed. Excellent Access Window An Access Window with two-color backlight is adopted in all models to facilitate changing and monitoring of device data. Changing between RUN mode and PROGRAM mode, checking the error code when an error has occurred, etc. can be performed in a Visual KV Series unit without the need for any handheld programmer. The analog trimmer, which has been popular in the conventional KV Series, is digitized to enable more detail settings. [Digital trimmers] User message setting function In the Access Window, 256 different user messages can be displayed. This function can be used to give instructions on works on the production line, indicate abnormalities in the units, etc. Program write in RUN mode Ladder programs can be changed even while the system is running. Equipped with two serial ports Visual KV Series basic units are equipped with two serial ports to connect peripheral units, improving the debug environment. (The KV-10xx is equipped with only one serial port.) Easy Ramp-up/down control function The one-axis motor control function is offered separately from high-speed counters so that feedback control is enabled. Equipped with two 24-bit high-speed 30 kHz, two-phase counters The Visual KV Series is equipped with two high-speed counters each with a twopoint comparator output function that enables high-speed encoder input. Specified frequency pulse output function High-speed counters can function as pulse oscillators of 50 kHz maximum with easy setting, without creating a complicated ladder program. Frequency counter function High-speed counters can function as frequency counters with easy setting, without creating complicated ladder programs. Cam switch function High-speed counters can function as cam switches with easy setting, without creating complicated ladder programs.

(3)

Interrupt function The Visual KV Series is equipped with four high-speed interrupt inputs of 10 s maximum. Input time constant change function The time constant can be set in 7 steps from 10 s to 10 ms. Double memory backup functions In addition to a conventional SRAM battery backup function, the Visual KV Series is also equipped with an EEPROM backup function.

Compatibility with Conventional KV Series Peripheral Units


The Visual KV Series functions as a high-end compatible model of the conventional KV Series. Peripheral units of the conventional KV Series such as the ladder support software "KV IncrediWare (DOS)" and "LADDER BUILDER for KV" and the handheld programmer KV-P3E(01) can be used since they are part of the Visual KV Series. However, it should be noted that the contents have changed as follows. The internal clock cycle of high-speed counters consists of three types: 1 s, 10 s, and 100 s. The time constant for an input relay specified by the HSP instruction is 10 s. The analog trimmer function is set with the Access Window built into the basic unit. The available device setting range of the TMIN instruction is from 0 to 65535. [Handheld programmer KV-P3E(01) can display 0 to 9999 .] The RUN/PROGRAM LED is displayed in the Access Window provided on the front face of the basic unit. Transistor output is not independent, but is common. With the transistor type, the output terminal layout is different. The specifications for output current of transistor outputs Nos. 500 to 502 is 100 mA. Conventional KV Series expansion units are not available as expansion units for the Visual KV Series. The channel setting switch is not provided for expansion units. Channels are determined in connection order. Scans in expansion I/O units are not synchronous with the scan time in Visual KV Series basic units. Assignment of special utility relays has partially changed. Data memory device Nos. DM1000 to DM1999 are assigned as special data memories.

(4)

Cautions when using the previous version of ladder support software


Pay strict attention to the following items when using the ladder support software. When using the ladder support software "KV IncrediWare (DOS)" or "LADDER BUILDER for KV Ver. 1.0x", set the model to "KV-300". DM0 to DM1999 are only available.

CAUTION

When the ladder support software "LADDER BUILDER for KV Ver. 1.0x" is used, do not use the monitors Change All function. If the Change All function is used, the basic unit may be damaged. Never use the Change All function.

Peripheral units and other units incompatible with the Visual KV Series
Peripheral units in the conventional KV Series and other units shown below are not compatible with the Visual KV Series. Expansion I/O units for the conventional KV Series: KV-8ER/8ET/8EX/16EX/ 8EYR/8EYT/16EYR/16EYT Analog I/O units for the conventional KV Series: KV-AD4/DA4

Cautions when Using the Serial Port


The KV-16xx/24xx/40xx units are equipped with two RJ-11 modular connectors for serial communication. When using them, pay strict attention to the following contents: Programs can be transferred and monitored using either communication port A or B. However, never connect the ladder software and a handheld programmer to the two ports at the same time. The KV-D20 operator interface panel can be connected to either communication port A or B. However, only one KV-D20 unit can be connected to a single basic unit. Never leave both the KV-D20 operator interface panel and KV-P3E(01) handheld programmer on simultaneously for a long period of time.

(5)

(6)

How this manual is organized


The Visual KV Series Users Manual is composed of 3 separate manuals; 1-Installation, 2-Support Software, 3-Programming. Please read each manual relevant to your purpose.

1 Installation
Chapter 1 Configuration and Specifications [Visual KV Series Only]
Describes the system configuration of the Visual KV Series, the names and functions of each part, and the specifications.

Chapter 2

System Installation [Visual KV Series Only]


Describes the installation and connection of each Visual KV Series unit as well as system maintenance.

Chapter 3

Access Window [Visual KV Series Only]


Describes the Access Window used for changing and monitoring data.

Chapter 4

KV-D20 Operator Interface Panel [Visual KV Series Only]


Describes the KV-D20 Operator Interface Panel used for changing, monitoring, and displaying the status of inside relays, timers, counters and data memories.

Chapter 5

KV-300, KV-10/80 Hardware [KV-300, KV-10/80 Series Only]


Describes the hardware specifications and wirings for KV-300 and KV-10/80 Series.

Chapter 6

Handheld Programmer
Describes how to use the handheld programmer and memory card.

Chapter 7

KV-L2 Serial Interface Module [KV-300 Series Only]


Describes the serial interface modules for KV-300 Series.

Chapter 8

KV-AN6 Analog I/O Module [KV-300 Series Only]


Describes the optional Analog I/O module for KV-300 Series

Chapter 9

KV-AD4/DA4 Analog I/O Unit [KV-10/80 Series Only]


Describes the optional Analog I/O unit for KV-10/80 Series.

Chapter 10

Troubleshooting
This chapter describes the error code list, countermeasures against problems, and error indications for each unit.

Appendices
The appendix includes a list of ladder program applications and the index.

2 Support Software
Chapter 1 Introduction
Describes the items included in the package, the product outline, the method to connect a personal computer, the installation method, etc.

(7)

Chapter 2

Editor
Describes the operating procedures in Editor mode.

Chapter 3

Simulator
Describes the operating procedures in Simulator mode.

Chapter 4

Monitor
Describes the operating procedures in Monitor mode.

Appendices
Includes instructions list, devices list, sample program list and quick reference for key operation and shortcuts.

3 Programming
Chapter 1 Programming
Describes basic knowledge including program creation procedures, device configuration, relay assignments, special functions to set and confirm Visual KV Series operations, as well as the extended ladder diagrams. Understand the contents described here completely at first before creating programs.

Chapter 2

Instructions
Describes the concrete usage of instructions in the KV Series. Refer to "Chapter 3 Interrupts" on page 3-183 for details of interrupt instructions. Refer to "Chapter 4 High-speed counters" on page 3-195 for details of the high-speed counters used in the application instruction.

Chapter 3

Interrupts [Visual KV Series Only]


The interrupt processing function executes an interrupt program when an external input or request from the high-speed counter comparator (interrupt factor) is encountered during KV operation. This chapter describes the types of interrupt factors as well as inputs and outputs encountered during interrupt processing.

Chapter 4

High-speed Counters [Visual KV Series Only]


Describes high-speed counters and high-speed counter comparators, which allow highspeed pulse measurement and pulse output, independent of the scan time.

Chapter 5

Positioning Control [Visual KV Series Only]


Describes ramp-up/down control of stepping motors and servo motors.

Chapter 6

Interrupts, High-speed Counters, Positioning Control [KV-300, KV-10/80 Series Only]


Describes ramp-up/down control of stepping motors and servo motors.

Chapter 7

Serial Communication
The KV Series can be connected to an external device with an RS-232C interface to establish communication. This chapter describes communications specifications, how to connect the KV Series to external devices, and how to perform communication.

Chapter 8

Programming Examples
Describes the typical programming examples for KV-10/80 Series. These programs can be used for Visual KV Series. However, pay attention to the I/O addressing compatibility before use.

(8)

Contents
3

Programming
Programming
1.1 Before Creating Programs .............................................................................. 3-2 1.1.1 Flow from Introduction to Operation ................................................................... 3-2 1.1.2 Scan Time ........................................................................................................... 3-3 Scan time ..................................................................................................... 3-3 Input response time delay ............................................................................ 3-3 1.2 User Memory .................................................................................................... 3-4 1.2.1 Program Capacity ............................................................................................... 3-4 Maximum number of lines in a program ....................................................... 3-4 Calculating the byte count used ................................................................... 3-4 1.3 Device Configuration ....................................................................................... 3-5 1.3.1 Device List .......................................................................................................... 3-5 Relay list ...................................................................................................... 3-5 List of I/O relays in basic units ..................................................................... 3-5 List of relays in expansion units ................................................................... 3-6 1.3.2 Relay No. ............................................................................................................ 3-7 Address No. ................................................................................................. 3-7 Contact No. .................................................................................................. 3-8 Channel No. ................................................................................................. 3-8 1.3.3 Assigning Relay Nos. .......................................................................................... 3-8 1.3.4 Input Relays ........................................................................................................ 3-9 Basic unit ..................................................................................................... 3-9 Expansion unit ........................................................................................... 3-10 1.3.5 Output Relays ................................................................................................... 3-10 Output operation time ................................................................................ 3-10 1.3.6 Internal Utility Relays ........................................................................................ 3-11 Retentive function of internal utility relays .................................................. 3-11 1.3.7 Special Utility Relays ........................................................................................ 3-12 Description ................................................................................................. 3-12 1.3.8 Special Utility Relay List ................................................................................... 3-14 Special relays and arithmetic operation flags ............................................ 3-14 Special utility relays for high-speed counter(0) .......................................... 3-14 Special utility relays for high-speed counter(1) .......................................... 3-15 Other special utility relays .......................................................................... 3-15 1.3.9 Timers and Counters ........................................................................................ 3-18 Timer/Counter list ....................................................................................... 3-18 Description ................................................................................................. 3-18 1.3.10 Data Memories ................................................................................................. 3-19 1.3.11 Temporary Data Memory .................................................................................. 3-21 1.3.12 Relay Nos. and Functions ................................................................................. 3-22 1.4 Special Functions .......................................................................................... 3-23 1.4.1 Input Time Constant Change Function ............................................................. 3-23 Setting the input time constant for basic units using special utility relays .. 3-23 1.4.2 Modifying the Input Relay Time Constant ......................................................... 3-24 Modification within the CPU ....................................................................... 3-24 1.4.3 Constant Scan Time Mode ............................................................................... 3-25 1.4.4 Output Disabled Function ................................................................................. 3-26 1.4.5 Input Refresh Disabled Function ...................................................................... 3-26 1.4.6 Contact Comment Save Function ..................................................................... 3-27 1.4.7 Special Functions ............................................................................................. 3-28 Constant Scan Time Mode ........................................................................ 3-28 Output Disabled Function .......................................................................... 3-28 Input Refresh Disabled Function ................................................................ 3-28 1.5 1.5.1 1.5.2 1.5.3 Extended Ladder Diagrams .......................................................................... 3-29 Features of Extended Ladder Diagrams ........................................................... 3-29 Advantages of Extended Ladder Diagrams ...................................................... 3-30 Example of an Extended Ladder Diagram ........................................................ 3-31

Chapter 1

(9)

Chapter 2

Instructions
2.1 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.2 2.2.1 2.2.2 2.2.3 2.2.4 2.3 2.4 2.4.1 2.4.2 2.4.3 2.5 Instruction List [Visual KV Series] .............................................................. 3-34 Basic Instructions ..............................................................................................3-34 Application Instructions ..................................................................................... 3-36 Arithmetic Instructions ...................................................................................... 3-38 Interrupt Instructions .........................................................................................3-41 Function No. List (Alphabetical order) .............................................................. 3-41 Instruction List [KV-300 Series, KV-10/80] ................................................. 3-42 Basic Instructions ..............................................................................................3-42 Application Instructions ..................................................................................... 3-45 Arithmetic Instructions ...................................................................................... 3-48 Interrupt Instructions .........................................................................................3-54 Convention Details ........................................................................................ 3-55 Instruction Details .......................................................................................... 3-56 Basic Instructions ..............................................................................................3-56 Application Instructions ..................................................................................... 3-95 Arithmetic Instructions .................................................................................... 3-134 Programming Notes ..................................................................................... 3-189

Chapter 3

Interrupts
3.1 3.2 3.2.1 3.2.2 3.2.3 3.2.4

Visual KV

Interrupt Instructions ................................................................................... 3-192 Interrupt Processing .................................................................................... 3-194 Interrupt Processing ........................................................................................ 3-194 Types of Interrupts .......................................................................................... 3-195 Interrupt Priority .............................................................................................. 3-196 Interrupt Program ............................................................................................ 3-196

3.3 Direct Input/Output ...................................................................................... 3-197 3.3.1 Direct Input ..................................................................................................... 3-197 3.3.2 Direct Output ................................................................................................... 3-197 3.4 3.4.1 3.4.2 3.4.3 3.4.4 Applications of Interrupt Programs ........................................................... 3-198 Interrupt with a Signal Converter .................................................................... 3-198 Interrupt with a High-speed Counter ............................................................... 3-199 Measuring the ON Time of High-speed Pulses .............................................. 3-200 Measuring the Period in which a Target Passes between Two Points ........... 3-201

Chapter 4

High-speed Counters
4.1

Visual KV

High-speed Counter Instructions ............................................................... 3-204

4.2 Outline of High-speed Counters ................................................................. 3-206 4.2.1 High-speed Counters and High-speed Counter Comparators ........................ 3-206 Structure of high-speed counters and high-speed counter comparators . 3-206 Specifications of high-speed counters ..................................................... 3-208 High-speed counter comparators ............................................................. 3-209 4.2.2 Internal Clock for High-speed Counters .......................................................... 3-210 4.3 4.3.1 4.3.2 4.3.3 4.3.4 4.3.5 4.3.6 Setting and Operation of High-speed Counters ........................................ 3-211 Reading the Current Value of the High-speed Counter .................................. 3-211 Preset Value of the High-speed Counter Comparator .................................... 3-211 Comparator Output ......................................................................................... 3-211 Count Input Method ........................................................................................ 3-212 Resetting the High-speed Counter ................................................................. 3-214 Differences with the CTH Instruction between the Conventional and Visual KV Series ................................................................ 3-216 4.3.7 Applications of High-speed Counters ............................................................. 3-217 4.4 4.4.1 4.4.2 4.4.3 4.4.4 4.4.5 4.5 Extended Functions of High-speed Counters ........................................... 3-221 24-bit High-speed Counter .............................................................................. 3-221 Changing the Current Value of a 24-bit High-speed Counter ......................... 3-223 Application Example of 24-bit High-speed Counter (single-phase input) ....... 3-224 Ring Counter Function .................................................................................... 3-225 Applications of Ring Counters ........................................................................ 3-226 Special Functions Using High-speed Counters ........................................ 3-228

(10)

4.5.1 4.5.2 4.5.3 4.5.4 4.5.5

Specified Frequency Pulse Output Function .................................................. 3-228 Applications of the Specified Frequency Pulse Output ................................... 3-229 Frequency Counter Function .......................................................................... 3-231 Applications of Frequency Counters ............................................................... 3-232 Cam Switch Function ...................................................................................... 3-233 Cam switch mode .................................................................................... 3-233 Multi-step comparator mode .................................................................... 3-234 Setting method ......................................................................................... 3-234 4.5.6 Application of the Cam Switch (Cam Switch Mode) ....................................... 3-236 4.6 Direct Clock Pulse Output ........................................................................... 3-237 4.6.1 Outline of Direct Clock Pulse Output .............................................................. 3-237 4.6.2 Pulse Output Setting with the High-speed Counter Comparator .................... 3-238 Changing the pulse period and width ....................................................... 3-238 Calculating the pulse period and comparator preset value ...................... 3-239 Operation with special utility relays .......................................................... 3-239 4.7 4.7.1 4.7.2 4.7.3 4.7.4 Examples of Direct Clock Pulse Output .................................................... 3-242 Example of Outputting a Pulse with 1:1 ON/OFF Ratio .................................. 3-242 Example of Outputting a Pulse with Variable ON/OFF Ratio .......................... 3-245 Example of Stopping the Pulse Output at a Specified Pulse Count ............... 3-249 Application of Direct Clock Pulse Output (Ramp-up/down control) ................ 3-251

Chapter 5

Positioning Control

Visual KV

5.1 Outline of Positioning Control .................................................................... 3-254 5.1.1 Ramp-up/down Control ................................................................................... 3-254 5.2 Parameter Setting and Operating Procedures .......................................... 3-255 5.2.1 Parameter Setting Procedure ......................................................................... 3-255 5.2.2 Operating Procedure ...................................................................................... 3-257 5.3 5.3.1 5.3.2 5.3.3 Examples of Using the Positioning Control Function .............................. 3-258 Connection Example ....................................................................................... 3-258 Tips ................................................................................................................. 3-258 Application Examples of the Positioning Control Function ............................. 3-259

Chapter 6

Interrupts, High-speed Counters, Positioning Control

KV-300, KV-10/80

6.1 Interrupt Instructions ................................................................................... 3-268 6.1.1 Description of Interrupts .................................................................................. 3-268 Input processing for routine program and interrupt routine ...................... 3-268 Types of interrupt ..................................................................................... 3-268 Interrupt priority ........................................................................................ 3-269 Interrupt routine ........................................................................................ 3-269 Direct output ............................................................................................. 3-270 Direct input ............................................................................................... 3-270 6.1.2 Interrupt Instructions ....................................................................................... 3-271 6.2 Direct Clock Pulse ........................................................................................ 3-276 6.2.1 Output of Direct Clock Pulse ........................................................................... 3-276 Outline of High-Speed Counters .............................................................. 3-276 Outline of Pulse Output ............................................................................ 3-279 Examples of Pulse Output ....................................................................... 3-284 6.3 Positioning Control ...................................................................................... 3-296 6.3.1 Positioning Control (Ramp-up/down Control) ................................................. 3-296 Outline of positioning control .................................................................... 3-296 Setting and application of parameters ..................................................... 3-297 Examples of stepping motor control ......................................................... 3-300

Chapter 7

Serial Communication
7.1 7.1.1 7.1.2 7.1.3 Communications Specifications ................................................................ 3-306 Communications Specification ........................................................................ 3-306 Connection with the KV Unit ........................................................................... 3-306 Connecting the KV-300 CPU to a Personal Computer ................................... 3-307

7.2 Serial Communication ................................................................................. 3-308 7.2.1 Command Transmission Procedure ............................................................... 3-308

(11)

7.2.2 7.2.3 7.2.4 7.2.5 7.2.6 7.2.7 7.3 7.3.1 7.3.2 7.3.3 7.4

Format of Commands/Responses .................................................................. 3-309 Communication Command/Response List ..................................................... 3-310 Setting Communication Commands and Responses to Commands .............. 3-311 Other Response Codes .................................................................................. 3-315 Error Code List ................................................................................................ 3-316 Example Program ........................................................................................... 3-317 Loading Text Data ........................................................................................ 3-318 Receiving Text Data ....................................................................................... 3-318 Transmitting Text Data ................................................................................... 3-319 Sample Program ............................................................................................. 3-320 ASCII Code List ............................................................................................ 3-321

Chapter 8

Programming Examples
8.1 List ......................................................................................................... 3-324 8.2 Details ......................................................................................................... 3-326 8.2.1 Reference Program Examples ........................................................................ 3-326 Basic Instructions ..................................................................................... 3-326 Application Instructions ............................................................................ 3-334 Arithmetic Instructions .............................................................................. 3-343

WARRANTIES AND DISCLAIMERS

3-367

Installation
Configuration and Specifications Visual KV

Chapter 1

1.1 System Configuration ...................................................................................... 1-2 1.1.1 System Configuration ......................................................................................... 1-2 1.2 Specifications ...................................................................................................1-4 1.2.1 General Specifications ........................................................................................ 1-4 1.2.2 AC Power Specifications .................................................................................... 1-5 Visual KV Series operation at power interruption ........................................ 1-5 1.2.3 Performance Specifications ................................................................................ 1-6 Data backup function against instantaneous power interruption ................. 1-7 1.3 Common I/O Specifications of Basic Units ................................................... 1-8 1.3.1 Model of a Basic Unit .......................................................................................... 1-8 1.3.2 Common I/O Specifications ................................................................................ 1-8 1.4 KV-10AR/AT(P)/DR/DT(P) (10-I/O Basic Unit) ............................................. 1-10 1.4.1 Part Names and Functions ............................................................................... 1-10 1.4.2 Terminal Layout Drawings and I/O Circuit Diagrams ........................................ 1-11 KV-10AR/DR (Relay output type) .............................................................. 1-11 KV-10AT(P)/DT(P) (Transistor output type) ............................................... 1-13 1.4.3 AC Power Input (KV-10AR/AT(P)) .................................................................... 1-14 1.4.4 Relationship between Continuous Simultaneous ON Ratio and Ambient Temperature 1-15 1.4.5 Dimensions ....................................................................................................... 1-16 1.5 KV-16AR/AT(P)/DR/DT(P) (16-I/O Basic Unit) ............................................. 1-17 1.5.1 Part Names and Functions ............................................................................... 1-17 1.5.2 Terminal Layout Drawings and I/O Circuit Diagrams ........................................ 1-18 KV-16AR/DR (Relay output type) .............................................................. 1-18 KV-16AT(P)/DT(P) (Transistor output type) ............................................... 1-20 1.5.3 AC Power Input (KV-16AR/AT(P)) .................................................................... 1-21 1.5.4 Relationship between Continuous Simultaneous ON Ratio and Ambient Temperature 1-22 1.5.5 Dimensions ....................................................................................................... 1-23 1.6 KV-24AR/AT(P)/DR/DT(P) (24-I/O Basic Unit) ............................................. 1-24 1.6.1 Part Names and Functions ............................................................................... 1-24 1.6.2 Terminal Layout Drawings and I/O Circuit Diagrams ........................................ 1-25 KV-24AR/DR (Relay output type) .............................................................. 1-25 KV-24AT(P)/DT(P) (Transistor output type) ............................................... 1-27 1.6.3 AC Power Input (KV-24AR/AT(P)) .................................................................... 1-28 1.6.4 Relationship between Continuous Simultaneous ON Ratio and Ambient Temperature 1-29 1.6.5 Dimensions ....................................................................................................... 1-30 1.7 KV-40AR/AT(P)/DR/DT(P) (40-I/O Basic Unit) .............................................. 1-31

(12)

1.7.1 Part Names and Functions ............................................................................... 1-31 1.7.2 Terminal Layout Drawings and I/O Circuit Diagrams ........................................ 1-32 KV-40AR/DR (Relay output type) .............................................................. 1-32 KV-40AT(P)/DT(P) (Transistor output type) ............................................... 1-34 1.7.3 AC Power Input (KV-40AR/AT(P)) .................................................................... 1-35 1.7.4 Relationship between Continuous Simultaneous ON Ratio and Ambient Temperature 1-36 1.7.5 Dimensions ....................................................................................................... 1-37 1.8 1.8.1 1.8.2 1.8.3 KV-E4X/E8X/E16X (Expansion Input Unit) .................................................. 1-38 Part Names and Functions ............................................................................... 1-38 Input Specifications ........................................................................................... 1-38 Terminal Layout Drawings and Input Circuit Diagrams .................................... 1-39 KV-E4X (4-I/O expansion input unit) .......................................................... 1-39 KV-E8X (8-I/O expansion input unit) .......................................................... 1-40 KV-E16X (16-I/O expansion input unit) ...................................................... 1-41 1.8.4 Dimensions ....................................................................................................... 1-42 1.9 KV-E4R/E4T/E8R/E8T(P)/E16R/E16T(P) (Expansion Output Unit) ............. 1-43 1.9.1 Part Names and Functions ............................................................................... 1-43 1.9.2 Output Specifications ........................................................................................ 1-43 KV-E4R/E8R/E16R (Relay output type) ..................................................... 1-44 KV-E4T/E8T(P)/E16T(P) [Transistor output type (NPN/PNP)] .................. 1-44 1.9.3 Terminal Layout Drawings and Input Circuit Diagrams .................................... 1-45 KV-E4R [4-I/O expansion output unit (relay output type)] .......................... 1-45 KV-E4T [4-I/O expansion output unit transistor output type)] .................... 1-46 KV-E8R [8-I/O expansion output unit (relay output type)] .......................... 1-47 KV-E8T(P) [8-I/O expansion output unit (transistor output type)] .............. 1-48 KV-E16R [16-I/O expansion output unit (relay output type)] ...................... 1-49 KV-E16T(P) [16-I/O expansion input unit (transistor output)] .................... 1-50 1.9.4 Dimensions ....................................................................................................... 1-51 1.10 1.10.1 1.10.2 1.10.3 KV-E4XR/E4XT(P) (Expansion I/O Unit) ....................................................... 1-52 Part Names and Functions ............................................................................... 1-52 Input Specifications ........................................................................................... 1-53 Output Specifications ........................................................................................ 1-53 KV-E4XR (Relay output type) .................................................................... 1-53 KV-E4XT(P) (Transistor output type) ......................................................... 1-53 1.10.4 Terminal Layout Drawings and Input Circuit Diagrams .................................... 1-54 KV-E4XR (Relay output type) .................................................................... 1-54 KV-E4XT(P) (Transistor output type) ......................................................... 1-56 1.10.5 Dimensions ....................................................................................................... 1-58 1.11 1.11.1 1.11.2 1.11.3 1.11.4 KV-D20 (Operator Interface Panel) ............................................................... 1-59 Part Names and Functions ............................................................................... 1-59 General Specifications ...................................................................................... 1-60 Functional Specifications .................................................................................. 1-60 Dimensions ....................................................................................................... 1-61

Chapter 2

System Installation
2.1 2.1.1 2.1.2 2.1.3

Visual KV

Installation Environment ............................................................................... 1-64 Installation Environment ................................................................................... 1-64 Installation Position ........................................................................................... 1-65 Installation Procedure ....................................................................................... 1-66 Expansion unit spacer ................................................................................ 1-66 2.1.4 Cautions on Wiring for Each Unit ...................................................................... 1-67 Wiring procedures for basic units ............................................................... 1-67 Cautions on wiring for I/O units .................................................................. 1-68 Terminal ..................................................................................................... 1-68 Cautions on grounding ............................................................................... 1-69 2.1.5 Contact Protection ............................................................................................ 1-69 2.2 Connecting Visual KV Series Expansion Units .......................................... 1-70 2.2.1 Visual KV Series Expansion Units .................................................................... 1-70 2.2.2 Connecting Visual KV Series Expansion Units ................................................. 1-71 Connection methods .................................................................................. 1-72 Number of connectable units ..................................................................... 1-73 2.2.3 Confirming the Connection Settings of Expansion Units .................................. 1-74 Expansion unit relay list ............................................................................. 1-74 Connection information for expansion units ............................................... 1-75 Input time constant for expansion units ..................................................... 1-76

(13)

Clearing the input value when disconnecting ............................................. 1-76 2.2.4 Transferring I/O Information between Expansion Units and the Basic Unit ...... 1-77 When inputting ........................................................................................... 1-77 In the case of output .................................................................................. 1-77 2.3 Inspection and Maintenance ......................................................................... 1-78 2.3.1 Inspection .........................................................................................................1-78 2.3.2 Maintenance ..................................................................................................... 1-78

Chapter 3

Access Window

Visual KV

3.1 Overview of the Access Window .................................................................. 1-80 3.1.1 What is the Access Window ............................................................................. 1-80 3.1.2 Access Window Use Examples ........................................................................ 1-80 3.2 3.2.1 3.2.2 3.2.3 3.2.4 3.2.5 Basic Operating Procedures ......................................................................... 1-81 Operation Mode ................................................................................................ 1-81 Access Window Modes ..................................................................................... 1-81 Part Names and Functions of the Access Window ........................................... 1-82 Selecting Modes and Setting/Resetting Key Lock ............................................ 1-82 Turbo Function .................................................................................................. 1-83

3.3 Digital Trimmer Mode .................................................................................... 1-84 3.3.1 Function and Operating Procedure ................................................................... 1-84 Key operation and screen display .............................................................. 1-84 Function and operating procedure ............................................................. 1-84 3.4 Device Mode ...................................................................................................1-87 3.4.1 Function and Operating Procedure ................................................................... 1-87 Devices that can be displayed and changed ............................................. 1-87 Key operation and screen display .............................................................. 1-87 Selecting the device and displaying the current value/set value ................ 1-88 Changing a numeric value ......................................................................... 1-89 Holding the setting ..................................................................................... 1-91 3.4.2 Screen Display for Each Device Type .............................................................. 1-91 Data memory (DM) .................................................................................... 1-91 Temporary data memory (TM) ................................................................... 1-91 Timer/counter (T/C) .................................................................................... 1-92 High-speed counter comparator (CTC) ...................................................... 1-92 Trimmer (TRM) .......................................................................................... 1-93 Relay (RLY) ............................................................................................... 1-93 3.5 System Mode .................................................................................................. 1-94 3.5.1 Function and Operating Procedure ................................................................... 1-94 Key operation and screen display .............................................................. 1-94 LOAD mode and SAVE mode .................................................................... 1-96 Display in LOAD/SAVE mode .................................................................... 1-96 3.6 Message Display ............................................................................................ 1-97 3.6.1 Error Messages and Error Status ..................................................................... 1-97 3.6.2 User Messages .................................................................................................1-97 How to use the user messages .................................................................. 1-98

Chapter 4

KV-D20 Operator Interface Panel


4.1 4.1.1 4.1.2 4.1.3

Visual KV

Before Operation .......................................................................................... 1-100 Checking Package Contents .......................................................................... 1-100 Part Names and Functions ............................................................................. 1-101 Details about the KV-D20 ............................................................................... 1-102 General specifications .............................................................................. 1-102 Functional specifications .......................................................................... 1-102 Dimensions .............................................................................................. 1-103 4.1.4 Installation and Environment .......................................................................... 1-104 Use environment ...................................................................................... 1-104 Panel mounting ........................................................................................ 1-105 4.1.5 Inspection and Maintenance ........................................................................... 1-106 Inspection ................................................................................................. 1-106 Maintenance ............................................................................................ 1-106 4.2 Overview and Operation .............................................................................. 1-107 4.2.1 Use Examples for the KV-D20 ........................................................................ 1-107

(14)

4.2.2 Connection with the KV Series ....................................................................... 1-108 Connection ............................................................................................... 1-108 Precautions .............................................................................................. 1-108 4.2.3 Overview of the KV-D20 ................................................................................. 1-109 Switching the display mode ..................................................................... 1-109 Overview of each display mode ............................................................... 1-110 Assignment of relays/DM ......................................................................... 1-111 Other functions ......................................................................................... 1-112 Precautions about screen change function .............................................. 1-115 4.2.4 Operator Mode ................................................................................................ 1-117 Screen selection in operator mode .......................................................... 1-117 Operator screen ....................................................................................... 1-118 Direct access screen ................................................................................ 1-126 KV-I/O monitor screen ............................................................................. 1-127 Switch comment screen ........................................................................... 1-128 Lamp comment screen ............................................................................ 1-128 Screen change permission in operator mode .......................................... 1-129 4.2.5 Device Mode ................................................................................................... 1-130 Device mode ............................................................................................ 1-130 Operation example for device mode ........................................................ 1-132 4.2.6 System Mode .................................................................................................. 1-134 System mode ........................................................................................... 1-134 4.3 Examples of Ladder Programs ................................................................... 1-135 4.3.1 Basic Ladder Programs .................................................................................. 1-135 Before creating ladder programs ............................................................. 1-135 Basic ladder programs ............................................................................. 1-136 4.3.2 Examples of Ladder Programs ....................................................................... 1-143 Example of displaying user messages ..................................................... 1-143 Example of displaying messages with titles ............................................. 1-145 Example of position control ...................................................................... 1-146 Example of frequency counter ................................................................. 1-149 Example of 24-bit high-speed counter ..................................................... 1-152 Example of cam switch function ............................................................... 1-154 4.4 4.4.1 4.4.2 4.4.3 Appendix ....................................................................................................... 1-158 Troubleshooting .............................................................................................. 1-158 Available Character List .................................................................................. 1-162 Comment Draft Sheet ..................................................................................... 1-163

Chapter 5

KV-300, KV-10/80 Hardware

KV-300, KV-10/80

5.1 System Configuration .................................................................................. 1-166 5.1.1 KV-300 ............................................................................................................ 1-166 5.1.2 KV-10/80 ......................................................................................................... 1-167 5.2 Module/Unit Specifications ......................................................................... 1-168 5.2.1 Wiring: KV-U4 Power Supply Module ............................................................. 1-168 Parts and functions .................................................................................. 1-168 5.2.2 Wiring: KV-U5 DC Power Distribution Module ................................................ 1-169 Parts and functions .................................................................................. 1-169 5.2.3 Wiring: KV-300 CPU ....................................................................................... 1-170 Parts and functions .................................................................................. 1-170 5.2.4 Wiring: KV-C16X/C32X Connector Input Module ........................................... 1-171 Parts and functions .................................................................................. 1-171 5.2.5 Wiring: KV-C32T/B16R/B16S Connector Output Module ............................... 1-172 Parts and functions .................................................................................. 1-172 5.2.6 Wiring: KV-R1A I/O Distribution Module ......................................................... 1-173 Parts and functions .................................................................................. 1-173 5.2.7 Wiring: KV-R8X/R16X/R8R/R16R/R8T/R16T I/O Terminal Modules ............. 1-174 Parts and functions .................................................................................. 1-174 5.2.8 Module Names and Functions ........................................................................ 1-175 5.2.9 Peripheral Equipment Names and Functions ................................................. 1-176 5.3 5.3.1 5.3.2 5.3.3 Module/Unit Connections ............................................................................ 1-178 Environmental Requirements ......................................................................... 1-178 Installation Guidelines ..................................................................................... 1-178 Assembling the System .................................................................................. 1-179 Connecting modules ................................................................................ 1-179 5.3.4 Mounting to the DIN Rail ................................................................................. 1-180 5.3.5 Removing the Terminal Block ......................................................................... 1-181

(15)

5.3.6 Connecting the AC Power Supply Module and DC Power Distribution Module .... 1-182 KV-U4 AC Power Supply Module ............................................................ 1-182 KV-U5 DC Power Distribution Module ..................................................... 1-182 5.3.7 I/O Connectors ................................................................................................ 1-183 KV-300 CPU ............................................................................................ 1-183 KV-C16X/C32X ........................................................................................ 1-184 KV-C32T/B16R/B16S .............................................................................. 1-185 KV-R8X/R16X/R8R/R16R/R8T/R16T ...................................................... 1-186 5.3.8 I/O Terminal Modules: Communication Cables and Power Distribution ......... 1-187 Transmission distance by cable type ....................................................... 1-187 Connection patterns ................................................................................. 1-187 Incorrect wiring patterns ........................................................................... 1-188 Power distribution .................................................................................... 1-188 5.3.9 Connector Assembly Instructions ................................................................... 1-189 5.3.10 KV-300 CPU I/O Indicators ............................................................................. 1-191 5.3.11 KV-10/80 Expansion Units .............................................................................. 1-192 5.3.12 Mounting Environment .................................................................................... 1-194

Chapter 6

Handheld Programmer
6.1 Using the Handheld Programmer ............................................................... 1-196 6.1.1 Outline of the Handheld Programmer ............................................................. 1-196 6.1.2 Precautions ..................................................................................................... 1-198 6.2 Basic Operations ......................................................................................... 1-200 6.2.1 Basic Programming Operation ........................................................................ 1-200 6.3 Functions ...................................................................................................... 1-216 Function Nos. list ..................................................................................... 1-216 ALL CLEAR .............................................................................................. 1-217 HANDHELD PROGRAMMER CLEAR ..................................................... 1-217 COUNTER CLEAR .................................................................................. 1-218 HIGH-SPEED COUNTER CLEAR ........................................................... 1-218 ALL DATA MEMORY CLEAR .................................................................. 1-219 ALL LATCHING RELAYS RESET ........................................................... 1-219 PROGRAM SENT OR RECEIVED .......................................................... 1-220 OFFLINE EDITOR START ...................................................................... 1-221 OFFLINE EDITOR STOP ........................................................................ 1-221 TIMER/COUNTER CURRENT VALUE CHANGE ................................... 1-222 TIMER/COUNTER SETTING CHANGE .................................................. 1-224 RELAY ON/OFF ....................................................................................... 1-226 WRITE INTO DATA MEMORY ................................................................ 1-227 READ TRIMMER SETTING ..................................................................... 1-228 SYNTAX CHECK ..................................................................................... 1-228 PROGRAM CAPACITY CHECK .............................................................. 1-229

6.4 Memory Card ................................................................................................ 1-230 6.4.1 Functions [used with KV-P3E(01)] .................................................................. 1-230 6.4.2 Storage Capacity ............................................................................................ 1-230 CLEAR ..................................................................................................... 1-232 NEW ......................................................................................................... 1-233 ACCS ....................................................................................................... 1-234 ACCS: SAVE ........................................................................................... 1-235 ACCS: LOAD ........................................................................................... 1-236 ACCS: VERIFY ........................................................................................ 1-236 ACCS: DELETE ....................................................................................... 1-237

Chapter 7

KV-L2 Serial Interface Module

KV-300

7.1 Outline ......................................................................................................... 1-240 7.1.1 Features .......................................................................................................... 1-240 7.2 7.2.1 7.2.2 7.2.3 7.3 7.3.1 7.3.2 7.3.3 Configuration ............................................................................................... 1-241 Parts and Functions ........................................................................................ 1-241 System Configuration ..................................................................................... 1-242 Outline of Operation Modes ............................................................................ 1-244 Installation .................................................................................................... 1-245 Setting the Operation Mode ............................................................................ 1-245 Communications Protocols ............................................................................. 1-247 Connector Wiring ............................................................................................ 1-248

(16)

7.3.4 Connecting to External Units .......................................................................... 1-249 Connecting to An External Display .......................................................... 1-249 Connecting to an IBM PC-AT Computer .................................................. 1-249 Connecting to the KV-10/16/24/40/80 ...................................................... 1-250 Connecting KV-L2s .................................................................................. 1-250 7.4 Software Setup ............................................................................................. 1-252 7.4.1 Using KV Software [KV IncrediWare (DOS)] .................................................. 1-252 Starting KV IncrediWare (DOS) from the KV-L2 ........................................................ 1-252 7.5 KV Mode Programming ............................................................................... 1-253 7.5.1 Operating in KV Mode .................................................................................... 1-253 Communications protocol ........................................................................ 1-253 7.5.2 Serial Communications Procedure ................................................................. 1-255 Command transmission procedure .......................................................... 1-255 Command/response format ..................................................................... 1-256 Communications commands and responses ........................................... 1-256 Communications commands .................................................................... 1-257 7.5.3 Transmission and Reception of Text Data ...................................................... 1-262 Assigning relay nos. and data memory address nos. .............................. 1-262 Transmitting Text Data ............................................................................. 1-264 Receiving text data .................................................................................. 1-265 ASCII code/binary conversion function .................................................... 1-266 Example program ..................................................................................... 1-269 7.6 Display Interface Mode Programming ....................................................... 1-270 7.6.1 Operating in Display Interface Mode .............................................................. 1-270 Communications protocols ....................................................................... 1-270 Communications control procedure ......................................................... 1-271 7.6.2 Command and Response Format ................................................................... 1-273 7.6.3 Commands and Responses ........................................................................... 1-275 List of commands and responses ............................................................ 1-275 Description of commands and responses ................................................ 1-277 End codes ................................................................................................ 1-291 7.7 Non-procedure Mode Programming .......................................................... 1-292 7.7.1 Operating in Non-procedure Mode ................................................................. 1-292 Communications protocol ........................................................................ 1-292 Connecting to the KV-L2 .......................................................................... 1-293 7.7.2 Assignment of Relay Nos. and Data Memory Address Nos. .......................... 1-294 Assigning relay nos. and data memory address nos. .............................. 1-294 7.7.3 Transmitting Text Data ................................................................................... 1-297 Data transmission and internal data memory addresses ......................... 1-297 7.7.4 Receiving Text Data ....................................................................................... 1-298 Format of received data and data memory addresses ............................ 1-298 7.7.5 ASCII code/Binary Conversion Function ........................................................ 1-300 7.8 Troubleshooting Guide ............................................................................... 1-304 7.8.1 Troubleshooting .............................................................................................. 1-304 7.8.2 Precautions ..................................................................................................... 1-305 7.9 Specifications ............................................................................................... 1-306 7.9.1 Specifications .................................................................................................. 1-306 General specifications .............................................................................. 1-306 Communications protocol ........................................................................ 1-306 RS-232C connector specifications ........................................................... 1-306 RS-422A terminal block specifications ..................................................... 1-306 7.9.2 Dimensions ..................................................................................................... 1-307 7.10 Command List .............................................................................................. 1-308 7.10.1 List of Commands and Responses ................................................................. 1-308 7.10.2 List of Commands and Responses in Display Interface mode ....................... 1-309

Chapter 8

KV-AN6 Analog I/O Module


8.1

KV-300

Outline ......................................................................................................... 1-312 Features ................................................................................................... 1-312

8.2 Configuration ............................................................................................... 1-313 8.2.1 Parts and Functions ........................................................................................ 1-313 8.2.2 System Configuration ..................................................................................... 1-314 8.3 Installation .................................................................................................... 1-315 8.3.1 Terminal Nos. ................................................................................................. 1-315

(17)

8.3.2 8.3.3 8.3.4 8.3.5 8.4 8.4.1 8.4.2 8.4.3 8.4.4 8.4.5 8.4.6 8.4.7 8.4.8 8.4.9 8.5 8.5.1 8.5.2 8.5.3

Removing the Terminal Block ......................................................................... 1-316 Example of Voltage I/O Wiring ........................................................................ 1-317 Example of Current I/O Wiring ........................................................................ 1-318 Setting I/O Ranges ......................................................................................... 1-319 Programming ................................................................................................ 1-320 Input Characteristics (A/D) .............................................................................. 1-320 Calculating Input Data (A/D) ........................................................................... 1-321 Output Characteristics (D/A) ........................................................................... 1-322 Calculating Output Data (D/A) ........................................................................ 1-323 Assigning Data Memory (DM) Addresses ....................................................... 1-324 Reading Analog Input ..................................................................................... 1-325 Measuring Analog Input Average ................................................................... 1-326 Writing Analog Output ..................................................................................... 1-327 Converting Analog Input to Analog Output ..................................................... 1-328

KV-AN6 Appendices .................................................................................... 1-329 Troubleshooting .............................................................................................. 1-329 Precautions ..................................................................................................... 1-330 Specifications .................................................................................................. 1-331 Environmental specifications ................................................................... 1-331 System specifications .............................................................................. 1-331 8.5.4 Dimensions ..................................................................................................... 1-332

Chapter 9

KV-AD4/DA4 Analog I/O Unit


9.1

KV-10/80

Outline ......................................................................................................... 1-334 Features ................................................................................................... 1-334

9.2 Configuration ............................................................................................... 1-335 9.2.1 Part Names and Functions ............................................................................. 1-335 KV-AD4 .................................................................................................... 1-335 KV-DA4 .................................................................................................... 1-336 9.2.2 Specifications .................................................................................................. 1-337 KV-AD4 .................................................................................................... 1-337 KV-DA4 .................................................................................................... 1-339 9.2.3 System Configuration ..................................................................................... 1-341 9.3 9.3.1 9.3.2 9.3.3 Installation .................................................................................................... 1-342 Installation Procedure ..................................................................................... 1-342 Checking the Installation Environment ........................................................... 1-343 Setting the KV-AD4 Input Mode ...................................................................... 1-344 Setting the input mode ............................................................................. 1-344 9.3.4 Connecting External Instruments .................................................................... 1-345 Wiring ....................................................................................................... 1-345 Wiring diagrams ....................................................................................... 1-346 9.3.5 Connecting to the KV-10 to 80 ........................................................................ 1-348 9.3.6 Maintenance ................................................................................................... 1-349 Inspection and Cleaning .......................................................................... 1-349 9.4 Programming ................................................................................................ 1-350 9.4.1 Programming the KV-AD4 .............................................................................. 1-350 A/D Conversion Mechanism .................................................................... 1-350 About Digital Data after A/D Conversion .................................................. 1-351 Calculating Voltage and Current Values from Digital Data ...................... 1-352 9.4.2 Programming the KV-DA4 .............................................................................. 1-353 D/A Conversion Mechanism .................................................................... 1-353 Converting Digital Data to Voltage or Current Values to be Output ......... 1-354 Writing Digital Data to Data Memory for D/A Conversion ........................ 1-356 9.4.3 A/D and D/A Conversion Tables ..................................................................... 1-357 Voltage Conversion Table ........................................................................ 1-357 Current Conversion Table ........................................................................ 1-358 9.5 Programming Examples .............................................................................. 1-359 Calculating Analog Data Values from Digital Data ................................... 1-359 Writing Data to be Analog-output ............................................................. 1-361 Outputting Analog Trimmer Values .......................................................... 1-364 Outputting Analog Input Data ................................................................... 1-365 Outputting Analog Input from a Pressure Sensor to an Air Valve ............ 1-366 Setting the Minimum and Maximum Voltage Limits and Measuring the Average Voltage ...................................................................................... 1-367 Troubleshooting ........................................................................................... 1-370

9.6

(18)

Chapter 10

Troubleshooting
10.1 10.1.1 10.1.2 10.1.3 10.1.4 10.2 Error List ....................................................................................................... 1-372 List of Error Codes in Basic Units ................................................................... 1-372 Error indication in Expansion Units ................................................................. 1-374 Program Errors ............................................................................................... 1-375 Memory Card Errors and Other Errors ........................................................... 1-376 Replacing Relays ......................................................................................... 1-377 Replacement procedure ........................................................................... 1-377

10.3 Troubleshooting ........................................................................................... 1-378 10.3.1 Troubleshooting List ....................................................................................... 1-378 10.4 Error Messages ............................................................................................ 1-380

Appendices
Appendix A. Specifications and Dimensions [Visual KV Series] .................... 1-382 A.1 System Specifications [Visual KV Series] ....................................................... 1-382 Hardware ................................................................................................. 1-382 Software and Programming ..................................................................... 1-383 AC power supply unit ............................................................................... 1-384 A.2 Common I/O Specifications of Basic Units ..................................................... 1-384 Input specifications .................................................................................. 1-384 Output specifications (relay output): KV-10AR/DR, KV-16AR/DR, KV-24AR/DR, and KV-40AR/DR .............................................................. 1-385 Output specifications (transistor output): KV-10AT(P)/DT(P), KV-16AT(P)/DT(P), KV-24AT(P)/DT(P), and KV-40AT(P)/DT(P) ............ 1-385 A.3 Expansion Unit Specifications ........................................................................ 1-385 A.4 Dimensions ..................................................................................................... 1-389 Appendix B. Specifications and Dimensions [KV-300 Series] ......................... 1-392 B.1 System Specifications [KV-300 Series] .......................................................... 1-392 Hardware ................................................................................................. 1-392 Software and Programming ..................................................................... 1-393 AC Power supply module/DC power distribution module ........................ 1-394 B.2 Module Specifications ..................................................................................... 1-398 KV-300 CPU ............................................................................................ 1-398 KV-C16X/C32X Input Modules ................................................................ 1-399 KV-C32T/B16R/B16S Output Modules ................................................... 1-400 KV-R8X/R16X I/O Terminal Modules ....................................................... 1-401 KV-R8T/R16T/R8R/R16R I/O Terminal Modules ..................................... 1-402 KV-R8T/R16T/R8R/R16R I/O Terminal Modules (RUN Output) .............. 1-403 KV-R1A I/O Distribution Module .............................................................. 1-403 B.3 Dimensions ..................................................................................................... 1-404 Appendix C. Ladder Program List ...................................................................... 1-406 Appendix D. A/D and D/A Conversion Tables [KV-AN6] ..................................... 1-408 Voltage conversion table .......................................................................... 1-408 Current conversion table .......................................................................... 1-409

WARRANTIES AND DISCLAIMERS

1-419

Support software
Introduction
1.1 Items Included in the Package ........................................................................ 2-2

Chapter 1

1.2 Outline of the Ladder Builder for KV .............................................................. 2-3 1.2.1 Operating environment and system configuration .............................................. 2-3 1.2.2 Features and functions of the Ladder Builder for KV .......................................... 2-4 Features of the Ladder Builder for KV ......................................................... 2-4 Functions of the Ladder Builder for KV ........................................................ 2-6 1.3 Before Programming ....................................................................................... 2-7 Machines to be prepared ............................................................................. 2-7 1.3.1 Differences from the KV IncrediWare (DOS) ...................................................... 2-8 1.3.2 Differences from the Ladder Builder for KV Ver 1.0 ........................................... 2-8 1.4 Installing the Software ..................................................................................... 2-9

(19)

1.4.1 Preparation for installation .................................................................................. 2-9 1.4.2 Installation Procedure ....................................................................................... 2-10 Installation in Windows 95 ......................................................................... 2-10 Installation in Windows 3.1 ........................................................................ 2-12 1.5 1.6 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 Cautions for Use ............................................................................................ 2-13 Basic Operations ........................................................................................... 2-14 Program creation flow and available modes ..................................................... 2-14 Starting up and exiting from the software ......................................................... 2-16 Screen ..............................................................................................................2-18 Mouse operation and keyboard operation ........................................................ 2-21 Online Help ....................................................................................................... 2-23

Chapter 2

Editor

KV-300

2.1 Outline of the Editor Functions .................................................................... 2-26 2.1.1 Cautions for editing ladder programs ................................................................ 2-26 2.2 Edit Screen ..................................................................................................... 2-27 2.2.1 Name and function of each part of the screen .................................................. 2-27 2.2.2 Ladder program window screen ....................................................................... 2-28 2.3 2.3.1 2.3.2 2.3.3 2.3.4 2.3.5 2.3.6 2.3.7 2.4 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.5 2.5.1 2.5.2 2.5.3 File Management ............................................................................................ 2-29 Creating a new file ............................................................................................ 2-29 Setting the automatic file read function ............................................................. 2-30 Setting automatic file save for the file ............................................................... 2-31 Saving and reading files ................................................................................... 2-32 Reading and saving a file in another format ..................................................... 2-33 Saving a ladder diagram in text format ............................................................. 2-36 Verifying files .................................................................................................... 2-36 Entering/Deleting Symbols and Connection Lines .................................... 2-37 Entering symbols ..............................................................................................2-37 Deleting symbols ..............................................................................................2-42 Entering contacts/coils directly ......................................................................... 2-42 Changing the device at the current cursor position .......................................... 2-43 Entering/Deleting connection lines ................................................................... 2-44 Canceling edit operations ................................................................................. 2-45 Entering Comments/Labels ......................................................................... 2-46 Editing comments/labels ................................................................................... 2-46 Editing line comments ....................................................................................... 2-50 Changing ladder lines into comments ............................................................... 2-51

2.6 Edit and Arrangement .................................................................................. 2-52 2.6.1 Copy, move, and delete .................................................................................... 2-52 2.6.2 Inserting and deleting lines ............................................................................... 2-57 2.7 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 Jump, Search, and Replace ......................................................................... 2-58 Jump .................................................................................................................2-58 Searching for instruction words/operands ........................................................ 2-62 Searching for the device at the cursor position ................................................. 2-63 Replacing operands .......................................................................................... 2-64 Converting a/b contacts .................................................................................... 2-65

2.8 Editing the Mnemonic List ........................................................................... 2-67 2.8.1 Displaying and terminating a mnemonic list ..................................................... 2-67 2.8.2 Copy, move, and delete .................................................................................... 2-69 2.9 Displaying the Use Status ............................................................................. 2-70 2.9.1 Displaying a use status list ............................................................................... 2-70 2.10 Setting the System .........................................................................................2-71 2.10.1 Setting the system ............................................................................................ 2-71 2.11 Entering and Developing Macros ................................................................ 2-72 2.11.1 Creating a macro file .........................................................................................2-72 2.11.2 Entering and developing macros ...................................................................... 2-74 2.12 2.12.1 2.12.2 2.12.3 2.13 Compilation .................................................................................................... 2-75 Executing compilation ....................................................................................... 2-75 Error display ......................................................................................................2-76 Double coil check ..............................................................................................2-76 Printing Functions .........................................................................................2-77

(20)

2.13.1 Printing ..............................................................................................................2-77 2.13.2 Preview display ................................................................................................. 2-81 2.14 Changing the Display Color on the Screen ................................................. 2-82 2.14.1 Changing display colors on the screen ............................................................. 2-82

Chapter 3

Simulator
3.1 Outline of the Simulator Functions .............................................................. 2-84 3.1.1 Outline of the functions ..................................................................................... 2-84 3.1.2 Restrictions in the simulator .............................................................................. 2-84 3.2 Starting up and Exiting from the Simulator ................................................. 2-86 3.2.1 Operating procedure for startup and exit .......................................................... 2-86 3.2.2 Name and function of each part of the screen .................................................. 2-88 3.3 3.3.1 3.3.2 3.3.3 3.3.4 3.3.5 3.4 3.4.1 3.4.2 3.4.3 3.4.4 3.4.5 3.5 3.5.1 3.5.2 3.5.3 3.5.4 3.5.5 3.5.6 3.5.7 Ladder Monitor ............................................................................................... 2-89 Outline of the ladder monitor ............................................................................ 2-89 Executing scans ................................................................................................ 2-89 Executing steps .............................................................................................. 2-101 Jump and search ............................................................................................ 2-105 Stop/reset and device all clear ........................................................................ 2-108 Monitor All .................................................................................................... 2-109 Outline of monitor all ....................................................................................... 2-109 Displaying, saving, and reading the monitor all window ................................. 2-109 Monitor all window .......................................................................................... 2-113 Registering devices ........................................................................................ 2-113 Selecting and changing devices ..................................................................... 2-116 Registration Monitor .................................................................................... 2-119 Outline of the registration monitor ................................................................... 2-119 Displaying, saving, and reading the registration monitor ................................ 2-119 Registration monitor window ........................................................................... 2-122 Registering devices ........................................................................................ 2-122 Selecting and changing devices ..................................................................... 2-123 Manipulating timing charts .............................................................................. 2-128 Printing out the registration monitor ................................................................ 2-131

Chapter 4

Monitor
4.1 4.1.1 4.1.2 4.1.3 Outline of the Monitor Functions ............................................................... 2-134 Outline of the functions ................................................................................... 2-134 Restrictions in the monitor .............................................................................. 2-134 Precautions for communication ...................................................................... 2-135

4.2 Communicating with the PLC ..................................................................... 2-136 4.2.1 Setting the PLC communication parameters .................................................. 2-136 4.2.2 Setting the comment transfer .......................................................................... 2-138 4.3 Starting up and Exiting from the Monitor .................................................. 2-139 4.3.1 Operating procedures for startup and exit ...................................................... 2-139 4.3.2 Name and function of each part of the screen ................................................ 2-143 4.4 4.4.1 4.4.2 4.4.3 4.4.4 4.4.5 4.4.6 4.4.7 Ladder Monitor ............................................................................................. 2-144 Outline of the ladder monitor .......................................................................... 2-144 Displaying the ladder monitor window ............................................................ 2-144 PLC error check .............................................................................................. 2-144 Starting the monitor ........................................................................................ 2-145 Stopping the monitor ....................................................................................... 2-145 Screen displayed while the monitor is running ............................................... 2-146 Setting the PLC operation mode ..................................................................... 2-147

4.5 Monitor All and Registration Monitor ......................................................... 2-148 4.5.1 Functions of the monitor all window ................................................................ 2-148 4.5.2 Functions of the registration monitor .............................................................. 2-148 4.6 4.6.1 4.6.2 4.6.3 Monitor Function .......................................................................................... 2-149 Disabling the input refresh/Disabling the output ............................................. 2-149 Changing the current values all at once ......................................................... 2-150 Device all clear ............................................................................................... 2-154

(21)

Appendices
Appendix A Error Message List ......................................................................... 2-156 A-1 System errors ................................................................................................. 2-156 A-2 Memory errors ................................................................................................ 2-156 A-3 File errors ........................................................................................................ 2-157 A-4 Installation errors ............................................................................................ 2-157 A-5 Errors that occur in the editor ......................................................................... 2-158 A-6 Errors that occur in the monitor/simulator ....................................................... 2-159 A-7 Communication errors (displayed in the monitor) ........................................... 2-159 A-8 PLC errors ...................................................................................................... 2-160 A-9 Errors that occur during compilation ............................................................... 2-161 Appendix B Instruction List ............................................................................... 2-163 B-1 Basic instructions ............................................................................................ 2-163 B-2 Application instructions ................................................................................... 2-164 B-3 Arithmetic instructions ..................................................................................... 2-165 B-4 Interrupt instructions ....................................................................................... 2-166 Appendix C Relay No. List .................................................................................. 2-167 C-1 Relays, timers, counters, and memory numbers for each model ................... 2-167 Appendix D Special Utility Relay List ................................................................ 2-168 D-1 Special relays and arithmetic operation flags ................................................. 2-168 D-2 Special utility relays for high-speed counter (0) .............................................. 2-168 D-3 Special utility relays for high-speed counter (1) .............................................. 2-169 D-4 Other special utility relays ............................................................................... 2-169 D-5 Memory switches ............................................................................................ 2-172 D-6 Special memory list ......................................................................................... 2-172 Appendix E Devices for KV-10R(W)/T(W) to 80R(W)/T(W), KV-300 ................ 2-174 E-1 Special utility relays ........................................................................................ 2-174 E-2 Memory switches ............................................................................................ 2-176 E-3 Special memory list ......................................................................................... 2-176 Appendix F Sample Program List ..................................................................... 2-178 F-1 Description of sample ladder programs .......................................................... 2-178 Appendix G Quick Reference ............................................................................. 2-180 G-1 Editor .............................................................................................................. 2-180 G-2 Simulator ......................................................................................................... 2-188 G-3 Monitor ............................................................................................................ 2-195 Appendix H Notes for Programming ................................................................. 2-201 H-1 Circuits that must be modified ........................................................................ 2-201 H-2 Precautions for programming ......................................................................... 2-202 H-3 Programs which cannot be decompiled .......................................................... 2-203 Appendix I Appendix J List of Files Used ............................................................................ 2-204 Countermeasures for Frequent Communication Errors ............ 2-205 2-215

WARRANTIES AND DISCLAIMERS

(22)

WARRANTIES AND DISCLAIMERS


See 3-367.

Caution
No part of this manual may be reprinted or reproduced in any form or by any means without the prior written permission of KEYENCE CORPORATION. The content of this manual is subject to change without notice. KEYENCE has thoroughly checked and reviewed this manual. Please contact the sales office listed at the end of this manual if you have any questions or comments regarding this manual or if you find an error. KEYENCE assumes no liability for damages resulting from the use of the information in this manual, item 3 above notwithstanding. KEYENCE will replace any incomplete or incorrectly collated manual.

All company names and product names in this manual are registered trademarks or trademarks of their respective owners.

(23)

Chapter 1
Programming
This chapter describes basic knowledge including program creation procedures, device configuration, relay assignments, special functions to set and confirm Visual KV Series operations, as well as the extended ladder diagrams. Understand the contents described here completely at first before creating programs.

For a detailed description of instructions, refer to "2.4. Instruction Details" (p.3-56).

1.1
1.1.1 1.1.2

Before Creating Programs .......................................................... 3-2


Flow from Introduction to Operation ........................................................... 3-2 Scan Time .................................................................................................. 3-3

1.2
1.2.1

User Memory ................................................................................ 3-4


Program Capacity ...................................................................................... 3-4

1.3
1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.3.7 1.3.8 1.3.9 1.3.10 1.3.11 1.3.12

Device Configuration ................................................................... 3-5


Device List .................................................................................................. 3-5 Relay No. ................................................................................................... 3-7 Assigning Relay Nos. ................................................................................. 3-8 Input Relays ............................................................................................... 3-9 Output Relays .......................................................................................... 3-10 Internal Utility Relays ............................................................................... 3-11 Special Utility Relays ................................................................................ 3-12 Special Utility Relay List ........................................................................... 3-14 Timers and Counters ................................................................................ 3-18 Data Memories ......................................................................................... 3-19 Temporary Data Memory ......................................................................... 3-21 Relay Nos. and Functions ........................................................................ 3-22

1.4
1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7

Special Functions ...................................................................... 3-23


Input Time Constant Change Function .................................................... Modifying the Input Relay Time Constant ................................................ Constant Scan Time Mode ....................................................................... Output Disabled Function ......................................................................... Input Refresh Disabled Function .............................................................. Contact Comment Save Function ............................................................ Special Functions ..................................................................................... 3-23 3-24 3-25 3-26 3-26 3-27 3-28

1.5
1.5.1 1.5.2 1.5.3

Extended Ladder Diagrams ...................................................... 3-29


Features of Extended Ladder Diagrams .................................................. 3-29 Advantages of Extended Ladder Diagrams ............................................. 3-30 Example of an Extended Ladder Diagram ............................................... 3-31

1.1 Before Creating Programs

1.1 Before Creating Programs


This section describes what you should know before creating programs and operations for the Visual KV Series.

1.1.1 Flow from Introduction to Operation


This section describes an overview of program creation procedures, functions used, and setting items. In the example described below, a latch circuit is created as a program for the Visual KV Series. Introduction Examining contents of operations
Figure 1 shows a latch circuit which operates as follows. Pushbutton switch PB1: ON Pilot lamp (PL) turns on. Pushbutton switch PB2: OFF Pushbutton switch PB1: OFF Pilot lamp (PL) remains lit even if PB1 turns Pushbutton switch PB2: OFF OFF. Pushbutton switch PB1: OFF Pilot lamp (PL) goes out Pushbutton switch PB2: ON when PB2 is set to ON. Time chart PB1 contact PB2 contact
ON OFF ON OFF ON OFF

Fig. 1 PB1 = N.O. contact switch PB2 = N.C. contact switch


PB1 PB2

PL

Next, a program is created that will use the same operation as this circuit to control a PLC.

Program examination
Circuit 1 shows relay symbols for the latch circuit. Examine which contact in the Visual KV Series is used for each pushbutton switch and pilot lamp (Table 1). When many I/O devices are required for control, expansion units should also be considered. Circuit 1
RL

PB1 PB2 RL

Relay (contact)
RL

Relay (contact)

Program creation
Edit a program using the "LADDER BUILDER for KV" programming support software creation tool. Ladder diagram
0000 0001* 1000

1000 0500

1000

Transferring and confirming the program


Transfer the created program to the Visual KV Series, perform a test run, and then confirm operations with the actual devices.

3-2

Chapter 1 Programming

RL (Relay)

PL

Table 1 I/O device Pushbutton switch PB1 (N.O. contact) Pushbutton switch PB2 (N.C. contact) Relay RL Pilot lamp PL Contact No. Input relay (0000) Input relay (0001) Internal relay (1000) Output coil (0500)

Relay (coil)
PL

Pilot lamp

Coding list LD 0000 OR 1000 AND 0001 OUT 1000 LD 1000 OUT 0500 END

Operation

* Enter "N.O. (AND X001)" to 0001 to use N.C. contact.

1.1 Before Creating Programs

1.1.2 Scan Time


Scan time
The Visual KV Series repeatedly executes a ladder based on the sequence circuit as follows.
Input processing
Writes the ON/OFF status of all input terminals to the input memory before executing the program. Reads the ON/OFF status of each device (internal utility relay, timer, counter, etc.) based on the instructions, and performs arithmetic operations. Writes the arithmetic operation result to the output memory.

Program execution

Output processing

Outputs the contents of the output memory to output terminals.

The duration of time required to perform one cycle is called the scan time (or cycle time). The scan time varies based on program size and the instructions used in the program.

Input response time delay


In addition to the I/O processing time, there is also an input time delay in the Visual KV Series caused by the scan time. The input time delay is generated because the input status can only be read during the input processing time. If the input status is changed after input processing, the changed contents can only be read during the next scan time. In the figure below, 1 and 2 can be read but 3 cannot be read.
1 2 3

1 1

Input signal

ON OFF
Read Read

Output processing

Output processing

Output processing

Output processing

Output processing

Input processing

Input processing

Input processing

Program execution

Program execution

Program execution

Input processing

Program execution

Scan time

Scan time

Reference: The maximum and minimum values of the input response time are as follows.
Maximum value: Input time constant + Scan time x 2 + Output response delay time Minimum value: Input time constant + Scan time + Output response delay time

Note 1: When the input time constant is made small by setting the HSP instruction, special utility relay 2813, and data memory DM1940, a signal may not be received if its ON time is shorter than the scan time. Note 2: The INT instruction is independent of the scan time. Note 3: The minimum scan time is 140 s (with the basic unit).

Chapter 1 Programming

3-3

Input processing

1.2 User Memory

1.2 User Memory


This section describes the allowable size (capacity) of a program which can be created in the Visual KV Series.

1.2.1 Program Capacity


When a user program is created for the Visual KV Series, the maximum number of steps a program can contain using the mnemonic diagram varies based on the byte count of the instructions used. The instruction byte count is determined individually for each instruction.

For more about byte counts for each instruction, refer to "2.1 Instruction List" (p.3-34).

Maximum number of lines in a program


In the KV-10xx/16xx, a program with approximately 2,000 steps can be written. In the KV-24xx/40xx, a program with approximately 4,000 steps can be written. Total byte count of the memory used by instructions 6,000 bytes / 12,000 bytes Total byte count of the memory used by objects of instructions 12,000 bytes / 24,000 bytes * In the description above, a value on the left side indicates the byte count for the KV-10xx/16xx, while a value on the right side indicates the byte count for the KV-24xx/40xx. * The memory occupied by objects indicates the memory required to execute a program when operation is started. For example, the allowable number of steps to be written can be calculated from the memory occupied by the instructions as follows. 12,000 bytes / 3 bytes (average byte count of an instruction) = 4,000 steps Note: If either the memory occupied by the instructions or the memory occupied by objects of a program exceeds the specified memory capacity, the program cannot be written or executed.

Calculating the byte count used


The byte count used in this program can be calculated as shown in the table below.
0000 0500 T000 #00020 T000 0500

Line No. 00000 00001 00002 00003 00004

Instruction LD OR TMR ANB OUT Total

Operand 0000 0500 000#00020 T000 0500

Byte count 3 3 2 3 3 14 bytes

Number of objects 5 4 7 8 8 32 bytes

3-4

Chapter 1 Programming

1.3 Device Configuration

1.3 Device Configuration


"Device" is a general name for relays, registers, etc. processed by instructions. This section describes the available devices in the Visual KV Series and their general use.

1.3.1 Device List


Relay list
Relay No. 0000 0001 0002 0003 0004 0005 0006 Input relays 0007 0008 0009 0010 to 0415 0500 0501 0502 0503 0504 to 0915 1000 to 1915 2000 to 2815 2900 to 2915 Output relays Internal utility relays Special utility relays Special utility relays Output relays (Direct output allowed area) Input relays High-speed counter 0 output High-speed Specified frequency counter 1 pulse output output Ramp-up/down control output High-speed counter 0 input High-speed counter 1 input High-speed counter 0 High-speed counter 1 High-speed counter 0 High-speed counter 1 High-speed counter 0 High-speed counter 1 A phase input Input relays (Direct input allowed area) Interrupt inputs INT0 to INT3 (Polarity inversion allowed) Input captures Normal use High-speed use (1) High-speed use (2) Remarks They function as B phase of high-speed counters through specification of utility relays in KV-10. 70 points 76 points 160 points 144 points HKEY information storage area 2,144 points

B phase input

1 1

Preset input

3000 to 17915 Internal utility relays

Note 1: The ON/OFF status of the set functions is always cleared when the operation mode is changed from PROGRAM to RUN. However, special utility relays 2700 to 2715 are held even when the operation mode is changed from PROGRAM to RUN or when the power is turned off. Note 2: Internal utility relays can be held by setting the MEMSW instruction

List of I/O relays in basic units


Model Basic input relays Basic output relays KV-10xx 0000 to 0005 0500 to 0503 KV-16xx 0000 to 0009 0500 to 0505 KV-24xx 0000 to 0015 0500 to 0507 KV-40xx 0000 to 0107 0500 to 0515

Chapter 1 Programming

3-5

1.3 Device Configuration

List of relays in expansion units


Input units
Connection order 1st input module 2nd input module 3rd input module 4th input module KV-E4X KV-10/16/24 KV-40 KV-E8X KV-10/16/24 KV-40 KV-E16X KV-10/16/24 KV-40

100 to 103 200 to 203 100 to 107 200 to 207 100 to 115 200 to 215 200 to 203 300 to 303 200 to 207 300 to 307 200 to 215 300 to 315 300 to 303 400 to 403 300 to 307 400 to 407 300 to 315 400 to 415 400 to 403 400 to 40 7 400 to 415

Output units
Connection order 1st output module 2nd output module 3rd output module 4th output module KV-E4T(P)/R 600 to 603 700 to 703 800 to 803 900 to 903 KV-E8T(P)/R 600 to 607 700 to 707 800 to 807 900 to 907 KV-E16T(P)/R 600 to 615 700 to 715 800 to 815 900 to 915

I/O units
KV-E4XR/T(P) Connection order 1st input module 2nd input module 3rd input module 4th input module 1st output module 2nd output module 3rd output module 4th output module
* *

Input relays KV-10/16/24 100 to 103 200 to 203 300 to 303 400 to 403 KV-40 200 to 203 300 to 303 400 to 403

Output relays KV-10/16/24 KV-40

600 to 603 700 to 703 800 to 803 900 to 903

600 to 603 700 to 703 800 to 803 900 to 903

Relay Nos. of expansion units are automatically assigned in the order of connection. The connection order is counted only for input and output units. When I/O units are connected, they are counted as input units and output units separately.

3-6

Chapter 1 Programming

1.3 Device Configuration

1.3.2 Relay No.


The relay No. configuration is shown below.
Channel No.

12515
Contact No. (00 to 15) Address No. (Input: 0 to 4, output: 5 to 9)

Address No.
Address Nos. are assigned to basic units, input expansion units, output expansion units, and I/O expansion units. Zero to 4 are assigned to input units, while 5 to 9 are assigned to output units. Address Nos. assigned in a unit vary based on the number of I/O terminals and the connection position of the unit.
Model KV-10xx Basic units KV-16xx KV-24xx KV-40xx kV-E4X Input expansion units KV-E8X KV-E16X KV-E4R/E4T(P) Output expansion units I/O expansion units * 2 to 4 in KV-40xx KV-E8R/E8T(P) KV-E16R/E16T(P) KV-E4XR/E4XT(P) Address Nos. 0, 5 0, 5 0, 5 0, 1, 5 1 to 4* 1 to 4* 1 to 4* 6 to 9 6 to 9 6 to 9 1 to 4*, 6 to 9

1 1

Address No. assignment procedure The address No. is represented as a number 0 to 9. Address Nos. 0 to 4 are provided for inputs, while address Nos. 5 to 9 are provided for outputs.

Chapter 1 Programming

3-7

1.3 Device Configuration

Contact No.
Contact Nos. are input/output terminal Nos. of basic units, input expansion units, output expansion units, and I/O expansion units. The contact No. is represented as a number 0 to 15.

Example In the KV-E4X, with 4 input terminals, the contact Nos. are 0 to 3. In the KVE16T(P), with 16 input terminals, the contact Nos. are 0 to 15.
In a unit with 16 or more terminals, the contact No. of the 17th terminal returns to 0 and its address No. is increased by 1.

Example In the KV-40AR, with 40 terminals (24 input and 16 output terminals), address No. 0 is assigned to input terminal Nos. 1 to 16 and address No. 1 is assigned to input terminal Nos. 17 to 24

Channel No.
The channel No. is the higher order digit in the contact No.

1 1.3.3 Assigning Relay Nos.


When assigning relay Nos., the unit No. is based on the connection position of the unit, and the address No. is determined based on the unit type and I/O contacts.
a) KV-16AR Basic unit Input: 10 points Output: 6 points b) KV-E4X Input expansion unit Input: 4 points c) KV-E8R Output expansion unit Output: 8 points

With the connections above, the relay Nos. for each unit are assigned as shown in the table below.
Unit a) KV-16AR b) KV-E4X c) KV-E8R Assigned relay Nos. 0000 to 0009 (input) and 0500 to 0505 (output) 0100 to 0103 (input) 0600 to 0607 (output)

3-8

Chapter 1 Programming

1.3 Device Configuration

1.3.4 Input Relays


Input relays receive ON/OFF signals sent from external input equipment. Note 1: Input relays function as contacts in programs. They cannot be used as relay coils (outputs). Note 2: There is no restriction of the contact type (N.O. or N.C.) used, the order the relay Nos. are used, or the number of relays used.

Basic unit
Input relay time constant Though the time constant is usually 10 ms 20%, it can be changed using the following settings. When the HSP instruction is used: 10 s 20% While special utility relay 2813 remains ON, the time constant can be changed in 7 steps by setting data memory DM1940 as follows. When DM1940 is set to 0: 10s 20% 1: 20 s 20% 2: 500 s 20% 3: 1 ms 20% 4: 2.5 ms 20% 5: 5 ms 20% 6: 10 ms 20% Never set a numeric value of 7 or larger.

1 1

For more about changing the input time constant, refer to "1.4.1 Input Time Constant Change Function" (p.3-23).

Hardware input (independent of scan time) High-speed counter When the time constant is set to 10 s using the HSP instruction or data memory DM1940 (only while special utility relay 2813 remains ON), the maximum input response of input relays 0004 and 0005 of CTH0 and CTH1 becomes 30 kHz. INT instruction: 0000 to 0003 This instruction can receive any signal without regard to the scan time as far as the signal ON time is longer than the input time constant.
"HSP instruction" (p.3-86), "INT instruction" (p.3-192), "4.1 High-speed Counter Instructions" (p.3-204)

Note 1: While special utility relay 2813 remains ON, the input time constant can be specified for all input relays in a basic unit. Note 2: Never enter a number of 7 or larger to data memory DM1940. Note 3: The input time constant specified by data memory DM1940 becomes effective at the rising edge of special utility relay 2813. To change the input time constant, first change data memory DM1940, then set special utility relay 2813 to OFF and ON again. Or change the operation mode of a KV basic unit from PROGRAM to RUN. Note 4: If the HSP instruction and special utility relay 2813 are used at the same time, priority is given to the HSP instruction. Note 5: Only when a high-speed counter input or INT instruction is given, available input signals do not depend on the scan time.

Chapter 1 Programming

3-9

1.3 Device Configuration

Expansion unit
Input relay time constant By setting special utility relays 2609 to 2612 to ON, the time constant in input expansion units can be set to 10 s.
Special utility relay No. 2609* 2610 2611 2612 Function Input time constant of input expansion with relay Nos. 0100 to 0115 Input time constant of input expansion with relay Nos. 0200 to 0215 Input time constant of input expansion with relay Nos. 0300 to 0315 Input time constant of input expansion with relay Nos. 0400 to 0415 unit unit unit unit OFF: 10 ms, ON: 10 s OFF: 10 ms, ON: 10 s OFF: 10 ms, ON: 10 s OFF: 10 ms, ON: 10 s

Not available with the KV-40xx

1.3.5 Output Relays


Output relays output the program execution results to the outside. There are two types of outputs, relay and transistor.

Note 1: Output relays function as contacts and relay coils in programs. Note 2: There is no restriction of the contact type (N.O. or N.C.) used, the order the relay Nos. are used, or the number of relays used.

Output operation time


Transistor output OFF ON: 50 s or less (10 s or less in 500 to 502) ON OFF: 250 s or less (10 s or less in 500 to 502, 100 s or less for other outputs in the basic unit) Relay output OFF ON: 10 ms or less ON OFF: 10 ms or less
Transistor output type KV-10AT(P)/DT(P) KV-24AT(P)/DT(P) KV-E4T KV-E16T(P) KV-16AT(P)/DT(P) KV-40AT(P)/DT(P) KV-E8T(P) KV-E4XT(P) Relay output type KV-10AR/DR KV-24AR/DR KV-E4R KV-E16R KV-16AR/DR KV-40AR/DR KV-E8R KV-E4XR

Note 1: When programming direct clock pulses, output relays 0500 and 0501 are used to output pulses in a transistor-type output unit. Note 2: When the ramp-up/down control function is used, output relay 0502 outputs positioning pulses in a transistor-type output unit.
"Chapter 5. Positioning Control" (p.3-253)

Note 3: When the specified frequency pulse output function is used, output relay 0501 outputs pulses in a transistor-type output unit.
"4.5.1 Specified Frequency Pulse Output Function" (p.3-228)

3-10

Chapter 1 Programming

1.3 Device Configuration

1.3.6 Internal Utility Relays


In a relay circuit, when one relay contact is used twice or more inside the circuit, a multi-pole relay with the same number of poles as the number used may be needed. Internal utility relays function only in programs, and eliminate the complexity of relay circuits to facilitate circuit design. Note 1: Internal utility relays function as contacts and relay coils in programs. Note 2: There is no restriction of the contact type (N.O. or N.C.) used, the order the relay Nos. are used, or the number of relays used.

Retentive function of internal utility relays


Except for internal utility relays, all relays turn OFF when the operation mode is changed or when operation is stopped via a power shutdown. When operation is restarted, all relays remain OFF except relays whose input condition is ON. However, internal utility relays can be set using the MEMSW (memory switch) whether or not they are to be retained. (Internal utility relays 2700 to 2715, however, are always retained.) When an internal utility relay is set to be retained, its ON/OFF status is stored even if the power is turned off. By using the retained relay all clear function (FUN65), all relays which are set to be retained can be set to OFF.

For more about setting the memory switch, refer to "MEMSW instruction" (p.3-92).

1 1

Application example of a retentive function: Lift vertical movement control Internal utility relays 1000 and 1001 are set to be retained. When the upper/lower limit switch turns ON, the direction of lift movement is inverted. Even if the power is turned off while the lift is moving up (or down), the lift continues to move up (or down) when the power is turned on again.
MEMSW $0004

Upper limit switch (0000)

0000 1000 0001 1001 T000 T001

0001

1000 #00010 T000

0000

1001 #00010 T001

Lower limit switch (0001)

Move-down (0500)

0501 0500

0500 0501 END

Move-up (0501)

ENDH

Note: The retentive function is effective only when internal utility relays retained by the self-retentive circuit or the SET/SFT/KEEP instruction are also retained by the memory switch. Internal utility relays are not retained in the program shown below.
0000 1001

Chapter 1 Programming

3-11

1.3 Device Configuration

1.3.7 Special Utility Relays


Each special utility relay has a unique function. By using special utility relays effectively, programs can be simplified and program control improved. Note 1: A special utility relay can be used as many times as desired in one program. Note 2: Special utility relays dedicated for reading can be used as contacts, but cannot be used as outputs.
For more about relays dedicated for reading, refer to "1.3.8 Special Utility Relay List" (p.3-14).

Description
Relay 2002: Always ON By setting an output relay to ON using relay 2002, the output relay can be used as a "running indicator output".
2002 2002 HSP 0100 00000 LDA DM0000 STA

Set the input time constant of relay 0100 to 10 s. Transfer the ON/OFF status data of channel 0000 to DM0000.

Relay 2003: Always OFF. Opposite that of relay 2002, use relay 2003 where it is not required to be turned on. For example, when using only the up function of an up/down counter, use relay 2003 in the DW (down) input. Relays 2004, 2005 and 2006: Clock pulse For each relay, the time ratio is "ON:OFF = 1:1". (Accordingly, the ON time of relay 2005 is 0.05 sec/pulse.) However, because these relays depend on the scan time, error as much as the scan time is generated. By combining an output relay, an "intermittent output" can be made. By using relay 2006 as input for a counter, the counter can be used as a longterm timer.
1000 C000 #03600 C000 2006 1000

1000 turns ON at every hour.

Relay 2007: Remains OFF during only one scan when operation is started. This relay can be used when a signal needs to be sent after a specific period (equivalent to one scan) after operation is started. This relay can also be used for an initial reset at the start of operation. After one scan, this relay remains ON.
1000 2007 #00100 C005 0000

When operation is started, this relay returns the current value of C005 to 0.

3-12

Chapter 1 Programming

1.3 Device Configuration


Relay 2008: Remains ON during only one scan when operation is started. This relay can be used for an initial reset at the start of operation. After one scan, this relay remains OFF.
0000 1000 2008 RES SFT D 1100 CLK 1100

When operation is started, this relay sets all internal utility relays used by the SFT instruction to OFF.

2008

#00000 LDA DM0000 STA

When operation is started, this relay returns the current value of DM0000 to 0.

Relay 2813: Sets the input time constant of the CPU. While relay 2813 remains ON, the input time constant of a basic unit can be set using the value of DM1940.

1 1

Chapter 1 Programming

3-13

1.3 Device Configuration

1.3.8 Special Utility Relay List


Special relays and arithmetic operation flags

"1.3.7 Special Utility Relays" (p.3-12)

Relay No. 2002* 2003* 2004* 2005* 2006* 2007* 2008* 2009* 2010* 2011* 2012*
*

Function Always ON. Always OFF. 0.01-s clock pulse (duty cycle: 50%) 0.1-s clock pulse (duty cycle: 50%) 1.0-s clock pulse (duty cycle: 50%) Remains OFF during first scan after startup. Remains ON during first scan after startup. Turns ON when result of arithmetic operation is negative or when an overflow is generated. Turns ON when result of arithmetic operation is 0. Turns ON when result of arithmetic operation is positive. Turns ON when an arithmetic operation generates an error.

Read-only relay.

Special utility relays for high-speed counter(0)

"Chapter 4. High-Speed Counters" (p.3-203)

Relay No. 2100* 2101* 2102* 2103

Function Internal clock used only for CTH0 (1 s) Internal clock used only for CTH0 (10 s) ON: Cleared OFF: Not cleared ON: Prohibited OFF: Permitted ON: Set to OFF OFF: Not set to OFF ON: Set to ON OFF: Not set to ON ON: Reversed OFF: Not reversed ON: Prohibited OFF: Permitted ON: Set to OFF OFF: Not set to OFF ON: Set to ON FF: Not set to ON ON: Reversed OFF: Not reversed ON: Cleared OFF: Not cleared

Internal clock used only for CTH0 (100 s) Automatic clear of CTH0 when comparator CTC0 turns ON. Prohibits/permits direct output to 0500 when 2104 comparator CTC0 turns ON. Direct output to 0500 is set to OFF when comparator 2105 CTC0 turns ON. Direct output to 0500 is set to ON when comparator 2106 CTC0 turns ON. ON/OFF status of output to 0500 is reversed each 2107 time comparator CTC0 turns ON. Prohibits/permits direct output to 0500 when 2108 comparator CTC1 turns ON. Direct output to 0500 is set to OFF when comparator 2109 CTC1 turns ON. Direct output to 0500 is set to ON when comparator 2110 CTC1 turns ON. ON/OFF status of output to 0500 is reversed each 2111 time comparator CTC1 turns ON. Automatic clear of CTH0 when comparator CTC1 2112 turns ON. Selects multiplication mode for comparator CTH0. 2113 OFF ON OFF ON 2114 OFF: 1 pulse OFF: x2 ON: x4 ON: 2 pulses Read-only relay.
Multiplication mo d e 2113 2114 1 pulse OFF OFF x2 ON OFF x4 OFF ON

2 pulses ON ON

Note: Never use special utility relays that are not shown above.

3-14

Chapter 1 Programming

1.3 Device Configuration

Special utility relays for high-speed counter(1)

"Chapter 4. High-Speed Counters" (p.3-203)

Relay No. 2200* 2201* 2202* 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214

Function Internal clock used only for CTH1 (1 s) Internal clock used only for CTH1 (10 s) Internal clock used only for CTH1 (100 s) Automatic clear of CTH1 when comparator CTC2 turns ON. Prohibits/permits direct output to 0501 when comparator CTC2 turns ON. Direct output to 0501 is set to OFF when comparator CTC2 turns ON. Direct output to 0501 is set to ON when comparator CTC2 turns ON. ON/OFF status of output to 0501 is reversed each time comparator CTC2 turns ON. Prohibits/permits direct output to 0501 when comparator CTC3 turns ON. Direct output to 0501 is set to OFF when comparator CTC3 turns ON. Direct output to 0501 is set to ON when comparator CTC3 turns ON. ON/OFF status of output to 0501 is reversed each time comparator CTC3 turns ON. Automatic clear of CTH1 when comparator CTC3 turns ON. Selects multiplication mode for comparator CTH1. OFF ON OFF ON OFF: 1 pulse OFF: x2 ON: x4 ON: 2 pulses ON: Cleared OFF: Not cleared ON: Prohibited OFF: Permitted ON: Set to OFF OFF: Not set to OFF ON: Set to ON OFF: Not set to ON ON: Reversed OFF: Not reversed ON: Prohibited OFF: Permitted ON: Set to OFF OFF: Not set to OFF ON: Set to ON OFF: Not set to ON ON: Reversed OFF: Not reversed ON: Cleared OFF: Not cleared

1 1

Read-only relay.

Multiplication mode 2213 2214

1 pulse OFF OFF

x2 ON OFF

x4 OFF ON

2 pulses ON ON

Note: Never use special utility relays that are not shown above.

Other special utility relays


Relay No. 2300 2301 2303 2304 2305 2306 2307 2308 2309 2310 2314 2315 Function External outputs disabled (outputs 0500 to 0915) External refresh inputs disabled (inputs 0000 to 0415) Constant scan time mode (write preset value in TM29) Remains ON for one scan when scan time exceeds preset constant scan time. Start flag for frequency counter operation. Specified frequency pulse output ON: Disabled OFF: Not disabled ON: Disabled OFF: Not disabled ON: Enabled OFF: Disabled

ON: Enabled OFF: Disabled

Error flag for specified frequency pulse output Stops motor driver when turned ON. Turns ON when motor driver is in operation. Stops motor driver in emergencies when turned OFF by interrupt instruction. Starts motor driver when turned ON (detection at rising edge). Start flag for cam switch operation. Turns ON when an error occurs in cam switch operation.

* Read-only relay.

Chapter 1 Programming

3-15

1.3 Device Configuration


Relay No. 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 Timing of CTH0 external signal
OFF OFF External preset not used OFF ON At falling edge ON OFF At rising edge ON ON Level

Function

Interrupt polarity of INT


OFF OFF At rising edge OFF ON At falling edge ON OFF At rising edge ON ON At both edges

Interrupt polarity of INT1


OFF OFF At rising edge OFF ON At falling edge ON OFF At rising edge ON ON At both edges

CTH0 set as ring counter ON: Set OFF: Not set Ignore phase B input when CTH0 is set to no multiplication mode. ON: Ignore phase B input and always count up. OFF: Use phase B input as usual. Timing of CTH1 external preset
OFF OFF External preset not used OFF ON At falling edge ON OFF At rising edge ON ON Level

Interrupt polarity of INT2


OFF OFF At rising edge OFF ON At falling edge ON OFF At rising edge ON ON At both edges

Interrupt polarity of INT3


OFF OFF At rising edge OFF ON At falling edge ON OFF At rising edge ON ON At both edges

2413 2414 2415

CTH1 set as ring counter ON: Set OFF: Not set Ignore phase B input when CTH1 is set to no multiplication mode. ON: Ignore phase B input and always count up. OFF: Use phase B as usual. Customized switch [F1] on KV-D20 operator interface panel is assigned. Customized switch [F2] on KV-D20 operator interface panel is assigned. Customized switch [F3] on KV-D20 operator interface panel is assigned. Customized switch [F4] on KV-D20 operator interface panel is assigned. Customized indicator lamp 1 on KV-D20 operator interface panel is assigned. Customized indicator lamp 2 on KV-D20 operator interface panel is assigned. Customized indicator lamp 3 on KV-D20 operator interface panel is assigned. Customized indicator lamp 4 on KV-D20 operator interface panel is assigned. Permits change between operator OFF: Not mode and device mode of KV-D20 ON: Permitted permitted operator interface panel . Permits the KV-D20 operator interface OFF: Not panel to be shifted between operator ON: Permitted permitted mode and system mode. Specifies the display language for the ON: Japanese OFF: English KV-D20 operator interface panel Sets the beep for the KV-D20 operator ON: Use beep OFF: No beep interface panel Reserved for system Reserved for system Displays a user message (contents of ON: Display OFF: Do not DM1950) in the Access Window message display message

2500 2501 2502 2503 2504 2505 2506 2507 2508

2509 2510 2511 2512 2513 2515

3-16

Chapter 1 Programming

1.3 Device Configuration


Relay No. 2609 2610 2611 2612 2613 Function Input time constant of input expansion unit with relay Nos. 0100 to 0115 Input time constant of input expansion unit with relay Nos. 0200 to 0215 Input time constant of input expansion unit with relay Nos. 0300 to 0315 Input time constant of input expansion unit with relay Nos. 0400 to 0415 Clearing of input at expansion disconnect

OFF: 10 ms ON: 10 s OFF: 10 ms ON: 10 s OFF: 10 ms ON: 10 s OFF: 10 ms ON: 10 s OFF: Cleared ON: Not cleared
This area is stored even when the operation mode is changed from PROGRAM to RUN, or when the power is turned off (without being affected by the MEMSW instruction). This area is not cleared even if the utility relay All Clear function is activated. However, this area is cleared when an All Clear is executed without registering a program.

2712

Disconnect error OFF: Normal ON: Disconnection in connected unit

2714

Use of high-speed input correction circuit ON: Used OFF: Not used

1 1

2715

ON while cam switch is in operation.

2800 2801 2802 2803 2804 2805 2806 2807 2808 2809 2812

Break signal send to communication port A (remains ON while sending). Receives text data from communication port A, and remains ON during only 1 scan while receiving text data. Communication port A text data acceptance error. Remains ON during only 1 scan ON when text data is received while either relay 2801 or relay 2803 is ON. Communication port A text data receive error Remains ON during only 1 scan when a text data receive error occurs. Communication port A text data send start (remains ON during sending.) Break signal send to communication port B (remains ON while sending). Receives communication port B text data, and remains ON during only 1 scan while receiving text data. Communication port B text data acceptance error. Remains ON during only 1 scan ON when text data is being received while relay 2806 or relay 2808 is ON. Communication port B text data receive error Remains ON during only 1 scan when a text data receive error occurs. Communication port B text data send start (remains ON during sending.) Turns ON when an abnormality occurs with backup battery. Sets input time constant to all inputs in basic module (except inputs used by HSP instruction). OFF: Sets input time constant to 10 ms. ON: Refers to value stored in DM1940, then determines input time constant.

2813

2814 HKEY instruction: Multiple keys are prohibited. 2815 HKEY instruction: Scan is finished. 2900 to 2915 HKEY information storage area.

Note: Never use special utility relays that are not shown above.

Chapter 1 Programming

3-17

1.3 Device Configuration

1.3.9 Timers and Counters


Timers and counters can be set in a program, and their outputs can be used as contacts elsewhere in the program. [There is no restriction on the contact type (N.O. or N.C.) and the order of use.] A same number can be assigned to only one timer or counter. For example, T005 and C005 cannot be used in the same program.

Timer/Counter list
Name Timer (0.1-s timer) High-speed timer (0.01-s timer) High-speed 1-ms timer (0.001-s timer) Counter Up/down counter Contact Coil (instruction) TMR000 to 249 TMH000 to 249 TMS000 to 249 C000 to C249 C000 to 249 UDC000 to 249 250 in total Number

Timer

T000 to T249

Counter

Description

Timers When 0.1-s timers (TMR) and high-speed 0.001-s timers (TMS) are used as contacts, the "Tnnn" No. is used for both types. However, the form for setting is different. "TMRnnn#ddddd" is used for 0.1-s timers, "TMHnnn#ddddd" is used for high-speed 0.01-s timers, and "TMSnnn#ddddd" is used for high-speed 1-ms timers (nnn = timer No, ddddd = timer set value). In a single program, different timer Nos. must be assigned to each of TMRnnn, TMHnnn, and TMSnnn. When the PLC is stopped, all timers are reset and their current values become equivalent to set values.

Counters When counters (C) and up/down counters (UDC) are used as contacts, the "Cnnn" No. is used for both types. However, the form for setting is different. "Cnnn#ddddd" is used for counters, while "UDCnnn#ddddd" is used for up/down counters.

In one program, different numbers must be assigned to each of the counters and up/down counters. Even when operation is stopped, each counter stores whatever value it has at that time.
"TMR instruction" (p.3-67), "TMH instruction" (p.3-68), "TMS instruction" (p.3-69), "C instruction" (p.372), "UDC instruction" (p.3-76).

High-speed counters and high-speed counter comparators The Visual KV Se ries is equipped with two high-speed counters (CTH0 and CTH1) and four high-speed counter comparators (CTC0, CTC1, CTC2, and CTC3) with a 30-kHz input response speed (frequency), two phases, and size of 16 or 24 bits. Note: When a high-speed counter or high-speed counter comparator will be used as a 24-bit device, a set value is required to be stored in a data memory using the MEMSW instruction.

For details about high-speed counters and high-speed counter comparators, refer to "Chapter 4 Highspeed Counters" (p.3-203).

3-18

Chapter 1 Programming

1.3 Device Configuration

1.3.10 Data Memories


Data memories store various types of data. Data memories are not usually used in a program that consists of contacts, coils, timers, and counters. When arithmetic instructions are used, however, data memories can be used to store data for arithmetic operations as well as the results of arithmetic operations.
DM No. DM0 to DM999 DM1000 to DM1099 DM1100 to DM1199 DM1200 to DM1299 DM1300 to DM1399 DM1400 DM1401 DM1402 DM1403 DM1404 DM1405 DM1406/DM1407 DM1408/DM1409 : DM1468/DM1469 DM1470 DM1471 to DM1479 DM1480 DM1481 DM1482 DM1483 DM1484 DM1485 DM1486 DM1487 to DM1499 DM1565 to DM1569 DM1580 to DM1599 DM1664 to DM1699 DM1670 to DM1675 DM1676 Text receive port A Text send port A Text receive port B Text send port B Cam switch function: The first output relay No. Cam switch function: Comparison value in multi-step comparator mode Cam switch function: Pulse count of one cycle of equipment input to CTH0 Not specified (can be used by user) Measurement cycle (ms) Result of frequency count (Hz) Cam switch function: Set value of angle at which output relay turns ON/OFF Cam switch function: Set value of angle at which output relay +1 turns ON/OFF : Cam switch function: Set value of angle at which output relay +31 turns ON/OFF Reserved by system (cannot be used by user) Not specified (can be used by user) Ramp-up/down control function: Startup frequency (Hz) (200 to 50,000) Ramp-up/down control function: Operating frequency (Hz) (200 to 50,000) Ramp-up/down control function: Acceleration time (ms) (0 to 4,000) Not specified (can be used by user) Ramp-up/down control function: Output pulse count (lower digit) (0 to 65,535) Ramp-up/down control function: Output pulse count (upper digit) (0 to 65,535) Ramp-up/down control function: Error code (11 to 17) Not specified (can be used by user) Not specified (can be used by user) KV-D20 Operator interface panel: Display device No. Not specified (can be used by user) Reserved by system (cannot be used by user) KV-D20 Operator interface panel: Screen shift permission setting in operator mode Description Not specified (can be used by user)

1 1

DM1578 and DM1579 Not specified (can be used by user)

Chapter 1 Programming

3-19

1.3 Device Configuration


DM No. DM1677 to DM1679 DM1680 to DM1699 DM1764 to DM1799 DM1806 to DM1809 DM1826 to DM1899 DM1900/DM1901* DM1902/DM1903* DM1904/DM1905* DM1906/DM1907* DM1908/DM1909* DM1910/DM1911* DM1912/DM1913 DM1914/DM1915 DM1916/DM1917 DM1918/DM1919 DM1920/DM1921 DM1922/DM1923 DM1924/DM1925 DM1926/DM1927 DM1928/DM1929* DM1930/DM1931* DM1932/DM1933* DM1934/DM1935* DM1936 DM1937 DM1938 DM1939 DM1940 DM1941 to DM1943 DM1944 DM1945 to DM1949 DM1950 DM1951 to DM1999 * Read-only relay. Description Area for direct access mode for the KV-D20 operator interface panel KV-D20 Operator interface panel: Display device attributes Not specified (can be used by user) Not specified (can be used by user) Not specified (can be used by user) 24-bit value read from CTH0 (lower digit/upper digit) 24-bit value read from CTH1 (lower digit/upper digit) 24-bit value read from CTC0 (lower digit/upper digit) 24-bit value read from CTC1 (lower digit/upper digit) 24-bit value read from CTC2 (lower digit/upper digit) 24-bit value read from CTC3 (lower digit/upper digit) 24-bit current value written to CTH0 (lower digit/upper digit) 24-bit current value written to CTH1 (lower digit/upper digit) 24-bit current value written to CTC0 (lower digit/upper digit) 24-bit current value written to CTC1 (lower digit/upper digit) 24-bit current value written to CTC2 (lower digit/upper digit) 24-bit current value written to CTC3 (lower digit/upper digit) CTH0 preset input (lower digit/upper digit) CTH1 preset input (lower digit/upper digit) Input capture when INT0 is generated (lower digit/upper digit) Input capture when INT1 is generated (lower digit/upper digit) Input capture when INT2 is generated (lower digit/upper digit) Input capture when INT3 is generated (lower digit/upper digit) Specified frequency pulse output function: Set frequency (Hz) I/O expansion unit connection information Digital trimmer No. 0: Upper limit value Digital trimmer No. 1: Upper limit value Input time constant setting 0: 10 s 1: 20 s 2: 500 s 3: 1 ms 4: 2.5 ms 5: 5 ms 6: 10 ms Any other value cannot be set. Reserved by system (cannot be used by user) Number of instructions converted into 1 scan when division conversion is performed Not specified (can be used by user) Access window error display (0 to 255) Not specified (can be used by user)

Note 1: 16-bit binary data is stored in each of the data memories as for internal registers. Note 2: The data stored in data memories is held even when the power is turned off or when the All Clear function is executed. The backup time is 20 days or more in the KV-10xx, and 2 months or more in other models. Note 3: DM1000 to DM1999 are assigned as special data memories.

3-20

Chapter 1 Programming

1.3 Device Configuration

1.3.11 Temporary Data Memory


These data memories are used for temporary storage. When arithmetic instructions are used, temporary data memories can be used to temporarily store the data for arithmetic operations as well as the results of arithmetic operations.
TM No. TM00 TM01 Usage Used for arithmetic operations (DIV/MUL) Used for arithmetic operations (DIV) Attribute R/W R/W R/W R* R/W R* R

TM02 to TM27 Not specified (can be used by user) Stores scan time (module: 1 ms) beyond set value while TM28 constant scan time operation is performed. Stores set value (module: 1 ms) of constant scan time TM29 operation TM30 Stores CTC0 value when INT3 interruption is given. Stores measured scan time (mean value of every 10 TM31 scans) (module: 0.1 ms).

Attribute
*

R: Read

W: Write

Both R and W are enabled when special functions are not used.

Note 1: Temporary data memories are initialized when the power is turned on. Note 2: TM20, TM30, and TM31 are read-only, so cannot be used for writing. However, TM28 can be used for both reading and writing if special functions are not used. Note 3: TM00 and TM01 are used by the MUL and DIV instructions. Never use them for any other purpose.

1 1

Chapter 1 Programming

3-21

1.3 Device Configuration

1.3.12 Relay Nos. and Functions


Assignment of Relay Nos. The components of a relay no. are shown below.

0 7 5 1 5
Channel No. Relay No. (00 to 15) Module No. (07 to 17) Address No. Input (0 to 4) Output (5 to 9)

Unit Nos. Unit nos. are assigned to units within the KV-300 system, with the unit connected to the right of the KV-300 CPU (see the figure below) assigned as no. 7. The CPU is assigned as unit no. 0.

Power supply unit

CPU 0 7 8 9 16 17

Address Nos. Address nos. are assigned to the input units, output units, and I/O terminal units. The following table shows the assignment of address nos. to units.
Unit KV-300 CPU KV-C16X KV-C32X KV-B16R KV-B16S KV-C32T KV-R8X KV-R16X KV-R8R KV-R16R KV-R8T KV-R16T CPU 16-input unit 32-input unit 16-output unit 16-output unit 32-output unit 8-input terminal unit 16-input terminal unit 8-output terminal unit 16-output terminal unit 8-output terminal unit 16-output terminal unit 5 to 9 * 0 0. 1 5 5 5, 6 0 to 4 * Address No. 0, 5

The KV-R1A I/O Distribution Unit accommodates 5 input units and 5 output units. Addresses are set with address switches.

3-22

Chapter 1 Programming

1.4 Special Functions

1.4 Special Functions


This section describes special functions to set and confirm operations on the Visual KV Series, and useful functions for program debugging and adjustment of external equipment.

1.4.1 Input Time Constant Change Function


The input time constant can be changed when a signal is read from an input contact. When connecting external equipment which has no contact in which chattering such as transistor outputs does not occur, and inputting pulses of short width, the input time constant change function can be used to decrease the input time constant.

Setting the input time constant for basic units using special utility relays
The input time constant for a basic unit can be changed using data memory DM1940 and special utility relay 2813. Though the input time constant is usually 10 ms, it can be changed to a value that corresponds to the number stored in DM1940 by setting special utility relay 2813 to ON. If the HSP instruction and special utility relay 2813 are used at the same time, priority is given to the HSP instruction and the number stored in DM1940 is ignored. Special utility relay 2813 OFF: Sets the input time constant to 10 ms. ON: Refers to the number stored in DM1940, then determines the input time constant.
Number stored in DM1940 0 1 2 3 4 5 6 7 or more Input time constant 10 s 20 s 500 s 1 ms 2.5 ms 5 ms 10 ms Not allowed

1 1

Note 1: Be sure to set the input time constant to 10 s when using the 30-kHz high-speed counter input. Note 2: Never enter a number that is 7 or larger to data memory DM1940. Note 3: The input time constant specified by data memory DM1940 becomes effective at the rising edge of special utility relay 2813. To change the input time constant, first change data memory DM1940, then set special utility relay to OFF and ON again. Or change the operation mode of the KV basic unit from PROGRAM to RUN. Note 4: The input time constant for input relays set by the HSP instruction is 10 s.

For more about the HSP instruction, refer to "HSP instruction" (p.3-86). For more about setting the input time constant for expansion units, refer to "Input time constant for expansion units" (p.1-76). Note 5: Set the special utility relay using the SET/RES instructions.
Note 6: When the input time constant is set to 1 ms or less, connect the output equipment without contacts. If connecting output equipment with contacts, contact bounds may enter. Note 7: Except for interrupts and high-speed counters, signals whose ON time is shorter than the scan time may not be received even if the input time constant is set to a small value.

Chapter 1 Programming

3-23

1.4 Special Functions

1.4.2 Modifying the Input Relay Time Constant


Modifying with External Switches KV-C32X/C16X KV-R16X/R8X
Input time constant selection switch

KV-300 PLC Only

1 ms 0 ms 10 ms

24V

5V 0 ms 10 ms 1 ms

2 1 0

As shown in above figures, an external switch can be used to select the input time constant only on the KV-C32X/C16X Connector Input Units and KV-R16X/R8X I/O Terminal Units.

In the following table, white represents the switch position.


Input time constant 25 s 20% 1 ms 20% 10 ms 20% KV-C32X/C16X KV-R16X/R8X
0ms 1ms 10ms 0ms 1ms 10ms 0ms 1ms 10ms 0ms 1ms 10ms 0ms 1ms 10ms 0ms 1ms 10ms

Note: Connect a solid-state contact output device when the input time constant is set to 1 ms for 25 s. Connection of a contact output device may result in contact bounce.

Modification within the CPU


The input time constant for KV-300 CPU input relay nos. 0000 to 0009 can be modified in the program.
Input time constant 10 s 20% 25 s 20% 10 ms 20% Setting Turn ON special utility relay 2813 (0000 to 0009). Use the HSP instruction. Default

Note 1: When using the 30 kHz high-speed counter input, turn ON special utility relay 2813. Note 2: When special utility relay 2813 is ON, the input time constant of input relays 0000 to 0009 is set to 10 s 20%. Note 3: The input time constant remains 10 ms 20% if the HSP instruction is used when special utility relay 2813 is ON. Note 4: When the input time constant is set to 10 s or 25 s, a solid-state output device must be connected. Connection of a contact output device may result in contact bounce.

3-24

Chapter 1 Programming

1.4 Special Functions

1.4.3 Constant Scan Time Mode


This function executes a program while keeping the scan time at a constant value which usually changes based on the processing contents. This section describes how to set this function. Though the scan time changes usually depending on the processing contents, it can be kept at a constant value by using this function. This function can be used to acquire data from external equipment at a constant time interval. The set value should be longer than the maximum scan time because the scan time is kept at a constant value until the end of processing. Setting procedure Set the desired scan time to temporary data memory TM29. Set special utility relay 2303 to ON. The scan time is written to TM31. The scan time can be set in 1-ms increments. Enter the desired scan time (ms) to the temporary data memory. Setting example In this example, the scan time is kept at 20 ms.

2008

#00020 LDA

TM29 STA

2303 SET

1 1

Note 1: Be sure to set the constant scan time value so it is larger than the actual scan time. Note 2: If the actual scan time exceeds the set scan time, special utility relay 2304 turns ON (during the next 1 scan) while the actual scan time is written to TM28 (unit: 1 ms). Note 3: The scan time can be set up to 200 ms in temporary data memory TM29. If a value larger than 200 ms is input, it will be treated as 200 ms.

Chapter 1 Programming

3-25

1.4 Special Functions

1.4.4 Output Disabled Function


This function disables outputs from each unit in RUN mode without regard to the program used. By disabling external outputs, the program can be debugged while external equipment is connected, even when output of signals to the external equipment is not desired. Setting procedure When special utility relay 2300 turns ON, all outputs from all output relays (0500 to 0915) to the outside are cleared after 1 scan is finished. However, the display in the Access Window and the output indicator lamps are not cleared. Setting example By setting/resetting special utility relay 2300 using the Access Window, the "KV IncrediWare (DOS)" or "LADDER BUILDER for KV" programming support software, or the KV-P3E(01) handheld programmer, the external output prohibition function can be used. External outputs are prohibited while input 0000 is ON. External outputs are permitted, though, while input 0000 is OFF.
0000 2300

For more about operating procedures, refer to the "Chapter 6. Handheld Programmer" (p.1-195).

1.4.5 Input Refresh Disabled Function


This function disables the update of inputs from each unit triggered by input signals from external equipment. By disabling external input refresh, inputs from each unit can be set to ON/OFF in monitor status without mechanical operations to enable a program check. Setting procedure When special utility relay 2301 turns ON, input refresh (read of input relays) for all input relays (0000 to 0415 used by the QL Series) is skipped. In this status, inputs can be set to ON/OFF from the Access Window, the "KV IncrediWare (DOS)" or "LADDER BUILDER for KV" programming support software, or the KV-P3E(01) handheld programmer. Setting example By setting/resetting special utility relay 2301 using the Access Window, the "KV IncrediWare (DOS)" or "LADDER BUILDER for KV" programming support software, or the KV-P3E(01) handheld programmer, the external input refresh prohibition function can be used. External input refresh is prohibited while input 0000 is ON. External input refresh is permitted, though, while input 0000 is OFF.
0000 2301

For more about operating procedures, refer to the "Chapter 6. Handheld Programmer" (p.1-195).

Note: Once external input refresh is prohibited, it can be permitted only by setting special utility relay 2301 to OFF from the Access Window, the "KV IncrediWare (DOS)" or "LADDER BUILDER for KV" programming support software, or the KVP3E(01) handheld programmer.

3-26

Chapter 1 Programming

1.5 Extended Ladder Diagrams

1.4.6 Contact Comment Save Function


This function transfers contact comments to the Visual KV Series using the "KV IncrediWare (DOS)" or "LADDER BUILDER for KV" programming support software. The Visual KV Series can store not only programs but also comments registered to each contact using the "KV IncrediWare (DOS)" or "LADDER BUILDER for KV" programming support software. A program may not be easy to understand if only device Nos. are used. By registering comments to the contacts, the program can be easily debugged and more efficiently maintained. The number of contact comments that can be transferred is up to 1,000 for both normal transfer and compression transfer. The KV-D20 operator interface panel includes the contact comment display function.
For more about operating procedures, refer to "2.5 Entering Comments/Labels" (p.1-46) and "4.2.2 Setting the comment transfer" (p.2-138).

Note 1: Line comments cannot be stored. Note 2: The KV-P3E(01) handheld programmer cannot read or write contact comments. Note 3: The KV-D20 operator interface panel cannot display contact comments which have been compressed and transferred.

1 1

Chapter 1 Programming

3-27

1.4 Special Functions

1.4.7 Special Functions


Constant Scan Time Mode

KV-300 PLC only

In this mode, operation can take place according to a preset scan time (in ms). Setting Write the desired scan time into TM29 (temporary data memory), then turn on special utility relay No. 2303. The scan time can also be written into TM31. Specify a scan time in increments of 10 ms (a value of less than 10 ms is invalid). Here, write a value into TM equivalent to 10 times the scan time.

Example Set the constant scan time to 20 ms.


02008 #00200 LDA TM29 STA 2303 SET

Note 1: The set value for the constant scan time must be greater than the actual scan time. Otherwise, special utility relay 2304 turns on during every scan to disable constant scan time mode. Note 2: If the scan time exceeds the set value, special utility relay no. 2304 turns on during the next scan.

Output Disabled Function


During checking of a program, this function clears output from output relays regardless of the program currently running. Setting Turn on special utility relay No. 2300. After one scan is completed, all output relays (00500 to 00503, 07500 to 17915) are cleared.

Example Use the output disabled function by executing FORCED RESET/RESET to special utility relay No. 2300 from the monitor display.

To execute FORCED RESET or RESET, refer to "Chapter 6 Handheld Programmer" (p.1-195).

Input Refresh Disabled Function


Set this function if it is desired to turn ON/OFF input relays from the monitor display without activating the machine when checking a program. Setting Turn ON special utility relay No. 2301 to skip input refresh (reading from input relays). Input relays can then be turned ON/OFF with the KV-P3E(01) or with KV IncrediWare (DOS) on the monitor display.

Example Set input relay No. 0000 to ON to disable input refresh; set to OFF to enable input refresh.
0000 2301

Note: If input refresh is disabled, it is not enabled until input relay No. 0000 is turned on from the handheld programmer.

3-28

Chapter 1 Programming

1.5 Extended Ladder Diagrams

1.5 Extended Ladder Diagrams


This section describes KEYENCEs unique extended ladder diagram.

1.5.1 Features of Extended Ladder Diagrams


The extended ladder diagram is a programming method developed to reduce problems related to design, testing, operation, and maintenance of programs. In a conventional ladder diagram, output instructions can be written only on the right side of a ladder diagram. On the other hand, in an extended ladder diagram, output instructions can be written anywhere except on the left. As the result, the programs shown below can be written. Mixture of input and output circuits Conventional ladder diagram

Extended ladder diagram

Only input circuits can be written.

Only output circuits can be written.

Only input circuits can be assembled.

Both input circuits and output circuits can be assembled.

Only output circuits can be assembled.

1 1

Connection of two or more instructions on one line Conventional ladder diagram Extended ladder diagram

Instructions can be written only from the left end to the right end on one line.

Many instructions can be connected.

Branch from output coil Conventional ladder diagram

Extended ladder diagram

Branches can be made only from input contacts.

Branches can also be made from output coils.

There is only a single line, so the ladder diagram is easier to understand. Three lines are required.

Chapter 1 Programming

3-29

1.5 Extended Ladder Diagrams

1.5.2 Advantages of Extended Ladder Diagrams


The number of lines in a ladder diagram can be reduced. Because both output instructions and input instructions can be written side by side, the number of program lines can be reduced. As the result, the contents of the program can be seen at a glance.

Example When DM0000 stores 1000, 0500 turns ON. 2000, 0501 turns ON. 3000, 0502 turns ON.
Conventional ladder diagram
2002 DM0000 LDA #01000 CMP 2010 2002 2010 2002 2010 0500 #02000 CMP 0501 #03000 CMP 0502

Extended ladder diagram


2002 DM0000 #01000 LDA CMP #02000 CMP #03000 CMP 2010 2010 2010 0500 0501 0502

In a conventional ladder diagram, operations performed by the program cannot be easily understood. In an extended ladder diagram, operations performed by the program can be understood at a glance.

Processing sequence is clear. Ladder symbols can be laid out in processing sequence, so the program flow is easier to understand. In addition, maintainability is considerably improved.

Example When the start switch is set to ON, a lamp is lit for three seconds, a buzzer is sounded for two seconds, and then the motor starts to rotate.
0000 1000 STG 1001 STG 1002 STG 1100 DIFU 0500 0501 0502 1100 #00030 T000 #00020 T001 0000 ENDS T000 T001 1000 SET 1001 JMP 1002 JMP

When the start switch (0000) is set to ON, a lamp (0500) is lit and timer 0 is activated. When timer 0 turns ON three seconds later, the lamp goes out, a buzzer (0501) is sounded, and timer 1 is activated. When timer 1 turns ON two seconds later, the buzzer is stopped and the motor (0502) starts to rotate. When the start switch (0000) is set to OFF, the motor is stopped and all operations are reset.

Conventional ladder diagram


0000 1000 1001 T002 T000 1002 T001 1003 1001 1003 1002 1003 0501 T002 T001 #00020 T001 1002 #00030 T002 1003 0500 T000 1000 DIFU #00010 T000 1001

Extended ladder diagram


0000 1001 STG 1002 STG 1003 STG 0500 0501 0500 0501 1000 DIFU #00010 T000 #00020 T001 #00030 T002 1000 T000 T001 T002 1001 SET 1002 JMP 1003 JMP 1001 JMP

By using an extended ladder diagram as shown above, the program can be executed in the sequence of the processing to be performed. So even a person who uses a relay sequence for the first time can understand the processing contents. By combining the STG instruction, double coils can also be used.

3-30

Chapter 1 Programming

1.5 Extended Ladder Diagrams


Note: When an extended ladder diagram is used, the number of lines in ladder diagram may be reduced. However, this may not necessarily reduce the number of mnemonics in the program. Conventional ladder diagram
0000 0500 0501

Extended ladder diagram


0000 0500 0501

LD 0000 OUT 0500 OUT 0501

LD 0000 OUT 0500 CON OUT 0501 The CON instruction for connection is added. (The scan time is not affected.)

1.5.3 Example of an Extended Ladder Diagram


Using W-UE Only when inputs are given in the order "0000 0001 0002", output 0500 turns ON. Conventional ladder diagram
0001 0002 1002 1000 1003 1001 1001 0500 1000 1001 0000 1002 DIFU 1003 DIFU 1000

Extended ladder diagram


0000 0001 1000 1000 0002 1001 1001 0500

1 1

At the rising edge of input 0001, 1002 turns ON. At the rising edge of input 1003, 1002 turns ON. If input 0000 is ON, 1000 turns ON.

Input 0000 Input 0001 Input 0002 Output 0500 turns ON. turns ON. turns ON. turns ON.

If 1000 is ON, 1001 turns ON.

When 1001 turns ON, output 0500 turns ON.

Because the program can be written in only one line when an extended adder diagram is used, it is easier to look at and understand compared with a program written using a conventional ladder diagram.

Chapter 1 Programming

3-31

1.5 Extended Ladder Diagrams

3-32

Chapter 1 Programming

Chapter 2
Instructions
Describes the concrete usage of instructions in the KV Series. Refer to "Chapter 3 Interrupts" on page 3-191 for details of interrupt instructions. Refer to "Chapter 4 High-speed counters" on page 3-203 for details of the highspeed counters used in the application instruction. 2.1
2.1.1 2.1.2 2.1.3 2.1.4 2.1.5

Instruction List [Visual KV Series] ....................................... 3-34


Basic Instructions ................................................................................. 3-34 Application Instructions ........................................................................ 3-36 Arithmetic Instructions .......................................................................... 3-38 Interrupt Instructions ............................................................................ 3-41 Function No. List (Alphabetical order) .................................................. 3-41

2.2
2.2.1 2.2.2 2.2.3 2.2.4

Instruction List [KV-300 Series, KV-10/80] .......................... 3-42


Basic Instructions ................................................................................. 3-42 Application Instructions ........................................................................ 3-45 Arithmetic Instructions .......................................................................... 3-48 Interrupt Instructions ............................................................................ 3-54

2.3 2.4
2.4.1 2.4.2 2.4.3

Convention Details ................................................................. 3-55 Instruction Details .................................................................. 3-56


Basic Instructions ................................................................................. 3-56 Application Instructions ........................................................................ 3-95 Arithmetic Instructions .......................................................................... 3-134

2.5

Programming Notes ............................................................... 3-189

2.1 Instruction List

Visual KV Series

2.1 Instruction List

Visual KV Series

The KV Series uses 80 instructions. The instructions are divided into four categories according to their functions: basic instructions, application instructions, arithmetic instructions, and interrupt instructions. The following is an overview of applications and functions. For details, refer to the respective description pages for each instruction.

2.1.1 Basic Instructions


Instruction LOAD LOAD BAR Symbol
nnnn

Mnemonic Operand Operand value LD

Function Connects N.O. contact to bus.

Exec.time (s) 0.7 to 1.6

Bytes 3 (12)

Page 3-57

nnnn

LDB AND R No. T/C No. ANB

Connects N.C. contact to bus. Connects N.O. contact in 0000 to 17915 series with previous contact. T000 to T249 C000 to C249 Connects N.C. contact in CTC0 to CTC3 series with previous contact. Connects N.O. contact in parallel with previous contact. Connects N.C. contact in parallel with previous contact. Connects in series blocks made of one or more contacts. Connects in parallel blocks made of one or more contacts. Outputs input ON/OFF status 0500 to 1915 to R coil. 2009 2300 to 17915 Outputs inverted input ON/ OFF status to R coil. 0500 to 1915 2009 2300 to 17915 Forces relay ON and holds T000 to T249 this status when input is ON. C000 to C249 R No. T/C No.

0.7 to 1.6 0.7 to 0.9

3 (12) 3 (8)

3-57 3-58

AND

nnnn

AND BAR

nnnn

0.7 to 0.9

3 (8)

3-58

OR

nnnn

OR ORB

0.7 to 0.9

3 (8)

3-60

OR BAR

nnnn

0.7 to 0.9

3 (8)

3-60

AND LOAD

ANL ORL
nnnn

0.8

1 (4)

3-61

OR LOAD

0.8 1.5

1 (4) 3 (12)

3-63 3-65 3-65

OUT

OUT R No.

OUT BAR

nnnn

OUB

1.5

3 (12)

SET

nnnn SET

SET

1.9 to 12.8

3 (14)

3-66

RESET

nnnn RES

RES

0500 to 1915 2009 2100 to 17915 Forces R/T/C OFF when input 1.9 to 20.5 T000 to T249 is ON. C000 to C249 CTH0 to CTH1 CTC0 to CTC3 000 to 249 #00000 to #65535 16-bit on-delay T that counts down in 0.1-s decrements. 16-bit on-delay T that counts down in 0.01-s decrements. 12.0 to 17.8

3 (14)

3-66

0.1-s TIMER 0.01-s TIMER

#ddddd Txxx

TMR TMH (FUN49)

#ddddd T Txxx H

T No., # preset value

2 (6)

3-67 3-68

12.0 to 17.8

2 (6)

3-34

Chapter 2 Instructions

2.1 Instruction List

Visual KV Series

Instruction 1-ms TIMER

Symbol
#ddddd T S Txxx

Mnemonic TMS (FUN51)

Operand

Operand value

Function

Exec.time (s) 12.0 to 17.8

Bytes 2 (7)

Page 3-69

16-bit on-delay T that T No., 000 to 249 # preset value #0000 to #65535 counts down in 1-ms decrements. #00000 to # preset value, #65535 Sets 16-bit up-counter. C No., counter 000 to 249 input R 0000 to 17915 C No., # preset value 000 to 249 #00000 to #65535 Sets a 16-bit up-down counter.

COUNTER

#ddddd Cxxx nnnn

12.0 to 17.8

4 (7)

3-72

UP-DOWN COUNTER DIFFERENTIATE UP DIFFERENTIATE DOWN KEEP

UP DW #ddddd RES

UDC xxx

UDC (FUN52) DIFU (FUN10)

13.0 to 24.0

2 (10)

3-76

nnnn DIFU

R No.
nnnn DIFD

DIFD (FUN09) KEEP (FUN22) SFT (FUN39)

1000 to 1915 3000 to 9915

KEEP
SET nnnn RES

R No. nnnn: 1st R No. mmmm: Last R No.

0500 to 1915 2009 2100 to 17915

Turns ON R for 1 scan 11.2 to 13.2 time at rising edge of input. Turns ON R for 1 scan 10.0 to 12.8 time at falling edge of input. Turns ON R and holds this status when SET input is ON. 8.2 to 19.8 Turns OFF R when RESET input is ON. (*)

3 (10) 3 (10)

3-78 3-78

3 (11)

3-80

SHIFT

D nnnn CLK RES mmmm

SFT

1000 to 1915 Sets shift register. 3000 to 9915 (KV-10) 0000 to 0005 (KV-16) 0000 to 0009 (KV-24) 0000 to 0015 (KV-40) 0000 to 0107

5 (15)

3-82

HIGH SPEED

HSP nnnn

HSP (FUN18)

R No.

Reduces input relay time constant to 10 s for higher input response.

3.8 to 9.4

3 (8)

3-86

1 2

MASTER CONTROL MASTER CONTROL RESET MEMORY SWITCH NOP

MC

MC (FUN24) MCR (FUN25) MEMSW (FUN26) NOP (FUN30) $ constant $ 0000 to $ FFFF

Selects ON/OFF status of R coils, Ts, or Cs. Represents end of MC.

0.2

1 (4)

3-89

MCR

0.2

1 (0)

3-89

MEMSW $xxxx

Sets memory switches.

3 (0)

3-92

Performs no operation. Indicates end of each routine of program. Indicates end of entire program.

1 (0)

3-94

END

END

END

1 (1) 1 (0)

3-94 3-94

END HI

ENDH

ENDH

Number of bytes represents the memory capacity required for each instruction. Number in ( ) represents the memory capacity required for object code of each instruction. *1 34 + 0.25 + n x 0.25 (n: No. of shift steps) All operand values are shown in normal notation. The corresponding relay numbers in X-Y-M notation are shown below: Normal notation 0000 to 0415 0500 to 0915 1000 to 6915 7000 to 17915 X-Y-M notation X000 to X04F Y050 to Y09F M1000 to M6915 X700 to X174F or Y750 to Y179F

Chapter 2 Instructions

3-35

2.1 Instruction List

Visual KV Series

2.1.2 Application Instructions


Instruction WAIT ON Symbol
nnnn ON mmmm nnnn OFF mmmm nnnn mmmm nnnn mmmm

Mnemonic W-ON

Operand Operand value 17915 T000 to T249 C000 to C249 CTC0 to CTC3 mmmm: mmmm: 1000 to 1915 3000 to 9915 R No. 1000 to 1915 R No. nnnn: R, T, C Nos.

Function

Exec.time (s)

Bytes 5 (12) 5 (12)

Page 3-96 3-96

WAIT OFF WAIT UP EDGE WAIT DOWN EDGE CONNECT PUSH

W-OFF

W-UE

R (output operand [mmmm]) when R, T, or C (input operand 10.4 to 12.6 [nnnn]) is ON. Turns ON R (output operand [mmmm]) when R, T, or C (input 13.6 to 18.5 operand [nnnn]) is OFF. Turns ON R (output operand [mmmm]) at rising edge of R, T, 13.6 to 18.5 or C (input operand [nnnn]). Turns ON R (output operand [mmmm]) at falling edge of R, T, 6.8 to 5.3 or C (input operand [nnnn]). Represents series connection of output instruction together with another instruction. Stores input status and arithmetic flag. Reads input status and arithmetic flag stored with PUSH. Reads & clears input status and arithmetic flag stored with PUSH. 3.2

5 (12)

3-98

W-DE CON (FUN 06) MPS

1 (0)

3-98

1 (4)

3-102

1 (4)

3-103

READ

MRD MPP STG (FUN 44) JMP (FUN 21) ENDS (FUN 14) R No. nnnn: 0000 to R, T, C Nos.

6.8

1 (4)

3-103

POP
nnnn STG

10.5 to 13.0

3 (10)

3-103

STAGE

JUMP END STAGE

nnnn JMP

Executes instructions in STG block when R (operand) is ON. 4.5 to 12.5 3000 to 9915 0000 to 0009 When input is ON, turns R of current stage OFF and moves 4.3 to 7.5 to stage specified by operand. Turns current stage OFF and next stage ON when input is ON. 0500 to 9915 Executes program between T000 to T249 STP & STE when R (operC000 to C249 and) is ON. CTC0 to CTC3 11.2 to 13.4 Is used with STEP to make program step. 2.5

3 (8)

3-106

1 (4) 3 (10)

3-106 3-106

ENDS

STEP

STP nnnn

STP (FUN 45)

5 (12)

1 (0)

3-114

STE

STEP END

STE (FUN 43)

Turns ON

3-114

Number of bytes represents the memory capacity required for each instruction. Number in ( ) represents the memory capacity required for object code of each instruction. All operand values are shown in normal notation. The corresponding relay numbers in X-Y-M notation are shown below: Normal notation 0000 to 0415 0500 to 0915 1000 to 6915 7000 to 17915 X-Y-M notation X000 to X04F Y050 to Y09F M1000 to M6915 X700 to X174F or Y750 to Y179F

3-36

Chapter 2 Instructions

2.1 Instruction List

Visual KV Series

Instruction

Symbol
ITVL PLS DMnnnn PAUSE mmmm RES

Mnemonic

Operand DMnnnn: DM No. mmmm: R No.

Operand value

Function

Exec.time (s)

Bytes

Page

INTERVAL TIMER

ITVL

DMnnnn: DM0000 to Measures pulse-to-pulse DM1985 interval & pulse width in mmmm: specified mode. 1000 to 1912 3000 to 9912 0004 2100 2101 2102 16-bit (0 to 65535) updown counter for clock pulses with input response frequency of 30 kHz.

20.0 to 80.0

5 (10)

3-117

16-BIT COUNTER

CTH0 nnnn

CTH

Count input R

14.4

4 (6)

3-204

16-BIT COUNTER COMPARATOR

#ddddd CTCn

CTC

n: Comparator n: 0,1 No. ddddd: #00001 ddddd: to #65535 # preset value 0005 0500 2200 2201 2202

Hardware-based comparator between preset & current values of high-speed counter 2.3 to 3.5 (CTH0). This comparator is turned ON when these values are equal. 16-bit (0 to 65535) updown counter for clock pulses with input response frequency of 30 kHz. Hardware-based comparator between preset & current values of high-speed counter (CTH1). This comparator is turned ON when these values are equal. Executes subroutine specified by operand. Represents beginning of subroutine specified by operand. Represents end of subroutine. 4.3

2 (6)

3-204

16-BIT COUNTER

CTH1 nnnn

CTH

Count input R

14.4

4 (6)

3-204

16-BIT COUNTER COMPARATOR SUBROUTINE CALL SUBROUTINE ENTRY SUBROUTINE RETURN

#ddddd CTCn

CTC

n: Comparator n: 2,3 No. ddddd: #00001 ddddd: to #65535 # preset value Subroutine No. Subroutine No. 00 to 99

2.3 to 3.5

2 (6)

3-204

nn CALL

CALL (FUN 03) SBN (FUN 38) RET (FUN 33)

5.4 to 6.5

2 (8)

3-122

1 2

SBN nn

00 to 99

2 (4)

3-122

RET

1 (4)

3-122

REPEAT START

FOR nnnn

FOR (FUN 16)

# constant, DM No. TMxx

#00000 to #65535 DM0000 to DM1999 TM00 to TM29

Executes program between FOR & NEXT for number of times specified by operand. Represents end of repetition.

12.0 to 18.0

3 (20)

3-125

REPEAT END

NEXT

NEXT (FUN 29) nnnn: Input R mmmm: Output R nnnn: 0000 to 415 mmmm: 0500 to 915

0.5

1 (4)

3-125

16-KEY INPUT

HKEY nnnn mmmm

HKEY (FUN 17)

Reads 16-key data by time-sharing and outputs these data into special utility Rs 2900 to 2915.

22.1 to 180.0

5 (10)

3-131

Number of bytes represents the memory capacity required for each instruction. Number in ( ) represents the memory capacity required for object code of each instruction. All operand values are shown in normal notation. The corresponding relay numbers in X-Y-M notation are shown below: Normal notation 0000 to 0415 0500 to 0915 1000 to 6915 7000 to 17915 X-Y-M notation X000 to X04F Y050 to Y09F M1000 to M6915 X700 to X174F or Y750 to Y179F

Chapter 2 Instructions

3-37

2.1 Instruction List

Visual KV Series

2.1.3 Arithmetic Instructions


Instruction Symbol Mnemonic Operand Operand value nnnn: #0000 to #65535 $0000 to $FFFF DMmmmm: DM0000 to DM1999 Function Exec.time (s) Bytes Page

DATA MEMORY WRITE

nnnn DW DMmmmm

DW

nnnn: #/$ constant DMmmmm: DM No.

Writes constant into data memory.

8.0

5 (8)

3-136

n TMIN

TRIMMER SETTING

TMIN (FUN 50) Trimmer No. 0 to 1 @TMIN @(FUN 50) 0000 to 17915 T000 to T249 C000 to C249 CTH0 to CTH1 R No., DM0000 to C/T No., DM1999 DM No, TM00 to TM31 TM xx, #00000 to #/$ constant, #65535 @LDA #TMxx $0000 to $FFFF @(FUN 23) #TM00 to #TM29 LDA (FUN 23) 0500 to 1915 2100 to 17915 T000 to T249 C000 to C249 CTH0 to CTC3 DM0000 to DM1999 TM00 to TM29 #TM00 to #TM29

n TMIN

Inputs value set by access windows digital trimmer (0 to 65535) to internal register.

8.9

1 (6) 3-138

20.9

1 (16)

nnnn LDA

6.4 to 14.0 Inputs value specified by operand into internal register or inputs current value when T/C is specified as operand.

3 (8)

LOAD A
nnnn LDA

3-140 18.4 to 26.0 3 (18)

2
nnnn STA

STA (FUN 42)

STORE A
nnnn STA

@STA @(FUN 42)

R No., C/T No., DM No., TM xx, #TMxx

Transfers content of internal register to location specified by operand, or changes preset value when T/C is specified as operand.

6.6 to 28.5

3 (8) 3-140

18.0 to 40.5

3 (18)

nnnn CMP

CMP (FUN 04) @CMP @(FUN 04) DM0000 to DM1999 TM00 to TM31 @ADD #00000 to @(FUN 00) DM/TM No. #65535 TMxx, $0000 to #/$ constant, $FFFF SUB #TMxx #TM00 to (FUN 46) #TM29 @SUB @(FUN 46) MUL (FUN 28) @MUL @(FUN28) ADD (FUN00)

COMPARE
nnnn CMP

Compares content of internal register and value specified by operand.

10.8 to 35.6 22.8 to 47.6

3 (6) 3-146 3 (16)

nnnn ADD

ADD
nnnn ADD

Adds content of internal 9.4 to 34.2 register and value specified by operand and inputs result back to 21.4 to 46.2 same register. Subtracts value specified 10.8 to 35.6 by operand from content of register and inputs result back to same 22.8 to 47.6 register. Multiplies content of 14.4 to 38.1 internal register by value specified by operand and inputs result back to 26.4 to 50.1 same register.

3 (6) 3-150 3 (16)

nnnn SUB

3 (6) 3-150 3 (16)

SUBTRACT
nnnn SUB

nnnn MUL

3 (6) 3-150 3 (16)

MULTIPLY
nnnn MUL

Number of bytes represents the memory capacity required for each instruction. Number in ( ) represents the memory capacity required for object code of each instruction.

3-38

Chapter 2 Instructions

2.1 Instruction List

Visual KV Series

Instruction

Symbol
nnnn DIV

Mnemonic

Operand

Operand value

Function

Exec.time (s)

Bytes

Page

DIVIDE
nnnn DIV

DM0000 to DM1999 DIV TM00 to TM31 R No., (FUN 11) #00000 to DM No., #65535 TM xx, $0000 to #/$ constant, @DIV $FFFF #TMxx @(FUN 11) #TM00 to #TM29 0000 to 17915 DM0000 to DM1999 @ANDA R No., TM00 to TM31 @(FUN 01) DM No., #00000 to TM xx, #65535 #/$ constant, ORA $0000 to #TMxx (FNC 31) $FFFF #TM00 to @ORA #TM29 @(FUN 31) ANDA (FUN 01)

17.4 to 43.3 Divides content of internal register by value specified by operand and inputs result back to same 29.4 to 55.3 register.

3 (6) 3-150 3 (16)

nnnn ANDA

AND A
nnnn ANDA

ANDs each of 16 bits of 8.2 to 33.1 internal register and that of value specified by operand, and inputs result 20.2 to 45.1 back to same register. ORs each of 16 bits of 8.2 to 33.1 internal register and that of value specified by operand, and inputs result 20.2 to 45.1 back to same register.

3 (8) 3-159 3 (18)

nnnn ORA

3 (8) 3-161 3 (18)

OR A
nnnn ORA

nnnn EORA

EXCLUSIVE OR A
nnnn EORA

0000 to 17915 DM0000 to DM1999 R No., TM00 to TM31 DM No., #00000 to TM xx, #65535 #/$ constant, $0000 to #TMxx @EORA $FFFF @(FUN 15) #TM00 to #TM29 EORA (FUN 15) SRA (FNC 41) @SRA @(FUN 41) SLA (FNC 40) @SLA @(FUN 40) # constant #01 to #16 RRA (FUN 37) @RRA @(FUN 37) RLA (FUN 35) @RLA @(FUN 35)

EXCLUSIVE-ORs each of 16 bits of internal register and that of value specified by operand, and inputs result back to same register.

8.2 to 33.1

3 (8)

3-164

20.2 to 45.1

3 (18)

1 2

#dd SRA

SHIFT RIGHT A

#dd SRA

Moves content of internal register serially right by value specified by operand.

9.3 to 27.6

2 (6) 3-166

21.3 to 39.6

2 (16) 2 (6) 3-166

#dd SLA

SHIFT LEFT A

#dd SLA

Moves content of internal register serially left by value specified by operand.

9.2 to 27.6

21.2 to 39.6

2 (16) 2 (6) 3-169 2 (16) 2 (6) 3-169 2 (16)

#dd RRA

ROTATE RIGHT A

#dd RRA

10.3 to 28.6 Rotates contents of internal register and carry bit (2009) clockwise by operand value. 22.3 to 40.6 10.3 to 28.6 Rotates contents of internal register and carry bit (2009) counterclock22.3 to 40.6 wise by operand value.

#dd RLA

ROTATE LEFT A

#dd RLA

Number of bytes represents the memory capacity required for each instruction. Number in ( ) represents the memory capacity required for object code of each instruction. All operand values are shown in normal notation. The corresponding relay numbers in X-Y-M notation are shown below: Normal notation 0000 to 0415 0500 to 0915 1000 to 6915 7000 to 17915 X-Y-M notation X000 to X04F Y050 to Y09F M1000 to M6915 X700 to X174F or Y750 to Y179F

Chapter 2 Instructions

3-39

2.1 Instruction List

Visual KV Series
Operand value Exec.time (s) 5.6 Inverts content of each bit in internal register. 17.6 1 (14)

Instruction

Symbol
COM

Mnemonic COM (FUN 05) @COM @(FUN 05) INC (FNC 19)

Operand

Function

Bytes 1 (4)

Page

COMPLEMENT
COM

3-171

nnnn INC

INCREMENT MEMORY

DM/TM No.
nnnn INC

@INC @(FUN 19) DEC (FNC 07) DM/TM No. @DEC @(FUN 07) MPX (FUN 27) # constant

DM0000 to DM1999 TM00 to TM29

Adds 1 to content of data memory specified by operand.

9.8

3 (6) 3-172

21.8

3 (16)

DECREMENT MEMORY

nnnn DEC

nnnn DEC

DM0000 to DM1999 TM00 to TM29

10.4 Subtracts 1 from content of data memory specified by operand.

3 (6) 3-172

22.4

3 (16)

#n MPX

MULTIPLEXER

#0 to #3

#n MPX

@MPX @(FUN 27) DMX (FUN 12) @DMX @(FUN 12) TBCD (FUN 47) @TBCD @(FUN 47) TBIN (FUN 48) @TBIN @(FUN 48) ASC (FUN 02) @ASC @(FUN 02) RASC (FUN 32) @RASC @(FUN 32) ROOT (FUN 36) @ROOT @(FUN 36)

Converts 4-bit data (specified by operand) of internal register into 16-bit data.

10.1

1 (6) 3-176

22.1

1 (16)

DMX

DEMULTIPLEXER
DMX

Converts position of highest order bit with 1 in internal register into 4-bit data.

22.6 34.6

1 (4) 3-176 1 (14)

2
TBCD

TRANSFER BCD
TBCD

Converts content of internal register (16-bit binary) into 4-digit BCD data.

5.6

1 (4) 3-180 1 (14)

17.6

TBIN

TRANSFER BIN
TBIN

Converts content of internal register (4-digit BCD) into 16-bit binary data.

9.6

1 (4) 3-180

21.6 9.7 21.7

1 (14)

ASC

ASCII CONVERT
ASC

Converts content of lower order 8 bytes of internal register into 2-digit ASCII code. Converts 2-digit ASCII code of internal register into 2-digit numerical value. Takes square root of 32bit data (TM00: higher order byte, internal register: lower order byte) and inputs result back to same register.

1 (4) 3-183 1 (14)

REVERSE ASCII CONVERT

RASC

9.3

1 (4) 3-183 1 (14)

RASC

21.3

ROOT

95.7

1 (4) 3-185

SQUARE ROOT
ROOT

107.7

1 (14)

Number of bytes represents the memory capacity required for each instruction. Number in ( ) represents the memory capacity required for object code of each instruction. All operand values are shown in normal notation. The corresponding relay numbers in X-Y-M notation are shown below: Normal notation 0000 to 0415 0500 to 0915 1000 to 6915 7000 to 17915 X-Y-M notation X000 to X04F Y050 to Y09F M1000 to M6915 X700 to X174F or Y750 to Y179F (OUTPUT)

3-40

Chapter 2 Instructions

2.1 Instruction List

Visual KV Series

2.1.4 Interrupt Instructions


Instruction INTERRUPT DISABLED INTERRUPT ENABLED Symbol
DI

Mnemonic DI (FUN 08) EI (FUN 13)

Operand

Operand value

Function Disables execution of interrupt. Enables execution of interrupt. Executes interrupt instructions between INT and RETI at rising/falling edge of input relays 0000 through 0003. Used with comparators CTC0 to CTC3 and executes instructions between INT and RETI. Represents end of interrupt.

Exec.time (s) 2.2

Bytes 1 (12)

Page 3-193

EI

4.0

1 (10)

3-193

INT nnnn

R No. INT (FUN 20)

000 to 003

60.0 to 90.0

1 (8)

3-192

INTERRUPT
INT CTCn

Comparator No.

CTC0 to CTC3

60.0 to 90.0

1 (8)

3-192

RETURN INTERRUPT

RETI

RETI (FUN 34)

18.0 to 22.0

1 (4)

3-192

Number of bytes represents the memory capacity required for each instruction. Number in ( ) represents the memory capacity required for object code of each instruction. All operand values are shown in normal notation. The corresponding relay numbers in X-Y-M notation are shown below: Normal notation 0000 to 0415 0500 to 0915 1000 to 6915 7000 to 17915 X-Y-M notation X000 to X04F Y050 to Y09F M1000 to M6915 X700 to X174F or Y750 to Y179F

1 2

2.1.5 Function No. List (Alphabetical order)


The following list shows the function Nos. used to enter instructions with the KVP3E(01) handheld programmer.

Function No. Instruction 00 01 02 03 04 05 06 07 08 09 10 11 12 ADD A NDA ASC CALL CMP COM CON DEC DI DIFD DIFU DI V DMX

Refer to "Chapter 6 Handheld Programmer" on page 1-195 for details.


Function No. Instruction 13 14 15 16 17 18 19 20 21 22 23 24 25 EI ENDS EORA FOR HKEY HSP INC INT JMP KEEP LDA MC MCR Function No. Instruction 26 27 28 29 30 31 32 33 34 35 36 37 38 MEMSW MPX MUL NEXT NOP ORA RASC RET RET1 RLA ROOT RRA SBN

Function No. Instruction 39 40 41 42 43 44 45 46 47 48 49 50 51 52 SFT SLA SRA STA STE STG STP SUB TBCD TBIN TMH TMIN TMS UDC

Reference: To find function No. assigned to desired function: 1. Press the [FUN] key. 2. When the cursor appears at the position where the function No. is to be entered, press the ON or OFF key and scroll the functions and assigned Nos. to find the desired function.

Chapter 2 Instructions

3-41

2.2 Instruction List

KV-300 KV-300 Series, Series, KV-10/80

2.2 Instruction List


KV-300 Series, KV-10/80

Number of bytes represents the memory capacity required for each instruction. Number in ( ) represents the memory capacity required for object code of each instruction. Abbreviations: R: Relay, T: Timer, C: Counter, #: Decimal, $: Hex.

2.2.1 Basic Instructions


KV-10/16/24/40/80
Instruction Symbol
nnnn

KV-10/16/24/40/80 Mnemonic Operand Operand value Operand value Exec.time Bytes KV-10/16 (s) KV-24/40/80 LD 1.5 to 2.5 3 (4)

Function Connects N.O. contact to bus. Connects N.C. contact to bus.

Page

LOAD
nnnn

3-57

LOAD BAR AND

LDB
nnnn

2.1 to 3.5

3 (6)

3-57

AND R No. T/C No. ANB

AND BAR

nnnn

0000 to 2915 T000 to T063 C000 to C063 CTC0 to CTC3

0000 to 6915 1.5 to 2.5 T000 to T119 C000 to C119 2.7 to 4.5 CTC0 to CTC3 1.5 to 2.5

OR

nnnn

OR ORB

OR BAR AND LOAD

nnnn

2.7 to 4.5

ANL ORL
nnnn

1.0 to 1.4 1.0 to 1.4

OR LOAD

OUT
nnnn

OUT

OUT BAR

OUB

0500 to 1915 2009 2300 to 2915

5.2 to 8.4 0500 to 1915 2009 2300 to 6915 6.4 to 10.4 3 (17) ON/OFF status to R coil.

Connects N.O. contact in series with previous contact. Connects N.C. contact 3 (8) in series with previous contact. Connects N.O. contact 3 (4) in parallel with previous contact. Connects N.C. contact 3 (8) in parallel with previous contact. Connects in series 1 (2) blocks made of one or more contacts. Connects in parallel 1 (2) blocks made of one or more contacts. Outputs input ON/OFF 3 (13) status to R coil. Outputs inverted input 3 (4)

3-58

3-58 3-60

3-60

3-61

3-63

3-65 3-65

SET

nnnn

(SET)

SET

R No.

0500 to 1915 0500 to 1915 2009 2009 Forces R ON and holds 2100 to 2915 2100 to 6915 3.1 to 23.0 3 (8) this status when input is 3-66 T000 to T063 T000 to T119 ON. C000 to C063 C000 to C119 0500 to 1915 2009 2100 to 2915 T000 to T063 C000 to C063 CTH0 to CTH1 CTC0 to CTC3 0500 to 1915 2009 2100 to 6915 T000 to T119 3.1 to 24.0 3 (8) C000 to C119 CTH0 to CTH1 CTC0 to CTC3 17.0 to 22.0 2 (5)

RESET

nnnn

(RES)

RES

Forces R/T/C OFF when input is ON.

3-66

0.1-s TIMER 0.01-s TIMER 1-ms TIMER

#ddddd T xxx

TMR TMH (FNC49) TMS (FNC51) # preset value, C No., clock source R C No., # preset value #00000 to 65535 000 to 063 0000 to 6915 000 to 063 #00000 to #65535 T No., # preset value 000 to 063 #00000 to #65535 000 to 119 #00000 to #65535

#ddddd H xxx
#ddddd S xxx

17.0 to 22.0 2 (5) 17.0 to 22.0 2 (5)

16-bit on-delay T that counts down in 0.1-s decrements. 16-bit on-delay T that counts down in 0.01-s decrements. 16-bit on-delay T that counts down in 1-ms decrements. Sets 16-bit up-counter.

3-67

3-68 3-69

COUNTER

#ddddd C xxx nnnn

#00000 to #65535 19.0 to 21.0 4 (7) 000 to 119 0000 to 6915 000 to 119 #00000 to #65535 21.0 to 26.0 2 (5)

3-72

UP-DOWN COUNTER

UP #ddddd DW RES

UDC xxx

UDC (FNC52)

Sets a 16-bit up-down counter.

3-76

3-42

Chapter 2 Instructions

2.2 Instruction List

KV-300 Series, KV-10/80

Instruction DIFFERENTIATE UP DIFFERENTIATE DOWN KEEP SHIFT

Symbol
nnnn DIFU

KV-10/16/24/40/80 Mnemonic Operand Operand value Operand value Exec.time Bytes KV-10/16 (s) KV-24/40/80 DIFU (FNC10) R No. 1000 to 1915 DIFD (FNC09) KEEP (FNC22) SFT (FNC39) HSP (FNC18) MC (FNC24) MCR (FNC25) MEMSW $ constant (FNC26) NOP (FNC30) $ 0000 to $ FFFF R No. R No.1st & last R Nos. R No. 0500 to 1915 2009 2100 to 2915 1000 to 1915 (KV-10) 0000 to 0005 (KV-16) 0000 to 0009

Function

Page

nnnn DIFD

1000 to 1915 3000 to 6915

KEEP
SET RES

nnnn

D nnnn CLK RES mmmm

SFT

0500 to 1915 2009 2100 to 6915 1000 to 19153000 to 6915 (KV-24) 0000 to 0015 (KV-40) 0000 to 0107

Turns ON R for 1 11.0 to 13.0 3 (5) scan time at rising edge of input. Turns ON R for 1 11.0 to 13.0 3 (5) scan time at falling edge of input. Turns ON R and 9.0 to 26.0 3 (5) holds this status when SET input is ON. (*) 5 (7) Turns OFF R when RESET input is ON.

3-78

3-78

3-80 3-82

HIGH SPEED MASTER CONTROL MASTER CONTROL RESET MEMORY SWITCH NOP

HSP
nnnn

8.0 to 9.0

3 (4)

Sets shift register.

3-86

MC

1.8 to 3.2

MCR

0.6 to 1.0

Reduces input relay time 1 (7) constant to 25 ms for higher input response. Selects ON/OFF 1 (2) status of R coils, Ts, or Cs. 3 (0) Represents end of MC. Sets memory switches.

3-89

3-89 3-92 3-94

MEMSW $xxxx $xxxx

Performs no opera1 (0) tion. 1 (3) Indicates end of each routine of program. Indicates end of entire 1 (0) program.

END

END

END

3-94

1 2

END HI

ENDH

ENDH

3-94

KV-300
KV-300 Instruction Symbol
nnnn

Mnemonic Operand

Operand value

Exec.time Bytes (s) 0.15 to 0.70 3 (5)

Function Connects N.O. contact to bus. Connects N.C. contact to bus. Connects N.O. contact in series with previous contact. Connects N.C. contact in series with previous contact. Connects N.O. contact in parallel with previous contact. Connects N.C. contact in parallel with previous contact. Connects in series blocks made of one or more contacts. Connects in parallel blocks made of one or more contacts.

Page

LOAD
nnnn

LD

3-57

LOAD BAR
nnnn

LDB 0000 to 0009 0500 to 17915 T000 to T249 C000 to C249 CTC0 to CTC3

0.15 to 0.90 3 (7)

3-57

AND
nnnn

AND R No. T/C No. ANB


nnnn

0.15 to 0.50 3 (4)

3-58

AND BAR OR

0.15 to 0.80 3 (8) 0.15 to 0.50 3 (4) 0.15 to 0.80 3 (8)

3-58

OR

3-60

OR BAR

nnnn

ORB

3-60

AND LOAD OR LOAD

ANL ORL

0.55

1 (3)

3-61

0.55

1 (3)

3-63

Chapter 2 Instructions

3-43

2.2 Instruction List

KV-300 KV-300 Series, Series, KV-10/80


KV-300

Instruction

Symbol
nnnn

Mnemonic Operand

Operand value

Exec.time Bytes (s) 0.20 to 0.56 3 (8)

Function Outputs input ON/OFF status to R coil.

Page

OUT
nnnn

OUT

0500 to 1915 2009 2300 to 17915

3-65

OUT BAR

OUB 0500 to 1915 2009 2100 to 17915 T000 to T249 C000 to C249 0500 to 1915 2009 2100 to 17915 T000 to T249 C000 to C249 CTH0 to CTH1 CTC0 to CTC3

Outputs inverted input 0.50 to 1.20 3 (11) ON/OFF status to R coil.

3-65

nnnn

SET

(SET)

SET

R No.

Forces R ON and holds 3-66 0.20 to 5.70 3 (12) this status when input is ON.

nnnn

RESET

(RES)

RES

Forces R/T/C OFF 0.50 to 4.40 3 (12) when input is ON.

3-66

0.1-s TIMER

#ddddd T xxx

TMR TMH (FNC49) TMS (FNC51) # preset value, C No., clock source R #00000 to #65535 000 to 249 0000 to 0009 0500 to 17915 000 to 249 #00000 to #65535 T No., # preset value 000 to 249 #00000 to 65535

0.01-s TIMER

#ddddd H xxx
#ddddd S xxx

1-ms TIMER

16-bit on-delay T that counts down in 0.1-s decrements. 16-bit on-delay T that 2 (7) 5.60 to 10.40 counts down in 0.01-s decrements. 16-bit on-delay T that 5.60 to 10.40 2 (7) counts down in 1-ms decrements. 5.60 to 10.40 2 (7) 7.60 to 9.45 4 (7) Sets 16-bit up-counter.

3-67

3-68

3-69

2
COUNTER UP-DOWN COUNTER DIFFERENTIATE UP DIFFERENTIATE DOWN KEEP

#ddddd C xxx nnnn

3-72

UP #ddddd DW RES

UDC xxx

C No., UDC (FNC52) # preset value DIFU FNC10) R No. DIFD (FNC09) KEEP (FNC22) SFT (FNC39) HSP (FNC18) MC (FNC24) MCR (FNC25) MEMSW $ constant (FNC26) NOP (FNC30) R No. 1st & last R Nos. R No.

8.00 to 11.60 2 (10) Sets a 16-bit up-down counter. Turns ON R for 1 scan 3 (10) time at rising edge of input. Turns ON R for 1 scan 3 (10) time at falling edge of 6.70 input. Turns ON R and holds 6.10 to 7.90 3 (11) this status when SET input is ON. 6.70 6.40 to 8.20 5 (15) Turns OFF R when RESET input is ON.

3-76

nnnn DIFU

nnnn DIFD
KEEP
SET RES

1000 to 1915 3000 to 6915 (*) 7000 to 9915 0500 to 1915 2009 2100 to 17915 1000 to 1915 3000 to 6915 (*) 7000 to 9915 0000 to 0009

3-78

3-78 3-80

nnnn

SHIFT

D nnnn CLK RES mmmm

SFT

3-82

HIGH SPEED MASTER CONTROL MASTER CONTROL RESET MEMORY SWITCH NOP

HSP
nnnn

4.66 to 4.92

3 (8) Sets shift register.

3-86

MC

0.20

Reduces input relay time 1 (4) constant to 25 ms for higher input response. 1 (0) Selects ON/OFF status of R coils, Ts, or Cs. Represents end of MC. Sets memory switches. Performs no operation. Indicates end of each routine of program. Indicates end of entire program.

3-89

MCR

3-89 3-92

MEMSW $xxxx $xxxx

$0000 to $FFFF

3 (0)

1 (0)

3-94

END

END

END

0.95

1 (1)

3-94

END HI

ENDH

ENDH

1 (0)

3-94

Note: 14.0 + 3.0 x (n) to 17.0 + 3.0 x (n) (n represents number of times the original data is generated.)

3-44

Chapter 2 Instructions

2.2 Instruction List

KV-300 Series, KV-10/80

2.2.2 Application Instructions


KV-10/16/24/40/80
Instruction Symbol
nnnn ON mmmm
nnnn OFF mmmm nnnn mmmm nnnn mmmm

KV-10/16/24/40/80 Mnemonic Operand Operand value Operand value Exec.time Bytes (s) KV-10/16 KV-24/40/80 W-ON nnnn: 0000 to 2915 T000 to T063 nnnn: C000 to C063 R,T, or C CTC0 to CTC3 No. mmmm: 1000 to 1915 nnnn: 0000 to 6915 T000 to T119 C000 to C119 CTC0 to CTC3 mmmm: 1000 to 1915 3000 to 6915 11.0 to 13.0 11.0 to 13.0 14.0 to 18.0 14.0 to 18.0 0.4 to 0.6 11.0 to 14.0 8.0 to 10.0 10.0 to 12.0 11.0 to 14.0 10.0 to 13.0 7.0 to 9.0 0000 to 2915 T000 to T063 C000 to C063 CTC0 to CTC3 0000 to 6915 T000 to T119 C000 to C119 CTC0 to CTC3 3.7 to 5.3

Function

Page

WAIT ON

WAIT OFF WAIT UP EDGE WAIT DOWN EDGE CONNECT PUSH

W-OFF W-UE

W-D CON [FNC 06] MPS

Turns ON R (2nd operand 5 (7) [mmmm]) when R, T, or C (1st operand [nnnn]) turns ON. When R, T, or C (1st operand 5 (7) [nnnn]) turns OFF, R (2nd operand [mmmm]) turns ON. R (2nd operand [mmmm]) 5 (7) turns ON at rising edge of R, T, or C (1st operand [nnnn]). R (2nd operand [mmmm]) 5 (7) turns ON at falling edge of R, T, or C (1st operand [nnnn]). Represents series connection 301 of output instruction together with another instruction. 1 (3) Stores input status and arithmetic flag.

3-96

3-96

3-98

3-98

3-102

3-103

READ

MRD MPP
nnnn STG

POP

STAGE

STG [FNC 44] R No. 1000 to 1915 JMP [FNC 21] ENDS [FNC 14] STP [FNC 45]

JUMP END STAGE

nnnn JMP

1000 to 1915 3000 to 6915

Reads input status and 1 (3) arithmetic flag stored with 3-103 PUSH. Reads & clears input status 1 (3) and arithmetic flag stored with 3-103 PUSH. Executes instructions between 3 (7) STG & JMP when R 3-106 (operand) is ON. Turns current stage OFF and 3 (5) next stage ON when input is ON. 3-106

1 2

ENDS

1 (3) Turns current stage OFF when 3-106 input is ON. Executes program between 3 (7) STP & STE when R (operand) 3-114 is ON. 1 (0) Is used with STEP to make program step. Measures pulse-to-pulse 5 (7) interval & pulse width in specified mode. 8-bit (0 to255) up-counter for 4 (4) clock pulses with input response frequency of 10 kHz. Hardware-based comparator between preset & current 2 (5) values of high speed counter. This comparator is turned ON when these values are equal. 16-bit (0 to 65535) up-counter 4 (4) for clock pulses with input response frequency of 10 kHz. Hardware-based comparator between preset & current 2 (5) values of high speed counter. This comparator is turned ON when these values are equal. 2 (6) Executes subroutine specified by operand. Represents beginning of 2 (0) subroutine specified by operand. 3-114

STEP

STP nnnn

R, T, C Nos.

STEP END

STE

STE [FNC 43] DM0000 to DM0985 1000 to 1912 DM0000 to DM1985 1000 to 1912 3000 to 6912

0.00

INTERVAL TIMER 8-BIT COUNTER 8-BIT COUNTER COMPARATOR 16-BIT COUNTER 16-BIT COUNTER COMPARATOR SUBROUTINE CALL SUBROUTINE ENTRY SUBROUTINE RETURN

PLS nnnn DM PAUSE mmmm RES

ITVL

ITVL

DM & R No. Clock source Rs n: Comparator No. ddddd: # preset value Clock source Rs n: Comparator No. ddddd: # preset value Subroutine No. Subroutine No.

29.0 to 79.0 9.0 to 39.0

3-117

CTH0 nnnn

CTH

0004 2100 to 2102

3-277

#ddddd CTCn

CTC

n: 0,1 ddddd: #00000 to #00255 0005 2200 to 2202 n: 2,3 ddddd: #00000 to #65535

3.0 to 4.0

3-277

CTH1 nnnn

CTH

8.0 to 48.0

3-204

#ddddd CTCn

CTC

3.0 to 4.0

3-204

nn CALL SBN nn

CALL [FNC 03] SBN [FNC 38] RET [FNC 33]

00 to 99

8.0 to 10.0 0.00

3-122

00 to 99

3-122

RET

4.6 to 6.2 1 (5) Represents end of subroutine. 3-122

Chapter 2 Instructions

3-45

2.2 Instruction List

KV-300 KV-300 Series, Series, KV-10/80


KV-10/16/24/40/80 Operand value Operand value Exec.time Bytes KV-10/16 (s) KV-24/40/80 #00000 to #00000 to #65535 #65535 DM0000 to 5.0 to 20.0 3 (15) DM0000 to DM1999 DM0999 TM00 to TM29 TM00 to TM29 1.7 to 2.3 nnnn:0000 to 0009 10000 to 10415 : 17000 to 17415 mmmm:10500 to 10915 : 17500 to 17915 1 (3)

Instruction

Symbol

Mnemonic Operand

Function

Page

REPEAT START

FOR nnnn

FOR [FNC 16]

# constant, DM No.

Executes program between FOR & NEXT for number of times specified by operand. Represents end of repetition.

3-125

REPEAT END

NEXT

NEXT [FNC 29]

3-125

16-KEY INPUT

nnnn mmmm

HKEY

HKEY [FNC 17]

I/O R

71 to 370

5 (7)

Reads 16-key data by time-sharing and outputs these data into 3-131 special utility Rs 2900 to 2915.

KV-300
KV-300 Instruction Symbol
nnnn ON mmmm nnnn OFF mmmm
nnnn mmmm nnnn mmmm

Mnemonic Operand

Operand value nnnn: 0000 to 0009 0500 to 17915 T000 to T249 C000 to C249 CTC0 to CTC3 mmmm: 1000 to 1915 3000 to 6915 (*)7000 to 9915

Exec.time Bytes (s) 5.00 to 6.10 5 (9)

Function

Page

WAIT ON

W-ON

WAIT OFF

W-OFF nnnn: R,T, or C No.

WAIT UP EDGE WAIT DOWN EDGE CONNECT

W-UE

W-DE CON [FNC 06] MPS

Turns ON R (2nd operand [mmmm]) when R, T, or C (1st operand [nnnn]) turns ON. When R, T, or C (1st operand 5.00 to 6.10 5 (9) [nnnn]) turns OFF, R (2nd operand [mmmm]) turns ON. R (2nd operand [mmmm]) 6.10 to 7.50 5 (10) turns ON at rising edge of R, T, or C (1st operand [nnnn]). R (2nd operand [mmmm]) 6.10 to 7.50 5 (10) turns ON at falling edge of R, T, or C (1st operand [nnnn]). Represents series connection 1 (0) of output instruction together with another instruction. 1.30 2.70 1.40 1 (9) Stores input status and arithmetic flag.

3-96 3-96

3-98

3-98

3-102

PUSH

3-103 3-103

READ

MRD MPP
nnnn STG

Reads input status and 1 (18) arithmetic flag stored with PUSH. 1 (9)

POP

STAGE

STG [FNC 44] R No. JMP [FNC 21] ENDS [FNC 14]

JUMP END STAGE

nnnn JMP

1000 to 1915 3000 to 6915 (*)7000 to 9915

Reads & clears input status 3-103 and arithmetic flag stored with PUSH. Executes instructions 5.60 to 6.50 3 (10) between STG & JMP when R 3-106 (operand) is ON. Turns current stage OFF and 3.80 to 6.00 3 (7) next stage ON when input is 3-106 ON. 1 (0) Turns current stage OFF when input is ON. 3-106

ENDS

STEP

STP nnnn

STP [FNC 45]

R, T, C Nos.

0000 to 0009 0500 to 6915 (*)7000 to 9915 T000 to T249 C000 to C249 CTC0 to CTC3

1.30

3 (9)

Executes program between STP & STE when R (operand) is ON.

3-114

STEP END

STE

STE [FNC 43] DMnnnn: DM0000 to DM9985 mmmm: 1000 to 1912 3000 to 6912 (*)7000 to 9912 0004 2100 2101 2102

1 (0)

Is used with STEP to make program step.

3-114

INTERVAL TIMER

PLS nnnn DM PAUSE mmmm RES

ITVL

ITVL

DM & R No.

13.80 to 17.30

Measures pulse-to-pulse 5 (11) interval & pulse width in specified mode.

3-117

16-BIT COUNTER

CTH0 nnnn

CTH

Clock source Rs

3.85

4 (7)

16-bit (0 to 65535) up-counter for clock pulses with input 3-204 response frequency of 30 kHz.

3-46

Chapter 2 Instructions

2.2 Instruction List


KV-300 Instruction Symbol Mnemonic Operand n: Comparator No. ddddd: # preset value Operand value Exec.time Bytes (s)

KV-300 Series, KV-10/80

Function

Page

16-BIT COUNTER COMPARATOR

#ddddd CTCn

CTC

n: 0, 1 ddddd: #00000 to #65535

Hardware-based comparator between preset & current 2 (0) values of high speed counter. 3-204 This comparator is turned ON when these values are equal.

16-BIT COUNTER

CTH1 nnnn

CTH

Clock source Rs

0005 2200 2201 2202

3.85

16-bit (0 to 65535) up4 (7) counter for clock pulses with input response frequency of 30 kHz.

3-204

16-BIT COUNTER COMPARATOR

#ddddd CTCn

CTC

n: Comparator No. ddddd: # preset value

n: 2, 3 ddddd: #00000 to #65535

Hardware-based comparator between preset & current 2 (0) values of high speed counter. 3-204 This comparator is turned ON when these values are equal.

SUBROUTINE CALL SUBROUTINE ENTRY SUBROUTINE RETURN REPEAT START REPEAT END

nn CALL SBN nn

CALL Subroutine [FNC 03] No. SBN [FNC 38] RET [FNC 33] FOR [FNC 16] NEXT [FNC 29] # constant, DM No. Subroutine No.

00 to 99

3.16

2 (17) Executes subroutine specified by operand. Represents beginning of 2 (0) subroutine specified by operand. Represents end of 1 (6) subroutine. Executes program between 3 (19) FOR & NEXT for number of times specified by operand.

3-122

00 to 99

3-122

RET

1.15 to 1.45 #00000 to #65535 DM0000 to DM9999 TM00 to TM29 1.55

3-122

FOR nnnn

3-125

1 2

NEXT

nnnn:0000 to 0009 10000 to 10415 : 17000 to 17415 mmmm:0500 to 0503 10500 to 10915 : 17500 to 17915

1 (0) Represents end of repetition. 3-125

16-KEY INPUT

nnnn mmmm

HKEY

HKEY [FNC 17]

I/O R

16.50

Reads 16-key data by time5 (9) sharing and outputs these data into special utility Rs 2900 to 2915.

3-131

Chapter 2 Instructions

3-47

2.2 Instruction List

KV-300 KV-300 Series, Series, KV-10/80

2.2.3 Arithmetic Instructions


KV-10/16/24/40/80
Instruction Symbol KV-10/16/24/40/80 Mnemonic Operand Operand value Operand value Exec.time Function Bytes KV-10/16 (s) KV-24/40/80 #0000 to #00000 to #65535 #65535 #/$ $0000 to $0000 to 3.6 to 6.0 5 (6) Writes constant into constant, DW data memory. $FFFF $FFFF DM No. DM0000 to DM0000 to DM1999 DM0999 TMIN [FNC 50] @TMIN @[FNC 50] 13.0 to 15.0 1 (4) Converts trimmer rotation angle into 0 to 249 and inputs it 25.0 to 29.0 1 (11) into internal register. Page

DATA MEMORY WRITE

nnnn

< DW >
DMmmmm

3-136

TRIMMER SETTING

< TMIN >


n

Trimmer No.

0 to 1

3-138

TMIN >

nnnn

< LDA >

LOAD A
nnnn

LDA >

0000 to 2915 T000 to T063 C000 to C063 R No., CTH0 to CTH1 C/T No., DM0000 to DM/TM DM0999 No., TM00 to TM31 #/$ #00000 to constant, #65535 @LDA $0000 to #TMxx @[FNC 23] $FFFF #TM00 to #TM29 LDA [FNC 23] R No., C/T No., DM/TM No., #/$ @STA constant, @[FNC 42] #TMxx STA [FNC 42] CMP [FNC 04] 0500 to 1915 2100 to 2915 T000 to T063 C000 to C063 DM0000 to DM0999 TM00 to TM29 #TM00 to #TM29

2
STORE A

nnnn

< STA >

nnnn

STA >

0000 to 6915 T000 to T119 C000 to C119 10.0 to 46.0 3 (5) CTH0 to CTH1 DM0000 to DM1999 TM00 to TM31 #00000 to #65535 22.0 to 60.0 3 (12) $0000 to $FFFF #TM00 to #TM29 0500 to 1915 2100 to 6915 T000 to T119 9.0 to 99.0 3 (5) C000 to C119 DM0000 to DM1999 TM00 to TM29 21.0 to 113.0 3 (12) #TM00 to #TM29

Inputs value specified by operand into internal register or inputs current value when T/C is specified as operand.

3-140

Transfers content of internal register to location specified by operand, or changes preset value when T/ C is specified as operand.

3-140

nnnn

< CMP >

COMPARE
nnnn

CMP >
nnnn

< ADD >

ADD
nnnn

ADD >
nnnn

DM0000 to DM0000 to DM1999 DM0999 TM00 to TM31 TM00 to TM31 DM/TM @CMP #00000 to #00000 to No., @[FNC 04] #65535 #65535 #/$ $0000 to $0000 to constant, ADD $FFFF $FFFF #TMxx [FNC 00] #TM00 to #TM00 to #TM29 #TM29 @ADD @[FNC 00] SUB [FNC 46] @SUB @[FNC 46]

14.0 to 68.0 3 (5) Compares content of internal register and value specified by 26.0 to 82.0 3 (12) operand. Adds content of 13.0 to 65.0 3 (5) internal register and value specified by operand and inputs 25.0 to 79.0 3 (12) result back to same register. Subtracts value 15.0 to 68.0 3 (5) specified by operand from content of register and inputs result back to same 3 (12) 27.0 to 82.0 register.

3-146

3-150

< SUB >

SUBTRACT
nnnn

3-150

SUB >
nnnn

< MUL >

MULTIPLY
nnnn

MUL >
nnnn

< DIV >

DIVIDE
nnnn

DIV >

DM0000 to DM0000 to DM0999 DM1999 TM00 to TM31 TM00 to TM31 Multiplies content of MUL #00000 to #00000 to 17.0 to 71.0 3 (5) internal register by [FNC 28] DM/TM #65535 #65535 value specified by No., $0000 to $0000 to operand and inputs #/$ No., @MUL $FFFF $FFFF 29.0 to 85.0 3 (12) result back to same @[FNC 28] #TMxx #TM00 to #TM00 to register. #TM29 #TM29 Divides content of DIV 22.0 to 79.0 3 (5) internal register by [FNC 11] value specified by operand and inputs @DIV 34.0 to 93.0 3 (12) result back to same @[FNC 11] register.

3-150

3-150

3-48

Chapter 2 Instructions

2.2 Instruction List

KV-300 Series, KV-10/80

Instruction

Symbol
nnnn

Mnemonic Operand ANDA [FNC 01]

KV-10/16/24/40/80 Operand value Operand value Exec.time Bytes KV-10/16 (s) KV-24/40/80 11.0 to 64.0

Function

Page

<ANDA>

AND A
nnnn

ANDA>
nnnn

< ORA >

OR A
nnnn

ORA >

0000 to 2915 0000 to 6915 DM0000 to DM0000 to DM0999 DM1999 @ANDA R No., TM00 to TM31 TM00 to TM31 @[FNC 01] DM/TM No., #00000 to #00000 to #65535 #/$ No., #65535 ORA $0000 to #TMxx $0000 to [FNC 31] $FFFF $FFFF #TM00 to #TM00 to @ORA #TM29 #TM29 @[FNC 31]

23.0 to 78.0

11.0 to 63.0

23.0 to 77.0

ANDs each of 16 bits 3 (5) of internal register and that of value specified 3-159 by operand, and inputs 3 (12) result back to same register. ORs each of 16 bits of 3 (5) internal register and that of value specified 3-161 by operand, and 3 (12) inputs result back to same register.

<EORA>

EXCLUSIVE OR A

0000 to 2915 0000 to 6915 DM0000 to DM0000 to 10.0 to 63.0 3 (5) EXCLUSIVE-ORs DM0999 DM1999 each of 16 bits of R No., TM00 to TM31 TM00 to TM31 internal register and DM/TM No., #00000 to 3-164 #00000 to that of value #/$ No., #65535 #65535 specified by operand, #TMxx $0000 to $0000 to and inputs result @EORA nnnn $FFFF $FFFF 22.0 to 77.0 3 (12) back to same EORA> @[FNC 15] #TM00 to #TM00 to register. #TM29 #TM29
nnnn

EORA [FNC 15]

#dd

< SRA >

SHIFT RIGHT A

SRA [FNC 41] @SRA @[FNC 41] SLA [FNC 40] @SLA @[FNC 40] # constant #01 to #16 RRA [FNC 37] @RRA @[FNC 37] RLA [FNC 35] @RLA @[FNC 35] COM [FNC 05] @COM @[FNC 05] INC [FNC 19] @INC @[FNC 19] DEC [FNC 07] @DEC @[FNC 07] MPX [FNC 27] # constant #0 to #3 @MPX @[FNC 27] DM/TM No.

#dd

SRA >
#dd

Moves content of internal register serially right by value specified by 23.0 to 42.0 2 (11) operand. 11.0 to 28.0 2 (4) 10.0 to 28.0 2 (4)

3-166

1 2

SHIFT LEFT A

< SLA >


#dd

SLA >
#dd

Moves content of internal register 3-166 serially left by value 22.0 to 42.0 2 (11) specified by operand. 12.0 to 30.0 2 (4)

ROTATE RIGHT A

< RRA >


#dd

RRA >
#dd

< RLA >

ROTATE LEFT A

#dd

RLA >

Moves content of internal register serially right, allowing each bit 3-169 that leaves right end to 24.0 to 44.0 2 (11) enter carry bit and then leftmost bit. Moves content of 12.0 to 29.0 2 (4) internal register serially left, allowing each bit 3-169 that leaves left end to 24.0 to 43.0 2 (11) enter carry bit and then rightmost bit. 5.0 to 6.0 1 (3) Inverts content of each bit in internal register.

< COM >

COMPLEMENT
COM >
nnnn

3-171

17.0 to 20.0 1 (10)

INCREMENT MEMORY

< INC >


nnnn

12.0 to 15.0 3 (5)

INC >
nnnn

Adds 1 to content of data memory 3-172 24.0 to 29.0 3 (12) specified by operand.

DECREMENT MEMORY

< DEC >


nnnn

DM0000 to DM0000 to DM0999 DM1999TM00 TM00 to TM29 to TM29 14.0 to 17.0 3 (5)

DEC >
#n

Subtracts 1 from content of data memory specified by 26.0 to 31.0 3 (12) operand.

3-172

MULTIPLEXER

< MPX >


#n

MPX >

Converts 4-bit data (specified by operand) of internal 36.0 to 39.0 1 (11) register into 16bit data. 24.0 to 25.0 1 (4)

3-176

Chapter 2 Instructions

3-49

2.2 Instruction List

KV-300 KV-300 Series, Series, KV-10/80


KV-10/16/24/40/80 Mnemonic Operand Operand value Operand value Exec.time Bytes KV-10/16 (s) KV-24/40/80 DMX [FNC 12] @DMX @[FNC 12] TBCD [FNC 47] @TBCD @[FNC 47] TBIN [FNC 48] @TBIN @[FNC 48] ASC [FNC 02] @ASC @[FNC 02] RASC [FNC 32] 28.0 to 30.0 1 (3)

Instruction

Symbol

Function

Page

< DMX >

DEMULTIPLEXER
DMX >

Converts position of highest order bit with 1 in internal register 40.0 to 44.0 1 (10) into 4-bit data.

3-176

TRANSFER BCD

<TBCD>

TBCD>

Converts content of internal register (16bit binary) into 4-digit 31.0 to 35.0 1 (10) BCD data. 19.0 to 21.0 1 (3) 18.0 to 20.0 1 (3)

3-180

< TBIN >

TRANSFER BIN
TBIN>

Converts content of internal register (4digit BCD) into 16-bit 30.0 to 34.0 1 (10) binary data. 8.0 1 (3)

3-180

< ASC >

ASCII CONVERT
ASC >

Converts content of lower order byte of internal register into 20.0 to 22.0 1 (10) 2-digit ASCII code. 12.0 to 14.0 1 (3)

3-183

REVERSE ASCII CONVERT

<RASC>

2
SQUARE ROOT

@RASC RASC> @[FNC 32]


<ROOT>

Converts 2-digit ASCII code into one byte data. 1 (10) 24.0 to 28.0 102.0 to 103.0 114.0 to 117.0 Takes square root of 32bit data (TM00: higher order byte, internal register: lower order 1 (10) byte) and inputs result back to same register. 1 (3)

3-183

ROOT [FNC 36] @ROOT @[FNC 36]

3-185

ROOT>

KV-300
KV-300 Instruction DATA MEMORY WRITE Symbol Mnemonic Operand #/$ constant, DM No. Operand value nnnn: #0000 to #65535 $0000 to $FFFF DMmmmm: DM0000 to DM9999 Exec.time Bytes (s) 0.60 to 1.40 Function Page

nnnn

< DW >
DMmmmm

DW

5 (11) Writes constant into data memory.

3-136

TRIMMER SETTING

< TMIN >


n

TMIN [FNC 50] @TMIN @[FNC 50] Trimmer No. 0, 1

5.10 to 5.60 2.00 to 5.70

TMIN >

1 (11) Converts trimmer rotation angle into 0 to 249 and inputs it into 1 (25) internal register.

3-138

nnnn

< LDA >

LDA [FNC 23] R No., C/T No., DM/TM No., #/$ @LDA constant, @[FNC 23] #TMxx

LOAD A
nnnn

LDA >

0000 to 0009 0500 to 17915 T000 to T249 C000 to C249 CTH0 to CTH1 DM0000 to DM9999 TM00 to TM31 #00000 to #65535 $0000 to $FFFF #TM00 to #TM29 0500 to 1915 2100 to 17915 T000 to T249 C000 to C249 CTC0 to CTC3 DM0000 to DM9999 TM00 to TM29 #TM00 to #TM29

0.30 to 28.00

3 (12) Inputs value specified by operand into internal register or inputs 3-140 current value when T/C is specified as operand.

2.30 to 30.00

3 (26)

nnnn

< STA >

STORE A
nnnn

STA >

R No., C/T No., DM/TM No., #/$ @STA constant, @[FNC 42] #TMxx

STA [FNC 42]

0.20 to 30.00

2.20 to 32.00

3 (12) Transfers content of internal register to location specified by 3-140 operand, or changes preset value when T/C 3 (26) is specified as operand.

3-50

Chapter 2 Instructions

2.2 Instruction List


KV-300 Instruction Symbol
nnnn

KV-300 Series, KV-10/80

Mnemonic Operand CMP [FNC 04] @CMP @[FNC 04] ADD [FNC 00] @ADD @[FNC 00] SUB [FNC 46] @SUB @[FNC 46] MUL [FNC 28] @MUL @[FNC 28] DIV [FNC 11] @DIV @[FNC 11] ANDA [FNC 01] @ANDA @[FNC 01] ORA [FNC 31] @ORA @[FNC 31] EORA [FNC 15] R No., DM/TM No., #/$ No., #TMxx DM/TM No., #/$ No., #TMxx DM/TM No., #/$ constant, #TMxx

Operand value

Exec.time Bytes (s) 9.20 to 36.00

Function

Page

< CMP >

COMPARE
nnnn

CMP >
nnnn

< ADD >

ADD
nnnn

DM0000 to DM9999 TM00 to TM31 #00000 to #65535 $0000 to $FFFF #TM00 to #TM29

11.20 to 38.00 7.70 to 35.00 9.70 to 37.00 8.40 to 35.00 10.40 to 37.00

3 (12) Compares content of internal register and value specified by 3 (26) operand.

3-146

ADD >
nnnn

Adds content of internal register and value 3-150 specified by operand 3 (26) and inputs result back to same register. 3 (12) Subtracts value 3 (12) specified by operand from content of register and inputs result back 3 (26) to same register. Multiplies content of 3 (12) internal register by value specified by operand and inputs 3 (26) result back to same register. Divides content of 3 (12) internal register by value specified by operand and inputs 3 (26) result back to same register. ANDs each of 16 bits of 3 (12) internal register and that of value specified by operand, and inputs 3 (26) result back to same register. ORs each of 16 bits of 3 (12) internal register and that of value specified by operand, and inputs 3 (26) result back to same register. EXCLUSIVE-ORs each 3 (12) of 16 bits of internal register and that of value specified by operand, 3 (26) and inputs result back to same register.

< SUB >

SUBTRACT
nnnn

3-150

SUB >
nnnn

< MUL >

MULTIPLY
nnnn

MUL >
nnnn

DM0000 to DM9999 TM00 to TM31 #00000 to #65535 $0000 to $FFFF #TM00 to #TM29

9.80 to 37.00 11.80 to 39.00 13.70 to 41.00 15.70 to 42.00 6.90 to 33.00

3-150

< DIV >

DIVIDE
nnnn

3-150

DIV >
nnnn

1 2
3-159

<ANDA>

AND A
nnnn

ANDA>
nnnn

< ORA >

OR A
nnnn

0000 to 0009 0500 to 17915 DM0000 to DM9999 TM00 to TM31 #00000 to #65535 $0000 to $FFFF #TM00 to #TM29

8.90 to 35.00 6.90 to 33.00 8.90 to 35.00

3-161

ORA >
nnnn

EXCLUSIVE OR A

<EORA>

R No., DM/TM No., #/$ No., nnnn @EORA EORA> @[FNC 15] #TMxx

0000 to 0009 0500 to 17915 DM0000 to DM9999TM00 to TM31 #00000 to #65535 $0000 to $FFFF #TM00 to #TM29

6.90 to 33.00 8.9 to 35.00

3-164

Chapter 2 Instructions

3-51

2.2 Instruction List

KV-300 KV-300 Series, Series, KV-10/80


KV-300

Instruction Symbol
#dd

Mnemonic Operand SRA [FNC 41] @SRA @[FNC 41] SLA [FNC 40] @SLA @[FNC 40] # constant

Operand value

Exec.time Bytes (s) 10.80

Function

Page

SHIFT RIGHT A

< SRA >


#dd

SRA >
#dd

12.80 10.80

2 (22) Moves content of internal register serially right by value specified 2 (25) by operand.

3-166

< SLA >

SHIFT LEFT A

#dd

SLA >
#dd

12.80 #01 to #16 12.00

2 (11) Moves content of internal register serially left by value specified by 3-166 2 (25) operand. Moves content of 2 (11) internal register serially right, allowing each bit that leaves right end to 2 (25) enter carry bit and then leftmost bit. Moves content of 2 (11) internal register serially left, allowing each bit that leaves left end to 2 (25) enter carry bit and then rightmost bit. 1 (9) Inverts content of each bit in internal register. 3-171 1 (23)

< RRA >

ROTATE RIGHT A

RRA [FNC 37] @RRA @[FNC 37] RLA [FNC 35] @RLA @[FNC 35] COM [FNC 05] @COM @[FNC 05] INC [FNC 19] @INC @[FNC 19] DEC [FNC 07] @DEC @[FNC 07] MPX [FNC 27] # constant #0 to #3 @MPX @[FNC 27] DMX [FNC 12] @DMX @[FNC 12] DM/TM No. DM0000 to DM9999 TM00 to TM29

3-169

#dd

RRA >
#dd

14.00

< RLA >

12.00

ROTATE LEFT A

3-169

#dd

RLA >

14.00

< COM >

6.10

COMPLEMENT

2
INCREMENT MEMORY

COM >
nnnn

8.10

< INC >


nnnn

7.70

3 (12)

INC >
nnnn

9.70 7.70

3 (26) 3 (12)

Adds 1 to content of data memory specified by operand.

3-172

DECREMENT MEMORY

< DEC >


nnnn

DEC >
#n

9.70

Subtracts 1 from content of data memory 3-172 3 (26) specified by operand.

< MPX >

7.30

MULTIPLEXER

#n

MPX >

9.30

1 (11) Converts 4-bit data (specified by operand) of internal register into 1 (25) 16- bit data.

3-176

DEMULTIPLEXER

< DMX >

6.70

DMX >

8.70

Converts position of highest order bit with 1 in internal register into 1 (23) 4-bit data.

1 (9)

3-176

3-52

Chapter 2 Instructions

2.2 Instruction List


KV-300 Instruction Symbol Mnemonic TBCD [FNC 47] Operand Operand value

KV-300 Series, KV-10/80

Exec.time Bytes (s) 13.20 1 (9)

Function

Page

<TBCD>

TRANSFER BCD

@TBCD TBCD> @[FNC 47] TBIN [FNC 48] @TBIN @[FNC 48] ASC [FNC 02] @ASC @[FNC 02] RASC [FNC 32]

15.20

Converts content of internal register (16-bit binary) into 4-digit BCD 1 (23) data.

3-180

< TBIN >

14.00

TRANSFER BIN
TBIN>

16.00

Converts content of internal register (4-digit BCD) into 16-bit binary 1 (23) data. 1 (9)

3-180

< ASC >

8.50

ASCII CONVERT
ASC >

10.50

Converts content of lower order byte of internal register into 21 (23) digit ASCII code. 1 (9)

1 (9)

3-183

REVERSE ASCII CONVERT

<RASC>

6.80

@RASC RASC> @[FNC 32]


<ROOT>

Converts 2-digit ASCII code into one byte data. 3-183 8.80 77.70 1 (23) Takes square root of 32bit data (TM00: higher order byte, internal 3-185 register: lower order 1 (23) byte) and inputs result back to same register. 1 (9)

ROOT [FNC 36] @ROOT @[FNC 36]

SQUARE ROOT
ROOT>

79.70

1 2

Chapter 2 Instructions

3-53

2.2 Instruction List

KV-300 KV-300 Series, Series, KV-10/80

2.2.4 Interrupt Instructions


KV-10/16/24/40/80
Instruction INTERRUPT DISABLED INTERRUPT ENABLED Symbol Mnemonic Operand DI [FNC 08] EI [FNC 13] KV-10/16/24/40/80 Operand value Operand value Exec.time Bytes KV-10/16 (s) KV-24/40/80 3.0 to 4.6 1 (4) Function Disables execution of interrupt. Enables execution of interrupt. Page

< DI >

3-193

< EI >

3.0 to 4.6

1 (4)

3-193

INT nnn

R No. INT [FNC 20]

000 to 003

35.0 to 48.0

INTERRUPT
INT CTCn

1 (8) Comparator No. CTC0 to CTC3 35.0 to 48.8

Executes instructions between INT and RETI at rising edge of any of input 3-192 000 to 003 or at falling edge of 003. Used with comparators CTC0 to CTC3 3-192 and executes instructions between INT and RETI.

RETURN INTERRUPT

RETI

RETI [FNC 34]

20.0 to 23.0

1 (3)

Represents end of interrupt.

3-192

KV-300
KV-300 Instruction INTERRUPT DISABLED INTERRUPT ENABLED Symbol Mnemonic Operand DI [FNC 08] EI [FNC 13] Operand value Exec.time Bytes (s) 3.20 1 (9) Function Disables execution of interrupt. Enables execution of interrupt. Page

< DI >

3-193

< EI >

5.80

1 (0)

3-193

INT nnn

R No. INT [FNC 20]

000 to 003

40.00 to 80.00

1 (0)

INTERRUPT
INT CTCn

Executes instructions between INT and RETI at rising edge 3-192 of any of input 000 to 003 or at falling edge of 003. Used with comparators CTC0 to CTC3 3-192 and executes instructions between INT and RETI. Represents end of interrupt. 3-192

Comparator No.

CTC0 to CTC3

40.00 to 80.00

1 (0)

RETURN INTERRUPT

RETI

RETI [FNC 34]

60 to 100

1 (0)

3-54

Chapter 2 Instructions

2.3 Convention Details

2.3 Convention Details


In this chapter, each instruction is described as follows:

Instruction Describes the name and brief function of the instruction.


SET / RES

Instruction key Represents the key or function No. for entry.

Ladder symbol Represents the form of the instruction on a ladder diagram.

2.4 Instruction Details


Turns ON specified relay when input is ON and enables this relay to remain ON. Turns OFF specified relay, timer, or counter when input is ON.

Mnemonic Represents the instruction in ladder language. Example Timing diagram Description Perform programming using the given example to gain experience.

SET: Set RES: Reset


Example

SET

1 0

: :

nnnn SET nnnn RES

RES

0000 0001

0500 SET 0500 RES

Coding
Line No. 0000 0001 0002 0003 Instruction LD SET LD OUB Operand 0000 0500 0001 0500

Description
Output relay 0500 remains ON after input relay 0000 turns OFF. Output relay 0500 turns OFF when input relay 0001 turns ON. SET instruction sets a latch whereas RES instruction resets it. RES instruction not only turns OFF relay coils but serves as a reset signal when a timer or counter is used as an operand.
0001 0002 #00100 C000 00000 C000 RES 0001 0002 #00100 C000 0000

Coding Shows the coding for the given example.

1 2

Note Describes the notes for the instruction. Tips Describes hands-on techniques for efficient programming. Operand Shows operands (element Nos.) that can be used for the instruction. Key operation Describes the basic key operations on the handheld programmer. Set the mode switch to PROGRAM.

Note: The SET and RES instructions can be entered in any order. Note, however, that priority is given to the instruction that is entered last. In the above example, when both 0000 and 0001 are ON, RES has priority over SET, causing 0500 to remain OFF.

Tips
Differences between SET/RES and KEEP Basically , SET/RES and KEEP ( p. 3-57 and p. 3-71) serve the same purpose. SET and RES can be used separately. Therefore, RES can be placed before SET. Another instruction may be placed between SET and RES. KEEP needs only three lines of program, therefore saving memory space when used a number of times.
0000 0001 0500 RES 0500 SET

LD RES LD SET

0000 0500 0001 0500

0000 0001

KEEP SET 0500 RES

LD 0000 LD 0001 KEEP 0500

Operands
NEW KV 0500 to 1915 2009 2100 to 17915 T000 to T249 C000 to C249 KV-300 0500 to 1915 2009 2100 to 17915 T000 to T249 C000 to C249 KV-10/16 0500 to 1915 2009 2100 to 2915 T000 to T063 C000 to C063 KV-24/40/80 0500 to 1915 2009 2100 to 6915 T000 to T119 C000 to C119

CTH0 to CTH1 (RES only) CTC0 to CTC3 (RES only)

Key operation
SET

Operand

ENT
R-SRCH

RES

Operand

ENT
R-SRCH

3-66

Chapter 2 Instructions

* The above page is created for explanation purposes only. This page may be different from the actual page.

Chapter 2 Instructions

3-55

2.4 Instruction Details

2.4 Instruction Details


2.4.1 Basic Instructions
This section describes the basic instructions used for programming. You can create complete programs with only these basic instructions.
Instruction Load Load Bar And And Bar OR: Or ORB: Or Bar ANL: And Load Or Load OUT: Out OUB: Out Bar SET: Set RES: Reset TMR: 0.1-s Timer TMH: 0.01-s Timer Mnemonic LD LDB AND ANB OR ORB ANL ORL OUT OUB SET RES TMR TMH (FUN49) TMS (FUN51) C UDC (FUN52) DIFU (FUN10) DIFD (FUN09) KEEP (FUN22) SFT (FUN39) HSP (FUN18) MC (FUN24) MCR (FUN25) MEMSW (FUN26) NOP END END Reference page 3-57 3-57 3-58 3-58 3-60 3-60 3-61 3-63 3-65 3-65 3-66 3-66 3-67 3-68 3-69 3-72 3-76 3-78 3-78 3-80 3-82 3-86 3-89 3-89 3-92 3-94 3-94 3-94

TMS: 1-ms Timer C: Counter UDC: Up-Down Counter DIFU: Differentiate Up DIFD: Differentiate Down KEEP: Keep SFT: Shift HSP: High Speed MC: Master Control MCR: Master Control Reset MEMSW: Memory Switch NOP: No Operation END: End ENDH: End Hi

3-56

Chapter 2 Instructions

LD / LDB 2.4 Instruction Details

LD: Load LDB: Load Bar


Example

LD

7 4

: :

nnnn

Connects N.O. contact to bus. Connects N.C. contact to bus.

LDB

nnnn

0000 0001

0500 0501

Coding
Line No. 0000 0001 0002 0003 Instruction LD OUT LDB OUT Operand 0000 0500 0001 0501

When input relay 0000 turns ON, output relay 0500 turns ON. When input relay 0001 turns OFF, output relay 0501 turns ON.

Description
LD and LDB instructions are used to connect a contact to the bus. LD and LDB instructions are also used to separate program blocks when ANL or ORL instruction is used.

1 2

Operands
Visual KV 0000 to 17915 T000 to T249 C000 to C249 CTC0 to CTC3 CTC0 to CTC3 KV-300 0000 to 0009 0500 to 17915 T000 to T249 C000 to C249 KV-10/16 0000 to 2915 T000 to T063 C000 to C063 CTC0 to CTC3 KV-24/40/80 0000 to 6915 T000 to T119 C000 to C119 CTC0 to CTC3

Key operation
Example: LD C014
LD

LDB

Operand

ENT
R-SRCH

L D CTR SET LDB 7 (C ) 1 4

ENT
R-SRCH

Chapter 2 Instructions

3-57

AND / ANB 2.4 Instruction Details Connects N.O. contact in series with previous contact. Connects N.C. contact in series with previous contact.

AND: And ANB: And Bar


Example

AND

: :

nnnn

ANB

nnnn

0000 0002

0001 0003

0500 0501 0502 0004 0503

Coding
Line No. 0000 0001 0002 0003 Instruction LD AND OUT LD ANB OUT OUT AND OUT Operand 0000 0001 0500 0002 0003 0501 0502 0004 0503

0004 0005 0006 0007 0008

To turn ON 0503, 0002 must be ON, 0003 OFF, and 0004 ON at the same time. The AND and ANB instructions are used when two or more conditions (in this case, 0002: ON, 0003: OFF, 0004: ON) must be satisfied at the same time.

Description
As many contacts as desired can be connected in series provided these contacts are used in the same program. As OUT 0503 shown in the above example, when an AND or ANB instruction is used immediately after an OUT instruction to connect the other relay via a contact (0004 in the example), the AND or ANB can be used as many times as desired, provided the program syntax is correct. The following two circuits operate in the same manner, but the coding for these circuits are different.
0000 0001 0501 0500
0000 0001 0501 0500

Coding
Line No. 0000 0001 0002 0003 Instruction LD OUT AND OUT Operand 0000 0500 0001 0501

Coding
Line No. 0000 0001 0002 0003 0004 0005

Instruction LD MPS AND OUT MPP OUT

Operand 0000 0001 0501 0500

"MPS instruction" (p. 3-103) "MPP instruction" (p. 3-103)

3-58

Chapter 2 Instructions

AND / ANB 2.4 Instruction Details

Operand
Visual KV 0000 to 17915 T000 to T249 C000 to C249 CTC0 to CTC3 KV-300 0000 to 0009 0500 to 17915 T000 to T249 C000 to C249 KV-10/16 0000 to 2915 T000 to T063 C000 to C063 CTC0 to CTC3 KV-24/40/80 0000 to 6915 T000 to T119 C000 to C119 CTC0 to CTC3

Key operation
Example: AND T012
AND

Operand

ENT
R-SRCH

ANB

AND TMR SET ANL 8 (T) 1 2

ENT
R-SRCH

1 2

Chapter 2 Instructions

3-59

OR / ORB 2.4 Instruction Details Connects N.O. contact in parallel with previous contact. Connects N.C. contact in parallel with previous contact.

OR: Or ORB: Or Bar


Example

OR

: :

nnnn

ORB

nnnn

0000 0001 0002 0004

0003

0500

Coding
Line No. 0000 0001 0002 0003 0004 Instruction LD OR ORB AND OR OUT Operand 0000 0000 0002 0003 0004 0500 0000 must be ON or 0003 must be ON, and To turn ON 0500, or, 0004 must be ON. 0001 ON or 0002 OFF.

0005

The OR and ORB instructions are used when at least one of the conditions (here, two sets of conditions: <0003: ON, 0004: ON>, and <0000: ON, 0001: ON, 0002: OFF> are given) must be satisfied.

Description
The OR and ORB instructions are used to connect in parallel the contacts for these instructions with contacts on the previous line. An LD or LDB instruction is used together with the OR and ORB instructions. As many contacts as desired can be connected in parallel provided they are used in the same program.
0000 0500 0501

Note: Output circuits (except for and ) cannot be included in the parallel connection.

Incorrect

0001

Operands
Visual KV 0000 to 6915 T000 to T119 C000 to C119 CTC0 to CTC3 KV-300 0000 to 0009 0500 to 17915 T000 to T249 C000 to C249 CTC0 to CTC3 KV-10/16 0000 to 2915 T000 to T063 C000 to C063 CTC0 to CTC3 KV-24/40/80 0000 to 6915 T000 to T119 C000 to C119 CTC0 to CTC3

Key operation
Example: OR T018
OR

ORB

Operand

ENT
R-SRCH

O R TMR SET AND 9 (T ) 1 8

ENT
R-SRCH

3-60

Chapter 2 Instructions

ANL 2.4 Instruction Details

ANL: And Load

ANL

Connects in series blocks made of one or more contacts.

Example
0000 0002 0001 0003 0500

ANL

Coding
Line No. 0000 0001 0002 0003 0004 0005 Instruction LD OR LD OR ANL OUT 0500 Operand 0000 0002 0001 0003

Description
0000

1 2
The above example shows a serial connection between Block A
0001 0002

and Block B series.

0003

. The ANL instruction is used to connect two or more blocks in

Operands

Key operation
ANL

ENT
R-SRCH

Chapter 2 Instructions

3-61

ANL 2.4 Instruction Details

Applications of ANL Instruction


0000 0001 0002 0003 0004 0005 0500

Coding (1)
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 Instruction LD OR LD OR ANL LD OR ANL OUT 0500 0004 0005 Operand 0000 0001 0002 0003

Coding (2)
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 Instruction LD OR LD OR LD OR ANL ANL OUT 0500 Operand 0000 0001 0002 0003 0004 0005

The ANL instruction can be used as many times as desired. Note, however, that in example (2) above, ANL is entered one less time than the number of blocks to be connected. Also, ANL can be used only 8 times or less in example (2), whereas in example (1) it can be used as many times as desired.

Note: "LOGIC ERROR" is displayed on the programmer when ANL is used 9 or more times in example (2).

3-62

Chapter 2 Instructions

ORL 2.4 Instruction Details

ORL: Or Load
Example

ORL

Connects in parallel blocks made of one or more contacts.

0000 0002

0001 0003

0050

ORL

Coding
Line No. 0000 0001 0002 0003 0004 0005 Instruction LD AND LD AMD ORL OUT 0500 Operand 0000 0001 0002 0003

Description
The above example shows a parallel connection of Block A and Block B parallel.
0002 0003 0000 0001

1 2

. The ORL instruction is used to connect two or more blocks in

Operands

Key operation
ORL

ENT
R-SRCH

Chapter 2 Instructions

3-63

ORL 2.4 Instruction Details

Applications of ORL Instruction


0000 0002 0004 0001 0003 0005
Block Block

0500

Block

Coding (1)
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 Instruction LD AND LD AND ORL LD AND ORL OUT 0500 0004 0005 Operand 0000 0001 0002 0003

Coding (2)
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 Instruction LD AND LD AND LD AND ORL ORL OUT 0500 Operand 0000 0001 0002 0003 0004 0005

The ORL instruction can be used as many times as desired. Note, however, that in example (2) above, ORL is entered one less time than the number of blocks to be connected. Also, ORL can be used only 8 times or less in example (2), whereas in example (1) it can be used as many times as desired.

Note: "LOGIC ERROR" is displayed on the programmer when ORL is used 9 times or more in example (2).

3-64

Chapter 2 Instructions

OUT / OUB 2.4 Instruction Details

OUT: Out OUB: Out Bar


Example

OUT

: :

nnnn

Outputs ON/OFF status of input to relay coil. Outputs inverted ON/OFF status of input to relay coil.

OUB

nnnn

0000

0500 0501

Coding
Line No. 0000 0001 0002 Instruction LD OUT OUB Operand 0000 0500 0501

Description
When input relay 0000 turn ON, output relay 0500 turns ON and output relay 0501 turns OFF. The OUT and OUB instructions are used to drive relay coils for output relays, internal utility relays, and latch relays. These instructions are not used for input relays, timers, counters, or data memories.

1 2

Note: Double coil When one output relay receives input from two or more OUT or OUB instructions, priority is given to the instruction that is entered last. When 0001 is OFF, 0500 does not turn ON even if 0000 turns ON.

Operands
Visual KV 0000 to 1915 2009 2300 to 17915 KV-300 0500 to 1915 2009 2300 to 17915 KV-10/16 0500 to 1915 2009 2300 to 2915 KV-24/40/80 0500 to 1915 2009 2300 to 6915

Key operation
OUT

Operand

ENT
R-SRCH

OUB

Operand

ENT
R-SRCH

Chapter 2 Instructions

3-65

SET / RES

2.4 Instruction Details


Turns ON specified relay when input is ON and enables this relay to remain ON. Turns OFF specified relay, timer, or counter when input is ON.

SET: Set RES: Reset


Example

SET

1 0

: :

nnnn SET nnnn RES

RES

0000 0001

0500 SET 0500 RES

Coding
Line No. 0000 0001 0002 0003 Instruction LD SET LD OUB Operand 0000 0500 0001 0500

Description
Output relay 0500 remains ON after input relay 0000 turns OFF. Output relay 0500 turns OFF when input relay 0001 turns ON. SET instruction sets a latch whereas RES instruction resets it. RES instruction not only turns OFF relay coils but serves as a reset signal when a timer or counter is used as an operand.
0001 0002 #00100 C000 00000 C000 RES 0001 0002 #00100 C000 0000

Note: The SET and RES instructions can be entered in any order. Note, however, that priority is given to the instruction that is entered last. In the above example, when both 0000 and 0001 are ON, RES has priority over SET, causing 0500 to remain OFF.

Tips
Differences between SET/RES and KEEP Basically , SET/RES and KEEP ( See above and p. 3-80) serve the same purpose. SET and RES can be used separately. Therefore, RES can be placed before SET. Another instruction may be placed between SET and RES. KEEP needs only three lines of program, therefore saving memory space when used a number of times.
0000 0001 0500 RES 0500 SET

LD RES LD SET

0000 0500 0001 0500

0000 0001

KEEP SET 0500 RES

LD 0000 LD 0001 KEEP 0500

Operands
Visual KV 0500 to 1915 2009 2100 to 17915 T000 to T249 C000 to C249 KV-300 0500 to 1915 2009 2100 to 17915 T000 to T249 C000 to C249 KV-10/16 0500 to 1915 2009 2100 to 2915 T000 to T063 C000 to C063 KV-24/40/80 0500 to 1915 2009 2100 to 6915 T000 to T119 C000 to C119

CTH0 to CTH1 (RES only) CTC0 to CTC3 (RES only)

Key operation
SET

Operand

ENT
R-SRCH

RES

Operand

ENT
R-SRCH

3-66

Chapter 2 Instructions

TMR

2.4 Instruction Details

TMR: 0.1-s Timer


Example

TMR ( T)

#ddddd Txxx

Sets a 16-bit on-delay timer that counts down in 0.1-s decrements.

0000

#00010 T000 #00035 T001

Preset value: 1 s Preset value: 3.5 s

T000 T001

0500 0501

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 Instruction LD TMR TMR LD OUT LD OUT Operand 0000 000 #00010*1 001 #00035*2 T000 0500 T001 0501

*1 0.1 s x 10 = 1 s *2 0.1 s x 35 = 3.5 s

Timing diagram (TMR000 #00010 and 0500 in the above example)


Scan Input 0000 Current #00010 value of TMR000
ON OFF

1 2

#00000 ON

Output 0500

0500 and 0501 turn ON 1 second and 3.5 seconds respectively after 0000 turns ON. TMR000 is a subtraction timer. When the current value reaches "#00000", contact T000 turns ON, and then output relay 0500 turns ON. When input relay 0000 turns OFF, contact T000 and T001 turn OFF and the current values of TMR000 and TMR001 are reset.

Note 1: The TMR number cannot be the same as any other TMS, TMH, TMR, C, or UDC instructions in the same program. Note 2: The current value of TMR is not retained but is reset to the preset value if a power failure occurs or if power is turned OFF.

Tips
When the number specified by TMR is used as a contact (T000 in the above example), this contact can be used as many times as desired. It can also be used as both N.O. and N.C. contacts. Timer accuracy = 0.1 sec. + (1 scan time) (max.)

Operands
Visual KV No.: 000 to 249 Preset value: #00000 to #65535 KV-300 No.: 000 to 249 Preset value: #00000 to #65535 KV-10/16 No.: 000 to 063 Preset value: #00000 to #65535 KV-24/40/80 No.: 000 to 119 Preset value: #00000 to #65535

Key operation
TMR (T) Operand
(TMR No.)

Operand
(Preset value)

ENT
R-SRCH

Chapter 2 Instructions

3-67

TMH

2.4 Instruction Details

TMH: 0.01-s Timer


Example

FUN

LDB

OR

#ddddd T Txxx H

Sets a 16-bit on-delay timer that counts down in 0.01-s decrements.

0000 T000

#00010 T T000 H 0500

Coding
Line No. 0000 0001 0002 0003 Instruction LD TMH LD OUT Operand 0000 000 #00010*1 T000 0500
*1 0.01 s x 10 = 0.1 s

Description

0500 and 0501 turn ON 0.1-s after 0000 turns ON. TMH is a subtraction timer. When the current value reaches "#00000", the contact of the timer No. turns ON. When input relay 0000 turns OFF, contact T000 turns OFF and the current value of TMH000 is reset.

Note 1: The TMH number cannot be the same as any other TMS, TMH, TMR, C, or UDC instructions in the same program. Note 2: The current value of TMH is not retained but is reset to the preset value if power failure occurs or if power is turned OFF. When the number specified by TMH is used as a contact (T000 in the above example), this contact can be used as many times as desired. It can also be used as both N.O. and N.C. contacts. Timer accuracy = 0.01 sec. + (1 scan time) (max.)

Operand
Visual KV No.: 000 to 249 Preset value: #00000 to #65535 KV-300 No.: 000 to 249 Preset value: #00000 to #65535 KV-10/16 No.: 000 to 063 Preset value: #00000 to #65535 KV-24/40/80 No.: 000 to 119 Preset value: #00000 to #65535

Key operations
FUN
LDB

OR

ENT
R-SRCH

Operand
(TMH No.)

Operand
(Preset value)

ENT
R-SRCH

3-68

Chapter 2 Instructions

TMS

2.4 Instruction Details

TMS: 1-ms Timer

FUN 5

ANB SET

#ddddd T Txxx S

Sets a 16-bit on-delay timer that counts down in 0.01 ms decrements.

Example
0000 T000 #00100 T T000 S 0500
Preset value: 0.1 s

Coding
Line No. 0000 0001 0002 0003 Instruction LD TMS LD OUT Operand 0000 000 #00010*1 T000 0500
*1 0.001 s x 100 = 0.1 s

Description
0500 and 0501 turn ON 0.1-s after 0000 turns ON. TMS is a subtraction timer. When the current value reaches "#00000", the contact of the timer No. turns ON. When input relay 0000 turns OFF, contact T000 turns OFF and the current value of TMS000 is reset.

1 2

Note 1: The TMS number cannot be the same as any other TMS, TMH, TMR, C, or UDC instructions in the same program. Note 2: The current value of TMS is not retained but is reset to the preset value if power failure occurs or if power is turned OFF. When the number specified by TMS is used as a contact (T000 in the above example), this contact can be used as many times as desired. It can also be used as both N.O. and N.C. contacts. Timer accuracy = 0.001 sec. + (1 scan time) (max.)

Operand
Visual KV No.: 000 to 249 Preset value: #00000 to #65535 KV-300 No.: 000 to 249 Preset value: #00000 to #65535 KV-10/16 No.: 000 to 063 Preset value: #00000 to #65535 KV-24/40/80 No.: 000 to 119 Preset value: #00000 to #65535

Key operations
FUN
ANB

SET

ENT
R-SRCH

Operand
(TMS No.)

Operand
(Preset value)

ENT
R-SRCH

Chapter 2 Instructions

3-69

TMR

2.4 Instruction Details

Applications of TMR instruction


One-shot circuit When input relay 0000 turns ON, output relay 0500 turns ON and remains ON for a specified time.
0000 0500 T000 #00020 T000 0500
2 sec.

Timing diagram
0000 0500
ON OFF

ON 2 sec.

ON 2 sec.

Coding
Line No. 0000 0001 0002 0003 0004 Instruction LD OR TMR ANB OUT Operand 0000 0500 000 #00020 T000 0500

Off-delay circuit When input relay 0000 turns ON, output relay 0500 turns ON. 0500 turns OFF in a specified time after 0000 turns OFF.
0000 0500 T000 0000 0500 #00020 T000
2 sec.

Timing diagram
ON

0000 0500

OFF

ON

2 sec.

Coding
Line No. 0000 0001 0002 0003 0004 0005 Instruction LD OR ANB OUT ANB TMR Operand 0000 0500 T000 0500 0000 000 #00020

3-70

Chapter 2 Instructions

TMR

2.4 Instruction Details


On-delay circuit Output relay 0500 turns ON in a specified time after input relay 0000 turns ON. When input relay 0000 turns OFF, output relay 0500 also turns OFF.
0000 T000 #00020 T000 0500
2 sec.

Timing diagram
ON OFF

0000 0500

ON

2s

1s

Coding
Line No. 0000 0001 0002 0003 Instruction LD TMR LD OUT Operand 0000 000 #00020 T000 0500

1 2

Flicker circuit Output relay 0500 turns ON and OFF repeatedly while input relay 0000 is ON.
0000 T000 T001 #00020 T000 #00010 T001 0500
2 sec.

1 sec.

Timing diagram
ON

0000 0500

OFF

ON

ON

ON

2s 1s 2s 1s 2s 1s

Coding
Line No. 0000 0001 0002 0003 0004 0005 Instruction LD ANB TMR LD AMR OUT Operand 0000 T001 000 #00020 T000 001 #00010 0500

Chapter 2 Instructions

3-71

2.4 Instruction Details

C: Counter
Example

CTR (C)

#ddddd Cxxx nnnn

Sets a 16-bit up-counter.

Reset input

Preset value Counter No. Count input

0001 C000

#00010 C000 0000 0500

Coding
Line No. 0000 0001 0002 0003 Instruction LDB C LD OUT Operand 0001 000 #00010 0000 C000 0500

Timing diagram (C000#00010 and 0500 in the above example)

0000 (Count input) 0001 (Reset input) Current value of C000

ON OFF

#00010 C000 0500

10

ON

Description
The counter performs one counting at the rising edge of clock pulse. When the current value reaches the preset value, the coil of specified No. turns ON. When a reset input (b [N.C.] contact) turns ON, the current counter value is reset to "00000". Since C is software counter which is set on the program, the response speed depends on the scan time.

Note 1: When a reset input is provided using an a (N.O.) contact, the current counter value is reset at power-off. Note 2: The C number cannot be the same as any other TMS, TMH, TMR, C, or UDC instructions in the same program. Note 3: The current C value is stored more than two months (KV-10xx: More than 20 days) at 25C even when the KV is not in operation or is turned off.

Tips
By entering relay 2007 (which can turn the counter OFF for only the first scan time when the operation is started) using an 'a' (N.O.) contact in series as the input relay for resetting counter, you can reset the current C value whenever the operation is started.
0001 #00010 C000 0000

3-72

Chapter 2 Instructions

2.4 Instruction Details

Details of counter
Extended ladder The counter for the KV Series supports the extended ladder method.
KV counter
0001 2007 #00010 C005 0000

The extended ladder allows you to connect contacts or output coils after the counter in series, reducing the number of ladder program lines.

In the following example, the counter starts counting when counter input relay 0004 turns ON. When the current counter value reaches "300", output relay 0500 turns ON.
0002 #00300 C002 0004 C002 0500

Coding
Line No. 0000 0001 0002 0003 0004

Instruction LDB C CON AND OUT

Operand 0002 002 #00300 0004 C002 0500

1 2

"CON instruction" (p. 3-102)

For details of the extended ladder, refer to "1.5 Extended Ladder Diagrams" (p.3-29).

Operands
Visual KV No.: 000 to 249 Count input: 0000 to 17915 Preset value: #00001 to #65535 KV-300 No.: 000 to 249 Count input: 0000 to 0009, 0500 to 17915 Preset value: #00000 to #65535 KV-10/16 No.: 000 to 063 Count input: 0000 to 2915 Preset value: #00000 to #65535 KV-24/40/80 No.: 000 to 119 Count input: 0000 to 6915 Preset value: #00000 to #65535

Key operation
CTR (C ) Operand
(Counter No.)

Operand
(Preset value)

Operand
(Count input)

ENT
R-SRCH

Chapter 2 Instructions

3-73

2.4 Instruction Details

Applications of C (counter) instruction


Long-duration timer Sets a long-duration timer by combining a timer and a counter. Output 0500 turns ON in 1 hour.
Special utility relay (1-second clock)
0000 C002 #03600 C002 2006 0500

Coding
Line No. Instruction Operand 0000 LDB 0000 0001 C 002 #03600 2006 0002 LD C002 0003 OUT 0500 "1.3.7 Special Utility Relays" (p. 3-12)

Accumulator timer (Remains ON in case of power failure) Coding


0001 C001 0001 C001 #03600 C001 2006 1000 #00600 C002 1000

2
Large capacity counter

Line No. 0000 0001 0002 0003 0004 0005 0006

Instruction LDB ANB C LD OUT LDB C

Operand 0001 C001 001 #03600 2006 C001 1000 0001 002 #00600 1000

Coding
0002 C000 0002 C000 #10000 C000 0000 1000 #65535 C001 1000

Line No. 0000 0001 0002 0003 0004 0005 0006

Instruction LDB ANB C LD OUT LDB C

Operand 0002 C001 001 #10000 0000 C000 1000 0002 001 #65535 1000

Multi-level setting Sets a multi-level counter using arithmetic instructions.


0001 2002 C002 LDA #01000 CMP #02000 CMP #03000 CMP 2009 2009 2009 #09999 C002 0000 0500 0501 0502

Outputs in 3 different levels according to the current counter value. Current counter value 1000 or more 0500 turns ON. 2000 or more 0501 turns ON. 3000 or more 0502 turns ON.

"2.4.3 Arithmetic Instructions" (p. 3-134)

3-74

Chapter 2 Instructions

2.4 Instruction Details


Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 Instruction LDB C LD LDA CON MPS CMP CON ANB OUT Operand 0002 002 #09999 0000 2002 C002 Line No. 0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 Instruction MRD CMP CON ANB OUT MPP CMP CON ANB OUT Operand #02000 2009 0501 #03000 2009 0502

#01000 2009 0500

Counter multi-level setting


0001 2002 C000 LDA #00999 2011 CMP #01999 2011 0500 CMP #09999 C000 0000 0500 0501

#02999 2011 0500 0501 0502 CMP

Outputs in 3 different levels according to the counter current value. Current counter value 00000 to 00999 0500 turns ON. 01000 to 01999 0501 turns ON. 02000 to 02999 0502 turns ON. Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 0020 0021 0022 Instruction LDB C LD LDA CON MPS CMP CON ANB OUT MRD CMP CON ANB ANB OUT MPP CMP CON ANB ANB ANB OUT Operand 0001 000 #09999 0000 2002 C000

1 2

#00999 2011 0500 #01999 2011 0500 0501 #02999 2011 0500 0501 0502

Chapter 2 Instructions

3-75

UDC 2.4 Instruction Details

UDC: Up-Down Counter

FUN 5

ANB ANL

UP DW #ddddd RES

UDC xxx

Sets a 16-bit up-down-counter.

Example
0001 0002 DW UDC 000 UP #00009

UP input

DOWN input

RESET input

0003 RES C000 0500

Coding
Line No. 0000 0001 0002 0003 0004 0005 Instruction LD LD LD UDC LD OUT Operand 0001 0002 0003 000 #00009 C000 0500

Timing diagram
4 5 6 7 8 9

Current value of C000


ON

2 3 1

Carry

Carry ON

Time

C000 Input for up 0001 Input for down 0002 Input for resetting 0003

OFF ON OFF ON OFF ON OFF

When UP input relay (0001) turns ON, the current value of the counter is incremented by one. When DOWN input relay (0002) turns ON, the current value is decremented by one. C000 turns ON when the digit shifts (#00009 to #00000, or #00000 to #00009).

Note 1: The UDC number cannot be the same as any other TMS, TMH, TMR, C, or UDC instructions in the same program. Note 2: The current UDC value is stored more than two months (KV-10xx: More than 20 days) at 25C even when the KV is not in operation or is turned off.

Operands
Visual KV No.: 000 to 249 Preset value: #00000 to #65535 KV-300 No.: 000 to 249 Preset value: #00000 to #65535 KV-10/16 No.: 000 to 063 Preset value: #00000 to #65535 KV-24/40/80 No.: 000 to 119 Preset value: #00000 to #65535

Key operation
FUN
ANB

ANL

ENT
R-SRCH

Operand
(C No.)

Operand
(Preset value)

ENT
R-SRCH

3-76

Chapter 2 Instructions

UDC

2.4 Instruction Details

Application of UDC instruction


Multi-level UP/DOWN counter UP/DOWN counter which allows a count setting value up to 99,990,000.
0001 0002 DW 0003 RES C000 C000 0003 RES
Up-input 0001 Down-input 0002

UDC 000 UP #09999


BCD Low-order 4 digits

0001 0002

UDC 001 UP #09999 DW


BCD High-order 4 digits

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 Instruction LD LD LD UDC LD AND LD AND LD UDC Operand 0001 0002 0003 000 #09999 C000 0001 C000 0002 0003 001 #09999

1 2

The example below outputs the high-order 4 digits of 8-digit BCD to UDC001 and the low-order 4 digits of 8-digit BCD to UDC000.
0004 C000 LDA C001 LDA 0500 STA 0600 STA
Low-order 4 digits High-order 4 digits

TBCD TBCD

Chapter 2 Instructions

3-77

DIFU / DIFD 2.4 Instruction Details

DIFU: Differentiate Up DIFD: Differentiate Down:


Example
0000

FUN 1 FUN 0

SET RES

0 9

: :

nnnn DIFU nnnn DIFD

RES OR

Detects rising edge of input signal and turns ON specified relay for 1st scan time only. Detects falling edge of input signal and turns ON specified relay for 1st scan time only.

1000 DIFU 1001 DIFD

Coding
Line No. 0000 0001 0002 Instruction LD DIFU DIFD Operand 0000 1000 1001

Timing diagram (0000, 1000, and 1001 in the above example)


ON OFF

0000 1000

ON ON for 1st scan time only ON ON for 1st scan time only

1001

The DIFU instruction turns ON the relay specified by the operand for only the 1st scan time at the rising edge of input signal (0000). The DIFD instruction turns ON the relay specified by the operand for only the 1st scan time at the falling edge of input signal (0000).

Note 1: Any DIFU/DIFD operand relay No. cannot be duplicated in a program. Note 2: When an expanded ladder is used, the DIFU instruction in example a) operates without any problems. However, with the DIFD instruction in example b), output relay 0500 does not turn ON because 1000 turns ON at the next scan after the falling edge of input relay 0000 though input relay 0000 is already OFF. In this case, change the ladder diagram as in example c).
a) 0500 turns ON for one scan at the rising edge of input relay 0000.
0000 1000 DIFU 1000 0500

b) 0500 does not turn ON for one scan at the falling edge of input relay 0000.
0000 1000 DIFD 1000 0500

c) 0500 turns ON for one scan at the falling edge of input relay 0000.
0000 1000 1000 DIFD 0500

Operands
Visual KV 1000 to 1915 3000 to 9915 * KV-300 1000 to 1915 3000 to 6915 *7000 to 9915 KV-10/16 1000 to 1915 KV-24/40/80 1000 to 1915 3000 to 6915

Note that of I/O Nos.7000 to 9915, those that are not assigned to expansion or I/O terminal module ports can be used for internal utility relays.

Key operation
FUN
SET RES ENT Operand

R-SRCH

(Relay No.)

ENT FUN RES 0 R-SRCH

OR

ENT
R-SRCH

Operand ENT
(Relay No.) R-SRCH

3-78

Chapter 2 Instructions

DIFU / DIFD 2.4 Instruction Details

Application of DIFU, DIFD instructions


One-shot circuit using the differentiate instruction When input relay 0000 turns ON/OFF, output relay 0500 and 0501 turns ON oneshot (1 second). Coding
0000 1000 DIFU 1001 DIFD 1000 0500 1001 0501 T002 T001 0500 #00010 T001 0501 #00010 T002

Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012

Instruction LD DIFU DIFD LD OR ANB OUT TMR LD OR ANB OUT TMR

Operand 0000 1000 1001 1000 0500 T001 0500 001 #00010 1001 0501 T002 0501 002 #00010

Timing diagram
0000 1000 1001 0500
ON OFF ON OFF ON OFF

1 2

ON
1s

0501

ON
1s

Alternating circuit Every time input relay 0000 turns ON, output relay 0500 turns ON and OFF alternately. Coding
0000 1000 1000 0500 0500 1000 DIFU 0500

Line No. 0000 0001 0002 0003 0004 0005 0006 0007

Instruction LD DIFU LD ANB LDB AND ORL OUT

Operand 0000 1000 1000 0500 1000 0500 0500

Chapter 2 Instructions

3-79

KEEP

2.4 Instruction Details


Turns ON specified relay when SET input relay turns ON and enables this relay to remain ON. And, turns OFF specified relay when RESET input relay turns ON.

KEEP: Keep

FUN 3

ORL O R

SET RES

KEEP nnnn

Example
0001 0002 RES
RESET input

KEEP SET 0500

SET input

Coding
Line No. 0000 0001 0002 Instruction LD DIFU DIFD Operand 0000 1000 1001

Description
When SET input relay No. 0001 is ON and RESET input relay No. 0002 is OFF, 0500 turns ON. When RES input (0002) is ON, output relay 0500 turns OFF. When both 0001 and 0002 are OFF, the previous status is retained.

Note 1: When 0500 used for KEEP instruction in the above example is changed to 0500 OUT instruction ( ), it forms a double coil. In such a case, priority is given to the instruction that is entered last "Double coil" (p. 3-65) Note 2: When both 0001 and 0002 are ON, RESET (0002) has priority over SET (0001), causing 0500 to turn OFF.

Tips
Internal utility relay latching function The ON/OFF status of an internal utility relay immediately before power-off can be stored by setting the memory switch (MEMSW).

"MEMSW instruction" (p. 3-92)

If this stored utility relay is used for a latching instruction (SET or KEEP), the relay settings can be stored while the power is off.
Stores the status of internal utility relays 1000 through 1915.

Coding
Line No. 0000 0001 0002 0003 0004 0005 Instruction MEMSW LD LD KEEP LD OUT Operand $0004 0001 0002 1000 1000 0500

MEMSW $0004 0001 0002 RES 1000 0500 KEEP SET 1000

Operands
Visual KV 0500 to 1915 2009 2100 to 17915 KV-300 0500 to 1915 2009 2100 to 17915 KV-10/16 0500 to 1915 2009 2100 to 2915 KV-24/40/80 0500 to 1915 2009 2100 to 6915

Key operation
FUN
ANL

ANL

ENT
R-SRCH

Operand
(Relay No.)

ENT
R-SRCH

3-80

Chapter 2 Instructions

KEEP

2.4 Instruction Details

Application of KEEP instruction


Detection of chewing gum packs Detects chewing gum packs over the carton using the proximity switch ES series (0001 to 0003). If the switch detects that one or more packs of chewing gum are missing, output relay 0500 turns ON for 1 s. The timing clock is generated from the visible beam photoelectric switch PZ2 (0000). Executes SET when all input relays 0000 to 0003 are ON. Detects presence/absence of chewing gum packs at DOWN edge of 0000. Outputs 1-s one-shot pulse from output relay 0500 when 1000 is OFF.
Reflector R-2

ES

ON

OFF

ON

ES
Gum Gum Gum Gum Gum Gum Gum Gum

PZ2-61

0000 0001 0002 0003 1001

KEEP SET 1000 RES

Executes SET when all input relays 0000 to 0003 are ON.

1 2

0000 1001 1000 T001 0500

1001 DIFD 0500 #00010 T001

Detects presence/absence of chewing gum packs all Down edge of 0000. Outputs 1-s one-shot plus from output relay 0500 when 1000 is OFF.

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 Instruction LD AND AND AND LD KEEP LD Operand 0000 0001 0002 0003 1001 1000 0000 Line No. 0007 0008 0009 0010 0011 0012 0013 Instruction DIFD LD ANB OR ANB OUT TMR Operand 1001 1001 1000 0500 T001 0500 001 #00010

Timing diagram
ON

0000 0001 0002 0003 0500

OFF ON OFF ON OFF ON OFF ON OFF

ON

ON

1s

Chapter 2 Instructions

3-81

SFT 2.4 Instruction Details

SFT: Shift
Example
Relay shift operation

FUN 3

ORL O R

D nnnn CLK RES mmmm

SFT

Sets a shift register.

0001 D 0002 CLK 0003 RES 1002

SFT 1000 1002

Data input

First relay No. Clock Last relay No. RESET input

0500

Coding
Line No. 0000 0001 0002 0003 0004 0005 Instruction LD LD LD SFT LD OUT Operand 0001 0002 0003 1000 1002 1002 0500

Timing diagram
RESET input 0003 Data input 0001 Clock 0002 1000 1001 1002 0500
ON OFF ON OFF ON OFF ON
A B C D E F G

0 1

OFF ON 0001 1 0001 1 0001 1 0001 1 0001 0 0001 1 0001 1 A)

Lost Lost Lost

1002 0 1002 0 1002 1 1002 1 1002 1 1002 1 1002 0

1001 0 1001 1 1001 1 1001 1 1001 1 1001 0 1001 0

1000 1 1000 1 1000 1 1000 1 1000 0 1000 0 1000 1

B)

C)

ON ON ON ON

ON ON ON ON

Lost Lost Lost Lost

D)

E)

F)

G)

Description
First relay No. 1000 turns ON (OFF) when the data input relay is ON (OFF) at the rising edge of the clock pulse. Clock pulse A) shifts the ON status of input relay 0001 to relay 1000, and shifts the status of other relays in sequence as shown in A) on the right. When the data input is OFF as for clock pulse E), OFF status is shifted to relay 1000. When the RESET input relay turns ON, all the relays (from the first one to the last one) turn OFF. Several SFT instructions can be used in a program.

Note: No SFT operand relay No. can be duplicated in a program.

3-82

Chapter 2 Instructions

SFT

2.4 Instruction Details

Operands
Visual KV 1000 to 1915 3000 to 6915 * KV-300 1000 to 1915 3000 to 6915 *7000 to 9915 KV-10/16 1000 to 1915 KV-24/40/80 1000 to 1915 3000 to 6915

Note that of I/O Nos. 7000 to 9915, those that are not assigned to expansion or remote I/O unit ports can be used for internal utility relays.
ORL OR

Key operation
FUN 3 9
ENT
R-SRCH

Operand
(Relay No.)

Operand
(Relay No.)

ENT
R-SRCH

Applications of SFT instruction


Alternating circuit Every time input relay No. 0000 turns ON, 0500 turns alternately ON and OFF.
1000 D 0000 CLK 2003 RES 1000 0500 1000 1000 SFT

Coding
Line No. 0000 0001 0002 0003 0004 0005 Instruction LDB LD LD SFT LD OUT Operand 1000 0000 2003 1000 1000 1000 0500

1 2

Timing diagram
0000 0500
ON OFF

ON

ON

ON

ON

ON

Reference: Alternating circuit can be configured without SFT instruction. The following circuit does the same operation as the circuit above.
"DIFU instruction" (p. 3-78)

Coding
0000 1000 1000 0500 0500 1000 DIFU 0500

Line No. 0000 0001 0002 0003 0004 0005 0006 0007

Instruction LD DIFU LD ANB LDB AND ORL OUT

Operand 0000 1000 1000 0500 1000 0500 0500

Chapter 2 Instructions

3-83

SFT 2.4 Instruction Details Resetting internal utility relays When input relay No. 0000 turns ON, all internal utility relays No. 1000 through 1915 turn OFF. SFT instruction can be substituted for RES instruction. This application can be used to reset many relays at one time. (All relays 3000 through 9915 can also be turned OFF at one time.) Coding
2003 D 2003 CLK 0000 RES 1915 1000 SFT

Line No. 0000 0001 0002 0003

Instruction LD LD LD SFT

Operand 2003 2003 0000 1000 1915

Repeat shift circuit Turns ON every output for a second sequentially. Sets 1000 to 2008 (ON for 1st scan only at startup) and shifts outputs from 0500 to 0504 every second at T001. When 1005 turns ON, 1000 is set and the same sequence as above repeats. Coding

2008 T001 2003 D T001 CLK 2003 RES 1000 1001 1002 1003 1004 1005

1000 SET #00010 T001 SFT 1000 1005

Line No.

Instruction

Operand

0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 0014 0015 0016 0017 0018 0019

LD SET LDB T001 LD LD LD SFT LD OUT LD OUT LD OUT LD OUT LD OUT LD SET

2008 1000 T001 #00010 2003 T001 2003 1000 1005 1000 0500 1001 0501 1002 0502 1003 0503 1004 0503 1005 1000

0500 0501 0502 0503 0504 1000 SET

3-84

Chapter 2 Instructions

SFT

2.4 Instruction Details


Asynchronous shift register Turns ON input relay 0002 to reset the shift register (1000 to 1010) when the data input to 0000 does not synchronize with the clock input to 0001.
0000 1100 2003 D 0001 CLK 0002 RES 1010 1000 1100 DIFU 1000 SET SFT

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 Instruction LD DIFU LD SET LD LD LD SFT Operand 0000 1100 1100 1000 2003 0001 0002 1000 1010

Timing diagram
Scan 0001 0000 1000 1001 1002
ON OFF ON OFF ON OFF ON OFF ON OFF

1 2

Chapter 2 Instructions

3-85

HSP 2.4 Instruction Details

HSP: High Speed

FUN 1

SET AND

HSP nnnn

Shortens time constant of specified input relay to 10 s to increase input response.

Example
Enable input

0000 0001 0002 0003

HSP 0001 0500 SET 0501 SET 0500 RES 0501 RES

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 Instruction LD HSP LD SET LD SET LD RES RES Operand 0000 0001 0001 0500 0002 0501 0003 0500 0501

Timing diagram
0000 0001 0002
ON OFF

ON ON 5 ms

ON ON 5 ms ON ON

ON ON 15 ms ON ON ON

0003 0500 0501

Description
When enable input 0000 turns ON, the time constant of input 0001 (specified by HSP) changes from 10 ms to 10 s. When enable input relay 0000 is ON and the scan time is 1 ms, and when the ON time ( ) of input relays 0001 and 0002 is 5 ms, output relay 0500 turns ON but 0502 does not.
"1.4.3 Constant Scan Time Mode" (p. 3-25)

Note 1: The time constant is switched by special utility relays 2609 through 2612 with the expansion units, or by the provided switches with I/O distribution module. Note 2: The HSP instruction is used for the input to basic units only.

3-86

Chapter 2 Instructions

HSP

2.4 Instruction Details


Note 3: The HSP instruction must be specified when the INT instruction or highspeed counter is used. Note 4: When special utility relay 2813 and HSP instruction turn ON at the same time, priority is given to the HSP instruction and the time constant is changed to 10 s. Note 5: Connect a non-contact input for the HSP instruction to prevent a contact bounce from being entered.

Details of HSP Instruction


This section describes the operation of the HSP instruction. Input signal width
ON OFF

1)
Output device

2)
Output device

3)
Output device

Inputdevice

Inputdevice

Program execution

Program execution

Inputdevice

Program execution

Scan time

Scan time

Scan time

Even if the input signal width is shorter than the scan time, the signal can be fetched when it turns ON during input process as in 1). However, it cannot be fetched when it turns ON any other time than the input process as in 2). For reliable signal reception, the input signal width must be longer than the scan time as in 3). Scan time < Input signal width < Normal time constant (10 ms 20%) Switching the input time constant of expansion units Expansion input unit Expansion I/O unit KV-E4X KV-E4XT(P) KV-E8X KV-E4XR KV-E16X The input time constant of an expansion unit is initially set to 10 ms. It can be changed to 10 s by creating a ladder program or by using the Access Window, the LADDER BUILDER for KV programming support software, or with the KV-P3E(01) handheld programmer. Change the values of special utility relays 2609 to 2612.
Special utility relay 2609 2610 2611 2612 Description Input time constant of 1st unit. OFF: 10 ms, ON: 10 s Input time constant of 2nd unit. OFF: 10 ms, ON: 10 s Input time constant of 3rd unit. OFF: 10 ms, ON: 10 s Input time constant of 4th unit. OFF: 10 ms, ON: 10 s

1 2

Operands
KV-300 0000 to 0009 KV-10 0000 to 0005 KV-16 0000 to 0009 KV-24 0000 to 0015 KV-40/80 0000 to 0107

Key operation
FUN
SET

AND

ENT
R-SRCH

Operand
(Relay No.)

ENT
R-SRCH

Chapter 2 Instructions

3-87

HSP

2.4 Instruction Details

Applications of HSP Instruction


High-speed fetching of input data When the input signal at 0000 has pulses of 5-ms interval and 2-ms scan time and input relay 0001 is ON, fetches data from input relay 0000 at high speed and outputs 1-s one-shot pulse from output relay 0500. Coding
0001
1-s timer

HSP 0000 #00010 T000 T000 0500


Turns ON timer for 1s when 0500 is ON.

0000 0500

Line No. 0000 0001 0002 0003 0004 0005 0006

Instruction LD HSP LD OR TMR ANB OUT

Operand 0001 0000 0000 0500 000 #00010 T000 0500

Timing diagram
Scan
ON OFF ON OFF

0000 0001 0500

ON

1s

To input a signal having pulse interval shorter than the scan time, use the interrupt instruction.
Refer to "Chapter 3 Interrupts" (p. 3-191).

When using the interrupt instruction


Turn ON for 1st scan only at startup.
2008 EI 2813 SET 0500 T000 #00010 T000 0500 RES END INT 0000 2002 0500 SET RETI ENDH

Interrupt enabled Input time constant 10 s

Initial settings

Turn ON for 1st scan only at startup. Resets 0500 when T000 turns ON.

Sets interrupt input at 0000. Sets 0500 when 0000 turns ON.

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 Instruction LD EI SET LD T000 LD RES Operand 2008 2813 0500 #00010 T000 0500 Line No. 0007 0008 0009 0010 0011 0012 Instruction END INT LD SET RET1 ENDH Operand 0000 2002 0500

3-88

Chapter 2 Instructions

MC / MCR

2.4 Instruction Details


ANL LDB
MC

MC: Master Control MCR: Master Control Reset


Example
0000 0001

FUN 2 FUN 2

4 5

: :

ANL ANB

MCR

Selects ON/OFF status of relay coils, timers, or counters set before MCR instruction. Used in pairs with MC instruction to end the execution of MC instruction.

MC 0500 0501 MCR

Coding
Line No. 0000 0001 0002 0003 0004 0005 Instruction LD MC LD OUT OUB MCR Operand 0000 0001 0500 0501

1 2

Description
When 0000 is OFF, both 0500 and 0501 do not turn ON, even if 0001 is turned ON. When 0000 is ON, 0500 turns ON and 0501 turns OFF as soon as 0001 is turned ON. Regard the function of MC-MCR instructions as "power switch" or "main switch". When the input relay for MC is OFF, the instructions entered between MC and MCR instructions function as follows:
Instructions OUT and OUB TMR, TMH, and TMS C, SFT, KEEP, SET, RES, and CTH Other instructions such as TMIN Function Corresponding relay is OFF Timer is reset Previous status is retained Instruction is not executed.

Note: MC-MCR instructions cannot be used in the following configuration.


1. Nesting
MC MC MCR MCR

2. Improper combination with STP-STE instructions


STP xxxx MC STE MCR

"STP, STE instructions" (p. 3-114)

Operands

Key operation
FUN
ANL

LDB ENT

ENT
R-SRCH

R-SRCH

FUN

ANL

ANB ENT

ENT
R-SRCH

R-SRCH

Chapter 2 Instructions

3-89

MC / MCR 2.4 Instruction Details

Details of MC-MCR Instructions


Position of MC-MCR instructions MC-MCR instructions can be used in the following positions.
1. MC-MCR instructions can be placed before or after STP-STE instructions.
STP xxxx STE MC MCR

2. MC-MCR instructions can be placed between STP and STE instructions.


STP xxxx MC MCR STE

3. STP-STE instructions can be placed between MC and MCR instructions.


MC STP xxxx STE MCR

Making an input condition The input condition for an MC instruction can be made as shown below:
0000 0003 0001 0002 MC 0500 MCR

Note: The scan time is not shortened even if the input relay of the MC instruction is OFF. Output relays 0500 within and outside of the MC-MCR instructions form a double coil as shown below. "Double coil" (p. 3-65) In this case, priority is given to the instruction that is entered last.
0003 0001 0002 0500 MC 0500 MCR

This relay is ignored.

The last relay has priority.

3-90

Chapter 2 Instructions

MC / MCR

2.4 Instruction Details

Application of MC-MCR Instruction


Emergency stop circuit When input relay 0000 is ON, 0500 turns ON for 1 s, then 0501 turns ON for 2 s, and then 0502 turns ON for 3 s, repeatedly. Once input relay 0000 turns OFF, 0500 turns ON when 0001 is ON, 0501 turns ON when 0002 is ON, and 0502 turns ON when 0003 is ON. Timing diagram
Scan 0000 0001 0002 0003 0500 0501 0502
ON OFF ON OFF ON OFF ON OFF ON ON ON ON ON ON ON ON ON

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 0050 0051 0052 0053 0054 0055 0056 Instruction LD OUT CON OUB LD DIFU CON AND RES CON RES CON RES LD MC STG OUT CON TMR CON AND JMP STG OUT CON TMR CON AND JMP STG OUT CON TMR CON AND JMP MCR LD MC LD OUT LD OUT LD OUT MCR LD OR OUT LD OR OUT LD OR OUT END ENDH Operand 0000 1000 1001 0000 1002 1002 1100 1101 1102 1000 1100 1200 000 #00010 T000 1101 1101 1201 001 #00020 T001 1102 1102 1202 002 #00030 T002 1100 1001 0001 1203 0002 1204 0003 1205 1200 1203 0500 1201 1204 0501 1202 1204 0502

0000 0001 0000 0002 1000 0003 0004 0005 0006 0007 1001 0008 0001 0009 0002 0010 0003 0011 1100 STG 1101 STG 1102 STG 1200 1201 1202 #00010 T000 #00020 T001 #00030 T002 T000 T001 T002 1002 DIFU 1002

1000

1001

1100 RES

1101 RES

1102 RES
MC 1101 JMP 1102 JMP 1100 JMP MCR MC 1203 1204 1205 MCR

1 2

0012 1200 0013 1203 0014 1201 0015 1204 0016 1202 0017 1205 0018 END 0019 ENDH 0020 0502 0501 0500

Chapter 2 Instructions

3-91

MEMSW

2.4 Instruction Details

MEMSW: Memory Switch


Key operation

FUN

ANL ORB

MEMSW $nnnn

Sets memory switches.

FUN

ANL

ORB

ENT
R-SRCH

Operand

ENT
R-SRCH

Operands
$0000 to $FFFF

Example
MEMSW $3800

Coding
Line No. 0000 Instruction MEMSW Operand $3800

Specify 3 of SW3 and 0 and 1 of SW4 to reset the values of DM1900 to DM1999, counter, up-down counter, CTH, and CTC when the operation is started.

Description

2
SW4 SW3 0 0 1 1 1 0 0 0

Switch Nos. and functions are as follows. The switch consists of 16 bits. The function of the switch is specified by turning a certain bit ON or OFF.
SW2 SW1 3 2 1 0 3 2 1 0 3 2 1 0 3 2 1 0 0 0 0 0 0 0 0 0

MEMSW $3800
SW4 SW3 SW2 SW1

Switch Function of switch No. 0 Cancels error when power is ON. 1 Action when "Memory error" occurs at startup (due to data memory, counter value, or retained content being erased). Uses latch function of internal utility relays 1000 through 1915. Uses latch function of internal utility relays 3000 through 3915. Uses latch function of internal utility relays 4000 through 4915. Uses latch function of internal utility relays 5000 through 5915. Uses latch function of internal utility relays 6000 through 6915. Not used. Not used. Clears DM0000 to DM0999 at power-on. Clears DM1000 to DM1899 at power-on. Switches between 24- and 16-bit comparators for CTH0. Switches between 24- and 16-bit comparators for CTH1. Clears values of counter, CTH, and CTC. Write-protects program in KV PLC. Read-protects program in KV PLC.

ON Retains error.

OFF Cancels error and starts operation.

2 3 0 1 2 3 0 1 2 3 0 1 2 3

Loads memory Does not load from EEPROM memory from EEPROM Doesn't use Uses latch latch function. function. Doesn't use Uses latch latch function. function. Uses latch Doesn't use function. latch function. Uses latch function. Uses latch function. Clears DM. Clears DM. 24-bit 24-bit Clears values. Write-protects program. Read-protects program. Doesn't use latch function. Doesn't use latch function. Retains DM. Retains DM. 16-bit 16-bit Retains values. Doesn't writeprotect program. Doesn't readprotect program.

3-92

Chapter 2 Instructions

MEMSW 2.4 Instruction Details Note 1: When a read-protected program is transferred into the KV PLC it cannot be read or modified from this PLC. Before read-protecting a program, be sure to create a backup copy of the program. Note 2: When a 24-bit high-speed counter comparator is used, the ladder program which specifies the numerical values of a 24-bit CTC is required before starting the high-speed counter. Note 3: The value of MEMSW can be changed even during operation. However, the new operation is not actually performed. The change is effective only after the KV is turned off or stopped once and then restarted.

Details of MEMSW
Setting memory switches Specify a hexadecimal number for each switch No.
SW4 SW3 SW2 SW1
(Switch No.)
MEMSW $0269

3 2 1 0 3 2 1 0 3 2 1 0 3 2 1 0 (8) 23 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 (4) 22 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 (2) 21 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1


(Example) (1)

0 0 0 0 0

0 0 1 0 2

0 1 1 0 6

1 0 0 1 9

20 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

Hexadecimal number

Hexadecimal number

0 1 2 3 4 5 6 7 8 9 A B C D E F
Retains all errors when power is ON. Retains utility relays 3000 through 3999. Retains Internal utility relay 5000 through 5999 and 6000 through 6999. Clears DM0000 to DM0999 when power is ON.

1 2

Tips
The data entered for the memory switch is set into the KV PLC when the program is transferred to the KV PLC. When MEMSW instruction is not entered into the program, "$0000" is set. If you try transfer a program into the KV PLC which is write-disabled, warning message "WRITE PROTECTED REPLACE OK?" is displayed. When executing the transfer regardless of the message, press ENT . R-SRCH
To use internal utility relays 1000 through 1915 as latch relays. To clear a DM when operation is started.

Description

MEMSW $0004

MEMSW $0E00

To read-protect a program.

MEMSW $8000

To clear a counter when operation is started.

MEMSW $2000

To use a 24-bit highspeed counter CTH0.

MEMSW $0800

To use a 24-bit highspeed counter CTH1.

MEMSW $1000

Chapter 2 Instructions

3-93

END / ENDH NOP 2.4 Instruction Details

NOP: No Operation

FUN 3

ORL RES

Performs no operation.

When ALL CLEAR [FNC60] or HANDHELD PROGRAMMER CLEAR (P3E CLEAR) [FNC61] is executed to delete the program, NOP appears on all lines of the deleted program. NOP is not written by the KV IncrediWare (DOS)/LADDER BUILDER for KV programming support software.

END: End ENDH: End Hi


Description

END DM ENDH TM

: :

END

Indicates end of each routine of program. Indicates end of entire program.

ENDH

END and ENDH instructions must be used at the end of a program. A subroutine or interrupt program can be written between END and ENDH. When not using either subroutine or interrupt programs, write ENDH immediately after END.
Normal program
END

2
Normal program
END

Subroutine program Interrupt program


ENDH

ENDH

Note: When a program does not have END or ENDH, "ENTER END", "ENTER ENDH" or "LOGIC ERROR" occurs when the program is converted or transferred.

Operands

Key operation
END DM ENT
R-SRCH

ENDH TM

ENT
R-SRCH

3-94

Chapter 2 Instructions

2.4 Instruction Details

2.4.2 Application Instructions


Application instructions are used for batch processing of input signals. Data is transmitted to specified memory locations or changed into different formats. Moreover, parts of a program can be repeated or skipped with the instruction.

Instruction W-ON: Wait ON W-OFF: Wait OFF W-UE: Wait Up Edge W-DE: Wait Down Edge CON: Connect MPS: Push MRD: Read MPP: Pop STG: Stage JMP: Jump ENDS: End Stage STP: Step STE: Step End ITVL: Interval Timer 16-bit high-speed counter 16-bit high-speed counter comparator 16-bit high-speed counter 16-bit high-speed counter comparator CALL: Subroutine Call SBN: Subroutine Entry RET: Subroutine Return FOR: Repeat Start NEXT: Repeat End HKEY: 16 Key input

Mnemonic W-ON W-OFF W-UE W-DE CON (FUN06) MPS MRD MPP STG (FUN44) JMP (FUN21) END (FUN14) STP (FUN45) STE (FUN43) ITVL CTH CTC CTH CTC CALL (FUN03) SBN (FUN38) RET (FUN33) FOR (FUN16) NEXT (FUN29) HKEY (FUN17)

Reference page 3-96 3-96 3-98 3-98 3-102 3-103 3-103 3-103 3-106 3-106 3-106 3-114 3-114 3-117 3-204 3-204 3-204 3-204 3-122 3-122 3-122 3-125 3-125 3-131

1 2

Chapter 2 Instructions

3-95

W-ON / W-OFF

2.4 Instruction Details


Turn ON second operand relay when first operand relay contact turns ON. Turns ON second operand relay when first operand relay contact turns OFF.

W-ON: Wait ON W-OFF: Wait OFF

W-ON

: :

nnnn ON mmmm nnnn OFF mmmm

W-OFF Li

Example
0000 1000 0002 1001 0001 ON 1000 0500 0003 OFF 1001 0501

W-ON

W-OFF

Coding
Line No. 0000 0001 0002 0003 Instruction LD W-ON LD OUT LD W-OFF LD OUT Operand 0000 0001 1000 1000 0500 0002 0003 1001 1001 0501

0004 0005 0006 0007

Timing chart W-ON


ON

0000 0001 1000 0500

OFF ON OFF

ON

ON

When input relay 0000 is ON, output relay 0500 turns ON as soon as input operand 0001 turns ON. 0500 remains ON until 0000 turns OFF. W-OFF
ON

0002 0003 1001 0501

OFF ON OFF

ON

ON

When input relay 0002 is ON, output relay 0501 turns ON as soon as input operand 0003 turns OFF. 0501 remains ON until 0002 turns OFF.

3-96

Chapter 2 Instructions

W-ON / W-OFF

2.4 Instruction Details

Description
W-ON
Input operand
0000 0001 ON 1000

Same operation

0001 1000

0000

1000

Output operand

When input relay 0000 is ON, output operand 1000 turns ON as soon as the contact of input operand 0001 turns ON.

W-OFF
Input operand
0002 0003 OFF 1001

Same operation

0003 1001

0002

1001

Output operand

When input relay 0002 is ON, output operand 1001 turns ON as soon as the contact of input operand 0003 turns OFF.

Note: Output operand relay Nos. for W-ON/W-OFF instructions cannot be duplicated in a program.

1 2

Operands
Visual KV nnnn: 0000 to 17915 T000 to T249 C000 to C249 CTC0 to CTC3 mmmm: 1000 to 1915 3000 to 9915 KV-300 nnnn: 0000 to 0009 0500 to 17915 T000 to T249 C000 to C249 CTC0 to CTC3 mmmm: 1000 to 1915 3000 to 6915 *7000 to 9915 KV-10/16 nnnn: 0000 to 2915 T000 to T063 C000 to C063 CTC0 to CTC3 mmmm: 1000 to 1915 KV-24/40/80 nnnn: 0000 to 6915 T000 to T119 C000 to C119 CTC0 to CTC3 mmmm: 1000 to 1915 3000 to 6915

Note that of I/O Nos. 7000 to 9915, those that are not assigned to expansion or remote I/O unit ports can be used for internal utility relays.

Key operation
W-ON

First operand
(nnnn)

Second operand
(mmmm)

ENT
R-SRCH

W-OFF Li

Chapter 2 Instructions

3-97

W-UE / W-DE

2.4 Instruction Details


Turns ON second operand relay at rising edge of first operand relay contact. Turns ON second operand relay at falling edge of first operand relay contact.

W-UE: Wait Up Edge W-DE: Wait Down Edge

W-UE

: :

nnnn mmmm nnnn mmmm

W-DE Lo

Example
0000 1000 0002 1001 0001 1000 0500 0003 1001 0501 W-DE W-UE

Coding
Line No. 0000 0001 0002 Instruction LD W-UE LD OUT LD W-DE LD OUT Operand 0000 0001 1000 1000 0500 0002 0003 1001 1001 0501

0003 0004 0005 0006 0007

Timing chart W-UE


0000 0001 1000 0500
ON OFF ON OFF

ON

When input relay 0000 is ON, output relay 0500 turns ON at rising edge of first operand relay 0001. As soon as input relay 0000 turns OFF, output relay 0500 turns OFF.

W-DE
ON

0002 0003 1001 0501

OFF ON OFF

ON

When input relay 0002 is ON, output relay 0501 turns ON at falling edge of first operand relay 0003. As soon as input relay 0002 turns OFF, output relay 0501 turns OFF.

3-98

Chapter 2 Instructions

W-UE / W-DE

2.4 Instruction Details

Description
W-UE
Input operand Same operation 0001
1000 0001 1002 1000 0000 1002 DIFU 1000

0000

Output operand

When input relay 0000 is ON, the output operand turns ON at the rising edge of the input operand.

W-DE
Input operand Same operation
0003 1003 1001 0002 1003 DIFD 1001

0002

0003 1001

Output operand

When input relay 0002 is ON, the output operand turns ON at the falling edge of the input operand.

Note 1: If the input operand is already ON before input relay 0000 turns ON, the output operand does not turn ON. Note 2: The W-UE/W-DE instruction must be used in subroutine programs that are executed every scan time (because rising and falling edges cannot be recognized). Note 3: Output operand relay Nos. for W-UE/W-DE instructions cannot be duplicated in a program.

1 2

Operands
Visual KV nnnn: 0000 to 17915 T000 to T249 C000 to C249 CTC0 to CTC3 mmmm: 1000 to 1915 3000 to 9915 KV-300 nnnn: 0000 to 0009 00500 to 17915 T000 to T249 C000 to C249 CTC0 to CTC3 mmmm: 1000 to 1915 3000 to 6915 *7000 to 9915 KV-10/16 nnnn: 0000 to 6915 0000 to 2915 T000 to T063 CTC0 to CTC3 mmmm: 1000 to 1915 KV-24/40/80 nnnn: T000 to T119 C000 to C119 CTC0 to CTC3 mmmm: 1000 to 1915 3000 to 6915

Note that of I/O Nos. 7000 to 9915, those that are not assigned to expansion or remote I/O unit ports can be used for internal utility relays.

Key operation
W-UE

First operand
(nnnn)

Second operand
(mmmm)

ENT
R-SRCH

W-DE Lo

Chapter 2 Instructions

3-99

W-UE / W-DE 2.4 Instruction Details

Details of W-ON and W-UE Instructions


A combination of W-ON, W-OFF, W-UE, and W-DE instructions is much more effective when used in programs controlling sequential operation where the completion of one operational step starts the next step. This section describes minute differences in the operation of these instructions. Difference between W-ON and W-UE
0000 0001 ON 1000 0001 1001 0500 0501

Output relay 0100 turns ON when both input relays 0000 and 0001 turn ON in any order. Output relay 1001 turns ON only when input relay 0000 turns ON before input relay 0001.

0100 1001

ON

0000 0001 1000 0500 1001 0501

OFF ON OFF

ON ON

ON

(W-ON) (W-UE)

2
W-ON: Output relay 0500 turns ON when both input relays 0000 and 0001 turn ON in any order. Output relay 0501 turns ON only when input relay 0000 turns ON before input relay 0001. W-UE:

Note: An input operand relay No. for these instructions can be duplicated in a program, but output operand relay Nos. cannot be duplicated. As shown above, W-UE requires a certain order for turning ON relays 0000 and 0001, but W-ON does not. Therefore, W-UE is suitable for circuits to be executed at every input; W-ON is suitable for circuits that go on to the next operation when a certain condition is satisfied. The operation of W-OFF and W-DE instructions are same as above by the operation which turns relays OFF.

3-100

Chapter 2 Instructions

W-UE 2.4 Instruction Details

Application of W-UE Instruction


Input sequence check Output relay 0500 turns ON when input relay 0000 is ON and input 0001, 0002, and 0003 turn ON in this sequence. Output relay 0500 turns OFF when input relay 0000 is OFF. Coding
0000 1000 1001 1002 0001 1000 0002 1001 0003 1002 0500

Line No. 0000 0001 0002 0003 0004 0005 0006 0007

Instruction LD W-UE LD W-UE LD W-UE LD OUT

Operand 0000 0001 1000 1000 0002 1001 1001 0003 1002 1002 0500

Timing diagram
Scan 0000 0001 0002 0003 0500
ON OFF ON OFF ON OFF ON OFF

1 2
ON

Fork lift truck IN/OUT judgement Checks the input sequence. Output relay 0500 turns ON when input relay 0000 turns ON and then 0001 turns ON. Output relay 0501 turns ON when input relay 0001 turns ON and then 0000 turns ON.
0000 0001 1001 1000 0000 1001 1000 1001 0500 0501

Leave warehouse Enter warehouse

Coding
Line No. 0000 0001 0002 0003 0004 Instruction LD W-UE CON AND OUT 1000 0500 Operand 0000 0001 1000 Line No. 0005 0006 0007 0008 0009 Instruction LD W-UE CON AND OUT 1001 0501 Operand 0001 0000 1001

Timing diagram
Scan

0000 0001 0500 0501

ON OFF ON OFF

ON
ON

Chapter 2 Instructions

3-101

CON

2.4 Instruction Details


Represents series connection of output instruction with another instruction.

CON: Connect

FUN 0

RES ORB

Example
0000 0500 0501 0502 0503

CON

CON

CON

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 Instruction LD OUT CON OUT CON OUT CON OUT 0503 0502 0501 Operand 0000 0500

Description

When input relay 0000 turns ON, 0500, 0501, 0502, and 0503 turn ON. When input relay 0000 turns OFF, 0500, 0501, 0502, and 0503 turn OFF. The CON instruction is used to connect instructions after output instructions when the extended ladder is used. When the LADDER BUILDER for KV programming support software is used, the CON instruction is automatically converted into a mnemonic and entered in the ladder diagram by just writing a connection line. The CON instruction does not affect the scan time.
Refer to "1.5 Extended Ladder Diagrams" (p. 3-29) for details of eetecded ladders.

Operands

Key operation
FUN
RES

ORB

ENT
R-SRCH

ENT
R-SRCH

3-102

Chapter 2 Instructions

MPS / MRD / MPP

2.4 Instruction Details


Stores current input and arithmetic flag status. Reads input and arithmetic flag status stored with PUSH. Reads and clears input and arithmetic flag status stored with PUSH.

MPS: Push MRD: Read MPP: Pop


Example

MPS

C D

: : :

MRD MPP ch

0000

MPS

0001 0002

0500 0501 0502

MRD MPP 0003

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 Instruction LD MPS AND OUT MRD AND OUT MPP AND OUT 0003 0502 0002 0501 0001 0500 Operand 0000

1 2

Description
When input relay 0000 is ON: 0500 turns ON as soon as 0001 turns ON. 0501 turns ON as soon as 0002 turns ON. 0502 turns ON as soon as 0003 turns ON. The MPS instruction is used at the start of an output branch. The MRD instruction is used to connect an output branch. The MPP instruction is used at the end of an output branch. When the KV IncrediWare (DOS)/LADDER BUILDER for KV programming support software is used, the MPS, MRD, and MPP instructions are automatically converted into mnemonics and entered in the ladder diagram.

Note 1: Limit the number of MPS instructions to 8 or less in a circuit. Note 2: An MPS instruction must have a corresponding MPP instruction. This means that the same number of MPS and MPP instructions must be used in a program. An MPS or MPP instruction without a corresponding MPP or MPS instruction results in a logic error.

Operands

Key operation

MPS

C D

MRD MPP ch

ENT
R-SRCH

Chapter 2 Instructions

3-103

MPS / MRD / MPP 2.4 Instruction Details

MPS/MRD/MPP applications
MPS, MRD, and MPP instructions are used as follows:
0002 0003
MPS

0004 0006 0007 0008

0500
Start of branch

0501
Connection of branch

MRD

0502
Connection of branch

MRD

0503
End of branch

MPP

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 Instruction LD AND MPS AND OUT MRD AND 0006 0004 0500 Operand 0002 0003 Line No. 0007 0008 0009 0010 0011 0012 0013 Instruction OUT MRD AND OUT MPP AND OUT 0008 0503 0007 0502 Operand 0501

0000
MPS

0001
MPS

0002 0003 0005 0006

0500 0501 0502 0503

0004
MPP

MPP

MPS

MPP

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 Instruction LD MPS AND MPS AND OUT MPP AND OUT 0003 0501 0002 0500 0001 Operand 0000 Line No. 0009 0010 0011 0012 0013 0014 0015 0016 Instruction MPP AND MPS AND OUT MPP AND OUT 0006 0503 0005 0502 0004 Operand

3-104

Chapter 2 Instructions

MPS / MRD / MPP

2.4 Instruction Details


0000
MPS

0001
MPS

0002
MPS

0003
MPS

0004

0500 0501 0502 0503 0504

MPP

MPP

MPP

MPP

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 0014 0015 0016 0017 Instruction LD MPS AND MPS AND MPS AND MPS AND OUT MPP OUT MPP OUT MPP OUT MPP OUT 0504 0503 0502 0501 0004 0500 0003 0002 0001 Operand 0000

1 2

Chapter 2 Instructions

3-105

STG / JMP / ENDS 2.4 Instruction Details

STG: Stage JMP: Jump ENDS: End Stage


Example

FUN 4 FUN 2 FUN 1

LDB LDB

: : :

nnnn STG nnnn JMP

ANL SET

SET LDB

ENDS

Executes instructions in STG block when operand relay is ON. When transition condition relay is ON, turns OFF relay of current stage and transfers execution to stage specified by operand. When transition condition relay is ON, turns OFF relay of current stage.

2008 1000 STG 1001 STG 1002 STG 0500 0501 0000 0001 0002 0003

1000 SET 1001 JMP 1002 JMP 1001 JMP 1000 JMP 1003 JMP

Initial setting

1) 2) 3)

4)

1003 STG

0502

0004 ENDS

2
1) When transition condition relay 0000 is ON, transfers execution to STG1001. 2) 0500 turns ON. When transition condition relay 0001 is ON, transfers execution to STG1002. 3) 0501 turns ON. When transition condition relay 0002 is ON, transfers execution to STG1001 and repeats the process above. When transition condition relay 0003 turns ON, transfers execution to STG1000 and 1003. 4) 0502 turns ON. The process finishes when transition condition relay 0004 turns ON. Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 Instruction LD SET STG AND JMP STG OUT CON AND JMP STG OUT CON 0001 1002 1002 0501 Operand 2008 1000 1000 0000 1001 1001 0500 Line No. 0013 0014 0015 0016 0017 0018 0019 0020 0021 0022 0023 0024 Instruction MPS AND JMP MPP AND JMP JMP STG OUT CON AND ENDS 0004 0003 1000 1003 1003 0502 0002 1001 Operand

3-106

Chapter 2 Instructions

STG / JMP / ENDS

2.4 Instruction Details


Note 1: The following table shows the status of each instruction between STG and JMP/ENDS when STG operand relay turns OFF.
Instruction Relay for OUT instruction Relay for OUB instruction TMR, TMH, TMS, C (counter) instructions SET, RES instructions Other instructions Function Turned OFF. Turned ON. Reset. Current status is retained. Not executed.

Note 2: STG/JMP/ENDS operand relay Nos. cannot be duplicated in a program. Note 3: The STG instruction must be used in combination with the JMP or ENDS instruction. Note 4: The following instructions are not properly executed between STG and JMP/ ENDS instructions: DIFU, DIFD, KEEP, UDC, SFT, FOR, NEXT, and Differentiation type instruction (@xxx)

Operands
Visual KV 1000 to 1915 3000 to 9915 KV-300 1000 to 1915 3000 to 6915 *7000 to 9915 KV-10/16 1000 to 1915 KV-24/40/80 1000 to 1915

1 2

Note that of I/O Nos. 7000 to 9915, those that are not assigned to expansion or remote I/O unit ports can be used for internal utility relays.

Key operation
FUN FUN FUN
LDB

4 2 1

LDB

4 1 4

ENT
R-SRCH

Operand
(nnnn)

ENT
R-SRCH

ANL SET

SET LDB

ENT
R-SRCH

Operand
(nnnn)

ENT
R-SRCH

ENT
R-SRCH

ENT
R-SRCH

Chapter 2 Instructions

3-107

STG

2.4 Instruction Details

Details of STG instruction


STG instruction The STG instruction is suitable for sequential step-by-step processing. The whole process is divided into several operational steps, and one program is assigned to each step. The process to turn on several lamps sequentially can be divided into the following five steps: 1) 2) 3) 4) 5) Wait until the start switch is turned ON. Turn on lamp 1 for 1 second. Turn on lamp 2 for 3 second. Turn on lamp 3 for 5 second. Turn on lamps 1, 2, and 3 simultaneously for 7 seconds.

These five steps are sequentially performed in order as shown in the flowchart below. If a ladder program is written for such sequential processing without any STG instructions, the resulting program may be complicated and difficult to review by others.
Sequential processing Start
Start SW ON?
YES Turn on lamp 1 for 1 second.

NO

Turn on lamp 2 for 3 second. Turn on lamp 3 for 5 second.


Turn on lamps 1, 2, and 3 simultaneously for 7 seconds.

I/O assignments Assign the input and output of the Visual KV Series as follows: 1) 2) 3) 4) Start switch: Turned on when 0000 turns ON. Lamp 1: Lights when 0500 turns ON. Lamp 2: Lights when 0501 turns ON. Lamp 3: Lights when 0502 turns ON.
I/O assignment
KV 0000 0500

Lamp 1

Start SW Lamp 2
0501

Lamp 3
COM 0502 COM

3-108

Chapter 2 Instructions

STG

2.4 Instruction Details


Sequence program Assign the relays to execute the five processes on the previous page as follows: 1 2 3 4 5 Wait until the start switch is turned ON.: Turn on lamp 1 for 1 second.: Turn on lamp 2 for 3 second.: Turn on lamp 3 for 5 second.: Turn on lamps 1, 2, and 3 simultaneously: for 7 seconds. Input relay 0000 Output relay 0500 Output relay 0501 Output relay 0502 Output relays 0500, 0501, and 0502

The following is the ladder diagram for the I/O assignments above, and is written with and without STG instructions. Without STG instruction
0000 1000 T000 1001 T001 1002 T002 1100 T003 T002 T001 T000 1000 #00010 T000 1001 #00030 T001 1002 #00050 T002 1100 1101 1102 #00070 T003 T003 1000 1100 1001 1101 1002 1102 0502 0501 1000 SET 0500

1000 (0500) turns ON for 1 second when input 0000 turns ON.

1001 (0501) turns ON for 3 seconds when T000 turns ON.

1002 (0502) turns ON for 5 seconds when T001 turns ON.

1100 (0500), 1101 (0501), and 1102 (0502) turn ON for 7 seconds when T002 turns ON.

1 2

The process is repeated from the beginning when T003 turns ON.

OR circuit is required because double coil cannot be used.

With STG instruction


2008 1001 SET

1001 turns ON at the start of operation.

1001 STG 1002 STG 1003 STG 1004 STG

0000 0501 0502 0500

0500

#00010 T000 #00030 T001 #00050 T002

T000 T001 T002

1002 JMP 1003 JMP 1004 JMP

0501

0502

0500 turns ON for 1 second when input 0000 turns ON. Then, 1002 turns ON. 0501 turns ON for 3 seconds when 1002 turns ON. Then, 1003 turns ON. 0502 turns ON for 5 seconds when 1003 turns ON. Then, 1004 turns ON. 0500, 0501, and 0502 turn ON for 7 seconds when 1004 turns ON.

#00070 T003

T003

1001 JMP

The process is repeated from the beginning when T003 turns ON.

Chapter 2 Instructions

3-109

STG

2.4 Instruction Details


Process progression with Wait instruction
2008 1000 STG 1001 STG 1002 STG 1003 STG 1004 STG 0500 0501 0502 0500 0000 1100 0000 1101 0000 1102 0000 1103 0501 1100 1101 1102 1103 0502 1000 SET 1001 JMP 1002 JMP 1003 JMP 1004 JMP

0000 1104

1104

1000 JMP

Description
When using the W-UE instruction in a program with STG instructions on the previous page, you can create a program for an operation which moves to the next stage every time when start switch 0000 turns ON (process progression).

"W-UE instruction" (p. 3-98)

Tips

Resetting STG instructions (in the above example) Use the SFT instruction to turn OFF all STG instructions in an emergency.
2003 D 2003 CLK 1000 1004 RES SFT

STG start relay STG end relay

Reset input Reset input

1000 SET

Initial setting

Enter the initial setting process depending on the program. The above example cannot start the next operation without the initial setting.

"SFT instruction" (p. 3-82)

Note 1: The scan time is not affected by any instructions between STG and JMP/ ENDS instructions which are not executed. Note 2: STG operand relay Nos. cannot be duplicated in a program. Note 3: The STG instruction must be connected to the bus. Note 4: The STG, JMP, or ENDS instruction cannot be used in subroutines.

3-110

Chapter 2 Instructions

STG

2.4 Instruction Details

Cautions for using STG instruction


Interlock When an STG instruction moves to another stage, the previous and next stages turn ON simultaneously only for one scan. Provide an interlock circuit for the output which may be dangerous when turned ON in such occasions (e.g., motor's normal/ reverse rotation).
1000 STG 1001 STG 0501 0500 0500 0501 0001 0002 1001 JMP 1002 JMP

Interlock

Double coil A double coil can be used for an STG instruction.


1000 STG 1001 STG 1002 STG 0500 0501 0500 0001 ON 1100 0002 ON 1101 0003 ON 1102 1100 1101 1102 1001 JMP 1002 JMP 1003 JMP

Double coil

Note: When STG 1000 and 1002 turn ON simultaneously, priority is given to output relay 0500 of STG 1002, which is entered last. Retaining output Use the SET instruction to retain output.
1000 STG 1001 STG 0500 SET 0501 SET 0000 0001 1001 JMP 1002 JMP

1 2

When no JMP is used When no JMP instruction is used, the STG instruction does not turn OFF even if 0001 turns ON. Be sure to use JMP after STG.
1000 STG 0500 0001 0501

STG operand When the STG operand relay remains ON, 0500 does not turn OFF even if 0001 turns ON.
0000 1000 STG 0500 0001 1000 SET 1001 JMP

Use a differentiation type instruction for the condition of the first STG instruction.
0000 1000 STG 1100 DIFU 0500 1100 0001 1000 SET 1001 JMP

Chapter 2 Instructions

3-111

STG / JMP

2.4 Instruction Details


JMP operand Unlike the STG operand relay, the JMP operand relay No. can be duplicated in a program.
1000 STG 0500 0001 1001 JMP 1002 JMP 1001 STG 0501 0002 1002 JMP

DIFU/DIFD instructions in an STG block The operand relay for an STG instruction cannot be used as the input operand relay for a DIFU or DIFD instruction.
1000 STG 3000 3000 DIFU 0001 0500 1001 JMP 0501

Application of STG and JMP instructions


Enabling a double coil When start SW 0000 is pressed, the following output operation is repeated: Output relay 0500 turns ON for 1 second.

Output relays 0500 and 0501 turn ON for 2 seconds. Output relays 0500, 0501, and 0502 turn ON for 3 seconds.
0000 1000 STG 1001 STG 1002 STG 0500 0500 0500 0501 0501 #00010 T000 #00020 T001 0502 1100 DIFU T000 T001 #00030 T002 T002 1100 1000 SET 1001 JMP 1002 JMP 1000 JMP

1000 turns ON at the rising edge of input 0000. Output 0500 turns ON for 1 second. Outputs 0500 and 0501 turn ON for 2 seconds. Outputs 0500, 0501, and 0502 turn ON for 3 seconds.

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 0014 0015 Instruction LD DIFU CON AND SET STG OUT CON TMR CON AND JMP STG OUT CON OUT 0501 T000 1001 1001 0500 000 #00010 1100 1000 1000 0500 Operand 0000 1100 Line No. 0016 0017 0018 0019 0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 0030 0031 Instruction CON TMR CON AND JMP STG OUT CON OUT CON OUT CON TMR CON AND JMP T002 1000 002 #00030 0502 0501 T001 1002 1002 0500 001 #00020 Operand

3-112

Chapter 2 Instructions

STG / JMP

2.4 Instruction Details


Note: The double coils in different STG instruction blocks operate properly. However, when several STG instructions turn ON simultaneously, priority is given to the one programmed last. Conditional branching When input relay 0000 (start SW) turns ON, output relay 0500 turns ON. Then, as programmed for conditional branching, output relay 0501 turns on for 1 second when 0001 turns ON, and 0502 turns ON for 2 seconds when 0002 turns ON. After each operation is completed, the program returns to the conditional branch and repeats the same steps.
0000 1000 STG 1100 DIFU 0500 1100 0001 0002 1001 STG 1002 STG 0501 0502 #00010 T000 #00020 T001 T000 T001 1000 SET 1001 JMP 1002 JMP 1000 JMP 1000 JMP

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 0014 0015 0016 0017 0018 0018 0020 0021 0022 0023 0024 0025 0026 0027 Instruction LD DIFU CON AND SET STG OUT CON MPS AND JMP MPP AND JMP STG OUT CON TMR CON AND JMP STG OUT CON TMR CON AND JMP T001 1000 001 #00020 T000 1000 1002 0502 000 #00010 0002 1002 1001 0501 0001 1001 1100 1000 1000 0500 Operand 0000 1100

1 2

Chapter 2 Instructions

3-113

STP / STE

2.4 Instruction Details


STP nnnn STE

STP: Step STE: Step End


Example

FUN 4 FUN 4

LDB ANB

5 3

: :

Executes instructions between STP and STE when operand relay is ON. Used with STP to make a program step.

LDB ORL

0000

1000 STP 1000

0001

0500 STE

Coding
Line No. 0000 0001 0002 0003 0004 0005 Instruction LD OUT STP LD OUT STE Operand 0000 1000 1000 0001 0500

2
Description

When 1000 is ON, 0500 turns ON/OFF as soon as 0001 turns ON/OFF. When 1000 is OFF, 0500 remains OFF after 0001 turns ON. When 0001 and 0500 are ON, 0500 remains ON after 0001 turns OFF. The program step specified with STP-STE instructions are executed when the STP operand relay is ON. When the operand relay is OFF, the program execution jumps to STE instruction. (Fig 1). STP-STE instructions can be nested up to 8 levels deep as shown in Fig. 2. When 1000 is OFF, steps 1) through 3) are not executed. Control jumps to the STE instruction just above step 4), then step 4) is executed. When 1000 and 1001 are ON, steps 1) through 3) are executed in that order. When 1000 is ON and 1001 is OFF, steps 1), 3), and 4) are executed in that order, while step 2) is left unexecuted.
STP
A

1000

When 1000 is OFF, A is not executed.

STE
B

Fig. 1

STP 1) STP 2) STE 3) STE 4)

1000

1001

When 1000 is OFF, steps 1) through 3) are not executed.

Fig. 2

Note 1: STP/STE operand relay Nos. cannot be duplicated in a program. Note 2: When an STP operand turns OFF during program execution between STP and STE instructions, the state of the instructions between STP and STE are retained. Note 3: The scan time is not affected by any instructions between STP and STE which are not executed.

3-114

Chapter 2 Instructions

STP / STE

2.4 Instruction Details

Tips
Operation when STP turns OFF Using a timer in an STP block When a timer is used in a program defined with an STP instruction, the operation is as follows: a) 1000 is reset immediately when the timer turns ON. The STE instruction is started with the timer remaining ON.
a)
0000 1000 SET STP 1000 T000 1000 T000 0500 #00050 T000 1000 RES STE

Scan

Timer remains ON.

Jump

b) 1000 is not reset immediately when the timer turns ON but is reset at the next scan. The timer is reset before the STE instruction is started.

b)
0000 1000 SET STP 1000 T000 T000 1000 1000 RES 0500 #00050 T000 STE

Scan

Timer is reset.

Timer remains ON.

Jump

1 2

Usage of STG and STP instructions STG instruction Use the STG instruction for process progression with branches.
0000 1000 STG 0500 0001 0002 1001 STG 1002 STG 0501 0502 0003 ENDS 0004 ENDS 1000 SET 1001 JMP 1002 JMP

STP instruction Use the STP instruction for process progression without branches.
0000 1000 SET STP 1000 0002 0001 1000 RES 1001 SET 0500

STE STP 1001 0003 0004 1001 RES 1002 SET 0501

STE

Chapter 2 Instructions

3-115

STP / STE

2.4 Instruction Details

Operands
Visual KV 0000 to 17915 T000 to T249 C000 to C249 CTC0 to CTC3 KV-300 0000 to 0009 0500 to 6915 *7000 to 9915 T000 to T249 C000 to C249 CTC0 to CTC3 KV-10/16 0000 to 2915 T000 to T063 C000 to C063 CTC0 to CTC3 KV-24/40/80 0000 to 6915 T000 to T119 C000 to C119 CTC0 to CTC3

Note that of I/O Nos.7000 to 9915, those that are not assigned to expansion or remote I/O unit ports can be used for internal utility relays.

Key operation
FUN FUN
LDB

4 4

ANB

5 3

ENT
R-SRCH

Operand
(nnnn)

ENT
R-SRCH

LDB

ORL

ENT
R-SRCH

ENT
R-SRCH

Application of STP and STE instructions


Process progression When input relay 0000 turns ON, output relay 0500 turns ON for 2 seconds, then output relay 0501 turns ON for 3 seconds automatically.

2
0000 1000 DIFU 1000 1001 SET STP 1001 T000 T000 1001 T000 1001 RES 0500 #00020 T000 1002 SET STE STP 1002 T001 T001 1002 1002 RES 0501 #00030 T001 STE END ENDH

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 0020 0021 0022 0023 0024 Instruction LD DIFU CON AND SET STP LD RES LDB OUT LD TMR LD SET STE STP LD RES LDB OUT LD TMR STE END ENDH Operand 0000 1000 1000 1001 1001 T000 1001 T000 0500 1001 000 #00020 T000 1002 1002 T001 1002 T001 0501 1002 001 #00030

The double coils in different STP blocks operate properly.

3-116

Chapter 2 Instructions

ITVL

2.4 Instruction Details


ITVL PLS DMnnnn PAUSE mmmm RES

ITVL: Interval Timer

ITVL #TM

Measures pulse-to-pulse interval or pulse width in specified mode.

Example
0000 0001 0002 ITVL PLS DM0000 PAUSE 1000 RES

"Pulse" input

Beginning of workpiece data table "Measurement Pause" input First flag relay

"Reset" input

Coding
Line No. 0000 0001 0002 0003 Instruction LD LD LD ITVL Operand 0000 0001 0002 DM0000 1000

Operation in the above example


Measures pulse-to-pulse interval or pulse width for input relay 0000. ITVL instruction has two functions: Measures pulse-to-pulse interval (cycle) or pulse width. (Minimum unit: 10 ms) Obtains the average of the contents of data memory. Each input has the following functions: PLS Executes measurement. In data memory measurement, however, PLS input is disabled in modes 0006 to 1999. Values are fetched only at the scan when PLS input is ON in modes 10000 to 11999. The measured value is written into the specified data memory (DM). In the above example, the measured value of input relay 0000 is written into DM0004 (DM0000 + 4 addresses). PAUSE Pauses the measurement when turned ON. RES Initializes the contents of data memory (DM) when turned ON. In the above example, DM0004 to DM0015 are reset to "#00000". DM0000 to DM0003 are designated as the area to write the initial setting.

1 2

Note: ITVL operand relay Nos. cannot be duplicated in a program.

Operands

Visual KV

KV-300

KV-10/16

KV-24/40/80

Data table No.: Data table No.: DM0000 to DM0985 DM0000 to DM1985 DM0000 to DM1984 DM0000 to DM9985 1000 to 1912 1000 to 1912 1000 to 1912 Flag relay No.: 3000 to 6912 Flag relay No.: 1000 to 1912 3000 to 9912 3000 to 9912 *7000 to 9915 * Note that of I/O Nos.7000 to 9915, those that are not assigned to expansion or remote I/O unit ports can be used for internal utility relays.

Key operation
ITVL #TM First operand
(nnnn)

Second operand
(mmmm)

ENT
R-SRCH

Chapter 2 Instructions

3-117

ITVL

2.4 Instruction Details

Setting procedure
The ITVL instruction reserves 16 data memories: 1 specified data memory and 15 successive data memories. It also reserves 4 relays: 1 specified relay and 3 successive relays. Note: Do not use the 16 data memories and 4 relays specified with the ITVL instruction for any other purpose. Data memory (DM) assignment Set the initial setting data to the first four data memories.
Data memory
DM XX + 00 01 02 03 04 05 06 07 08 Mode MAX value MIN value Preset No.of measurements Measured value MAX measured value MIN measured value Mean No.of measurements performed* Higher digits* Specifies measurement mode (0 to 5). Presets highest value in measurement range. Presets lowest value in measurement range. Specifies number of measurements for mean calculation (1 to 65535). Stores current measured value. Stores Max. measured value. Stores Min. measured value. Stores mean value. Stores number of times measurements actually performed. Stores higher 16 bits of accumulating total of measurements. (#00000 to #65535) ($0000 to $FFFF) Stores lower 16 bits of accumulating total of measurements. (#00000 to #65535)($0000 to $FFFF) Used for computing measured values, Max. measured values, Min. measured values, mean values, and accumulating totals. (Cannot be used) Initial setting is to be specified by user.

09

10

Lower digits*

11 to 12

Work memory

Relay assignment
Relay
Relay +0 +1 MIN error Every measurements completion Measurements completion for mean calculation MAX error

Turns ON and remains ON for one scan time when measured value exceeds Max preset value. Turns ON and remains On for one scan time when measured value goes below Min preset value. Turns ON at completion of every measurement and remains ON for one scan time. Turns ON for one scan time at completion of the specified No. of measurements for mean value calculation, then remains ON for one scan time.

+2

+3

Note 1: When 0 (zero) is specified as the number of measurements, mean value calculation will not be performed. In this case, the number of measurements will be accumulated until RES input turns ON, which may cause overflow. Note 2: Data in the No. of measurements, Higher digits, and Lower digits are reset when the No. of measurements performed reaches the preset No. of measurements. Note 3: Once ITVL instruction is defined in MC-MCR block, the measurement process pauses when the block is not executed. Note 4: For programs containing subroutines, interrupts, steps, or stages, ITVL instructions must be defined so that they are executed unconditionally for every scan time.

3-118

Chapter 2 Instructions

ITVL

2.4 Instruction Details


Mode setting Write the desired mode No. into the first data memory. Mode for pulse measurement
Pulse-to-pulse interval measurement Pulse-to-pulse Unit interval 0 2 4 10 m sec 100 m sec 1 sec Pulse width measurement Mode 1 3 5 Pulse width Unit 10 m sec 100 m sec 1 sec

Mode

Mode for DM measurement Write the desired mode No. into the specified data memory.

Example Write "#0006" to obtain the average of the contents of DM0006.


Mode No. 10000 10001 10005 0006 0007 1999 2000 to 9999 10006 10007 11999 DM No. DM0000 DM0001 DM0005 DM0006 DM0007 DM1999 Description Measure the contents of DM0000 and obtain the average. Measure the contents of DM0001 and obtain the average. Measure the contents of DM0005 and obtain the average. Measure the contents of DM0006 and obtain the average. Measure the contents of DM0007 and obtain the average. Measure the contents of DM1999 and obtain the average.

1 2

12000 or more Not provided Cannot be used.

Note 1: When the mode No. is set to 10000 through 11999, values are fetched at the scan only when the PLS input relay is ON. Note 2: When the average of a data memory is calculated, values "32768" to "65535" are converted into corresponding compliment numbers (-32767 to -1) . Note 3: Some data memories after DM1000 are assigned to special functions. Be careful when specifying data memory for the ITVL instruction.
Refer to "1.3.10 Data Memories" (p. 3-19) for data memory assignments.

Chapter 2 Instructions

3-119

ITVL

2.4 Instruction Details

Application of ITVL instruction


This section describes examples of pulse interval measurement. Pulse interval measurement Turns ON output relay 0500 for 3 seconds when the pulse interval is not within the range of 490 to 510 ms.
2008 2008 2008 2008 0000 0001 0002 1000 T000 #00000 DM0000 Sets mode 0 (Unit:10 ms). LDA STA #00051 DM0001 Sets max. setting value of measurement range to 510 ms. LDA STA #00049 DM0002 Sets min. setting value of measurement range to 490 ms. LDA STA #00010 DM0003 LDA STA Sets number of averaging measurements to 10. ITVL PLS DM0000 PAUSE 1000 RES 0500 #00030 T000
Resets measurement when input relay 0002 turns ON. 1000 turns ON for one scan when measured value exceeds max. setting value (510 ms). 1001 turns ON for one scan when measured value is below min. setting value (490 ms). Pauses measurement while input relay 0001 turns ON. Measures pulse interval when input relay 0000 turns ON.

1001 0500

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 Instruction LD LDA CON STA LD LDA CON STA LD LDA CON STA LD Operand 2008 #00000 DM0000 2008 #00051 DM0001 2008 #00049 DM0002 2008 Line No. 0013 0014 0015 0016 0017 0018 0019 0020 0021 0022 0023 0024 0025 Instruction Operand LDA #00010 CON STA DM0003 LD 0000 LD 0001 LD 0002 ITVL DM0000 1000 LD 1000 OR 1001 OR 0500 ANB T000 OUT 0500 TMR 000 #00030

Timing diagram
0000
ON OFF

500ms

400ms

600ms
ON

1000

1 scan

1001

ON

1 scan

0500

ON

ON

3 sec.

3 sec.

3-120

Chapter 2 Instructions

ITVL

2.4 Instruction Details


A/D data measurement Turns ON output relay 0500 when the analog input from the KL-4AD to DM1600 (range: 1 to 5 V) exceeds +3 V. Turns ON output relay 0501 when the input is below +2 V. Writes the average into DM0100. Refer to the "KL-4AD/KL-2AD Users Manual" for data memory settings for the KL4AD.
2008 2008 2008 2008 #01600 DM0000 LDA STA

Measures contents of DM1600.

#02000 DM0001 Sets max. setting value to +3 V (2000). LDA STA #01000 DM0002 Sets min. setting value to +2 V (1000). LDA STA #00100 DM0003 Sets number of averaging measurements to 100. LDA STA

2003 0001 0002

ITVL PLS DM0000 PAUSE 1000 RES


Pauses measurement when input relay 0001 turns ON. Resets measurement when input relay 0002 turns ON.

1 2

1000 1001 1003

0500
0500 turns ON when measured value exceeds max. setting value.

0501
0501 turns ON when measured value is below min. value.

DM0007 DM0100 LDA STA Writes average into DM0100 every 100 measurement.

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 Instruction LD LDA CON STA LD LDA CON STA LD LDA CON STA LD LDA DM0002 2008 #00100 DM0001 2008 #01000 DM0000 2008 #02000 Operand 2008 #01600 Line No. 0014 0015 0016 0017 0018 0019 0020 0021 0022 0023 0024 0025 0026 Instruction CON STA LD LD LD ITVL LD OUT LD OUT LD LDA STA DM0003 2003 0001 0002 DM0000 1000 1000 0500 1001 0501 1003 DM0007 DM0100 Operand

Chapter 2 Instructions

3-121

CALL / SBN / RET

2.4 Instruction Details


RES RES CALL: Subroutine Call FUN 0 0 : AND SBN: Subroutine Entry FUN ORL 3 8 : RET: Subroutine Return ORL ORL
nn CALL SBN nn RET

FUN 3

Executes subroutine specified by operand. Represents beginning of subroutine specified by operand. Represents end of subroutine.

Example
0000 00 CALL END SBN 00 RET ENDH

Coding
Line No. 0000 : : : : : : : : : Instruction : : LD CALL : END SBN : RET ENDH Operand : : 0000 00 : : 00 : : :

Description
When input relay 0000 turns ON, the subroutine specified by SBN00 and RET is executed. When the subroutine ends, instructions following CALL are executed. When the input relay is ON, the CALL instruction executes the subroutine specified by the operand. A subroutine program must be defined between the SBN and RET instructions. A subroutine must be defined between END and ENDH instructions. Once a CALL instruction has been encountered, program execution transfers to the subroutine specified by the SBN and RET instructions. Once a RET instruction has been encountered, program execution returns to the instruction immediately following the CALL instruction.

Operand
CALL SBN RET 00 to 99 00 to 99

Key operations
FUN FUN FUN
RES

0 3 3

ORL

3 8 3

ENT
R-SRCH

Operand

ENT
R-SRCH

ORL ORL

AND ORL

ENT
R-SRCH

ENT
R-SRCH

3-122

Chapter 2 Instructions

CALL / SBN / RET

2.4 Instruction Details

Application of subroutine
Program
2008

A)
00 CALL

Normal scan Program


B)
END SBN 00

Subroutine

Subroutine program
RET ENDH

When CALL00 is encountered during normal scan execution, the subroutine is executed. At the completion of this subroutine, program execution returns to program at B) immediately following CALL00. Then, the normal scan is continued until an END instruction is encountered. With no CALL instruction
Program
A)

With CALL instruction


Program
A)

1 2
0000 00 CALL 0000 00 CALL

Subroutine program

Program

B)

Program

B)

Nesting structure of a subroutine Subroutine instructions can be nested up to 4 levels deep. A subroutine which is called from another subroutine should be defined before the call.
0001 00 CALL

Program
END SBN 01

Subroutine program
RET SBN 00 0000 01 CALL RET ENDH

Call

Chapter 2 Instructions

3-123

CALL / SBN / RET

2.4 Instruction Details


Calling a subroutine from an interrupt program Subroutines can be called from interrupt programs. A subroutine which is called from an interrupt program should be defined before the call.
0001 0500

Program
END SBN 00

Subroutine program
RET INT 0000 0002 00 CALL RETI ENDH

Call

Note 1: Subroutine Nos. for SBN instructions cannot be duplicated in a program. (It can be duplicated for CALL instructions.) Note 2: When a subroutine is executed, the scan time is extended by the time needed for subroutine execution. Note 3: The following instructions cannot be used in subroutines: STG, JMP, ENDS, INT, RETI, and MEMSW Note 4: The following instructions can be used only in subroutines which are executed every scan time: TMR, TMH, TMS, C, SFT, UDC, DIFU, DIFD, W-UE, W-DE, HKEY, ITVL, and Differentiation type instruction (@xxx)

3-124

Chapter 2 Instructions

FOR / NEXT

2.4 Instruction Details


SET ORB
FOR nnnn NEXT

FOR: Repeat Start NEXT: Repeat End


Example
2008

FUN 1 FUN 2

6 9

: :

ANL OR

Executes program between FOR and NEXT by number of times specified by operand. Represents end of repetition.

00 CALL END SBN 00

2002

#00100 LDA

TM02 STA

#00000 LDA FOR #00050 TM02 INC NEXT RET

Specify the first DM No.(DM100) Specify the number of DMs to be initialized. #TM02

2002

STA

1 2
ENDH

Coding
Line No. 0000 0001 : 0099 0100 0101 0102 0103 0104 0105 0106 Instruction LD CALL : END SBN LD LDA CON STA CON LDA #00000 0199 TM02 00 2002 #00100 Operand 2008 00 Line No. 0107 0108 0109 0110 0111 0112 0113 Instruction FOR LD STA CON INC NEXT RET : : : ENDH TM02 Operand #00050 2002 #TM02

Description
Use FOR-NEXT instructions in a subroutine program (between SBN and RET) to initialize data memory (DM0100 through DM0149) when the operation is started. The indirect addressing method is used to change the data memory, so the initialization is completed when the TM02 value becomes "50 + 1" between the FOR and NEXT instructions.

"Indirect addressing" (p. 3-127)

The FOR instruction takes either of the following two types of operands: the number of repetitions or the location (DM No.) of the data memory containing the number of repetitions. Define the program to be repeated between the FOR and NEXT instructions. The FOR instruction repeats the desired sequence by the specified number of times during each scan time.

Chapter 2 Instructions

3-125

FOR / NEXT

2.4 Instruction Details

Tips
Note 1: The FOR-NEXT instruction pair repeats the program for a specified time period at each scan. It usually is used in steps or subroutines. Note 2: When a large number of loops or long programs are defined between FOR and NEXT instructions, the processing time for one scan may become too long, resulting in "Cycle time error". In such a case, reduce the number of loops or shorten the ladder program. The FOR-NEXT instruction set can be nested up to 8 levels deep. Nine or more nested levels will result in a FOR-NEXT error.
FOR #05 FOR #02 FOR #05 NEXT NEXT NEXT

1) 2) 3)

After repeating FOR-NEXT 3) five times, program execution transfers to the instructions following the NEXT instruction. FOR-NEXT 2) is repeated twice while FOR-NEXT 3) is executed once. Thus, FOR-NEXT 2) is executed 10 times. FOR-NEXT 1) is repeated 5 times while FOR-NEXT 2) is executed once. Thus, FOR-NEXT 1) is executed up to 50 (5 x 2 x 5) times.

Operands
Visual KV KV-300 KV-10/16 KV-24/40/80 #0000 to #65535 DM0000 to DM1984 #00000 to #65535 #00001 to #65535 DM0000 to DM1999 DM0000 to DM9999 DM0000 to DM0999 DM0000 to DM1999 TM02 to TM28 TM00 to TM29 TM00 to TM29 TM00 to TM29

Key operation
FUN FUN
SET

1 2

ORB

6 9

ENT
R-SRCH

Operand ENT
R-SRCH

ENT
R-SRCH

ANL

OR

ENT
R-SRCH

3-126

Chapter 2 Instructions

FOR / NEXT

2.4 Instruction Details

Indirect addressing
Indirect addressing Indirect addressing is used to so you don't have to use fixed data memories or relay Nos. when the contents of data memory or a relay is stored in internal registers, or when the contents of the internal memory is stored in data memory or a relay. Method for indirect addressing Specify the operand for instructions as "#TMxx". The contents of "TMxx" is considered to be the specification No. (indirect addressing).

Example When TM02 value is "0000", "#TM02" represents DM0000. When TM02 value is "10000", "#TM02" represents 0000 (relay).
Any of "02" through "29" can be specified for "xx". Specify the desired decimal number for "xx". Numbers "0000" through "1999" specify DM0000 through DM1999 (data memory). Numbers "10000" through "27915" specify 0000 through 17915 (relay).

Example: LDA #TM15


TM15 value 20 11000 Data entered into internal register DM0020 1000 to 1015

This is the same operation whether "LDA DM0020" or "LDA 1000" is specified. The specified data memory or relay can be changed as desired by changing the value of TM15. Example: STA #TM02
TM02 value 00 13000 Specified destination DM0000 3000 to 3015

1 2

This is the same operation whether "STA DM0000" or "STA 3000" is specified. The specified data memory or relay can be changed as desired by changing the value of TM02. Range of DM and relay Nos. that can be specified by "TMxx"
TMxx value 0000 to 1999 2000 to 9999 10000 to 27915 DM/relay DM0000 to DM1999 Cannot be used. 0000 to 17915

Instructions which can use indirect addressing: Specify "#TMxx" as an operand relay. LDA, @LDA, STA, @STA, CMP, @CMP, ADD, @ADD, SUB, @SUB, MUL, @MUL, DIV, @DIV, ANDA, @ANDA, ORA, @ORA, EORA, @EORA Note 1: "2000" to "9999" cannot be used as a TMxx value. Note 2: If there is no data memory or relay corresponding to the number specified with "#TMxx", special utility relay 2012 turns ON.

Chapter 2 Instructions

3-127

FOR / NEXT

2.4 Instruction Details


Data memory block transfer
The contents of DM0000 are transferred to DM0100. The block of 100 data is transferred. Transfer a block of data. The contents of DM0099 are transferred to DM0199.

DM0000

DM0099 DM0100

DM0199

Comparison between a program with normal addressing and one with indirect addressing.
Program with indirect addressing
0000 1000 1000 DIFU 00 CALL END SBN 00 2002 #00000 LDA TM02 STA #00100 LDA TM03 STA FOR #0100 1000 1000 DM0098 DM0198 LDA STA DM0099 DM0199 LDA STA END ENDH 2002 #TM02 LDA #TM03 STA TM02 INC TM03 INC NEXT RET ENDH

Program with normal addressing


0000 1000 1000 1000 1000 1000 DIFU DM0000 DM0100 LDA STA DM0001 DM0101 LDA STA DM0002 DM0102 LDA STA DM0003 DM0103 LDA STA

Program steps are reduced by one-eighth.

No. of data memory to be transferred.

1) 2) 3) 4)

The contents of DM0000 are transferred to DM0100. The contents of DM0001 are transferred to DM0101. The contents of DM0002 are transferred to DM0102. The contents of DM0099 are transferred to DM0199.

The first No. of the source DM block is specified (DM0000). The first No. of the destination DM block is specified (DM0100). The contents of the DM indirectly addressed by "#TM02" is transferred to the internal register. The contents of the internal register are transferred to the DM indirectly addressed by "#TM03". Add "1" to both "TM02" and "TM03" to increment the Nos. of the source and destination DMs by one.

3-128

Chapter 2 Instructions

FOR / NEXT

2.4 Instruction Details

Description
On line 1), "TM02" is assigned to the first No. of the source 0000 and "TM03" is assigned to the first No. of the destination 0100. This is the initial setting. On lines 2) to 4), the contents of DM0000 to DM0099 are transferred to DM0100 to DM0199. The ladder program on line 3) is executed 100 times in one scan.

1st operation: TM02 value: 0000, TM03 value: 0100


2002 #TM02 LDA
DM0000 is indirectly addressed.

#TM03 STA
DM0100 is indirectly addressed.

TM02 INC
Add "1" to the current value of "TM02".

TM03 INC
Add "1" to the current value of "TM03".

2nd operation: TM02 value: 00001, TM03 value: 0101


2002 #TM02 LDA
DM0001 is indirectly addressed.

#TM03 STA
DM0101 is indirectly addressed.

TM02 INC
Add "1" to the current value of "TM02".

TM03 INC
Add "1" to the current value of "TM03".

This operation is repeated.

1 2

100th operation: TM02 value: 0099, TM03 value: 0199


2002 #TM02 LDA
DM0099 is indirectly addressed.

#TM03 STA
DM0199 is indirectly addressed.

TM02 INC
Add "1" to the current value of "TM02".

TM03 INC
Add "1" to the current value of "TM03".

When the ladder program on line 3) is repeated 100 times, the contents of the specified DM block are transferred.

Chapter 2 Instructions

3-129

FOR / NEXT

2.4 Instruction Details

Application of SBN-RET and FOR-NEXT instructions


Data memory shift Shifts the contents of the current data memory (DM) to the next DM at the rising edge of the synchronous (timing) signal. As the number of DMs to be shifted increases, the required scan time becomes longer.
0000 1000 DIFU Synchronous signal 1000 #00010 TM02 LDA STA Shift start DM No. (DM0010) is designated. #00030 TM03 LDA STA Shift end DM No. (DM0030) is designated. 00 CALL END SBN 00 2002 TM03 LDA #00001 ADD TM04 STA TM02 SUB TM05 STA

Data is shifted from DM0010 to DM0030.

Shift level
2002 TM03 DEC TM04 DEC #TM03 #TM04 LDA STA Indirect addressing is used to designate DM Nos.

FOR TM05

NEXT

Program lines which execute data shift are grouped as a subroutine.

2002

#00000 #TM02 LDA STA Shift start DM No. is cleared to "#00000" after data is shifted.

RET ENDH

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 Instruction LD DIFU CON AND LDA CON STA CON LDA CON STA CON CALL END SBN LD LDA CON ADD CON #00001 00 2002 TM03 00 TM03 #00030 TM02 1000 #00010 Operand 0000 1000 Line No. 0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 0040 Instruction STA CON SUB CON STA FOR LD DEC CON DEC CON LDA CON STA NEXT LD LDA CON STA RET ENDH #TM02 2002 #00000 #TM04 #TM03 TM04 TM05 TM05 2002 TM03 TM02 Operand TM04

3-130

Chapter 2 Instructions

HKEY

2.4 Instruction Details

HKEY: 16-Key Input

FUN 1

SET LD

HKEY nnnn mmmm

Reads hexadecimal key data on timesharing basis and outputs these data to special utility relays 2900 to 2915.

Example
0005 HKEY 0000 0500

Input relay

Output relay

Coding
Line No. 0000 0001 Instruction LD HKEY Operand 0005 0000 0500

Description

When input relay 0005 turns ON, the operand hexadecimal key data is read. HKEY instruction employs four inputs and four outputs arranged as shown below.
Refer to "Fetching 16-key input" (p. 3-133) for the programming example.

1 2
24 VDC + COM COM 000 500 001 KV 501 002 502 003 503
0 4 8 C 1 5 9 D 2 6 A E 3 7 B F

Pressing two or more keys simultaneously is invalid.

Pressing two or more keys simultaneously is OK. (With diode)

The HKEY instruction employs four input relays and four output relays from the specified number. Inputs are processed on a time-sharing basis, so that input processing requires 8 scan time cycles (approx. 160 msec when the scan time is 20 msec or less). When a hexadecimal key is pressed, the HKEY instruction turns ON the corresponding special utility relay (2900 to 2915).
Relay No. 2900 Hex key 0 2901 1 2902 2 2903 3 2904 4 2905 5 2906 6 2907 7 2908 8 2909 9 2910 A 2911 B 2912 C 2913 D 2914 E 2915 F

The special utility relay status indicates whether two or more keys can be pressed simultaneously or whether a key input read operation has completed, as shown in the following table:
Relay No. Status
R: Reading

2814 R/W ON: Pressing two or more keys simultaneously is not valid.
W: Writing

2815 R ON: Key input read operation has completed.

Note 1: An HKEY instruction can be defined only once in a program. Note 2: The HKEY instruction turns output relays ON/OFF every scan time. Connect the device with transistor output. Note 3: If the scan time is shorter than 8 ms, set the input time constant smaller than the scan time.

Chapter 2 Instructions

3-131

HKEY

2.4 Instruction Details


Note 4: When two or more keys are pressed simultaneously even once during the scan while relay 2814 is ON, relays 2900 through 2915 keep the current status as soon as relay 2815 turns ON. Note 5: The HKEY instruction does not properly operate if the scan time is longer than 200 ms. Note 6: When the expansion I/O module is used as an operand, the fetch may fail unless the scan time is fixed to 2 ms or longer.

Operands
Visual KV 0000 to 0415 0500 to 0915 KV-300 00000 to 00009 10000 to 10415 : 17000 to 17415 00500 to 00503 10500 to 10915 : 17500 to 17915 KV-10/16/24/40/80 0000 to 0415 0500 to 0915 Input relay Output relay Input relay Output relay Input relay Output relay

Key operation
FUN
SET

LD

ENT
R-SRCH

Input relay

Output relay

ENT
R-SRCH

2 Application of HKEY instruction


Changing the preset value of internal counters using a BCD digital switch Coding
2002 0005 2815 2900 LDA 0001 #09999 C000 0000 C000 0600 HKEY 0104 0512 C000 STA END ENDH

TBIN

Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 0014 0015

Instruction Operand LD 2002 ANB 0001 C 000 #09999 0000 CON AND C000 OUT 0600 LD 0005 HKEY 0104 0512 LD 2815 LDA 2900 CON TBIN CON STA C000 END ENDH

As soon as 0005 turns ON, the preset value is replaced with the new preset value specified by the digital switches.
"TBIN instruction" (p. 3-180), "LDA, STA instructions" (p. 3-140)

The digital switches are connected to the KV PLC as shown in the following diagram: (Be sure to add the diodes at the specified points.) The preset values range from #0000 to #9999. The preset value is updated as soon as special utility relay 2815 turns ON.

3-132

Chapter 2 Instructions

HKEY

2.4 Instruction Details

100

101

102

103

BCD Digital switch

Diode

24 VDC

+ -

COM COM

1 0104 0512

2 0105 KV 0513

4 0106 0514

8 0107 0515

Fetching 16-key input Writes the following 16-key input value into DM0000 as 4-digit BCD. Pressing the [F] key clears the input value.
2008 2002 2815 2815 2900 LDA 2900 LDA 2010 2010 $03FF ANDA $03FF ANDA TM05 CMP TM05 CMP 2010 2010 TM05 STA TM05 STA 2814 SET HKEY 0000 0500 TM06 STA

DMX

1 2
TM06 STA DM0000 STA #00000 DW DM0000 END ENDH

DM0000 LDA 2815 2915

#04 SLA

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 Instruction LD SET LD HKEY LD LDA CON ANB ANDA CON CMP CON ANB STA CON DMX CON STA LD LDA Operand 2008 2814 2002 0000 0500 2815 2900 2010 $03FF TM05 2010 TM05 Line No. 0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 0040 Instruction Operand CON AND 2010 ANDA $03FF CON CMP TM05 CON ANB 2010 STA TM05 CON LDA DM0000 CON SLA #04 CON ORA TM06 CON STA DM0000 LD 2815 AND 2915 DW #0000 DM0000 END ENDH

TM06 2815 2900

Chapter 2 Instructions

3-133

2.4 Instruction Details

2.4.3 Arithmetic Instructions


Arithmetic instructions handle data as integers to perform arithmetic, comparative, or logical operations.

Instruction DW: Data Memory Write Trimmer In LDA/@LDA: Load A STA/@STA: Store A CMP/@CMP: Compare ADD/@ADD: Add SUB/@SUB: Subtract MUL/@MUL: Multiply DIV/@DIV: Divide ANDA/@ANDA: And A ORA/@ORA: Or A

Mnemonic DW TMIN (FUN50), @TMIN @(FUN50) LDA (FUN23), @LDA@ (FUN23) STA (FUN42), @STA@ (FUN42) CMP (FUN04), @CMP @(FUN04) ADD (FUN00), @ADD @(FUN00) SUB (FUN46), @SUB @(FUN46) MUL (FUN28),@ MUL @(FUN28) DIV (FUN11), @DIV @(FUN11) ANDA (FUN01), @ANDA @(FUN01) ORA (FUN31), @ORA @(FUN31) EORA (FUN15), @EORA@ (FUN15) SRA (FUN41), @SRA @(FUN41) SLA (FUN40), @SLA @(FUN40) RRA (FUN37), @RRA@ (FUN37) RLA (FUN35), @RLA @(FUN35) COM (FUN05), @COM @(FUN05) INC (FUN19), @INC @(FUN19) DEC (FUN07), @DEC@ (FUN07) MPX (FUN27), @MPX@(FUN27) DMX (FUN12), @DMX @(FUN12) TBCD (FUN47), @TBCD @(FUN47) TBIN (FUN48), @TBIN @(FUN48) ASC (FUN02), @ASC @(FUN02) RASC (FUN32), @RASC @(FUN32) ROOT (FUN36), @ROOT @(FUN36)

Reference page 3-136 3-138 3-140 3-140 3-146 3-150 3-150 3-150 3-150 3-159 3-161 3-164 3-166 3-166 3-169 3-169 3-171 3-172 3-172 3-176 3-176 3-180 3-180 3-183 3-183 3-185

EORA/@EORA: Exclusive Or A SRA/@SRA: Shift Right A SLA/@SLA: Shift left A RRA/@RRA: Rotate Right A RLA/@RLA: Rotate Left A COM/@COM: Complement INC/@INC: Increment Memory DEC/@DEC: Decrement Memory MPX/@MPX: Multiplexer DMX/@DMX: Demultiplexer TBCD/@TBCD: Transfer BCD TBIN/@TBIN: Transfer BIN ASC/@ASC: ASCII Convert RASC/@RASC: Reverse ASCII Convert ROOT/@ROOT: Square Root

3-134

Chapter 2 Instructions

2.4 Instruction Details

Internal register
KV executes all arithmetic instructions (i.e. data exchange) by using an internal register, in order to increase the processing speed. This section begins by describing details of the internal register. Internal register An internal register stores 16-digit binary data. That is, the resister uses 16 bits for storing ON-OFF status data (1-0 status data). The internal register is required when the KV performs arithmetic operation. Because this is not an instruction nor operand, it is not necessary to take into consideration how the internal register functions or operates. Arithmetic instructions executed using internal register
(Arithmetic instructions executed as binary code.)
Relay No.1. Current T/C value. 2. Constant 3. 4. (decimal, hexadecimal) LDA instruction
TMIN

Data memory, temporary memory

Data memory accessed in indirect addressing via temporary memory

D15

D14

D13

D12

D11

D10

D9

D8

D7

D6

D5

D4

D3

D2

D1

D0
CMP ADD SUB MUL DIV ANDA ORA EORA SRA SLA RRA RLA COM INC DEC MPX DMX TBCD TBIN ASC RASC

Constant

Internal register
STA direction

Data memories, temporary memories

1 2

Relay No

Preset T/C value. 5.

Data memory, temporary memory

Data memory accessed in indirect addressing via temporary memory

1. ON-OFF status of the specified relay and 15 successive relays is stored into the resister. 2. Current T/C value (decimal value = #*****) is automatically converted into a binary value and input to the internal register. 3. Constant (decimal value = #*****, hexadecimal value = $****) is automatically converted into a binary value and input to the internal register. 4. The range of numbers that can be specified is as follows: Decimal #00000 to #65535 Hexadecimal $0000 to $FFFF The constants can be entered by using #,@$ and the corresponding alphanumeric keys. (Pressing #,@$ once allows you to enter decimal values, and pressing twice to enter hexadecimal values.) 5. The contents of the internal register (binary) is automatically converted into a decimal value and (#*****) input to a timer/counter as the preset value. Note 1: The internal structure of the internal register is the same as that of the data memories. Although the data memories can store data when the power is being OFF, the internal register cannot do so. Note 2: Even for running one program, the contents of the internal register is rewritten each time when an instruction is executed. Note 3: The internal register cannot be monitored.

Chapter 2 Instructions

3-135

DW 2.4 Instruction Details

DW: Data Memory Write


Example

DW

nnnn DW DMmmmm

Directly writes constant into data memory.

First operand

2008

$0018 #00050 DW DW DM0000 DM0001


Second operand

Coding
Line No. 0000 0001 0002 0003 Instruction LD DW CON DW #00050 DM0001 Operand 2008 $0018 DM0000

When starting operation, $0018 is written into DM0000 and #00050 into DM0001.

Description
Values are directly written into data memories, without using the internal register.
D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0

2
Operand

D15 D14 D13 D12 D11 D10

D9

D8

D7

D6

D5

D4

D3

D2

D1

D0

Data memory

Note: The contents of the internal register and the arithmetic flag do not change even after the DW instruction is executed.

Tips
The DW instruction can be used to reset the contents of data memories.
2008 #00000 #00000 DW DW DM0000 DM0001

Operands
Visual KV KV-300 KV-10/16 KV-24/40/80 nnnn: nnnn nnnn nnnn #00000 to #65535 #00000 to #65535 #00000 to #65535 #00000 to #65535 $0000 to $FFFF $0000 to $FFFF $0000 to $FFFF $0000 to $FFFF DM mmmm: DMmmmm DMmmmm DMmmmm DM0000 to DM1999 DM0000 to DM9999 DM0000 to DM0999 DM0000 to DM1999

Key operation
DW reraly First operand Second operand ENT
R-SRCH

Arithmetic flag
2009, 2010, 2011 2012 No change No change

3-136

Chapter 2 Instructions

@xxxx 2.4 Instruction Details Executes instruction only at rising edge of input to input relay.

@xxxx: Differentiation
Example

#,$ FUN

xxxx

Differentiation type instruction

Every-scan type instruction

0000

DM0000 INC

0000

DM0000 INC

Description
Arithmetic instructions have two instruction types: differentiation type and everyscan type. The differentiation type instruction is executed only at the rising edge of input relay 0000. The every-scan type instruction is executed every scan time while input relay 0000 is ON.

Timing diagram
Every-scan type instruction Differentiation type instruction

0000

ON OFF

0000

ON OFF

INC

Stopped

Executed

Stopped

INC

Stopped

Stopped

1 2

Executed only once at the rising edge of input relay 0000.

Instructions with the DIFFERENTIATION function are as follows: LDA, SAT, CMP, ADD, SUB, MUL, DIV, ANDA, ORA, EORA, SRA, SLA, RRA, RLA, COM, INC, DEC, MPX, DMX, TBCD, TBIN, ASC, RASC, ROOT

Note:
0000 DM0000 INC

In the top program, an INC instruction is executed every scan time, incrementing the contents of DM0000 by one, while input relay 0000 is ON. In the middle program, an INC instruction is executed and the contents of DM0000 is incremented only when input relay 0000 is turned from OFF to ON.

0000

DM0000 INC

0000

1000 DIFU

1000

DM0000 INC

The bottom program uses the every-scan type instruction which performs the same operation as the differentiation type instruction.

Operands Key operation

#,$

FUN

Function No.

ENT
R-SRCH

Chapter 2 Instructions

3-137

TMIN / @TMIN 2.4 Instruction Details

TMIN: Trimmer In @TMIN: Trimmer Setting

FUN 5 @

ANB RES

:
0

n TMIN n TMIN

#,$ FUN

ANB RES

Inputs numerical value specified by digital trimmer of access window (0 to 65535) to internal register.

T000 preset value can be changed with trimmer as follows (#00000 to #65535):
Inputs trimmer rotation angle of 0 to internal register. Transfers contents of internal register to timer T000 for use as preset value.

2002 0000

0 TMIN #00010 T000

T000 STA T000 0500


Turns ON output 0500 when current value of T000 reaches "#00000". Timer T000 operates as ON-delay timer when 0000 is ON.

Coding
Line No. 0000 0001 0002 0003 0004 Instruction LD TMIN CON STA LD Operand 2002 0 T000 0000 Line No. 0005 0006 0007 0008 Instruction TMR CON AND OUT Operand 000 #65535 T000 0500

Description
The TMIN instruction transfers the value of the KV series digital trimmer (0 to 65535) to the internal register. Additionally, if this value is transferred to a timer, counter, relay, or data memory (by using the STA instruction), the numeric data of the destination can be changed without modifying the program.
Timer/counter preset value Relay ch No. Data memory Temporary memory Destination

TMIN

Internal register

STA

Digital trimmer value of access window [0 to 65535]

Input

Numeric data 0 to 65535

Transfer

Note: To check the setting value of the digital trimmer with the KV-P3E(01) handheld programmer, select the "READ TRIMMER SETTING" function (FUN73). (Only values 0 to 9999 can be displayed.) The @TMIN instruction is executed only once at the rising edge of the input relay. Refer to "Chapter 3: Access Window" on page 1-79 for the functions and operation procedures for the digital trimmer of the Access Window.

Operands
Visual KV 0, 1 KV-300/24/40/80 0, 1 KV-10/16 0

Key operation
FUN
ANB

Arithmetic flag

#,$

FUN

RES

ENT
R-SRCH

Operand

ENT
R-SRCH

2009 2010

No change Turns ON when "0" is entered by the TMIN instruction. Turns OFF at other times. 2011, 2012 No change

3-138

Chapter 2 Instructions

TMIN / @TMIN 2.4 Instruction Details

Applications of TMIN (Analog timer) instruction


Changing the timer setting value Uses the digital trimmer (TMIN0) to change the setting value of a timer (0 to 6553.5 sec.).
2002 0000 0500 T000 0 TMIN T000 STA #00010 T000 0500

Coding
Line No. 0000 0001 0002 0003 0004 Instruction LD TMIN CON STA LD Operand 2002 0 T000 0000 Line No. 0005 0006 0007 0008 Instruction OR TMR ANB OUT Operand 0500 000 #00010 T000 0500

Changing setting values for multiple timers Uses the digital trimmer (TMIN0) to change setting values for multiple timers (0 to 6553.5 sec.).
2002 0000 0500 0001 0501 0002 0502 T002 T001 T000 0 TMIN T000 STA T001 STA T002 STA #00010 T000 0500 #00010 T001 0501 #00010 T002 0502

1 2

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 Instruction LD TMIN CON STA CON STA CON STA LD OR TMR ANB Operand 2002 0 T000 T001 T002 0000 0500 000 #00010 T000 Line No. 0012 0013 0014 0015 0016 0017 0018 0019 0020 0021 0022 Instruction OUT LD OR TMR ANB OUT LD OR TMR ANB OUT Operand 0500 0001 0501 001 #00010 T001 0501 0002 0502 002 #00010 T002 0502

In the above example, T000, T001, and T002 have the same setting value.

Chapter 2 Instructions

3-139

LDA / @LDA / STA @STA

2.4 Instruction Details


nnnn LDA nnnn LDA nnnn STA nnnn STA

LDA: Load A @LDA: Load A STA: Store A @STA: Store A

FUN 2 @

ANL ORL

3 2 3 4

#,$ FUN

ANL ORL

Inputs value specified by operand to internal register.

FUN 4 @

LDB ORL LDB ORL

#,$ FUN

Transfers contents of internal register to destination specified by operand.

The LDA instruction inputs each data item to the internal register. The STA instruction transfers the contents of the internal register to the specified destination.
Source
1 Constant 2 T/C current value

Input Decimal Hexadecimal


T C (#XXXXX) ($XXXXX) XXX XXX XXXX XX

Storage

Transfer

Destination
T/C preset value T C XXX XXX XXXX XX 5

Internal register

LDA

STA

Data memory DM 3 Temporary memory TM 4 Relay No.

Data memory DM Temporary memory TM

Relay No. XXXX

Relay No.

Relay No. XXXX 7

(Data type: operand)

(Data type: operand)

"Internal Register" (p. 3-126)

Operands
Visual KV LDA STA 0000 to 0500 to 17915 1915 T000 to 2100 to T249 17915 (Current value) C000 T000 to to 249 T249 (Current (Preset value) value) CTH0 to C000 CTH1 to C249 (Preset value) DM0000 to CTC0 to DM1999 CTC3 TM00 to DM0000 to TM31 DM1999 #00000 to TM00 #65535 to TM29 $0000 to #TM00 to $FFFF #TM29 #TM00 to #TM29 KV-300 LDA STA 0000 to 0009 0500 to 0500 to 17915 1915 T000 to T249 C000 to C249 CTH0 to CTH1 DM0000 to DM9999 TM00 to TM31 #00000 to #65535 $0000 to $FFFF #TM00 to #TM29 2100 to 17915 T000 to T249 C000 to C249 CTC0 to CTC3 DM0000 to DM9999 TM00 to TM29 #TM00 to #TM29 KV-10/16 LDA STA 0000 to 2915 T000 to 0500 to T063 1915 C000 to C063 CTH0 to CTH1 DM0000 to DM0999 TM00 to TM31 #00000 to #65535 $0000 to $FFFF #TM00 to #TM29 2100 to 2915 T000 to T063 C000 to C063 CTC0 to CTC3 DM0000 to DM0999 TM00 to TM29 #TM00 to #TM29 KV-24/40/80 LDA STA 0000 to 6915 T000 to 0500 to T119 1915 C000 to C119 CTH0 to CTH1 DM0000 to DM1999 TM00 to TM31 #00000 to #65535 $0000 to $FFFF #TM00 to #TM29 2100 to 6915 T000 to T119 C000 to C119 CTC0 to CTC3 DM0000 to DM1999 TM00 to TM29 #TM00 to #TM29

Key operation
FUN
#,$ ANL

FUN FUN

ORL

ENT
R-SRCH

Operand

ENT
R-SRCH

LDB

#,$

FUN

ANL

ENT
R-SRCH

Operand

ENT
R-SRCH

3-140

Chapter 2 Instructions

LDA / @LDA / STA @STA

2.4 Instruction Details

Arithmetic flag
2009 2010 2011 2012 No change Turns ON when the contents of the internal register is "0" after "LDA #00000" is executed. Turns OFF at other times. No change Turns ON when the DM or relay indirectly addressed with #TM is out of range.
"Indirect addressing" (p. 3-127)

Application of LDA and STA instructions


Changing the counter setting value
0000
a)

#00100 LDA #00200 LDA #09999 C001 0001 C001

C001 STA C001 STA 0500

When 0000 is ON, #00100 is transferred as C001 preset value. When 0000 is OFF, #00200 is transferred as C001 preset value. When C001 current value equals to its preset value, 0500 turns ON.

0000
b)

0002

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 Instruction LD LDA CON STA LDB LDA CON STA LD C CON AND OUT C001 0500 C001 0002 001 #09999 0001 C001 0000 #00200 Operand 0000 #00100

1 2

Description In step a), contents of DM00100 is transferred to C001 via the internal register for use as the C001 preset value, when 0000 is ON. In step b) , contents of #00200 is transferred to C001 via the internal register for use as the C001 preset value, when 0002 is OFF. Although the C001 preset value is #09999 in the above example, any value except #00000 can be given because the preset value is changed to the specified value by turning ON/OFF 0000. Note 1: If an STA instruction is executed when the current value is larger than the preset value, the current value will be changed to the preset value. Note 2: Do not specify "#00000" as the setting value for C001.

Chapter 2 Instructions

3-141

LDA / @LDA / STA @STA

2.4 Instruction Details


Transferring the current counter value to data memory (DM)
0001 2002
a)

C010 LDA

#09999 C010 0000 DM0000 STA

The C010 current value is transferred to DM0000.

Coding
Line No. 0000 0001 0002 0003 0004 0005 Instruction LDB C LD LDA CON STA DM0000 Operand 0001 010 #099999 0000 2002 C010

Description In step a), the C010 current value is transferred via the internal register and stored into DM0000, throughout the operation. Transferring the contents of data memory as a setting value for a timer
0002
a)

DM0010 LDA DM0011 LDA #00010 T002 T002

T002 STA T002 STA 0500

2
b)

0002 0003

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 Instruction LD LDA CON STA LDB LDA CON T002 0002 DM0011 Operand 0002 DM0010 Line No. 0007 0008 0009 0010 0011 0012 Instruction STA LD TMR CON AND OUT T002 0500 Operand T0002 0003 002 #00010

Description In step a), contents of DM0010 is transferred to T002 via the internal register for use as the T002 preset value, when 0002 is ON. In step b), contents of DM0011 is transferred to T002 via the internal register for use as the T002 preset value, when 0002 is OFF. Although the preset value of T002 is #00010 in the above example, any value except #00000 can be given because the preset value is changed to the specified value by turning ON/OFF 0002. Once the counter value has been changed, the changed value will be stored until it is changed again. The setting values of timers and counters are reset to the original setting values after the power is turned OFF once and then ON again. Note 1: If an STA instruction is executed when the current value is larger than the preset value, the current value will be changed to the preset value. Note 2: Do not change the setting value of T002 to "#00000".

3-142

Chapter 2 Instructions

LDA / @LDA / STA @STA

2.4 Instruction Details


Outputting the input (ON/OFF status) of a basic unit directly to an expansion output unit The ON/OFF status of a KV series basic unit is output to a KV-E16T(P) unit connected next to the basic unit.
2002 0000 LDA 0600 STA

Coding
Line No. 0000 0001 0002 0003 Instruction LD LDA CON STA 0600 Operand 2002 0000

Description
Input (KV basic unit)
000 001 002 003 004 005 006 ON ON ON ON OFF OFF OFF OFF ON ON ON ON OFF OFF OFF OFF 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 0014 0015 0000 <LDA>

(Internal register) 1 : ON 16-bit 0 : OFF


1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 D10 D11 D12 D13 D14 D15 0600 <STA> 0600 0601 0602 0603 0604 0605 0606 0607 0608 0609 0610 0611 0612 0613 0614 0615

Output (KV-E16T(P))
ON ON ON ON OFF OFF OFF OFF ON ON ON ON OFF OFF OFF OFF 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15

1 2
Output

Input

007 008 009 010 011 012 013 014 015

Binary number

The LDA instruction transfers the input (ON/OFF status) of the KV basic unit to the internal register using binary numbers. The STA instruction outputs the binary data in the internal register as the ON/ OFF status from the KV-E16T(P) (output unit).
Refer to "1.3 Device Configuration" (p. 3-5) for relay number assignments.

Note 1: When "LDA 0004" and "STA 0604" are programmed in the above example, the LDA instruction can transfer inputs 0100 through 0103 to the internal register; however, the STA instruction cannot output data across the channels. As a result, the ON/OFF status of inputs 0100 through 0103 cannot be output even if they are fetched by the LDA instruction. Note 2: Relays 0000 through 0415 are assigned as input relays, and 0500 through 0915 are assigned as output relays.

"1.3 Device Configuration" (p. 3-5)

Chapter 2 Instructions

3-143

LDA / @LDA / STA @STA

2.4 Instruction Details


When a BCD (2-digit) digital switch is connected to inputs 0000 through 0007 and a toggle switch is connected to inputs 0008 through 0015 a) Use the value of the digital switch (2 digits) as the setting value of a counter (C001). b) The current value of the counter (C001) is output to 0500 to 0515 using BCD output. Coding
0008 0010 0011
b)

a)

0000 LDA C001 LDA

$00FF ANDA TBCD

TBIN 0500 STA

#09999 C001 0009 C001 STA

Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 0014 0015

Instruction LDB C LD LDA CON ANDA CON TBIN CON STA LD LDA CON TBCD CON STA

Operand 0008 001 #09999 0009 0010 0000 $00FF

C001 0011 C001

0500
Counter setting value

Description
Digital switch Internal register

<59> 000 ON 001 OFF 002 OFF 003 ON 004 ON 005 OFF 006 ON 007 OFF
Reset input Proximity SW input SW input

(C001) 1 0 0 1 1 07000 <LDA> 0 1 0 0 1 1 1 0 0 0 0 D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 D10 D11 D12 D13 D14 D15


Only loworder 2 digits is used.

1 0 0 1 1 $00FF <ANDA> 0 1 0 0 0 0 0 0 0 0 0
BCD data is converted into binary data.

1 1 0 1 1 1 <TBIN> 0 0 0 0 0 0 0 0 0 0
Data is transferred as setting value of counter.

1 1 0 1 1 C001 <STA> 1 0 0 0 0 0 0 0 0 0 0

D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 D10 D11 D12 D13 D14 D15

008 OFF ON/OFF 009 ON status is trans010 ON ferred to 011 ON internal register. 012 OFF 013 OFF 014 OFF 015 OFF

0 1 3 4 5 2 + 2 + 2 + 2 + 2 = 1 + 2 + 8 + 16 + 32 = 59 (Decimal number)

In example a), the LDA instruction reads the ON/OFF status of input relays 0000 through 0015 to the internal register. "ANDA $00FF" instruction is used to leave only the digital switch input (2 digits). BCD data is then converted into BIN (binary) data. (BIN is used in the KV series.) The contents of the internal register is input as the setting value of C001. In example b), the current value of counter C001 is read and output to output relays 0500 through 0515.

Note 1: An LDA instruction can read the current value of a counter or a timer, but cannot read the setting value. Note 2: An STA instruction can change the setting value of a counter or a timer, but cannot change the current value.

3-144

Chapter 2 Instructions

LDA / @LDA / STA @STA

2.4 Instruction Details


Note 3: When an STA instruction is executed while the setting value of a counter or a timer is smaller than the current value, the current value is changed to be the setting value. First-in first-out (FIFO) The data once fetched is written into DM0004, DM0003, , to DM0000 in this order. At the unloading timing, data is fetched from DM0004 and the contents of DM are shifted to the next DM.
OK/NG judgment Data shift DM0000 DM0001 DM0002 DM0003 DM0004 Unloading timing

The OK/NG judgment and unloading timings can be used in asynchronous programs.
0000 1000 DIFU 1000 $1111 DM0000 LDA STA "$1111" is transferred to DM0000. OK/NG judgment $5555 DM0000 0001 LDA STA "$5555" is transferred to DM0000. 0001 DM0003 DM0004 LDA STA DM0002 DM0003 LDA STA DM0001 DM0002 LDA STA DM0000 DM0001 LDA STA $0000 LDA $0000 LDA $0000 LDA $0000 LDA DM0003 STA DM0002 STA DM0001 STA DM0000 STA

OK/NG judgment timing

2002 2002 2002 2002 0002

DM0004 LDA DM0003 LDA DM0002 LDA DM0001 LDA

$0000 CMP $0000 CMP $0000 CMP $0000 CMP $0000 LDA

2010 2010 2010 2010

Contents of DM is compared with "$0000". When two values match, contents of one previous DM is transferred, then "$0000" is transferred to DM.

1 2

Unloading timing

DM0004 STA "$0000" is transferred to DM at unloading timing.

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 0030 0031 0032 0033 0034 Instruction LD DIFU CON AND MPS AND LDA CON STA MPP ANB LDA CON STA LD LDA CON CMP CON AND LDA CON STA CON LDA CON STA LD LDA CON CMP CON AND LDA CON Operand 0000 1000 1000 0001 $1111 DM0000 0001 $5555 DM0000 2002 DM0004 $0000 2010 DM0003 DM0004 $0000 DM0003 0002 DM0003 $0000 2010 DM0002 Line No. 0035 0036 0037 0038 0039 0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 Instruction STA CON LDA CON STA LD LDA CON CMP CON AND LDA CON STA CON LDA CON STA LD LDA CON CMP CON AND LDA CON STA CON LDA CON STA LD @LDA CON @STA Operand DM0003 $0000 DM0002 2002 DM0002 $0000 2010 DM0001 DM0002 $0000 DM0001 2002 DM0001 $0000 2010 DM0000 DM0001 $0000 DM0000 0002 $0000 DM0004

Chapter 2 Instructions

3-145

CMP / @CMP 2.4 Instruction Details

CMP: Compare @CMP: Compare

FUN 0

RES LDB

: :

nnnn CMP nnnn CMP

RES LDB @ #,$ FUN 0 4

Compares contents of internal register with value specified by operand.

CMP instruction compares the contents of the internal register with the value specified by the operand, and turns ON/OFF the special utility relays (2009, 2010, 2011) according to the result of comparison.
2009 (Internal register) < (Operand) (Internal register) = (Operand) (Internal register) > (Operand) ON OFF OFF 2010 OFF ON OFF 2011 OFF OFF ON

Comparing the current value of the counter and CMP value


0001 2002 C001 LDA #01000 CMP 2009 2010 2011 #09999 C001 0003 0500 0501 0502 0503

1) (<) 2) (=) 3) (>) 4) ()

2002

C001 LDA

#02000 CMP

2009

1) Output relay 0500 turns ON when the counter value is smaller than "1000" (C001 < #01000). 2) Output relay 0501 turns ON when the counter value is equal to "1000" (C001 = #01000). 3) Output relay 0502 turns ON when the counter value is greater than "1000" (C001 > #01000). 4) Output relay 0503 turns ON when the counter value is equal to or greater than "2000" (C001 #02000). Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 Instruction LDB C LD LDA CON CMP CON MPS AND OUT MRD AND 2010 2009 0500 #01000 Operand 0001 001 #099999 0003 2002 C001 Line No. 0012 0013 0014 0015 0016 0017 0018 0019 0020 0021 0022 Instruction OUT MPP AND OUT LD LDA CON CMP CON ANB OUT 2009 0503 #02000 2011 0502 2002 C001 Operand 0501

3-146

Chapter 2 Instructions

CMP / @CMP 2.4 Instruction Details

Operands
Visual KV KV-300 KV-10/16 KV-24/40/80 DM0000 to DM1999 DM0000 to DM9999 DM0000 to DM0999 DM0000 to DM1999 TM00 to TM31 TM00 to TM31 TM00 to TM31 TM00 to TM31 #00000 to #65535 #00000 to #65535 #00000 to #65535 #00000 to #65535 $0000 to $FFFF $0000 to $FFFF $0000 to $FFFF $0000 to $FFFF #TM00 to #TM29 #TM00 to #TM29 #TM00 to #TM29 #TM00 to #TM29

Key operation
FUN
#,$ RES

FUN

LDB

ENT
R-SRCH

Operand

ENT
R-SRCH

Arithmetic flag
2009 Turns ON when the result of the CMP operation is negative. Turns OFF at other times. 2010 Turns ON when the result of the CMP operation is "0". Turns OFF at other times. 2011 Turns ON when the result of the CMP operation is positive. Turns OFF at other times. 2012 The DM or relay indirectly addressed with #TM is out of range.

"Indirect addressing" (p. 3-127)

Description
As shown in the above example, the CMP instruction is used by connecting the special utility relay (2009 to 2011) immediately after the instruction. The operation of the CMP instruction varies depending on the contents of the internal register.

1 2

Note: Special utility relays 2009 to 2011 are used as arithmetic flags. The function varies depending on the execution of other arithmetic instructions.

Tips
An operand is compared with the internal register using the following program.
DM0000 #00999 LDA CMP 2009

When the internal register is assumed as "a" and the operand is "b" such as , the statuses of the special utility relays are as follows:
a LDA 2009 b CMP
a < b,

2011

a b,

2010

a = b,

2009

a b,

2011

a>b

Chapter 2 Instructions

3-147

CMP / @CMP 2.4 Instruction Details

Application of CMP instruction


Multi-level counter Coding
0001 2002 C000 LDA #00999 CMP #01999 CMP #02999 CMP 2011 2011 2011 0500 0500 0501 #09999 C000 0000 0500 0501 0502

Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 0020 0021 0022

Instruction Operand LDB 0001 C 000 #099999 0000 LD 2002 LDA C000 CON MPS CMP #00999 CON ANB 2011 OUT 0500 MRD CMP #01999 CON ANB 2011 ANB 0500 OUT 0501 MPP CMP #02999 CON ANB 2011 ANB 0500 ANB 0501 OUT 0502

Description The following outputs are provided according to the current value of the counter. (Current value) (Output) 0000 to 0999 0500 turns ON. 1000 to 1999 0501 turns ON. 2000 to 2999 0502 turns ON. When comparing values with no specific range Turns ON 0500 when the DM0000 value is smaller than the CMP value. Turns ON 0501 when the DM0000 value is equal to the CMP value. Turns ON 0502 when the DM0000 value is greater than the CMP value.
2002 DM0000 #01000 LDA CMP 2009 2010 2011 0500
DM0000<#01000

0501
DM0000=#01000

0502
DM0000>#01000

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 Instruction LD LDA CON CMP MPS AND OUT Operand 2002 DM0000 #01000 2009 0500 Line No. 0007 0008 0009 0010 0011 0012 Instruction MRD AND OUT MPP AND OUT Operand 2010 0501 2011 0502

3-148

Chapter 2 Instructions

CMP / @CMP 2.4 Instruction Details Setting the upper/lower limit Turns ON 0500 when the C001 value is 1000 or less. Turns ON 0501 when the C001 value is 2000 or more.
0001 2002 2002 C001 LDA C001 LDA #01000 CMP #02000 CMP 2011 2009 #09999 C001 0000 0500
C001#01000

0501
C001#02000

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 Instruction Operand LDB 0001 C 001 #09999 0000 LD 2002 LDA C001 CON CMP #01000 CON ANB 2011 Line No. 0008 0009 0010 0011 0012 0013 0014 0015 Instruction OUT LD LDA CON CMP CON ANB OUT Operand 0500 2002 C001 #02000 2009 0501

Changing the CMP setting value Compares the current value of counter C000 with the CMP setting value. The setting value of the CMP instruction is specified with the digital trimmer (TMIN0). The following example changes the setting value to the range from "0" through "100". The upper limit of the digital trimmer is set to "100". 0500 turns ON when the current value of C000 is smaller than the CMP setting value. 0501 turns ON when the current value of C000 is equal to or greater than the CMP setting value.
2002 0001 2002 C000 DM0000 LDA CMP 0 DM0000 STA Sets range of TMIN from 0 to 100. TMIN #09999 C000 00000 2009 0500 2009 0501

1 2

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 Instruction LD TMIN CON ADD CON MUL CON DIV CON STA LDB Operand 2002 0 #00001 #00004 #00010 DM0000 0001 Line No. 0011 0012 0013 0014 0015 0016 0017 0018 0019 0020 0021 Instruction Operand C 000 #09999 0000 LD 02002 LDA C000 CON CMP DM0000 MPS AND 2009 OUT 0500 MPP ANB 2009 OUT 0501

Chapter 2 Instructions

3-149

ADD / @ADD / SUB / @SUB / MUL / @MUL / DIV / @DIV

2.4 Instruction Details

ADD: Add @ADD: Add SUB: Subtract @SUB: Subtract MUL: Multiply @MUL: Multiply DIV: Divide @DIV: Divide

FUN 0 @

RES RES

0 0 6 4 8 2 1 1

:
0

nnnn ADD nnnn ADD nnnn SUB nnnn SUB nnnn MUL nnnn MUL nnnn DIV nnnn DIV

#,$ FUN

RES RES

: : : : : : :

Adds value specified by operand to contents of internal register, and inputs result back to same internal register. Subtracts value specified by operand from contents of internal register, and inputs results back to same register. Multiplies contents of internal register by value specified by operand, and inputs result back to same register. Divides contents of internal register by value specified by operand, and inputs result back to same register.

FUN 4 @

LDB ORB LDB ORB

#,$ FUN

FUN 2 @

ANL AND ANL AND

#,$ FUN

FUN 1 @

SET SET SET SET

#,$ FUN

ADD, SUB, MUL, and DIV allow arithmetic instructions between the contents of internal register and the value specified by the operand.
ADD
Constants

Decimal Hexadecimal

(#XXXXX) ($XXXX)

Internal register

SUB MUL DIV

Data memories

DM0000 to DM1999 TM00 to TM31 #TM00 to #TM29

Arithmetic operation

Result

Note: Arithmetic instructions use binary numbers (BIN). Therefore, the contents of the internal register used for the arithmetic instruction must be BIN data. Use the TBIN instruction to convert BCD data into BIN data.

Operands
Visual KV KV-300 KV-10/16 KV-24/40/80 DM0000 to DM1999 DM0000 to DM9999 DM0000 to DM0999 DM0000 to DM1999 TM00 to TM31 TM00 to TM31 TM00 to TM31 TM00 to TM31 #00000 to #65535 #00000 to #65535 #00000 to #65535 #00000 to #65535 $0000 to $FFFF $0000 to $FFFF $0000 to $FFFF $0000 to $FFFF #TM00 to #TM29 #TM00 to #TM29 #TM00 to #TM29 #TM00 to #TM29

Key operation
FUN
#,$ RES

FUN FUN

RES

ENT
R-SRCH

Operand

ENT
R-SRCH

LDB

#,$

FUN FUN

ORB

ENT
R-SRCH

Operand

ENT
R-SRCH

ANL

#,$

FUN FUN

AND

ENT
R-SRCH

Operand

ENT
R-SRCH

SET

#,$

FUN

SET

ENT
R-SRCH

Operand

ENT
R-SRCH

3-150

Chapter 2 Instructions

Internal register

Operand

ADD / @ADD

2.4 Instruction Details

ADD (Addition)
2002 DM0000 #00100 DM0001 LDA ADD STA

Coding
Line No. 0000 0001 0002 0003 0004 0005 Instruction LD LDA CON ADD CON STA DM0001 #00100 Operand 2002 DM0000

Description
The ADD instruction adds the operand value to the contents of the internal register and inputs the result back to the internal register. In the above example, "#00100" is added to the contents of DM0000 and the result is stored in DM0001. When the contents of DM0000 is "#00100", for example, "#00200" is stored in DM0001. DM0000 (#00100) + #00100 DM0001(#00200)

Note 1: An overflow occurs when the operation result exceeds 16 bits ($FFFF, #65535). In such a case, only the data of the low-order 16 bits is input back to the internal register. For example, when the contents of the internal register is "$FFFF" and the operand is "$0001", the result will overflow. Note 2: When an overflow occurs, special utility relay 2009 turns ON.
Example: Internal register
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 = $FFFF

1 2

Operand + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 = $0002
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 = $0001
2009

Overflow 1 Special utility relay

Input back internal register

Result

Tips
Solution when operation result overflows 16 bits
2002 DM0000 DM0001 LDA ADD 2009 2009 DM0002 #00000 DM0003 STA LDA STA DM0002 #00001 DM0003 STA LDA STA

DM0000 + DM0001 = DM0003 (High-order 16 bits), DM0002 (Low-order 16 bits) DM0000 and DM0001 must be 16 bits or less.

Arithmetic flag
2009 2010 2011 2012

Turns ON when the result of an ADD operation exceeds the range of 16 bits ($FFFF). Turns OFF at other times. Turns ON when the contents of the internal register is "0" after an ADD operation. Turns OFF at other times. No change The DM or relay indirectly addressed with #TM is out of range.

"Indirect addressing" (p. 3-127)

Chapter 2 Instructions

3-151

ADD / @ADD

2.4 Instruction Details

Application of ADD instruction


Total count Writes the total count of counters C001 to C003 into DM0100. The total count must be within #65535.
0000 #09999 C001 LDA C001 0001 0000 #09999 C002 LDA C002 0002 0000 #09999 C003 LDA C003 0003 2002 DM0001 DM0002 DM0003 LDA ADD ADD DM0001 STA DM0002 STA DM0003 STA DM0100 STA
Writes C001 current value into DM0001.

Writes C002 current value into DM0002.

Writes C003 current value into DM0003. Writes total count (DM0001 + DM0002 + DM0003) into DM100.

Coding
Line No. 0000 0001 0002 0003 0004 Instruction LDB C CON LDA CON STA LDB C CON LDA CON STA LDB C CON LDA CON STA LD LDA CON ADD CON ADD CON STA DM0100 DM0003 DM0002 DM0003 2002 DM0001 C003 DM0002 0000 003 #099999 0003 C002 DM0001 0000 002 #099999 0002 C001 Operand 0001 010 #099999 0000

0005 0006 0007 0008 0009 0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 0020 0021 0022 0023 0024 0025

3-152

Chapter 2 Instructions

SUB / @SUB

2.4 Instruction Details

SUB (Subtraction)
2002 DM0000 #00100 DM0001 LDA SUB STA

Coding
Line No. 0000 0001 0002 0003 0004 0005 Instruction LD LDA CON SUB CON STA DM0001 #00100 Operand 2002 DM0000

Description
The SUB instruction subtracts the operand value from the contents of the internal register and inputs the result back into the internal register. In the above example, "#00100" is subtracted from the contents of DM0000 and the result is stored in DM0001. When the contents of DM0000 is "#00150", for example, "#00050" is stored in DM0001. DM0000 (#00150) #00100 DM0001 (#00050)

Note 1: When the operation result is a negative value (-), the 2's complement value is also stored in the internal register. Special utility relay 2009 turns ON.
Internal register Operand 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 = $0001 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 = $FFFF

1 2

Underflow 1
2009

0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 = $0002

2's complement is stored.

Note 2: To convert the complement into an antilogarithm, add the following operation: Inverted bit of complement + 1 = Antilogarithm

Tips
Solution when operation result is a negative value
2002 DM0000 DM0001 LDA SUB 2009 2009 COM #0001 ADD DM0002 STA DM0003 STA

(Stores positive value) (Stores negative value)

Absolute value is stored.

Positive value

DM0002 DM0003

DM0000 - DM0001 =

Negative value

When DM0000 is "#10" and DM0001 is "#30", "#20" is stored in DM0003.

Arithmetic flag
2009 2010 2011 2012

Turns ON when the result of a SUB operation is negative. Turns OFF at other times. Turns ON when the contents of the internal register is "0" after a SUB operation. Turns OFF at other times. Turns ON when the result of a SUB operation is positive. Turns OFF at other times. The DM or relay indirectly addressed with #TM is out of range.

"Indirect addressing" (p. 3-127)

Chapter 2 Instructions

3-153

SUB / @SUB

2.4 Instruction Details

Application of SUB instruction


Comparing absolute values Compares the DM0000 value to the DM0001 value and turns ON 0500 when the difference between the two absolute values is greater than 5.
2002 DM0000 DM0001 LDA SUB 2009 2009 1000 1001 #0005 CMP DM0001 DM0000 #00005 CMP LDA SUB 2009 2009 1000 1001 0500

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 Instruction LD LDA CON SUB MPS ANB CMP CON ANB OUT MPP AND LDA CON SUB CON CMP CON ANB OUT LD OR OUT 2009 1001 1000 1001 0500 #00005 DM0000 2009 DM0001 2009 1000 2009 #00005 DM0001 Operand 2002 DM0000

0007 0008 0009 0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 0020 0021 0022

3-154

Chapter 2 Instructions

MUL / @MUL

2.4 Instruction Details

MUL (Multiplication)
2002 DM0000 #00100 DM0001 LDA MUL STA

Coding
Line No. 0000 0001 0002 0003 0004 0005 Instruction LD LDA CON MUL CON STA DM0001 #00100 Operand 2002 DM0000

Description
The MUL instruction multiplies the contents of the internal register by the operand value and inputs the result back to the internal register. In the above example, the contents of DM0000 are multiplied by "#00100" and the result is stored in DM0001. When the contents of DM0000 is "#00200", for example, "#20000" is stored in DM0001. DM0000 (#00200) x #00100DM0001 (#20000)

Note 1: An overflow occurs when the operation result exceeds 16 bits (#65535). In such a case, only the data of the low-order 16 bits are stored in the internal register, and the overflow data of the high-order 16 bits is stored in TM00. (The data of the high-order 16 bits is always stored in TM00.) Note 2: When an overflow occurs, special utility relay 2009 turns ON.
Internal register F F F F Operand
0 0 0 2

1 2

Hexadecimal number

0 0 0 1 F F F F (TM00) (Internal register)

Tips
Solution when operation result overflows 16 bits
2002 DM0000 DM0001 DM0002 LDA MUL STA TM00 LDA DM0003 STA

DM0000 x DM0001 = DM0003 (High-order 16 bits) DM0002 (Low-order 16 bits) The operation result must be 32 bits or less.

Arithmetic flag
2009 2010 2011 2012

Turns ON when the result of a MUL operation exceeds 16 bits. Turns OFF at other times. Turns ON when all 32 bits are "0" after a MUL operation. Turns OFF at other times. No change The DM or relay indirectly addressed with #TM is out of range.

"Indirect addressing" (p. 3-127)

Chapter 2 Instructions

3-155

MUL / @MUL / DIV / @DIV

2.4 Instruction Details

Application of MUL instruction


Multiplying the counter current value by the DM value Multiplies the counter current value by the DM0000 value and writes the high-order 16 bits of the product into DM0101 and low-order 16 bits of the product into DM0100.
0001 2002 C001 LDA DM0000 DM0100 MUL STA TM00 LDA #09999 C001 0000 DM0101 STA

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 Instruction LDB C LD LDA CON MUL CON STA CON LDA CON STA Operand 0001 001 #099999 0000 2002 C001 DM0000 DM0100 TM00 DM0101

2
DIV (Division)

2002

DM0001 LDA
High-order

TM00 STA

DM0000 #00100 DM0002 LDA DIV STA


Low-order Low-order

TM00 LDA

DM0003 STA
High-order

TM01 LDA

DM0004 STA
Remainder

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 0014 0015 0016 0017 Instruction LD LDA CON STA CON LDA CON DIV CON STA CON LDA CON STA CON LDA CON STA Operand 2002 DM0001 TM00 DM0000 #00100 DM0002 TM00 DM0003 TM01 DM0004

3-156

Chapter 2 Instructions

DIV / @DIV

2.4 Instruction Details

Arithmetic flag
2009 2010 2011 2012

No change Turns ON when all 32 bits are "0" after a DIV operation. Turns OFF at other times. No change Turns ON when the divisor of a DIV operation is "0" or the DM or relay indirectly addressed with #TM is out of range.

"Indirect addressing" (p. 3-127)

Description
The 32-bit value (binary) consisting of the higher 16 bits from TM00 and lower 16 bits from the internal register is divided by the value specified by the operand. The higher 16 bits of the result is input back to TM00 and lower 16 bits to the same internal register. The remainder is stored in TM01.
TM00
High-order 16 bits Internal register Low-order 16 bits Internal register Low-order 16 bits Operand

TM00
High-order 16 bits

TM01
Remainder (16 bits)

Quotient

Example

DM0001 DM0003

DM0000 DM0002

#00100 DM0004
Remainder (16 bits)

High-order 16 bits Low-order 16 bits

1 2

High-order 16 bits Low-order 16 bits Quotient

Note 1: When data of 16 bits or less is divided by the operand value, the contents of TM00 must be cleared (set to "#00000") before the DIV operation. Note 2: If the contents of TM00 are not cleared, the data stored in TM00 is also used for the operation.

Tips
Solution when data of 16 bits or less is divided
02002 #00000 LDA TM00 STA DM0000 DM0001 DM0002 LDA DIV STA TM01 LDA DM0003 STA

TM00 DM0000 = TM00 DM0002 DM0003


High-order 16 bits Low-order 16 bits High-order 16 bits Low-order 16 bits Remainder

Quotient

Chapter 2 Instructions

3-157

DIV / @DIV

2.4 Instruction Details

Application of DIV instruction


Total count average Outputs the average of 3 counter values in 4-digit BCD. (C001 + C002 + C003) 3 BCD output value The BCD value is output to 500 to 515.
0000 0000 0000 2002 2002 2002 #00003 DIV C001 #09999 LDA C001 0001 C002 #09999 LDA C002 0002 C003 #09999 LDA C003 0003 DM0001 DM0002 LDA ADD #00000 LDA TBCD DM0001 STA DM0002 STA DM0003 STA DM0003 ADD TM00 STA 0500 STA
3 Output to 0500 to 0515 in 4-digit BCD.

Writes the C001 current value into DM0001.

Writes the C002 current value into DM0002.

Writes the C003 current value into DM0003.

(DM0001+DM0002+DM0003)

Coding
Line No. Instruction LDB C CON LDA CON STA LDB C CON LDA CON STA LDB C CON LDA CON STA LD LDA CON ADD CON ADD LD DIV CON TBCD CON STA 500 DM0003 2002 #0003 DM0002 DM0003 2002 DM0001 C003 DM0002 0000 003 #099999 0003 C002 DM0001 0000 002 #099999 0002 C001 Operand 0000 001 #099999 0001

0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 0020 0021 0022 0023 0024 0025 0026 0027 0028 0029

3-158

Chapter 2 Instructions

ANDA / @ANDA 2.4 Instruction Details


RES SET

ANDA:

AND A @ANDA: (Logical product)


Example
0000

FUN 0 @

1 0

:
1

nnnn ANDA nnnn ANDA

#,$ FUN

RES SET

ANDs contents of internal register and value specified by operand for each of 16 bits, and inputs result back to same register.

DM0000 LDA

$00FF ANDA

DM0001 STA

(DM0000) ^ ($00FF) = (DM0001)


Logical product

Coding
Line No. 0000 0001 0002 0003 0004 0005 Instruction LD LDA CON ANDA CON STA Operand 0000 DM0000 $00FF DM0001

Description
The contents of DM0000 are transferred to the internal register when input relay 0000 is ON. The contents of the internal register (DM0000) and the value specified by the operand ($00FF) are ANDed for each bit and the result (logical product) is input back to the same register. When the operation result is "0", special utility relay 2010 turns ON. The contents of the internal register are transferred to DM0001. The following shows the case when DM0000 is "$F0F0".
D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0

1 2

1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 Contents of DM0000 are transferred to the internal register.


DM0000 LDA

DM0000 ($F0F0)

AND (Logical product) truth table (Result)


Internal register 1 1 0 0 Operand 1 0 1 0 Internal register 1 0 0 0

1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 AND

Internal ($F0F0) register

0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
$00FF ANDA

Operand ($F0F0)

These values are ANDed for each bit to obtain logical product.

0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 The result is transferred to DM0001.


DM0001 STA

Internal ($F0F0) register

Only when both bits of the internal register and the operand are "1", will the logical product be "1".

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

DM0001 ($00F0)

Operands
Visual KV KV-300 KV-10/16 KV-24/40/80 0000 to 17915 0000 to 17915 0000 to 2915 0000 to 6915 DM0000 to DM1999 DM0000 to DM9999 DM0000 to DM0999 DM0000 to DM1999 TM00 to TM31 TM00 to TM31 TM00 to TM31 TM00 to TM31 #00000 to #65535 #00000 to #65535 #00000 to #65535 #00000 to #65535 $0000 to $FFFF $0000 to $FFFF $0000 to $FFFF $0000 to $FFFF #TM00 to #TM29 #TM00 to #TM29 #TM00 to #TM29 #TM00 to #TM29

Key operation
#,$

FUN @ FUN

RES

SET

ENT
R-SRCH

Operand

ENT
R-SRCH

Chapter 2 Instructions

3-159

ANDA / @ANDA 2.4 Instruction Details

Arithmetic flag
2009 2010 2011 2012

No change Turns ON when the internal register is "0" after an ANDA operation. Turns OFF at other times. No change The DM or relay indirectly addressed with #TM is out of range.

"Indirect addressing" (p. 3-127)

Tips
Solution when connecting one-digit data of a BCD digital switch to inputs 0100 to 0103, while ignoring other inputs Only one-digit data of the BCD digital switch is transferred as the setting value of the fetching counter (C004). Other inputs (0104 to 0115) are ignored.
0004 2002 0100 LDA $000F ANDA #00300 C004 0005 C004 STA

TBIN

Application of ANDA instruction


Fetch input data separately Sets the low-order 2 digits of the BCD digital switch (7000 to 7007) to counter C000 and the high-order 2 digits (7008 to 7015) to timer T001.

2
2002 2002 0001 0001 7000 LDA 7000 LDA $00FF ANDA $FF00 ANDA TBIN #08 SRA C000 STA TBIN T001 STA #09999 C000 0000 #09999 T001

Converts data of 7000 to 7007 to BIN and writes it into C000. Shifts data to right by 8 bits, converts it to BIN, and writes it into T001. Sets C000. Sets T001.

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 0020 0021 Instruction LD LDA CON ANDA CON TBIN CON STA LD LDA CON ANDA CON SRA CON TBIN CON STA LDB C LDB T Operand 2002 7000 $00FF

C000 2002 7000 $FF00 #08

T001 0001 000 #09999 0000 0001 001 #09999

3-160

Chapter 2 Instructions

ORA / @ORA 2.4 Instruction Details


ORL SET
nnnn ORA nnnn ORA

ORA:

Or A @ORA: (Logical sum)


Example
0000

FUN 3

: :

ORL SET @ #,$ FUN 3 1

ORs contents of internal register and value specified by operand for each of 16 bits, and inputs result back to same register.

DM0000 LDA

$00FF ORA

DM0001 STA

(DM0000) U ($00FF) = (DM0001)

Logical sum

Coding
Line No. 0000 0001 0002 0003 0004 0005 Instruction LD LDA CON ORA CON STA Operand 0000 DM0000 $00FF DM0001

Description
The contents of DM0000 are transferred to the internal register when input relay 0000 is ON. The contents of the internal register (DM0000) and the value specified by the operand ($00FF) are ORed for each bit and the result (logical sum) is input back to the same register. When the operation result is "0", special utility relay 2010 turns ON. The contents of the internal register are transferred to DM0001. The following shows the case when DM0000 is "$F0F0".
D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0

1 2

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

DM000 ($F0F0)

OR (Logical sum) truth table


Internal register 1 1 0 0 Operand 1 0 1 0

(Result)

Contents of DM0000 are transferred to the internal register.

DM0000 LDA

1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 OR 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
$00FF ORA

Internal ($F0F0) register

Operand ($00FF)

Internal register 1 1 1 0

These values are ORed for each bit to obtain logical sum. Internal ($F0FF) register

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

Only when both bits of the internal register and the operand are "0", will the logical sum be "0".

The result is transferred to DM0001.

DM0001 STA

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

Operands
Visual KV KV-300 KV-10/16 KV-24/40/80 0000 to 17915 0000 to 0009 0000 to 2915 0000 to 6915 DM0000 to DM1999 0500 to 17915 DM0000 to DM0999 DM0000 to DM1999 TM00 to TM31 DM0000 to DM9999 TM00 to TM31 TM00 to TM31 #00000 to #65535 TM00 to TM31 #00000 to #65535 #00000 to #65535 $0000 to $FFFF #00000 to #65535 $0000 to $FFFF $0000 to $FFFF #TM00 to #TM29 $0000 to $FFFF #TM00 to #TM29 #TM00 to #TM29 #TM00 to #TM29

Key operation
FUN
#,$ ORL

FUN

SET

ENT
R-SRCH

Operand

ENT
R-SRCH

Chapter 2 Instructions

3-161

ORA / @ORA 2.4 Instruction Details

Arithmetic flag
2009 2010 2011 2012

No change Turns ON when the internal register is "0" after an ORA operation. Turns OFF at other times. No change The DM or relay indirectly addressed with #TM is out of range.

"Indirect addressing" (p. 3-127)

Tips
Solution when connecting two-digit data of a BCD digital switch (inputs 0100 to 0103 for the first digit and 0200 to 0203 for the second digit) separately Fetches the two-digit data of the BCD digital switch, which are separated into the first digit (0100 to 0103) and the second digit (0200 to 0203), and transfers the values as the setting value of a counter (C004).
0004 2002 0100 LDA $000F ANDA DM0000 STA 0200 LDA #00300 C004 0005

$000F ANDA

#04 SLA

DM0000 ORA

TBIN

C004 STA

2
Application of ORA instruction
Output of BCD 2-digit data Converts the current value of counter C000 to BCD and sends 2 digits of BCD data to output relays 0500 to 0507. However, retain ON/OFF of 0508 to 0515 which are loaded.
0000 2002 2002 2002 0500 LDA C000 LDA DM0000 ORA #00099 C000 0001 $FF00 DM0000 ANDA STA TBCD 0500 STA $00FF ANDA

Sets C000.

Writes data of 0008 to 0015 into DM0000. Converts the current value of C000 to BCD and retains the low-order 2 digits of BCD in the internal register. ORs the data in the internal register and the DM0000 data and sends the ORed data to 0500 to 0515.

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 Instruction Operand LDB 0000 C 001 #00099 0001 LD LDA CON ANDA CON STA LD DM0000 2002 $FF00 2002 0500 Line No. 0009 0010 0011 0012 0013 0014 0015 0016 0017 Instruction LDA CON TBCD CON ANDA LD ORA CON STA 0500 $00FF 2002 DM0000 Operand C000

3-162

Chapter 2 Instructions

ORA / @ORA 2.4 Instruction Details Separate input of 2-digit BCD Fetches only 2 digits of the BCD digital switch (0000 to 0003 for the 1st digit, 0100 to 0103 for the 2nd digit) and sets it as the counter value.
0000 2002 2002 2002 0000 LDA 0100 LDA #04 SLA #00099 C000 0001 $000F DM0000 ANDA STA $000F ANDA DM0000 ORA TBIN C001 STA
Sets C001.

Writes data of 7000 to 7003 into DM0000. Writes data of 8000 to 8003 into internal register. ORs content of internal register which is shifted to left by four bits and data of 7000 to 7003, converts ORed data into BIN, and write it into C001.

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 Instruction LDB C LD LDA CON ANDA CON STA LD LDA CON ANDA LD SLA CON ORA CON TBIN CON STA C001 DM0000 $000F 2002 #04 DM0000 2002 0100 $000F Operand 0001 001 #00099 0001 2002 0000

1 2

Chapter 2 Instructions

3-163

EORA / @EORA 2.4 Instruction Details

EORA: Exclusive Or A @EORA: (Exclusive logical sum)


Example
0000

FUN 1

SET ANB

: :

nnnn EORA nnnn EORA

SET ANB @ #,$ FUN 1 5

EXCLUSIVE ORs contents of internal register and operand for each of 16 bits, and inputs result back to same register.

DM0000 LDA

$00FF EORA

DM0001 STA

(DM0000) U ($00FF) = (DM0001) Exclusive logical sum

Coding
Line No. 0000 0001 0002 0003 0004 0005 Instruction LD LDA CON EORA CON STA Operand 0000 DM0000 $00FF DM0001

Description
The contents of DM0000 is transferred to the internal register when input relay 0000 is ON. The contents of the internal register (DM0000) and the value specified by the operand ($00FF) are EORed (exclusive OR) for each bit and the result is input back to the same register. When the operation result is "0", special utility relay 2010 turns ON. The contents of the internal register is transferred to DM0001. The following shows the case when DM0000 is "$F0F0".
D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0

1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0
Contents of DM0000 are transferred to the internal register.
DM0000 LDA

DM0000 ($F0F0)

EOR (Exclusive OR) truth table


Internal register 1 1 0 0 Operand 1 0 1 0

(Result)

Internal 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 register ($F0F0)

EORA 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 Operand ($00FF)


$00FF EORA

Internal register 0 1 1 0

These values are EORed for each bit to obtain exclusive OR value.

Internal 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 register ($F00F) The result is transferred to DM0001.


DM0001 STA

Only when the bits of the internal register and the operand have different values, will the exclusive logical sum be "1".

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

DM0000 ($F00F)

Operands
Visual KV KV-300 KV-10/16 KV-24/40/80 0000 to 17915 00000 to 0009 0000 to 2915 0000 to 6915 DM0000 to DM1999 0500 to 17915 DM0000 to DM0999 DM0000 to DM1999 TM00 to TM31 DM0000 to DM9999 TM00 to TM31 TM00 to TM31 #00000 to #65535 TM00 to TM31 #00000 to #65535 #00000 to #65535 $0000 to $FFFF #00000 to #65535 $0000 to $FFFF $0000 to $FFFF #TM00 to #TM29 $0000 to $FFFF #TM00 to #TM29 #TM00 to #TM29 #TM00 to #TM29

Key operation
FUN
#,$ SET

FUN

ANB

ENT
R-SRCH

Operand

ENT
R-SRCH

3-164

Chapter 2 Instructions

EORA / @EORA 2.4 Instruction Details

Arithmetic flag
2009 No change 2010 Turns ON when the internal register is "0" after an EORA operation. Turns OFF at other times. 2011 No change 2012 The DM or relay indirectly addressed with #TM is out of range.

"Indirect addressing" (p. 3-127)

Tips
Turning output 0500 ON when inputs 0000 through 0015 have the same value as a constant ($0F0F) When the values match, special internal relay 2010 turns ON and output relay 0500 turns ON. In this example, the constant is "$0F0F", or "0000 1111 0000 1111". Therefore, output relay 0500 turns ON when input relays 0000 through 0003 and 0008 through 0011 are ON.
2002 0000 LDA $0F0F EORA 2010 0500

Application of EORA instruction


Judgment of matching data Turns ON 0500 when the ON/OFF statuses of input relays 0100 to 0107 match the DM0000 setting value.
2008 2002 $00AA LDA 0100 LDA DM0000 STA $00FF ANDA DM0000 EORA 2010 0500

1 2

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 Instruction LD LDA CON STA LD LDA CON Operand 2008 $00AA DM0000 2002 0100 Line No. 0007 0008 0009 0010 0011 0012 Instruction ANDA CON EORA CON AND OUT Operand $00FF DM0000 2010 0500

D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0

$BBBB 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 0100 to 0115


ANDA

$00FF 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 Operand

$00BB 0 0 0 0 0 0 0 0 1 0 1 1 1 0 1 1 Internal register


EORA

$00AA 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 DM0000

$0011

0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 Internal register

2010 is OFF. When the value of internal register is 0000, 2010 turns ON. Judges match between the operand and the data of 0100 to 0107.

When 2010 is ON, the two values match. When 2010 is OFF, the two values do not match.

Chapter 2 Instructions

3-165

SRA / @SRA / SLA / @SLA 2.4 Instruction Details


LDB SET
#dd SRA #dd SRA #dd SLA #dd SLA

SRA: Shift Right A @SRA: Shift Right A SLA: Shift Left A @SLA: Shift Left A
Example
0000 0001

FUN 4 @

1 4 0

:
1

#,$ FUN

LDB SET

FUN 4
#,$

: LDB RES : FUN 4 0


DM0000 LDA DM0010 LDA #05 SRA #10 SLA

LDB RES

Moves contents of internal register serially right by value specified by operand. Moves contents of internal register serially left by value specified by operand.

DM0001 STA DM0011 STA

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 Instruction LD LDA CON SRA CON STA LD LDA CON SLA CON STA Operand 0000 DM0000 #05 DM0001 0001 DM0010 #10 DM0011

Operands
#01 to #16

Key operation
FUN
#,$ LDB

FUN FUN

SET

ENT
R-SRCH

Operand

ENT
R-SRCH

LDB

#,$

FUN

RES

ENT
R-SRCH

Operand

ENT
R-SRCH

Arithmetic flag
2009 2010 2011 2012 Turns ON when "1" enters 2009 after an SRA/SLA operation. Turns OFF at other times. Turns ON when the internal register is "0" after an SRA/SLA operation. Turns OFF at other times. No change No change

3-166

Chapter 2 Instructions

SRA / @SRA / SLA / @SLA 2.4 Instruction Details

Description
Operations using the SRA instruction When input relay 0000 is ON, the contents of DM0000 are transferred to the internal register and shifted serially right by the operand value (5). The operation result is written into DM0001. The contents of D0 are shifted to carry bit 2009. In the above example, the contents shift to the right by the operand value (5) every scan time while input relay 0000 is ON. Use @SRA, a differentiation type instruction, to execute the instruction only once when input relay 0000 turns ON.
D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0

Carry 2009

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

D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0

Carry 2009
0

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

Operation using the SLA instruction When input relay 0001 is ON, the contents of DM0000 are transferred to the internal register and shifted serially left by the operand value (10). The operation result is written into DM0011. The contents of D15 are shifted to carry bit 2009. In the above example, the contents shift to the left by the operand value (10) every scan time while input relay 0001 is ON. Use @SLA, a differentiation type instruction, to execute the instruction only once when input relay 0001 turns ON.
Carry 2009

1 2

D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0

1 1 0 0 1 0 0 0 1 1 1 0 0 1 0 0
Carry 2009

D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0

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

Note: Special utility relay 2009 may turn ON in accordance with the operation results; however, it changes immediately when another operation is executed.

Chapter 2 Instructions

3-167

SRA / @SRA / SLA / @SLA 2.4 Instruction Details

Application of SRA/SLA instructions


Fetching four-digit data of the BCD digital switch (inputs 0004 through 0011 for low-order 2 digits and 0100 through 0107 for high-order 2 digits) to transfer them as a counter setting value
2002 0000 LDA $0FF0 ANDA #04 SRA DM0000 STA

0100 LDA 0001

$00FF ANDA

#08 SLA

DM0000 ORA

C004 STA #09999 C004 0000

Separate input of BCD Fetches only 2 digits of the BCD digital switch (0112 to 0115 for the 1st digit, 0000 to 0003 for the 2nd digit) and sets it as the counter value.
0001 2002 2002 0100 LDA #12 SRA 0000 LDA #04 SLA TBIN #00099 C001 0000 $F000 ANDA DM0000 STA $000F ANDA DM0000 ORA C001 STA
Sets C001.

Sends the data of 0112 to 0115 to internal register. Shifts the value of internal register to right by 12 bits and writes it into DM0000. Sends the data of 0000 to 0003 to internal register. Shifts the data of internal register to left by 4 bits, ORs the internal register data and the data of DM0000, and sends the ORed data to the internal register. Converts the data of internal register to BIN data and writes it into C001.

2002 2002 2002

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 0020 0021 Instruction LD C LD LDA CON ANDA LD SRA CON STA LD LDA CON ANDA LD SLA CON ORA LD TBIN CON STA Operand 0001 001 #00099 0000 2002 0100 $F000 2002 #12 DM0000 2002 0000 $000F 2002 #04 DM0000 2002

C001

3-168

Chapter 2 Instructions

RRA / @RRA / RLA / @RLA 2.4 Instruction Details

RRA: Rotate Right A @RRA: Rotate Right A RLA: Rotate Left A @RLA: Rotate Left A

FUN 3

ORL LD

: : :
5

#dd RRA #dd RRA #dd RLA #dd RLA

ORL LD @ #,$ FUN 3 7

Rotates contents of internal register and carry (2009) clockwise by operand value. Rotates contents of internal register and carry (2009) counterclockwise by operand value.

FUN 3 @

ORL ANB

5 3

#,$ FUN

ORL ANB

Example
0000 0001 DM0000 LDA DM0010 LDA #01 RRA #04 RLA DM0001 STA DM0011 STA

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 Instruction LD LDA CON RRA CON STA LD LDA CON RLA CON STA Operand 0000 DM0000 #01 DM0001 0001 DM0010 #04 DM0011

1 2

Operands
#01 to #16

Key operation
FUN
#,$ ORL

FUN FUN

LD

ENT
R-SRCH

Operand

ENT
R-SRCH

ORL

#,$

FUN

ANB

ENT
R-SRCH

Operand

ENT
R-SRCH

Arithmetic flag
2009 Turns ON when "1" enters 2009 after an RRA/RLA operation. Turns OFF at other times. 2010 Turns ON when the internal register is "0" after an RRA/RLA operation. Turns OFF at other times. 2011, 2012 No change

Description
Operation when using the RRA instruction When input relay 0000 is ON, the contents of DM0000 are transferred to the internal register. The contents of the internal register and carry (2009) are rotated clockwise by the operand value. In the above example, the contents are rotated clockwise every scan time while input relay 0000 is ON.

Chapter 2 Instructions

3-169

SRA / @SRA / SLA / @SLA 2.4 Instruction Details Use @RRA, a differentiation type instruction, to execute the instruction only once when input relay 0000 turns ON.
Carry 2009
D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0

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

Carry 2009

D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0

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

Operation using the RLA instruction When input relay 0001 is ON, the contents of DM0000 are transferred to the internal register. The contents of the internal register and carry (2009) are rotated counterclockwise by the operand value. In the example above, the contents are rotated counterclockwise every scan time while input relay 0001 is ON. Use @RLA, a differentiation type instruction, to execute the instruction only once when input relay 0001 turns ON.
D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0

Carry 2009
0

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

D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0

Carry 2009
0

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

Note: Special utility relay 2009 may turn ON in accordance with the operation results; however, it changes immediately when another operation is executed.

Application of RRA/RLA instructions


Error input count Writes the number of error detection sensors, which are connected to input relays (0000 to 0015) and turn ON, into DM0000.
2002 0000 LDA FOR #00016 2002 #01 RRA 2009 TM10 INC NEXT 2002 TM10 LDA DM0000 #00000 STA LDA TM10 STA
Writes the data of 0000 to 0015 into internal register. Executes FOR-NEXT instruction 16 times. Shifts the data including carry (2009) to right, and increments TM10 by 1 when 2009 is ON.

Writes the TM10 data into DM0000, and then writes #00000 to TM10.

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 Instruction LD LDA FOR LD RRA CON AND INC NEXT 2009 TM10 Operand 2002 0000 #00016 02002 #01 Line No. 0009 0010 0011 0012 0013 0014 0015 0016 Instruction LD LDA CON STA CON LDA CON STA TM10 #00000 DM0000 Operand 2002 TM10

3-170

Chapter 2 Instructions

COM / @COM 2.4 Instruction Details


RES ANB

COM: Complement @COM: (Bit inversion)


Example
0000

FUN 0

: :

COM

RES ANB @ #,$ FUN 0 5

COM

Inverts contents of each bit in internal register.

DM0000 LDA

COM

DM0001 STA

Coding
Line No. 0000 0001 0002 0003 0004 0005 Instruction LD @LDA CON @COM CON @STA Operand 0000 DM0000

DM0001

Description
Each time input relay 0000 turns from OFF to ON, the contents of DM0000 are transferred to the internal register. The COM instruction inverts the status of each bit and transfers the result to DM0001. Special utility relay 2010 turns ON when the result is "0". The following shows the case when DM0000 is "$5F5F".
D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0

1 2

DM0000

0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1 = $5F5F

Bit inversion

COM instruction

DM0001

1 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 = $A0A0

Note:

0000

DM0000 LDA

COM

DM0001 STA

When an every-scan type COM instruction is used, the status of bits are inverted every scan time while input relay 0000 is ON. Use @COM, a differentiation type instruction, to execute the instruction only once when input relay 0000 turns ON, as shown in the example.

Operands Key operation


FUN
#,$ RES

FUN

ANB

ENT
R-SRCH

ENT
R-SRCH

Arithmetic flag
2009 2010 2011 2012 No change Turns ON when the internal register is "0" after a COM operation. Turns OFF at other times. No change No change

Chapter 2 Instructions

3-171

INC / @INC / DEC / @DEC 2.4 Instruction Details

INC: Increment Memory @INC: Increment Memory DEC: Decrement Memory @DEC: Decrement Memory
Example

FUN 1

SET OR

: : : :

nnnn INC nnnn INC nnnn DEC nnnn DEC

SET OR @ #,$ FUN 1 9

Adds 1 to contents of data memory specified by operand. Subtracts 1 from contents of data memory specified by operand.

FUN 0

RES LD

RES LD @ #,$ FUN 0 7

0000

DM0000 INC DM0001 DEC

Coding
Line No. 0000 0001 0002 Instruction LD @INC @DEC Operand 0000 DM0000 DM0001

Description
Operation using the @INC instruction Every time input relay 0000 turns ON, "1" is added to the contents of the data memory specified by the operand. The result is then input back to the same data memory. (In the above example, "1" is added to the contents of DM0000. DM0000 + 1 DM0000) When the data memory specified by the operand is "#65535", the result of the addition is "#00000" so that special utility relay 2009 turns ON.
@ INC instruction 0 0 0 0 + 0 0 1 1 1 0 0 1

Contents of data memory specified by operand 1 is added. Contents of data memory specified by operand

Operation using the @DEC instruction Every time input relay 0000 turns ON, "1" is subtracted from the contents of the data memory specified by the operand. The result is then input back to the same data memory. (In the above example, "1" is subtracted from the contents of DM0001. DM0001 - 1 DM0001) When the data memory specified by the operand is "#00001", the result of the subtraction is "#00000" so that special utility relay 2010 turns ON. When the specified data memory is "00000", the result of the subtraction is "#65535 ($FFFF)" so that special utility relay 2009 turns ON.
@ DEC instruction 0 0 0 0 0 0 1 0 1 1 0 1

Contents of data memory specified by operand 1 is subtracted. Contents of data memory specified by operand

Operands
Visual KV KV-300 KV-10/16 KV-24/40/80 DM0000 to DM1999 DM0000 to DM9999 DM0000 to DM0999 DM0000 to DM1999 TM00 to TM29 TM00 to TM29 TM00 to TM29 TM00 to TM29

3-172

Chapter 2 Instructions

INC / @INC / DEC / @DEC 2.4 Instruction Details

Key operation
FUN
#,$ SET

FUN FUN

OR

ENT
R-SRCH

Operand

ENT
R-SRCH

RES

#,$

FUN

LD

ENT
R-SRCH

Operand

ENT
R-SRCH

Arithmetic flag
2009 Turns ON when the result is "0" after an INC operation, or when the result is "$FFFF (#65535)" after DEC operation. Turns OFF at other times. 2010 Turns ON when the internal register is "0" after an INC or DEC operation. Turns OFF at other times. 2011, 2012 No change Note: When an every-scan type INC/DEC instruction is used, INC (+1) or DEC (-1) instruction is executed every scan time while input relay 0000 is ON. Use a differentiation type instruction (@INC or @DEC) to execute the instruction only once when input relay 0000 turns ON, as shown in the example.
0000 DM0000 INC 0000 DM0000 INC

Tips
When using DM0000 as an UP/DOWN counter Performs an UP count (addition) when input relay 0000 turns ON. Performs a DOWN count (subtraction) when input relay 0001 turns ON.
0000 0001 DM0000 INC DM0000 DEC

1 2

Applications of INC/DEC instructions


UP/DOWN count Performs an UP count when input relay 0000 turns ON. Performs a DOWN count when input relay 0001 turns ON. Writes the count value into DM0000. Reset input relay is 0005.
2008 0000 0001 0005 #00000 DM0000 LDA STA DM0000 INC DM0000 DEC #00000 DW DM0000
Sets #00000 to DM0000 at startup. Increments DM0000 by 1 at UP edge of input relay 0000. Decrements DM0000 by 1 at UP edge of input relay 0001. Clears DM0000 to #00000 when 0005 turns ON.

Coding
Line No. 0000 0001 0002 0003 0004 Instruction LD LDA CON STA LD DM0000 0000 Operand 2008 #00000 Line No. 0005 0006 0007 0008 0009 Instruction @INC LD @DEC LD DW Operand DM0000 0001 DM0000 0005 #00000 DM0000

Chapter 2 Instructions

3-173

INC / @INC / DEC / @DEC

2.4 Instruction Details


Total count 1 Writes the total count of 4 lines (0000 to 0003) into DM0000. Reset input relay is 0005.
2008 0000 0001 0002 0003 0005 #00000 DM0000 LDA STA DM0000 INC DM0000 INC DM0000 INC DM0000 INC #00000 DW DM0000
Sets #00000 to DM0000 at startup.

Increments DM0000 by 1 at UP edge of input relay 0000.

Increments DM0000 by 1 at UP edge of input relay 0001.

Increments DM0000 by 1 at UP edge of input relay 0002.

Increments DM0000 by 1 at UP edge of input relay 0003.

Clears DM0000 to #00000 when 0005 turns ON.

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 Instruction LD LDA CON STA LD @INC LD @INC LD @INC LD @INC LD DW Operand 2008 #00000 DM0000 0000 DM0000 0001 DM0000 0002 DM0000 0003 DM0000 0005 #00000 DM0000

Total count 2 Counts the number of boxes transferred on 5 production lines. Produces output when the number becomes 100 or more.
0000 0001 0002 0003 0004 0005 DM0000 INC DM0000 INC DM0000 INC DM0000 INC DM0000 INC

Increments DM0000 by 1 at UP edge of input relay 0000. Increments DM0000 by 1 at UP edge of input relay 0001. Increments DM0000 by 1 at UP edge of input relay 0002. Increments DM0000 by 1 at UP edge of input relay 0003. Increments DM0000 by 1 at UP edge of input relay 0004. Clears DM0000 when input relay 0005 turns ON. Turns output relay 0500 ON when value of DM0000 is 100 or more.

$0000 DW DM0000 2002 DM0000 #00100 2009 0500 LDA CMP

3-174

Chapter 2 Instructions

INC / @INC / DEC / @DEC

2.4 Instruction Details


Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 Instruction LD @INC LD @INC LD @INC LD @INC LD @INC LD Operand 0000 DM0000 0001 DM0000 0002 DM0000 0003 DM0000 0004 DM0000 0005 Line No. 0011 0012 0013 0014 0015 0016 0017 0018 0019 0020 Instruction Operand DW #00000 DM0000 LD 2002 LDA DM0000 CON CMP #00100 CON ANB 2009 OUT 0500 END ENDH

Programming technique Two kinds of instructions can be used for the counting operation: a C (counter) instruction and an INC instruction with data memory. The following examples show how to program the total count with each instruction.
Programming with the C instruction
0005 #09999 C001 C001 LDA 0000 #09999 C002 LDA C002 0001 #09999 C003 C003 LDA 0002 #09999 C004 C004 LDA 0003 #09999 C005 C005 LDA 0004 DM0001 DM0002 DM0003 DM0004 DM0005 LDA ADD ADD ADD ADD DM0001 STA DM0002 STA DM0003 STA DM0004 STA DM0005 STA DM0000 STA

Programming with the INC instruction with data memory


0000 0001 0002 0003 0004 0005 DM0000 INC DM0000 INC DM0000 INC DM0000 INC DM0000 INC $0000 DW DM0000

1 2

2002

As the example of the INC instruction shows, using different instructions sometimes simplifies the program even for the same control. Simpler programming reduces the time for debugging. It is convenient to use the CMP instruction for comparator outputs. OR instruction Compare the following two programs. With program 1), input relays 0000 through 0004 are individually counted even when they turn ON simultaneously. With program 2), when some input relays 0000 through 0004 turn ON simultaneously, duplicated inputs are ignored. Use the appropriate program according to your application.
0000 0001 0002 0003 0004 DM0000 INC DM0000 INC DM0000 INC DM0000 INC DM0000 INC 0000 0001 0002 0003 0004 DM0000 INC

1)

2)

Chapter 2 Instructions

3-175

MPX / @MPX / DMX / @DMX

2.4 Instruction Details

MPX:

Multiplexer

FUN 2 @

ANL LD

7 2 2

:
7

#n MPX #n MPX

@MPX: (4-to-16 decoder), DMX: Demultiplexer

#,$ FUN

ANL LD

: : :

Converts 4-bit data of internal register into 16-bit data. The 4-bit data to be converted is specified as operand. Converts position of most significant bit with 1 in internal register into 4-bit data.

FUN 1

SET ANL

DMX

@DMX: (16-to-4 encoder)


Example
0000 0001

SET ANL @ #,$ FUN 1 2

DMX

0000 LDA 0100 LDA

#1 MPX DMX

1000 STA DM0000 STA

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 Instruction LD LDA CON MPX CON STA LD LDA CON DMX CON STA Operand 0000 0000 #1 1000 0001 0100

DM0000

Operands
#0 to #3

Key operation
FUN
#,$ SET OR ENT
R-SRCH

FUN FUN

Operand

ENT
R-SRCH

RES

#,$

FUN

LD

ENT
R-SRCH

Operand

ENT
R-SRCH

Arithmetic flag
2009, 2010, 2011 No change 2012 Turns ON when no bit is ON after a DMX operation (the result is "0"). Turns OFF at other times.

3-176

Chapter 2 Instructions

MPX / @MPX / DMX / @DMX

2.4 Instruction Details

Description
Operation with the MPX instruction When input relay 0000 is ON, the ON/OFF status of input relays 0000 through 0015 is transferred to the internal register. The section of the internal register specified by the operand (input relays 0004 through 007: 4 bits) is converted into a hexadecimal number (0 to F). Only the bit at the position specified by the hexadecimal number is set to "1" and other bits are set to "0". The resulting ON/OFF status is input back to the internal register, and then output to inputs 1000 to 1015. In the example, when the value specified by inputs 0004 to 0007 are converted into "A", internal relay 1010 turns ON.
#3 #2 #1 1 0 1 0 #0

Operand Internal register No. represented by the section of the internal register specified by operand Internal register

0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 F E D C B A 9 8 7 6 5 4 3 2 1 0

Operation with the DMX instruction When input relay 0001 is ON, the ON/OFF status of input relays 0100 through 0115 is sent to the internal register. Within the 16-bit data of the internal register, the number corresponding to the position of the most significant bit with "1" (0 to F) is converted into 4-bit data and input back to the internal register. The contents of the internal register are then transferred to DM0000. In the example, when input relay 0114 turns ON, "E" is input to DM0000.
Most significant bit with "1"
0 1 0 1 1 0 0 1 0 1 0 0 0 1 0 0 F E D C B A 9 8 7 6 5 4 3 2 1 0

1 2

Enter the number of the most significant bit with "1".

0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 to F

The value is converted into a hexadecimal number.

The DMX instruction is disabled when all bits in the internal register are OFF. In such a case, special utility relay 2012 turns ON.

Application of MPX and DMX instructions


MPX instruction Connect the one-digit data of a BIN digital switch to input relays 0004 through 0007. Connect output relays 0500 through 0515 to lamps 0 to 15. An operator turns on the lamp corresponding to the digital switch using binary numbers.
2002 0000 LDA #1 MPX 0500 STA

When the digital switch shows "8", output 0508 turns ON, therefore, lamp 8 lights.

Chapter 2 Instructions

3-177

MPX / @MPX / DMX / @DMX

2.4 Instruction Details


DMX instruction Connect sensors 0 to 15 to input relays 0000 through 0015. Connect output relays 0500 through 0503 to the one-digit data of a BIN indicator. The sensors which are currently ON are shown by the BIN indicator. * Assume that several sensors do not turn on simultaneously.
2002 0000 LDA DMX 0500 STA

When sensor 8 is ON, the indicator shows "8". Output of error input No. in BCD Outputs the error sensor No. from input relay 0000 to 0015 to output relays 0500 to 0507 in 2-digit BCD.
2002 2002 TBCD 0000 LDA
Converts the most significant bit of 16-bit data (0000 to 0015) to 4-bit BIN data and sends it to internal register.

DMX $00FF ANDA 0500 STA

Converts internal register data to BCD data, executes an ANDA instruction, and outputs the data to 0500 to 0507.

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 Instruction LD LDA CON DMX LD TBCD CON ANDA CON STA Operand 2002 0000

2002

$00FF 0500

Display of 7-segment LED Displays the current value of counter C007 to the 7-segment LED. Outputs from 0600 to 0615. 7-segment configuration
a

b a : 0600 d : 0603 g : 0606 b : 0601 c : 0604 c : 0607 f : 0605

e d

3-178

Chapter 2 Instructions

MPX / @MPX / DMX / @DMX

2.4 Instruction Details


Converts the counter value to 16-bit data using the MPX instruction.

Auto-reset counter

C000

#00009 C000 0000

C000 LDA

#0 MPX

1000 STA

Sends internal register data to output relays starting from 0600.

1000 1001 1002 1003 1004 1005 1006 1007 1008 1009

$003F LDA $0006 LDA $005B LDA $004F LDA $0066 LDA $006D LDA $007D LDA $0007 LDA $007F LDA $006F LDA

0600 STA 0600 STA 0600 STA 0600 STA 0600 STA 0600 STA 0600 STA 0600 STA 0600 STA 0600 STA

0 1 2 3 4 5 6 7 8 9
7-segment display

1 2

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 0020 0021 0022 0023 Instruction Operand LDB C000 C 000 #00009 0000 CON LDA C000 CON MPX #0 CON STA 1000 LD 1000 LDA $003F CON STA 0600 LD 1001 LDA $0006 CON STA 0600 LD 1002 LDA $005B CON STA 0600 LD 1003 LDA $004F CON STA 0600 Line No. 0024 0025 0026 0027 0028 0029 0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 0040 0041 0042 0043 0044 0045 0046 0047 Instruction LD LDA CON STA LD LDA CON STA LD LDA CON STA LD LDA CON STA LD LDA CON STA LD LDA CON STA Operand 1004 $0066 0600 1005 $006D 0600 1006 $007D 0600 1007 $0007 0600 1008 $007F 0600 1009 $006F 0600

Chapter 2 Instructions

3-179

TBCD / @TBCD / TBIN / @TBIN

2.4 Instruction Details

TBCD: Transfer BCD @TBCD: Transfer BCD TBIN: Transfer BIN @TBIN: Transfer BIN

FUN 4 @

LDB LD

7 4 8 4

:
7

TBCD

Converts contents of internal register (16-bit binary) into 4-digit BCD data.

#,$ FUN

LDB LD

: : :

TBCD

FUN 4 @

LDB AND LDB AND

TBIN

Converts contents of internal register (4-bit binary) into 16-digit BCD data.

#,$ FUN

TBIN

Example

0000 0001

DM0000 LDA DM0010 LDA

TBCD TBIN

DM0001 STA DM0011 STA

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 Instruction LD LDA CON @TBCD CON @STA LD LDA CON @TBIN CON @STA Operand 0000 DM0000

DM0001 0001 DM0010

DM0011

Operands Key operation


FUN
#,$ LDB

FUN FUN

LD

ENT
R-SRCH

ENT
R-SRCH

LDB

#,$

FUN

AND

ENT
R-SRCH

ENT
R-SRCH

Arithmetic flag
2009, 2010, 2011 No change 2012 Turns ON when the contents of the internal register are greater than "$270F (#09999)" before TBCD operation, or when the contents of the internal register are not BCD data before the TBIN operation (In these cases, the TBCD or TBIN instruction will not be executed.). Turns OFF at other times.

3-180

Chapter 2 Instructions

TBCD / @TBCD / TBIN / @TBIN

2.4 Instruction Details

Description
Operation using the TBCD instruction When input relay 0000 turns ON, the contents of DM0000 are transferred to the internal register. The contents of the internal register (16-bit binary data) are converted into 4-digit BCD data, which is input back to the internal register, and then transferred to DM0001.
216 20

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

Data is converted into BCD of "0" through "9999".


0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1 103 (0) 102 (0) 101 (2) 100 (4)

Operation using the TBIN instruction When input relay 0001 turns ON, the contents of DM0010 are transferred to the internal register. The contents of the internal register (4-digit BCD data) are converted into 16-bit binary data, which is input back to the internal register, and then transferred to DM0011.
(5) (5) (5) (5) 103 101 100 102 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1 0 1 0 1 0 0 0 1 0 1 0 1 0 1 0 1

1 2

Data is converted into binary number of "0" through "9999".


0 0 0 1 0 1 0 1 1 0 1 1 0 0 1 1
D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0

Note 1: The TBCD instruction can only convert data up to "#09999". When the conversion of data of "#10000" or greater is attempted, special utility relay 2012 turns ON and the conversion is disabled. Note 2: When the data in the internal register is not BCD data, special utility relay 2012 turns ON and the TBIN instruction is disabled.

Applications of TBCD instruction


Output of 4-digit BCD data Outputs the current value of counter C001 to 0700 to 0715 in 4-digit BCD data.
0001 2002 C001 LDA #09999 C001 0000 0700 STA
Sets C001. Converts current value of C001 into BCD data, and outputs it to 0700 to 0715.

TBCD

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 Instruction LDB C LD LDA CON TBCD CON STA Operand 0001 001 #00009 0000 2002 C001

0700

Chapter 2 Instructions

3-181

TBCD / @TBCD / TBIN / @TBIN

2.4 Instruction Details


Output of 8-digit BCD data Outputs the calculated product of DM0000 x DM0001 (0 to 99999999) in BCD of 8 digits at maximum as below: High-order 4-digit BCD data To 0600 to 0615 Low-order 4-digit BCD data To 0500 to 0515
DM0000 x DM0001 =
TM00
Internal register
High-order 4 digits Low-order 4 digits

TM00

Internal register

#10000 ... TM01


Remainder

TM00

Internal register
Low-order 4 digits

High-order 4 digits

Display

0600 to 0615
High-order 4 digits
2002

0500 to 0515
Low-order 4 digits
TM01 LDA 0500 STA

DM0000 DM0001 #10000 DM0101 LDA MUL DIV STA DM0101 LDA 0600 STA

TBCD

TBCD

Coding

Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009

Instruction LD LDA CON MUL CON DIV CON STA CON LDA

Operand 2002 DM0000 DM0001 #10000 DM0101 TM01

Line No. 0010 0011 0012 0013 0014 0015 0016 0017 0018 0019

Instruction CON TBCD CON STA CON LDA CON TBCD CON STA

Operand

0500 DM0101

0600

Application of TBIN instruction


Input of 4-digit BCD data Sets 4 digits of the BCD digital switch (0400 to 0415) as the counter C001 value.
2002 0001 0400 LDA TBIN C001 STA #09999 C001 0000
Converts data of 0400 to 0415 to BIN data and writes into C001. Sets C001

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 Instruction LD LDA CON TBIN CON STA LDB C Operand 2002 0400

C001 0001 001 #09999 0000

3-182

Chapter 2 Instructions

ASC / @ASC / RASC / @RASC

2.4 Instruction Details

ASC: ASCII Convert @ASC: ASCII Convert RASC: Reverse ASCII Convert @RASC: Reverse ASCII Convert

FUN 0

RES ANL

: : : :

ASC

RES ANL @ #,$ FUN 0 2

ASC

Converts contents of lower order byte of internal register into 2-digit ASCII code. Converts 2-digit ASCII into byte data representing 2-digit hex number.

FUN 3

ORL ANL

RASC

ORL ANL @ #,$ FUN 3 2

RASC

Example

0000 0001

DM0000 LDA DM0010 LDA

ASC RASC

DM0001 STA DM0011 STA

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 Instruction LD LDA CON @ASC CON @STA LD LDA CON @RASC CON @STA Operand 0000 DM0000

DM0001 0001 DM0010

1 2

DM0011

Operands Key operation


FUN
#,$ RES ANL ENT
R-SRCH

FUN FUN

ENT
R-SRCH

ORL

#,$

FUN

ANL

ENT
R-SRCH

ENT
R-SRCH

Arithmetic flag
2009, 2010, 2011 No change 2012 Turns ON when the high- and low-order 8-bit value is not within the range of "$30" to "$39" and "$41" to "$46", respectively, before the RASC instruction is executed (In this case, the RASC instruction will not be executed.). Turns OFF at other times.

Chapter 2 Instructions

3-183

ASC / @ASC / RASC / @RASC

2.4 Instruction Details

Description
Operation using the ASC instruction When input relay 0000 turns ON, the contents of DM0000 are transferred to the internal register. The contents of the internal register (low-order 8-bit, 2-digit numerical value) are converted into 2-digit ASCII code. This 2-digit code is input back to the internal register, and then transferred to DM0001.
1 0 1 0 0 1 0 1 A 5

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

Operation using the RASC instruction When input relay 0001 turns ON, the contents of DM0010 are transferred to the internal register. The contents of the internal register (2-digit ASCII code) is converted into a low-order 8-bit, 2-digit numeric value. This 2-digit numeric value is input back to the internal register, then transferred to DM0011..
0 0 1 1 0 1 1 0 0 1 0 0 0 0 1 1 3 6 4 3

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

The value is converted only when the high- and low-order 8-bit value of the internal register is within the range of "$30" to "$39" and "$41" to "$46", respectively, before the conversion. (When either of the high- or low-order 8-bit value is not within the range, the conversion is disabled. In this case, special utility relay 2012 turns ON.) Example of conversion between hex and ASCII numbers
Hex number 0 1 2 3 4 5 6 7 8 9 A B C D E F Bit configuration 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 Code $30 $31 $32 $33 $34 $35 $36 $37 $38 $39 $41 $42 $43 $44 $45 $46 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 Bit configuration 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 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 1 1 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 0 1 1 0 0 0 1 1 0 0 1 0 1 0 1 0 1 0 1 0 1 1 0 1 0 1 0

3-184

Chapter 2 Instructions

ROOT / @ROOT

2.4 Instruction Details


Takes square root of 32-bit data (TM00: higher order byte, internal register: lower order byte), and inputs result back to same register.

ROOT: Square Root @ROOT: Square Root


Example

FUN 3 @

ORL ORB

6 3

:
6

ROOT

#,$ FUN

ORL ORB

ROOT

0000 DM0001 LDA

TM00 STA

DM0000 LDA

ROOT

DM0100 STA

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 Instruction LD LDA CON STA CON LDA CON ROOT CON STA DM0100 DM0000 TM00 Operand 0000 DM0001

1 2

Description
The ROOT instruction takes the square root of 32-bit data (binary number) of which the high-order 16 bits are contained in DM0001 and low-order 16 bits are contained in DM0000, and then input the result to DM0100. The figures to the right the decimal point of the obtained square root are omitted, and the result is input back to the same register. When the result is 0, special utility relay No. 2010 turns ON. The ROOT instruction takes the square root of a 32-bit numerical value. In this case, the high-order 16 bits are contained in TM00, and the low-order 16 bits are contained in the internal register.
TM00 Higher order 16 bits Internal register Lower order 16 bits Internal register

Operands

Key operation
FUN
#,$ ORL

FUN

ORB

ENT
R-SRCH

ENT
R-SRCH

Chapter 2 Instructions

3-185

2.4 Instruction Details

Change in status of special utility relays (arithmetic flags) by arithmetic instructions (1/3)
Instruction DATA MEMORY WRITE 3-136 LOAD A Mnemonic Operand A<0 2009 A=0 2010 A>0 2011 Error 2012

DW

$,# constant

Relay No. LDA [FUN23] Timer/counter No. Data memory No. $,# constant # TM Relay No. STORE A STA [FUN42] Timer/counter No. Data memory No. # TM COMPARE Data memory No. $,# constant # TM Data memory No. $,# constant # TM Data memory No. $,# constant # TM Data memory No. $,# constant # TM Data memory No. $,# constant # TM Data memory No. $,# constant # TM

1 1 1 4 4 4 6 6 6 I I I

5 5 5 5 5 2 2 2 5 5 5 5 5 5 8 8 8 8 8 8 5 5 5

3 3 3 7 7 7

H H H H H H 9 9 H9 H

3-140

3-140

3-146
ADD

CMP [FUN04] ADD [FUN00] SUB [FUN46] MUL [FUN28] DIV [FUN11] ANDA [FUN01]

3-150

SUBTRACT

3-150
MULTIPLY

3-150
DIVIDE

3-150
AND A

3-159

: No change in arithmetic flag Refer to the description of each instruction for details of the operating conditions of the flag.

3-186

Chapter 2 Instructions

2.4 Instruction Details

Change in status of special utility relays (arithmetic flags) by arithmetic instructions (2/3)
Instruction OR A Mnemonic ORA [FUN31] EORA [FUN15] SRA [FUN41] SLA [FUN40] RRA [FUN37] RLA [FUN40] COM [FUN05] INC [FUN19] DEC [FUN07] MPX [FUN27] DMX [FUN12] TBCD [FUN47] TBIN [FUN48] ASC [FUN02] RASC [FUN32] ROOT [FUN36] TMIN [FUN50] Data memory No. Operand Data memory No. $,# constant # TM Data memory No. $,# constant # TM Number of shifts A<0 2009 0 A=0 2010 5 5 5 5 5 5 5 A>0 2011 Error 2012 H H

3-161
EXCLUSIVE OR A

3-164 SHIFT RIGHT A 3-166 SHIFT LEFT A 3-166 ROTATE RIGHT A 3-169 ROTATE LEFT A 3-169 COMPLEMENT 3-171 INCREMENT MEMORY 3-172 DECREMENT MEMORY 3-172 MULTIPLEXER 3-176 DEMULTIPLEXER 3-176 TRANSFER BCD 3-180 TRANSFER BIN 3-180 ASCII CONVERT 3-183 REVERSE ASCII CONVERT 3-183 SQUARE ROOT 3-185 TRIMMER SETTING 3-138

Number of shift

Number of rotations

Number of rotations

1 2
A 5

Data memory No.

Digit No.

: No change in arithmetic flag Refer to the description of each instruction for details of the operating conditions of the flag.

Chapter 2 Instructions

3-187

2.4 Instruction Details

Change in status of special utility relays (arithmetic flags) by arithmetic instructions (3/3)
1 When the result of COMPARE is negative, the relay turns ON. When the result is not negative, the relay remains OFF. 2 When the result of COMPARE is "0", the relay turns ON. When the result is not "0", the relay remains OFF. 3 When the result of COMPARE is positive, the relay turns ON. When the result is not positive, the relay remains OFF. 4 When the result of the arithmetic operation exceeds the 16-bit range ($FFFF), the relay turns ON. When the result is within the 16-bit range, the relay remains OFF. 5 When, as a result of the arithmetic operation, the data in the internal register is "0", the relay turns ON. When the data is not "0", the relay remains OFF. 6 When the result of the arithmetic operation is negative, the relay turns ON. When the result is not negative, the relay remains OFF. 7 When the result of the arithmetic operation is positive, the relay turns ON. When the result is not positive, the relay remains OFF. 8 When, as a result of the arithmetic operation, all of the 32 bits are "0", the relay turns ON. When any of them is not "0", the relay remains OFF. 9 When the divisor is "0", in the division, the relay turns ON. In this case, DIVIDE is not executed. 0 When, as a result of SHIFT or ROTATE, "1" is entered into 2009, it turns ON. When "1" is not entered, it remains OFF. A When as a result of INCREMENT MEMORY, the data of the data memory is "0", the relay turns ON. When the data is not "0", the relay remains OFF. B When as a result of DECREMENT MEMORY, the data of the data memory EXCEEDS 16 BIT RANGE ($FFFF), the relay turns ON. When the data is within the 16-bit range, the relay remains OFF. C When there is no "ON" bit in the internal register at execution of DEMULTIPLEXER, the relay turns ON. (In this case, "0" is entered in the internal register.) When there is a "ON" bit(s), the relay remains OFF. D When the data in the internal register exceeds $270F (#09999) at execution of TRANSFER BCD, the relay turns ON. (In this case, TRANSFER BCD is not executed.) When the data does not exceed $270F, the relay remains OFF. E When the data in the internal register is not BCD data at execution of TRANSFER BIN, the relay turns ON. (In this case, TRANSFER BIN is not executed.) When the data is BCD, the relay remains OFF. F When the higher-order byte or lower-order byte in the internal register is respectively not within the range of $30 through $39, or the range of $41 through $46 at execution of REVERSE ASCII CONVERT, the relay turns ON. (In this case, REVERSE ASCII CONVERT is not executed.) When the value is within the range, the relay remains OFF. G When the input value for TRIMMER SETTING is "0", the relay turns ON. When the value is not "0", the relay remains OFF. H During indirect addressing, there is no data memory or relay by the number specified by "TMxx". I When the result of the arithmetic operation exceeds the 16-bit range, the relay turns ON. When the result is within the 16-bit range, the relay remains OFF.

3-188

Chapter 2 Instructions

2.5 Programming Notes

2.5 Programming Notes


This section describes important points and precautions for creating ladder programs.

Circuits that must be modified


1. The circuit shown below left cannot be programmed. Modify it as shown on the right.
A B 0500 C A D A C E D E B 0500

E C

2. Output is disabled in 0500 in the circuit shown below left. By modifying it as shown on the right, output of one scan only is disabled.
A 1000 A 1000 0500

1000

0500

1000

1 2
3. If the same coil is used in two positions, the latter position has priority and the coil in the former position is ignored.
A B 0500 A B 0500

0500

4. The circuit shown below left cannot be programmed. Modify it as shown on the right.
A B D F C E 0500 B D F C E E A 0500

5. The circuit shown below left cannot be programmed. Modify it as shown on the right.
A C D E 0501 B 0500 C A C E 0501 D B 0500

Chapter 2 Instructions

3-189

2.5 Programming Notes

Programming precautions
1. A coil output or timer/counter cannot be connected directly from a bus. When an output coil or a timer/counter is required, insert a 'b' contact of an unused internal utility relay, a 'b' contact of an unused special utility relay, or a special utility relay 2002 (always ON) as a dummy.
0500 2002 0500

#0010 T000

#0010 T000

2. A contact cannot be connected to an output line.


A C B D E 0500 E

3. Make sure that every contact/coil is located on a path from a bus to an output line. Make sure that there are no unconnected portions.
A B C 0500

4. Make sure that illegal short-circuits are not generated in parallel connections.
0500 A B C

5. Circuits including output coils cannot be connected in parallel.


A B D C 0501 0500

However, parallel connection is enabled when each circuit in parallel connection is connected to an output line.
A B D D 0500 0501

6 . When the following program is entered with the programming support software and sent to the KV, and then read from the KV with the software, reading is disabled due to a "Reverse Compilation Error". When a return is included in parallel connection in a ladder program, a decompilation (reverse compilation) error is generated as shown below. To prevent this error, change the ladder diagram to eliminate the return, or separate the parallel connection.

3-190

Chapter 2 Instructions

Chapter 3
Interrupts
The interrupt processing function executes an interrupt program when an external input or request from the high-speed counter comparator (interrupt factor) is encountered during KV operation. This chapter describes the types of interrupt factors as well as inputs and outputs encountered during interrupt processing. For KV-10/80 Series, see Chapter 6. 3.1 3.2
3.2.1 3.2.2 3.2.3 3.2.4

Interrupt Instructions ...................................................................... 3-192 Interrupt Processing ....................................................................... 3-194


Interrupt Processing ............................................................................... 3-194 Types of Interrupts ................................................................................. 3-195 Interrupt Priority ...................................................................................... 3-196 Interrupt Program ................................................................................... 3-196

3.3
3.3.1 3.3.2

Direct Input/Output .......................................................................... 3-197


Direct Input ............................................................................................. 3-197 Direct Output .......................................................................................... 3-197

3.4
3.4.1 3.4.2 3.4.3 3.4.4

Applications of Interrupt Programs ............................................ 3-198


Interrupt with a Signal Converter ............................................................ Interrupt with a High-speed Counter ...................................................... Measuring the ON Time of High-speed Pulses ...................................... Measuring the Period in which a Target Passes between Two Points ............................................................................................. 3-198 3-199 3-200 3-201

Visual KV Series

3.1 Interrupt Instructions

3.1 Interrupt Instructions


This section describes the INT, RETI, DI, and EI instructions used for interrupt processing.

Visual KV Series

INT: Interrupt RETI: Return Interrupt


Example
a)
Normal input

FUN

ANL RES

INT nnnn

Executes interrupt between INT and RETI instructions at rising or falling edge of input specified by operand. Represents termination of interrupts.

FUN

ORL LDB

RETI

Coding for normal input


0000 0500 T000 #00020 T000 0500

0000

(Input ON time: 10 ms min.)

Line No. 0000 0001 0002 0003 0004

Instruction LD OR TMR ANB OUT

Operand 0000 0500 00 #00020 T000 0500

b) Interrupt input

Coding for interrupt input


2008 EI 2002 1000 HSP 0000 #00020 T000 0500 T0 1000 (RES) END INT 0000 2002 1000

0000

RETI ENDH

Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 0014 0015

Instruction LD EI LD HSP LD OR TMR OUT LD RES END INT LD OUT RETI ENDH

Operand 2008 2002 0000 1000 0500 000 #00020 0500 T0 1000 0000 2002 1000

Description

(Input ON time: 10 s min.)

Example a) shows a normal input and is used when input relay 0000 turns ON longer than the input time constant (10 ms). Example b) is used when input relay 0000 turns ON shorter than the scan time.

Operands
0000 to 0003 CTC0 to CTC3

Key operation
FUN FUN
ANL

2 3

RES

0 4

ENT
R-SRCH

Operand

ENT
R-SRCH

ORL

LDB

ENT
R-SRCH

ENT
R-SRCH

3-192

Chapter 3 Interrupts

3.1 Interrupt Instructions

DI: Interrupt Disabled EI: Interrupt Enabled


Example

FUN FUN

RES AND

0 1

8 3

DI

Disables execution of interrupt. Enables execution of interrupt.

SET ORL

EI

1000 EI 1000 DI

Coding
Line No. 0000 0001 0021 0022 Instruction LD EI LDB DI Operand 0000

1000

Description
When 1000 is ON, execution of interrupt is enabled. When 1000 is OFF, execution of interrupt is disabled. Interrupts are enabled between EI instruction and DI instruction. Once an EI instruction is executed, an interrupt is enabled until a DI instruction is executed. Any interrupt is disabled when the Visual KV Series starts operation. The DI instruction disables execution of an interrupt. Use this instruction to temporarily disable an interrupt. The EI instruction enables execution of an interrupt. Use this instruction to release an interrupt that was disabled by a DI instruction. To execute another interrupt during execution of the previous interrupt, include EI instruction in this first interrupt. EI-DI instruction set can be nested to four levels.

Note 1: When any interrupt occurs between DI and EI instructions (interrupt disabled period), the disabled interrupt is stored (to 8 levels max.). The stored interrupt is executed as soon as an EI instruction is executed. Note 2: If an INT CTC instruction is stored before a RES CTC instruction is executed, the stored INT CTC is deleted.

Operands Key operation


FUN FUN
RES

0 1

AND

8 3

ENT
R-SRCH

ENT
R-SRCH

SET

ORL

Chapter 3 Interrupts

3-193

Visual KV Series

1 3

3.2 Interrupt Processing

3.2 Interrupt Processing


This section describes interrupt processing.

Visual KV Series

3.2.1 Interrupt Processing


Outline
Normally, a PLC processes a ladder sequence program by repeating the steps of input processing, program execution, and output processing. Therefore, signals which are shorter than the scan time cannot be received. When the interrupt processing function is used, a process can be executed at the instant of the interrupt, independent of the scan time. When any interrupt occurs, the Visual KV series suspends the currently executed program and executes the interrupt program in accordance with the interrupt factor. When the interrupt program completes, the Visual KV resumes execution of the suspended program.

For more about scan time, refer to "1.1.2 Scan Time" (p. 3-3).

Input processing Direct input * Interrupt input


(0000 to 0015)

Scan time

Program execution

Interrupt processing

Return to the next line of the interrupt. Output processing

Direct output
(0500 to 0503)

Direct input/output
The direct input/output functions are used during interrupt processing. Direct input allows the KV PLC to fetch the input status of input relays 0000 through 0015 (KV10xx: 0000-0005, KV-16xx: 0000-0009) during execution of the interrupt program. Direct output allows the Visual KV PLC to output the ON/OFF status of output relays 0500 through 0503 during execution of the interrupt program. No special setting is required to use the direct input/output functions. The functions can be used only by using the devices assigned for direct input/output within the interrupt program.

Executing interrupts
The INT (Interrupt) instruction is used to execute an interrupt. Since an interrupt is disabled at the start of operation, it is necessary to execute an EI (Interrupt enable) instruction before using the INT instruction. In addition, the input time constant should be set shorter by using the HSP instruction (to 10 s) or by specifying the desired value in DM1940 and turning ON special utility relay 2813.

For more about the input time constant, refer to "1.4.1 Input Time Constant Change Function" (p. 323).

2002 2008 EI #00000 DW DM1940 2813 SET EI or 2002 HSP 0000

3-194

Chapter 3 Interrupts

3.2 Interrupt Processing

3.2.2 Types of Interrupts


Interrupts can be divided into two types: an interrupt by an external input, and an interrupt by the high-speed counter comparator. This section describes both of these interrupt types. Interrupt by an external input This interrupt is executed by input relays 0000 through 0003. Use the special utility relay to specify the polarity of the interrupt factor to a rising or falling edge. Interrupt by the high-speed counter comparator This interrupt is executed when the current value of the high-speed counter (CTH) matches the preset value of the high-speed counter comparator (CTC).

Polarity setting for interrupts by an external input


Turn ON the appropriate special utility relay to specify the interrupt factor to a rising or falling edge. The interrupt polarity can be changed as follows by setting special utility relays 2402/2403 (INT0), 2404/2405 (INT1), 2410/2411 (INT2), and 2412/2413 (INT3).
Interrupt type Relay No. Status OFF INT0 2402 ON OFF ON OFF INT1 2404 ON OFF ON OFF INT2 2410 ON OFF ON OFF INT3 2412 ON OFF ON 2413 2411 2405 2403 Relay No. Status OFF OFF ON ON OFF OFF ON ON OFF OFF ON ON OFF OFF ON ON Description Interrupt occurs at rising edge. Interrupt occurs at falling edge. Interrupt occurs at both rising and falling edges. Interrupt occurs at rising edge. Interrupt occurs at falling edge. Interrupt occurs at both rising and falling edges. Interrupt occurs at rising edge. Interrupt occurs at falling edge. Interrupt occurs at both rising and falling edges. Interrupt occurs at rising edge. Interrupt occurs at falling edge. Interrupt occurs at both rising and falling edges.

CAUTION

Use SET-RES instructions to turn the special utility relays ON/OFF.

Input capture
Each external interrupt factor is provided with the input capture function. This is a function which writes the value of the high-speed counter into the data memory when an interrupt occurs. Without any particular settings, the value of the highspeed counter is automatically transferred to DM1928 through DM1935 when an interrupt occurs.
External interrupt factor Occurrence of INT0 Occurrence of INT1 Occurrence of INT2 Occurrence of INT3 Description Value of CTH0 is written to DM1928 (low-order bits) and DM1929 (high-order bits) Value of CTH0 is written to DM1930 (low-order bits) and DM1931 (high-order bits) Value of CTH1 is written to DM1932 (low-order bits) and DM1933 (high-order bits) Value of CTH1 is written to DM1934 (low-order bits) and DM1935 (high-order bits)

Chapter 3 Interrupts

3-195

Visual KV Series

1 3

3.2 Interrupt Processing

CAUTION

Use SET-RES instructions to turn the special utility relays ON/OFF. The input capture function stores the high-order bit data only when the 24bit high-speed counter is used. The data is undefined when the 16-bit highspeed counter is used.
"4.4.1 24-bit High-speed Counter" (p. 3-221)

Visual KV Series

Timing of the input capture execution depends on the input polarity setting specified with special utility relays 2402 through 2405 and 2410 through 2413.

3.2.3 Interrupt Priority


When many interrupts occur sequentially, priority is given to the interrupt which occurs earlier. When two or more interrupts occur simultaneously, priority is given in the order of 0000, 0001, 0002, 0003, CTC2, CTC3, CTC0, and CTC1. Note 1: While one interrupt is being executed, other interrupts are disabled. (Multilevel interrupts are possible by placing an EI instruction within an interrupt routine.) Note 2: When other interrupts occur during execution of an interrupt, other interrupts are stored up to 8 levels deep. The stored interrupts are executed after completion of the previous interrupt, according to the priority order. However, an interrupt which uses the same device as a previous interrupt cannot be stored.

3.2.4 Interrupt Program 3


The interrupt program is a program which is executed by an interrupt. It is necessary to execute an EI (Interrupt enabled) instruction before executing an interrupt program. To temporarily disable an interrupt, execute a DI (Interrupt disabled) instruction. When an interrupt is disabled, subsequent interrupts are not executed but stored until the next EI instruction.

"EI instruction", "DI instruction" (p. 3-193)

Example of an interrupt program


2008 EI HSP 0000

An interrupt program is not executed unless an EI instruction is executed. Set the input time constant shorter by using the HSP instruction (to 10 s) or by turning ON special utility relay 2813.

END INT 0000

Write the interrupt program between the END and ENDH instructions.
RETI ENDH

Note 1: To shorten the input time constant, use the HSP instruction (to 10 s) or specify the desired value in DM1940 and turn ON special utility relay 2813. Note 2: For more about the input time constant, refer to "1.4.1 Input Time Constant Change Function" (p. 3-23). Note 3: Use SET-RES instructions instead of OUT-OUTB instructions within interrupt programs. The following instructions cannot be used within interrupt programs: TMR, TMH, TMS, DIFU, DIFD, W-ON, W-OFF, W-UE, W-DE, STG, JMP, ENDS, HKEY, ITVL, @xxxx (differentiation type instructions), C, UDC, SFT

3-196

Chapter 3 Interrupts

3.3 Direct Input/Output

3.3 Direct Input/Output


This section describes direct input and output.

3.3.1 Direct Input


The direct input function is used during interrupt processing. Direct input allows the KV PLC to fetch the input status of the input relays during execution of the interrupt program. Direct input is available only with input relays 0000 through 0015 (KV-10xx: 00000005, KV-16xx: 0000-0009). (KV-300: 0000-0005) The input time constant must be set to 10 s by using the HSP instruction or by turning ON special utility relay 2813. The direct input data is effective only within the interrupt program so that the internal utility relay must be provided.
2008 EI 2002 HSP 0000 HSP 0005 1000 0500

END INT 0000 0005 1000 SET RETI ENDH

3.3.2 Direct Output


Direct output allows the Visual KV PLC to output the ON/OFF status of output relays during execution of the interrupt program. Direct output is available only with output relays 0500 through 0503. Direct output is not affected by the scan time.
2008 EI 2002 HSP 0000 HSP 0001 END INT 0000 2002 0500 SET RETI INT 0001 2002 0501 SET RETI ENDH

Chapter 3 Interrupts

3-197

Visual KV Series

1 3

3.4 Applications of Interrupt Programs

3.4 Applications of Interrupt Programs


This section presents program examples of interrupt processing.

Visual KV Series

3.4.1 Interrupt with a Signal Converter


Outline Converts the short pulses which are input by interrupt processing into pulses of a constant width and then outputs them.
Scan

Input 0000

ON OFF

ON
Output 0500

ON
1 sec.

ON
1 sec.

ON
1 sec.

OFF

Ladder diagram Converts the short pulses input from input relay 0000 into pulses of 1-second ON width and then outputs them from output relay 0500. Output relay 0500 turns ON for 1 second from the rising edge of input relay 0000.

2008 0001 0002 0003 0004 0005 2002 0006 0007 ENDH 0008 INT 0002 0500 SET RETI 2002 0500 #00010 T000 T0000 EI HSP 0000 0500 RES END

When power is turned on, an EI instruction enables interrupts. Sets the input time constant of input 0000 to 10 s. Turns ON output 0500 for 1 second and then turns it OFF.

When input 0000 turns ON, output 0500 turns ON.

3-198

Chapter 3 Interrupts

3.4 Applications of Interrupt Programs

3.4.2 Interrupt with a High-speed Counter


Outline Uses the input value of a high-speed counter from one input relay and the ON/OFF status of another input relay to control the ON/OFF status of an output relay.

Scan

Input 0004

ON OFF ON OFF ON OFF ON

Input 0000 Output 0500

Example: Filling control for medicine (tablets)

Visual KV

Sensor

Ladder diagram Output relay 0500 turns ON when the input value of the high-speed counter from input relay 0004 reaches "10000". Output relay 0500 turns OFF when input relay 0000 turns ON.
When power is turned on, an EI instruction enables interrupts. Sets automatic reset of CTH0. Resets current value of CTH0. Sets an input time constant of input 0004 to 10 s. Specifies CTH0 as the highspeed counter for input 0004 and sets "10000" as the preset value of CTC0. Turns OFF output 0500 when input 0000 turns ON.

0001 0002 0003 0004 0005 0006 0007 0008 0009 0010

2008 EI 2002 2002

2103 SET

CTH0 RES HSP 0004 CTH0 0004 # 10000 CTC0

0000

0500 RES END INT CTC0

2002

0500 SET RETI ENDH

Executes an interrupt when the input value of CTH0 reaches "10000". Turns ON output 0500.

Chapter 3 Interrupts

3-199

Visual KV Series

1 3

3.4 Applications of Interrupt Programs

3.4.3 Measuring the ON Time of High-speed Pulses


Outline Measures the pulse width of the pulse input to an input relay.

Visual KV Series

ON

Sensor input 0000


OFF

Pulse width (s)

Example: Measurement of workpiece length

Sensor Visual KV

Ladder diagram Special utility relay 2100 is turned ON to measure the pulse width using 1-s units. The values when input relay 0000 is ON is written into temporary data memory TM02, and the values when input relay 0000 is OFF is written into data memory DM1912. The pulse width can be obtained by subtracting the value of TM02 from the value of DM1912. The obtained value is written into data memory DM0000 (Unit: s).
2008 0001 2002 0002 2002 0003 0004 0005 2403 0006 2403 0007 0008 ENDH 0009 DM1928 LDA DM1928 LDA TM02 STA TM02 SUB DM0000 STA INT 0000 KEEP SET 2403 RES RETI EI HSP 0000 CTH0 2100 END

When power is turned ON, an EI instruction enables interrupts. Sets an input time constant of input 0000 to 10 s. CTH0 counts pulses with a 1-s internal clock.

Turns ON input 0000 to execute an interrupt. First, an interrupt is executed at the rising edge of input 0000. The current value of CTH0 stored in DM1928 is written to TM02. Turns ON special utility relay 2403 to change the interrupt polarity to the falling edge. Next, an interrupt is executed at the falling edge of input 0000. The value stored in TM02 is subtracted from the current value of CTH0 stored in DM1928, and the obtained ON width of input 0000 is written to DM0000. Turns OFF special utility relay 2403 to change the interrupt polarity to the rising edge.

3-200

Chapter 3 Interrupts

3.4 Applications of Interrupt Programs

3.4.4 Measuring the Period in which a Target Passes between Two Points
Visual KV Series
Outline Measures the period in which two input relays turn ON.
ON OFF

Sensor 1 input 0002

Sensor 2 input 0003

ON OFF
Passing time (s)

Example: Measurement of tact time

Visual KV

Sensor 1

Sensor 2

Ladder diagram Measures the time from when input relay 0002 turns ON until input relay 0003 turn ON. The measured value is written to data memory DM0000 (Unit: s).
When power is turned on, an EI instruction enables interrupts. Sets the interrupt polarity of inputs 0002 and 0003 to the rising edge. Sets the input time constant of inputs 0002 and 0003 to 10 s.

1 3

2008 EI 0001 2002 0002 0003 2002 0004 0005 0006 0007 0008 2002 0009 0010

2410 RES

2411 RES

2412 RES

2413 RES

HSP 0002 HSP 0003 CTH1 2200 END INT 0002 RETI INT 0003 DM1934 DM1932 DM0000 LDA SUB STA RETI ENDH

CTH1 counts the pulses using a 1-s internal clock.

When INT2 is executed, the current value of CTH1 is automatically transferred to DM1932 and DM1933 (Input capture). When INT3 is executed, the current value of CTH1 is automatically transferred to DM1934 and DM1935 (Input capture). Subtracts the input capture value of INT2 from that of INT3 to obtain the time it takes for the target to pass between two points and then writes it to DM0000.

0011

Chapter 3 Interrupts

3-201

3.4 Applications of Interrupt Programs

Visual KV Series

3-202

Chapter 3 Interrupts

Chapter 4
High-speed Counters
This chapter describes high-speed counters and high-speed counter comparators, which allow high-speed pulse measurement and pulse output, independent of the scan time.
For KV-10/80 Series, see Chapter 6.

4.1 4.2
4.2.1 4.2.2

High-speed Counter Instructions ................................................ 3-204 Outline of High-speed Counters .................................................. 3-206
High-speed Counters and High-speed Counter Comparators ............... 3-206 Internal Clock for High-speed Counters ................................................. 3-210

4.3
4.3.1 4.3.2 4.3.3 4.3.4 4.3.5 4.3.6 4.3.7

Setting and Operation of High-speed Counters ...................... 3-211


Reading the Current Value of the High-speed Counter ......................... Preset Value of the High-speed Counter Comparator ........................... Comparator Output ................................................................................ Count Input Method ................................................................................ Resetting the High-speed Counter ......................................................... Differences with the CTH Instruction between the Conventional and Visual KV Series ....................................................... Applications of High-speed Counters ..................................................... 3-211 3-211 3-211 3-212 3-214 3-216 3-217

4.4
4.4.1 4.4.2 4.4.3 4.4.4 4.4.5

Expanded Functions of High-speed Counters ......................... 3-221


24-bit High-speed Counter ..................................................................... 3-221 Changing the Current Value of a 24-bit High-speed Counter ................ 3-223 Application Example of 24-bit High-speed Counter (single-phase input) 3-224 Ring Counter Function ........................................................................... 3-225 Applications of Ring Counters ................................................................ 3-226

4.5
4.5.1 4.5.2 4.5.3 4.5.4 4.5.5 4.5.6

Special Functions Using High-speed Counters ...................... 3-228


Specified Frequency Pulse Output Function .......................................... Applications of the Specified Frequency Pulse Output .......................... Frequency Counter Function .................................................................. Applications of Frequency Counters ...................................................... Cam Switch Function ............................................................................. Application of the Cam Switch ............................................................... 3-228 3-229 3-231 3-232 3-233 3-236

4.6
4.6.1 4.6.2

Direct Clock Pulse Output ............................................................. 3-237


Outline of Direct Clock Pulse Output ...................................................... 3-237 Pulse Output Setting with the High-speed Counter Comparator ............ 3-238

4.7
4.7.1 4.7.2 4.7.3 4.7.4

Examples of Direct Clock Pulse Output .................................... 3-242


Example of Outputting a Pulse with 1:1 ON/OFF Ratio ......................... Example of Outputting a Pulse with Variable ON/OFF Ratio ................. Example of Stopping the Pulse Output at a Specified Pulse Count ....... Application of Direct Clock Pulse Output (Ramp-up/down control) ........ 3-242 3-245 3-249 3-251

Visual KV Series

4.1 High-speed Counter Instructions

4.1 High-speed Counter Instructions


This section describes the CTH0, CTH1, and CTC instructions, which are used for high-speed counters.

Visual KV Series

CTH0: 16-Bit Highspeed counter CTH1: 16-Bit Highspeed counter CTC: High-speed counter comparator

CTH

RES

: : :

CTH0 nnnn

CTH

SET

CTH1 nnnn

CTC

#ddddd CTCn

16-bit (0 to 65535) up/down counters for clock pulses with a 30-kHz input 1. response frequency. Can be changed to 24-bit (0 to 16777215) counters with the MEMSW instruction. 2. Enables 30 kHz, two-phase input through two channels.1. Hardware-based comparator between the preset value and current value of the high-speed counter. The current value can be changed to a preset value by external input.
1. KV-300/Visual KV only 2. Visual KV only

Example
2008
1)

HSP 0004 2103 SET


Input-enable relay

2008 0000

CTH0 RES CTH0 0004 #60000 CTC0


Count input

2)

3)

CTC0
4)

0500 SET #00030 T000 T000 CTC0 RES 0500 RES

0500
5)

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 Instruction LD HSP LD SET CON RES LD CTH0 CTC0 CTH0 0000 0004 #6000 Operand 2008 0004 2008 2103 Line No. 0009 0010 0011 0012 0013 0014 0015 0016 Instruction LD SET LD TMR AND RES CON RES 0500 Operand CTC0 0500 0500 000 #00030 T000 CTC0

3-204

Chapter 4 High-speed Counters

4.1 High-speed Counter Instructions

Operands
CTH0: CTH1: 0004 2100 to 2102

CTC0 to 3:

Preset value #00001 to #65535

Key operation
RES

CTH

Clock input

ENT
R-SRCH

SET

CTC

Operand

Preset value

ENT
R-SRCH

Description
1) Initializes the setting when power is turned on. The HSP instruction sets the input time constant of input relay 0004 to 10 s. The current value of CTH0 is reset as soon as it matches the preset value of CTC0 when special utility relay 2103 is ON. 2) The counting is disabled when input relay 0000 is OFF. Counting starts (at 0004) when input relay 0000 turns ON. 3) Sets "60000" as the preset value of the high-speed counter comparator. 4) When the current value of CTH0 reaches "60000", output relay 0500 turns ON and the current value is reset. 5) Turns OFF both CTC0 and 0500 for three seconds after output relay 0500 turns ON.

Tips
Unlike software-based counters, the high-speed counter is a hardware-based, program-independent counter. It achieves an input response frequency of 30 kHz without being affected by the scan time. Input relays 0004 and 0005 can independently count the pulses with a 30 kHz input response frequency. Two-phase encoder input can be captured through two channels (30 kHz). CTH0 uses input from relay 0004 as phase A input and input from relay 0006 as phase B input (KV-10xx: 0000). CTH1 uses input from 0005 as phase A input and input from 0007 as phase B input (KV-10xx: 0001).

Note: When phase differential input is used, pulses with a maximum frequency of 30 kHz can be counted, provided the pulses have a duty ratio of 1:1 (50%) and phase difference of 90. Inputting pulses with an irregular duty ratio or phase difference will decrease the allowable input frequency.

Chapter 4 High-speed Counters

3-205

Visual KV Series

0005 0500 2200 to 2202

1 4

4.2 Outline of High-speed Counters

4.2 Outline of High-speed Counters


This section describes the outline and specifications for high-speed counters and high-speed counter comparators featured with the Visual KV Series.

Visual KV Series

4.2.1

High-speed Counters and High-speed Counter Comparators


The high-speed counter is a hardware-based counter that can count high-speed pulses that cannot be counted by counters written in main routines (C or UDC). (Pulses with a maximum frequency of 30 kHz can be counted.). * High-speed counter comparators are hardware-based comparators that compare their preset value with the current value of one of the a high-speed counters. Both counters and comparators perform processing with hardware rather than software programs, enabling high-speed performance independent of the scan time.

Structure of high-speed counters and high-speed counter comparators


The Visual KV PLC has two high-speed counters, each equipped with two highspeed counter comparators and dedicated internal clocks. Block diagram of high-speed counters
0008 (RESET) 2.

Internal clocks*
2100 (1.0 s) 2101 (10.0 s) 2102 (100.0 s)

16-bit high-speed counter


CTH0

Input capture device


DM1928, DM1929(INT0) DM1930, DM1931(INT1)

Special utility relay


2103 to 2114

Control circuit

0500

Phase A 0004 Phase B(0006)

External input
0004/0006

high-speed counter comparator

high-speed counter comparator

CTC0

CTC1

INT CTC0 INT CTC1

Internal clocks*
2200 (1.0 s) 2201 (10.0 s) 2202 (100.0s)

16-bit high-speed counter


CTH1

Input capture device


DM1932, DM1933(INT2) DM1934, DM1935(INT3)

Special utility relay


2203 to 2214 0501

Internal connection for external clock Phase A Phase B 0005


(0007) 0500

Control circuit
high-speed counter comparator high-speed counter comparator

External input
0005/0007

CTC2

CTC3

INT CTC2 INT CTC3

0009 (RESET) 2.

1. With the KV-10xx, the external input relay for CTH0 is 0004 (phase A)/0000 (phase B), and for CTH1 is 0005 (phase A)/0001 (phase B). 2. With the KV-10xx, the preset input relay for CTH0 is 0002, and for CTH1 is 0003. For KV-10/80 user's Max. response frequency: 10 kHz * 2100 0.8 s 2101 6.4 s 2102 102.4 s 2200 0.4 s 2201 0.8 s 2202 3.2 s

3-206

Chapter 4 High-speed Counters

4.2 Outline of High-speed Counters


List of special utility relays for high-speed counter CTH0
Relay No. 2100* 2101* 2102* 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 Function Internal clock used only for CTH0 (1 s) Internal clock used only for CTH0 (10 s) Internal clock used only for CTH0 (100 s) Automatically clears CTH0 when comparator CTC0 turns ON. Disables/enables direct output from 0500 when comparator CTC0 turns ON. Turns OFF direct output from 0500 when comparator CTC0 turns ON. Turns ON direct output from 0500 when comparator CTC0 turns ON. Reverses ON/OFF status of output from 0500 each time comparator CTC0 turns ON. Disables/enables direct output from 0500 when comparator CTC1 turns ON. Turns OFF direct output from 0500 when comparator CTC1 turns ON. Turns ON direct output from 0500 when comparator CTC1 turns ON. Reverses ON/OFF status of output from 0500 each time comparator CTC1 turns ON. Automatically clears CTH0 when comparator CTC1 turns ON. Selects multiplication mode for CTH0. OFF/OFF: No multiplication (1 pulse) ON/OFF: x2 OFF/ON: x4 ON/ON: 2 pulses

ON: Yes OFF: No ON: Disable OFF: Enable ON: Yes OFF: No ON: Yes OFF: No ON: Yes OFF: No ON: Disable OFF: Enable ON: Yes OFF: No ON: Yes OFF: No ON: Yes OFF: No ON: Yes OFF: No

* Read-only relay.
Multiplication mode 2113 2114 No multiplication (1 pulse) OFF OFF

x2 ON OFF

x4 OFF ON

2 pulses ON ON

List of special utility relays for high-speed counter CTH1


Relay No. 2200* 2201* 2202* 2203 2204 2205 2206 2207 2208 2209 2210 2211 Function Internal clock used only for CTH1 (1 s) Internal clock used only for CTH1 (10 s) Internal clock used only for CTH1 (100 s) Automatically clears CTH1 when comparator CTC2 turns ON. Disables/enables direct output from 0501 when comparator CTC2 turns ON. Turns OFF direct output from 0501 when comparator CTC2 turns ON. Turns ON direct output from 0501 when comparator CTC2 turns ON. Reverses ON/OFF status of output from 0501 each time comparator CTC2 turns ON. Disables/enables direct output from 0501 when comparator CTC3 turns ON. Turns OFF direct output from 0501 when comparator CTC3 turns ON. Turns ON direct output from 0501 when comparator CTC3 turns ON. Reverses ON/OFF status of output from 0501 each time comparator CTC3 turns ON. Automatically clears CTH1 when comparator CTC3 turns ON.

ON: Yes OFF: No ON: Disable OFF: Enable ON: Yes OFF: No ON: Yes OFF: No ON: Yes OFF: No ON: Disable OFF: Enable ON: Yes OFF: No ON: Yes OFF: No ON: Yes OFF: No

2212 ON: Yes OFF: No 2213 Selects multiplication mode for CTH1. 2214 OFF/OFF: No multiplication (1 pulse) ON/OFF: x2 OFF/ON: x4 ON/ON: 2 pulses
* Read-only relay.
Multiplication mode 2213 2214 No multiplication (1 pulse) OFF OFF

x2 ON OFF

x4 OFF ON

2 pulses ON ON

Chapter 4 High-speed Counters

3-207

Visual KV Series

1 4

4.2 Outline of High-speed Counters


Other special utility relays
Relay Function No. 2400 Changes current value of CTH0 to preset value by external signal 2401 OFF/OFF: Not used ON/OFF: At rising edge OFF/ON: At falling edge ON/ON: Level 2406 Sets CTH0 as ring counter. ON: Yes OFF: No 2407 Ignores phase B input when no multiplication mode is used for CTH0. ON: Ignore phase B input and always count up. OFF: Use phase B input as usual.

Visual KV Series

2408 Changes current value of CTH1 to preset value by external signal 2409 OFF/OFF: Not used ON/OFF: At rising edge OFF/ON: At falling edge ON/ON: Level 2414 Sets CTH1 as ring counter. ON: Yes OFF: No 2415 Ignores phase B input when no multiplication mode is used for CTH1. ON: Ignore phase B input and always count up. OFF: Use phase B input as usual.

Data memory
DM No. DM1900/DM1901 DM1902/DM1903 DM1904/DM1905 DM1906/DM1907 DM1908/DM1909 DM1910/DM1911 DM1912/DM1913 DM1914/DM1915 DM1916/DM1917 DM1918/DM1919 DM1920/DM1921 DM1922/DM1923 DM1924/DM1925 DM1926/DM1927 Description Current value of 24-bit CTH0 (low-order bits/high-order bits) is read. Current value of 24-bit CTH1 (low-order bits/high-order bits) is read. Current value of 24-bit CTC0 (low-order bits/high-order bits) is read. Current value of 24-bit CTC1 (low-order bits/high-order bits) is read. Current value of 24-bit CTC2 (low-order bits/high-order bits) is read. Current value of 24-bit CTC3 (low-order bits/high-order bits) is read. Current value of 24-bit CTH0 (low-order bits/high-order bits) is written. Current value of 24-bit CTH1 (low-order bits/high-order bits) is written. Preset value of 24-bit CTC0 (low-order bits/high-order bits) is written. Preset value of 24-bit CTC1 (low-order bits/high-order bits) is written. Preset value of 24-bit CTC2 (low-order bits/high-order bits) is written. Preset value of 24-bit CTC3 (low-order bits/high-order bits) is written. Preset value of CTH0 (low-order bits/high-order bits) is written. Preset value of CTH1 (low-order bits/high-order bits) is written.

4
Note 1: As with the internal register, the contents of data memory are stored as 16bit binary data. Note 2: The contents of data memory are stored even when the Visual KV is turned off or "ALL DATA MEMORY CLEAR" is executed. It is stored more than 20 days with the KV-10xx, and more than two months with other models.

Specifications of high-speed counters


The high-speed counter is a hardware-based up/down counter that counts from 0 to 65535 with an auto-reset function. The following operands can be specified for count inputs.
High-speed counter CTH0 CTH1 Operand 2100 to 2102, 0004 2200 to 2202, 0005, 0500 Measurement range #00000 to 65535

High-speed counters CTH0 and CTH1 store current values only. When input relays 0004 and 0005 are selected as operands, they can be used as high-speed counters with a response frequency of 30 kHz. When special utility relays 2100 through 2102 and 2200 through 2202 are selected as operands, the high-speed counters can be used as high-speed timers. When relay 0500 is selected as an operand for CTH1, CTH1 can count the clock pulses produced by CTH0. CTH0 and CTH1 can be used as 24-bit high-speed counters when the MEMSW instruction is set.
"MEMSW instruction" (p. 3-92), "4.4.1 24-bit High-speed Counter" (p. 3-221), "4.3.4 Count Input Method" (p. 3-212), "When using comparator output from other counters as count input" (p. 3-213).

3-208

Chapter 4 High-speed Counters

4.2 Outline of High-speed Counters


Note 1: CTH instructions cannot be duplicated in a program. A maximum of two counters, CTH0 and CTH1, can be used in one program. Note 2: The operands for a high-speed counter cannot be changed during program execution. Note 3: When using a high-speed counter with external inputs, the input time constant must be set to 10 s with the HSP instruction or with special utility relay 2813. (Pulses with a maximum frequency of 30 kHz can be counted.) Note 4: When using input 0004 as an operand, use input 0006 (KV-10xx: 0000) for phase B input. Therefore, do not use input 0006 (KV-10xx: 0000) other than for the high-speed counter. Note 5: When selecting no multiplication mode, and you do not want to use input 0006 (KV-10xx: 0000) as phase B input, turn ON special utility relay 2407. Note 6: When using input 0005 as an operand, use input 0007 (KV-10xx: 0001) for phase B input. Therefore, do not use input 0007 (KV-10xx: 0000) other than for the high-speed counter. Note 7: When selecting no multiplication mode, and you do not want to use input 0007 (KV-10xx: 0001) as phase B input, turn ON special utility relay 2415. Note 8: When using the high-speed counter internal connection relay 0500, only single-phase input is available. In this case, external input relays 0005 and 0007 for CTH1 can be used as normal input relays. Note 9: When using phase differential input, pulses with a maximum frequency of 30 kHz can be counted, provided the pulses have a duty ratio of 1:1 (50%) and phase difference of 90. Inputting pulses with an irregular duty ratio or phase difference will decrease the allowable input frequency. Note 10: The current value of the high-speed counter is stored with a built-in, electrical double-layer capacitor for more than two months at 25C (KV-10xx: more than 20 days). The value can also be stored in EEPROM. "3.5 System Mode" (p.1-94).

High-speed counter comparators


The high-speed counter comparator (CTC) compares its preset value with the value of the high-speed counter (CTH). The CTC contact turns ON when the current value of the CTH matches the preset value of the CTC. Among CTC contacts, the ON/OFF status of output relays 0500 and 0501 can be changed with hardware (direct output) or can be used to execute an interrupt. Set special utility relays (2103 to 2112, 2203 to 2212) to change the ON/OFF status of output relays 0500 and 0501. The following table shows the relationship between the high-speed counters and high-speed counter comparators.
High-speed counter CTH0 CTH1 High-speed counter comparator CTC0, CTC1 CTC2, CTC3 Preset value range #1 to 65535 Direct output 0500 0501 Interrupts INT CTC0, INT CTC1 INT CTC2, INT CTC3

Note 1: Once the high-speed counter comparator turns ON, it remains ON until a RES instruction is encountered. Note 2: When a high-speed counter comparator is used as an interrupt, the interrupt is executed as soon as the current value of the high-speed counter reaches the preset value of the comparator. At the same time, the contact for the high-speed counter comparator automatically turns OFF. Note 3: CTC2 or CTC3 cannot be used as comparators for CTH0; CTC0 or CTC1 cannot be used as comparators for CTH1. Note 4: Do not specify "#00000" as the preset value for CTC0 through CTC3.

Chapter 4 High-speed Counters

3-209

Visual KV Series

1 4

4.2 Outline of High-speed Counters

4.2.2 Internal Clock for High-speed Counters


Each high-speed counter (CTH) is equipped with a dedicated internal clock. To use the internal clock, specify the appropriate relay No. as an operand for the CTH instruction. The internal clock or external pulses cannot be changed during program execution. Each clock has the following count period:
High-speed counter Relay No. CTH0 2100 2101 2102 CTH1 2200 2201 2202 Period 1.0 s 10.0 s 100.0 s

Visual KV Series

High-speed counter internal clock error Absolute error: 200 ppm Temperature coefficient: 00 Relative error between CTH0 and CTH1: 0

3-210

Chapter 4 High-speed Counters

4.3 Setting and Operation of High-speed Counters

4.3 Setting and Operation of High-speed Counters


Visual KV Series
The high-speed counters and high-speed counter comparators operate using data specified with special utility relays.

4.3.1 Reading the Current Value of the High-speed Counter


The current value of a high-speed counter is normally written as 16-bit data (0 to 65535). The range of the current value for high-speed counters is as follows:
High-speed counter CTH0 CTH1 Current value 0 to 65535

Refer to "4.4.1 24-bit High-speed Counter" (p. 3-221) when using the 24-bit high-speed counter.

4.3.2 Preset Value of the High-speed Counter Comparator


The preset value of a high-speed counter comparator is written as 16-bit data (0 to 65535). The relationship between high-speed counters and high-speed counter comparators is as follows:
High-speed counter CTH0 CTH1 High-speed counter comparator CTC0 CTC1 CTC2 CTC3

1 4

Refer to "4.4.1 24-bit High-speed Counter" (p. 3-221) when using the 24-bit high-speed counter.

4.3.3 Comparator Output


The high-speed counter comparator provides the comparator output function, which turns ON outputs as soon as the comparator turns ON, without being affected by the scan time. Comparator output is controlled by setting special utility relays. The relationships among the high-speed counters, high-speed counter comparators, and special utility relays are as follows:
High-speed counter CTH0 CTH1 High-speed counter comparator CTC0 CTC1 CTC2 CTC3 Special utility relay 2104 2108 2204 2208 Setting of special utility relay Turns output relay 0500 ON/OFF. Turns output relay 0500 ON/OFF. Turns output relay 0501 ON/OFF. Turns output relay 0501 ON/OFF. OFF: Yes ON: No OFF: Yes ON: No OFF: Yes ON: No OFF: Yes ON: No

Chapter 4 High-speed Counters

3-211

4.3 Setting and Operation of High-speed Counters

4.3.4 Count Input Method


Select the input source for the high-speed counter.

When using an internal clock as input

Visual KV Series

Three types of internal clocks are provided: 1 s, 10 s, and 100 s. Set the desired internal clock with a special utility relay.

When using external inputs as count inputs


Set special utility relays as follows:
Operation mode With direction judgement (Count up when phase B input 0006 [0007] is OFF, count down when ON) Without direction judgement (Always count up by ignoring phase B input 0006 [0007]) x2 Phase differential input x4 2-pulse method (Phase A: count up, phase B: count down) 0500 (CTH1) input OFF ON OFF ON CTH0 2113 2114 2407 2213 CTH1 2214 2415

No multiplication (single-phase input)

OFF

OFF

OFF

OFF

OFF

OFF

OFF

OFF

ON

OFF

OFF

ON

ON

OFF

ON

OFF

ON

ON

ON

ON

Operation mode The counting method can be selected from the following when external inputs are used. The ring counter function is available for each counting method.

For more about the ring counter, refer to "4.4.4 Ring Counter Function" (p. 3-225).

Types of operation modes No multiplication mode (single-phase input) Counts up at the rising edge of phase A while phase B is OFF. Counts down at the rising edge of phase A while phase B is ON. With direction judgement (Special utility relay 2407: OFF)
(Phase A) 0004 (Phase B) 0006
ON OFF ON OFF

(Counter value) CTH0

Without direction judgement (Special utility relay 2407: ON)


(Phase A) 0004 (Phase B) 0006
ON OFF ON OFF

(Counter value) CTH0

Phase B input can be ignored by turning ON special utility relay 2407 (for CTH0) or 2415 (for CTH1).

3-212

Chapter 4 High-speed Counters

4.3 Setting and Operation of High-speed Counters


Double (x2) mode: Counts up/down based on the phase difference between two-phase pulse inputs (phase A and phase B).

(Phase A) 0004 (Phase B) 0006

ON OFF ON OFF

(Counter value) CTH0


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

Quadruple (x4) mode:

Counts up/down based on the phase difference between two-phase pulse inputs (phase A and phase B).

(Phase A) 0004 (Phase B) 0006

ON OFF ON OFF

(Counter value) CTH0


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

2-pulse method mode: Counts up at the rising edge of phase A and counts down at the rising edge of phase B.
(Phase A) 0004 (Phase B) 0006
ON OFF ON OFF

(Counter value) CTH0

Count up: Rising edge of phase A Count down: Rising edge of phase B

Note 1: Use SET-RES instructions to set the special utility relays. Note 2: When using phase differential input, pulses with a maximum frequency of 30 kHz can be counted, provided the pulses have a duty ratio of 1:1 (50%) and phase difference of 90. Inputting pulses with an irregular duty ratio or phase difference will decrease the allowable input frequency. When using comparator output from other counters as count input When relay 0500 is specified as the operand for CTH1, the pulses produced by CTH0 can be directly output from 0500 to CTH1. In this case, input relays 0005 (phase A) and 0007 (phase B) for CTH1 can be used as normal input relays.
ON

0500
OFF

(Counter value)

CTH1

Chapter 4 High-speed Counters

3-213

Visual KV Series

1 4

4.3 Setting and Operation of High-speed Counters

4.3.5 Resetting the High-speed Counter


Reset is an operation used to set the current value of a high-speed counter to "0". Four types of reset operations are available: reset with input-enable relay, reset with external input, reset automatically after counting up, and reset with the RES CTH instruction.

Visual KV Series

Automatic reset after counting up


Resets the counter value as soon as the preset value matches the current value (CTC = CTH). This reset operation is independent of the scan time.
High-speed counter High-speed counter comparator CTC0 CTH0 CTC1 CTC2 CTH1 CTC3 2212 2112 2203 Relay No. 2103 Operation When special utility relays 2103 and 2112 are turned ON, the current CTH0 value is reset as soon as it matches the CTC0 or CTC1 preset value. When special utility relays 2203 and 2212 are turned ON, the current CTH1 value is reset as soon as it matches the CTC2 or CTC3 preset value.

Note: Do not specify the same values for CTC0 and 1 (2 and 3) to automatically reset the counter with both comparators.
Scan

CTH

4
Reset with the RES CTH instruction

CTH = CTC

CTH is reset when CTH value equals CTC value.

Resets the counter by writing a RES CTH instruction to the program. This reset operation is dependent on the scan time.
Scan
CTH

Execution of RES CTH instruction

CTH is reset by the output process of the scan which executes the RES CTH instruction.

Reset with the input-enable relay


Resets the counter at execution of CTH instruction during the scan after the inputenable relay is turned OFF. This reset operation is dependent on the scan time.
Scan Input-enable relay for CTH instruction
CTH

Execution of CTH instruction

CTH is reset at execution of the CTH instruction during the scan after the inputenable relay turns OFF.

3-214

Chapter 4 High-speed Counters

4.3 Setting and Operation of High-speed Counters

Reset with external input


Resets the counter at the instant the external reset input relay turns ON. The external reset is assigned to input relay 0008 (KV-10xx: 0002) for CTH0, and input relay 0009 (KV-10xx: 0003) for CTH1. The timing of the reset can be changed by setting relays 2400 and 2401 (for CTH0) or 2408 and 2409 (for CTH1) as follows. This reset operation is independent of the scan time.
High-speed counter Relay No. Status OFF ON CTH0 2400 OFF ON OFF ON CTH1 2408 OFF ON 2409 2401 Relay No. Status OFF OFF ON ON OFF OFF ON ON Operation Disables external reset operation. Resets counter at rising edge of input 0008 (KV-10xx: 0002). Resets counter at falling edge of input 0008 (KV-10xx: 0002). Resets counter when input 0008 (KV-10xx: 0002) is ON. Disables external reset operation. Resets counter at rising edge of input 0009 (KV-10xx: 0003). Resets counter at falling edge of input 0009 (KV-10xx: 0003). Resets counter when input 0009 (KV-10xx: 0003) is ON.

Scan External reset input CTH

CTH is reset at the instant the external reset input relay turns ON.

Preset function
The current value of CTH can be changed to any desired value by using the external reset function of input relays 0008 (KV-10xx: 0002) (for CTH0) or 0009 (KV-10xx: 0003) (for CTH1) specified with special utility relays 2400 and 2401 (for CTH0) or 2408 and 2409 (for CTH1). (The external reset function sets the value to "0".) Write the desired value of the preset input into the following data memories:
DM No. DM1924 (low-order bits), DM1925 (high-order bits) DM1926 (low-order bits), DM1927 (high-order bits) Description Preset value for CTH0 Preset value for CTH1

Use the STA or DW instruction to write data to the data memory. Note 1: The preset function is available only with the external reset input. The CTH value is reset to "0" with other resetting methods. Note 2: Use the SET, RES instruction pair to set the special utility relays. Note 3: When 16-bit high-speed counter is used, write the preset values into DM1924 and DM1926 only.

Chapter 4 High-speed Counters

3-215

Visual KV Series

1 4

4.3 Setting and Operation of High-speed Counters

4.3.6 Differences with the CTH Instruction between the Conventional and Visual KV Series
Visual KV Series
The Visual KV Series has some different high-speed counter operations from the conventional KV Series [KV-10/16/24/80R(W)/T(W)]. Input-enable relay
0001 CTH0 0004

Input-enable relay

Count input

With the conventional KV Series, the current value of the high-speed counter is reset when the CTH instruction is executed while the input-enable relay is OFF. However, the counter continues counting until the end of the scan time. As a result, when the input-enable relay starts counting again, the counter may already be incremented by the length of the scan time. With the Visual KV Series, the current value of the high-speed counter is reset at the falling edge of the input-enable relay, so that the counter does not continue counting.

High-speed counter (CTH) The conventional KV Series includes high-speed counter CTH0, which is an 8-bit counter. The period of the internal clock is different from that in the new KV Series. The Visual KV Series allows you to reset a high-speed counter with external inputs. Its high-speed counter CTH0 is a 16-bit counter (can also be used as 24bit counter). With the Visual KV Series, when using the high-speed counter, the input time constant must be set shorter by using the HSP instruction or by turning ON special utility relay 2813. Phase differential input The Visual KV Series allows phase differential input for the high-speed counter. Response frequency The Visual KV Series provides a response frequency of 30 kHz. High-speed counter comparator The high-speed counter comparator turns ON the contact when its preset value matches the current value of the high-speed counter. Consequently, the contact may turn ON during the scan time. Be careful when using the contact for one comparator in several points in a program. Special utility relay A portion of the special utility relay assignment is different from that of the conventional KV Series.

3-216

Chapter 4 High-speed Counters

4.3 Setting and Operation of High-speed Counters

4.3.7 Applications of High-speed Counters


Comparing encoder values
Uses two encoders to input phase differential signals to input relays 0004 and 0006, and 0005 and 0007. Turns ON output relay 0500 if the count value of 0005 and 0007 is greater than that of 0004 and 0006 when 0004 and 0006 count "60000".
Initial setting SET 2113 Setting for CTH0 RES 2114 SET 2213 Setting for CTH1 RES 2214

2008 EI 2002

2113 SET

2114 RES

2213 SET

2214 RES

CTH0 RES HSP 0004 HSP 0005 HSP 0006 HSP 0007

Sets input time constant of inputs 0004, 0005, 0006, and 0007 to 10 s.

0000

CTH0 0004 #60000 CTC0 CTH1 0005 END INT CTC0

Phase differential input to inputs 0004 and 0006 Specifies preset value of CTC0 to "#60000". Phase differential input to inputs 0005 and 0007

2002

CTH1 LDA

#60000 CMP

2009 2009

0500 RES 0500 SET CTH0 RES CTH1 RES RETI ENDH

2002

Compares current value of CTH1 with "#60000". Turns ON 0500 when value is greater than "#60000". Turns OFF 0500 when value is smaller.

Setting multi-level high-speed counters


Sets the preset value of the high-speed counter comparator for the high-speed counter for input relay 0005 as follows: #01000 DM0000 #02000 DM0001 #03000 DM0002 When the current counter value reaches one of the preset values, the respective output turns ON as follows: DM0000 0500 turns ON. DM0001 0501 turns ON. DM0002 0502 turns ON.
2008 2002 0001 2002 CTH1 LDA DM0000 CMP DM0001 CMP DM0002 CMP 2009 2009 2009 #01000 LDA DM0000 STA #02000 LDA DM0001 STA #03000 LDA DM0002 STA HSP 0005 CTH1 0005 0500 0501 0502

Chapter 4 High-speed Counters

3-217

Visual KV Series

1 4

4.3 Setting and Operation of High-speed Counters


Cording
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 0014 Instruction LD LDA CON STA CON LDA CON STA CON LDA CON STA LD HSP LDB Operand 2008 #01000 DM0000 #02000 DM0001 #03000 DM0002 2002 0005 0001 Line No. 0015 0016 0017 0018 0019 0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 Instruction CTH1 LD LDA MPS CMP ANB OUT MRD CMP ANB OUT MPP CMP ANB OUT Operand 0005 2002 CTH1 DM0000 2009 0500 DM001 2009 0501 DM0002 2009 0502

Visual KV Series

Clearing the current value of the high-speed counter


Counts pulses at input relay 0005. When the current value reaches the preset value "60000", clears the current value of high-speed counter CTH1 and turns ON output relay 0502 for 3 seconds. Cording
2008 2002 2203 SET CTH1 RES HSP 0005 CTH1 0005 #60000 CTC2 CTC2 0502 #00030 T001 T001 CTC2 RES

Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 0015 0016

Instruction LD SET CON RES LD HSP LD CTH1 CTC2 LD OUT CON TMR CON AND RES

Operand 2008 2203 CTH 2002 0005 2002 0005 #60000 CTC2 0502 001 #00030 T001 CTC2

4
2002

3-218

Chapter 4 High-speed Counters

4.3 Setting and Operation of High-speed Counters

Phase differential input


Inputs phase differential signals from input relays 0004 and 0006 and counts pulses at CTH0. The count value is written to DM0000. When the current value of CTH0 reaches "60000", clears the value, turns ON output 0500, and stops counting at CTH0. Input relay 0008 is used as an external reset.
2008 EI 2002 2103 SET 2113 SET 2114 RES 2400 SET 2401 RES CTH0 RES HSP 0004 HSP 0006 HSP 0008 0500 CTH0 0004 #60000 CTC0 2002 CTH0 LDA DM0000 STA END INT CTC0 2002 0500 SET RETI ENDH

Initial setting

Cording
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 0014 0015 Instruction LD EI CON SET CON SET CON RES CON SET CON RES CON RES LD HSP Operand 2008 Line No. 0016 0017 0018 0019 0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 0030 Instruction HSP HSP LDB CTH CTC LD LDA CON STA END INT LD SET RETI ENDH Operand 0006 0008 0500 0 0004 0 #60000 2002 CTH0 DM0000 CTC0 2002 0500

2103 2113 2114 2400 2401 CTH0 2002 0004

Initial setting Special utility relays Turn ON 2013 to reset the current value of CTH0 when CTC0 turns ON. Turn ON 2113 and turn OFF 2114 to set the high-speed counter to double (x2) multiplication mode. Turn ON 2400 and turn OFF 2401 to enable the external reset. The counter is reset at the rising edge of input 0008. Note : External reset input 0008 is set with hardware. Programming is not necessary except for setting the external reset enable relays (2400 to ON and 2401 to OFF).

Chapter 4 High-speed Counters

3-219

Visual KV Series

1 4

4.3 Setting and Operation of High-speed Counters

Fetching counts from encoder


Uses the double (x2) multiplication mode to fetch phase differential input from the encoder. The fetched data is output as BCD data. Phase differential input: 0004, 0006 BCD output: 0600 to 0615 (4 digits)
2008 2002 2103 SET 2113 SET 2114 RES CTH0 RES 2400 SET HSP 0004 HSP 0006 HSP 0008 0000 2002 #00000 TM00 STA LDA CTH0 #00002 LDA DIV TBCD CTH0 0004 0600 STA END ENDH
Initial setting

Visual KV Series

Cording
Line No. 0000 Instruction LD SET CON SET CON RES CON RES CON SET LD HSP HSP HSP LD 2400 2002 0004 0006 0008 0000 CTH0 2114 2113 Operand 2008 2103 Line No. 0015 0016 0017 0018 0019 0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 Instruction CTH LD LDA CON STA CON LDA CON DIV CON TBCD CON STA END ENDH 0600 #00002 CTH0 TM00 Operand 0 0004 2002 #0000

0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 0014

Initial setting Special utility relays Turn ON 2013 to reset the current value of CTH0 when CTC0 turns ON. Turn ON 2113 and turn OFF 2114 to set the high-speed counter to double (x2) multiplication mode. Turn ON 2400 to enable the external reset. The counter is reset at the rising edge of input 0008. Note : The external reset input 0008 is set with hardware. Programming is not necessary except for setting the external reset enable relay (2400 to ON).

3-220

Chapter 4 High-speed Counters

4.4 Expanded Functions of High-speed Counters

4.4 Extended Functions of High-speed Counters Visual KV Series Only


4.4.1 24-bit High-speed Counter
Normally, the high-speed counter operates with 16 bits. You can operate the counter with 24 bits (0 to 16777215) using special utility relays. Set the 24-bit operation with the MEMSW instruction.

"MEMSW instruction" (p. 3-92)

MEMSW instruction: SW3


No. 3 Function of switch Setting 24-bit/16-bit counter comparator for CTH0 ON 24-bit OFF 16-bit

MEMSW instruction: SW4


No. 0 Function of switch Setting 24-bit/16-bit counter comparator for CTH1 ON 24-bit OFF 16-bit

The following data memories are used for 24-bit operation. Read areas
DM No. DM1900 DM1901 DM1902 DM1903 DM1904 DM1905 Description Low-order bits of current CTH0 value High-order bits of current CTH0 value Low-order bits of current CTH1 value High-order bits of current CTH1 value Low-order bits of preset CTC0 value High-order bits of preset CTC0 value DM No. DM1906 DM1907 DM1908 DM1909 DM1910 DM1911 Description Low-order bits of preset CTC1 value High-order bits of preset CTC1 value Low-order bits of preset CTC2 value High-order bits of preset CTC2 value Low-order bits of preset CTC3 value High-order bits of preset CTC3 value

Write areas
DM No. DM1912 DM1913 DM1914 DM1915 DM1916 DM1917 Description Low-order bits of current CTH0 value High-order bits of current CTH0 value Low-order bits of current CTH1 value High-order bits of current CTH1 value Low-order bits of preset CTC0 value High-order bits of preset CTC0 value DM No. DM1918 DM1919 DM1920 DM1921 DM1922 DM1923 Description Low-order bits of preset CTC1 value High-order bits of preset CTC1 value Low-order bits of preset CTC2 value High-order bits of preset CTC2 value Low-order bits of preset CTC3 value High-order bits of preset CTC3 value

Chapter 4 High-speed Counters

3-221

Visual KV Series

This section describes the 24-bit high-speed counter and ring counter functions.

1 4

4.4 Expanded Functions of High-speed Counters


The high-speed counter and high-speed counter comparator update the contents of the read area of data memory each scan time. At the start of an interrupt routine, the current value is updated. The contents of the write area of data memory is updated with the data write operation.

Visual KV Series

"Setting the 24-bit high-speed counter comparator" (below) and "4.4.2 Changing the Current Value of a 24-bit High-speed Counter" (p. 3-223)

Note 1: Use the SET, RES instruction pair to set the special utility relays. Note 2: The 16-bit/24-bit high-speed counter setting with the MEMSW instruction is effective when the Visual KV is in RUN mode. You must change the program to change between 16-bit and 24-bit settings.

Setting the 24-bit high-speed counter comparator


To specify the preset value for the 24-bit high-speed counter comparator, write the value into the write area DM1916 to DM1923 and execute the STA and CTC instructions to specify or change the preset value. When the setting or change is properly performed, the CTC read areas DM1904 through DM1911 are updated with the new values after one scan. Changing the preset value Change the preset value for the 24-bit high-speed counter comparator using the Access Window, programming support software, handheld programmer, or operator panel with the following procedure. 1. Write the desired preset value into data memory. Write the desired preset value to the CTC preset value write areas DM1916 through DM1923.

2. Change the preset value of CTC. (See the notes on the next page.) With the Access Window Call CTC in device mode and change the value. With the "KV IncrediWare (DOS)" programming support software Change the preset value of CTC with the "Edit Device CTC" [F2] option. With the "LADDER BUILDER for KV" programming support software Change the preset value of CTC in the dialog box. With the KV-P3E(01) handheld programmer Change the preset value of CTC with the "TIMER COUNTER SETTING CHANGE" function.
For more about detailed operation, refer to "Chapter 3 Access Window" (p. 1-79), "Chapter 6 Handheld Programmer" (p. 1-195) and "Chapter 2 Instructions" (p. 3-33).

Note 1: When the preset value of a 24-bit CTC is changed with an instruction such as STA CTC0, the value entered as an operand is ignored but the value written in DM1916 through DM1923 is referred to and used as the preset value. Note 2: Be sure to write the desired value to the write area of the high-speed counter comparator preset value (DM1916 through DM1923) before executing the change operation (e.g., STA instruction).

3-222

Chapter 4 High-speed Counters

4.4 Expanded Functions of High-speed Counters

4.4.2 Changing the Current Value of a 24-bit High-speed Counter


Visual KV Series
Change the current value of the 24-bit high-speed counter with the Access Window, programming support software, handheld programmer, or operator panel with the following procedure. 1. Write the desired current value into data memory. Write the desired current value to the CTH current value write areas DM1912 through DM1915. 2. Change the current value of CTH. (See notes below.) With the Access Window Call CTH in device mode and change the value. With the "KV IncrediWare (DOS)" programming support software Change the preset value of CTH with the "Edit Device CTH" [F2] option. With the "LADDER BUILDER for KV" programming support software Change the preset value of CTH in the dialog box. With the KV-P3E(01) handheld programmer Change the preset value of CTH with the "TIMER COUNTER CURRENT VALUE CHANGE" function.
For more about detailed operation, refer to "Chapter 3 Access Window" (p.1-79), "Chapter 6 Handheld Programmer" (p.1-195) and "Chapter 2 Instructions" (p.3-33).

Note 1: The current value of the high-speed counter cannot be changed in the ladder program. Note 2: DM1900 to DM1923, the data memories for 24-bit high-speed counters, can be used only when a 24-bit high-speed counter is specified with the MEMSW instruction.

1 4

Chapter 4 High-speed Counters

3-223

4.4 Expanded Functions of High-speed Counters

4.4.3 Application Example of 24-bit High-speed Counter (single-phase input)


Visual KV Series
The following is a ladder program using a 24-bit high-speed counter and high-speed counter comparator with a preset value of "1000000".

0001 0002 0003 0004 0005 0006 0007 0008


2002 2008 2002 2002 #00015 DM1917 #16960 DM1916 LDA STA LDA STA
High-order 16 bits of high-speed counter comparator Low-order 16 bits of high-speed counter comparator

MEMSW $0800 CTC0 STA


Writes preset value of high-speed counter comparator

1)

CTH0 RES HSP 0004 CTH0 0004 #65535 CTC0

2)

3)

4)

5)

DM1901 DM0001 DM1900 DM0000 STA LDA STA LDA


High-order 16 bits of current value of highspeed counter Low-order 16 bits of current value of highspeed counter

6)

END ENDH

1) Sets CTH0 as the 24-bit high-speed counter with the MEWSW instruction. (Turn on 3 of SW3.)

2) When power is turned on, writes the preset value "1000000" of the high-speed counter comparator (CTC0) and sets the value with the STA CTC0 instruction. 3) Sets the input time constant of input relay 0004 to 10 s. 4) Counts pulses at input relay 0004 with high-speed counter CTH0. 5) Defines a dummy high-speed counter comparator. 6) Reads the current value of CTH0 into data memory DM0000 (low-order bits) and DM0001 (high-order bits) each scan time.

3-224

Chapter 4 High-speed Counters

4.4 Expanded Functions of High-speed Counters

4.4.4 Ring Counter Function


Normally, the counter reads "#65535 ($FFFF)" by counting down from "0" by one. The ring counter function is an additional function of the automatic clear function. It reads "preset value - 1" when it counts down from "0" by one. Operation of the ring counter function
Normal counter 0

65535

Ring counter

CTC1 -1 ( CTC3 -1)


Not used

65535

Setting procedure When setting the ring counter, use CTC1 for CTH0 and CTC3 for CTH1. Set the upper limit (preset value) to CTC1 or CTC3 and turn ON special utility relay 2406 (for CTH0) or 2414 (for CTH1). The ring counter is set to read "CTC1/ CTC3 preset value - 1" when it counts down from "0" by one. To use the ring counter for both counting up/down operations, turn ON special utility relay 2112 (for CTH0) or 2212 (for CTH1).
High-speed counter When CTH0 is used When CTH1 is used High-speed counter comparator Special utility relay

Set "upper limit value + 1" to CTC1. Turn ON 2406. Set "upper limit value + 1" to CTC3. Turn ON 2414.

Note 1: Use the SET-RES instruction pair to set the special utility relays. Note 2: The flag or the count-up interrupt for each CTC is effective in counting up operations, but is disabled in counting down operations. Example: When CTC = 100
Count up Count down
CTC

Turns ON. Does not turn ON.

CTH
0 1 2 97 98 99 0 1 2 2 1 0 99 98 97

Chapter 4 High-speed Counters

3-225

Visual KV Series

1 4

4.4 Expanded Functions of High-speed Counters

4.4.5 Applications of Ring Counters


When using a 16-bit high-speed counter
The following is a ladder program that uses the ring counter of a 16-bit high-speed counter with the preset value of "10000".

Visual KV Series

9999

0001 0002 0003 0004 0005 0006 0007

2008 EI 2002

2113 SET

2114 RES

2406 SET

2112 SET

CTH0 RES

1)

Sets ring Sets high-speed counter in counter. double (x2) multiplication mode.

Automatic reset of high-speed HSP counter

0004 HSP 0006


2)

2002

CTH0 0004 #10000 CTC1

3)

4)

0500

#00010 T000

T000

0500 RES END INT CTC1

5)

0008 0009 0010 0011


2002

0500 SET RETI ENDH

6)

1) When the power is turned on, an EI instruction enables interrupts. Sets highspeed counter CTH0 in double (x2) multiplication mode, CTH0 as a ring counter, and the high-speed counter automatic reset function at counting up. Resets the high-speed counter. 2) Sets the input time constant for input relays 0004 and 0006 to 10 s. 3) Counts 2-phase pulses of input relays 0004 and 0006 at CTH0. 4) Sets the preset value of high-speed counter comparator CTC1 to "10000". 5) Output relay 0500 turns ON for 1 second and then turns OFF. 6) When CTC1 turns ON, an interrupt is executed. Output relay 0500 turns ON.

3-226

Chapter 4 High-speed Counters

4.4 Expanded Functions of High-speed Counters

When using a 24-bit high-speed counter


The following is a ladder program that uses the ring counter of a 24-bit high-speed counter with the preset value of "100000".

99999

0001 0002
2008 EI 2113 SET 2114 RES 2406 SET
Sets ring counter.

MEMSW $0800 2112 SET CTH0 RES

1)

2)

Sets high-speed counter in double (x2) multiplication mode.

Automatic reset of high-speed counter

0003

#00001 DM1919 #34464 DM1918 LDA STA LDA STA


High-order 16 bits of highspeed counter comparator Low-order 16 bits of highspeed counter comparator

CTC1 STA

3)

Writes preset value of highspeed counter comparator.

0004 0005 0006 0007 0008 0009 0010 0011 0012 0013

2002

HSP 0004
4)

HSP 0006 2002 CTH0 0004 #65535 CTC1 0500 #00010 T000 T000 0500 RES END INT CTC1 2002 0500 SET RETI ENDH
8) 5)

6)

7)

1) Sets CTH0 as a 24-bit high-speed counter using the MEMSW instruction (Turn on 3 of SW3.). 2) When the power is turned on, an EI instruction enables interrupts. Sets highspeed counter CTH0 in double (x2) multiplication mode, CTH0 as a ring counter, and high-speed counter automatic reset function at counting up. Resets the highspeed counter. 3) Writes the preset value "100000" of high-speed counter comparator (CTC1) for the 24-bit high-speed counter (CTH0). Sets the preset value with the STA CTC0 instruction. 4) Sets the input time constant for input relays 0004 and 0006 to 10 s. 5) Counts 2-phase pulses of input relays 0004 and 0006 at CTH0. 6) Describes a dummy high-speed counter comparator. 7) Output relay 0500 turns ON for 1 second and then turns OFF. 8) When CTC1 turns ON, an interrupt is executed. Output relay 0500 turns ON.

Chapter 4 High-speed Counters

3-227

Visual KV Series

1 4

4.5 Special Functions Using High-speed Counters

4.5 Special Functions Using High-speed Counters Visual KV Series Only


Visual KV Series
This section describes the specified frequency pulse output function, frequency counter function, and cam switch function.

4.5.1 Specified Frequency Pulse Output Function


With high-speed counter CTH1, output pulses from output relay 0501 with the frequency (Hz) specified in data memory DM1936. To activate this function, write the desired value into DM1936 and turn ON special utility relay 2306. The internal clock of the high-speed counter is automatically set to 1 s. Pulses with duty ratio of 1:1 are output at the preset frequency obtained with the calculation "1,000,000/2/Output frequency". The KV performs the following operations after each scan time during the specified frequency pulse output function. Stops pulse output when special utility relay 2306 is turned OFF. Sets the preset value so that pulses are output at the frequency specified with the DM. (Pulse duty ratio: fixed to 50%) Starts pulse output.

Pulse duty Pulse duty is the ratio of the pulse widths between ON time and OFF time. A pulse duty of 50% means that the pulse widths between ON time and OFF time are the same, as follows.
ON OFF

The ratio between ON and OFF time is 1:1.

Device used for specified frequency pulse output Special utility relays
Relay No. 2306 2307 Description Use specified frequency pulse output. ON: Yes, OFF: No Function is forced OFF when error relay 2307 turns ON. Error flag for specified frequency pulse output function. Turns ON when contents of DM1936 is other than 16 to 50000.

Data memory
DM No. DM1936 Description Preset value for specified frequency pulse output is written.

3-228

Chapter 4 High-speed Counters

4.5 Special Functions Using High-speed Counters


Setting method Set the desired output frequency (Hz) into DM1936. The available range is 16 Hz to 50 kHz (16 to 50000). Pulses are output when special utility relay 2306 is ON. The output is stopped when the relay is turned OFF. If an unacceptable frequency is specified, special utility relay 2307 (error relay) turns ON. Special utility relay 2306 is turned OFF and pulse output is stopped. Note 1: The available minimum frequency specified in DM1936 is 16 Hz. Note 2: The output is stopped when a value of 15 or less is specified in DM1936. Note 3: Starts and stops of pulse output or frequency changes are executed after each scan. Note 4: It takes a maximum of 200 s from when the output command is issued until pulses are output. Note 5: CTH1 and special utility relays 2200 through 2215 cannot be used when the specified frequency pulse output function is used.

4.5.2 Applications of the Specified Frequency Pulse Output


Program using a digital trimmer The following ladder program illustrates how to use a digital trimmer to output pulses at a desired frequency (16 Hz to 10 kHz). Pulse output is stopped when the value of the digital trimmer decreases to 15 or less.
2008 2002 2307 #10000 DM1938 LDA STA 0 TMIN 2306 SET

0001 0002 0003 0004 0005

1)

DM1936 2) STA 0500 3) END ENDH

1) Sets the upper limit of the digital trimmer to "10000" and turns ON special utility relay 2306 to start the specified frequency pulse output. 2) Sets the input value of the digital trimmer as the output frequency value. 3) Output relay 0500 turns ON when a setting error occurs.

Chapter 4 High-speed Counters

3-229

Visual KV Series

1 4

4.5 Special Functions Using High-speed Counters


Program for speed control The following ladder program illustrates speed control using the specified frequency pulse output function. Control is started when input relay 0000 turns ON. The operation is slowed down and then stopped when input relay 0001 turns ON. By specifying the speed (Hz) in data memory DM0000, the program controls the speed with a start-up speed of 16 Hz and an acceleration speed of 100 Hz/100 ms.
0001 0002 0003 0004 0005 0006 0007
2307 0000 0001 1101 1100 T000 1000 DIFU 1001 DIFU 1000 1001 2010 2306 RES 1100 RES #00016 DM1936 LDA STA 2306 SET 1100 SET 1101 SET 1101 RES #00100 T S 000 2009 2011 00 CALL 01 CALL 0500

Visual KV Series

1) 2) 3) 4) 5)

#00016 DM0000 DM1936 LDA STA CMP T000 DM1936 DM0000 LDA CMP

6)

0008
0009 0010 0011
2002 DM0000 DM1936 #00100 LDA SUB CMP 2011 2011 TM02 STA DM1936 LDA TM02 ADD

END SBN 00 DM1936 STA

7)

DM1936 #00100 DM1936 LDA ADD STA RET SBN 01

0012 0013 0014 0015 0016 0017


2002 DM1936 DM0000 #00100 LDA SUB CMP 2011 2011 TM02 STA DM1936 LDA TM02 SUB

8)

DM1936 STA

DM1936 #00100 DM1936 LDA SUB STA RET ENDH

1) Sets "16" as the preset speed at the rising edge of input relay 0000. Turns ON special utility relay 2306 to start the specified frequency pulse output. Then, turns ON the operating flag. 2) Turns ON slow-down-stop flag 1101 at the rising edge of input 0001. 3) When the slow-down-stop flag turns ON, sets the preset speed to "16". When the output frequency reaches "16", turns OFF the operation start flag, operating flag, and slow-down-stop flag. 4) Activates a 100-ms flicker circuit while the operating flag turns ON. 5) Compares the current speed and preset speed every 100 ms. Executes subroutine 0 when the preset speed is faster, and executes subroutine 1 when the preset speed is slower. 6) Output relay 0500 turns ON when a setting error occurs. 7) Acceleration process. When the current speed is slower than the preset speed by less than "100", the speed is accelerated by the difference. When the difference is "100" or more, the speed is accelerated by "100". 8) Deceleration process. When the current speed is faster than the preset speed by less than "100", the speed is decelerated by the difference. When the difference is "100" or more, the speed is decelerated by "100".

3-230

Chapter 4 High-speed Counters

4.5 Special Functions Using High-speed Counters

4.5.3 Frequency Counter Function


High-speed counter CTH0 is used. Write the interval (ms) of frequency measurement into data memory DM1404 and turn ON special utility relay 2305. The measurement result (Hz) is written into DM1405. Input relay 0004 is for pulse input (single-phase input). Input relay 0006 (phase B input) is ignored. Devices used with the frequency counter Special utility relays
Relay No. 2305 Description Use frequency counter. ON: Yes, OFF: No

Data memory
DM No. DM1404 DM1405 Description Measurement cycle (ms) of frequency counter [1 to 1000] Result of frequency count (Hz) of frequency counter

Operation flow 1. Set the high-speed counter with external input. Use the END instruction and measure how much time has elapsed since the last measurement in units of 10 s. After each scan, pulses are counted within the time specified with the data memory. The frequency is calculated from the count value and written into data memory. 2. When the time specified with DM1404 elapses from the last measurement, the current value of CTH0 is fetched and divided by the elapsed time (Unit: 10 s). The frequency is obtained with the following calculation. Frequency (Hz) = (100,000 x Pulse count)/Elapsed time (Unit: 10 s) 3. The calculation result (Hz) is written into DM1405. Setting method 1. Specify the counting period for the frequency counter (the interval of frequency measurement [Unit: ms]) in data memory DM1404. 2. The preset value must be greater than the scan time. When a value smaller than the scan time is specified, the frequency is measured each scan time. Note 1: To use the frequency counter function, set the input time constant to 10 s with the HSP instruction or the special utility relay. (A maximum frequency of 30 kHz can be measured.). Note 2: The counting start/stop or measurement result is updated after each scan. Therefore, the counting period includes some scan time errors for the time specified with DM1404. Set the counting period so that overflow does not occur at CTH. Note 3: Specify the counting period so that the number of pulse inputs in one period is between 2 and 65535, inclusive. Note 4: Measurement may fail when the pulse period is 5000 ms or more. Note 5: The frequency counter cannot be used when CTH0 is used in the ladder program. Note 6: Special utility relays concerning CTH0, CTC0/1, and the cam switch cannot be used. Note 7: CTH0 and the cam switch function cannot be used when the frequency counter is used.

Chapter 4 High-speed Counters

3-231

Visual KV Series

1 4

4.5 Special Functions Using High-speed Counters

4.5.4 Applications of Frequency Counters


Program for basic operation of the frequency counter Stores the frequency of pulses at input relay 0004 to DM0000 every second (1000 ms). (Unit: Hz)

Visual KV Series

0001 0002 0003 0004 0005

2008 2002 2002

#01000 DM1404 LDA STA

2305 SET HSP 0004

1) 2)

DM1405 DM0000 3) LDA STA END ENDH

1) Sets the counting period to "1000 ms (1 second)" and turns ON special utility relay 2305 to start the frequency counter function. 2) Sets the input time constant for input relay 0004 to 10 s. 3) Stores the measured frequency (Hz) into data memory DM0000. Program for synchronous control The following ladder program illustrates synchronous control using the frequency counter and pulse output functions. Measures the frequency of pulses at input relay 0004 every 100 ms and outputs pulses of the same frequency from output relay 0501.

4
0001 0002 0003 0004 0005 0006

2008 2002 2002 2307

#00100 DM1404 LDA STA

2305 SET

2306 SET HSP 0004

1) 2)

DM1405 DM1936 LDA STA 3) 0500 4) END ENDH

1) Sets the counting period to "100 ms" and turns ON special utility relays 2305 and 2306 to start the frequency counter and the specified frequency pulse output functions. 2) Sets the input time constant for input relay 0004 to 10 s. 3) Uses the measured frequency (Hz) as the preset value for the output frequency (Hz). 4) Turns on output relay 0500 when an error occurs in the setting of the specified frequency pulse output.

3-232

Chapter 4 High-speed Counters

4.5 Special Functions Using High-speed Counters

4.5.5 Cam Switch Function


The cam switch function has two modes: cam switch mode, which simulates cam operation; and multi-step comparator mode, which compares the value written in DM1401 with multiple values. Devices used with the cam switch function Special utility relays
Relay No. 2314 2315 2715 Description Start relay Error relay In-operation relay

The preset value in the data memory is registered at the rising edge of the start relay. When the preset value is changed, turn OFF special utility relay 2314 once and then turn it ON again to register the new value. Timing diagram of cam switch function
Start relay
2314

In-operation relay
2715

Cam switch Stopped function :

Executed

Stopped

Operation with the ladder program. Operation automatically executed by the Visual KV. Description: When start relay 2314 is turned ON, the Visual KV automatically turns OFF start relay 2314 and turns ON in-operation relay 2715 to activate the cam switch function. When in-operation relay 2715 is turned OFF, the cam switch function is stopped.

Cam switch mode


Simulates a cam operation. Connect an encoder to CTH0 to count pulses in double multiplication mode. CTH0 uses input relays 0004 (phase A), 0006 (phase B) (KV-10xx: 0000), and 0008 (phase Z) (KV-10xx: 0002). Relays are turned ON/OFF when the pulse count reaches the specified angle. The cam switch function controls a maximum of 32 successive relays. Specify relay Nos. with the data memory (DM1400). Each relay is turned ON/OFF once every rotation. To turn relays ON/OFF several times in one rotation, use the OR instruction in the ladder program. Devices used in cam switch mode Data memory
DM No. DM1400 DM1402 DM1406/DM1407 Description Stores initial address of output relays (Values other than 1900 through 2900 whose last two digits are 00.). Twice the pulse numbers for one rotation of the device connected to CTH0 (1 to 65534) Angle at which first output relay turns ON/OFF (Unit: 0.1 deg.) (0 to 65534) Angle at which second relay turns ON/OFF (Unit: 0.1 deg.) (0 to 65534)

DM1408/ DM1409

DM1468/DM1469 DM1470

Angle at which 32nd relay turns ON/OFF (Unit: 0.1 deg.) (0 to 65534) Reserved for system use

Chapter 4 High-speed Counters

3-233

Visual KV Series

1 4

4.5 Special Functions Using High-speed Counters

Multi-step comparator mode


Even a single phase incoder can be used by changing a part of the cam switch function. To activate the multi-step comparator mode, write the value to be compared into data memory DM1401 to replace the CTH0 value. This value determines the resolution. If 360 is written in DM1401, and 60 is written in DM1406, the 1st relay is turned ON at 60/360 i.e. 60. Devices used in multi-step comparator mode Data memory
DM No. DM1400 DM1401 DM1402 DM1406/DM1407 DM1408/ DM1409

Visual KV Series

Description Stores initial address of output relays (Values other than 1900 through 2900 whose last two digits are 00.). Value to be compared (0 to 65534) Enter "65535" to use multi-stage comparator mode. Preset value at which first output relay turns ON/OFF (0 to 65534) Preset value at which second relay turns ON/OFF (0 to 65534)

DM1468/DM1469 DM1470

Preset value at which 32nd relay turns ON/OFF (0 to 65534) Reserved for system use

Setting method
In cam switch mode 1. Write the initial number of output relays to be used into DM1400.

Be sure to write the initial relay number of each channel. Example 0500, 0600: Acceptable, 0501, 0610: Unacceptable 2. Write the number of pulses in two pulse-periods of the encoder connected to CTH0 into DM1402. (Twice the number of pulses for one rotation.) 3. Specify the angle at which the first relay turns ON (Unit: 0.1 deg.) into DM1406. Use units of 0.1 deg. to specify the preset angle for the cam switch mode. (Write the value of [Desired angle x 10] into data memory.) 4. Specify the angle at which the first relay turns OFF (Unit: 0.1 deg.) into DM1407. 5. Specify the angle at which the second relay turns ON (Unit: 0.1 deg.) into DM1408. 6. Specify the angle at which the second relay turns OFF (Unit: 0.1 deg.) into DM1409. 7. Repeat steps 3 through 6 as many times as the number of relays to be used (32 relays max.). 8. Turn ON special utility relay 2314. This relay automatically turns OFF when the cam switch function is activated. 9. Turn OFF special utility relay 2715 to stop the operation. In multi-step comparator mode 1. Write the initial number of output relays to be used into DM1400. Be sure to write the initial relay number of each channel. Example 0500, 0600: Acceptable, 0501, 0610: Unacceptable 2. Write the value to be compared into DM1401, and write "65535" into DM1402. 3. Specify the preset value at which the first relay turns ON into DM1406. 4. Specify the preset value at which the first relay turns OFF into DM1407.

3-234

Chapter 4 High-speed Counters

4.5 Special Functions Using High-speed Counters


5. Specify the preset value at which the second relay turns ON into DM1408. 6. Specify the preset value at which the second relay turns OFF into DM1409. 7. Repeat steps 3 through 6 as many times as the number of relays to be used (32 relays max.).

9. Turn OFF special utility relay 2715 to stop the operation. Note 1: When the cam switch function is used, 32 relays from the relay No. specified with DM1400 is occupied for the function regardless of whether they are used or not. As a result, these relays cannot be used for any other purpose. Note 2: To use the cam switch mode, set the input time constant to 10 s with the HSP instruction or the special utility relay. (A maximum frequency of 30 kHz can be measured.) Note 3: When any improper value is set in data memory, the setting error occurs and special utility relay 2315 turns ON. Note 4: CTH0 and the frequency counter function cannot be used while the cam switch function is being used. Note 5: The cam switch function cannot be used when CTH0 is used in the ladder program. Note 6: Special utility relays concerning CHT0, CTC0/1, and the frequency counter function cannot be used. Note 7: The scan time is extended by a maximum of 16 ms when the cam switch function is activated. Note 8: The in-operation relay of the cam switch function (2715) remains ON even when the mode is changed or the power is turned OFF. Note 9: Use the END instruction to change relays or turn them ON/OFF. Note 10: When the encoder is ON in cam switch mode while the KV is OFF, the count may be shifted for the time between the start-up and phase Z input. Note 11: The encoder count is stopped in cam switch mode while the Visual KV is OFF. (While the Visual KV is ON, the count is continued even in PROGRAM mode.) Note 12: When a value of 360 or more is specified as the preset angle for the cam switch function, the value is converted into one within the range of 0 to 360 before the control. Example: When 500 is specified, it is converted to 140.

Chapter 4 High-speed Counters

3-235

Visual KV Series

8. Turn ON special utility relay 2314. This relay automatically turns OFF when the cam switch function is activated.

1 4

4.5 Special Functions Using High-speed Counters

4.5.6 Application of the Cam Switch (Cam Switch Mode)


The following ladder program illustrates the basic setting of the cam switch function. Connect the encoder with a resolution of 360 pulses. Use output relays 0600 through 0603. Output relay 0600: Turns ON within the range 30 to 90 Output relay 0601: Turns ON within the range 45 to 80 Output relay 0602: Turns ON within the range 70 to 150 Output relay 0603: Turns ON within the range 120 to 270
0001 0002 0003 0004 0005 0006 0007 0008 0009
0000 0001 1000 DIFU 1001 DIFU 1000 1001 2002 2008 #00600 DM1400 #00720 DM1402 LDA STA LDA STA #00300 #00900 #00450 #00800 #00700 #01500 #01200 #02700 DW DW DW DW DW DW DW DW DM1406 DM1407 DM1408 DM1409 DM1410 DM1411 DM1412 DM1413 HSP 0004 HSP 0006 HSP 0008 2314 SET 2715 RES END ENDH
1)

Visual KV Series

2)

3)

4)

5)

6)

7)

1) Sets "0600", which is the initial number of relays used for the cam switch function, to DM1400 and sets twice the number of pulses for one encoder rotation (360 x 2 = 720) to DM1402. 2) Specifies the preset angles at which output relays 0600 through 0603 turn ON/OFF. 3) Sets the input time constant for input relay 0004 to 10 s. 4) Sets the input time constant for input relay 0006 to 10 s. 5) Sets the input time constant for input relay 0008 to 10 s. 6) The cam switch operation starts when input relay 0000 turns ON. 7) The cam switch operation stops when input relay 0001 turns ON.
3600 (360)

30 DM1406 45 DM1408 70 DM1410 80 DM1409

270 DM1413

90 DM1407 120 DM1412 150 DM1412

Timing Diagram
DM1406 DM1407

1st relay 0600 OFF 2nd relay 0601 ON OFF 3rd relay 0602 ON OFF 4th relay 0603 ON OFF

ON

DM1408

DM1409

DM1410

DM1411

DM1412

DM1413

90

180

270 360 Rotation ()

3-236

Chapter 4 High-speed Counters

4.6 Direct Clock Pulse Output

4.6 Direct Clock Pulse Output


4.6.1 Outline of Direct Clock Pulse Output

Visual KV Series Only

This section describes the outline and setting method for direct clock pulse output.

Using the high-speed counter (CTH) and high-speed counter comparator (CTC), the KV PLC can output clock pulses directly through output relays 0500 and/or 0501 without any delays caused by the scan time. The period (frequency) and width of the pulses are determined by the period of the internal clock used for the high-speed counter (CTH) and high-speed counter comparator (CTC). The period of the clock pulse (frequency) can be changed with the program within the following ranges.
Output Internal clock 2100 (1.0 s) 0500 2101 (10.0 s) 2102 (100.0 s) 2200 (1.0 s) 0501 2201 (10.0 s) 2202 (100.0 s) Range of pulse period (Frequency) 20 s (50 kHz) to 65.5 ms (15 Hz) 20 s (50 kHz) to 655.3 ms (1.5 Hz) 200 s (5 kHz) to 6553.5 ms (0.15 Hz) 20 s (50 kHz) to 65.5 ms (15 Hz) 20 s (50 kHz) to 655.3 ms (1.5 Hz) 200 s (5 kHz) to 6553.5 ms (0.15 Hz)

Pulses of the internal clock are counted with the high-speed counter (CTH). When the number of current pulses reaches the preset value of the high-speed counter comparator (CTC), the ON/OFF status of output relays 0500 and/or 0501 is toggled to output direct clock pulses. Count value
CTC

ON

ON

Note 1: The operation of output relays 0500 and 0501 are determined by setting the special utility relays. Note 2: For more about setting special utility relays, refer to "4.2 Outline of Highspeed Counters" on page 3-206. Note 3: The ON/OFF status when the direct clock pulse output is started is the same as when the last direct clock pulse output is stopped. (Initial status: OFF) Note 4: Output relays 0500 and 0501 cannot be used in a normal program during direct clock pulse output.

Chapter 4 High-speed Counters

3-237

Visual KV Series

1 4

4.6 Direct Clock Pulse Output

4.6.2 Pulse Output Setting with the High-speed Counter Comparator


Changing the pulse period and width

Visual KV Series

By using two high-speed counter comparators, you can change only the pulse width while keeping the pulse period constant, or change only the pulse period while keeping the pulse width constant. The following examples illustrate how the pulse width and period can be selected with the high-speed counter comparator. ON-OFF ratio of 1:1
ON/OFF status is set by special utility relays.
ON OFF

Pulse width

Pulse period

Pulse width (s) = CTC0 preset value x internal clock (s) Pulse period (s) = CTC0 preset value x 2 x internal clock (s) Use the following calculation to obtain the pulse period from the frequency: Pulse period (s) = 1,000,000/Frequency (Hz)

Example:

To output 10-kHz pulses Pulse period = 1,000,000 10,000 = 100 s Preset value for CTC0 = 10 2 1 = 50

Variable pulse width The period and width of the pulse can be changed by changing the preset values of CTC0 and CTC1.
ON/OFF status is set by special utility relays.

ON OFF

Pulse width

Pulse period

Pulse width (s) = CTC1 preset value x internal clock (s) Pulse period (s) = CTC0 preset value x internal clock (s) Change CTC1 preset value to change the pulse width. Change CTC0 preset value to change the pulse period.

Note: The pulse width determined above is the pulse width produced inside the Visual KV PLC. In reality, the output pulse width may vary depending on the response delay of the output circuit and the load connected to this circuit. Be sure to determine the pulse width after monitoring the actual output waveform with an oscilloscope. (Monitor the pulses of variable pulse width.)

3-238

Chapter 4 High-speed Counters

4.6 Direct Clock Pulse Output

Calculating the pulse period and comparator preset value


The Visual KV PLC can output a maximum clock pulse of 50 kHz. Use the following calculations to obtain the pulse period and preset value of the high-speed counter comparator used to output the clock pulse. Pulse period Pulse period (s) = 1,000,000 Frequency (Hz) CTC preset value for pulses with 1:1 ON/OFF ratio (using one comparator) CTC preset value = Pulse period (s) Internal clock (s) 2
ON OFF

Pulse width

Pulse period

CTC preset value for pulses with variable pulse width CTC preset value for pulse width = Pulse width (s) Internal clock (s) CTC preset value for pulse period = Pulse period (s) Internal clock (s)
ON OFF

Pulse width

Pulse period

Range of CTC preset value with the internal clock


Special utility relay (internal clock) 2100 2101 2102 2200 2201 2202 Period 1.0 s 10.0 s 100.0 s Range of CTC preset value 10 to 65535 1 to 65535 1 to 65535

Note 1: Set the CTC preset value to 10 or more when the operands for the highspeed counter (CTH) is 2100 and 2200. The clock pulse output may be improper when the preset value is set to less than 10. Note 2: The pulse width may vary depending on the load connected to the circuit. Be sure to determine the pulse width after monitoring actual output waveform with an oscilloscope. Note 3: When CTC0 and CTC1, or CTC2 and CTC3, are used to output the clock pulse, do not specify the same value for the preset values of CTC0 and CTC1, or of CTC2 and CTC3.

Operation with special utility relays


Operation with special utility relays for high-speed counter CTH0 The following table shows the ON/OFF status of output relay 0500 which can be changed by setting special utility relays (2103 through 2112) at the start of operation, or by changing them during clock pulse output. You can set desired values for the pulse period and pulse width, and can enable or disable the direct output. Operation of output relay 0500 when special utility relays are ON/OFF

Chapter 4 High-speed Counters

3-239

Visual KV Series

1 4

4.6 Direct Clock Pulse Output


High-speed counter comparator Special utility relay 2103 Operation when CTH0 (current value) reaches CTC (preset value) Automatically clears current value of CTH0 Disables/enables control of 0500. Turns OFF direct output through 0500. Turns ON direct output through 0500. Reverses ON/OFF status of 0500. Disables/enables control of 0500. Turns OFF direct output through 0500. Turns ON direct output through 0500. Reverses ON/OFF status of 0500. Automatically clears current value of CTH0 ON: Yes ON: Disable ON: Yes ON: Yes ON: Yes ON: Disable ON: Yes ON: Yes ON: Yes ON: Yes OFF: No OFF: Enable OFF: No OFF: No OFF: No OFF: Enable OFF: No OFF: No OFF: No OFF: No

Visual KV Series

2104 CTC0 2105 2106 2107 2108 2109 CTC1 211 2111 2112

Setting the special utility relay The special utility relay must be set to output the clock pulse. Set the relays in the following manner. Only one relay for each group can be turned ON from relays 2104 through 2107 and 2108 through 2111. Use the SET-RES pair or STA instruction to turn relays 2103 through 2112 ON/ OFF. Turning OFF relays 2104 or 2108 enables control of output relay 0500. To change the pulse width, be sure to first turn ON relays 2103 or 2112 to automatically clear the current value of CTH0. You cannot change the pulse period unless you turn ON relays 2103 or 2112. Turning ON/OFF relay 2105 stops/outputs the clock pulse. Note: If two or more relays of special utility relays 2104 through 2107 or 2108 through 2111 are turned ON, priority is given to the relay with the smaller number. Operation of output 0500 by setting special utility relays
Outputting a pulse with 1:1 ON/OFF ratio
Special utility relay settings 2103 ON 2104 OFF 2105 OFF 2106 OFF 2107 ON 2108 OFF 2109 OFF 2110 OFF 2111 OFF 2112 OFF

Outputting a pulse with variable pulse width

Special utility relay settings 2103 ON 2104 OFF 2105 OFF 2106 ON 2107 OFF
Count value
CTC0 CTC1

2108 OFF 2109 ON 2110 OFF 2111 OFF 2112 OFF

Count value
CTC0

ON

ON

ON

ON

ON

ON

3-240

Chapter 4 High-speed Counters

4.6 Direct Clock Pulse Output


Operation with special utility relays for high-speed counter CTH1 The following table shows the ON/OFF status of output relay 0501 which can be changed by setting special utility relays (2203 through 2212) at the start of operation, or by changing them during clock pulse output. You can set desired values for the pulse period and pulse width, and can enable or disable the direct output. Operation of output relay 0501 when special utility relays are ON/OFF
High-speed counter comparator Special utility relay 2203 2204 CTC2 2205 2206 2207 2208 2209 CTC3 2210 2211 2212 Operation when CTH0 (current value) reaches CTC (preset value) Automatically clears current value of CTH1 Disables/enables control of 0501. ON: Yes ON: Disable OFF: No OFF: Enable OFF: No OFF: No OFF: No OFF: Enable OFF: No OFF: No OFF: No OFF: No

Turns OFF direct output through ON: Yes 0501. Turns ON direct output through ON: Yes 0501. Reverses ON/OFF status of 0501. ON: Yes ON: Disables/enables control of 0501. Disable Turns OFF direct output through ON: Yes 0501. Turns ON direct output through ON: Yes 0501. Reverses ON/OFF status of 0501. ON: Yes Automatically clears current value ON: Yes of CTH1

Setting the special utility relay The special utility relay must be set to output the clock pulse. Set the relays in the following manner. Only one relay for each group can be turned ON from relays 2204 through 2207 and 2208 through 2211. Use the SET-RES pair or STA instruction to turn relays 2203 through 2212 ON/ OFF. Turning OFF relays 2204 or 2208 enables control of output relay 0501. To change the pulse width, be sure to first turn ON relays 2203 or 2212 to automatically clear the current value of CTH1. You cannot change the pulse period unless you turn ON relays 2203 or 2212. Turning ON/OFF relay 2205 stops/outputs the clock pulse. Note: If two or more relays of special utility relays 2204 through 2207 or 2208 through 2211 are turned ON, priority is given to the relay with the smaller number. Operation of output 0501 by setting special utility relays
Outputting a pulse with 1:1 ON/OFF ratio Outputting a pulse with variable pulse width
Special utility relay settings 2203 ON 2204 OFF 2205 OFF 2206 ON 2207 OFF 2208 OFF 2209 ON 2210 OFF 2211 OFF 2212 OFF

Special utility relay settings 2203 ON 2204 OFF 2205 OFF 2206 OFF 2207 ON
Count value
CTC2

2208 ON 2209 OFF 2210 OFF 2211 OFF 2212 OFF

Count value
CTC2 CTC3

ON

ON

ON

ON

ON

ON

Chapter 4 High-speed Counters

3-241

Visual KV Series

1 4

4.7 Examples of Direct Clock Pulse Output

4.7 Examples of Direct Clock Pulse Output


This section describes programming examples of the direct clock pulse output.

Visual KV Series

4.7.1 Example of Outputting a Pulse with 1:1 ON/OFF Ratio


To output a clock pulse of 1 ms (1 kHz)-period from output relay 0500
This section describes a programming example that will output a clock pulse with 1:1 ON/OFF ratio from output relay 0500 by using the high-speed counter (CTH0) and high-speed counter comparator (CTC0). Special utility relay setting Set the special utility relay (2103 through 2112) according to the following table. When outputting a pulse with 1:1 ON/OFF ratio, you can simplify the program by using the reverse (toggle) output (2107: ON).
Relay No. 2103 2104 2105 2106 2107 Setting ON OFF OFF OFF ON

Internal clock and CTC0 preset value Specify the internal clock and calculate the preset value of CTC0 for the clock. CTC0 preset value = Pulse period (s) Internal clock (s) 2

Obtain the preset value of CTC0 by substituting 1 ms for the pulse period and 10 s for the internal clock (special utility relay 2101). In this case, the preset value of CTC0 is "50". Refer to the following table for the preset value of CTC0 with other internal clocks.
Special utility relay 2100 2101 2102 Internal clock 1.0 s 10.0 s 100.0 s CTC0 preset value 500 50 5

Example
Count value
0001 0002 0003 2008 2002 2103 SET 2104 RES 2105 RES 2106 RES 2107 SET CTH0 RES CTH0 2101 #00050 CTC0

CTC0

ON

ON

Sets the pulse output from output relay 0500 with special utility relays 2104 through 2107. In this example, turns OFF 2104 to enable direct output from 0500 and turns ON 2107 to reverse the output each time the CTH0 value reaches the CTC0 value. Turns ON 2103 to set CTH0 to be cleared when its value reaches the CTC0 value. With this setting, the operation which clears the CTH0 current value when it reaches the CTC0 preset value is repeated. The RES CTH0 instruction resets the CTH0 current value when operation starts. This ensures that the first clock pulse is output at the proper pulse width. Turn ON the input enable relay for CTH0 all the time when CTH0 is used to output the clock pulse.

3-242

Chapter 4 High-speed Counters

4.7 Examples of Direct Clock Pulse Output


Cording
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 Instruction LD SET CON RES CON RES CON RES Operand 2008 2103 2104 2105 2106 Line No. 0008 0009 0010 0011 0012 0013 0014 Instruction CON SET CON RES LD CTH CTC Operand 2107 CTH0 2002 0 2101 0 #00050

Note :When the input enable relay for the high-speed counter is used to start/stop the clock pulse, the response is delayed by a maximum of one scan when output starts. Moreover, if the response is delayed by one scan when output stops, the clock pulse stops but the output may remain ON. Tips Use special utility relay 2105 to control (enable/disable) the clock pulse output by external inputs. Use the SET-RES pair or KEEP instruction to turn special utility relay 2105 ON/ OFF. With this setting, the clock pulse is always turned OFF when it starts as well as stops. When either of the following programs is added to the example on the previous page, the clock pulse is output from 0500 only when 0000 is ON.
When SET-RES instructions are used
0000 0000 2105 SET 2105 RES

When KEEP instruction is used


0000 0000 RES KEEP SET 2105

To output a clock pulse of 1 ms (1 kHz)-period from output relay 0501


This section describes a programming example that will output a clock pulse with 1:1 ON/OFF ratio from output relay 0501 by using the high-speed counter (CTH1) and high-speed counter comparator (CTC2). Special utility relay setting Set the special utility relay (2203 through 2212) according to the following table. When outputting a pulse with 1:1 ON/OFF ratio, you can simplify the program by using the reverse (toggle) output (2207: ON).
Relay No. 2203 2204 2205 2206 2207 Setting ON OFF OFF OFF ON

Internal clock and CTC2 preset value Specify the internal clock and calculate the preset value of CTC2 for the clock. CTC2 preset value = Pulse period (s) Internal clock (s) 2 Obtain the preset value of CTC2 by substituting 1 ms for the pulse period and 10 s for the internal clock (special utility relay 2201). In this case, the preset value of CTC2 is "50". Refer to the following table for the CTC2 preset value with other internal clocks.

Chapter 4 High-speed Counters

3-243

Visual KV Series

1 4

4.7 Examples of Direct Clock Pulse Output


Special utility relay 2200 2201 2202 Internal clock 1.0 s 10.0 s 100.0 s CTC2 preset value 500 50 5

Visual KV Series

Example
Count value
0001 0002 0003 2008 2002 2203 SET 2204 RES 2205 RES 2206 RES 2207 SET CTH1 RES CTH1 2201 #00050 CTC2

CTC2

ON

ON

Sets the pulse output from output relay 0501 with special utility relays 2204 through 2207. In this example, turns OFF 2204 to enable direct output from 0501 and turns ON 2207 to reverse the output each time the CTH1 value reaches the CTC2 value. Turns ON 2203 to set CTH1 to be cleared when its value reaches the CTC2 value. With this setting, the operation which clears the CTH1 current value when it reaches the CTC2 preset value is repeated. The RES CTH1 instruction resets the CTH1 current value when operation starts. This ensures that the first clock pulse is output at the proper pulse width. Turn ON the input enable relay for CTH1 all the time when CTH1 is used to output the clock pulse.

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 Instruction LD SET CON RES CON RES CON RES Operand 2008 2203 2204 2205 2206 Line No. 0008 0009 0010 0011 0012 0013 0014 Instruction CON SET CON RES LD CTH CTC Operand 2207 CTH1 2002 1 2201 2 #00050

Note :When the input enable relay for the high-speed counter is used to start/stop the clock pulse, the response is delayed by a maximum of one scan when output starts. Moreover, if the response is delayed by one scan when output stops, the clock pulse stops but the output may remain ON. Tips Use special utility relay 2205 to control (enable/disable) the clock pulse output by external inputs. Use the SET-RES pair or KEEP instruction to turn special utility relay 2205 ON/ OFF. With this setting, the clock pulse is always turned OFF when it starts as well as stops. When either of the following programs is added to the example on the previous page, the clock pulse is output from 0501 only when 0000 is ON.
When SET-RES instructions are used When KEEP instruction is used

0000 0000

2205 SET 2205 RES

0000 0000

KEEP SET 2205 RES

3-244

Chapter 4 High-speed Counters

4.7 Examples of Direct Clock Pulse Output

4.7.2 Example of Outputting a Pulse with Variable ON/OFF Ratio


To output a clock pulse of 500 s (2 kHz)-period and 200 s-width from output relay 0500
This section describes a programming example that will output a clock pulse with variable ON/OFF ratio from output relay 0500 by using the high-speed counter (CTH0) and high-speed counter comparator (CTC0 and CTC1). Special utility relay setting Set the special utility relay (2103 through 2112) according to the following table.
Relay No. 2103 2104 2105 2106 2107 Setting ON OFF OFF ON OFF Relay No. 2108 2109 2110 2111 2112 Setting OFF ON OFF OFF OFF

Internal clock and CTC0/CTC1 preset values Specify the internal clock and calculate the preset values of CTC0 and CTC1 for the clock. CTC1 preset value = Pulse width (s) Internal clock (s) CTC0 preset value = Pulse period (s) Internal clock (s) Obtain the preset values of CTC0 and CTC1 by substituting 200 s for the pulse width, 500 s for the pulse period, and 10 s for the internal clock (special utility relay 2101). In this case, the preset value of CTC1 is "20", and that of CTC0 is "50". Refer to the following table for the CTC preset values with other internal clocks.
Special utility relay 2100 2101 2102 Internal clock 1.0 s 10.0 s 100.0s CTC0 preset value 500 50 5 CTC1 preset value 200 20 2

Example
Count value
0001 0002 2002 0003 0004 0005 2008 2103 SET 2108 RES 2104 RES 2109 SET 2105 RES 2110 RES 2106 SET 2111 RES 2107 RES CTH0 RES CTH0 2101 #00050 CTC0 #00020 CTC1

CTC0 CTC1

ON

ON

ON

ON

Sets the pulse output from output relay 0500 with special utility relays 2104 through 2107 and 2108 through 2111. In this example, turns OFF 2104 to enable direct output from 0500. Turns ON 2106 to turn ON the output from 0500 when the CTH0 value reaches the CTC0 value, and turns ON 2109 to turn OFF the output when the CTH0 value reaches the CTC1 value. Turns ON 2103 to set CTH0 to be cleared when its value reaches the CTC0 value. This ensures that the first clock pulse is output at the proper pulse width. Turn ON the input enable relay for CTH0 all the time when CTH0 is used to output the clock pulse.

Chapter 4 High-speed Counters

3-245

Visual KV Series

1 4

4.7 Examples of Direct Clock Pulse Output


Coding
Line No. 0000 0001 Instruction LD MPS SET CON RES CON RES CON RES CON RES MPP RES 2108 2107 2106 2105 2104 2103 Operand 2008 Line No. 0013 0014 0015 0016 0017 0018 0019 0020 0021 0022 0023 0024 Instruction CON SET CON RES CON RES CON RES LD CTH CTC CTC CTH0 2002 0 2101 0 #00050 1 #00020 2111 2110 2109 Operand

Visual KV Series

0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012

Note 1: When the input enable relay for the high-speed counter is used to start/stop the clock pulse, the response is delayed by a maximum of one scan when output starts. The response is also delayed by a maximum of one scan when output stops. Note 2: Refer to the following "Tips" to start and stop the clock pulse. Tips Use special utility relay 2105 to control (enable/disable) the clock pulse output by external inputs. Use the SET-RES pair or KEEP instruction to turn special utility relay 2105 ON/ OFF. With this setting, the clock pulse is always turned OFF when it starts as well as stops. When either of the following program is added to the example on the previous page, the clock pulse is output from 0500 only when 0000 is ON.
When SET-RES instructions are used
0000 0000 2105 SET 2105 RES

When KEEP instruction is used


0000 0000 RES KEEP SET 2105

You can change the period (frequency) of the clock pulse by changing the CTC0 preset value using the LDA and STA instructions. To change the period of the clock pulse, refer to "4.3.4 Count Input Method" (p.3212).

3-246

Chapter 4 High-speed Counters

4.7 Examples of Direct Clock Pulse Output To output a clock pulse of 500 s (2 kHz)-period and 200 s-width from output relay 0501
This section describes a programming example that will output a clock pulse with variable ON/OFF ratio from output relay 0501 by using the high-speed counter (CTH1) and high-speed counter comparator (CTC2 and CTC3). Special utility relay setting Set the special utility relay (2203 through 2212) according to the following table.
Relay No. 2203 2204 2205 2206 2207 Setting ON OFF OFF ON OFF Relay No. 2208 2209 2210 2211 2212 Setting ON OFF OFF OFF OFF

Internal clock and CTC2/CTC3 preset values Specify the internal clock and calculate the preset values of CTC2 and CTC3 for the clock. CTC2 preset value = Pulse width (s) Internal clock (s) CTC3 preset value = Pulse period (s) Internal clock (s) Obtain the preset values of CTC2 and CTC3 by substituting 200 s for the pulse width, 500 s for the pulse period, and 10 s for the internal clock (special utility relay 2201). In this case, the preset value of CTC3 is "20", and that of CTC2 is "50". Refer to the following table for the CTC preset values with other internal clocks.
Special utility relay 2200 2201 2202 Internal clock 1.0 s 10.0 s 100.0 s CTC2 preset value 500 50 5 CTC3 preset value 200 20 2

Example
Count value
0001 0002 2002 0003 0004 0005 2008 2208 RES 2203 SET 2209 SET 2204 RES 2210 RES 2206 SET 2211 RES 2207 RES CTH1 RES CTH1 2201 #00050 CTC2 #00020 CTC3

CTC2 CTC3

ON

ON

ON

ON

Sets the pulse output from output relay 0501 with special utility relays 2204 through 2207 and 2208 through 2211. In this example, turns OFF 2204 to enable direct output from 0501. Turns ON 2206 to turn ON the output from 0501 when the CTH1 value reaches the CTC2 value and turns ON 2209 to turn OFF the output when the CTH1 value reaches the CTC3 value. Turns ON 2203 to set CTH1 to be cleared when its value reaches the CTC2 value. This ensures that the first clock pulse is output at the proper pulse width. Turn ON the input enable relay for CTH1 all the time when CTH1 is used to output the clock pulse.

Chapter 4 High-speed Counters

3-247

Visual KV Series

1 4

4.7 Examples of Direct Clock Pulse Output


Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 Instruction LD MPS SET CON RES CON SET CON RES MPP RES CON Operand 2008 2203 2204 2205 2207 2208 Line No. 0012 0013 0014 0015 0016 0017 0018 0019 0020 0021 0022 Instruction SET CON RES CON RES CON RES LD CTH CTC CTC Operand 2209 2210 2211 CTH1 2002 1 2201 2 #00050 3 #00020

Visual KV Series

Note :When the input enable relay for the high-speed counter is used to start/stop the clock pulse, the response is delayed by a maximum of one scan when output starts. The response is also delayed by a maximum of one scan when the output stops. Tips Use special utility relay 2205 to control (enable/disable) the clock pulse output by external inputs. Use the SET-RES pair or KEEP instruction to turn special utility relay 2205 ON/ OFF. With this setting, the clock pulse is always turned OFF when it starts as well as stops. When either of the following programs is added to the example on the previous page, the clock pulse is output from 0501 only when 0000 is ON.
When SET-RES instructions are used
0000 0000 2205 SET 2205 RES

When KEEP instruction is used


0000 0000 RES KEEP SET 2205

You can change the period (frequency) of the clock pulse by changing CTC2 preset value using LDA and STA instructions. To change the period of the clock pulse, refer to "4.3.4 Count Input Method" on page 3-212.

3-248

Chapter 4 High-speed Counters

4.7 Examples of Direct Clock Pulse Output

4.7.3 Example of Stopping the Pulse Output at a Specified Pulse Count


Visual KV Series
This section describes a programming example that will output a clock pulse of 500 s (2 kHz)-period and 200 s-width from output relay 0500 and then stop it after 10000 pulses are output. Special utility relay, internal clock, and CTC settings Set the special utility relay according to the following table.
Relay No. 2103 2104 2105 2106 2107 Setting ON OFF OFF ON OFF Relay No. 2108 2109 2110 2111 2112 Setting OFF ON OFF OFF OFF

Specify the internal clock and CTC0/CTC1 preset values according to the following table.
Special utility relay 2100 2101 2102 Internal clock 1.0 s 10.0 s 100.0 s CTC0 preset value 500 50 5 CTC1 preset value 200 20 2

Example
0001 0002 0003 0000 0004 2002 0005 0006 0007 2002 0008 0009 0010 0011 2002 0012 0013 ENDH 0014 INT CTC2 2105 SET RETI 2008 EI 2103 SET 2108 RES 2203 SET 2104 RES 2109 SET 2105 SET 2110 RES 2813 SET 1000 DIFU 2106 SET 2111 RES CTH1 RES 1000 2105 RES CTH0 2101 #00050 CTC0 #00020 CTC1 CTH1 0500 #10000 CTC2 END 2107 RES CTH0 RES

#00000 DW DM1940

1 4

Sets the pulse output from output relay 0500 with special utility relays 2104 through 2107 and 2108 through 2111. In this example, turns OFF 2104 to enable direct output from 0500. Turns ON 2106 to turn ON the output from 0500 when the CTH0 value reaches the CTC0 value and turns ON 2109 to turn OFF the output when the CTH0 value reaches the CTC1 value. Turns ON 2103 to set CTH0 to be cleared when its value reaches the CTC0 value. This ensures that the first clock pulse is output at the proper pulse width. Uses an EI instruction to enable interrupts. The interrupt program (INT CTC2) stops the clock pulse when the CTH1 current value reaches the CTC2 preset value (when 10000 pulses are output). Turns ON 2203 to set CTH1 to be cleared when its value reaches the CTC2 value. This forces the operation to repeat by the specified pulses (10000). Relay 2813 must be turned ON when counting pulses with CTH1.

Chapter 4 High-speed Counters

3-249

4.7 Examples of Direct Clock Pulse Output


The input enable relay for CTH0 must be ON all the time when CTH0 is used to output the clock pulse. The input enable relay for CTH1 must be ON all the time when CTH1 is used to count the clock pulse. Specifies the internal clock (2101) as the clock input for CTH0. Specifies 0500 as the clock input for CTH1. With this setting, CTH0 is used to output the clock pulse, and CTH1 is used to count the clock pulse. Specifies the number of clock pulses to the CTC2 preset value. The clock pulse output starts when input 0000 is turned ON. To restart the clock pulse output after it stops, turn ON input 0000 again.

Visual KV Series

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 0020 0021 0022 0023 Instruction LD EI CON MPS SET CON RES CON SET CON SET CON RES MRD RES CON SET CON RES CON RES CON RES MPP Operand 2008 Line No. 0024 0025 0026 0027 0028 0029 0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 0040 0041 0042 0043 0044 0045 0046 0047 0048 Instruction Operand SET 2203 CON DW #00000 DM1940 CON SET 2813 CON RES CTH1 LD 0000 DIFU 1000 CON AND 1000 RES 2105 LD 2002 CTH 0 2101 CTC 0 #00050 CTC 1 #00020 LD 2002 CTH 1 0500 CTC 2 #10000 END INT CTC2 LD 2002 SET 2105 RET1 ENDH

2103 2104 2105 2106 2107 2108 2109 2110 2111 CTH0

Tips Special utility relays 2103 through 2111 can be turned ON/OFF by using the LDA and STA instructions instead of the SET-RES instructions. The example program below can be changed as follows by using the LDA and STA instructions. The number of lines and steps can be reduced.
2008 EI 2103 SET 2108 RES 2203 SET 2104 RES 2109 SET 2813 SET 2105 SET 2110 RES CTH1 RES 2106 SET 2111 RES 2107 RES CTH0 RES 2008 EI $0268 LDA 2100 STA CTH0 RES 2203 SET 2813 SET CTH1 RES

LDA $0268 When LDA $0268 is executed, the value specified by the operand is written into the internal register as follows.
[0] Internal register 0 0 0 0 0 0 [2] 1 0 0 1 [6] 1 0 1 0 [8] 0 0

When STA 2100 is executed, the value in the internal register is assigned to special utility relays 2100 through 2115.
xx 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00
Special utility relay 21xx

3-250

Chapter 4 High-speed Counters

4.7 Examples of Direct Clock Pulse Output

4.7.4 Application of Direct Clock Pulse Output (Ramp-up/down control)


Visual KV Series
The following ramp-up/down control is available by setting four parameters (DM0000 to DM0003)
Em sto erge p nc y rt Re ou vers tpu e t

24 VDC

Sta

Stepping motor driver

Twisted-pair cable
COM 0000 0001 0002 0003

KV
0500 COM 0501 0502 0503

+ CW (Pulse) + CCW (Rotation

direction)

5 VDC
+ FG

Stepping motor

Setting parameters DM0000: fH [Hz] (Running frequency) DM0001: fL [Hz] (Start-up frequency) DM0002: Acceleration rate [Hz/10 ms] DM0003: No. of pulses for positioning

Specify values in the range from 153 Hz to 50000 Hz. The fH value must be greater than the fL value. (fH - fL) / (Acceleration time / 10 ms) Must be 65534 pulses or less.

Note 1: A smaller acceleration rate allows smoother control but extends the acceleration time. Note 2: Be sure to turn OFF input 0007 (phase B input). Operation In the example on the next page, each parameter is set as follows: DM0000: 8000 [Hz] DM0001: 700 [Hz] DM0002: 400 [Hz/10 ms] DM0003: 4000 pulses When start switch 0000 is pressed, ramp-up/down control is performed as shown below. Control is stopped when the pulse count reaches "4000". Pressing the start switch restarts the operation. The operation is reversed while reverse switch 0001 is ON. Connection example The above diagram shows a connection example between the KV PLC and a stepping motor driver. Refer to the instruction manual for your stepping motor driver for details. Set the pulse input method of the stepping motor driver to "1-pulse input method".
Frequency (Hz)

1 4

H (DM0000)
Acceleration rate
(DM0002)

Total pulses for positioning (DM0003)

L (DM0001)
0

10ms (Acceleration change period)

Time (ms) Constant speed time Deceleration time

Acceleration time

Chapter 4 High-speed Counters

3-251

4.7 Examples of Direct Clock Pulse Output


Example
0001 0002 0003 2002

Specifies high-speed counters and comparators


#00010 CTC1 #65535 CTC2 2008 #65535 CTC0 #65535 CTC3 2813 SET CTH0 2100 CTH1 0500 2105 SET

CTC0 generates a clock pulse. CTH1 counts the number of clock pulses.
CTC0:Pulse period CTC1: Pulse width CTC2:Frequency change point CTC3:Total No. of pulses for positioning

Visual KV Series

0004 0005 0003 0006 0007 0008 0001 0009 0010 0003 0011 0012 0013 0014 2002 0015 0016 0017 0018 0019 2002 0020

#08000 #00700 #00400 #04000 DW DW DW DW DM0000 DM0001 DM0002 DM0003

Starts positioning
0000 1001 DIFU 1001

Sets parameters (DM0000 to DM0003).


01 CALL 1200 SET CTH1 RES CTH0 RES EI 2105 RES 0502

$0268 LDA

2100 STA

Sets reverse output.

Emergency stop
2105 SET END

Sets emergency stop.

Calculation routine for CTC0, CTC2, and DM0011


SBN 02 #01000 LDA #00010 LDA #10000 DM0012 #00005 MUL DIV ADD #10000 DM0010 #00005 MUL DIV ADD #00010 DIV CTC0 STA DM0010 STA CTC2 STA DM0011 STA RET

Specifies the CTC0 preset value. CTC0 preset value = 1 DM0012 x 103 x 103

#00010 DM0011 DIV ADD

Specifies the CTC2 preset value.


DM0010: Pulse period T (s) DM0011: No. of accumulated pulses DM0012: Current frequency (Hz) 1200: Acceleration flag

Initialization routine
SBN 01 DM0003 LDA CTC3 STA #00002 DM0004 DM0001 DM0012 #00000 DIV STA LDA STA DW DM0011 02 CALL RET

0021 0022 0023 2002 0024 0025 0026 0027 0028 1200 0029 0030 2011 0031 1201 0032 0033 1200 0034 0035 0036 0037 0038 2002 0039 0040 ENDH 0041 DM0003 DM0011 LDA SUB 1200 RES CTC2 STA DM0011 STA DM0012 #00100 DM0011 DM0004 LDA DIV ADD CMP RET

Triangle drive check routine


SBN 03

Interrupt routine for acceleration/deceleration


INT CTC2

Acceleration process
DM0012 DM0002 DM0012 DM0000 LDA ADD STA CMP 2011 03 CALL 2011 2011 02 CALL 1201

Acceleration ratio is added to the current frequency to change it each time CTC2 turns ON while acceleration flag 1200 is ON. Acceleration stops when the current frequency reaches fH. Sets No. of pulses for the deceleration point.

Deceleration process
DM0012 DM0002 DM0012 DM0001 LDA SUB STA CMP 2011 2011 02 CALL 02 CALL #65535 LDA CTC2 STA RETI

Interrupt for pulse stop


INT CTC3 2105 SET RETI

Acceleration ratio is subtracted from the current frequency to change it each time CTC2 turns ON while acceleration flag 1200 is ON. Deceleration stops when the current frequency reaches fL. The setting is initialized. Clock pulse output is stopped when the No. of pulses equals the CTC3 preset value.

3-252

Chapter 4 High-speed Counters

Chapter 5
Positioning Control
Visual KV Series Only
This chapter describes ramp-up/down control of stepping motors and servo motors. For KV-10/80 Series, see Chapter 6. 5.1
5.1.1

Outline of Positioning Control ..................................................... 3-254


Ramp-up/down Control .......................................................................... 3-254

5.2
5.2.1 5.2.2

Parameter Setting and Operating Procedures ......................... 3-255


Parameter Setting Procedure ................................................................. 3-255 Operating Procedure .............................................................................. 3-257

5.3
5.3.1 5.3.2 5.3.3

Examples of Using the Positioning Control Function ........... 3-258


Connection Example .............................................................................. 3-258 Tips ........................................................................................................ 3-258 Application Examples of the Positioning Control Function ..................... 3-259

Visual KV Series

5.1 Outline of Positioning Control

5.1 Outline of Positioning Control


This section describes the outline of positioning control.

Visual KV Series

5.1.1 Ramp-up/down Control


The Visual KV Series can directly output clock pulses not affected by the scan time to output relay 0502. If the frequency, the number of output pulses, and the acceleration time of the clock pulses have been preliminarily set to data memories, the Visual KV Series automatically performs ramp-up/down control. The ramp-up/down control output function offers ramp-up/down timing charts of the startup frequency, operating frequency, acceleration time, and deceleration time as shown below. The output frequency can be set within the range of 200 to 50,000 Hz.
Number of output pulses (pulses) DM1485 and DM1484
Upper digit Lower digit

Frequency (Hz)

Operating frequency DM1481

Startup frequency DM1480

Acceleration time DM1482

Deceleration time DM1482

Time (ms)

By using the ramp-up/down control output function, ramp-up/down control of stepping motors and AC servo motors (pulse input types) is possible.

Clock pulse Rotation direction


0502 NEW KV 0503 Lo: CW Hi: CCW

Stepping motor Servo motor

Motor driver

3-254

Chapter 5 Positioning Control

5.2 Parameter Setting and Operating Procedures

5.2 Parameter Setting and Operating Procedures


Visual KV Series
This section describes the parameter setting and operating procedures for positioning control.

5.2.1 Parameter Setting Procedure


Preliminarily set each parameter for positioning control to a corresponding data memory. To operate, special utility relays must be set.

For more about special utility relays, refer to "5.2.2 Operating Procedure" (p. 3-257).

The table below shows the relationship between parameters and data memories. Data memories for ramp-up/down control
Data memory DM1480 DM1481 DM1482 DM1484 DM1485 DM1486 Setting contents Ramp-up/down control startup frequency (Hz) Ramp-up/down control operating frequency (Hz) Ramp-up/down control acceleration/deceleration time (ms) Number of output pulses (lower 16 bits) Number of output pulses (upper 16 bits) Set value error code Setting range 200 to 50,000 200 to 50,000 (value larger than startup frequency) 0 to 4000 0 to 65,535 (2 or more when DM1485 is 0) 0 to 65,535 When an error occurs, a corresponding error code 11 to 17 is stored.

Note: When pulse output is started, the scan time is extended by 10 ms maximum (if the acceleration/deceleration time is set to 4 s).

1 5

Set value error code (DM1486)


If there is an error in the preset parameters when starting operation, a corresponding error code (11 to 17) is automatically written to DM1486.
Code 11 12 13 14 Description Startup frequency value is smaller than allowable setting range. Operating frequency value is smaller than allowable setting range. Operating (or startup) frequency value is larger than allowable setting range. Startup frequency value is larger than operating frequency value. Acceleration/deceleration time is larger than allowable setting range. System error Number of pulses output within acceleration/deceleration time is too small. Countermeasures Set starting frequency within setting range (200 to 50,000). Set operating frequency within setting range (200 to 50,000). Set operating (or startup) frequency within setting range (200 to 50,000). Set them appropriately so that startup frequency is smaller than operating frequency. Set acceleration/deceleration time within setting range (0 to 4,000). Contact our sales office. Set number of output pulses to 2 or more.

15 16 17

Startup frequency (Hz) (DM1480)


Set the frequency (speed) of the motor at startup in positioning control so that motor rotations start up smoothly. At the set frequency, the Visual KV Series will output clock pulses.

Chapter 5 Positioning Control

3-255

5.2 Parameter Setting and Operating Procedures

Operating frequency (Hz) (DM1481)


Set the frequency (speed) of the motor during operation in positioning control. At the set frequency, the Visual KV Series will output clock pulses.

Visual KV Series

Note: If the startup frequency is the same as the operating frequency, the timing chart becomes as shown below.
Operating (startup) frequency
0

In this case, the acceleration/deceleration time is ignored.

Acceleration/deceleration time (ms) (DM1482)


Set the time to accelerate from the starting frequency to the operating frequency after operation is started. When operation is stopped, the deceleration time is equivalent to the acceleration time. In the set time, the Visual KV Series varies the clock pulse frequency from the startup frequency to the operating frequency (in the case of acceleration time). The clock pulse frequency change cycle within the acceleration time is fixed to 5 ms.
Operating frequency

Startup frequency

5ms Acceleration/deceleration time

Number of output pulses (DM1484 and DM1485)


Set the angle of rotation (movement quantity) in positioning control as the number of pulses. The Visual KV Series outputs as many clock pulses as the set value. If the number of output pulses is larger than 65,535, divide it into the upper 16-bit value and the lower 16-bit value using the following equation. The minimum value is 2, and maximum value is 4,294,967,295. (Number of output pulses) 65,536 = A (answer) . . . B (remainder) A = Number of output pulses (upper 16-bit) DM1485 B = Number of output pulses (upper 16-bit) DM1484 Note 1: When the set number of pulses is too small and the target value cannot be achieved, triangular control is performed as shown below.
Operating frequency Startup frequency
0

Note 2: The current value of pulse output cannot be obtained.

3-256

Chapter 5 Positioning Control

5.2 Parameter Setting and Operating Procedures

5.2.2 Operating Procedure


In positioning control, operation is started up, stopped normally, and stopped in emergencies by the ON/OFF status of special utility relays. The table below shows the relationship between operations and the special utility relays used.
Special utility relay No. 2308 2309 2310 R/W* Function W R W W Stop Run RESET Start Description Performs deceleration at rising edge, then stops operation. Remains ON while pulses are output. Stops operation immediately when being reset in an interrupt program. Starts up operation at rising edge.

* R: Read W: Write Operation chart

DM1481 DM1480 0 DM1482

DM1485 DM1484 DM1482

DM1480: Startup frequency (Hz) DM1481: Operating frequency (Hz) DM1482: Acceleration time (ms) DM1485: Number of output pulses (upper 16 bits) DM1484: Number of output pulses (lower 16 bits)

2310 (START) 2309 (RUN) 2308 (STOP)

When relay 2310 turns ON, clock pulses are output (detection at rising edge). While clock pulses are output, relay 2309 remains ON. While clock pulses are not output, relay 2309 remains OFF. When relay 2308 turns ON, clock pulses are decelerated and stopped (detection at rising edge).

Note 1: If there is no error in the parameter setting when special utility relay 2310 turns ON at startup of the clock pulses, special utility relay 2309 turns ON and clock pulses are output. Note 2: If there is an error in the parameter setting, special utility relay 2309 does not turn ON but a corresponding error code is written to DM1486. Confirm the error code, and change the erroneously set parameter. Note 3: By setting special utility relay 2309 to OFF in an interrupt program, clock pulses can be immediately stopped. Note 4: Rising of special utility relay 2310, falling of special utility relay 2309, and rising of special utility relay 2308 are performed by end processing and RETI. (Special utility relay 2309 turns ON at that time.) Note 5: It takes a maximum of 10 ms from when special utility relay 2310 turns ON until pulses are output. Note 6: Even if special utility relay 2310 is set to ON while special utility relay 2308 or 2309 is ON, it is ignored. Note 7: When pulse output has finished, special utility relay 2309 is immediately set to OFF (without regard to the scan time).

Chapter 5 Positioning Control

3-257

Visual KV Series

1 5

5.3 Examples of Using the Positioning Control Function

5.3 Examples of Using the Positioning Control Function


Visual KV Series
This section describes examples of connecting a stepping motor driver and performing ramp-up/down control using the positioning control function of the Visual KV Series.

5.3.1 Connection Example


Connect the Visual KV Series and stepping motor driver as shown below. This example is only for reference. For details, refer to the instruction manual for the stepping motor driver. Set the pulse input type of the stepping motor driver to "1 pulse input type".
top erg enc p Sto ys

24 VDC
+

Em

Sta

rt

Stepping motor driver

Twisted pair cable


COM 0000 0001 0002

Visual KV
COM R0502 R0503

+ CW (pulse) + CCW

(rotation direction)

5 VDC*
+ FG

Stepping motor

When using a 24 VDC power supply, be sure to use the outputs with current limiting resistors (R500, R501, and R502) or use the normal outputs with external current limiting resistors.

5.3.2 Tips
When using a servo motor, also refer to the connection example above. However, I/O control dedicated to a servo motor such as servo ON is also required.

3-258

Chapter 5 Positioning Control

5.3 Examples of Using the Positioning Control Function

5.3.3

Application Examples of the Positioning Control Function


When start switch 0000 is set to ON, output 0502 starts to output 100,000 pulses with a startup frequency of 500 Hz, operating frequency of 10 kHz, and acceleration/ deceleration time of 3 seconds. When input 0001 is set to ON, pulse output is decelerated and stopped. When input 0002 is set to ON, pulse output is immediately stopped.
Speed (Hz)
1000

Ladder example of ramp-up/down control

500

100000

Coordinate (pulses)

Program example
2008 0001 2002 0002 0000 0003 0001 0004 END 0005 0006 2002 0007 0008 ENDH 0009 INT 0002 2309 RES RETI #00500 #10000 #03000 #00001 #34464 DW DW DW DW DW DM1480 DM1481 DM1482 DM1485 DM1484 EI HSP 0002 2310 2308

Permit interrupts when operation is started (so that emergency stop operations are available). Set the input time constant of input 0002 to 10 s. Set each parameter, and start pulse output at the same time. Decelerate and stop pulse output.

Perform emergency stop processing by using an interrupt program.

Chapter 5 Positioning Control

3-259

Visual KV Series

1 5

5.3 Examples of Using the Positioning Control Function

Ladder example of the jog operation


The jog operation is performed.
Speed (Hz)

Visual KV Series

CW direction 1000

CCW direction

500

Coordinate (pulses) Input 0000 (CW direction)

Input 0001 (CCW direction)

While input 0000 is ON, the machine continues to move in the CW direction. When input 0000 turns OFF, the machine decelerates and stops. While input 0001 is ON, the machine continues to move in the CCW direction. When input 0001 turns OFF, the machine decelerates and stops.

Program example
0000 0001 0001 0002 1000 0003 1001 0004 0000 0005 0006 ENDH 0007 0001 1100 DIFU 1100 2308 END 0001 0000 2309 2309 0503 SET 0503 RES 1000 DIFU 1001 DIFU 2310

#00500 #02000 #01000 #65535 #65535 DW DW DW DW DW DM1480 DM1481 DM1482 DM1485 DM1484

3-260

Chapter 5 Positioning Control

5.3 Examples of Using the Positioning Control Function

Ladder example of automatic operation (palletizing operation)


A palletizing operation is automatically performed. The machine moves to a target coordinate, then returns to the start position. Next, the machine moves to a position further away than the target coordinate, then again returns to the start position. Such an operation is realized using repetitious and return movements. This type of operation is suitable for, for example, a job where workpieces to be supplied are located in one position and a moving body picks up the workpieces and positions them little by little at a certain interval.
Speed (Hz) 5000 500 0 500 5000 Point 1: 10,000 Point 3: 14,000 Coordinate (pulses) Point 2: 12,000

When start signal 0000 is set to ON, a moving body moves to point 1, returns to the start position, moves to point 2, and then returns to the start position again. Afterwards, the moving body moves to point 3, then returns to the start position, output 05000 remains ON for 3 seconds, and then the operation is finished. Program example

0001 Ladder for automatic operation 0002 Point 1: 10,000 0000 0003 0004 Moves to point 1. 0005 1000 STG 0503 SET #10000 DW DM1484 2310 2309 1200 1200 1001 JMP

Point 2: 12,000

Point 3: 14,000
#00500 #05000 #03000 #00000 DW DW DW DW DM1480 DM1481 DM1482 DM1485 1000 SET

0006 Returns from point 1. 0007 1001 STG 2309 1100 0008 Moves to point 2. 0009 1002 STG 2309 1101 0010 Returns from point 2 0011 1003 STG 2309 1102 0012 Moves to point 3. 0013 1004 STG 2309 1103 0014 Returns from point 3. 0015 1005 STG 2309 1104 0016 When operation has completed, output 500 remains ON for 3 seconds. 0017 0018 ENDH 0019 1006 STG 2309 1105 END 1105 0500 #00030 T000 T000 ENDS 1104 0503 RES 2310 1006 JMP 1103 0503 SET #14000 DW DM1484 2310 2309 1204 1204 1005 JMP 1102 0503 RES 2310 2309 1203 1203 1004 JMP 1101 0503 SET #12000 DW DM1484 2310 2309 1202 1202 1003 JMP 1100 0503 RES 2310 2309 1201 1201 1002 JMP

Chapter 5 Positioning Control

3-261

Visual KV Series

1 5

5.3 Examples of Using the Positioning Control Function

Ladder example of a return to the zero point


A return to the zero point is performed.
Range detected by zero point sensor

Visual KV Series

Low speed Forced stop

Start

Deceleration and stop

High-speed

When start signal 0000 turns ON, the machine moves at a high speed in the CCW direction. When the zero point sensor turns ON, the machine decelerates, moves at a low speed in the CW direction, then stops in the position at which the zero point sensor turns OFF (at the end of the CW direction). Program example
0001 0002

Return to zero point Zero point sensor: 0003 Start signal: 0000 Pulse output: 0502 Rotation direction: 0503

0003 Initial setting 2008 0004 2002 0005 0006 0007 EI HSP 0003

Moves at high speed in the CCW direction.


0000 1000 DIFU 1000 2309 #00500 #10000 #00500 #00000 #65535 DW DW DW DW DW DM1480 DM1481 DM1482 DM1485 DM1484 2413 RES 1005 SET 0503 RES

0008

0009 When the zero point sensor turns ON, moves at low speed in the CW direction. 1006 0010 1005 0011 1006 0012 END 0013 0014 0015 1006 0016 1005 0017 0018 ENDH 0019 2308 SET 2309 RES 1006 SET 2309 2309 2308 RES 1007 DIFU #00200 #10200 #00500 #00000 #65535 DW DW DW DW DW DM1480 DM1481 DM1482 DM1485 DM1484 1007 2413 SET 0503 SET 2310

Detects the rising/falling edge of the zero point sensor (003), stops, and then changes direction.
INT 0003 1006 RES 1005 RES RETI

3-262

Chapter 5 Positioning Control

5.3 Examples of Using the Positioning Control Function

Ladder example of an automatic operation (continuous operation with wait status)


In automatic operation, wait status is realized at each point.
Speed (Hz)

250000 Wait

320000 Wait

460000

Coordinate (pulses)

When start signal 0000 turns ON, the machine moves to point 1 and stops there. At the rising edge of wait status reset switch 1, the machine automatically moves to point 2 and stops there. At the rising edge of waiting status reset switch 1, the machine automatically moves to point 3. When the machine reaches point 3, output 0500 remains ON for 3 seconds and the operation is finished. Program example
0001 0002 0003 0004

Ladder for automatic operation (continuous operation with wait status) Start signal: 0000 Pulse output: 0508 Rotation direction: 0503 Wait reset switch: 0001
0000 #00500 DW DM1480 1000 SET

Moves to point 1 at speed of 10 kHz. 0005 Moving quantity: 250,000 pulses


0006 0007 0008 0009 0010 0011 0012 0013 0014 0015 0016 0017 0018 0503 SET 0503 SET 1000 STG 0503 SET

Acceleration/deceleration time: 1 second


2310 2309 1300 1300 1001 JMP

#01000 #01000 #00003 #53392 DW DW DW DW DM1481 DM1482 DM1485 DM1484

Moves to point 2 at speed of 5 kHz. Moving quantity: 70,000 pulses


1001 STG 2309 1400 1400 0001 1301 1301

Acceleration/deceleration time: 1 second

#05000 #01000 #00001 #04464 DW DW DW DW DM1481 DM1482 DM1485 DM1484

2310

2309 1302

1302

1002 JMP

Moves to point 3 at speed of 7 kHz.


1002 STG 2309 1401 1401 0001 1303 1303

Acceleration/deceleration time: 1 second

#07000 #01000 #00002 #08928 DW DW DW DW DM1481 DM1482 DM1485 DM1484

2310

2309 1304

1304

1003 JMP

Moving quantity: 140,000 pulses When operation has completed, output 500 remains ON for 3 seconds.
1003 STG 2309 1305 END ENDH 1305 0500 #00030 T000 T000 ENDS

Chapter 5 Positioning Control

3-263

Visual KV Series

10000 7000 5000 500

1 5

5.3 Examples of Using the Positioning Control Function

Ladder example of a pulse motor application circuit


This is a program example which offers control using both automatic and manual operations. In automatic operation, when input 000 is set to ON, the following operation is performed.
Speed (Hz)

Visual KV Series

8000 2000 300 0 15000 17500


Coordinate (pulses)

15000

In manual operation, the machine moves forward while input 0008 is ON, and moves backward while input 0009 is ON. When input 0007 is set to ON, the machine returns to the zero point. Output 0502 outputs pulses. The rotation direction is changed by an ON/OFF of 0503. This machine is equipped with a zero-point sensor (0002), a forward limit switch (0006), and a backward limit switch (0004). Program example
0001

Pulse motor application circuit (with zero point sensor, forward limit switch, and backward limit switch)

0002 Specifications

0003

Pulse output: 0502 Rotation direction: 0503 Forward limit switch: 0006 Backward limit switch: 0004 Zero point switch:

0004 Manual switch: Forward = 0008, backward = 0009 0005 0007 0006 0007 Automatic operation start: 0000 2008 0008 2002 0009 0010 1200 RES

EI HSP 0000 HSP 0002

Resets interrupt permission & zero point detection flag. 0011 Manual switch (0008: Forward, 0009: Backward)
0008 0012 0008 0013 1100 0014 1101 0015 0008 0016 0009 1105 DIFU 0009 2309 0009 2309 0503 RES 0503 SET 0006 0004 #00600 #04000 #00100 #00001 #00000 DW DW DW DW DW DM1480 DM1481 DM1482 DM1485 DM1484 1100 DIFU 1101 DIFU 1103 DIFU

Set the startup frequency, operating frequency, and acceleration/deceleration time for manual operation.
Startup frequency: 600 Hz Operating frequency: 4 kHz Acceleration/ deceleration: 100 ms Number of output pulses: 65,536

3-264

Chapter 5 Positioning Control

5.3 Examples of Using the Positioning Control Function


In a zero-point-return operation, the machine moves forward once, and then backward. When the zero point limit switch (0002) turns ON, the machine stops. Settings for forward movement
Startup frequency: 300 Hz Operating frequency: 3 kHz Acceleration time: 250 ms Number of output pulses: 3,500

0015 0016 Limit switch 0007 0017 0018 Move forward. 1205 0019 0020 0021 0503 SET

Return to zero point

1205 DIFU

#00300 #03000 #00250 #00000 #03500 DW DW DW DW DW DM1480 DM1481 DM1482 DM1485 DM1484

1300 DIFU

1200 SET

Trigger end of forward movement


1200 2309 ON 1201 1201 2309 OFF 1202 1202 1203 DIFU

0022 While moving backward at low speed, return to zero point. 1203 0023 0024 Start up motor. 1300 0025 1301 0026 1103 0027 1506 0028 0029 Decelerate and stop (in manual/automatic operation). 0006 0030 0004 0031 1105 0032 0033 0008 0009 2308 2308 0004 0006 2310 0503 RES #00500 #00500 #00000 #00000 #65535 DW DW DW DW DW DM1480 DM1481 DM1482 DM1485 DM1484 1301 DIFU 1200 RES

Settings for backward movement


Drive frequency: 500 Hz Operating frequency: 500 Hz Acceleration time: 0 ms Number of output pulses: 65,535

Give instructions to start up and decelerate/stop the motor.

Automatic operation

0034 Trigger for stage instruction 2008 0035 2308 0036 1408 DIFU 1408 1401 RES 1402 RES 1403 RES 1400 SET 1400 SET

0037 Automatic start (while 0000 is ON) 0038 1400 STG 0000 2308 2309 1401 JMP

0039 When motor operation has finished, moves stage forward. 0040 0041 0042 1401 STG 1402 STG 1403 STG 1407 RES 1405 RES 1406 RES #00010 T001 #00005 T002 #00005 T003 T001 T002 T003 1500 DIFU 1501 DIFU 1502 DIFU 2309 1405 2309 1406 2309 1407 1405 1406 1407 1402 JMP 1403 JMP 1400 JMP

Create each operation program using the STG instruction, and let each program be executed in turn.

Chapter 5 Positioning Control

3-265

Visual KV Series

1 5

5.3 Examples of Using the Positioning Control Function


Set parameters for automatic operation.
#08000 DW DM1481 #02000 DW DM1481 #15000 DW DM1481 #00150 DW DM1482 #00250 DW DM1482 #00250 DW DM1482 #00000 DW DM1485 #00000 DW DM1485 #00000 DW DM1485 #15000 DW DM1484 #02500 DW DM1484 #17500 DW DM1484 1503 DIFU 1504 DIFU 1505 DIFU

0043 Set automatic operation parameters. 1500 0044 1501 0045 1502 0046 0047 Start up motor. 1503 0048 1504 0049 1505 0050 END 0051 0052 Interrupt for instantaneous stop (to return to zero point) 0053 1200 0054 0055 ENDH 0056 0008 0009 0000 INT 0002 2309 RES RETI 1506 0503 SET 0503 SET 0503 RES #00300 DW DM1480 #00300 DW DM1480 #00300 DW DM1480

1. Startup frequency: 300 Hz Operating frequency: 8 kHz Acceleration time: 150 ms Number of output pulses: 15,000 2. Startup frequency: 300 Hz Operating frequency: 2 kHz Acceleration time: 250 ms Number of output pulses: 25000 3. Startup frequency: 300 Hz Operating frequency: 15 kHz Acceleration time: 250 ms Number of output pulses: 17,500

Visual KV Series

Stop pulse output at the zero point by using an interrupt program.

3-266

Chapter 5 Positioning Control

Chapter 6
Interrupts, High-speed Counters, Positioning Control KV-300, KV-10/80 Series Only
This chapter describes ramp-up/down control of stepping motors and servo motors. 6.1
6.1.1 6.1.2

Interrupt Instructions .............................................................. 3-268


Description of Interrupts ......................................................................... 3-268 Interrupt Instructions .............................................................................. 3-271

6.2
6.2.1

Direct Clock Pulse ................................................................... 3-276


Output of Direct Clock Pulse .................................................................. 3-276

6.3
6.3.1

Positioning Control ................................................................. 3-296


Positioning Control (Ramp-up/down Control) ......................................... 3-296

KV-300

KV-10/80

6.1 Interrupt Instructions

6.1

Interrupt Instructions

6.1.1 Description of Interrupts


Input processing for routine program and interrupt routine

Input processing

KV-300

KV-10/80

Scan time

Routine program execution

Ge
Re

ne

ion rat

in of

r ter

up

Processing of direct inputs


(00000 to 00005)

Output processing

tu at rns the to po sus int pe of nd su ed sp pr en og sio ram n.

Interrupt routine execution Processing of direct outputs


(00500 to 00503)

Fig. 1

Routine program flow is shown by the thick arrow on the left of Fig.1. In this case, input signals can be received only during input processing. Although input time constant can be made shorter by using HSP or by turning ON special utility relay 2813, input signals can be received only if they are longer than the duration of one scan time. When an interrupt initiation input turns ON, the currently running program is suspended to immediately execute the interrupt routine. During execution of interrupt routine, input signals shorter than one scan time can be received by the PLC. Note: To execute INT (interrupt initiation instruction), execute EI first to enable interrupt, then use HSP (time constant: 25 s) or turn ON special utility relay 2813 (time constant: 10 s) to reduce the input time constant.
2008 EI 2813 SET 2002 or 2002 EI HSP 0000

Types of interrupt
High speed counter comparators Input relays

Interrupt by CTC can be generated when the CTC preset value and CTH current value are equal. A signal received through any of inputs 0000 to 0003 can generate an interrupt.

CTC0, CTC1, CTC2, CTC3 0000, 0001, 0002, 0003 (rising/falling edge selectable)

3-268

Chapter 6 Interrupts, High-speed Counters, Positioning Control

6.1 Interrupt Instructions

Interrupt priority
If two or more interrupts are generated at different timings, interrupt routines are executed in the order that interrupts are generated. If two or more interrupts are generated simultaneously, interrupt routines are executed according to the priority shown below. CTC0 > CTC1 > CTC2 > CTC3 > 0000 > 0001 > 0002 > 0003 * Note that the above priority differs from that for other KV PLCs (KV-10/16/24/40/ 80). The priority is: 0000 > 0001 > 0002 > 0003 > CTC2 > CTC3 > CTC0 > CTC1.

Note 1: During execution of one interrupt routine, execution of other interrupt routines is inhibited. (One interrupt routine can be executed inside another interrupt routine by inserting EI.) Note 2: If other interrupts are generated during execution of one interrupt routine, the routines of these interrupts are executed after completion of the first interrupt routine in the order that they are generated. Note that generation of up to 8 levels of interrupt nesting or up to 8 individual interrupts can be stored during execution of interrupt routine. However, generation of an interrupt is ignored if generation of the same interrupt has already been stored.

Interrupt routine
2008 EI 2813 SET END

INT XXXXX RETI

ENDH

Execute EI to enable interrupt. Be sure to insert INT between END and ENDH. Be sure to shorten the input time constant by using HSP or by turning ON special utility relay 2813.

Instructions that cannot be used in the INT-RETI block TMR, TMH, TMS, DIFU, DIFD, W-ON, W-OFF, W-UE, W-DE, STG, JMP, ENDS, HKEY, ITVL, @xxxx (instruction), C, UDC, SFT

Chapter 6 Interrupts, High-speed Counters, Positioning Control

3-269

KV-300

1 6

KV-10/80

6.1 Interrupt Instructions

Direct output
2008 EI 2813 SET END INT 0000 2002 0500 ( SET ) RETI

KV-300

KV-10/80

INT 0001 2002 0500 ( SET ) ENDH

Direct output is enabled only through output relays 0500, 0501, 0502, and 0503. This function allows ON/OFF status of any of output relays 0500, 0501, 0502, and 0503 to be output during execution of interrupt routine. This function allows immediate ON/OFF status output without delay caused by scan time. Note: Be sure to turn ON special utility relay 2813 to shorten the input time constant.

Direct input
2008 1000 2813 SET 0500

END

6
0005

INT 0000 1000

RETI ENDH

Direct input is enabled only through input relays 0000 to 0005. This function allows ON/OFF status of any of input relays 0000 to 0005 to be input during execution of interrupt routine. Note 1: Be sure to turn ON special utility relay 2813 to shorten the input time constant. Note 2: Input status read using direct input function is valid only in the interrupt routine. Be sure to insert an internal utility relay after the direct input relay.

3-270

Chapter 6 Interrupts, High-speed Counters, Positioning Control

DI / EI

6.1 Interrupt Instructions

6.1.2 Interrupt Instructions


DI: Interrupt Disabled EI: Interrupt Enabled
Key operations
FNC FNC RES 0 SET 1 AND 8 ORL 3 ENT R-SRCH ENT R-SRCH

FNC
FNC

RES AND 0 8
SET 1 ORL 3

:
:

DI
EI

Disables execution of interrupt. Enables execution of interrupt.

Operand

Example
1000 EI 1000 DI

Coding
Line No. 0000 0001 : 0021 0022 : Instruction LD EI : LDB DI : 1000 Operand 1000

Description
When 1000 is ON, execution of interrupt is enabled. When 1000 is OFF, execution of interrupt is disabled. Interrupts are enabled between EI instruction and DI instruction. Therefore, once EI is executed, interrupt is enabled until it is disabled by DI. With the KV, any interrupt is disabled when the operation is started. DI instruction disables execution of interrupt. Use this instruction to temporarily disable interrupt. EI instruction enables the execution of interrupt. Use this instruction to release interrupt disabled by DI instruction. During execution of an interrupt, any other interrupt is disabled.To execute another interrupt during execution of the previous interrupt, include EI instruction in this first interrupt. Interrupts can be nested up to 8 levels by executing EI in each interrupt routine. Note 1: Generation of up to 8 levels of interrupt nesting or up to 8 individual interrupts can be stored while interrupt is disabled. These interrupts are executed after EI has been executed. Note 2: Generation of INT CTC is erased from the storage when RES CTC is executed.

Chapter 6 Interrupts, High-speed Counters, Positioning Control

3-271

KV-300

1 6

KV-10/80

INT / RETI

6.1 Interrupt Instructions

INT: Interrupt

FNC ANL 2

RES 0

: :

INT nnnn

RETI: Return Interrupt

LDB FNC ORL 3 4

RETI

Executes interrupt between INT and RETI instructions at rising edge of input specified by operand. When 0003 is specified by operand, the rising or falling edge can be selected for execution of interrupts. Represents termination of interrupts.

Key Operations
FNC ANL 2 ORL 3 RES 0 LDB 4 ENT R-SRCH ENT R-SRCH Operand ENT R-SRCH ENT R-SRCH

KV-300

KV-10/80

FNC

Operand
0000 to 0003 CTC0 to CTC3

Example 1
Input pulse width shorter than one scan time (eg. one-shot circuit)
(a)
Input for routine program

0000 0500 T000

#00020 T000 0500

0000 (Input remains ON for 1 ms or more.) (b)


Input for interrupt routine

2008 EI 1000 0500 T000

2813 SET #00020 T000 0500

0000

6
2002

END INT 0000 1000

RETI ENDH (Input remains ON for 10 s or more.)

Program (a) can be used when input 0000 remains ON longer than the input time constant (8 to 12 ms). Program (b) is used when input 0000 remains ON shorter than one scan time. Routine program coding
Line No. 0000 0001 0002 0003 0004 Instruction LD OR TMR ANB OUT Operand 0000 0500 000 #00020 T000 0500

3-272

Chapter 6 Interrupts, High-speed Counters, Positioning Control

INT / RETI 6.1 Interrupt Instructions Interrupt routine coding


Line No. 0000 0001 0002 0003 0004 0005 0006 0007 Instruction LD EI CON SET LD OR TMR ANB Operand 2008 Line No. 0008 0009 0010 0011 0012 0013 0014 Instruction OUT END INT LD OUT RETI ENDH Operand 0500 0000 2002 1000

2813 1000 0500 000 #00020 T000

Features of INT0003 Upon generation of interrupt by INT0003, the CTH1 current value is automatically transferred to TM30. Interrupt generated by any of INT0000 to INT0002 is executed at the rising edge of the input signal. Interrupt generated by INT0003 can be executed either at the rising or falling edge of the input signal.
Relay No. 2206 ON Executes interrupts at falling edge of input pulse to 0003. OFF Executes interrupts at rising edge of input pulse to 0003.

In the example program below, pulse width of input 0003 is measured.


2206(OFF) ON 0003 OFF Pulse width 2206(ON)
2008

1
2002

EI

$0000 LDA

2200 STA

DM0000 STA CTH1 2200 END

3
2206 TM30 LDA TM30 LDA TM02 STA TM02 DM0000 SUB STA

INT 0003 KEEP SET 2206 RES RETI

(a)

2206

(b)

ENDH

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 Instruction LD EI CON LDA CON STA CON STA LD CTH END INT LDB LDA Operand 2008 Line No. 0014 0015 0016 0017 0018 0019 0020 0021 0022 0023 0024 0025 0026 Instruction CON STA CON LD LDA CON SUB CON STA CON KEEP RETI ENDH Operand TM02 2206 TM30 TM02 DM0000 2206

$0000 2200 DM0000 2002 1 2200 0003 2206 TM30

Chapter 6 Interrupts, High-speed Counters, Positioning Control

3-273

KV-300

1 6

KV-10/80

Example 2

INT / RETI

6.1 Interrupt Instructions


Initial setting When the operation is started, EI instruction enables interrupts. Special utility relays No. 2200 through 2215 are turned OFF. Turning OFF 2203 disables CTC2 from resetting the CTH1 current value to 0. Turning OFF 2206 allows interrupt to be generated at the rising edge of INT0003. The value of DM0000 is reset to "0". Turning ON special utility relay 2813 changes the input time constant to 10 s. 1.0-s internal clock pulses are counted using CTH1. INT instruction with 0003 as the operand allows interrupts to be executed. When interrupt is generated for the first time, 2206 is OFF. Therefore, program in rung (a) is executed. Then, KEEP turns 2206 ON. When interrupt is generated for the second time, 2206 is ON. Therefore, program in rung (b) is executed to calculate the following: (TM30 at 2nd execution) - (TM30 at 1st execution) = pulse width (unit: 1.0 s) The result is stored in DM0000.

KV-300

KV-10/80

Example 3
Interrupt by CTC Pulses input to 0005 are counted. 0501 is turned ON when the number of pulses reaches 5,000.
2008 1 2002 2 0000 3 EI 2203 SET CTH1 RES #05000 CTC2 2813 SET CTH1 0005 0501 RES END

6
4 2002 5

INT CTC2 0501 SET RETI

ENDH

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 Instruction LD EI CON SET CON RES CON CTC CON SET Operand 2008 Line No. 0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 Instruction LD CTH LD RES END INT LD SET RETI ENDH Operand 2002 1 0005 0000 0501 CTC2 2002 0501

2203 CTH1 2 #05000 2813

3-274

Chapter 6 Interrupts, High-speed Counters, Positioning Control

INT / RETI

6.1 Interrupt Instructions


Initial setting When the operation is started, EI instruction enables interrupts. Turning ON special utility relay 2203 allows CTC2 to reset the CTH1 current value to 0. The CTH1 current value is reset to 0. The CTC2 preset value is set to 5000. Turning ON special utility relay 2813 changes the input time constant to 10 s. Pulses input to 0005 are counted using CTH1.

INT CTC2 is used to execute the interrupt. (Interrupt routine is executed when the CTH1 current value and CTC2 preset value are equal.) Immediate output to 0501 is performed.

Note 1: When the interrupt is executed, the contact of CTC2 is automatically reset. Note 2: The operand used for INT instruction is not allowed for use with other INT instructions.

Chapter 6 Interrupts, High-speed Counters, Positioning Control

3-275

KV-300

When input 0000 turns ON, output 0501 is reset.

1 6

KV-10/80

6.2 High-speed Counters

6.2

Direct Clock Pulse

6.2.1 Output of Direct Clock Pulse


Outline of High-Speed Counters
Basic Architecture
The KV-300 CPU has two 16-bit (CTH0, CTH1) double-phase counter, each equipped with two high-speed counter comparators (CTC0, 1, 2, 3). These counters can be used as a stepping motor controller or are used to measure pulse width.

KV-300

KV-10/80

Block diagram of high-speed counters


0008 (RESET) Internal clocks 2100(1.0 s) 2101(10.0 s) 2102(100.0 s) External pulse 0004/0006 16-bit high-speed counter CTH0 High-speed counter comparator CTC0, CTC1 16-bit highspeed counter CTH1 High-speed counter comparator CTC2, CTC3 Special utility relay (2103 to 2115) Control circuit INT CTC0 INT CTC1 Special utility relay (2203 to 2215) Control circuit INT CTC2 INT CTC3 0501 0500

Phase A 0004 Phase B (0006)

Phase A 0005 Phase B (0007) 0009 (RESET)

Internal clocks 2200(1.0 s) 2201(10.0 s) 2202(100.0 s) External pulse 0005/0007 0500

TM30

Lists of special utility relays for high-speed counters Utility relays for high-speed counter CTH0
2100 2101 2102 Internal clock (1.0 s) for CTH0 Internal clock (10.0 s) for CTH0 Internal clock (100.0 s) for CTH0 When comparator CTC0 is ON, automatically clears CTH0. 1: Yes 0: No Direct output to 0500 1: Disable 0: Enable Turns OFF output to 0500. 1: Yes 0: No Turns ON output to 0500. 1: Yes 0: No Reverses output (toggle) to 0500. 1: Yes 0: No Direct output to 0500 1: Disable 0: Enable Turns OFF output to 0500. 1: Yes 0: No Turns ON output to 0500. 1: Yes 0: No Reverses output to 0500 (toggle). 1: Yes 0: No When comparator CTC1 is ON, automatically clears CTH0. 1: Yes 0: No Uses CTH0 in magnification mode. 1: Yes 0: No Selection of magnification mode for CTH0 1: x 4 0: x 2 Enables external reset for CTH0. 1: Yes 0: No Direct output level to 0500 through comparator CTC1 (any one of these is ON) Direct output level to 0500 through comparator CTC1 (any one of these is ON)

2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115

3-276

Chapter 6 Interrupts, High-speed Counters, Positioning Control

6.2 High-speed Counters


Utility relays for high-speed counter CTH1
2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 Internal clock (1.0 s) for CTH1 Internal clock (10.0 s) for CTH1 Internal clock (100.0 s) for CTH1 When comparator CTC2 is ON, automatically clears CTH1. 1: Yes 0: No Direct output to 0501 through comparator CTC2 1: Enable 0: Disable Direct output level to 0501 through comparator CTC2 1: ON 0: OFF

Reverse output (toggle) level 1: ON 0: OFF Direct output to 0501 1: Disable 0: Enable Turns OFF output to 0501. 1: Yes 0: No Turns ON output to 0501. 1: Yes 0: No Reverses output (toggle) to 0501. 1: Yes 0: No When comparator CTC3 is ON, automatically clears CTH1. 1: Yes 0: No Uses CTH1 in magnification mode. 1: Yes 0: No Selection of magnification mode for CTH1 1: x 4 0: x 2 Enables external reset for CTH1. 1: Yes 0: No Direct output level to 0501 through comparator CTC3 (any one of these is ON)

For KV-10/80 users


1. KV-10/80 has one 8-bit (CTH0) and one 16-bit (CTH1) single phase counter. 2. Internal clocks are as follows:
2100 2101 2102 0.8 s 6.4 s 102.4 s 2200 2201 2202 0.4 s 0.8 s 3.2 s

3. Special utility relays of 2112, 2113, 2114, 2115, 2212, 2213, 2214, and 2215 are not available.

Chapter 6 Interrupts, High-speed Counters, Positioning Control

3-277

KV-300

1 6

KV-10/80

Selection of INT3 edge 0: UP edge 1: DOWN edge

6.2 High-speed Counters


High-speed counter and counter comparators High-speed counter (CTH1) CTH1 is a 16-bit hardware counter that counts from 0 to 65535. You can specify the operands listed in the table below as the count input. You can specify one operand from the table below. Operand cannot be modified externally during execution of the program. When the external pulse (0004, 0005) is selected, CTH1 is used as a High-speed counter with a response frequency of 30 kHz.* When one of the internal clocks (2100 to 2102, 2200 to 2202) is selected, CTH1 is used as a High-speed timer. When the external pulse 0500 is selected as input to CTH1, CTH1 can count direct clock pulses generated by CTH0.
High-speed counter Operand CTH0 2100 2101 2102 0004 0 to 65535 CTH1 2200 2201 2202 0005 0500

KV-300

KV-10/80

Countable range

* KV-10/80: 10 kHz High-speed counter comparator (CTC) High-speed counter comparators (CTC) is used only for High-speed counters (CTH). When the current value of CTH reaches the preset value of one of the comparators (CTC), the comparator turns ON. At the contact of High-speed counter comparator (CTC), the level of output (0500, 0501) can be changed (directly output) through hardware or an interrupt can be generated. To change the level of output 0500 and 0501, set the desired value (ON/ OFF) to special utility relays 2103 to 2112, 2203 to 2205, and 2207 to 2212. The High-speed counters correspond to the High-speed counter comparators as shown in the table below.

High-speed counter CTH0 CTH1

High-speed counter comparator CTC0 CTC1 CTC2 CTC3

Range of setting value 0 TO 65535

Output

Interrupt

0500 0501

INT CTC0 INT CTC1 INT CTC2 INT CTC3

Internal Clocks for CTH0 and CTH1


Each High-speed counter (CTH) has its own internal clock. The desired clock can be selected by specifying the relay No. as operand for CTH instruction. You cannot change the internal clock or external pulse during execution of the program. Each clock has the following period:
CTH0 2100 2101 2102 CTH1 2200 2201 2202 Period 1.0 s 10.0 s 100.0 s

High-speed counter Relay No.

3-278

Chapter 6 Interrupts, High-speed Counters, Positioning Control

6.2 High-speed Counters You cannot change operands of the high-speed counters (CTH) during execution of the program. The input time constant of the high-speed counters is usually set to 25 ms. (The HSP instruction is not required.) High-speed pulses can be counted at up to 30 kHz through external inputs (0004 to 0007) by turning ON special utility relay 2813. (Internal pulses can be counted at up to 50 kHz by turning ON 2813.)*

CAUTION

* KV-10/80 : 10 kHz

Outline of Pulse Output


The KV PLC can output clock pulses through 0500 and/or 0501 without any delays caused by scan time. (Through CPU only) Direct clock pulses, used with the high-speed counters, are applicable for various types of production control such as for controlling target positions at desired speed. To perform ramp-up/down control, see "Controlling stepping motors" in Chapter 5. A setting of the clock pulse cycle (frequency) can be changed by the program within the allowable range as shown in the table below.

Outline of pulse output


Output 0500 Internal clock 2100 2101 2102 0501 2200 2201 2202 Range of pulse cycle (frequency) 20 s (50 kHz) to 65.5 ms (15 Hz) 20 s (50 kHz) to 655.3 ms (1.5 Hz) 200 s (5 kHz) to 6553.5 ms (0.1 Hz) 20 s (50 kHz) to 65.5 ms (15 Hz) 20 s (50 kHz) to 655.3 ms (1.5 Hz) 200 s (5 kHz) to 6553.5 ms (0.1 Hz)

Direct clock pulses are output through 0500 and/or 0501 according to the settings on the special utility relays when the number of internal clock pulses counted by the high-speed counter reaches the preset value of the comparator. Output example
CTH current value (count value) CTC preset value

0500 0501

ON

OFF

CAUTION

ON/OFF of output relay 0500/0501 depends on the setting of the special utility relay. Refer to page 3-281.

For KV-10/80 users


Model KV-10, 16, 24, 40 Output 500 501 KV-80 500 501 Range of pulse cycle 500 ms to 52.2 ms (2 kHz to 19 Hz) 666 ms to 419.4 ms (1.5 kHz to 2.4 Hz) 50 ms to 52.2 ms (20 kHz to 19 Hz) 666 ms to 419.4 ms (1.5 kHz to 2.4 Hz)

Chapter 6 Interrupts, High-speed Counters, Positioning Control

3-279

KV-300

1 6

KV-10/80

6.2 High-speed Counters

Pulse period and width


Period and width of the pulse is determined by the period of the internal clock (CTH) used and the preset value of the comparator (CTC). When two counter comparators are used, only the pulse width can be changed while a constant period is maintained. The following examples illustrate how pulse width and period can be selected: ON/OFF ratio of 1:1 Pulse width (ms) = CTC0 preset value x internal clock (ms) Pulse period (ms) = CTC0 preset value x 2 x internal clock (ms)

KV-300

KV-10/80

ON/OFF ratio of pulse is 1:1. Change CTC0 preset value to change the pulse width and period.
ON/OFF status is set special utility relays ON OFF
Pulse width Pulse period

Variable pulse width ON/OFF status is set by special utility relays. Pulse width (ms) = CTC1 preset value x internal clock (ms) Pulse period (ms) = CTC0 preset value x internal clock (ms) Change CTC1 preset value to change the pulse width. Change CTC0 preset value to change the pulse period.
ON/ OFF status is set by special utility relays

ON OFF
Pulse width

6
CAUTION

Pulse period

The pulse width determined as above is used to pulses generated from the KV-300 CPU. Pulses are output through the output circuit. The pulse width varies depending on the response delay from the output circuit and influence of the connected load. Before setting the pulse width, you should measure the actual waveform using an oscilloscope. (Use pulses with variable pulse width.)
To obtain the pulse cycle from frequency, use the following expression: Pulse cycle (s) = 1000 Frequency (kHz)

3-280

Chapter 6 Interrupts, High-speed Counters, Positioning Control

6.2 High-speed Counters

Special utility relay settings and output statuses


16-bit high-speed counter (CTH0) and special utility relays (2103 to 2112) By setting the special utility relays 2104 to 2112 at startup or changing these relays during generation of clock pulse, you can select ON/OFF of output relay 0500 as listed below. These special utility relays also allow you to set the pulse cycle and pulse width and enable or disable the direct output.
Pulse status at CTH0 (current value) = CTC (preset value) Comparator No. CTC0 Relay No. 2103 2104 2105 2106 2107 CTC1 2112 2108 2109 2110 2111 Pulse status at ON. Automatically clears current value of CTH0. Outputs OFF to 0500 Outputs ON to 0500. Inverts output to 0500. Automatically clears current value of CTH0. Disables output to 0500. Outputs OFF to 0500 Outputs ON to 0500. Inverts output to 0500.

CAUTION

Special utility relay must be ON when clock pulse is generated. Only one of relays 2104 to 2107 and one of relays 2108 to 2111 can be turned ON. When two or more of the relays among each group are ON, priority is given to the relay with the smallest No. Turning OFF special utility relays 2104 and 2108 enable direct output. Because these relays are factory-set to ON, be sure to set them to OFF. ON/OFF status of special utility relays 2104 to 2112 is set using SET and RES instructions or STA instruction. Be sure to turn the special utility relay 2103 or 2112 ON to change the pulse width. Turn ON 2103 or 2112 to change the pulse cycle. Turn OFF 2105 to start clock pulse output. Turn ON 2105 to stop pulse output. When special utility relays 2104 and 2108 are turned ON while the direct clock pulses are being output, the status of the output relay 0500 is output and the pulses will be stopped.

1 6

Timing diagram of 0500 with special utility relay settings ON-OFF ratio of 1:1 Variable pulse width Settings of special utility relays Settings of special utility relays
2103 2104 2105 2106 2107 ON OFF OFF OFF ON
CTH0 value CTC0 ON OFF

2112 2108 2109 2110 2111

OFF OFF OFF OFF OFF

2103 2104 2105 2106 2107

ON OFF OFF ON OFF

2112 2108 2109 2110 2111

OFF OFF ON OFF OFF

CTH0 value CTC0 CTC1 ON OFF

Chapter 6 Interrupts, High-speed Counters, Positioning Control

3-281

KV-10/80

Disables output to 0500.

KV-300

6.2 High-speed Counters


16-bit high-speed counter (CTH1) and special utility relays (2203 to 2205, 2208 to 2212) By setting the special utility relays 2204 to 2205 and 2208 to 2212 at startup or changing these relays during generation of clock pulse, you can select ON/OFF of output relay 0501 as listed below. These special utility relays also allow you to set the pulse cycle
Pulse status at CTH1 (current value) = CTC (preset value) Comparator No. CTC2 Relay No. 2203 2204 2205 2207 CTC3 2212 2208 2209 2210 2211 Pulse status at ON. Automatically clears current value of CTH0. Disables output to 0501. Outputs OFF to 0501 Inverts output to 0501. Automatically clears current value of CTH0. Disables output to 0501. Outputs OFF to 0501 Outputs ON to 0501. Inverts output to 0501.

KV-300

KV-10/80

CAUTION

Special utility relay must be ON when clock pulse is generated. Only one of relays 2208 to 2211 can be turned ON. When two or more of the relays among each group are ON, priority is given to the relay with the smallest No. Turning ON special utility relay 2204 and turning OFF special utility relay 2208 enable direct output. ON/OFF status of special utility relays 2204 to 2212 is set using SET and RES instructions or STA instruction. Be sure to turn the special utility relay 2203 or 2212 ON to change the pulse width. Turn ON 2203 or 2212 to change the pulse cycle. Turn OFF 2205 to start clock pulse output. Turn ON 2205 to stop pulse output. When special utility relays 2204 and 2208 are turned ON while the direct clock pulses are being output, the status of the output relay 0501 which is used in the program is output and the pulses will be stopped.

Timing diagram of 0501 with special utility relay settings Variable pulse width ON-OFF ratio of 1:1 Settings of special utility relays Settings of special utility relays
2203 2204 2205 2206 2207 ON ON OFF OFF ON
CTH1 value CTC2 ON OFF

2212 2208 2209 2210 2211

OFF OFF OFF OFF OFF

2203 2204 2205 2206 2207

ON ON ON OFF OFF
CTH1 value CTC2 CTC3 ON OFF

2212 2208 2209 2210 2211

OFF OFF ON OFF OFF

3-282

Chapter 6 Interrupts, High-speed Counters, Positioning Control

6.2 High-speed Counters

Calculating the pulse cycle and comparator setting value


The KV-300 CPU supports clock pulse output at maximum frequency of 50 kHz. Obtain the pulse cycle for clock pulse output and comparator setting value from the following expressions: Pulse cycle Pulse cycle (s) = 1000 Frequency (kHz) For pulse with 1:1 ON/OFF ratio (using one comparator) CTC setting value = Pulse cycle (s) Internal clock (s) 2
ON OFF

Pulse cycle

For pulse with variable pulse width (using two comparators) CTC setting value for pulse width = Pulse width (s) Internal clock (s) CTC setting value for pulse cycle = Pulse cycle (s) Internal clock (s)
ON OFF
Pulse width Pulse cycle

Range of CTC setting based on internal clock


Special utility relay (Internal clock) 2100 2101 2102 2200 2201 2202 Cycle 1.0 s 10.0 s 100.0 s * CTC setting range 10 to 65535 1 to 65535 1 to 65535

CAUTION

When setting 2100 or 2200 for the operand of High-speed counter CTH, set 10 or greater value to CTC. Otherwise, clock pulse is not correctly output. The pulse width varies depending on the influence of the connected load. Before setting the pulse width, you should measure the actual waveform using an oscilloscope. When generating clock pulse using CTC0 and CTC1, or CTC2 and CTC3, do not set the same value to CTC0 and CTC1, or CTC2 and CTC3. If setting the same value, clock pulse is output at the double clock cycle.

1 6

* Refer to page 3-276.

Chapter 6 Interrupts, High-speed Counters, Positioning Control

3-283

KV-10/80

Pulse width

KV-300

6.2 High-speed Counters

Examples of Pulse Output


The following sample explains how to program the pulse output.

Example of clock pulse with 1:1 ON/OFF ratio


When outputting clock pulse with cycle 1 ms (1 kHz) from 0500 This program example shows how to output clock pulse with 1:1 ON/OFF ratio from 0500, through High-speed counter CTH0 and High-speed counter comparator CTC0. Setting special utility relays Special utility relays 2103 to 2112 are set as shown on the right table. The program can be simplified using reverse output (toggle) for pulse with 1:1 ON/ OFF ratio.
Relay No. 2103 2104 2105 2106 2107 Setting ON OFF OFF OFF ON Relay No. 2112 2108 2109 2110 2111 Setting OFF OFF OFF OFF OFF

KV-300

KV-10/80

Values set to the internal clock and CTC0 After the internal clock is determined, the CTC0 setting value is calculated from the following expression. CTC0 setting value = Pulse cycle (s) Internal clock (s) 2 Assign 1 ms to pulse cycle and 10 s (2101: special utility relay) to internal clock and calculate the CTC0 setting value. The calculated result is "50". CTC0 values calculated based on other internal clocks are listed below for your reference.
Special utility relay Internal clock* 1.0 s 10.0 s 100.0 s CTC0 value 500 50 5

2100 2101 2102

Programming example
2008 0001 2002 0002 0003 2103 SET 2104 RES 2105 RES 2106 RES 2107 SET CTH0 RES CTH0 2101 #00050 CTC0

CTH0 value CTC0 ON OFF

The status of output 0500 is set by turning ON one of the relays 2104 to 2107 at the beginning of the program. In Example, output of direct clock pulses to 0500 is enabled, and the status of output 0500 is inverted each time CTH0 = CTC0. Turns ON special utility relay 2103 and specifies to clear CTH0 using CTC0. The program repeats clearing the CTH0 current value with the value set to CTC0. Resetting the current value of CTH0 at the beginning of the program allows direct clock pulses of specified width to be output starting from the 1st pulse. Input relay which enables CTH0 remains ON during clock pulse output.
* Refer to page 3-276.

3-284

Chapter 6 Interrupts, High-speed Counters, Positioning Control

6.2 High-speed Counters


Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 0014 Instruction LD SET CON RES CON RES CON RES CON SET CON RES LD CTH CTC CTH0 2002 0 2101 0 #00050 2107 2106 2105 2104 Operand 2008 2103

CAUTION

When start/stop of clock pulse is controlled by the input relay which enables/ disables the high-speed counter, response relay of up to 1 scan is generated at start. Also, the same response relay is generated at stop, which may stop clock pulse output while the output relay is still ON.
This controls clock pulse so that it always starts and stops when 2105 turns OFF. Turn ON/OFF special utility relay 2105 as required to enable or disable output of direct clock pulses using one of the external clocks. Use SET and RES instructions together or only KEEP instruction to turn ON/OFF this relay. The diagram below can be added to the sample diagram so that direct clock pulses are output through 0500 only when 0000 is ON.
SET/RES Instructions
0000 2105 SET 2105 RES

KEEP Instructions
0000 KEEP SET 2105 RES

0000

0000

When outputting clock pulse with cycle 1 ms (1 kHz) from 0501 This program example shows how to output clock pulse with 1:1 ON/OFF ratio from 0501, through high-speed counter CTH1 and high-speed counter comparator CTC2. Setting special utility relays Special utility relays 2203 to 2212 are set as shown on the right table. The program can be simplified using reverse output (toggle) for pulse with 1:1 ON/ OFF ratio.
Relay No. 2203 2204 2205 2206 2207 Setting ON OFF OFF OFF ON Relay No. 2212 2208 2209 2210 2211 Setting OFF OFF OFF OFF OFF

Chapter 6 Interrupts, High-speed Counters, Positioning Control

3-285

KV-300

1 6

KV-10/80

6.2 High-speed Counters


Values set to the internal clock and CTC2 After the internal clock is determined, the CTC2 setting value is calculated from the following expression. CTC2 setting value = Pulse cycle (s) Internal clock (s) 2 Assign 1 ms to pulse cycle and 10 s (2201: special utility relay) to internal clock and calculate the CTC2 setting value. The calculated result is "50". CTC2 values calculated based on other internal clocks are listed below for your reference.
Special utility relay Internal clock* 1.0 s 10.0 s 100.0 s CTC0 value 500 50 5

KV-300

2200 2201 2202

KV-10/80

* Refer to page 3-276.

Programming example
2008 0001 2002 0002 0003 2203 SET 2204 SET 2205 RES 2207 SET CTH1 RES CTH1 2201 #00050 CTC2

CTH1 value CTC2 ON OFF

The status of output 0501 is set by turning ON one of the relays 2204 to 2207 at the beginning of the program. In Example, output of direct clock pulses to 0501 is enabled, and the status of output 0501 is inverted each time CTH1 = CTC2. Turns ON special utility relay 2203 and specifies to clear CTH1 using CTC2. The program repeats clearing the CTH1 current value with the value set to CTC2. Resetting the current value of CTH1 at the beginning of the program allows direct clock pulses of specified width to be output starting from the 1st pulse. Input relay which enables CTH1 remains ON during clock pulse output.

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 Instruction LD SET CON SET CON RES CON SET CON RES LD CTH CTC CTH1 2002 1 2201 2 #00050 2207 2205 2204 Operand 2008 2203

3-286

Chapter 6 Interrupts, High-speed Counters, Positioning Control

6.2 High-speed Counters When start/stop of clock pulse is controlled by the input relay which enables/ disables the high-speed counter, response relay of up to 1 scan is generated at start. Also, the same response relay is generated at stop, which may stop clock pulse output while the output relay is still ON.
This controls clock pulse so that it always starts and stops when 2204 turns OFF. Turn ON/OFF special utility relay 2204 as required to enable or disable output of direct clock pulses using one of the external clocks. Use SET and RES instructions together or only KEEP instruction to turn ON/OFF this relay. The diagram below can be added to the sample diagram so that direct clock pulses are output through 0501 only when 0000 is ON.

CAUTION

0000

2204 SET 2204 RES

0000

KEEP SET 2204 RES

0000

0000

Example of clock pulse with variable ON/OFF ratio


When outputting clock pulse with cycle 500 s (2 kHz) and pulse width 200 s from 0500 This program example shows how to output clock pulse varies ON/OFF ratio from 0500, through high-speed counter CTH0 and high-speed counter comparator CTC0 and CTC1. Setting special utility relays Special utility relays 2103 to 2112 are set as shown in the table below.
Relay No. 2103 2104 2105 2106 2107 Setting ON OFF OFF ON OFF Relay No. 2112 2108 2109 2110 2111 Setting OFF OFF ON OFF OFF

Values set to the internal clock, CTC0 and CTC1 After the internal clock is determined, the CTC0 and CTC1 setting value is calculated from the following expression. CTC1 setting value = Pulse width (s) Internal clock (s) CTC0 setting value = Pulse cycle (s) Internal clock (s) Assign 200 s to pulse width, 500 s to pulse cycle and 10 s (2101: special utility relay) to internal clock and calculate the CTC0 and CTC1 setting value. The calculated results of CTC1 and CTC0 are "20" and "50", respectively. Values calculated based on other internal clocks are listed below for your reference.
Special utility relay 2100 2101 2102

Internal clock* 1.0 s 10.0 s 100.0 s

CTC0 value 500 50 5

CTC1 value 200 20 2

* Refer to page 3-276.

Chapter 6 Interrupts, High-speed Counters, Positioning Control

3-287

KV-300

1 6

KV-10/80

SET/RES Instructions

KEEP Instructions

6.2 High-speed Counters


Programming example
2008 0001 0002 2002 0003 0004 0005 2103 SET 2108 RES 2104 RES 2109 SET 2105 RES 2110 RES 2106 SET 2111 RES 2107 RES CTH0 RES CTH0 2101 #00050 CTC0 #00020 CTC1

CTH0 value CTC0 CTC1 ON OFF

KV-300

KV-10/80

The status of output 0500 is set by turning ON one of the relays 2104 to 2107 and 2108 to 2111 at the beginning of the program. In Example, output of direct clock pulses to 0500 is enabled, and the status of output 0500 is turned ON at CTC0 and is turned OFF at CTC1. Turns ON special utility relay 2103 and specifies to clear CTH0 using CTC0. The program repeats clearing the CTH0 current value with the value set to CTC0. Input relay which enables CTH0 remains ON during clock pulse output.

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 Instruction LD MPS SET CON RES CON RES CON SET CON RES MPP RES Operand 2008 2103 2104 2105 2106 2107 2108 Line No. 0013 0014 0015 0016 0017 0018 0019 0020 0021 0022 0023 0024 Instruction CON SET CON RES CON RES CON RES LD CTH CTC CTC Operand 2109 2110 2111 CTH0 2002 0 2101 0 #00050 1 #00020

CAUTION

When start/stop of clock pulse is controlled by the input relay which enables/ disables the high-speed counter, response relay of up to 1 scan is generated at start. Also, the same response relay is generated at stop, which may stop clock pulse output while the output relay is still ON.
This controls clock pulse so that it always starts and stops when 2105 turns OFF. Turn ON/OFF special utility relay 2105 as required to enable or disable output of direct clock pulses using one of the external clocks. Use SET and RES instructions together or only KEEP instruction to turn ON/OFF this relay. The diagram below can be added to the sample diagram so that direct clock pulses are output through 0500 only when 0000 is ON.
SET/RES Instructions
0000 2105 SET 2105 RES

KEEP Instructions
0000 KEEP SET 2105 RES

0000

0000

By overwriting the setting value of high-speed counter comparator CTC0 using the LDA and STA instructions, you can change the clock pulse cycle (frequency).
Refer to "Example of pulse output "on page 3-293.

3-288

Chapter 6 Interrupts, High-speed Counters, Positioning Control

6.2 High-speed Counters


When outputting clock pulse with cycle 500 s (2 kHz) and pulse width 200 s from 0501 This program example shows how to output clock pulse with variable ON/OFF ratio from 0501, through High-speed counter CTH1 and High-speed counter comparator CTC2 and CTC3. Setting special utility relays Special utility relays 2203 to 2212 are set as shown on the right table.
Relay No. 2203 2204 2205 2206 2207 Setting ON ON ON OFF OFF Relay No. 2212 2208 2209 2210 2211 Setting OFF ON OFF OFF OFF

Values set to the internal clock and CTC2 and CTC3 After the internal clock is determined, the CTC2 and CTC3 setting value is calculated from the following expression. CTC3 setting value = Pulse width (s) Internal clock (s) CTC2 setting value = Pulse cycle (s) Internal clock (s) Assign 200 s to pulse width, 500 s to pulse cycle and 10 s (2201: special utility relay) to internal clock and calculate the CTC2 and CTC3 setting value. The calculated results of CTC3 and CTC2 are "20" and "50", respectively. Values calculated based on other internal clocks are listed below for your reference.
Special utility relay 2100 2101 2102

Internal clock* 1.0 s 10.0 s 100.0 s

CTC2 value 500 50 5

CTC3 value 200 20 2

*Refer to page 3-276.

Programming example
2008 0001 0002 2002 0003 0004 0005 2208 RES 2203 SET 2209 SET 2204 SET 2210 RES 2205 SET 2211 RES 2207 RES CTH1 RES CTH1 2201 #00050 CTC2 #00020 CTC3

CTH1 value CTC2 CTC3 ON OFF

The status of output 0501 is set by turning ON one of the relays 2204 to 2207 and 2208 to 2211 at the beginning of the program. In Example, output of direct clock pulses to 0501 is enabled, and the status of output 0501 is turned ON at CTC2 and is turned OFF at CTC3. Turns ON special utility relay 2203 and specifies to clear CTH1 using CTC2. The program repeats clearing the CTH1 current value with the value set to CTC2. Input relay which enables CTH1 remains ON during clock pulse output.

Chapter 6 Interrupts, High-speed Counters, Positioning Control

3-289

KV-300

1 6

KV-10/80

6.2 High-speed Counters


Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 Instruction LD MPS SET CON SET CON SET CON RES MPP RES CON Operand 2008 2203 2204 2205 2207 2208 Line No. 0012 0013 0014 0015 0016 0017 0018 0019 0020 0021 0022 Instruction SET CON RES CON RES CON RES LD CTH CTC CTC Operand 2209 2210 2211 CTH1 2002 1 2201 2 #00050 3 #00020

KV-300

KV-10/80

CAUTION

When start/stop of clock pulse is controlled by the input relay which enables/ disables the high-speed counter, response relay of up to 1 scan is generated at start. Also, the same response relay is generated at stop, which may stop clock pulse output while the output relay is still ON.
This controls the clock pulse so that it always starts and stops when 2205 turns OFF. Turn ON/OFF special utility relay 2205 as required to enable or disable output of direct clock pulses using one of the external clocks. Use SET and RES instructions together or only KEEP instruction to turn ON/OFF this relay. The diagram below can be added to the sample diagram so that direct clock pulses are output through 0501 only when 0000 is ON.
SET/RES Instructions
0000 2204 SET 2204 RES

KEEP Instructions
0000 KEEP SET 2204 RES

0000

0000

6
By overwriting the setting value of high-speed counter comparator CTC2 using the LDA and STA instructions, you can change the clock pulse cycle (frequency).

Example of stopping clock pulse after reaching the specified output pulse count
The following example stops clock pulse having the pulse width of 200 s which is output from 0500 at cycle of 500 s (2 kHz) after reaching the pulse count value of 10000. Setting special utility relay, internal clock, and CTC Settings of the special utility relays, internal clock, CTC0, and CTC1 are listed below.
Relay No. 2103 2104 2105 2106 2107 Setting ON OFF OFF ON OFF Relay No. 2112 2108 2109 2110 2111 Internal clock* 1.0 s 10.0 s 100.0 s Setting OFF OFF ON OFF OFF CTC0 value 500 50 5 CTC1 value 200 20 2

Special utility relay 2100 2101 2102

*Refer to page 3-276.

3-290

Chapter 6 Interrupts, High-speed Counters, Positioning Control

6.2 High-speed Counters


Programming example
2008 0001 0002 0003 0000 0004 2002 0005 0006 0007 2002 0008 0009 0010 0011 2002 0012 0013 0014 EI 2103 SET 2108 RES 2203 SET 2104 RES 2109 SET 2813 SET 2105 SET 2106 SET 2107 RES CTH0 RES

2110 2111 RES RES CTH1 RES 1000 1000 DIFU

2105 RES CTH0 2101 #00050 CTC0 #00020 CTC1 CTH1 0500 #10000 CTC2 END INT CTC2 2105 SET RET1 ENDH

Sets pulse output to 0500 using special utility relays 2104 to 2107 and 2108 to 2111. The example on the left sets special utility relays to enable direct output to 0500 (2104: OFF), and turn 0500 output ON at CTC0 (2106: ON) and OFF at CTC1 (2109: ON). Turns ON special utility relay 2103 to clear CTH0 using CTC0. This allows output with correct clock pulse width starting from the 1st pulse. Enables interrupt using the EI instruction. Stops clock pulse using interrupt program (INT CTC2) when the current value of High-speed counter CTH1 reaches the setting value of high-speed counter comparator CTC2 (when 10000 pulses are output). Turns ON special utility relay 2203 to clear CTH1 using CTC2. This allows program to operate repeatedly at the specified pulse count (10000 pulses). Always turns ON 2813 when counting pulses using high-speed counter CTH1. Input relay which enables CTH0 remains ON during clock pulse output. Input relay which enables CTH1 remains ON during clock pulse counting. Specifies internal clock (2101) for clock input of high-speed counter CTH0. Specifies 0500 for clock input of high-speed counter CTH1. Then, CTH0 is used for clock pulse output and CTH1 is used for clock pulse counting. Sets the clock pulse count using the setting value of high-speed counter comparator CTC2. Turns ON input relay 0000 to start clock pulse output. To restart clock pulse output after once stopped, turns ON input relay 0000 again.

Chapter 6 Interrupts, High-speed Counters, Positioning Control

3-291

KV-300

1 6

KV-10/80

6.2 High-speed Counters


Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 Instruction LD EI CON MPS SET CON RES CON SET CON SET CON RES MRD RES CON SET CON RES CON RES CON RES MPP CTH0 2111 2110 2109 2108 2107 2106 2105 2104 2103 Operand 2008 Line No. 0024 0025 0026 0027 0028 0029 0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 0040 0041 0042 0043 0044 0045 0046 Instruction SET CON SET CON RES LD DIFU CON AND RES LD CTH CTC CTC LD CTH CTC END INT LD SET RETI ENDH CTC2 2002 2105 1000 2105 2002 0 2101 0 #00050 1 #00020 2002 1 0500 2 #10000 CTH1 0000 1000 2813 Operand 2203

KV-300

KV-10/80

0008 0009 0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 0020 0021 0022 0023

Special utility relays 2103 to 2111 can be set to turn ON or OFF using LDA and STA instructions as well as SET and RES instructions. Example below illustrates how one program can be made shorter using LDA and STA instructions.

2008 EI

2103 SET 2108 RES 2203 SET

2104 RES 2109 SET 2813 SET

2105 SET 2110 RES CTH1 RES

2106 SET 2111 RES

2107 RES CTH0 RES

2008 EI

$0268 $2100 LDA STA

CTH0 RES

2203 SET

2813 SET

CTH1 RES

LDA $0268 When LDA $0268 is executed, the following data is input to the internal register.
[0] Internal register 0 0 0 0 0 [2] 0 1 0 0 [6] 1 1 0 1 [8] 0 0 0

Internal register When STA 2100 is executed, the data in the internal register is assigned to 16 special utility relays starting from 2100 to 2115.
Special utility relays 21** 15 0 14 0 13 0 12 0 11 0 10 0 09 1 08 0 07 0 06 1 05 1 04 0 03 1 02 0 01 0 00 0

Thus, 2103, 2105, 2106, and 2109 are ON.

3-292

Chapter 6 Interrupts, High-speed Counters, Positioning Control

6.2 High-speed Counters

Example of pulse output (Ramp-up/down control)


The following example performs ramp-up/down control as shown below by setting 4 parameters (DM0000 to DM0003). Connection example The following chart shows an operation example when the KV-300 CPU is connected to the stepping motor driver. See the stepping motor driver instruction manual for details. Set the pulse input mode of the stepping motor driver to "1 pulse input mode".
Re ve rs rt e

KV-300

24 VDC

Stepping motor driver Twisted pair cable

COM 1 0000 11 0001 2 0500 0501 0502 0503 COM 7 8 9 10 20

CW (pulse) CCW (rotating direction) Stepping motor 24 VDC

FG

Frequency (Hz) fH (DM0000) Acceleration rate (DM0002) fL (DM0001) 0 10 ms Acceleration change time Acceleration time Constant rate time Deceleration time

Positioning pulse total count (DM0003)

Time (ms)

Setting parameters DM0000: fH [Hz] (Run frequency) 153 Hz to 50000 Hz fH must be greater than fL. DM0001: fH [Hz] (Start frequency) DM0002: Acceleration rate [Hz/10 ms] (fH-fL) (Acceleration time 10 ms) DM0003: Positioning pulse count 65534 pulses max.

CAUTION

Although smoother trapezoidal control can be obtained by setting a smaller acceleration rate, the acceleration time is extended. Be sure to turn OFF input relay 0007 (phase B input).

Operation This program sets the parameters as below: DM0000 = 8000 [Hz], DM0001 = 700 [Hz], DM0002 = 400 [Hz/10 ms], DM0003 = 4000 pulses The program performs trapezoidal control as shown above when start switch 0000 is pressed, and stops control when pulse count reaches 4000. The program restarts operation by re-pressing the start switch. It performs reverse operation while reverse switch 0001 is ON.

Chapter 6 Interrupts, High-speed Counters, Positioning Control

3-293

KV-300

Sta

1 6

KV-10/80

6.2 High-speed Counters


Programming exmaple
0001 INITIAL SETUP FOR HIGH-SPEED COUNTER/COMPARATOR 2002 0002 #00010 CTC1 #65535 CTC2 2008 0004 #08000 DW DM0000 #00700 DW DM0001 #65535 CTC0 #65535 CTC3 #00400 DW DM0002 #04000 DW DM0003 CTH0 2100 CTH1 0500 2813 2105 (SET ) (SET )

Generates clock pulse through highspeed counter CTH0. Counts clock pulese through highspeed counter CTH1. CTC0: Pulse cycle CTC1: Pulse width CTC2: Frequency change point CTC3: Positioning pulse total count Sets parameters (DM0000 to DM0003).

0003

0005

STARTS POSITIONING 0003 0000 1001 DIFU 1001

KV-300

KV-10/80

0006

0007 $0268 LDA 0001 0009 2100 STA 01 CALL 1200 CTH1 CTH0 (SET ) (RES ) (RES ) 2105 (RES ) 0502 ( )

0008

EI

Reverse output

0010

EMERGENCY STOP 0003 2105 (SET) END

0011

0012

0013

CTC0,CTC2,DM0011, CALCULATION SUBROUTINE SBN 02 2002 #01000 LDA #00010 LDA #10000 MUL #10000 MUL DM0012 DIV DM0010 DIV #00005 ADD #00005 ADD #00010 DIV #00010 DIV CTC0 STA DM0011 ADD DM0010 STA CTC2 STA DM0011 STA RET

0014

Emergency stop Sets CTC0. Setting value of CTC0 = 1 DM0012 x 103 x 103 6.4

0015

0016

0017

Sets CTC2. DM0010: Pulse cycle T (s) x 10 DM0011: Accumulated pulse count DM0012: Current frequency f [Hz] 1200: Acceleration flag

0018

INITIALIZING SUBROUTINE SBN 01 2002 DM0003 LDA CTC3 STA #00002 DIV DM0004 DM0001 DM0012 STA LDA STA #00000 DW DM0011 02 CALL RET

0019

0020

0021

0022

RAMP UP/DOWN CHECK ROUTINE SBN 03 2002 DM0012 LDA #00100 DIV DM0011 DM0004 ADD CMP

0023

0024

3-294

Chapter 6 Interrupts, High-speed Counters, Positioning Control

6.2 High-speed Counters

RET 0025 0026 INTERRUPT ROUTINE FOR SPEED-UP/SLOW-DOWN INT CTC2

0027 0028 SPEED-UP 1200 0029 0030 2011 DM0003 DM0011 LDA SUB 1201 0032 0033 0034 0035 SPEED-UP 1200 DM0012 DM0002 DM0012 DM0001 LDA SUB STA CMP 2011 02 CALL 02 CALL #65535 LDA CTC2 STA 1200 (RES ) DM0012 DM0002 DM0012 DM0000 LDA ADD STA CMP 2011 03 CALL 2011 02 CALL 1201 ( ) CTC2 STA

2011

0031

DM0011 STA

2011

RETI 0036 0037 0038 2002 0039 0040 ENDH 0041 INTERRUPT FOR PULSE STOP INT CTC3 2105 (SET ) RETI

Subtracts the acceleration rate from the current frequency to change frequency whenever CTC2 turns ON while acceleration flag 1200 is OFF. When the current frequency reaches fL, stops deceleration and initializes the settings.

When pulse count of clock pulses equals the setting value of CTC3, stops clock pulse output.

Chapter 6 Interrupts, High-speed Counters, Positioning Control

3-295

KV-300

1 6

KV-10/80

Adds the acceleration rate to the current frequency to change frequency whenever CTC2 turns ON while acceleration flag 1200 is ON. When the current frequency reaches fH, stops acceleration and sets the deceleration pulse count.

6.3 Positioning Control

6.3 Positioning Control


6.3.1 Positioning Control (Ramp-up/down Control)
Outline of positioning control
The KV-300 CPU outputs clock pulses, independent of scan time, directly through output relay 0500 or 0501. When the clock pulse frequency, output pulse count, and acceleration/deceleration time are set to the data memory addresses in advance, the KV-300 CPU automatically performs ramp-up/down control. Output frequency can be set within the range of 153 Hz to 50000 Hz.

KV-300

KV-10/80

Frequency (Hz)

Operation

Start

Output pulse count

Acceleration time

Deceleration time

Time (ms)

With this function, ramp-up/down control over stepper motors and AC servo motors (pulse input type) becomes possible. The following section describes setting and application of positioning control parameters.

Clock pulse

6
0500 0501 0502 0503

Rotation direction Lo : CW Hi : CCW Stepping motor /servo motor

KV-300

Motor driver

3-296

Chapter 6 Interrupts, High-speed Counters, Positioning Control

6.3 Positioning Control

Setting and application of parameters


This section describes how to set and apply parameters for positioning control.

Setting parameters
Set the parameters to the assigned data memory addresses. To operate the positioning control function, the special utility relays must be set. Refer to page 3-299. The following table shows the parameters and assigned DM Nos.
DMNo. DM9407 X-axis (0500) DM9408 DM9409 DM9410 DM9411 DM9412 Y-axis (0501) DM9413 DM9414 DM9415 DM9416 DM9417 Parameter Set value error code 0500 Start frequency (Hz) 0500 Run frequency (Hz) 0500 Acceleration/deceleration time (ms) 0500 Output pulse count (high-order 16 bits) 0500 Output pulse count (low-order 16 bits) 0501 Start frequency (Hz) 0501 Run frequency (Hz) 0501 Acceleration/deceleration time (ms) 0501 Output pulse count (high-order 16 bits) 0501 Output pulse count (low-order 16 bits) Allowable setting range Code 11 to 17 or FFFF (-1) is entered when error occurs 153 to 50000 153 to 50000 0 to 4096 0 to 65535 0 to 65535 153 to 50000 153 to 50000 0 to 4096 0 to 65535 0 to 65535

Note: Refer to the following expression to determine the output pulse count. Output pulse count < (65535 x pulse change cycle [ms]) (1000 x run frequency [Hz]) Pulse change cycle (t) The pulse change cycle is the cycle in which the output clock pulse frequency is changed for acceleration or deceleration. The pulse change cycle is obtained from one of the following expressions, whichever produces the smaller solution. However, when the start pulse is less than 500 Hz, the pulse change cycle becomes 14 ms or more. Pulse change cycle (t) [ms] = (acceleration time [ms] + 199) 200 x 4 or Pulse change cycle (t) [ms] = 1000 (run frequency [Hz] 1000)
Run

Start

Acceleration/ deceleration time

Chapter 6 Interrupts, High-speed Counters, Positioning Control

3-297

KV-300

1 6

KV-10/80

6.3 Positioning Control


Set value error code Automatically writes an error code (11 to 17) into DM9407 when a parameter setting error is found at startup.
Code 11 12 13 Error description Start frequency is below allowable range. Run frequency is below allowable range. Run/start frequency exceeds allowable range. Start frequency is greater than run frequency. Acceleration/deceleration time exceeds allowable range. Too many pulses are output during acceleration/deceleration time. Too few pulses are output during acceleration/deceleration time. Other calculation error Corrective action Adjust start frequency to within allowable range (153 to 50000). Adjust run frequency to within allowable range (153 to 50000). Adjust run/start frequency to within allowable range (153 to 50000). Reduce start frequency to less than run frequency. Adjust acceleration/deceleration time to within allowable range (0 to 4096). Change the parameters. Set 2 or more as value for output pulse count. Change the parameters.

KV-300

KV-10/80

14 15 16 17 FFFF

Corrective action for error code 16 Error code 16 is issued when the output pulse count during acceleration/deceleration time exceeds other values calculated from the preset parameters. To recover from the error, the following corrective actions are available. Change the run frequency and/ or the acceleration/ deceleration time according to the following expression. 65535 Run frequency x Pulse change cycle x 65535 1000

Corrective action for error code FFFF (-1) Reduce run frequency and start frequency. Reduce accelleration/ deccelleration time.

Start frequency (Hz) Sets a start frequency (speed) to start the motor rotation smoothly during positioning control. The KV-300 CPU outputs clock pulses at the specified frequency. Run frequency (Hz) Sets the motor frequency (speed) during positioning control. The KV-300 CPU outputs clock pulses at the specified frequency. Note: When the start frequency equals the run frequency, the system operates as shown in the following chart.
Preset frequency 0

Here, the acceleration/deceleration time is ignored. The output count should be less than 65535.

3-298

Chapter 6 Interrupts, High-speed Counters, Positioning Control

6.3 Positioning Control


Acceleration/deceleration time (ms) Sets the time required when the start frequency accelerates to the run frequency at startup. In the same manner, sets the deceleration time required at stop. The KV300 CPU controls the clock pulse frequency from the start frequency to the run frequency within the specified time. The pulse change cycle within the acceleration time is obtained from one of the following expressions, whichever produces the smaller solution. However, the pulse change cycle when the start pulse is less than 500 Hz becomes 14 ms or more. Pulse change cycle (t) ms = (acceleration time ms + 199) 200 x 4 or Pulse change cycle (t) ms = 1000 (run frequency Hz 1000) Output pulse count Sets the positioning control rotation angle (moving distance) with the pulse count. The KV-300 CPU outputs as many clock pulses as specified. If the output pulse count is greater than 65535, set the pulse count separately for high-order 16 bits and low-order 16 bits based on the following expressions. (Output pulse count) 65536 = A (solution) B (remainder) A = Output pulse count (high-order 16 bits) B = Output pulse count (low-order 16 bits) Note: When the specified output pulse count is insufficient and does not reach the target value, the KV-300 CPU performs triangular control.
Run frequency Start frequency 0

The current pulse output value cannot be checked.

Procedure
When the positioning control function is used, the KV-300 CPU controls start, stop, and emergency stop by turning ON/OFF the utility relays. The table below shows the operations and assigned utility relays.
Relay No. 0500 2308 2309 0501 2311 2312 W R W W STOP RUN RESET START Decelerates at rising (UP) edge and stops. Turns ON during pulse output. Immediately stops when turning ON during interrupt program. Starts at rising (UP) edge. R/W Function Description

2310

2313

Chapter 6 Interrupts, High-speed Counters, Positioning Control

3-299

KV-300

1 6

KV-10/80

6.3 Positioning Control


Operation chart (when 0500 is used)
DM9409 DM9408 0 DM9410 DM9411 DM9412 DM9410 DM9408: Start frequency (Hz) DM9409: Run frequency (Hz) DM9410: Acceleration time (ms) DM9411: Output pulse count (high-order 16 bits) DM9412: Output pulse count (low-order 16 bits) When 2310 turns ON, clock pulse is output. (rising [UP] edge is detected.) 2309 is ON during clock pulse output. When pulse output is stopped, 2309 turns OFF. When turning ON 2308, clock pulse decelerates and stops (rising [UP] edge is detected.)

KV-300

2310 (START) 2309 (RUN) 2308 (STOP)

KV-10/80

Note 1: When special utility relay 2310 (2313) is turned ON at start of clock pulse, 2309 (2312) turns ON and the clock pulse is output, assuming parameter settings are correct. Note 2: If a parameter setting for the X-axis or Y-axis is incorrect, 2309 (2312) does not turn ON and an error code is written into DM9407. Check the error code and adjust the parameter setting. Note 3: By resetting 2309 (2312) within the interrupt program, you can stop the clock pulse immediately. You must reset 2309 within the interrupt program; otherwise, the clock pulse is not stopped. Note 4: Because the clock pulse is output under software control, the pulse width is extended by 10 s to 20 s in the pulse change cycle. Test the clock pulse output on the KV-300 system before using it in practical applications.

Examples of stepping motor control

Connection example The following reference example shows how to connect the KV-300 CPU to a stepping motor driver. Refer to the stepping motor driver instruction manual for details. Set the pulse input mode for the stepping motor driver to "Pulse input mode 1".
ys erg enc p Sto Em top

24 VDC KV-300

+
Stepping motor driver

Sta

rt

Twisted pair cable COM 0000 0001 0002 1 11 2 12 + CW (pulse) + CCW (rotation direction)

0500 0501 0502 0503 COM

7 8 9 10 20

Stepping motor 24 VDC

+
FG

3-300

Chapter 6 Interrupts, High-speed Counters, Positioning Control

6.3 Positioning Control

Ramp-up/down control
When start switch 0002 is turned ON, 0500 outputs 100000 pulses under the following conditions: start frequency 1 kHz, run frequency 5 kHz, and acceleration/ deceleration time 3 s. Turn ON 0001 to decelerate and stop pulse output. When 0000 is turned ON, pulse output is immediately stopped.
2008 0001 0002 0002 0001 0003 0004 0005 2002 0006 0007 0008 END INT 0000 2309 RES RET1 ENDH EI #01000 #05000 #03000 #00001 #34464 2310 DW DW DW DW DW DM9408 DM9409 DM9410 DM9411 DM9412 2308

Enables interrupt when starting operation. This is required to allow emergency stop operation. Sets parameters and simultaneously starts pulse. Decelerates and stops pulse.

Executes emergency stop sequence with interrupt progaram.

Application example of stepping motor control


Assume a program that can be controlled both automatically and manually. In automatic mode, the system runs as shown in the chart below after 0000 is turned ON.

8000 2000 300 0

15000

17500

15000

In manual mode, the system goes forward while 0008 is ON and rearward while 0009 is ON. It returns to the origin when 0007 turns ON. A pulse is output from 0500. Reverse the rotation direction by turning ON/OFF 0502. The system is equipped with an origin sensor (0002), forward end limit (0006), and rearward end limit (0004).

Chapter 6 Interrupts, High-speed Counters, Positioning Control

3-301

KV-300

1 6

KV-10/80

6.3 Positioning Control


Program example
0001 STEPPING MOTOR CONTROL PROGRAM (ORIGIN, FORWARD, REVERSE LIMITS)

0002

SPECIFICATION

0003 0004

PULUSE OUT==500 FOR/REV=502 ORIGIN=0002 FOR/END=0006 FOR/END=0004

MANUAL SW: FORWARD=0008 REVERSE=0009 ORIGIN SW=0007

0005

AUTO OPERATION START=0000

KV-300

KV-10/80

0006

0007

ENABLES INTERRUPT & RESETS ORIGIN POSITIONING FRAG 2008 1200 (RES) < EI >

0008

0009 0010

MANUAL SWITCHES: FORWARD=0008 REVERSE=0009 0008 0009 2309 0502 (SET) 0502 (RES) 0006 1100 DIFU 1101 DIFU #00001 #00000 < DW > < DW > DM9411 DM9412 1103 DIFU

Sets start frequency, run frequency, and acceleration/deceleration time. Start frequency: 600 Hz Run frequency: 4 kHz Acceleration/deceleration time: 100 ms Output pulse count: 65536

0009 0011 1100 0012 1101 0013 0008 0014

0008

2309

0004

#00600 #04000 #00100 < DW > < DW > < DW > DM9408 DM9409 DM9410

0009

1105 DIFU

To return to the origin, first goes forward and then rearward. Stops when origin limit (0002) turns ON. For forward operation, the following parameters are set: Start frequency: 300 Hz, Run frequency: 3 kHz, Acceleration/decekeratuib time: 250 ms, Output pulse count: 3500. For rearward operation, the following parameters are set: Start frequency: 50 Hz Run frequency: 500 Hz Acceleration/deceleration time: 0 ms Output pulse count: 65536

0015

* * * * * * * * * * * * * * * * * * * * * * * * * * ORIGIN * * * * * * * * * * * * * * * * * * * * * * * * * * * *

0016

LIMIT SWITCHES 0007 1205 DIFU

0017

6
0018 0019 FORWARD IN ADVANCE 1205 0502 (SET) #00300 #03000 #00250 < DW > < DW > < DW > DM9408 DM9409 DM9410 #00000 #03500 < DW > < DW > DM9411 DM9412 1300 DIFU 1200 (SET)

0020 0021

STOP FORWARDING 1200 2309 ON 1201 1201 2309 OFF 1202 1202 1203 DIFU

0022

POSITIONING ORIGIN WHILE REVERSING SLOWLY 1203 0502 (RES) #00500 #05000 #00000 < DW > < DW > < DW > DM9408 DM9409 DM9410 #00001 #00000 < DW > < DW > DM9411 DM9412 1301 DIFU 1200 (RES)

0023

3-302

Chapter 6 Interrupts, High-speed Counters, Positioning Control

6.3 Positioning Control


0024 STARTS MOTOR 1300 0025 1301 0026 1103 0027 1506 0028 2308 0004 0006 2310 ( )

Instructs motor start and acceleration/ deceleration stop.

0029

SLOW DOWN & STOP (MANUAL/AUTO) 0006 0009 2308 ( )

0004 0031 1105 0032

0008

0033 0034

* * * * * * * * * * * * * * * * * * * * * * * * AUTO OPERATION CH0 * * * * * * * * * * * * * * * * * * * *

STAGE INSTRUCTION START 2008 1400 (SET) 1408 DIFU 1408 1401 (RES) 1402 (RES) 1403 (RES) 1400 (SET)

0035 2308 0036

0037

AUTO START (OPERATES DURING 0000 IS TURNED ON) 1400 STG 0000 1401 JMP

0038

Creates each of the operation programs with the STG instruction and makes the programs ready in the specified order. Sets the parameters for automatic mode. (1) Start frequency: 300 Hz Run frequency: 8 kHz Acceleration/deceleration time: 150 ms Output pulse count: 15000 (2) Start frequency: 300 Hz Run frequency: 2 kHz Acceleration/deceleration time: 250 ms Output pulse count: 2500 (3) Start frequency: 300 Hz Run frequency: 15 kHz Acceleration/deceleration time: 250 ms Output pulse count: 17500 Stops pulse at the origin with the interrupt program.

0039

MOVES TO NEXT STAGE AFTER MOTOR STOPS 1401 STG 1402 STG 1403 STG 1407 (RES) 1405 (RES) 1406 (RES) #00010 T001 #00005 T002 #00005 T003 T001 1500 DIFU 1501 DIFU 1502 DIFU 2309 1405 2309 1406 2309 1407 1405 1402 JMP 1403 JMP 1400 JMP

0040

T002

1406

0041

T003

1407

0042 0043

AUTO OPERATION PARAMETER SET 1500 0502 (SET) 0502 (SET) 0502 (RES) #00300 #08000 #00150 < DW > < DW > < DW > DM9408 DM9409 DM9410 #00300 #02000 #00250 < DW > < DW > < DW > DM9408 DM9409 DM9410 #00300 #15000 #00250 < DW > < DW > < DW > DM9408 DM9409 DM9410 #00000 #15000 < DW > < DW > DM9411 DM9412 #00000 #02500 < DW > < DW > DM9411 DM9412 #00000 #17500 < DW > < DW > DM9411 DM9412 1503 DIFU 1504 DIFU 1505 DIFU

1 6

0044 1501 0045 1502 0046 STARTS MOTOR 1503 0048 1504 0049 1505 0050

0047

1506 ( )

END 0051

0052

INTERRUPT FOR EMERGENCY STOP (POSITIONING ORIGIN) INT 0002 1200 0008 0009 0000 2309 ( RES ) RETI

0053

0054 0055

ENDH 0056

Chapter 6 Interrupts, High-speed Counters, Positioning Control

3-303

KV-10/80

0030

KV-300

6.3 Positioning Control

KV-300

KV-10/80

3-304

Chapter 6 Interrupts, High-speed Counters, Positioning Control

Chapter 7
Serial Communication
The KV Series can be connected to an external device with an RS-232C interface to establish communication. This chapter describes communications specifications, how to connect the KV Series to external devices, and how to perform communication. 7.1
7.1.1 7.1.2 7.1.3

Communications Specifications ............................................ 3-306


Communications Specification ............................................................... 3-306 Connection with the KV Unit .................................................................. 3-306 Connecting the KV-300 CPU to a Personal Computer .......................... 3-307

7.2
7.2.1 7.2.2 7.2.3 7.2.4 7.2.5 7.2.6 7.2.7

Serial Communication ............................................................. 3-308


Command Transmission Procedure ....................................................... Format of Commands/Responses ......................................................... Communication Command/Response List ............................................. Setting Communication Commands and Responses to Commands ..... Other Response Codes .......................................................................... Error Code List ....................................................................................... Example Program .................................................................................. 3-308 3-309 3-310 3-311 3-315 3-316 3-317

7.3
7.3.1 7.3.2 7.3.3

Loading Text Data .................................................................... 3-318


Receiving Text Data ............................................................................... 3-318 Transmitting Text Data ........................................................................... 3-319 Sample Program .................................................................................... 3-320

7.4

ASCII Code List ........................................................................ 3-321

7.1 Communications Specifications

7.1 Communications Specifications


This section describes the specifications for the RS-232C interface and the connection between the KV and external devices.

7.1.1 Communications Specification


The communications specification of the KV is summarized in the table. Set the communications parameters of the personal computer by referring to the table. Communications parameters
Duplex Synchronization Data format Baud rate Data length Parity check Stop bit length Delimiter Full Start/stop ASCII 9,600 bps 8 bits Even 1 bit CR

Note 1: Be sure to specify the same communication parameters for the KV and any external devices to be connected. Communication will fail if different parameters are used. Note 2: Refer to the instruction manual supplied with each device when setting communications parameters on the device.

7.1.2 Connection with the KV Unit


Use the special connection cable (Straight cable: OP-26487, Reverse cable: OP96607) and a 25-pin D-sub connector (OP-26485) to connect the KV to the RS-232C connector of the external device.

Communication port B Communication port A

KV

External device with RS-232C connector

Note: The KV-10xx and KV-10/80 Series include only communication port A. Wiring diagram The following is the wiring diagram for the RS-232C cable. Be sure to use the special connection cable to connect the KV with each device.
KV
SD RD SG 3 5 4

Device designated as modem


2 3 7 4 5 6 20 SD RD SG RS CS DR ER

KV
SD RD SG 3 5 4

Device designated as terminal


2 3 7 4 5 6 20 SD RD SG RS CS DR ER

Connection cable (Reverse: OP-96607)

Connection cable (Straight: OP-26487)

Pin assignment for the KV

25-pin D-sub connector (OP-26485)

25-pin D-sub connector (OP-26485)

3-306

Chapter 7 Serial Communication

7.1 Communications Specifications

7.1.3 Connecting the KV-300 CPU to a Personal Computer


Connect the KV-300 CPU to the RS-232C port of the personal computer with the supplied connecting cable (OP-226486/OP-26487).

Connecting cable Standard cable:OP-26486 KV-300

9-pin D-SUB female connector: OP-26487

Personal computer with an RS-232C port

Recommended pin assignments for the RS-232C communication cable are shown below. When connecting the KV-300 CPU, use only the connecting cable supplied.
SD RD

KV-300 3 5

23

45

SG

DCE 2 3 4 5 6 20 7

SD RD RS CS DR ER SG

SD RD

KV-300 3 5

SG

DTE 2 3 4 5 6 20 7

SD RD RS CS DR ER SG

Pin assignments for the KV-300 CPU

Standard cable (OP-26486 + OP-26487)


SD RD SG 3 5 4 2 3 4 5 6 7 8

Modular Connector

9-pin D-sub connector

1 7

Chapter 7 Serial Communication

3-307

7.2 Serial Communication

7.2 Serial Communication


When the KV is connected to a personal computer, the current value or preset value of timers/counters or contents of data memories in the KV can be loaded to and modified on the computer.

7.2.1 Command Transmission Procedure


Commands are transmitted from a personal computer to the KV base unit as follows:
Transmits a break signal

Initialize the communication buffer and baud rate setting of the KV.

Transmits communications start command (CR)

Transmits a command

Receiving a response

Transmits communications end command (CQ)

Transmitting a break signal A break signal is used to initialize the communication buffer and baud rate setting of the KV. It is necessary to transmit a break signal of 100 ms or longer to the KV before starting communication. Another break signal is unnecessary once the communication is established. A break signal must have the waveform shown below.
+V SD -V
10 ms or longer 100 ms or longer

Note 1: For the first serial communication with a personal computer after the KVP3E(01) handheld programmer is connected to the KV, or after the "KV IncrediWare (DOS)" or "LADDER BUILDER for KV" programming support software is evoked, be sure to transmit a break signal. A break signal is unnecessary at other times. Note 2: If you cannot transmit a break signal, turn OFF the KV once to initialize the communication program. After that, restart communication between the KV and the personal computer. Note 3: Be sure to stop the communication for 10 ms or longer after transmitting a break signal.

Start communications with the KV.

Transmit a command which instructs the KV to perform the required operation.

Receive and check the response to the transmitted command.

End communications with the KV.

3-308

Chapter 7 Serial Communication

7.2 Serial Communication


Command/response format "Command" and "response" in communications between the KV and a personal computer are defined as follows: Command: Message transmitted from personal computer to KV Response: Answer to the command (message from KV to personal computer) When a personal computer transmits a command to the KV Series basic unit, the KV sends back a response to the personal computer. When creating a program to control the KV using a personal computer, create it so that the response is checked before the next command is transmitted.

7.2.2 Format of Commands/Responses


The formats of commands and responses are as follows: Command format Use the following format to transmit commands from the personal computer to the KV. [CR] is a delimiter. The KV ignores [LF] and recognizes the next character after [LF] as the next command.
Command Or Command C C R R L F

Response format The KV sends back a response to the received command in the following format. When creating a program using a personal computer, create it so that the personal computer can process the response in this format.
Response C R L F

1 7

Chapter 7 Serial Communication

3-309

7.2 Serial Communication

7.2.3 Communication Command/Response List


The following list shows the commands and responses used in serial communication. "_" in the list represents a space.
Function Starts communication. Ends communication. Changes mode. Clears error. Checks PLC error. Checks current PLC mode. Counter High-speed counter CTH CR CQ Mn ER ?E ?M RD_Cnnn RD_CTHn f, ddddd, ddddd
(Current value) (Preset value)

Command CC CF OK OK dd f

Response

Description

n= 0: PROGRAM mode 1: RUN mode dd= Error code (00: No error) f= 0: PROGRAM mode 1: RUN mode

High-speed counter RD_CTCn comparator CTC

f= 0: Contact OFF, 1: Contact ON dddddd= 00000 to 65535 (in decimal) n/nnn= Counter No.

Reads

Timer

RD_Tnnn

f, ddddd, ddddd
(Current value) (Preset value)

f= 0: Contact OFF 1: Contact ON dddddd= 00000 to 65535 (in decimal) nnn= Timer No.

ddddd_ddddd_00000_00000

Digital trimmer

RD_AT

(Trimmer 0) (Trimmer 1)

dddddd= 00000 to 65535 (in decimal) Reads preset values of trimmer 0 and 1. f= 0: Contact OFF, 1: Contact ON dddddd= 00000 to 65535 (in decimal) nnnn= DM No.

Relay contact Data memory

RD_nnnnn RD_DMnnnn

f ddddd

Temporary data RD_TMnn memory Counter current value Timer current value CTH current value Writes Counter preset value 2. Timer preset value 2. CTC preset value 2. Data memory WR_Cnnn_ddddd WR_Tnnn_ddddd WR_CTHn_ddddd WS_Cnnn_ddddd WS_Tnnn_ddddd WS_CTCn_ddddd WR_DMnnnn_ddddd

OK

n/nnn= Timer/counter No. dddddd= 00000 to 65535 (in decimal)

OK

n/nnn= Timer/counter No. dddddd= 00000 to 65535 (in decimal)

Temporary data WR_TMnn_ddddd memory Relay Forces ON ST_nnnnn

OK

dddddd= 00000 to 65535 (in decimal) nn,nnnn= DM No.

Counter contact ST_Cnnn Timer contact Relay ST_Tnnn RS_nnnnn

OK

nnnn= Relay No. nnn= Timer/counter No.

Counter contact RS_Cnnn Forces OFF Timer contact RS_Tnnn OK nnnn= Relay No. nnn= Timer/counter No. n= CTC No.

High-speed counter RS_CTCn comparator CTC contact

Note 1: Temporary data memories TM28, TM30, and TM31 are read-only. Values cannot be written into these memories. However, these memories can be used when special functions are not used. Note 2: Visual KV Series: When the preset values of timers and counters are changed using "WS", the ladder program in EEPROM is updated the next time the KV is turned on. KV-300, 10/80 Series: The "WS" command changes the content of the program stored in the PLCs EEPROM. Contact Keyence if you need to change it frequently.

3-310

Chapter 7 Serial Communication

7.2 Serial Communication

7.2.4 Setting Communication Commands and Responses to Commands


This section describes the command settings and responses when a command is properly processed. "_" represents a space. Refer to "7.2.5 Other Response Codes" (p. 3-315) for responses under abnormal conditions. Communications start command Transmit a communications start command to start communication with the KV. Other commands can be transmitted after the proper response is sent back from the KV. Note: Other commands cannot be used unless a [CR] (communications start) command is transmitted first. Starts communications between the KV and a personal computer. Command: CR Response: CC Communications end command Ends communications between the KV and a personal computer. Command: CQ Response: CF Mode change command Selects the mode between PROGRAM and RUN. Command: Mn [n=0; PROGRAM mode, n=1; RUN mode] Response: OK Error clear command Clears error messages on KV. Command: ER Response: OK Checking KV PLC error Checks errors or faults in the KV. The description of the error is indicated with the error code.
"7.2.6 Error Code List" (p. 3-316).

1 7

Command: ?E Response: dd Error code (2- or 3-digit number) Checking current mode The KV responds with 0 or 1 indicating a current mode. Command: ?M Response: f 0: PROGRAM mode 1: RUN mode

Chapter 7 Serial Communication

3-311

7.2 Serial Communication


Reading counter Reads the contact ON/OFF status, or the current and preset values of the specified counter/up-down counter. Command: RD_Cnnn Counter No. Response: f,ddddd,ddddd [Preset value of the counter (00000 to 65535: in decimal)] [Current value of the counter (00000 to 65535: in decimal)] 0: Contact is OFF., 1: Contact is ON. Reading high-speed counter CTH Reads the contact ON/OFF status, or the current and preset values of the specified high-speed counter CTH. Command: RD_CTHn High-speed counter No. (0 or 1) Response: f,ddddd,ddddd Preset value of CTH (00000 to 65535: in decimal) Current value of CTH (00000 to 65535: in decimal) 0: Contact is OFF., 1: Contact is ON. Reading high-speed counter comparator CTC Reads the contact ON/OFF status, or the current and preset values of the specified high-speed counter comparator CTC. Command: RD_CTCn High-speed counter comparator No. Response: f,ddddd,ddddd Preset value of CTC (00000 to 65535: in decimal) Current value of CTC (00000 to 65535: in decimal) 0: Contact is OFF., 1: Contact is ON. Reading timer Reads the contact ON/OFF status, or the current and preset values of the specified timer. Command: RD_Tnnn Timer No. Response: f,ddddd,ddddd Preset value of timer (00000 to 65535: in decimal) Current value of timer (00000 to 65535: in decimal) 0: Contact is OFF., 1: Contact is ON. Reading digital trimmer Reads the preset values of the digital trimmers. Command: RD_AT Response: ddddd_ddddd_00000_00000 Value of trimmer 1 (00000 to 65535: in decimal) Value of trimmer 0 (00000 to 65535: in decimal) Reading relay contact Reads the contact ON/OFF status of the specified relay. Command: RD_nnnn Relay No. Response: f 0: Contact is OFF., 1: Contact is ON.

3-312

Chapter 7 Serial Communication

7.2 Serial Communication


Reading DM Reads the contents of the specified data memory. Command: RD_DMnnnn Data memory No. Response: ddddd Data in the specified data memory. (00000 to 65535: in decimal) Reading TM Reads the contents of the specified temporary data memory. Command: RD_TMnn Temporary data memory No. (00 to 31) Response: ddddd Data in the specified temporary data memory. (00000 to 65535: in decimal) Writing current value of counter Changes the current value of the specified counter or up-down counter. Command: WR_Cnn_ddddd New current value (00000 to 65535: in decimal) Counter No. Response: OK Writing current value of timer Changes the current value of the specified timer. Command: WR_Tnnn_ddddd New current value (00000 to 65535: in decimal) Timer No. Response: OK Writing current value of high-speed counter CTH Changes the current value of the specified high-speed counter CTH. Command: WR_CTHn_ddddd New current value (00000 to 65535: in decimal) High-speed counter No. Response: OK Writing preset value of counter Changes the preset value of the specified counter or up-down counter. Command: WS_Cnnn_ddddd New preset value (00000 to 65535: in decimal) Counter No. Response: OK
Note: Executing this command changes the program in the KV. The program in EEPROM is automatically updated the next time the KV is turned ON.

1 7

Writing preset value of timer Changes the preset value of the specified timer. Command: WS_Tnnn_ddddd New preset value (00000 to 65535: in decimal) Timer No. Response: OK
Note: Visual KV Series: Executing this command changes the program in the KV. The program in EEPROM is automatically updated the next time the KV is turned ON. KV-300, 10/80 Series: The "WS" command changes the content of the program stored in the PLCs EEPROM. Contact Keyence if you need to change it frequently.

Chapter 7 Serial Communication

3-313

7.2 Serial Communication


Writing preset value of high-speed counter comparator CTC Changes the preset value of the specified high-speed counter comparator CTC. Command: WS_CTCn_ddddd New preset value (00000 to 65535: in decimal) High-speed counter comparator No. Response: OK Writing into DM Writes data into the specified data memory. Command: WR_DMnnnn_ddddd New current value (00000 to 65535: in decimal) Data memory No. Response: OK Writing into TM Writes data into the specified temporary data memory. TM30 and TM31 are readonly memories, so values cannot be written to them. Command: WR_TMnn_ddddd New current value (00000 to 65535: in decimal) Temporary data memory No. (00 to 29) Response: OK Forcing relay ON Forces the contact of the specified relay to ON. Command: ST_nnnnn Relay No. Response: OK Forcing counter contact ON Forces the contact of the specified counter to ON. Command: ST_Cnnn Counter No. Response: OK

Forcing timer contact ON Forces the contact of the specified timer to ON. Command: ST_Tnnn Timer No. Response: OK Forcing relay OFF Forces the contact of the specified relay to OFF. Command: RS_nnnnn Relay No. Response: OK Forcing counter contact OFF Forces the contact of the specified counter to OFF. Command: RS_Cnnn Counter No. Response: OK Forcing timer contact OFF Forces the contact of the specified timer to OFF. Command: RS_Tnnn Timer No. Response: OK

3-314

Chapter 7 Serial Communication

7.2 Serial Communication


Forcing CTC contact OFF Forces the contact of the specified high-speed counter comparator to OFF. Command: RS_CTCn High-speed counter comparator No. Response: OK Note 1: Input relays cannot be forced ON/OFF. (Except when special utility relay 2301 is ON.) Note 2: "_" in commands and responses represents a space.

7.2.5 Other Response Codes


If the command from a computer is an unspecified one, or an error occurs in the KV, the KV sends back an appropriate response code for the status.
Response code E0 Description Relay No. error Cause Undefined relay, counter, timer, DM, CTH, or CTC number was specified. Counter, timer, CTH, or CTC number, unused in a program was specified. E1 Command error Undefined command was transmitted. Incorrect command was specified. Command other than "CR" was transmitted before the communications path was established. E2 When the KV has no program Program unregistered stored, "M1" was transmitted or reading of timer/counter content was attempted. Base unit fault Hardware error was detected in a KV base unit. Transmit "CR" to start communications, and then transmit a command. Register a program into the KV. Check a program and specify the number used in the program. Turn off the power for the KV, and then turn it on again. If the cause of the error is not removed, the KV may be faulty. Contact your nearest KEYENCE office. Write-enable the program, and change the preset value. Remedy Specify a number that is defined in the KV being used. Check a program, and specify a number used in the program. Check a command.

E3

1 7

E4

Writeprotected

Attempt was made to change the preset value of a counter, timer, or CTC in a writeprotected program. "M1" was transmitted before cleaning an error message from the KV.

E5

Base unit error

Clear the error message from the KV, and remove the cause of the error.

Chapter 7 Serial Communication

3-315

7.2 Serial Communication

7.2.6 Error Code List


When a "Checking KV PLC error" command (?E) is transmitted, the KV sends back the error code. The following list shows the description, cause, and remedy for each error code.
Error code 00 10 11 12 13 Description No error CALL nest error FOR nest error INT nest error MPS nest error Subroutines are nested to four levels or more. These errors may occur when a program is executed. Cause Remedy

FOR/NEXT instructions are nested to Check the program while paying eight levels or more. particular attention to usage of subroutines and the INT instruction, Five levels or more of interrupts and restore the program accordingly. occurred simultaneously. MPS/MPP instructions are nested to eight levels or more. Content in RAM was erased. All data Turn the KV off once and turn it on. in data memory and current values of Register data from the beginning. counters in the KV were cleared. Scan time exceeds 300 ms. Check the program again.
Be sure that there is no excessive repetition using the FOR/NEXT loop. Be sure that an interrupt is not executed at a higher rate.

20

Memory error

30

Scan timer error

40 50 51 52 53 54

NO PROGRAM SND/RTN failure Division by zero Address error Invalid instruction Watchdog timer error

Attempt was made to operate a KV base unit which has no programs stored.

Write a program into KV.

Hardware error was detected in a KV Turn off the power for the KV, and base unit. then turn it on again. If the cause of the error is not removed, the KV may be faulty. Contact your nearest KEYENCE office.

3-316

Chapter 7 Serial Communication

7.2 Serial Communication

7.2.7 Example Program


Typical program for communications between the KV and a personal computer (For IBM PC-AT & compatible computers using BASIC)
Language Microsoft BASIC Version 7.0 *****I/OAddress (RS-232C Port-1)***** Port-1&H3F* Port-2&H2F* PortCtrl%=&H3FBCOM1 Port1Modem%=&H3FCMODEMCtrl PortBpsLow%=&H3F8BitrateLow PortBpsHigh%=&H3F9BitrateHigh *****ControlCode***** Port1CtrlCode1%=&H5BBreak&8bitEven1Stopbit Port1CtrlCode2%=&H1B8bitEven1Stopbit Note: No parity check is specified due to the *****InitializesRS-232C***** limitations of the version of BASIC being used. OPEN"COM1:9600,N,8,1"FORRANDOMAS#1' *****RS-232CPortInit***** OUTPortCtrl %,Port1CtrlCode1%Start transmitting a break signal SLEEP1wait 1 sec. OUTPortCtrl%,Port1CtrlCode2%Ends transmitting a break signal -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-******DebugPrint***** status=INP(&H3FE):PRINT"ModemStatus1";status status=INP(&H3FD):PRINT"LineStatus1";status *****SelfInit.***** linectrl=INP(PortCtrl%)ReadLine-Control-Register linectrl=linectrlOR&H80' OUTPortCtrl%,linectrlDLAB=ON OUTPortBpsLow%,12SetBitRate(9600BPS) OUTPortBpsHigh%,0' linectrl=linectrlAND&H7FDLAB=OFF OUTPortCtrl%,linectrl *****CtrlLine***** OUTPort1Modem%,&HBRTS,DTRON !! *****DebugPrint***** status=INP(&H3FE):PRINT"ModemStatus2";status status=INP(&H3FD):PRINT"LineStatus2";status -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-********************************************************** *****Transmitting a command/receiving a response***** ********************************************************* a$="" WHILEa $>"END" PRINT"Command>>": INPUTa$ PRINT#1,a $ b$="" LINEINPUT#1,b$ PRINT"RsP[";b$;"]" PRINT WEND PRINT"GoodBy!!" CLOSE#1 END

1 7

Change value in "SLEEP" timer according to your personal computers clock frequency so that value I exceeds 100 ms. Set the baud rate of your personal computer to 9600 bits/s. Enter END to terminate programming.

Note 1: MS-DOS executable files (KVCOM.EXE) and BASIC source code files (KVCOM.BAS) are included in the KV Incrediware (DOS) Software (KV-H4E, version 2.00 or higher). Note 2: Type in "KVCOM" and press ENTER to call the MS-DOS command line.

Chapter 7 Serial Communication

3-317

7.3 Loading Text Data

7.3 Loading Text Data


The KV can be connected to equipment having an RS-232C port to load consecutive text data (less than 100 bytes) as a batch into its data memories. Loaded data can be modified and incorporated into a program.

7.3.1 Receiving Text Data


The KV can write up to 100 bytes of text data sandwiched between STX and ETX, into internal data memories (DM1000 to DM1099 with communication port A, DM1200 to DM1299 with communication port B), one byte per data memory in ASCII code. Communications data format Note that each text data must include STX (02H) in the 1st byte followed by the text (100 bytes max.) and end with ETX (03H) in the last byte as shown below.
1st byte STX Text data (less than 100 bytes) Last byte ETX

Internal data memory The KV writes received text data into its data memories (DM1000 to DM1099 with communication port A, DM1200 to 1299 with communication port B), one byte per data memory in ASCII code.
NEW PO RT A KV Dat a PO RT B memory KV- 300 KV- 10/ 80 Dat a No. DM1000 DM1200 DM9200 DM1001 DM1002 DM1003 to DM1098 DM1099 DM1201 DM1202 DM1203 to DM1298 DM1299 DM9201 DM9202 DM9203 to DM9298 DM9299 Data 2 Data 3 to Data 98 Data 99

Byte count Data 1

The KV writes "00" into the high-order 8 bits and text data in ASCII code into the low-order 8 bits of the data memory.

7
Byte count of data Received data

STX Data 1 Data 2 Data 3


1st DM (Byte count of data)

Data 99 ETX

Data memory

2nd DM

3rd DM

4th DM

100th DM
00

15

Bits in data memory

High-order 8 bits (00)

Low-order 8 bits (ASCII code)

Note: The KV-10xx includes only communication port A. Special utility relay operation Three special utility relays assigned for each channel turn on for one scan to indicate that text data has been received or that data reception has failed.

3-318

Chapter 7 Serial Communication

7.3 Loading Text Data


Relay No. ( PO RT A) 2801 2802 2803 Relay No. ( PO RT B) 2806 2807 2808 Relay No. ( KV- 300/ 10/ 80) 2804 2805 2806 Descript ion Turns ON for one scan when text data has been received. Turns ON for one scan when text data has been received while 2801 is ON, or when 2803 is ON. Turns ON for one scan when text data reception has failed.

Note 1: Be sure to transmit a break signal for the first serial communication with a personal computer after the KV-P3E(01) handheld programmer is connected to the KV, or after the "KV IncrediWare (DOS)" or "LADDER BUILDER for KV" programming support software is evoked. A break signal initializes the communication setting for the KV. If you cannot transmit a break signal, turn the KV OFF once to initialize the communication setting. The KV will not receive text data unless its communication setting has been initialized. Note 2: If [ETX] exists at some point in the text data, the KV writes the data before [ETX] into the data memory. The data after [ETX] is not written. Note 3: If KV receives text data while special utility relay 2804 (2809)*1 is ON, the received data is not written into the data memory. In this case, special utility relay 2802 (2807)*2 turns ON for one scan. Note 4: When parity errors or other errors occur during text data reception, the received data is not written into the data memory. In this case, special utility relays 2802 (2807) and 2803 (2808)*3 turn ON for one scan. Note 5: The KV-10xx includes only communication port A.
*1: 2804 with KV-300/10/80 *2: 2805 with KV-300/10/80 *3: 2806 with KV-300/10/80

7.3.2 Transmitting Text Data


The KV transmits text data written into its data memories (DM1100 to DM1199 for communication port A, DM1300 to DM1399 for communication port B), one byte per data memory in ASCII code. Transmission data format and internal data memories When transmitting data from the KV, write the data into the data memory in the following format.
PO R T A Dat a PO R T B memory KV- 300/ 10/ 80 Dat a No. DM1100 DM1300 DM9300 Byte count DM1101 DM1301 DM9301 Data 1 DM1102 DM1302 DM9302 Data 2 DM1103 to DM1198 DM1199 DM1303 to DM1398 DM1399 DM9303 to DM9398 DM9399 Data 3 to Data 98 Data 99

1 7

The KV writes "00" into the high-order 8 bits and text data in ASCII code into the low-order 8 bits of the data memory.
High-order 8 bits (00)
15

Low-order 8 bits (ASCII code)


00

Data memory bits

Data memory

1st DM (Byte count of data)

2nd DM

3rd DM

4th DM

100th DM

Transmitted data

Data 1 Data 2 Data 3

Data 99

Note: The KV-10xx includes only communication port A.

Chapter 7 Serial Communication

3-319

7.3 Loading Text Data


Special utility relay operation Two special utility relays are assigned for each channel for data transmission. Text data or a break signal is transmitted when the respective relay is turned ON/OFF.
Relay No. (Port A) 2804 2800 Relay No. (Port B) 2809 2805 Relay No. (KV-300/10/80) 2807 2803 Description Starts/stops transmitting text data. ON: Start, OFF: Stop Starts/stops transmitting break signal. ON: Start, OFF: Stop

Note 1: Be sure to transmit a break signal for the first serial communication with a personal computer after the KV-P3E(01) handheld programmer is connected to the KV, or after the "KV IncrediWare (DOS)" or "LADDER BUILDER for KV" programming support software is evoked. A break signal initializes the communication setting for the KV. If you cannot transmit a break signal, turn the KV OFF once to initialize the communication setting. The KV will not transmit/receive text data unless its communication setting has been initialized. Note 2: Turn ON special utility relay 2804 (2809) (SET 2804 [2809])*1 to transmit text data. Special utility relay 2804 (2809)*1 remains ON during text data transmission, and automatically turns OFF when the transmission completes. To forcefully stop the text data transmission, turn OFF special utility relay 2804 (2809) (RES 2804 [2809])*1. Note 3: A break signal is transmitted while special utility relay 2808*2 is turned ON. Use the SET-RES instruction pair or OUT-OUB instruction pair to control a break signal. The communication program of the destination KV is initialized after a break signal has been transmitted.
*1: 2807 with KV-300/10/80 *2: 2803 with KV-300/10/80

7.3.3 Sample Program


The following is the sample program to transmit/receive text data using communication port A on the KV basic unit. Data to be transmitted: KEYENCE Transmission header: STX Transmission delimiter: ETX Length of received data: Fixed to 7 bytes

0001 0002

Sends break signal (1 sec.).


2008 T000 2800 #00010 T000

One scan ON 2800


0003

Break signal
0004 0005 0006 0007 0008 0009 0010

When power is turned ON, transmits a break signal for one second during the first scan.

Transmits text data ("STX KEYENCE ETX").


0000 1001 DIFU Transmission start relay 1001 #00009 $0002 $004B $0045 $0059 $0045 DW DW DW DW DW DW DM1100 DM1101 DM1102 DM1103 DM1104 DM1105 No. of STX K E Y E transmitted data $004E $0043 $0045 $0003 2804 DW DW DW DW SET DM1106 DM1107 DM1108 DM1109 Transmission N C E ETX relay

Transmits text data when input relay 0000 turns ON.

Receives text data.

DM1000 DM1001 DM1002 DM1003 DM1004 DM1005 DM1006 DM1007 2801 LDA LDA LDA LDA LDA LDA LDA LDA Reception relay No. of Received Received Received Received Received Received Received data data data data data data 2803 T001 received data. data 0500

Receives text data. Turns ON output relay 0500 for 3 seconds when reception error occurs.

Reception error 0500


0011 0012

#00030 T001 END ENDH

0013

3-320

Chapter 7 Serial Communication

7.4 ASCII Code List

7.4 ASCII Code List


The following are the ASCII code characters used for data transmission.

High-order 4 bits

0 0 1 2 3 4 5
Low-order 4 bits

6 7 8 9 A B C D E F

1 7

Characters in the shaded area can be used for data transmission with the KV. [STX], [ETX], [LF], and [CR] are used as data delimiters. Only use characters in the shaded area because the other characters are used for control purposes.

Chapter 7 Serial Communication

3-321

7.4 ASCII Code List

3-322

Chapter 7 Serial Communication

Chapter 8
Programming Examples
This chapter describes the typical programming examples for KV-300, KV-10/80 Series. These programs can be used for Visual KV Series. However, pay attention to the I/O addressing compatibility before use. 8.1 8.2
8.2.1

List ....................................................................................................... 3-324 Details ................................................................................................. 3-326


Reference Program Examples ............................................................... 3-326

8.1 List

8.1 List
Instruction TMR, TMH, TMS [Timers] Program title One-shot circuit Off-delay circuit On-delay circuit Flicker circuit C [Counter] Accumulator timer Large capacity counter Multi-level Up/Down counter Counter multi-level setting DIFU, DIFD KEEP SFT One-shot circuit Detection of packs on conveyor Alternating circuit Repeat shift circuit Asynchronous shift register Resetting internal utility relays HSP MC-MCR W-UE STG-JMP STP-STE ITVL CTH [High-speed counter] High-speed fetching of input data Emergency stop circuit Input sequence check Fork lift truck IN/OUT judgement Enabling double coil Conditional branching Process progression Pulse interval measurement Fetching data from KV-AN6 High-speed counter multi-level setting High-speed counter current value clear Input of phase differential signal SBN [Sub-routine] FOR-NEXT HKEY TMIN [Analog timer] DM shift Transfer of a block of DM data Fetching 16-key input Changing timer setting value Changing setting values of multiple timers LDA/STA First-in first-out (FIFO) Changing the counter setting value Changing the timer setting value CMP Comparing values with no specific range Setting the upper/lower limit Changing the CMP setting value Multi-level comparator ADD SUB MUL DIV ANDA ORA Adding BCD and BIN(binary) values Total count Comparison of absolute values Multiplying the counter current value by DM value Total count average BCD (1-digit) input Fetches input data separately Output of 2-digit BCD data Separate input of 2-digit BCD Reference Page 3-326 3-326 3-327 3-327 3-327 3-328 3-328 3-328 3-329 3-329 3-330 3-331 3-331 3-332 3-332 3-333 3-334 3-334 3-335 3-335 3-336 3-336 3-337 3-338 3-339 3-339 3-340 3-341 3-342 3-343 3-343 3-343 3-345 3-345 3-345 3-345 3-346 3-346 3-347 3-348 3-348 3-349 3-349 3-350 3-350 3-351 3-351

3-324

Chapter 8 Programming Examples

8.1 List
Instruction EORA SRA/SLA RRA/RLA INC/DEC MPX DMX TBCD TBIN Program title Judgement of matcing data Separate input of BCD Error input count Total count Up/Down count Display of 7-segment LED Output of error input No. in BCD Output of 4-digit BCD data Output of 8-digit BCD data Output of 4-digit BCD data Reference Page 3-352 3-352 3-353 3-353 3-354 3-355 3-356 3-356 3-356 3-357

1 8

Chapter 8 Programming Examples

3-325

8.2 Details

8.2

Details

8.2.1 Reference Program Examples


Basic Instructions
Applications of TMR, TMH, and TMS Instructions Refer to p. 3-67 to p. 3-71.
One-shot circuit When input relay 0000 turns ON, output relay 0500 turns ON and remains ON for a specified time. Timing diagram

0000 0500 2s 2s

Ladder diagram
2-s timer 0000 #00020 T000 T000 00500

Coding
Line No. 0000 0001 0002 0003 0004 Instruction LD OR TMR ANB OUT Operand 0000 0500 000#00020 T000 0500

0500

Off-delay circuit When input relay 0000 turns ON, output relay 0500 turns ON. 0500 turns OFF in a specified time after 0000 turns OFF. Timing diagram

0000

0500

2s

Ladder diagram
0000 T000 0500

Coding
Line No. 0000 0001 0002 0003 0004 0005 Instruction LD OR ANB OUT ANB TMR Operand 0000 0500 T000 0500 0000 000 #00020

0500

00000 2-s timer

#00020 T000

3-326

Chapter 8 Programming Examples

8.2 Details
On-delay circuit Output relay 0500 turns ON in a specified time after input relay 0000 turns ON. When input relay 0000 turns OFF, output relay 0500 also turns OFF. Timing diagram
0000 0500 2s 1s

Ladder diagram
2-s timer 0000 #00020 T000 0500

Coding
Line No. 0000 0001 0002 0003 Instruction LD TMR LD OUT Operand 0000 000 #00020 T000 0500

T000

Flicker circuit Output relay 0500 turns ON and OFF repeatedly while input relay 0000 is ON. Timing diagram
0000 0500 2s 1s 2s 1s

Ladder diagram
0000 T000 T001 2-s timer 1-s timer #00020 T000 #00010 T001 0500

Coding
Line No. 0000 0001 0002 0003 0004 0005 Instruction LD ANB TMR LD TMR OUT Operand 0000 T001 000 #00020 T000 001 #00010 0500

1 8

Accumulator timer (Remains ON in case of power failure) Counts special utility relay 2006 (1-s clock pulse) for 3600 s at C001 and inputs the count value to C002. Accumulates the count for 10000 hours and retains the current count value even when power failure occurs or power is OFF. Input relay 0000 Reset relay 0001 (Resolution is 1 s at 2006.) Ladder diagram
0000 C001 3600-s counter 1-s pulse 10000-s counter #03600 C001 2006 1000 #10000 C002 1000

Coding
Line No. Instruction 0000 0001 0002 0003 0004 0005 0006 LD ANB C LD OUT LDB C Operand 0000 C001 001 #03600 2006 C001 1000 0001 002 #10000 1000

C001 0001

Chapter 8 Programming Examples

3-327

8.2 Details
Large capacity counter Accumulates 1 count to C001 for every 10000 counts by C000. This example can count up to 655350000. Count input relay 0000 Reset relay 0001 Ladder diagram
0001 C000 #10000 C000 0000 1000 #65535 C001 1000

Coding
Line No. Instruction 0000 0001 0002 0003 0004 0005 0006 LDB ANB C LD OUT LDB C Operand 0001 C000 000 #10000 0000 C000 1000 0001 001 #65535 1000

C000 0001

Multi-level UP/DOWN counter UP/DOWN counter which allows the count setting value up to 99,990,000. UP input relay: 0001 DOWN input relay: 0002 Reset input relay: 0003 The example below outputs the high-order 4 digits of 8-digit BCD to UDC001 and the low-order 4 digits of 8-digit BCD to UDC000.
0004 C000 LDA C001 LDA TBCD 8500 STA 8600 STA Low-order 4 digits High-order 4 digits

TBCD

Ladder diagram
0001 0002 0003 RES C000 C000 0003 RES 0001 0002 UDC001 UP #09999 DW UDC000 UP #09999 DW BCD: Low-order 4 digits

Coding
Line No. Instruction 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 LD LD LD UDC LD AND LD AND LD UDC Operand 0001 0002 0003 000 #09999 C000 0001 C000 0002 0003 001 #09999

BCD: High-order 4 digits

Counter multi-level setting Outputs in 3 different levels according to the counter current value. 00000 to 00999 > 0500 turns ON. 01000 to 01999 > 0501 turns ON. 02000 to 02999 > 0502 turns ON. Ladder diagram
0001 #09999 C000 0000 #00999 2011 CMP #01999 2011 0500 CMP

2002 C000 LDA

0500 00000 to 00999 0501

01000 to 01999 #02999 2011 0500 0501 0512 02000 to CMP 02999

3-328

Chapter 8 Programming Examples

8.2 Details
Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 Instruction LDB C LD LDA CON MPS CMP CON ANB OUT MRD CMP Operand 0001 000 #09999 0000 2002 C000 Line No. 0012 0013 0014 0015 0016 0017 0018 0019 0020 0021 0022 Instruction CON ANB ANB OUT MPP CMP CON ANB ANB ANB OUT Operand 2011 0500 0501 #02999 2011 0500 0501 0502

#00999 2011 0500 #01999

Application of DIFU, DIFD Instructions


One-shot circuit using differentiate instruction When input relay 0000 turns ON/OFF, output relay 0500 and 0501 turns ON oneshot (1 second). Timing diagram
0000 1000 1001 0500 0501 1S 1S

Ladder diagram
0000 1000 DIFU 1001 DIFD 1000 0500 1001 0501 T002 T001 0500 #00010 T001 0501 #00010 T002

Coding
Line No. Instruction 0000 LD 0001 DIFU 0002 DIFD 0003 LD 0004 OR 0005 ANB 0006 OUT 0007 TMR 0008 LD 0009 OR 0010 ANB 0011 OUT 0012 TMR Operand 0000 1000 1001 1000 0500 T001 0500 001 #00010 1001 0501 T002 0501 002 #00010

1 8

Refer to p. 3-78.

Application of KEEP instruction


Detection of chewing gum packs Detects chewing gum packs over the carton using the proximity switch ES Series (0001 to 0003). If the switch detects that one or more packs of chewing gum are missing, output relay 0500 turns ON for 1 s. The timing clock is generated from the visible beam photoelectric switch PZ2 (0000).
ing ck ew Ch m pa gu

Reflector (R-2)
ing ck ew Ch m pa gu

Proximity Switch ES Series

ON

OFF

ON

ES Series
Gum Gum Gum Gum Gum Gum Gum Gum

PZ2-61

Chapter 8 Programming Examples

3-329

8.2 Details
Timing diagram
0000 0001 0002 0003 0500 1s

Ladder diagram
0000 0001 0002 0003 KEEP SE T 1000 RES 0000 1001 DIFD 0500
Outputs 1-s one-shot pulse from output relay 0500 when 1000 is OFF. Detects presence/absence of chewing gum packs at DOWN edge of 0000. Excecutes SET when all input relays 0000 to 0003 are ON.

1001

1001 1000 T001

0500

#00010 T001

Executes SET when all input relays 0000 to 0003 are ON. Detects presence/absence of chewing gum packs at DOWN edge of 0000. Outputs 1-s one-shot pulse from output relay 0500 when 1000 is OFF. Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 Instruction LD AND AND AND LD KEEP LD Operand 0000 0001 0002 0003 1001 1000 0000 Line No. 0007 0008 0009 0010 0011 0012 0013 Instruction DIFD LD ANB OR ANB OUT TMR Operand 1001 1001 1000 0500 T001 0500 001 #00010

Refer to p. 3-80.

Applications of SFT instruction


Alternating circuit Every time input relay No. 0000 turns ON, 0500 turns alternately ON and OFF. Timing diagram
0000 0500

Ladder diagram
1000 D 0000 CLK 2003 RES 1000 0500 1000 1000 SFT

Coding
Line No. Instruction 0000 0001 0002 0003 0004 0005 LDB LD LD SFT LD OUT Operand 1000 0000 2003 1000 1000 1000 0500

Refer to p. 3-82.

3-330

Chapter 8 Programming Examples

8.2 Details
Repeat shift circuit Turns ON every output for a second sequentially. Sets 1000 to 2008 (ON for 1st scan only at startup) and shifts outputs from 7500 to 7504 every second at T001. When 1005 turns ON, 1000 is set and the same sequence as above repeats. Ladder diagram
2008 T001 2003 D T001 CLK 2003 1000 1001 1002 1003 1004 1005 1005 RES 7500 7501 7502 7503 7504 1000 SET 1000 1000 SET #00010 T001 SFT

Coding
Line No. Instruction 0000 LD 0001 SET 0002 LDB 0003 T001 0004 LD 0005 LD 0006 LD 0007 SFT 0008 LD 0009 OUT 0010 LD 0011 0012 0013 0014 0015 0016 0017 0018 0019 OUT LD OUT LD OUT LD OUT LD SET Operand 2008 1000 T001 #00010 2003 T001 2003 1000 1005 1000 7500 1001 7501 1002 7502 1003 7503 1004 7504 1005 1000

Synchronous shift register Turns ON input relay 0002 to reset the shift register (1000 to 1010) when the data input to 0000 does not synchronize with the clock input to 0001. Timing diagram
0001 0000 1000 1001 1002

. . .
Coding
1100 DIFU 1000 SET SFT D 1000 CLK 1010 RES

1 8

Ladder diagram
0000 1100 2003 0001 0002

Line No. Instruction 0000 0001 0002 0003 0004 0005 0006 0007 LD DIFU LD SET LD LD LD SFT

Operand 0000 1100 1100 100 2003 0001 0002 1000 1010

Chapter 8 Programming Examples

3-331

8.2 Details
Resetting internal utility relays When input relay No. 0000 turns ON, all internal utility relays No. 1000 through 1915 turn OFF. SFT instruction can be substituted for RES instruction. This application can be used to reset many relays at one time. Ladder diagram
2003 D 2003 CLK 0000 RES 1915 1000 SFT

Coding
Line No. 0000 0001 0002 0003 Instruction LD LD LD SFT Operand 2003 2003 0000 1000 1915

Applications of HSP instruction


High-speed fetching of input data When the input signal at 0000 has pulses of 5-ms interval and input relay 0001 is ON, fetches data from input relay 0000 at high speed and outputs 1-s one-shot pulse from output relay 0500. Timing diagram
0000 0001 0500 1s

Ladder diagram
0001 0000 0500 1-s timer HSP 0000 #00010 T000 0500
Outputs 1-s one-shot pulse from output relay 0500.

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 Instruction Operand LD 0001 HSP 0000 LD 0000 OR 0500 TMR 000 #00010 ANB T000 OUT 0500

T000

To input a signal having pulse interval shorter than the scan time, use the interrupt instruction. Refer to p. 3-192.

When using the interrupt instruction Ladder diagram


2008 Turn ON for 1st scan only at startup. EI 2813 SET 0500 T000 #00010 T000 0500 RES END I NT 0000 2002 0500 SET RET I ENDH Interrupt enabled Initial settings Input time constant 10 s Turns ON timer for 1s when 0500 is ON. Resets 0500 when T000 turns ON.

Sets interrupt input at 0000. Sets 0500 when 0000 turns ON.

3-332

Chapter 8 Programming Examples

8.2 Details
Coding
Line No. 0000 0001 0002 0003 0004 0005 0006
Refer to p. 3-86.

Instruction LD EI SET LD T000 LD RES

Operand 2008 2813 0500 #00010 T000 0500

Line No. 0007 0008 0009 0010 0011 0012

Instruction END INT LD SET RETI ENDH

Operand 0000 2002 0500

Application of MC-MCR instruction


Emergency stop circuit When input relay 0000 is ON, 0500 turns ON for 1 s, then 0501 turns ON for 2 s, and then 0502 turns ON for 3 s, repeatedly. Once input relay 0000 turns OFF, 0500 turns ON when 0001 is ON, 0501 turns ON when 0002 is ON, and 0502 turns ON when 0003 is ON. Timing diagram
0000 0001 0002 0003 0500 0501 0502

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 0050 0051 0052 0053 0054 0055 0056 Instruction LD OUT CON OUB LD DIFU CON AND SET CON RES CON RES LD MC STG OUT CON TMR CON AND JMP STG OUT CON TMR CON AND JMP STG OUT CON TMR CON AND JMP MCR LD MC LD OUT LD OUT LD OUT MCR LD OR OUT LD OR OUT LD OR OUT END ENDH Operand 0000 1000 1001 0000 1002 1002 1100 1101 1102 1000 1100 1200 000 #00010 T000 1101 1101 1201 001 #00020 T001 1102 1102 1202 002 #00030 T002 1100 1001 0001 1203 0002 1204 0003 1205 1200 1203 0500 1201 1204 0501 1202 1205 0502

Ladder diagram
0000 0001 0002 0003 0004 0005 0006 0007 1001 0008 0001 0009 0002 0010 0003 0011 MCR 0012 1200 0013 1203 0014 1201 0015 1204 0016 1202 0017 1205 0018 END 0019 ENDH 0020 0502 0501 0500 1205 1204 1203 MC 1100 STG 1101 STG 1102 STG 1200 1201 1202 #00010 T000 T000 #00020 T001 T001 #00030 T002 T002 1101 JMP 1102 JMP 1100 JMP MCR 0000 1002 1002 DIFU 1000 1100 SET 1101 RES 1102 RES MC 1000 1001

1 8

Chapter 8 Programming Examples

3-333

8.2 Details

Application Instructions
Application of W-UE instruction
Input sequence check Output relay 0500 turns ON when input relay 0000 is ON and input 0001, 0002, and 0003 turn ON in this sequence. Output relay 0500 turns OFF when input relay 0000 is OFF. Timing diagram
0000 0001 0002 0003 0500

Ladder diagram
0000 0001 1000 0002 1001 0003 1002 0500

Coding
Line No. Instruction 0000 0001 0002 0003 0004 0005 0006 0007 LD W-UE LD W-UE LD W-UE LD OUT Operand 0000 0001 1000 1000 0002 1001 1001 0003 1002 1002 0500

1000

1001

1002

Fork lift truck IN/OUT judgement Checks the input sequence. Output relay 0500 turns ON when input relay 0000 turns ON and then 0001 turns ON. Output relay 0501 turns ON when input relay 0001 turns ON and then 0000 turns ON. Timing diagram
0000 0001 0500

0501

Ladder diagram
0000 0001 1000 0000 1001 1000 0500
Leave warehouse

Coding
Line No. Instruction 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 LD W-UE CON AND OUT LD W-UE CON AND OUT 1001 0501 1000 0500 0001 0000 1001 Operand 0000 0001 1000

0001

1001

0501
Enter warehouse

3-334

Chapter 8 Programming Examples

8.2 Details

Application of STG-JMP instruction


Enabling double coil When start SW 0000 is pressed, output relay 0500 turns ON for 1 s, then output relays 0500 and 0501 turn ON for 2 s, and then output relays 0500, 0501, and 0502 turn ON for 3 s. The above sequence repeats. Ladder diagram
0000 1100 DIFU 1100 1000 SET 1001 JMP 1002 JMP 1000 JMP
Turns ON 1000 when input relay 0000 turns ON.

1000 STG 1001 STG 1002 STG

0500 #00010 T000 T000 0500 0501 #00020 T001 T001

Output relay 0500 turns ON for 1 s.

Output relays 0500 and 0501 turn ON for 2 s.

0500 0501 0502 #00030 T002 T002

Output relays 0500, 0501 and 0502 turn ON for 3 s.

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 0014 0015 Instruction LD DIFU CON AND SET STG OUT CON TMR CON AND JMP STG OUT CON OUT Operand 0000 1100 1100 1000 1000 0500 000 #00010 T000 1001 1001 0500 0501 Line No. 0016 0017 0018 0019 0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 0030 0031 Instruction CON TMR CON AND JMP STG OUT CON OUT CON OUT CON TMR CON AND JMP Operand 001 #00020 T001 1002 1002 0500 0501 0502 002 #00030 T002 1000

CAUTION

The double coil operates normally through different STG instructions. If different STG instructions turn ON simultaneously, the latter programmed instruction has the priority.
Conditional branching When input relay 0000 (start SW) turns ON, output relay 0500 turns ON. Then, as programmed for conditional branching, output 0501 turns ON for 1 s when 0001 turns ON or 0502 turns ON for 2 s when 0002 turns ON. After either one of the processes is completed, the program returns to the conditional branching and repeats the same steps. Ladder diagram
0000 1000 STG 1100 DIFU 0500 1100 0001 0002 1001 STG 1002 STG 0501 0502 #00010 T000 #00020 T001 T000 T001 1000 SET 1001 JMP 1002 JMP 1000 JMP 1000 JMP

1 8

Chapter 8 Programming Examples

3-335

8.2 Details
Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 Instruction LD DIFU CON AND SET STG OUT MPS AND JMP MPP AND JMP STG Operand 0000 1100 1100 1000 1000 0500 0001 1001 0002 1002 1001 Line No. 0014 0015 0016 0017 0018 0019 0020 0021 0022 0023 0024 0025 0026 Instruction OUT CON TMR CON AND JMP STG OUT CON TMR CON AND JMP Operand 0501 000 #00010 T000 1000 1002 0502 001 #00020 T001 1000

Application of STP-STE instruction


Process progression When input relay 0000 turns ON, output relay 0500 automatically turns ON for 2 s, and then 0501 turns ON for 3 s. Ladder diagram
0001 0002 T000 0003 T000 0004 1001 0005 T000 0006 0007 0008 T001 0009 T001 0010 1002 0011 #00030 T001 STE 0012 END 0013 ENDH 0014 STP 1002 1002 RES 0501 #00020 T000 1002 SET STE 0000 1000 1000 DIFU 1001 SET STP 1001 1001 RES 0500

Coding
Line No. Instruction 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 0020 0021 0022 0023 0024 LD DIFU CON AND SET STP LD RES LDB OUT LD TMR LD SET STE STP LD RES LDB OUT LD TMR STE END ENDH Operand 0000 1000 1000 1001 1001 T000 1001 T000 0500 1001 000 #00020 T000 1002 1002 T001 1002 T001 0501 1002 001 #00030

The double coil operates normally across different STP instructions.

Refer to p. 3-114.

Application of ITVL instruction


Pulse interval measurement Measures the pulse interval of input relay 0000 and writes the measured data into DM0100 (in units of 10 ms). Mode No. 1 (DM0000) MAX. setting value 51 (DM0001) MIN. setting value 49 (DM0002) Average number of measurements 10 (DM0003)

3-336

Chapter 8 Programming Examples

8.2 Details
Reset input relay 0002 Output relay 0500 turns ON when the pulse interval is not within the range from 490 to 510 mm.
Measure the pulse interval ON OFF 500ms

Ladder diagram
2008 #00001 LDA #00051 LDA #00049 LDA #00010 LDA DM0000 STA DM0001 STA DM0002 STA DM0003 STA ITVL PLS DM0000 PAUSE 0002 1000 RES DM0007 LDA DM0100 STA 0500 RES 0500 SET
Sets mode 1 in DM0000.

2008

Sets MAX. setting value (510 ms) in DM0001.

2008

Sets MIN. setting value (490 ms) in DM0002.

2008

Sets the average number of measurements (10) in DM0003. Measures the pulse interval when input relay 0000 turns ON. Pauses measurement when input relay 0001 turns ON. Resets measurement when input relay 0002 turns ON. Writes the average measurement value into DM0100 and resets 0500 after every time a measurement is completed. Turns On output relay 0500 when the pulse interval is not within the range from 490 to 510 mm.

0000 0001

1002

1000

1001

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 0014 Instruction LD LDA CON STA LD LDA CON STA LD LDA CON STA LD LDA CON Operand 2008 #00001 DM0000 2008 #00051 DM0001 2008 #00049 DM0002 2008 #00010 Line No. 0015 0016 0017 0018 0019 0020 0021 0022 0023 0024 0025 0026 0027 0028 Instruction STA LD LD LD ITVL LD LDA CON STA CON RES LD OR SET Operand DM0003 0000 0001 0002 DM0000 1000 1002 DM0007 DM0100 0500 1000 1001 0500

1 8

Fetching data from the KV-AN6 (For KV-300 PLC only) Fetches data from Ch 1 of the KV-AN6. Writes this data value into DM0100. Mode No. 9000 (DM0000) from Ch 1 of KV-AN6 MAX. setting value 2000 (DM0001) MIN. setting value 00900 (DM0002) Average number of measurements 10 (DM0003) Reset input relay 0002

Chapter 8 Programming Examples

3-337

8.2 Details
Ladder diagram
2008 #09000 LDA #02000 LDA #00900 LDA #00010 LDA DM0000 STA DM0001 STA DM0002 STA DM0003 STA ITVL PLS DM0000 PAUSE 0002 1000 RES DM0007 LDA DM0100 STA

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 0020 0021 0022 0023 Instruction LD LDA CON STA LD LDA CON STA LD LDA CON STA LD LDA CON STA LD LD LD ITVL LD LDA CON STA Operand 2008 #09000 DM0000 2008 #02000 DM0001 2008 #00900 DM0002 2008 #00010 DM0003 2003 0001 0002 DM0000 1000 1003 DM0007 DM0100

2008

2008

2008

2003 0001

1003

Refer to p. 3-117.

Applications of High-speed counter


High-speed counter multi-level setting Sets the high speed counter comparator value of the input relay 0005 as below:
#0100 DM0000 #0200 DM0001 #0300 DM0002 DM0000 0500 turns ON. DM0001 0501 turns ON. DM0002 0502 turns ON.

When a comparator value is greater than the setting value:

Ladder diagram
2008 2813 #01000 DM0000 #02000 DM0001 #03000 DM0002 SET LDA STA LDA STA LDA STA 0001

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 Instruction LD SET CON LDA CON STA CON LDA CON STA CON LDA CON STA LDB CTH1 LD LDA MPS CMP ANB OUT MRD CMP ANB OUT MPP CMP ANB OUT Operand 2008 2813 #01000 DM0000 #02000 DM0001 #03000 DM0002 0001 0005 2002 CTH1 DM0000 2009 0500 DM0001 2009 0501 DM0002 2009 0502

8
2002 CTH1 LDA DM0000 2009 CMP DM0001 2009 CMP DM0002 2009 CMP

CTH1 00005 0500 0501 0502

3-338

Chapter 8 Programming Examples

8.2 Details
High-speed counter current value clear Counts pulses at input relay 0005. When the count value reaches setting value 60000, clears the current value of high speed counter CTH1 and turns ON output relay 0502 for 3 s. Ladder diagram
2008 2002 2813 SET 2203 SET CTH1 RES CTH1 0005 #60000 CTC2 CTC2 0502 #00030 T001 T001 CTC2 RES 0502 RES

Coding
Line No. Instruction 0000 LD 0001 SET 0002 CON 0003 SET 0004 CON 0005 RES 0006 LD 0007 CTH1 0008 CTC2 0009 LD 0010 OUT 0011 CON 0012 TMR 0013 CON 0015 AND 0016 RES 0017 CON 0018 RES Operand 2008 2813 2203 CTH1 2002 0005 #60000 CTC2 0502 001 #00030 T001 CTC2 0502

Input of phase differential signal Inputs phase differential signals to input relays 0004 and 0006 and counts pulses at CTH0. Writes the count value into DM0000. When high speed counter CTH0 reaches 60000, clears the current value of CTH0, sets output relay 0500, and stops fetching count value to CTH0. Sets 0008 as external reset. Ladder diagram
2008 EI 0500 2813 2103 SET SET 2113 2114 2115 CTH0 SET RES SET RES CTH0 00004 #60000 CTC0 END INT CTC0 0500 SET RETI ENDH Initial settings*Note

2002

CTH0 LDA

DM0000 STA

1 8

2002

Note: Initial settings for special utility relays Sets input time constant of input relays 0000 to 0009 to 10 s when 2813 turns ON. Clears the current value of CTH0 when 2103 turns ON and CTC0 is ON. Sets CTH0 in the X 2 mode when 2113 is ON and 2114 is OFF. Enables external reset (input relay 0008) when 2115 turns ON.

Chapter 8 Programming Examples

3-339

8.2 Details External reset 0008 is predetermined on hardware even if you do not specify in the program. However, you have to set external reset enable relay 2115 to ON.
Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 Instruction LD EI CON SET CON SET CON SET CON RES CON SET CON RES Operand 2008 Line No. 0014 0015 0016 0017 0018 0019 0020 0021 0022 0023 0024 0025 0026 Instruction LDB CTH CTC LD LDA CON STA END INT LD SET RETI ENDH Operand 0500 1 0004 0 #60000 2002 CTH0 DM0000 CTC0 2002 0500

CAUTION

2813 2103 2113 2114 2115 CTH0

Application of Subroutine CALL


DM shift Shifts the data from current DM to the next DM at UP edge of the synchronous signal (timing). As the number of DMs to be shifted increases, the required scan time becomes longer. Ladder diagram
0000 1000 1000 #00010 TM02 #00030 TM03 DIFU LDA STA LDA STA
Synchoronous signal Designates the Designates the shift start shift end DM No. (DM0010). DM No. (DM0030).

00 Shifts data from CALL DM0010 to DM0030. END SBN 00

2002

TM03 #00001 LDA ADD

TM04 STA

TM02 SUB

TM05 STA FOR TM05 #TM04 STA NEXT


The program lines which execute the data shift are groped as the subroutine.

8
2002 TM03 DEC TM04 DEC

Shift level

#TM03 LDA

Uses the indirect addressing function to designate DM Nos.

2002

#00000 LDA

#TM02 STA RET ENDH

Clears the start DM to #0000 after the data is shifted.

3-340

Chapter 8 Programming Examples

8.2 Details
Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 0020 Instruction LD DIFU CON AND LDA CON STA CON LDA CON STA CON CALL END SBN LD LDA CON ADD CON STA Operand 0000 1000 1000 #00010 TM02 #00030 TM03 00 00 2002 TM03 #00001 TM04 Line No. 0021 0022 0023 0024 0025 0026 0027 0028 0029 0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 0040 Instruction CON SUB CON STA FOR LD DEC CON DEC CON LDA CON STA NEXT LD LDA CON STA RET ENDH Operand TM02 TM05 TM05 2002 TM03 TM04 #TM03 #TM04 2002 #00000 #TM02

Refer to p. 3-122.

Application of FOR-NEXT
Transfer of a block of DM data Uses the indirect addressing function to transfer a block of data from DM0000 DM0099 to DM0100 - DM0199. Ladder diagram
SBN 01 2002 #0000 LDA
1st DM No. of transfer source

Coding
Line No. Instruction 0000 SBN 0010 LD 0001 LD 0011 LDA 0002 LDA 0012 CON 0003 CON 0013 STA 0004 STA 0014 CON 0005 CON 0015 INC 0006 LDA 0016 CON 0007 CON 0017 INC 0008 STA 0018 NEXT 0009 FOR 0019 RET Operand 01 2002 2002 #TM02 #0000

TMO2 STA

#00100 LDA

TMO3 STA FOR #00100

1st DM No. of transfer destination

Number of DMs to be Transferred.

2002

#TM02 LDA

#TM03 STA

TM02 INC

TM03 INC NEXT RET

1 8
#TM03 TM02

Data memory DM0000

TM02 #00100

TM03 TM03 #00100

DM0099 DM0100

Transfer a block of data

DM0199

Refer to p. 3-125.

Chapter 8 Programming Examples

3-341

8.2 Details

Application of HKEY instruction


Fetching 16-key input Writes the following 16-key input value into DM0000 in 4-digit BCD. Pressing the keys in the lower line clear the input numerical value. Wires the 16-key input terminals using 4 outputs and 4 inputs as shown below.

24 VDC

COM 000 001 002 003 KV COM 500 501 502 503

0 4 8 C

1 5 9 D

2 6 A E

3 7 B F

Ladder diagram
2008 2002 2814 SET HKEY 0000 0500 DMX TM06 STA KEY IN

2815 2900 2010 $03FF TM05 2010 TM05 LDA ANDA CMP STA 2815 2900 2010 $03FF TM05 2010 TM05 LDA ANDA CMP STA DM0000 #04 LDA SLA 2815 2915

TM06 DM0000 Input value ORA STA (BCD) #00000 Input value DW (BCD) DM0000 END ENDH

Coding

Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 0020

Instruction LD SET LD HKEY LD LDA CON ANB ANDA CON CMP CON ANB STA CON DMX CON STA LD LDA CON

Operand 2008 2814 2002 0000 0500 2815 2900 2010 $03FF TM05 2010 TM05

TM06 2815 2900

Line No. 0021 0022 0023 0024 0025 0026 0027 0028 0029 0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 0040

Instruction AND ANDA CON CMP CON ANB STA CON LDA CON SLA CON ORA CON STA LD AND DW END ENDH

Operand 2010 $03FF TM05 2010 TM05 DM0000 #04 TM06 DM0000 2815 2915 #0000 DM0000

Refer to p. 3-131.

3-342

Chapter 8 Programming Examples

8.2 Details

Arithmetic Instructions
Applications of TMIN (Analog timer) instruction
Changing timer setting value Uses analog timer (TMIN0) to change the timer setting value (0 to 24.9 s). Ladder diagram
2002 0000 0500 T000 0 TMIN T000 STA #00010 T000 0500

Coding
Line No. Instruction 0000 LD 0001 TMIN 0002 CON 0003 STA 0004 LD 0005 OR 0006 TMR 0007 ANB 0008 OUT Operand 2002 0 T000 0000 0500 000 #00010 T000 0500

Changing setting values of multiple timers Uses analog timer (TMIN0) to change setting values of multiple timers (0 to 24.9 s). Ladder diagram
2002 0000 0500 0001 0501 0002 0502 T002 T001 T000 0 TMIN T000 STA T001 STA T002 STA #00010 T000 0500 #00010 T001 0501 #00010 T002 0502

Coding
Line No. Instruction 0000 LD 0001 TMIN 0002 CON 0003 STA 0004 CON 0005 STA 0006 CON 0007 STA 0008 LD 0010 TMR 0011 ANB 0012 OUT 0013 LD 0014 OR 0015 TMR 0016 ANB 0017 OUT 0018 LD 0019 OR 0020 TMR 0009 OR 0021 ANB 0022 OUT Operand 2002 0 T000 T001 T002 0000 000 #00010 T000 0500 0001 0501 001 #00010 T001 0501 0002 0502 002 #00010 0500 T002 0502

1 8

In the above example, T000, T001, and T002 have the same setting value.

Refer to p. 3-138.

Applications of LDA/STA instruction


First-in first-out (FIFO) DM data flow

OK/NG judgement DM0000 DM0001 Data shift DM0002 DM0003 DM0004 Unloading timing

Chapter 8 Programming Examples

3-343

8.2 Details
The data once fetched is written into DM0004, DM0003, ..., DM0000 in this order. At the unloading timing, unload the data from DM0004 and shifts the data value to the next DM. The ON/NG judgement and unloading timings can be used in asynchronous programs. Ladder diagram
0000 1000 DIFU 1000 0001 $1111 LDA $5555 LDA DM0000 STA DM0000 STA

OK/NG judgement timing

Transfers $1111 to DM0000. OK/NG judgement

0001

Transfers $5555 to DM0000.

2002 DM0004 $0000 2010 DM0003 DM0004 $0000 DM0003 LDA CMP LDA STA LDA STA 2002 DM0003 $0000 2010 DM0002 DM0003 $0000 DM0002 LDA CMP LDA STA LDA STA 2002 DM0002 $0000 2010 DM0001 DM0002 $0000 DM0001 LDA CMP LDA STA LDA STA 2002 DM0001 $0000 2010 DM0000 DM0001 $0000 DM0000 LDA CMP LDA STA LDA STA 0002 $0000 DM0004 LDA STA Unloading timing Transfers $0000 to DM at unloading timing.
Compares the DM value to $0000. If it is equal to $0000, transfers the value of the previous DM No. and then writes $0000 into the current DM No.

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 0030 0031 0032 0033 0034 Instruction LD DIFU CON AND MPS AND LDA CON STA MPP ANB LDA CON STA LD LDA CON CMP CON AND LDA CON STA CON LDA CON STA LD LDA CON CMP CON AND LDA CON Operand 0000 1000 1000 0001 $1111 DM0000 0001 $5555 DM0000 2002 DM0004 $0000 2010 DM0003 DM0004 $0000 DM0003 2002 DM0003 $0000 2010 DM0002 Line No. 0035 0036 0037 0038 0039 0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 Instruction STA CON LDA CON STA LD LDA CON CMP CON AND LDA CON STA CON LDA CON STA LD LDA CON CMP CON AND LDA CON STA CON LDA CON STA LD @LDA CON @STA Operand DM0003 $0000 DM0002 2002 DM0002 $0000 2010 DM0001 DM0002 $0000 DM0001 2002 DM0001 $0000 2010 DM0000 DM0001 $0000 DM0000 0002 $0000 DM0004

3-344

Chapter 8 Programming Examples

8.2 Details
Changing the counter setting value Sets the setting value of counter C000 to DM0000. Reset input is 0005. Ladder diagram
2002 0005 DM0000 LDA C000 STA #9999 C000 0001

Coding
Line No. Instruction Operand 0000 LD 2002 0001 LDA DM0000 0002 CON 0003 STA C000 0004 LDB 0005 0005 C 000 #9999 0001

Changing the timer setting value Sets the setting value of timer T000 to DM0000. Reset input is 0005. Ladder diagram
2002 0005 DM0000 LDA T000 STA #9999 T000

Coding
Line No. Instruction 0000 LD 0001 LDA 0002 CON 0003 STA 0004 LDB 0005 T Operand 2002 DM0000 T000 0005 0000 #9999

Refer to p. 3-140.

Application of CMP (compare) instruction


When comparing values with no specific range Turns ON 0500 when the DM0000 value is smaller than the CMP value. Turns ON 0501 when the DM0000 value is equal to the CMP value. Turns ON 0502 when the DM0000 value is greater than the CMP value. Ladder diagram
2002 DM000 #01000 LDA CMP 2010 2011 0501 0502 2009 0500 DM0000 <#01000 DM0000 =#01000 DM0000 >#01000

Coding
Line No. Instruction 0000 LD 0001 LDA 0002 CON 0003 CMP 0004 MPS 0005 AND 0006 OUT 0007 MRD 0008 AND 0009 OUT 0010 MPP 0011 AND 0012 OUT Operand 2002 DM0000 #01000 2009 0500 2010 0501 2011 0502

1 8

Setting the upper/lower limit Turns ON 0500 when the C001 value is 1000 or less. Turns ON 0501 when the C001 value is 2000 or more. Ladder diagram
0001 #09999 C001 0000 0500 C001 #1000 2009 0501 C001 #02000

2002 2002

C001 LDA C001 LDA

#01000 CMP #02000 CMP

2011

Chapter 8 Programming Examples

3-345

8.2 Details
Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 Instruction LDB C LD LDA CON CMP CON ANB Operand 0001 001 #09999 0000 2002 C001 #01000 2011 Line No. 0008 0009 0010 0011 0012 0013 0014 0015 Instruction OUT LD LDA CON CMP CON ANB OUT Operand 0500 2002 C001 #02000 2009 0501

Changing the CMP setting value Compares the current value of C000 to the CMP setting value. Sets the CMP setting value to analog timer TMIN0. The following example changes the setting value within the range from 0 to 100. Turns ON 0500 when the C000 value is smaller than the CMP setting value. Turns ON 0501 when the C000 value is greater than the CMP setting value. Ladder diagram
#00001 #00004 #00010 DM0000 0 Sets the TMIN setting TMIN ADD MUL DIV STA range from 0 to 100. 0001 #09999 C000 00000 2002 C000 DM0000 2009 0500 LDA CMP 2002 2009 0501

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 Instruction LD TMIN CON ADD CON MUL CON DIV CON STA LDB Operand 2002 0 #00001 #00004 #00010 DM0000 0001 Line No. 0011 0012 0013 0014 0015 0016 0017 0018 0019 0020 0021 Instruction C LD LDA CON CMP MPS AND OUT MPP ANB OUT Operand 000 #09999 0000 02002 C000 DM0000 2009 0500 2009 0501

Multi-level comparator Compares the counter current value according to the following range: 0 to 999 0500 turns ON. 1000 to 1999 0501 turns ON. 2000 to 2999 0502 turns ON. Counter reset relay 0001 Counter input relay 0000

3-346

Chapter 8 Programming Examples

8.2 Details
Ladder diagram
0001 #09999 C000 0000 #00999 2011 CMP #01999 2011 0500 CMP 0500 0501 C000 00999 00999 < C000 01999

2002 C000 LDA

#02999 2011 0500 0501 0502 01999 < C000 02999 CMP

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 Instruction LDB C LD LDA CON MPS CMP CON ANB OUT MRD CMP Operand 0001 000 #09999 0000 2002 C000 Line No. 0012 0013 0014 0015 0016 0017 0018 0019 0020 0021 0022 Instruction CON ANB ANB OUT MPP CMP CON ANB ANB ANB OUT Operand 2011 0500 0501 #02999 2011 0500 0501 0502

#00999 2011 0500 #01999

Refer to p. 3-146.

Application of ADD instruction


Adding BCD and BIN values Adds a 4-digit BCD input value (7000 to 7015) to the counter current value and writes the sum into DM0100. Ladder diagram
2002 2002 0001 7000 LDA C001 LDA TBIN DM0000 ADD DM0000 STA DM0100 STA #09999 C001 0000
Adds converted BIN value to the current value of C001 and writes the sum into DM0100. Converts BCD input value to BIN.

1 8

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 Instruction LD LDA CON TBIN CON STA LD Operand 2002 7000 Line No. 0007 0008 0009 0010 0011 0012 0013 Instruction LDA CON ADD CON STA LDB C Operand C001 DM0000 DM0100 0001 001 #09999 0000

DM0000 2002

Chapter 8 Programming Examples

3-347

8.2 Details
Total count Writes total count of counters C001 to C003 into DM0100. The total count must be within 65535. Ladder diagram
#09999 C001 C001 LDA 0001 #09999 C002 0000 C002 LDA 0002 #09999 C003 0000 C003 LDA 0003 2002 DM0001 DM0002 DM0003 LDA ADD ADD 0000 DM0001 STA DM0002 STA DM0003 STA DM0100 STA

Writes C001 current value into DM0001.

Writes C002 current value into DM0002.

Writes C003 current value into DM0003.

Writes total count (DM0001 + CM0002 + DM0003) into DM100.

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 Instruction Operand LDB 0000 C 001 #09999 0001 CON LDA C001 CON STA DM0001 LDB 0000 C 002 #09999 0002 CON LDA C002 CON STA DM0002 LDB 0000 Line No. 0013 0014 0015 0016 0017 0018 0019 0020 0021 0022 0023 0024 0025 Instruction Operand C 003 #09999 0003 CON LDA C003 CON STA DM0003 LD 2002 LDA DM0001 CON ADD DM0002 CON ADD DM0003 CON STA DM0100

Refer to p. 3-150.

Application of SUB instruction


Comparison of absolute values Compares the DM0000 value to the DM0001 value and turns ON 0500 when the difference of the two absolute values is greater than 5.

Ladder diagram
2002 DM0000 DM0001 2009 LDA SUB #0005 2009 1000 CMP

2009 DM0001 DM0000 #0005 2009 1001 LDA SUB CMP 1000 1001 0500

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 Instruction LD LDA CON SUB MPS ANB CMP CON ANB OUT MPP AND Operand 2002 DM0000 DM0001 2009 #00005 2009 1000 2009 Line No. 0012 0013 0014 0015 0016 0017 0018 0019 0020 0021 0022 Instruction LDA CON SUB CON CMP CON ANB OUT LD OR OUT Operand DM0001 DM0000 #00005 2009 1001 1000 1001 0500

Refer to p. 3-150.

3-348

Chapter 8 Programming Examples

8.2 Details

Application of MUL instruction


Multiplying the counter current value by DM value Multiplies the counter current value by the DM0000 value and writes the high-order 16 bits of the product into DM0101 and low-order 16 bits of the product into DM0100. Ladder diagram
#09999 C001 0000 2002 C001 DM0000 DM0100 TM00 DM0101 LDA MUL STA LDA STA 0001

Coding
Line No. Instruction Operand 0000 LDB 0001 0001 C 001 #09999 0000 0002 LD 2002 0003 LDA C001 0005 MUL DM0000 0004 CON 0006 CON 0007 STA DM0100 0008 CON 0009 LDA TM00 0010 CON 0011 STA DM0101

Refer to p. 3-150.

Application of DIV instruction


Total count average Outputs the average of 3 counter values in 4-digit BCD. (C001 + C002 + C003) 3 BCD output value The BCD value is output to 7500 to 7515. Ladder diagram
0000 #09999 C001 00001 #09999 C002 00002 #09999 C003 00003 DM0001 LDA #00003 DIV C001 LDA C002 LDA C003 LDA DM0001 STA DM0002 STA DM0003 STA
Writes the C001 current value into DM0001. Writes the C002 current value into DM0002. Writes the C003 current value into DM0003.

0000

0000

2002

DM0002 DM0003 ADD ADD 07500 STA

DM0001 DM0002 DM0003

1 8

2002

TBCD

3 Output to 07500 to 07515 in 4-digit BCD.

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 0014 Instruction LDB C CON LDA CON STA LDB C CON LDA CON STA LDB C CON Operand 0000 001 #09999 0001 C001 DM0001 0000 002 #09999 0002 C002 DM0002 0000 003 #09999 0003 Line No. 0015 0016 0017 0018 0019 0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 Instruction LDA CON STA LD LDA CON ADD CON ADD LD DIV CON TBCD CON STA Operand C003 DM0003 2002 DM0001 DM0002 DM0003 2002 #00003

7500

Refer to p. 3-150.

Chapter 8 Programming Examples

3-349

8.2 Details

Application of ANDA instruction


BCD (1-digit) input Sets a 1-digit BCD value, which is input to 0000 to 0003, in C000. Ladder diagram
2002 0000 LDA $000F ANDA C000 STA #09999 C000 7001

Fetches data of 0000 to 0015 and retains data of 0000 to 0003 only. Converts data to BIN and writes it into C000.

2002 TBIN 7000

Sets C000.

Coding
Line No. 0000 0001 0002 0003 0004 Instruction LD LDA CON ANDA LD Operand 2002 0000 $000F 2002 Line No. 0005 0006 0007 0008 0009 Instruction TBIN CON STA LDB C Operand

C000 7000 000 #09999 7001

Fetches input data separately Sets the low-order 2 digits of the BCD digital switch (7000 to 7007) to counter C000 and the high-order 2 digits to timer T001. Ladder diagram
2002 7000 LDA 2002 7000 LDA 0001 $00FF ANDA $FF00 ANDA TBIN #08 SRA C000 STA T001 STA #09999 C000 0000 #09999 T001
Converts data of 7000 to 7007 to BIN and writes it into C000. Shifts data to right by 8 bits, converts it to BIN, and writes it into T001. Sets C000.

TBIN

0001

Sets T001.

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 Instruction LD LDA CON ANDA CON TBIN CON STA LD LDA CON Operand 2002 7000 $00FF Line No. 0011 0012 0013 0014 0015 0016 0017 0018 0019 0020 0021 Instruction ANDA CON SRA CON TBIN CON STA LDB C LDB T Operand $FF00 #08

C000 2002 7000

T001 0001 000 #09999 0000 0001 001 #09999

Refer to p. 3-159.

3-350

Chapter 8 Programming Examples

8.2 Details

Application of ORA instruction


Output of BCD 2-digit data Converts the current value of counter C000 to BCD and sends 2 digits of BCD data to output relays 7500 to 7507. However, retain ON/OFF of 7508 to 7515 which are loaded. Ladder diagram
0000 #00099 C000 0001 $FF00 ANDA Sets C000. DM0000 STA $00FF ANDA

2002

7500 LDA C000 LDA DM0000 ORA

Writes data of 7008 to 7015 into DM0000. Converts the current value of C000 to BCD and retains the low-order 2 digits of BCD in the internal register. ORs the data in the internal register and the DM0000 data and sends the ORed data to 7500 to 7515.

2002

TBCD 7500 STA

2002

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 Instruction LDB C LD LDA CON ANDA CON STA LD Operand 0000 000 #00099 0001 2002 7500 $FF00 DM0000 2002 Line No. 0009 0010 0011 0012 0013 0014 0015 0016 0017 Instruction LDA CON TBCD CON ANDA LD ORA CON STA Operand C000

$00FF 2002 DM0000 7500

Separate input of 2-digit BCD Fetches only 2 digits of the BCD digital switch (7000 to 7003 for the 1st digit, 8000 to 8003 for the 2nd digit) and sets it as the counter value. Ladder diagram
0000 #00099 C001 0001 $000F ANDA $000F ANDA C001 STA

2002

7000 LDA 8000 LDA

DM0000 STA

1 8

2002

2002

#04 DM0000 SLA ORA TBIN

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 Instruction LDB C LD LDA CON ANDA CON STA LD LDA Operand 0000 001 #00099 0001 2002 7000 $000F DM0000 2002 8000 Line No. 0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 Instruction CON ANDA LD SLA CON ORA CON TBIN CON STA Operand $000F 2002 #04 DM0000

C001

Refer to p. 3-161.

Chapter 8 Programming Examples

3-351

8.2 Details

Application of EORA instruction


Judgement of matching data Turns ON 0500 (OK output) when the ON/OFF statuses of input relays 7000 to 7007 match the DM0000 setting value. Ladder diagram
2008 $00AA DM0000 LDA STA 7000 LDA $00FF ANDA DM0000 2010 0500 EORA

Coding
Line No. Instruction 0000 LD 0001 LDA 0002 CON 0003 STA 0004 LD 0005 LDA 0006 CON 0007 ANDA 0008 CON 0009 EORA 0010 CON 0011 AND 0012 OUT Operand 2008 $00AA DM0000 2002 7000 $00FF DM0000 2010 0500

2002

For easy comprehension, the following data is set temporarily.


D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0

$BBBB 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 7000 to 7015 ANDA $00FF 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 Operand $00BB 0 0 0 0 0 0 0 0 1 0 1 1 1 0 1 1 Internal register EORA $00AA 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 DM0000 $0011 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 Internal register 2010 is OFF. When the
value of internal register is 0000, 2010 turns ON.

Judges match between the operand and the data of 7000 to 7015.

When 2010 is ON, the two values match. When 2010 is OFF, the two values do not match.
Refer to p. 3-164.

Application of SRA/SLA instructions

Separate input of BCD Fetches only 2 digits of the BCD digital switch (7012 to 7015 for the 1st digit, 8000 to 8003 for the 2nd digit) and sets it as the counter value. Ladder diagram
0001 #00099 C001 0000 $F000 ANDA DM0000 STA $000F ANDA DM0000 ORA C001 STA

Sets C001.

2002

7000 LDA #12 SRA 08000 LDA #04 SLA

Sends the data of 7012 to 7015 to internal register. Shifts the value of internal register to right by 12 bits and writes it into DM0000. Sends the data of 8000 to 8003 to internal register. Shifts the data of internal register to left by 4 bits, ORs the internal register data and the data of DM0000, and sends the ORed data to internal register. Converts the data of internal register to BIN data and writes it into C001.

2002

2002

2002

2002 TBIN

3-352

Chapter 8 Programming Examples

8.2 Details
Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 Instruction LD C LD LDA CON ANDA LD SRA CON STA LD Operand 0001 001 #00099 0000 2002 7000 $F000 2002 #12 DM0000 2002 Line No. 0011 0012 0013 0014 0015 0016 0017 0018 0019 0020 0021 Instruction LDA CON ANDA LD SLA CON ORA LD TBIN CON STA Operand 8000 $000F 2002 #04 DM0000 2002

C001

Refer to p. 3-166.

Application of RRA/RLA instructions


Error input count Writes the number of error detection sensors, which are connected to input relays (7000 to 7015) and turn ON, into DM0000. Ladder diagram
2002 7000 LDA FOR #00016 2002 #01 RRA 2009 TM10 INC NEXT 2002 TM10 LDA DM0000 #00000 STA LDA TM10 STA

Writes the data of 7000 to 7015 into internal register. Executes FOR-NEXT instruction for 16 times. Shifts the data including carry (2009) to right, and increments TM10 by 1 when 2009 is ON.

Writes the TM10 data into DM0000, and then writes #00000 to TM10.

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 Instruction LD LDA FOR LD RRA CON AND INC NEXT Operand 2002 7000 #00016 02002 #01 2009 TM10 Line No. 0009 0010 0011 0012 0013 0014 0015 0016 Instruction LD LDA CON STA CON LDA CON STA Operand 2002 TM10 DM0000 #00000 TM10

1 8

Refer to p. 3-169.

Applications of INC/DEC instructions


Total count Writes the total count of 4 lines (0000 to 0003) into DM0000. Reset input relay is 0005.

Chapter 8 Programming Examples

3-353

8.2 Details
Ladder diagram
2008 #00000 LDA DM0000 STA DM0000 INC DM0000 INC DM0000 INC DM0000 INC #00000 DW DM0000

Sets #00000 to DM0000 at startup. Increments DM0000 by 1 at UP edge of input relay 0000. Increments DM0000 by 1 at UP edge of input relay 0001. Increments DM0000 by 1 at UP edge of input relay 0002. Increments DM0000 by 1 at UP edge of input relay 0003. Clears DM0000 to #00000 when 0005 turns ON.

0000

0001

0002

0003

0005

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 Instruction LD LDA CON STA LD @INC LD Operand 2008 #00000 DM0000 0000 DM0000 0001 Line No. 0007 0008 0009 0010 0011 0012 0013 Instruction @INC LD @INC LD @INC LD DW Operand DM0000 0002 DM0000 0003 DM0000 0005 #00000 DM0000

UP/DOWN count Performs UP count when input relay 0000 turns ON. Performs DOWN count when input relay 0001 turns ON. Writes the count value into DM0000. Reset input relay is 0005. Ladder diagram
2008 #00000 LDA DM0000 STA DM0000 INC DM0000 DEC #00000 DW DM0000

Sets #00000 to DM0000 at startup.

0000

Increments DM0000 by 1 at UP edge of input relay 0000. Decrements DM0000 by 1 at UP edge of input relay 0001. Clears DM0000 to #00000 when 0005 turns ON.

0001

8
0005

Coding
Line No. 0000 0001 0002 0003 0004 Instruction LD LDA CON STA LD Operand 2008 #00000 DM0000 0000 Line No. 0005 0006 0007 0008 0009 Instruction @INC LD @DEC LD DW Operand DM0000 0001 DM0000 0005 #00000 DM0000

Refer to p. 3-172.

3-354

Chapter 8 Programming Examples

8.2 Details

Application of MPX instruction


Display of 7-segment LED Displays the current value of counter C000 to the 7-segment LED. Outputs from 7500 to 7571. Connection of 7 segments Connect each of 7 segments to output relays as shown below:
a f g e d c b
a. 7500 b. 7501 c. 7502 d. 7503 e. 7504 f. 7505 g. 7506

Ladder diagram
Auto reset counter Converts the counter value to 16-bit data using the MPX instruction.

Coding
Line No. Instruction Operand 0000 LDB C000 0024 LD 1004 0001 C 000 #00009 0000 0025 LDA $0066 0002 CON 0026 CON 0003 LDA C000 0027 STA 7500 0004 CON 0028 LD 1005 0005 MPX #0 0029 LDA $006D 0006 CON 0030 CON 0007 STA 1000 0031 STA 7500 0008 LD 1000 0032 LD 1006 0009 LDA $003F 0033 LDA $007D 0010 CON 0034 CON 0011 STA 7500 0035 STA 7500 0012 LD 1001 0036 LD 1007 0013 LDA $0006 0037 LDA $0007 0014 CON 0038 CON 0015 STA 7500 0039 STA 7500 0016 LD 1002 0040 LD 1008 0017 LDA $005B 0041 LDA $007F 0018 CON 0042 CON 0019 STA 7500 0043 STA 7500 0020 LD 1003 0044 LD 1009 0021 LDA $004F 0045 LDA $006F 0022 CON 0046 CON 0023 STA 7500 0047 STA 7500

C000

#00009 C000 0000

C000 LDA

#0 MPX

1000 STA

Sends internal register data to output relays starting from 7500.

1000

$003F LDA $0006 LDA $005B LDA $004F LDA $0066 LDA $006D LDA $007D LDA $0007 LDA $007F LDA $006F LDA

7500 STA 7500 STA 7500 STA 7500 STA 7500 STA 7500 STA 7500 STA 7500 STA 7500 STA 7500 STA

1001

1002

1003

1004

1005

1006

1007

1008

1 8

1009

7-segment display

Refer to p. 3-176.

Chapter 8 Programming Examples

3-355

8.2 Details

Application of DMX instruction


Output of error input No. in BCD Outputs the error sensor No. from input relay 7000 to 7015 to output relays 8500 to 8507 in 2-digit BCD. Ladder diagram
2002 07000 LDA DMX $00FF ANDA 8000 STA

2002 TBCD

Converts the most significant bit of 16-bit data (7000 to 7015) to 4-bit BIN data and sends it to internal register. Converts internal register data to BCD data, executes ANDA instruction, and outputs the data to 8000 to 8015.

Coding
Line No. 0000 0001 0002 0003 0004 Instruction LD LDA CON DMX LD Operand 2002 7000 Line No. 0005 0006 0007 0008 0009 Instruction TBCD CON ANDA CON STA Operand

$00FF 8000

2002

Refer to p. 3-176.

Applications of TBCD instruction


Output of 4-digit BCD data Outputs the current value of counter C001 to 7500 to 7515 in 4-digit BCD data. Ladder diagram
0001 #09999 C001 0000 7500 STA

2002

C001 LDA

TBCD

Coding
Line No. Instruction LDB C LD LDA Operand 0001 001 #09999 0000 2002 C001 Line No. 0004 0005 0006 0007 Instruction CON TBCD CON STA 7500 Operand 0000 0001 0002 0003

Output of 8-digit BCD data Outputs the calculated product of DM0000 x DM0001 (0 to 99999999) in BCD of 8 digits at maximum as below: High-order 4-digit BCD data To 8500 to 8515 Low-order 4-digit BCD data To 7500 to 7515

DM0000 x DM0001 = TM00


(High-order 4 digits)

Internal register
(Low-order 4 digits)

DM00 Internal register #10000 = TM00

Internal register --- TM01


(Remainder)

(High-order 4 digits) (Low-order 4 digits)

(Display)

8500 to 8515 7500 to 7515


(High-order 4 digits) (Low-order 4 digits)

3-356

Chapter 8 Programming Examples

8.2 Details
Ladder diagram
2002 DM0000 DM0001 LDA MUL DM0101 LDA #10000 DM0101 DIV STA 8500 STA TM01 LDA 7500 STA

TBCD

TBCD

Coding
Line No. 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009
Refer to p. 3-180.

Instruction LD LDA CON MUL CON DIV CON STA CON LDA

Operand 2002 DM0000 DM0001 #10000 DM0101 TM01

Line No. 0010 0011 0012 0013 0014 0015 0016 0017 0018 0019

Instruction CON TBCD CON STA CON LDA CON TBCD CON STA

Operand

750 DM0101

8500

Application of TBIN instruction


Output of 4-digit BCD data Sets 4 digits of the BCD digital switch (7000 to 7015) as the counter C001 value. Ladder diagram
2002 7000 LDA TBIN C001 STA #09999 C001 0000

Converts data of 7000 to 7015 to BIN data and writes it into C001. Sets C001.

0001

Coding
Line No. 0000 0001 0002 0003
Refer to p. 3-183.

Instruction LD LDA CON TBIN

Operand 2002 7000

Line No. 0004 0005 0006 0007

Instruction CON STA LDB C

Operand C001 0001 001 #09999 0000

1 8

Chapter 8 Programming Examples

3-357

8.2 Details

3-358

Chapter 8 Programming Examples

Index

Index For Visual KV Users Only

Index For Visual KV Users Only


The following is the index with some descriptions for your reference.
Purpose A Access Window, changing device value in Access Window, changing modes in Access Window, displaying directions in Access Window, displaying errors in Access Window, error display in Access Window, increasing device selection speed in Access window, part names functions of Access Window, switching the KV PLC between RUN and PROGRAM (stop) modes in Access Window, using digital trimmer in Application instructions, learning about Arithmetic instructions, learning about B Basic instructions, learning about C Cam switch function, setting item for Cam switch, using KV as CE marking, acquiring Command transmission between KV and personal computer Command transmission, when error occurs during Communication port, specifications of Contact comments, transmitting them to KV PLC Contacts, protecting Conventional KV series, differences with Current consumption D Data memory, functions assigned to Direct clock pulse, outline of Direct clock pulse, outputting pulses with 1:1 ON/OFF ratio using Direct clock pulse, outputting pulses with variable pulse width Direct clock pulse, setting item for E Expansion unit, checking operation of Expansion unit, connecting Expansion unit, maximum number to be connected to Expansion unit, setting its height flush with AC-type basic unit External output, disabling F Forcing input ON/OFF without switch Frequency counter function, setting item for High-speed counter, increasing measurement range of High-speed counter, measuring frequency with High-speed counter, outputting pulses using High-speed counter, reading current value of High-speed counter, resetting the value to other than "0" Input refresh disabled function Devices used with the frequency counter 24-bit high-speed counter Frequency counter function Direct Clock Pulse Output Reading the current value of the high-speed counter Preset function 3-26 3-231 3-221 3-231 3-237 3-211 3-215 Connection information for expansion units Connecting Visual KV Series expansion units Number of connectable units Expansion unit spacer Output prohibition function 1-75 1-71 1-73 1-66 3-26 Data memories Outline of direct clock pulse output ON/OFF ratio of 1:1 Variable pulse width Pulse output setting with the high-speed counter comparator 3-19 3-237 3-238 3-238 3-238 Device used for cam switch function Cam switch function Restriction on acquiring the CE marking Communication command/response list Error code list Communications Specification Contact comment save function Contact protection Compatibility with conventional KV peripheral units General specifications 3-233 3-233 (2) 3-310 3-316 3-306 3-27 1-69 (4) 1-4 Basic instructions 3-34 Device mode Selecting modes and setting/resetting key lock User messages Error messages and error status Error List Turbo function Part names and functions of the Access Window System Mode Digital Trimmer Mode Application instructions Arithmetic instructions 1-87 1-82 1-97 1-97 1-372 1-83 1-82 1-94 1-84 3-36 3-38 Title Page

Index

3-360

Index

Index For Visual KV Users Only


Purpose High-speed counter, resetting the value to "0" High-speed counter, selecting input source for High-speed counter, specifications of High-speed counter, specifying the preset value of High-speed counter, using, as ring counter I Input time constant of basic unit, changing Input time constant of expansion unit, setting Interrupt instruction, outputting relay status independent of scan time Interrupt instructions, learning about Interrupt programs, instructions that cannot be used within Interrupt, reading current value of high-speed counter by Interrupt, setting input condition for Interrupt: when several interrupts are executed K KV IncrediWare (DOS)/LADDER BUILDER for KV, using KV-P3E(01), entering instructions using KV-P3E(01), functions available with KV-P3E(01), operating M Memory card, capacity of Memory card, replacing battery of Multi-step comparator operation of DM, executing O Output, disabling output from KV P Panel mounting of KV Personal computer, receiving data from Personal computer, transmitting data from KV to Program capacity, calculation of Program capacity, learning about Programs, saving into memory card Pulse motor, driving Pulse output at desired frequency Relay Nos. assigned to basic unit Relay Nos. assigned to expansion unit Relay Nos., assigning S Saving current value of counter/DM into ROM Scan time Sensors or other devices, connecting to KV Special utility relays, change in status of, when arithmetic instruction is used Special utility relays, functions assigned to Specified frequency pulse output function, setting item for T Temporary data memory, functions assigned to Timers/counters, maximum number of Temporary data memory Timer/Counter list 3-21 3-18 LOAD and SAVE modes Scan time Wiring procedures for basic units Change in status of special utility relays (arithmetic flags) by arithmetic instructions Special utility relay list Device used for specified frequency pulse output 1-96 3-3 1-67 3-186 3-86 3-228 Attaching a unit directly to a panel Receiving text data Transmitting text data Calculating the byte count used Program capacity Functions [used with KV-P3E(01)] Parameter setting procedure Specified frequency pulse output function Relay list List of relays in expansion units Assigning relay Nos. 1-66 3-318 3-319 3-4 3-4 Output disabled function 3-26 Storage capacity To replace battery Multi-step comparator mode 1-230 1-238 3-234 Cautions when using the previous version of ladder support software Function No. list (alphabetical order) Function Nos. list Basic programming operation (5) 3-41 1-216 1-200 Input time constant change function Input time constant for expansion units Direct Input/Output Interrupt instruction Instructions that cannot be used Input capture Polarity setting for interrupts by an external input Interrupt priority 3-23 1-76 3-197 3-41 3-196 3-195 3-195 3-196 Title Resetting the high-speed counter Count input method Specifications of high-speed counters Preset value of the high-speed counter comparator Ring counter function Page 3-214 3-212 3-208 3-211 3-225

3-255 3-228 3-5 3-6 3-8

Index

3-361

Index

1-230

Index For KV-300, KV-10/80 Users Only

Index For KV-300, KV-10/80 Users Only


A
A/D converter ........................... 1-312 [AN6], 1-334 [AD4] A/D conversion table ................ 1-408 [AN6], 1-357 [AD4] ADD/@ADD: Add .................................................. 3-150 AND: And ................................................................ 3-58 ANB: And Bar ......................................................... 3-58 ANDA/@ANDA: And A ......................................... 3-159 ANL: And Load ....................................................... 3-61 Application Instructions ...................... 3-36, 3-45, 3-95 Arithmetic Instructions ...................... 3-38, 3-48, 3-134 ASC/@ASC: ASCII Convert ................................ 3-183 Assignment of Data Memory ................................. 3-19 Assignment of I/O relay numbers ......................... 3-22

F
FOR: Repeat Start ................................................ 3-125

H
High-Speed Counters .......................................... 3-276 HKEY: 16 Key Input .............................................. 3-131 HSP: High Speed .................................................... 3-86

I
INC/@INC: Increment Memory ............................ 3-172 Indirect Addressing of Data Memory or Relay .. 3-127 Input Relays .............................................................. 3-9 Instruction List .............................................. 3-34, 3-42 INT: Interrupt ........................................................ 3-192 Interface [RS-232C] .............................................. 3-306 Internal register .................................................... 3-135 Internal Utility Relays ............................................. 3-11 Internal Clocks for CTH0 and CTH1 ................... 3-278 Interrupt Instructions ........................................... 3-268 I/O distribution ......................................................... 1-187 ITVL: Interval Timer .............................................. 3-117

B
Basic Instructions ................................ 3-34, 3-42, 3-56 Baud rate ......................................... 2-136, 1-247 [KV-L2] Break signal .......................................................... 3-308

C
C: Counter .............................................................. 3-72 CALL: Subroutine Call ......................................... 3-122 CMP/@CMP: Compare ......................................... 3-146 COM/@COM: Complement .................................. 3-171 Commands [Serial communication] ................... 3-310 Communications ....................................... 2-135, 3-306 CON: Connect ....................................................... 3-102 Connector wiring ....................................................... 1-72 CTC: Counter Comparator .................................. 3-204 CTH1: 16-Bit Counters ......................................... 3-204

J
JMP: Jump ............................................................ 3-106

K
KEEP: Keep ............................................................ 3-80 KV-10/16/24/40/80 ............................ 1-167, 1-175, 1-177 KV-300 ......................................................... 1-166, 1-170 KV-AD4 ................................................................... 1-334 KV-AN6 ................................................................... 1-312 KV-B16R/B16S/C32T .............................................. 1-172 KV-C16X/C32X ....................................................... 1-171 KV-DA4 ................................................................... 1-334 KV-L2 ...................................................................... 1-240 KV-R1A/R16X/R16R/R16T/R8X/R8R/R8T .. 1-173, 1-174 KV-U4/U5 ..................................................... 1-168, 1-169 KV mode [KV-L2] .................................................... 1-253

D
Data Memory ........................................................... 3-19 D/A converter ........................... 1-312 [AN6], 1-334 [AD4] D/A conversion table ................ 1-408 [AN6], 1-357 [DA4] DEC/@DEC: Decrement Memory ........................ 3-172 DI: Interrupt Disabled ........................................... 3-193 DIFD: Differentiate Down ....................................... 3-78 DIFU: Differentiate Up ........................................... 3-78 Dimensions ............................................................. 1-404 DIN rail (mounting) .................................................. 1-180 Direct Clock Pulse ................................................ 3-276 Display Interface Mode [KV-L2] .............................. 1-244 DIV/@DIV: Divide .................................................. 3-150 DMX/@DMX: Demultiplexer ................................. 3-176 DW: Data Memory Write ...................................... 3-136

Index

L
LD: Load .................................................................. 3-57 LDA/@LDA: Load A .............................................. 3-140 LDB: Load Bar ........................................................ 3-57

E
EI: Interrupt Enabled ............................................ 3-193 END: End ................................................................. 3-94 ENDH: End Hi ......................................................... 3-94 ENDS: End Stage ................................................. 3-106 Environment requirements ........................................ 1-64 EORA/@EORA: Exclusive Or A .......................... 3-164 Error code list .......................................................... 1-372 Extended Ladder Diagrams ................................... 3-29

M
Macros ...................................................................... 2-72 MC: Master Control ................................................ 3-89 MCR: Master Control Reset ................................... 3-89 Memory Card .......................................................... 1-230 MEMSW: Memory Switch ...................................... 3-92 Module names ......................................................... 1-175 Mounting Environment .............................................. 1-64 MPP: Pop .............................................................. 3-103 MPS: Push ............................................................ 3-103

3-362

Index

Index For KV-300, KV-10/80 Users Only

MPX/@MPX: Multiplexer ...................................... 3-176 MRD: Read ............................................................ 3-103 MUL/@MUL: Multiply ........................................... 3-150

System Configuration (Memory Card) ..................... 1-196 System specifications [Visual KV Series] ................ 1-382 System specifications [KV-300 Series] ................... 1-392

N
NEXT: Repeat End ................................................ 3-125 Non-procedure mode [KV-L2] ................................. 1-292 NOP: No Operation ................................................ 3-94

T
TBCD/@TBCD: Transfer BCD ............................. 3-180 TBIN/@TBIN: Transfer BIN .................................. 3-180 Temporary Memory ...................................... 2-172, 2-176 Timers and Counters ............................................... 2-169 TMH: 0.01-s Timer .................................................. 3-68 TMIN: Trimmer In .................................................. 3-138 @TMIN: Trimmer Setting ..................................... 3-138 TMR: 0.1-s Timer .................................................... 3-67 TMS: 1-ms Timer .................................................... 3-69 Transmitting text data .......................................... 3-319 Troubleshooting ...................................................... 1-372

O
OR: Or ..................................................................... 3-60 ORA/@ORA: Or A ................................................. 3-161 ORB: Or Bar ............................................................ 3-60 ORL: Or Load .......................................................... 3-63 OUB: Out Bar .......................................................... 3-65 OUT: Out ................................................................. 3-65 Output Relays ......................................................... 3-10

U
UDC: Up-Down Counter ......................................... 3-76

P
Peripheral equipments ............................................ 1-176 Port1/Port2 [KV-L2] ................................................. 1-245 Positionning control ............................................ 3-296 Programming examples ...................................... 3-324

W
W-DE: Wait Down Edge ......................................... 3-98 W-OFF: Wait OFF ................................................... 3-96 W-ON: Wait ON ....................................................... 3-96 W-UE: Wait Up Edge .............................................. 3-98

R
RASC/@RASC: Reverse ASCII Convert ............. 3-183 Receiving text data .............................................. 3-318 Relay/Memory/Memory Switch Lists ....................... 2-167 Relay/Memory Nos. ................................................. 2-167 Relay No. List .......................................................... 2-167 Relay Nos. and Functions ....................................... 2-167 RES: Reset .............................................................. 3-66 RET: Subroutine Return ...................................... 3-122 RETI: Return Interrupt ......................................... 3-192 RLA/@RLA: Rotate Left A ................................... 3-169 ROOT/@ROOT: Square Root .............................. 3-185 RRA/@RRA: Rotate Right .................................... 3-169 RS-232C cable connection .................................. 3-307 RS-232C Protocol ................................................. 3-306 RS-422A [KV-L2] ..................................................... 1-248

X
@xxxx: Differentiation ......................................... 3-137

S
SBN: Subroutine Entry ........................................ 3-122 Serial Communication ......................................... 3-306 SET: Set .................................................................. 3-66 SFT: Shift ................................................................ 3-82 SLA/@SLA: Shift Left A ....................................... 3-166 Special Utility Relays ............................................... 2-174 SRA/@SRA: Shift Right A .................................... 3-166 STA/@STA: Store A ............................................. 3-140 Station No. [KV-L2] ................................................. 1-246 STE: Step End ...................................................... 3-114 STG: Stage ............................................................ 3-106 STP: Step .............................................................. 3-114 SUB/@SUB: Subtract ........................................... 3-150 System configuration ............................................... 1-166

Index

3-363

Index

Index Software/P3E (handheld programmer)

Index Software/P3E (handheld programmer)


A
ACCS ...................................................................... 1-234 ALL CLEAR [FNC60] [P3E] ..................................... 1-217 ALL DATA MEMORY CLEAR (DM ALL CLEAR): [FNC64] [P3E] ...................... 1-219 ALL LATCHING RELAYS RESET (L-RELAY ALL RST): [FNC65] [P3E] ................... 1-219 MULTI-MONITOR [P3E] ......................................... 1-212

O
OFFLINE EDITOR START (OFFLINE EDITOR): [FNC67] [P3E] .................................................... 1-221 OFFLINE EDITOR STOP (QUIT OFF-L EDIT): [FNC68] [P3E] .................................................... 1-221 ON/OFF MONITOR [P3E] ....................................... 1-215

B
Break signal .......................................................... 3-308

P
Printer Setting, Defining Environment Strings .......... 2-77 Printing examples ...................................................... 2-81 PROGRAM CAPACITY CHECK (PROGRAM SIZE): [FNC75] [P3E] .................................................... 1-229 PROGRAM SENT OR RECEIVED (COMMUNICATION): [FNC66] [P3E] ............. 1-220

C
CLEAR [P3E] .......................................................... 1-232 Comments (Relay comment, Line comment) ............ 2-46 Compile ..................................................................... 2-75 Converting N.O./N.C. ................................................ 2-65 Copy, move and delete ............................................. 2-69 COUNTER CLEAR (CTR CLEAR): [FNC62] [P3E] 1-218 Customizing KV-LADDER , Defining Environment Strings ................................ 2-19 Copy, move and delete operation ............................. 2-52

Q
Quitting software ....................................................... 2-16

R
READ TRIMMER SETTING (TRIMMER MONITOR): [FNC73] [P3E] .................................................... 1-228 Registration of cursor position and jump to registered position ................................... 2-59 RELAY ON/OFF (FORCED SET/RESET): [FNC71] [P3E] .................................................... 1-226 Replacing relays ........................................................ 2-64 RS-232C cable connection ......................................... 2-7 RS-232C Protocol ....................................................... 2-3

D
Data Communications between KV and Personal Computer .................................... 3-306 Display mode ........................................................... 2-19 Double coil check ...................................................... 2-76

E
Edit screen ................................................................ 2-27 Entering symbols ....................................................... 2-37 Environment requirements .......................................... 2-3 Error message list ................................................... 2-156

S
SCAN TIME MONITOR [P3E] ................................. 1-212 SCROLL [P3E] ........................................................ 1-202 Search ....................................................................... 2-58 Searching Program [P3E] ....................................... 1-207 Selecting display mode ............................................. 2-19 Setting print range ..................................................... 2-77 Simulator Mode ......................................................... 2-84 Simulator screen ....................................................... 2-86 Starting and quitting software ................................... 2-16 Starting edit mode .................................................... 2-29 Starting the Monitor Function .................................. 2-139 Starting the Simulator ................................................ 2-86 SYNTAX CHECK (PROGRAM CHECK): [FNC74] [P3E] .................................................... 1-228

H
HANDHELD PROGRAMMER CLEAR (P3E CLEAR): [FNC61] .............................................................. 1-217 Handheld Programmer KV-P3E .............................. 1-196 HIGH-SPEED COUNTER CLEAR (HIGH SPEED CTR CLR): [FNC63] [P3E] .......... 1-218

Index

I
Installing Ladder Builder .............................................. 2-9

J
Jump ......................................................................... 2-58

T
Temporary Memory ................................................ 3-21 Time Chart Monitor ................................................. 2-157 Time Chart Viewer ....................................... 2-148, 2-167 TIMER/COUNTER SETTING CHANGE (CHG: T/C SET-V): [FNC70] [P3E] .................... 1-224 TIMER/COUNTER CURRENT VALUE CHANGE (CHG: T/C CURT-V): [FNC69] [P3E] ................. 1-222

L
Ladder Monitor ........................................................ 2-134 Ladder Simulator ....................................................... 2-84 Line comment ........................................................... 2-46

M
Macros ...................................................................... 2-72 Memory Card [P3E] ................................................. 1-230 Monitor Mode .......................................................... 2-134 Monitor screen ........................................................ 2-143 MOVE CURSOR [P3E] ........................................... 1-202

W
WRITE INTO DATA MEMORY (DM WRITE): [FNC72] [P3E] .................................................... 1-227

3-364

Index

Index

3-365

Index

Index

3-366

Index

WARRANTIES AND DISCLAIMERS:


(1) KEYENCE warrants the Products to be free of defects in materials and workmanship for a period of one (1) year from the date of shipment. If any models or samples were shown to Buyer, such models or samples were used merely to illustrate the general type and quality of the Products and not to represent that the Products would necessarily conform to said models or samples. Any Products found to be defective must be shipped to KEYENCE with all shipping costs paid by Buyer or offered to KEYENCE for inspection and examination. Upon examination by KEYENCE, KEYENCE, at its sole option, will refund the purchase price of, or repair or replace at no charge any Products found to be defective. This warranty does not apply to any defects resulting from any action of Buyer, including but not limited to improper installation, improper interfacing, improper repair, unauthorized modification, misapplication and mishandling, such as exposure to excessive current, heat, coldness, moisture, vibration or outdoors air. Components which wear are not warranted. (2) KEYENCE is pleased to offer suggestions on the use of its various Products. They are only suggestions, and it is Buyers responsibility to ascertain the fitness of the Products for Buyers intended use. KEYENCE will not be responsible for any damages that may result from the use of the Products. (3) The Products and any samples (Products/Samples) supplied to Buyer are not to be used internally in humans, for human transportation, as safety devices or fail-safe systems, unless their written specifications state otherwise. Should any Products/Samples be used in such a manner or misused in any way, KEYENCE assumes no responsibility, and additionally Buyer will indemnify KEYENCE and hold KEYENCE harmless from any liability or damage whatsoever arising out of any misuse of the Products/ Samples. (4) OTHER THAN AS STATED HEREIN, THE PRODUCTS/SAMPLES ARE PROVIDED WITH NO OTHER WARRANTIES WHATSOEVER. ALL EXPRESS, IMPLIED, AND STATUTORY WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT OF PROPRIETARY RIGHTS, ARE EXPRESSLY DISCLAIMED. IN NO EVENT SHALL KEYENCE AND ITS AFFILIATED ENTITIES BE LIABLE TO ANY PERSON OR ENTITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, PUNITIVE, SPECIAL OR CONSEQUENTIAL DAMAGES (INCLUDING, WITHOUT LIMITATION, ANY DAMAGES RESULTING FROM LOSS OF USE, BUSINESS INTERRUPTION, LOSS OF INFORMATION, LOSS OR INACCURACY OF DATA, LOSS OF PROFITS, LOSS OF SAVINGS, THE COST OF PROCUREMENT OF SUBSTITUTED GOODS, SERVICES OR TECHNOLOGIES, OR FOR ANY MATTER ARISING OUT OF OR IN CONNECTION WITH THE USE OR INABILITY TO USE THE PRODUCTS, EVEN IF KEYENCE OR ONE OF ITS AFFILIATED ENTITIES WAS ADVISED OF A POSSIBLE THIRD PARTYS CLAIM FOR DAMAGES OR ANY OTHER CLAIM AGAINST BUYER. In some jurisdictions, some of the foregoing warranty disclaimers or damage limitations may not apply. BUYERS TRANSFER OBLIGATIONS: If the Products/Samples purchased by Buyer are to be resold or delivered to a third party, Buyer must provide such third party with a copy of this document, all specifications, manuals, catalogs, leaflets and written information provided to Buyer pertaining to the Products/ Samples.

3-367

INDEX

1
Installation
1. Configuration and Specifications 2. System Installation 3. Access Window 4. KV-D20 Operator Interface Panel 5. KV-10/80 Hardware 6. Handheld Programmer 7. KV-L2 Serial Interface Module 8. KV-AN6 Analog I/O Module 9. KV-AD4/DA4 Analog I/O Unit 10. Troubleshooting 11. Appendices 2. Editor

2
Support Software
1. Introduction

3
Programming
1. Programming 2. Instructions 3. Interrupts 4. High-speed Counters 5. Positioning Control 6. Interrupts, High-speed Counters, Positioning Control 7. Serial Communication 8. Programming Examples

3. Simulator 4. Monitor 5. Appendices

Specifications are subject to change without notice.

KEYENCE CORPORATION
1-3-14, Higashi-Nakajima, Higashi-Yodogawa-ku, Osaka, 533-8555, Japan
AUSTRIA Phone: +43-2236-378266-0 BELGIUM Phone: +32 2 716 40 63 CANADA Phone: +1-905-696-9970 CHINA Phone: +86-21-68757500 CZECH REPUBLIC Phone: +420 222 191 483 FRANCE Phone: +33 1 56 37 78 00 GERMANY Phone: +49-6102-36 89-0 HONG KONG Phone: +852-3104-1010 HUNGARY Phone: +36 14 748 313 ITALY Phone: +39-2-6688220 JAPAN Phone: +81-6-6379-2211 KOREA Phone: +82-31-642-1270

PHONE: +81-6-6379-2211
SWITZERLAND Phone: +41 43 455 77 30 TAIWAN Phone: +886-2-2718-8700 THAILAND Phone: +66-2-369-2777 UK & IRELAND Phone: +44-1908-696900 USA Phone: +1-201-930-0100

MALAYSIA Phone: +60-3-2092-2211 MEXICO Phone: +52-81-8220-7900 NETHERLANDS Phone: +31 40 20 66 100 POLAND Phone: +48 71 36861 60 SINGAPORE Phone: +65-6392-1011 SLOVAKIA Phone: +421 2 5939 6461

A5WW1-MAN-0069

Copyright (c) 1999 KEYENCE CORPORATION. All rights reserved. 084024E-3 0109-5 96M0366 Printed in Japan

Вам также может понравиться