Postingan kali ini saya ingin berbagi trik bagaimana mencetak screen WinCC dengan format Landscape dan Background dengan warna putih.
[Continue reading...]
WinCC adalah software HMI/SCADA dari Siemens. Bagi Anda yang sering menggunakan WinCC mungkin tahu bahwa di-header atas HMI Runtime ada tombol kecil untuk mencetak tampilan (Print Screen). Pernahkah Anda menggunakannya?
Jika jawaban Anda adalah pernah, kemungkinan besar hasil cetakan Printer akan menampilkan tampilan apa adanya, seluruh tampilan akan di-print, dan dengan format Potrait (panjang ke bawah).
Bug script pada WinCC v8.1
Default tombol dan fungsi Print tersebut sebenarnya tidak ada masalah (bugs) kecuali yang saya dapatkan pada WinCC versi 8.1, yang script-nya (SSMHardCopy) sebagai berikut:
.....
strncpy (szFullCommandLine, "PrtScr", sizeof (szFullCommandLine));
sprintf (szNewParameters, " /C=\"%u;%u;%u;%u\" -l", Left, Top, Width, Height );
strncat (szFullCommandLine, szNewParameters, sizeof (szFullCommandLine));
SetOperation(lpszPictureName,lpszObjectName,FALSE);
WinExec( szFullCommandLine, SW_SHOWNORMAL );
.....
PERHATIKAN baik-baik script diatas, ada satu hal kecil yang terlewat dan itu membuat tombol Print Screen menjadi tidak berfungsi. Satu hal kecil tersebut adalah SPASI. Ya, Spasi, harus ada setelah "/C=". Jadi script yang benar adalah:
.....
sprintf (szNewParameters, " /C= \"%u;%u;%u;%u\" -l", Left, Top, Width, Height );
.....
Mengubah format menjadi Landscape
Script diatas intinya adalah memanggil sebuah program kecil bernama PrtScr.exe yang merupakan bawaan default instalasi WinCC. File exe tersebut bisa ditemukan pada folder: C:\Program Files (x86)\Common Files\Siemens\Bin
Program PrtScr bisa diberi parameter-parameter tertentu. Misalnya adalah :
-l untuk mencetak dalam format Landscape (memanjang ke bawah)
Mengubah warna Background
Beberapa versi WinCC menggunakan warna cokelat/grey atau warna lain selain warna putih sebagai warna default dari tampilan HMI. Tujuannya mungkin agar nyaman dipandang mata. Tapi jika berurusan dengan Printer, warna-warna tersebut menjadi tidak "nyaman" karena membuat tinta printer menjadi boros.
Kita bisa mengubah warna background screen menjadi putih sebelum kita mencetak ke Printer, dengan cara menambahkan beberapa script. Namun kami menemukan kendala saat mencoba mengubah script defaultnya yang dalam bahasa C, ternyata kami tidak menemukan script yang bisa mengubah warna background. Akhirnya kami putuskan untuk merubah scriptnya ke dalam bahasa VB. Kurang lebih script intinya seperti ini:
.....
sPic = HMIRuntime.ActiveScreen.Parent.Parent.Parent.ObjectName
sColor1 = HMIRuntime.Screens("@Screen." & sPic & ":@1001.@DESK").BackColor
HMIRuntime.Screens("@Screen." & sPic & ":@1001.@DESK").BackColor = vbWhite
Set objWShell = CreateObject("WScript.Shell")
strPrint = "PRTSCR.exe -l /C= " & intLeft & ";" & intTop & ";" & intWidth & ";" & intHeight & " "
objWShell.Run strPrint , 1
Set objWShell = Nothing
HMIRuntime.Screens("@Screen." & sPic & ":@1001.@DESK").BackColor = sColor1
.....
Custom menu
Untuk memudahkan pemakaian fungsi PrtScr, kami membuat PDL kecil untuk menampilkan menu untuk mengubah setting Print Screen sesuai kebutuhan. Jadi kami meng-copy tombol Print dan kami mengubah "perilaku" event-nya menjadi berikut:
> click kiri : mencetak tampilan/screen dengan parameter yang sudah disimpan dalam tooltip
> click kanan : untuk menampilkan menu parameter Print Screen
Berikut adalah tampilan dari menu tersebut:
Keterangan:
> Screen :
1. All Screen : mencetak seluruh tampilan screen
2. Workspace : mencetak hanya bagian gambar utama (tanpa header dan footer)
> Format :
1. Landscape : mencetak dalam format memanjang ke samping
2. Potrait : mencetak dalam format memanjang ke bawah
> Background Color :
1. Normal : warna background tidak diubah saat print
2. White : warna background diubah menjadi Putih saat print
> Save Setting : tombol untuk menyimpan Setting parameter. Setting disimpan ke Tooltip text dari tombol Print Screen (screenshot).
> Print : tombol untuk mencetak
Script-script dan PDL diatas bisa diunduh/download disini.
Demikian ulasan dari kami, semoga bermanfaat dan terima kasih.