- toekang scada - http://toekangscada.com -

Script yang tidak efektif

Posted By toekang On April 23, 2008 @ 2:52 pm In Automation,HMI/Scada,Wonderware | 27 Comments

Contoh script yang akan toekang bahas kali ini didapat waktu freelance di salah satu Oil & Gas company. Tugas tukang waktu itu sebenarnya hanya jadi trainer Wonderware selama 4 hari disitu. Di akhir session toekang diminta bantuan untuk backup salah satu aplikasi HMI disono. Reaksi pertama toekang melihat aplikasi itu kaget setengah hidup ! Bukan apa-apa imej toekang selama ini terhadap Oil & Gas Company itu kawasan elit, ngak sembarang orang bisa join, didukung equipment dimana savety sangat dijunjung tinggi. Sehingga komponen penopang lainnya termasuk Automation & Controlnya tentunya kelas wahid. Tapi apa yang toekang liat sungguh mengecewakan.

Ada banyak sekali kode amburadul di situ, tapi toekang hanya akan membahas dua bagian terpenting saja:

Kenali dulu fitur terbaik software itu, kemudian manfaatkan sebaik mungkin
Banyak orang memilih/mempromosikan Wonderware karena alasan HMI yang paling mudah didevelopnya (menurut toekang sih relatif). Tapi jangan lantas itu menjadi landasan pemikiran seorang programer HMI Wonderware ini, trus malas menggali fitur-fitur terbaik software tersebut. Dalam artikel kali ini toekang mencoba mengulas sampel kasus aplikasi yang tidak memakai dua fitur bagus InTouch yaitu ‘QuickFunctions’ dan ‘Indiect Tag’ dan bagaimana solusinya.

QuickFunctions
Mari lihat apa yang ditulis si programer untuk menulis/meng-input record ke database :
graphicsMaksud script ini adalah insert data tiap jam pada menit ke-2 ke database, yang absurd dari script ini adalah kenapa harus menbuat 24 script yang isinya identik dimana hanya beda nilai date-time.

Toekang coba membuatnya menjadi simpel, create QuickFunction dengan nama ‘InsertData’ seperti ini:
graphics
Nah tinggal buat link pada ke-24 script itu seperti ini:
graphics
Jauh lebih mudah bukan ? Akan lebih simpel lagi kalau mengingat angka menit = 2 itu emang terjadi hanya sekali tiap jam kan ? so, ke-24 script tadi bisa dibuang, lalu create satu script berikut :
graphics

Indirect Tag
Kali ini toekang coba membahas report, salah satu fitur penting diaplikasi ini. Report disini dibuat dalam internal view, bukan dibuatkan di Ms Excel atau aplikasi external laen. Alasannya agar tidak bisa di edit operator, kalo di Excel operator mudah memanipulasi, masuk akal.

Bentuk report bulannannya seperti ini :
graphics
Si programer menggunakan tag model ini CUM_MASS\01 .. CUM_MASS\31, CUM_GROSS\01 .. CUM_GROSS\31 dst. Hm bagus … sudah pake supertag dengan nama column sebagai supertagnya, cuman kalo report nilai objectnya itu justru terletak pada row alias tanggal kalo disini .. jadi seharusnya dia buat begini Date01\CUM_MASS, Date01\CUM_GROSS, Date01\WATER ..Date31\CUM_MASS, Date31\CUM_GROSS, Date31\WATER .. sehingga kalau diaplikasikan ke indirect ini jadi lebih simpel.

Oke lupakan itu, mari analisa script yang dibuat untuk generate report :
graphics
Astaga !!!
Si programmer membuat satu script untuk masing-masing row, walhasil ada 31 script (jumlah hari maksimal) disitu, yang secara konsep identik. Iseng-iseng toekang pinjam penggaris anak toekang dan diukur panjang script-nya 148cm ck ck ck. Dan perhatikan juga kesulitan yang dibuat si programer dibagian Connection String(blok biru) … coba dia suruh buat duplikat aplikasi ini dengan nama komputer berbeda. Pasti mabuk dia, harus mengganti satu persatu dimanapun ada sintak ini ‘Data Source = C175′ menjadi ‘Data Source = Nama_PC_Baru’, kenapa variable ini ngak disimpan di tag saja? sehingga jika ada perubahan hanya merubah nilai di tag ini ?

Jadi mari lihat solusi yang toekang berikan(ceile kaya psikiater aja !) :
graphics
Hanya itu ngak kurang ngak lebih. Penjelasannya begini: 1..31 mewakili tanggal buat loop aja, trus konvert ke string (iDate) trus umpankan ke SQL Statement(blok hijau) . Jadi data tiap harinya sudah didapat kan. Berikutnnya tugas Indirect tag untuk memasukkan ke masing-masing tag yang berkaitan (blok biru).

Akhirnya ..
Terkadang bukan hanya fungsi aja yang penting, ada apa dibalik itu juga lho. Kalau hanya sekadar fungsi tidak diragukan 100% aplikasi itu bekerja, cuman apa ngak dipikirkan takeovernya. Apalagi kalau memikirkan bahwa end-user itu skill programingnya rata-rata dibawah engineer SI kan. Dengan trend begini kemungkinan besar end-user menjadi tergantung pada SI dimana program itu dibeli. Lain halnya klo emang dibuat seperti itu … service itu kan bayar, bayar = income ha ha …

Ah semoga saja ngak, semoga saja si programer itu lagi sial … baru join diperusaan itu trus dikasih job bikin project ini. Belajar ala kadarnya, bikin program secepat mungkin .. berfungsi ..deadline terpenuhi.


Article printed from toekang scada: http://toekangscada.com

URL to article: http://toekangscada.com/2008/04/23/script-yang-tidak-efektif/

Copyright © 2008 toekangscada. All rights reserved.