Anda di halaman 1dari 8

Simple PID S7-300/400

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

Anda mungkin juga menyukai