Simple PID S7-300/400

S7-300, S7-400, Simatic Step7 Add comments

sharing cara membuat PID sederhana di S7-300/400 dengan software Simatic Manager

Banyak sekali permintaan di email untuk membuat artikel tentang PID di S7-300/400 dengan menggunakan software Simatic Manager. Akhir tahun lalu saya mengerjakan project untuk Evaporator System dengan banyak sekali menggunakan control loop PID. Berikut salah satu bagiannya :

Prinsip kerja dari sistem diatas adalah apabila pressure transmitter (PT) terbaca dibawah setpoint maka control valve (CV) akan membuka/increase, sedangkan sebaliknya jika PT terbaca diatas setpoint maka CV akan menutup/decrease.

Langkah pertama yaitu mengidentifikasi object input dalam hal ini yaitu PT dan object output yaitu CV. Data untuk kedua obyek tersebut adalah :

1. Pressure Transmitter (PT)
– Sinyal Transmitter : 4 – 20 mA
– Range : 0 – 10 bar
– Address : PIW100 (channel 0 dari module analog input)

2. Control Valve (CV)
– Sinyal Transmitter : 4 – 20 mA
– Range : 0 – 100 % Normally Close
– Address : PQW200 (channel 0 dari module analog output)

Tahap selanjutnya yaitu mulai programming untuk analog input, PID Blocks dan analog ouput.

a. Bit Always TRUE dan Always False
Kedua bit ini akan sangat diperlukan di program, jadi saran dari saya sempatkan untuk bikin program untuk kedua bit ini di awal program. Jika menggunakan TIA Portal, kedua bit ini sudah otomatis disediakan tinggal dipake aja.

b. Scaling Analog Input
Tugas dari fungsi ini adalah mengconvert bilangan decimal menjadi besaran fisik sesuai instrument.

IN kita isi dengan PIW100 sesuai address di hardware configuration
Karena range dari analog input adalah 0-10 bar, maka LO_LIM kita isi 0.0 dan HI_LIM kita isi 10.0
Hasil dari scaling akan kita gunakan sebagai inputan untuk PID Block, dalam kasus ini menggunakan address MD20 (real)

c. PID Block
Menggunakan standard library bawaan Siemens yaitu FB41.

Sebelum masuk ke penjelasan parameter PID, ada baiknya kita mengetahui konsep dari PID itu, lihat bagan dibawah ini

PID adalah kontroler untuk menentukan presisi suatu sistem instrumentasi dengan karakteristik adanya umpan balik pada sistem tesebut, fungsi control tersebut tujuannya adalah minimize/mengendalikan error dengan tiga cara yaitu proportional, integral, derivative, bisa dipake hanya satu aja atau semuanya berbarengan sesuai respont dari plant.

Kontrol Proporsional
Kontrol P jika G(s) = kp, dengan k adalah konstanta. Jika u = G(s) • e maka u = Kp • e dengan Kp adalah Konstanta Proporsional. Kp berlaku sebagai Gain (penguat) saja tanpa memberikan efek dinamik kepada kinerja kontroler. Penggunaan kontrol P memiliki berbagai keterbatasan karena sifat kontrol yang tidak dinamik ini. Walaupun demikian dalam aplikasi-aplikasi dasar yang sederhana kontrol P ini cukup mampu untuk memperbaiki respon transien khususnya rise time dan settling time.

Kontrol Integratif
Jika G(s) adalah kontrol I maka u dapat dinyatakan sebagai u(t)=[integrale(t)dT]Ki dengan Ki adalah konstanta Integral, dan dari persamaan di atas, G(s) dapat dinyatakan sebagai u=Kd.[deltae/deltat] Jika e(T) mendekati konstan (bukan nol) maka u(t) akan menjadi sangat besar sehingga diharapkan dapat memperbaiki error. Jika e(T) mendekati nol maka efek kontrol I ini semakin kecil. Kontrol I dapat memperbaiki sekaligus menghilangkan respon steady-state, namun pemilihan Ki yang tidak tepat dapat menyebabkan respon transien yang tinggi sehingga dapat menyebabkan ketidakstabilan sistem. Pemilihan Ki yang sangat tinggi justru dapat menyebabkan output berosilasi karena menambah orde sistem

Kontrol Derivatif
Sinyal kontrol u yang dihasilkan oleh kontrol D dapat dinyatakan sebagai G(s)=s.Kd Dari persamaan di atas, nampak bahwa sifat dari kontrol D ini dalam konteks “kecepatan” atau rate dari error. Dengan sifat ini ia dapat digunakan untuk memperbaiki respon transien dengan memprediksi error yang akan terjadi. Kontrol Derivative hanya berubah saat ada perubahan error sehingga saat error statis kontrol ini tidak akan bereaksi, hal ini pula yang menyebabkan kontroler Derivative tidak dapat dipakai sendiri

Selanjutnya kita masuk ke penjelasan general dari masing-masing parameter PID Block FB41 :

Bit M1.0 dalam kasus ini saya gunakan jika system kita running untuk enable PID block tersebut
PVPER_ON tidak saya aktifkan karena saya tidak menggunakan langsung pheriperal value
P_SEL adalah penggunaan Proportional untuk mengontrol error –> aktifkan
I_SEL adalah penggunaan Integral untuk mengontrol error –> aktifkan

LMN adalah output value untuk CV 0-100%

D_SEL adalah penggunaan Derivatif untuk mengontrol error –> aktifkan
CYCLE , scan cycle dari fungsi FB41 berikut, biasanya saya menggunakan selang waktu 1 detik
SP_INT adalah setpoint dari PID system, untuk contoh ini saya menggunakan MD24 (real)
PV_IN adalah process value feedback dari PT yang sebelumnya kita scaling di rung sebelumnya
MAN adalah manual value saat kondisi manual mode
GAIN : settingan Kp sekedar saran untuk setingan awal gunakan gain yang kecil dalam hal ini yaitu 0.01
TI : settingan Ki biasanya saya menggunakan T#10s
TD : settingan Kd biasanya saya menggunakan T#30s

untuk contoh ini cara menentukan parameter Kp Ki dan Kd menggunakan cara trial dan error, dari parameter diatas jika error yang terjadi masih besar, diadjust dengan merubah Kp terlebih dahulu.

untuk settingan yang terakhir ;
LMN_HLM : batas atas dari manipulated value atau nilai yang akan ditransfer ke CV dalam hal ini yaitu 100.0
LMN_LLM : batas bawah dari manipulated value 0.0
PV_FAC dan LMN_FAC isi dengan nilai 1.0 (faktor pengali)

c. UnScaling Analog Output
Tugas dari fungsi ini adalah kebalikan dari scaling AI yaitu mengconvert dari besaran fisik CV menjadi bilangan decimal.

OUT kita isi dengan PQW200 sesuai address di hardware configuration
Karena range dari analog output adalah 0-100 % , maka LO_LIM kita isi 0.0 dan HI_LIM kita isi 100.0
Keluaran dari PID Block (LMN) kita gunakan sebagai inputan unscaling, dalam kasus ini menggunakan address MD28 (real)

d. Simulasikan di Variabel Tabel

Saat PV lebih kecil dari setpoint, maka CV akan increase

Saat PV lebih besar dari setpoint, maka CV akan decrease

Untuk source code programnya bisa didownload disini

Copyright © 2008 toekangscada.com, Powered by Wordpress, WP Theme redesign from Glossyblue
Entries RSS Comments RSS Log in