Anda di halaman 1dari 31

3.

PERENCANAAN DAN PEMBUATAN ALAT

Dari hasil studi terhadap proses pembuatan kertas pada tahap Stock
preparation, maka dilakukan penyederhanaan dari keseluruhan plant pembuatan
kertas tahap persiapan tersebut (lihat Gambar 2.1.). Gambar dari penyederhanaan
plant tersebut adalah sebagai berikut:

Dry Brokes
Chest
50 m3
Valve 1

Wet Brokes
Chest
50 m3
Valve 2

NBKP
Refined Chest
50 m3
Valve 3

LBKP Mixer
Refined Chest Mixing Chest
150 m3 100 m3 Machine Chest

Valve 4 Valve 5

Gambar 3.1. Mixing Plant pada Proses Pembuatan Kertas


Sumber: P&I Diagram Line 4 Stock Approach PM-12. Mojokerto: PT. Pabrik
Kertas Tjiwi Kimia TBK (telah diolah kembali)

Secara umum perencanaan dan pembuatan alat berdasarkan dari blok


diagram sistem yang diinginkan. Berikut adalah gambar dari blok diagram sistem:

PC
Wonderware
InTouch PLC Plant
OmronHL Simulator
Recipe Manager

SQL Access Manager

Gambar 3.2. Blok Diagram Sistem

34
Universitas Kristen Petra
35
3.1. Hardware
Perencanaan dan pembuatan hardware (perangkat keras) meliputi
pembuatan simulator plant, PLC, dan wiring (pengkabelan) antara simulator plant
dengan PLC.

3.1.1. Simulator Plant


Simulator Plant terdiri dari rangkaian input dan rangkaian output, yang
nantinya rangkaian-rangkaian ini akan dihubungkan dengan PLC.

Sensor 1
Sensor 2
Sensor 3
Sensor 4
Sensor 5
Valve 1
Valve 2
Valve 3
Valve 4
Mixer
7-segment
Valve 5

Gambar 3.3. Simulator Plant

3.1.1.1. Rangkaian Input


Sebagai pengganti sensor water level, digunakan potensiometer. Dipilih

Potensiometer tersebut merupakan input analog yang akan dihubungkan ke unit


input analog dari PLC Omron C200HG yaitu C200H-AD002 Analog Input Unit.
Adapun input range yang dipilih yaitu 0 Volt s/d 10 Volt. Dengan power supply
sebesar 12 Volt, maka untuk menghasilkan tegangan sebesar 0 V s/d 10 V pada
potensiometer tersebut perlu diberi pembagi tegangan. R pembagi tegangan
tersebut dicari dengan rumus pembagi tegangan, perhitungannya sebagai berikut:

Universitas Kristen Petra


36
100kΩ
× 12Volt = 10Volt
R + 100kΩ

R = 20kΩ
Untuk R pembagi tegangan sebesar 20 kÙ diberi VR (Variable Resistor)
20 kÙ, agar dapat diatur sedemikian rupa sehingga range tegangan pada input
sebesar 0 V s/d 10 V.
Rangkaiannya sebagai berikut:

Gambar 3.4. Rangkaian Input Analog


Rangkaian input analog tersebut dibuat sebanyak 5 buah rangkaian yang
masing-masing untuk sensor water level pada setiap tangki karena terdapat 5 buah
tangki pada plant.

3.1.1.2. Rangkaian Output


a. LED
Output berupa LED sebagai pengganti dari ON/OFF valve. Arus yang
dibutuhkan oleh LED sekitar 20 mA. Untuk membatasi arus pada rangkaian
LED dengan power supply sebesar 12 Volt, maka harus dicari nilai R yang
tepat, perhitungannya sebagai berikut:
V = I×R
V
R=
I
12
R=
0.02
R = 600Ω

Universitas Kristen Petra


37

Gambar 3.5. Rangkaian Output LED


Rangkaian output LED dibuat sebanyak 6 buah rangkaian yang masing-
masing untuk pengganti valve 1, valve 2, valve 3, valve 4, valve 5, dan mixer.

b. Seven Segment Display


