Senin, 26 Desember 2011

Wonderware Admin

Aplikasi wonderware menyimpan list user dalam satu file binary password.bin. Selain menyimpan username dan password file binary tersebut juga berisi level dari user aplikasinya. Dikarenakan bentuknya yang binary maka membaca secara langsung file password.bin tersebut tidak bisa dilakukan.

Beberapa kali saya mengalami kendala dimana password untuk account administrator wonderware tidak tercatat dengan baik. Seringnya dikarenakan dokumentasi yang buruk.

Cara yang umum digunakan adalah menghapus file password.bin dan membangun ulang list user yang ada dan mendaftarkannya satu persatu. Tetapi cara ini sangat tidak efektif apabila ternyata terdapat puluhan username di dalamnya. Mendaftarkan satu persatu tentu memerlukan waktu dan mensosialisasikan ke user adalah problem lain yang menyertainya.

Hingga saya kemudian mendapatkan informasi mengenai file .dll tambahan yang bisa ditambahkan di wonderware developer yang memungkinkan untuk menggunakan fungsi di dalam file .dll tadi untuk membaca account, menambah account, meng edit account dan mendelete account. Benar benar solusi sempurna bagi administrator aplikasi sehingga kita bisa mendapatkan kembali password yang terlupa.

Silahkan googling dengan keyword "Psswdbin" untuk file .dll tersebut dan cara instalasinya. Link yang muncul akan merujuk ke salah satu site yang menyediakan download file tersebut.

1. Langkah selanjutnya adalah buat satu aplikasi kosong dengan wonderware maker.
2. Kemudian buat satu window yang berisi satu tombol dan tiga text seperti di bawah ini :


3. Untuk text Username, kaitkan dengan tag "tag_username" , untuk text level, kaitkan dengan tag "tag_level", untuk text password, kaitkan dengan tag "tag_password"

4. Untuk tombol, berikan script berikut di bawah untuk push button action :


dir_AppData = InfoInTouchAppDir() + "\";
IF StringRight(dir_AppData,1) <> "\"  THEN
      dir_AppData = dir_AppData + "\";
ENDIF;


tag_indek = PwdUserGetIndex(dir_AppData, "Administrator");
PwdUserRead(dir_AppData, tag_indek, tag_username, tag_level, tag_password);


5. Saat save akan ditanyakan apakah akan menyimpan tag_indek sebagai tag baru. Pilih OK dan arahkan menjadi memory integer tag.

6. Save aplikasi dan keluar dari wonderware maker
7. Copy password.bin yang akan dibaca ke dalam folder aplikasi ini.
8. Jalankan wonderware viewer dan tekan tombol, maka informasi username, level dan password akan muncul seperti tampilan di bawah. Contoh dibawah passwordnya adalah "blovtsneek"



9. Sekarang anda sudah tahu password yang sebelumnya terlupa.

Script di atas berlaku apabila intouch security di set ke intouch. Bukan archestra dan bukan OS.

Minggu, 09 Oktober 2011

migrasi oracle

Migrasi oracle adalah hal yang lumrah apabila server database dirasa memang perlu pindah. Diantara sekian alasan antara lain adalah :
  1. Berpindah Platform dari OS satu ke OS yang lain
  2. Memecah lokasi data. Aplikasi A mengakses data A di server A, aplikasi B mengakses server database B di server B
  3. server database yang lama rusak :)
Dan beberapa waktu yang lalu saya memiliki pengalaman untuk migrasi database ini.
Alasan perpindahan adalah dikarenakan versi oracle yang lama masih 9.5 dengan OS *indows dimana dirasa dari sisi security nya kurang handal. sehingga di desain lah server yang baru menggunakan OS *nix dengan oracle versi 11.

Saya sendiri sebenarnya bukan DBA dan bukan orang yang bertanggung jawab untuk proses migrasi ini. tetapi dikarenakan banyak aplikasi yang saya maintain mengakses database server yang lama, maka saya harus memastikan aplikasi saya tetap bisa berjalan normal dengan database yang baru.

Dan rasanya kurang afdol bila suatu proses tidak ditambahi dengan tantangan tambahan yaitu :
  1. Tidak boleh ada aplikasi yang down terlalu lama dikarenakan akan mengganggu proses produksi disini.
  2. Migrasi tidak langsung utuh satu database tetapi secara pastial untuk schema schema tertentu
  3. Server yang baru menggunakan SID dan hostname yang berbeda dengan yang lama.
