Salah satu jenis bahasa pemrograman di S7 yang mungkin kalo menurut saya enak banget ![]()
Sesuai dengan standar IEC 61131 kita kenal 4 bahasa pemrograman yang standar yaitu Instruction List (IL), Structured Text (ST), Ladder Diagram (LAD), Function Block Diagram (FBD). Selain dari bahasa - bahasa tersebut Step7 juga memiliki bahasa - bahasa pemrograman tingkat tinggi lain seperti SCL, Graph, HiGraph, CFC, dan SFC sesuai dengan tipe atau jenis kasus yang pemrogramannya akan kita buat. Secara garis besar saya mengelompokkan ada dua tipe kasus yaitu kasus dengan pemrograman interlocking dan sequencial (event-state).
Yang akan saya bahas kali ini yaitu tentang HiGraph, karna saya banyak menemukan kelebihan di bahasa ini. Untuk menggunakan HiGraph ini kita memerlukan installer tambahan, dimana untuk contoh kali ini saya menggunakan Simatic HiGraph v5.3 .
Misalnya saya mempunyai sistem sederhana seperti dibawah ini :

Dengan cara kerja sistem sebagai berikut :
- Step 0 (initial) : semua equipment stop
- Transisi Step 0 - Step 1 : tombol “Start”
- Step 1 (Heating) : mengaktifkan Valve AV58 dan Motor M51
- Transisi Step 1 - Step 2 : temperature VS50 (TT58 >= 50°C)
- Step 2 (Transfer) : mengaktifkan Valve AV908 dan Motor M61 serta menon-aktifkan AV58 dan M51
- Transisi Step 2 - Step 3 : VS60 high level
- Step 3 (Stop Motor Transfer) : menon-aktifkan M61
- Transisi Step 3 - Step 0 : M61 Stop
Dibawah ini adalah DB dari objek objek yang bersangkutan

Kemudian inisialisasi instance template dari HiGraph, yaitu masuk ke S7 Program -> Source -> Klik Kanan -> Insert New Object -> State graph
Kemudian kita “rename” menjadi “Hot Water”
Tampilan awal saat State Graph kita buka
yup, disitu bisa terlihat initial condition dengan permanen instruction (continuous cyclic), langkah selanjutnya yaitu dari cara kerja yang telah kita paparkan tadi jelas terlihat bahwa program yang akan kita buat terdiri dari 4 state, nah kita insert state sebanyak 4 buah seperti contoh di bawah ini

nah kelebihan dari HiGraph yaitu posisi state serta permanen instruction bisa kita pindah pindah posisinya semau kita, fleksibel sekali khan?? ![]()
Kemudian kita menambahkan transisi ke graph tersebut

Kemudian dari transisi tersebut kita buat instruction untuk conditionnya, dalam hal ini menggunakan bahasa STL untuk instructionnya
Caranya yaitu klik dua kali di transisi kemudian insert di conditions
Kita lihat di cara kerja sistem yang telah kita buat, disitu transisinya yaitu tombol start, maka logikanya yaitu A “Start” (dimana A artinya yaitu logika AND di STL, serta Start adalah simbol dari address memory yang telah kita buat)
Kemudian setelah itu mengisi action di state sesuai dengan cara kerja yang telah kita deskripsikan
Kita isinya di Cyclic Actions sehingga logika tersebut selalu dieksekusi, jika hanya ingin sekali di eksekusi bisa kita letakkan di Entry Actions

Untuk hal yang sama dang sesuai dengan cara kerja yang telah kita buat, begitu juga dengan state dan transisi transisi selanjutnya, sehingga menjadi seperti di bawah ini
Setelah selesai kita membuat graph statenya, langkah selanjutnya yaitu membuat graph group, jadi kita balik lagi ke S7 Program -> Source -> Klik Kanan -> Insert New Object -> Graph Group
Kemudian kita masukkan instance (graph state) yang telah kita buat sebelumnya
Kemudian Graph group tersebut kita compile sehingga menjadi sebuah FC dan DB, tapi sebelum di compile ada hal hal yang harus di set terlebih dahulu
Save and Compile

Tidak ada Error dan Warning

Kemudian bisa kita lihat otomatis di block terlihat FC1 dan DB 1 hasil compiling
Kemudian langkah selanjutnya yaitu mencoba program tersebut, dalam hal ini saya menggunakan PLC Sim serta untuk monitor dan modify variabel menggunakan variabel tabel
Semua variabel yang akan kita modify dan monitor kita letakkan di variabel tabel tersebut
Langkah selanjutnya yaitu memonitor graph group dan graph state yang telah kita buat, tapi terlebih dahulu FC1 (hasil compile) kita panggil dari OB1
Nah tanda hijau di state 0 menandakan statenya lagi berada diposisi itu
serta menunggu nilai “Start” untuk pindah ke state 1, misalnya kita simulasikan di variabel tabel
jika “start” kita ubah menjadi “true” maka AV58 dan M51 juga bernilai true, karena sekarang posisi statenya sudah di state 1, dan di graph nya akan terlihat seperti ini
warna “orange” menandakan state dan transisi yang sebelumnya dilewati, kemudian jika kita simulasikan lagi untuk ke state berikutnya
kita simulasikan temperature menjadi 60.0 , disitu terlihat AV58 dan M51 nilainya berubah menjadi false, sedangkan AV908 dan M61 nilainya menjadi true, karna kita sudah berada di state 2 (transfer)
hehehehe untuk simulasi selanjutnya bisa dicoba sendiri ![]()
bahasa pemrograman seperti ini sangat memudahkan sekali apabila diterapkan di suatu proses yang banyak sekali step - stepnya, kita bisa memonitor dimana state kita sekarang hanya dalam satu window, serta semua posisi dari state dan transisi bisa kita pindah sesuai yang kita mau ![]()
























