Monday, May 24, 2010

Recipe Manager

Recipe Manager:
  • Komponen dari InTouch yang berfungsi membaca Data Recipe (csv).
  • Digunakan untuk load setpoint secara otomatis.
Contoh kasus:

Misalkan pada pabrik Coklat, ada dua produk: Light Chocolate, Dark Chocolate.
Bahan yg digunakan adalah campuran dari Chocolate, Sugar, dan Water.

Resep campuran untuk Dark Chocolate Bar:
Chocolate: 3000
Sugar: 2750
Water: 2000

Resep campuran untuk Light Chocolate Bar:
Chocolate: 2000
Sugar: 3250
Water: 2000

Untuk mengisi nilai setpoint di InTouch secara otomatis, kita bisa menggunakan Recipe Manager.

Jalankan Recipe Manager:
Start Program - Wonderware - InTouch - Recipe Manager.

Cek gambar di bawah untuk design recipe secara umum:



Untuk bikin recipe baru, masuk ke File - New.
Yang pertama kita lakukan adalah masuk ke Template Definition.
Masukkan nama bahan ke kolom item name, dan tipenya ke kolom item type.



Berikutnya adalah Recipe Definition. Masukkan resep untuk Light dan Dark Chocolate sesuai dengan campuran resep yang sudah didefinisikan.



Setelah selesai, masuk ke Unit Definition. Fungsi dari Unit Definition adalah menghubungkan proses parameter yang sudah kita bikin di template definition, dengan tag di InTouch.
Cek gambar dibawah, proses menggunakan 2 buah Mixer, Mixer_1 dan Mixer_2. Masing - masing Mixer memiliki tag sendiri - sendiri.

InTouch Tag untuk Mixer_1 misalkan:
Mixer_1_Chocolate_Amount
Mixer_1_Milk_Amount
Mixer_1_Water_Amount

InTouch Tag untuk Mixer_2 misalkan:
Mixer_2_Chocolate_Amount
Mixer_2_Milk_Amount
Mixer_2_Water_Amount


Langkah terakhir, Save Recipe :)

Bagaimana cara menggunakan Recipe di InTouch?
Pilih unit yang akan dipakai (Mixer) menggunakan script RecipeSelectUnit()
Contoh script:

RecipeSelectUnit( "C:\Chocolate.csv", UnitName, 131 );
UnitName: Message tag untuk menyimpan nama Unit yang sudah dipilih.


Panggil recipe dengan script RecipeSelectRecipe()
Contoh script:

RecipeSelectRecipe( "C:\Chocolate.csv", RecipeName, 131 );
RecipeName: Message tag untuk menyimpan nama Recipe yang dipilih. Lihat gambar dibawah, misalkan kita klik Dark Chocolate Bar, maka tagname RecipeName akan berisi Dark Chocolate Bar.


Load recipe menggunakan script RecipeLoad(), secara otomatis, nilai setpoint akan didownload ke InTouch tag yang sudah ditentukan.

Contoh Connection String