Output berupa Seven Segment sebagai tampilan dari water level pada Mixing
Chest. Oleh karena output PLC hanya bisa ON (tegangan dari power supply
luar: 12 Volt) atau OFF (open), maka diberi relay pada inputan BCD to Seven
Segment (74LS47) agar pada saat output PLC ON maka 74LS47 akan
menerima logic 1 (5 volt) dan pada saat output PLC OFF maka inputan
74LS47 akan menerima logic 0 (0 Volt). Datasheet 74LS47 dapat dilihat pada
halaman lampiran. Berikut adalah gambar rangkaian decoded seven segment
display:

Universitas Kristen Petra


38
(12 V)
(12 V)
(12 V)
(12 V)

Gambar 3.6. Rangkaian Output Seven Segment Bagian 1

Gambar 3.7. Rangkaian Output Seven Segment Bagian 2

Universitas Kristen Petra


39
3.1.2. PLC
PLC yang digunakan adalah PLC Omron C200HG yang terdiri dari CPU
tipe C200HG-CPU43, C200H-AD002 Analog Input Unit, C200H-OC222 Relay
Output Unit.

3.1.2.1. Wiring Input Analog


Pada simulator plant terdapat 5 buah potensiometer sebagai pengganti 5
buah sensor level analog (water level) pada 5 buah tangki. Output (0-10 Volt) dari
kelima buah sensor analog ini masuk ke pin-pin input dari C200H-AD002 Analog
Input Unit. Wiring-nya sebagai berikut:

Tabel 3.1. Wiring Input Analog PLC


C200H-AD002
Input
Pin no. Keterangan
Sensor 1 1 Voltage input (+)
Input 1
GND 3 Common (-)
Sensor 2 23 Voltage input (+)
Input 2
GND 25 Common (-)
Sensor 3 26 Voltage input (+)
Input 4
GND 28 Common (-)
Sensor 4 29 Voltage input (+)
Input 6
GND 31 Common (-)
Sensor 5 32 Voltage input (+)
Input 8
GND 34 Common (-)

3.1.2.2. Wiring Output Diskrit


Pada simulator plant terdapat 6 buah rangkaian output LED dan sebuah
decoded seven segment display. Pin-pin output PLC dihubungkan ke rangkaian
output LED dan seven segment. Wiring-nya sebagai berikut:

Tabel 3.2. Wiring Output Diskrit PLC


C200H-OC222
Output
Pin no.
0 Valve 1
1 Valve 2
2 Valve 3
3 Valve 4
4 Mixer

Universitas Kristen Petra


40
Tabel 3.2. Wiring Output Diskrit PLC (sambungan)
5 Valve5
6 input A 7-seg
7 input B 7-seg
8 input C 7-seg
9 input D 7-seg
COM 12 VDC

3.2. Software
Program untuk menjalankan sistem ini dibuat pada Wonderware, jadi
Wonderware berfungsi untuk mengontrol sekaligus memonitor. Pada PLC tetap
diprogram menggunakan ladder logic beserta parameter-parameternya untuk
menerima input, dan mengeluarkan output. Untuk pemrograman PLC
menggunakan software SYSMAC-CPT. Dan untuk menghubungkan Wonderware
InTouch dengan PLC dibutuhkan software I/O driver OmronHL.

3.2.1. SYSMAC-CPT
Berikut ini adalah tabel address I/O PLC:

Tabel 3.3. Address Input PLC


Address Device
IR 00101 Sensor 1
IR 00102 Sensor 2
IR 00104 Sensor 3
IR 00106 Sensor 4
IR 00108 Sensor 5

Tabel 3.4. Address Output PLC


Address Device
IR 00500 Valve 1
IR 00501 Valve 2
IR 00502 Valve 3
IR 00503 Valve 4
IR 00504 Mixer
IR 00505 Valve5
IR 00506 input A 7-seg
IR 00507 input B 7-seg
IR 00508 input C 7-seg
IR 00509 input D 7-seg

Universitas Kristen Petra


41
Dalam pemrograman PLC Omron C200HG menggunakan software
SYSMAC-CPT. Berikut akan dijelaskan langkah-langkah penggunaan software
SYSMAC-CPT:
a. Membuat lembar kerja baru (New Project).
1. Memilih File pada menu tampilan awal kemudian memilih New.
2. Di dalam kotak Project Name, mengetikkan nama dari project baru yang
akan dibuat. Di dalam kotak Model, memilih C200HG dan di dalam kotak
CPU, memilih C200HG-CPU43, kemudian menekan OK.

