Saya mau menanyakan kepada rekans yg memiliki berpengalaman dlm programming
PLC dan SI.Alfi Syahrin alfi.syahrin@gmail.com
Dear all,
Saya mau menanyakan kepada rekans yg memiliki berpengalaman dlm programming
PLC dan SI.
Selama ini, dalam programming PLC saya masih menggunakan konsep yg sangat
tradisional sekali dimana dalam satu prog file saya langsung gunakan sebagai
main PLC program (main, auto, manual, I/O) sehingga dlm proses
troubleshooting sangat susah. Nah, saya baca2 dari rekans(milis sebelah),
mereka menyampaikan bahwa akan lebih mudah jika dibuat sub routine yang
menghandle fungsi2 Main/Auto/Maual/dan I/O tsb. salah satu solusinya adalah
menggunakan Jump to Sub Routine (JSR). Jika saya menggunakan perintah ini
ada beberapa konsep yang masih saya bingung dan ingin tanyakan kpd rekans
yaitu:
1. Jika pada main program saya buat JSR ke beberapa subroutine (sub
Auto/manual/ dan I/O), apakah akan mengganggu scan dari logic command yang
saya buat di main routine?
2. Apakah data2 yg ada di PLC misalkan pada AB utk operasi bit B3:x/y pada
subroutine yg tdk aktif akan selalu diupdate, sehingga masih bisa dipakai
sebagai inputan di subroutine yg aktif. contohnya interlock antara
subroutine manual dan auto.
3. Jika menggunakan konsep subroutine ini, apakah akan menggangu proses
update I/O berhubung subroutine utk I/O saya buat terpisah dari subroutine
utama?
Mohon maaf jika pertanyaan ini sangat banyak, berhubung saya masih baru di
dunia automasi. Mohon rekans yg memiliki pendapat dan pengalaman bisa share
dan mengkoreksi konsep yg tidak benar dari saya. terima kasih atas tanggapan
yg diberikan.
Enung Nurmalia e.nurmalia@gmail.com
Pak Alfi,
Sub routine dibuat untuk memudahkan user melakukan troubleshooting.
saat anda meng-create satu subroutine, anda akan melanjutkannya dengan
me-register sub routine tersebut di sub routine sebelumnya untuk bisa
di-scan oleh controller.or let say kita menempatkan JSR ke tiap-tiap sub
routine semuanya di main routine biar gampang melacaknya.
saat anda sudah membuat JSR, dengan otomatis controller akan meng-scan sub
routine tersebut, jadi tidak ada istilah sub routine ‘tidak aktif’,
yang ada hanya urutan scanning controller dalam orde milliseconds.
kecuali anda membuat subroutine khusus untuk ‘debug’, artinya anda membuat
subroutine khusus untuk simulasi tapi tidak akan ter-download ke controller.
jadi tidak ada istilah subroutine akan meng-interrupt main routine. silahkan
anda buat banyak sub routine, karena itu sangat bermanfaat untuk tracing
logic.
Alfi Syahrin alfi.syahrin@gmail.com
Dear Mbak Enung,
Terima kasih atas responnya, btw jika di AB JSR kan bisa kita kondisikan utk
aktif atau tidak aktif misalkan kita buat prog file 3 utk analog I/O
scanning, dan pada prog file 4 manual, dan 5 utk auto. jika kita buat
interlock antara auto dan manual dan logic ini kita masukkan sebagai kondisi
dari JSR ke U:4 (manual), apakah secara ‘scanning’ JSR ke U:4 ini akan
langsung jump ke prog file 5?
Oh iya, sy mau menggunakan Analog output utk mengirimkan signal 4-20 mA ke
sebuah solenoid. Jika saya menggunakan fungsi matematika utk menentukan
kondisi integer, sebagai value yang akan saya kirimkan ke output agar
solenoid bergerak sampai ke suatu titik. bagaimana cara mengkonversikannya
(dari integer menjadi analog output?). Mohon pencerahannya. Terima kasih
Enung Nurmalia e.nurmalia@gmail.com
Dear Pak Alfi,
kalo masing2 subroutine dikasih condition, ya automatically sangat
tergantung sama condition yang kita buat. berlaku hal yang sama untuk
file-5. kecuali file 5 anda buat tanpa condition, ya automatically akan
nge-jump.
solenoid kok analog sih? I/P transducer kali??
analog ranging kan tergantung dari scaling yang anda buat di program
kalo misalnya resolusi yang anda pilih dari AO card 0 – 4095 dan itu identik
dengan 0 – 20mA
ya…. tinggal pake aritmetik biasa aja, Integer yang ingin anda convert
dengan resolusi analog card itu berapa, masukin ke block Analog_scale.
yang perlu anda perhatikan kan cuma raw value (0-4095) dan integer yang anda
inginkan
perkara convert ke signal analog 4 – 20mA itu kan urusan analog output card
anda.
semoga membantu,
kalo ada hal lain yang perlu dibahas, silahkan japri.
Hendri D hendri.dh@gmail.com
Dear pak…
Setahu saya pada AB adanya JSR atau tidak, CPU tetap melakukan scan. Sebab JSR fungsinya adalah untuk memperioritas kan SBR mana yang terlebih dahulu yang discan, tergantung pada soubroutine data base yang kita buat. Apakah unconditional atau conditional. Jadi kalau kalau pak Alfi tidak buat JSR pada pagefile pertama, program bpk tetap di scan.
Mengenai fungsi matematika utk penyampaian ke analog output, adalah tergantung dari program apa yang mau bpk buat. Bisa di mutiply, devide atau less menurut condition and uncondition. Misalnya begini: jika analog input 4 mA, maka integer 0 di mov ke AO atau jika tidak, integer yg ada di fungsi matematik akan di mov ke AO dengan scale yang di inginkan tentu nya. Ini hanya salah satu contoh dari condition and uncondition.
Semoga bermanfaat…….
Alfi Syahrin
To: hendri.dh@gmail.com
Sent: Wednesday, November 19, 2008 10:20 AM
Subject: Re: [Oil&Gas] (instr) Mau tanya ttg konsep2 programming PLC (ladder based)
Dear Pak Hendri,
Maaf saya lanjutin ke japri berhubung takut mengganggu rekans lainnya. Terima kasih atas bahasannya, saya sudah mulai mengerti dengan konsep yang diberikan mengenai fungsi2 tsb. Btw jika saya harus menscan analog input dan melakukan konversi matematik, apakah SBR utk page file tsb harus saya letakkan di awal dari semua program? berhubung analog kan real time dan harus di cek terus menerus.
SAya baca2 juga dimanual, ada fungsi SCP (scale w/ parameter) apakah fungsi ini hanya bisa utk linear? bagaimana dengan fungsi yang tidak linear (misalkan fungsi yang eksponesial?) apakah saya haru membuatkan konversi matematis dahulu?
Maaf baru kenal nanyanya banyak, maklum baru belajar.
Terima kasih atas tanggapannya…
Hendri D
Dear Pak Alfi,
Biasanya untuk SBR AI & AO kita letak kan di halaman terakhir saja pak, supaya nantinya kita gampang mencari nya. Di rekomendasikan untuk input di SBR 248 & output di SBR 250. Dan perlu satu hal pak, JSR diletakkan tidak mesti di main (SBR pertama), di SBR lain juga kita bisa membuat JSR. Kita buat di main spy kita gampang melakukan trace. Biasanya kalau JSR dibuat di halaman main berarti orang tersebut sudah experience.
Mengenai analog I/O yg diletakkan di SBR terakhir apa tetap di scan? Ya…., CPU akan tetap men scan seluruh SBR yang bapak buat setelah di upload ke CPU.
Untuk pertanyaan terakhir, bagaimana dengan fungsi yang tidak linear (misalkan fungsi yang eksponesial?) apakah saya haru membuatkan konversi matematis dahulu? betul, sekali pak.
Semoga bermanfaat….
Alfi Syahrin
To: Hendri D
Sent: Wednesday, November 19, 2008 12:30 PM
Subject: Re: [Oil&Gas] (instr) Mau tanya ttg konsep2 programming PLC (ladder based)
Wah ini update baru lagi bahwa sebaiknya AI/AO diletakkan di SBR 248 dan 250…berarti berhubung time scan utk konversi AI/AO lama lebih baik diprioritaskan scan program auto or manualnya bukan begitu?so AI/AO kita buncitkan prioritasnya bukan berarti diakhirkan hehehe…
Nah ini nih agak bermasalah sedikit, bos saya barusan sudah ngasih micrologix 1100 ini ada di hadapan saya, cuma saya bingung bagaimana cara konfigurasi agar RSLOGIX saya bisa komunikasi dengan PLCnya? karena saya sudah melakukan apa yg manual suruh cuma tdk berhasil. saya sudah cek ke device manager lho bahwa COM1 sdh used terpaksa saya pake COM4 dan baud rate sudah saya set di 19200…saya pake usb to serial adapater dan drivernya sudah saya install dgn sukses. tapi kenapa tidak bisa konek ya?
Hendri D hendri.dh@gmail.com
Itu kan hanya direkomendasikan, mungkin untuk standar nya aja tp kl memang mau dibuat di depan ngga mengapa. Mengenai komunikasi apa sudah dicoba dari RS Link ?
Puji Yusnanto pyusnanto@gmail.com
Pak Alfi,
Mungkin bisa dicoba dulu test komunikasi PC to PLC dengan menggunakan COM1
(device di COM1 di switch dengan koneksi to PLC dulu).
Basically harus ada 2 software yang saling linkage : RSLinx dan RSLogic.
Mengenai konfigurasi hardwarenya mungkin bisa di ikuti dengan langkah2
berikut :
1. Connect Micrologic connection cable di COM port nya PC.
2. Di bagian RSLinx:
– Buka RSlinx program, pilih ‘Configure Device’.
– Setelah terbuka ‘Configure Device’ window, pada ‘Available Driver Types’,
pilih : RS-232 DF1 Device
– Click ‘Add New’, lalu click ‘OK’. Pastikan Baut Rate : 19200 dan COM nya
benar (yg dipakai connect to PLC)
Default setting pada menu ini : Parity = None, Stop bit = 1, Error
checking = Bcc, Protocol = Full Duplex, Device = PLC -CH0
3. Dibagian RSLogic:
– Buka program RSLogic
– Click File > New, pilih processor type dari PLC yang digunakan. Contohnya
yg saya pakai : Bul. 1761 Micrologic 1000
Semoga membantu dan mohon dikoreksi jika ada yg keliru.