Programming_of_Industrial_robot_Fanuc_LR
Programming_of_Industrial_robot_Fanuc_LR
ECORFAN®
ECORFAN® Programming of industrial robot Fanuc LR
Mate 200iD
Chief Editor
VARGAS-DELGADO, Oscar. PhD No part of this writing protected by the
Copyright Law may be reproduced, transmitted
Authors or used in any form or medium, graphic,
CIRILO-PIÑON, Oscar Ivan. BsC electronic or mechanical, including, but not
MASTACHE-MASTACHE, Jorge Edmundo. PhD limited to, the following: Appointments in
LÓPEZ-RAMÍREZ, Roberto. PhD articles and bibliographic comments,
NAMIGTLE-JIMÉNEZ, Jesús. PhD compilation of radio or electronic journalistic
data. Visit our website at: www.ecorfan.org
Executive Director
RAMOS-ESCAMILLA, María. PhD First edition ISBN: 978-607-8695-79-9
Editorial Seal ECORFAN: 607-8695
Editorial Director Control number B: 2022-02
PERALTA-CASTRO, Enrique. MsC Classification B (2022): 280922-0002
Web Designer For the purposes of articles 13, 162, 163 section
ESCAMILLA-BOUCHAN, Imelda. PhD I, 164 section I, 168, 169,209, and another
applicable section III of the Law of the Right of
Web Diagrammer Self.
LUNA-SOTO, Vladimir. PhD
Editorial Assistant
SORIANO-VELASCO, Jesus. BsC
Translator
DÍAZ-OCAMPO, Javier. BsC
Philologist
RAMOS-ARANCIBIA, Alejandra. BsC
Books
Definition of Books
Scientific Objetives
Support the International Scientific Community in its written production of Science, Technology in
Innovation in the Research Areas CONACYT and PRODEP
ECORFAN-Mexico SC is a Scientific and Technological Company in contribution to the formation of
Human Resource focused on the continuity in the critical analysis of International Research and is
attached to the RENIECYT of CONACYT with number 1702902, its commitment is to disseminate
research and contributions of the International Scientific Community, of academic institutions, agencies
and entities of the public and private sectors and contribute to the linking of researchers who carry out
scientific activities, technological developments and training of specialized human resources with
governments, companies and social organizations.
Encourage the interlocution of the International Scientific Community with other study centers in Mexico
and abroad and promote a wide incorporation of academics, specialists and researchers to the publication
Seriate in Niches of Science of Autonomous Universities - State Public Universities - Federal IES -
Polytechnic Universities - Technological Universities - Federal Technological Institutes - Normal
Schools - Decentralized Technological Institutes - Intercultural Universities - S & T Councils -
CONACYT Research Centers.
Books is a Product edited by ECORFAN-Mexico S.C in its Holding with repository in Mexico, is an
arbitrated and indexed scientific publication. It supports a wide range of contents that are evaluated by
academic peers by the Double-Blind method, around topics related to the theory and practice of the
Research Area CONACYT and PRODEP, respectively, with different approaches and perspectives,
contributing to the diffusion of the development of Science Technology and Innovation that allow the
arguments related to the decision making and influence in the formulation of international policies in the
Field of Sciences. The editorial horizon of ECORFAN-Mexico® extends beyond the academy and
integrates other segments of research and analysis outside the scope, as long as they comply with the
requirements of rigorous argumentative and scientific, as well as addressing issues of general and current
interest of the International Scientific Society.
Editorial Board
ROCHA - RANGEL, Enrique. PhD
Oak Ridge National Laboratory
The sending of a Scientific Work to ECORFAN Books emanates the commitment of the author not to
submit it simultaneously to the consideration of other scientific publications for it must complement the
Originality Format for its Scientific Work.
The authors sign the Authorization Format for their Scientific Work to be disseminated by means that
ECORFAN-Mexico, S.C. in its Holding Mexico consider relevant for the dissemination and
dissemination of its Scientific Work by giving up its Scientific Work Rights.
Declaration of Authenticity
Indicate the Name of 1 Author and 3 Coauthors at most in the participation of the Scientific Work and
indicate in extensive the Institutional Affiliation indicating the Unit.
Identify the Name of 1 Author and 3 Co-authors at most with the CVU Scholarship Number-PNPC or
SNI-CONACYT- Indicating the Researcher Level and their Google Scholar Profile to verify their
Citation Level and H index.
Identify the Name of 1 Author and 3 Coauthors at most in the Science and Technology Profiles widely
accepted by the International Scientific Community ORC ID - Researcher ID Thomson - arXiv Author
ID - PubMed Author ID - Open ID respectively
Indicate the contact for correspondence to the Author (Mail and Telephone) and indicate the Researcher
who contributes as the first Author of the Scientific Work.
Plagiarism Detection
All Scientific Works will be tested by plagiarism software PLAGSCAN if a plagiarism level is detected
Positive will not be sent to arbitration and will be rescinded from the reception of the Scientific Work
notifying the Authors responsible, claiming that academic plagiarism is criminalized in the Penal Code.
Arbitration Process
All Scientific Works will be evaluated by academic peers by the Double Blind method, the Appeal
arbitration is a requirement for the Editorial Board to make a final decision that will be unappeasable in
all cases. MARVID® is a derivative brand of ECORFAN® specialized in providing the expert evaluators
all of them with Doctorate degree and distinction of International Researchers in the respective Councils
of Science and Technology the counterpart of CONACYT for the chapters of America-Europe-Asia-
Africa and Oceania. The identification of the authorship should only appear on a first removable page,
in order to ensure that the Arbitration process is anonymous and covers the following stages:
Identification of ECORFAN Books with their author occupation rate - Identification of the Authors and
Coauthors - Detection of Plague PLAGSCAN - Review of Formats of Authorization and Originality-
Allocation to the Editorial Board- Allocation of the pair of Expert Arbitrators-Notification of Opinion-
Declaration of Observations to the Author-Comparison of the Scientific Work Modified for Editing-
Publication.
Programming of industrial robot Fanuc LR Mate 200iD
DOI: 10.35429/B.2022.2.1.121
*jorge.mastache@tesjo.edu.mx
O. Cirilo, J. Mastache, R. López & J. Namigtle (AA. VV.). Programming of industrial robot Fanuc LR Mate 200iD. Books-
©ECORFAN-México. 2022.
Programming of industrial robot Fanuc LR Mate 200iD
The Book will offer selected contributions of researchers that contribute to the scientific dissemination
activity of the Tecnológico de Estudios Superiores de Jocotitlán for its research area in the function of
the University facing the challenges of the Knowledge Society. In addition to having a total evaluation,
in the hands of the directors of the Tecnológico de Estudios Superiores de Jocotitlán, quality and
punctuality are collaborated in their chapters, each individual contribution was arbitrated to international
standards (RESEARCH GATE, MENDELEY, GOOGLE SCHOLAR and REDIB ), the Book thus
proposes to the academic community, the recent reports on the new developments in the most interesting
and promising areas of research in the function of the University before the challenges of the Knowledge
Society.
2022 Derechos Reservados ECORFAN® México • Bolivia • Spain • Ecuador • Cameroon • Colombia • Taiwán •
Salvador • Guatemala • Nicaragua • Paraguay • Democratic Republic of Congo • Perú
Content
Abstract
The fourth industrial revolution brought a great change in our lives, since it provided a technological
evolution developing elements such as the internet, artificial intelligence and robotics. Things that today
are essential to learn since they are basic topics if we observe that the evolution continues to increase.
Focusing on robotics, its application in industry offered nothing but benefits for them due to the increase
in production capacity, reduction of manpower, operation at high precision, etc.. All this, using the well-
known "Industrial Robots", which are robotic systems designed to respond to stimuli perceived by him,
performing an intelligent action, where the biggest challenge to manipulate them is to know their
composition and learn to program them.
On the other hand, different companies such as FANUC, have developed new technologies that
maintain communication between the user and the robot, in addition to facilitating programming by
generating intuitive elements such as controllers and remote-control devices (teach pendant). The
importance of these elements lies in the fact that they can be used to develop trajectories that allow the
robot to perform actions or applications in an industrial environment, from the recording of a finite series
of points in space. Therefore, the aim of the chapter is to explain the basic composition of the Fanuc LR
Mate 200id robot, describing its main features, as well as adding technical data that will help to better
understand the subject.
1.1 Introduction
Since ancient times, with the arrival of the machines, civilization has always shown an interest in
replicating movements, reactions, behaviors, and tasks, both human and animal. Scientists also supported
the evolution of robotics, among them : Juanelo Torriano with "The stick man" (16th century), Jacques
de Vaucanson with "Duck with a digestive system" (17th century ), Walter Gray with "Spectaculatrix
Machine or Turtles" (1948-1949), among many others. (Salazar García, 2018), (Guarnizo Marin et al.,
2021).
The constant technological advancement and the integration of robots more and more noticeable
every day, promoted that companies did not hesitate to experiment with adding these robots to their
companies. In 1961, General Motors integrated the first industrial robot to help in the production of
automobiles, which generated profits, offered efficiency, and also increased the production capacity.
Nowadays, there are many manufacturing companies of industrial robots, within which FANUC could
be considered as one of the most famous companies, which in turn manufactures all the tools to
manipulate them. From this arises the need to learn to control them while knowing their conformation
(Mikhail & Wang, 2018).
This chapter focuses on describing the composition of the Fanuc LR Mate 200id robotic system,
explaining the most important parts and characteristics that constitute it, such as its mechanical unit, the
R-30iB plus controller and the TP remote control unit.
Although the Fanuc LR Mate 200iD robot contains hundreds of parts that make it up, these can be divided
into three main ones: the controller, a mechanical unit (the robot) and a control unit (iPendant or Teach
pendant). That is why these components will be explained below.
2
The LR Mate series is a family of robots considered as “small payload tabletop robots”, which are mostly
made up of six degrees of freedom and are compact robots like the size of a human arm, that are used for
handling and fast processing of pieces between 7 to 14 kg depending on their termination in the
nomenclature. In addition, its modular construction is driven by servomotors designed to offer stability
that eliminates the greatest amount of vibration and allows more precise movements. (FANUC America
Corporation, 2016)
The LR Mate 200iD mechanical unit version is named by the same company that manufactured
it as "minirobot". This in turn is made up of 6 axes that, fully stretched, can reach up to 717 mm long,
approaching the standard length of a human arm. In addition, it can support a wrist load of up to 7kg.
The main constitution is based on axes and links where, the axes are numbered in ascending order if we
compare it to a human arm (see figure 1.2), then the constitution would start from a base (J1) and continue
with the shoulder ( J2), elbow (J3), upper arm rotation (J4), wrist tilt (J5) and wrist rotation (J6), and on
some occasions, the fingers may be considered are the tools that are mounted on the robot.
Hand
Doll
Forearm
Elbow
Shoulder
Basis
1.2.1.1 Characteristics
As previously was mentioned, the LR Mate 200iD robot is generally made up of a total of 6 axes. This
constitution is mainly based on links and axes where the former are the rigid parts of the robot that
function as the union between axes that also allow movement between them. On the other hand, the axes
are the moving parts that contain a specific range of rotation and are listed in ascending order (guiding
from figure 1.2) starting from:
This mechanical unit was developed in a compact way to offer more efficient productivity, using
smooth movements at high speeds without generating vibration, thus providing shorter cycle times
(Fanuc, 2018a). Other important features for this version of the robot are:
The controller is the heart of the robot, this is where essential elements such as the power switch, an
emergency stop button, the operation mode switch, etc., are located. In addition, it contains the computer
and all the components that make the mechanical unit work (see figure 1.3) and that maintains
communication with the user through the Teach pendant. This controller was designed to improve robot
performance through cycle times, speed, accuracy, and safety. In addition to the fact that its construction
supports the energy saving, it saves space and has easy communication with the user, this is due to the
fact that it has intuitive control and maintains an easy-to-understand diagnostic system (Fanuc, 2018b).
On the outside of the controller is the so-called "operator panel", which is an area where the buttons and
switches that allow the operation of the mechanical unit are located. These elements can be better
visualized in figure 1.4 and are mainly made up of:
4
ON/OFF switch: Turns the on/off state of the robot, the main controller and teaching terminal.
In addition, if it is turned in the reverse direction at power on, the controller cabinet can be opened.
Emergency stop: Stops the actions or mobile functions of the robot when it is activated, and it
can only move by deactivating it.
Operation mode selector: It is a switch that allows us to choose the type of mode in which we
will work automatic or manual, this is done through the TP.
Cycle start button: Starts a programming cycle when the robot is in its automatic mode, unless
a program works through loops, this button will have to be activated at each cycle start.
USB port: It is a port designed to have better access to the controller from a USB memory and
thus be able to work with backups, among other options.
USB port
This controller model contains two modes of operation for the robot, automatic and manual, depending
on the user's selection, the mode is chosen through a master key (see figure 1.5). The difference between
each mode is as follows:
Manual Mode: This mode is better considered as programming mode, here the user has complete
control through the teach pendant to program the robot. The movements do not exceed 250 mm/s
and to move it, the user's intervention is necessary, in addition to the activation of the deadman
switch.
Automatic Mode: This mode is better known as production mode, in it, the speed at which the
robot works is 100%. Here the activation of the deadman switch is not needed, however, to move
the robot, the user intervenes by means of a cycle button as many times as required.
Manual mode
Automatic
mode
To run a program using automatic mode it is necessary to configure the system by following the
steps below:
5
The iPendant, teach pendant, TP, teaching terminal or just teach (see figure 1.6a), is a device used to give
control of the robot movement to the user, this from the manual mode in the controller. This control goes
from moving the robot, to creating, executing, and modifying programs, etc. (Mikhail & Wang, 2018)
Among the many options that the TP offers us, this teach model contains a touch screen, as well as a
monitor that allows us to see our robot in 3D simultaneously with the actions we carry out, among
hundreds of other functions, making it easy to interact with the operator, both to understand the system,
as well as to use it. This is because it contains an intuitive and friendly system.
To guarantee the user's safety, the teach pendant has two switches located on the back, which interrupt
the movements or programs that are being executed in the robot during emergency situations, activating
some brakes and temporarily disabling the servomotors (Guerrero Ávila & Loyal Flame, 2017). To
enable the robot again (see figure 1.6b), one of the two switches must be activated, understanding the
following conditions:
To use the teach pendant more easily, it is necessary to know the keys, indicators and elements that make
it up, since they are essential for programming, editing, diagnosing, etc. For this reason, figure 1.7
presents the basic characteristics of the teach pendant.
6
References
FANUC América Corporation. (2016). Serie LR Mate _ Robots ligeros y compactos _ FANUC América.
https://www.fanucamerica.com/products/robots/series/lr-mate
Guarnizo Marin, J. G., Bautista Díaz, D., & Sierra Torres, J. S. (2021). Una revisión sobre la evolución
de la robótica móvil. Una Revisión Sobre La Evolución de La Robótica Móvil, 1–8.
https://doi.org/10.15332/dt.inv.2021.02848
7
Guerrero Ávila, Y., & Llama Leal, M. A. (2017). Contribución al Estudio de la Selección de Parámetros
de la Estación de Soldadura Robotizada Fanuc 100iC. Tecnológico Nacional de México.
https://rinacional.tecnm.mx/handle/TecNM/610
Mikhail, M., & Wang, S. (2018). Lab design of FANUC robot operation for engineering technology
major students. ASEE Annual Conference and Exposition, Conference Proceedings, 2018-June(May
2001). https://doi.org/10.18260/1-2--30747
Salazar García, I. (2018). Los robots y la Inteligencia Artificial . Nuevos retos del periodismo.
Universidad CEU San Pablo, Madrid, España, 295–315. http://hdl.handle.net/10637/9889
FANUC América Corporation. (2016). Serie LR Mate _ Robots ligeros y compactos _ FANUC América.
https://www.fanucamerica.com/products/robots/series/lr-mate
8
Abstract
Commissioning, in a simple way, can be defined as the processes used to verify that a design, assembly
or mechanism is being executed properly. Therefore, from the perspective of an industrial robot, it is
important to maintain a knowledge in this regard, since, taking into account the multiple applications that
can be performed with them, it is necessary to develop a preparation so that the programs or executions
of movements work correctly. This, considering that the necessary knowledge to manipulate these
movements in the robot is already available. In this chapter emphasis will be given to the description of
the start-up for the Fanuc LR Mate 200iD robot, defining elementary characteristics to start the robotic
system and how to manipulate movements. In the same way it is sought to describe the elementary topics
to prepare the robot before performing a program.
Start-up, preparation
2.1 Introduction
The FANUC LR Mate series industrial robots have several robot models where some of them contain
ISO class 4 standards for food grade and clean rooms (FANUC America Corporation, 2016). That is
why, once the composition of the robot is understood, one of the main challenges to manipulate them is
to determine how it is programmed and before that, how the movements of the robot are controlled,
considering the most important characteristics such as its startup. In addition, due to the increase in
applications that can be carried out with industrial robots, at present, to carry out a program, it is
necessary to have a preparation that involves the declaration of different elements, such as tools, work
areas, etc. For this reason, different companies have developed operating manuals that implement the
aforementioned to have a more constant learning.
The objective of this chapter is to describe how the Fanuc LR Mate 200iD robot is started up and,
likewise, what is the preparation that it must have before creating a program and what are some of the
characteristics to consider. All this in an explanatory way so that it can be replicated by other people.
The startup of the robot in simple words is the activation of its system by allowing the passage of electric
current, as well as the deactivation of the brake mechanisms among other things.
Robot startup
To turn on the robot in a simple way, assuming that there is no other problem to solve before, it is enough
to follow the following procedure:
1) The robotic system is connected to the electrical current and in case of having alternative
disconnection elements such as safety switches, it must be disabled to allow the passage of energy
to the R-30iB controller.
2) Then, turn the ON/OFF switch knob on the controller to the right, in such a way that you will
hear how it turns on its fan, activating the entire system.
3) Subsequently, the emergency stop in the controller is unlocked and the mode in which it will
work (automatic or manual) is selected.
4) Finally, to use the robot, unlock the emergency stop and turn the switch on the teach pendant to
its ON state.
Note: Depending on the case, operation or action to be performed, there are also other types of
start-up, such as start cold, start hot and controlled start
9
Robot shutdown
1) To turn off the robotic system, you have to perform the same steps as when turning it on, but this
time in reverse, taking into account the following considerations:
a. If a program is running, the HOLD key on the TP must be pressed to stop it.
b. The robot must be placed in a position that does not affect its condition in the future or avoiding
possible collisions.
c. The TP switch must be turned to its OFF state and the emergency stop button must be pressed to
prevent any instruction from being activated or executed.
Note: Before turning the robot on or off, make sure that the cell conditions are in good
condition and that proper safety measures are being taken.
This type of startup is one of the most common ways to give power to the robot, here the robot is already
on, but it seeks to save or initialize variables contained in the system again, so when this startup is
activated, only the robot is restarted. internal system of the robot and in the same way, the teach pendant
remote-control unit is restarted.
A cold boot is done for different reasons: the robot is behaving strangely, a backup is being made, some
variables are being changed, etc. Whatever the case, this startup consists of quickly turning the robot off
and on by turning the main knob on the controller to turn it off, waiting about 30 seconds, and turning
the knob again to turn the robot back on. This makes it work as if it were a CPU restart, initializing the
system variables and saving any changes that may be made.
Controlled start is a type of start that allows us to display additional options that are not available when
the robot is running normally. In addition, it allows us to unlock variables, restore a backup, among other
things. To obtain a controlled start, it is enough to have the TP activated in its ON state and press and
hold PREV+NEXT while the controller is turned on, when the options menu comes out we choose
controlled start, and you can select what you want.
2.3 Joggin
Having as one of the important points knowing how to perform movements with the LR Mate 200iD
robot from the teach pendant, the following steps can be followed:
1) Once the controller has been enabled, the TP is now enabled by turning the switch to its ON state
and the emergency stop is unlocked in the same way.
2) Subsequently, the type of coordinates to which the robot will move is chosen, by pressing the
COORD key repeatedly until reaching the appropriate system, following the pattern in figure 2.1:
10
Figure 2.1 Selection button for the type of coordinate system to be used
JOINT --> JGFRM --> WORLD --> TOOL --> USER --> JOINT
3) The speed at which the robot will operate is selected, taking into account the speed values that
we are given to choose from. It should be noted that when pressing any of the two keys in figure
2.2, the percentage varies in a different way, pressing the simple keys, the percentage goes from
1 to 1% and after 10% it goes from 5 to 5%, if you press the combination of the speed and shift
keys at the same time, the options will be handled from 50 to 50%. In addition, there are fine
speeds that, depending on the type of movement, is the speed at which they are manipulated (see
table 2.1).
4) The deadman switch is pressed until the first step to activate the teach pendant and the RESET
key is pressed instantly (see figure 2.3), this is so that the servomotors are turned on and the robot
brakes are unlocked. We will realize that the above has happened, since a deactivation sound can
be clearly heard.
5) Finally, and with the deadman switch still activated, you have to press the shift key and then the
key that corresponds to the movement that we want the robot to perform (in this case, the robot
being in a Joint coordinate system), as like figure 2.4.
Source: Modified image obtained from ROBOGUIDE software and (Fanuc, 2018)
Coordinate systems are implemented to the robot to indicate the space, position or orientation in which
it is located (Pinto Hernández, 2016). For this robot model, the systems are subdivided into 5: WORLD,
TOOL, JOINT, USER AND JOGFRM. Being the first three, the most used within the industry.
This coordinate system performs movements that are measured in degrees, here the robot moves each
axis individually depending on a positive or negative orientation (Ponsa Asensio, 2003). The movement
keys are defined by ±J1 to ±J6 respectively starting from the base (an example of this can be seen in
figure 2.5A).
This is a static, three-dimensional Cartesian coordinate system. Its origin is in the base of the robot and
it is defined at the factory (Ponsa Asensio, 2003). In addition, the origin will almost always be oriented
taking into account the robot's power connection, as can be seen in figure 2.5B.
The origin of this type of Cartesian coordinates is defined by the user and is always located at the flange
(or end effector) of the robot (see in figure 2.5E). However, the origin is reprogrammable, that is, we can
define a new origin by declaring the dimensions of the tool to be used. This is known as TCP (this topic
is explored in more detail in this chapter). (Ponsa Asensio, 2003). This system is mobile for each of the
robot movements and this specific model has 10 programmable TOOL systems, so there is a wide range
of choice to use any tool.
12
Both are Cartesian coordinate systems defined by the user and unlike the Tool coordinates, these are
coordinates that, once the origin is declared, remain static. Its objective is to move the robot linearly and
efficiently with respect to a work area. The difference between them is that JOGFRM coordinates have
no special meaning, however, while USER coordinates focus on entire work areas (see in figure 2.5C),
JOGFRM coordinates are used for work objects as in the figure 2.5D (Ponsa Asensio, 2003).
To see the position of the robot in real time through the teach pendant, you can press the POSN key or
you can follow the address MENU → 0-NEXT → 4-POSITION. In any of the cases, we will obtain a
screen that will show us the position of the robot, at this point we can choose the type of coordinates that
we want to see. Also, the options available to you are: JOINT, USER, and WORD.
Figure 2.5 Types of coordinate systems on the robot A)Joint, B)World, C)User, D)Jogfrm
J4
J5 Y
J3 Z D Z
J6
Z
X
A B C X Y E
+Z
Y
J2
+X X
J1
+Y
The preparation of a robotic system for later programming is equivalent to having to declare the elements
with which it will work, where the tools, plans or work areas enter, among other characteristics. Being
the focus on the declaration of tools, there are essential definitions to understand, one of them is the well-
known "TCP", which will be covered below.
2.5.1 TCP
The center point of the tool or better known as TCP, is the point with respect to which all the positions
of the robot are defined. In other words, it is a way of telling the robot where the main part of the tool to
use is, so that distance precautions are taken into account, etc. Normally, when there is no tool on the
robot, the TCP will always be in the center of the end effector (see figure 2.6A).
A simple tool is a tool that contains an attack axis parallel to the z axis of the flange (Navarro Sanz,
2009). In this case, the orientation of the tool does not change, it only moves (see figure 2.6B), which is
why it is advisable to use the three-point method to declare this type of tool.
13
A complex tool contains an axis of attack that is not parallel to the z axis of the flange, since the TCP is
displaced and its orientation is redefined, as can be seen in figure 2.6C (Navarro Sanz, 2009). For this
type of cases, it is advisable to use the 6-point method to declare the tool.
Figure 2.6 TCP types A)Standard TCP, B) Simple TCP, C)Complex TCP
A B
To declare a tool we first have to know what a FRAME is. The frames are the boxes where the coordinate
systems that the robot uses to locate itself in a workspace are defined. In other words, the robot has a list
of frames where all the tools declared in the system are shown, this specific robot allows up to 10 tools
to be declared. To get to that list, follow the address:
When found there, you can see 10 boxes which are made up of a number, the location coordinates
and a name. To declare the tool we want, we have to position the cursor of the teach pendant in a box
and press DETAIL, then choose a method shown below to declare the origin of that tool.
This method is used when the coordinates and specific orientation of the tool are already perfectly known
(Navarro Sanz, 2009), thanks to the fact that this method allows these data to be placed manually without
the need to move the robot (see figure 2.7). To do so, go to the following address and enter all the position
data of the TCP of your tools according to what is requested:
Figure 2.7 TP screen using the direct entry method for tools
This method consists of recording three points by means of a real reference to create a coordinate system
at the point of attack of some tool. To do this, we must move the robot to that reference as close and
centered as possible to then record a point there, later it is done twice more, but orienting the robot
differently without moving away from the reference, until the UNINIT legends in the teach pendant
change to USED. The address to choose this method is: is:
1) The first step is to place the robot in any position where the tool is about to touch our reference
and that it is as close and centered as possible (see figure 2.8).
Figure 2.8 Step 1 of the three points method for declaring tools
2) After that we position the Teach Pendant cursor at APPROACH POINT 1 and record that point.
To record that position just press the key combination SHITF + RECORD at the same time. To
know if what we did before was correct, the legend RECORDED will have to appear on the screen
instead of UNINIT (see figure 2.8).
3) To conclude with this method, the following is to repeat step 1 and 2 two more times, positioning
our robot in different postures and selecting the point to record with the cursor dates in the TP.
When we are finished we can see that the legends RECORDED will change to USED, in that case
we will have finished, and our tool will be ready to use (see figure 2.9).
15
Figure 2.9 Step 2 and 3 of the three points method for declaring tools
Nota: To position a robot to a point that we recorded earlier because we accidentally moved the
robot or for some other reason, you have to position the TP cursor to the point to which we want to move
it and press the key combination SHIFT + MOVE_TO
This method is practically the same as the 3-point method, with the difference that we place an additional
point that gives the origin to our coordinate system, and two more points to define the orientation that
this system will have, it can be through XY or XZ. The address to choose this method is:
1) At first we will have to record the first three reference points as in the previous method, again
considering that the robot postures are different (see in figure 2.10).
2) Subsequently, we have to record a point to which it is going to be oriented to the origin, that is,
we must consider what is the coordinate system that we want to give to the tool so that this new
point is referenced to it (see figure 2.11 ).
16
Figure 2.10 Step 1 of the six point method for declaring tools
3) Now, depending on the method you chose (XY or XZ), you have to move the robot first to where
we want our X axis and record that point. Then, we return to ORIENT ORIGIN POINT and press
SHITF + MOVE_TO at the same time, to move the robot to the position that we are indicating.
Then the robot moves again, but now oriented to the “Z” or “Y” axis that we want to declare and
we also save it (see figure 2.12).
4) Finally, we will see that the RECORDED legends will change to USED, and the tool will be
declared and ready to be used. The most common way to check how accurate the new system is,
is to activate the tool by changing the robot coordinates to Tool coordinates and pressing only the
rotation keys from the Teach Pendant to make it move on that system. If when moving the robot,
the tool is in the same starting position, the system has a high accuracy.
17
Example of Example of a
declaration in X declaration in Y
When a tool has been declared, it can be selected from the Teach Pendant by pressing the SHIFT +
COORD key at the same time, when a pop-up tab appears, place the number of the tool that was declared
from the beginning, press ENTER, and it will be ready (see figure 2.13). Another way to do this is to
press the F5: SENTID key in the SETUP Frames window, enter the tool number and press ENTER.
The user frame is a three-dimensional, cartesian reference system where the user can configure its
orientation and position anywhere in space within reach of the robot (see figure 2.14). Same in which,
when performing a TP program, all the positions that are recorded will move and take the configuration
of this system as a reference and can only be changed internally (FANUC Robotics Iberic S. L., 2018).
18
To declare a User frame it is necessary to move and orient our TCP to the base of the system we
want, in this way we can move the robot, as well as record positions that are guided based on the reference
system. Also, only one user frame can be selected at a time, or it can be called programmatically. If no
user frame is configured, WORLD coordinates will be taken by default. There are 3 methods to declare
a User frame:
3 points method
4 points method
Incoming address method
USER
coordinates Z
Y
X
Z
WORLD
coordinatess
Y
X
The robot has a list of frames where all the Users declared in the system are shown, specifically, this
version of the robot and controller allows up to 9 user systems to be declared. To get to that list, follow
the address:
Being there, you can see 9 boxes which are made up of a number, the location coordinates and a
name. To declare the user systems that we need, we have to position the cursor of the teach pendant in
some box and press DETAIL, later the name of the system can be configured, and a method shown below
is chosen.
This method is used when the coordinates and specific orientation of the new reference system are already
perfectly known, thanks to the fact that this method allows these data to be placed manually without the
need to move the robot (see figure 2.15). To do so, go to the following address and enter all the data
according to what is requested.
Figure 2.15 TP screen using the direct entry method for Users
This method consists of recording three points by means of a real reference (it can be the base of the
reference system that we want), this to create a coordinate system from which our robot will be guided.
To do this, we must move the robot and position it on the reference base as close and centered as possible
and then record a point there, to finish this step is done twice more, but determining the orientation of
the system until the UNINIT legends in the iPendant change to USED.
1) We place the cursor on “Orient Origin Point” and orient our TCP to the place where our new
reference system will begin to orient itself, once there, press SHIFT+RECORD to record the
position (see figure 2.16). Here you will change the UNINIT legend to RECORDED.
Figure 2.16 Step 1 of the three points method for declaring USER frames
2) We place the TP cursor on the “X Direction Point” line and move the robot just a little to indicate
the new x axis of the system, once this is done, record the position (see figure 2.17).
20
Figure 2.17 Step 2 of the three points method for declaring USER frames
3) Finally, place the cursor on the “Orient Origin Point” line and press SHIFT+MOVE TO to return
to the system origin. Then relocate the cursor to “Y Direction Point” and do the same procedure
as in step two, defining the Y axis this time (see figure 2.18).
Figure 2.18 Step 3 of the three points method for declaring USER frames
Example of Y-axis
declaration
Source: Elaborated by the work team
4) When you are done with the process, the RECORDER lines will change to USED and the new
reference frame will be ready to use (see figure 2.19). It is worth mentioning that the final
coordinates of the new system can be seen at the top of the User frame.
Figure 2.19 Step 4 of the three points method for declaring USER frames
This method follows the first three steps of the previous method and adds an extra point where we have
to define the origin of our system. An example of its use is that the reference system can be oriented in
the center of a worktable (for greater comfort) and the fourth point would serve to position the origin of
that system in one of its vertices. The address to choose this method is:
1) We follow the first three steps of the 3-point method, until we have the first three lines on the
screen, with the legend RECORDER (see figure 2.20)
Figure 2.20 Step 1 of the four points method for declaring USER frames
2) Finally, and referring to figure 2.19 for the orientation of the system, place the robot at the point
where you want the origin of that system and record it (see figure 2.21). This will cause the
orientation to move directly to that point and the method lines will change to USED.
Figure 2.21 Step 2 of the four points method for declaring USER frames
When a user frame has been declared, it can be selected from the Teach Pendant by pressing the SHIFT
+ COORD key at the same time, when a pop-up tab appears, select the USER option with the cursor and
place the number of the frame that was declared from the start, press ENTER and you're good to go.
Another way to do it is by pressing the F5: SENTID key in the SETUP USER Frames window, enter the
reference system number and press ENTER.
The payload or payload is a way of informing the robot about the weight it is carrying on the last
extremity of the arm. This weight depends on the tool to be installed, the workpiece to be moved, etc.
This version of the robot contains memory to declare up to 10 payloads and the reasons why they are
performed are listed below (FANUC Robotics Ibérica S. L., 2018):
Following the context of figure 2.22 and depending on the payload you want to register, choose an option
by positioning the TP cursor on any available section and press DETAIL. Once inside, we have to enter
all the data requested (see figure 2.23), among them are: the weight in Kg, the center of gravity in cm
with respect to the original TCP of the robot (the flange), as well as well as the inertia X, Y and Z in
Kgfcms^2, as shown below.
If you do not know how to determine the inertia of a work object, you can be guided by the
following calculations regarding the shape of the object (see in figure 2.24):
23
During data entry, the TP will warn you if these are acceptable or not, so you must constantly
confirm this entry by pressing the F4-YES or F5-NO key when the question “Path and Cycletime will
change. Set it? Depending on the case, if the system decides that the data is not acceptable, it will have
to change it. Otherwise, if you have finished, press the PREV key.
If you have additional loads in the physical axis of the robots 1 or 3 go to section 2.7.3
ARMLOAD, if not, after creating, configuring or modifying your payload, do a cold start by turning the
robot controller off and on again. robot to restart it with the new inserted data.
Up to this point you have already declared your payload and you can call it from the programming
panel (see section 2.7.5).
Payload ident
This method automatically calculates the necessary data to declare a payload, here the robot performs a
maneuver at low speed and another at high speed only with axes 5 and 6 to determine the parameters of
the load (this only works with the automatic mode of the controller ). To do so follow the address:
After that, we choose the payload we want, positioning the TP cursor on it and then pressing
NEXT → F2; IDENT, where you will get the screen of figure 2.25.
24
Now, if you want to change the details of the operation, press NEXT → F4: DETAIL, this will
take you to the screen in figure 2.26. In that case you can change the following settings:
1. You can change the position in degrees to which the robot will move by placing the cursor on
axis 5 or 6.
a. Use SHIFT+ RECORD (activating the TP) if you want to save a new position.
b. Use SHIFT + MOVE TO (activating the TP) if you want to move to a set position.
c. Press F2: POS.1/ POS.2 to set the position one or two which is in the system.
d. Press DEFAULT to return to the default values offered by the TP.
2. You can manipulate the speed at which the robot will move, both at high speed and at low speed.
If you want to do it, put the cursor on the value you want to change and do it.
Note: Before pressing PREV and returning to the main screen, make sure that the robot is in
position 1, to do so press F2: POS.1 to appear (If this option does not appear, ignore the note). Later,
with the deadman switch activated and after pressing the RESET key, press SHIFT+ MOVE TO and
continue with the procedure.
25
Once the changes have been made, press PREV to return to the screen in figure 2.25 and follow
the steps below:
A. Put the TP in its OFF state and if it is not, put the controller in automatic mode.
B. Press SHIFT + RESET or just RESET to clear warnings.
C. Press F4: EXEC and at the Robot moves and estimates prompt. Ready?, press F4: [YES].
D. The robot will move in two maneuvers (one fast and one slow) and the values of moment and
inertia of the axes will change. Once done, press F5: APPLY.
E. Lastly, verify that the payload values have changed by pressing PREV→F3: DETAIL and check.
At this point you have already declared your payload and can call it from the programming panel
(see section 2.7.5).
2.7.2 Armload
The ARMLOAD, like the previous points, is a way to inform the robot about a load that it must consider
(see figure 2.27). In this case, an additional load is reported for axis 1 or axis 3 of the robot. To do this,
go to the following location:
Once there, enter the weight of the loads you need to declare and confirm the data by pressing
F4-YES. The software will ask you to reboot the controller, so you will have to do a cold boot by
powering off and on the robot controller, so that when it fully reboots, your paylod along with your
ARMLOAD will be declared and ready to be called.
26
This option in the TP exists so that we can make quick revisions or to check the adjustment of an already
declared payload. To get to it, follow the address:
Once you are at the above address, you will have two options to click and review your payload:
F4: PLSET: It works to check the setting of a payload. Once pressed, a confirmation question
will appear to move the robot, in this case press F3: YES.
F5: OVLD: Works to check for an overload, so accept all confirmations.
NOTE: For the options provided by the payload check to work properly, check that the robot controller
is in its automatic state, that its TP is in the OFF state and that a payload has already been selected. To
select it press F1: [TYPE] → 7-Motion → F5: SETIND → Select your payload.
In order to use a payload, it must first have been declared. Once that is done, we can call it from the
programming tree (see figure 2.28), to do this within a program you can press:
When the instruction is created, we position ourselves with the TP cursor inside the brackets of it
and select the option that has been declared by inserting the paylod number with the following options
(see figure 2.29).
2.8 Limits
A limit is important for a robot, since they are accesses that each axis has and that allow it to move a
certain distance within the work zone. FANUC Robotics Ibérica tells us that there are three types of
limits: software, electrical and mechanical. The last type always depends on the robot or its axes to be
configured, the others are described below.
The Axis limits or axis limit, are an option that the software gives us to configure the number of degrees
to which the axis box is allowed to move (see figure 2.31). When we reach the limit, the robot stops and
sends the warning “JOG-13 Strock limit (G:1 A:2)” to warn us that the stroke limit has been reached, in
this case, it is only enough to move the axis inversely. To configure the limits we have to follow the
address:
Figure 2.30 Standard configuration for axis limit on the FANUC LR Mate 200iD robot
Once the values we need are configured, the robot will ask us to restart the power cycle, so we
must turn it off and turn it on, so the changes will be made.
The electrical limits, on the other hand, are limits that, when activated, the selected axis is impossible to
move and will only be achieved by pressing SHIFT+RESET or searching among system variables. This
type of limit is optional and to do so we go to:
Once there, we position the cursor on the axis to which we want to apply an electrical limit and
press F2:RELEASE.
References
FANUC América Corporation. (2016). Serie LR Mate _ Robots ligeros y compactos _ FANUC América.
https://www.fanucamerica.com/products/robots/series/lr-mate
FANUC Robotics Ibérica S. L. (2018). ROBÓTICA PROGRAMACIÓN FANUC. SEAT.
http://www.infoplc.net/files/descargas/fanuc_robotica/infoPLC_net_ManualFANUCR-J3iB.pdf
Ponsa Asensio, P. (2003). Estudio sobre robots Fanuc. Universitat Politécnica de Catalunya, 139.
http://hdl.handle.net/2117/185131
29
Abstract
A trajectory is considered as a finite series of points in space through which the robot must pass when
executing a specific task and which have a starting point and an end point. The problem lies in the control
needed to force the robot to follow such a trajectory considering different characteristics, having to resort
to programming. Speaking particularly of the LR Mate 200iD version of the robot and its R-30Ib Plus
controller, programming is done first through the physical recording of the points that make up the
trajectory. Subsequently, both a command editor and instructions that allow specific commands to be
given according to the function being sought are used and, finally, the execution of the final program is
carried out. This makes the main objective of the chapter to focus on describing the steps to carry out a
program, generating the trajectories and determining the function of the instructions provided by the
robot controller.
3.1 Introduction
La Trajectory planning is an important part in the programming of industrial robots, this is due to the fact
that it consists in the generation of the control parameters necessary for the robot to execute a specific
task, depending on the conceptual foundations of a manipulator robot (Sierra Bueno & Martinez Angel,
2002). Starting from the previous point, it is necessary to determine the control that the robot will have
to carry out a correct execution, necessary control for the different existing applications in the industry
(Reyes Cortés, 2011). This in turn generated programming, which is a tool that uses different instructions,
which are responsible for controlling different functions in the robot to achieve all of the above. Looking
from another perspective, mathematically a model is obtained to address this control in a broader way,
carrying out the most appropriate study (Saltarén Pazmiño et al., 2000), in this case dividing it into study
blocks, which makes it a time-consuming process. and complex.
This chapter aims to develop a description of how a trajectory is made and programmed with the
Fanuc LR Mate 200iD robot using the interface provided by the R-30iB Plus controller. This by
determining technical data and instructions so that the content displayed can be replicated by a user.
Creating a trajectory
A trajectory is a locus made up of several points in space through which a physical body (in this case the
robot) must pass when performing a movement. For this to be possible, it is necessary for the robot to
move from an initial point to an end point, added to this, the technological advance allowed the
trajectories to be increasingly complex (Saltarén Pazmiño et al., 2000).
A program is a series of instructions that control the operation of the robot, as well as the equipment that
is associated with it (Guerrero Ávila & Llama Leal, 2017), however, the program in which those
instructions will be saved must be created. To do it physically in the robot, the teach pendant is activated
to its ON state and the SELECT keys are pressed, giving a screen which will contain all the programs
created and to be created. After that, the F2:CREATE key is pressed, we will obtain a screen where the
name for the program to be developed will be placed. In that case, the TP gives us table 3.1, which
contains the options to write that name through the function keys F1-F5.
Table 3.1 Options for developing a name for the program to be created
Option F1 F2 F3 F4 F5
Words (Default words) PRG MAIN SUB TEST
Uppercase ABCDEF GHIJKL MNOPQR STUVWX YZ_@*.
Lowercase abcdef ghijkl mnopqr stuvwx Yz_@*.
Extra options OVRWRT INSERT CLEAR
Later, when you write the name, it has to be validated by pressing the ENTER key and then
F2:DETAIL. A window will appear with options such as: subtype, comments and number of elements
to control (see figure 3.1). Unless an option is already being considered, it is advisable to press F1:END
Program name
Program subtype:
• None
• Collection
• Macro
• Cound
Additional
comments
Number of elements to
control
NOTE: In “Group mask”, the group of axes or movements that will be controlled is defined, that
is, each number one represents the systems to be used and each asterisk (*) represents systems that are
not used. If there is no one in this section, move instructions cannot be inserted in the programming.
Finally, by pressing END, the TP will take you to the main programming tree screen where you
can start creating toolpaths through point engraving.
The creation of points is simple, when you have moved the robot to the position or location you need,
from the teach pendant you can press any of the following keys or combination of keys:
F1: POINT = Shows the options of points that can be created, and you must choose one.
SHIFT+F1: POINT at the same time = Generates a standard point (see figure 3.2).
SPEED ACCURACY
F4 CHOICE
DIRECT VALUE. -- Joint Points:
1.-FINE
F4 CHOICE 2.-CNT (continuo)
--Puntos Joint --Puntos L y C
TYPE OF 1% 1 mm/sec --Linear and circular points:
MOTION 2 sec 2 cm/min 1.-FINE
3msec 3 inch/min 2.-CNT (continuo)
F4 CHOICE 4 etc. 3.-CD
1.-JOINT
2.-LINEA
3.-CIRCULAR ADDITIONAL
1: J @P[1] 100% FINE INFORMATION
POINT
COORDINATES
SHIFT+ F1 POINT:
Creates a point or overwrites it. F4 CHOICE
1.-P [ ] : Coordinate point that allows values between 1 and 32767. They are independent for each program.
SHIFT + F5 TOUCHUP:
2.-PR [ ] : Coordinate point that records position and allows values between 1 and 200. In this case they are common
Overwrites only the coordinate.
to all programs.
NEXT >
F5 POSITION
F1 INST:
Create an instruction.
F5 EDCMD:
Options to edit the program.
Note: Each of the characters shown in figure 3.2 can be used or configured depending on the
application it is intended for.
The R-30iB Plus version of the controller allows you to select different points and movements according
to the function that is needed, where the movements are generated point by point developing different
shapes (see figure 3.3), which can be modified with respect to their speed. and accuracy.
Type of points
P[n] = They are normal points; they work only for the programs in which they are recorded.
PR[n] = They are points that, when recorded, work for any program globally.
Joint (J): This is a joint movement where each of the robot's axes is used to reach a position. It is
commonly used in free spaces, that is, workspaces where there are no obstacles or when the robot
returns to its mechanical zero, so rapid movements can be made. In addition, with this option the
robot autonomously seeks to perform the movement without forcing any of its axes (see figure
3.3, red path).
Linear (L): This type of movement forces the robot to follow a straight line that goes from an
initial position to a final position (see figure 3.3, black trajectory). They are mainly used in
movements that require precision or for movements in which the work area has multiple obstacles
that can cause a collision, so they will always be slow. Not to mention that, with these types of
movements, the robot's axes are forced to follow the trajectory by struggling.
Circular (C): Unlike the previous movements, this one requires an additional point that serves as
a reference to complement the circular path through them. To declare the movement, the robot
will have to be positioned at P[1], which will function as an attack point and later P[3] followed
by P[2] are recorded, whose position will determine the dimensions, as well as the shape of the
movement. the circumference or arc (see figure 3.3, blue path).
P[3]
CIRCULAR
LINEAR
Speed
The speed is expressed according to the type of movement (FANUC Robotics Ibérica S. L., 2018). To
choose the type of speed we must position ourselves in the speed option at the point at which we want to
change it, and then press CHOICE. The options to choose from are the following:
Joint
Value in % of the maximum speed
Value in seconds (An arrival time must be imposed)
32
L or C
Value in mm/s
Value in cm/min
Value in seconds (An arrival time must be imposed)
Accuracy
Accuracy in simple words is how a robot gets to a point or finishes a move. For this robot there are three
types of accuracies:
FINE: It is a type of exact precision, where the robot will reach the specified point regardless of
other aspects and thus increasing the cycle time but developing a safer program depending on the
application.
CNT (Continuous): It is a precision in which the robot does not specifically arrive at a point, but
rather gets too close to it, reducing the cycle time. Here the percentage of continuity while it is
lower, the precision will be higher (see figure 3.4).
P[2]
FINE
CNT50
CNT100
P[1]
P[3]
Next, figure 3.5 shows some examples of the use of the three most common types of movement and how
to record them so that the final movement of the robot is correct.
P[4]
Programming with JOINT motion
Programming with CIRCULAR
motion
1:J P[1] 100% CNT100
P[3] P[4] 2:J P[2] 100% CNT100 1:J P[1] 100% CNT100
3:J P[3] 100% CNT100 2:J P[2] 100% CNT100
4:J P[4] 100% CNT100 P[5] P[3] 3:C P[3] 0
5:J P[5] 100% CNT100 : P[4] 4000mm/sec CNT100
4:C P[5] 0
: @P[2] 4000mm/sec CNT100
Programming with LINEAR motion
P[2] P[5]
1:J P[1] 100% CNT100 P[2]
2:L P[2] 4000mm/sec CNT100
3:L P[3] 4000mm/sec CNT100
P[1] 4:L P[4] 4000mm/sec CNT100 P[1]
Arrival point 5:L P[5] 4000mm/sec CNT100 Arrival point
The execution of a program will always assume that you already have a program itself, either to start a
process or for testing. In any case, two types of executions can be used:
33
Using the SHIFT + FWD keys: This method will cause the program to be executed descendingly,
that is, the program will be read and executed according to the numerical order in which it was
written.
Using the SHIFT + BWD keys: Unlike FWD, this method will execute the program in an
ascending manner, in such a way that a kind of backtracking will be observed. This method can
be used to revalidate moves or roll back actions.
Using STEP and SHIFT +FWD/BWD: This option allows you to manipulate the execution of a
program, making the movements step by step (reading line by line in the main program and
stopping at each one).
2) TP in OFF state.
5) Press the CYCLE START button on the controller as many times as desired.
3.2 Programming
Some of the options offered by teach pendan focused on editing and programming are shown in figure
3.6.
Figure 3.6 Diagram of the options offered by the TP with respect to programming.
PROGRAMMING
SCREEN
NEXT
3.2.1. Positions
To record a default or standard position, press SHIFT + F1: POINT on the TP once the robot is located.
This will generate a position referenced to a point, which has the following structure:
If you want to change the default structure, press F1: POINT. When the position options shown
in figure 3.7 appear, choose the one that suits you best.
If none of the options convince you, press F1: POINT and then F1: ED_DEF. Here you can
modify the standard positions as you like (see figure 3.8), just position the cursor on the part you want
to change and press F4: CHOICE. When you are finished press F5: DONE.
There are two ways to set the position of a recorded point, overwrite it or change it manually. To
overwrite it move the robot to the new position and place the TP cursor on the point you want to change,
then press SHIFT + F5: TOUCHUP and you will see the message "Position has been recorded to [*]"
(see Figure 3.9).
35
Otherwise, change the position manually by placing the TP cursor on the number inside the
brackets of the point to be set (see figure 3.10) and press F5: POSITION.
Once inside the point, change the type of coordinates by pressing F5: REPRE and select the
desired coordinates, Joint or Cartesian (see figure 3.11). When finished press F4: DONE.
Figure 3.11 A) Position of the point in Joint coordinates, B) Position of the point in World coordinates
The command editor appears when pressing the F5: EDCMD key within the programming screen (see
Figure 3.6). This gives us several options that we can use to modify a program, these options and their
function are as follows:
36
Insert
To add lines within a program we must place the TP cursor in the space where we want to insert them,
as shown in code 3.2:
Now press 1.Insert and when "How many line to insert?" appears, enter the number of lines to
insert (in this example 2) and press ENTER. You will get the function shown in code 3.3.
It works for deleting programming lines where, before pressing 2.Delete, you must first place the TP
cursor on the line to be deleted or on the beginning of a group of lines to be deleted (see in code 3.4).
Then press 2.Delete. If you only want to delete a single line press F4: YES, otherwise, using the
up and down arrows of the TP, mark the other lines as in code 3.5 and press F4: YES.
Press 3.Copy/Cut, then place the TP cursor on the line to be edited or on the beginning of a group of lines
as in code 3.2. If you want to copy more than one line, use the up and down arrows of the TP to select
them, otherwise proceed with the following.
37
After selecting them, you can use F2: COPY (only to copy lines) or F3: CUT (to relocate the lines
by removing them from the program and placing them elsewhere by pressing F5: PASTE). Then, position
the cursor again on the line where the new points will be copied or moved, press F5: PASTE and select
one of the following options.
F2: LOGIC = Pastes only the logic of the copied point (or line) without position or identification
(see code 3.7).
F3: POSID = Pastes or relocates programming lines in the most accurate way, respecting the
logic, identification and position of the point (see in code 3.8).
F4: POSITION =Puts the point respecting the logic and the position, but changes the
identification number generating a new one (see code 3.9), following the numerical order of the
programming.
F5: CANCEL = Deletes the copy or cut memory, so in case you want to copy or cut programming
lines, you have to select again those lines and then paste them in their new location, in addition
to choosing one of the options presented up to this point.
NEXT+F1: R-LOGIC = Pastes the logic of the lines in reverse order without position or
identification, generating a code similar to code 3.7.
NEXT+F2: R-POSID/ F3: RM-POSID = Pastes lines in reverse order respecting their
configuration, generating a code similar to code 3.8.
NEXT+F4: R-POSID / F5: RM-POSID = Pastes lines in reverse order changing their
identification, generating a code similar to code 3.9.
Find
Allows you to find instructions within the programming (the types of instructions will be discussed later
in this chapter). To find them, just press 4. Find and depending on the instruction, you will be prompted
for specifications in any case you will have to press F4: NEXT to find it or F5:EXIT to exit.
Replace
It allows to replace instructions within the programming (the types of instructions will be discussed in
this chapter). In this case, it only works for move instructions that have characteristics in common, for
example, replace the JMP LBL [1] tag by JMP LBL [2]. To do this we must place the cursor on the
instruction we want to replace (see in code 3.10).
Once that is done press F5: EDCMD→ 5. Replace → search for the instruction → enter the
number of the instruction to be replaced, this will cause the matches to appear in the program, as can be
seen in code 3.11.
Press ENTER → Enter the number of the instruction to be replaced → ENTER. Next, the question
"Replace OK?" will appear. And we will have 4 options to choose from:
Renumber
This option renumbers all the points in the program in ascending order, to do this click:
Comment
The "comment" function removes or displays comments related to registers (R[ ]) or inputs and outputs
(I/O). To activate it, press:
Undo
This option reverses an action, in other words, it cancels actions that were performed by mistake or for
some other reason, returning to a previous state or condition. It can be performed by pressing:
Remark
Causes a normal programming line to become a comment and, therefore, when executing a program, the
TP does not identify that line. To do this, position the cursor at the point to remark and press
F5:EDCMD→ 9. Remark → F4: REMARK / F5: UNREMARK (in case you need to remove the
function).
Icon Editor
It is a function that allows us to use a screen with icons to program in a more intuitive way (see Figure
3.12). From this screen we can manipulate all the functions mentioned above, as well as record points,
add instructions, etc. To get this screen click:
The options offered by the TP focused on the addition of instructions for a program can be subdivided
into categories containing similarities (see Figure 3.13). The most important instructions that this version
of the robot allows us to use can be seen below:
Figure 3.13 Diagram of instructions that can be called by the TP during programming
PROGRAMMING
SCREEN
1. Simultaneous GP
2. String
3. DIAGNOSE
F1: POINT 1. FOR/ENDFOR 8. --next page--
2. Tool Offset
3. LOCK PREG
F5: TOUCHUP 1. Miscellaneous 4. Collision Detect
2. Skip 5. MONITOR/MON
NEXT 3. Payload 6. Stick Detect
4. Offset/Frames 7. Independent GP
1. Registers
5. Multiple control 8. --next page--
2. I/O
F1: INST 6. Program control
3. IF/SELECT
7. MACRO
4. WAIT
8. --next page--
F5: EDCMD 5. JMP/LBL
6. CALL
7. Palletizing
8. --next page--
Registers are global variables that can be accessed by all programs created and to be created. There are
two types of variables, registers and position registers. The "R[ ]" registers are data or real values (32
bits) or integers, while the "PR[ ]" position registers can contain joint, Cartesian or matrix coordinate
points.
Registers
This robot model contains up to 200 configurable records and we can see a general list, as well as the
content of each of the elements in it by clicking on the TP at the following address.
Directly: The value we give to the register is stored directly in the specified register, as can be
seen in Equation 3.1.
Indirectly: Here, the value we give to the record is stored according to the content of that same
record. For example, if for us
𝑅[10] = 20 (3.3)
When we call a register from an instruction, we are given a choice of arithmetic operations and
some statements to obtain a result and store it in that register or in a different register. The way to use
these tools follows the following format:
Operations
Add “+”
Subtraction " - "
Multiplication " * "
Division " / "
Integer division " DIV "
Remainder of a division " MOD "
Value
Register R[n]
Constant
E/S
TIMER […]
Etc.
41
Position registers
This robot model contains up to 100 configurable position registers and we can see a general list as well
as the content of each of the elements in it by clicking on the TP.
Now, when we use a register as an instruction, we must place the identification and the position
of the register through a dot. The latter we can do directly or indirectly as you choose:
Directly: The point we record in the position register is stored directly in the specified register,
i.e., if for us.
Indirectly: Here, the point that we record in the position register is saved according to the register
content that is specified. For example, if for us
𝑃𝑅[𝑅[1]] = 𝑃 [2] → 𝑏𝑢𝑡 𝑖𝑛 𝐷𝐴𝑇𝐴 𝑅[1] = 10 → 𝑡ℎ𝑒 𝑝𝑜𝑖𝑛𝑡 𝑖𝑠 𝑠𝑡𝑜𝑟𝑒𝑑 𝑖𝑛 𝑃𝑅[10]. (3.6)
When we call a position register from an instruction in a program, we are given a choice of
arithmetic operations and some statements to obtain a result and store it in the same or a different register.
The way to use these tools follows the following format:
Operator
Add “ + “
Sustraction “ – “
Point
Position P[ n ].
Position register PR[ n ].
Current position of the robot in degrees axis by axis JPOS.
Current position of the robot in Cartesian LPOS.
User frame UFRAME [ ]/ UTOOL [ ].
A different way to make a position record is by entering values element by element, depending on the
coordinates and orientation of the point. To insert an item-by-item position record in a program, press
from the programming screen.
Directly: Here the coordinates or positions of the record are defined directly by the values inside,
e.g., if for us:
Indirectly: The coordinates or positions of the record are affected by the contents of the records
within it, i.e., if for us:
𝑃𝑅[𝑅[1], 𝑅[2]] = 200, 𝑏𝑢𝑡 𝑅[1] = 3 𝑎𝑛𝑑 𝑅[2] = 4 → 𝑡ℎ𝑒 𝑣𝑎𝑙𝑢𝑒 𝑖𝑠 𝑠𝑡𝑜𝑟𝑒𝑑 𝑖𝑛 𝑃𝑅[3] (3.10)
To understand the position in coordinates and orientation for this type of records according to
equation 3.11, there is the following table.
Coordinates Orientations
Indicators PR[… ,1] PR[… ,2] PR[… ,3] PR[… ,4] PR[… ,5] PR[… ,6]
PR[1, …] 𝑋1 𝑌1 𝑍1 𝑊1 𝑃1 𝑅1
PR[2, …] 𝑋2 𝑌2 𝑍2 𝑊2 𝑃2 𝑅2
PR[n, …] 𝑋𝑛 𝑌𝑛 𝑍𝑛 𝑊𝑛 𝑃𝑛 𝑅𝑛
When we call a position register element by element from an instruction in a program, we are
given a choice of arithmetic operations and some statements to obtain a result and store it in the same
register or a different one. The way to use these tools follows the format:
Operations
Addition " + "
Subtraction " - "
Multiplication " * "
Division " / "
Integer division " DIV "
Remainder of a division " MOD "
Value
Register R[n]
Constant
I/O
TIMER […]
Etc.
Note: If you made a position record of a single element, that does not mean that the position
record will be completely defined, so, if you seek to define that record completely, you will have to
perform the same operation now with each of the missing elements. At the end, you can go to DATA→
F1:[TYPE] → 2-Position Reg and identify if the record is complete (this can be identified if the records
you save are equal to R).
43
String registers
There are different reasons why we use string registers, for example, they are used to generate robot
states during a program or to write modular code. In other words, they are used as variables to call
programs, among many other options. The robot controller contains up to 25 string registers and they are
located in:
Now, when we use a string register as an instruction in a program, we must place the identification
and the value it will have. This value can only be obtained from other registers and not from constants
(this is done from the DATA address). This can be done directly or indirectly as you choose:
Directly: The value we give to the string register is stored directly in the specified register and
only works through other registers, e.g., if for us:
Indirectly: Here, the value we give to the string register is stored according to the content of of the
normal register. For example, if for us
𝑆𝑅[1] = 𝑆𝑅[𝑅[1]] → 𝑏𝑢𝑡 𝑅[1] = 2 → 𝑆𝑅[𝑅[1]] 𝑡𝑎𝑘𝑒𝑠 𝑡ℎ𝑒 𝑣𝑎𝑙𝑢𝑒 𝑜𝑓 𝑆𝑅[2] (3.15)
𝑆𝑅[1] = 3 (3.16)
SR[R[1]] = SR[1] → but R[1] = 2 → SR[R[1]] takes only the place of SR[2]. (3.17)
𝑆𝑅[2] = 4 (3.18)
When we call a string register from an instruction, we are given a choice of arithmetic operations
and some statements to obtain a result and store it in that register or a different register. The way to use
these tools follows the following format:
Where you can perform calculations or operations with the following elements:
.
Operations
Addition " + "
Subtraction " - "
Multiplication " * "
Division " / "
Integer division " DIV "
Remainder of a division " MOD "
44
Value
SR[ ] string register.
Register R[ ].
Argument register AR[ ].
Depending on the number of registers we need to access, the amount can be modified or adapted from a
controlled start. To do this, start the robot with the TP in its ON state and press and hold PREV+NEXT
while powering up, this will cause us to access the BMON memory.
Once there, choose option 3. Controlled Start and wait for the screen to load completely (see
Figure 3.14). After that, go to the following address and manually manipulate the parameters you need:
To terminate and exit the controlled start, whether or not you have manipulated the programming
parameters, press the FCTN→ 1-START (COLD) key and wait (approx. 30 sec) until the PT start screen
appears and you can continue normally.
If you want to use inputs and outputs by means of instructions in a program, the easiest way is to go to
the address:
Output instructions
1. On/Off
2. Press → Time in seconds between 0.1 to 25.5 s
3. R[ ] → Take values from 0 to 1, where 0 is off and any number followed by 1 is On.
4. (...) → Additional options
45
1. A constant
2. R[ ] → Take decimal values limited to "2n" for n grouped outputs.
3. AR[ ] → Take decimal values limited to "2n" for n grouped outputs.
4. (...) → Additional options
1. A constant
2. R[ ] → Takes values between 0 and 2000 where, 2000 is the maximum voltage at the output.
3. AR[ ] → Takes values between 0 and 2000 where, 2000 is the maximum voltage at the output.
4. (...) → Additional options
Input instructions
The entries are made by means of a register where the following characteristics must be followed:
R[ ]=DI[ ] → The register will mark 1 (for digital inputs ON) and 0 (for digital inputs OFF).
R[ ]=RI[ ] → The register will mark 1 (for digital inputs ON) and 0 (for digital inputs OFF).
R[ ]=GI[ ] → The register will have a decimal value in binary code obtained from a group of
digital outputs. digital outputs.
R[ ]=AI[ ] → The register will have a value between 0 and 2000 depending on the value of the
voltage applied to the analog input AI[ ]. applied to the analog input AI[n].
This instruction is divided into two parts, LBL and JMP LBL. The first is a tag or mark that serves as the
destination of the jump. On the other hand, JMP LBL allows conditional and unconditional jumping
depending on when they are used or where the tag is located in a program. To insert a tag press:
An example of unconditional jump with labels, is through a loop as in the one presented in code
3.12. There LBL [n] is placed at the beginning of a cycle and JMP LBL [n] where it ends, this will
cause the actions that are within them to repeat indefinitely making jumps between them.
1: LBL[1]
2: J P[1] 100% FINE
3: J P[2] 100% FINE
4: J P[3] 100% FINE
5: JMP LBL[1]
CALL instructions
The CALL instruction allows you to execute an external program by exiting the main program and
returning when finished, or you can terminate the current program. This instruction is largely used as a
complement with other condition instructions. To use it, press :
Depending on the position in which it is placed, 2-END can make a conditional or unconditional
jump to the end of the program, that is to say, when we place this instruction automatically the program
that is being executed will stop or terminate.
On the other hand, 1-CALL program, when called, will proceed to execute the program that was
called, pausing momentarily the main program. Once it is finished with that subtask, it will return to the
CALL instruction and continue with the main execution. Depending on the type of program you wish to
call, you will be given the following options:
These instructions depend on whether the conditions set by them are correct or not, to perform a
programming line jump during the execution of a program. The address for them is:
F1:[INST]→ 3-IF/SELECT
IF instructions
Depending on whether the conditions are true, the IF statement will make a jump to an external program
or to a label within the main program, whichever the case, the statement is operated following the format:
Where:
Value 1
Register R[n]
Digital I/O DI[ n ]/DO[ n ]
Robot I/O RI[ n ]/RO[ n ]
Group I/O GI[ n ]/GO[ n ]
Operator
Equal " = "
Different from " <> "
Less than "<"
Less than or equal to "<= "
Greater than " > "
Greater than or equal to" >= "
47
Value 2
Register R[n]
Digital I/O DI[ n ]/DO[ n ]
Robot I/O RI[ n ]/RO[ n ]
Group I/O GI[ n ]/GO[ n ]
Jump
JMP LBL[ ]
CALL program
CALL program ()
AND
OR
An example of the application of the IF instruction can be seen in code 3.13, here we show a
program with an IF condition that works with registers, which tells us that as long as the register R[1] is
less than or equal to 5, a loop will be generated. This program will continue looping until the condition
of the instruction is no longer fulfilled, in this case, when R[1] takes a value greater than 5. Then the
same instruction, if it is not fulfilled, will read the programming line that precedes it, terminating the
execution of the program.
1: LBL[1]
2: J P[1] 100% FINE
3: J P[2] 100% FINE
4: J P[3] 100% FINE
5: J P[4] 100% FINE
6: J P[5] 100% FINE
7: R[1]=R[1]+1
8: IF R[1]<=5, JMP LBL[1]
9: END
SELECT instructions
The SELECT statement depends on a condition for one or more jumps to be performed, resulting from
the value of a register where all the values inside are checked. To place this instruction press :
Where:
n = A whole number
Value
R[n]
Constant
AR[n]
SR[n]
48
Jump
JMP LBL [ ]
CALL program
CALL program (con parámetro adicional)
An example of the application of the Select instruction is in Code 1.14, where it depends entirely
on the value of a register to determine which subprogram will be executed.
This type of instruction delays the execution of a program depending on the type of WAIT we are using,
there are time WAITs and condition WAITs. To find them in the programming screen follow the address:
F1:[INST]→ 4-WAIT
Time WAITs delay the execution of a program by a specific time. The time will always be taken in
seconds, and you can choose a value between 0.00s as minimum and 327.67s as maximum. Its working
format is:
Directly (Seconds): The time is placed directly taking values between 0 and 327.67s.
Indirectly(R[n]): The time is placed by means of a register, here the time is equivalent to the
content of that register.
This instruction delays the execution of a program until the declared conditions are true or until a
TIMEOUT time period has elapsed. Its working format is as follows:
Where:
Operador
Equal “ = “
Not equal to “ <> “
Etc.
Time
<Forever> → Wait until the condition is true.
Timeout-LBL[ ] → Wait for a specified time until the condition is true, if the condition
is not met after that time, it will go directly to the declared label.
AND /OR → Increments the conditions of the instruction.
Note: You can change the Timeout time from a program, to do this press F1:[INST] → 7-
Miscellaneous → 7-Parametername → 1-$...=... → F4:[CHOICE] → 2-$WAITTMOUT→ again
F4:[CHOICE] → 2-Constant and set the new value.
The miscellaneous instructions are instructions that function to control the execution of a program,
particularly focused on production, here we will find tools such as:
Ualm[ ]
The user alarm is an instruction where the user has the control to place the robot in alarm state, causing
the robot to stop and, in addition, the message appears on the TP as if it were a common warning, to
continue with the execution of the program it is necessary to press RESET and re-execute the program.
This version contains up to 10 spaces to configure alarms, as well as allowing a maximum of 29
characters for each alarm. To use this instruction press:
Note: The content of the user warnings can be changed from MENU→0-NEXT→6-
SYSTEM→2-VARIABLES → $UALRM_MSG and changing the value.
Timer [ ]
Timers are instructions that count the time in seconds of a program, task or subtask. The instruction can
start, stop or reset the timer and there can be correlation between 2 or more programs, that is, we can
start a timer in a main program and stop or reset it in another one. This version allows to use up to 20
timers and to use them you must press:
Where
Note: To display the list of timers, as well as their current count, you can press from your PT the
STATUS→F1:[TYPE]→7-Prg Timer key.
Override [ ]
This instruction allows you to modify the speed of the movements that the robot will make during the
program. This action will also be reflected from the TP in the upper right corner where you can see the
change in the speed percentage. To use this instruction click:
𝑶𝑽𝑬𝑹𝑹𝑰𝑫𝑬 = [ 𝑿 ] (3.29)
Remark
This instruction allows the user to place comments or notes anywhere in a program, without having any
impact on the program. When the note is placed, the message will be highlighted and will contain an
exclamation mark at the beginning, as in the following example:
Message
Message is an instruction that allows to display a message on the main screen of the TP when it is
activated when executing a program. The message is specified by the user and must contain between 1
to 23 characters, if there are no characters inside the instruction, it will be activated anyway, but the
message will appear empty. The format that follows is:
NOTE: When the MESSAGE instruction is activated, the message will occupy the entire screen
of the TP, leaving the programming screen completely and will remain that way, even if the program has
finished executing. If you wish to return to the programming screen at the end of or during program
execution, you can press the EDIT key on the TP, or you can press the SELECT + ENTER key.
Parameter name [ ]
This instruction modifies the current value of some system variables, specifically variables whose value
depends on a number. To use this instruction press:
Where
Note: For variables using boolean values, 1 will be taken as a true value and 0 as a false value.
MAX_SPEED
It declares or controls the maximum speed depending on the movement of the robot, these can be:
Multi-Ing Remark
Unlike the Remark instruction, this instruction allows you to place much larger comments or notes in the
range of 1 to 240 characters. Likewise, regardless of the content of the comment, it will not affect the
execution of the program, however, when writing a larger comment, more lines of programming will be
required.
These instructions contain positional information, where, depending on the type of instruction used, is
the content that it will have or can be modified:
OFFSET Condition
The offset condition is a reference instruction that only works with position registers, from which it
obtains the offset information used in that register when the OFFSET command is activated. If a
UFRAME is used as an item, when the OFFSET command is activated, the information that will be
received from the position register will use that User Frame and not from its offset. You can use this
instruction by pressing :
Where:
PR[... ]= Can be entered directly or indirectly via a register. Or, a mask group can be used, if the
system is configured for it.
Item = Can be a UFRAME which is used when the OFFSET command is activated or it can be
empty.
52
UFRAME_NUM= / UTOOL_NUM=
This instruction allows to set directly in the programming, the number of user or tool frame being used
or to be used. If the frame number is equal to zero, the default coordinate system will be used (WORLD
coordinates on the base for the user frame and WORD coordinates on the robot plate for the user tool).
You can use this instruction by pressing :
Where:
[... ]= It can be a constant, R[ ] or an AR[ ]. Whatever the case, you must select a number between
0 and 9 (for User frame) or 0 to 10 (for User tool), where 0 will take the default coordinate system.
As mentioned in the name, these are instructions that directly interfere with the execution of a program
as soon as they are activated. In total there are five of the most used ones and they will be defined below.
PAUSE
ABORT
When activated, the abort instruction terminates a program in its entirety and cancels any ongoing or
paused motion. There is no way to resume a program that has been aborted, so it will have to be reset.
You can use this instruction by pressing:
ERROR_PROG
This instruction stores the name of the described program in the system variable $ERROR_PROG, where
its use depends on the configuration in the system. You can use this instruction by pressing :
RESUME_PROG
This is an instruction that resumes a previously paused program. When activated, the instruction stores
the name of the described program in the system variable $RESUME_PROG, where its use depends on
the configuration in the system and the installation of the J924 element. You can use this instruction by
pressing :
RUN
Depending on the system configuration, the multiple control has only the "RUN" instruction, which
allows to perform more than one task at the same time. It starts the execution of the specified program
when the instruction is called and follows the execution of the main program, in other words, it allows
to launch one or more programs in the background without stopping the execution of the original program
as long as different mask groups are used. You can use this instruction by pressing:
These instructions allow to specify conditions, to develop movements, to make small jumps within a
program, etc. All this, following the specifications declared from the beginning, among them are:
SKIP
It sets the condition directly or through operators and depends on whether the answer is true or not, to
perform a jump over an additional move instruction,. This instruction follows the following
characteristics:
If the instruction detects a signal, the additional move instruction in the programming line below
it is not considered and a jump to the next line is performed.
If the instruction does not detect a signal, the program continues reading the next programming
line and performs the additional move instruction.
This condition only works if the programming line below it contains an additional move
instruction, otherwise the program will avoid the execution of this instruction and continue
executing the program normally.
In which, the format used is as follows:
Where:
Example: Figure 3.15 shows an example of the use of the SKIP instruction, where if the condition
in line 5 is true, the reading of the program will continue in line 7, making a jump. However, if the
condition is false, line 6 is read. Since this line contains an additional movement instruction (in this case
a label), the jump will be made directly to line 11 and the reading will continue as normal.
FOR/ENDFOR
The FOR statement allows us to loop through a program as long as a numerical condition is met with
registers or constants, while ENDFOR terminates the statement (see Figure 3.15). You can use this
instruction by pressing:
Where:
UFRAME [ ]= / UTOOL [ ]=
This instruction allows the user frame or tool to be defined by the contents of a position register. You
can use this instruction by pressing :
Where:
[... ]= It can be a direct or indirect value between 0 to 9 (for user frames) and 0 to 10 (for user
tools) where, if the value is equal to zero, the default values will be taken.
... = A position register is placed.
PAYLOAD
Specifies the payload condition to be used in some section of the program or in the whole program, where
the payload number is placed through a list, directly or indirectly. You can use this instruction by
pressing:
This tool allows us to adjust the information of a program (modifying specific points) while the robot is
executing them, and they are stored in cards. This version of the controller can contain up to ten program
setting cards (see Figure 3.16). The address to use this function is:
Note: If you already have a program open in the TP, pressing the above address will not take you
to the list of programs, but to the screen for setting that program. You can return to the screen in figure
3.14 if you wish, by pressing PREV.
In the screen shown in Figure 3.16, you can see that the cards consist mainly of the name of the
program, the programming lines where the points to be set are located and the status (enabled and not
enabled), in addition to the following options that allow you to modify, delete or copy cards:
F2: DETAIL= Allows you to set the adjustment parameters for a program.
NEXT+F1: COPY= Copies the parameters from one schedule to another. To use it, position the
cursor on the schedule you want to copy and when it says "Enter schedule number to copy:" enter
the number of the schedule where the new information will be sent and press ENTER.
NEXT+F2: CLR_ADJ=Delete all the position and velocity settings of the cell, but do not delete
the name of the cell, the relative offset, nor the start and end line you are working with.
NEXT+F3: CLR_ALL=Delete the entire plate.
Subsequently, to make the settings of a program, place the cursor on one of the available cells
and press DETAIL, where you will obtain the screen shown in Figure 3.17. The different available
options offered by the TP for adjusting parameters such as units of measurement, etc., are shown:
F2: UNITS = Changes the units of measure mm to inches (in) or vice versa.
F3: SCHED= Allows the user to switch from one grid to another.
F4: ENABLE= Activates the settings made.
F5: DISABLE= Disables the settings made.
NEXT+F5: SAVE= Saves all data collected up to the moment of pressing it.
Now, you can be guided by the following series of steps to develop an adjustment on a program:
1) Position the TP cursor on item number one and enter the name of the program to be set. To do
this you can press the F4:[CHOICE] button and you will get a physical list of the available
programs.
2) In "Starting line number:" and "Ending line number:" place the starting and ending line where the
points you want to adjust in your program are located.
3) Identify and place in the fourth item the relative offset, i.e. the coordinate system on which the
grid will be based to adjust the position of the points of step 2. This can be USER or TOOL,
considering that this system you use will be the same as the one used to elaborate your original
program.
56
4) Place the new X, Y, Z, W, P, R. settings, depending on your needs, in their corresponding items.
You can change the units by pressing F2: UNITS.
5) If necessary, you can change the speed parameters for circular, linear or joint movements, as well
as the movement group. To do so, go to item 11-13 and do so. Note that a value of zero means
that there will be no changes in items 11-12 and the "Single Group" motion group is the default
(see Figure 3.17).
6) Once the changes are completed, press F4: ENABLE and your settings are done. Similarly, in
case you want to revert the settings already made, you can press F5: DISABLE.
Note: If the setting fails, the TP will show the line number that generated the error and you will
have to correct it. Therefore, it is recommended that you disable the card, try to correct the error and re-
enable it.
Unlike the Prog Adjust, the program shift allows to correct a trajectory, to duplicate only a part of it or
to duplicate it completely (see figure 3.18). This type of shift can be done in parallel or with rotation.
The address to find this utility is:
a) b)
Source: Image obtained from Roboguide software
57
The following are the operations that you have to fill in to perform a trajectory displacement (see
figure 3.18):
Original Program: Enter the name of the program from which you will correct or duplicate its
trajectory. To do this you can press the F4: [CHOICE] button and you will get a physical list of
the available programs.
Range: Define the working range, WHOLE is for using the whole program path (see figure 3.18a)
and PART is for using only a part of it (see figure 3.18b).
a. Start line: Indicate the first line of the path to be corrected or copied (only for the PART range).
b. End line: Indicate the last line of the path to be corrected or copied (Only for the PART range).
New Program: If you want to make a complete copy or only a part of a path, as well as to develop
a new program, press the ENTER key and modify the name. Otherwise, to correct the original
path, do not modify this option,
Insert line: Here insert the number of the program line where the new displaced path will be
placed (only works for the PART range to make corrections and not copies).
Once you have the above data, press the SHIFT+UPPER/LOWER ARROW key and depending
on the type of scrolling you want, use some combination of keys to record points.
F3: REFER = to use position records or place the number of some point that is located in the path
of the original program.
NEXT+F2: DIRECT =To add the position manually using the default WORLD coordinate system
(to return to the previous screen you can press NEXT+TEACH).
Q1
P1
P3 Q2
P1
Q1
P2 Q3
This utility, in the same way as Program shift, allows to duplicate the whole path of a program or only a
part of it, with the difference that the new path generated is symmetrical to the points that were selected
in the process. The address to find this utility is:
Figure 3.21 Mirror Image Shift screen, a) For a whole program b) For a part of a program
a) b)
The following are the operations that you have to fill in to perform a path symmetry (see figure
3.21):
Original Program: Enter the name of the program from which you will correct or duplicate its
trajectory. To do this you can press the F4: [CHOICE] button and you will get a physical list of
the available programs.
59
Range: Define the working range, WHOLE is for using the whole program path (see figure 3.21a)
and PART is for using only a part of it (see figure 3.21b).
a. Start line: Indicate the first line of the path to be corrected or copied (only for the PART range).
b. End line: Indicate the last line of the path to be corrected or copied (Only for the PART range).
New Program: If you want to make a complete copy or only a part of a path, as well as to develop
a new program, press the ENTER key and modify the name. Otherwise, to correct the original
path, do not modify this option,
Insert line: Here insert the number of the program line where the new displaced path will be
placed (only works for the PART range to make corrections and not copies).
Once you have the above data, press the SHIFT+UPPER/LOWER ARROW key and depending
on the type of scrolling you want, use some combination of keys to record points.
F3: REFER = to use position records or place the number of some point that is located in the path
of the original program.
SHIFT+F5: RECORD= To record a point directly from the robot.
NEXT+F2: DIRECT =To add the position manually using the default WORLD coordinate system
(to return to the previous screen you can press NEXT+TEACH).
P1
Q1
P1
Q1
Q3
P3
P2
Q2
It is possible to modify the tools and user frames that were used in a program, altering or not, the points
that are found within it. The address to find this utility is:
Where in:
To conclude the offset change press the SHIFT+UPPER/LOWER ARROW key, this will take
you to the next screen (see figure 3.25):
61
a) b)
Old UTool/Uframe number = The original user tool or frame number is entered.
New UTool/Uframe number=New user tool or frame number is set.
Covert = "TCP Fixed / NO " Changes the UTool or UFrame without changing the program
dimensions to preserve the original program paths.
"Robot fixed / YES" Changes the UTool or UFrame also changing the program dimensions and
generating possible collisions.
References
Guerrero Ávila, Y., & Llama Leal, M. A. (2017). Contribución al Estudio de la Selección de Parámetros
de la Estación de Soldadura Robotizada Fanuc 100iC. Tecnológico Nacional de México.
https://rinacional.tecnm.mx/handle/TecNM/610
Reyes Cortés, R. (2011). Robótica. Control de Robots Manipuladores - 1ra Edición. AlfaOmega, Primera
Ed, 1–592.
Saltarén Pazmiño, R. J., Azorin Poveda, J. M., Miguel, A. K., & Sabater Navarro, J. M. (2000). Prácticas
de Robótica utilizando Matlab. In Práctica 5: Planificación de Trayectorias (pp. 1–23).
https://nbio.umh.es/libro-practicas-de-robotica-utilizando-matlab/
Sierra Bueno, D. A., & Martínez Angel, R. (2002). Planeación de trayectorias. Revista UIS Ingenierías,
Vol 1(No. 2), 31–34. https://revistas.uis.edu.co/index.php/revistauisingenierias/article/view/2509
62
Abstract
For industrial robotics, the use of inputs and outputs has become something of daily use, so much so that
they began to be categorized according to the application to be performed, for example, there are digital,
analog, group, user, etc. inputs and outputs. Therefore, understanding how they work, how they are
configured and how to control each one of them is vital to perform a more complete programming with
the robot. On the other hand, macro-commands can be considered as mini programs, which contain in
their programming code, a series of simple instructions with the purpose of executing specific tasks. In
addition, each macro can be assigned in a list called Manual Fnct, which is a list that allows to perform
specific tasks as a pre-maintenance program, executing this type of programs. As can be seen, the focus
of this chapter is on learning the different types of I/O found in the Fanuc LR Mate 200iD robotic system,
as well as the macro commands by identifying their basic characteristics.
4.1 Introduction
The inputs and outputs (I/O) in robotics, are an ingredient that over time has become basic to learn in
any of its branches by its integration to the robot software as can be seen in the work of (Pinto Hernández,
2016). On the one hand, we have that the inputs are the data acquired by the robot after an action and, on
the other hand, the outputs are the commands that are sent when the data obtained from the inputs are
processed.
In that case, most robotic applications in industry use them and that is why it is important to know
them. Starting from that point, the I/O can be classified depending on the data they manipulate, for
example, there are digital I/O, which take voltage values at high and low levels, among other
classifications. Moving away from the above, there are also macro-commands or macro programs, which
are small programs, which include simple instructions to execute them continuously (FANUC Robotics
Ibérica S. L., 2018) which makes it interesting for maintenance applications or to be called from a main
program.
Chapter 4 aims to provide a technical-basic description of the different I/O found in the Fanuc
LR Mate 200iD robotic system, using tools that allow a simpler understanding. In the same way, it is
intended to describe the macro commands, how they are used, how they are created and what possible
applications they can have.
The Fanuc LR Mate 200iD version of the robot contains 6 different types of inputs and outputs, which
can be used, assigned, or configured. These I/O are explained in more detail below.
These are digital inputs and outputs that can be configured from the TP and controlled 0 and 24V signals.
From the monitoring screen for this type of I/O we can see the status of the 512 available, as well as the
different options and other screens to perform some configuration (see table 4.1). The location of these
can be found in: MENÚ → 5-I/O → 3-DIGITAL
63
Table 4.1 Configuration screens for digital I/O and their description
Configuration screen F2: CONFIG RANGE =Shows the number of I/O that are in a
signal range.
RACK=The physical location where the I/O board or
modules are mounted.
SLOT=The space in the RACK where the I/O
module is connected.
START=The port used from the board or I/O
module.
STAT=Indicates the status of the digital signal.
ACTIV → The assignment is valid.
UNASG→ The assignment has not been made.
INVAL→ The assignment is invalid.
PEND→ The assignment is valid but not active.
Port details screen NEXT→ DETAIL Comment: Allows to declare a comment for the I/O.
Polarity: Sets the polarity of the I/O.
F4:INVERSE→ ON=0V and OFF=24V
F5:NORMAL→ ON=24V and OFF=0V
Complementary: Associates two outputs at the same
time.
F4: TRUE →For DO[1]=ON, DO[2]=OFF
For DO[1]=OFF, DO[2]=ON
F5: FALSE →The outputs are independent.
F4: PRV-PT/F5:NXT-PT→Pass or return to the next
I/O.
Source: Information obtained from ROBOGUIDE software and (FANUC Robotics Ibérica S. L., 2018)
As you can see, Table 4.1 lists the locations and parameters that make up each configuration
screen for the digital I/O, whose condition can be changed. Here you can use the F3:IN/OUT function
key to work specifically with inputs or outputs, and note that after any configuration, you must do a cold
start, so you must turn the robot controller off and on again for the system to start with the new variables.
Note: You can extend the total number of inputs and outputs allowed in the system if you wish.
To do so, go to the variable $MAX_DIG_PRT (approx. in item 330) and change the value depending on
your needs (min 15, max 8192).
You can also perform the above action by a controlled start in MENU → Program Setup, find the
variable and change it manually.
This type of I/O is used in cases where analog elements (sensors or actuators) are used. The list location
for these outputs can be found under: MENU → 5-I/O → 4-ANALOG. (See in table 4.2).
64
Table 4.2 Configuration screens for analog I/O and their description
Configuration screen F2: CONFIG AO#/AI# = Defines the number of I/O to be used or
configured.
RACK=This is the physical location where the I/O
board(s) or module(s) is mounted.
SLOT=This is the space in the RACK where the I/O
module is connected.
CHANEL= This item is the physical location of the
port on the I/O board.
Source: Information obtained from ROBOGUIDE software and (FANUC Robotics Ibérica S. L., 2018)
Note: after any configuration, you must do a cold start, so you must turn the robot controller off
and on again for the system to start with the new variables.
These I/O are used to activate several input or output signals at once and not sequentially like the others.
In addition, the signals are controlled entirely with a decimal encoded binary number format.
The direction to find the list of this type of I/O is by pressing the keys of the teach pendant MENU
→ 5-I/O → 5-GROUP, to obtain the different screens presented in Table 4.3, which are accompanied by
a brief description of each of the parts that make them up.
Table 4.3 Configuration screens for group I/O and their description
Configuration screen F2: CONFIG GO#/GI# = Defines the number of I/O to be used or
configured.
RACK=This is the physical location where the I/O
board(s) or module(s) is mounted.
SLOT=The RACK space where the I/O module is
connected.
START PT= Port number in the sequence of ports on
the I/O module.
NUM PTS=Number of points.
NEXT+F2: VERIFY → Verify if the assignment is
valid.
F3: IN/OUT → Change inputs to outputs and vice
versa.
Source: Information obtained from ROBOGUIDE software and (FANUC Robotics Ibérica S. L., 2018)
Note: After any configuration, you must do a cold start, so you must turn the robot controller off
and on again for the system to start with the new variables.
The robot has I/O between the controller and the robot, which send signals to the end effector (EE)
connector located on axis 3 (see Figure 4.2). They are mainly used with tools mounted on the robot
flange. Here the state of the outputs can be changed from the PT and the number of them depends on the
number of axes in the system, in this case, this version of the robot has 8 I/Os.
Below is a description of the parameters that can be configured for this type of output (see table
4.4). Note that after any configuration, you must do a cold start by turning the robot controller off and
on again for the system to start with the new variables.
66
Table 4.4 Configuration screens for robot I/O and their description
Source: Information obtained from ROBOGUIDE software and (FANUC Robotics Ibérica S. L., 2018)
These are digital signals that show the status of the system without generating physical voltages and
allowing them to be queried and used in programming. Here, the output signals (SO) correspond to the
panel digital output signals (PDO) and the inputs (SI) correspond to the panel digital input signals (PDI)
in the internal controller. The direction to find the list of this type of I/O is MENU → 5-I/O → -SOP→
F3:IN/OUT (see in Figure 4.2).
Source: Information obtained from ROBOGUIDE software and (FANUC Robotics Ibérica S. L., 2018)
As can be seen, Figure 4.2 and Table 4.5 describe the inputs of the SI standard operator panel,
therefore, Figure 4.3 and Table 4.6 will describe the SO outputs, as seen below.
6 Normally off User LED#2 For processes with output signals for Handling tool, this signal is not used,
however, for other types of applications, the signal can be defined by the
user.
7 Normally on in TP Enable Indicates that the portable console (TP) is enabled and only turns on when
local mode the TP activation switch is OFF.
8-15 Normally off Vacant Slots available for additional PDI.
Source: Information obtained from ROBOGUIDE software and (FANUC Robotics Ibérica S. L., 2018)
It is worth mentioning that no input or output that is already declared can be configured, in that
mode, only the outputs can be activated by the user by pressing F4:ON or F5:OFF .
This version of the controller has 18 inputs and 20 outputs that can be used. These allow to manipulate a
robot remotely with signals used as communication interface (e.g., PLC's). The direction to find the
available list of this type of I/O is MENU → 5-I/O → 7-UOP→ F3:IN/OUT.
Source: Information obtained from ROBOGUIDE software and (FANUC Robotics Ibérica S. L., 2018)
69
As can be seen, Figure 4.4 and Table 4.7 describe the inputs of the UI user operator panel,
therefore, Figure 4.5 and Table 4.8 will describe the UO outputs, as seen below.
UO Signal Description
1 Cmd enable The signal is activated when the conditions are satisfied:
TP OFF and STEP mode disabled.
The controller is in remote mode. It can be activated from MENU → 0-NEXT → 6-SYSTEM
→ F1:[TYPE] → 5-CONFIG→ Remote/local setup (approx. Item 42) → F4:[CHOICE].
SFSPD (UI[3]) and ENBL (UI[8]) signals enabled in ON state.
System variable $RMT_MASTER set to 0.
Controller in automatic "AUTO" mode.
2 System ready Indicates that the robot servos are energized, and the system is ready.
3 Prg running Activated when a program is running.
4 Prg paused It is activated when the execution of a program has been interrupted.
5 Motion held The signal is activated only when the HOLD key is pressed or when the HOLD input for the UOP is
OFF.
6 Fault This output is activated when a program enters error status, with exceptions in WARN alarms and when
the FAULT_RESET input is activated.
7 At perch This signal is activated when the robot reaches a position that was defined before by the user. Here, the
first reference position is the one that will receive the At perch signal, all others will get digital outputs.
8 TP enable This signal is activated when the TP has its status selector ON.
9 Batt alarm If it is on, it indicates that the voltage of the CPU batteries or the voltage of the batteries powering the
robot encoders is low, so a replacement or maintenance has to be done.
10 Busy It is activated when the robot is executing a program or action, in general, it sends the signal when the
processor is busy.
11- ACK/SNO The ACK signal group is responsible for sending a pulse when the RSR signal of a program is received.
18 1-8 On the other hand, the SNO signal group performs the same action as the ACK signals, in this case, for
PNS programs, making both signal groups work as pulse generators by recognition.
19 SNACK This signal is sent when the system recognizes a program selected by a PNS input, in which case it
confirms the acceptance of this program.
Source: Information obtained from ROBOGUIDE software and (FANUC Robotics Ibérica S. L., 2018)
To configure any SOP input or output, press the F2:CONFIG key from the TP, where you will find the
following definitions and keys that will help us to perform this action (see figure 4.6).
Note: After any configuration, you must do a cold start, so you must turn the robot controller off
and on again for the system to start with the new variables.
This option allows you to interconnect or redirect inputs, for digital or robot outputs, so that there is a
way to inform other elements of the status of these I/Os. You can find these interconnections by
pressing MENU → 5-I/O → 9-INTERCONNECT (see Figure 4.7).
RI → DO (8 interconnections available)
DI → RO (8 interconnections available)
DI → DO (32 interconnections available)
SI → DO (16 interconnections available)
ES → DO (16 interconnections available)
The latter, allows the use of safety signals within which, some examples are:
4.2.7 Flags
Flags are internal I/O ports that are used to maintain the status (ON or OFF) of a condition or other
output. They are not connected to an I/O device, but you can call them from a program or modify them
manually. The flags available in the system can be observed from: MENU → 5-I/O → 0-NEXT→ 2-
FLAG (see in Figure 4.8).
If the value of the flags is lost for any reason, there is a way to recover them by performing a
warm start, however, if any of the following conditions shown below occur, the flags will always be or
change to OFF:
In addition to the possibility of changing the value of a flag manually, we can place a comment
to each flag by positioning the cursor on one of them and pressing F2:DETAIL, this will redirect us to a
new screen where you can use the function keys F2:PRV-PT and F3: NXT-PT to navigate between flags.
There are different ways to configure the value of the inputs and outputs in the system, among the most
known are those shown below, of which you can follow the steps to configure them yourself.
Manual
1: Identify that the system variable $IO_AUTO_CFG = 0, if not, change the value.
2: Manually configure the I/O you need.
3: Perform a cold start (turning the controller on and off) to save the changes you made.
Automatic
1: Identify that the system variable $IO_AUTO_CFG = 1, if not, change the value.
2: Press from the TP, keys MENU → 5-I/O → 0-NEXT→ 1-LINK DEVICE → F5:CLR-ASG, this
to clear all I/O assignments.
3: Perform a cold start (turning the controller on and off). Here the controller will automatically
search and configure the connected I/O according to the Hardware.
NOTE: If the automatic mode does not detect assignments, all I/O in the system will not be
declared and therefore, in sections such as SIM and STATUS an asterisk will appear, and you will have
to assign them again.
72
It is possible to perform an I/O assignment with flags, i.e., the value taken by the configured I/O will be
the same as the value given to the specified flag (see Figure 4.9). This is possible only for digital (DI/DO),
group (GI/GO) and user operator (UI/UO) inputs and outputs.
1. For DI, DO, GI, GO, UI and UO inputs press the F2 key: CONFIG.
NOTE: Once the steps have been performed, changing the state of a flag within the specified
range will also change the state for the I/O. For example, if the F[1] flag changes to OFF, the
UI[1:*IMSTP] input will also change to OFF.
If you are looking to reverse the action, reset the original mapping values from step 2 and perform
a cold start to safeguard the data.
The I/O control allows us to perform tests both for the physical inputs and outputs of the robot (with real
voltages), as well as to test programming logics. Among these controls are:
Forced outputs
Here, an output is forced when its state is changed from ON to OFF and can be changed manually or
through I/O instructions in a program. To force an output, it is necessary that this output is configured,
after that follow the steps below:
3. Identify that the output contains a U in the SIM column, this will indicate that the signal is not
being simulated, if not, press the F5:UNSIM key.
4. Depending on the type of output you have chosen, you can force it using:
a. For digital (DI/DO), UOP and SOP outputs
F4: ON
F5: OFF
b. For analog (AI/AO) and group (GI/GO) outputs.
73
Move the cursor to the VALUE column, manually enter the decimal value and press ENTER.
You can also insert hexadecimal values by pressing F4: FORMAT.
I/O simulation
When the inputs and outputs are simulated, they do not generate any real voltage on the robot, so the
main function of them is to perform tests on the logic of a program, among other things. It is worth
mentioning that the simulation works only for digital, analog and group I/O, where it is necessary to be
configured. To simulate I/O follow the steps below:
3. Identify that the output or input contains an S in the SIM column, this will indicate that the signal
is being simulated, if not, press the F4:SIMULATE key.
4. Once you have done the above steps, you can force the I/O status by pressing F4:ON/F5:OFF for
digital and group I/O or, by setting the value manually for analog I/O.
Note: In case you want to set all I/O signals as non-simulated, you can press from the TP the
FCNT→ --0 NEXT-- → UNSIM ALL I/O key.
Cancel I/O
To cancel an input or output there is the WAIT RELEASE function, which removes the pause generated
by waiting for an I/O condition to be satisfied in a program. To use this function, it is necessary that a
program is running and that there are programming lines that are waiting for an I/O response. Having the
above:
4.3 Macro-commands
Macros are a type of program that is used as a complex instruction, however, they contain a set of simple
instructions that are executed continuously to perform a specific operation, where the user can execute it
as many times as needed. Macros are available for all programs and can be created, assigned, or called.
Creation of a macro-command
The creation of a macro-command is identical to that of a normal program, with the difference that you
must change the subtype and the appropriate mask group (see Figure 4.10). You can follow the steps
below:
1. Press from the TP: SELECT→ F2:CREATE → Place a name → ENTER → F2: DETAIL.
2. Position the TP cursor on item 2 "Sub type" and change the variable to MACRO by pressing
F4:[CHOICE]→ 3-MACRO.
3. Depending on the type of macro you need, change the mask group:
a. For signal-triggered macros: Select some mask group by placing a 1 in one of the available slots.
b. For keystroke-activated macros: Place all the slots of the mask groups with an asterisk (*).
Note: For macros that are activated by a special keystroke, no robot movements can be
programmed, because they do not belong to any mask group.
74
Macro-command assignment.
Macro type programs can be called with the CALL or RUN instruction, however, there are already
MACROS that are declared in "MENU →3-MANUAL FCTNS", to which you can configure or assign
the previously created program and the type of signal that will activate it, where, among the available
options are (see Figure 4.11):
The address to find the list of macro commands that can be seen in Figure 4.11 is: MENU → 6-
SET UP → 6-MACRO. In it (see in figure 4.12), to assign a previously created macro program we have
the following options:
75
Instruction name= The name of the MACRO type instruction is placed or set.
Program= Select the program to be executed when the instruction is activated.
Assign= Set the type of activation with which the instruction will be executed by pressing the
F4:[CHOICE] key (see figure 4.11).
Macro-command as instruction
To use a macro command from a program, you can use two types of instructions: CALL/RUN or the
MACRO instruction (see in Figure 4.13). The former call directly to any program, in this case, for any
defined as macro type, where, once the programming line is reached, the program is executed (here you
exit the original program, execute the macro program, and return to the main execution). To use these
instructions, click in:
F1: [INST]→ 6-CALL→ 1-CALL prog o F1: [INST]→ 8-NEXT→ 5-Multiple control → 1-RUN
Figure 4.13 Use of CALL and RUN instructions for macro commands
On the other hand, the MACRO instruction, when pressed, gives us a list of the macro commands
that are declared from MENU → 6-SET UP → 6-MACRO, which already contain an assignment, in that
case, when the programming reaches the line where this instruction is located or the assigned activation
is performed, the program with which it was configured will be executed (see in Figure 4.14). To use this
instruction, press:
To perform repairs and maintenance on the robot, it is common to use macro type programs to develop
specific movements or instructions. In addition, there is the possibility to execute a MACRO without
using a program by pressing the SELECT key on the TP, to do so follow the steps below:
Note: the SHIFT key must be always pressed, since, if this condition is not met, the program is
aborted and will not be allowed to resume at all.
Depending on the case, there is the possibility that, when testing a macro, it disables or needs to
disable the FWD and BWD keys. To do so, follow the steps below:
To know if the keys are disabled, the character "FBD" will appear at the top of the TP screen, in
any case, if you try to use them, the error TPIF-052 FWD/BWD is disabled will be marked.
A program can be monitored while it is being executed. To do so, the program must be displayed on the
TP screen and the program cursor will highlight the line that is being executed in real time. When a
program is running you will be able to monitor your program in two ways:
While a program is running and for some reason the TP does not display the program screen. You can
press SELECT, this will send you to the list of available programs, in that case, place the cursor on the
one you are looking for and press F4: MONITOR. This will show you the program on the entire TP
screen, as well as a cursor, which will highlight the line you are executing in real time and move in
conjunction with that execution.
77
This function, when pressed while the program is running, will allow you to see other areas of the
program by pressing the arrow keys on the TP. This is functional with very large programs where the
user wants to navigate through them without having to wait for the cursor to go through a specific
programming line. To remove the condition, press F2: MONITOR again and the cursor will indicate the
normally executed line.
References
Abstract
Although knowing the control and programming of an industrial robot is important to develop specific
applications, there are methods that help to verify and even repair the robot directly after a series of
commands or actions when for some specific reason it cannot move. This is since the robot lost the data
of its registration position of the encoders of each of the servomotors that constitute it. With this it is said
that the robot must be mastered or, in other words, mastered, which is basically to reset the registration
data that the robot had from the beginning, so that it can be manipulated again. Changing the scenario,
there are also multiple ways to validate actions or programs performed with the robotic system, this can
be done with backups, which are backups that work mainly to safeguard important information or
validate actions. For this reason, chapter 5 will describe important information, external to the
programming as the previous one, so that it can be replicated by other users who have access to a similar
robot version.
5.1 Introduction
Generally, it is said that all industrial robots are mastered, since if this is not the case, no operation can
be performed with them (Limón Molina, 2008). In that case the mastering associates the angle between
the fixed and mobile marks found in the robot, with the pulses generated by the encoders found in each
of the servomotors of the robot trying to get as close as possible to the mechanical zero (FANUC Robotics
Ibérica S. L., 2018). On the other hand, there are backups, which are elements that automatically
safeguard each one of the programs performed and to be performed in the controller memory, however,
these data can be extracted to have an alternate backup or simply to validate actions. Thus, there are
different issues that are important for users who constantly work with industrial robots. The focus of
chapter 5 is based on describing extra information to the programming, specifying points that are
commonly used such as mastering, backups, fault detection, among other points. All generalized so that
the information can be used by users that match the version of the Fanuc LR Mate 200iD robot.
Mastering consists of adjusting the mechanical zero on the robot or retrieving the last zero set, guided by
calibration marks on each axis junction (see figure 5.1). When there is no mastering process, no operation
can be performed on the robot (Limón Molina, 2008).
However, there is always the case where the option does not appear. To solve it, just go to the
following direction:
Once there, with the teach cursors or by pressing the ITEM key, we will move to approximately
ITEM 360 with the name $MASTER_ENB and change the value from 0 to 1. After that we press the
following direction, and we will get the screen in figure 5.2:
According to FANUC Robotics Ibérica S.L. The situations for which the robot would need mastering
may be the following (FANUC Robotics Ibérica S. L., 2018):
Whatever the current situation of the robot, almost always will appear the error SERVO 062-
BZAL alarm, which indicates that there is an error to detect the batteries, since it marks them as if they
were worn out. To solve this error, there are two methods:
2) If the first option does not work, the second option directs us to MENU → 0-NEXT → 6-
SYSTEM → F1: [TYPE] → 2-VARIABLES and we move with the cursors to ITEM $MCR
approximately at option 330, press ENTER and at ITEM 14 $SPC_RESET we change the variable
FALSE to TRUE, immediately the variable will change back to FALSE, but the change will
already be applied.
Finally, a cold start is made by turning off the controller and turning it back on after a few seconds.
This error can happen when solving the error SRVO-062 after turning on the controller again, this should
not appear if we want to perform a mastering, so we must correct it, for this we must move each of the
axes of the robot +/-10° with JOINT coordinates and when finished, press the RESET key. When the
error disappears, we must return the robot back to its calibration marks or to its additional marks (in case
it has them), all this with movements in JOINT coordinates.
The mastering "Zero positional master" consists of moving the robot to its calibration marks to try to
recover the last mechanical zero, for this we follow the steps below:
1) Through JOINT coordinates, we move the robot to the calibration marks seen in figure 5.1 as
centered as possible.
3) Now select F3: [RES_PCA] and press F4: [YES]. This will reset the enconder alarm and the
message "Pulsecoder alarm reset!" should appear (see figure 5.3).
5) Subsequently, press the DEADMAN and RESET to bring in the robot contactors and, without
releasing the deadman, select 2-ZERO POSITION MASTER and press YES. This will give us
the legend "Robot Mastered" (see figure 5.4) and we will have the robot mastered.
6) To calibrate the robot, select 7-CALIBRATE and press YES, and the process will give us the
sentence "Robot Calibrated" (see figure 5.4) and the robot will be calibrated.
81
Figure 5.4 Pop-up notes when mastering and calibrating the robot
Note: In case the legends do not appear, or the mastering did not work, try this method again. If
the problem persists try using a different method.
To perform a mastering through Quick Master, a subprocess has to be done depending on the case and
the current situation of the robot, these cases depend on whether the robot has already lost the mastering
or if it still has it. In addition, it is worth mentioning that these cases are raised once the SRVO-062 error
for spent batteries has been solved.
When the mastering is lost and there is no way to move the robot, we have to perform a series of steps
involving manual data entry, since we take the old positions that are recorded from the last mastering
and pass them to some reference subvariables, the steps to achieve this are as follows:
2) Once you have noted down the values, press PREV to return to the previous menu and select
ITEM6 $REF_POS → ENTER. Here make sure that all variables are zero, if not change them
manually (see Figure 5.6).
82
3) Return to the menu by pressing PREV and now select ITEM 7 $REF_COUN→ ENTER and note
the values of the first step (see in Figure 5.7).
4) Finally, go back one more time by pressing PREV and in ITEM 5 $REF_DONE change the sub
variable to TRUE, as in figure 5.8.
Return to the main menu by pressing the PREV key twice and go to point 5.2.3.3 Quick master.
83
This mastering case is used for two main reasons: because you want to adjust the mechanical zero of the
robots, or because a mastering is required for additional calibration marks on it. Whatever the case, a
new reference position is created to replace the old one, which directly helps us to perform the QUICK
MASTER. To develop this process, we must define the reference position we want:
A. New Reference Position (With additional marks or by adjusting the mechanical zero)
Here you must move the robot axis by axis with coordinates or JOINT movements, this until you reach
the additional marks of the robot or until you correctly adjust the current marks. Then save the reference
position in SET QUICK MASTER REF (see figure 5.9) by pressing:
It is always recommended to make a ZERO program to place the robot on its current marks, to do this
press SELECT → F2: CREATE → place the name ZERO → ENTER → F3: EDIT (If you need to make
configurations to the program, press F2: DETAIL and when finished continue).
After that record an automatic point by pressing SHIFT+F1: POINT and go through the cursor to
the coordinate number of it, there press F5: POSITION, once inside press F5: [REPRE] → 2-JOINT and
manually change all coordinates to zero. Finally, press F4: DONE.
84
Finally, we record the reference position through the SET QUICK MASTER REF as shown in
figure 5.12.
Figure 5.12 Note obtained when choosing SET QUICK MASTER REF.
At this point, you have already recorded the reference position in the SET QUICK MASTER (if not, go
back to the beginning of the block and do it), in that case, you will most probably get errors like: SRVO-
062 and SRVO-075, if they appear, go back to the beginning of point 5.2.1 "Common errors" and correct
them. Then follow the next direction to obtain the screen shown in figure 5.13:
Without leaving the menu and once mastered, you must calibrate the robot using so that the
mastering is completed correctly, so click on the address shown below to obtain the screen shown in
figure 5.14.
The robot will already be fully mastered, so it is recommended to run a ZERO program (see in
point 5.2.3.2-point B) and move the robot in a position outside its calibration marks. Then we run the
program and make sure that the robot returns correctly to its marks, if it does so properly, the mastering
was successful. If not, try the procedure again or run another method for mastering.
Note: when using the SET QUICK MASTER option, a reference position will be created for the
robot, however, it is not until we use the QUICK MASTER that the new reference position is replaced
by the old one, this causes an offset to be created in the encoder that corrects the error between them,
calculating the return deviation in degrees.
If you need to master a single axis, two axes or in general less than 6 axes, you can use SINGLE AXIS
MASTER. Assuming the current situation of the robot, you will most likely get errors such as: SRVO-
062 (for battery wear) and SRVO-075 (for pulses not set), if so, go back to point 5.2.1 "Common errors
and fix it, otherwise continue with the following.
To master, follow the direction below to obtain the screen shown in figure 5.15.
We will get a configuration screen where we must follow the following aspects that we can
configure as needed:
ACTUAL POS = It shows us the current position of each axis in the robot.
(MSTR POS) = Shows us the mastered position of each axis in the robot. If any axis is not
mastered, its value is manually changed to zero.
(SEL) = In this section, we must place a one only in the axes that are not mastered.
[ ST ] = Here we can see if an axis is mastered. A number 2 appears when it is mastered and a
number 0 when it is not.
Depending on the above, we must configure the aspects according to our own case and once
configured, we must press F5 : EXEC to execute the instruction. After that we just must return to the
MASTER/CAL main menu by pressing PREV and then select 7-CALIBRATE→ ENTER → F4 : YES.
With this we will have already calibrated the independent axes.
5.3 Backups
A backup is a backup copy where all the programs created with the robot are automatically saved. These
programs are stored in the controller's memory and can be copied or moved to a remote memory disk for
backup purposes or used to continue programming from software.
87
An AOA backup covers all the files in the TP, such as:
System files
TP programs
Applications
Applications with the TP
Error Log
Diagnostics
Data view files
1) We must insert the memory that will have our backup in the USB port of our controller or, in the
back of the TP, then a warning will come out telling us in which port the memory is connected,
UD1 (for the controller) or UT1 (for the TP).
2) We follow the direction: MENU→ 7--FILE →Enter. That will send us to the memory register or
directory.
3) Already in the memory register, we press: F5: [UNTIL] → 1-Set device → the memory location
that appeared in the warning in step 1 (see in Figure 5.17).
4) Unless you already have a folder in which to save the information, it can be generated from the
memory register (see Figure 5.18) by pressing F5:[UNTIL] → 4- Make DIR → Enter the desired
name (it is recommended to put the date in the folder name) →Enter.
Note: You can generate the folders or directories at your convenience following step 4, the main
idea is that you can navigate between them without any problem.
6) To corroborate the creation of the backup, we press ENTER in "Up one level" and again ENTER
in the name of the created folder. The backed-up programs will appear, and you can look for a
program that you have made. If it is in the list, the backup is done.
7) When finished, to remove the memory from the controller or the TP, we must press in the TP F5:
[UNTIL] → 1-Set device → 1-FROM Disk (FR:) and we will be able to remove it without any
problem.
Note: To make a backup AOA, corresponds to make a backup of everything that is in the robot,
however, you can make a backup of specific files, this following step 5 and instead of pressing |BACKUP|
select what you want, then you can press YES to accept files one by one or press ALL for all, after that
follow with steps 6 and 7.
Unlike an AOA backup, an image backup is a backup of everything on the controller's computer.
Basically, it backs up system files that can faithfully reproduce the data they contain. With a full image
backup, everything from boot information, declared tools, other data, etc. is protected. To perform a full
image backup, the following steps are performed:
1) The first four steps of point 5.3.1 "AOA backups" are performed.
2) Then click on: F4: |BACKUP| → 0-NEXT → 2-Image backup → ENTER → 1- Current Directory
→ OK.
3) A cold start is made (turn the controller switch to its OFF state, wait about one minute and turn it
back to its ON state). When the teach pendant is fully powered up, you will see a loading screen
which will be performing the backup, file by file as in figure 5.19.
4) When finished, the robot will finish its normal start and to remove the memory from the controller
or the TP we will have to press:
An automatic backup is a copy that is made within the robot and is loaded from time to time as determined
by us, and the information it saves is essential for image backups. Each of the options offered by this
type of backup is configurable and important (see Figure 5.20). The direction to find it is as follows:
A. Whenever this section contains the ENABLE option is when the backups will be performed,
otherwise nothing will be performed.
E. Here you can determine the schedules in which the backup will be performed. It contains up to 5
slots in which we can specify different schedules.
F. If the DI specifically contains a 1, it tells us that the backup is being performed, otherwise not.
G. When enabled, this option allows the backup to be performed every time the robot has power
according to the time interval in item H.
H. Here you configure the time interval to perform a backup, it can be done per day, hour, or minutes.
In addition, when the option of point G is enabled, the following points must be considered:
1. The factory defined interval is 7 days, i.e., once the backup has been made, even if the robot is
restarted, a new copy will not be made until these 7 days have passed.
2. If the current date coincides with the date of the last backup version, the backup will not be made.
3. If in the option of interval, we place a 0, a backup copy will be made every time we turn on the
robot, this does not consider point 2.
90
I. Displays the backup status. 1 is when the action is being performed and 0 when it is not.
J. This option configures the number of backup versions that can be backed up. This version of the
robot contains up to 8 available slots.
K. It shows us the last version of the backup, however, we can go back to previous versions by
pressing the CHOICE key.
Note: If you have too many versions within the automatic backup, you can clear the list by
pressing the INIT_DEV → YES option.
According to FANUC Robotics Iberic S.L., the automatic backup is performed as soon as one or more
conditions that we could see in section 5.3.3 are satisfied or declared (FANUC Robotics Ibérica S. L.,
2018). This version of the robot allows different actions to be performed normally as it sends the backup
in the background and marks it in the TP as the warning "FILE-077 Auto backup start (FRA:FRA:\\)"
(see in Figure 5.21).
Figure 5.21 Alarm for automatic backups “FILE-077 Auto backup start (FRA: \\)”
At the end, the TP will detect another alarm indicating that the process is finished and will be able
to continue with its activities. Although the autobackup in this version allows performing activities while
it is being developed, it is recommended to wait for the transition to be completed, since we are given
the necessary options to allow us to develop these backups in defined times.
This is a type of backup that saves the information in text format, for .LS files. The way to perform it is
by following the first four steps of the AOA backups, once it is done, click on the button:
F4:|BACKUP| → 0-NEXT → 2 ASCII Programs → ALL (Para todos los programas en general)
/ YES o NO (Para seleccionar programa por programa)
Once the procedure is done, each of the programs can be visualized by means of some text format
software, giving us as a result, each one of the characteristics of the program, the recorded points and
their positions, as shown in figure 5.22.
91
To perform a backup all of above from the ROBOGUIDE software, we have to open a cell and develop
the programs we need, or we open a project already made and follow the steps below:
2) Already in the memory register, we press F5: [UNTIL] → 1-Set device → depending on us, we
select UD1 (for the controller) or UT1 (for the TP).
3) Folders are generated at your convenience following F5: [UNTIL] → 4-Make DIR → Create a
name.
4) Then you press |BACKUP| → 8-All of above → YES (this option warns you that, if there is any
other content in the folder where the backup will be created, it will delete it).
5) Finally, to find the folder where the backup was saved so that it can be used to transfer it to the
physical robot if needed, you can follow the address in Figure 5.23 on your computer, considering
the name of the cell you worked with.
6) Depending on whether you saved the backup in the UD1 or UT1 folder, it will save the folder
that was created inside on a remote memory, and you will have your backup ready.
Note: In the software there is no option to make image backups, so you can only work with any backup
that falls within the range of AOA or ACII. In this case, if we want to dump programs or the AOA to the
robot, it can be done through a restore, if we are warned that passing programs from a software to a robot
can generate errors.
After creating a backup from the robot, if we want to open it from the ROBOGUIDE software, we need
to open the software and follow the following steps:
3) Choose the option "Create a robot from a file backup" and find the folder where the backup was
created from the robot and select it:
a. BACKDATE.DT = For an AOA backup.
b. FROM00 = For an ISO backup.
4) Finally, press NEXT → NEXT → FINISH. This way you will be able to work with the software
from our backup.
To restore an AOA backup, you need to do a controlled start on the robot, for this it is necessary to have
the TP activated in its ON state and press and hold PREV+NEXT (see Figure 5.24) while initializing.
Subsequently, option 4 is selected and this will take us to a screen similar to the one we normally work
with; however, CTRL START appears in the upper right corner (see Figure 5.25).
Now, to restore the backup we need, we place the device that contains it and press MENU → F5:
[UNTIL] → 1-Set device → Choose our device. When we find the backup we will have two options to
do the restore:
2) Or, if we want to make the complete restoration in a direct way, you can use:
When you have successfully performed the backup restore you must press the FNCT key on the
TP and select the 1-START COLD option, in this step you turn off the robot controller, wait about 30
seconds and turn on again. At full startup, you will see that we will be back to the main screen of our PT
(CTRL START no longer must appear at the top).
Note: This type of restore can also work to dump data or programs from a PC to the Robot, for
this you must make a backup from your PC following the point "BACKUP AOA FROM ROBOGUIDE"
and then following the steps in this point.
To restore an image backup, it is necessary to access the BOOT MONITOR memory, for this it is
necessary to have the TP activated in its ON state and press and hold F1+F5 while starting the robot (see
figure 5.26). This will send us to a screen different from the screen we normally work with, in it there
will be 8 options to configure the system.
Restore Controller Images → ENTER, this will take us to a menu that shows us the devices
connected to the robot. Here we will browse our own account until we find the backup we want to restore.
After finding the address we press 1.OK (Current Directory) → ENTER.
A warning screen will appear telling us that, if the FROM and SRAM do not match in size
compared to those of the robot, open a fatal error as the original files will be deleted, if you are sure of
the action press 1→ ENTER, otherwise press any other number. In the case of accepting, a loading screen
will appear where all the backup files are being restored (see in Figure 5.27), we wait for it to finish and
the legend Restore complete appears, after that we press ENTER.
94
Finally, we will return to the initial screen and press 1.Configuration menu, here we will have
multiple options to continue with the robot startup, If we want the startup to proceed normally press 1.Hot
start → ENTER, otherwise, if you are looking to restart the equipment by turning the controller off and
on again press 2. Cold start → ENTER.
For a good maintenance of the robot, the internal batteries should be replaced every year if they are in
good condition or when the SRVO 065- BLAL alarm (low battery alarm) appears. In addition, they can
also be replaced when the "SRVO 062- BZAL" battery voltage drop alarm is triggered on the teach
pendant. The replacement procedure is as follows (see figure 5.28):
1. In case you have the robot power supply on, press the emergency stop button to prevent the robot
from moving. If not, proceed to the next point.
2. Remove the battery box cover and replace the gasket if necessary.
3. Remove the battery box main by loosening the flat head screws located there.
4. Replace the batteries considering their polarity. You can lengthen the element that is in the center
of them to remove them with better facility
5. After replacing the batteries, perform the same procedure in reverse.
4pcs
Note: if you replace the batteries while the robot has no power, its position data in the encoders
will be lost and therefore you will have to remaster it.
5.4.2 Singularity
Singularity is a unique position of axes that can prevent the execution of motions of a robot, i.e., it is
infinite solutions for a motion that the robot does not know how to manage. The singularity described in
a simpler way, is a point in the robot trajectory that can generate an unexpected rotation of the wrist when
an infinite number of angles or turns in the minor axes (4,5,6) generate the same set of Cartesian data, to
complete the movement, the controller makes the trajectory calculation and can cause acceleration in the
robot. When this failure occurs, it is necessary to move the affected axis in JOINT coordinates (10
degrees approx.) either positively or negatively and re-record the point that is causing such singularity.
Error codes are alarms that indicate that the robotic equipment has entered an error state and can appear
at any time due to specific situations. These codes are made up of three important parts as shown in
Figure 5.29.
Code Message
Severity
We can identify the severity of each alarm according to its contraction, through Table 5.1, where
.L and .G., is the local scope (only applies to the program that generated the alarm) or global scope
(applies to all programs) respectively:
Considering the above information, the errors can be divided into two: robot errors and external
errors. These are detailed below.
Robot errors
External errors
The R-30iB controller contains several error codes to identify the problem when an alarm is triggered.
Depending on the error types, there is a total number of error codes per error (e.g., for SRVO type errors
there are 497 errors recorded). Of the most common, according to Robotics Iberic S.L. are:
SRVO:
Note: When this alarm appears, replace the batteries immediately while the robot is powered on,
otherwise, if the batteries are not replaced in time, the error will evolve to error SRVO-062 BZAL alarm,
losing the absolute position of the encoders and you will have to master the robot again to correct it.
SRVO-075 Pulse not established (Group:%d Axis:%d).
Cause: The absolute position of the encoder has not yet been established (this error is typical
when mastering).
Solution: Remove other alarms found in the TP, move each of the robot axes +/-10° with JOINT
coordinates so that the encoders detect their zero mark and when finished, press the RESET key.
INTP:
MOTN:
MOTN-019 In singularity
Cause: The robot is about to reach a position with singularity.
Solution: Try to maneuver the robot to prevent it from moving in such a position.
MOTN-023 In singularity
Cause: The robot is in a position with singularity.
Solution: Reprogram and perform maneuvers to prevent the robot from reaching that position.
SYST:
SYST-003 TP is enabled
Cause: An attempt was made to perform an operation, but it is not allowed because the TP is
enabled.
Solution: Disable the TP by changing the status selector to OFF, press RESET and try your
operation again.
References
Limón Molina, G. M. (2008). Módulo de calidad controlado por la tecnología DEVICE NET.
Universidad Autónoma de Baja California. Facultad de Ingeniería.
https://hdl.handle.net/20.500.12930/3002
100
Thanks
The authors of the book are grateful for the support received from the Technological Institute of Higher
Studies of Jocotitlán and the University of Ixtlahuaca CUI/Faculty of Engineering, for giving us the use
of their facilities for the development of this work.
Instructions for Scientific, Technological and Innovation Publication
[[Title in Times New Roman and Bold No. 14 in English and Spanish]
Surname (IN UPPERCASE), Name 1st Author†*, Surname (IN UPPERCASE), Name 1st Coauthor,
Surname (IN UPPERCASE), Name 2nd Coauthor and Surname (IN UPPERCASE), Name 3rd Coauthor
Institution of Affiliation of the Author including dependency (in Times New Roman No.10 and Italics)
ID 1st Author: (ORC ID - Researcher ID Thomson, arXiv Author ID - PubMed Author ID - Open ID) and CVU 1st author:
(Scholar-PNPC or SNI-CONACYT) (No.10 Times New Roman)
ID 1st Coauthor: (ORC ID - Researcher ID Thomson, arXiv Author ID - PubMed Author ID - Open ID) and CVU 1st coauthor:
(Scholar or SNI) (No.10 Times New Roman)
ID 2nd Coauthor: (ORC ID - Researcher ID Thomson, arXiv Author ID - PubMed Author ID - Open ID) and CVU 2nd coauthor:
(Scholar or SNI) (No.10 Times New Roman)
ID 3rd Coauthor: (ORC ID - Researcher ID Thomson, arXiv Author ID - PubMed Author ID - Open ID) and CVU 3rd coauthor:
(Scholar or SNI) (No.10 Times New Roman)
(Report Submission Date: Month, Day, and Year); Accepted (Insert date of Acceptance: Use Only ECORFAN)
Citation: First letter (IN UPPERCASE) of the Name of the 1st Author. Surname, First letter (IN UPPERCASE) of the First
Coauthor's Name. Surname, First letter (IN UPPERCASE) of the Name of the 2nd Co-author. Surname, First letter (IN
UPPERCASE) of the Name of the 3rd Co-author. Last name
First letter (IN UPPERCASE) of the Name Publishers. Surnames (eds.) Title of the Books [Times New Roman No.10],
Selected Topics of the corresponding area © ECORFAN- Subsidiary, Year.
ECORFAN® All rights reserved -México-Bolivia-Spain-Ecuador-Cameroon-Colombia-Salvador-Guatemala-
Paraguay-Nicaragua-Peru-Democratic Republic of Congo-Taiwan
Instructions for Scientific, Technological and Innovation Publication
1 Introduction
In the Chapter content any graphic, table and figure should be editable formats that can change size, type
and number of letter, for the purposes of edition, these must be high quality, not pixelated and should be
noticeable even reducing image scale.
[Indicating the title at the bottom with No.10 and Times New Roman Bold]
9
8
TC
T1
7
T2
Root length (cm)
6
T3
5
4
3
2
1
0
Day 14 Day 7 Day 3
Each chapter shall present separately in 3 folders: a) Figures, b) Charts and c) Tables in .JPG format,
indicating the number and sequential Bold Title.
Methodology
Develop give the meaning of the variables in linear writing and important is the comparison of the used
criteria.
Results
Annexes
Thanks
Conclusions
References
Use APA system. Should not be numbered, nor with bullets, however if necessary numbering will be
because reference or mention is made somewhere in the Chapter.
Use Roman Alphabet, all references you have used must be in the Roman Alphabet, even if you
have quoted an Chapter, book in any of the official languages of the United Nations (English, French,
German, Chinese, Russian, Portuguese, Italian, Spanish, Arabic), you must write the reference in Roman
script and not in any of the official languages.
Technical Specifications
Each chapter must submit your dates into a Word document (.docx):
Books title
Chapter title
Abstract
Keywords
1. Introduction
2. Description of the method
3. Analysis from the regression demand curve
4. Results
5. Thanks
6. Conclusions
7. References
ECORFAN Books reserves the right to make the editorial changes required to adapt the Scientific Work
to the Editorial Policy of ECORFAN Books. Once the Scientific Work is accepted in its final version,
ECORFAN Books will send the author the proofs for its revision. ECORFAN® will only accept the
correction of errata and errors or omissions arising from the publication process of the journal, reserving
in its entirety the copyright and content dissemination. No deletions, substitutions or additions that alter
the formation of the Scientific Work will be accepted.
Declaration of Originality and unpublished character of the Scientific Work, of Authorship, on the
obtaining of data and interpretation of results, Acknowledgments, Conflict of interests, Assignment of
rights and distribution.
The ECORFAN-Mexico, S.C Directorate asserts to the Authors of the Scientific Work that its content
must be original, unpublished and of Scientific, Technological and Innovation content to be submitted
for evaluation.
The Authors signing the Scientific Work must be the same that have contributed to its conception,
realization and development, as well as the obtaining of data, interpretation of the results, its writing and
revision. The Correspondent Author of the proposed Scientific Work will request the form that follows.
Title of the Scientific Work:
The sending of a Scientific Work to ECORFAN Books emanates the commitment of the author
not to submit it simultaneously to the consideration of other serial publications for it must
complement the Format of Originality for its Scientific Work, unless it is rejected by the
Arbitration Committee, may be withdrawn.
None of the data presented in this Scientific Work has been plagiarized or invented. The original
data are clearly distinguishable from those already published. And you have knowledge of the
test in PLAGSCAN if a level of plagiarism is detected Positive will not proceed to arbitrate.
References are cited on which the information contained in the Scientific Work is based, as well
as theories and data from other previously published Scientific Works.
The authors sign the Authorization Form for their Scientific Work to be disseminated by means
that ECORFAN-Mexico, S.C. in its Holding Mexico consider relevant for the dissemination and
dissemination of its Scientific Work by giving up its Scientific Work Rights.
The consent of those who have provided unpublished data obtained by verbal or written
communication has been obtained, and such communication and authorship are adequately
identified.
The Author and Co-Authors who sign this work have participated in its planning, design and
execution, as well as in the interpretation of the results. They also critically reviewed the paper,
approved its final version and agreed with its publication.
No signature responsible for the work has been omitted and the criteria of Scientific
Authorization are satisfied.
The results of this Scientific Work have been interpreted objectively. Any result contrary to the
point of view of those who sign is exposed and discussed in the Scientific Work.
Copyright and Access
The publication of this Scientific Work entails the transfer of the copyright to ECORFAN-Mexico, SC
in its Mexico Holding for its ECORFAN Books, which reserves the right to distribute on the Web the
published version of the Scientific Work and the making available of the Scientific Work in this format
supposes for its Authors the fulfillment of what is established in the Law of Science and Technology of
the United States of Mexico, regarding the obligation to allow access to the results of Scientific Research.
Name and surnames of the Contact Author and the Coauthors Signature
1. signature
2.
3.
4.
Publisher Responsibilities
The Publisher undertakes to guarantee the confidentiality of the evaluation process, it may not disclose
to the Arbitrators the identity of the Authors, nor may it reveal the identity of the Arbitrators at any time.
The Editor assumes the responsibility of properly informing the Author of the phase of the editorial
process in which the text is sent, as well as the resolutions of Double Blind Arbitration.
The Editor must evaluate the manuscripts and their intellectual content without distinction of race,
gender, sexual orientation, religious beliefs, ethnicity, nationality, or the political philosophy of the
Authors.
The Editor and his editing team of ECORFAN® Holdings will not disclose any information about the
Scientific Work sent to anyone other than the corresponding Author.
The Editor must make fair and impartial decisions and ensure a fair peer arbitration process.
The description of the processes of peer review is made known by the Editorial Board in order that the
Authors know the evaluation criteria and will always be willing to justify any controversy in the
evaluation process. In case of Detection of Plagiarism to the Scientific Work the Committee notifies the
Authors for Violation to the Right of Scientific, Technological and Innovation Authorization.
The Arbitrators undertake to notify about any unethical conduct by the Authors and to indicate all the
information that may be reason to reject the publication of the Scientific Work. In addition, they must
commit to keep confidential information related to the Scientific Work that they evaluate.
Any manuscript received for your arbitration must be treated as confidential, must not be displayed or
discussed with other experts, except with the permission of the Editor.
The Referees should conduct themselves objectively, any personal criticism of the Author is
inappropriate.
The Arbitrators must express their points of view with clear and valid arguments that contribute to the
Scientific, Technological and Innovation of the Author.
The Arbitrators should not evaluate the manuscripts in which they have conflicts of interest and that they
have been notified to the Editor before submitting the Scientific Work to evaluation.
Responsibilities of Authors
Authors must ensure that their Scientific Works are the product of their original work and that the data
have been obtained in an ethical manner.
Authors must ensure they have not been previously published or are not being considered in another
serial publication.
Authors must strictly follow the rules for the publication of Scientific Works defined by the Editorial
Board.
Authors should consider that plagiarism in all its forms constitutes unethical editorial conduct and is
unacceptable, consequently any manuscript that incurs plagiarism will be removed and not considered
for publication.
Authors should cite publications that have been influential in the nature of the Scientific Work submitted
to arbitration.
Information services
Publishing Services
143 – 50 Itzopan, Ecatepec de Morelos–Mexico. Phones: +52 1 55 6159 2296, +52 1 55 1260 0355, +52
1 55 6034 9181; Email: contact@ecorfan.org www.ecorfan.org
ECORFAN®
Chief Editor
VARGAS-DELGADO, Oscar. PhD
Executive Director
RAMOS-ESCAMILLA, María. PhD
Editorial Director
PERALTA-CASTRO, Enrique. MsC
Web Designer
ESCAMILLA-BOUCHAN, Imelda. PhD
Web Diagrammer
LUNA-SOTO, Vladimir. PhD
Editorial Assistant
REYES-VILLAO, Angélica. BsC
Translator
DÍAZ-OCAMPO, Javier. BsC
Philologist
RAMOS-ARANCIBIA, Alejandra. BsC
Site Licences
Management Offices