Gambar 3.8. Create New Project


b. Menuliskan Ladder Logic dan parameter-parameter yang bersangkutan.
1. Untuk membaca 5 buah analog input pada C200H-AD002 Analog Input
Unit, maka dibuat ladder sebagai berikut:

Universitas Kristen Petra


42

Gambar 3.9. Ladder Diagram Bagian Input Analog

Universitas Kristen Petra


43
2. Ada beberapa nilai DM Area yang harus diset, yaitu pada DM1000 diberi
nilai 0154, dan DM1001 diberi nilai 7775, untuk lebih jelasnya pemberian
nilai DM1000 dapat dilihat pada tabel 3.3 dan DM1001 pada tabel 3.4.

Tabel 3.5. DM1000 Value


DM1000
Bit Fungsi Nilai bit
Value
15 not used 0
14 not used 0
0
13 not used 0
12 not used 0
11 not used 0
10 not used 0
1
09 Limit mode 0
08 format data 1
07 input 8 0
06 input 7 1
5
05 input 6 0
04 input 5 1
03 input 4 0
02 input 3 1
4
01 input 2 0
00 input 1 0

Tabel 3.6. DM1001 Value


DM1001
Bit Fungsi Nilai bit
Value
15 input range 8 0
14 1
7
13 input range 7 1
12 1
11 input range 6 0
10 1
7
09 input range 5 1
08 1
07 input range 4 0
06 1
7
05 input range 3 1
04 1
03 input range 2 0
02 1
5
01 input range 1 0
00 1

Universitas Kristen Petra


44
3. Untuk mengakses output dari PLC melalui Wonderware, didefinisikan
work bit (HR area)yang dapat mengendalikan ON/OFF dari output.

Gambar 3.10. Ladder Diagram Bagian Output Diskrit

Universitas Kristen Petra


45
4. Pada akhir program diberi fungsi END(01), agar PLC dapat mengeksekusi
Main Program.

Gambar 3.11. Ladder Diagram Bagian Akhir

3.2.2. Wonderware InTouch


Wonderware InTouch berfungsi sebagai SCADA, yang berarti mengontrol,
memonitor, serta menyimpan dan mengakses data.

3.2.2.1. Flowchart Sistem


Sebelum membuat program SCADA, perlu diketehui terlebih dahulu
proses kerja dari sistem yang akan dibuat. Sistem tersebut memiliki fasilitas
pengaturan resep bahan-bahan yang ada, untuk itu digunakan program Recipe
Manager. Dan juga memiliki fasilitas pencatatan data ke dalam database
Microsoft Access, untuk itu digunakan SQL Access Manager. Selain itu, sistem
tersebut juga memiliki fitur-fitur lain yaitu security, alarm, dan real time trend.
Setelah mengetahui proses kerja, tahap berikutnya adalah membuat flowchart dari
sistem tersebut. Berikut ini adalah gambar flowchart dari sistem yang akan
mendasari pembuatan program Wonderware InTouch:

Universitas Kristen Petra


46

MULAI Valve 2 ON
Valve 1 OFF

T
Log On?
T
Vol tank 2 berkurang Alarm OFF
Y sesuai yg diinginkan? Drain OFF

Menu Y

Mixing t sec
Valve 3 ON (sesuai recipe)
Valve 2 OFF
Input Recipe
(bahan 1,2,3,4 &
mixing time)
Valve 5 ON
T
Vol tank 3 berkurang
sesuai yg diinginkan?
T
Tombol
Start? T
Y Vol tank 5 = 0?
Y

Valve 4 ON Y
T Valve 3 OFF
Vol tank 1,2,3,4 >
Vol bahan 1,2,3,4
Valve 5 OFF

Y
T
Vol tank 4 berkurang
sesuai yg diinginkan?
Valve 1 T
Log Off ?
ON
Y
Y

SELESAI
T
Valve 4 OFF
Vol tank 1 berkurang
sesuai yg diinginkan?

Y Vol tank 5 > 100?

Alarm ON
Drain ON

Gambar 3.12. Flowchart Sistem

