Showing posts with label VBScript. Show all posts
Showing posts with label VBScript. Show all posts

Wednesday, May 12, 2021

Make daily report from TIA Portal V.16 to Ms.Access and Ms.Excel Automatically using VBScript and ODBC driver | INSTRUMENT PART 11

Pada bagian ini, saya akan sharing pengetahuan saya terkait export data dari TIA PORTAL V.16 ke Ms.Access dan Ms.Excel. Pada bagian sebelumnya, saya sudah pernah sharing bagaimana export data TIA PORTAL ke Ms Excel menggunakan bahasa pemrograman VBScript. Tapi pada kasus tersebut, tidak ada driver jembatan antara TIA PORTAL ke Ms.Excel. Jikalau data TIA PORTAL ingin di export ke database yang lebih besar seperti SQL, SQL Server dan Ms.Access, maka kita harus menggunakan software tambahan yang berfungsi untuk memanggil database yang dirujuk. 

Saya ingin sampaikan di awal, bahwa setiap pengetahuan yang saya share di blog ini bersumber dari pengalaman saya yang telah saya coba secara langsung dan tentunya berhasil. Tidak ada niatan saya untuk sombong atau pamer atas setiap pengetahuan yang saya share di blog ini wkwk, karena sejatinya setiap tulisan yang saya share disini mempunyai 2 tujuan. Pertama sebagai catatan digital saya yang tidak hanya bermanfaat bagi saya pribadi, tapi juga mungkin bermanfaat bagi reader sekalian. Kedua sebagai masukan apabila ada kesalahan ataupun koreksi dari reader, karena saya adalah pribadi yang paling suka diajak diskusi. Oke langsung saja ke bahasannya.

Pada bagian ini, saya mungkin akan menjelaskan tahap-tahap export data dari TIA PORTAL ke MsAccess dan MsExcel.

A. Export data from TIA PORTAL to MsAccess using VBScript and ODBC

1. Konfigurasikan WinCC RT di TIA PORTAL

Konfigurasikan seperti yang telah saya buat di part sebelumnya ; PC system dan WinCC RT. Pada bagian ini, kembali seperti part sebelumnya, saya tidak menggunakan input dari PLC. Artinya, saya tidak menghubungkan laptop dengan PLC secara langsung. Jadi input berasal dari bar yang dapat di regulate nilainya melalui HMI Screen di laptop. 

Konfigurasi WinCC RT di TIA Portal


2. Buat Tag, HMI WinCC screen design , dan scheduled task 

scheduled of exporting data

HMI screen designing

HMI tag


Disini saya membuat 3 parameter input, "suhu", "tekanan", dan "arus"


3. Ketik coding VBScript untuk export data melalui ODBC Data Source

VBScript for export data using ODBC

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sub Create()


Dim objConnection 'declare parameter

Dim strConnectionString

Dim suhu 

Dim tekanan 

Dim arus

Dim strSQL

Dim objCommand


strConnectionString = "Provider=MSDASQL;DSN=parameter;UID=;PWD=;" 'connect to ODBC using Database MsAccess named parameter (line 8)


suhu = HMIRuntime.Tags("suhu").Read 'Input the tag value to the defined parameter (line 9)

tekanan = HMIRuntime.Tags("tekanan").Read

arus = HMIRuntime.Tags("arus").Read



strSQL = "INSERT INTO Table1 (suhu, tekanan, arus) VALUES (" & suhu & ", " & tekanan & ", " & arus & " );" 'Input the value of parameter to field name on MsAccess (line 12)


Set objConnection = CreateObject("ADODB.Connection")

objConnection.ConnectionString = strConnectionString

objConnection.Open

Set objCommand = CreateObject("ADODB.Command")

With objCommand

.ActiveConnection = objConnection

.CommandText = strSQL

End With

objCommand.Execute

Set objCommand = Nothing

objConnection.Close

Set objConnection = Nothing


End Sub

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

note : 

*line 8 : "DSN =   " diisi dengan nama file DSN pada ODBC. Nama file DSN yang saya buat adalah paraemeter, dapat dilihat pada gambar langkah ke-4 di bawah.

*line 9 : sesuaikan nama tag dengan tag di TIA Portal

*line 12 : strSQL = "INSERT INTO Table1 (suhu) VALUES (" & suhu & ");"