February 20th, 2009 at 2:23 pm
Komentar :
HiGraph nya bisa dimonitor juga ya
Karena bagi saya baru, (gak tau kalau diExplore lebih dalm) sepertinya agk sulit ya. Kita secara umum harus sudah bisa membayangkan secara detil rangkaian Proses yang akan kita buwat, dari awal sampai akhir.
Untuk pemrograman dengan ini say rasa agk sulit untuk pemrograman parsial,
Pertanyaan :
1. Jadi apakah pada awlnya kita hanya menyediakan Object-nya?
2. Jadi selama ini di kantor ngerjain itu mas ya, pantes aja si Bos ngomong “Not Good” hahahahhhahahha
February 20th, 2009 at 2:42 pm
wah pertanyaan bagus mas layudhi bengak
yah gak lah….khan state serta transisi bisa kita sisip serta digeser geser atau dipindah pindah dimana aja…justru disitu letak kelebihannya
February 21st, 2009 at 2:35 pm
mas salam kenal.minta contac person nya dong.ma alamat emailnya.
February 21st, 2009 at 4:05 pm
salam kenal juga mas
email : fathoni@toekangplc.com
February 23rd, 2009 at 9:05 am
hmmm yang waktu itu ya bang…hmmmmm yang sebelumnya juga belum khatam….hehehehehe function2nya belum tak utek2 semua..baru sebagian kecil….
February 24th, 2009 at 4:00 pm
mas, punya contoh2 convert fungsi LIR dan TIR dari Step5 ke Step7. katanya sih bisa pake indirect addressing tapi masih blm mudeng nih..:)
February 25th, 2009 at 1:25 am
maaf gak ada mas
February 25th, 2009 at 10:33 pm
Salam kenal,
Mau nanya nich, bisa kasih contoh tag untuk time syncronize dari WinCC –> S7. Maksudnya biar PLC bisa update time dari PC Time Server.
Tq
February 26th, 2009 at 5:54 am
nanti saya kirimin contoh aplikasinya ke email mas
February 26th, 2009 at 11:11 am
salam kenal,
saya mw tanya nih tentang PLC Omron tipe Zen-10C1AR-A.
apa bisa PLC tersebut digunakan unt aplikasi conveyor sederhana?
inputnya sensor n output nya motor.
kira2 unt output PLC nya menggunakan jenis motor apa ya?n berapa volt?!
nb:panjang n lebar conveyor kira2 1.5m x 20cm
February 26th, 2009 at 1:21 pm
ok mas ditunggu contoh aplikasinya.
Tq
February 27th, 2009 at 3:43 am
@ K_Ramdhani
saya gak pernah pegang ZEN mas
maaf yah gk bisa bntu
February 27th, 2009 at 4:05 am
Wah wah…. HiGraph yah? mantap2, ini aja yang STL belum tamat
@ K_Ramdhani
OMRON ZEN 10C1AR-A ya? smart relaynya OMRON tuh. Pake ladder juga bahasanya.
March 20th, 2009 at 3:52 pm
# joephi Says:
February 25th, 2009 at 10:33 pm
Salam kenal,
Mau nanya nich, bisa kasih contoh tag untuk time syncronize dari WinCC –> S7. Maksudnya biar PLC bisa update time dari PC Time Server.
Tq
# Fathoni Says:
February 26th, 2009 at 5:54 am
nanti saya kirimin contoh aplikasinya ke email mas
——————–
Mas contoh aplikasinya bagaimana?
March 20th, 2009 at 5:00 pm
maaf mas
lagi sibuk2nya
jadi belon sempat cari2 contoh project
untuk yg auto synchronize
dulu aku simpan di server kantor
kalo cara manual gini :
dari tag wincc ambil driver system info, disitu ada info untuk date time scada, nah tiap beberapa saat (terserah trigernya kapan) disynchronize date time plcnya pake SFC 0 dan SFC 1 untuk SET dan READ CLOCK PLC
March 20th, 2009 at 5:05 pm
SFC0 itu khan untuk SET CLOCK, nah dengan triger yang telah ditentukan, kita move aja nilai date time dari system info wincc ke tag data block yang ada di SFC0, selain itu triger itu juga berfungsi untuk mengaktifkan SFC0 di program PLC, nah otomatis dech date time PLC mengikuti date time SCADA
June 30th, 2009 at 9:49 am
weuw…mangstab boz..
Nice post..keren..keren …nambah ilmu… makasih Boz
March 11th, 2010 at 5:01 am
Ass.. Wr. Wb.
Slm kenal Mas, sy ingin skli belajar PLC Khususnya Siemens S7 dr dasar, apa boleh saya minta penjelasan2 dsr soal S7 ini Mas, thnks.