Universitas Kristen Petra


47
3.2.2.2. InTouch Tagnames
Untuk mengakses/mongontrol input dan output dari PLC, membuat
animasi, melakukan konversi/perhitungan, maupun penanganan data atau
mengakses database perlu mendefinisikan InTouch tagnames terlebih dahulu.
Berikut akan dijabarkan nama-nama dari tagname yang dibuat pada InTouch:

Tabel 3.7. InTouch Tagnames


Tagname Tag Type Fungsi
A I/O Discrete ON/OFF input A 7-seg
B I/O Discrete ON/OFF input B 7-seg
BindList Memory Message Nama Bind List
blade Memory Discrete Animasi mixer
C I/O Discrete ON/OFF input C 7-seg
ConnectionID Memory Integer Nomor ConnectionId
D I/O Discrete ON/OFF input D 7-seg
Directory Memory Message Alamat folder program
ErrorMsg Memory Message Pesan error SQL AM
higher Memory Discrete Animasi pesan higher
ing1 Memory Real Prosentase Dry Brokes
ing1a Memory Real Perhitungan
ing2 Memory Real Prosentase Wet Brokes
ing2a Memory Real Perhitungan
ing3 Memory Real Prosentase NBKP
ing3a Memory Real Perhitungan
ing4 Memory Real Prosentase LBKP
ing4a Memory Real Perhitungan
ket Memory Real Database
LogOn Memory Discrete Security
lower Memory Discrete Animasi pesan lower
mixer I/O Discrete ON/OFF mixer
mixing Memory Integer Lama mixing (detik)
mixinga Memory Integer Perhitungan
mixingb Memory Integer Perhitungan
OperatorName Memory Message Nama Operator
OrderByExpr Memory Message Database
pesanmixing Memory Discrete Animasi pesan mixing
recipename Memory Message Nama Recipe
recipetemplate Memory Message Alamat Recipe
RecordNumber Memory Integer Nomor record Database
ResultCode Memory Integer Database
SQLNumRows Memory Integer Jumlah record Database
Start Memory Discrete Tombol Start
TableName Memory Message Nama Tabel Database

Universitas Kristen Petra


48
Tabel 3.7. InTouch Tagnames (sambungan)
tanggal Memory Message Database
tank1 I/O Real Water level Tank 1
tank1a Memory Real Perhitungan
tank1b Memory Real Perhitungan
tank1d Memory Real Database
tank2 I/O Real Water level Tank 2
tank2a Memory Real Perhitungan
tank2b Memory Real Perhitungan
tank2d Memory Real Database
tank3 I/O Real Water level Tank 3
tank3a Memory Real Perhitungan
tank3b Memory Real Perhitungan
tank3d Memory Real Database
tank4 I/O Real Water level Tank 4
tank4a Memory Real Perhitungan
tank4b Memory Real Perhitungan
tank4d Memory Real Database
tank5 I/O Real Water level Tank 5
tank5a Memory Real Perhitungan
tank5d Memory Real Database
Template Memory Message Nama Table Template
total Memory Real Jumlah prosentase Recipe
Valve1 I/O Discrete ON/OFF Valve 1
Valve2 I/O Discrete ON/OFF Valve 2
Valve3 I/O Discrete ON/OFF Valve 3
Valve4 I/O Discrete ON/OFF Valve 4
Valve5 I/O Discrete ON/OFF Valve 5
waktu Memory Message Database
WhereExpr Memory Message Database

3.2.2.3. Recipe Manager


Pada aplikasi Recipe Manager dibuat sebuah recipe template file bernama
“recipe.csv”. Ada 3 buah template yang perlu didefinisikan, pertama
mendefinisikan Template Definition, sebagai berikut:

Tabel 3.8. Template Definition


Item Name Item Type
Item 1 Dry Brokes Analog
Item 2 Wet Brokes Analog
Item 3 NBKP Analog
Item 4 LBKP Analog
Item 5 Mixing Time Analog

Universitas Kristen Petra


49
Setelah itu mendefinisikan Unit Definition, untuk menghubungkan tagname
InTouch dengan item pada recipe template file.

Tabel 3.9. Unit Definition


