MELSEC-Q/L/F Structured
Programming Manual (Fundamentals)
SAFETY PRECAUTIONS
(Read these precautions before using this product.)
Before using MELSEC-Q, -L, or -F series programmable controllers, please read the manuals included with each
product and the relevant manuals introduced in those manuals carefully, and pay full attention to safety to handle
the product correctly.
Make sure that the end users read the manuals included with each product, and keep the manuals in a safe
place for future reference.
A-1
CONDITIONS OF USE FOR THE PRODUCT
(1) Mitsubishi programmable controller ("the PRODUCT") shall be used in conditions;
i) where any problem, fault or failure occurring in the PRODUCT, if any, shall not lead to any major
or serious accident; and
ii) where the backup and fail-safe function are systematically or automatically provided outside of
the PRODUCT for the case of any problem, fault or failure occurring in the PRODUCT.
(2) The PRODUCT has been designed and manufactured for the purpose of being used in general
industries.
MITSUBISHI SHALL HAVE NO RESPONSIBILITY OR LIABILITY (INCLUDING, BUT NOT
LIMITED TO ANY AND ALL RESPONSIBILITY OR LIABILITY BASED ON CONTRACT,
WARRANTY, TORT, PRODUCT LIABILITY) FOR ANY INJURY OR DEATH TO PERSONS OR
LOSS OR DAMAGE TO PROPERTY CAUSED BY the PRODUCT THAT ARE OPERATED OR
USED IN APPLICATION NOT INTENDED OR EXCLUDED BY INSTRUCTIONS, PRECAUTIONS,
OR WARNING CONTAINED IN MITSUBISHI'S USER, INSTRUCTION AND/OR SAFETY
MANUALS, TECHNICAL BULLETINS AND GUIDELINES FOR the PRODUCT.
("Prohibited Application")
Prohibited Applications include, but not limited to, the use of the PRODUCT in;
• Nuclear Power Plants and any other power plants operated by Power companies, and/or any
other cases in which the public could be affected if any problem or fault occurs in the PRODUCT.
• Railway companies or Public service purposes, and/or any other cases in which establishment of
a special quality assurance system is required by the Purchaser or End User.
• Aircraft or Aerospace, Medical applications, Train equipment, transport equipment such as
Elevator and Escalator, Incineration and Fuel devices, Vehicles, Manned transportation,
Equipment for Recreation and Amusement, and Safety devices, handling of Nuclear or
Hazardous Materials or Chemicals, Mining and Drilling, and/or other applications where there is a
significant risk of injury to the public or property.
Notwithstanding the above, restrictions Mitsubishi may in its sole discretion, authorize use of the
PRODUCT in one or more of the Prohibited Applications, provided that the usage of the PRODUCT
is limited only for the specific applications agreed to by Mitsubishi and provided further that no
special quality assurance or fail-safe, redundant or other safety features which exceed the general
specifications of the PRODUCTs are required. For details, please contact the Mitsubishi
representative in your region.
A-2
REVISIONS
The manual number is written at the bottom left of the back cover.
Print date
Manual number
Revision
Jul., 2008
SH(NA)-080782ENG-A First edition
Jan., 2009
SH(NA)-080782ENG-B Model Addition
Q00UJCPU, Q00UCPU, Q01UCPU, Q10UDHCPU, Q10UDEHCPU,
Q20UDHCPU, Q20UDEHCPU, FX series
Addition
MANUALS
Correction
Generic Terms and Abbreviations in This Manual, Section 1.3, Section 4.3.3,
Section 4.3.4, Section 4.4.1, Section 4.4.2, Appendix 1
Jul., 2009
SH(NA)-080782ENG-C Model Addition
Q00JCPU, Q00CPU, Q01CPU
Addition
Section 3.5, Section 3.6, Section 4.4, Section 4.4.1, Section 4.4.2, Section 4.4.3,
Section 4.4.4, Section 4.4.5, Section 4.4.6, Section 4.6, Section 4.8, Appendix 1
Correction
PURPOSE OF THIS MANUAL is changed to Section 1.2,
Generic Terms and Abbreviations in This Manual is changed to Section 1.3,
Section 1.5, Section 4.2.8, Section 4.3.4, Section 4.5 is changed to Section 4.4.7,
Section 4.5.2, Section 4.5.3, Section 4.6 is changed to Section 4.4.8,
Appendix 2, Appendix 3, Appendix 1 to 2 are changed to Appendix 2 to 3
Oct., 2009
SH(NA)-080782ENG-D Correction
Section 1.3, Section 5.2.2, Appendix 2
Jan., 2010
SH(NA)-080782ENG-E Model Addition
L02CPU, L26CPU-BT
Addition
CONDITIONS OF USE FOR THE PRODUCT
Correction
MANUALS, Section 1.2, Section 1.3, Section 1.5, Section 4.4.1, Section 4.4.4,
Section 4.5.1, Section 4.5.2, Section 4.6
Apr., 2010
SH(NA)-080782ENG-F Model Addition
Q50UDEHCPU, Q100UDEHCPU
Correction
Section 1.2, Section 1.3, Section 1.5, Appendix 2
Sep., 2010
SH(NA)-080782ENG-G Correction
Section 4.4.7, Section 5.1.1, Section 5.1.3, Appendix 2
Jan., 2011
SH(NA)-080782ENG-H Correction
Section 1.2, Section 5.1.1
Mar., 2011
SH(NA)-080782ENG-I
Addition
Section 4.2.5, Section 5.2.3, Section 5.2.4
Correction
Section 1.2, Section 4.2.2, Section 4.2.3, Section 4.2.4, Section 4.2.8,
Section 4.3.4, Section 4.4.4, Section 4.4.7, Section 4.6, Section 5.1.3,
Section 5.1.5
A-3
Print date
Manual number
Jul., 2011
SH(NA)-080782ENG-J
Revision
Model Addition
L02CPU-P, L26CPU-PBT
Addition
Section 5.2.5
Correction
Section 1.3, Section 1.4, Section 1.5, Section 4.2.6, Section 4.2.7, Section 4.4.2,
Section 4.4.3, Section 4.4.4, Section 5.1.3, Section 5.1.6, Section 5.2,
Section 5.2.2
May, 2012
SH(NA)-080782ENG-K "PLC" was changed to "programmable controller".
Model Addition
FX3GC
Correction
INTRODUCTION, MANUALS, Section 1.2, Section 1.3, Section 1.5, Section 4.1.3,
Section 4.2.7, Section 4.3.5, Section 4.4.4, Section 4.4.6, Section 4.5.1,
Section 5.2.4, Appendix 2
Feb., 2013
SH(NA)-080782ENG-L Overall revision due to addition of a Process CPU, Redundant CPU, Universal
model QCPU, and LCPU
Model Addition
Q02PHCPU, Q06PHCPU, Q12PHCPU, Q25PHCPU, Q12PRHCPU,
Q25PRHCPU, Q03UDVCPU, Q04UDVCPU, Q06UDVCPU, Q13UDVCPU,
Q26UDVCPU, L02SCPU, L06CPU, L26CPU
Jul., 2013
SH(NA)-080782ENG-M Model Addition
L02SCPU-P, L06CPU-P, L26CPU-P, FX3S
Correction
Section 1.2, Section 1.3, Section 1.5, Section 4.3.5, Section 4.4.4, Section 4.6
Japanese manual version SH-080735-R
This manual confers no industrial property rights or any rights of any other kind, nor does it confer any patent licenses.
Mitsubishi Electric Corporation cannot be held responsible for any problems involving industrial property rights which may
occur as a result of using the contents noted in this manual.
 2008 MITSUBISHI ELECTRIC CORPORATION
A-4
INTRODUCTION
Thank you for purchasing the Mitsubishi MELSEC-Q, -L, or -F series programmable controllers.
Before using this product, please read this manual and the relevant manuals carefully and develop familiarity with
the programming specifications to handle the product correctly.
When applying the program examples introduced in this manual to an actual system, ensure the applicability and
confirm that it will not cause system control problems.
CONTENTS
SAFETY PRECAUTIONS .................................................................................................................................A - 1
CONDITIONS OF USE FOR THE PRODUCT .................................................................................................A - 2
REVISIONS.......................................................................................................................................................A - 3
INTRODUCTION...............................................................................................................................................A - 5
CONTENTS ......................................................................................................................................................A - 5
MANUALS.........................................................................................................................................................A - 8
1. OVERVIEW
1 - 1 to 1 - 8
1.1 Overview
1-2
1.2 Purpose of This Manual
1-2
1.3 Terms
1-6
1.4 Features of Structured Programs
1-7
1.5 Applicable CPU Modules
1-8
1.6 Compatible Software Package
1-8
2. STRUCTURED DESIGN OF SEQUENCE PROGRAMS
2 - 1 to 2 - 4
2.1 What is a Hierarchical Sequence Program?
2-2
2.2 What is a Structured Sequence Program?
2-3
3. PROCEDURE FOR CREATING PROGRAMS
3.1 Procedure for Creating Sequence Programs in Structured Project
4. PROGRAM CONFIGURATION
4.1 Overview of Program Configuration
3 - 1 to 3 - 2
3-2
4 - 1 to 4 - 58
4-2
4.1.1 Project ........................................................................................................................................... 4 - 3
4.1.2 Program files.................................................................................................................................. 4 - 3
4.1.3 Tasks ........................................................................................................................................... 4 - 4
4.2 POUs
4.2.1
4.2.2
4.2.3
4.2.4
4.2.5
4.2.6
4.2.7
4.2.8
4-5
Types of POU ................................................................................................................................ 4 - 5
Program ......................................................................................................................................... 4 - 6
Functions ....................................................................................................................................... 4 - 6
Function blocks.............................................................................................................................. 4 - 7
Operators....................................................................................................................................... 4 - 7
Ladder blocks ................................................................................................................................ 4 - 8
Programming languages for POUs................................................................................................ 4 - 9
Functions, function blocks, and operators ................................................................................... 4 - 10
A-5
4.2.9 EN and ENO ................................................................................................................................ 4 - 13
4.3 Labels
4.3.1
4.3.2
4.3.3
4.3.4
4.3.5
4.3.6
Global labels ................................................................................................................................ 4 - 15
Local labels.................................................................................................................................. 4 - 15
Label classes ............................................................................................................................... 4 - 16
Setting labels ............................................................................................................................... 4 - 17
Data types.................................................................................................................................... 4 - 18
Expressing methods of constants................................................................................................ 4 - 20
4.4 Method for Specifying Data
4.4.1
4.4.2
4.4.3
4.4.4
4.4.5
4.4.6
4.4.7
4.4.8
4 - 15
4 - 21
Bit data......................................................................................................................................... 4 - 22
Word (16 bits) data ...................................................................................................................... 4 - 23
Double word (32 bits) data........................................................................................................... 4 - 26
Single-precision real/double-precision real data.......................................................................... 4 - 29
String data ................................................................................................................................... 4 - 33
Time data..................................................................................................................................... 4 - 34
Arrays .......................................................................................................................................... 4 - 35
Structures .................................................................................................................................... 4 - 37
4.5 Device and Address
4 - 38
4.5.1 Device.......................................................................................................................................... 4 - 38
4.5.2 Address........................................................................................................................................ 4 - 39
4.5.3 Correspondence between devices and addresses...................................................................... 4 - 40
4.6 Index Setting
4 - 43
4.7 Libraries
4 - 55
4.7.1 User libraries................................................................................................................................ 4 - 56
4.8 Precautions on Assigning a Name
5. WRITING PROGRAMS
5.1 ST
5.1.1
5.1.2
5.1.3
5.1.4
5.1.5
5.1.6
A-6
5 - 1 to 5 - 20
5-2
Standard format ............................................................................................................................. 5 - 2
Operators in ST language.............................................................................................................. 5 - 3
Syntax in ST language................................................................................................................... 5 - 4
Calling functions in ST language ................................................................................................... 5 - 9
Calling function blocks in ST language........................................................................................ 5 - 10
Precautions when using conditional syntax and iteration syntax................................................. 5 - 11
5.2 Structured Ladder/FBD
5.2.1
5.2.2
5.2.3
5.2.4
5.2.5
4 - 57
5 - 13
Standard format ........................................................................................................................... 5 - 13
Ladder symbols in structured ladder/FBD language.................................................................... 5 - 14
Executing order............................................................................................................................ 5 - 16
Ladder branches and compilation results .................................................................................... 5 - 17
Precautions on creating programs with structured ladder/FBD ................................................... 5 - 19
APPENDICES
App - 1 to App - 14
Appendix 1Correspondence between Generic Data Types and Devices
App - 2
Appendix 2Character Strings that cannot be Used in Label Names and Data Names
App - 6
Appendix 3Recreating Ladder Programs
App - 9
Appendix 3.1Procedure for creating a structured program ................................................................... App - 9
Appendix 3.2Example of creating a structured program.....................................................................App - 10
INDEX
Index - 1 to Index - 2
A-7
MANUALS
The manuals related to this product are listed below.
Please place an order as needed.
(1) Structured programming
Manual number
Manual name
(Model code)
MELSEC-Q/L Structured Programming Manual (Common Instructions)
Specifications and functions of common instructions, such as sequence instructions, basic instructions,
and application instructions, that can be used in structured programs
(Sold separately)
MELSEC-Q/L Structured Programming Manual (Application Functions)
Specifications and functions of application functions that can be used in structured programs
(Sold separately)
MELSEC-Q/L Structured Programming Manual (Special Instructions)
Specifications and functions of special instructions, such as module dedicated instructions, PID control
instructions, and built-in I/O function instructions, that can be used in structured programs
(Sold separately)
FXCPU Structured Programming Manual [Device & Common]
Devices and parameters for structured programming provided in GX Works2
(Sold separately)
FXCPU Structured Programming Manual [Basic & Applied Instruction]
Sequence instructions for structured programming provided in GX Works2
(Sold separately)
FXCPU Structured Programming Manual [Application Functions]
Application functions for structured programming provided in GX Works2
(Sold separately)
SH-080783ENG
(13JW07)
SH-080784ENG
(13JW08)
SH-080785ENG
(13JW09)
JY997D26001
(09R925)
JY997D34701
(09R926)
JY997D34801
(09R927)
(2) Operation of GX Works2
Manual name
Manual number
(Model code)
GX Works2 Version 1 Operating Manual (Common)
System configuration, parameter settings, and online operations of GX Works2, which are common to
Simple projects and Structured projects
(Sold separately)
GX Works2 Version 1 Operating Manual (Structured Project)
Operations, such as programming and monitoring in Structured projects, of GX Works2
(Sold separately)
GX Works2 Beginner’s Manual (Structured Project)
Basic operations, such as programming, editing, and monitoring in Structured projects, of GX Works2.
This manual is intended for first-time users of GX Works2.
(Sold separately)
SH-080779ENG
(13JU63)
SH-080781ENG
(13JU65)
SH-080788ENG
(13JZ23)
Operating manuals in PDF format are stored on the CD-ROM of the software package. Printed
manuals are sold separately. To order manuals, please provide the manual number (model
code) listed in the table above.
A-8
1
OVERVIEW
1
OVERVIEW
STRUCTURED DESIGN OF
SEQUENCE PROGRAMS
2
1.3
Terms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-6
1.4
Features of Structured Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-7
1.5
Applicable CPU Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-8
1.6
Compatible Software Package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-8
4
PROGRAM
CONFIGURATION
Purpose of This Manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2
5
WRITING
PROGRAMS
1.2
A
APPENDICES
Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2
I
INDEX
1.1
PROCEDURE FOR
CREATING PROGRAMS
3
1-1
1.1 Overview
This manual describes program configurations and content for creating sequence programs
using a structured programming method, and provides basic knowledge for writing programs.
1.2 Purpose of This Manual
This manual explains programming methods, programming languages, and other information
necessary for creating structured programs.
Manuals for reference are listed in the following table according to their purpose.
For information such as the contents and number of each manual, refer to the list of 'Related
manuals'.
(1) Operation of GX Works2
Purpose
Installation
Learning the
operating
environment and
installation method
GX Works2
Installation
Instructions
GX Works2
Beginner's Manual
Simple
Project
Structured
Project
Learning the
functions and
operation methods
for programming
Learning data setting
methods for
intelligent function
module
1-2
1.1 Overview
Structured
Project
Details
Details
Intelligent
Function
Module
Outline
Learning the project
types and available
languages in GX
Works2
Learning the
operations of
available functions
regardless of project
type.
Simple
Project
Details
Learning all functions
of GX Works2
Learning the basic
operations and
Operation of operating procedures
GX Works2 when creating a
structured project for
the first time
Common
Details
Learning a USB
driver installation
method
Learning the basic
operations and
operating procedures
when creating a
simple project for the
first time
GX Works2 Version 1
Operating Manual
Outline
Details
Details
Details
Outline
Details
For details of instructions used in each programming language, refer to the section 3 on the
next page.
Purpose
Ladder
Simple
Project
SFC
GX Works2
Beginner's Manual
Simple
Project
Structured
Project
Simple
Project
Structured
Project
Details
Outline
*1
Details
Outline
ST
Ladder
SFC
Structured
Project
GX Works2 Version 1
Operating Manual
Details
Outline
Details
Outline
*1
Details
Outline
Structured ladder/
FBD
ST
Outline
Details
Outline
Details
*1: MELSAP3 and FX series SFC only
1.2 Purpose of This Manual
1-3
OVERVIEW
1
(2) Operations in each programming language
(3) Details of instructions in each programming language (for QCPU (Q mode)/LCPU)
Purpose
MELSEC-Q
MELSECProgramming Manual for
MELSEC-Q/L
Q/L
MELSEC-Q/L/QnA
/Structured module to
Structured Programming Manual
Programming Programming Manual
Programming be used
Manual
Manual
Process
Common
Special
Application Common PID Control
Control
Fundamentals Instructions Instructions Functions Instructions Instructions
SFC