Dengan alasan diatas (terutama nomer 3) lah maka saya harus menyiapkan proses migrasi agar tidak ada gangguan.
Pertama saya mengupdate semua client aplikasi saya dengan oracle client versi 11. tujuannya jelas agar tetap bisa berkomunikasi dengan server yang baru. bagi anda yang belum tahu, oracle client ver 9 tidak bisa mengakses database server ver. 11
Kemudian untuk aplikasi web dan aplikasi desktop lainnya saya siapkan file koneksi ke database yang baru sehingga saat migrasi skenario saya seharusnya tinggal ganti file koneksi dan aplikasi baik web maupun desktop akan berjalan lancar kembali.

Dan tibalah saat migrasi dilakukan... tantangan tambahan muncul saat agenda tambahan yaitu menginstall harddisk tambahan (sekitar 4TB) di server yang baru dilakukan. tujuannya untuk menambah data tampung data yang disimpan. waktu migrasi pun berjalan makin panjang.
Proses import dan export schema berjalan lancar.... database yang baru pun telah up.... tibalah saat nya saya melakukan testing aplikasi...
Dan muncul bermacam macam error di aplikasi saya... hahaha... sebagai lesson learn kepada teman teman semuanya bila ada proses migrasi seperti ini :
  1. Pastikan semua priviledge dari user yang dimigrasikan sama dengan database yang lama.
  2. Pastikan synonym dari tabel tabel yang diakses oleh user tertentu juga terbawa di database yang baru.
  3. Pastikan session dari masing masing user telah ter grant di aplikasi yang baru.
  4. Pastikan DBlink di database yang lama telah terbawa di database yang baru
  5. Ini yang paling penting nih... lebih baik sebelum migrasi lakukan dulu export import database jadi saat migrasi nanti tinggal delta datanya saja yang berpindah. Jadi aplikasi desktop dan web anda sudah yakin pasti jalan dengan database yang baru...
Demikianlah pengalaman pindahan database saya... sebagai informasi akhirnya aplikasi yang saya maintain (usernya lumayan banyak) baru bisa 100% normal kembali H+2 setelah migrasi :) hehehe...

salam ora celar celar (singkatan oracle versi saya :p )

Sabtu, 24 September 2011

Mangan ra mangan kumpul

Demikian pepatah jawa bilang. Makan tidak makan asal kumpul. Berkumpul bersama keluarga dan orang orang yang dicintai.
Dan karena itulah jumat kemarin saya boyong istri saya dan Almer ke "dunia impian" ini. Untuk tinggal bersama dalam suka maupun duka. duh romantisnya :)
Perjalanan ditempuh dengan dua kali pesawat (sby-jkt lanjut dengan jkt-pku) dilanjut dengan jalan darat selama 3 jam perjalanan. Sebelumnya saya sangat khawatir akan kondisi Almer bila dia rewel di dalam pesawat. Dan ternyata dugaan saya meleset. Anak ini sangat tangguh. Dia tersenyum senyum sedikit ketakutan saat pesawat take off dan memilih untuk tidur di sisa perjalanan. Perjalanan darat pun Almer relatif tidak terlalu rewel. Memang dia sedikit terlihat bosan tetapi setelah diberikan mainan (plastik untuk disobek2) dia menjadi lebih tenang.
Yang tidak disangka tidak dinyana malah sesampai di negeri impian ini. Almer tetap ceria seperti biasa. Sedangkan ibuknya malah langsung drop. Panas tinggi dan kepala pusing. Mungkin masuk angin dia. Semoga saja bisa segera enakan dan bisa kembali beraktifitas seperti biasa.
Kembali seperti pepatah jawa di atas bilang. Mengurus seorang anak dan hanya berdua bersama istri (yg lagi sakit) beratnya minta ampun. tetapi tiap kali pula fikiran ini seperti tersadar bila melihat senyum Almer mengembang. Dan insyaallah ini adalah awal dari petualangan selanjutnya yang lebih menyenangkan.

i love you Istriku dan Almer

Sabtu, 10 September 2011

muka buku

Saat ini saya rasa semua orang telah memiliki account facebook. Tua Muda, Cowok Cewek, Kaya Miskin semuanya sibuk mengupdate status, memberi comment, upload foto, tag foto dan chatting sepanjang waktu dengan media tersebut. Setahu saya Indonesia adalah pengguna terbesar nomer 2 di dunia situs sosial dunia maya ini.