Item Name Item Type Unit 1
Unit Names >>> a
Item 1 Dry Brokes Analog ing1
Item 2 Wet Brokes Analog ing2
Item 3 NBKP Analog ing3
Item 4 LBKP Analog ing4
Item 5 Mixing Time Analog mixing

Terakhir mendefinisikan Recipe Definition untuk membuat recipe. Selain melalui


Recipe Definition dapat dibuat recipe melalui program SCADA yang telah dibuat.

Tabel 3.10. Recipe Definition


Item Name Item Type Recipe 1 Recipe 2
Recipe Names >>> r1 r2
Item 1 Dry Brokes Analog 10 15
Item 2 Wet Brokes Analog 5 5
Item 3 NBKP Analog 15 20
Item 4 LBKP Analog 70 60
Item 5 Mixing Time Analog 10 20

3.2.2.4. SQL Access Manager


Pada aplikasi SQL Access Manager dibuat Bind List untuk
menghubungkan antara tagname InTouch dengan nama kolom pada database Ms
Access. Bind List perlu untuk didefinisikan terlebih dahulu sebelum menggunakan
SQL Functions khususnya yang memakai parameter Bind List. Konfigurasinya
dapat dilihat pada Tabel 3.11.
Setelah itu membuat Table Template. Pada Table Template didefinisikan
parameter-parameter untuk membuat tabel yang baru. Konfigurasinya dapat
dilihat pada Tabel 3.12.

Universitas Kristen Petra


50
Tabel 3.11. Bind List Configuration
Tagname.FieldName Column Name
tanggal Tanggal
waktu Waktu
recipename Recipe
tank1d Tank_1
tank2d Tank_2
tank3d Tank_3
tank4d Tank_4
tank5d Tank_5
ket Keterangan
OperatorName Nama_Operator

Tabel 3.12. Table Template Configuration


Column Name Column Type Length Allow Null Index Type
Tanggal text Null Non-Unique
Waktu text Null Non-Unique
Recipe text Null Non-Unique
Tank_1 number Null Non-Unique
Tank_2 number Null Non-Unique
Tank_3 number Null Non-Unique
Tank_4 number Null Non-Unique
Tank_5 number Null Non-Unique
Keterangan text Null Non-Unique
Nama_Operator text Null Non-Unique

3.2.2.5. InTouch QuickScript


Agar program SCADA dapat berjalan dengan otomatis serta dapat
dikontrol, perlu untuk menuliskan QuickScript pada scripts yang tersedia. Scripts
yang digunakan antara lain adalah Application Script, Condition Script, Window
Script, dan juga Action Pushbutton Script. Berikut adalah penjelasan dari masing-
masing script yang dibuat:
a. Application Script
1. Untuk InTouch Security:
IF $AccessLevel < 5000 THEN
Show "Log On";
Hide "Plant";
Hide "Real Time Trend";

Universitas Kristen Petra


51
Hide "Recipe"; Hide "SQL";
ELSE IF $AccessLevel > 0 AND $AccessLevel < 9999 THEN
Hide "Recipe"; Hide "SQL"; Hide "Log On";
ELSE
Hide "Log On"; ENDIF; ENDIF;
2. Untuk alamat Recipe yang akan diakses:
Directory = InfoInTouchAppDir();
recipetemplate = Directory + "\recipe.csv";
3. Untuk konversi nilai digital dari sensor (0-16384) menjadi volume tangki
dengan cara mengalikan nilai sensor (tank1-tank4) dengan faktor pengali
(k), faktor pengali didapatkan dengan rumus sebagai berikut:
Volume
k=
16384
Tangki 1 (Volume = 50) à tank1a = tank1 * 0.0030517578125;
Tangki 2 (Volume = 50) à tank2a = tank2 * 0.0030517578125;
Tangki 3 (Volume = 50) à tank3a = tank3 * 0.0030517578125;
Tangki 4 (Volume = 150) à tank4a = tank4 * 0.0091552734375;
4. Untuk proses automasi:
IF Start == 1 AND tank1a > tank1b THEN
Valve1 = 1;
tank5b = tank1c - tank1a + tank2c - tank2a + tank3c - tank3a +
tank4c - tank4a + tank5a;
ELSE
Valve1 = 0;
ENDIF;
IF Start == 1 AND tank2a > tank2b AND tank1a <= tank1b THEN
Valve2 = 1;
tank5b = tank1c - tank1a + tank2c - tank2a + tank3c - tank3a +
tank4c - tank4a + tank5a;
ELSE
Valve2 = 0; ENDIF;
IF Start == 1 AND tank3a > tank3b AND tank2a <= tank2b THEN

