Design File

advertisement
Development of a servo linear slide experimental
system using a Mitsubishi FX PLC and MR-C servo
by
Nicolas JULIEN
This Report is submitted in partial fulfilment of the requirements of the
Honours Degree in Electrical and Electronic Engineering (DT021)
of the Dublin Institute of Technology
May 9th, 2008
Supervisors: David Berber, Jaye Renehan
School of Electrical Engineering Systems
School of Electrical Engineering Systems
ACKNOWLEGMENT
First I want to thank all the people without whom this project would have been terribly difficult:
Jaye Renehan (Adapt Engineering) for the opportunity of this engineer experience and his kindness
William, Paul and Colon, (Adapt Engineering) for their hard working during classes and sympathy
David Berber for all the help he provided me for this project
All DIT’s technicians, Finbarr O’Meara, Terence Kelly (Terry), Gordon Reynolds (Brakeman) and Michael Feeney
for their help.
Ryan Ford from Mitsubishi, and Steven Mehon for them technical support and friendship.
All my French friends who supported me during those twelve weeks: Catherine, Christophe, Clement and Julien.
Solène, my girlfriend, for her supportive.
2
Nicolas JULIEN
School of Electrical Engineering Systems
ABSTRACT
PLC control of Servo Motor Systems investigation.
The project was to investigate the control of servo motor systems for use in an Irish company involved in high
precision designing and manufacturing of specialty machines and fixtures.
Servo motor control is really important in automation, and this company wanted to acquire this knowledge,
since it involves a qualified staff. The small size of the company didn’t allow them to hire experts for classes, and
develop the expertise by themselves needed a lot of time, that the employees did not have.
So I realized investigations to acquire an expertise in Servo Motor Control Systems, to transmit my knowledge to
the engineers of the company, as a hired expert could do.
3
Nicolas JULIEN
School of Electrical Engineering Systems
INDEX
Acknowlegment ......................................................................................................................................................... 2
Abstract ...................................................................................................................................................................... 3
Project presentation .................................................................................................................................................. 6
Adapt Engineering................................................................................................................................................. 6
Basics..................................................................................................................................................................... 6
Additional Projects ..............................................................................................................................................10
Project schedule .......................................................................................................................................................11
Project running.........................................................................................................................................................12
Discovering/ Wiring: Week 1&2..........................................................................................................................12
First visit to Adapt Engineering: week 2 .............................................................................................................22
First tests: week 2 ...............................................................................................................................................22
Rational windows: Week 3..................................................................................................................................23
New working way: week 4 ..................................................................................................................................25
Huge changes: week 5&6....................................................................................................................................28
Project second part: week 7 ...............................................................................................................................33
Adapt presentation and huge motor: week 8.....................................................................................................37
Adapt presentation: week 9................................................................................................................................39
S program: week 9&10 .......................................................................................................................................44
Final presentation: week 11................................................................................................................................48
Report: week 11&12 ...........................................................................................................................................48
Scheme of the chronological sequence of event ................................................................................................49
Teaching syntheses ..................................................................................................................................................50
4
Nicolas JULIEN
School of Electrical Engineering Systems
First presentation ................................................................................................................................................50
Second presentation ...........................................................................................................................................50
Teaching conclusion ............................................................................................................................................51
Project reflexion .......................................................................................................................................................52
What I learnt .......................................................................................................................................................52
Problems .............................................................................................................................................................52
After work reflexion ............................................................................................................................................53
Critical assessment..............................................................................................................................................53
Design File ................................................................................................................................................................54
Adapt PLc and HMI code evolution.....................................................................................................................55
Rational PLC and HMI programs .........................................................................................................................71
Big motor PLC and HMI program ........................................................................................................................72
Adapt praticing files ............................................................................................................................................74
Appendix ..................................................................................................................................................................75
Servo Motor Project Log .....................................................................................................................................76
Adapt first presentation Power Point .................................................................................................................88
Adapt Second Presentation Power Point ............................................................................................................89
Assessments from adapt .....................................................................................................................................90
5
Nicolas JULIEN
School of Electrical Engineering Systems
PROJECT PRESENTATION
The aim of the project is to design, develop and implement a computer controlled servo system. All
investigations will be reported to an Irish company which want to acquire this expertise in Servo Motor Control.
ADAPT ENGINEERING
Adapt Engineering is a small Irish company based in Dublin, which design and manufacture Specialty Machines
and Fixtures. They are four engineers and 3 technicians, specially involved in Medical machines.
They are often faced to moving part machines, which requires the use of motors. For new applications, they
want to use servo motors which allow really precise moves, whereas usual motors are spinning without a real
control of the speed and the position. But their knowledge in this area is really limited, and they want a deeper
understanding of this kind of systems.
BASICS
The aim of the project is to learn the positioning theory and to develop a practical application of the servo
motor use. Here we are using a slide (translation moves) using a screw connected to the axis of the motor.
During twelve weeks, all the possibilities of this application will be explored, and then, all the knowledge will be
transmitted to Adapt Engineering’s employees for future projects.
WHAT IS SERVO MOTOR CONTROL?
A usual motor is simply spinning when powered. But a Servo Motor is made with an encoder attached to the
axle, which transmit the exact position of the motor at any moment to the Servo Controller. Currents
Mitsubishi’s Servo Motors reached an accuracy of 10.000 positions per rotations, what means that we can
adjust the position of the motor to 0.036 degree! If this kind of motor is mounted on a screwed slide, it possible
to position a translating chariot with a 0.01 mm accuracy or more with a really good repeatability.
6
Nicolas JULIEN
School of Electrical Engineering Systems
DEVICES
The system I worked on was a simple and cheap system, using cheap devices. The basic configuration of a
complete Servo Control involves:
-
A Servo Motor: motor + encoder  mechanical part
-
A Servo Controller: power supply of the motor and encoder calculator
-
A PLC: Programmable Logical Controller the brain of the system, programmed by engineer
and commanding the Servo Controller
-
A Pulse Generator: allows the PLC to communicate with the Servo Controller
-
An HMI: Human to Machine Interface, that allows operator to control the PLC through a touch
screen ,without a computer.
All those devices correctly wired can be used to make a deeper control for example! But let’s take an example to
clarify everything.
7
Nicolas JULIEN
School of Electrical Engineering Systems
EXAMPLE
To illustrate the system, and to get an overview of the possibilities, we can imagine the following example: an
apple fryer! Imagine that we want to dive an apple in a boiling bath of oil. We will use a deeper, composed of a
slide and a moving part mounted on a screw. The motor is connected to the screw, and when the screw spins,
the deeper go up and down, so that we can control the level of the deeper, function of the motor positon.
An operator can use the touch screen (HMI) to control the level of the deeper; the HMI will tell the PLC to make
a move. The PLC sends data to the Pulse Generator, which communicates the number of steps to execute to the
Servo; the Servo powers the motor and the deeper moves!
Then the feedback allows the Servo to know when the position is reached, and tell the pulse generator. Finally,
the Pulse Generator sends data to the PLC to inform of the end of the move, what is specified to the operator
through the HMI. The complete cycle is ended.
Figure 1: Usual System configuration for Servo Motor Control
8
Nicolas JULIEN
School of Electrical Engineering Systems
OPTIMISATION
In the previous example, we need the Pulse Generator to realize a conversion from the Numeric data of the PLC
(computer), to the Analog input of the Servo (0V to 24V).
Actually, the Servo is commanded by pulses, and each pulses received corresponds to one motor step. So that
for a “4000 steps per rotations” Motor Encoder, we have to send 4000 pulses to the Servo Controller if we want
one Motor complete rotation. For more explanations, please refers to Appendix  Adapt first presentation
Figure 2: Profile of the voltage during pulse generation
But new Mitsubishi PLCs FX-3U series are able to generate this kind of pulses, so that the Pulse Generator can
be avoided. These way to proceed represents a 500€ saving, the price of the Pulse Generator. All outputs from
the Servo, which are analogical too, can be received by any PLC.
This new way to control a Servo Controller via a PLC will be experimented during this project, to allow Adapt
Engineering to save money, since some systems are using three or four Servos!
Figure 3: New System Design using PLC Pulse Generation function
9
Nicolas JULIEN
School of Electrical Engineering Systems
ADDITIONAL PROJECTS
During the twelve weeks of the project, and because of a small advance on the schedule, others tasks had been
added to the project.
RATIONAL WINDOWS
Rational Windows is an Irish company based inside the country, not so far from Dublin, making frames for doors
and windows. Some of the machinery park is old, and David Berber installed a Servo Motor Control on one of
them to improve the efficiency. Some problems occurred and I participated to investigations on this problem.
Then, another project was planned, still using Servo Motor Control, in which I was supposed to be deeply
involved in.
MITUSBISHI INVERTER F700
After the holiday break, Ryan Ford from Mitsubishi gave me a new device to work on, composed of a Servo and
a Motor, but with really singular specifications. I was charged to make investigations about this new positioning
system.
10
Nicolas JULIEN
School of Electrical Engineering Systems
PROJECT SCHEDULE
This project has not a really precise objective to reach, and so it is difficult to plan the work to be done. Indeed,
the characteristic of this project is that I have to learn the maximum about this system, and this why my
investigations will end when time is over!
So, an initial schedule that was defined as follow:
Week 1:
o
Discovering devices
o
Introduction to Servo Control System
Week 2:
o
Familiarization with Servo Hardware : Wiring
Week 3:
o
Review of operations
Week 4:
o
Implementation of simple routines
Week 5  8:
o
Investigations on the system

