23 Apr
Print This Post
Script yang tidak efektif

:: Automation :: HMI/Scada :: Wonderware Add 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.

RSS feed | Trackback URI

18 Comments »

Comment by Tonai
2008-04-23 15:57:10

hahahahaha
keren keren

yah mau di oil and gas ya sama aja pak
tergantung engineer masing2lah
hehehehe

bapak mah enak, OS Engineer di sana mau buat indirect seapapun gak ngaruh gak ada yg meriksa, coba klo PLC/DCS engineer, bikin aneh sedikit aja dimarahin,hehehehe

Comment by e.one
2008-04-23 16:58:38

Yap karena bos kita dulu canggih di PLC .. sementara OS except hardware ngak care dia … so lebih mudah nuangin ide ..

 
 
Comment by zulfitriza
2008-04-25 06:52:47

mas, pertam2 salut buat Mas yang mauh Share ilmunya disini, jadi kita2 yang berkeinginan tau lebih dalam dengan Wonderware jadi kebantu, perkenalkan panggil aja saya Zul Mas, saya baru mau dalamin SCADA diamplikasikan dengan Wonderware, jujur aja saya sangat pemula sekali, mungkin baru tau apa itu SCADA aja, tapi klu minta design blon bisa, jadi bisa bikin tutorial yang sangat beginer banget ngak Mas…contonya mulai design awal suatu sistem SCADA,, dan bertahap ditingkatkan terus pengembangan nya gitu..

thank you

Comment by toekang
2008-04-25 07:35:05

sama-sama .. toekang juga masih belajar mas

 
 
Comment by idhar
2008-07-09 08:56:47

Pak e-one,,,

pak klo mo belajar HMI InTouch (supaya lwbih terstruktur), langkah-langkahnya (trik-triknya) apa saja sih pak ?

Comment by toekang
2008-07-15 08:03:26

wah pertanyaan berat ..
ya paling2 banyak-banyak liat contoh program yang sudah jadi ..
nah dari situ pilih trik dan konsep yg paling sesuai ..:)

 
 
Comment by idhar
2008-07-16 08:51:15

kalo begitu, boleh ga saya minta contoh program yang sederhana (tapi konseptual) pak e-one? soalnya kalo di manual pdf nya ga ada contoh ny pak.

 
Comment by idhar
2008-07-16 08:53:17

pak e-one punya contoh yang sederhana untuk dipelajari oleh mhswa yang baru belajar InTouch ? soalnya kalo di pdf nya agak bingung juga.

Comment by toekang
2008-07-18 17:43:03

boleh ..kirim aja request via e-mail ..
btw ..klo install InTouch kan ada opsi untuk instal paket demo-nya
disitu lumayan oke kok ..

Comment by idhar
2008-07-23 07:09:28

boleh tau alamat email nya Pak?

(Comments wont nest below this level)
Comment by toekang
2008-07-23 09:32:04

oalah baru nyadar ..
klo komen di blog ini ngak ada link e-mail :(
ini e.one@toekangscada.com

 
 
 
 
Comment by idhar
2008-08-06 07:27:36

Pak E-one, kalo “DA Server DASSIDirect” ini I/O servernya?

Comment by toekang
2008-08-06 09:44:01

???? kok pertanyaanya ngak nyambung dgn topik diatas ?
Sejak di luncurkan InTouch 8.0, WW memperkenalkan juga DA Server
sebagai pengganti I/O Server.

 
 
Comment by fajar maulana
2008-08-19 18:44:15

ass..
pak iwan salam kenal dari saya, btw perbanyak ya artikelnya
saya banyak belajar dai blog anda
saya mendengar nama anda dari mas fathoni

 
Comment by hidayat
2009-11-03 19:28:20

ass,,,,
pak iwan salam kenal juga dari saya, disini saya baru pemula dan masih pembelajaran mengenai scada,

saya ingin bertanya kepada bapak, gimana caranya mengkoneksikan scada dengan plc allen bradley>>?

terima kasih sebelumnya,

 
Comment by toekang
2009-11-04 05:31:41

salam kenal juga,
Scada-nya apa?
simpel-nya gini, install I/O Server yg dpt mengenali si PLC.
klo di Wonderware bisa pake DASABCIP

 
Comment by blawong
2010-03-31 16:09:39

ada yang tau penyebab error code : WWHEAP dengan remarks :/info–1PID=456Outoffreesharedmapformemmoryallocation(64512Bytes,1Maps)

kira-kira di sebabkan oleh apa? seteleah saya cari-cari..katanya WWHEAP ini adalah bug di Intouch….namun dah di solve dengan adanya versi SP1

 
Comment by toekang
2010-03-31 18:34:18

wwHeap = Wonderware Memory Manager, itu kira2 tool untuk memanage dinamic memory(hanya kira2 lho), sayang mas blawong ngk menjelasin errornya pas kondisi apa? enak2 running tau2 muncul spt itu atau apa? apakah kejadiannya sering? setelah direstart sembuhkan?
dr kejadian itu biasanya toekang analisa problemnya.
InTouch-nya versi brapa? klo Versi 9 dan 10 emang sudah keluar SP1-nya.
Kadang2 InTouch seperti itu kalau pas Viewer & Maker run bareng. makanya sebisa mungkin toekang tidak sering2 run viewer dan maker bersamaan.

 
Name (required)
E-mail (required - never shown publicly)
URI
Your Comment (smaller size | larger size)
You may use <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong> in your comment.