Universitas Kristen Petra


52
Valve3 = 1;
tank5b = tank1c - tank1a + tank2c - tank2a + tank3c - tank3a +
tank4c - tank4a + tank5a;
ELSE Valve3 = 0; ENDIF;
IF Start == 1 AND tank4a > tank4b AND tank3a <= tank3b THEN
Valve4 = 1;
tank5b = tank1c - tank1a + tank2c - tank2a + tank3c - tank3a +
tank4c - tank4a + tank5a;
ELSE Valve4 = 0; ENDIF;
IF mixingb > 0 AND Start ==1 AND tank4a <= tank4b AND tank5b <=
100 THEN
Mixer = 1; ELSE Mixer = 0; ENDIF;
IF Mixer == 1 AND blade == 0 THEN
blade=1; ELSE blade=0; ENDIF;
IF mixingb == 0 AND Start == 1 AND tank5b > 0 THEN
Valve5 = 1; Mixer = 0; Start = 0; ENDIF;
IF tank5b <= 0 THEN
Valve5 = 0; mixingb = mixing; ENDIF;
IF mixingb > 0 AND Start ==1 AND tank4a <= tank4b AND tank5b >
100 THEN
Valve6 = 1; tank5b = tank5b - 1;
ELSE Valve6 = 0;
ENDIF;
IF tank5b > 100 THEN
alarmdisplay = 1;
ELSE
alarmdisplay = 0;
ENDIF;
5. Untuk menampilkan Seven Segment Display:
IF tank5a >= 0 AND tank5a < 10 THEN
A = 0;
B = 0;

Universitas Kristen Petra


53
C = 0;
D = 0;
ELSE
IF tank5a >= 10 AND tank5a < 20 THEN
A = 1;
B = 0;
C = 0;
D = 0;
ELSE
IF tank5a >= 20 AND tank5a < 30 THEN
A = 0;
B = 1;
C = 0;
D = 0;
ELSE
IF tank5a >= 30 AND tank5a < 35 THEN
A = 1;
B = 1;
C = 0;
D = 0;
ELSE
IF tank5a >= 35 AND tank5a < 50 THEN
A = 0;
B = 0;
C = 1;
D = 0;
ELSE
IF tank5a >= 50 AND tank5a < 60 THEN
A = 1;
B = 0;
C = 1;
D = 0;

Universitas Kristen Petra


54
ELSE
IF tank5a >= 60 AND tank5a < 70 THEN
A = 0;
B = 1;
C = 1;
D = 0;
ELSE
IF tank5a >= 70 AND tank5a < 80 THEN
A = 1;
B = 1;
C = 1;
D = 0;
ELSE
IF tank5a >= 80 AND tank5a < 85 THEN
A = 0;
B = 0;
C = 0;
D = 1;
ELSE
IF tank5a >= 85 THEN
A = 1;
B = 0;
C = 0;
D = 1;
ENDIF;
ENDIF;
ENDIF;
ENDIF;
ENDIF;
ENDIF;
ENDIF;
ENDIF;

Universitas Kristen Petra


55
ENDIF;
ENDIF;
b. Condition Script
1. Untuk menampilkan pesan error pada SQL Access Manager:
Condition: ResultCode<>0
i. On False:
ErrorMsg="";
ii. On True:
ErrorMsg=SQLErrorMsg(ResultCode);
2. Untuk mencatat data ke dalam database pada kondisi start dan mencatat
data selama proses berlangsung setiap 5 detik:
Condition: Start == 1
i. On True:
tanggal = $DateString;
waktu = $TimeString;
tank1d = tank1a;
tank2d = tank2a;
tank3d = tank3a;
tank4d = tank4a;
tank5d = tank5a;
ket = "Start";
ResultCode=SQLSelect(ConnectionID,TableName,BindList,Wher
eExpr,OrderByExpr);
ResultCode=SQLInsert( ConnectionID, TableName, BindList );
ResultCode=SQLUpdateCurrent( ConnectionID );
ResultCode=SQLEnd( ConnectionID );
ii. While True every 5000 msec:
tanggal = $DateString;
waktu = $TimeString;
tank1d = tank1a;
tank2d = tank2a;
tank3d = tank3a;

