Sunday, 22 November 2015

Print Screen WinCC - Landscape & White Background

Postingan kali ini saya ingin berbagi trik bagaimana mencetak screen WinCC dengan format Landscape dan Background dengan warna putih.

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. 



2 komentar:

  1. Hallo Pak Hadi... script nya tidak bisa diunduh.. bisa tolong dibantu.. Terimakasih..

    ReplyDelete
    Replies
    1. maaf, error di server google drive nya. dan sy belum nemu file nya di laptop sy, jd sy tidak bisa upload lagi.

      Delete

 
Copyright © . HadiSCADA - Posts · Comments
Theme Template by BTDesigner · Powered by Blogger