Ke MS Access menggunakan OLEDB
SQLConnect("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydatabase.mdb;User Id=admin;Password=;”);

Ke MSSQL Server menggunakan OLEDB
SQLConnect("Provider=SQLOLEDB.1;User ID=UserIDStr; Password=PasswordStr;Initial Catalog=DatabaseName;Data Source=ServerName;" );

Ke Oracle menggunakan Oracle OLEDB
SQLConnect(ConnectionId, "Provider=MSDAORA; Data Source=OracleServer; User ID=SCOTT; Password=TIGER;");

Ke MySQL menggunakan ODBC
SQLConnect(ConnectionId,“DSN=MySQLDB;DB=Sample;User ID=root;Password=root123");

Friday, May 7, 2010

Save Data ke CSV / TXT

Untuk save data dari InTouch ke CSV / TXT, bisa menggunakan script filewritemessage.

Syntax
[result = ] FileWriteMessage (filename, offset, messagetag, linefeed)

Parameters
filename:
Name of the file to write the data to. A literal string value, a message tagname, or a string expression.

offset:
Location (in bytes) in the file to start writing to. Set it to -1 to write data to the end of the file (append). A literal integer value, integer tagname, or integer expression.

messagetag:
Message tagname that contains the data to be written to the file.

linefeed:
Specifies whether to write a line feed (LF) character after writing the data to the file. Set to 1 to write a line feed character; otherwise, set it to 0. A literal Boolean value, discrete tagname, or Boolean expression.

Example(s)
This script writes the value of a message tagname MsgTag to the end of the file c:\Data\File.txt.

FileWriteMessage("c:\Data\File.txt",-1,MsgTag,1);


Yang perlu diperhatikan, script ini hanya bisa save data dalam bentuk message.
Pertanyaannya, bagaimana save data non message, misalkan integer, real?

Bisa menggunakan konversi, data integer / real kita konversi terlebih dahulu ke string dengan menggunakan script.

Script untuk konversi dari integer ke string:

Syntax
result = StringFromIntg (number, base)

Parameters
number:
A literal integer value, integer tagname, or integer expression.

base:
The base of the conversion. This is used for converting the value to a different base, such as binary (2), decimal (10) or hexadecimal (16). A literal integer value, integer tagname, or integer expression.

Example(s)
StringFromIntg(26,10) returns “26” (decimal).


Contoh kasus:
Kita ingin save nilai sebuah tagname integer ke csv file, misalkan nama tagname: level

Langkah yang dilakukan secara umum:
  • konversi tagname integer ke string
  • save nilai tagname ke file
script:
{bikin variabel lokal untuk menyimpan sementara nilai hasil konversi}
Dim temp_level as message;

{konversi dari integer ke string, hasilnya disimpan ke variabel lokal temp_level}
temp_level = stringfrominteger(level,10);

{simpan ke file.csv}
FileWriteMessage("c:\report.csv",-1,temp_level,1);

Troubleshooting Tips

Tips:
  • Before installing the Software: Check Hardware and Software requirements (readme.html)
  • Check any Patch / Service Pack
  • Using System Management Console (SMC) for error checking - Logger
  • Using Wonderware Knowledge Base CD - Tutorial, FAQ
  • Google is your best Friend :) - Search any error using Google
  • Contact Technical Support

Thursday, May 6, 2010

Alarm DB Logger Manager

Untuk menyimpan data alarm ke database, bisa menggunakan Alarm DB Logger Manager.
Software yang dibutuhkan:

- Wonderware InTouch
- SQL Server / MSDE

Note: MSDE: Versi free dari SQL Server.

Cara konfigurasinya:

Jalankan aplikasi Alarm DB Logger Manager: Start - All Program - Wonderware - InTouch - Alarm DB Logger Manager.


Berikutnya adalah konfigurasi Alarm DB Logger Manager, klik Settings.


Field yang harus diisi:
Server Name: Nama komputer dimana SQL Server diinstall.
Database: Nama Alarm Database, defaultnya adalah WWALMDB. Bisa kita ganti dengan nama yang lain.
User Name: User SQL Server.
Password: Password SQL Server.

Setelah diisi, klik Create untuk bikin database di SQL Server.


Database sudah berhasil dibikin.

Klik Test Connection untuk memastikan koneksi antara Alarm DB Logger Manager ke SQL Server sudah OK.


Lanjutkan dengan klik tombol Next.
Kita akan masuk ke Query Selection. Disini kita bisa memilih alarm priority yang akan disimpan ke database, dan Alarm Query (group).
Klik Next setelah selesai konfigurasi.


Advanced Setting:
Pilih Running Logger as: Windows Service supaya alarm logger otomatis running ketika Windows Start.
Klik finish.


Langkah terakhir, jalankan Alarm DB Logger Manager dengan cara klik Start :)


Untuk menampilkan Alarm dari database, kita perlu menggunakan AlmDBViewCtrl.
Bisa diambil dari Wizard - ActiveX Controls.


Cara konfigurasinya, klik dua kali AlmDBViewCtrl.


Kemudian pilih tab Database.
Setting sesuai dengan database yang sudah kita konfigurasi:

Server Name: Local
Database Name: WWalmdb
User: sa
Password: xxxx
AutoConnect: Yes

Untuk memastikan apakah konfigurasi yang kita masukkan sudah benar, klik Test Connection.



Untuk refresh display Alarm, bisa dengan cara klik kanan pada display, pilih refresh.
Atau bisa juga menggunakan script pada tombol.
Caranya, bikin tombol, klik dua kali, masuk ke action.
Kemudian pilih Insert - ActiveX.


Klik ControlName: AlmDbViewCtrl1 - Refresh()


Jangan lupa tambahkan titik koma (;) pada akhir script.


Error ketika menjalankan aplikasi: Access Denied

Jika kita ingin menjalankan aplikasi InTouch, tetapi ketika masuk ke Windowmaker / Viewer keluar error sebagai berikut:


Hal ini terjadi karena folder aplikasi InTouch masih dalam mode READ ONLY.
Browse folder aplikasi InTouch, klik kanan, uncheck read only :)

Thursday, August 27, 2009

License Tidak Dikenali

Jika kita sudah menginstall license InTouch, pasang hardware key, tapi ternyata license masih belum dikenali, bisa jadi hardware key rusak.
Tapi sebelumnya, kita mesti cek dulu juga, apakah tanggal PC sudah di set ke waktu yang tepat. Seringkali sehabis install ulang Windows, kita lupa set tanggal.

Cek logger dibawah, yang di BOLD adalah error yang menunjukkan kalau kita belum set tanggal Windows.

1400 4/15/2005 12:54:54 AM 3068 3080 Info INTSPT WWLicRequest InTouch Feature start date is in the future (-31,34)
1401 4/15/2005 12:54:54 AM 3068 3080 Info INTSPT An error occurred reading the Feature Line 'InTouch' in the License File 'C:\Program Files\Common Files\ArchestrA\License\wwsuite.lic' (Return Code: -31)
1402 4/15/2005 12:54:54 AM 3068 3080 Info INTSPT WWLicRequest InTouchOEM No such feature exists (-5,116)
1403 4/15/2005 12:54:54 AM 3068 3080 Info INTSPT The License File 'C:\Program Files\Common Files\ArchestrA\License\wwsuite.lic' was located, but the Feature Line 'InTouchOEM' could not be found inside of it.
1404 4/15/2005 12:54:54 AM 3068 3080 Info INTSPT WWLicRequest InTouch Feature start date is in the future (-31,34)