Universitas Kristen Petra


56
tank4d = tank4a;
tank5d = tank5a;
ket = "In Process";
ResultCode=SQLSelect(ConnectionID,TableName,BindList,Wher
eExpr,OrderByExpr);
ResultCode=SQLInsert( ConnectionID, TableName, BindList );
ResultCode=SQLUpdateCurrent( ConnectionID );
ResultCode=SQLEnd( ConnectionID );
3. Untuk Timer pada Mixer:
Condition: Start == 1 AND tank4a <= tank4b
While True every 1000 msec:
IF mixingb > 0 THEN
mixingb = mixingb - 1;
ENDIF;
4. Untuk mencatat data ke dalam database setiap akhir dari sebuah proses:
Condition: Valve5 == 1
On True:
tanggal = $DateString;
waktu = $TimeString;
tank1d = tank1a;
tank2d = tank2a;
tank3d = tank3a;
tank4d = tank4a;
tank5d = tank5a;
ket = "End of Process";
ResultCode=SQLSelect(ConnectionID,TableName,BindList,WhereEx
pr,OrderByExpr);
ResultCode=SQLInsert( ConnectionID, TableName, BindList );
ResultCode=SQLUpdateCurrent( ConnectionID );
ResultCode=SQLEnd( ConnectionID );
Window Script
Untuk keperluan InTouch Security, pada window Log On (lihat gambar 3.13.)

Universitas Kristen Petra


57
diberi Window Script sebagai berikut:
While Showing every 1 msec:
Hide "Plant";
Hide "Recipe";
Hide "SQL";
On Hide:
Show "Plant";

Gambar 3.13. Window Log On

Action Pushbutton Script


5. Pada window Plant:
i. Tombol Start (On Key Down)
IF tank1a >= ing1a AND tank2a >= ing2a AND tank3a >= ing3a AND
tank4a >= ing4a AND total == 100 THEN
Start = 1;
tank1b = tank1a - ing1a;
tank2b = tank2a - ing2a;
tank3b = tank3a - ing3a;
tank4b = tank4a - ing4a;
ENDIF;

Universitas Kristen Petra


58

Gambar 3.14. Window Plant


ii. Tombol Stop (On Key Down)
Start = 0;
iii. Tombol Recipe
Show "Recipe";
iv. Tombol Database (On Key Down)
Show "SQL";
v. Tombol Trend (On Key Down)
Show "Real Time Trend";
vi. Tombol Ms Access (On Key Down)
IF InfoAppActive( InfoAppTitle("msaccess")) == 1 THEN
ActivateApp InfoAppTitle("msaccess");
ELSE
StartApp "D:\Progra~1\Micros~2\Office\msaccess";
ENDIF;

Universitas Kristen Petra


59
6. Pada window Recipe

Gambar 3.15. Window Recipe


i. Tombol Select (On Key Down)
RecipeSelectRecipe( recipetemplate, recipename, 131 );
RecipeLoad( recipetemplate, "a", recipename );
lower=0;
higher=0;
pesanmixing=0;
ii. Tombol < (On Key Down)
RecipeSelectPreviousRecipe( recipetemplate, recipename, 131 );
RecipeLoad( recipetemplate, "a", recipename );
lower=0;
higher=0;
pesanmixing=0;
iii. Tombol > (On Key Down)
RecipeSelectNextRecipe( recipetemplate, recipename, 131 );
RecipeLoad( recipetemplate, "a", recipename );
lower=0;
higher=0;
pesanmixing=0;
iv. Tombol Save (On Key Down)
total = ing1 + ing2 + ing3 + ing4;
IF total == 100 AND mixing <> 0 THEN
RecipeSave( recipetemplate, "a", recipename );
lower=0;

Universitas Kristen Petra


