Sample ECE Project Report
Sample ECE Project Report
Submitted by
MAY 2024
BONAFIDE CERTIFICATE
Place: Chennai
Date:
Vinitha Lea
Philip
[RA1511004010059]
Pooja
Anand
[RA1511004010107]
ABSTRACT
In this work, we are bringing the current trends in the field of data exchange
in manufacturing to the Computer Numerical Control (CNC) machine in a
cost- effective manner. To achieve this, we program in Python language in a
modern board (raspberry pi). The parameters to be monitored are
preselected. Using this as a guide the program is written in Python
language. Display screens have been designed using Graphical user
interface (GUI) which helps the user to analyze the machine in real time.
The objective of the project is to reduce downtime, thereby increasing
efficiency and in turn profitability.
We express our deepest gratitude to, our parents, Teaching and Non- Teaching
faculties for their sustained encouragement, and constant support throughout my
studies.
TABLE OF CONTENTS
ABSTRACT iii
ACKNOWLEDGEMENTS iv
LIST OF FIGURES ix
ABBREVIATIONS x
1 INTRODUCTION 1
1.1 Industry 4.0..........................................................................................1
1.2 Brief Description of Project.................................................................1
1.3 Literature Survey.................................................................................2
1.3.1 An Industry 4.0-enabled Low Cost Predictive Maintenance
Ap- proach for SMEs..............................................................2
1.3.2 Real-Time Manufacturing Machine and System Performance
Monitoring Using Internet of Things
................................................................................................
3
1.3.3 Development of a Cloud-Computing-based Equipment
Moni- toring System for Machine Tool Industry
................................................................................................
3
1.3.4 Investigated Information Data of CNC Machine Tool for
Estab- lished Productivity of Industry 4.0..............................3
1.3.5 Smart Factories in Industry 4.0: A Review of the Concept and
of Energy Management Approached in Production Based on
the Internet of Things Paradigm.............................................4
2 METHODOLOGY 5
2.1 Hardware Design.................................................................................5
2.1.1 Raspberry Pi 3........................................................................6
2.1.2 Sinumerik CNC......................................................................6
2.1.3 I/O Module..............................................................................6
2.1.4 Relay.......................................................................................7
2.2 Software Design..................................................................................7
2.2.1 Python 3..................................................................................7
2.2.2 PySimpleGUI..........................................................................7
2.2.3 Tkinter.....................................................................................8
2.3 Parameters............................................................................................8
2.3.1 Machine Operating Mode: Auto/Manual................................8
2.3.2 Part Program Running: Yes/No..............................................8
2.3.3 Cycle Time..............................................................................8
2.3.4 Part Count...............................................................................8
2.3.5 Feedrate Override...................................................................9
2.3.6 Spindle Running Time............................................................9
2.3.7 Breakdown Hours...................................................................9
2.3.8 Machine Running Hours.........................................................9
2.3.9 Machine Ready Time..............................................................9
2.3.10 Machine Utilization Hours......................................................10
3 IMPLEMENTATION 11
3.1 Experimental Setup..............................................................................11
3.2 Program logic for parameters..............................................................12
4 RESULTS AND DISCUSSION
4.1 Machine Utilization Dashboard...........................................................12
4.2 GUI Display Screens...........................................................................13
A PROGRAM CODES
A.1 Parameters . . . . . . . . . . . . . . . . . . .
.
35
.....................35
A.1.1 Machine Operating Mode: Auto/Manual................................35
A.1.2 Part Program Running: Yes/No..............................................35
A.1.3 Cycle Time and Part Count.....................................................35
A.1.4 Feedrate Override....................................................................36
A.1.5 Spindle Running Time............................................................37
A.1.6 Machine Running Hours, Breakdown Time and Machine
Utilization Percentage
................................................................................................
38
A.1.7 Machine Ready.......................................................................39
A.2 Program Code For GUI.......................................................................40
A.3 Program Code For Parameter Comparison Bar Graph........................51
A.4 Program Code For Machine Utilization Bar Graph.............................51
A.5 Comparison of Breakdown Time with respect to Total Machine Run
Time
.............................................................................................................
52
LIST OF FIGURES
4.3 Months.................................................................................................19
4.7 Parameters............................................................................................21
ix
4.15 Part Count Graph.................................................................................24
4.16 Feedrate Override Graph.....................................................................25
x
ABBREVIATIONS
I/O Input/Output
xi
CHAPTER 1
INTRODUCTION
. Industry 4.0 is the fourth industrial revolution. It focuses on cyber physical systems,
the Internet of Things, cloud computing and cognitive computing. This brings fourth
smart factories to the industrial world. Industry 4.0 has four design principles which
include: Interconnection, Information transparency, Technical assistance and
Decentralized decisions. In our project we will be focusing mainly on the information
transparency. Transparency is one of the key aspects as it allows the operators to take
well informed decisions based on the data provided. Thus aiding functionality and
helping the operators identify the key areas for improvement and thereby increase the
utilization. Large and successful companies will easily implement cloud based
solution. Small (proprietor) type companies, cannot afford such high initial cost. So
we have decided to create a affordable solution for such companies using hardwiring.
With the IoT gaining importance, this has become one of the most important use cases
for the Industry 4.0. The IoT has made information easily available and accessible.
For many small business owners, the adoption of IoT may seem like a daunting
challenge. In reality, there are many ways small businesses can take advantage of IoT
right now. The solutions that are available today are not really economically viable for
small and medium scale enterprises. These systems require very expensive and time-
consuming machine integrations, with software that is difficult to use. This prevents
them from adopting these methods because their return on investment takes a longer
time. Our mission is to help manufacturers increase production efficiency
(availability, performance, and quality) by simplifying machine monitoring.
We need to make small and medium enterprises to embrace IoT in a big way. These
enterprises look for the following: cost should be reasonable, the technology should
be
easy to use without any specialist knowledge or having to hire someone with special
skills, it should be easily available, and the results should be accurate and must help
them save or recover money faster. Our project is aimed to develop a solution that
will help small and medium businesses achieve the above objectives.
Sezer et al. (2018) outlines the base concepts, materials and methods used to develop
an Industry 4.0 architecture focused on predictive maintenance, while relying on low-
cost principles to be affordable by Small Manufacturing Enterprises. In this paper,
they have developed a low-cost, easy-to-develop system architecture that measures
the temperature and vibration variables of a machining process in a Haas CNC turning
centre, while storing such data in the cloud.
Chang and Wu (2016) discusses on how the controller tuning operation can change
the information data of a CNC machine tool. In this way established productivity of
indus- try 4.0 is investigated. A cloud network is provided to give connectivity to the
responses of tuning operation. This helps in share the big data, to support decision
making, and to adjust operations in real time. Thus it helps in checking the CNC
machine tool for smart productivity based on its tuning operations.
METHODOLOGY
In our project, we will be monitoring the Sinumerik CNC with the help of a rasp-
berry pi and thereby showing the machines utilization patterns. The process of mon-
itoring is first started by selecting the list of parameters to be monitored. Once the
parameters are selected, we program the raspberry pi. The raspberry pi is programmed
with the help of the programming language python with respect to the requirements.
Then the raspberry pi is hardwired to the Sinumerik CNC in order to collect the re-
quired data over a specified time period. After the data is collected by the raspberry pi
we collate and display the data. The data is viewed on display screens in the form of
graphical representations. Thus this method helps in providing better transparency and
offers a platform for development for the small industries in this field.
2.1.1 Raspberry Pi 3
The entire project centres around the Raspberry pi. We will be monitoring the Sinu-
merik CNC with the help of a raspberry pi.The version we are using is Raspberry pi 3
Model B. It is economical and has built-in wireless connectivity. It is a mini computer
that runs on Linux platform and provides us with GPIO (General Purpose
Input/Output) pins. It has many ports which can be used with ease. We can easily
connect and control electronic components for useful computing. We are using
Python language to code the raspberry pi.
A CNC (Computer Numerical Control) is a device used for material removal to get
desired parts/components. The Sinumerik CNC 828D is basically the NC Kernel with
a built-in PLC in the front which is connected to an I/O card. In manual control, the
operators have to physically prompt the required commands of tools via buttons,
leavers and wheels. All these limitations are overcome with the help of the CNC. On
activating the CNC, the program starts executing and the desired cuts are performed
by the corresponding tools which carry out the tasks like a robot. The part program
outlines the placement of the tool in the CNC. This can be used to control many
complex machinery including mills, lathes and grinders.
The Sinumerik CNC 828D is basically the NC Kernel with a built-in PLC in the front
which is connected to an I/O card. The various parameters that have to be monitored
are taken as output from the CNC and given as input to the pi via the I/O card. The
I/O module is used to connect digital and analog inputs/outputs. The SINUMERIKI/O
Module is PP 72/48D 2/2A PN. It has 72 digital inputs and 48 digital outputs. The
digital output is connected to a relay board.
6
2.1.4 Relay
In our project we need to connect the pi to a module with a higher voltage. Relays are
used to avoid the risk of the raspberry pi burning out. The raspberry pi can only
handle up to 5V and the GPIOs can tolerate only 3.3V without relays. Relays have
two main contacts NO and NC.
Normally Open Contact (NO) - It closes the loop when the relay is switched on and
breaks the loop when relay is switched off.
Normally Closed Contact (NC) - It opens the loop when the relay is switched on and
is hence known as the break contact. It disconnects the circuit when the realy is
inactive.
We use the softwares python 3, PySimplyGUI and tkinter for programming the rasp-
berry pi to create screens for GUI and real time dashboard. We have created a
realtime dashboard to provide the live status of the production status. The real time
screen hasa history button which when selected displays the past data of the
machineparameters.
2.2.1 Python 3
Python is designed in such a way that it is highly readable. Python is processed by the
interpreter at runtime. The program does not need to be complied before executing it.
2.2.2 PySimpleGUI
7
2.2.3 Tkinter
2.3 Parameters
The CNC machine acts like a standard machine in manual mode. When the machine is
in manual mode the operator can push buttons, turn wheels, and turn switches on or
off. In Auto mode, we execute our program. It allows us to see the commands
executed as they happen.
The set of instruction by which we can produce a part is known as part program and
we can check the CNC program.
The time taken to finish a production run by the amount of fine work pieces produced.
Small size businesses benefit most from reductions in Setup time while large size
businesses benefit most from reductions in Cycle time.
The number of parts that have been produced. It is monitored only when it runs in
auto mode.
8
2.3.5 Feedrate Override
The spindle running hours is defined as the percentage of available time that a
machines spindle is on. The related custom macro program is executed whenever the
spindle is turned on(commanded by M03 or M04).
The breakdown hour is the amount of time when a system is unavailable or of time
that a system fails to perform its primary functions. A breakdown can occur when the
equipment stops its functioning due to power loss.
The machine running hours is the working of a machine for an hour. This is used as a
basis for cost finding and for determining operating effectiveness.
Time taken after the part is produced till the next part is loaded onto the machine. It
tells the worker that the machine is available to start the operation. Depends on the
skill of the operator.
9
2.3.10 Machine Utilization Hours
10
CHAPTER 3
IMPLEMENTATION
The Sinumerik CNC 828D is basically a monitor in the front which is connected
to an I/O card. The I/O module is used to connect digital and analog inputs/outputs.
The SINUMERIK I/O Module is PP 72/48D 2/2A PN. It has 72 digital inputs and 48
digital outputs. The digital output is connected to a relay board. Relays are used to
avoid the risk of the raspberry pi burning out. The raspberry pi can only handle up to
5V and the GPIOs can tolerate only 3.3V without relays. The various parameters that
have to be monitored are taken as output from the CNC and given as input to the pi
via the I/O card. The python program in the pi will run the proper algorithm to collect
and store the data. The data will then be analyzed and displayed graphically for the
user to interpret the results easily.
Figure 3.2: Experimental Setup 1
CNC Monitor
(Computer Numerical Control) (Display
Screen)
Figure 3.3: Experimental Setup 2
3.2 Program logic for parameters
Figure 3.4 describes the process of identifying whether the CNC is in auto mode or manual mode
Figure 3.5 depicts how the system is able to identify that the part program is running.
12
Figure 3.6: Cycle Time
The calculation of current cycle time for every part manufactured the number of
good parts and rejected parts, the average and total cycle time is outlined in
Figure 3.6.
The time during which federate override are greater than 100 is recorded and displayed as shown in Figure 3.7.
13
Figure 3.8: Machine Running Hours
Figure 3.8 demonstrates how the total machine running time is calculated
14
Figure 3.10: Breakdown Hours
The total breakdown time is calculated as shown in Figure 3.10.
15
Figure 3.12: Machine Ready
The total time that the CNC was in ready state is calculated as depicted by Figure 3.12.
16
CHAPTER 4
This is a system to aid the information flow regarding the status of the production
system. These processes can send a signal or warning if something is wrong. This
information is then shown through lights, numbers, and graphics to alert others about
the problems. It makes the production status of the machine at current time easily
viewable and clear to everyone. It also helps the operator to analyze regularly and
ensure production.
When the history button in the dashboard is clicked, it shows screens that display the
past data as required. The first screen displays the months. On selecting January,
February and March, the respective weeks are displayed. The list of parameters will
be dis- played on selecting the weeks. On selecting each parameter, the corresponding
table will be displayed. The display screens are shown below.
17
Figure 4.2: Months
18
Figure 4.5: Weeks in February
Figure 3.22 shows the amount of time the spindle has functioned for each day in a
week. The total spindle running hours for 1 day is 5hrs 80mins 0sec.
20
Figure 4.11: Breakdown Time
It can be inferred from Figure 3.23 the amount of time in a day when the machine
was unavailable or failed to perform its functions. The total breakdown time in a
day is 1hr 15min 0sec.
The total machine running time in a day was found to be 6hr 45min 10sec from
Figure 3.24. The total machine utilization percentage for 1 day is 86.3%.
The above Figure 3.25 shows the time taken after a part is produced until the next
part is loaded onto the machine. The total machine ready time for one day is
10mins.
21
The line graphs based on the data recorded during the First week of January are shown below:
22
Figure 4.17: Utilization Graph
The complete comparison of these parameters can be easily established using these two bar
graphs displayed below:
Week 1 January
07:12:00
06:00:00
Total Cycle Time
H 04:48:00
Total Spindle Running Time
o
03:36:00
u Total Machine Ready Time
r 02:24:00 Total Breakdown Time
s 01:12:00 Total Machine Running(ON) Time
00:00:00
Day1 Day2 Day3 Day4 Day5
23
Figure 4.19: Comparison of Parameters
Figure 3.37 depicts the amount of time in a day when the machine was
unavailable or failed to perform its functions. The total breakdown time in a day
is 35min.
25
The total machine running time in a day was found to be 6hr 52min 0sec from
Figure 3.38. The total machine utilization percentage for day 1 is 87.6%.
The above Figure 3.39 shows the time taken after a part is produced until the next
part is loaded onto the machine. The total machine ready time for one day is
10mins.
The line graphs based on the data recorded during the first week of January are
shown below:
26
Figure 4.29: Part Count Graph 2J
27
Figure 4.31: Utilization Graph 2J
The complete comparison of these parameters can be easily established using these two bar
graphs displayed below:
Week 2 January
08:24:00
07:12:00
06:00:00 Total Cycle Time
H
o 04:48:00 Total Spindle Running Time
u 03:36:00 Total Machine Ready Time
r Total Breakdown Time
02:24:00
s
01:12:00 Total Machine Running(ON) Time
00:00:00
Day1 Day2 Day3 Day4 Day5
28
Figure 4.34: Utilization Bar Graph 2J
Proper maintenance is very important for extending the life of the machine and in-
creasing productivity. Despite this, for small manufacturing enterprises, there are not
much tools or equipment available to understand the impact of the machine
breakdown or production loss, and rarely are these variables measured. We intend to
provide the correlation between the actual machine running time and the successfully
utilized time so that we will know to what extent there are losses and this will help in
better planning of maintenance and future activities. The tables and graphs help us in
visualizing the impact of various parameters.
30
breakdown time can be achieved by scheduling proper maintenance. We should also
make sure that the ready time should be nominal and minimize defective part count.
Figure 4.35: Comparison of Breakdown Time with respect to Total Machine Run Time
31
CHAPTER 5
CONCLUSION AND
FUTURE ENHANCEMENT
32
APPENDIX A
PROGRAM CODES
A.1Parameters
GPIO.setmode(GPIO.BCM)
GPIO.setup(18, GPIO.IN, pull_up_down=GPIO.PUD_UP)
mem=0
partcount = 0
33
previouselapsedtime = 0
cycleelapsed = 0
elapsedtime = 0
currentCycleTime =
0 start= float(0)
stop= float(0)
while True:
cyclestart = GPIO.input(18)
time.sleep(0.3)
if cyclestart == False and mem==0:
print("start time recorded")
start = time.time()
mem=1
if cyclestart == True and mem==1:
print("stop time recorded")
stop = time.time()
mem=0
currentCycleTime = stop-start
cycleelapsed = cycleelapsed + (stop - start)
if previouselapsedtime != cycleelapsed:
partcount = partcount + 1
averagecycletime = cycleelapsed/partcount
previouselapsedtime = cycleelapsed
print("current cycle time is", currentCycleTime)
print("part count is", partcount)
print("total cycle time elapsed is", cycleelapsed)
print("average cycle time is", averagecycletime)
GPIO.setmode(GPIO.BCM)
GPIO.setup(17, GPIO.IN, pull_up_down=GPIO.PUD_UP)
ex=0
startnow = float(0)
stopnow = float(0)
while True:
feedrateoverride = GPIO.input(17)
if feedrateoverride == False and ex==0:
startnow = time.time()
34
print("The total feedrate override time is", totalfeedrateoverridetime)
ex=0
stop = time.time()
var = 0
spindleRunningTime = stop-start
totalSpindleRunningTime = totalSpindleRunningTime+spindleRunningTime
spindleFunction(totalSpindleRunningTime)
35
A.1.6 Machine Running Hours, Breakdown Time
and Machine Uti- lization Percentage
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setup(23,GPIO.IN,pull_up_down=GPIO.PUD_UP)
GPIO.setup(24,GPIO.IN,pull_up_down=GPIO.PUD_UP)
machineRunning = 0
totalMachineRunningTime = 0
temp = 0
machineUtilization = 0
cycleElapsed = 0
memr=0
breakdownTime =0
totalBreakdownTime
=0 start = float(0)
stop = float (0)
while True:
machineOutput = GPIO.input(23)
alarmStatus = GPIO.input(24)
time.sleep(0.3)
def machineFunction(totalMachineRunningTime):
if totalMachineRunningTime>3600:
hrs = totalMachineRunningTime//3600
rem = totalMachineRunningTime%3600
min = rem//60
sec = rem%60
print("Total Machine Running Time Is",hrs,"hours",min,"minutes",sec,"seconds")
elif totalMachineRunningTime>60 and totalMachineRunningTime<3600:
minutes = totalMachineRunningTime//60
seconds = totalMachineRunningTime%60
print("Total Machine Running Time Is",minutes,"minutes",seconds,"seconds")
elif totalMachineRunningTime<60:
print("Total Machine Running Time is",totalMachineRunningTime,"seconds")
if machineOutput == False and machineRunning == 0:
print("Start time recorded")
start = time.time()
machineRunning = 1
36
print("Machine successfully used time",cycleElapsed)
print("The CNC machine was utilized for",machineUtilization,"percent of the total time")
def alarmFunction(totalBreakdownTime):
if totalBreakdownTime>3600:
hrs = totalBreakdownTime//3600
rem = totalBreakdownTime%3600
min = rem//60
sec = rem%60
print("Total Breakdown Time is",hrs,"hours",min,"minutes",sec,"seconds")
elif totalBreakdownTime>60 and totalBreakdownTime<3600:
minutes = totalBreakdownTime//60
seconds = totalBreakdownTime%60
print("Total Breakdown Time is",minutes,"minutes",seconds,"seconds")
elif totalBreakdownTime<60:
print("Total Breakdown Time is",totalBreakdownTime,"seconds")
if alarmStatus == False and memr==0:
print("start time recorded")
start = time.time()
memr=1
if cyclestart == True and memr==1:
print("stop time recorded")
stop = time.time()
memr=0
breakdownTime = stop-start
totalBreakdownTime = breakdownTime + (stop - start)
alarmFunction(totalBreakdownTime)
def readyFunction(totalReadyTime):
if totalReadyTime>3600:
hrs =
totalReadyTime//3600 rem
= totalReadyTime%3600 min
= rem//60
37
sec = rem%60
38
print("Total Ready Time is",hrs,"hours",min,"minutes",sec,"seconds")
elif totalReadyTime>60 and totalReadyTime<3600:
minutes = totalReadyTime//60
seconds = totalReadyTime%60
print("Total Ready Time is",minutes,"minutes",seconds,"seconds")
elif totalReadyTime<60:
print("Total Ready Time is",totalReadyTime,"seconds")
if readyStatus == False and ready==0:
print("start time recorded")
start = time.time()
ready=1
if cyclestart == True and
ready==1: print("stop time
recorded") stop =
time.time()
ready=0
readytime = stop-start
totalReadyTime = readyTime + (stop - start)
readyFunction(total ReadyTime)
import PySimpleGUI as sg
win2_active =
False
win3_active =
False
win4_active =
False
win5_active =
False
win6_active =
False
win7_active =
False
win8_active =
False
39
win13_active =
40
False
win14_active =
False
win15_active =
False
win16_active =
False
win9_active =
False
win10_active =
False
win11_active =
False
win12_active =
False
win17_active =
False
win18_active =
False
win19_active =
False
win20_active =
False
win21_active =
False
win22_active =
False
while True:
ev1, vals1 = win1.Read(timeout=1000000000)
eve1, valse1 =
win2.Read(timeout=10000000000
)
41
[sg.T(’ ’), sg.RealtimeButton(button_text=(’Cycle time and part count 1J’),
button_color=(’black’, ’light yellow’))], [sg.T(’ ’),
sg.RealtimeButton(button_text=(’Feedrate override 1J’), button_color=(’black’, ’white’))],
[sg.T(’ ’), sg.RealtimeButton(button_text=(’Spindle output 1J’),
button_color=(’black’, ’pink’))], [sg.T(’ ’),
sg.RealtimeButton(button_text=(’Breakdown 1J’), button_color=(’black’,
’lavender’))],
[sg.T(’ ’), sg.RealtimeButton(button_text=(’Machine running and utilization 1J’),
button_color=(’black’, ’light green’))], [sg.T(’ ’), sg.RealtimeButton(button_text=(’Machine
ready 1J’), button_color=(’black’, ’violet’))],
]
win5 = sg.Window(’Window
5’).Layout(layout5) #start of table
l1.grid(row=1,column=0)
l1=Label(window, text="2")
l1.grid(row=2,column=0)
l1=Label(window, text="3")
l1.grid(row=3,column=0)
l1=Label(window, text="4")
l1.grid(row=4,column=0)
l1=Label(window, text="5")
l1.grid(row=5,column=0)
l1=Label(window,
text="1/01/19")
l1.grid(row=1,column=1)
l1=Label(window,
42
text="48sec")
l1.grid(row=1,column=2)
l1=Label(window, text="5hr
40min 0sec")
l1.grid(row=1,column=3)
l1=Label(window,
text="425")
l1.grid(row=1,column=4)
l1=Label(window,
text="2/01/19")
l1.grid(row=2,column=1)
l1=Label(window,
text="50sec")
l1.grid(row=2,column=2)
l1=Label(window, text="5hr
45min 0sec")
l1.grid(row=2,column=3)
l1=Label(window,
text="414")
l1.grid(row=2,column=4)
l1=Label(window,
text="3/01/19")
l1.grid(row=3,column=1)
l1=Label(window,
text="48sec")
l1.grid(row=3,column=2)
l1=Label(window, text="5hr 40min
48sec 0sec")
l1.grid(row=3,column=3)
l1=Label(window,
text="426")
l1.grid(row=3,column=4)
l1=Label(window,
text="4/01/19")
l1.grid(row=4,column=1)
l1=Label(window,
text="51sec")
l1.grid(row=4,column=2)
l1=Label(window,
text="5hr 48min 30sec")
l1.grid(row=4,column=3)
l1=Label(window,
text="410")
l1.grid(row=4,column=4)
l1=Label(window,
text="7/01/19")
l1.grid(row=5,column=1)
l1=Label(window,
text="49sec")
l1.grid(row=5,column=2)
l1=Label(window,
43
text="5hr 43min 49sec")
l1.grid(row=5,column=3)
44
l1=Label(window,
text="421")
l1.grid(row=5,column=4)
window.mainloop()
if win17_active:
evet1, valset1 = win17.Read(timeout=1000000000)
l1.grid(row=0,column=1)
l1=Label(window,
text="Feedrate Override >100")
l1.grid(row=0,column=2)
l1=Label(window, text="1")
l1.grid(row=1,column=0)
l1=Label(window, text="2")
l1.grid(row=2,column=0)
l1=Label(window, text="3")
l1.grid(row=3,column=0)
l1=Label(window, text="4")
l1.grid(row=4,column=0)
l1=Label(window, text="5")
l1.grid(row=5,column=0)
l1=Label(window,
text="1/01/19")
l1.grid(row=1,column=1)
l1=Label(window,
text="25min")
l1.grid(row=1,column=2)
l1=Label(window,
text="2/01/19")
l1.grid(row=2,column=1)
l1=Label(window,
text="55min")
l1.grid(row=2,column=2)
l1=Label(window,
text="3/01/19")
l1.grid(row=3,column=1)
l1=Label(window,
45
text="50min")
l1.grid(row=3,column=2)
l1=Label(window,
text="4/01/19")
l1.grid(row=4,column=1)
l1=Label(window,
text="45min")
l1.grid(row=4,column=2)
l1=Label(window,
text="7/01/19")
l1.grid(row=5,column=1)
l1=Label(window,
text="20min")
l1.grid(row=5,column=2)
window.mainloop()
if win18_active:
evet2, valset2
=win18.Read(time
out=1000000000)
evet3, valset3
=
win5.Read(timeou
t=1000000000)
46
l1=Label(window, text="5")
l1.grid(row=5,column=0)
47
l1=Label(window,
text="1/01/19")
l1.grid(row=1,column=1)
l1=Label(window, text="5hr
80min 0sec")
l1.grid(row=1,column=2)
l1=Label(window,
text="2/01/19")
l1.grid(row=2,column=1)
l1=Label(window, text="5hr
85min 0sec")
l1.grid(row=2,column=2)
l1=Label(window,
text="3/01/19")
l1.grid(row=3,column=1)
l1=Label(window, text="5hr
80min 48sec")
l1.grid(row=3,column=2)
l1=Label(window,
text="4/01/19")
l1.grid(row=4,column=1)
l1=Label(window, text="5hr
88min 30sec")
l1.grid(row=4,column=2)
l1=Label(window,
text="7/01/19")
l1.grid(row=5,column=1)
l1=Label(window, text="5hr
83min 49sec")
l1.grid(row=5,column=2)
window.mainloop()
win19 =
sg.Window(’Window 19’) if
win19_active:
evet3, valset3
=
win19.Read(timeout=1000000000) evet4,
valset4 =
win5.Read(timeout=1000000000) if not
win20_active and evet4 ==
’Breakdown 1J’: win20_active = True
from tkinter
import *
window=Tk()
l1=Label(window,
text="Day")
l1.grid(row=0,column=
0) l1=Label(window,
text="Date")
48
l1.grid(row=0,column=
1)
49
l1=Label(window,
text="Breakdown Hours")
l1.grid(row=0,column=2)
l1=Label(window, text="1")
l1.grid(row=1,column=0)
l1=Label(window, text="2")
l1.grid(row=2,column=0)
l1=Label(window, text="3")
l1.grid(row=3,column=0)
l1=Label(window, text="4")
l1.grid(row=4,column=0)
l1=Label(window, text="5")
l1.grid(row=5,column=0)
l1=Label(window,
text="1/01/19")
l1.grid(row=1,column=1)
l1=Label(window, text="1hr
15min 0sec")
l1.grid(row=1,column=2)
l1=Label(window,
text="2/01/19")
l1.grid(row=2,column=1)
l1=Label(window, text="0hr
35min 0sec")
l1.grid(row=2,column=2)
l1=Label(window,
text="3/01/19")
l1.grid(row=3,column=1)
l1=Label(window, text="1hr
20min 0sec")
l1.grid(row=3,column=2)
l1=Label(window,
text="4/01/19")
l1.grid(row=4,column=1)
l1=Label(window, text="0hr
48min 0sec")
l1.grid(row=4,column=2)
l1=Label(window,
text="7/01/19")
l1.grid(row=5,column=1)
l1=Label(window, text="0hr
40min 0sec")
l1.grid(row=5,column=2)
window.mainloop()
win20 = sg.Window(’Window 20’)
if win20_active:
50
evet4, valset4 =
win20.Read(timeout=1000000000) evet5,
valset5 =
win5.Read(timeout=1000000000)
if not win21_active and evet5 == ’Machine running and
utilization 1J’: win21_active = True
from tkinter
import *
window=Tk()
l1=Label(window,
text="Day")
l1.grid(row=0,column=
0) l1=Label(window,
text="Date")
l1.grid(row=0,column=
1)
l1=Label(window, text="Total Machine
Running Time")
l1.grid(row=0,column=2)
l1=Label(window, text="Machine
Utilization Percentage")
l1.grid(row=0,column=3)
l1=Label(window,
text="1")
l1.grid(row=1,column=0)
l1=Label(window,
text="2")
l1.grid(row=2,column=0)
l1=Label(window,
text="3")
l1.grid(row=3,column=0)
l1=Label(window,
text="4")
l1.grid(row=4,column=0)
l1=Label(window,
text="5")
l1.grid(row=5,column=0)
l1=Label(window,
text="1/01/19")
l1.grid(row=1,column=1)
l1=Label(window,
text="6hr 45min 10sec")
l1.grid(row=1,column=2)
l1=Label(window,
text="86.3 %")
l1.grid(row=1,column=3)
l1=Label(window,
text="2/01/19")
51
l1.grid(row=2,column=1)
l1=Label(window,
text="6hr 46min 18sec")
l1.grid(row=2,column=2)
l1=Label(window,
text="85.4 %")
l1.grid(row=2,column=3)
l1=Label(window,
text="3/01/19")
l1.grid(row=3,column=1)
l1=Label(window,
text="6hr 51min 23sec")
l1.grid(row=3,column=2)
l1=Label(window,
text="87.3 %")
l1.grid(row=3,column=3)
l1=Label(window,
text="4/01/19")
l1.grid(row=4,column=1)
l1=Label(window,
text="6hr 47min 28sec")
l1.grid(row=4,column=2)
l1=Label(window,
text="82.6 %")
l1.grid(row=4,column=3)
l1=Label(window,
text="7/01/19")
l1.grid(row=5,column=1)
l1=Label(window,
text="6hr 43min 16sec")
l1.grid(row=5,column=2)
l1=Label(window, text="85.1
%") l1.grid(row=5,column=3)
window.mainloop()
win21 = sg.Window(’Window 21’)
if win21_active:
evet5, valset5 = win21.Read(timeout=1000000000)
evet6, valset6 = win5.Read(timeout=1000000000)
52
1)
l1=Label(window, text="Total Machine
Running Time")
l1.grid(row=0,column=2)
l1=Label(window, text="Machine
Utilization Percentage")
l1.grid(row=0,column=3)
l1.grid(row=0,column=2)
l1=Label(window,
text="1")
l1.grid(row=1,column=0)
l1=Label(window,
text="2")
l1.grid(row=2,column=0)
l1=Label(window,
text="3")
l1.grid(row=3,column=0)
l1=Label(window,
text="4")
l1.grid(row=4,column=0)
l1=Label(window,
text="5")
l1.grid(row=5,column=0)
l1=Label(window,
text="1/01/19")
l1.grid(row=1,column=1)
l1=Label(window,
text="10mins")
l1.grid(row=1,column=2)
l1=Label(window,
text="2/01/19")
l1.grid(row=2,column=1)
l1=Label(window,
text="12mins")
l1.grid(row=2,column=2)
l1=Label(window,text="3
/01/19")
l1.grid(row=3,column=1)
l1=Label(window,
text="18mins")
l1.grid(row=3,column=2)
l1=Label(window,
text="4/01/19")
l1.grid(row=4,column=1)
l1=Label(window,
text="13mins")
l1.grid(row=4,column=2)
l1=Label(window,
text="7/01/19")
53
l1.grid(row=5,column=1)
54
l1=Label(window,
text="16mins")
l1.grid(row=5,column=2)
window.mainloop()
win22 =
sg.Window(’Window 22’) if
win22_active:
evet6, valset6 =
win22.Read(timeout=1000000000) #stop
table 1
if win5_active:
eve1, valse1 = win5.Read(timeout=10000000)
eve2, valse2 =
win2.Read(timeout=1000000) if
not win6_active and eve2 ==
’Week 2J’:
win6_active = True
layout6 = [[sg.Text(’Select the required parameter’)],
[sg.T(’ ’), sg.RealtimeButton(button_text=(’Cycle time and part count 2J’),
button_color=(’black’, ’light yellow’))], [sg.T(’ ’),
sg.RealtimeButton(button_text=(’Feedrate override 2J’), button_color=(’black’, ’white’))],
[sg.T(’ ’), sg.RealtimeButton(button_text=(’Spindle output 2J’), button_color=(’black’,
’pink’))],
[sg.T(’ ’), sg.RealtimeButton(button_text=(’Breakdown 2J’), button_color=(’black’,
’lavender’))],
[sg.T(’ ’), sg.RealtimeButton(button_text=(’Machine running and utilization 2J’),
button_color=(’black’, ’light green’))], [sg.T(’ ’), sg.RealtimeButton(button_text=(’Machine
ready 2J’), button_color=(’black’, ’violet’))],
[sg.T(’’)],
win6 = sg.Window(’Window
6’).Layout(layout6) #strt table 2
if win6_active:
eve2, valse2 = win6.Read(timeout=10000000)
eve3, valse3 =
win2.Read(timeout=10000) if
not win7_active and eve3 ==
’Week 3J’:
win7_active = True
layout7 = [[sg.Text(’Select the required parameter’)],
[sg.T(’ ’), sg.RealtimeButton(button_text=(’Cycle time and part count 3J’),
button_color=(’black’, ’light yellow’))], [sg.T(’ ’),
sg.RealtimeButton(button_text=(’Feedrate override 3J’), button_color=(’black’, ’white’))],
[sg.T(’ ’), sg.RealtimeButton(button_text=(’Spindle output 3J’),
button_color=(’black’, ’pink’))], [sg.T(’ ’),
sg.RealtimeButton(button_text=(’Breakdown 3J’), button_color=(’black’,
55
’lavender’))],
[sg.T(’ ’), sg.RealtimeButton(button_text=(’Machine running and utilization 3J’),
button_color=(’black’, ’light green’))], [sg.T(’ ’), sg.RealtimeButton(button_text=(’Machine
ready 3J’), button_color=(’black’, ’violet’))],
[sg.T(’’)],
if win7_active:
eve3, valse3 = win7.Read(timeout=10000000)
[sg.T(’’)],
if win8_active:
eve4, valse4 =
win8.Read(timeout=10000000) if
win2_active:
ev2, vals2 =
win2.Read(timeout=100) ev3,
vals3 =
win1.Read(timeout=100000)
56
button_color=(’black’, ’violet’))], [sg.T(’ ’),
sg.RealtimeButton(button_text=(’Week 2M’), button_color=(’black’,
’violet’))],
#strt window 13 to 16
eva1, valsa1 = win4.Read(timeout=10000)
if not win13_active and eva1 ==
’Week 1M’: win13_active = True
layout13 = [[sg.Text(’Select the required parameter’)],
[sg.T(’ ’), sg.RealtimeButton(button_text=(’Cycle time and part count 1M’),
button_color=(’black’, ’light yellow’))], [sg.T(’ ’),
sg.RealtimeButton(button_text=(’Feedrate override 1M’), button_color=(’black’, ’white’))],
[sg.T(’ ’), sg.RealtimeButton(button_text=(’Spindle output 1M’),
button_color=(’black’, ’pink’))], [sg.T(’ ’),
sg.RealtimeButton(button_text=(’Breakdown 1M’), button_color=(’black’,
’lavender’))],
[sg.T(’ ’), sg.RealtimeButton(button_text=(’Machine running and utilization 1M’),
button_color=(’black’, ’light green’))], [sg.T(’ ’), sg.RealtimeButton(button_text=(’Machine
ready 1M’), button_color=(’black’, ’violet’))],
[sg.T(’’)],
if win13_active:
eva1, valsa1 = win13.Read(timeout=10000000)
#start14
eva2, valsa2 = win4.Read(timeout=10000)
if not win14_active and eva2 ==
’Week 2M’: win14_active = True
layout14 = [[sg.Text(’Select the required parameter’)],
[sg.T(’ ’), sg.RealtimeButton(button_text=(’Cycle time and part count 2M’),
button_color=(’black’, ’light yellow’))], [sg.T(’ ’),
sg.RealtimeButton(button_text=(’Feedrate override 2M’), button_color=(’black’, ’white’))],
[sg.T(’ ’), sg.RealtimeButton(button_text=(’Spindle output 2M’),
button_color=(’black’, ’pink’))], [sg.T(’ ’),
sg.RealtimeButton(button_text=(’Breakdown 2M’), button_color=(’black’,
’lavender’))],
[sg.T(’ ’), sg.RealtimeButton(button_text=(’Machine running and utilization 2M’),
button_color=(’black’, ’light green’))], [sg.T(’ ’), sg.RealtimeButton(button_text=(’Machine
ready 2M’), button_color=(’black’, ’violet’))],
[sg.T(’’)],
57
]
win14 = sg.Window(’Window 14’).Layout(layout14)
if win14_active:
eva2, valsa2 = win14.Read(timeout=10000000)
#start15
eva3, valsa3 = win4.Read(timeout=10000)
if not win15_active and eva3 ==
’Week 3M’: win15_active = True
layout15 = [[sg.Text(’Select the required parameter’)],
[sg.T(’ ’), sg.RealtimeButton(button_text=(’Cycle time and part count 3M’),
button_color=(’black’, ’light yellow’))], [sg.T(’ ’),
sg.RealtimeButton(button_text=(’Feedrate override 3M’), button_color=(’black’, ’white’))],
[sg.T(’ ’), sg.RealtimeButton(button_text=(’Spindle output 3M’),
button_color=(’black’, ’pink’))], [sg.T(’ ’),
sg.RealtimeButton(button_text=(’Breakdown 3M’), button_color=(’black’,
’lavender’))],
[sg.T(’ ’), sg.RealtimeButton(button_text=(’Machine running and utilization 3M’),
button_color=(’black’, ’light green’))], [sg.T(’ ’), sg.RealtimeButton(button_text=(’Machine
ready 3M’), button_color=(’black’, ’violet’))],
[sg.T(’’)],
]
if win15_active:
eva3, valsa3 = win15.Read(timeout=10000000)
#start16
eva4, valsa4 = win4.Read(timeout=10000)
58
if win16_active:
eva4, valsa4 = win16.Read(timeout=10000000)
#stop
if win4_active:
ev4, vals4 =
win4.Read(timeout=100) if
ev4 is None or ev4 ==
’Exit’:
win4_active =
False
win4.Close()
60
win9 = sg.Window(’Window 9’).Layout(layout9)
if win9_active:
evb1, valsb1 =
win9.Read(timeout=10000000) if
evb1 is None or evb1 == ’Exit’:
win9_active =
False
win9.Close()
#start10
evb2, valsb2 = win3.Read(timeout=10000)
if win10_active:
evb2, valsb2 =
win10.Read(timeout=10000000) if
evb2 is None or evb2 == ’Exit’:
win10_active = False
win10.Close()
#start11
evb3, valsb3 = win3.Read(timeout=10000)
61
button_color=(’black’, ’pink’))], [sg.T(’ ’),
sg.RealtimeButton(button_text=(’Breakdown 3F’), button_color=(’black’,
’lavender’))],
[sg.T(’ ’), sg.RealtimeButton(button_text=(’Machine running and utilization 3F’),
button_color=(’black’, ’light green’))], [sg.T(’ ’), sg.RealtimeButton(button_text=(’Machine ready
3F’), button_color=(’black’, ’violet’))],
[sg.T(’’)],
]
if win11_active: evb3,
valsb3 =
win11.Read(timeout=10000000) if
evb3 is None or evb3 == ’Exit’:
win11_active = False win11.Close()
#start12
evb4, valsb4 = win3.Read(timeout=10000)
if win12_active: evb4,
valsb4 =
win12.Read(timeout=10000000) if
evb4 is None or evb4 == ’Exit’:
win12_active = False win12.Close()
#stop
if win3_active: ev3,
vals3 =
win3.Read(timeout=100) if ev3 is
None or ev3 ==
’Exit’:
win3_active =
False win3.Close()
peach = "#FAEBD7";green =
"#458b74"; set yrange [0:24] set style
data histogram
set style histogram
cluster gap 1 set style fill
solid
set boxwidth
0.9 set xtics format ""
set grid ytics
[1] Sezer, E., Romero, D., Guedea, F., Macchi, M., and Emmanouilidis, C. (2018). “An industry 4.0-
enabled low cost predictive maintenance approach for smes.” 2018 IEEE International Conference
on Engineering, Technologyand Innovation (ICE/ITMC), 1–8 (June).
[2] Xiao Hua Lia, Wen Yi Lib. “The Research on Intelligent Monitoring Technology of NC
Machining Process.” 9th International Conference on Digital Enterprise Technology- DET2016
[3] S. Nallusamy. “Enhancement of Productivity and Efficiency of CNC Machines in a Small Scale
Industry Using Total Productive Maintenance.” International Journal of Engineering Research in
Africa, 02 September 2016.
[4] Hung, M., Lin, Y., Quoc Huy, T., Yang, H., and Cheng, F. (2012). “Development of a cloud-
computing-based equipment monitoring system for machine tool industry.” 2012 IEEE International
Conference on Automation Science and Engineering(CASE), 962–967 (Aug).
[5] Chang, W. and Wu, S. (2016). “Investigated information data of CNC machine tool for
established productivity of industry 4.0.” 2016 5th IIAI International Congress on Advanced Applied
Informatics (IIAI-AAI), 1088–1092 (July).
[6] Saez, M., Maturana, F. P., Barton, K., and Tilbury, D. M. (2018). “Real-time manufacturing
machine and system performance monitoring using internet of things.” IEEE Transactions on
Automation Science and Engineering, 15(4), 1735–1748.
[7] Al-Saedi, I. R. K., Mohammed, F. M., and Obayes, S. S. (2017). “CNC machine based on
embedded wireless and internet of things for workshop development.” 2017 International
Conference on Control, Automation and Diagnosis (ICCAD), 439–444 (Jan).
[8] Desai, D. P. and Patel, D. M. (2015). “Design of control unit for cnc machine tool using arduino
based embedded system.” 2015 International Conference on Smart Technologies and Management
for Computing, Communication, Controls, Energy and Materials (ICSTM), 443–448 (May).
[9] Lu, X., Yu, D., Hu, Y., and Yao, Z. (2014). “Design and implementation of machine tools
supervisory system based on information model.” 2014 IEEE International Conference on
Information and Automation (ICIA), 856–859 (July).
[10] Omnes, N., Bouillon, M., Fromentoux, G., and Grand, O. L. (2015). “A programmable and
virtualized network amp; it infrastructure for the internet of things: How can nfv amp; sdn help for
facing the upcoming challenges.” 2015 18th International Conference on Intelligence in Next
Generation Networks, 64–69 (Feb).
[11] Shrouf, F., Ordieres, J., and Miragliotta, G. (2014). “Smart factories in industry 4.0: A review
of the concept and of energy management approached in production based on the internet of things
paradigm.” 2014 IEEE International Conference on Industrial Engineering and Engineering
Management, 697–701 (Dec).
[12] Xiaoli, X. and Bin, R. (2011). “Research on data acquisition and database-building technology
56
based on highend cnc machine tool.” 2011 IEEE 3rd International Confer- ence on Communication
Software and Networks, 135–138 (May).
[14] Kunpeng Zhu, Yu Zhang “A Cyber-Physical Production System Framework of Smart CNC
Machining Monitoring System” in IEEE/ASME Transactions on Mechatronics, vol. 23, no. 6,
pp. 2579-2586, Dec. 2018.
[15] S. N. Bhagat and S. L. Nalbalwar, "LabVIEW based tool condition monitoring and control for
CNC lathe based on parameter analysis," 2016 IEEE International Conference on Recent Trends in
Electronics, Information & Communication Technology (RTEICT), Bangalore, 2016, pp. 1386-1388.
[16] F. Shrouf, J. Ordieres and G. Miragliotta, "Smart factories in Industry 4.0: A review of the
concept and of energy management approached in production based on the Internet of Things
paradigm," 2014 IEEE International Conference on Industrial Engineering and Engineering
Management, Bandar Sunway, 2014, pp. 697-701.
[17] Z. Wen-zheng and Y. Hu, "Design and Implementation of CNC Machine Remote Monitoring
and Controlling System Based on Embedded Internet," 2010 International Conference on Intelligent
System Design and Engineering Application, Changsha, 2010, pp. 506-509.
57
Publication
International Journal of Recent Technology and Engineering (IJRTE)
ISSN: 2277-3878, Volume-8 Issue-2, July 2019
I. INTRODUCTION
Industry 4.0 is the fourth industrial revolution. It focuses
on cyber physical systems, the Internet of Things, cloud
computing and cognitive computing. This brings forth smart
factories to the industrial world. Industry 4.0 has four design
principles which include: Interconnection, Information
transparency, Technical assistance and Decentralized
decisions. A cost-effective system has been designed to
measure the temperature and vibration variables of a
machining process in Hass Computer Numerical Control
(CNC)[1]. Industry 4.0 is revolution in a new wave of
cyber-physical systems in NC (Numerically control)
machining process platform which realizes the real-time
monitoring and 3D display of machine tools[2-4].
Increasing efficiency has always been a major factor in the
manufacturing sector for better production. Improved
efficiency leads to better profitability. With the IoT gaining
Published By:
Retrieval Number: A1030058119/19©BEIESP
Blue Eyes Intelligence Engineering
DOI: 10.3940/ijrte.A1030.078219 6 & Sciences Publication
importance, it has become one of the leading use cases for
Industry 4.0[5], [6]. A combination of traditional
condition monitoring enhanced with analytical algorithm
forms the basis of Predictive maintenance strategies. Total
Productive Maintenance (TPM) and 5S techniques
minimize the breakdowns and improve the performance
and efficiency of a machine [7]. This technology enables
the prediction of machine failures before they occur. For
many small business owners, the adoption of IoT may
seem like a daunting challenge. Cloud computing based
equipment monitoring systems help in monitoring the
performance, statuses, equipment faults, production quality
and precision of the machine [8]. These systems involve
the use of expensive and complex software which are
difficult to use. This bottleneck prevents many small scale
industries from adopting these methods, and also their
return on Investment takes a longer time. Monitoring
machining processes have become a major factor for a
manufacturer to improve the efficiency of the production
line. Investigating the data of the CNC machine tool based
on controller tuning operation help in increasing the
productivity of industry 4.0[9-11]. It can also help in
reducing the downtime of the machines. This work aims to
help small manufacturing industries to use the current
technology to improve functionality and identify the key
areas for improvement and thereby increase the utilization
by simplifying machine monitoring [12-13]. IoT
technologies are the key factors in Industry 4.0 which help
in increased product customization, productivity, and
reliability of physical systems and are compared in real
time [14]. Data extraction is made possible using industrial
IoT in machines [15]. The proposed methodology will
enhance small and medium enterprises to embrace IoT in a
big way. These enterprises look for the following: cost
should be affordable, the technology should be easy to use
without any specialized knowledge or having to hire
someone with special skills, it should be readily available,
and the results should be accurate and must help them save
or recover money faster. Our work is aimed to develop a
solution that will help small and medium businesses
achieve the above objectives. In our work, we will be
monitoring the Sinumerik CNC with the help of a
raspberry pi and thereby showing the machine’s utilization
patterns. The process of monitoring is initiated by selecting
the list of parameters to be monitored [16]. The raspberry
pi is programmed
with the help of the
programming language
Published By:
Retrieval Number: A1030058119/19©BEIESP
Blue Eyes Intelligence Engineering
DOI: 10.3940/ijrte.A1030.078219 6 & Sciences Publication
Cost Effective Digitalization Solution for Sinumerik CNC System To Increase The Transparency and
Utilization of The Machine
Python to meet the requirements. pi can only handle up to 5V, and the GPIOs can tolerate only
Published By:
Retrieval Number: A1030058119/19©BEIESP Blue Eyes Intelligence Engineering
DOI: 10.3940/ijrte.A1030.078219 7 & Sciences Publication
3.3V without relays. Then, data is be stored in the
raspberry pi. Similarly, it will be done for all the
parameters. The CNC was monitored over two weeks for
around seven to eight hours, and this was done using the
methods below.
Published By:
Retrieval Number: A1030058119/19©BEIESP Blue Eyes Intelligence Engineering
DOI: 10.3940/ijrte.A1030.078219 7 & Sciences Publication
International Journal of Recent Technology and Engineering (IJRTE)
ISSN: 2277-3878, Volume-8 Issue-2, July 2019
(a) (b).
(a)
(c) (d).
Published By:
Retrieval Number: A1030058119/19©BEIESP
Blue Eyes Intelligence Engineering
DOI: 10.3940/ijrte.A1030.078219 8 & Sciences Publication
Cost Effective Digitalization Solution for Sinumerik CNC System To Increase The Transparency and
Utilization of The Machine
(a)
(d)
(b)
(e)
Fig.4. (a) Cycle Time and Part Count, (b) Feed rate
Override, (c) Breakdown Time,(d) Machine Running
Hours, (e). Machine Utilization Hours.
Cycle Time and Part Count: The calculation of current
cycle time for every part manufactured the number of good
parts and rejected parts, the average and total cycle time are
outlined in Figure 4(a).
Feed rate Override: The time during which federate
override are greater than 100 are recorded and displayed as
shown in Figure 4(b).
Spindle Running Hours: In the raspberry pi, GPIO pin 22
is initialized as ‘Spindle Output’. The total spindle running
hours are calculated and displayed using the same algorithm
as fig 4(b).
Breakdown Time: The total breakdown time was
(c) calculated as shown in Figure 4(c).
Machine-Ready: GPIO pin 23 was initialized as ‘Machine
Ready' and the total machine ready time is calculated using
the same method as in fig 4(c).
Machine Running Hours:
Figure 4(d) demonstrates how
Published By:
Retrieval Number: A1030058119/19©BEIESP Blue Eyes Intelligence Engineering
DOI: 10.3940/ijrte.A1030.078219 9 & Sciences Publication
International Journal of Recent Technology and Engineering (IJRTE)
ISSN: 2277-3878, Volume-8 Issue-2, July 2019
(a)
(b) (c)
(a)
(d) (e)
(b) (c)
Fig 5. (a) Machine Utilization Dashboard, (b).GUI of
Months, (c) GUI of Weeks.
When the history button in the dashboard is clicked, it
shows screens that display the past data as required. The
(f)
first screen displays the months. On selecting January,
February, and March, the respective weeks are displayed. Fig 7. (a) Cycle time and Part Count, (b) Feed rate
Override, (c) Spindle Running Time,(d) Breakdown
IV. RESULTS AND DISCUSSION Time, (e) Machine Ready Time, (f). Machine Running
and Utilization Percentage.
On selecting a week, the parameters will pop up. The
same list of parameters will be displayed irrespective of Feed rate Override: Figure 7(b) depicts that the feed rate
which week is selected. On selecting each parameter, the override was greater than 100 for 25mins on 1st January 19.
corresponding table will be displayed along with the on This shows that the operator has increased the programmed
feed rate of over 100 for 25mins.
monitoring the parameters over two weeks (eight hours
Spindle Running Time: Figure 7(c) shows the amount of
daily), we have the following data as shown in the tables.
time the spindle has functioned for each day in a week. The
The data recorded in the first week of January is shown total spindle running hours for one day is 5hrs 80mins
below: Cycle time and Part Count: It is inferred from 0sec.
Figure 7(a) that the average time for 1 part to be produced in Breakdown Time It can be inferred from Figure 7(d) the
a day is 48 sec. The total number of parts produced in a day amount of time in a day when
is 425 parts and the total time for 425 parts to be produced is the machine was unavailable
5hrs 40mins 0sec. or failed to perform its
functions. The total
Published By:
Retrieval Number: A1030058119/19©BEIESP
Blue Eyes Intelligence Engineering
DOI: 10.3940/ijrte.A1030.078219 10 & Sciences Publication
Cost Effective Digitalization Solution for Sinumerik CNC System To Increase The Transparency and
Utilization of The Machine
breakdown time in a day is 1hr 15min 0sec. Fig 9. (a) Machine Utilization Graph for Week 1, (b).
Machine-Ready Time: The above Figure 7(e) shows the Machine Utilization Graph for Week 2.
time taken after a part is produced until the next part is
loaded onto the machine. The total machine ready time for Similarly, the graphical representation for the data recorded
one day is 10mins.
in the second week of January is depicted in Figure 9.
Machine Running and Utilization Percentage: The total
machine running time in a day was found to be 6hr 45min On analyzing the data, it is evident that breakdown time is
10sec from Figure 7(f). The total machine utilization significantly affecting the production. This graph shows how
percentage for one day is 86.3%. much percentage of the total time was wasted in the
The first graph is a comparison of total cycle time, total breakdown.
spindle running hours, total machine ready time, breakdown
time and total machine running (ON) time. The second
graph is a comparison between successfully used time and
total machine running time which gives us an understanding
of the machine utilization. The graphical representation of
the parameters data is depicted and shown in Figure 8:
(b)
Published By:
Retrieval Number: A1030058119/19©BEIESP Blue Eyes Intelligence Engineering
DOI: 10.3940/ijrte.A1030.078219 11 & Sciences Publication
International Journal of Recent Technology and Engineering (IJRTE)
ISSN: 2277-3878, Volume-8 Issue-2, July 2019
Published By:
Retrieval Number: A1030058119/19©BEIESP
Blue Eyes Intelligence Engineering
DOI: 10.3940/ijrte.A1030.078219 12 & Sciences Publication
Vinitha Lea Philip. Pursuing her under graduation in Electronics and
Communication Engineering at SRM Institute of Science and
Technology, Kancheepuram, Chennai, India
Published By:
Retrieval Number: A1030058119/19©BEIESP
Blue Eyes Intelligence Engineering
DOI: 10.3940/ijrte.A1030.078219 12 & Sciences Publication
Cost Effective Digitalization Solution for Sinumerik CNC System To Increase The
Transparency and Utilization of The Machine
Parthasarathy Eswaran is
associate professor at SRM
Institute of Science and
technology, India. He received
his Ph.D in Electronics and
Communication Engineering
from SRM University,
Kattankulatur, India in 2014 and
Masters and Bachelors in
Mechatronics and Electronics
and Communication
Engineering from Anna University, Chennai and
Institute of Engineers, India respectively. His main
research interests are in the field of MEMS, Device
modeling, Embedded system, Avionics, IoT, Cyber
Physical system, Industry 4.0.