Saya memiliki account facebook dengan nama yang sama dengan blog ini. Dan saya dengan sengaja tidak menggunakan nama asli dan data pribadi saya dengan pertimbangan bahwa semua data pribadi adalah confidential dan seharusnya tidak perlu untuk diketahui semua orang. Mungkin yang asli hanyalah foto foto yang saya upload di sana (kebanyakan foto anak saya) dikarenakan memang foto foto itu ingin saya share dengan teman teman saya. Tentu saja untuk foto saya telah melalui seleksi yang ketat (saya tidak fotogenik jadi yang saya upload hanya yang menurut saya pantas untuk dipajang :) )

Tentu saja dengan identitas yang bukan nama saya asli dan bukan jati diri yang asli membuat account saya tidak banyak memiliki teman. Tidak ada yang tahu bahwa ada account dengan nama "fuank de blovtsneek". Mengejanya saja sulit :) hehehe... Dan saya rasa semua yang saya add menjadi friend saya akan berpikir beberapa kali untuk confirm saya sebagai temannya.

Banyak teman teman yang sebelumnya telah putus kontak kembali bisa saya temukan kembali dan kembali bertegur sapa walau hanya lewat dunia maya.

Selain bertemu dengan teman teman lama ada beberapa juga yang saya amati menggunakan facebook untuk :
1. Berjualan. Saya sangat benci status teman yang hanya menawarkan produk baru. Dan maaf bila saya menghapus anda dari list teman saya.
2. Memberi Tugas ke Mahasiswanya. Ada teman saya seorang dosen yang lumayan kreatif dengan membuka account facebook sebagai media berkomunikasi dengan mahasiswa/wi nya. Memberi tugas, pengumuman mendadak, pindah jadwal kuliah, dan lain lain
3. Mencari Pekerjaan. berawal dari chatting banyak juga saya lihat teman teman yang saling menanyakan lowongan kerja. tidak ada yang salah dengan ini. bagaimanapun rumput tetangga selalu nampak lebih hijau bukan ? :)

Dan dengan begitu banyaknya pengguna facebook saya rasa hal yang wajar bila para pembuat virus dan worm menggunakan facebook sebagai media penyebarannya. Beberapa teman saya sepertinya terkena dan secara acak mengirimkan chat message dengan link yang tidak jelas. tindakan preventive nya saya rasa tidak perlu melayani chat message dari teman tersebut dan segera mengingatkan teman tersebut tentang hal itu.

Selamat mengupdate status :)

Senin, 05 September 2011

environment


Scada adalah singkatan dari supervisory control and data acquisition.
Yang dalam bahasa indonesia penjelasannya adalah sistem kendali industri berbasis komputer yang dipakai untuk pengontrolan suatu proses (wikipedia).

Saya berkenalan dengan bidang ini mulai awal februari 2008. Dan saya rasa perkembangan saat ini sangat cepat dan berkembang dari yang sebelumnya lebih terfokus pada electrical dan instrumentation device sebagai pendukung proses fasilitas ke arah information analysis dan reliability monitoring system.

Para pemain bidang scada ini pun telah sangat berkembang dari para instrumentation dan electrical engineer dan sekarang telah banyak ditemui para pemain dari dunia IT. Hal ini dikarenakan perkembangan teknologi dari system scada yang memang telah sangat kompleks sehingga keterlibatan para IT dibutuhkan mulai dari system security, historian database, web reporting hingga alarm reporting dengan berbagai macam koneksi mulai dari sms gateway maupun email notification.

Saya sendiri melengkapi diri dengan beberapa aplikasi untuk menunjang pekerjaan saya antara lain :
1. Wonderware intouch developer untuk HMI programming
2. Unity Pro untuk modicon PLC programming, RSLogix 5000 untuk allen bradley programming.
3. Oracle Pl/Sql untuk oracle programming

4. Beberapa web editor untuk web development.
dan beberapa tool kecil lainnya. 

Dengan pasar yang sangat terbuka dan dengan begitu banyaknya pengguna system scada ini (hampir semua industri memerlukan system scada untuk menunjang operasinya), maka saya rasa sudah waktunya IT engineer melirik bidang ini. Salah satu yang sangat dibutuhkan untuk bermain di bidang ini selain pengetahuan mengenai scada programming (HMI, PLC/DCS/RTU, Network communication) juga sangat dibutuhkan pemahaman yang mendalam mengenani proses bisnis dari fasilitas yang dibangun.

Untuk memulai mengenal secara teknis tentang dunia ini saya rasa telah banyak situs dalam dan luar negeri yang membahasnya. Tetapi sangat terbuka bagi anda semua untuk berbagi cerita dan sharing pengalaman mengenai dunia ini.