Instructions
MELSECQ/L/F
Structured
Programming
Manual
Learning details of
programmable
All
controller CPU
languages error codes,
special relays, and
special registers
*1
Details
Learning the types
and details of
common
instructions
Details
Learning the types
and details of
instructions for
intelligent function
modules
Using
ladder
language
Details
Learning the types
and details of
instructions for
network modules
Details
Learning the types
and details of
instructions for the
PID control
function
Details
Learning the types
and details of the
process control
instructions
Details
Learning details of
specifications,
Using SFC functions, and
language
instructions of SFC
(MELSAP3)
Learning the
fundamentals for
creating a
structured program
Learning the types
and details of the
common
instructions
Details
Details
Details
Learning the types
and details of
instructions for
intelligent function
modules
Using
structured
ladder/FBD
/ST
language
Learning the types
and details of
instructions for
network modules
Learning the types
and details of
instructions for the
PID control
function
Learning the types
and details of
application
functions
Outline
Details
Outline
Details
Details
Outline
Details
Learning the types
and details of the
process control
instructions
*1: Refer to the User's Manual (Hardware Design, Maintenance and Inspection) for the CPU module used.
1-4
1.2 Purpose of This Manual
Details
1
Purpose
MELSECQ/L/F
Structured
Programming
Manual
Fundamentals
FXCPU Structured Programming
Manual
Device &
Common
Basic &
Applied
Instruction
Application
Functions
Learning the types
and details of basic/
Using ladder application
instructions,
language
descriptions of
devices and
parameters
Using SFC
language
Learning details of
specifications,
functions, and
instructions of SFC
Learning the
fundamentals for
creating a structured
program
Using
structured
ladder/FBD/
ST
language
Learning the
descriptions of
devices, parameters,
and error codes
Learning the types
and details of
sequence
instructions
Learning the types
and details of
application functions
FXCPU Programming Manual
FX0, FX0S,
FX0N, FX1,
FXU, FX2C
FX1S, FX1N,
FX2N,
FX1NC,
FX2NC
FX3S, FX3G,
FX3U,
Fx3GC,
FX3UC
Details
Details
Details
Details
Details
Details
Details
Details
Details
Details
1.2 Purpose of This Manual
1-5
OVERVIEW
(4) Details of instructions in each programming language (for FXCPU)
1.3 Terms
This manual uses the generic terms and abbreviations listed in the following table to discuss the
software packages and programmable controller CPUs. Corresponding module models are also
listed if needed.
Term
Description
GX Works2
GX Developer
The product name of the software package for the MELSEC programmable controllers
GX IEC Developer
Basic model QCPU
High Performance model
QCPU
A generic term for the Q00JCPU, Q00CPU, and Q01CPU
A generic term for the Q02CPU, Q02HCPU, Q06HCPU, Q12HCPU, and Q25HCPU
Process CPU
A generic term for the Q02PHCPU, Q06PHCPU, Q12PHCPU, and Q25PHCPU
Redundant CPU
A generic term for the Q12PRHCPU and Q25PRHCPU
A generic term for the Q00UJCPU, Q00UCPU, Q01UCPU, Q02UCPU, Q03UDCPU, Q03UDVCPU,
Universal model
QCPU
Q03UDECPU, Q04UDHCPU, Q04UDVCPU, Q04UDEHCPU, Q06UDHCPU, Q06UDVCPU,
Q06UDEHCPU, Q10UDHCPU, Q10UDEHCPU, Q13UDHCPU, Q13UDVCPU, Q13UDEHCPU,
Q20UDHCPU, Q20UDEHCPU, Q26UDHCPU, Q26UDVCPU, Q26UDEHCPU, Q50UDEHCPU, and
Q100UDEHCPU
High-speed Universal
model QCPU
QCPU (Q mode)
LCPU
FXCPU
CPU module
QnU(D)(H)CPU
QnUDVCPU
QnUDE(H)CPU
A generic term for the Q03UDVCPU, Q04UDVCPU, Q06UDVCPU, Q13UDVCPU, and Q26UDVCPU
A generic term for the Basic model QCPU, High Performance model QCPU, Process CPU, Redundant
CPU, and Universal model QCPU
A generic term for the L02SCPU, L02SCPU-P, L02CPU, L02CPU-P, L06CPU, L06CPU-P, L26CPU,
L26CPU-P, L26CPU-BT, and L26CPU-PBT
A generic term for MELSEC-FX series programmable controllers
(FX0S, FX0, FX0N, FX1, FX1S, FX1N, FX1NC, FXU, FX2C, FX2N, FX2NC, FX3S, FX3G, FX3GC, FX3U, FX3UC)
A generic term for the QCPU (Q mode), LCPU, and FXCPU
A generic term for the Q02UCPU, Q03UDCPU, Q04UDHCPU, Q06UDHCPU, Q10UDHCPU,
Q13UDHCPU, Q20UDHCPU, and Q26UDHCPU
A generic term for the Q03UDVCPU, Q04UDVCPU, Q06UDVCPU, Q13UDVCPU, and Q26UDVCPU
A generic term for the Q03UDECPU, Q04UDEHCPU, Q06UDEHCPU, Q10UDEHCPU,
Q13UDEHCPU, Q20UDEHCPU, Q26UDEHCPU, Q50UDEHCPU, and Q100UDEHCPU
Personal computer
The generic term for personal computers where Windows® operates
IEC 61131-3
The abbreviation for the IEC 61131-3 international standard
A generic term for the sequence instructions, basic instructions, application instructions, data link
Common instruction
instructions, multiple CPU dedicated instructions, multiple CPU high-speed transmission dedicated
instructions, and redundant system instructions
Special instruction
Application function
1-6
1.3 Terms
A generic term for the module dedicated instructions, PID control instructions, socket communication
function instructions, built-in I/O function instructions, and data logging function instructions
A generic term for the functions, such as functions and function blocks, defined in IEC 61131-3.
(The functions are executed with a set of common instructions in a programmable controller.)
1
OVERVIEW
1.4 Features of Structured Programs
This section explains the features of structured programs.
(1) Structured design
A structured design is a method to program control content performed by a programmable
controller CPU, which are divided into small processing units (components) to create
hierarchical structures. A user can design programs knowing the component structures of
sequence programs by using the structured programming.
The following are the advantages of creating hierarchical programs.
• A user can start programming by planning the outline of a program, then gradually work
into detailed designs.
• Programs stated at the lowest level of a hierarchical design are extremely simple and
each program has a high degree of independence.
The following are the advantages of creating structured programs.
• The process of each component is clarified, allowing a good perspective of the program.
• Programs can be divided and created by multiple programmers.
• Program reusability is increased, and it improves the efficiency in development.
(2) Multiple programming languages
Multiple programming languages are available for structured programs. A user can select
the most appropriate programming language for each purpose, and combine them for
creating programs.
Different programming language can be used for each POU.
Table 1.4-1 Programming languages that can be used for structured programs
Name
Description
ST (structured text)
A text language similar to C language, aimed for computer engineers.
Structured ladder
A graphic language that is expressed in form of ladder by using elements such as contacts and coils.
FBD
A graphic language that is expressed in form of ladder by connecting elements such as functions and
function blocks with lines.
For outlines of the programming languages, refer to the following section.
Section 4.2.7. Programming languages for POUs
For details on each programming language, refer to the following chapter.
Chapter 5. WRITING PROGRAMS
The ladder/SFC languages used in the existing GX Developer and Simple projects of GX
Works2 can be used.
For details on writing programs, refer to the following manuals.
Programming manuals for each CPU
(3) Improved program reusability
Program components can be stored as libraries. This means program assets can be utilized
to improve the reusability of programs.
1.4 Features of Structured Programs
1-7
1.5 Applicable CPU Modules
The following table shows the applicable CPU modules for programs in the Structured project.
Table 1.5-1 Applicable CPU modules
Programmable controller type
Basic model QCPU
Q00JCPU, Q00CPU, Q01CPU
High Performance model QCPU
Q02CPU, Q02HCPU, Q06HCPU, Q12HCPU, Q25HCPU
Process CPU
Q02PHCPU, Q06PHCPU, Q12PHCPU, Q25PHCPU
Redundant CPU
Q12PRHCPU, Q25PRHCPU
Q00UJCPU, Q00UCPU, Q01UCPU, Q02UCPU, Q03UDCPU,
Q03UDVCPU, Q03UDECPU, Q04UDHCPU, Q04UDVHCPU,
Universal model QCPU
Q04UDEHCPU, Q06UDHCPU, Q06UDVCPU, Q06UDEHCPU,
Q10UDHCPU, Q10UDEHCPU, Q13UDHCPU, Q13UDVCPU,
Q13UDEHCPU, Q20UDHCPU, Q20UDEHCPU, Q26UDHCPU,
Q26UDVCPU, Q26UDEHCPU, Q50UDEHCPU, Q100UDEHCPU
L02SCPU, L02SCPU-P, L02CPU, L02CPU-P, L06CPU,
LCPU
L06CPU-P, L26CPU, L26CPU-P, L26CPU-BT, L26CPU-PBT
FX0S, FX0, FX0N, FX1, FX1S, FX1N, FX1NC, FXU, FX2C, FX2N,
FXCPU
FX2NC, FX3S, FX3G, FX3GC, FX3U, FX3UC
1.6 Compatible Software Package
The following programming tool is used for creating, editing, and monitoring the programs in the
Structured project.
Table 1.6-1 Compatible software package
Software package name
GX Works2
Model name
SW1DNC-GXW2-E
(1) What is GX Works2?
GX Works2 is a software package used for editing and debugging sequence programs,
monitoring programmable controller CPUs, and other operations. It runs on a personal
computer in the Microsoft® Windows® Operating System environment.
Created sequence programs are managed in units of 'projects' for each programmable
controller CPU. Projects are broadly divided into 'Simple project' and 'Structured project'.
This manual explains the basic programming by referring the Structured project in
GX Works2.
1-8
1.5 Applicable CPU Modules
2
OVERVIEW
1
STRUCTURED DESIGN OF SEQUENCE PROGRAMS
STRUCTURED DESIGN OF
SEQUENCE PROGRAMS
2
4
PROGRAM
CONFIGURATION
What is a Structured Sequence Program? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-3
5
WRITING
PROGRAMS
2.2
A
APPENDICES
What is a Hierarchical Sequence Program?. . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2
I
INDEX
2.1
PROCEDURE FOR
CREATING PROGRAMS
3
2-1
2.1 What is a Hierarchical Sequence Program?
The hierarchy is to create a sequence program by dividing control functions performed in a
programmable controller CPU into a number of levels.
In higher levels, the processing order and timing in a fixed range is controlled.
With each move from a higher level to a lower level, control content and processes are
progressively subdivided within a fixed range, and specific processes are described in lower
levels.
In the Structured project, hierarchical sequence programs are created with the configuration that
states the highest level as the project, followed by program files, tasks, and POUs (abbreviation
for Program Organization Units).
Project
Program file (Operation preparation)
Task (Initialization)
POUs
Initial process
Initial process
Lamp test
Lamp test
Program file (Station A)
Task (Station A control)
Conveyor drive A
Conveyor drive A
Data process A
Conveyor drive B
Data process A
Program file (Station B)
Task (Station B control)
Conveyor drive B
Data process B
Data process B
Indicator output
Task (Indicator control)
Indicator output
2-2
2.1 What is a Hierarchical Sequence Program?
2.2 What is a Structured Sequence Program?
A structured program is a program created by components. Processes in lower levels of
hierarchical sequence program are divided to several components according to their processing
information and functions.
Each component is designed to have a high degree of independence for easy addition and
replacement.
The following shows examples of the process that would be ideal to be structured.
• A process that is used repeatedly in a sequence program.
• A process that can be divided into components.
A process that is used repeatedly in a sequence program
Control content in
a programmable controller CPU
Control content in
a programmable controller CPU
DIV
Calls Process A
MUL
Calls Process A
DIV
MUL
Calls Process A
DIV
MUL
Process A
DIV
Structured
program
MUL
A process that can be divided into components
Divided
Divided
Control
content
in a
programmable
controller
CPU
Control a
Control 1
Control b
Divided
Structured
program
Control c
Control 2
Control d
2.2 What is a Structured Sequence Program?
2-3
2
STRUCTURED DESIGN OF
SEQUENCE PROGRAMS
In a structured program design, segmenting processes in lower levels as much as possible is
recommended.
MEMO
2-4
3
OVERVIEW
1
PROCEDURE FOR CREATING PROGRAMS
STRUCTURED DESIGN OF
SEQUENCE PROGRAMS
2
Procedure for Creating Sequence Programs in Structured Project . . . . . . . . . 3-2
PROGRAM
CONFIGURATION
4
WRITING
PROGRAMS
5
APPENDICES
A
I
INDEX
3.1
PROCEDURE FOR
CREATING PROGRAMS
3
3-1
3.1 Procedure for Creating Sequence Programs in
Structured Project
This section explains the basic procedure for creating a sequence program in the Structured
project.
(1) Creating the program configuration
Procedure
Create program files.
Create tasks.
(2) Creating POUs
Procedure
Create POUs.
Define global labels.
Define local labels.
Edit the programs of each POU.
(3) Setting the programs
Procedure
Register the POUs in the tasks.
(4) Compiling the programs
Procedure
Compile the programs.
Creating the program
configuration
Creating POUs
Setting the programs
POU
Program file
Program file
Task 1
Compiling
the programs
Task 1
Program 1
Function block 1
Program 2
Function block 2
Program 1
Program 2
Sequence
program
Task 2
Task 2
Program 3
Function 1
Program 3
Program 4
3-2
Function 2
Program 4
3.1 Procedure for Creating Sequence Programs in Structured Project
4
OVERVIEW
1
PROGRAM CONFIGURATION
STRUCTURED DESIGN OF
SEQUENCE PROGRAMS
2
4.3
Labels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-15
4.4
Method for Specifying Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-21
4.5
Device and Address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-38
4.6
Index Setting. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-43
4.7
Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-55
4.8
Precautions on Assigning a Name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-57
4
PROGRAM
CONFIGURATION
POUs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-5
5
WRITING
PROGRAMS
4.2
A
APPENDICES
Overview of Program Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-2
I
INDEX
4.1
PROCEDURE FOR
CREATING PROGRAMS
3
4-1
4.1 Overview of Program Configuration
A sequence program created in the Structured project is composed of program files, tasks, and
POUs.
For details of program components, refer to the following sections.
For projects:
Section 4.1.1 Project
For program files:
Section 4.1.2 Program files
For tasks:
Section 4.1.3 Tasks
For POUs:
Section 4.2 POUs
The following figure shows the configuration of program files, tasks, and POUs in the project.
Project
Program file 1
Program file 2
Program file n
Task
Task
Task
POU
Program
POU
Program
POU
Program
POU
Program
POU
Program
POU
Program
Task
POU
Program
Task
POU
Program
POU
Program
4-2
4.1 Overview of Program Configuration
POU
Program
4.1.1
Project
A project is a generic term for data (such as programs and parameters) to be executed in a
programmable controller CPU.
One or more program files need to be created in a project.
4.1.2
Program files
One or more tasks need to be created in a program file. (Created tasks are executed under the
control of the program file.)
The execution types (such as scan execution and fixed scan execution) for executing program
files in a programmable controller CPU are set in the program setting of the parameter.
For details of the execution types set in the parameter, refer to the user's manual for the CPU
module used.
Project
Program file 2
Program file n
Task
Task
Task
POU
Program
POU
Program
POU
Program
POU
Program
POU
Program
POU
Program
Task
POU
Program
Task
POU
Program
4
PROGRAM
CONFIGURATION
Program file 1
POU
Program
POU
Program
4.1 Overview of Program Configuration
4.1.1 Project
4-3
4.1.3
Tasks
A task is an element that contains multiple POUs, and it is registered to a program file.
One or more programs of POU need to be registered in a task. (Functions and function blocks
cannot be registered in a task.)
Project
Program file 1
Program file 2
Program file n
Task
Task
Task
POU
Program
POU
Program
POU
Program
POU
Program
POU
Program
POU
Program
Task
POU
Program
Task
POU
Program
POU
Program
POU
Program
(1) Task executing condition
The executing conditions in a programmable controller CPU are set for each task that is
registered to program files. Executing processes are determined for each task by setting the
executing condition.
The following are the types of task executing condition.
(a) Always (Default executing condition)
Executes registered programs for each scan.
(b) Event
Executes tasks when values are set to the corresponding devices or labels.
(c) Interval
Executes tasks in a specified cycle.
A priority can be set for each task execution.
● Priority
When executing conditions of multiple tasks are met simultaneously, the tasks are
executed according to the set priority.
Tasks are executed in the order from the smallest priority level number.
Tasks set with a same priority level number are executed in the order of task data name.
4-4
4.1 Overview of Program Configuration
4.1.3 Tasks
4.2 POUs
A POU (abbreviation for Program Organization Unit) is a program component defined by each
function.
4.2.1
Types of POU
The following three types can be selected for each POU according to the content to be defined.
• Program
• Function
• Function block
Each POU consists of a program and local labels*1.
A process can be described in a programming language that suits the control function for each
POU.
4
PROGRAM
CONFIGURATION
Project
Program file
Task
Registration
POU
Program
POU folder
POU
Program
POU
Function
POU
Function block
*1: Local labels are labels that can be used only in programs of declared POUs. For details
of local labels, refer to the following section.
Section 4.3.2 Local labels
4.2 POUs
4.2.1 Types of POU
4-5
4.2.2
Program
A program is an element that is stated at the highest level of POU.
Functions, function blocks, and operators are used to edit programs.
Program
Function
Function block
Operator
Sequence programs executed in a programmable controller CPU are created by programs of
POU.
For a simplest sequence program, only one program needs to be created and registered to a
task in order to be executed in a programmable controller CPU.
Programs can be described in the ST or structured ladder/FBD language.
4.2.3
Functions
Functions and operators are used to edit functions.
Functions can be used by calling them from programs, functions, or function blocks.
Function
Function
Operator
Functions always output same processing results for same input values.
By defining simple and independent algorithms that are frequently used, functions can be reused
efficiently.
Functions can be described in the ST or structured ladder/FBD language.
4-6
4.2 POUs
4.2.2 Program
4.2.4
Function blocks
Functions, function blocks, and operators are used to edit function blocks.
Function blocks can be used by calling them from programs or function blocks. Note that they
cannot be called from functions.
Function
Function block
Function block
Operator
Function blocks can retain the input status since they can store values in internal and output
variables. Since they use retained values for the next processing, they do not always output the
same results even with the same input values.
Function blocks can be described in the ST or structured ladder/FBD language.
4
PROGRAM
CONFIGURATION
● Instantiation
Function blocks need to be instantiated to be used in programs.
For details of instantiation, refer to the following section.
Section 4.2.8 Functions and function blocks
Instances are variables representing devices assigned to labels of function
blocks.
Devices are automatically assigned when instances are created with local labels.
4.2.5
Operators
Operators can be used by calling them from programs, functions, or function blocks.
Operators cannot be edited.
Operators always output same processing results for the same input values.
4.2 POUs
4.2.4 Function blocks
4-7
4.2.6
Ladder blocks
In the structured ladder/FBD language, a program is divided into units of ladder blocks.
In the ST language, ladder blocks are not used.
● Ladder block labels
A ladder block label can be set to a ladder block. A ladder block label is used to indicate a
jump target for the Jump instruction.
Ladder block label
4-8
4.2 POUs
4.2.6 Ladder blocks
Jump instruction
Ladder block
4.2.7
Programming languages for POUs
Two types of programming language are available for programs of POU.
The following explains the features of each programming language.
(1) ST: Structured text
Control syntax such as selection branch by conditional syntax or repetitions by iterative
syntax can be described in the structured text language, as in the high-level language such
as C language. Clear and simple programs can be written by using these syntax.
The structured ladder or FBD is a graphical language developed based on the relay ladder
programming technique. They are commonly used for the sequence programming because
they can be understood intuitively.
• Structured ladder
• FBD
4.2 POUs
4.2.7 Programming languages for POUs
4-9
PROGRAM
CONFIGURATION
4
(2) Structured ladder/FBD: (ladder diagram)
4.2.8
Functions, function blocks, and operators
The following table shows differences among functions, function blocks, and operators.
Table 4.2.8-1 Differences among functions, function blocks, and operators
Item
Function
Output variable assignment
Cannot be assigned
Internal variable
Creating instances
Function block
Operator
Can be assigned
Cannot be assigned
Not used
Used
Not used
Not necessary
Necessary
Not necessary
(1) Output variable assignment
A function always outputs a single operation result. A function that does not output any
operation result or outputs multiple operation results cannot be created.
A function block can output multiple operation results. It also can be created without any
output.
An operator always outputs a single operation result. It cannot be edited.
Table 4.2.8-2 Output variable assignment
Function
Function block
Operator
Outputs multiple
operation results
Outputs one
operation result
Outputs one
operation result
Example
Without any output
4-10
4.2 POUs
4.2.8 Functions, function blocks, and operators
(2) Internal variables
A function does not use internal variables. It uses devices assigned directly to each input
variable and repeats operations.
(a) A program that outputs the total of three input variables (When using a function (FUN1))
Function
X0
D109
D109
FUN1
D110
D110
D111
D111
D120
A function block uses internal variables. Different devices are assigned to the internal
variables for each instance of function blocks.
D10
Instance A
Instance B
Function block
Function block
D6200
D6203
D10
D6210
D6213
D13
D11
D6201
D11
D6211
D12
D6202
D12
D6212
4.2 POUs
4.2.8 Functions, function blocks, and operators
D13
4-11
PROGRAM
CONFIGURATION
4
(b) Programs that output the total of three input variables (When using function blocks)
(3) Creating instances
When using function blocks, create instances to reserve internal variables.
Variables can be called from programs and other function blocks by creating instances for
function blocks.
To create an instance, declare as a label in a global label or local label of POU that uses
function blocks. Same function blocks can be instantiated with different names in a single
POU.
Instance A
Function block
D10
D11
D12
D6200
Input label1
D6201
Input label2
D6202
Input label3
D6203
Output label
D13
D6204
Local label
Uses same internal variables
for same instances
Instance A
Instance B
Function block
D10
D11
D12
D6200
Input label1
D6201
Input label2
D6202
Input label3
D6203
Output label
Uses different internal variables
for different instances
Function block
D10
D13
D11
D6204
Local label
D12
D6210
Input label1
D6211
Input label1
D6212
Input label1
D6213
Output label
D13
D6214
Local label
Function blocks perform operations using internal variables assigned to each instance.
If the same function is called in the circuit multiple times, the value of internal
variables or output variables is overwritten everytime the function is called. To
hold the value of internal variables or output variables when the function is called,
edit programs to use function blocks or to save the values as different valuables.
4-12
4.2 POUs
4.2.8 Functions, function blocks, and operators
4.2.9
EN and ENO
An EN (enable input) and ENO (enable output) can be appended to a function and function block
to control their execution.
A Boolean variable used as an executing condition of a function is set to an EN.
A function with an EN is executed only when the executing condition of the EN is TRUE.
A Boolean variable used as an output of function execution result is set to an ENO.
The following table shows the status of ENO and the operation result according to the status of
EN.
Table 4.2.9-1 Status of ENO and the operation result according to the status of EN
ENO
TRUE (Operation execution)
FALSE (Operation stop)
Operation result
TRUE (No operation error)
Operation output value
FALSE (Operation error)
Undefined value
FALSE
Undefined value
4
PROGRAM
CONFIGURATION
EN
1. A setting of an output label to an ENO is not essential.
2. As for application functions, functions with an EN are shown as ‘Function
name_E’.
4.2 POUs
4.2.9 EN and ENO
4-13
● Usage example of EN and ENO
No
Control description
When the EN input is directly connected from the left power rail, the EN input is always TRUE and
➀
the instruction is always executed.
If the ADD_E instruction is used in this manner, the operation result is the same as the ADD
instruction without the EN input.
4-14
➁
When Variable_1 is connected to the EN input, the instruction is executed when Variable_1 is
➂
When the result of Boolean operation is connected to the EN input, the instruction is executed
➃
When the ENO outputs are connected to the EN inputs, three instructions are executed when
➄
When the ENO outputs are not connected, the execution result of the instruction is not output.
TRUE.
when the result of Boolean operation is TRUE.
Variable_1 is TRUE.
4.2 POUs
4.2.9 EN and ENO
4.3 Labels
Labels include global labels and local labels.
4.3.1
Global labels
The global labels are labels that can be used in programs and function blocks.
In the setting of a global label, a label name, a class, a data type, and a device are associated
with each other.
4.3.2
Local labels
The local labels are labels that can be used only in declared POUs. They are individually defined
per POU.
In the setting of a local label, a label name, a class, and a data type are set.
4
4.3 Labels
4.3.1 Global labels
PROGRAM
CONFIGURATION
For the local labels, the user does not need to specify devices. Devices are assigned
automatically at compilation.
4-15
4.3.3
Label classes
The label class indicates from which POU and how a label can be used. Different classes can be
selected according to the type of POU.
The following table shows label classes.
Table 4.3.3-1 Label classes
Applicable POU
Class
VAR_GLOBAL
Description
Program
Function
Common label that can be used in programs and function
blocks
VAR_GLOBAL_
Common constant that can be used in programs and function
CONSTANT
blocks
Label that can be used within the range of declared POUs
VAR
This label cannot be used in other POUs.
VAR_CONSTANT
Constant that can be used within the range of declared POUs
This constant cannot be used in other POUs.
Latch type label that can be used within the range of declared
VAR_RETAIN*1
POUs
This label cannot be used in other POUs.
VAR_INPUT
VAR_OUTPUT
Label that receives a value
This label cannot be changed in a POU.
Label that outputs a value from a function block
Local label that receives a value and outputs the value from a
VAR_IN_OUT
POU
This label can be changed in a POU.
*1: Not supported by FXCPU.
• Input variables, output variables, and input/output variables
VAR_INPUT is an input variable for functions and function blocks, and
VAR_OUTPUT is an output variable for function blocks.
VAR_IN_OUT can be used for both input and output variables.
VAR_INPUT
VAR_IN_OUT
4-16
4.3 Labels
4.3.3 Label classes
VAR_OUTPUT
Function
block
4.3.4
Setting labels
Labels used in a program require setting of either global label or local label.
The following describes setting examples of the arguments g_int1 and g_int2 of the DMOV
instruction.
X0
g_int1
DMOV
EN ENO
s
d
g_int2
● Using the arguments of the DMOV instruction as global labels
Set the Class, Label Name, Data Type, Device, and Address.
● Using the arguments of the DMOV instruction as local labels
Set the Class, Label Name, and Data Type.
PROGRAM
CONFIGURATION
4
4.3 Labels
4.3.4 Setting labels
4-17
4.3.5
Data types
Labels are classified into several data types according to the bit length, processing method, or
value range.
(1) Elementary data types
The following data types are available as the elementary data type.*1
• Boolean type (bit): Represents the alternative status, such as ON or OFF.
• Bit string type (word (unsigned)/16-bit string, double word (unsigned)/32-bit string):
Represents bit arrays.
• Integer type (word (signed), double word (signed)): Handles positive and negative integer
values.
• Real type (single-precision real, double-precision real): Handles floating-point values.
• String type (character string): Handles character strings.
• Time type (time): Handles numeric values as day, hour, minute, and second (in
millisecond).
Table 4.3.5-1 Elementary data types
Elementary data type
Description
Bit
Boolean
0 (FALSE), 1 (TRUE)
1 bit
Word (signed)
Integer
-32768 to 32767
16 bits
-2147483648 to 2147483647
32 bits
16-bit string
0 to 65535
16 bits
32-bit string
0 to 4294967295
32 bits
Double word
Double-precision integer
(signed)
Word (unsigned)/16-bit string
Double word (unsigned)/32-bit
string
Single-precision real*2
*3
Double-precision real
Real
Double-precision real
String*4
Character string
Time*5
Time value
Value range
Bit length
-2128 to -2-126, 0, 2-126 to 2128
32 bits
-21024
64 bits
to
-2-1022,
0,
2-1022
to
Maximum 255 characters
T#-24d20h31m23s648ms to
T#24d20h31m23s647ms
21024
Variable
32 bits
*1: The following data types cannot be used for the structured ladder/FBD/ST language.
They can be only used for the ladder language.
• Timer data type: Handles programmable controller CPU timer devices (T).
• Retentive timer data type: Handles programmable controller CPU retentive timer devices (ST).
• Counter data type: Handles programmable controller CPU counter devices (C).
• Pointer data type: Handles programmable controller CPU pointer devices (P).
*2: The FX3S, FX3G, FX3GC, FX3U, and FX3UC support this data type.
*3: The Universal model QCPU and the LCPU support this data type.
*4: The FX3U and FX3UC support this data type.
*5: This data type is used in time type operation instructions of application function.
For details of the application functions, refer to the following.
MELSEC-Q/L Structured Programming Manual (Application Functions)
FXCPU Structured Programming Manual [Application Functions]
4-18
4.3 Labels
4.3.5 Data types
(2) Generic data types
Generic data type is the data type of labels summarizing some elementary data types. Data
type name starts with 'ANY'.
ANY data types are used when multiple data types are allowed for function arguments and
return values.
Labels defined in generic data types can be used in any sub-level data type.
For example, if the argument of a function is ANY_NUM data type, desired data type for an
argument can be specified from word (signed) type, double word (signed) type, singleprecision real type, and double-precision real type.
Arguments of functions and instructions are described using generic data types, in order to
be used for various different data types.
The following figure shows the types of generic data type and their corresponding
elementary data types.
ANY
4
ANY_NUM
Array*1
Time
ANY_BIT
Structure*2
PROGRAM
CONFIGURATION
ANY_SIMPLE
String
Bit
ANY_REAL
ANY_INT
Singleprecision
real
Word
(signed)
Doubleprecision
real
Double
word
(signed)
ANY16
Word
(unsigned)/
16-bit string
Word
(unsigned)/
16-bit string
The higher 'ANY' data types include sub-level data types.
The highest 'ANY' data type includes all data types.
Double word
(unsigned)/
32-bit string
ANY32
Word
(signed)
Double word
(unsigned)/
32-bit string
Double
word
(signed)
*1: For arrays, refer to the following section.
*2: For structures, refer to the following section.
Section 4.4.7 Arrays
Section 4.4.8 Structures
4.3 Labels
4.3.5 Data types
4-19
4.3.6
Expressing methods of constants
The following table shows the expressing method for setting a constant to a label.
Table 4.3.6-1 Constant expressing method
Constant
Expressing method
type
Bool
Input FALSE or TRUE, or input 0 or 1.
TRUE, FALSE
Binary
Append '2#' in front of a binary number.
2#0010, 2#01101010
Octal
Append '8#' in front of an octal number.
8#0, 8#337
Decimal
Directly input a decimal number, or append 'K' in front of a decimal number.
123, K123
Hexadecimal
Real number
Character
string
Time
4-20
Example
Append '16#' or 'H' in front of a hexadecimal number.
When a lowercase letter 'h' is appended, it is converted to uppercase automatically.
16#FF, HFF
Directly input a real number, or append 'E' in front of a real number.
2.34, E2.34
Enclose a character string with single quotations (') or double quotations (").
'ABC', "ABC"
Append ‘T#’ in front.
4.3 Labels
4.3.6 Expressing methods of constants
T#1h,
T#1d2h3m4s5ms
4.4 Method for Specifying Data
The following shows the six types of data that can be used for instructions in CPU modules.
Bit data
...................... Section 4.4.1
Numeric data
Integer data
Word (Signed) data
........ Section 4.4.2
Double word (Signed) data
Real number data
Character string data .... Section 4.4.5
Time data
....Section 4.4.6
.. Section 4.4.3
Single-precision
real data
............ Section 4.4.4 (1)
Double-precision
real data
............Section 4.4.4 (2)
4
PROGRAM
CONFIGURATION
Data that can be handled by
CPU module
4.4 Method for Specifying Data
4-21
4.4.1
Bit data
Bit data are data handled in units of 1 bit, such as contacts and coils.
'Bit devices' and 'bit-specified word device' can be used as bit data.
(1) Using bit devices
A bit device is specified in unit of one point.
One point of M0 is
the target bit device
M0
EN
SET
ENO
d
Y10
One point of Y10 is
the target bit device
(2) Using word devices
(a) By specifying a bit number for a word device, 1/0 of the specified bit number can be
used as bit data.
b15
Word device
b0
to
1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0
Each bit of a word device can be
used (1=ON, 0=OFF)
Word device
(b) Specify a bit device of word device as '
. Bit number '. (Bit number is
specified in hexadecimal.)
For example, bit 5 (b5) of D0 is specified as D0.5 and bit 10 (b10) of D0 is specified as
D0.A. Note that bit specifications are not applicable for timers (T), retentive timers (ST),
counters (C), and index registers (Z). (Example: Z0.0 is not available).
M0
EN
D0.5
SET
ENO
d
SET
EN ENO
d
Bit-specified word device
(Turns ON bit 5 (b5) of D0)
D0.5
Bit-specified word device
(Turns ON/OFF according to the
status (1/0) of bit 5 (b5) of D0)
Y10
For FXCPU, bit specification of a word device can be used for FX3U and FX3UC.
4-22
4.4 Method for Specifying Data
4.4.1 Bit data
4.4.2
Word (16 bits) data
Word data are 16-bit numeric value data used in basic instructions and application instructions.
The following shows the two types of word data that can be handled in CPU modules.
• Decimal constants ................ -32768 to 32767
• Hexadecimal constants ........ 0000H to FFFFH
For word data, word devices and digit-specified bit device can be used.
Note that word data cannot be specified using digit specification for direct access inputs (DX) and
direct access outputs (DY). (For direct access inputs and direct access outputs, refer to the
User's Manual (Function Explanation, Program Fundamentals) for the CPU module used.)
(1) Using bit devices
(a) By specifying digits of bit devices, word data can be used.
Specify digits of bit data as ' Number of digits Start number of bit device '. Digits can be
specified in the range from K1 to K4 in unit of 4 points (4 bits). (For a link direct device,
specify as 'J Network No. \ Number of digits Start number of bit device '. To specify X100 to
X10F of Network No.2, specify as J2\K4X100.)
The following are the examples of the target points when digits are specified for X0.
4
PROGRAM
CONFIGURATION
QCPU (Q mode)/LCPU
• K1X0 ....... 4 points of X0 to X3
• K2X0 ....... 8 points of X0 to X7
• K3X0 ....... 12 points of X0 to XB
• K4X0 ....... 16 points of X0 to XF
FXCPU
For FXCPU, the device numbers of input/output (X, Y) is assigned in octal.
• K1X0 ....... 4 points of X0 to X3
• K2X0 ....... 8 points of X0 to X7
• K3X0 ....... 12 points of X0 to X13
• K4X0 ....... 16 points of X0 to X17
XF
to
XC XB
to
X8 X7
to
X4 X3
to
X0
K1 specification
range
(4 points)
K2 specification range
(8 points)
K3 specification range
(12 points)
K4 specification range
(16 points)
Figure 4.4.2-1 Digit specification setting range of word data (16 bits)
4.4 Method for Specifying Data
4.4.2 Word (16 bits) data
4-23
(b) The following table shows the numeric values that can be used as source data when
digits are specified at the source
s
.
Table 4.4.2-2 List of digit specification and numeric values that can be used
Number of specified
digits
Value range
0 to 15
K1 (4 points)
K2 (8 points)
0 to 255
K3 (12 points)
0 to 4095
K4 (16 points)
32768 to 32767
(c) When the destination is a word device
For the word device at the destination side, 0s are stored as the status of bit devices
which follow the digit-specified bit devices at the source side.
Ladder example
Processing
Instruction that processes 16-bit data
X010
EN
s
K1X0
K1X0 X3 X2 X1 X0
MOV
ENO
d
0s are stored
D0
b15
b4 b3 b2 b1 b0
D0 0 0 0 0 0 0 0 0 0 0 0 0 X3 X2 X1 X0
Source s
Figure 4.4.2-2 Ladder example and processing details
(d) When digits are specified at the destination d , the points by digit specification are the
target of destination.
The status of bit devices which follow the digit-specified bit devices is not changed.
Ladder example
When the source
s
Processing
is a numeric value
1
3
2
4
H1234 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0
X010
H1234
MOV
EN ENO
s
d
K2M0
M15
M8 M7
M0
0 0 1 1 0 1 0 0
K2M0
Destination d
When the source
s
X010
D0
EN
s
is a word device
MOV
ENO
d
3
Not changed
b15
b8 b7
b0
D0 1 1 1 0 1 0 1 0 1 0 0 1 1 1 0 1
K2M100
M115
K2M100
M108 M107
M100
1 0 0 1 1 1 0 1
Destination d
Not changed
Figure 4.4.2-3 Ladder example and processing details
4-24
4.4 Method for Specifying Data
4.4.2 Word (16 bits) data
4
(2) Using word devices
A word device is specified in unit of one point (16 bits).
X010
100
EN
s
MOV
ENO
d
D0
One point (16 bits) of D0
is the target word device
1. When performing the process with digit specification, a desired value can be
used for the start device number of bit devices.
2. Digits cannot be specified for direct access inputs/outputs (DX, DY).
PROGRAM
CONFIGURATION
4
4.4 Method for Specifying Data
4.4.2 Word (16 bits) data
4-25
4.4.3
Double word (32 bits) data
Double word data are 32-bit numeric value data used in basic instructions and application
instructions.
The following shows the two types of double word data that can be handled in CPU modules.
• Decimal constants ................ -2147483648 to 2147483647
• Hexadecimal constants ........ 00000000H to FFFFFFFFH
For double word data, word devices and digit specification for bit devices can be used.
Note that double word data cannot be specified using digit specification for direct access inputs
(DX) and direct access outputs (DY).
(1) Using bit devices
(a) By specifying digits of bit devices, double word data can be used.
Specify digits of bit data as ' Number of digits
'. (For a link direct
Start number of bit device
device, specify as 'J Network No. \ Number of digits Start number of bit device '. To specify
X100 to X11F of Network No.2, specify as J2\K8X100.)
Digits cannot be specified in the range from K1 to K8 in unit of 4 points (4 bits).
The following are the examples of the target points when digits are specified for X0.
QCPU (Q mode)/LCPU
•
•
•
•
K1X0 ...... 4 points of X0 to X3
K2X0 ...... 8 points of X0 to X7
K3X0 ...... 12 points of X0 to XB
K4X0 ...... 16 points of X0 to XF
•
•
•
•
K5X0...... 20 points of X0 to X13
K6X0...... 24 points of X0 to X17
K7X0...... 28 points of X0 to X1B
K8X0...... 32 points of X0 to X1F
FXCPU
For FXCPU, the device numbers of input/output (X, Y) is assigned in octal.
•
•
•
•
K1X0 ...... 4 points of X0 to X3
K2X0 ...... 8 points of X0 to X7
K3X0 ...... 12 points of X0 to X13
K4X0 ...... 16 points of X0 to X17
X1F
X1C X1B
X18 X17
X14 X13
•
•
•
•
X10 XF
K5X0...... 20 points of X0 to X23
K6X0...... 24 points of X0 to X27
K7X0...... 28 points of X0 to X33
K8X0...... 32 points of X0 to X37
XC XB
X8 X7
X4 X3
X0
K1
specification
range
(4 points)
K2 specification
range
(8 points)
K3 specification range
(12 points)
K4 specification range
(16 points)
K5 specification range
(20 points)
K6 specification range
(24 points)
K7 specification range
(28 points)
K8 specification range
(32 points)
Figure 4.4.3-1 Digit specification setting range of double word data (32 bits)
4-26
4.4 Method for Specifying Data
4.4.3 Double word (32 bits) data
(b) The following table shows the numeric values that can be used as source data when
digits are specified at the source
s
.
Table 4.4.3-1 List of digit specification and numeric values that can be used
Number of
Value range
specified digits
Number of specified
Value range
digits
0 to 15
K5 (20 points)
K2 (8 points)
0 to 255
K6 (24 points)
0 to 16777215
K3 (12 points)
0 to 4095
K7 (28 points)
0 to 268435455
K4 (16 points)
0 to 65535
K8 (32 points)
2147483648 to 2147483647
K1 (4 points)
0 to 1048575
(c) When the destination is a word device
For the word device at the destination side, 0s are stored as the status of bit devices
which follow the digit-specified bit devices at the source side. (Data_s:K1X0,
Data_d:D0)
Ladder example
Processing
Instruction that processes 32-bit data
K1X0 X3 X2 X1 X0
0s are stored
DMOV
EN ENO
s
d
Data_s
Data_d
Source s
4
b15
b4 b3 b2 b1 b0
D0 0 0 0 0 0 0 0 0 0 0 0 0 X3 X2 X1 X0
D1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
b31
b16
PROGRAM
CONFIGURATION
X10
0s are stored
Figure 4.4.3-2 Ladder example and processing details
(d) When digits are specified at the destination d , the points by the specified digit are the
target of destination. (Data_d1:K5M0, Data_d2:K5M10, Data_s:D0)
The status of bit devices which follow the digit-specified bit devices is not changed.
Ladder example
When the source
Processing
is a numeric value
s
H78123456
0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0
3
4
5
6
0 1 1 1 1 0 0 0 0 0 0 1 0 0 1 0
X10
DMOV
EN ENO
s
d
H78123456
Data_d1
Destination d
7
8
1
2
K5M0
M15
M8 M7
M0
0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0
M31
M20 M19
M16
0 0 1 0
Not changed
When the source
s
is a word device
b15
b8 b7
b0
D0 1 1 1 0 0 1 0 0 0 1 0 1 1 1 0 1
b15
b8 b7
b0
D1 0 0 1 1 0 1 0 0 1 0 0 1 0 1 1 1
X10
Data_s
DMOV
EN ENO
s
d
Data_d2
Destination d
M25
M18 M17
M10
1 1 1 0 0 1 0 0 0 1 0 1 1 1 0 1
M41
M30M29
M26
0 1 1 1
Not changed
Figure 4.4.3-3 Ladder example and processing details
4.4 Method for Specifying Data
4.4.3 Double word (32 bits) data
4-27
1. When performing the process with digit specification, a desired value can be
used for the start device number of bit devices.
2. Digits cannot be specified for direct access inputs/outputs (DX, DY).
(2) Using word devices
Devices used in lower 16 bits are specified for a word device.
'Specified device number' and 'specified device number +1' are used for instructions that
process 32-bit data.
M0
100
DMOV
EN ENO
s
d
Transfers 32-bit data
D0
Two points (32 bits) of D0 and D1
are the target word devices
4-28
4.4 Method for Specifying Data
4.4.3 Double word (32 bits) data
4.4.4
Single-precision real/double-precision real data
Single-precision real/double-precision real data are 32-bit floating-point data used in basic
instructions and application instructions.
Real number data can be stored only in word devices.
For FXCPU, double-precision real data is not supported.
(1) Single-precision real (single-precision floating-point data)
Devices used in lower 16 bits are specified for instructions that use real number data.
Real number data are stored in 32 bits of 'specified device number' and 'specified device number +1'.
M0
Transfers real number data
EMOV
EN ENO
d
s
Two points (32 bits) of D0 and D1
are the target word devices
Two points (32 bits) of R100 and R101 are the target word devices
Var_R100
Var_D0
Remark
Floating-point data are represented by two word devices.
The following explains the bit configuration and its meaning when floating-point
data are internally represented.
b31
b30
b31
Sign
b23
to
b22
to
b16
b15
b0
to
b23 to b30
Exponent
b0 to b22
Fraction
• Sign
b31 represents a sign.
0: Positive
1: Negative
• Exponent
b23 to b30 represent n of 2n.
The values of n are as follows according to BIN values of b23 to b30.
b23 to b30
n
FFH
FEH
FDH
81H
80H
7FH
7EH
02H
01H
00H
Not used 127
126
2
1
0
-1
-125 -126 Not used
• Fraction
23 bits of b0 to b22 represent a value of XXXXXX... when the fraction is
expressed as 1.XXXXXX... in binary.
(2) Double-precision real (double-precision floating-point data)
Devices used in lower 16 bits are specified for instructions that use real number data.
Real number data are stored in 64 bits of 'specified device number' and 'specified device
number + 3'.
4.4 Method for Specifying Data
4.4.4 Single-precision real/double-precision real data
4-29
PROGRAM
CONFIGURATION
4
[Sign] 1. [Fraction] 2 [Exponent]
M0
EDMOV
EN ENO
d
Var_R100
Transfers real number data
Var_D0
Four points (64 bits) of D0, D1, D2, and D3
are the target word devices
Four points (64 bits) of R100, R101, R102, and R103 are the target word devices
Remark
1) Floating-point data are represented by four word devices.
[Sign] 1. [Fraction] 2 [Exponent]
The following explains the bit configuration and its meaning when floating-point
data are internally represented.
b63
b62
b63
Sign
to
b52
b51
b16
to
b15
b52 to b62
Exponent
b0
to
b0 to b51
Fraction
• Sign
b63 represents a sign.
0: Positive
1: Negative
• Exponent
b52 to b62 represent n of 2n.
The values of n are as follows according to BIN values of b52 to b62.
b52 to b62
n
7FFH
7FEH 7FDH
Not used 1023 1022
400H 3FFH 3FEH 3FDH 3FCH
2
1
0
-1
-2
02H
01H
-1021 -1022
00H
Not used
• Fraction
52 bits of b0 to b51 represent a value of XXXXXX... when the fraction is
expressed as 1.XXXXXX... in binary.
4-30
4.4 Method for Specifying Data
4.4.4 Single-precision real/double-precision real data
(3) Precautions for when setting input values of single-precision real data/double-precision real
data from the programming tool
(a) Single-precision real
Single-precision real data are processed as 32-bit single precision in the programming
tool, and thus the number of significant figures becomes approximately 7. If the input
value of single-precision real data exceeds 7 digits, the 8th digit is rounded.
If the value after the rounding exceeds a value between -2147483648 and 2147483647,
an operation error occurs.
Example 1: When '2147483647' is set for the input value
8th digit '6' is rounded.
The value is handled as '2147484000'.
Example 2: When 'E1.1754943562' is set for the input value
8th digit '3' is rounded.
The value is handled as 'E1.175494'.
Example 1: When '2147483646.12345678' is set for the input value
16th digit '6' is rounded.
The value is handled as '2147483646.12346'.
Example 2: When 'E1.7976931348623157+307' is set for the input value
16th digit '5' is rounded.
The value is handled as 'E1.79769313486232+307'.
4.4 Method for Specifying Data
4.4.4 Single-precision real/double-precision real data
4-31
4
PROGRAM
CONFIGURATION
(b) Double-precision real
Double-precision real data are processed as 64-bit double precision in the programming
tool, and thus the number of significant figures becomes approximately 15. If the input
value of double-precision real data exceeds 15 digits, the 16th digit is rounded.
If the value after the rounding exceeds a value between -2147483648 and 2147483647,
an operation error occurs.
1. Floating-point data in a CPU module can be monitored by the monitoring
function of the programming tool.
2. To express 0 in floating-point data, set all of the following bits to 0.
(a) Single-precision floating-point data: b0 to b31
(b) Double-precision floating-point data: b0 to b63
3. The setting range of real number is shown below:*1
(a) Single-precision floating-point data
2128 < Device  2-126, 0, 2-126  Device < 2128
(b) Double-precision floating-point data
21024  Device  2-1022, 0, 2-1022  Device  21024
4. Do not specify -0 (when only the highest bit of the floating-point real number is
1) for floating-point data. (A floating-point operation with -0 results an operation
error.)
For a CPU module that performs an internal operation of floating-point
operation with double precision, a floating-point operation does not result an
error since -0 is converted to 0 in a CPU module when -0 is specified.
For a CPU module that performs an internal operation of floating-point
operation with single precision, a floating-point operation results an error since
the process speed is given a priority and -0 is used for an operation as it is
when -0 is specified.
(a) The following is the CPU module in which the operation does not result
an error when -0 is specified.
• High Performance model QCPU in which the internal operation is set
to double precision*2 (The default setting of internal floating-point
operation is double precision.)
(b) The following are the CPU modules in which the operation results an
error when -0 is specified.
• Basic model QCPU*3
• High Performance model QCPU in which the internal operation is set
•
•
•
•
to single precision*2
Process CPU
Redundant CPU
Universal model QCPU
LCPU
• FXCPU*4
*1: For operations when an overflow or underflow is occurred, or when a special value is input, refer to the
following manuals.
• QCPU (Q mode)/LCPU
User's Manuals (Function Explanation, Program Fundamentals) for the CPU module used.
• FXCPU
User's manuals and Programming Manuals for the FXCPU used
*2: Switching between single precision and double precision of the internal floating-point operation is set in the
PLC system of the PLC parameter. For single precision and double precision of floating point operation, refer
to the User's Manual (Function Explanation, Program Fundamentals) for the CPU module used.
*3: The floating point operation is supported with the Basic model QCPU with a serial number whose first five
digits are '04112' or higher.
*4: Only the FX2N, FX2NC, FX3S, FX3G, FX3GC, FX3U, and FX3UC support floating point operations.
4-32
4.4 Method for Specifying Data
4.4.4 Single-precision real/double-precision real data
4.4.5
String data
String data are character data used in basic instructions and application instructions.
From the specified character to the NULL code (00H) that indicates the end of the character
string are the target string data.
(1) When the specified character is NULL code
The NULL code is stored by using one word.
M0
$MOV
" "
EN
s
ENO
d
Var_D0
D0 NULL
Transfers character string data
Specification of NULL code (00H)
(2) When the number of characters is an even number
M0
"ABCD"
$MOV
EN
s
ENO
d
Var_D0
D0
42H
41H
D1
44H
43H
D2
NULL
Transfers character string data
Specification of a character string
composed of even numbers
(3) When the number of characters is an odd number
Character string data and NULL code are stored by using the 'number of characters /2'
words (Rounding the fractional part).
For example, when 'ABCDE' is transferred to word devices starting from D0, the character
string 'ABCDE' and the NULL code are stored to D0 to D2. (The NULL code is stored to the
higher 8 bits of the last one word).
M0
"ABCDE"
$MOV
EN
s
ENO
d
Var_D0
D0
42H
41H
D1
44H
43H
D2 NULL
45H
Transfers character string data
Specification of a character string
composed of odd numbers
4.4 Method for Specifying Data
4.4.5 String data
4
PROGRAM
CONFIGURATION
Character string data and NULL code are stored by using the 'number of characters /2+1'
words.
For example, when 'ABCD' is transferred to word devices starting from D0, the character
string 'ABCD' is stored to D0 and D1, and the NULL code to D2. (The NULL code is stored to
the last one word).
4-33
4.4.6
Time data
Time data are used in time type operation instructions of application functions.
Specify time data in the T#10d20h30m40s567ms form.
For example. the following adds ‘1 Day, 2 Hours, 3 Minutes, and 4 Seconds’ to ‘10 Days, 20
Hours, 30 Minutes, 40 Seconds, and 567 Milliseconds’.
T#10d20h30m40s567ms
g_time1
T#1d2h3m4s
ADD_TIME
_IN1
_IN2
g_time1
g_time2
Each value of time data can be specified within the following range.
Table 4.4.6-1 Allowable specification range of time data
Value
d (Day)
Range
0 to 24
h (Hour)
0 to 23
m (Minute)
0 to 59
s (Second)
0 to 59
ms (Millisecond)
0 to 999
For application functions, refer to the following manuals.
MELSEC-Q/L Structured Programming Manual (Application Functions)
FXCPU Structured Programming Manual [Application Functions]
4-34
4.4 Method for Specifying Data
4.4.6 Time data
4.4.7
Arrays
An array represents a consecutive aggregation of same data type labels.
Arrays can be defined by the elementary data types or structures.
(
GX Works2 Version 1 Operating Manual (Structured Project))
The maximum number of arrays differs depending on the data types.
One-dimensional array
Label name
boolary1
Index
[0]
Two-dimensional array
Label name
Index
[0,0]
[0,1]
[1]
[1,0]
[1,1]
[n]
[m,0]
boolary2
[0,n]
[m,n]
4
(1) Definition of arrays
PROGRAM
CONFIGURATION
The following table shows the format of definition.
Table 4.4.7-1 Form used to define array
Number of
Format
array
Remarks
dimensions
One
dimension
Two
dimensions
Three
dimensions
Array of elementary data type/structure name (array start value .. array end
value)
(Definition example) Bit (0..2)
Array of elementary data type/structure name (array start value .. array end
value, array start value .. array end value)
For elementary data types
Section 4.3.5
For structured data types
(Definition example) Bit (0..2, 0..1)
Array of elementary data type/structure name (array start value .. array end
Section 4.4.8
value, array start value .. array end value, array start value .. array end value)
(Definition example) Bit (0..2, 0..1, 0..3)
(2) Expression of arrays
To identify individual labels of an array, append an index
Example)
enclosed by '[ ]' after the label name.
boolary1 [0]
Values that can be specified for indexes are within the range
from -32768 to 32767.
Label name
boolary2 [0.3]
index
For an array with two or more dimensions, delimit indexes in
'[ ]' by ','.
For the ST and structured ladder/FBD languages, labels (word (signed) or double word
(signed) data type) can be used for indexes as shown on the next page.
Note that Z0 or Z1 cannot be used in the programs if labels are used for indexes.
4.4 Method for Specifying Data
4.4.7 Arrays
4-35
[Structured ladder/FBD]
[ST]
FOR Index1:=0
TO 4
BY 1 DO
INC(TRUE,Var_D0[Index1]);
END_FOR;
1. When a label or a device is specified for an array index, the operation is
performed with a combination of multiple sequence instructions. Therefore, if
an interruption occurs during the operation of the array label, an unintended
operation result may be produced.
When using interrupt programs, use interrupt disable/enable instructions (DI/EI
instructions) as necessary.
2. If the index*1 which is outside of the defined range is specified for an array
index, any of the following operations occur.
•An operation error occurs.
•A current value of other label is referred or written.
*1: For example, a value other than the value within 0 to 2 is used for the index of an array which
is declared with the bit array (0..2).
(3) Maximum number of array elements
The maximum number of array elements differs depending on data types as shown below.
Table 4.4.7-2 Maximum number of array
Data type
4-36
Maximum number
Bit, word (signed), word (unsigned)/16-bit string, timer, counter, and retentive timer
32768
Double word (signed), double word (unsigned)/32-bit string, single-precision real, and time
16384
Double-precision real
8192
String
32768 divided by string length
4.4 Method for Specifying Data
4.4.7 Arrays
4.4.8
Structures
A structure is an aggregation of different data type labels.
Structures can be used in all POUs.
To use structures, first create the configuration of structure, and define a structure label name for
the created structure as a new data type
(
GX Works2 Version 1 Operating Manual (Structured Project))
To use each element of structure, append an element name after the structure label name with '.'
as a delimiter in between.
Example) When using the element
of the structured data
dut_a1 . in00
Structure Element name
label name
The arranged structured data can be specified as arguments of functions and function blocks.
When arrays are used and accessed using array indices to specify a label or device, a bitspecified word device can not be specified for a bit type element.
Example) When using the element
of the arranged structured data
dut_b1 [0] . in00
Structure
label name
Index Element
name
Creating structures
Structure name
Element
samp_fb1
Bit bo00
Define labels
Structure label name Structure name
Bit bo01
dut_a1
Word (signed) in00
samp_fb1
Expression in a program
dut_a1.bo00
dut_a1.in00
dut_a1.bo01
EN
s
MOV
ENO
d
idata1
4.4 Method for Specifying Data
4.4.8 Structures
4-37
PROGRAM
CONFIGURATION
4
Structures can also be used as arrays. When a structure is declared as an array, append an
index enclosed by '[ ]' after the structure label name. When arrays are used and accessed using
array indices to specify a label or device, the maximum value in an array is 32767.
4.5 Device and Address
This section explains the method for expressing programmable controller CPU devices. The
following two types of format are available.
• Device: This format consists of a device name and a device number.
• Address: A format defined in IEC61131-3. In this format, a device name starts with %.
4.5.1
Device
Device is a format that uses a device name and a device number.
Example)
X0
W35F
Device name
Device number
For details of devices, refer to the following manuals.
User's Manual (Function Explanation, Program
Fundamentals) for the CPU module used.
FXCPU Structured Programming Manual [Device & Common]
4-38
4.5 Device and Address
4.5.1 Device
4.5.2
Address
Address is a format defined in IEC61131-3.
The following table shows details of format that conforms to IEC61131-3.
Table 4.5.2-1 Address definition specifications
Start
1st character:
2nd character: data size
position
3rd character and later:
I
Input
(Omitted)
Bit
Numeric characters used for
Q
Output
X
Bit
detailed classification
W
Word (16 bits)
D
Double word (32 bits)
numbers.
L
Long word (64 bits)*1
A period may be omitted.
%
M
Internal
Number
classification
Number
corresponding to
Use '.' (period) to delimit the
numbers from the subsequent
the device
number (decimal
notation)
*1: Not supported by FXCPU.
Example)
%I X0
Position
• X, J\X (X device) : I (input)
4
%MX1 . 863
Data Classification Number
size
• Y, J\Y (Y device) : Q (output)
• Other devices
: M (internal)
● Data size
Data size is a class indicating the size of data.
The following shows the format rules corresponding to the device format.
• Bit device
: X (bit)
• Word device
: W (word), D (double word), L (long word)
● Classification
Classification is a minor class indicating the type of a device that cannot be identified
only by its position and size.
Devices X and Y do not support classification.
For the format corresponding to the device format, refer to the following section.
Section 4.5.3 Correspondence between devices and addresses
Long words are used in double-precision real operation instructions of the
Universal model QCPU/LCPU.
4.5 Device and Address
4.5.2 Address
4-39
PROGRAM
CONFIGURATION
● Position
Position is a major class indicating the position to
which data are allocated in three types: input,
output, and internal.
The following shows the format rules
corresponding to the device format.
4.5.3
Correspondence between devices and addresses
This section explains the correspondence between devices and addresses.
(1) Correspondence between devices and addresses
The following table shows the correspondence between devices and addresses.
(a) QCPU (Q mode)/LCPU
Table 4.5.3-1 Correspondence between devices and addresses (1/2)
Device
Input
device and address
Address
Device
Address
X
Xn
%IXn
X7FF
%IX2047
Output
Y
Yn
%QXn
Y7FF
%QX2047
Internal relay
M
Mn
%MX0.n
M2047
%MX0.2047
Latch relay
L
Ln
%MX8.n
L2047
%MX8.2047
Annunciator
F
Fn
%MX7.n
F1023
%MX7.1023
SM
SMn
%MX10.n
SM1023
%MX10.1023
FX
FXn
None
FX10
None
Function output
FY
FYn
None
FY10
None
Edge relay
V
Vn
%MX9.n
V1023
%MX9.1023
Direct access input
DX
DXn
%IX1.n
DX7FF
%IX1.2047
Direct access output
DY
DYn
%QX1.n
DY7FF
%QX1.2047
Contact
TS
Tn
%MX3.n
TS511
%MX3.511
Coil
TC
Tn
%MX5.n
TC511
%MX5.511
Current value
TN
Tn
%MW3.n
TN511
%MW3.511
%MD3.n
T511
%MD3.511
Contact
CS
Cn
%MX4.n
CS511
%MX4.511
Coil
CC
Cn
%MX6.n
CC511
%MX6.511
Current value
CN
Cn
%MW4.n
CN511
%MW4.511
%MD4.n
C511
%MD4.511
Contact
STS
STn
%MX13.n
STS511
%MX13.511
Coil
STC
STn
%MX15.n
STC511
%MX15.511
Current value
STN
STn
%MW13.n
STN511
%MW13.511
%MD13.n
ST511
%MD13.511
D
Dn
Retentive timer
Counter
Timer
Special relay
Function input
Data register
%MW0.n
%MD0.n
%MW10.n
D11135
%MW0.11135
%MD0.11135
%MW10.1023
Special register
SD
SDn
Function register
FD
FDn
None
FD0
None
Link relay
B
Bn
%MX1.n
B7FF
%MX1.2047
Link special relay
SB
SBn
%MX11.n
SB3FF
%MX11.1023
Link register
Link special register
Intelligent function
module device
4-40
Example of correspondence between
Expressing method
Device
W
SW
G
Wn
SWn
Ux\Gn
%MD10.n
%MW1.n
%MD1.n
%MW11.n
%MD11.n
%MW14.x.n
%MD14.x.n
%MW2.n
SD1023
W7FF
SW3FF
U0\G65535
%MD10.1023
%MW1.2047
%MD1.2047
%MW11.1023
%MD11.1023
%MW14.0.65535
%MD14.0.65535
%MW2.32767
File register
R
Rn
Pointer
P
Pn
"" (Null character)
Interrupt pointer
I
In
None
-
-
Nesting
N
Nn
None
-
-
Index register
Z
Zn
%MD2.n
%MW7.n
%MD7.n
4.5 Device and Address
4.5.3 Correspondence between devices and addresses
R32767
P299
Z9
%MD2.32767
None
%MW7.9
%MD7.9
Table 4.5.3-1 Correspondence between devices and addresses (2/2)
Example of correspondence between
Expressing method
Device
Device
device and address
Address
Device
Address
Step relay
S
Sn
%MX2.n
S127
%MX2.127
SFC transition device
TR
TRn
%MX18.n
TR3
%MX18.3
SFC block device
BL
BLn
%MX17.n
BL3
%MX17.3
Link input
Jx\Xn
%IX16.x.n
J1\X1FFF
%IX16.1.8191
Link output
Jx\Yn
%QX16.x.n
J1\Y1FFF
%QX16.1.8191
Link relay
Jx\Bn
%MX16.x.1.n
J2\B3FFF
Link register
J
Jx\Wn
Link special relay
Jx\SBn
Link special register
Jx\SWn
File register
ZR
%MW16.x.1.n
%MD16.x.1.n
%MX16.x.11.n
%MW16.x.11.n
%MD16.x.11.n
%MW12.n
ZRn
%MD12.n
%MX16.2.1.16383
%MW16.2.1.16383
J2\W3FFF
%MD16.2.1.16383
J2\SB1FF
%MX16.2.11.511
J2\SW1FF
%MW16.2.11.511
%MW12.32767
ZR32767
%MD12.32767
(b) FXCPU
Table 4.5.3-2 Correspondence between devices and addresses
device and address
Address
Device
Address
Input
X
Xn
%IXn
X367
%IX247
Output
Y
Yn
%QXn
Y367
%QX247
Auxiliary relay
M
Mn
%MX0.n
M499
%MX0.499
Contact
TS
Tn
%MX3.n
TS191
%MX3.191
Coil
TC
Tn
%MX5.n
TC191
%MX5.191
%MW3.n
TN191
%MW3.191
%MD3.n
T190
%MD3.190
Current value
TN
Tn
Contact
CS
Cn
%MX4.n
CS99
%MX4.99
Coil
CC
Cn
%MX6.n
CC99
%MX6.99
Current value
CN
Cn
%MW4.n
CN99
%MW4.99
%MD4.n
C98
%MD4.98
%MW0.n
D199
%MW0.199
%MD0.n
D198
%MD0.198
Data register
Intelligent function
D
Dn
G
Ux\Gn
Extension register
R
Rn
Extension file register
ER
Pointer
module device
%MW14.x.n
%MD14.x.n
U0\G09
%MW14.0.10
%MD14.0.9
%MW2.n
R32767
%MW2.32767
%MD2.n
R32766
%MD2.32766
ERn
None


