Sie sind auf Seite 1von 50

LAMPIRAN A

SENARAI PROGRAM
CX Supervisor Ver. 3.2 DBRead( "Data Limit
-------------------------------- In.Recordset2" )
Database END SUB
--------------------------------
SUB ReadChainDatabase() SUB ReadLimitOutDatabase()

DBRead( "Data Chain DBRead( "Data Limit


Conveyor.Recordset2" ) Out.Recordset2" )

END SUB END SUB

SUB ReadHeaterDatabase() SUB ReadLimitSealClose()

DBRead( "Data Heater.Recordset2" DBRead( "Data Limit Seal


) Close.Recordset2" )

END SUB END SUB

SUB ReadLevelSwitch() SUB ReadLimitSealOpen()

DBRead( "Data Level DBRead( "Data Limit Seal


Switch.Recordset2" ) Open.Recordset2" )

END SUB END SUB

SUB ReadLevelSwitch2() SUB ReadMotor1Database()

DBRead( "Data Level Switch DBRead( "Data Motor


2.Recordset2" ) 1.Recordset2" )

END SUB END SUB

SUB ReadLevelSwitch3() SUB ReadMotor2Database()

DBRead( "Data Level Switch DBRead( "Data Motor


3.Recordset2" ) 2.Recordset2" )

END SUB END SUB

SUB ReadLimitDoorClose() SUB ReadMotor3Database()

DBRead( "Data Limit Door DBRead( "Data Motor


Close.Recordset2" ) 3.Recordset2" )

END SUB END SUB

SUB ReadLimitDoorOpen() SUB ReadMotorVacuumDatabase()

DBRead( "Data Limit Door DBRead( "Data Motor


Open.Recordset2" ) Vacuum.Recordset2" )

END SUB END SUB

SUB ReadLimitInDatabase() SUB ReadRuntime()

DBRead( "Runtime.Recordset2" )
END SUB SUB WriteHeaterDatabase()
SUB ReadSolenoid1Database() DBAddNew( "Data
Heater.Recordset1" )
DBRead( "Data Solenoid Valve DBExecute( "Data
1.Recordset2" ) Heater.Recordset2", "Requery" )
DBMove( "Data
END SUB Heater.Recordset2", "Position" ,
record_index )
SUB ReadSolenoid2Database()
END SUB
DBRead( "Data Solenoid Valve
2.Recordset2" ) SUB WriteInstrument()

END SUB DBAddNew(


"Instrument.Recordset1" )
SUB ReadSolenoid3Database() DBExecute(
"Instrument.Recordset2",
DBRead( "Data Solenoid Valve "Requery" )
3.Recordset2" ) DBMove( "Instrument.Recordset2",
"Position", record_index )
END SUB
END SUB
SUB ReadSolenoidPull()
SUB WriteLevelSwitch()
DBRead( "Data Solenoid
Pull.Recordset2" ) DBAddNew( "Data Level
Switch.Recordset1" )
END SUB DBExecute( "Data Level
Switch.Recordset2", "Requery" )
SUB ReadTemperatur() DBMove( "Data Level
Switch.Recordset2", "Position",
DBRead( "Data record_index )
Temperatur.Recordset1.Temperatur
" ) END SUB
END SUB
SUB WriteLevelSwitch2()
SUB ReadValve4()
DBAddNew( "Data Level Switch
DBRead( "Data Valve 2.Recordset1" )
4.Recordset2" ) DBExecute( "Data Level Switch
2.Recordset2", "Requery" )
END SUB DBMove( "Data Level Switch
2.Recordset2", "Position" ,
SUB WriteChainDatabase() record_index )

DBAddNew( "Data Chain END SUB


Conveyor.Recordset1" )
DBExecute( "Data Chain SUB WriteLevelSwitch3()
Conveyor.Recordset2", "Requery"
) DBAddNew( "Data Level Switch
DBMove( "Data Chain 3.Recordset1" )
Conveyor.Recordset2", DBExecute( "Data Level Switch
"Position", record_index) 3.Recordset2", "Requery" )

END SUB
DBMove( "Data Level Switch DBAddNew( "Data Limit Seal
3.Recordset2", "Position", Close.Recordset1" )
record_index) DBExecute( "Data Limit Seal
Close.Recordset2", "Requery" )
DBMove( "Data Limit Seal
END SUB Close.Recordset2", "Position",
record_index )
SUB WriteLimitDoorClose()
END SUB
DBAddNew( "Data Limit Door
Close.Recordset1" ) SUB WriteLimitSealOpen()
DBExecute( "Data Limit Door
Close.Recordset2", "Requery" ) DBAddNew( "Data Limit Seal
DBMove( "Data Limit Door Open.Recordset1" )
Close.Recordset2", "Position", DBExecute( "Data Limit Seal
record_index ) Open.Recordset2", "Requery" )
DBMove( "Data Limit Seal
END SUB Open.Recordset2", "Position",
record_index )
SUB WriteLimitDoorOpen()
END SUB
DBAddNew( "Data Limit Door
Open.Recordset1" ) SUB WriteMotor1Database()
DBExecute( "Data Limit Door
Open.Recordset2", "Requery" ) DBAddNew( "Data Motor
DBMove( "Data Limit Door 1.Recordset1" )
Open.Recordset2", "Position", DBExecute( "Data Motor
record_index ) 1.Recordset2", "Requery" )
DBMove( "Data Motor
END SUB 1.Recordset2", "Position" ,
record_index )
SUB WriteLimitInDatabase()
END SUB
DBAddNew( "Data Limit
In.Recordset1" ) SUB WriteMotor2Database()
DBExecute( "Data Limit
In.Recordset2", "Requery" ) DBAddNew( "Data Motor
DBMove( "Data Limit 2.Recordset1" )
In.Recordset2", "Position" , DBExecute( "Data Motor
record_index ) 2.Recordset2", "Requery" )
DBMove( "Data Motor
END SUB 2.Recordset2", "Position" ,
record_index )
SUB WriteLimitOutDatabase()
END SUB
DBAddNew( "Data Limit
Out.Recordset1" ) SUB WriteMotor3Database()
DBExecute( "Data Limit
Out.Recordset2", "Requery" ) DBAddNew( "Data Motor
DBMove( "Data Limit 3.Recordset1" )
Out.Recordset2", "Position" , DBExecute( "Data Motor
record_index ) 3.Recordset2", "Requery" )
DBMove( "Data Motor
END SUB 3.Recordset2", "Position" ,
record_index )
SUB WriteLimitSealClose()
END SUB DBMove( "Data Solenoid Valve
3.Recordset2", "Position" ,
SUB WriteMotorVacuumDatabase() record_index)

DBAddNew( "Data Motor END SUB


Vacuum.Recordset1" )
DBExecute( "Data Motor SUB WriteSolenoidPull()
Vacuum.Recordset2", "Requery" )
DBMove( "Data Motor DBAddNew( "Data Solenoid
Vacuum.Recordset2", "Position" Pull.Recordset1" )
,record_index ) DBExecute( "Data Solenoid
Pull.Recordset2", "Requery" )
END SUB DBMove( "Data Solenoid
Pull.Recordset2", "Position",
SUB WriteRuntime() record_index )

DBAddNew( "Runtime.Recordset1" ) END SUB


DBExecute( "Runtime.Recordset2",
"Requery" ) SUB WriteValve4()
DBMove( "Runtime.Recordset2",
"Position", record_index ) DBAddNew( "Data Valve
4.Recordset1" )
END SUB DBExecute( "Data Valve
4.Recordset2", "Requery" )
SUB WriteSolenoid1Database() DBMove( "Data Valve
4.Recordset2", "Position",
DBAddNew( "Data Solenoid Valve record_index )
1.Recordset1" )
DBExecute( "Data Solenoid Valve END SUB
1.Recordset2", "Requery" )
DBMove( "Data Solenoid Valve SUB wtemperatur()
1.Recordset2", "Position" ,
record_index ) DBExecute( "Data
Temperatur.Recordset1",
END SUB "Requery" )
DBMove( "Data
SUB WriteSolenoid2Database() Temperatur.Recordset1", "Last",
record_index )
DBAddNew( "Data Solenoid Valve
2.Recordset1" ) END SUB
DBExecute( "Data Solenoid Valve
2.Recordset2", "Requery" ) --------------------------------
DBMove( "Data Solenoid Valve Page Demo
2.Recordset2", "Position" , --------------------------------
record_index) Script Name: ScriptDemo
Trigger Event: On Regular
END SUB Interval
Interval Time: 1000 Milliseconds
SUB WriteSolenoid3Database()
IF startdemo THEN
DBAddNew( "Data Solenoid Valve waktudemo = waktudemo + 1
3.Recordset1" ) heaterdemo = TRUE
DBExecute( "Data Solenoid Valve ENDIF
3.Recordset2", "Requery" )
IF waktudemo >= 0 AND waktudemo
<= 13 THEN
benang1demo = TRUE IF startdemo AND waktudemo >= 44
ELSE AND waktudemo <= 63 THEN
benang1demo = FALSE steamindemo = TRUE
ENDIF temperaturdemo = temperaturdemo
+ 2
IF startdemo AND waktudemo > 1 ELSE
AND waktudemo <= 12 THEN steamindemo = FALSE
cartindemo = TRUE temperaturdemo = temperaturdemo
ELSE - 2
cartindemo = FALSE ENDIF
ENDIF
IF startdemo AND waktudemo >= 64
IF startdemo AND waktudemo >= 12 AND waktudemo <= 72 THEN
AND waktudemo <= 14 THEN water1demo = TRUE
hookupdemo = TRUE pressuredemo = pressuredemo + 1
ELSE ELSE
hookupdemo = FALSE water1demo = FALSE
ENDIF ENDIF

IF startdemo AND waktudemo >= 15 IF startdemo AND waktudemo >= 74


AND waktudemo <= 17 THEN AND waktudemo <= 76 THEN
hookdowndemo = TRUE sealopendemo = TRUE
ELSE ELSE
hookdowndemo = FALSE sealopendemo = FALSE
ENDIF ENDIF

IF startdemo AND waktudemo >= 15 IF startdemo AND waktudemo >= 79


AND waktudemo <= 26 THEN AND waktudemo <= 83 THEN
cartout2demo = TRUE opendoordemo = TRUE
ELSE ELSE
cartout2demo = FALSE opendoordemo = FALSE
ENDIF ENDIF

IF startdemo AND waktudemo >= 26 IF startdemo AND waktudemo >= 83


AND waktudemo <= 32 THEN AND waktudemo <= 94 THEN
closedoordemo = TRUE cartin2demo = TRUE
ELSE ELSE
closedoordemo = FALSE cartin2demo = FALSE
ENDIF ENDIF

IF startdemo AND waktudemo >= 33 IF startdemo AND waktudemo >= 98


AND waktudemo <= 35 THEN AND waktudemo <= 109 THEN
sealclosedemo = TRUE cartoutdemo = TRUE
ELSE ELSE
sealclosedemo = FALSE cartoutdemo = FALSE
ENDIF ENDIF

IF startdemo AND waktudemo >= 36 IF startdemo AND waktudemo >= 95


AND waktudemo <= 43 THEN THEN
water2demo = TRUE benang2demo = TRUE
pressuredemo = pressuredemo - 1 ELSE
ELSE benang2demo = FALSE
water2demo = FALSE ENDIF
ENDIF

Script Name: memory


Trigger Event: On Regular ENDIF
Interval
Interval Time: 200 Milliseconds IF cartin2demo THEN
hookdemo = hookdemo - 5
IF cartindemo THEN cart2demo = cart2demo - 5
hookdemo = hookdemo - 5 ENDIF
cart2demo = cart2demo - 5
bantucartindemo =
bantucartindemo - 5 Script Name: Kondisi
ENDIF Trigger Event: On Regular
Interval
IF cartoutdemo THEN Interval Time: 300 Milliseconds
hookdemo = hookdemo + 5
cart2demo = cart2demo + 5 IF bantuleveldemo < 33 THEN
bantucartindemo = level1demo = TRUE
bantucartindemo + 5 ELSE
ENDIF level1demo = FALSE
ENDIF
IF hookupdemo THEN
solpulldemo = solpulldemo - 3 IF bantuleveldemo < 66 AND
hookrotdemo = hookrotdemo + 3 bantuleveldemo > 33 THEN
ENDIF level2demo = TRUE
ELSE
IF hookdowndemo THEN level2demo = FALSE
solpulldemo = solpulldemo + 3 ENDIF
hookrotdemo = hookrotdemo - 3
ENDIF IF bantuleveldemo > 66 THEN
level3demo = TRUE
IF closedoordemo THEN ELSE
bantudoordemo = bantudoordemo + level3demo = FALSE
5 ENDIF
ENDIF
IF bantugeserdemo == -5 THEN
IF opendoordemo THEN ledscdemo = TRUE
bantudoordemo = bantudoordemo - ELSE
5 ledscdemo = FALSE
ENDIF ENDIF

IF water1demo THEN IF bantugeserdemo == 0 AND


bantuleveldemo = bantuleveldemo bantudoordemo == 112 THEN
+ 1 ledsodemo = TRUE
ENDIF ELSE
ledsodemo = FALSE
IF water2demo THEN ENDIF
bantuleveldemo = bantuleveldemo
- 1 IF cart2demo == -225 THEN
ENDIF ledlimitindemo = TRUE
ELSE
IF steamindemo THEN ledlimitindemo = FALSE
bantusteamdemo = bantusteamdemo ENDIF
+ 2
ENDIF IF bantudoordemo == 112 THEN
leddcdemo = TRUE
IF cartout2demo THEN ELSE
hookdemo = hookdemo + 5 leddcdemo = FALSE
cart2demo = cart2demo + 5 ENDIF
ENDIF
IF bantudoordemo == 0 THEN
leddodemo = TRUE
ELSE
leddodemo = FALSE --------------------------------
ENDIF Page Automatic
--------------------------------
IF cart2demo < 0 AND cart2demo Script Name: display_mode
>= -225 THEN Trigger Event: On Regular
ledlimitoutdemo = FALSE Interval
ELSE Interval Time: 10 Milliseconds
ledlimitoutdemo = TRUE
ENDIF IF mode1 THEN
mode1text = TRUE
IF startdemo AND cart2demo < 0 mode2text = FALSE
AND cart2demo > -225 THEN mode3text = FALSE
ledmotor1demo = TRUE ENDIF
ELSE
ledmotor1demo = FALSE IF mode2 THEN
ENDIF mode1text = FALSE
mode2text = TRUE
IF startdemo AND bantudoordemo > mode3text = FALSE
0 AND bantudoordemo < 112 THEN ENDIF
ledmotor2demo = TRUE
ELSE IF mode3 THEN
ledmotor2demo = FALSE mode1text = FALSE
ENDIF mode2text = FALSE
mode3text = TRUE
IF startdemo AND bantugeserdemo ENDIF
< 0 AND bantugeserdemo > -5 THEN
ledmotor3demo = TRUE
ELSE Script Name: Solenoid
ledmotor3demo = FALSE Trigger Event: On Regular
ENDIF Interval
Interval Time: 50 Milliseconds
IF startdemo AND solpulldemo < 0
AND solpulldemo >= -15 THEN IF solenoidt THEN
ledsolpulldemo = TRUE solpullplci = solpullplci - 10
ELSE hookrotplci = hookrotplci + 10
ledsolpulldemo = FALSE ELSE
ENDIF solpullplci = solpullplci + 10
hookrotplci = hookrotplci - 10
ENDIF
Script Name: seal
Trigger Event: On Regular
Interval Script Name: Door
Interval Time: 500 Milliseconds Trigger Event: On Regular
Interval
IF sealclosedemo THEN Interval Time: 100 Milliseconds
bantugeserdemo = bantugeserdemo
- 1 IF door_closet THEN
ENDIF manmotor2plci = manmotor2plci +
15
IF sealopendemo THEN ENDIF
bantugeserdemo = bantugeserdemo
+ 1 IF door_opent THEN
manmotor2plci = manmotor2plci - ENDIF
15
ENDIF IF cart_int THEN
manmotor1plci = manmotor1plci -
10
Script Name: Distemp mancartplci = mancartplci - 10
Trigger Event: On Regular ENDIF
Interval
Interval Time: 100 Milliseconds IF cart_outt AND out_uc_done OR
manualmode AND cart_outt OR
CALL wtemperatur( ) cart_outr THEN
DBMove( "Data mancartplci = mancartplci + 10
Temperatur.Recordset1", "Last" ) ENDIF
CALL ReadTemperatur( )
Script Name: kondisi
Trigger Event: On Regular
Script Name: Pressure Interval
Trigger Event: On Regular Interval Time: 10 Milliseconds
Interval
Interval Time: 10000 IF cart_int OR cart_outt THEN
Milliseconds motor1plc = TRUE
ELSE
motor1plc = FALSE
IF water_out THEN ENDIF
pressurei = pressurei - 1
ENDIF IF door_closet OR door_opent
THEN
IF water_in THEN motor2plc = TRUE
pressurei = pressurei + 3 ELSE
ENDIF motor2plc = FALSE
ENDIF

Script Name: Seal IF seal_int OR seal_outt THEN


Trigger Event: On Regular motor3plc = TRUE
Interval ELSE
Interval Time: 100 Milliseconds motor3plc = FALSE
ENDIF
IF seal_int THEN
manmotor3plci = manmotor3plci - IF out_uc_done THEN
2 manbenang1 = FALSE
ENDIF manbenang2 = TRUE
ELSE
IF seal_outt THEN manbenang1 = TRUE
manmotor3plci = manmotor3plci + manbenang2 = FALSE
3 ENDIF
ENDIF
IF heatervalve4 THEN
heaterplc = TRUE
Script Name: Cart ENDIF
Trigger Event: On Regular
Interval
Interval Time: 130 Milliseconds Script Name: timer
Trigger Event: On Regular
IF cart_outt THEN Interval
manmotor1plci = manmotor1plci + Interval Time: 1000 Milliseconds
10
IF mode1text AND steam_valve Script Name: tes_delay
THEN Trigger Event: On Regular
timer1 = TRUE Interval
ENDIF Interval Time: 1 Milliseconds

IF mode2text AND steam_valve IF pb_start THEN


THEN tesdelay = TRUE
timer2 = TRUE ENDIF
ENDIF
IF tesdelay THEN
IF mode3text AND steam_valve tesdelayi = tesdelayi + 1
THEN ENDIF
timer3 = TRUE
ENDIF delay = tesdelayi / 2

IF timer1 THEN IF cart_int THEN


timer1i = timer1i + 1 tesdelay = FALSE
bb = bb + 1 ENDIF
ENDIF

IF bb == 60 THEN Script Name: Runtime in Times


aa = aa + 1 Trigger Event: On Regular
bb = 0 Interval
ENDIF Interval Time: 10 Milliseconds

IF timer1i == 240 THEN IF limitdcplc THEN


timer1 = FALSE banturunlimitdc =
ENDIF banturunlimitdc + 1
ELSE
IF timer2 THEN banturunlimitdc =
timer2i = timer2i + 1 banturunlimitdc - 1
bb = bb + 1 ENDIF
ENDIF
IF banturunlimitdc == 2 THEN
IF timer2i == 300 THEN runtimelimitdc =
timer2 = FALSE runtimelimitdc + 1
ENDIF ENDIF

IF timer3 THEN IF limitdoplc THEN


timer3i = timer3i + 1 banturunlimitdo =
bb = bb + 1 banturunlimitdo + 1
ENDIF ELSE
banturunlimitdo =
IF timer3i == 330 THEN banturunlimitdo - 1
timer3 = FALSE ENDIF
ENDIF
IF banturunlimitdo == 2 THEN
IF stop_uc THEN runtimelimitdo =
timer1 = FALSE runtimelimitdo + 1
timer2 = FALSE ENDIF
timer3 = FALSE
ENDIF IF limitscplc THEN
banturunlimitsc =
banturunlimitsc + 1
ELSE
banturunlimitsc = IF banturunlevelswitch == 2 THEN
banturunlimitsc - 1 runtimelevelswitch =
ENDIF runtimelevelswitch + 1
ENDIF
IF banturunlimitsc == 2 THEN
runtimelimitsc = IF level2plc THEN
runtimelimitsc + 1 banturunlevelswitch2 =
ENDIF banturunlevelswitch2 + 1
ELSE
IF limitsoplc THEN banturunlevelswitch2 =
banturunlimitso = banturunlevelswitch2 - 1
banturunlimitso + 1 ENDIF
ELSE
banturunlimitso = IF banturunlevelswitch2 == 2
banturunlimitso - 1 THEN
ENDIF runtimelevelswitch2 =
runtimelevelswitch2 + 1
IF banturunlimitso == 2 THEN ENDIF
runtimelimitso =
runtimelimitso + 1 IF level3plc THEN
ENDIF banturunlevelswitch3 =
banturunlevelswitch3 + 1
IF limitinplc THEN ELSE
banturunlimitin = banturunlevelswitch3 =
banturunlimitin + 1 banturunlevelswitch3 - 1
ELSE ENDIF
banturunlimitin =
banturunlimitin - 1 IF banturunlevelswitch3 == 2
ENDIF THEN
runtimelevelswitch3 =
IF banturunlimitin == 2 THEN runtimelevelswitch3 + 1
runtimelimitin = ENDIF
runtimelimitin + 1
ENDIF
Script Name: Runtime in Minutes
IF limitoutplc THEN Trigger Event: On Regular
banturunlimitout = Interval
banturunlimitout + 1 Interval Time: 1000 Milliseconds
ELSE
banturunlimitout = IF water_in THEN
banturunlimitout - 1 banturuntimesol1 =
ENDIF banturuntimesol1 + 1
ENDIF
IF banturunlimitout == 2 THEN
runtimelimitout = IF water_out THEN
runtimelimitout + 1 banturuntimesol2 =
ENDIF banturuntimesol2 + 1
banturuntimemotorvac =
IF level1plc THEN banturuntimemotorvac + 1
banturunlevelswitch = ENDIF
banturunlevelswitch + 1
ELSE IF steam_valve THEN
banturunlevelswitch = banturuntimesol3 =
banturunlevelswitch - 1 banturuntimesol3 + 1
ENDIF ENDIF
IF heaterplc THEN Expression: cartinalarm OR
banturuntimeheater = cartoutalarm
banturuntimeheater + 1
banturunvalve4 = alarmnote = "Motor 1 is not
banturunvalve4 + 1 working properly"
ENDIF CALL addalarm( )

IF motor1plc THEN
banturuntimemotor1 = Script Name: motor 2 alarm
banturuntimemotor1 + 1 Trigger Event: On Condition
banturuntimechain = Expression: doorclosealarm OR
banturuntimechain + 1 dooropenalarm
ENDIF
alarmnote = "Motor 2 is not
IF motor2plc THEN working properly"
banturuntimemotor2 = CALL addalarm( )
banturuntimemotor2 + 1
ENDIF
Script Name: motor 3 alarm
IF motor3plc THEN Trigger Event: On Condition
banturuntimemotor3 = Expression: sealinalarm OR
banturuntimemotor3 + 1 sealoutalarm
ENDIF
alarmnote = "Motor 3 is not
IF solenoidt THEN working properly"
banturunsolpull = CALL addalarm( )
banturunsolpull + 1
ENDIF
Script Name: Sol Valve 3
runtimesol1 = (banturuntimesol1 Trigger Event: On Condition
/ 60) Expression: waterinalarm
runtimesol2 = (banturuntimesol2
/ 60) alarmnote = "Solenoid valve 3 is
runtimesol3 = (banturuntimesol3 not working properly"
/ 60) CALL addalarm( )
runtimechain =
(banturuntimechain / 60)
runtimeheater = --------------------------------
(banturuntimeheater / 60) Main Page
runtimemotor1 = --------------------------------
(banturuntimemotor1 / 60)
runtimemotor2 = Script Name: Runtime in Times
(banturuntimemotor2 / 60) Trigger Event: On Regular
runtimemotor3 = Interval
(banturuntimemotor3 / 60) Interval Time: 10 Milliseconds
runtimemotorvac =
(banturuntimemotorvac / 60) IF limitdcplc THEN
runtimevalve4 = (banturunvalve4 banturunlimitdc =
/ 60) banturunlimitdc + 1
runtimesolpull = ELSE
(banturunsolpull / 60) banturunlimitdc =
banturunlimitdc - 1
ENDIF
Script Name: motor 1 alarm
Trigger Event: On Condition IF banturunlimitdc == 2 THEN
runtimelimitdc = IF limitoutplc THEN
runtimelimitdc + 1 banturunlimitout =
ENDIF banturunlimitout + 1
ELSE
IF limitdoplc THEN banturunlimitout =
banturunlimitdo = banturunlimitout - 1
banturunlimitdo + 1 ENDIF
ELSE
banturunlimitdo = IF banturunlimitout == 2 THEN
banturunlimitdo - 1 runtimelimitout =
ENDIF runtimelimitout + 1
ENDIF
IF banturunlimitdo == 2 THEN
runtimelimitdo = IF level1plc THEN
runtimelimitdo + 1 banturunlevelswitch =
ENDIF banturunlevelswitch + 1
ELSE
IF limitscplc THEN banturunlevelswitch =
banturunlimitsc = banturunlevelswitch - 1
banturunlimitsc + 1 ENDIF
ELSE
banturunlimitsc = IF banturunlevelswitch == 2 THEN
banturunlimitsc - 1 runtimelevelswitch =
ENDIF runtimelevelswitch + 1
ENDIF
IF banturunlimitsc == 2 THEN
runtimelimitsc = IF level2plc THEN
runtimelimitsc + 1 banturunlevelswitch2 =
ENDIF banturunlevelswitch2 + 1
ELSE
IF limitsoplc THEN banturunlevelswitch2 =
banturunlimitso = banturunlevelswitch2 - 1
banturunlimitso + 1 ENDIF
ELSE
banturunlimitso = IF banturunlevelswitch2 == 2
banturunlimitso - 1 THEN
ENDIF runtimelevelswitch2 =
runtimelevelswitch2 + 1
IF banturunlimitso == 2 THEN ENDIF
runtimelimitso =
runtimelimitso + 1 IF level3plc THEN
ENDIF banturunlevelswitch3 =
banturunlevelswitch3 + 1
IF limitinplc THEN ELSE
banturunlimitin = banturunlevelswitch3 =
banturunlimitin + 1 banturunlevelswitch3 - 1
ELSE ENDIF
banturunlimitin =
banturunlimitin - 1 IF banturunlevelswitch3 == 2
ENDIF THEN
runtimelevelswitch3 =
IF banturunlimitin == 2 THEN runtimelevelswitch3 + 1
runtimelimitin = ENDIF
runtimelimitin + 1
ENDIF
Script Name: Runtime in Minutes
Trigger Event: On Regular runtimechain =
Interval (banturuntimechain / 60)
Interval Time: 1000 Milliseconds runtimeheater =
(banturuntimeheater / 60)
IF water_in THEN runtimemotor1 =
banturuntimesol1 = (banturuntimemotor1 / 60)
banturuntimesol1 + 1 runtimemotor2 =
ENDIF (banturuntimemotor2 / 60)
runtimemotor3 =
IF water_out THEN (banturuntimemotor3 / 60)
banturuntimesol2 = runtimemotorvac =
banturuntimesol2 + 1 (banturuntimemotorvac / 60)
banturuntimemotorvac = runtimevalve4 = (banturunvalve4
banturuntimemotorvac + 1 / 60)
ENDIF runtimesolpull =
(banturunsolpull / 60)
IF steam_valve THEN
banturuntimesol3 =
banturuntimesol3 + 1 Script Name: timeoutalarm
ENDIF Trigger Event: On Regular
Interval
IF heaterplc THEN Interval Time: 1000 Milliseconds
banturuntimeheater =
banturuntimeheater + 1 IF cart_outt THEN
banturunvalve4 = cartoutint = cartoutint + 1
banturunvalve4 + 1 ELSE
ENDIF cartoutint = cartoutint - 1
ENDIF
IF motor1plc THEN
banturuntimemotor1 = IF cartoutint == 15 THEN
banturuntimemotor1 + 1 cartoutalarm = TRUE
banturuntimechain = ELSE
banturuntimechain + 1 cartoutalarm = FALSE
ENDIF ENDIF

IF motor2plc THEN IF cart_int THEN


banturuntimemotor2 = cartinint = cartinint + 1
banturuntimemotor2 + 1 ELSE
ENDIF cartinint = cartinint - 1
ENDIF
IF motor3plc THEN
banturuntimemotor3 = IF cartinint == 15 THEN
banturuntimemotor3 + 1 cartinalarm = TRUE
ENDIF ELSE
cartinalarm = FALSE
IF solenoidt THEN ENDIF
banturunsolpull =
banturunsolpull + 1 IF door_closet THEN
ENDIF doorcloseint = doorcloseint + 1
ELSE
runtimesol1 = (banturuntimesol1 doorcloseint = doorcloseint - 1
/ 60) ENDIF
runtimesol2 = (banturuntimesol2
/ 60) IF doorcloseint == 15 THEN
runtimesol3 = (banturuntimesol3 doorclosealarm = TRUE
/ 60) ELSE
doorclosealarm = FALSE
ENDIF

IF door_opent THEN
dooropenint = dooropenint + 1
ELSE
dooropenint = dooropenint - 1
ENDIF

IF dooropenint == 15 THEN
dooropenalarm = TRUE
ELSE
dooropenalarm = FALSE
ENDIF

IF seal_outt THEN
sealoutint = sealoutint + 1
ELSE
sealoutint = sealoutint - 1
ENDIF

IF sealoutint == 10 THEN
sealoutalarm = TRUE
ELSE
sealoutalarm = FALSE
ENDIF

IF seal_int THEN
sealinint = sealinint + 1
ELSE
sealinint = sealinint -1
ENDIF

IF sealinint == 10 THEN
sealinalarm = TRUE
ELSE
sealinalarm = FALSE
ENDIF
Visual Studio C# 2010 timer1.Stop();
-------------------------------- label1.Text = "0";
Form1.cs }
--------------------------------
using System; double a;
using System.Collections.Generic; private void
using System.ComponentModel; timer1_Tick(object sender, EventArgs
using System.Data; e)
using System.Drawing; {
using System.Linq; a++;
using System.Text;
using System.Windows.Forms; axMathworks_Strip1.AddXY(0, a,
using System.Data.OleDb; V[0]);
label1.Text =
namespace TEST1 Convert.ToString(V[0]);
{ temp =
public partial class Form1 : Convert.ToInt32(V[0]);
Form this.ConnectDb();
{ }
OleDbConnection connect =
new OleDbConnection(); double[] V = new Double[8];
OleDbCommand command = new private void
OleDbCommand(); serialPort1_DataReceived(object
int temp; sender,
public Form1() System.IO.Ports.SerialDataReceivedEv
{ entArgs e)
InitializeComponent(); {
} char[] awal = new
char[2];
private void string[] buf_port = new
button1_Click(object sender, string[8];
EventArgs e)
{ serialPort1.Read(awal,
serialPort1.Close(); 0, 1);
serialPort1.PortName = if (awal[0] == 'A')
comboBox1.Text; {
serialPort1.BaudRate = buf_port[0] =
9600; serialPort1.ReadLine();
serialPort1.Parity = V[0] =
System.IO.Ports.Parity.None; Convert.ToDouble(buf_port[0]);
serialPort1.DataBits = }
8; }
serialPort1.StopBits =
System.IO.Ports.StopBits.One; private void
serialPort1.Open(); comboBox1_Click(object sender,
button1.Enabled = false; EventArgs e)
button2.Enabled = true; {
timer1.Start(); comboBox1.Items.Clear();
} foreach (string r in
System.IO.Ports.SerialPort.GetPortNa
private void mes())
button2_Click(object sender, {
EventArgs e)
{ comboBox1.Items.Add(r);
serialPort1.Close(); }
button1.Enabled = true; }
button2.Enabled = false;
private void ConnectDb()
{
try
{

connect.ConnectionString =
@"Provider=Microsoft.ACE.OLEDB.12.0;
Data
Source=C:\Users\IKAL\Documents\rev6.
accdb";
command.CommandText
= "INSERT INTO rev6 (nomer) VALUES
('" + temp + "')";
connect.Open();
command.Connection =
connect;

command.ExecuteNonQuery();
connect.Close();
}
catch (Exception)
{

}
}

private void
CloseConnectDb()
{
if (connect != null)
{
connect.Close();

}
}

}
}
LAMPIRAN B

FOTO ALAT DAN SOFTWARE


Foto perangkat keras Yarn Conditioning Plant

Gambar halaman utama HMI


Gambar halaman utama

Gambar halaman pengontrolan


Gambar halaman tentang plant

Gambar halaman demo


Gambar halaman runtime graph

Gambar tampilan utama software visual studio c#

Gambar tampilan grafik software visual studio c#


Foto PLC CPM1A

Foto Protokol Komunikasi RS 232

Foto Saat Pengambilan Data HMI


Foto Saat Pengecekan Alat
LAMPIRAN C

LADDER DIAGRAM
LAMPIRAN D
DATA PENGUJIAN
Tabel Data pengujian tombol start.
Pengujian ke- Instrument Kondisi pada Plant
1 On
2 Motor 1 On
3 On

Tabel Data pengujian tombol stop.


Pengujian ke- Instrument Kondisi pada Plant
1 Off
2 Motor 1 Off
3 Off
1 Off
2 Solenoid Valve 1 Off
3 Off

Tabel Data pengujian tombol reset.


Pengujian ke- Instrument Kondisi pada Plant
Limit Out On
1 Limit Door Open On
Float Switch Up On
Limit Out On
2 Limit Door Open On
Float Switch Up On
Limit Out On
3 Limit Door Open On
Float Switch Up On

Tabel Data pengujian toggle cart switch.


Pengujian ke- Posisi Toggle Instrument Kondisi pada Plant
Motor 1
1 On
Limit In
On Motor 1
2 On
Limit In
Motor 1
3 On
Limit In
Motor 1
1 On
Limit Out
Motor 1
2 Off On
Limit Out
Motor 1
3 On
Limit Out

Tabel Data pengujian toggle door switch.


Pengujian ke- Posisi Toggle Instrument Kondisi pada Plant
Motor 2
1 On
Limit Door Close
On Motor 2
2 On
Limit Door Close
Motor 2
3 On
Limit Door Close
Motor 2
1 On
Limit Door Open
Motor 2
2 Off On
Limit Door Open
Motor 2
3 On
Limit Door Open
Tabel Data pengujian toggle water switch.
Pengujian ke- Posisi Toggle Instrument Kondisi pada Plant
Solenoid Valve 2
1 Motor Vacuum On
Float Switch Down
Solenoid Valve 2
2 On Motor Vacuum On
Float Switch Down
Solenoid Valve 2
3 Motor Vacuum On
Float Switch Down
Solenoid Valve 1
1 On
Float Switch Up
Solenoid Valve 1
2 Off On
Float Switch Up
Solenoid Valve 1
3 On
Float Switch Up
Tabel Data pengujian delay.
Pengujian ke - Indikator alamat 10.02 Delay (detik)
1 On 1,22
2 On 1,27
3 On 1,15
4 On 1,13
5 On 1,19
6 On 1,23
7 On 1,13
8 On 1,32
9 On 1,22
10 On 1,15

Tabel Data pengujian monitoring keadaan I

Pengujian ke- Instrument Kondisi pada plant Kondisi pada HMI


1 On On
2 Motor 1 On On
3 On On

Tabel Data pengujian monitoring keadaan II

Pengujian ke- Instrument Kondisi pada Plant Kondisi pada HMI


1 On On
2 Solenoid Pull On On
3 On On
1 On On
2 Limit In On On
3 On On
Tabel Data pengujian monitoring keadaan III
Pengujian ke- Instrument Kondisi pada Plant Kondisi pada HMI
1 On On
2 Motor 1 On On
3 On On

Tabel Data pengujian monitoring keadaan IV


Pengujian ke- Instrument Kondisi pada Plant Kondisi pada HMI
1 On On
2 Limit Out On On
3 On On
1 On On
2 Motor 2 On On
3 On On

Tabel Data pengujian monitoring keadaan V

Pengujian ke- Instrument Kondisi pada Plant Kondisi pada HMI


1 On On
2 Motor 3 On On
3 On On

Tabel Data pengujian monitoring keadaan VI


Pengujian ke- Instrument Kondisi pada Plant Kondisi pada HMI
1 On On
2 Float Switch Up On On
3 On On
1 On On
2 Motor Vacuum On On
3 On On
1 On On
2 Solenoid Valve 2 On On
3 On On

Tabel Data pengujian monitoring keadaan VII


Pengujian ke- Instrument Kondisi pada Plant Kondisi pada HMI
1 Float Switch Mid On On
2 On On
3 On On
1 On On
2 Solenoid Valve 3 On On
3 On On

Tabel Data pengujian monitoring keadaan VIII


Pengujian ke- Instrument Kondisi pada Plant Kondisi pada HMI
1 On On
2 Solenoid Valve 1 On On
3 On On

Tabel Data pengujian monitoring keadaan IX

Pengujian ke- Instrument Kondisi pada Plant Kondisi pada HMI


1 On On
2 Float Switch Up On On
3 On On
1 On On
2 Motor 2 On On
3 On On

Tabel Data pengujian monitoring keadaan XI


Pengujian ke- Instrument Kondisi pada Plant Kondisi pada HMI
1 On On
2 Motor 1 On On
3 On On
Tabel Data pengujian monitoring keadaan XI
Pengujian ke- Instrument Kondisi pada Plant Kondisi pada HMI
1 On On
2 Motor 1 On On
3 On On

Tabel Hasil pengujian monitoring proses pengondisian benang.


Keadaan Sensor dan Aktuator Kondisi pada Plant Kondisi pada HMI
I Motor 1 On On
Solenoid Pull On On
II
Limit In On On
III Motor 1 On On
Limit Out On On
IV
Motor 2 On On
V Motor 3 On On
Float Switch Up On On
VI Motor Vacuum On On
Solenoid Valve 2 On On
Float Switch Mid On On
VII
Solenoid Valve 3 On On
VIII Solenoid Valve 1 On On
Float Switch Up On On
IX
Motor 2 On On
X Motor 1 On On
XI Motor 1 On On
Tabel Hasil pengujian monitoring runtime
Sensor dan Aktuator Awal Proses Proses ke-1 Proses ke-2 Proses ke-3
Solenoid Valve 1 (detik) 0 4 13 18
Solenoid Valve 2 (detik) 0 575 1139 1524
Solenoid Valve 3 (detik) 0 140 294 434
Solenoid Pull (detik) 0 6 12 16
Manual Valve (detik) 0 961 1839 2532
Motor 1 (detik) 0 21 42 62
Motor 2 (detik) 0 8 16 25
Motor 3 (detik) 0 9 19 27
Motor Vacuum (detik) 0 575 1139 1524
Chain Conveyor (detik) 0 21 42 62
Heater (detik) 0 965 1846 2540
Limit In (kali) 0 4 8 12
Limit Out (kali) 0 5 10 15
Limit Door Close (kali) 0 2 4 6
Limit Door Open (kali) 0 3 6 9
Limit Seal Close (kali) 0 2 4 6
Limit Seal Open (kali) 0 4 8 12
Float Switch Up (kali) 0 4 8 10
Float Switch Mid (kali) 0 2 4 6
Float Switch Down (kali) 0 0 0 0

Gambar hasil pengujian database data instrument


Gambar data runtime sebelum aplikasi dimatikan

Gambar tampilan runtime pada microsoft access


Tabel Pengujian monitoring timeout alarm

Pengujian Keadaan
Instrument Keadaan Pada HMI
ke- pada Plant
1 Off Indikator Kuning dan alarm aktif
2 Motor 1 Off Indikator Kuning dan alarm aktif
3 Off Indikator Kuning dan alarm aktif
1 Off Indikator Kuning dan alarm aktif
2 Motor 2 Off Indikator Kuning dan alarm aktif
3 Off Indikator Kuning dan alarm aktif
1 Off Indikator Kuning dan alarm aktif
Motor 3
2 Off Indikator Kuning dan alarm aktif
3 Off Indikator Kuning dan alarm aktif
1 Off Indikator Kuning dan alarm aktif
Solenoid
2 Off Indikator Kuning dan alarm aktif
Valve 1
3 Off Indikator Kuning dan alarm aktif

Gambar tampilan Laporan Penggunaan Harian


LAMPIRAN E
DATA SHEET

LAMPIRAN F
MAKALAH SEMINAR TUGAS AKHIR
PERANCANGAN SISTEM ANTARMUKA BERBASIS HMI (HUMAN
MACHINE INTERFACE) PADA MESIN YARN CONDITIONING PLANT
DI PT. APAC INTI CORPORA

Rousyan Faikar1, Budi Setiyono2, Sumardi2


Jurusan Teknik Elektro, Universitas Diponegoro Semarang
Jl. Prof. Sudharto, SH, Kampus UNDIP Tembalang, Semarang 50275, Indonesia

E-mail: rousyanfaikar@gmail.com

Abstrak
Industri tekstil dan produk tekstil (TPT) merupakan salah satu industri yang penting karena merupakan
gabungan dari industri berteknologi tinggi, padat modal, dan keterampilan sumber daya manusia yang menyerap
tenaga kerja. Namun secara internal industri tekstil di Indonesia masih menghadapi berbagai permasalahan yang
disebabkan karena peralatan yang relatif tua. Salah satu sistem yang berfungsi untuk meningkatkan
produktivitas adalah sistem SCADA. SCADA pada Yarn Conditioning Plant (YCP) dibuat dengan
menggunakan personal computer (PC) sebagai HMI dan master station, CX-Supervisor sebagai program HMI.
PLC Omron CPM1A digunakan sebagai jalur komunikasi antara master dan slave station. Visual studio c#
sebagai media akuisisi data temperatur dari mikrokontroler. Manajemen informasi dirancang menggunakan
Microsoft Access 2010 sebagai penyimpaan database. Pada penelitian ini terdapat 4 pengujian yaitu pengujian
pengontrolan, monitoring, delay dan database. Dari hasil 4 pengujian tersebut didapatkan sistem berjalan dengan
baik. Pada pengujian pengontrolan tombol start, stop dan reset, plant dapat dikendalikan sesuai dengan yang
seharusnya. Pengujian monitoring, HMI dapat mengikuti segala kondisi pada plant. Pada pengujian delay
didapat adanya delay 1,201 detik antara komunikasi HMI dan PLC. Pada pengujian database semua informasi
yang dibutuhkan dapat disimpan dengan baik pada MS access 2010.

Kata-kunci: PLC Omron CPM1A, Proses Pengondisian Benang, HMI, Database

Abstract

The textile (TPT) is one of important industry because it is a combination among high-tech technology, capital
intensive, and absorbs so many human resources. However, internally the textile industries in Indonesia have to
face so many problems due to the use of old machines. One of the systems that serve to increase productivity is
the SCADA system. SCADA in Yarn Conditioning Plant is built by using personal computer (PC) as human-
machine interface (HMI) and master station, CX-supervisor is used as HMI program. Omron PLC, CPM1A, is
used as communication line between master and slave stations. Slav. Visual Studio C# has a function to collect
temperature data from microcontroller to HMI. Information management was designed utilizing Microsoft
Access 2010 as data storage connected to HMI. In this research, there are four assessments carried out: control,
monitoring, delay and database. Based on the assessments, it can be inferred that system worked well. In the
control assessments, the start, stop and reset button can control the plant as it has to be. Monitoring assessments,
HMI can follow all condition of the plant. In delay assessments, the delay between HMI and PLC obtained
1,201 second. All of required information could be stored property in Microsoft Access 2010 based on database
assessment.

Keywords: PLC Omron CPM1A, Yarn Conditioning Process, HMI, Database


1. Pendahuluan Secara Keseluruhan sistem terdiri atas beberapa
bagian yang dapat digambarkan pada blok
Industri tekstil dan produk tekstil (TPT) diagram seperti Gambar 1.
merupakan salah satu industri yang penting
karena merupakan gabungan dari industri
berteknologi tinggi, padat modal, dan
keterampilan sumber daya manusia yang
menyerap tenaga kerja. Sebagai salah satu
sektor industri yang bersifat labor intensive,
industri TPT diharapkan mampu mendorong
penyerapan tenaga kerja pada sektor industri.
Selain itu, industri TPT termasuk ke dalam
klaster industri yang difokuskan untuk
pertumbuhan ekonomi. Industri TPT memiliki
kontribusi yang besar terhadap PDB Indonesia Gambar 1. Blok Diagram sistem keseluruhan
dan masuk dalam kelompok lima industri
dengan kontribusi terbesar dalam pembentukan Berikut ini adalah deskripsi cara kerja mesin Yarn
PDB. Secara internal, industri tekstil di Indonesia Conditioning Plant secara umum:
masih menghadapi berbagai permasalahan utama 1. Sistem terdiri dari dua bagian yaitu bagian
yaitu penggunaan mesin-mesin yang relatif plant (perangkat keras) dan bagian aplikasi
sudah tua[1]. (perangkat lunak).
2. Proses dapat dimulai dengan menekan tombol
Perkembangan komputer dengan biaya rendah start pada plant di lapangan atau dengan
telah membawa kepada revolusi teknologi yaitu menekan tombol start pada aplikasi.
telnologi PLC (Programable Logic Controller). 3. Dalam proses pengondisian benang sensor
Penggunaan PLC di mulai sejak tahun 1970 an dan aktuator yang aktif akan dapat dilihat dari
dan menjadi pilihan utama dalam pengontrolan di aplikasi. Posisi kereta pada konveyor dan
industri manufaktur[2]. Software PLC yang di keadaan level air pada tank dapat ditampilkan
jalankan pada PC dikategorikan dalam 2 hal dalam aplikasi.
berikut, yaitu Software PLC yang digunakan user 4. Bagian aplikasi dapat mengirimkan perintah
untuk membuat program untuk menjalankan dan menerima data dari bagian alat dan
bemacam-macam kondisi input dan output (Plant mengolahnya menjadi data yang dibutuhkan
process), dan PLC yang digunakan user untuk oleh user.
memonitor plant process tersebut, dikenal 5. Bagian aplikasi akan mengambil data pada
sebagai Human Machine Interface (HMI). HMI semua sensor dan aktuator yang digunakan
tersebut sangat membantu user dalam pada plant berupa lama pemakaian. Data
peningkatan kinerja mesin kedepannya, serta tersebut digunakan untuk mempermudah
dapat membantu dalam record data. proses maintenance.
6. Hanya supervisor yang dapat melakukan
Pada tugas akhir ini penulis akan mewujudkan semua fungsi aplikasi, dan selain supervisor
sistem HMI pada perangkat keras Yarn hanya dapat melakukan fungsi-fungsi tertentu
Conditioning Plant (YCP) dalam bentuk saja.
software. Perangkat keras yang digunakan
mengacu pada penelitian sebelumnya oleh Juan
Maurice[3]. Software utama yang digunakan 2.2 Perancangan SCADA
dalam sistem HMI yaitu CX Supervisor yang
berfungsi sebagai HMI. Istilah HMI ini muncul Perancangan SCADA dibuat menggunakan
untuk menjembatani antara manusia dan mesin, software CX-Supervisor Ver 3.2. Dalam hal ini
sehingga pengguna dapat memantau dan untuk perancangan SCADA digunakan ladder
mengendalikan plant dengan mudah. Salah satu diagram[4] sebagai point address pada HMI.
keunggulan dari sistem HMI pada tugas akhir ini, Perancangan SCADA ini meliputi perancangan
HMI dapat memantau lama pakai atau runtime HMI yang berfungsi sebagai media untuk
dari pemakaian sensor dan aktuator. melakukan monitoring dan kontrol terhadap
plant, dan perancangan basisdata menggunakan
Tujuan dari penelitian ini adalah membuat Microsoft Access yang digunakan sebagai media
software pengaturan sistem pengondisian benang penyimpanan data yang terhubung kepada HMI.
dengan HMI (Human Machine Interface) sebagai
media yang mempermudah pengguna dalam
mengoperasikan plant.

2. Metode
2.1 Prinsip Kerja Sistem
Visual C# CX Supervisor
START START

Halaman Awal

Pilih Port Tidak


Login

Ya
Call Database

Tidak Halaman Utama


Connect
Input Data
Instrument
Ya

Ya Cek
Gambar 2. Rancangan sistem SCADA Alarm

Tidak

Sistem SCADA yang dipakai untuk melakukan Mode Automatis


Tidak Mode
Manual
monitoring dan pengontrolan pada prototype
dibagi kedalam 3 subbagian yaitu: Ya

 Master Station Mode 1 Mode 2 Mode 3

 Protokol Komunikasi
 Slave Station Tidak
Kirim
Disconnect Proses Berjalan
Data Temperatur

2.3 Perancangan Perangkat Lunak Ya Tidak


Logout

Perancangan perangkat lunak ini terdiri dari dua Tidak Ya


Keluar
bagian yaitu perancangan ladder diagram dan Aplikasi
Write Database

perancangan HMI. Perancangan alat Ya Tidak


pengondisian benang yang telah dilakukan oleh Keluar
Aplikasi
peneliti sebelumnya[3] digunakan PLC Omron Ya
CPM1A sebagai pengendali dengan menanamkan END END
ladder diagram melalui sofware CX-programmer Gambar 3. Flowchart sistem keseluruhan
versi 9. Ladder diagram tersebut digunakan
sebagai address yang digunakan untuk 2.3.1 Perancangan HMI
menjalankan proses pengondisian benang pada
HMI. Flowchart dari sistem SCADA dalam Perancangan HMI pada mesin Yarn Conditioning
tampilan HMI dapat dilihat pada Gambar 3. Plant (YCP) ini digunakan untuk mengontrol dan
memonitor plant pada saat proses berlangsung.
Sistem diawali dengan munculnya halaman awal Perangkat lunak yang digunakan adalah CX-
pada HMI. Kemudian untuk masuk kedalam Supervisor. Penulis menggunakan software CX-
halaman utama, user diharuskan login terlebih Supervisor karena software tersebut merupakan
dahulu. Pada halaman awal HMI ini juga terdapat perangkat lunak yang dikhususkan oleh Omron
tiga pilihan yaitu Login, About Plant, dan Exit. dalam pembuatan interface dari perangkat keras
About Plant berisi penjelasan singkat seputar PLC.. Perancangan HMI menggunakan perangkat
plant yang dikendalikan oleh HMI. Setelah lunak CX-Supervisor dirancang agar HMI
memasukan ID dan password yang benar, maka memiliki tampilan yang sederhana sehingga
akan muncul halaman utama yang sebelumnya memudahkan user dalam menggunakannya.
terdapat pemanggilan basisdata sebagai Proses yang dalam dilihat dari tampilan HMI
inisialisasi awal. Untuk memulai proses adalah proses monitoring, pengontrolan, dan
pengondisian benang, user dapat menekan tombol pembuatan basisdata.
control page sehingga masuk kedalam halaman
pengendalian. User dapat menekan tombol logout Halaman pengontrolan adalah halaman yang
untuk mengakhiri penggunaan aplikasi HMI. memiliki fungsi penuh pengendalian terhadap
Sebelum keluar HMI akan menyimpan data plant. Pada halaman pengontrolan terdapat
pemakaian terakhir kedalam basisdata yang beberapa tombol untuk pengendalian proses pada
digunakan untuk inisialisasi pada pemakaian bagian bawah layar, yaitu toggle automatic
aplikasi selanjutnya. manual, water switch, door switch, cart switch,
Mode 1, Mode 2, Mode 3, Start, Stop, dan Reset.
Terdapat dua mode pengendalian pada perangkat
lunak yang dibuat, yaitu mode automatis dan dapat digunakan sebagai inisialisasi awal pada
manual. Untuk mengaktifkan mode automatis, pemakaian aplikasi berikutnya.
maka user diharuskan untuk menekan toggle
automatic manual lalu memilih mode dan Dalam merancang basisdata, salah satu hal yang
perlu diperhatikan adalah normalisasi. Tujuan
menekan tombol start. Mode yang dipilih akan normalisasi adalah untuk menghasilkan struktur
ditampilkan pada kotak alarm. Gambar 4 adalah basisdata yang mampu menampung data yang
gambar dari tampilan halaman pengontrolan. diperlukan secara lengkap dan meminimalkan
terjadinya duplikasi[5]. Gambar 5 menunjukkan
diagram ketergantungan dari perancangan
basisdata sistem SCADA.

3. Pengujian dan Analisa


Pengujian sistem SCADA akan dilakukan empat
pengujian. Pengujian tersebut yaitu pengujian
sistem pengontrolan, delay, monitoring, dan
basisdata.

3.1 Pengujian Sistem Pengontrolan


3.1.1 Pengujian Tombol Start
Pengujian tombol start dilakukan dengan
menekan tombol start pada halaman
Gambar 4. Halaman pengontrolan pengontrolan. Penekanan pada tombol start akan
memulai proses awal pada plant. Proses awal
2.3.2 Perancangan Basisdata pada plant dimulai dengan aktifnya motor 1 untuk
menggerakkan kereta masuk ke dalam tabung
YCP. Pada pengujian ini akan dilakukan
pengujian sebanyak 3 kali. Tabel 1 menunjukkan
data hasil pengujian tombol start.

Tabel 1. Data pengujian tombol start

Pengujian Instrument Kondisi pada


ke- Plant
1 Motor 1 On
2 Motor 1 On
3 Motor 1 On

3.1.2 Pengujian Tombol Stop


Pengujian tombol stop dilakukan dengan
menekan tombol stop pada halaman
pengontrolan. Penekanan pada tombol stop akan
menghentikan semua proses pada plant.. Semua
proses pada plant akan berhenti. Pada pengujian
ini, pengujian akan dilakukan sebanyak 3 kali
pada setiap aktuator. Tabel 4.2 menunjukkan data
hasil pengujian tombol stop.
Tabel 2. Data pengujian tombol stop.

Gambar 5. Diagram ketergantungan Pengujian Instrument Kondisi pada


ke- Plant
1 Off
Perancangan basisdata menggunakan microsoft 2 Motor 1 Off
access sebagai media penyimpan data dari HMI. 3 Off
Proses pengaksesan, dan manipulasi data dapat 1 Off
dilakukan melalui aplikasi karena microsoft 2 Solenoid Valve Off
1
access terhubung langsung dengan HMI. Fungsi 3 Off
menyimpan data pada basisdata adalah salah satu
fungsi penting dalam perancangan basisdata. Data 3.1.3 Pengujian Tombol Reset
yang sudah disimpan pada basisdata tidak dapat
hilang ketika aplikasi ditutup dan data tersebut
Pengujian tombol reset dilakukan dengan 3.3 Pengujian Sistem Monitoring
menekan tombol reset pada halaman 3.3.1 Pengujian Monitoring Proses
pengontrolan. Penekanan pada tombol reset akan
mengembalikan semua aktuator kedalam posisi Pengondisian Benang
standby. Keadaan standby adalah keadaan dimana
plant siap untuk melakukan proses pengondisian Pada pengujian monitoring, HMI akan memonitor
benang. Adapun kondisi-kondisi aktuator saat segala perubahan kondisi dari setiap keadaan
standby yaitu posisi kereta menyentuh limit out, pada proses pengondisian benang. Setiap keadaan
pintu tabung YCP menyentuh limit door open, akan diuji sebanyak 3 kali. Berikut adalah
dan keadaan air dalam tabung terisi penuh keadaan-keadaan yang terdapat pada plant:
sehingga float switch up dalam keadaan On. Pada  Keadaan I adalah keadaan yang mengawali
pengujian ini akan dilakukan pengujian sebanyak proses pengondisian benang. Pada keadaan ini
3 kali. Tabel 3 menunjukkan data hasil pengujian terdapat proses pemasukkan benang ke dalam
tombol reset. tabung YCP oleh kereta. Pada keadaan I
aktuator yang aktif adalah motor 1.
Tabel 3. Data pengujian tombol reset.  Keadaan II adalah keadaan dimana solenoid
pull aktif. Solenoid pull ini berfungsi melepas
Pengujian Kondisi pada pengait (hook) kereta dari kereta pembawa
ke- Instrument Plant benang. Jadi pada keadaan ini sensor dan
Limit Out On aktuator yang aktif adalah limit in dan
Limit Door On solenoid pull.
1 Open  Keadaan III adalah keadaan dimana motor 1
Float Switch On aktif dan menarik kereta pengait menjauhi
Up tabung YCP. Jadi pada keadaan III aktuator
Limit Out On
Limit Door yang aktif adalah motor 1.
2 Open On  Keadaan IV adalah proses penutupan pintu
Float Switch On tabung YCP. Aktuator yang digunakan untuk
Up menutup pintu tabung adalah motor 2.
Limit Out On  Keadaan V adalah proses seal in dimana
Limit Door On motor 3 akan aktif untuk merapatkan pintu
3 Open tabung.
Float Switch
Up On  Keadaan VI adalah proses water out yang
berfungsi untuk mengurangi tekanan di dalam
tabung YCP. Aktuator yang aktif dalam
3.2 Pengujian Delay proses ini adalah motor vacuum dan solenoid
Tabel 4. Data pengujian delay valve 2.
 Keadaan VII adalah proses steam in. Solenoid
Pengujian Indikator alamat Delay valve 3 akan aktif sehingga uap dapat masuk
ke- 10.02 (detik) ke dalam tabung YCP.
1 On 1,22  Keadaan VIII adalah proses water in atau
2 On 1,27 pengisian air ke dalam tabung YCP sebelum
3 On 1,15 proses pembukaan pintu. Proses ini berfungsi
4 On 1,13 untuk mengembalikan tekanan dan temperatur
5 On 1,19
6 On 1,23 di dalam tabung kembali normal.
7 On 1,13  Keadaan IX adalah proses pembukaan pintu
8 On 1,32 tabung YCP oleh motor 2. Keadaan IX dapat
9 On 1,22 berjalan setelah proses steam in sudah selesai.
10 On 1,15  Keadaan X adalah proses yang terjadi
sebelum penarikan kembali kereta pembawa
Jalur komunikasi pada HMI terhadap PLC benang yang berada didalam tabung YCP oleh
memiliki waktu delay. Delay tersebut adalah lama kereta pengait.
waktu dari perintah yang dikirim dari HMI  Keadaan XI adalah akhir dari proses
sampai dapat diterima oleh PLC dan sebaliknya. pengondisian benang.
Pengujian delay dilakukan dengan menghitung
waktu dari penekanan tombol start pada HMI Tabel 5. Hasil pengujian monitoring proses
sampai indikator alamat 10.02 pada PLC pengondisian benang
menyala. Penekanan tombol start pada HMI
sebagai perintah kepada PLC dan menyalanya Kondisi Kondisi
indikator alamat 10.02 pada PLC sebagai aksi Keadaan Sensor dan pada pada
Aktuator Plant HMI
yang di perintah oleh HMI. Pengujian delay
dilakukan sebanyak 10 kali. Tabel 4. I Motor 1 On On
menunjukkan hasil dari pengujian delay. II Solenoid Pull On On
Limit In On On
III Motor 1 On On
IV Limit Out On On
Motor 2 On On
V Motor 3 On On yaitu 500 times, maka akan muncul pesan pada
Float Switch Up On On kotak alarm message yang menunjukan bahwa
VI Motor Vacuum On On jangka waktu pemakaian limit in telah melebihi
Solenoid Valve 2 On On batas.
VII Float Switch Mid On On
Solenoid Valve 3 On On
VIII Solenoid Valve 1 On On
IX Float Switch Up On On
Motor 2 On On
X Motor 1 On On
XI Motor 1 On On

Berdasarkan monitoring kesebelas keadaan yang


Gambar 6. Data Limit In
telah dilakukan maka didapat tabel hasil
pengujian. Tabel 5 menunjukkan bahwa HMI
dapat memonitor dengan baik segala keadaan dari
proses pengondisian benang.

3.3.2 Pengujian Monitoring Runtime


Pada pengujian monitoring runtime ini, akan
Gambar 7. Kotak alarm message
dilakukan proses pengondisian benang sebanyak
3 kali secara berturut-turut. Perangkat keras yang
akan dimonitor runtime-nya meliputi tiga buah 3.3.3 Pengujian Monitoring Timeout
solenoid valve, enam buah limit switch, tiga buah Alarm
float level switch, empat buah motor, chain
conveyor, dan heater. Pada pengujian monitoring timeout alarm, HMI
akan memonitor waktu yang dibutuhkan oleh
Tabel 6. Hasil Pengujian monitoring runtime aktuator untuk menjalankan sebuah perintah dari
PLC. Apabila aktuator tidak dapat menjalankan
Sensor dan Aktuator ke-0 ke-1 ke-2 ke-3 perintah tersebut dalam kurun waktu tertentu,
Solenoid Valve 1 (detik) 0 4 13 18 maka alarm peringatan akan muncul pada kotak
Solenoid Valve 2 (detik) 0 575 1139 1524 alarm HMI. Pada pengujian ini dilakukan dengan
Solenoid Valve 3 (detik) 0 140 294 434 melepas power supply pada instrument. Pelepasan
Solenoid Pull (detik) 0 6 12 16 power supply mengakibatkan instrument
Manual Valve (detik) 0 961 1839 2532 mengalami gangguan sehingga timeout alarm
Motor 1 (detik) 0 21 42 62 akan aktif.
Motor 2 (detik) 0 8 16 25
Motor 3 (detik) 0 9 19 27
Motor Vacuum (detik) 0 575 1139 1524
Chain Conveyor (detik) 0 21 42 62
Heater (detik) 0 965 1846 2540
Limit In (kali) 0 4 8 12
Limit Out (kali) 0 5 10 15
Limit Door Close (kali) 0 2 4 6
Limit Door Open (kali) 0 3 6 9
Limit Seal Close (kali) 0 2 4 6
Limit Seal Open (kali) 0 4 8 12
Float Switch Up (kali) 0 4 8 10
Float Switch Mid (kali) 0 2 4 6
Float Switch Down (kali) 0 0 0 0

Pada pengujian ini akan dilihat kenaikan runtime Gambar 8. Tampilan halaman pengontrolan saat
dari beberapa perangkat keras tersebut dari proses terjadi gangguan
pertama sampai proses ketiga. Tabel 6.
menunjukkan hasil penambahan runtime setelah Pada kotak alarm diatas memberikan informasi
tiga kali proses berjalan. bahwa motor 1 sedang dalam kondisi on, namun
pada keadaan plant sebenarnya adalah off karena
Data limit in selama proses berlangsung power supply ke motor 1 dilepas. Indikator
ditunjukkan pada Gambar 6. Gambar tersebut berwarna kuning aktif pada motor 1 menunjukkan
menunjukkan sejak pemasangan awal limit in terjadi gangguan pada aktuator tersebut. Berikut
pada tanggal 31 Mei 2015, limit in memiliki nilai adalah tabel pengujian monitoring timeout alarm
runtime sebanyak 501 times.. Karena nilai yang diujikan sebanyak 3 kali pada masing-
runtime pada limit in telah melebihi nilai lifetime masing instrument.
Tabel 4.21 Hasil Pengujian monitoring timeout
alarm

Penguji Instrume Keadaan Keadaan Pada


an ke- nt pada HMI
Plant
1 Off Indikator
2 Motor 1 Off Kuning dan
3 Off alarm aktif
1 Off Indikator
2 Motor 2 Off Kuning dan
3 Off alarm aktif
1 Off Indikator
2 Motor 3 Off Kuning dan
3 Off alarm aktif
1 Off Indikator
Solenoid Kuning dan
2 Valve 1 Off
3 Off alarm aktif

3.3.4 Pengujian Monitoring Data Gambar 10. Hasil Pengujian database data
Temperatur instrument.

Pengujian akuisisi data temperatur dilakukan 3.4.2 Pengujian Basisdata Laporan


dengan mengakuisisi data dari mikrokontroler Penggunaan Mesin
yang dihubungkan ke PC. Pada PC terdapat
program visual c# yang berguna menghubungkan
data mikrokontroler ke Microsoft Access. HMI
akan membaca data temperatur yang telah
tersimpan di Microsoft Access untuk kemudian
ditampilkan secara realtime. Gambar 9.
menunjukkan akuisisi data temperatur dari
mikrokontroler dapat berjalan secara baik pada
keadaan standby.

LCD

C#
HMI

Gambar 9. Pengujian saat keadaan standby

3.4 Pengujian Basisdata Gambar 11. Tampilan laporan penggunaan mesin


3.4.1`Pengujian Basisdata Data Laporan penggunaan mesin adalah catatan
Instrument penggunaan pemakaian instrument dan riwayat
alarm yang aktif pada plant tersebut. Laporan ini
Pengujian basisdata data instrument dilakukan berfungsi sebagai berkas pelaporan kepada
dengan memberikan masukan data instrument pimpinan tentang pemakaian alat. Untuk melihat
pada HMI. HMI yang telah terhubung dengan laporan penggunaan mesin, user dapat menekan
microsoft access akan mengirimkan dan tombol Database Access pada halaman utama dan
menyimpan data instrument kepada microsoft kemudian akan muncul tampilan basisdata. User
access. Microsoft access sebagai tempat dapat memilih form “Laporan Penggunaan
penyimpanan basisdata akan meyimpan data Mesin” untuk melihat riwayat penggunaan plant
instrument dan akan mengirim data kepada HMI dan alarm yang aktif. Form laporan penggunaan
jika diperlukan. Hasil pengujian basisdata data mesin ditunjukkan oleh gambar 11.
instrument dapat dilihat pada gambar 10.
4. Kesimpulan
Berdasarkan pengujian dan analisis yang [4] Data Sheet, “CPM1A Programmable Controllers
dilakukan pada yarn conditioning plant, hasil Operational Manual”, OMRON, December
yang didapatkan sudah dibuat sistem HMI pada 2005.
plant yang dapat berfungsi dengan baik sebagai [5] Prasetyo, Rendro, "Perancangan Sistem
sistem pengontrolan dan sistem monitoring pada Informasi Tugas Akhir dan Kerja Praktek di
proses pengondisian benang. Pada pengujian Jurusan Teknik Industri UNS", Universitas
pengontrolan tombol start, stop, dan reset plant Sebelas Maret, Surakarta 2010.
dapat dikendalikan sesuai dengan keinginan. Pada
komunikasi antara HMI dan PLC terdapat delay
untuk perintah dari HMI sampai kepada PLC BIOGRAFI
yaitu 1,201 detik. Pada fungsi monitoring, HMI
dapat memonitor plant dari semua keadaan yang Rousyan Faikar, dilahirkan di
mungkin terjadi dengan baik. Berdasarkan Kendal, 21 Juli 1994. Menempuh
pengujian monitoring runtime, dari 3 kali proses pendidikan di TK Tarbiyathul
pengondisian benang yang dilakukan menunjukan Athfal, SDN 1 Penanggulan,
adanya penambahan runtime pada Solenoid Valve SMPN 1 Pegandon, SMAN 1
1, Solenoid Valve 2, Solenoid Valve 3, Solenoid Kendal, dan saat ini menempuh
Pull, Manual Valve, Motor 1, Motor 2, Motor 3, studi S1 di Jurusan Teknik
Motor Vacuum, Chain Conveyor, Heater, Limit Elektro Konsentrasi Kontrol dan
In, Limit Out, Limit Door Close, Limit Door Instrumentasi, Fakultas Teknik, Universitas
Open, Limit Seal Close, Limit Seal Open, Float Diponegoro angkatan 2011.
Level Switch Up, Float Level Switch Mid dan
Float Level Switch Down secara berurutan Menyetujui dan Mengesahkan,
sebanyak 18 detik, 1524 detik, 434 detik, 16
detik, 2532 detik, 625 detik, 25 detik, 1524 detik, Pembimbing I
62 detik, 2540 detik, 12 kali, 15 kali, 6 kali, 9
kali, 6 kali, 12 kali, 10 kali, 6 kali dan 0 kali.
Pada pengujian timeout alarm, HMI dapat
mendeteksi dengan baik saat terjadi gangguan
pada motor 1 sehingga user dapat mengambil
tindakan lebih lanjut berdasarkan informasi Budi Setiyono, ST,MT
tersebut. Fungsi database HMI yang terhubung NIP.197005212000121001
langsung dengan microsoft access dapat
menyimpan segala data yang perlu disimpan
meliputi data dari instrument, runtime, timeout Pembimbing II
alarm dan temperatur dari pemakaian instrument
selama proses berlangsung.

Referensi
[1] Asmara, Alla, Yeti Lis Purnamadewi, Sri Sumardi, ST,MT
Mulatsih dan Tanti Novianti , “Faktor - Faktor NIP.196811111994121001
yang Memengaruhi Perkembangan Investasi
pada Industri Tekstil dan Produk Tekstil (TPT)
Indonesia”, School of Business and Management
- Institut Teknologi Bandung. 2013; 12(2): 140-
141.
[2] Midian F.D., Jason, "Perancangan Sistem
Antarmuka Berbasis HMI untuk Aplikasi Mesin
Etching PCB", Universitas Indonesia, Depok,
2009.
[3] Maurice, Juan, " Perancangan Sistem Kontrol
Berbasis PLC dan Mikrokontroler pada Mesin
Yarn Conditioning Plant (YCP) di PT. Apac Inti
Corpora ", Universitas Diponegoro, Semarang,
2015.
LAMPIRAN G
BIODATA MAHASISWA
BIODATA MAHASISWA

NamaMahasiswa : Rousyan Faikar


NIM : 21060111130111
Konsentrasi : Kontrol dan Instrumentasi
Tempat/Tgl. Lahir : Kendal / 21 Juli 1994
AlamatSekarang : Gg. Sejahtera RT 006 RW
006 Getas, Desa
Penanggulan, Kec.
Pegandon, Kab. Kendal
No.Telepon/HP : 089667969669
Alamat e-mail : rousyanfaikar@gmail.com
Motto : there is always a way to
open any door.

Pendidikan:
1. TK Tarbiyathul Athfal (1998-1999)
2. SD Negeri 1 Penanggulan (1999-2005)
3. SMP Negeri 1 Pegandon (2005-2008)
4. SMA Negeri 1 Kendal (2008-2011)
5. Teknik Elektro Universitas Diponegoro (2011-sekarang)

PengalamanOrganisasi:
1. Staf Divisi Nano Device and Instrumentation di NASAFOR,
(Nano Sains Forum Undip) (2011-2012)
2. Kepala Divisi Nano Device and Instrumentation di NASAFOR,
(Nano Sains Forum Undip) (2012-2013)
3. Staf PHILAR (Pecinta Alam Teknik Elektro),
Universitas Diponegoro (2012-2013)

Das könnte Ihnen auch gefallen