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)
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.
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%
Untuk step selanjutnya seperti step biasa kalo mau konfigurasi S7 PLC ke InTouch
5. Setting DASSIDirect (OPC Server for InTouch)
8. Create Tag
kita coba untuk merubah nilai memory byte 0 di variable table Step7 menjadi 10, maka di
InTouch Runtime juga menjadi 10
merubah nilai memory byte 0 di variable table Step7 menjadi 20, maka di InTouch Runtime juga
menjadi 20 , selesai deh dengan cara ini maka kita bisa mensimulasikan program ke
HMI/SCADA software tanpa PLC secara hardware/fisik.
Comments (124)
sharing cara membuat system diagnostic di PLC dan HMI dengan software TIA Portal
artikel berikut sangat berguna untuk maintenance, karena dengan system diagnostic berikut,
pihak maintenance bisa dengan mudah trouble shooting apabila ada breakdown di PLC system
terutama yang berkaitan dengan hardware down tanpa harus membuka editor PLC Program.
Software yang digunakan adalah :
- TIA Portal Step 7 v11 SP2
- TIA Portal WinCC v11 SP2
Langsung aja ke langkah langkah yang udah saya coba sebelumnya :
1. Add new PLC device, di contoh ini saya menggunakan CPU315-2 PN/DP
2. Klik di device view -> klik di CPU -> di propertiesnya dibagian system diagnostic ->
centang pilihan activate system diagnostic for this PLC
4. Add tag PLC, dalam contoh ini saya tambahkan hanya 1 tag di address I 0.0
5. Compile PLC
6. Add HMI device, dalam contoh ini menggunakan TP700 Comfort Series
7. Di menu Device and Network, buat link komunikasi antara PLC dan HMI
8. Buat HMI tag, untuk memudahkan tinggal copas aja dari PLC tag
9. Add new screen di HMI, kemudian drag and drop object System Diagnostic Screen
12. Kemudian saya simulasikan module PLC error dari PLC Sim
13. Bisa dilihat di tampilan HMI nya muncul tanda seru merah (error indikasi) di sistem
diagnostic viewer
*System diagnostic berikut hanya bisa untuk PLC type S7-300, S7-400 dan WinAC, jadi untuk
tipe micro automation seperti S7-200 dan S7-1200 feature ini tidak tersedia. Kemudian tipe panel
yang bisa yaitu tipe Comfort or higher.
Comments (44)
- Steam
- Chil water
Sedangkan area yang akan dimonitor yaitu :
- Waste water
- Boiler
- Chiller
- Compressor
- LVMDB
- Process
- Packing
- Building
Teknologi yang digunakan dalam hal ini yaitu PLC HMI system , mungkin banyak diluaran
sana one packet system for monitoring seperti CEM Wonderware, Simatic Powerrate & b.Data ,
atau RSEnergyMetrix bikinannya Rockwell.
System yang saya gunakan menggunakan S7-300 as Central CPU, dan Wonderware InTouch
yang di combine dengan SQL2005 EE as HMI and Database Server. Pertimbangannya hanya dua
; cost & kemudahan buat teknisi dan engineer disini yang notabene udah familiar dengan
Siemens PLC & InTouch, jika nanti suatu saat ada modifikasi.
Arsitektur PLC & IO Slave :
Konfigurasi di atas menunjukkan PLC sebagai central controller, ET200M yang terhubung ke
sensor-sensor seperti temperature, flow, dan pressure. Sedangkan power meter untuk mengukur
electrical usage langsung terhubung sebagai IO Slave dengan profibus sebagai protokol disisi IO
level. Sedangkan protokol di level HMI menggunakan profinet / ethernet.
Arsitektur diatas terdiri dari 1 HMI server sebagai centralized real-time data dari dan ke PLC dan
centralized database server. Dua HMI client hanya sebagai viewer real-time and historical EMS
data. Yang agak berbeda di konfigurasi HMI berikut yaitu menggunakan virtualize desktop,
mudahnya yaitu hanya membutuhkan 1 unit hardware server tapi didalamnya terdapat 3 virtual
OS (server, client1, client2). Virtualization desktop yang digunakan yaitu dari produk VMWare
ESXi Server, keuntungan dari virtualize dekstop adalah :
- PC Desktop digantikan oleh Thin Client yang lebih murah dan mudah maintenancenya
- Backup seluruh system hanya dalam one file
- Saving lead time untuk konfigurasi, instalasi, aplikasi dan network
- Manage semua OS secara centralized, etc
Beberapa contoh mimic overview dari aplikasi :
Mungkin cuma sedikit overview ini aja yang bisa saya tampilkan, mungkin nanti detilnya akan di
buatkan artikelnya oleh teman saya terutama dibagian Virtualization Desktop. Hal yang unik
dari aplikasi ini adalah bahwa sistem ini dibangun bener bener dari sebuah white paper dan
menggunakan custom software baik itu dari sisi PLC dan HMI nya , keuntungannya mungkin
kita bisa bebas mencreate sesuatu yang fleksibel (belum pernah ada) dan juga tidak
membutuhkan biaya yang besar dibanding jika kita menggunakan package software seperti yang
saya sebutkan diatas.
Comments (35)
Selain bercerita tentang project, artikel ini juga bercerita tentang bagaimana caranya dua PLC
bisa berkomunikasi dengan menggunakan profibus sebagai protokol.
Arsitektur Sistem :
Fokus di artikel ini adalah lebih ke bagaimana membangun komunikasi antar PLC dengan
profibus sebagai protokolnya.
Menurut yang saya tahu, ada tiga cara komunikasi menggunakan profibus :
- Komunikasi master slave
- Menggunakan DP/DP Coupler
- S7 FMS Connection
Dan untuk artikel kali ini, saya menggunakan cara komunikasi master slave. Mengapa saya
memilih cara ini ? karena menurut saya cara ini lebih simple baik itu dari sisi additional
hardware maupun configuration dan programmingnya.
Tutorial singkat dari saya :
- PLC A dan PLC B harus berada dalam satu project Simatic Manager
- Salah satu PLC harus mengalah menjadi slave, dalam hal ini PLC B sebagai DP slave.
Bisa di set konfigurasinya di hardware config.
- Untuk sisi programming, menggunakan library bawaannya S7, SFC14 dan SFC15
LADDR untuk PLC A yaitu W#16#32 (hexadecimal), karena tadi saya set address untuk I/O
partner address adalah 50 (decimal), sedangkan untuk PLC B yaitu W#16#64 (hexadecimal)
karena local address yang saya set adalah 100 (decimal).
Untuk PLC A dan PLC B, data yang akan dikirim diletakkan di DB 1 dengan panjang byte yaitu
10. Sedangkan data yang akan diterima diletakkan di DB 2 juga dengan panjang byte yang sama.
Semoga artikel ini bermanfaat dengan adanya artikel ini menambah satu cara lagi untuk
berkomunikasi antar PLC S7, baik itu melalui MPI, Profibus DP, atau dengan Profinet.
Comments (75)
Dari flow diagram di atas dapat dilihat bahwa yang di control adalah speed dari pompa chemical,
berdasarkan inputan dari berapa jumlah waste yang masuk, berapa jumlah chemical yang masuk,
sehingga menghasilkan ratio standard dalam hal ini yang ingin kita capai sebesar 0.83.
System ini terhubung dan di control oleh Simatic S7 PLC, typical continuous control yang
digunakan adalah ratio control , adapun penjelasan menurut wikipedia adalah Ratio control is
used to maintain the relationship between two variables to control a third variable .
Saya memanfaatkan add-on atau library yang dimiliki Simatic S7 (meskipun harus install lagi)
Library tersebut bernama Modular FB PID Control v4.1 , yang terbaru kayaknya udah v5.0 .
Setelah di install akan muncul banyak modular block yang siap dirangkai sesuai block rangkaian
control, ibaratkan seperti merangkai puzzle.
Seperti penjelasan diatas, bahwa ratio control digunakan untuk menghubungkan antara dua
variabel untuk mengendalikan variabel ketiga. Jadi kira kira nantinya saya akan membuat block
control seperti ini :
dimana ;
PV1 : Waste Flow Rate
PV2 : Chemical / Coagulant Flow Rate
SPRat : Ratio yang ingin dicapai = 0.83 (konstan)
LmnPer : Output Speed Chemical Pump (binary data)
Adapun langkah untuk membuat function block tersebut :
1. Mencari nilai ratio aktual
Selesai !! dengan library dan add-on tersebut, kita bisa berkreasi dan membuat program sesuai
dengan kebutuhan continuous sistem kita seperti apa.
Comments (24)
The figure above is explained about data frames and time interval within a send clock cycle 1000
us (1 ms). Lets see the orange and white area, reserved transmission bandwith for IRT is as a
proportion of the max, possible transmission of cyclic user data 30 % of 500 us (150 us). Green
area (RT data) is cyclic RT frames prioritized according to urgency in level 6/high (Profinet IO).
Priority level of RT data based on IEEE 802.1Q
Comments (2)
The address of transfer area are preset by HW Config, as usual can be changed by user. In this
case, Q 100.0 was specified for the transfer area.
Finally !! just it how to create and use I-Device that can we use to exchange data between CPUs.
I-Device is one of many function profinet, other functionality of profinet i.e option handling,
device replacement, prioritized startup, docking station, shared device, Isochronous mode,
PROFIenergy, web base system, and media redundancy.
Comments (20)
System Proposed :
IOServer : PS Direct
Untuk develop PLC nya, disini saya tidak menggunakan fasilitas dari Step7 untuk migration S5
S7, jadi semuanya di program ulang berdasarkan dari operating filosofi dokumen, diskusi
dengan operator, serta pembacaan program dari program S5 sebelumnya. Hal ini dilakukan
karena rencananya sistemnya dibuat per object, sedangkan hal ini akan sangat sulit dilakukan
jika bergantung dengan program yang existing S5. Kemudian juga faktor waktu developing dan
commissioning yang tidak terlalu mendesak sehingga memungkinkan untuk program dari nol .
Salah Satu Object di Program PLC :
Object Analog Input
Elemen elemen dari suatu object Analog Input di PLC program beserta Faceplate SCADAnya
CW
CmdForce
STRUCT
BOOL
Command Word
Command Force Value
CmdDMax3
CmdDMax2
CmdDMax1
CmdDMin1
CmdDMin2
CmdDMin3
CmdSQRT
CmdBP
RawPIW
PVL
PVH
Max3A
Max2A
Max1A
Min1A
Min2A
Min3A
HYS
FPV
OFFS
SW
fMod
PV
STS
amin !!