P
Pn
"" (Null character)
P4095
None
Interrupt pointer
I
In
None


Nesting
N
Nn
None


Z
Zn
%MW7.n
Z7
%MW7.7
%MD7.n
Z6
%MD7.6
V
Vn
%MV6.n
V7
%MW6.7
S
Sn
%MX2.n
S4095
%MX2.4095
Index register
State
4.5 Device and Address
4.5.3 Correspondence between devices and addresses
4
PROGRAM
CONFIGURATION
Timer
Device
Counter
Example of correspondence between
Expressing method
Device
4-41
(2) Digit specification of bit devices
The following table shows the correspondence between devices and addresses when
specifying digits of bit devices.
Table 4.5.3-3 Correspondence of formats with digit specification
Device
K[Number of digits][Device name][Device number]
(Number of digits: 1 to 8)
Address
%[Position of memory area][Data size]19.[Number of
digits].[Classification].[Number]
(Number of digits: 1 to 8)
• Correspondence examples
Device
Address
K1X0
%IW19.1.0
K4M100
%MW19.4.0.100
K8M100
%MD19.8.0.100
K2Y7E0
%QW19.2.2016
(3) Bit specification of word device
The following table shows the correspondence between devices and addresses when
specifying a bit device of word device.
Table 4.5.3-4 Correspondence of formats with bit specification
Device
Address
[Device name][Device number].[Bit number]
%[Position of memory area]X[Classification].[Device
(Bit number: 0 to F)
number].[Bit number]
• Correspondence examples
Device
Address
D11135.C
%MX0.11135.12
SD1023.F
%MX10.1023.15
• Index setting, digit specification of bit devices, and bit specification of word
device
Index setting, digit specification of bit devices, and bit specification of word
device cannot be applied to labels.
4-42
4.5 Device and Address
4.5.3 Correspondence between devices and addresses
4.6 Index Setting
(1) Overview of the index setting
(a) The index setting is an indirect setting that uses index registers.
When the index setting is used in a sequence program, the device consists of ‘directly
specified device number’ + ‘content of index register’.
For example, when D2Z2 is specified and the value of Z2 is 3, D(2+3)=D5 is set as the
target.
(b) For Universal model QCPU, LCPU, and FXCPU, indexes can be set in 32-bit range in
addition to 16-bit range.
(2) 16-bit index setting
(a) Setting an index in 16-bit range
Values from -32768 to 32767 can be set to index registers*1.
The following shows how the index is set.
-1
X0
D10Z0
EN
s
MOV
ENO
d
MOV
EN ENO
s
d
Stores -1 at Z0.
Z0
4
D0
Stores the data of D10Z0=
D{10+(-1)} = D9 to D0.
PROGRAM
CONFIGURATION
X0
Index setting
*1 For the index setting, refer to the user's manual (function explanation, program
fundamentals) for the CPU module used.
(b) Devices that can be used for the index setting (for QCPU (Q mode), LCPU)
The index setting can be applied to devices used by contacts, coils, basic instructions,
and application instructions except for the restrictions listed in the tables below. The
index setting cannot be applied to labels.
1) Devices that cannot be used for the index setting
Device
Description
E
Floating-point data
$
Character string data
.
(D0.1 etc.)
Bit-specified word device
FX, FY, FD
Function devices
P
Pointers used as labels
I
Interrupt pointers used as labels
Z
Index registers
S
Step relays*3
TR
SFC transition devices*2
BL
SFC block devices*3
*2: SFC transition devices and SFC block devices are devices
for SFC programs. For details, refer to the following manual.
• MELSEC-Q/L/QnA Programming Manual (SFC)
*3: The SFC block devices (BL) and step relays (S) of a High-speed Universal model QCPU can be used for
the index setting under the following ranges.
• SFC block device (BL): BL0 to BL319
• Step relay (S): Within the range set in the parameter
When the step relays (S) in an SFC block device are selected, S0 to S511 can be used for the index
setting.
4.6 Index Setting
4-43
2) Devices with restrictions on index registers
Device
Description
Example
TS0Z0
Only Z0 or Z1 can be used for contacts or
T
TC1Z1
100
coils of the timer.
CS0Z1
Only Z0 or Z1 can be used for contacts or
C
CC1Z0
100
coils of the counter.
OUT_T
EN ENO
s1
s2
OUT_C
EN ENO
s1
s2
(c) Devices that can be used for the index setting (for FXCPU)
The following table shows the devices that can be used for the index setting.
Device
Description
M, S, T, C, D, R,
Decimal devices, values
KnM, KnS, P, K
X, Y, KnX, KnY
Octal devices
H
Hexadecimal values
1) Devices with restrictions on index registers
When using FXCPU, note the following precautions.
• The index setting for devices used in the basic instructions is available for
FX3U and FX3UC only.
• The index setting cannot be applied to 32-bit counter and special auxiliary
relay.
Remark
There are no usage restrictions on index register numbers for current values of
the timer and counter.
X0
TC0
100
EN
s1
s2
TN0Z4
EN
s
SM400
OUT_T
ENO
Set value of timer
(Index setting is not applicable)
BCD
ENO
d
K4Y30
Current value of timer
X1
CC100
10
EN
s1
s2
OUT_C
ENO
Set value of counter
(Index setting is not applicable)
SM400
CN100Z6
EN
s
BCD
ENO
d
K2Y40
Current value of counter
4-44
4.6 Index Setting
(d) The following figure shows the examples of index setting and their actual processing
devices.
(With the setting of Z0=20 and Z1=5)
Ladder example
X1
K20
EN
s
MOV
ENO
d
Z0
K-5
MOV
EN ENO
s
d
Z1
X1
MOV
ENO
d
K1M38Z1
K20
EN
s
MOV
ENO
d
Z0
K-5
MOV
EN ENO
s
d
Z1
D0Z0
MOV
EN ENO
s
d
K3Y12FZ1
K2X50Z0
EN
s
X0
X1
K2X64
Description
K2X50Z0
EN
s
MOV
ENO
d
K1M33
K2X(50 + 14) = K2X64
Converts K20 to a hexadecimal number.
K1M38Z1
K1M(38 - 5) = K1M33
X1
D20
EN
s
MOV
ENO
d
K3Y12A
Description
D0Z0
K3Y12FZ1
D (0 + 20) = D20
K3Y(12F - 5) = K3Y12A
Hexadecimal number
4
Figure. 4.6-1 Ladder examples and actual processing devices
(3) 32-bit index setting (for Universal model QCPU (excluding Q00UJCPU), LCPU, and
FXCPU)
For Universal model QCPU (excluding Q00UJCPU) and LCPU, either of the following two
methods can be selected to specify index registers used for a 32-bit index setting.
• Specify a range of index registers used for a 32-bit index setting.
• Specify a 32-bit index setting using 'ZZ'.
For FXCPU, combine index registers V (from V0) and Z (from Z0) for a 32-bit index setting.
32-bit index settings using 'ZZ' can be used for the following CPU modules only.
• QnU(D)(H)CPU with a serial number whose first five digits are '10042' or higher
(excluding Q00UJCPU)
• QnUDE(H)CPU
• QnUDVCPU
• LCPU
4.6 Index Setting
4-45
PROGRAM
CONFIGURATION
X0
Actual processing device
(a) Specifying a range of index registers used for a 32-bit index setting
1) Values from
2147483648 to 2147483647 can be set to index registers.
The following shows how the index is set.
X0
40000
DMOV
EN ENO
s
d
X0
ZR10Z0
EN
s
MOV
ENO
d
Stores 40000 to Z0
Var_Z0
D0
Stores the data of
ZR {10+40000} = ZR40010 to D0
Index setting
2) Specification method
When setting indexes in 32-bit range, specify the start number of index
registers to be used in “Indexing Setting for ZR Device” setting in the
<<Device>> tab of the PLC parameter.
Figure 4.6-2 Index setting for ZR device on the parameter setting screen
When changing the start number of index registers to be used in the device
setting of the PLC parameter, do not change nor write only parameters to the
programmable controller. Always write parameters along with the program to the
programmable controller.
If data are forcibly written, the operation error "CAN'T EXE. PRG." (error code:
2500) occurs.
3) Devices that can be used for index settings
Only the following devices can be used for index settings.
Device
Description
ZR
Serial number access file register
D
Extended data register
W
Extended link register
M*3
Internal relay
B*3
Link relay
D*3
Data register
W*3
Link register
Un\B*3
Link relay
Un\W*3
Link register
*3: The devices can be used for High-speed Universal model QCPU only.
4-46
4.6 Index Setting
4) Usage range of index registers
The following table lists the usage range of index registers when setting
indexes in 32-bit range.
Since the specified index register (Zn) and next index register (Zn+1) are used
for index setting in 32-bit range, make sure not to overlap index registers being
used.
Setting value
Index register
Setting value
Index register
Z0
Z0, Z1
Z10
Z10, Z11
Z1
Z1, Z2
Z11
Z11, Z12
Z2
Z2, Z3
Z12
Z12, Z13
Z3
Z3, Z4
Z13
Z13, Z14
Z4
Z4, Z5
Z14
Z14, Z15
Z5
Z5, Z6
Z15
Z15, Z16
Z6
Z6, Z7
Z16
Z16, Z17
Z7
Z7, Z8
Z17
Z17, Z18
Z8
Z8, Z9
Z18
Z18, Z19
Z9
Z9, Z10
Z19
Not applicable
5) The following figure shows the examples of index setting and their actual
processing devices.
4
Ladder example
Actual processing device
X1
X0
K100000
DMOV
EN
ENO
s
d
K-20
EN
s
DMOV
ENO
d
ZR1000Z0
EN
s
MOV
ENO
d
X1
PROGRAM
CONFIGURATION
(With the setting of Z0 (32 bits) =100000 and Z2 (32 bits)=-20)
Z0
ZR101000
EN
s
MOV
ENO
d
D12980
Description
Z2
ZR1000Z0
D13000Z2
ZR(1000+100000) ZR101000
D(30-20) D12980
D13000Z2
Figure 4.6-3 Ladder examples and actual processing devices
4.6 Index Setting
4-47
(b) Specifying a 32-bit index setting using 'ZZ'
1) A 32-bit index can be specified to the index register by specifying an index
using 'ZZ', for instance, 'ZR0ZZ4'.
The following figure shows the 32-bit index setting using 'ZZ'.
M0
K100000
M0
K100
DMOVP
EN ENO
s
d
MOVP
EN ENO
s
d
Set 100000 to Z4 and Z5.
Z4
Set 32-bit (Z4, Z5) index to ZR.
ZR(0+100000) indicates ZR100000.
ZR0ZZ4
2) Specification method
When specifying a 32-bit index setting using 'ZZ', select "Use ZZ" in the
"Indexing Setting for ZR Device" setting in the <<Device>> tab of the PLC
parameter.
Figure 4.6-4 Index setting for ZR device on the parameter setting screen
3) Devices that can be used for the index setting
Only the following devices can be used for the index setting.
Device
Description
ZR
Serial number access file register
D
Extended data register
W
Extended link register
4) Usage range of index registers
The following table shows the usage range of index registers when specifying
32-bit index setting using 'ZZ'.
When specifying a 32-bit index setting using 'ZZ', specify a device as a form of
ZRmZZn.
The device number of ZRm is indexed with 32 bits (Zn, Zn+1) by specifying
ZRmZZn.
'ZZ'*2
'ZZ'*4
Index register
ZZ0
Z0, Z1
ZZ10
Z10, Z11
ZZ1
Z1, Z2
ZZ11
Z11, Z12
ZZ2
Z2, Z3
ZZ12
Z12, Z13
ZZ3
Z3, Z4
ZZ13
Z13, Z14
ZZ4
Z4, Z5
ZZ14
Z14, Z15
ZZ5
Z5, Z6
ZZ15
Z15, Z16
ZZ6
Z6, Z7
ZZ16
Z16, Z17
ZZ7
Z7, Z8
ZZ17
Z17, Z18
ZZ8
Z8, Z9
ZZ18
Z18, Z19
ZZ9
Z9, Z10
ZZ19
Not applicable
*4:
4-48
Index register
Indicates the device name (ZR, D, W) to be indexed
4.6 Index Setting
5) The following figure shows the examples of 32-bit index setting using 'ZZ' and
their actual processing devices.
(With the setting of Z0 (32 bits) =100000 and Z2 (32 bits)=-20)
Ladder example
Actual processing device
X1
X0
DMOV
EN
ENO
s
d
K100000
K-20
EN
s
DMOV
ENO
d
ZR1000ZZ0
EN
s
MOV
ENO
d
X1
ZR101000
Z0
EN
s
MOV
ENO
d
D12980
Description
ZR1000Z0
D13000Z2
Z2
ZR(1000+100000) ZR101000
D(30-20) D12980
D13000Z2
Figure 4.6-5 Ladder examples and actual processing devices
6) Functions that can use 'ZZ'
32-bit index settings using 'ZZ' can be used in the following functions.
Description
1
Device specification with an instruction in a program
2
Monitoring device registrations
3
Device test
4
Device test with an execution condition
5
Setting monitoring conditions
6
7
4
PROGRAM
CONFIGURATION
No.
Sampling trace (trace point (device specification), trace target
devices)
Data logging function (sampling interval (device specification),
logging target data)
ZZn cannot be used individually such as 'DMOV K100000 ZZ0'. When setting a
value to index registers to specify a 32-bit index setting using 'ZZ', set a value to
Zn (Z0 to Z19).
ZZn cannot be entered individually in the functions.
(c) 32-bit index setting for FXCPU
Combine index registers V (from V0) and Z (from Z0) for a 32-bit index setting.
V is used for high order and Z is used for low order. With the combination of the
specified Z and the corresponding V, the device can be used as a 32-bit register.
Note that the index setting is not applied by specifying the high order V.
Example: When specifying Z4, V4 and Z4 are used as a 32-bit register.
Setting value
Index register
Z0
V0, Z0
Z1
V1, Z1
Z2
V2, Z2
Z3
V3, Z3
Z4
V4, Z4
Z5
V5, Z5
Z6
V6, Z6
Z7
V7, Z7
4.6 Index Setting
4-49
(4) Applying index settings to extended data registers (D) and extended link registers (W)
(for Universal model QCPU (excluding Q00UJCPU), and LCPU)
As an index setting can be applied to internal user devices, data registers (D) and link
registers (W), the device specification by the index setting can be used within the range of
extended data registers (D) and extended link registers (W).
The index setting applied to
the internal user device
D device image
User program
Z0 = 0
D100
1234
MOV
EN ENO
s
d
Internal user
device
D100Z0
D1100
Z0 = 1000
Z1 = 0
1234
MOV
EN ENO
s
d
D20000
Extended data
register
D20000Z1
D22000
Z1 = 2000
The index setting applied to
the extended data register
1) Index settings that cross internal user devices and extended data registers (D)/
extended link registers (W)
An index setting that crosses internal user devices and extended data registers
(D)/extended link registers (W) cannot be applied. If the device range check is
enabled at the index setting, an error occurs. (Error code: 4101)
The index setting applied to
the internal user device
D device image
User program
Z0=0
1234
MOV
EN ENO
s
d
D100
Internal user device
D100Z0
D20100
Z0=20000
The index setting that crosses
internal user device and extended
data register cannot be applied.
4-50
4.6 Index Setting
Extended data register
2) Index settings that cross file registers (ZR), extended data registers (D), and
extended link registers (W)
Even when an index setting that crosses file registers (ZR), extended data
registers (D), and extended link registers (W) is applied, an error does not
occur.
However, if the result of the index setting applied to file registers (ZR),
extended data registers (D) or extended link registers (W) exceeds the range
of the file register files, an error occurs. (Error code: 4101)
Even when the index setting
that crosses file register and
extended data registers (D) is
applied, an error does not occur.
File register file
User program
1234
MOV
ENO
d
MOV
EN ENO
s
d
Z0=0
D100Z0
Z0=10000
Z1=0
D14196
D20000
D20000Z1
Z1=4000
W2DC0
File
register
(8K points)
Extended data
register (D)
(8K points)
From D12288
Extended link
register (W)
(8K points)
From W2000
Even when the index setting that
crosses extended data register (D)
and extended link register (W) is
applied, an error does not occur.
If the result of the index setting
exceeds the range of the file
register files, an error occurs.
Z1=10000
(5) Other applicable data
(a) Bit data
An index setting is applicable to device numbers whose digits are specified.
Note that an index setting is not applicable to the digit-specified bit device.
K4X0Z2
EN
s
K4Z3X0
EN
s
BIN
ENO
d
BIN
ENO
d
D0
Index setting is applicable
to the device number,
If Z2=3, then (X0+3)=X3
D0
Index setting is not applicable
to the digit-specified bit device.
4.6 Index Setting
4-51
4
PROGRAM
CONFIGURATION
1234
EN
s
ZR100
(b) An index setting is applicable to both start I/O numbers of the intelligent function module
and buffer memory addresses for intelligent function module devices*5.
U10Z1\G0Z2
EN
s
MOV
ENO
d
D0
If Z1=2 and Z2=8,
then U(10+2)\G(0+8)=U12\G8
(c) An index setting is applicable to both network numbers and device numbers for link
direct devices*5.
J1Z1\K4X0Z2
EN
s
MOV
ENO
d
D0
If Z1=2 and Z2=8,
then J(1+2)\K4X(0+8)=J3\K4X8
(d) An index setting is applicable to both start I/O numbers of the CPU module and CPU
shared memory addresses for multiple CPU area devices*6.
U3E0Z1\G0Z2
EN
s
MOV
ENO
d
D0
*5: For intelligent function module devices and link direct devices, refer to the User's Manual (Function
Explanation, Program Fundamentals) of the CPU module used.
*6: For multiple CPU area devices, refer to the User's Manual (Function Explanation, Program Fundamentals) of
the CPU module used.
(e) A 32-bit index setting is applicable to extended data register (D) and extended link
register (W)
(for Universal model QCPU (excluding Q00UJCPU), and LCPU)
When applying an index setting to extended data registers (D) or extended link registers
(W), it can be applied in 32-bit range as applying an index setting to file registers (ZR) in
the following two methods.
• Specify a range of index registers used for a 32-bit index setting.
• Specify a 32-bit index setting using 'ZZ'.
32-bit index settings using 'ZZ' can be used for the following CPU modules only.
• QnU(D)(H)CPU with a serial number whose first five digits are '10042' or higher
(excluding Q00UJCPU)
• QnUDE(H)CPU
• QnUDVCPU
• LCPU
4-52
4.6 Index Setting
(6) Precautions
(a) Using the index setting for arguments of instruction/application function/function/
function block
When "Use ZZ" is checked in "Indexing Setting for ZR Device" setting in the
<<Device>> tab of the PLC parameter, and Z device is used for the argument of
instruction/application function/function/function block, the expression is converted to
"ZZ" at the compilation. This may cause unintended device accesses.
When "Use ZZ" is checked, use ZZ devices for arguments of instruction/application
function/function/function block.
(b) Applying the index setting within the FOR to NEXT instruction loop
The pulses can be output by using edge relays (V) within the FOR to NEXT instruction
loop.
Note that the pulses cannot be output by the PLS, PLF, or pulse ( P) instruction.
[When using an edge relay]
[When not using an edge relay]
(M0Z1 pulse is output normally.)
(M0Z1 pulse is not output normally.)
MOV
ENO
d
0
EN
s
10
FOR
EN ENO
n
X0Z1
EN
SM400
EN
EGP
ENO
d
INC
ENO
d
NEXT
EN ENO
SM400
0
Z1
10
EN
V0Z1
OUT
ENO
d
EN
s
Z1
4
FOR
EN ENO
n
X0Z1
EN
M0Z1
SM400
EN
Z1
MOV
ENO
d
PLS
ENO
d
M0Z1
INC
ENO
d
Z1
PROGRAM
CONFIGURATION
SM400
NEXT
EN ENO
Remark
The ON/OFF information of X0Z1 is stored to the edge relay V0Z1.
For example, the ON/OFF data of X0 is stored to V0 and the ON/OFF data of X1
is stored to V1.
Z0 and Z1 cannot be used when labels are used for array indexes within the FOR
to NEXT instruction loop.
4.6 Index Setting
4-53
(c) Applying the index setting in the CALL instruction
The pulse can be output by using edge relays (V) with the CALL instruction. Note that
the pulse cannot be output by the PLS, PLF, or pulse ( P) instruction.
[When using an edge relay]
[When not using an edge relay]
(M0Z1 pulse is output normally.)
(M0Z1 pulse is not output normally.)
SM400
1
P0
EN
s
P0
SM400
Z1
1
CALL
EN ENO
p
SM400
1
MOV
ENO
d
EN
s
MOV
ENO
d
P0
1
P0
FEND
EN ENO
EN
EN
EGP
ENO
d
MOV
ENO
d
Z1
CALL
EN ENO
p
SM400
Z1
CALL
EN ENO
p
X0Z1
EN
s
EN
s
MOV
ENO
d
Z1
CALL
EN ENO
p
FEND
EN ENO
EN
V0Z1
OUT
ENO
d
X0Z1
M0Z1
RET
ENO
EN
EN
PLS
ENO
d
M0Z1
RET
ENO
(d) Device range check when the index setting is applied
1) For Basic model QCPU, High Performance model QCPU, Process CPU,
Redundant CPU, and FXCPU
The device range is not checked when the index setting is applied.
For Basic model QCPU, High Performance model QCPU, Process CPU, and
Redundant CPU, if the result of the index setting exceeds the device range
specified by a user, an error does not occur and the data are written to other
devices. (Note that if the result of the index setting exceeds the device range
specified by a user and the data are written to devices for the system, an error
occurs. (Error code: 1103))
For FXCPU, an operation error occurs. (Error code: 6706)
Create a program with caution when applying the index setting.
2) For Universal model QCPU, and LCPU
The device range is checked when the index setting is applied.
By changing the settings of the PLC parameter, the device range is not
checked.
(e) Switching between 16-bit and 32-bit range of the index setting
When switching between 16-bit and 32-bit range, check the positions of the index
setting in the program.
Since the specified index register (Zn) and next index register (Zn+1) are used for index
setting in 32-bit range, make sure not to overlap index registers being used.
4-54
4.6 Index Setting
4.7 Libraries
A library is an aggregation of data including POUs, global labels, and structures organized in a
single file to be utilized in multiple projects.
The following are the advantages of using libraries.
• Data in library files can be utilized in multiple projects by installing them to each project.
• Since library data can be created according to the functions of components, data to be reused
can be easily confirmed.
• If components registered in a library are modified, the modification is applied to projects that
use the modified data.
The following figure shows the data flow when using library components in a project.
Project
Library file
4
Program
Install
Program
Global label
Global label
Function block
Function block
Function
Function
Structure
Structure
PROGRAM
CONFIGURATION
Library
Edit
Utilize
Global label
Program file
Installed library can be
registered in the task
of the project.
Task
POUs can be called
from the programs
in the project.
POU
Program
Function
Function block
Structure
4.7 Libraries
4-55
4.7.1
User libraries
A user library is a library for storing created structures, global labels, POUs, and other data that
can be used in other projects.
(1) Composition of a user library
The following table shows data that can be registered in a user library.
Table 4.7.1-1 Composition of a user library
Name
Structure
Global label
POU
4-56
4.7 Libraries
4.7.1 User libraries
Description
Stores definitions of structures used in POU folders of library or definitions of
structures used in programs of a project.
Stores definitions of global labels used in POU folders of library.
Stores programs, functions, and function blocks that can be used as libraries.
4.8 Precautions on Assigning a Name
This section explains the conditions for assigning a name to a label, function block instance, or
structure label.
• Conditions
(1) Specify a name within 32 characters.
(2) Do not use reserved words.
For reserved words, refer to the following section.
Appendix 2 Character Strings that cannot be Used in Label Names and Data Names
(3) Use alphanumeric and underscores (_).
(4) Do not use an underscore at the end of the name.
Do not use two or more underscores in succession.
4
PROGRAM
CONFIGURATION
(5) Do not use spaces.
(6) Do not use a number for the initial character.
(7) Constants cannot be used.
(An identifier that begins with 'H' or 'h' and an expression where a hexadecimal (0 to F)
immediately follows 'H' or 'h' (maximum 9 digits including 'H' or 'h' (excluding 0 that
immediately follows 'H' or 'h')) are also treated as a constant. (Example: 'hab0'))
(8) Elementary data type names cannot be used.
(9) Function/FB names cannot be used.
4.8 Precautions on Assigning a Name
4-57
MEMO
4-58
5
OVERVIEW
1
WRITING PROGRAMS
STRUCTURED DESIGN OF
SEQUENCE PROGRAMS
2
4
PROGRAM
CONFIGURATION
Structured Ladder/FBD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-13
5
WRITING
PROGRAMS
5.2
A
APPENDICES
ST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-2
I
INDEX
5.1
PROCEDURE FOR
CREATING PROGRAMS
3
5-1
5.1 ST
The ST language is a text language with a similar grammatical structure to the C language.
Controls such as conditional judgement and repetition process written in syntax can be
described.
This language is suitable for programming complicated processes that cannot be easily
described by a graphic language (structured ladder/FBD language).
5.1.1
Standard format
Assignment syntax
syntaxes
Calling the function
Calling the function block
Comment
Operators and syntax are used for programming in the ST language.
Syntax must end with ';'.
Enter ';' at the end.
Spaces, tabs, and line feeds can be inserted anywhere between a keyword and an identifier.
Space
Tab
Line feed
Comments can be inserted in a program. Describe '(*' in front of a comment and '*)' in back of a
comment.
Comment
Entering a comment in a comment causes the following compile error.
Compile error content: "Parser error" Error code : C1200
5-2
5.1 ST
5.1.1 Standard format
5.1.2
Operators in ST language
The following table shows the operators used in the ST program and their priorities.
Table 5.1.2-1 Operators in the ST language
Operator
Description
Example
Priority
Highest
()
Parenthesized expression
(1+2)*(3+4)
Function ( )
Function (Parameter list)
ADD_E(bo01, in01, in02, in03)
**
Exponentiation
re01:= 2.0 ** 4.4
NOT
Logical negation
NOT bo01
*
Multiplication
3*4
/
Division
12 / 3
MOD
Modulus operation
13 MOD 3
+
Addition
in01 + in02
-
Subtraction
in01 - in02
<, >, <=, =>
Comparison
in01 < in02
=
Equality
in01 = in02
<>
Inequality
in01 <> in02
AND, &
Logical AND
bo01 & bo02
XOR
Exclusive OR
bo01 XOR bo02
OR
Logical OR
bo01 OR bo02
Lowest
If a syntax includes multiple operators with a same priority, the operation is performed from the
leftmost operator.
The following table shows the operators, applicable data types, and operation result data types.
5
Table 5.1.2-2 Data types used in operators
Applicable data type
Operation result data type
ANY_NUM
<, >, <=, >=, =, <>
ANY_SIMPLE
Bit
MOD
ANY_INT
ANY_INT
AND, &, XOR, OR, NOT
ANY_BIT
ANY_BIT
**
ANY_REAL (Base)
ANY_NUM (Exponent)
ANY_NUM
WRITING
PROGRAMS
Operator
*, /, +, -
ANY_REAL
5.1 ST
5.1.2 Operators in ST language
5-3
5.1.3
Syntax in ST language
The following table shows the syntax that can be used in the ST program.
Table 5.1.3-1 Syntax in the ST language
Type of syntax
Assignment syntax
Description
Assignment syntax
IF THEN conditional syntax, IF ELSE conditional syntax, and IF ELSIF conditional syntax
Conditional syntax
CASE conditional syntax
FOR DO syntax
Iteration syntax
WHILE DO syntax
REPEAT UNTIL syntax
RETURN syntax
Other control syntax
EXIT syntax
(1) Assignment syntax
(a) Format
<Left side> := <Right side>;
(b) Description
The assignment syntax assigns the result of the right side expression to the label or
device of the left side.
The result of the right side expression and data type of the left side need to obtain the
same data when using the assignment syntax.
(c) Example
Array type labels and structure labels can be used for the assignment syntax.
Note the data types of left side and right side.
• Array type labels
The data type and the number of elements need to be the same for left side and
right side.
When using array type labels, do not specify elements.
< Example >
intAry1 := intAry2;
• Structure labels
The data type (structured data type) needs to be the same for left side and right
side.
< Example >
dutVar1 := dutVar2;
5-4
5.1 ST
5.1.3 Syntax in ST language
(2) IF THEN conditional syntax
(a) Format
IF <Boolean expression> THEN
<Syntax ...>;
END_IF;
(b) Description
The syntax is executed when the value of Boolean expression (conditional expression)
is TRUE. The syntax is not executed if the value of Boolean expression is FALSE.
Any expression that returns TRUE or FALSE as the result of the Boolean operation with
a single bit type variable status, or a complicated expression that includes many
variables can be used for the Boolean expression.
(c) Example
(3) IF ...ELSE conditional syntax
(a) Format
IF <Boolean expression> THEN
<Syntax 1 ...>;
ELSE
<Syntax 2 ...>;
END_IF;
(b) Description
Syntax 1 is executed when the value of Boolean expression (conditional expression) is
TRUE.
Syntax 2 is executed when the value of Boolean expression is FALSE.
(c) Example
5.1 ST
5.1.3 Syntax in ST language
5-5
WRITING
PROGRAMS
5
(4) IF ...ELSIF conditional syntax
(a) Format
IF <Boolean expression 1> THEN
<Syntax 1 ...>;
ELSIF <Boolean expression 2> THEN
<Syntax 2 ...>;
ELSIF <Boolean expression 3> THEN
<Syntax 3 ...>;
END_IF;
(b) Description
Syntax 1 is executed when the value of Boolean expression (conditional expression) 1
is TRUE. Syntax 2 is executed when the value of Boolean expression 1 is FALSE and
the value of Boolean expression 2 is TRUE.
Syntax 3 is executed when the value of Boolean expression 1 and 2 are FALSE and the
value of Boolean expression 3 is TRUE.
(c) Example
(5) CASE conditional syntax
(a) Format
CASE <Integer expression> OF
<Integer selection 1> : <Syntax 1 ...>;
<Integer selection 2> : <Syntax 2 ...>;
·
·
·
<Integer selection n> : <Syntax n ...>;
ELSE
<Syntax n+1 ...>;
END_CASE;
(b) Description
The result of the CASE conditional expression is returned as an integer value. The
CASE conditional syntax is used to execute a selection syntax by a single integer value
or an integer value as the result of a complicated expression.
When the syntax that has the integer selection value that matches with the value of
integer expression is executed, and if no integer selection value is matched with the
expression value, the syntax that follows the ELSE syntax is executed.
(c) Example
5-6
5.1 ST
5.1.3 Syntax in ST language
(6) FOR...DO syntax
(a) Format
FOR <Repeat variable initialization>
TO <Last value>
BY <Incremental expression> DO
<Syntax ...>;
END_FOR;
(b) Description
The FOR...DO syntax repeats the execution of several syntax according to the value of
a repeat variable.
(c) Example
(7) WHILE...DO syntax
(a) Format
WHILE <Boolean expression> DO
<Syntax ...>;
END_WHILE;
(b) Description
The WHILE...DO syntax executes one or more syntax while the value of Boolean
expression (conditional expression) is TRUE.
The Boolean expression is evaluated before the execution of the syntax. If the value of
Boolean expression is FALSE, the syntax in the WHILE...DO syntax is not executed.
Since a return result of the Boolean expression in the WHILE syntax requires only
TRUE or FALSE, any Boolean expression that can be specified in the IF conditional
syntax can be used.
(c) Example
5.1 ST
5.1.3 Syntax in ST language
5-7
WRITING
PROGRAMS
5
(8) REPEAT...UNTIL syntax
(a) Format
REPEAT
<Syntax ...>;
UNTIL <Boolean expression>
END_REPEAT;
(b) Description
The REPEAT...UNTIL syntax executes one or more syntax while the value of Boolean
expression (conditional expression) is FALSE.
The Boolean expression is evaluated after the execution of the syntax. If the value of
Boolean expression is TRUE, the syntax in the REPEAT...UNTIL syntax are not
executed.
Since a return result of the Boolean expression in the REPEAT syntax requires only
TRUE or FALSE, any Boolean expression that can be specified in the IF conditional
syntax can be used.
(c) Example
(9) RETURN syntax
(a) Format
RETURN;
(b) Description
The RETURN syntax is used to end a program in a middle of the process.
When the RETURN syntax is used in a program, the process jumps from the RETURN
syntax execution step to the last line of the program, ignoring all the remaining steps
after the RETURN syntax.
(c) Example
5-8
5.1 ST
5.1.3 Syntax in ST language
(10) EXIT syntax
(a) Format
EXIT;
(b) Description
The EXIT syntax is used only in iteration syntax to end the iteration syntax in a middle of
the process.
When the EXIT syntax is reached during the execution of the iteration loop, the iteration
loop process after the EXIT syntax is not executed. The process continues from the line
after the one where the iteration syntax is ended.
(c) Example
5.1.4
Calling functions in ST language
The following description is used to call a function in the ST language.
5
Function name (Variable1, Variable2, ...);
WRITING
PROGRAMS
Enclose the arguments by '( )' after the function name.
When using multiple variables, delimit them by ','.
The execution result of the function is stored by assigning the result to the variables.
1) Calling a function with one input variable (Example: ABS)
Output1 := ABS(Input1);
2) Calling a function with three input variables (Example: MAX)
Output1 := MAX(Input1, Input2, Input3);
3) Calling a function with EN/ENO (Example: MOV)
boolENO := MOV(boolEN, Input1, Output1);
For a function with EN/ENO, the result of the function execution is ENO, and
the first argument (Variable 1) is EN.
5.1 ST
5.1.4 Calling functions in ST language
5-9
5.1.5
Calling function blocks in ST language
The following description is used to call a function block in the ST language.
Instance name(Input variable1:= Variable1, ... Output variable1: = Variable2, ...);
Enclose the assignment syntax that assigns variables to the input variable and output variable by
'( )' after the instance name.
When using multiple variables, delimit assignment syntax by ',' (comma).
The execution result of the function block is stored by assigning the output variable that is
specified by adding '.' (period) after the instance name to the variable.
1) Calling a function block with one input variable and one output variable
FB definition
FB Name: FBADD
FB instance name: FBADD1
Input variable1: IN1
Output variable1: OUT1
The following is the description to call the function block above.
FBADD1(IN1:=Input1);
Output1:=FBADD1.OUT1;
2) Calling a function block with three input variables and two output variables
FB definition
FB Name: FBADD
FB instance name: FBADD1
Input variable1: IN1
Input variable2: IN2
Input variable3: IN3
Output variable1: OUT1
Output variable2: OUT2
The following is the description to call the function block above.
FBADD1(IN1:=Input1, IN2:=Input2, IN3:= Input3);
Output1:=FBADD1.OUT1;
Output2:=FBADD1.OUT2;
Arguments using at function block call;
VAR_OUTPUT is not appeared on a template if a checkbox in the following option
window is not selected;
[Tools]  [Options] "Convert" "Structured Ladder/FBD/ST""Compile
Condition1""Allow VAR_OUTPUT at FB call (ST)".
5-10
5.1 ST
5.1.5 Calling function blocks in ST language
5.1.6
Precautions when using conditional syntax and iteration syntax
The following explains the precautions when creating ST programs using conditional syntax and
iteration syntax.
(1) Once the conditions (boolean expression) are met in the conditional syntax or iteration
syntax, the bit device which is turned ON in the <syntax> is always set to ON.
• A program whose bit device is always set to ON
ST program
Structured ladder/FBD program
equivalent to ST program
To avoid the bit device to be always set to ON, add a program to turn the bit device OFF as
shown below.
• A program to avoid the bit device to be always set to ON.
ST program*1
Structured ladder/FBD program
equivalent to ST program
*1
The above program can also be written as follows.
Y0 := M0;
or
OUT(M0,Y0);
Note that, when the OUT instruction is used in <syntax> of conditional syntax or iteration syntax, the program
status becomes the same as the program whose bit device is always set to ON.
5.1 ST
5.1.6 Precautions when using conditional syntax and iteration syntax
5-11
WRITING
PROGRAMS
5
(2) When Q00UCPU, Q00UJCPU or, Q01UCPU is used, and the string type is applied to
Boolean expression (conditional expression) with conditional syntax or iteration syntax, a
compilation error may occur.
• Program example which causes compilation error
ST program
Compilation error occurs
when specifying string type data.
To avoid a compilation error, create the function blocks of the string type comparison with
ladder or structured ladder/FBD, and apply the operation result of function blocks to the
conditional expression of conditional syntax or iteration syntax.
The following is an example when creating the function blocks with structured ladder/FBD.
• Program creation example which avoids compilation error
➀ Create the function blocks of the string type comparison with structured ladder/FBD
program.
Function block (EQFB_01)
➁ Apply the operation result of function blocks (EQFB_01) to the conditional expression
in ST program.
Label setting
ST program
Apply the operation result of
function blocks (EQFB_01)
5-12
5.1 ST
5.1.6 Precautions when using conditional syntax and iteration syntax
5.2 Structured Ladder/FBD
The structured ladder/FBD is a graphic language for writing programs using ladder symbols such
as contacts, coils, functions, and function blocks.
5.2.1
Standard format
Contact
Ladder block label
Left power rail
Coil
Function
Function block
Input variables
Output variables
5
In the structured ladder/FBD language, units of ladder blocks are used for programming.
WRITING
PROGRAMS
For structured ladder, connect the left power rail and ladder symbols with lines.
For FBD, connect the ladder symbols with lines according to the flow of data or signals without
connecting with the left power rail.
5.2 Structured Ladder/FBD
5.2.1 Standard format
5-13
5.2.2
Ladder symbols in structured ladder/FBD language
The following table shows the ladder symbols that can be used in the structured ladder/FBD
language.
For details, refer to the following manual.
MELSEC-Q/L Structured Programming Manual (Common Instructions)
Table 5.2.2-1 Ladder symbols in the structured ladder/FBD language (1/2)
Element
Ladder symbol
Description
Normal *1,*2
Turns ON when a specified device or label is ON.
Negation *1,*2
Turns OFF when a specified device or label is OFF.
Rising edge *1,*2,*3
Turns ON at the rising edge (OFF to ON) of a specified device or label.
Turns ON at the falling edge (ON to OFF) of a specified device or
Falling edge *1,*2,*3
label.
Turns ON when a specified device or label is OFF or ON, or at the
Negated rising edge *1,*2,*3
falling edge (ON to OFF) of a specified device or label.
Negated falling edge *1,*2,*3
Normal *1
Negation *1
Turns ON when a specified device or label is OFF or ON, or at the
rising edge (OFF to ON) of a specified device or label.
Outputs the operation result to a specified device or label.
A specified device or label turns ON when the operation result turns
OFF.
A specified device or label turns ON when the operation result turns ON.
Set
*1
Once the device or label turns ON, it remains ON even when the
operation result turns OFF.
A specified device or label turns OFF when the operation result turns
Reset *1
ON. If the operation result is OFF, the status of the device or label
does not change.
*1: Not applicable in FBD.
*2: A contact performs an AND operation or OR operation according to the connection of a
ladder block and reflects in the operation result.
• For a series connection, it performs an AND operation with the operation result up
to that point, and takes the resulting value as the operation result.
• For a parallel connection, it performs an OR operation with the operation result up
to that point, and takes the resulting value as the operation result.
Series-connection contact
( )
Parallel-connection contact
*3: Supported with GX Works2 Version 1.15R or later.
For the confirmation method of the version of GX Works2, refer to the following manual.
GX Works2 Version 1 Operating Manual (Common)
5-14
5.2 Structured Ladder/FBD
5.2.2 Ladder symbols in structured ladder/FBD language
Table 5.2.2-1 Ladder symbols in the structured ladder/FBD language (2/2)
Element
Network element
Description
Pointer branch instruction
Jump
Unconditionally executes the program at the specified pointer number
in the same POUs.
Indicates the end of a subroutine program.
Function
Executes a function.
Function block
Executes a function block.
Function argument input
Inputs an argument to a function or function block.
Function return value output
Outputs the return value from a function or function block.
Function inverted argument input
Inverts and inputs an argument to a function or function block.
Function inverted return value
output
Inverts the return value from a function or function block and outputs it.
The performance of return differs depending on the programs, functions, and
function blocks being used.
• When used in the programs
End the execution of POUs
• When used in the functions
End the functions. Also, return to the next step of the instruction which called
the functions.
• When used in the function blocks
The performance differs depending on whether "Use Macrocode" is checked or
not on the Property screen.
When it is checked, end the execution of POUs.
When it is not checked, end the function blocks. Also, return to the next step of
the instruction which called the functions.
5.2 Structured Ladder/FBD
5.2.2 Ladder symbols in structured ladder/FBD language
5-15
5
WRITING
PROGRAMS
Return
5.2.3
Executing order
The following figures explain the program executing order.
The operation order in a ladder block is from the left power rail to the right and from the top to the
bottom.
The program is executed from the left power rail to the right when the ladder is not branched and
ENs and ENOs are connected in series.
The program is executed from the top to the bottom, when the ladder is branched and ENs and
ENOs are connected in parallel.
The program is executed in the order as shown below when the MOV instruction ( 4 ) in the
above figure is moved to the top.
Move to the top
5-16
5.2 Structured Ladder/FBD
5.2.3 Executing order
5.2.4
Ladder branches and compilation results
When the ladder is branched, different compilation results are produced for the program after the
branch depending on the program up to the branch.
The following explains the precautions on compilation results depending on ladder branches.
(1) When one contact is used up to the branch, the instruction of the contact is used multiple
times in the compilation result.
< Example >
< Compilation result >
The LD instructions are
created using the contact.
< Precautions >
When the device in which the value changes during one scan (such as SM412) is used, only
a part of the sequence program after the branch is executed, and the rest of the sequence
program may not be executed.
< Example >
< Compilation result >
5
WRITING
PROGRAMS
If the value of SM412
changes during one scan,
a part of the program may
not be executed.
When executing multiple instructions against one contact, connect the instructions in series.
Since the sequence program uses the LD instruction only once in the compilation result, all
sequence programs are executed.
< Example >
< Compile Result >
5.2 Structured Ladder/FBD
5.2.4 Ladder branches and compilation results
5-17
(2) When multiple contacts are used, or a function/function block is used up to the branch, the
temporary variable is appended to the branch in the compilation result.
Connect the instructions in series as shown in < Precautions > of (1) to avoid using
temporary variables in the compilation result.
For details on temporary variables, refer to the following manual.
GX Works2 Version 1 Operating Manual (Structured Project)
● Multiple contacts are used up to the branch
< Example >
< Compilation result >
The operation result up to
the branch is output to the
temporary variable.
Temporary variable is
appended.
● Output value of function or function block is branched
< Example >
< Compilation result >
The operation result up to
the branch is output to the
temporary variable.
Temporary variable is
appended.
5-18
5.2 Structured Ladder/FBD
5.2.4 Ladder branches and compilation results
5.2.5
Precautions on creating programs with structured ladder/FBD
The following explains the Precautions on creating a program with structured ladder/FBD.
When Q00UCPU, Q00UJCPU, Q01UCPU is used, and the string type is applied to enter the
standard comparison functions, a compilation error may occur.
• Program example which causes compilation error
Structured ladder/FBD program
To avoid a compilation error, use LD$=, LD$<>, LD$<=, LD$<, LD$>=, or LD$> instructions.
• Program example which avoids compilation error
Structured ladder/FBD program
WRITING
PROGRAMS
5
5.2 Structured Ladder/FBD
5.2.5 Precautions on creating programs with structured ladder/FBD
5-19
MEMO
5-20
OVERVIEW
APPENDICES
2
STRUCTURED DESIGN OF
SEQUENCE PROGRAMS
A
1
Appendix 3
Recreating Ladder Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . App-9
4
PROGRAM
CONFIGURATION
Character Strings that cannot be Used in Label Names and Data Names . . App-6
5
WRITING
PROGRAMS
Appendix 2
A
APPENDICES
Correspondence between Generic Data Types and Devices . . . . . . . . . App-2
I
INDEX
Appendix 1
PROCEDURE FOR
CREATING PROGRAMS
3
App-1
Appendix 1 Correspondence between Generic Data
Types and Devices
The following table shows the correspondence between generic data types and devices.
Table App. 1-1 Correspondence between generic data types and devices
Device
Classification
Type
Bit device
Device name
Input
X
Output
Y
Internal relay
M
Latch relay
L
Annunciator
F
Edge relay
V
Step relay
S
Link special relay
SB
Link relay
B
Timer
contact*1
TS
Timer coil*1
Internal user device
TC
Retentive timer contact*1
Retentive timer coil
Counter
Word device
Bit device
Internal system device
Word device
*1
contact*1
STS
STC
CS
Counter coil
CC
Timer current value
T or TN*1
Retentive timer current value
ST or STN*1
Counter current value
C or CN*1
Data register
D
Link register
W
Link special register
SW
Function input
FX
Function output
FY
Special relay
SM
Function register
FD
Special register
SD
*1: Can be used for digit specification.
*2: Can be used for bit specification.
App-2
Device symbol
Appendix 1 Correspondence between Generic Data Types and Devices
Generic data type
ANY
ANY_SIMPLE
Word
Bit
(unsigned)/
16-bit string
ANY
ANY_NUM
ANY_BIT
ANY_INT
Double
word
Word
(unsigned)/ (signed)
32-bit string
ANY_REAL
Double
word
(signed)
Single-
Double-
Time
String
Array
Structure
ANY16
precision precision
real
ANY32
real
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*2
*2
*2


