60
higher=0;
pesanmixing=0;
ELSE
IF total >100 THEN
higher = 1;
lower = 0;
ing1 = 0; ing2 = 0; ing3 = 0; ing4 = 0;
lower = 0;
ELSE
IF total < 100 THEN
lower = 1;
higher = 0;
ing1 = 0; ing2 = 0; ing3 = 0; ing4 = 0;
ELSE
IF mixing == 0 THEN
pesanmixing = 1;
lower=0;
higher=0;
ELSE
IF mixing >= 10 AND mixing <= 600 THEN
pesanmixing = 0;
ENDIF;
ENDIF;
ENDIF;
ENDIF;
ENDIF;
v. Tombol Delete (On Key Down)
RecipeDelete( recipetemplate, recipename );
ing1=0;
ing2=0;
ing3=0;
ing4=0;

Universitas Kristen Petra


61
recipename="";
higher = 0;
lower = 0;
mixing = 0;
pesanmixing = 0;
vi. Tombol Reset (On Key Down)
ing1=0;
ing2=0;
ing3=0;
ing4=0;
recipename="";
higher = 0;
lower = 0;
mixing = 0;
pesanmixing = 0;
vii. Tombol Submit (On Key Down)
total = ing1 + ing2 + ing3 + ing4;
IF total == 100 AND mixing >= 10 AND mixing <= 600 THEN
Hide "Recipe";
ing1a = ing1;
ing2a = ing2;
ing3a = ing3;
ing4a = ing4;
mixinga = mixing;
mixingb = mixing;
lower=0;
higher=0;
pesanmixing=0;
ELSE
IF total >100 THEN
higher = 1;
lower = 0;

Universitas Kristen Petra


62
ing1 = 0; ing2 = 0; ing3 = 0; ing4 = 0;
lower = 0;
ELSE
IF total < 100 THEN
lower = 1;
higher = 0;
ing1 = 0; ing2 = 0; ing3 = 0; ing4 = 0;
ELSE
IF mixing == 0 THEN
pesanmixing = 1;
lower=0;
higher=0;
ELSE
IF mixing >= 10 AND mixing <= 600 THEN
pesanmixing = 0;
ENDIF;
ENDIF;
ENDIF;
ENDIF;
ENDIF;
7. Pada window SQL
i. Tombol Connect (On Key Down)
ResultCode=SQLConnect( ConnectionID, "dsn=msacc" );
BindList = "database";
TableName = "Table1";
Template = "template1";
ii. Tombol Disconnect (On Key Down)
ResultCode=SQLDisconnect( ConnectionID );
ConnectionID=0;
ResultCode=0;
SQLNumbRows=0;

Universitas Kristen Petra


63

Gambar 3.16. Window SQL


iii. Tombol Select (On Key Down)
ResultCode=SQLSelect(ConnectionID,TableName,BindList,WhereEx
pr,OrderByExpr);
SQLNumbRows = SQLNumRows( ConnectionID );
iv. Tombol Next (On Key Down)
SQLNext( ConnectionID );
v. Tombol Previous (On Key Down)
SQLPrev( ConnectionID );
vi. Tombol Go (On Key Down)
ResultCode=SQLSelect(ConnectionID,TableName,BindList,WhereEx
pr,OrderByExpr);
ResultCode=SQLGetRecord( ConnectionID,RecordNumber );

Universitas Kristen Petra


64
vii. Tombol Update (On Key Down)
tanggal = $DateString;
waktu = $TimeString;
tank1d = tank1a;
tank2d = tank2a;
tank3d = tank3a;
tank4d = tank4a;
tank5d = tank5a;
ResultCode=SQLSelect(ConnectionID,TableName,BindList,WhereEx
pr,OrderByExpr);
ResultCode=SQLInsert( ConnectionID, TableName, BindList );
ResultCode=SQLUpdateCurrent( ConnectionID );
ResultCode=SQLEnd( ConnectionID );
viii. Tombol New Table (On Key Down)
ResultCode=SQLCreateTable(ConnectionID,TableName,Template);
ix. Tombol Ms Access (On Key Down)
IF InfoAppActive( InfoAppTitle("msaccess")) == 1 THEN
ActivateApp InfoAppTitle("msaccess");
ELSE
StartApp "D:\Progra~1\Micros~2\Office\msaccess";
ENDIF;

Universitas Kristen Petra

Anda mungkin juga menyukai