PLC programming

Slide configuration

HMI interface development

Security implementation
Week 9  10:
o
Teaching and documentation preparation
o
Teaching days
Week 11  12:
o
Report writing
11
Nicolas JULIEN
School of Electrical Engineering Systems
PROJECT RUNNING
This part will describe all the work I did on this project during those twelve weeks: objectives, problems,
investigations, choices, solutions, etc… For a better understanding, this presentation is chronological, and details
about programs will be described in the design files part.
DISCOVERING/ WIRING: WEEK 1&2
The first week of this project was dedicated to the project discovery with David Berber, my supervisor. The first
step was to take a look at manuals because the PLC was the only device I already knew, and it was a new model
with particular specifications. This reading job was really facilitated since some hours had been dedicated to the
project discovery with David Berber, before the end of the first semester. This way, I already knew all the basics,
and the project started well.
MANUALS
My first task was to discover how to control the Servo with the PLC, using the Pulse Generation function of the
PLC FX-3U. I didn’t really know what kind of functions or code I was searching for, and I spent long hours,
reading the 900 pages of the documentation. I was in a real engineer situation, discovering a new problem, and I
had to be patient to learn knew things by myself.
Finally, I found the “DRVI” function, which realizes pulses generation! This function takes four parameters:
-
The number of pulses
-
The frequency of the pulse generation
-
The output for the pulses
-
The output for the direction
All those parameters were not really clear for me, so I tried a piece of code which was given as an example. I
opened GX developer, which is software for PLC programming, we learned to use during the first semester in
Automation labs. The code was written, and the program sent to the PLC. It was something like:
X0
DDRVI K4000 K2000 Y0 Y4
Figure 5: DRVI function use
This line means that 4000 pulses will be sent at a frequency of 2000 pulses per second on the output Y0, when
the X0 input would be activated. At this moment, I didn’t understand how to use the “direction output” Y4, but
12
Nicolas JULIEN
School of Electrical Engineering Systems
this function was apparently functioning since the Y0 and Y4 LEDs of the PLC lighted during 2s, which the time
needed to send 4000 pulses at frequency of 2000 pulses per second. A test with a scope gave me the final
answer, and I saw the square signal on the screen: every thing OK!
WIRING
I realized that reading manuals was not useful and maybe brain burning, if not any precise information was
looked for. So I decided to wire all the devices together to check if everything was all right. Everything had to be
done, from the power supply for the Servo and the HMI (PLC was done), to the connectors between the PLC and
the Servo.
A few hours were dedicated to soldering, and with the help of the technicians, all power supply and connectors
were made. Then, I connected the motor to the Servo (only 4 cables for the power), and the encoder had just to
be connected with a clip connector.
The last step was to connect the Servo to the PLC, and this was not so easy…
SINK/SOURCE NIGHTMARE
All the devices I was working on were Mitsubishi’s products, so that any problem of compatibility was supposed
to occur. But it did, because of an electrical worldwide standard conflict about transistors! Indeed, to control
outputs, and to be controlled through inputs, the Servo, the PLC, and any electronic device uses transistors. But
there are two kinds of transistors, regarding to two logical standards:
-
PNP transistors: positive input, for 24v logic, used in Europe
-
NPN transistors: negative input, for 0v logic, used in US and Japan.
Those two standards are not compatible, and the devices I had were a SINK SERVO and a SOURCE PLC. Actually,
the Servo I was working on did not exist in Source at this date, and we would have to wait few months to get it.
This was not really a problem to communicate from the Servo to the PLC, since it is really easy to switch PLC
inputs from source to sink. But to communicate from the PLC to the Servo, the problem was real, and it was a
huge problem because I needed this connection to test the first elementary moves of the motor, controlled by
the PLC.
My knowledge in electronic was really small, and I had not any idea of how to solve this problem.
13
Nicolas JULIEN
School of Electrical Engineering Systems
ELECTRONICAL INVESTIGATIONS
After drawing some electronic schemes, I decided to test any possible connections, to find which one was
working, counting on Mitsubishi electrical engineers’ skill about bad connections. I first tried a usual source
connection, and unfortunately it was not working, but it was not a surprise!
I picked some crucial information from the manual before those investigations, and I knew that before any
move, the Servo needed to receive a “SERVO ON” signal to be ready. After trying with the PLC, I decided to
realize this connection by soldering directly the input “SON” of the servo, to the 0V pin of the power supply
(since it is a Sink logic). Instantly, the motor made a high-pitched sound which indicated it was ready. So a
started again my experience with pulses, and I finally made the motor spinning the Friday. All I needed was to
connect the cables in an inverted way on PLC outputs. It was the same for “SERVO ON” signal, and inputs were
connected in SINK, so that everything was OK at the end of this first week.
FIRST WIRING
The usual PLC output wiring is explained on the figure bellow: the “common” is connected to 24v or 0v, depend
of the Sink or Source mode, and outputs are connected to the pins of the device to be controlled.
Figure 4: Usual outputs configuration for compatible systems
14
Nicolas JULIEN
School of Electrical Engineering Systems
But because of the incompatibility of our system, one solution is to wire transistors in an inverted way as shown
bellow.
Figure 5: Wiring for a Source to Sink communication
As you can see, this configuration is output consuming since the Common is used to connect the communication
line, and the Controlled output for the 0v. This wiring way is operant but sacrifices an all output block for only
one controlled line. Even if a PLC FX-3U 48M (our) count 24 outputs in 5 outputs block, we should not sacrifice
19 of the outputs to use only 5! Moreover, our application needs 6 outputs!
Figure 6: Scheme of the FX3U-48M PLC pins
15
Nicolas JULIEN
School of Electrical Engineering Systems
FINAL WIRING
To fit industry standards and to have a professional work it was necessary to rewire all the system:
-
Respecting an harmony between inputs and outputs: every thing in Source
-
Use the maximum of outputs: find a solution not to sacrifice entire outputs blocks
This was done after the visit of Ryan Ford, electronic engineer in Mitsubishi Ireland. Ryan Ford gave me a piece
of advice about the wiring, and gave me some solutions for the wiring. For the majority of the solutions, it was
electronic cheating to convert negative logic to positive logic using simple resistors, and the final result was not
too bad.
SERVO OUTPUTS
We can take the example of the most important Servo output which is “ALM” (Servo failure), to figure the new
wiring. Indeed, for a Sink Servo and PLC configuration, the Servo output can be connected directly to the PLC
input (see figure bellow), since X0 need to be connected to 0v (Ground) to be activated.
Figure 7: Instruction from manual / Sink to Sink servo output connection
16
Nicolas JULIEN
School of Electrical Engineering Systems
It is what was done until here, with PLC’s inputs in Sink mode. But we want a Source mode, and inputs need 24v
to be activated. For this, we use a simple circuit using only resistors as bellow.
Figure 8: new wiring to convert Sink to Source logic
Here, we directly connect 24 volt to the PLC input, through a resistor calculated to create a 9mA current to
activate the input (see calculation on the figure). When the ALM output is supposed to be OFF, the PLC input is
ON. And when the ALM output is ON, the PLC input is OFF. This way we can use both of the devices in correct
mode, but logic is inverted between the Servo and the PLC. We will have to mind this for the PLC program.
Figure 9: view of the resistors box
17
Nicolas JULIEN
School of Electrical Engineering Systems
SERVO INPUTS: PULSES AND DIRECTION
The Servo Motor has two specific inputs for the pulses and the direction concerning the motor spinning. There is
two ways to control those inputs: open collector and differential. With an all Sink system, it is easy to control
those inputs with a PLC for example:
Figure 10: All Sink connection: Open Collector / Differential
The first wiring which was enough to control those inputs was connected has follow, but we remember that this
solution is PLC output consuming.
Figure 11: First wiring, bad solution: Open collector / Differential
18
Nicolas JULIEN
School of Electrical Engineering Systems
Finally, it is possible to cheat the system to use is in a more clever way. It is possible to use a specific
configuration that is not specified by the manual, but that gives really good results, and allow us to use all PLC
outputs!
Figure 12: Final wiring: Only Pulse control scheme / Pulse and Direction control
The first scheme of the figure over could let think that OPC is usable for this configuration, but the right scheme
shows that OPC is common for the Pulses and Direction circuit so that we have to use the specific pins
PG(pulses) and NP(direction) to supply the power.
SERVO INPUTS: SERVO ON, LSN, LSP, CR
The Servo has FOUR other inputs: SON (to turn servo “ready” or “on”), CR, LSP and LSN which are configured by
the user. The first wiring which was once again, output consuming, was as follow:
Figure 13: Usual wiring of SON input in Sink / First wiring with inverted PLC output
19
Nicolas JULIEN
School of Electrical Engineering Systems
We can notice that this input circuit is not so different from the Pulse/Direction input. After trying do make the
same wiring, I understood that it was as if the PLC output was connected to OPC, which was problematic. On the
following figure, we can see that this configuration activates all the input at the same time… For those inputs,
we don’t have easy solution.
Figure 14: First test for a clever wiring
Another solution suggested by Ryan Ford looks like the cheating system for Servo Outputs. It changes the logical
too, but allows to use only one PLC outputs for each line! Notice that this solution arrived late in the project and
was never wired else than experimentally.
Figure 15: Final wiring for Servo inputs
20
Nicolas JULIEN
School of Electrical Engineering Systems
CONCLUSION
This conflict between the Servo and the PLC was really a nightmare for me. Moreover it was the first task of this
project, and it was important to finish it quickly since any other tasks could not be done until the wiring is
finished.
Electronic is a real weakness for me, and after one all week spent on this problem, I was about to give up this
project. Not only because electronic was easy, but also because tools were missing and it was not possible to
have the tools I needed when I needed it! And it was really, really disappointing not be able to progress because
of an impossibility to get what I needed to work.
Finally, everything went well with the help of David Berber and Ryan Ford, and few mails sent to Mitsubishi
head office in Germany. To finish, I invite you to take a look at the different wiring configuration between a
Source to Source, and a Sink to Source Servo-PLC configuration.
Figure 16: Wiring for a simple Source to Source configuration / wiring for Sink Servo and Source PLC
21
Nicolas JULIEN
School of Electrical Engineering Systems
FIRST VISIT TO ADAPT ENGINEERING: WEEK 2
The first visit to Adapt Engineering was done quite early to discover the company and their needs. This day, we
met Jaye Renehan who is the owner and chef engineer, William and Paul who are the two young mechanical
engineers I was supposed to teach, and Colon, the electrical engineer.
We discovered the company’s jobs, and especially a job using a servo motor, but with a complete system (using
pulse generator) and only a really simple move program made by Jaye. At this moment, they were making the
first test, and I was happy to be useful in this operation because of my small knowledge of the Servo. Actually
they were having wiring problems, and I didn’t stay enough in the company to see the result.
This short visit gave me a real idea of what this company was making, and which kind of moves they needed.
This way my work got sense and precise objective.
FIRST TESTS: WEEK 2
When wired, the system was ready to operate. In the early second week, the PLC pulse generation was
controlled, the communication with the Servo operating; just the necessary was wired at this moment:
-
Servo ON command
-
Pulses and Direction
This wiring was the bad first one, but was running, and first routines could be implemented.
HMI
The first step to make first tests was to use an HMI (Human t Machine Interface) allowing me to control easily
the PLC program. Before that, the only way to proceed was to take a piece of cable and make a contact between
24v and PLC inputs (X0, X1 …).
HMIs need specific cross serial cable, what was not in DIT. Instead of order it (what was time consuming), I
decided to make my own with brut connectors, a cable, and a soldering iron I found in Technicians office. It was
two hours fighting with my patience but I did do it and it was working well. Now I could program the HMI !
FIRST ROUTINES
So on Wednesday of this second week, I was programming basics moves in the PLC and a control panel in the
HMI. I programmed:
-
Relative displacement (rotate of X motor steps): 4000 steps was actually a complete rotation
22
Nicolas JULIEN
School of Electrical Engineering Systems
-
Absolute displacement (reminding the actual position): possibility to go to a specific position
-
Jog displacement (rotation controlled by operator): running until the button is pressed
-
Homing: routine to find the zero position, necessary for absolute moves.
All those routines were programmed using the DRVI function I explained earlier. It was actually a mistake and
there was no security, but it was my first tests, and it was enough. The motor was not mounted on a slide and
was spinning freely, so that the security was not a problem.
We will see later the evolution of the programs, but now I just try to give a global overview of my overall work
during this project.
RATIONAL WINDOWS: WEEK 3
The third week, David Berber came to me to talk about a new company: Rational Windows. He implanted a
Servo Motor Control system in this factory, but had some problems with it: he was suspecting a lost of pulses
between the PLC and the Servo. I was invited to come with him and some others technicians to try to find a
solution.
MACHINE PROBLEM
To prepare this visit, I was charged to get a scope able to display the pulses of the PLC output. I made some tests
with Finbarr (DIT technician) on my own PLC, and everything was ready.
On Friday, we went to Rational Windows, and after a short visit of the factory, we focused on the faulty
machine. After making some tests which were showing a problem, we tried to find the solution using the scope,
and a computer brought by Ryan Ford (Mitsubishi).
The system was exactly what I was doing, but with bigger Servos and Motor. The system was replacing an old
one. We tested a lot of things:
-
Visualize pulses from the PLC: OK
-
Change cable for hypothetic electro magnetic noise: NO CHANGE
-
Count pulses sent by the PLC and pulses received by the Servo: here was the problem
But after 4 hours spent on the machine the problem was known, but not solved. We left the company with no
solution.
23
Nicolas JULIEN
School of Electrical Engineering Systems
NEW PROJECT
During the visit, the owner told us about a new machine that he wanted to automate. It was a wood cut
machine, and what he wanted to automate was the Stop, against which the piece of wood was blocked. The
position of the Stop was determining the length of the wood cut. Until here, the Stop was handled by an
operator, but the owner wanted to put a Servo Motor on it, and an HMI. This way, the operator would have to
tip the position, the Stop would have moved to exact position by itself: faster and more accurate!
Moving STOP part
Displacment of the wood
Displacment of the STOP
Original positon display
Figure 17: Rational Machine
BACK TO DIT
Back to DIT I had two missions:
-
Investigate about lost pulses
-
Make a complete PLC and HMI program for Rational Project: only Absolute move, and so
Homing routine, what I had already did in a simple version.
24
Nicolas JULIEN
School of Electrical Engineering Systems
NEW WORKING WAY: WEEK 4
At the fourth week, I was becoming really busy:
-
Adapt investigations
-
Rational lost pulses researches
-
Rational project
I needed a clear work area, because until here, all my devices were wired with cables everywhere, and
everything was messy.
FRAME
The fourth week, a neat frame was done with technicians help, to welcome the PLC, the Servo, the HMI, and the
motor which was not yet connected to anything. In two days, this plastic frame was finished, and I think it was a
good invest since I worked much more efficiently with.
SERVO
PC for programing
PLC
HMI
MOTOR
Figure 18: Plastic frame to clear the work desk
25
Nicolas JULIEN
School of Electrical Engineering Systems
LOST PULSES
First days of the fourth week was dedicated to the lost pulses affair! I made special programs to test if any
pulses were lost between the PLC and the Servo, since it was the problem in Rational. A critical Servo outputs,
“Zero positioning”, was really useful for this application. Indeed, the motor encoder has 4000 steps a rotation,
but there is a small range of 10 steps where a specific signal is detected by the Servo. This signal can be
transmitted to the PLC and a simple routine was made:
-
Find this special area and stop
-
Send a numbers of pulses form the PLC corresponding to an integer number of rotations (
400 000 for example)
-
Check if the motor finish in the same area
This test was really impressive, since not any time the system failed! So, there were not any lost pulses, but the
accuracy of the system was proved: less that 0.1 degree faulty on 100 rotations!
Finally the conclusion was that my system, using small power servo and motor, and short wires, was not
submitted to same conditions as the machine in Rational. The problem was certainly electromagnetic.
Later on, I knew that the problem was not a pulse lost, but a pulse gain! This was effectively due to an
electromagnetic noise, and a new Ground wiring solved this problem. I think that in this problem, my
investigations, and the ideas I gave was not absolutely useless.
SLIDE
It is during this week that the slide, mode by Adapt engineers, arrived at DIT. It was good news because it
allowed me to change my switch simulating the slide captor, by real ones! I could also test my programs in real
conditions, and improve my program for Rational! Indeed, this slide was close to the kind of device that could be
used.
26
Nicolas JULIEN
School of Electrical Engineering Systems
NEW PLC/HMI DESIGN
At the end of the week, it was time to make real changes in my programs, especially the HMI that was becoming
messy because of the number of pages. The HMI interface got at this moment a common part grouping all
important information (Servo on, in position, alarms …) distributed on all pages! This week was also a new
breathing for the PLC, since I discovered new PLC bits, specialized for positioning functions. (Details later on)
Zero motor detection
Go to absolute move
Global status: alarms,
ready, etc …
Alarm
Go to JOG move
Servo move finished
Servo On control
signal
Current position
Servo status
Homing signal and link to
homming page
Figure 19: Common task bar grouping all important in formations (on relative move page)
27
Nicolas JULIEN
School of Electrical Engineering Systems
HUGE CHANGES: WEEK 5&6
I learned and discovered a lot of new things during those two last weeks before holidays.
DRVI
Until here, the DRVI PLC function was used to generate pulses, and only pulses. The direction (Y4 PLC output),
was calculated by my own program. A meeting with Steven, David’s colleague who worked on the Rational
machine program, gave me some clues about the correct use of the DRVI function.
What I was doing was using DRVI to generate pulses, and then, using my program to determinate if the move
was positive (positive value of the number of pulses), or negative, to command the direction PLC output. (refer
to the section …)
Actually, the DRVI function does it by itself, and if the number of pulses introduced is negative the DRVI function
turn automatically the direction output of the function on.
X0
DDRVI D100 D200 Y0 Y4
Figure 19: Correct use of DRVI
So if D100 (number of pulses) or D200 (frequency) is a negative value, Y4 will be turned on! What is really code
saving! And this way, I deleted almost 10 code lines I made by myself before…
D8340
Steven told me about a PLC data, D8340. This data is a PLC intern memory, which remembers the number of
sent pulses. I was already using this memory to make my own position calculator. Indeed, a huge program was
checking the actual position, and realizing a calculation de pending of the direction of the move. This way of
programming got me in huge trouble I finally solved. But the correct use of DRVI, (with the direction part) is
making all this work automatically!
So that almost 20 lines were deleted, and the all system was finally not working better, but was much safer than
before!
28
Nicolas JULIEN
School of Electrical Engineering Systems
HMI
Thos part of the project was also the time to program everything in millimeters, since until here, every units
were in Servo Motors pulses, what is not usable by an operator! So an electronic gearing had to be realized, and
I made some investigation for it.
Figure 20: Extract of the Adapt presentation about gearing
The first step is to find the correspondence between the units I want to program the system, and the motor
steps. For the slide I was using, this correspondence was 40 000 motor steps for 120mm, so that I got 333motor
steps, for 1 mm! (X=333)
Then I chose A, B and C to get this result: what I chose was A=100 (which was the HMI gain), B=1(no changes in
the PLC), and C=10/3(since we can parameter a numerator-10 and a denominator-3 in the Servo). We have:
100 × 1 × 3.333 = 333.33 This is all right for the application.
29
Nicolas JULIEN
School of Electrical Engineering Systems
RATIONNAL
Concerning the Rational project, it was necessary to design the slide for them, and to size the Servo and the
Motor. I used software supplied by Mitsubishi to size it.
Figure 21: Screen shot of the motor sizing software
After sizing the motor, I sent few e-mails to mechanical engineers recommended by David to get a piece of
advice.
At the same time, I was finishing the system for rational, since the PLC was well programmed, the gearing
operating, and all the functions that Rational could need were OK. The only missing thing was a routine to
initialize the system, and a setting page to set for example, the homing routine speeds.
30
Nicolas JULIEN
School of Electrical Engineering Systems
Figure 22: Rational initializing routine
Figure 23: Settings page
31
Nicolas JULIEN
School of Electrical Engineering Systems
ALARMS
Finally, the last step was to program the security, using alarms signals. I didn’t have a real Emergency Stop
button, but a little switch was enough, and frame got two new switches, since the Alarms Servo outputs was
burned out during my tests!
Figure 24: New security switches
32
Nicolas JULIEN
School of Electrical Engineering Systems
PROJECT SECOND PART: WEEK 7
Back from holidays, I’m ready to work twice more!
RATIONAL
The Rational project seems to be dead. I didn’t get any answer from the mechanical Engineers, and David who
was in stress about this project, do not give me information about it. Actually, I did nit ask for information, since
a new project arrived on my desk.
ADAPT
Adapt project started very small, and all I did this week was to test the accuracy of my new metric system slide.
Tests were really good, and I passed to the new project.
MITSUBISHI HUGE MOTOR PROJECT
Back from holidays, I found a new device on my desk, which was composed of a huge motor a independent
encoder, and a big grey box, written “F700 Inverter on”.
Figure 25: Inverter, Encoder
’
33
Nicolas JULIEN
School of Electrical Engineering Systems
Figure 26: Huge motor
My job was to make this system working as a positioning control system, as the other project. But an inverter is
a power control device, made to pilot fan and pumps, at constant frequency. So, a small circuit is made to allow
the Inverter to make control positioning. This circuit welcomes the encoder wire, and as soon as mounted, is
detected by the inverter. The inverter also possesses inputs terminals for “JOG PULSES”, “Direction”, “Servo on”,
etc … This is good news! The system is quite similar to what I’m used to work on.
34
Nicolas JULIEN
School of Electrical Engineering Systems
INVESTIGATIONS
The first step was to try to make the motor moving. This was done after removing the Positioning Adaptation
Circuit. It was possible to control the motor in speed, by controlling the frequency of the supply. I discovered the
really power of this system which can run to 120Hz, more than 2000 rotations / min with a 1kw motor.
Cables from encoder
Position Circuit A7AP
Command terminals
Figure 27: Inverter inside with positioning card
Then, I put again the Position Circuit, and wired the terminals: the Pulses and the Servo On terminals. Using
another FX3U-PLC, with exactly the same program than for Adapt, I could test this new motor. The motor was
jerking and had spasms. Maybe it was due to the coupling between the axis of the motor and the encoder. So I
did it again with iron pieces, instead of heat shrink as it was done when I got it.
35
Nicolas JULIEN
School of Electrical Engineering Systems
Motor axis
Encoder axis
Figure 28: New iron coupling
The jerking problem was not solved, and Ryan Ford, who was initially working on this system before me, told me
that the inverter minimal configuration for the motor power was 0.40Kw, and this motor was 0,18kw. So I
changed it for a 0.38Kw: no changes! I tried to put a load on it: the small motor which was 5kg heavy, and
nothing changed. I was suspecting the encoder, and I asked Ryan about the encoder configuration. Indeed, the
encoder in programmable and it is possible to multiply the base unit by a number between 1 and 16. Ryan Ford
was not sure of the configuration, and had never checked it.
So I looked for a manual that I had a lot of difficulties to find.
Figure 29: Encoder programmable switches
36
Nicolas JULIEN
School of Electrical Engineering Systems
ADAPT PRESENTATION AND HUGE MOTOR: WEEK 8
The eighth week arrived really fast, and the presentation for Adapt Engineering was planned for the next week.
So this week was split between the presentation preparation, and the big motor investigations.
BIG MOTOR
I continued investigations about the big motor, and try to modify the parameters after resetting it all. A long
time was spent to check every 700 parameters of this device: motor specifications, encoder specifications,
speeds, acceleration time, terminal configuration, etc… Moreover, I realized that all parameters for the A7AP
module were in the documentation of the A700 inverter, for which it was made for actually. So I played with the
two manuals to finally conclude that the jerking problem was not coming from the parameter.
Finally I found the documentation of the encoder, and the configuration of the encoder was bad. The
configuration did not have any sense, and I programmed it to a factor of 1, what means 500 steps per rotations.
Figure 30: Switches configuration
This changed everything, and after that it was working really well!
37
Nicolas JULIEN
School of Electrical Engineering Systems
HMI
I had two projects, to PLCs, but only one HMI! And it was not practical to unwire it from a PLC to another, when
changing project. So I made a Plug&Power HMI connector, and this way, it was really easy for me to put the HMI
on the Adapt slide project, or on the Big Motor project.
Both of the project programs were on the HMI, with a menu at the beginning to choose which one to be run. It
was possible to investigate deeper in this new system!
PLC to Inverter
line with plug
Second PLC
Inverter
Encoder to
Inverter line
HMI plug to
PLC power
Inverter to
Motor power
line
Common
HMI
Big motor
Encoder
Figure 31: Big motor project overview
Figure 32: Light interface to control the huge motor
38
Nicolas JULIEN
School of Electrical Engineering Systems
ADAPT PRESENTATION: WEEK 9
On Thursday this week, I will teach for the first time in my life, and I will teach engineers older than me! So I
worked the entire week end long to be ready. I read manuals on more time, and realized that all my PLC
program for Adapt Engineering project was not perfectly executed.
NEW FUNCTIONS
Indeed, I only used DRVI function to generate pulses, but three other functions exist in the PLC. The most
important is DRVA, which execute absolute moves! This function realize a calculation instead of me actually,
since for absolute moves, my program was calculating the difference between the address, and the current
position, before sending the right number of pulses using DRVI. But DRVA does it!
X0
DRVA K4000 K2000 Y0 Y4
Figure 33: DRVA function
This DRVA function sends D8340-4000 pulses, which is the distance from the current position, to the address.
This function is a 10 code line saving, and was implemented quickly.
I also discovered DVIT, which sends pulses until a stop bit is activated.
X0
DVIT K4000 K2000 Y0 Y4
Figure 34: DVIT function
This DVIT function sends pulses to a 2000Hz frequency, and after activating the stop bit, sends 4000 more pulses
before stopping. I didn’t find real application for this function, but it was programmed in the PLC and the HMI
got a page to use it.
Finally, I discovered PLSV, which send pulses without end, with a frequency that I can change during running the
function, what is not possible with other functions. This function is a better solution for JOG moves, since a jog
moves realized with DRVI is in fact limited to 999999pulses, which is huge. But not infinite! So the PLSV
functions were implemented to replace DRVI in JOG moves.
39
Nicolas JULIEN
School of Electrical Engineering Systems
X0
PLSV
D200 Y0 Y4
Figure33: PLSV function
This PLSV function sends pulses to a frequency equal to the value of the D200 data memory. If D200 value
changes, the frequency of the pulses will change to, on the contrary with other functions.
The changeable speed was also used in a funny application which was a piano, implemented on the touch
screen of the HMI.
Run button
Frequency in Hz
Note : DO
Figure 35: Piano HMI interface
A small calculation gave me the frequency corresponding to each note. For example, the first Do is a 33Hz
frequency, so I needed 33 motor rotations per second. With 4000 steps by rotation, the frequency should be
132000 Hz. But the Servo has a 10/3 gearing, so the value of the PLSV frequency is: 40000.
40
Nicolas JULIEN
School of Electrical Engineering Systems
SECURITY
I learned a lot about Mitsubishi programming standard, and security. It exist some bits, specific to each high
speed outputs, which indicate the state of each function.
For example, M8029 is a signal to indicate that the function finished operating. M8340 indicate a busy line, and
M8348 indicates that a function is still active. This last one is a solution to a problem I had, since if two functions
(DRVI for example) are activated at the same time, they enter in a conflict and nothing happen. SO I realized a
new security structure in my programs.
No other function still running
Auto run
Pulses finished
Figure 36: Secure pulse generation
41
Auto stop
Nicolas JULIEN
School of Electrical Engineering Systems
ADAPT PRESENTATION
In addition to the basics, that last information was added to the Adapt Power point presentation I was working
on for a few weeks. I used the beginning of the week to finalize the presentation, and on Thursday I was ready.
William, one of my new students, picked me up in the city center, to the company. I rediscovered all employees,
and we started the class. I was teaching William and Paul, but Colon(the electrical guy), and Jaye, who is more
accustomed to this kind of stuff. After a morning through theory, we passed an afternoon of practicing to
implement a simple system using absolute move, since it is what they are likely to need in their jobs.
Conveyor
Green ball basket
Red ball basket
Figure36: Scheme of the practicing exercise
This practice was about a system to sort color ball. It was possible to simulate it using my frame and the slide,
which were at Adapt Engineering for a few days for the presentation. Using the switches, it was possible to
specify ball detection, and a ball color.
We spent all an afternoon on this application with Paul, William and Colon, but Jaye finished it really quickly,
thanks to his experience.
42
Nicolas JULIEN
School of Electrical Engineering Systems
At the end of the day, we got a problem using the M8029, which we did not solve this day. I only found the
solution in the bus on my way back, what I notified back to them in the evening. Actually, the M8029 bit refers
to the function just over it, and is not a global indicator bit.
The huge motor had been transported to adapt too, and they were really impressed by the strength of this
system. But it was only a quick part of the day.
On Friday, I was supposed to give my second class, but their was really busy, and we had to delay it two weeks
later, what gave me the time to prepare a new presentation dealing with what they asked me to explain :
-
Gearing: all the about the way to determine the gearing and to apply it
-
HMI: they wanted to practice with HMIs, and interfaces
43
Nicolas JULIEN
School of Electrical Engineering Systems
S PROGRAM: WEEK 9&10
On the ninth week, I met Ryan Ford to show him my results with the motor, and to explain him what was wrong.
He noticed that the motor was starting really fast, so that the load which was mounted on it was jerking at the
bottom on the string which was attached to the motor axis. He suggested that I could do a program to control
the start speed, has for a lift. Indeed, with this Servo and this PLC, I can only have acceleration as ramps and
slopes, but I cannot have an “S” acceleration. That was my new goal on this project, and I started on Friday the
9th week, and continued the 10th week.
THEORY
To make an “S” acceleration, I chose a 1/X formula, which was the easiest to implement in the PLC, since we can
only use subtractions, additions, divisions and multiplications. A Sinus or a square root is so impossible to get.
The first program I made was calculating the speed, function to the position. But the position was incremented
every 100ms with a fixed value, so it was more speed function of the time. I understood that 1/X function was
going really close to the zero, whereas 10/X had a much better form to a lift application.
100
90
F(x)=10/X
80
70
F(x)=1/X
60
50
40
30
20
10
0
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Figure 37: 1/x and 10/X formula
44
Nicolas JULIEN
School of Electrical Engineering Systems
As you can see, the 10/X function has an x-offset, and a Y-offset, that pose a problem, because the start speed
will not be 0, and the final speed will be reached to fast! Indeed, I want to use the 10/X function between 0 and
1 (which is the percentage on the acceleration time), and I want the function to rise from 0 to 100 (which is the
percentage of the final speed).
FIRST CHANGES
Notice that for the moment, f (0) =infinity, and f (1) = 0.01, what is absolutely not what I want. I need to change
the function by a vertical mirror, and then to translate it to the right. It is easy using the mathematical
replacement:
𝑋 = (1 − 𝑥 )
Then we can start working on the 10/X function. The 1/X is quit well with this change since we have:
1
𝐹(𝑋) = 𝑋  𝐹(0) = 1 ; 𝐹(1) = ∞  𝐹(0.99) = 100;
So at position 0, the speed will be at only 1% of the speed and the speed will be at 100% at 99% of the
acceleration time, then a limiter will block the speed rise. Offsets are ok. But it is not the same with 10/X:
𝐹(𝑋) =
10
𝑋
 𝐹(0) = 10 ; 𝐹(1) = ∞  𝐹(0.9) = 100;