*1

A
APPENDICES
*1

*1

*1

*1

*1
*1

*2
Appendix 1 Correspondence between Generic Data Types and Devices
App-3
Device
Classification
Type
Bit device
Link direct device
Word device
Intelligent function module
device
Word device
Device name
Device symbol
Link input
Jn\X
Link output
Jn\Y
Link relay
Jn\B
Link special relay
Jn\SB
Link register
Jn\W
Link special register
Jn\SW
Intelligent function module device
Un\G
Index register
Word device
Index register
Z
File register
Word device
File register
R or ZR
Nesting

Nesting
N
Pointer

Constant


String constant


Pointer
P
Interrupt pointer
I
*1: Can be used for digit specification.
*2: Can be used for bit specification.
App-4
Appendix 1 Correspondence between Generic Data Types and Devices
K, H
E
'Character string' or "Character
string"
Generic data type
ANY
ANY_SIMPLE
Word
Bit
(unsigned)/
16-bit string
ANY
ANY_NUM
ANY_BIT
ANY_INT
Double
word
Word
(unsigned)/ (signed)
32-bit string
ANY_REAL
Double
word
(signed)
Single-
Double-
Time
String
Array
Structure
ANY16
precision precision
real
ANY32
real
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*1
*2
*2
*2
*2







