Table1 merupakan nama sheet tabel di file MsAccess yang saya jadikan database. Dapat dilihat pada gambar langkah ke-3 di bawah. suhu merupakan field name (kepala kolom di MsAccess yang saya buat (gambar di bawah juga). & suhu & merupakan syntax untuk memanggil tag suhu pada TIA Portal. Jadi makna keseluruhan line 10 adalah : Mengambil nilai tag suhu dari TIA Portal dan menginputnya ke database Access Table1 ke kolom yang namanya suhu.

3. Buat File Access yang akan dijadikan sebagai database

buat kolom pada file Access dengan nama suhu, tekanan dan arus

file Access yang telah dibuat


4. Konfigurasi ODBC

Nama DSN tidak harus sama dengan nama file Access, tapi disini saya samakan saja wkwkw. 

Buat database baru pada ODBC


5. Buat Field Name untuk Tanggal dan Pukul data tersebut di export

Berbeda dengan part sebelumnya dimana Date and Time dibuat melalui coding VBScript, pada MsAccess kita bisa membuat Date and Time langsung pada file database MsAccess. Caranya adalah sebagai berikut :

Pilih view

Buat fieldname Tanggal dengan format dan default value seperti di atas

Buat fieldname Pukul dengan format dan default value seperti di atas

Default value harus diketik dengan syntax =Now()

B. Export data from TIA PORTAL to MsExcel

Mungkin untuk export data dari TIA Portal ke MsExcel sudah pernah daya bahas di bagian sebelumnya. Namun karena tipe data pada file tersebut berupa .CSV dan bukan .xlxs, maka di bagian ini saya akan mencoba altenatif menggunakan ODBC Driver. Bedanya adalah, ketika menggunakan ODBC, saya harus create suatu file excel terlebih dahulu, baru nantinya dihubungkan file tersebut ke database referensi di ODBC. 

Karena pada driver ODBC tidak tersedia ekstensi Excel (.xlss), maka kita menggunakan database file MsAccess yang tadi telah kita buat menjadi jembatan penghubungnya. Langkah-langkahnya adalah sebagai berikut :

1. Kita create terlebih dahulu file Excel nya.

2. Kemudian pada toolbar Excel, pilih Data --> Get External Data --> From Other Source --> From Data Connection Wizard --> Pilih file database Access yang telah kita create sebelumnya --> Tekan next hingga tahap akhir.

3. Setiap data yang sudah di export ke database MsAccess, tidak langsung secara otomatis terkirim ke MsExcel. Kita harus merefresh terlebih dahulu dengan menekan 

refresh file Excel


Hasil 

exporting data from TIA Portal to Ms Access


ODBC database to Ms.Excel


Seperti biasa karena pada percobaan ini TIA Portal tidak terhubung ke fisik PLC, saya gunakan simulasi dengan fitur slider (nilai input berasal dari slider yg dapat di atur naik turun). Dapat di lihat bahwa data dari TIA Portal (Win CC) dapat langsung terexport ke Ms.Access setiap 5 detik sesuai jadwal schedule task yang kita buat. Exporting data seperti ini sangat berguna di insdustri sekarang ini karena pada setiap industri sudah ditutut sejak dulu capability instrumen tidak hanya untuk monitoring sistem, tapi juga sebagai data logger. Tingkatan lebih tinggi tentunya sudah dalam ranah server, agar data tersebut tidak hanya bisa diakses oleh orang di pabrik, tapi juga bisa hingga antar negara secara real time tentunya.

Thursday, April 15, 2021

Make daily report from TIA Portal V.16 to Ms.Excel Automatically using VBScript | INSTRUMENT PART 10

Export Data TIA PORTAL V-16 to Ms.Excel

Pada bagian ini saya akan mencoba membuat daily report secara otomatis dari TIA Portal ke Ms. Excel. Bisa dibilang ini bisa berfungsi seperti data logger, namun yang berfungsi sebagai device memorinya merupakan PG/PC (Personal Computer).

Data from TIA Portal

Sebelumnya, mentor saya telah mencoba untuk memanfaatkan memori PLC sebagai data logger. Namun setelah dicoba ternyata kuantitas data yang dapat disimpan hanya sedikit, padahal free space memorinya masih memadai. Oleh karena itu dicoba alternatif lain yaitu menggunakan WinCC RT (WinCC Runtime)  nya SIEMENS. WinCC sendiri penjelasan simpelnya merupakan HMI yang menampilkan kondisi sistem secara real time, yang ditanam pada PG/PC (computer with programming software). Simpelnya data yang diterima akan disimpan di laptop saya. Kali ini saya hanya akan menggunakan simulasi saja (tidak terkoneksi ke fisik PLC) karena ya sama saja sebenarnya langkahnya.

1. Konfigurasikan WinCC RunTime Advance di TIA Portal

Ketika ingin membuat WinCC RT, kita harus mengkonfigurasikannya pada bagian Device Configuration. WinCC terdapat pada PC Station.

WinCC Device Configuration TIA Portal


2. Membuat VBScript

VBScript merupakan bahasa pemrograman untuk visual basic. Pada pemrograman PLC sebenarnya terdapat beberapa bahasa pemrograman, seperti : Ladder diagram, Function Block Diagram, Structured text, dan Statement List. Namun, pada TIA Portal juga dapat disisipkan bahasa pemrograman lain untuk fitur-fitur seperti data logging maupun export data. Misalnya dengan menggunakan bahasa C ataupun Visual Basic (VBScript). Karena di beberapa referensi internet banyak menggunakan VBScript, maka saya memutuskan untuk menggunakan VBScript juga. Berikut adalah code VBScript nya:

------------------------------------------------------------------------------------------------------------------------

Sub Create()

Dim FolderPath, ObjectPath, Filename, File, FileExist, Columns, Row

Dim DY,MNTH,YR,

Dim HR,MNT,SCND


DY=Day(Date())

MNTH=Month(Date())

YR=Year(Date())

HR=Hour(Time())

MNT=Minute(Time())

SCND=Second(Time())


FolderPath = "D:\KELINCI PER TRY AN\"

Filename = "Report_" & YR & "_" & MNTH & "_" & DY & ".csv"

Set ObjectPath = CreateObject("Scripting.FilesystemObject")

'Check if folder exists

If Not ObjectPath.FolderExists(FolderPath) Then              

ObjectPath.CreateFolder FolderPath     

End If

' Check if file exists

Set File = CreateObject("Scripting.FilesystemObject")

FileExist = File.FileExists(FolderPath & "\" & Filename)

If FileExist = False Then

File.CreateTextFile(FolderPath & "\" & Filename)

Set Columns = File.OpenTextFile(FolderPath & "\" & Filename, 8)

                Columns.WriteLine("tanggal ; waktu ; suhu ; tekanan ; arus")

                Columns.Close                 

                Set File = Nothing           

End If

'Write data to file

Set File = CreateObject("Scripting.FilesystemObject")

Set Row = File.OpenTextFile(FolderPath & "\" & Filename, 8)

Row.WriteLine(Date() & ";" & Time() & ";" & SmartTags("suhu") & ";" & SmartTags("tekanan") & ";" & SmartTags("arus") & ";")

Row.Close

Set File = Nothing  'Here we are releasing the File.


End Sub

--------------------------------------------------------------------------------------------------------------------------

Walaupun saya tidak suka segala sesuatu yang berbau programming, namun kode di atas tidak begitu saja saya copas dari sumbernya. Code diatas merupakan gabungan dari 2 source code, dimana saya rasa alangkah lebih baik jika digabungkan. Ada beberapa juga yang sedikit saya modifikasi. Penjelasan kode di atas adalah sebagai berikut :

Dim : syntax untuk mendeclare suatu variable

Code baris 2-4 : declare variabel

Code baris 5-10 : Mendefinisikan waktu saat ini

Code baris 11-22 : Mendeteksi file di direktori seperti yang ditulis, jika file tidak terdeteksi, maka file akan dibuat sesuai dengan nama yang diberi

Code baris 23-25 : Membuat nama pada masing-masing kolom

Code baris 29-31 : Export data dari TIA Portal ke Excel

VBScript data export

3. Membuat Screen untuk Win CC Run Time 

Screen kita desain sesuka hati kita. Karena saya sedang malas bikin program ladder, saya buat bar charts saja yang besar nilainya nanti yang akan di export ke Ms Excel. Oiya kalau dalam dunia nyata, semua data yang ditampilkan pada HMI SCADA merupakan data hasil pengukuran di lapangan, jadi jangan dianggap sama seperti yang saya lakukan yak wkwk. Saya cuma mau fokus di export data nya saja.

WinCC RT Screen

Di atas merupakan tampilan WinCC SCADA nya SIEMENS. Kalau di industri, tampilannya biasanya menampilkan nilai pengukuran sensor.


4. Buat HMI Tag dan Scheduled Task

Oiya setiap kali kita menggunakan WinCC untuk desain tampilan, setiap objek biasanya di alamatkan. Artinya objek tersebut akan menampilkan data yang di alamatkan kepadanya. Untuk kasus ini, karena saya lagi malas bikin program laddernya dan sedang tidak dihubungkan ke fisik PLC, maka saya bikin HMI Tag bebas saja. Yang perlu diingat, nama HMI Tag kalian harus identik dengan nama SmartTag pada baris ke-24 VBScript di atas. Disini saya membuat tag suhu, tekanan, dan arus.

HMI Tag

Selanjutnya agar data di export secara real time, kalian bebas memilih update data dilakukan setiap berapa waktu. Disini agar cepat, saya melakukan export data ke Excel setiap 2 detik. Ini tergantung kebutuhan dan seberapa akurat data yang kalian inginkan sih.

Scheduled Task for Created VBScript

5. Compile Program, Simulasikan dan Perbaiki format data CSV 

Setelah semua selesai, selalu lakukan compile untuk mengecek apakah masih ada error code. Jikalau semua beres, maka bisa langsung start simulation. Bar chart tadi akan muncul dan bisa kalian gerakin naik turun. Boleh langsung di cek di direktori mana tadi kalian simpan sesuai code VBScript, akan ada file baru sesuai nama yang kita buat.

Creating New File was  successfull

Setelah dibuka maka akan muncul file CSV (comma separataed values) yang masih berupa data berantakan. Tinggal kita ubah menggunakan fungsi text to column yang ada pada toolbar data Ms.Excel, lalu pilih delimate dan centang parameter yang perlu. Data dari TIA Portal dapat ter export secara automatis ke Excel. Jikalau kalian malas untuk men-delimate secara manual, kalian bisa lakukan dengan cara : Klik kanan file csv, open with notepade, dan tambahkan code 

sep=;

pada bagian paling paling atas. Nantinya file csv akan langsung terdelimate menjadi masing-masing kolom :

Berikut adalah video hasil percobaan saya :