For 10/X, the start offset is 10% what is to big, and the speed reaches the final value at 90% of the acceleration
time, what is too early. So we need to bring some modification to the formula.
OFFSET TRACKING
The Y offset is 10% of the total, so we remove it.
𝐹 (𝑋) = (
10
1−𝑥 )
− 10
Then we remove the X offset, which is 10% of total.
10
−
1−𝑥 )+0.1
𝐹 (𝑋) = (
10
45
Nicolas JULIEN
School of Electrical Engineering Systems
Now we have a new offset at the top:
10
𝐹(𝑋) = (1−𝑥 )+0.1 − 10  𝐹(0)~0 ; 𝐹(1) = 90  𝐹(1.09) = 100;
So the last action is to multiply everything by 1.1 to get a perfect function.
10
𝐹 (𝑋) = (((1−𝑥 )+0.1) − 10) × 1.1
 𝐹(0)~0 ; 𝐹(1) = 99
Now the function is complete, and it is simple to implement it in a PLC since there is only +, -, / and x.
The only problem is that PLC can not make decimals, and something like 10/9 will be 0!
So, to avoid those problems, any calculation has to be corrected not to have decimals, or insignificant one. The
result of those modifications is:
10𝟎𝟎𝟎𝟎
)−10𝟎𝟎)×𝟏𝟏]
𝑃𝑜𝑠𝑖𝑡𝑖𝑜𝑛 ×𝟏𝟎𝟎
(1𝟎𝟎−
)+𝟏𝟎
𝐴𝑐𝑐𝑒𝑙𝑒𝑟𝑎𝑡𝑖𝑜𝑛 𝑇𝑖𝑚𝑒
[((
𝐹 (𝑋) =
𝟏𝟎𝟎𝟎
STANDARDISATION
Actually, all the offset tracking done can be automated for any x in x/10. So the calculation can be implemented
in the PLC, and the operator could choose the profile he wants. Actually what we have is:
𝐹 (𝑋) = ((
𝐵=
𝐴
100
) − 𝐶) ×
(1 − 𝑥 ) + 𝐵
𝐷
1
𝐴
;𝐶 =
; 𝐶 = 𝐴2 − 𝐵
𝐴
1+𝐵
This calculation has been introduced in the PLC, minding the conditions described before, and an interface has
been developed to visualize the evolution. Last step was to change the increment mode of the position.
46
Nicolas JULIEN
School of Electrical Engineering Systems
TESTS
To test this routine, I needed my HMI to control the PLC of the huge system project. But this was in Adapt
Engineering, and I had to find another way to test it. I used a labs practice system, using PLC FX2N that has not
the positioning functions of the FX3U. So I took a memory to be my position has D8340. When processing on the
real system, the position would have changed with the speed. The more the speed is high, and the more the
position change. But the more the position rise, the more the speed rise, and this is a cycle which rise more and
more! So a linear test was not close to the reality.
A simple modification solved the problem: instead of increasing the position of 200 steps each 100ms, I added
10% of the speed, every 100ms.
It is easier to understand with a 1s operation; the speed, is actually the frequency of the pulses. Si if the speed is
2000Hz, every second, the position increase by 2000 steps. To have something closer to the reality I chose a 0.1s
operation. But this is still a system. The real one will be continuous.
Position
Address
Acceleration
Limit
Speed
Profile
coefficient
Minimum
speed
Maximum
Speed
Figure 38: HMI figure with speed and position
A minimum speed has been introduced since at position 0, the speed is 0 and so the system is blocked !
47
Nicolas JULIEN
School of Electrical Engineering Systems
FINAL PRESENTATION: WEEK 11
On the 11th week, I made a second presentation to adapt engineering. This presentation was a complement of
the first one, according to their demand. So I explained the problem we got with the M8029 bit again, to be sure
that every thing was understood. I also presented E-Designer program and all the possibilities of the HMIs, and a
training course about the gearing.
To practice, we used a concrete system: my slide was back to the DIT, but they mounted a rotary system used
position a frame, or tool. It was really interesting since the gearing was not in millimeters, but in degree, and we
were working on a totally new system for everybody.
Gearing investigations were well done, and HMI and PLC programs were realized in the afternoon to control the
angle of the rotary plate. Every seemed to appreciate this practice exercise.
Spinning part
Input axis connected
to the motor
Fixed part with
graduations
Figure 39: Rotary plate used in the training
REPORT: WEEK 11&12
The last two weeks were dedicated to the report writing. A lot of documents were produced during the project,
and this way, I only needed two weeks to finish it. All you read until here was written before this line, and all
that follows is not clearly defined for the moment, but I hope it will be interesting!
The report writing took a lot of time, and it was important to start it early. I’m glad to have prepare all my
pictures before.
48
Nicolas JULIEN
School of Electrical Engineering Systems
SCHEME OF THE CHRONOLOGICAL SEQUENCE OF EVENT
Figure 40: Chronological sequence of events
49
Nicolas JULIEN
School of Electrical Engineering Systems
TEACHING SYNTHESES
The two presentations I made in Adapt Engineering needed a lot of preparation. It was the first time for me that
I was teaching, and I was not teaching to anybody, I was teaching engineers older than me, and I was teaching
Jaye Renehan which is, to me, a really good programmer. So I was a bit in stress to the idea of such a class.
FIRST PRESENTATION
The first presentation was about basics in Servo Control. I made a complete presentation of what I learned
during 10 weeks, and that was an easy part since I was like them a little time before. So I remembered which
points were difficult for me to understand, and I prepared the most visual presentation as possible. This
morning of theory passed really fast and every one seemed to understand what I said: what a surprise! I
answered few question, my audience was really dynamic, asking questions when I was not clear, and everything
went well since any interrogation was interesting.
I also prepared a practice exercise that I had not tried to solve before. The afternoon was dedicated to this
exercise. I told them to do it in ladder programming because they were beginner in PLC programming. Jaye, who
is not a beginner for a long time, finished his really fast, and solved a problem a got in DIT! I really impressed,
and proud of my student! Others spent all he afternoon, and we got serious problems with a bit M8029. We
tried to solve and understand it all together without success. But this failure was a really good practice time, and
we got closer.
After a long day, and some problems, I thought that I had a good audience, really skilled, and that I could make a
better practicing the next time. Everyone seemed to appreciate this day, except Colon, who was encountering
more difficulties than others: what’s more normal, two other guy are from the IT generation.
SECOND PRESENTATION
As they asked me, the second presentation was centered on HMI programming. After a short introduction about
the last time problems, we spent a morning discovering E-Designer Software, and theory about gearing. As
usual, the afternoon was dedicated to the practice, and a new rotary device was experimented instead of the
usual slide. HMI interface involve PLC programming, and this exercise was really complete since we worked with
the Servo the Motor (gearing), the PLC and the HMI. A small application, a bit harder than the previous was
executed quit fast by everybody. Except Jaye who made extra work of course! William was really involved is this
class, and asked a lot of questions. And I finished with Paul, on a high level HMI interface design, which was
using most complicated HMI visual effect, and involved PLC calculation too. It was an occasion to talk about
50
Nicolas JULIEN
School of Electrical Engineering Systems
problems with divisions in a PLC. As usual, I discovered new things with Jaye, especially about DIV operation in
PLCs.
TEACHING CONCLUSION
Those two days were really gratifying since I felt that my audience appreciated my class. They were really
focused, and all their questions and interrogations were a real motor for the discussion. Moreover, all practicing
exercises were made by themselves, function of the type of job they wanted to do. For my first teaching, I think I
had the best students I could have: interested, focuses, hard workers, and skilled. But over the professional
aspect, I went closer from those guys, and it was almost a pain to let them.
From an experience point of view, this class was an excellent exercise for me, since I hope to work later, in a
domain were I will meet people. Teaching is a great experience, and even if schools are not my likes, a
professional demonstrator could be an interesting way. Has Ryan Ford is doing in a sense.
What was important was not really me, but especially Adapt Engineering Employees. David Berber made an
assessment form to get a feedback from them, and let us know what could be improved, and where the
demonstration should have been brought. A really good feeling came back, and they really appreciate my
presentation, and thought that I transmitted them a really good knowledge, useful for their future projects.
All assessment forms, from Jaye, William and Paul are in the appendix.
This partnership went so well, that I was working for them as a web designer few weeks after, and Jaye offered
me a job in his company! I had to refuse since I still have a studying year in France before my diploma!
51
Nicolas JULIEN
School of Electrical Engineering Systems
PROJECT REFLEXION
This project was a good experience of what an engineer job is. Indeed, last year, in France, I had a project too,
but it was all the year long, in parallel with class, and only one day per week. Here I was working as in my job,
and I had to plan my work efficiently to realize my project on time.
WHAT I LEARNT
I realize with this project, that an automation engineer project does not deal exclusively with automation.
Indeed, the first part of my project was about wiring two devices with inverse electronic logic. I had never heard
about Sink and Source before, NPN and PNP transistors were far away in my memory, and more than
everything, I hated electronic. I was close to give up, but David Berber told me that is was part of the job to do
things we do not like, and to learn news things we don’t want to hear about, because an engineer has to adapt
himself to any situations.
Then, every thing went well since it was automation programming, and I like it! But I spent 10 weeks on my
programs, and each day I was making it better, with time to time, a huge change. What I understood about this,
and from Adapt Engineering people, is that a project is never finished, and that it is always possible to improve
it. The only thing that stops the project evolution is the dead line. And a project is never really finished when
released.
In a more common point of view, I learnt a lot about Servo Control, and that is not a surprise! But it is important
because I really liked this part of automation, and it comforted me in my studying way, since I have a fifth year
to accomplish in France, and one of the options is automation, that I’m sure to choose now.
PROBLEMS
I did not encounter so many problems during this project, except wiring at the beginning. I tried to solve this by
myself, but it was time consuming and exhaustive. When this kind of problem happen, it is always possible to
receive help from a qualified person. And it is really important for an engineer to be in contact with
professionals in close domains, and in his own domain to exchange tips and information. It is this way I
discovered PLC functions with Steven, or changed approaches with Ryan.
My project was quite different from other project, and with no real objective to reach, the problems were
becoming interesting points for my presentation, because of their complexity. The famous M8029 bit was one of
those critical points. I spent a lot of time in Adapt trying to solve it, and maybe killing my reputation because of
52
Nicolas JULIEN
School of Electrical Engineering Systems
this failure. But by finding the solution, I put an accent on this particular case, that a normal presentation would
have made them missing the complexity of this bit.
AFTER WORK REFLEXION
Now that the deadline arrived, and as a told previously, I still have some modification and regrets about the
project. Would like to spend more time on the function, to realize more complicated applications! What I really
regret is not to spend more time in Adapt Engineering. I think that the two days I realized were to shorts, and 2
or 3 extra classes would have been better for the understanding. I think about homing routines and
implementations of the limits that we didn’t get the time to study, and that William and Paul noticed in their
assessments.
Everything I done was well done I think, and because of the nature of the project, the constant evolution of my
programming style was obvious. What I would d better could be the wiring, that I didn’t realized the better I
could, since I was becoming crazy about it, and then, time was missing.
If I had 4 weeks more, I would realize a more professional execution of the manufacturing, on a more complex
and complete application, to evaluate the real potential of the system.
CRITICAL ASSESSMENT
The demonstration application I realized was quite sufficient I think to make the demonstration to Adapt
Engineering. The programs I developed on the PLC and on the HMI was giving a really good idea of the
possibilities, and was flexible enough to be used as practice stuff. I’m proud of this demonstration kit, even if the
manufacturing could be better.
About the teaching in Adapt Engineering, I’m glad about what I did, and the moments I spent with those guys.
I’m really happy about those teaching days, and the feedback was really good. It seems that my presentation
gave them an important knowledge in the domain, that they will use in the future to Adapt Engineering, and
improve their future machines.
Moreover, after this partnership, I stayed close to the company as web master for their new website (personal
hobby), and I had a proposition for a job in the company, what let me think that they really appreciate my
demonstration.
53
Nicolas JULIEN
School of Electrical Engineering Systems
DESIGN FILE
Adapt PLc and HMI code evolution........................................................................ Error! Bookmark not defined.
Rational PLC and HMI programs ............................................................................ Error! Bookmark not defined.
Big motor PLC and HMI program ........................................................................... Error! Bookmark not defined.
Adapt praticing files ............................................................................................... Error! Bookmark not defined.
54
Nicolas JULIEN
School of Electrical Engineering Systems
ADAPT PLC AND HMI CODE EVOLUTION
VERSION I
Figure 41: Initializations
55
Nicolas JULIEN
School of Electrical Engineering Systems
Security bit
Servo on command without security
Servo on command without security
Relative move using DRVI: OK
Direction commanded independently: BAD
Checking all moves needing backward command :
Relative backward
Jog (hold jog) backward
Homing (backward moving)
Forced jog for debug
Absolute move with backward detected
Figure 42: Security, Relative moves and direction
56
Nicolas JULIEN
School of Electrical Engineering Systems
Detecting JOG- comand, and hold system
Jog command using DRVI : BAD
Bit for the HMI : could be better
Homing start
Homing moves functions
of
the
state
in
the
Graphset : same speed
for all
Figure 43: Jog move and homing implementation
57
Nicolas JULIEN
School of Electrical Engineering Systems
VERSION II
Better security
Better security
If not ready, Servo on reseted
Serv on on only when ready : no alarms
Direction still indpendent : BAD
Memory of the last move
direction, necessary for the first
version of postion memory
Figure 44: Second version
58
Nicolas JULIEN
School of Electrical Engineering Systems
Different displacment and speeds for each step
Unique DRVI using D1000 D2000 ; I’m only
moving
displacment
buffers D1000
and
(displacment)
speed
and
in
D2000
(speed): BAD
Detection of a move
59
Nicolas JULIEN
School of Electrical Engineering Systems
Calculation of the distance
for absolute move : BAD
Backward move calculation
Buffers asgnation
Signal for a move
This part of the program calculates the displacement for absolute moves. Actually, a function does it in the PLC,
but at this moment I didn’t know that.
60
Nicolas JULIEN
School of Electrical Engineering Systems
This part of the program was calculating the position, using D8340. But since I was not using correctly the PLC’s
function (backward commanded by the program), D8340 was only increasing, and was not usable for this
application. Here, at each moment, this program calculate the current position.
Capture current position incrementer
Calculate difference with previous value
If forward move : add
If backward move : substract
Compare difference to 0
Then move current it in last postion memory
If position finished and differnce =0, then
reset all moves
I had a lot of problems with this way of doing things, but I succeeded. The next version of the program will
integrate a correct use of the PLC functions (introducing negative displacement to decrease the PLC position
counter D8340), no more independent command of the direction.
61
Nicolas JULIEN
School of Electrical Engineering Systems
Finally, at the end of the program, a simple DRVI function was performing all the work. Indeed, in the first
version, there was a lot if DRVI functions everywhere and some of them were entering in conflicts. Si I decided
to put only one, with common buffers to put the value of the displacement and speed into.
Global security
Security by pass for homing and debug
All move signals
This way of implementing the program was solving a lot of problems at this moment. It could be a solution to
program everything, but a better use of the security provided by the PLC, that I did not used until here, will
allow a clearer code.
62
Nicolas JULIEN
School of Electrical Engineering Systems
VERSION III
Inverting the displacment : good
Still using a unique DRVI function
Inverting the displacment : good
This version integrates negative displacement, which allows a better use of D8340 since now, it is directly the
current position. The calculation is still done by the PLC for absolute moves but the final version will integrate
security and correct use of the functions.
63
Nicolas JULIEN
School of Electrical Engineering Systems
VERSION IV
Just before the first Adapt presentation, I discovered a lot of things about the PLC FX 3U pulses generation:
security and correct use of the function.
Here is the final clear code, corresponding to Mitsubishi standard recommended in the FX3U manual. It was
hidden in the 900 pages of this HUGE manual!
Power on
Reset Speed and Position used by HMI
Power on, or back from servo off
Reset all graphcet steps
Reset all memories
Set first step of the graphcet
Reset the status display memory
Reset the current address memory of the PLC
Reset the stopping bit of the DVIT function
Configure DVIT function
DVIT configuration option
Figure 45: Final Program initialization
64
Nicolas JULIEN
School of Electrical Engineering Systems
Checks limits on the slide
Check alarms: E-stop and Servo
Check if all is OK to be ready
If ready, Servo ON bit is turned ON
Bit for HMI display
Turning on the SERVO ON output
Figure 46: Complete security checking
65
Nicolas JULIEN
School of Electrical Engineering Systems
Start signal
No other function running check
Auto Run
Stopping
Function finished
Servo move finished
Function failed
Inverting displacment
Figure 47: Relative move
Forward command : M10
Displacment : D100
Backward command : M11
Speed : D200
Figure 48: Relative move page
66
Nicolas JULIEN
School of Electrical Engineering Systems
Same security structure than before
Use of DPLSV for JOG move
Figure 49: Jog programming using DPLSV
Jog backward: M21
Jog forward: M20
Speed : D200
Figure 50: JOG moves HMI page
67
Nicolas JULIEN
School of Electrical Engineering Systems
Figure 51: Absolute move program using DRVA function
Here we can notice that it is the only line necessary to program an absolute move. The use of DRVA and the
correct use of all other functions to get a correct current position in the PLC (D8340) is a real progress. We don’t
need any calculation no more!
Start button : M50
Current address: D8340
Speed : D200
Address: D500
Figure 52: Absolute move HMI page
68
Nicolas JULIEN
School of Electrical Engineering Systems
Figure 53: new functions implementation
This is a real simple implementation of the two functions I discovered before the Adapt Presentation. I wanted
to test before talking about them. A really simple HMI device was developed too.
Start button: M66
Stop PLC memory
Run button: M67
Pulses : D666
Speed : D668
Speed : D200
Figure 54: PLSV and DVIT HMI pages
69
Nicolas JULIEN
School of Electrical Engineering Systems
Figure 55: Piano code
This is the code to command the Piano application. Actually I used a DPLSV function which allows the operator
to change the frequency of the pulse generation even if the function is running. So, a DPLSV function was
launched using the memory D668 has frequency speed, and the buttons of the touch screen were changing the
value of the speed. (M1000 for a Do).
On button: M68
Frequency
DO : M1000
RE : M1002
Figure 56: Piano HMI page
70
Nicolas JULIEN
School of Electrical Engineering Systems
RATIONAL PLC AND HMI PROGRAMS
Rational project had not specific PLC program, since they needed only absolute positioning. Only an HMI
program was dedicated to the initialization, and a small piece of code of the PLC was commanding the display.
Control Start button appearing
JOG tool appearing
Figure 57: Rational interface program
Actually the D9 memory is used by the HMI to display the good message. This was incremented on each push on
“Start” or “Next” button. Function of this variable, some objects were appearing.
M72
Object : jog tool
Display
M71
Figure 58: HMI interface
71
Nicolas JULIEN
School of Electrical Engineering Systems
BIG MOTOR PLC AND HMI PROGRAM
Figure 59: Calculation to get the percentage of the final speed function of the position
Figure 60: Big motor HMI screen
72
Nicolas JULIEN
School of Electrical Engineering Systems
Figure 61: Calculation to get the parameters of the correction parameters function of the A of A/x
73
Nicolas JULIEN
School of Electrical Engineering Systems
ADAPT PRATICING FILES
Figure 62: Second presentation in adapt: practicing HMI
74
Nicolas JULIEN
School of Electrical Engineering Systems
APPENDIX
Servo Motor Project Log ........................................................................................ Error! Bookmark not defined.
Adapt first presentation Power Point .................................................................... Error! Bookmark not defined.
Adapt Second Presentation Power Point ............................................................... Error! Bookmark not defined.
Assessments from adapt ........................................................................................ Error! Bookmark not defined.
75
Nicolas JULIEN
School of Electrical Engineering Systems
SERVO MOTOR PROJECT LOG
Week 1
Monday 4th February:
• Morning
-
Reading manuals
• Afternoon
-
Discovering the project with D. B.
Discovering hardware
Software’s setup
Listing of component to be ordered
Tuesday 5th February:
• Morning
-
Wiring Power Supply
Running motor using servo controller
• Afternoon
-
Wiring PLC as source
Testing fallen unit with Rémi
Testing PLC FX3U inputs and outputs
Reading MR-C Manuals
Wednesday 6th February:
• Morning
Wiring CN1 connector
Reading MR-C manuals
Playing with PLC
• Afternoon
-
Soldering and Wiring
Emailing Mitsubishi for connection PLC  Servo
76
Nicolas JULIEN
School of Electrical Engineering Systems
Thursday 7th February:
• Morning

Trying controlling Servo via PLC without success
Output always on ???
• Afternoon

Trying getting inputs from Servo
No success
Friday 8th February:
• Morning

0), and

Wiring again : succeed to control servo via PLC :
because of PNP NPN incompatibility, connect servo pin (ex: SON) on V0+ (com
connect 0V on Y0 (inverse as usual)
so we can use only one output for each COM
(FX3U 48M = 5 outputs)
• Afternoon


Wiring inputs : succeed to get servo outputs (ex: ALM)
Sink : no problem (V+= 0v / ALM=X0)
Source : possible (V+ = X0 / ALM=24v) but we can use only one input
Need more investigations to confirm this way of functioning
77
Nicolas JULIEN
School of Electrical Engineering Systems
Week 2
Monday 11 February:
• Morning
-
Wiring all from the beginning
• Afternoon
-
RUNNING THE MOTOR ! ! !
Doing a routine in SFC
Tuesday 12 February:
• Morning
-
Killing my laptop
• Afternoon
-
Recovering my laptop (thanks Lord)
Soldering a specific serial cable for HMI
Control SON and motor through the HMI (basic HMI program)
Wednesday 13 February: (going in France)
• Plane, Train, Bus
o
o
o
o
Designing HMI bocks and PLC programs for :
Manual relative displacement
Manual absolute displacement
Jog
Homing
Thursday 14 February: (coming back in Ireland)
• Plane, Train, Bus
-
Writing preliminary report summary
• Afternoon
-
Meeting a Mitsubishi electrical engineer helping for wire problems
Implementing relative displacement in PLC and HMI
78
Nicolas JULIEN
School of Electrical Engineering Systems
Friday 15 February:
• Morning
-
Writing log of the week
Begin writing preliminary report
• Afternoon
-
Implementation of new HMI functions : jog, home search
Checking materials for : boarding system/protecting resistors
Week 3
Monday 18 February:
• Morning
Try converting 0 logic to positive logic using resistor, following Mitsubishi’s
advises : no success
• Afternoon
Implementing low speed rotation to experiment jerking problem : solving
problem for Adapt Engineering
Start the board for the system.
Tuesday 19 February:
• Morning
-
Finishing the board + frame
Testing more resistors to convert outputs logic : no success
• Afternoon
Attaching motor to the board
Installing GX Developer and E-Designer on my laptop : problems to use the
USB to Serial interface
Wednesday 20 February:
Ill
Reading MRJ3A manual
79
Nicolas JULIEN
School of Electrical Engineering Systems
Thursday 21 February:
• Morning
-
Reading MRJ3A manual
Debugging system (backward blocked in “manual” bloc on HMI.
Preparing Friday’s visit: test scope.
• Afternoon
-
Thanks to Ryan! Inputs are working (except ALM which is dead …)
Week 4
• Planned
-
Finishing wiring (yes!)
Introduce interrupters to simulate dog and limits
Create new program to use inputs :
o Zero positioning
o Positioning finished
Set the slide (if received)
Take a look to FX3U documentation to find more precisions about pulse generator
(find the counter of current pulsations sent)
Monday 25th February: (low work day)
• Day
-
Finishing wiring of inputs on the PLC (soldering, connecting)
Programming a “zero return” function
Testing pulse lost :
o NO PULSES LOST!
o Perfect zero return after 60 rotations:
 Small length of wire
 No load
Use the “operation finished” to make a better relative positioning mode (one
press to execute, do not require to keep the button pushed until accomplished)
Thursday 26th February: (low work day)
• Morning
-
Get the slide, and change the motor
Wiring limits and dog
Attaching the other slide
80
Nicolas JULIEN
School of Electrical Engineering Systems
• Afternoon
o
o
o
Programming :
Absolute moves
Errors
Homing
Thursday 26th February: (low work day)
• Morning
Redo the HMI interface : new design more clear, with standard toolbar on
the top
Direct link to ‘Debug’ and ‘Home’ pages when necessary to use it (Limit hit,
or Homing not done)
• Afternoon
Programming current position still available : problem all afternoon long
(thanks to M8340)
Week 5 & 6 (data lost because of my hard drive lost)
Meeting with Steven and conversation about the use of DDRVI !
Change all the positioning calculation control  now DDRVI is used correctly
Meeting with Ryan and conversation about using source output of the PLC with sink input
of the servo  really nice!
Design the motor and the slide for Rationnal.
HMI interface redesigned in mm instead of pulses.
Introducing gearing:
1/100 from HMI  PLC => 1mm = 100 IU
10/3 from PLC  Servo => 3 pulses PLC = 10 step Servo Motor
12 mm = 1 rotation = 4000 pulses
1 pulse = 0,003 mm
1 mm = 333 pulses
Designing a routine to make the zero in the Rationnal Project
81
Nicolas JULIEN
School of Electrical Engineering Systems
Introducing an offset in homing operation
Realise the wiring of Alarm and Emergency Stop
Program Alarms in PLC and HMI
Redesign the “Settings” page on the HMI
Week 7
Monday 31st March
• Afternoon
-
Just pass at DIT
Tuesday 1st April
• Morning
-
Setup the motor on the slide
• Afternoon
o
Test measurement of the new program in mm:
1/10mm false on 400mm : possible to correct
Wednesday 2nd April
• Morning
-
Work at home on presentation for Adapt
• Afternoon
-
Discover new device :
Huge motor
F700 inverter
Make it move : need to remove the encoder card in the inverter to access the
PU mode …???
o
o
Thursday 3rd April
• Morning
82
Nicolas JULIEN
School of Electrical Engineering Systems
off)
-
Make the motor move in PU mode (need to take the positioning module A7AP
Begin to wire everything, control by PLC
• Afternoon
Make the motor controlled by plc: need to allocate specific terminals LX, JOG
and NP. Need STR STF
Motor spasm? Try to fix it by configuring the inverter
Ryan arrived to help, motor is to small fir the inverter, let’s try with a new
bigger one !
Friday 4th April
• Morning
-
Change the motor
• Afternoon
Finish to change the motor, try to find documentation about encoder without
success
Week 8
Monday 7th April
• Afternoon
-
Try to modify parameters to solve the jerking problem of the motor
Tuesday 8th April
• Morning
-
Looking for an answer to the jerking problem of the motor
Try to put a load (an other motor almost 5 kg) : quite better
• Afternoon
well !
-
Find the manuals for the encoder, and reconfigure it (badly configured: work
Try it with the load : excellent
Wednesday 9th April
• All day
-
Work on the presentation for adapt engineering
83
Nicolas JULIEN
School of Electrical Engineering Systems
Thursday 10th April
• Morning
-
Work on the presentation
• Afternoon
-
Make a plug to power the HMI on the two PLCs
Friday 11th April
• Morning
-
Work on the presentation
• Afternoon
-
Make a HMI program to control the motor
Saturday/SUnday
Presentation
Week 9
Monday 14th April
• Morning
-
Arrive from France
• Afternoon
-
Use Mitsubishi standard to code the PLC and use new functions
Debug
Tuesday 15th April
• Home Day
-
Worked on presentation
Worked on programs
Wednesday 16th April
• Morning
84
Nicolas JULIEN
School of Electrical Engineering Systems
-
Test programs and debug :ok
Make a new page to practice memories for adapt
• Afternoon
-
Worked on presentation
Thursday 17th April
• Morning
-
Make the presentation in Adapt Engineering
• Afternoon
-
Practice time in Adapt Engineering
Some problem with M8029 : solved in the evening
Friday 18th April
• All day
-
Next presentation
Try to create the S program
Saturday 19th April
• Morning
-
Try to operate the S program : ok but messy
Week 10
Monday 21st April
• Morning
-
Off
• Afternoon
better
Realise calculation for the S acceleration program and test on FX2N : can be
Tuesday 22nd April
• Morning
85
Nicolas JULIEN
School of Electrical Engineering Systems
Finished programming S Program code it for FX3N and PLSV motor speed
control
• Afternoon
-
Get better programming by using only the second part of the curve
Wednesday 23rd April
nothing
Thursday 24th April
nothing
Friday 25th April
nothing
Week 11
Monday 28th April
Preparing Tuesday presentation
Tuesday 29th April
Presentation in Adapt Engineering Limited
Wednesday 30th April
Documents gathering
Thursday 1st May
Day off (working on Adapt web site)
Friday 2nd May
Starting report
Saturday May
Take advance for Monday
86
Nicolas JULIEN
School of Electrical Engineering Systems
Week 12
Monday 5th May
Public day
Tuesday 6th May
Report writing
Wednesday 7th May
Report writing
Thursday 8th May
Report writing
Friday 9th May
Report writing
87
Nicolas JULIEN
School of Electrical Engineering Systems
ADAPT FIRST PRESENTATION POWER POINT
88
Nicolas JULIEN
School of Electrical Engineering Systems
ADAPT SECOND PRESENTATION POWER POINT
89
Nicolas JULIEN
School of Electrical Engineering Systems
ASSESSMENTS FROM ADAPT
90
Nicolas JULIEN
Download