APPENDICES
A
Appendix 1 Correspondence between Generic Data Types and Devices
App-5
Appendix 2 Character Strings that cannot be Used in
Label Names and Data Names
Character strings used for application function names, common instruction names, special
instruction names, and instruction words are called reserved words.
These reserved words cannot be used for label names or data names. If the character string
defined as a reserved word is used for a label name or data name, an error occurs during
registration or compilation.
The following tables shows character strings that cannot be used for label names or data names.
The numbers from
1
to
9
in the tables indicate the following label names and data names.
<Label name and data name>
1 Project file name
2 Program file name (Simple (without labels))
3 Program file name (Simple (with labels))
4 Program file name (structure)
5 Task name
6 Global label data name
7 Structure name
8 POU name
9 Label name
Table App. 2-1 Character strings that cannot be used for label names and data names (1/3)
Category
Character string
Class identifier
VAR, VAR_RETAIN, VAR_ACCESS, VAR_CONSTANT,
VAR_CONSTANT_RETAIN, VAR_INPUT, VAR_INPUT_RETAIN,
VAR_OUTPUT, VAR_OUTPUT_RETAIN, VAR_IN_OUT,
VAR_IN_EXT, VAR_EXTERNAL, VAR_EXTERNAL_CONSTANT,
VAR_EXTERNAL_CONSTANT_RETAIN,
VAR_EXTERNAL_RETAIN, VAR_GLOBAL,
VAR_GLOBAL_CONSTANT,
VAR_GLOBAL_CONSTANT_RETAIN, VAR_GLOBAL_RETAIN
Data type
BOOL, BYTE, INT, SINT, DINT, LINT, UINT, USINT, UDINT, ULINT,
WORD, DWORD, LWORD, ARRAY, REAL,
LREAL, TIME, STRING, TIMER, COUNTER, RETENTIVETIMER,
POINTER, Bit, Word [Unsigned]/Bit String [16-bit], Double Word
[Unsigned]/Bit String [32-bit], Word [Signed], Double Word
[Signed], FLOAT (Single Precision), FLOAT (Double Precision),
String, Time, Timer, Counter, Retentive Timer, Pointer
1
2
3
4
5
6
7
8
9
ANY, ANY_NUM, ANY_BIT, ANY_REAL, ANY_INT, ANY_DATE
Data type hierarchy
ANY_SIMPLE, ANY16, ANY32
Device name
Character string
recognized as device
(Device name +
Numeral)
X, Y, D, M, T, B, C, F, L, P, V, Z, W, I, N, U, J, K, H, E, A, SD, SM,
SW, SB, FX, FY, DX, DY, FD, TR, BL, SG, VD, ZR, ZZ*2
Such as X0
*1
*1
*3
NOT, MOD
ST operator
(, ), -
*1
: Applicable, : With restrictions, : Not applicable
*1: Functions cannot be used.
*2: Whether to handle a device name indexed with ZZ device as a reserved word depends on the parameter
setting.
When Z device is specified for 32-bit index setting: Not handled as a reserved word
When ZZ device is specified for 32-bit index setting: Handled as a reserved word
*3: Applicable for Simple projects without labels only.
App-6
Appendix 2 Character Strings that cannot be Used in Label Names and Data Names
Table App. 2-1 Character strings that cannot be used for label names and data names (2/3)
Category
IL operator
Character string
1
2
3
4
5
6
7
8
9
LD, LDN, ST, STN, S, S1, R, R1, AND, ANDN, OR, ORN, XOR,
XORN, ADD, SUB, MUL, DIV, GT, GE, EQ,
NE, LE, LT, JMP, JMPC, JMPCN, CAL, CALC, CALCN, RET,
RETC, RETCN
LDI, LDP, LDPI, LDF, LDFI, ANI, ANDP, ANDPI, ANDF, ANDFI,
ANB, ORI, ORP, ORPI, ORF, ORFI, ORB, MPS, MRD, MPP, INV,
MEP, MEF, EGP, EGF, OUT(H), SET, RST, PLS, PLF, FF,
DELTA(P), SFT(P), MC, MCR, STOP, PAGE, NOP, NOPLF
*1
Application instructions such as DMOD, PCHK, INC(P)
Application instruction
in GX Works2
MELSEC-Q/L Programming Manual (Common Instructions),
MELSEC-Q/L Structured Programming Manual (Common
Instructions)
*1
FXCPU Structured Programming Manual [Basic & Applied
Instruction], FXCPU Structured Programming Manual [Application
Functions]
SFC instruction
SFCP, SFCPEND, BLOCK, BEND, TRANL, TRANO, TRANA,
TRANC, TRANCA, TRANOA, SEND, TRANOC, TRANOCA,
TRANCO, TRANCOC, STEPN, STEPD, STEPSC, STEPSE,
STEPST, STEPR, STEPC, STEPG, STEPI, STEPID,
STEPISC, STEPISE, STEPIST, STEPIR, TRANJ, TRANOJ,
TRANOCJ, TRANCJ, TRANCOJ, TRANCOCJ
ST code body
RETURN, IF, THEN, ELSE, ELSIF, END_IF, CASE, OF,
END_CASE, FOR, TO, BY, DO, END_FOR, WHILE,
END_WHILE, REPEAT, UNTIL, END_REPEAT, EXIT, TYPE,
END_TYPE, STRUCT, END_STRUCT, RETAIN,
VAR_ACCESS, END_VAR, FUNCTION, END_FUNCTION,
FUNCTION_BLOCK, END_FUNCTION_BLOCK, STEP,
INITIAL_STEP, END_STEP, TRANSITION, END_TRANSITION,
FROM, TO, UNTILWHILE
Function name in
application function
Function names in application functions such as AND_E, NOT_E
Function block name in
application function
Function block names in application functions such as CTD, CTU
*1
/, \, *, ?, <, >, ¦, ", :, [, ] , , , =, +, %, ', ~, @, {, }, &, ^, ., ', tab
character
Symbol
;
!, #, $, `
DATE, DATE_AND_TIME, DT, TIME, TIME_OF_DAY, TOD
Others
ACTION, END_ACTION, CONFIGURATION,
END_CONFIGURATION, CONSTANT, F_EDGE, R_EDGE, AT,
PROGRAM,
WITH, END_PROGRAM, TRUE, FALSE, READ_ONLY,
READ_WRITE, RESOURCE, END_RESOURCE, ON, TASK,
EN, ENO, BODY_CCE, BODY_FBD, BODY_IL, BODY_LD,
BODY_SFC, BODY_ST, END_BODY,
END_PARAMETER_SECTION,
PARAM_FILE_PATH, PARAMETER_SECTION, SINGLE,
RETAIN, INTERVAL
A
APPENDICES
Date and time literal
: Applicable, : With restrictions,
: Not applicable
*1: Functions cannot be used.
Appendix 2 Character Strings that cannot be Used in Label Names and Data Names
App-7
Table App. 2-1 Character strings that cannot be used for label names and data names (3/3)
Category
Character string
String that starts with K1
to K8
Such as K1AAA
Address
Such as %IX0
Statement in ladder
language
;FB BLK START, ;FB START, ;FB END, ;FB BLK END, ;FB IN, ;FB
OUT, ;FB_NAME;,INSTANCE_NAME,
;FB, ;INSTANCE
Common instruction
Such as MOV
1
2
3
4
5
6
7
8
9
*1
*3
COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8,
Windows reserved word COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8,
LPT9, AUX, CON, PRN, NUL
: Applicable, : With restrictions,
: Not applicable
*1: Functions cannot be used.
*3: Applicable for Simple projects without labels only.
(1) Precautions on using labels
• In a function, the same name as the function cannot be used for a label.
• A space cannot be used.
• A numeral cannot be used at the beginning of label name.
• A label name is not case-sensitive. An error may occur at compilation when the same
label names with different cases (example: 'AAA' and 'aaa') are declared.
• In structured ladder/FBD and ST programs, the same label name can be used for a global
label and a local label by setting the following option in GX Works2*1.
*1: Check the "Use the same label name in global label and local label" item under [Tool]  [Options] 
"Compile"  "Basic Setting".
• An underscore (_) cannot be used at the beginning or end of label name.
Consecutive underscores (_) cannot be used for data name and label name.
• For Simple projects, function names and function block names in common instructions
and application functions can be used.
App-8
Appendix 2 Character Strings that cannot be Used in Label Names and Data Names
Appendix 3 Recreating Ladder Programs
This section provides an example of creating a structured program same as the program created
in the ladder programming language using GX Works2.
Appendix 3.1
Procedure for creating a structured program
The following explains the basic procedure for creating a structured program based on the
program created in the ladder programming language.
(1) Replacing devices with labels
Procedure
Labels include global labels and local labels.
Determine the type of labels (global label or local label) to replace devices.
(2) Setting labels
Procedure
Global labels and local labels to be used in the program must be defined.
Define all labels to be used in the program.
(3) Creating a program
Procedure
Create a structured program in the programming language to be used.
APPENDICES
A
Appendix 3 Recreating Ladder Programs
Appendix 3.1 Procedure for creating a structured program
App-9
Appendix 3.2
Example of creating a structured program
This section shows an example of creating a sequence program same as the program created in
GX Developer using GX Works2.
The following examples explain the method for creating a structured program same as the data
receive program for a Q-compatible serial communication module, using the structured ladder/
FBD and ST languages.
The following shows the original program.
Specify the receive channel.
Clear the reception result and receive data count
storage device to 0.
Specify the allowable receive data count.
With normal completion, the receive data within the
allowable receive data count (user specified) is read
from the receive data storage area in the buffer memory.
• Once the INPUT instruction is executed, the user
specified read completion signal (M0) turns ON for
1 scan.
• The reading of receive data and switching of the
ON/OFF status are performed by the programmable
controller CPU.
The abnormal completion flag is reset by an external
command.
(1) Replacing devices with labels
Replace devices of the original program with labels.
Replace input/output devices with global labels. For devices such as internal relays, replace
them with local labels.
Table App. 3.2-1 Examples of replacement from devices to labels
Device
Label
Purpose
Data type
Label name
X3
CH1 reception data read request
Bit
CH1ReadRequest
X4
CH1 reception abnormal detection
Bit
CH1AbnormalDetection
D0
Reception channel
D1
D2
Reception result
Control data
Number of reception data
Number of allowable reception
D3
Word (unsigned)/16-bit
string [0] to [3]
ControlData
data
Word (unsigned)/16-bit
D10 to D109
Reception data
D110 to D209
Reception data storage area
M0
Data
string [0] to [99]
Word (unsigned)/16-bit
string [0] to [99]
ReceiveData
Data
Completion flag
reception
Bit [0] to [1]
Completion
Abnormal completion flag
Bit
AbnormalCompletion
Abnormal completion flag reset command
Bit
ResetAbnormalCompletion
M1
completion
M100
X100
Status flag at completion
flag
App-10
Appendix 3 Recreating Ladder Programs
Appendix 3.2 Example of creating a structured program
(2) Setting labels
Set global labels and local labels.
• Setting examples of global labels
• Setting examples of local labels*1
*1: Devices of local labels are automatically assigned within the range specified in the
device/label automatic-assign setting in GX Works2.
To assign the same devices as those in the original ladder program, set them as global
labels.
APPENDICES
A
Appendix 3 Recreating Ladder Programs
Appendix 3.2 Example of creating a structured program
App-11
(3) Creating a structured program
The following examples show how a structured program is created based on the original
program.
• Original program (Programming language: ladder)
1
2
3
• Structured program (Programming language: structured ladder/FBD)
1
2
3
App-12
Appendix 3 Recreating Ladder Programs
Appendix 3.2 Example of creating a structured program
• Original program (Programming language: ladder)
1
*1
2
*1
3
• Structured program (Programming language: ST)
1
*1
2
*1
3
*1: When using multiple contacts for execution conditions, enclose them by '( )' to be
programmed in a group.
APPENDICES
A
Appendix 3 Recreating Ladder Programs
Appendix 3.2 Example of creating a structured program
App-13
MEMO
App-14
INDEX
APPENDICES
WRITING
PROGRAMS
PROGRAM
CONFIGURATION
PROCEDURE FOR
CREATING PROGRAMS
STRUCTURED DESIGN OF
SEQUENCE PROGRAMS
I
INDEX
OVERVIEW
1
2
3
4
5
A
I
Index-1
[Numeric character]
32-bit index setting ................................................ 4-45
[A]
address ......................................................... 4-39,4-40
array ...................................................................... 4-35
[B]
Bit data .................................................................. 4-22
[C]
calling function blocks ................................... 5-10,5-11
calling functions....................................................... 5-9
class ...................................................................... 4-16
constant................................................................. 4-20
correspondence between generic data types
and devices ......................................................... App-2
[D]
data types.............................................................. 4-18
device..................................................4-38,4-40,App-2
double word (32 bits) data..................................... 4-26
double-precision real data..................................... 4-29
[E]
elementary data types........................................... 4-18
EN ......................................................................... 4-13
ENO ...................................................................... 4-13
executing condition ................................................. 4-4
[F]
FBD ....................................................................... 5-13
function blocks ........................................................ 4-7
functions.................................................................. 4-6
[G]
generic data type................................................... 4-19
global labels .......................................................... 4-15
[H]
hierarchy ........................................................... 1-7,2-2
[I]
index setting .......................................................... 4-43
input variables ....................................................... 4-16
input/output variables ............................................ 4-16
instances ......................................................... 4-7,4-12
[L]
ladder block labels .................................................. 4-8
ladder blocks ........................................................... 4-8
ladder symbols ...................................................... 5-14
libraries.................................................................. 4-55
local labels ............................................................ 4-15
[M]
method for specifying data .................................... 4-21
Index-2
[O]
operators ................................................................. 5-3
output variables ............................................. 4-10,4-16
[P]
POU......................................................................... 4-5
precautions on assigning label names .................. 4-57
priority...................................................................... 4-4
program ................................................................... 4-5
program blocks........................................................ 4-6
program components ........................................ 1-7,2-3
program files............................................................ 4-3
project................................................................ 2-2,4-3
[S]
single-precision real data ...................................... 4-29
specify a bit device of word device........................ 4-22
specify digits of bit data ......................................... 4-23
specifying digits of bit devices ............................... 4-23
ST............................................................................ 4-9
standard format ............................................... 5-2,5-13
string data.............................................................. 4-33
Structure................................................................ 4-37
structured design..................................................... 1-7
structured ladder ............................................. 4-9,5-13
syntax ...................................................................... 5-4
[T]
tasks ........................................................................ 4-4
The structured ladder/FBD .................................... 5-13
[U]
user libraries.......................................................... 4-56
[W]
word (16 bits) data................................................. 4-23
WARRANTY
Please confirm the following product warranty details before using this product.
1. Gratis Warranty Term and Gratis Warranty Range
If any faults or defects (hereinafter "Failure") found to be the responsibility of Mitsubishi occurs during use of the
product within the gratis warranty term, the product shall be repaired at no cost via the sales representative or
Mitsubishi Service Company.
However, if repairs are required onsite at domestic or overseas location, expenses to send an engineer will be
solely at the customer's discretion. Mitsubishi shall not be held responsible for any re-commissioning,
maintenance, or testing on-site that involves replacement of the failed module.
[Gratis Warranty Term]
The gratis warranty term of the product shall be for one year after the date of purchase or delivery to a designated
place.
Note that after manufacture and shipment from Mitsubishi, the maximum distribution period shall be six (6) months,
and the longest gratis warranty term after manufacturing shall be eighteen (18) months. The gratis warranty term of
repair parts shall not exceed the gratis warranty term before repairs.
[Gratis Warranty Range]
(1) The range shall be limited to normal use within the usage state, usage methods and usage environment, etc.,
which follow the conditions and precautions, etc., given in the instruction manual, user's manual and caution
labels on the product.
(2) Even within the gratis warranty term, repairs shall be charged for in the following cases.
1. Failure occurring from inappropriate storage or handling, carelessness or negligence by the user. Failure
caused by the user's hardware or software design.
2. Failure caused by unapproved modifications, etc., to the product by the user.
3. When the Mitsubishi product is assembled into a user's device, Failure that could have been avoided if
functions or structures, judged as necessary in the legal safety measures the user's device is subject to or
as necessary by industry standards, had been provided.
4. Failure that could have been avoided if consumable parts (battery, backlight, fuse, etc.) designated in the
instruction manual had been correctly serviced or replaced.
5. Failure caused by external irresistible forces such as fires or abnormal voltages, and Failure caused by
force majeure such as earthquakes, lightning, wind and water damage.
6. Failure caused by reasons unpredictable by scientific technology standards at time of shipment from
Mitsubishi.
7. Any other failure found not to be the responsibility of Mitsubishi or that admitted not to be so by the user.
2. Onerous repair term after discontinuation of production
(1) Mitsubishi shall accept onerous product repairs for seven (7) years after production of the product is
discontinued.
Discontinuation of production shall be notified with Mitsubishi Technical Bulletins, etc.
(2) Product supply (including repair parts) is not available after production is discontinued.
3. Overseas service
Overseas, repairs shall be accepted by Mitsubishi's local overseas FA Center. Note that the repair conditions at
each FA Center may differ.
4. Exclusion of loss in opportunity and secondary loss from warranty liability
Regardless of the gratis warranty term, Mitsubishi shall not be liable for compensation of damages caused by any
cause found not to be the responsibility of Mitsubishi, loss in opportunity, lost profits incurred to the user by Failures
of Mitsubishi products, special damages and secondary damages whether foreseeable or not, compensation for
accidents, and compensation for damages to products other than Mitsubishi products, replacement by the user,
maintenance of on-site equipment, start-up test run and other tasks.
5. Changes in product specifications
The specifications given in the catalogs, manuals or technical documents are subject to change without prior notice.
Mcrosoft, Windows, Windows Vista, Windows NT, Windows XP, Windows Server, Visio, Excel, PowerPoint, Visual Basic,
Visual C++, and Access are either registered trademarks or trademarks of Microsoft Corporation in the United States,
Japan, and other countries.
Pentium is a trademark of Intel Corporation in the United States and other countries.
Ethernet is a registered trademark of Xerox Corp.
The SD and SDHC logos are either registered trademarks or trademarks of SD-3C, LLC.
All other company names and product names used in this manual are either trademarks or
registered trademarks of their respective companies.
SH(NA)-080782ENG-M
SH-080782ENG-M(1307)KWIX
MODEL:
Q/FX-KP-KI-E
MODEL CODE: 13JW06
HEAD OFFICE : TOKYO BUILDING, 2-7-3 MARUNOUCHI, CHIYODA-KU, TOKYO 100-8310, JAPAN
NAGOYA WORKS : 1-14 , YADA-MINAMI 5-CHOME , HIGASHI-KU, NAGOYA , JAPAN
When exported from Japan, this manual does not require application to the
Ministry of Economy, Trade and Industry for service transaction permission.
Specifications subject to change without notice.