PLC Basic 5 – Pemrograman PLC Tingkat Dasar

5.1 Organisasi Memori Processor

Peta atau struktur memori untuk sebuah processor terdiri dari beberapa area. Organisasi memori memperhitungkan cara PLC membagi memori yang tersedia menjadi beberapa bagian.

5.1.1    Memori MicroLogix dan SLC-500

Memori dapat dibagi menjadi dua kategori : program files dan data files. Program files adalah bagian dari memori processor yang menyimpan program ladder diagram. Program files memuat ladder diagram yang mengontrol kinerja mesin yang memuat instruksi-instruksi program dalam format ladder. Data files menyimpan informasi yang dibutuhkan untuk menjalankan program. Informasi ini diantaranya status input dan output perangkat, nilai timer dan counter, penyimpanan data dan sebagainya.

Organisasi memori dengan sistem rack-based seperti AB PLC-5 dan SLC 500 sangat mirip, Gambar 5-1 menunjukan organisasi program files dan data files pada SLC 500.

Gambar 5-1 Organisasi program files dan data files dari SLC 500

 

5.1.1.1 Program Files

Program files adalah bagian dari memori processor yang menyimpan program ladder diagram. Diantaranya :

  • System Function (file 0). File in selalu ada dan memiliki beberapa informasi sistem dan informasi program seperti jenis processor, I/O configuration, processor file name dan password.
  • Reserved (file 1). File ini sebagai cadangan untuk processor dan tidak dapat diakses oleh pengguna.
  • Main ladder program (file 2). File ini selalu ada dan memuat instruksi-instruksi program yang menentukan bagaimana PLC beroperasi.
  • Subroutine ladder program (file 3-255). File ini adalah file yang dibuat oleh pemakai dan diaktifkan bedasarkan instruksi pemanggilan subroutine pada main ladder program file.

 

5.1.1.2 Data Files

Data files adalah bagian dari memori processor yang menyimpan status input dan output, status processor, status berbagai bits dan data numerik. Semua informasi diakses dari program ladder diagram. File ini diorganisasikan oleh jenis data, diantaranya :

  • Output (file 0). File ini menyimpan kondisi dari terminal output.
  • Input (file 1). File ini menyimpan status dari terminal input.
  • Status (file 2). File ini menyimpan informasi operasi processor dan sangat berguna untuk pencarian masalah dan operasi program.
  • Bit (file 3). File ini digunakan untuk internal relay logic.
  • Timer (file 4). File ini menyimpan nilai timer yang terakumulasi dan preset dan bit
  • Counter (file 5). File ini menyimpan nilai counter yang terakumulasi dan preset dan bit
  • Control (file 6). File ini menyimpan panjangnya posisi pointer, dan bit status untuk instruksi yang spesifik seperti shift register dan sequencer.
  • Integer (file 7). File ini digunakan untuk menyimpan nilai numerik atau informasi bit.
  • Reserved (file 8). File ini tidak dapat diakses oleh pemakai.
  • Network communication (file 9). File ini digunakan untuk komunikasi jaringan jika dipasang atau digunakan.
  • User-defined (file 10-255). File ini ditentukan oleh pengguna sebagai bit, timer, counter, control atau penyimpanan data integer.

 

Format pengalamatan untuk SLC di tunjukan pada gambar 5-2. Format terdiri dari 3 bagian dibawah ini :

Bagian 1 :             I Untuk input dan sebuah tanda titik dua untuk memisahkan modul dari slot.

O untuk output dan sebuah tanda titik dua untuk memisahkan modul dari slot.

Bagian 2 :             Nomor slot dimana modul dipasang dan sebuah garis miring untuk memisahkan slot dari terminal.

Bagian 3 :             Nomor terminal.

Gambar 5-2 Format pengalamatan pada SLC

 

Pada PLC MicroLogix dan SLC-500, I/O diskrit dan I/O analog adalah bagian dari I/O image. Data file O memuat image untuk semua output, yang mana ditransfer ke modul output pada akhir program scan. Data file I memuat image semua input, yang mana dibaca dari modul input pada awal program scan.

Implementasi sirkuit pengkabelan pada MicroLogix atau SLC-500 ditunjukan pada gambar 5-3. Saklar pembatas dihubungkan ke saluran 12 pada modul input dan lampu dihubungkan ke saluran 6 pada modul output. Alamat saluran input ditunjukan diatas simbol saklar pembatas dan ladder. Alamat “I:3/12” berarti kontak dikendalikan oleh saluran input 12, pada slot 3 chassis lokal. Umumnya, format pengalamatan pada saluran input diskrit adalah :

I:s/c

Dimana s adalah nomor slot dimana modul dipasang dan c adalah nomor saluran. Demikian juga, alamat “O:4/6” berarti output (coil) dihubungkan ke modul output saluran 6, pada slot 4 chassis lokal.

Gambar 5-3 Format pengalamatan untuk SLC-500

 

Format alternative untuk pengalamatan diskrit I/O, menunjukan alamat sebagai bit dalam sebuah word, sebagai contoh  I:s.w/b, dimana w adalah nomor word dan b adalah bit dalam word.

Jenis Saluran                      Format Pengalamatan

Diskrit Input                       I:s/c atau I:s.w/b

Diskrit Output                    O:s/c atau O:s.w/b

Analog Input                      I:s.w [/b]

Analog Output                  O:s.w [/b]

 

Dimana

s adalah nomor slot (0 – 30)                        w adalah nomor word

c adalah nomor saluran (0 – 31)                 b adalah nomor bit (0 – 15), opsi untuk analog

Slot 0 dicadangkan untuk saluran input/output yang terletak pada base unit MicroLogix. Dalam sistem SLC-500, nomor slot dimulai dari 1. Untuk modul analog dalam sistem SLC-500, nomor word adalah nomor saluran. Untuk modul analog dalam system MicroLogix, nomor word tidak berhubungan dengan nomor saluran.

 

5.1.2 Memori Siemens S7

Memori processor S7-300/400/1500 diorganisasikan seperti yang diilustrasikan pada gambar 5-4.

Project adalah keseluruhan perangkat lunak (program dan data) yang berhubungan dengan sistem PLC yang mempunyai satu processor PLC atau lebih. Setiap Station adalah processor PLC.

Gambar 5-4. Model memori Siemens S7

 

System data block (SDB) memuat item seperti model processor PLC, I/O map, antarmuka komunikasi, koneksi remote I/O dan alokasi data memori. Data ini tidak bisa diakses oleh program.

Station memuat satu user program yang mempunyai organization block (OB) sebagai program utama. Oraganization Block pada dasarnya kombinasi dari satu tugas dan program. Program dalam OB1 mengeksekusi dijalankan satu kali setiap program scan. OB10 sampai OB122 disediakan untuk jenis program non-cycle seperti :

  • Fixed periodic interval
  • Process interrupt occurance
  • Diagnostic interrupt occurance
  • Synchronous and asynchronous error processing
  • Different types of startup processing
  • Multicomputing interrupt occurance
  • Backgroud program

Setiap OB, FC dan FB (disebut juga blok logika) mempunyai akses ke beberapa memori sementara, disebut local stack data memory. Ketika blok logika pertama kali dieksekusi, data sementara dialokasikan dari local data stack. Data sementara ini dibebaskan ketika blok logika selesai dieksekusi.

Program dalam OB dapat memanggil FB atau FC. FB mempunyai variable local ditampung dalam instance data block. FC tidak memiliki penyimpanan local. Shared data block dapat diakeses oleh OB, FB atau FC.  FC dan FB bawaan processor disebut SFC (system function) dan SFB (system function block).  Process I/O image table memuat image dari modul fisik input dan output. Peripheral I/O data memuat informasi yang sama seperti process I/O image table, tapi terletak pada modul input dan output.

Global data table adalah data yang berbagi antara processor. Sekali dikonfigurasi, transfer informasi antara processor terlihat pada user program.

Memori Processor S7-300/400/1500 dibagai menjadi dua, yaitu load memory dan work memory. Load memory memuat keseluruhan user program tanpa simbol dan komen. Load memory dapat berupa RAM, EPROM, EEPROM tergantung processor-nya. Work memory adalah RAM, dioptimisasi untuk akses kecepatan tinggi. Pada awal start-up, bagian dari program yang berhubungan untuk eksekusi program disalin dari load memory ke work memory.

 

5.1.2.1 Data Memori

Dalam processor S7, data dapat dialamatkan sebagai tag atau sebagai alamat absolut. Tag dikaitkan dengan setiap alamat absolut dalam program.

Nama tag dari sebuah alamat absolut dapat berupa rangkaian huruf, angka dan garis bawah sampai dengan 24 karakter. Umumnya, nama tag simbolik seharusnya hanya ada satu sebagai memori, function block atau nama instance. Tag lokal dan shared dibedakan dalam program dengan cara sebagai berikut :

  • Tag shared (dalam tabel tag) dimempunyai tanda quote (“_”).
  • Tag lokal (dalam tabel deklarasi variabel block) diawali dengan karakter “#”.

Tanda “#” secara normal ditambahkan oleh STEP7 ketika memasukan program. Tetapi, jika nama tag didefinisikan sebagai tag shared dan di tag lokal juga ada, maka nama tag lokal diasumsikan. Tanda quote harus ditambahkan jika yang diharapkan adalah shared tag.

Tag dan deskripsi untuk setiap alamat disimpan pada perangkat pemrograman dan tabel tag ini tidak terdapat pada controller. Oleh karena itu, ketika menghubungkan dengan processor S7 untuk memeriksa operasi online dari program, komputer harus mempunyai file project agar menampilkan tag dengan alamat program.

Ketika tag dideklarasikan, harus menetapkan jenis data. Jenis data dasar adalah sebagai berikut :

Jenis data DATE, TIME_OF_DAY, CHAR dan S5TIME tidak berlaku untuk processor S7-1200. Untuk processor S7-1200/1500 mempunyai tambahan jenis data dasar :

LWORD, LINT, ULINT, LTIME, LTOD, LDT dan WCHAR hanya untuk S7-1500

POINTER mengidentifikasi alamat dari lokasi memori. Pointer diidentifikasi dengan “P#” dilanjutkan dengan alamat memori bit-level. Perangkat lunak Step7 secara otomatis menggunakan pointer untuk meneruskan alamat dari data struktur yang rumit ke sebuah function block. Jenis data POINTER mengambil 6-byte memori. Pointer hanya dapat dimodifikasi dan digunakan dalam OB, FB atau FC yang ditulis menggunakan STL.

Jenis data ANY digunakan untuk parameter FB ketika jenis data parameter tidak diketahui atau ketika jenis data apapun dibolehkan. Jenis data ANY mengambil 10-byte memori. Jenis data ANY juga dapat digunakan untuk tag sementara. Jenis data ANY umumnya digunakan untuk parameter input, paremeter in/out FB dan FC dan untuk parameter output FC. Ada beberpa batasan dalam penggunaan jenis data ANY :

  • Variabel sementara dari jenis ANY tidak dapat diteruskan ke block lain sebagai parameter formal.
  • Jenis ANY tidak dapat digunakan sebagai komponen dalam UDT atau sebagai elemen sebuar array.
  • Konstanta tidak diperbolehkan pada bagian kanan dari block

Jenis data UDT (user-defined) memungkinkan untuk mendefinisikan jenis data baru. Setelah membuat UDT dan memberikan namanya, kita dapat menggunakan UDT beberapa kali. Gambar dibawah ini mengilustrasikan struktur dari UDT yang diberi nama Machine_Info yang terdiri dari DINT, string, time, dua integer dan dua Boolean. Element individu dapat diakses dengan menggunakan “.” antara nama tag dan nama elemen. Sebagai contoh, jika tag “Mach423” adalah nama dari jenis data Machine_Info, serial number diakses dengan “Mach423”.Serial_Num.

Gambar 5.5 Contoh jenis data UDT “Machine_Info” pada Step7

 

Memori dari processor S7 dibagi kedalam area alamat yang diidentifikasi oleh huruf lalu diikuti dengan nomor seperti yang ditunjukan pada tabel dibawah.

Untuk S7-300/400/1500, kita dapat mendeklarasikan beberapa general memory, timer counter dan shared data block sebagai retentive, artinya nilai dipertahankan ketika program di restart. Nilai data yang dimuat dalam instance data block dipertahankan ketika program di restart.

Dalam perangkat lunak Step7 Classic, alamat ditampilkan tanpa prefix “%”. Dalam perangkat lunak Step7 Portal, alamat ditampilkan dengan prefik “%”. Secara umum alamat dipresentasikan dengan prefik %, meskipun terkadang prefik % dihilangkan untuk memudahkan pembacaan.

Untuk PLC S7-300/400, saluran I/O fisik mempunyai alamat default berdasarkan pada penempatan modul. Alamat default dapat diubah oleh pemakai.  Input image dapat diakses sebagai bit, byte, word atau double word, tergantung pada jenis modulnya. Sebaliknya, processor S7-1200 mempunyai beberapa I/O diskrit bawaan, dalam hal ini image input dan output tetap (tidak bisa diubah).

Umumnya, kita mendefinisikan sebuah tag merujuk pada alamat I/O. Alamat “I0.2” berarti kontak dikendalikan oleh input diskrit saluran 2 dalam modul yang mempunyai alamat byte nol. Saluran input diskrit dialamatkan sebagai berikut :

%In.m

Dimana n adalah alamat byte modul dan m adalah nomor bit (0 – 7). Demikian juga alamat “Q20.1” berarti output (coil) dihubungkan ke output saluran 1 dalam modul yang mempunyai alamat byte 20. Saluran output dialamatkan sebagai berikut :

%Qn.m

Dimana n adalah alamat byte modul dan m adalah nomor bit (0 – 7).

Awalan byte modul dikonfigurasi ketika menggunakan perangkat lunak Step7 untuk menempatkan modul pada chassis. Jumlah alamat yang valid untuk modul tergantung pada jumlah saluran modulnya. Sebagai contoh, diskrit input 8-channel dalam slot 6 pada rack processor pada system S7-300/400/1500 yang mempunyai alamat awalan byte 8 (gambar 5-6) dialamatkan sebagai I8.0 sampai I8.7. Diskrit input 32-channel pada slot 7 pada rack processor dialamatkan sebagai I10.0 sampai I13.7.

Gambar 5.6 Contoh pengalamatan I/O

Untuk processor S7-300/400/1200/1500, modul analog input dapat dialamatkan sebagai byte, word atau double word seperti berikut ini :

%IBn      Byte n

%IWn    Word dimulai pada alamat n

%IDn     Double word dimulai pada alamat n

Seperti modul diskrit input, awalan alamat byte modul analog juga dikonfigurasi ketika meneempatkan modul dalam chassis (gambar 5-6). Sebenarnya, modul diskrit input juga dapat dialamatkan sebagai byte, word atau double word tergantung jumlah saluran diskritnya.

Untuk processor S7-300/400/1200/1500, modul analog output dapat dialamatkan sebagai byte, word atau double word seperti berikut ini :

%QBn    Byte n

%QWn  Word dimulai dari alamat n

%QDn   Double word dimulai dari alamat n

Untuk processor S7-300/400/1200/1500, informasi pada modul input & output dapat secara langsung diakses sebagai peripheral I/O data. Peripheral input data dialamatkan berbeda dalam Step7 Portal dan Step7 Classic :

Portal                    Classic

%IBn:p                 PIBn                       Byte n

%IWn:p                PIWn                     Word dimulai dari alamat n

%IDn:p                 PIDn                      Double word dimulai dari alamat n

Peripheral output data dialamatkan sebagai berikut :

%QBn:p               PQBn                     Byte n

%WQn:p              PQWn                   Word dimulai dari alamat n

%IDn:p                 PQDn                    Double word dimulai dari alamat n

 

5.1.3    Memori ControlLogix dan CompactLogix

Model memori pada Allen-Bradley ControlLogix dan CompactLogix diilustrasikan pada gambar 5-7.

Gambar 5-7 Model memory ControlLogix dan CompactLogix

 

Project adalah keseluruhan perangkat lunak (program dan data) yang sesuai untuk satu PLC. Task dikonfigurasi untuk mengendalikan eksekusi dari satu program atau lebih. Maksimum 32 task (tergantung model PLC nya). Tidak boleh ada lebih dari satu task yang dieksekusi secara terus menerus. Task yang lain bersifat periodik atau event-driven. Task periodik dieksekusi berdasarkan interval waktu yang telah ditentukan. Task even-driven dipicu oleh sebuah kejadian seperti perubahan input diskrit, data analog baru, atau operasi pergerakan. Prioritas dapat ditentukan ke task periodik atau even-driven sehingga task dapat di interupsi oleh task yang mendapatkan prioritas tertinggi. Sebuah task dapat memuat 100 program (tergantung model PLC nya), dieksekusi dalam urutan yang spesifik. Setiap task juga memuat informasi status dan watchdog timer untuk mendeteksi jika task tidak selesai mengeksekusi dalam interval waktu yang spesifik.

Program memuat routine. Routine utama disebut “MainRoutine” selalu dieksekusi pertama kali dan harus memanggil routine lain (dengan instruksi Jump to Subroutine). “FaultRoutine” dieksekusi jika ditemukan kesalahan program ketika mengeksekusi routine apapun dalam program. Saat ini, MainRoutine dan FaultRoutine harus ditulis dalam ladder. Routine lainnya dapat ditulis dengan ladder, FBD, SFC atau ST. Setiap program mempunyai memori lokal yang disebut program tags. Hanya program yang mendefinisikan tag dapat mengakses program tags. Setiap routine dalam program dapat mengakses program tags. Controller tag adalah memori global controller. Data I/O sebagai bagian dari controller tag.

Dalam PLC ControlLogix, nama simbolik dari sebuah tag dapat berupa rangkaian huruf, angka dan garis bawah sampai dengan 40 karakter, dengan persyaratan :

  • Karakter pertama tidak boleh angka
  • Tidak boleh ada garis bawah secara berurut dua kali atau lebih
  • Karakter terakhir tidak boleh garis bawah

Jika tag tertentu didefinisikan sebagai tag program dan tag controller, program memilih untuk menggunakan tag program dan tidak menggunakan tag controller. Untuk mengatasi masalah tersebut, nama tag tidak boleh sama antara tag controller dan tag program.

Jika tag dideklarasikan, harus menentukan jenis data. Jenis data dasar adalah sebagai berikut :

Untuk mengindentifikasi sebuah bit dalam tag integer gunakan “.” antara nama tag dan nomor bit, seperti :

“MyInt.2” mengidentifikasi bit 2 dalam “MyInt” (MyInt dapat berupa SINT, INT, DINT)

Beberapa predefined tag controller yang berguna yang merepresentasikan informasi status control adalah :

S:FS        Scan pertama program

S:N         Tanda negative

S:V         Overflow

S:Z          Nol

Kita dapat mendefinisikan jenis data baru dari jenis data dasar menjadi alias atau meredifinisasikan jenis data baru. Sebagai contoh, semua nilai posisi harus disimpan dalam variabel dengan jenis data POSITION yang berbasiskan jenis data REAL. Kita dapat mendefinisikan jenis data terstrutur dan jenis data array. Jenis data terstruktur umumnya kumpulan elemen data. Beberapa jenis predefined data terstruktur yang umum adalah :

AXISInstruksi axis pada pergerakan

CONTROL                             Instruksi bit shift, sequencer, array (file)

COUNTER                            Instruksi counter

MESSAGE                             Instruksi MSG

MOTION GROUP                Satu per controller (jika melakukan program motion)

MOTION INSTRUCTION Instruksi pergerakan

PID                                         Instruksi PID

TIMER                                   Instruksi Timer

Jenis data UDT (user-defined) memungkinkan kita untuk mendefinisikan jenis data terstruktur yang baru dari jenis data dasar dan jenis data komplek. Setelah membuat jenis data UDT, kita dapat menggunakan beberapa kali. Gambar 5-8 mengilustrasikan struktur dari UDT yang diberi nama Machine_Info. Elemen individu diakses dengan menggunakan “.” antara nama tag dan nama elemennya. Jika tag “Mach423” adalah jenis data Machine_Info, serial number dikases dengan “Mach423.Serial_Num”.

Gambar 5-8 Contoh jenis data “Machine_Info” pada Studio 5000

 

PLC ControlLogix menggunakan struktur pengalamatan tag-based. Ada 4 jenis tag yaitu: base, alias, produced dan comsumed. Jenis tag mendefinisikan bagaimana tag beroperasi dalam project. Tag base menyimpan berbagai jenis data untuk digunakan oleh program logika dalam project. Tag ini mendefinisikan lokasi memori dimana data disimpan. Sebagai contoh tag base Local:2:O.Data.4 yang ditunjukan pada gambar 5-9 dan bedasarkan pada format dibawah ini :

Location                               Lokasi jaringan

LOCAL = chassis yang sama dengan controller

Slot                                       Nomor slot dari modul I/O dalam chassis

Type                                      Jenis data

I = input

O = output

C = configuration

S = status

Member                              Data spesifik dari modul I/O, tergantung jenis data apa yang dapat disimpan pada modul

SubMember                       Data spesifik yang berhubungan dengan Member

Bit                                        Point spesifik pada modul digital I/O, tergantung pada ukuran modul I/O (0-31) untuk modul 32-point.

Gambar 5-9 Tag base

 

Alias digunakan untuk membuat nama alternative (alias) untuk sebuah tag. Tag alias dapat merujuk pada base, alias, cosumed atau produced. Tag alias sering digunakan untuk membuat nama tag yang merepresentasikan input atau output yang nyata. Gambar 5-10 menunjukan contoh penggunaan tag alias. Tag alias (Fan_Motor) dihubungkan ke tag base (<local:2:O.Data.5>) maka aksi apapun terhadap base terjadi juga pada alias dan juga sebaliknya. Nama alias mudah untuk dipahami dan mudah untuk merelasikan ke aplikasi, sementara tag base memuat lokasi fisik dari titik output dalam chassis ControlLogix.

Gambar 5-10 Tag alias yang dihubungkan dengan tag base

 

Tag produced/consumed digunakan untuk berbagi informasi tag melalui jaringan antara perangkat. Tag produced mengirim data sedangkan tag consumed menerima data. Gambar 5-11 meunjukan contoh bagaimana controller dapat memproduksi data dan mengirim data tersebut melalui jaringan ke kedua controller yang mengkonsumsi data. Controller yang memproduksi akan mempunyai tag dengan jenis produced, sedangkan controller pengkonsumsi akan memunyai tag dengan nama yang sama yang jenisnya consumed.

Gambar 5-11 Tag produced/consumed digunakan untuk berbagi informasi

 

Ketika anda merancang aplikasi, anda mengkonfigurasi keduanya, memproduksi secara global ke controller lain dalam sistem melalui backplane dan untuk mengkonsumsi tag dari controller lain. Fitur ini memungkinkan anda untuk memilih data apa saja yang akan dikirim dan diterima oleh controller manapun. Demikian juga, beberapa controller dapat terhubung ke data apapun yang diproduksi, dengan demikian mencegah perlunya mengirim banyak pesan yang berisi data yang sama.

 

5.1.4    Memori Modicon Unity

Modicon/Schneider M580/M340, Premium dan Quantum jenis terbaru deprogram dengan perangkat lunak Unity. Momentum dan Quantum jenis lama menggunakan peranngkat lunak Concept. Memori processor diorganisasikan seperti yang ditunjukan pada gambar 5-12.

Gambar 5-12 Model memori Modicon Unity

 

Project adalah keseluruhan perangkat lunak (program dan data) yang sesuai untuk satu PLC. Project berhububngan dengan kombinasi dari konfigurasi, resource dan program. Pada dasarnya Unity hanya mendukung satu resource dalam konfigurasinya.

Pada Unity, configuration data memuat item seperti model processor PLC, konfigurasi I/O, antarmuka komunikasi, koneksi remote I/O dan alokasi data memori. Sebagian data konfigurasi tidak dapat diakses oleh program.

Master task (MAST) adalah bagian utama dari program dan memuat section, setiap section dapat ditulis dengan bahasa pemrograman ladder, SFC, FBD, ST atau IL.

Section mirip dengan IEC FB. MAST juga memuat subroutines, yang dapat ditulis dengan berbagai bahasa pemrograman kecuali SFC. Subroutine dapat dipanggil dari section atau subroutine lain. Pemanggilan subroutine bisa sampai 8 tingkat. Tetapi, subroutine tidak dapat dipanggil dengan bahasa ladder. Section SFC lebih rumit dari section lain, didalamnya memuat subsection yang memegang bagian dari SFC. Section SFC hanya dapat ditempatkan dalam MAST. Sebagai catatan bahwa section dimiliki oleh sebuah task dan tidak dapat dipanggil oleh task lain.

Fast task (FAST) dimaksudkan untuk fungsi periodik dan durasi pendek dan dieksekusi pada prioritas lebih tinggi dari MAST. FAST memuat section dan subroutine yang dapat ditulis dengan bahasa LD, FBD, ST atau IL.

Timer tasks (TIMERn) dan I/O event tasks (EVTn) dieksekusi pada prioritas lebih tinggi dari FAST dan MAST. Setiap EVT memuat hanya satu section yang dapat ditulis dengan bahasa LD, FBD, ST atau IL. TIMER dipicu oleh sebuah timer event. EVT dipicu oleh sebuah kejadian yang berhubungan dengan modul I/O. Prioritas dari TIMER dan EVT ditentukan oleh nomornya, task TIMER5 mempunyai prioritas lebih tinggi dari task TIMER6.

Auxiliary task (AUXn) didukung oleh processor Premium dan processor Quantum tertentu dan dimaksudkan untuk periodik yang lambat. Strukturnya sama dengan FAST dan bisa memuat beberapa section dan subroutine. Jika AUX digunakan, MAST harus dikonfigurasi untuk dieksekusi secara periodik agar memungkinkan AUX dengan prioritas rendah dapat dieksekusi.

Semua section dan task pada program dapat membaca dan menulis ke global data. Ada jumlah tertentu dari data memori yang dapat dialamatkan yang disebut located data, termasuk I/O.

Unlocated data adalah variable yang tidak dipetakan kelokasi dalam memori yang dapat dialamatkan. Ada juga jumlah tertenru dari system data, secara umum memuat informasi status dan beberapa informasi konfigurasi. Function block komunikasi untuk transfer data antara PLC.

Semua variabel program adalah global variable dan section program dapat mengakesnya. Section atau task tidak mempunyai local variable. Local variable diizinkan hanya pada function  block. Pemakai dapat memprogram function block (yang disebut Derived Function Block atau DFB) dalam bahasa pemrograman apapun. DFB dan function block yang disediakan oleh perangkatlunak Unity memungkinkan untuk mempunyai local variable.

 

5.1.4.1 Variabel dan Jenis Data

Nama simbolik dari variabel dapat berupa rangkaian huruf, angka dan garis bawah sampai 32 karakter, dengan aturan :

  • Karakter pertama tidak boleh angka
  • Tidak diperbolehkan ada dua garis bawah atau lebih secara berurutan

Aturan tersebut mengikuti IEC 61131-3. Modicon memungkinkan aturan pertama untuk lebih fleksibel deangan menentukan identifier tersebut bisa mempunyai awalan angka dibagian ekstensi IEC dari opsi menu. Nama sembolik harus unik dalam keseluruhan project. Nama simbolik harus hanya ada satu sebagai variabel, nama step atau nama instance.

Ketika variabel dideklarasikan, variabel harus mempunyai jenis data. Jenis data dasar sebagai berikut :

Untuk mengidentifikasi sebuah bit dalam sebuah variabel integer atau word menggunakan “.” Antara nama variabel dan nomor bit, sebagai contoh :

“Tint.7” mengidentifikasi bit 7 dalam “Tint”

Tetapi, perluasan bahasa “Allow bit extraction of INT & WORD” harus diaktifkan. Kemampuan untuk memeriksa bit dalam variabel integer juga disediakan oleh function block dan hanya untuk jenis data BYTE dan WORD. Walaupun jenis data WORD dan INT keduanya 16-bit, tapi jenis data WORD secara umum dipakai untuk operasi logika (misal, OR) dan jenis data INT digunakan untuk operasi aritmatik (misal, penambahan).

Unity juga memungkinkan kita untuk membuat jenis data baru dari jenis data dasar yang disebut DDT (Derived Data Type). Setelah kita membuat DDT, kita dapat menggunakannya beberapa kali. Sebagai contoh, kita dapat mendefiniskan jenis data “Machine_Info” seperti berikut ini :

Gambar 5.13 Contoh jenis data “Machine_Info” pada Unity Pro

 

Jika variabel Mach23 didefinisikan sebagai jenis data “Machine_Info”, maka untuk mengakses serial number referensinya adalah Mach23.Serial_Num.

GDT (generic data type) digunakan untuk parameter function block ketika jenis data dari parameter tidak diketahui. GDT diidentifikasi dengan awalan “ANY”. Sebagai contoh, output block didefinisikan sebagai ANY_INT dapat dihubungkan ke jenis data INT_UINT, DINT atau UDINT. Banyak function block predefined menggunakan GDT. Tetapi, untuk block user-defined yang disebut juga derived function block, GDT yang diizinkan adalah jenis ANY_ARRAY, seperti ANY_ARRAY_EBOOL dan ANY_ARRAY_INT.

Data memori yang dapat dialamatkan untuk processor Unity dibagi kedalam area alamat yang diidentifikasi oleh huruf dan dikuti oleh angka (seperti tabel dibawah ini). Jumlah maksimum yang tersedia untuk memori M, MW dan KW tergantung pada spesifikasi processor. Memori yang dapat dialamatkan hanya tersedia untuk jenis data dasar.

Catatan :

  1. Pada processor M340/M580, alamat digunakan untuk double integer/word dan floating point. Untuk kasus ini, n harus berupa bilangan genap
  2. Tidak tersedia pada processor M340/M580

Untuk PLC Modicon yang diprogram dengan Unity, saluran fisik I/O dialamatkan secara langsung yang disebut topological addressing. Tidak perlu lagi untuk membuat peta I/O seperti processor Modicon sebelumnya. Sebagai bagian dari konfigurasi sistem, pemakai menentukan lokasi dan jenis modul I/O yang akan digunakan oleh processor. Pertukaran informasi pada jaringan lain (seperti Modbus+, Ethernet pada processor lama) dikonfigurasi untuk menggunakan memori %MW. Alamat untuk salursn diskrit input adalah :

%IRack.Slot.Channel

Dimana Rack adalah nomor rack dimana modul dipasang (0 untuk rack yang terdapat processor), Slot adalah slot dimana module dipasang dan Channel adalah nomor saluran. Alamat %Q0.6.4 berarti diskrit output saluran 4 pada module dalam slot 6 pada rack processor. Alamat I/O yang paling umum adalah :

Jenis Saluran                                     Alamat

Diskrit Input                                       %IRack.Slot.Channel

Diskrit Output                                    %QRack.Slot.Channel

Analog Input                                      %IWRack.Slot.Channel

Analog Output                                  %QWRack.Slot.Channel

I/O menggunakan IODDT             %CHRack.Slot.Channel

Jenis data untuk semua diskrit input dan output adalah EBOOL

Untuk processor Quantum dan M580 yang menggunakan jaringan Remote I/O, bagian Rack.Slot.Channel dari alamat diawali dengan nomor bus dan nomor drop. Sebagai contoh, diskrit input akan dialamatkan seperti :

%I\Bus.Drop\Rack.Slot.Channel

Dimana Bus adalah nomor bus dan Drop adalah nomor drop (node)

IODDT (input output derived data type) adalah struktur yang telah didefinisikan yang memungkinkan kita untuk mengakses data saluran atau status atau status modul dengan menggunakan struktur. Sebagai contoh, IODDT yang didefinisikan untuk mengakses informasi saluran pada modul analog input tertentu adalah :

Gambar 5.14 IODDT untuk modul analog input

 

Untuk menggunakan IODDT, alamat harus dengan format %CHRack.Slot.Channel . Sebagai contoh, pengukuran aliran FT101 dihubungkan ke saluran 1 pada modul analog input slot 4 rack 1. Variabel FT101 didefinisikan sebagai jenis T_ANA_IN_GEN dan terletak pada alamat %CH1.4.1. Nilai dari pengukuran aliran direferensikan sebagai FT101.VALUE dan status direferensikan sebagai FT101.CH_ERROR.

 

5.2 Program Scan

Ketika PLC menjalankan program, PLC harus tahu kapan perangkat eksternal berubah untuk mengontrol proses. Selama beroperasi, processor membaca semua input, mangambil nilainya dan menyalakan atau mematikan output sesuai dengan program. Proses ini diketahui juga sebagai program scan cycle. Gambar 5-15 mengilustrasikan satu cycle operasi PLC yang terdiri dari input scan, program scan, output scan dan housekeeping duties. karena input dapat berubah setiap saat, PLC secara konstan mengulang cycle ini selama PLC dalam mode RUN.

Gambar 5-15 PLC scan cycle

 

Waktu untuk menyelesaikan scan cycle disebut scan cycle time dan mengindikasikan seberapa cepat controller dapat bereaksi terhadap perubahan input. Waktu yang dibutuhkan untuk meyelesaikan satu scan bisa bervariasi dari kira-kira 1 ms sampai 20 ms. Jika controller harus bereaksi terhadap sinyal input yang berubah statusnya dua kali selama waktu scan, kemungkinan PLC tidak dapat mendeteksi perubahan ini. Sebagai contoh, jika PLC membutuhkan 8 ms untuk scan program dan sebuah input berubah statusnya setiap 4 ms, program tidak bisa merespon perubahan tersebut. Scan time adalah fungsi dari berikut ini:

  • Kecepatan modul processor.
  • Panjangnya sebuah program.
  • Jenis instruksi yang dijalankan.
  • Kondisi aktual ladder.

Waktu scan aktual dikalkulasi dan disimpan dalam memori PLC. Data waktu scan dapat dilihat melalui alat pemrograman. Gambar 5-16 menunjukan sebuah gambaran aliran data selama proses scan. Untuk setiap rung yang dijalankan, processor akan :

  • Memeriksa status dari tabel file input.
  • Meyelesaikan ladder logic untuk menentukan logical continuity.
  • Memperbaharui tabel file output yang sesuai.
  • Menyalin status tabel file output ke semua terminal output.
  • Menyalin status semua input terminal ke tabel file input.

Gambar 5-16 Overview aliran data selama proses scan

 

Pada gambar 5-17 mengilustrasikan proses scan pada satu rung. Proses scan dapat disimpulkan sebagai berikut :

  • Jika perangkat input yang dihubungkan pada alamat I:3/6 tertutup (ON), sirkuit modul input mendeteksi electrical continuity dan kondisi 1 (ON) dimasukan ke tabel input bit I:3/6.
  • Selama program scan, processor memeriksa bit I:3/6 untuk konsisi 1 (ON).
  • Pada kasus ini, karena input I:3/6 ON, rung menjadi TRUE atau memiliki logic continuity.
  • Kemudian processor menetapkan tabel output bit O:4/7 menjadi 1 (ON).
  • Processor menyalakan output O:4/7 selama I/O scan berikutnya, dan perangkat output (lampu) yang terhubung keterminal ini menjadi aktif.
  • Proses ini berulang-ulang selama processor dalam keadaan RUN.
  • Jika perangkat input terbuka (OFF), electrical continuity hilang dan 0 (OFF) akan dimasukan ke tabel input. Hasilnya, rung menjadi FALSE ketika kehilangan logic continuity.
  • Kemudian processor akan menetapkan tabel output bit O:4/7 menjadi 0, menyebabkan perangkat output menjadi tidak aktif.

Gambar 5-17 proses scan pada satu rung

 

Setiap instruksi yang dimasukan kedalam program membutuhkan waktu tertentu untuk dijalankan. Jumlah waktu yang dibuthkan tergantung pada instruksi. Processor membutuhkan waktu yang lebih cepat untuk membaca status input dari pada membaca nilai akumulasi timer atau counter. Waktu yang dibutuhkan untuk scan program juga tergantung pada clock frequency dari sistem microprocessor. Clock frequency nya besar maka scan rate juga cepat.

Ada 2 pola scan dasar yang digunakan oleh berbagai produsen PLC untuk menyelesaikan fungsi scan (gambar 5-18).

Gambar 5-18 Scan bisa vertikal atau horizontal

 

PLC AB menggunakan horizontal scan dengan metode rung. Pada sistem ini, processor memeriksa instruksi input dan output dari perintal awal (pojok kiri atas) secara horisontal rung per rung. PLC Modicon menggunakan vertical scan dengan metode kolom. Pada sistem ini, processor memeriksa instruksi input dan output dari perintah awal (pojok kiri atas) secara vertikal kolom per kolom dan halaman per halaman. Halaman dijalankan secara berurutan.

 

5.3 Bahasa Pemrograman

Terminologi bahasa pemrograman PLC mangacu pada metode dengan apa pemakai bertukar informasi ke PLC. Standar IEC 61131 (gambar 5-19) telah ditetapkan untuk standarisasi beberapa bahasa yang berhubungan dengan pemrograman PLC dengan mendefinisikan 5 bahasa standard dibawah ini :

  • Ladder Diagram (LD). Penggambaran grafis dari suatu proses dengan anak tangga (rung) logika, sama sperti skema relay ladder yang digantikan oleh PLC
  • Function Block Diagram (FBD). Penggambaran grafis dari suatu alur proses menggunakan blok interkoneksi.
  • Sequential Function Chart (SFC). Penggambaran grafis dari langkah interkoneksi, aksi dan transisi.
  • Instruction List (IL). Bahasa tingkat rendah menggunakan instruksi mnemonic.
  • Structured Text (ST). Bahasa tingkat tinggi seperti BASIC, C atau PASCAL yang diperuntukan aplikasi kontrol industri.

Gambar 5-19 Bahasa pemrograman PLC standard IEC 61131

 

Bahasa ladder diagram yang sering banyak dipergunakan. Ladder diagram sangat populer bagi siapapun untuk membuat aplikasi kontrol. Gambar 5-20 menunjukan perbandingan dari ladder diagram dan instruction list.

Gambar 5-20 Perbandingan dari ladder diagram dan instruction list

 

Pengunaan function block diagram untuk memprogram PLC semakin luas. Function block menghadirkan gambar grafis ke programmer dengan algoritma dasar yang telah ditentukan. Programmer hanya melengkapi kebutuhan informasi pada blok untuk menyelesaikan fase program. Gambar 5-21 menunjukan function block diagram yang setara dengan ladder diagram.

Gambar 5-21 Function block diagram yang setara dengan ladder diagram

 

Pada gambar 5-22 mengilustrasikan bagaimana ladder diagram dan function block diagram dapat digunakan untuk menghasilkan logika output yang sama. Pada aplikasi ini, tujuannya adalah untuk menyalakan lampu PL 1 ketika sensor 1 dan sensor 2 ON. Solusi function block diagram terdiri dari logika Boolean And dengan 2 input untuk sensor dan 1 output untuk lampu.

Gambar 5-22 Ladder diagram dan function block diagram

 

Bahasa pemrograman sequential function chart mirip dengan flowchart. Pemrograman SFC dirancang untuk memenuhi pemrograman proses tingkat tinggi. Jenis program ini dapat dipisah dalam beberapa step dengan beberapa operasi yang dicabang secara paralel. Elemen dasar dari sequential function chart ditunjukan pada gambar 5-23.

Gambar 5-23 Elemen dari sequntial function chart

 

Structured text adalah bahasa pemrograman tingkat tinggi terutama digunakan untuk implemetasikan prosedur yang rumit yang tidak mudah untuk diekspresikan dengan bahasa grafis. Structured text menggunakan pernyataan untuk mendefinisikan apa yang akan dikerjakan. Gambar 5-24 mengilustrasikan bagaimana structured text dan ladder diagram dapat digunakan untuk menghasilkan logika output yang sama. pada aplikasi ini, tujuannya untuk mengaktifkan SOL 1 ketika satu dari kondisi dibawah ini terpenuhi.

  • Sensor 1 dan sensor 2 keduanya ON
  • Sensor 3 dan sensor 4 keduanya ON dan sensor 5 OFF

 

Gambar 5-24 Ladder diagram dan structured text

 

5.6 Instruksi Relay

Bahasa ladder diagram pada dasarnya adalah kumpulan simbol dari instruksi yang digunakan untuk membuat program. Simbol instruksi tersebut diatur untuk menghasilkan logika kontrol yang diinginkan. karena instruksi-instruksi disusun dari simbol kontak, bahasa ladder diagram juga mengacu sebagai contact symbology.

Representasi kontak dan coil adalah simbol dasar dari ladder diagram. Ketiga simbol fundamental yang digunakan untuk menerjemahkan kontrol relay ke simbol kontak adalah Normally Open (NO) juga disebut Examine If Closed (XIC), Normally Closed (NC) juga disebut Examine If Open (XIO) dan Coil juga disebut Output Energize (OTE).

Simbol untuk instruksi NO atau XIC ditunjukan pada gambar 5-25. Instruksi NO atau XIC yang juga dikenal dengan instruksi Examine-on terlihat seperti kontak relay terbuka (normally open).

Gambar 5-25 Instruksi Normally Open (NO) atau Examine If Closed (XIC)

 

Instruksi ini meminta PLC untuk memeriksa jika kontak tertutup. Dengan memeriksa bit pada lokasi memori yang ditentukan oleh alamat dengan cara berikut :

  • Bit memori diset 1 atau 0 tergantung pada status alamat perangkat input atau internal relay.
  • Status 1 serupa dengan status TRUE atau kondisi ON.
  • Status 0 serupa dengan status FALSE atau kondisi OFF.
  • Ketika instruksi NO dihubungkan dengan input fisik, instruksi akan diset 1 ketika input fisik mempunyai tegangan pada terminal input dan di set 0 ketika input fisik tidak mempunyai tegangan pada terminal input.
  • Ketika instruksi NO dihubungkan dengan alamat internal relay, status bit input tergantung dengan logika status pada dari internal relay yang mempunyai alamat yang sama dengan instruksi tersebut.
  • Jika instruksi bit memori 1 (true), instruksi ini akan menghasilkan rung continuity melalui dirinya sendiri, seperti kontak relay yang tertutup.
  • Jika instruksi bit memori 0 (false), instruksi ini akan menghilangkan rung continuity melalui dirinya sendiri dan akan mengasumsikan status normally open seperti kontak relay yang terbuka.

Simbol untuk instruksi NC atau XIO ditunjukan pada gambar 5-26. Instruksi NC atau XIO yang juga disebut instruksi Examine-off, terlihat dan bekerja seperti kontak relay tertutup (normally close).

Gambar 5-26 Instruksi Normally Closed (NC) atau Examine If Open (XIO)

 

Instruksi ini meminta PLC untuk memeriksa jika kontak terbuka. Dengan memeriksa bit pada lokasi memori yang ditentukan oleh alamat dengan cara berikut :

  • Sama seperti input lainnya, bit memori diset 1 atau 0 tergantung pada status alamat perangkat input atau internal relay yang berhubungan dengan bit tersebut.
  • Status 1 serupa dengan status TRUE atau kondisi ON.
  • Status 0 serupa dengan status FALSE atau kondisi OFF.
  • Ketika instruksi NC digunakan untuk memerikasa input fisik, maka instruksi tersebut akan diartikan sebagai false ketika ada tegangan pada terminal input dan akan diartikan sebagai true ketika tidak ada tegangan pada terminal input.
  • Seperti instruksi NO, status instruksi (true atau false) menentukan instruksi tersebut akan menghasilkan/menghilangkan rung continuity melalui dirinya sendiri, seperti kontak relay
  • Bit memori selalu mengikuti status (true atau false) pada alamat input atau alamat internal yang diberikan pada instruksi tersebut.
  • Instruksi NO selalu mengartikan status 1 sebagai true dan status 0 sebagai false, tetapi instruksi NC mengartikan status 1 sebagai false dan status 0 sebagai true.

Simbol untuk instruksi coil atau OTE ditunjukan pada gambar 5-27. Instruksi coil atau OTE terlihat dan bekerja seperti coil relay. Sinyal instruksi ini untuk mengaktifkan atau mematikan output. Processor membuat instruksi ini true ketika ada aliran logika true dari instruksi NO dan NC dalam rung. Cara kerja dari instruksi coil atau OTE dapat disimpulkan sebagai berikut :

  • Status bit dari alamat instruksi Coil diset 1 untuk mengaktifkan output dan 0 untuk mematikan output.
  • Jika aliran logika true, instruksi coil aktif dan perangkat output yang tersambung pada terminal output akan bekerja.
  • Jika aliran logika false, instruksi coil menjadi mati dan perangkat output yang tersambung pada terminal output akan mati.

Gambar 5-27 Instruksi coil atau Output Energize (OTE)

 

Simbol untuk Positive transition sensing contact ditunjukan pada gambar 5.28. Jika kondisi kontak ini berubah dari off ke on, kontak ini memberikan daya hanya untuk satu kali scan (sampai rung di scan lagi).

Gambar 5.28 Simbol instruksi positive transition sensing contact (a)Siemens S7-300/400 & Modicon (b)ControlLogix (c)SLC500

Kontak dan coil transisi umumnya tidak selalu digunakan dalam ladder tapi dalam kondisi tertentu penggunaannya diperlukan. Kontak transisi digunakan untuk mendeteksi perubahan dalam sinyal diskrit atau hasil dari operasi logika. Sebagai contoh, sebuah sistem dimana operator menekan tombol “increase” (PB_INC) untuk menaikan ketinggian cairan dalam bejana (LT100_DES) pada display dan menekan tombol “decrease” (PB_DEC) untuk menurunkan ketinggian cairan dalam bejana (gambar 5-29)

Gambar 5-29 Antarmuka operator untuk merubah ketinggian cairan dalam bejana

 

Kita mungkin menggunakan logika ladder seperti yang ditunjukan pada gambar 5-30(a), dimana detil implementasi pada blok “Increment LT100_DES by 0.1” dan “Decrement LT100_DES by 0.1 tidak ditampilkan karena berbeda-beda tergantung pada model PLC nya. Tetapi logika ini tidak tepat. Setiap kali rung discan ketika PB_INC ditekan, LT100_DES dinaikan dengan penambahan 0.1. Dalam praktiknya, waktu scan PLC sangat cepat, yang artinya LT100_DES mungkin meningkat lebih dari 0.1 walaupun tombol hanya ditekan sebentar. Jika kita ingin hanya merubah 0,1 setiap tombol ditekan maka kontak transisi harus digunakan untuk PB_INC dan PB_DEC gambar 5-30(b). Kontak transisi memberikan daya hanya untuk satu kali scan ketika tombol ditekan.

Gambar 5-30 Logika ladder untuk menaikan/menurunkan ketinggian cairan dalam bejana (a) Tidak tepat  (b) Tepat

 

Simbol Instruksi Set (S) atau Latch (OTL) dan Reset (R) atau Unlatch (OTU) ditunjukan pada gambar 5-31. Instruksi Set atau Latch adalah instruksi output retentive yang digunakan untuk menjaga atau mengunci sebuah output. Jika output ini aktif, ouput akan tetap aktif walaupun jika status logika input yang menyebabkan output ini aktif menjadi false. Instrusi Set atau Latch akan tetap mengunci pada kondisinya sampai instruksi Reset atau Unlatch dengan alamat yang sama aktif.

Gambar 5-31 Simbol instruksi Set atau Latch dan Reset atau Unlatch (a) Siemens S7 & Modicon  (b) Allen-Bradley

 

Instruksi Set atau latch sering digunakan dalam program dimana nilai variable harus dijaga ketika daya mati atau kesalahan sistem. Memory retentive mengizinkan sistem di restart dengan memori meyimpan nilai terakhir ketika eksekusi program terhenti.

Gambar 5-32 menunjukan program ControlLogix yang meggunakan instruksi output latch dan unlatch untuk mengimplementasikan penegendalian motor fan.

Gambar 5.32 Instruksi output latch dan unlatch digunakan untuk mengendalikan motor fan

 

Operasi dari program dapat disimpulkan sebagai berikut :

  • Instruksi OTL akan menulis 1 ke alamatnya ketika true.
  • Ketika OTL menjadi false, alamat output akan tetap 1.
  • Alamat output akan tetap 1 sampai ter-reset ke 0 dengan instruksi
  • Jika alamat output off, kedua instruksi tidak dikunci, tapi sekali bit aktif, anda melihat digambar kedua instruksi latch dan unlatch dikunci walaupun kedua inputnya off.

Fungsi utama dari ladder diagram adalah mengontrol output berdasarkan pada kondisi input, seperti yang diilustrasikan pada gambar 5-33. Pada umumnya, sebuah rung terdiri dari kondisi beberapa input yang direpresentasikan dengan simbol kontak, dan instruksi output diujung rung yang direpresentasikan dengan simbol coil.

Untuk output yang akan diaktifkan, sekurang-kurangnya satu aliran logika true harus ada, seperti yang diilustrasikan pada gambar 5-33. Aliran yang tertutup secara sempurna memiliki logical continuity. Ketika ada logical continuity pada sebuah rung, instruksi coil atau Output Energize dikatakan true.

Gambar 5-33 Logical continuity

 

5.5 Instruksi Percabangan (Branch)

Instruksi percabangan digunakan untuk membuat jalur paralel dari instruksi input. Percabangan memungkinkan lebih dari satu kombinasi kondisi input (logika OR) untuk membentuk logic continuity dalam rung. Gamabr 5-34 mengilustrasikan instruksi percabangan yang banyak digunakan.

Gambar 5-34 Instruksi percabangan (branch) dan percabangan input paralel

 

Pada kebanyakan model PLC, percabangan dapat digunakan untuk input dan output dalam sebuah rung. Dengan percabangan output, anda dapat membuat output paralel pada rung untuk mengontrol beberapa output, seperti yang diilustrasikan pada gambar 5-35.

Gambar 5-35 Percabangan paralel output

 

Percabangan input dan output bisa nested to menghindari instruksi ganda dan untuk mempercepat scan time processor. Gambar 5-36 mengilustrasikan percabangan input dan output nested.

Gambar 5-36 Percabangan input dan output nested

 

Beberapa produsen PLC hampir tidak memiliki batasan pada elemen seri, percabangan paralel input atau ouput. Tapi ada beberapa produsen PLC yang membatasi jumlah dari kontak seri yang bisa dimasukan dalam sebuah rung juga batasan jumlah untuk percabangan paralel.

 

5.6 Instruksi Internal Relay

PLC mempunyai bagian memori dialokasikan untuk penyimpanan bit internal. Penyimpanan tersebut disebut juga internal output, internal coil, internal relay atau secara singkat internal bits. Internal output adalah sinyal on/off dihasilkan oleh logika program. Tidak seperti diskrit output, sebuah internal output tidak secara langsung mengontrol perangkat output.

Keuntungan menggunakan internal output yaitu banyak situasi yang mana instruksi output dibutuhkan dalam program tapi tidak ada koneksi fisik ke perangkat. Jika tidak ada koneksi perangkat output ke sebuah alamat bit, alamat tersebut dapat digunakan sebagai penyimpanan bit internal. Penyimpanan bit internal dapat diprogram oleh pemakai untuk melakukan fungsi relay tanpa menempati output fisik.

Pada SLC500 menggunakan bit file B3 untuk penyimpanan dan pengalamatan internal output. Pengalamatan untuk bit B3:1/3 diilustrasikan pada gambar 5-37 terdiri dari nomor file diikuti oleh nomor word dan bit.

Gambar 5-37 SLC500 menggunakan bit file B3 untuk pengalamatan internal bit

 

Internal relay dapat digunakan ketika program membutuhkan beberapa kontak seri yang dibatasi dalam rung. Gambar 5-38 menunjukan sirkuit yang hanya dibatasi untuk 7 kontak seri ketika 12 kontak dibutuhkan untuk memprogram logika. Untuk menyelesaikan masalah ini, kontak di pisah menjadi dua rung. Rung 1 terdiri dari 7 kontak dan diprogram untuk internal relay B3:1/3. Alamat kontak pertama dari rung 2 adalah B3:1/3 diikuti oleh 5 kontak dan diskrit output.

Gambar 5-38 Program internal relay

Processor Siemens S7 menggunakan general memory M sebagai internal relay diikuti dengan nomor byte dan nomor bit. Format internal relay dialamatkan sebagai berikut :

%Mn.m

Dimana n adalah nomor byte dan m adalah nomor bit (0 – 7). Misal M3.5, berarti internal relay byte 3 dan bit ke 5.

Pada PLC Modicon, general memori dialamatkan sebagai berikut :

%Mn atau %MXn

Diamana n adalah nomor bit. Penunjukan X tidak dibutuhkan dan umumnya dihilangkan.

 

5.7 Instruksi Timer

Instruksi timer menyediakan fungsi yang sama terhadap timer on-delay dan off-delay mekanikal dan elektronik. Timer PLC memberikan beberapa keuntungan dari mekanik dan elektronik timer. Keuntungannya sebagai berikut :

  • Pengaturan waktu mudah diubah.
  • Jumlah penggunaan timer dalam sirkuit dapat ditambah atau dikurangi melalui perubahan program daripada perubahan kabel.
  • Keakuratan dan pengulangan yang tinggi karena penundaan waktu dihasilkan oleh processor

Ada 2 jenis timer dasar yaitu on-delay dan off-delay. Timer On-delay pada dasarnya menunda aktifnya sinyal diskrit dan timer off-delay pada dasarnya menunda non-aktifnya sinyal diskrit. Perbedaan ini diilustrasikan pada gambar 5-39. Diskrit input PROX_1 adalah input ke timer on-delay dan timer off-delay. Output timer on-delay menunda perubahan dari off ke on tetapi tidak menunda perubahan dari on ke off. Output pada timer off-delay menunda perubahan on ke off, tapi tidak menunda perubahan off ke on. Penggunaan timer ini tergantung pada kebutuhan.

Gambar 5-39 Perbedaan on-delay dan off-delay

 

5.7.1    Timer Micrologix dan SLC-500

PLC AB Micrologix dan SLC-500 mempunyai 3 jenis timer: on-delay timer (TON), off-delay timer (TOF) dan retentitive timer on (RTO). On-delay timer merupakan instruksi yang paling banyak digunakan. Ada banyak juga konfigurasi pengaturan timer lainnya, yang semuanya dapat diturunkan dari satu atau lebih pada fungsi penundaan waktu. Gambar 5-40 menunjukan pemilihan timer pada toolbar untuk PLC AB SLC 500. Perintah timer tersebut dapat disimpulkan sebagai berikut :

  • TON (Timer On Delay). Menghitung interval waktu ketika instruksi true.
  • TOF (Timer Off Delay). Menghitung interval waktu ketika instruksi false.
  • RTO (Retentive Timer ON). Menghitung interval waktu ketika instruksi true dan menyimpan nilai akumulasi ketika instruksi menjadi false.
  • RES (Reset). Me-reset nilai akumulasi timer menjadi nol.

Gambar 5-40 Toolbar pemilihan timer

 

Beberapa parameter yang berhubungan dengan instruksi timer yaitu :

  • Preset time, merepresentasikan durasi waktu untuk penghitungan waktu. Sebagai contoh, jika penundaan waktu membutuhkan 10 s, timer akan mempunyai preset 10 s.
  • Accumulated time, merepresentasikan jumlah waktu yang telah berlalu dari kejadian coil timer
  • Time base, timer dapat diprogram dengan beberapa time base : 1s, 0.1s dan 0.01 s. Jika programmer memasukan 0.1 s sebagai time base dan 50 untuk penambahan penundaan, timer akan mempunyai 5 s penundaan (50 X 0.1 s = 5 s). Nilai time base lebih kecil semakin akurat timer-nya.

 

5.7.1.1 Timer On-Delay

On-delay timer digunakan ketika anda ingin memprogram penundaan waktu sebelum output menjadi aktif. Gambar 5-39 mengilustrasikan prinsip kerja dari timer on-delay. Prinsip kerjanya dapat disimpulkan sebagai berikut :

  • Timer on-delay bekerja ketika rung yang berisi timer berstatus true, timer akan mulai perhitungan waktu.
  • Pada akhir perhitungan waktu, output timer menjadi aktif.
  • Output yang ditunda menjadi aktif beberapa saat setelah rung yang berisi timer menjadi true,karena itu timer dikatakan mengalami penundaan.
  • Panjang waktu penundaan dapat disesuaikan dengan merubah nilai preset.
  • Sebagai tambahan, beberapa PLC mempunyai opsi untuk merubah time base atau resolusi pada timer tersebut. Semakin kecil time base yang dipilih, akurasi timer tersebut meningkat.

Gambar 5-41 Prinspi kerja timer on-delay

 

File timer pada AB SLC 500 adalah file 4 (gambar 5-42). Setiap timer mempunyai komposisi 3 words yang disebut elemen timer. Alamat untuk timer file 4, elemen timer nomor 2 (T4:2), tercantum dibawah ini.

T4 = timer file 4

:2 = nomor elemen timer 2 (0 – 255 element timer per file)

T4:2/DN adalah alamat untuk done bit pada timer

T4:2/TT adalah alamat untuk timer-timing bit pada timer

T4:2/EN adalah alamat untuk enable bit pada timer

Control word menggunakan 3 control bit sebagai berikut :

Enable (EN) bit. Enable bit menjadi aktif ketika instruksi timer dieksekusi. Ketika instruksi timer tidak dieksekusi, enable bit menjadi tidak aktif.

Timer-timing (TT) bit. Timer-timing bit menjadi aktif ketika nilai akumulasi pada timer berubah, dalam arti timer sedang melakukan perhitungan waktu. Ketika timer tidak melakukan perhitungan waktu, nilai akumulasi tidak berubah, jadi timer-timing bit menjadi tidak aktif.

Done (DN) bit. Done bit berubah kondisinya ketika nilai akumulasi mencapai nilai preset. Kondisi ini tergantung pada jenis timer yang digunakan.

Preset Value (PRE) adalah setpoint timer, yaitu nilai yang akan dicapai waktunya. PRE mempunyai rentang dari 0 – 32767 dan disimpan dalam format biner. Nilai preset tidak menyimpan bilangan negatif.

Accumlulated value (ACC) adalah nilai yang mengalami penambahan selama timer melakukan perhitungan waktu. Nilai akumulasi akan berhenti ketika nilai akumulasi mencapai nilai preset.

Gambar 5-42 File timer SLC 500

 

Timer On-delay merupakan timer yang paling banyak digunakan. Gambar 5-43 menunjukan sebuah program PLC yang menggunakan on-delay timer. Operasi dari program dapat disimpulkan sebagai berikut :

  • Timer diaktifkan oleh input A
  • Preset time untuk timer ini adalah 10 detik, pada waktu tersebut output D akan bekerja.
  • Ketika input A tertutup, timer menjadi true dan timer mulai menghitung waktu sampai nilai akumulasi sama dengan nilai preset, output D akan bekerja.
  • Jika input A terbuka sebelum timer selesai menghitung, nilai akumulasi secara otomatis menjadi 0
  • Konfigurasi timer ini mengacu pada non-retentive karena jika kehilangan continuity ke-timer tersebut menyebabkan instruksi timer ter-reset.
  • Operasi waktu tersebut adalah on-delay karena output D bekerja 10 detik setelah input A tertutup dari off ke on.

Gambar 5-43 Program PLC timer on-delay

 

Pada gambar 5-44 menunjukan diagram waktu untuk control bit pada timer on-delay. Urutan kerja sebagai berikut :

  • Periode sinyal true dari input A pertama menunjukan timer mengitung waktu sampai 4 detik kemudian input menjadi
  • Timer ter-reset, kedua bit timer-timing dan enable menjadi false. Nilai akumulasi juga menjadi 0.
  • Periode sinyal true dari input A kedua tetap true melebihi 10 detik.
  • Ketika nilai akumulasi mencapai 10 detik, done (DN) bit menjadi aktif dan timer-timing (TT) bit menjadi tidak aktif.
  • Ketika input A menjadi false, instruksi timer menjadi tidak dieksekusi dan juga me-reset control bit pada waktu yang bersamaan dan nilai akumulasi menjadi 0.

Gambar 5-44 Diagram waktu untuk timer on-delay

 

Timer kemungkinan juga tidak mempunyai sebuah sinyal instantaneous output (yang diketahui juga sebagai enable bit). Jika sinyal instantaneous output dibutuhkan dari sebuah timer tapi tidak disediakan oleh timer tersebut, instruksi instantaneous kontak yang sama dapat diprogram menggunakan internal relay. Gambar 5-45 menunjukan sebuah aplikasi untuk teknik tersebut. Operasi program dapat disimpulkan sebagai berikut :

  • Bedasarkan sirkuit pengkabelan relay diagram, coil M akan bekerja 5 detik setelah tombol start di tekan.
  • Kontak TD-1 adalah instantaneous kontak dan kontak TD-2 adalah kontak penundaaan waktu.
  • Program ladder diagram menunjukan instruksi kontak yang mengacu pada internal relay digunakan untuk mengoperasikan timer.
  • Kontak instantaneous mengacu pada internal relay coil, sedangkan kontak penundaan waktu mengacu pada output coil timer.

Gambar 5-45 Instruksi kontak instantaneous dapat diprogram menggunakan internal relay

 

5.7.1.2 Timer Off-Delay

Cara kerja timer off-delay yaitu akan menjaga output bekerja untuk periode waktu setelah rung menjadi false. Gambar 5-46 mengilustrasikan program sebuah timer off-delay yang menggunakan instruksi  TOF pada SLC 500. Jika logic continuity hilang, timer mulai menghitung interval waktu sampai waktu akumulasi sama dengan waktu preset. Operasi pada sirkuit dapat disimpulkan sebagai berikut :

  • Ketika saklar yang dihubungkan ke input I:1/0 tertutup, output O:2/1 menjadi aktif dan lampu menyala.
  • Jika saklar terbuka, logic continuity hilang dan timer mulai menghitung.
  • Setelah 15 detik, ketika waktu akumulai sama dengan waktu preset, output menjadi tidak aktif dan lampu mati.
  • Jika logic continuity ada kembali sebelum timer selesai menghitung, waktu akumulasi menjadi 0. Timer ini juga diklasifikasikan sebagai non-retentive.

Gambar 5-46 Prinsip kerja timer off-delay

 

Pada gambar 5-47 mengilustrasikan penggunaan instruksi timer off-delay untuk mematikan motor secara berurutan pada interval 5 detik. Operasi dari program dapat disimpulkan sebagai berikut :

  • Nilai preset untuk timer T4:1, T4:2 dan T4:3 di set 5 detik, 10 detik dan 15 detik
  • Menutup input SW secara langsung menjadikan done bit setiap timer off-delay menjadi aktif, yang akan menghidupkan motor M1, M2 dan M3.
  • Jika input SW terbuka, logic continuity ke timer menjadi hilang dan setiap timer mulai menghitung.
  • Ketika timer T4:1 selesai menghitung selama 5 detik, timer me-reset done bit menjadi tidak aktif untuk mematikan motor M1.
  • Timer T4:2 selesai menghitung 5 detik sesudahnya dan me-reset done bit menjadi tidak aktif untuk mematikan motor M2.
  • Timer T4:3 selesai menghitung 5 detik sesudahnya dan me-reset done bit menjadi tidak aktif untuk mematikan motor M3.

Gambar 5-47 Program untuk mematikan motor pada interval 5 detik

 

Pada gambar 5-48 menunjukan program yang menggunakan instruksi timer on-delay  dan timer off-delay. Proses melibatkan pompa air dari tanki A ke tanki B. Operasinya dapat disimpulkan sebagai berikut :

  • Sebelum dimulai, PS1 harus tertutup.
  • Ketika tombol Start di tekan, pompa hidup.
  • Ketika tombol Stop ditekan, pompa mati.
  • PS2 dan PS3 harus tertutup 5 detik setelah pumpa hidup. Jika PS2 atau PS3 terbuka, pompa akan mati dan tidak bisa di start lagi selama 14 detik.

Gambar 5-48 Proses pompa air

 

5.7.1.3 Timer Retentive

Retentive timer digunakan ketika anda menginginkan waktu akumulasi tetap dipertahankan ketika logic continuity hilang. Timer retentitive on-delay (RTO) diprogram mirip dengan non-retentive on-delay timer (TON), dengan satu pengecualian yaitu ada instruksi retentive timer reset. Tidak seperti TON, RTO akan mempertahankan nilai akumulasinya ketika logic continuity hilang dan akan melanjutkan perhitungan waktu ketika logic continuity ada lagi. Timer ini harus disertai dengan instruksi timer reset untuk me-reset nilai akumulasi menjadi 0. Instruksi RES digunakan untuk me-reset nilai akumulasi timer retentive. Gambar 5-49a menunjukan sebuah program PLC untuk timer retentive on-delay. Operasi dari program dapat disimpulkan sebagai berikut :

  • Timer akan mulai menghitung ketika tombol PB1 ditekan.
  • Jika tombol ditekan selama 3 detik dan tombol dilepas, timer akan mempertahankan nilai akumulasi pada 3 detik.
  • Ketika tombol ditekan lagi, timer melanjutkan perhitungan waktu dari 3 detik.
  • Ketika nilai akumulasi sama dengan nilai preset, timer done bit T4:2/DN menjadi aktif dan lampu akan menyala.
  • Ketika tombol PB 2 ditekan, nilai akumulasi ter-reset menjadi 0.

Gambar 5-49a Program timer retentive on-delay

 

Pada gambar 5-49b menunjukan diagram waktu untuk program timer retentive on-delay.

Gambar 5-49b Diagram waktu timer retentive on-delay

 

Pada gambar 5-50 menunjukan aplikasi yang menggunakan instruksi on-delay, off-delay dan retentive on-delay. Pada aplikasi industri ini, ada sebuah mesin yang mempunyai shaft baja besar yang dipasang dengan bearing. Shaft digandeng dengan motor listrik yang besar. Bearing memerlukan lubrikasi yang diberikan oleh pompa oli. Operasi dari program dapat disimpulkan sebagai berikut :

  • Untuk menjalankan mesin, operator memutar SW menjadi ON.
  • Sebelum motor shaft berputar, bearing diberikan oli selama 10 detik.
  • Bearing juga menerima oil ketika mesin jalan.
  • Ketika operator memutar SW menjadi OFF untuk menghentikan mesin, pompa oli tetap memberikan oli selama 15 detik.
  • Sebuah timer retentive digunakan untuk melacak total waktu berjalan dari pompa. Ketika total waktu berjalan sudah 3 jam, motor berhenti dan lampu indikator menyala untuk mengindikasikan oli dan filter harus diganti.
  • Tombol reset disediakan untuk me-reset proses setelah oli dan filter diganti.

Gambar 5-50 Program lubrikasi bearing

 

5.7.1.4 Cascading Timers

Memprogram dua timer atau lebih secara bersamaan disebut cascading. Timer dapat diinterkoneksi untuk memenuhi kebutuhan logika kontrol. Terkadang programmer membutuhkan penundaan waktu yang lebih lama dari nilai preset maksimum yang diperbolehkan untuk sebuah timer. Ketika menemukan kasus ini, programmer dapat menyelesaikan permasalahan dengan cascading timer seperti yang diilustrasikan pada gambar 5-51. Operasi dari program dapat disimpulkan sebagai berikut :

  • Total waktu yang dibutuhkan adalah 42.000 detik.
  • Timer pertama T4:1 diprogram untuk waktu 30,000 detik dan memulai perhitungan ketika input SW tertutup.
  • Ketika T4:1 selesai menghitung waktu selama 30.000 s, done bit T4:1/DN menjadi aktif.
  • Hal ini juga mengaktifkan timer kedua T4:2, yang diprogram untuk waktu 12.000 detik dari total 42.000 s.
  • Ketika T4:2 mencapai preset, done bit T4:2/DN akan menjadi aktif dan akan menyalakan output lampu PL yang mengindikasikan selesainya penundaan waktu 42.000 detik.
  • Ketika input SW terbuka akan me-reset kedua timer dan output lampu PL menjadi mati.

Gambar 5-51 Cascading timer untuk waktu yang lebih lama

 

5.7.2    Timer Siemens S7

Processor S7-1200/1500 mempunyai empat set instruksi timer yang sesuai dengan IEC. Processor S7-300/400 mempunyai tiga set instruksi timer. Nama dan deskripsi untuk timer sebagai berikut :

Description                                    S7-1200/1500                  S7-300/400                     S7-300/400 IEC

On-delay timer                                 TON                                       S_ODT                                  TON

Off-delay timer                                 TOF                                        S_OFFDT                              TOF

Retetive on-delay timer                  TONR                                    S_ODTS

Pulse timer                                        TP                                           S_PULSE                              TP

Ext. pulse timer                                                                                S_PEXT

 

Timer untuk processor S7-1200/1500 sama dengan S7-300/400 IEC-compatible block, dengan tambahan retentive on-delay timer. Disini kita akan mendiskusikan timer IEC-compatible saja.

Instruksi timer IEC S7-300/400/1200/1500 adalah system function block (SFB). Setiap timer harus mempunyai instance data block yang menyimpan nilai akumulator timer. Status dan nilai akumulator dapat diakses melalui nama data block dan nama koneksinya. Sebagai contoh, output “Q” pada timer TON data block yang diberi nama “Timer1” dapat diakses sebagai “Timer1”.Q.

Ada beberapa perbedaan instruksi timer antara Step7 Portal dan Step7 Classic. Perbedaan utamanya adalah :

  • Dalam Step7 Classic, IEC timer S7-300/400 mempunyai koneksi EN dan ENO seperti yang ditentukan dalam standar 61131-3. Pada Step7 Portal koneksi tersebut tidak ada.
  • Tag yang dihubungkan ke output ditampilkan berbeda.
  • Jenis data instance DB yang berhubungan dengan timer

Pada Step7 Classic, input EN harus aktif agar timer dieksekusi. Output ENO diambil dari input EN dan akan aktif jika EN aktif dan eksekusi timer tidak ada kesalahan. Output ENO dapat dihubungkan ke kontak, coil atau input EN block lain.

Jenis instance DB yang berhubungan dengan instruksi timer berbeda untuk S7-1200/1500 dan untuk S7-300/400 dalam Step7 Portal dan Classic.

Block                    S7-1200/1500 Portal                      S7-300/400 Portal                        S7-300/400 Classic

TON                       IEC_TIMER                                          TON_SFB                                             SFB4

TOF                        IEC_TIMER                                          TOF_SFB                                              SFB5

TONR                    IEC_TIMER

TP                           IEC_TIMER                                          TP_SFB                                                 SFB3

 

5.7.2.1 Timer On-delay

Tergantung pada processor-nya, timer on-delay dapat ditampilkan dalam 2 cara, seperti yang ditunjukan pada gambar 5-52. Pada Step7 Classic, TON mempunyai koneksi EN/ENO (gambar 5.52b). Input EN harus aktif agar timer dieksekusi. Output ENO diambil dari input EN dan akan aktif jika EN aktif dan eksekusi timer tidak ada kesalahan.

Gambar 5-52 Siemens TON on-delay timer (a) Step7 Portal (b) Step7 Classic

 

Perhatikan gambar 5.52a, ketika input IN aktif, waktu internal (ET) meningkat. Ketika ET sama dengan PT (preset time), perhitungan timer selesai dan output Q akan aktif. Jika input IN tidak aktif ketika sedang menghitung waktu, Q tetap tidak aktif, ET di set menjadi 0 dan perhitungan dimulai kembali ketika IN aktif. Output ET dapat dihubungkan ke sebuah tag untuk memonitor waktu internal. Untuk S7-300/400/1200/1500, PT dapat berupa tag atau konstanta dengan jenis TIME. Keakuratan nya adalah 1 milidetik. Nama atau alamat instance DB untuk timer tersebut ditunjukan diatas instruksi timer.

Contoh aplikasi timer on-delay diilustrasikan pada gambar 5.53a-b dan diagram waktunya ditunjukan pada gambar 5.53c. Operasi timer dapat disimpulkan sebagai berikut :

  • Waktu preset adalah 15 detik.
  • Input LS_1 harus tetap aktif selama 15 detik sebelum coil LS1_Hold aktif.
  • Ketika LS_1 tidak aktif setelah 5 detik, ET di set ke 0 dan coil LS1_Hold tetap tidak aktif.

Gambar 5-53  Contoh timer TON S7 (a) Step7 Portal  (b) Step7 Classic  (c) Diagram waktu

 

5.7.2.2 Timer Off-delay

Timer Off-delay dapat ditampilkan dengan 2 cara, seperti yang ditunjukan pada gambar 5-54. TOF pada dasarnya menunda perubahan dari on ke off dan tidak menunda perubahan dari off ke on.

        Gambar 5-54 Siemens TOF off-delay timer (a) Step7 Portal (b) Step7 Classic

 

Ketika input IN tidak aktif, ET meningkat. Ketika ET sama dengan PT, perhitungan timer selesai dan output Q akan dimatikan. Jika IN aktif ketika sedang menghitung waktu, Q tetap aktif, ET di set ke 0 dan perhitungan waktu dimulai kembali ketika IN tidak aktif.

Contoh penggunaan timer off-delay diilustrasikan pada gambar 5.55a-b dan diagram waktunya ditunjukan pada gambar 5.55c. Operasi timer dapat disimpulkan sebagai berikut :

  • Nilai preset 20 detik.
  • Diskrit input PROX_2 harus tetap off selama 20 detik sebelum coil Prox2_Del di non-aktifkan.
  • Ketika PROX_2 aktif setelah 5 detik, ET di set ke 0 dan coil Prox2_Del tetap aktif.

Gambar 5-55  Contoh timer TOF S7 (a) Step7 Portal  (b) Step7 Classic  (c) Diagram waktu

 

5.7.2.3 Timer Retentive

Timer retentive on-delay diimplementasikan pada processor S7-1200/1500. Seperti yang ditunjukan pada gambar 5-56. Timer TONR sama seperti timer TON kecuali ET tidak di reset ketika input timer tidak aktif. Ketika input timer (IN) aktif, ET menghitung naik. Ketika ET sama dengan PT, output Q menjadi aktif. Jika input timer tidak aktif ketika sedang menghitung waktu, ET tetap pada nilainya dan perhitungan waktu dilanjutkan ketika input aktif. TONR mempunyai input reset tersendiri (R) yang akan men-reset ET menjadi 0 ketika aktif. Coil timer reset (RT) juga tersedia untuk me-reset ET menjadi 0 ketika aktif. Contoh aplikasi TONR ditunjukan pada gambar 5-56a dan diagram waktu yang berhubungan ditunjukan pada gambar 5-56c. Output Totl_Tmr.Q akan aktif ketika waktu kumulatif TIME_IN aktif selama 3 detik. Setelah akumulator mencapai 3 detik, TOT_DN akan tetap aktif walaupun TIME_IN tidak aktif. Input R pada timer harus aktif untuk me-reset timer.

Gambar 5-56 Timer Retentive on-delay pada Step7 Portal (a) Contoh TONR  (b) Coil RT  (c) Diagram waktu

 

Untuk processor S7-300/400, timer retentive on-delay dapat dibuat dari TON dan counter. Non-retentive timer TON menghasilkan “tick” setiap interval PT (1 detik) yang akan dihitung. Counter menyediakan fungsi retentive. Output counter akan aktif ketika . Waktu penundaan dihasilkan dari (TON PT)x(CTU PV). Tentunya harus disediakan reset agar CV di set menjadi 0.

 

5.7.2.4 Timer Pulse

Timer pulse dapat ditampilkan dengan 2 cara, seperti yang ditunjukan pada gambar 5-57. Timer TP menghasilkan pulsa pada output Q dengan durasi PT ketika input IN berubah dari off ke on. Ketika IN berubah dari off ke on, Q menjadi aktif dan ET mulai meningkat naik. Ketika ET sama dengan PT, Q menjadi mati. Perhitungan waktu di set ke 0 jika ET sama dengan PT dan input IN tidak aktif. Ketika ET meningkat naik menuju PT, perubahan pada IN diabaikan. Nama atau alamat dari instance DB untuk timer atau alamat timer ditunjukan diatas instruksi timer.

Gambar 5-57 Siemens timer pulse TP (a) Step7 Portal  (b) Step7 Classic

 

Contoh aplikasi TP ditunjukan pada gambar 5-58a-b dan diagram waktu yang berhubungan ditunjukan pada gambar 5-58c. Operasi timer dapat disimpulkan sebagai berikut :

  • Waktu preset 20 detik.
  • Ketika terjadi perubahan dari off ke on pada TRIG, output PULSE akan diaktifkan selama 20 detik.
  • Jika TRIG tetap aktif lebih dari 20 detik, tidak merubah durasi PULSE, ini hanya menjaga ET tidak diset ke 0 pada akhir durasi 20 detik.
  • Perubahan pada TRIG ketika sedang menghitung waktu akan diabaikan.

Gambar 5-58  Contoh S7 timer pulse (a) Step7 Portal  (b) Step7 Classic  (c) Diagram waktu

 

5.7.3    Timer ControlLogix

Alamat timer pada ControlLogix menggunakan struktur yang telah ditentukan. Struktur timer di tunjukan pada gambar 5-59. Parameter dan status bit timer adalah :

  • Tag Name – Nama tag yang digunakan untuk timer (misal Pump_Timer). Jika kita ingin menggunakan, kita harus membuat tag dengan jenis timer.
  • Preset (PRE) – Angka yang harus diakumulasi untuk mencapai penundaan waktu yang diinginkan. Menentukan nilai (dalam milidetik) yang mana timer harus mencapai sebelum bit done (DN) berubah statusnya. Nilai preset disimpan sebagai DINT. Time base selalu 1 milidetik. Sebagai contoh, untuk timer 3 detik, masukan 3000 pada nilai PRE.
  • Accumulator (ACC) – Nilai akumulator adalah angka dalam milidetik dimana instruksi telah diaktifkan. Nilai akumulator berhenti berubah ketika nilai ACC sama dengan nilai PRE.
  • Enable Bit (EN)Enable bit mengindikasikan instruksi timer
  • Timer Timing Bit (TT)Timing bit mengindikasikan bahwasanya operasi perhitungan waktu sedang diproses. Bit TT akan aktif hanya jika akumulator sedang meningkat. TT tetap aktif sampai akumulator mencapai nilai preset.
  • Done Bit (DN)Done bit mengindikasikan bahwa nilai ACC sama dengan nilai PRE. Sinyal bit DN akhir dari proses perhitungan waktu degan merubah statusnya dari off ke on atau dari on ke off tergantung dari instruksi timer yang digunakan.

Gambar 5-59 Struktur timer

 

5.7.3.1 Timer On-Delay

Instruksi timer on-delay dan toolbar pemilihan timer ditunjukan pada gambar 5-60. Ketika anda ingin menggunakan timer, anda harus membuat tag jenis TIMER dan masukan nilai preset dan nilai akumulasi. Tag harus didefinisikan terlebih dahulu sebelum nilai dapat dimasukan. Nilai akumulator dapat dimasukan ketika programming.

Gambar 5-60. Instruksi TON

 

Program pada gambar 5-61 adalah contoh dari timer TON 10 detik. Operasi program dapat disimpulkan sebagai berikut :

  • Status semua instruksi yang ditunjukan setelah saklar input timer diaktifkan dan nilai akumulasi 5000 ms.
  • Pada titik ini bit EN aktif, bit TT juga aktif karena nilai akumulator berubah dan bit DN tidak aktif karena nilai akumulator tidak sama dengan nilai preset.
  • Ketika ACC sama dengan PRE, nilai akumulator berhenti. Input EN tetap aktif, TT menjadi tidak aktif karena nilai akumulator tidak berubah dan DN menjadi aktif karena ACC = PRE.
  • Ini akan menyebabkan lampu DN menyala bersamaan dengan matinya lampu TT.
  • Lampu EN tetap menyala selama input tetap aktif.
  • Membuka saklar input akan menyebabkan instruksi TON menjadi tidak dieksekusi, me-reset nilai akumulator menjadi 0 dan lampu EN, TT dan FN menjadi mati.
  • Instruksi TON adalah timer yang me-reset dengan sendirinya. Ketika rung menjadi tidak aktif, timer secara otomatis ter-reset.

Gambar 5-61. Contoh program timer TON 10 detik

 

Gambar 5-62 menunjukan sebuah program yang menggunakan timer TON untuk menyalakan lampu selama 20 detik setiap tombol ditekan. Selain timer TON program ini menggunakan beberapa output dalam satu rung, instruksi output latch dan unlatch serta instruksi timer reset. Operasi program dapat disimpulkan sebagai berikut :

  • Ketika tombol ditekan akan mengunci Green_PL untuk menyala dan mengaktifkan Pilot_Light_Timer.
  • Ketika tombol dilepas, rung timer akan tetap aktif melalui jalur yang dibuat oleh bitEN.
  • Setelah 20 detik, bit DN akan aktif untuk me-reset timer ke status awal dan membuka Green_PL dan mematikannya.

Gambar 5-62 Program lampu menggunakan timer TON

 

5.7.3.2 Timer Off-Delay

Instruksi timer off-delay ditunjukan pada gambar 5-63. Keterangan pada kolom function block dan referensi tag sama dengan timer TON sebelumnya.

Gambar 5-63 Instruksi timer off-delay TOF

 

Gambar 5-64 menunjukan program yang menggunakan timer TOF untuk menghidupkan lampu selama 20 detik setelah tombol ditekan. Kode program lebih sederhana dibandingkan dengan timer TON untuk fungsi yang sama. Operasi program dapat disimpulkan sebagai berikut :

  • Ketika Timer_Button tertutup (ditekan) instruksi dan bit DN menjadi aktif.
  • Bit DN menyalakan lampu Green_PL dan program tetap dalam kondisi ini selama tombol ditekan.
  • Ketika tombol dibuka, lampu tetap aktif dan timer mulai untuk menghitung waktunya.
  • Ketika akumulator mencapai 20000ms (20 s), bit DN menjadi tidak aktif dan lampu dimatikan.

Gambar 5-64 Program lampu menggunakan timer TOF

 

Program pada gambar 5-65 menggunakan timer on-delay dan off-delay untuk mengendalikan proses pemanasan oven. Tag dibuat berbeda-beda untuk menyesuaikan program. Operasi program dapat disimpulkan sebagai berikut :

  • Jika tombol Oven_On_Button ditekan akan mengaktifkan output Oven_On_PL dan menguncinya dan juga mengaktifkan instruksi timer TON dan TOF.
  • BitTT pada timer TON menjadi aktif dan menyalakan suara Warning_Horn untuk memperingatkan bahwasanya oven akan bekerja.
  • BitDN pada timer TOF menjadi aktif yang akan menghidupkan Fan_Motor.
  • Setelah 10 detik, bitTT menjadi tidak aktif dan mamatikan Warning_Horn dan bit Timer_Heat.DN akan aktif untuk menghidupkan Heater_Contactor.
  • Ketika tombol Oven_Off_Button ditekan, output Oven_On_PL menjadi tidak aktif yang akan mematikan lampu.
  • Instruksi Timer_Heat dan bit DN nya menjadi tidak aktif yang akan mematikan Heater_Contactor.
  • Timer Timer_Cooling mulai mengakumulasi waktu dan fan tetap aktif selama 5 menit (30000 detik) dan akan mati ketika bitDN menjadi tidak aktif.

Gambar 5-65 Program mengendalikan proses pemansan oven

 

5.7.3.3 Timer Retentive

Instruksi timer retentive on-delay ditunjukan pada gambar 5-66. Keterangan pada kolom function block dan referensi tag sama dengan timer TON sebelumnya, tetapi instruksi RES harus digunakan untuk me-reset nilai akumulator pada timer retentive. Instruksi RES harus mempunyai nama tag yang sama dengan timer yang ingin anda reset.

Gambar 5-66 Instruksi timer retentive on-delay

 

Contoh aplikasi untuk program timer RTO ditunjukan pada gambar 5-67. Tag dibuat berbeda-beda untuk menyesuaikan program. Operasi program dapat disimpulkan sebagai berikut :

  • Ketika Limit_Switch tertutup selama 1 menit, status dan nilai berubah menjadi :
    • PRE – 120000
    • ACC – 60000
    • EN – 1
    • TT – 1
    • DN – 0
    • LS_EN_PL – 1
    • LS_TT_PL – 1
    • LA_Alarm – 0
  • Ketika Limit_Switch terbuka setelah 1.5 menit, status dan nilai berubah menjadi :
    • PRE – 120000
    • ACC – 90000
    • EN – 0
    • TT – 0
    • DN – 0
    • LS_EN_PL – 0
    • LS_EN_TT – 0
    • LS_Alarm – 0
  • Ketika Limit_Switch tertutup dan tetap tertutup sampai perhitungan waktu selesai, status dan nilai akan berubah menjadi :
    • PRE – 120000
    • ACC – 120000
    • EN – 1
    • TT – 0
    • DN – 1
    • LS_EN_PL – 1
    • LS_TT_PL – 0
    • LS_Alarm – 1
  • Ketika Limit_Switch terbuka setelah timer selesai menghitung waktunya, status dan nilai akan berubah menjadi :
    • PRE – 120000
    • ACC – 120000
    • EN – 0
    • TT – 0
    • DN – 1
    • LS_EN_PL – 0
    • LS_TT_PL – 0
    • LS_Alarm – 1
  • Ketika reset_LS_Timer tertutup, status dan nilai pada semua instruksi ter-reset ke nilai awal.

Gambar 5-67 Contoh program untuk timer RTO

 

5.7.4    Timer Modicon

Perangkat lunak Modicon Unity untuk processor Modicon mempunyai 3 jenis timer dasar. Nama dan keterangan timer tersebut sebagai berikut :

Jenis Timer                      Deskripsi

TON                                       Timer on-delay

TOF                                        Timer off-delay

TP                                           Timer pulse

Function block timer adalah function block dasar (EFB). Setiap timer mempunyai instance yang menyimpan akumulator timer. Status dan nilai akumulator dapat diakses melalui nama timer dan nama koneksi. Sebagai contoh, output Q pada timer TON dengan nama “Timer1” dapat diakses sebagai “Timer1.Q”. Operasi dari setiap timer akan di jelaskan dan diilustrasikan.

 

5.7.4.1 Timer On-Delay

Function block timer TON ditunjukan pada gambar 5-68. Function block timer ini Ada dua versi : tanpa koneksi EN/ENO (gambar 5-68a) dan dengan koneksi EN/ENO (gambar 5-66b). Jika EN/ENO dikonfigurasi, input EN harus on agar block dieksekusi. Output ENO akan aktif jika input EN aktif dan eksekusi timer tidak ada kesalahan. Jika koneksi EN/ENO tidak dikonfigurasi, block akan dieksekusi setiap scan.

Gambar 5-68 Modicon timer TON (a) Tanpa EN/ENO  (b) Dengan EN/ENO

 

Seperti yang sudah kita diskusikan, pada dasarnya timer TON menunda perubahan sinyal dari off ke on tapi tidak menunda perubahan sinyal on ke off. Ketika input IN aktif, nilai ET akan meningkat. Ketika ET sama dengan preset (PT), perhitungan waktunya selsai dan output Q akan aktif. Jika input IN tidak aktif ketika perhitungan waktu sedang berjalan, output Q tetap tidak aktif, ET akan ter-reset menjadi 0 dan perhitungan waktu dimulai dari awal ketika input IN aktif. Output ET dapat dihubungkan ke variabel untuk memonitor perhitungan waktu. Nama instance ditunjukan diatas function block timer.

Nilai preset dapat berupa variabel atau konstanta dengan jenis TIME :

t#2d4h45m12sw450ms

Awalan harus berupa TIME#, T#, time# atau t#. Waktu ditentukan dalam hari (D), jam (H), menit (M), detik (S) dan milidetik (MS). Keakuratannya 1 milidetik.

Contoh aplikasi instruksi TON ditunjukan pada gambar 5-69a dan diagram waktunya ditunjukan pada gambar 5-69b. Operasi timer dapat disimpulkan sebagai berikut :

  • Waktu preset adalah 15 detik
  • Input LS_1 harus tetap aktif selama 15 detik sebelum coil LS1_Hold aktif.
  • Ketika LS_1 tidak aktif setelah 5 detik, ET di set ke 0 dan coil LS1_Hold tetap tidak aktif.

Gambar 5-69 Contoh timer TON Modicon (a) ladder  (b) diagram waktu

 

5.7.4.2 Timer Off-delay

Timer off-delay ditunjukan pada gambar 5-70. Sama seperti timer on-delay, koneksi EN/ENO dapat dikonfigurasi pemakaiannya.

Gambar 5-70 Modicon timer TOF (a) Tanpa EN/ENO  (b) Dengan EN/ENO

 

Timer TOF bekerja berlawanan dengan timer TON. Timer TOF pada dasarnya menunda perubahan sinyal on ke off dan tidak menunda perubahan sinyal off ke on. Ketika input IN tidak aktif, ET meningkat. Ketika ET sama dengan PT, perhitungan waktu selesai dan output Q di non-aktifkan. Jika input IN aktif ketika perhitungan waktu, ouput Q tetap aktif, ET di reset menjadi 0 dan perhitungan waktu dimulai dari awal ketika input IN tidak aktif. PT ditentukan dengan cara yang sama dengan TON. Ouput ET dapat dihubungkan dengan variabel untuk memonitor perhitungan waktu.

Contoh aplikasi instruksi TOF ditunjukan pada gambar 5-71a dan diagram waktunya ditunjukan pada gambar 5-71b. Operasi timer dapat disimpulkan sebagai berikut :

  • Nilai preset 20 detik.
  • Diskrit input PROX_2 harus tetap off selama 20 detik sebelum coil Prox2_Del di matikan.
  • Ketika PROX_2 aktif setelah 5 detik, ET di set ke 0 dan coil Prox2_Del tetap aktif.

Gambar 5-71 Contoh timer TOF Modicon (a) ladder  (b) diagram waktu

 

5.7.4.3 Timer Pulse

Timer pulse ditunjukan pada gambar 5-72. Sama seperti timer on-delay, koneksi EN/ENO dapat dikonfigurasi pemakaiannya.

Gambar 5-72 Modicon timer TP (a) Tanpa EN/ENO  (b) Dengan EN/ENO

 

Timer TP menghasilkan pulsa pada output Q dengan durasi yang telah ditentukan pada PT ketika input IN berubah dari off ke on. Ketika input IN berubah dari off ke on, output Q diaktifkan dan ET mulai meningkat. Ketika ET sama dengan PT, ouput Q dmatikan. ET di reset menjadi 0 jika ET sama dengan PT dan input IN tidak aktif. Ketika timer sedang melakukan perhitungan waktu, perubahan sinyal input IN diabaikan. PT ditentukan dengan cara yang sama dengan TON.

Contoh aplikasi instruksi PT ditunjukan pada gambar 5-73a dan diagram waktunya ditunjukan pada gambar 5-73b. Operasi timer dapat disimpulkan sebagai berikut :

  • Waktu preset 20 detik.
  • Ketika terjadi perubahan dari off ke on pada TRIG, output PULSE akan diaktifkan selama 20 detik.
  • Jika TRIG tetap aktif lebih dari 20 detik, tidak merubah durasi PULSE, ini hanya menjaga ET tidak diset ke 0 pada akhir durasi 20 detik.
  • Perubahan pada TRIG ketika sedang menghitung waktu akan diabaikan.

Gambar 5-73 Contoh timer TP Modicon (a) ladder  (b) diagram waktu

 

5.8 Instruksi Counter

Semua produsen PLC menawarkan fungsi counter sebagai bagian dari kumpulan instruksinya. Salah satu aplikasi counter yang umum adalah melacak jumlah benda bergerak yang melewati titik tertentu seperti yang dilustrasikan pada gambar 5-74.

Gambar 5-74 Aplikasi counter

 

Counter mirip dengan timer kecuali counter tidak beroperasi pada waktu internal tapi tergantung pada sumber eksternal untuk melakukan penghitungan. Dua metode digunakan untuk merepresentasikan sebuah counter adalah format coil dan format block. Gambar 5-75 menunjukan instruksi up-counter format coil. Up-counter menambahkan nilai akumulasi dengan 1 ketika rung terjadi transisi dari false ke true. Ketika nilai akumulasi sama dengan nilai preset, output counter menjadi aktif. Bagian dari instruksi counter adalah :

  • Jenis counter
  • Alamat counter
  • Nilai preset
  • Nilai akumulasi

Gambar 5-75 Instruksi counter format coil

 

Instruksi counter reset harus digunakan bersamaan dengan instruksi counter. Beberapa produsen memasukan fungsi instruksi reset sebagai bagian dari instruksi counter, sedangkan yang lainnya memasukan instruksi terpisah untuk me-reset counter. Gambar 5-76 menunjukan instruksi counter format coil dengan instruksi reset terpisah untuk me-reset counter. Ketika diprogram, counter reset coil (CTR) haru diberikan alamat yang sama dengan counter (CTU).

Gambar 5-76 Instruksi counter dan reset format coil

 

Pada gambar 5-77 menunjukan counter dengan format blok. Pada blok instruksi terdapat jenis counter (up atau down), nilai preset dan nilai akumulasi. Counter memiliki dua input count dan reset. Semua counter PLC bekerja atau menghitung berdasarkan leading edge dari sinyal input. Counter akan bertambah atau berkurang ketika input berubah dari kondisi off ke kondisi on.

Counter secara umum adalah retentive. Counter dapat dirancang untuk menghitung naik ke nilai preset atau menghitung turun ke nilai preset. Up-counter bertambah 1 setiap rung memiliki logic continuity. Down-counter berkurang 1 setiap rung memiliki logic continuity.

Gambar 5-77 Instruksi counter format blok

 

Pada gambar 5-78 mengilustrasikan penghitungan dari up-counter dan down-counter. Counter akan menaikan atau menurunkan tergantung dari jenis counter sampai nilai akumulasi sama dengan atau lebih besar dari nilai preset, pada waktu yang bersamaan counter akan menghasilkan output.

Gambar 5-78 Perhitungan jenis counter

 

5.8.1    Counter AB MicroLogix dan SLC-500

File counter untuk AB MicroLogix dan SLC-500 adalah file 5 (gambar 5-79). Setiap counter tersusun dari 3 words yang disebut elemen counter. Ketiga data word tersebut adalah control word, preset word dan accumulated word. Ketiga data word tersebut menggunakan alamat yang sama, yaitu alamat counter itu sendiri. Pengalamatan untuk counter file 5, elemen counter 3 (C5:3), tercantum dibawah ini :

C5 = counter file 5

:3 = elemen counter 3 (0 – 255 elemen counter per file)

C5:3/DN adalah alamat untuk done bit

C5:3/CU adalah alamat untuk count-up enable bit

C5:3/CD adalah alamat untuk count-down enable bit

C5:3/OV adalah alamat untuk overflow bit

C5:3/UN adalah alamat untuk underflow bit

C5:3/UA adalah alamat untuk update accumulator bit

 

Control word menggunakan status control bit yang terdiri dari :

Count-Up (CU) Enable Bit. Count-up (CU) enable bit yang digunakan dengan counter count-up akan bernilai 1 jika instruksi counter count-up true. Jika instruksi counter count-up false, CU bit menjadi false.

Count-Down (CD) Enable Bit. Count-down (CU) enable bit yang digunakan dengan counter count-down akan bernilai 1 jika instruksi counter count-down true. Jika instruksi counter count-down false, CD bit menjadi false.

Done (DN) Bit. Done bit akan true jika nilai akumulasi sama dengan atau lebih besar dari nilai preset.

Overflow (OV) Bit. Overflow bit menjadi true jika counter telah menghitung melebihi nilai maksimum yaitu 32.767. Pada perhitungan berikutnya, counter akan membulatkan menjadi -32.768 dan akan melanjutkan perhitungan dari nilai tersebut menuju 0.

Underflow (UN) Bit. Underflow bit menjadi true jika counter menghitung dibawah -32.768. Counter akan membulatkan menjadi +32.767 dan melanjutkan perhitungan menurun ke 0.

Update Accumulator (UA) Bit. Update accumulator bit digunakan hanya bersamaan dengan HSC (high-speed counter) eksternal.

Gambar 5-79 File counter SLC 500

 

Preset value (PRE) word menentukan nilai yang harus dihitung oleh counter sebelum perubahan status pada done bit. Nilai preset adalah set point dari counter dan rentang nilainya dari -32.768 sampai +32.767.

Acumulated value (ACC) word adalah hitungan saat ini berdasarkan berapa kali rung berubah dari false menjadi true.  Mempunyai rentang yang sama dengan nilai preset : -32.768 sampai +32.767.

 

5.8.1.1 Up-Counter

Up-Counter adalah sebuah instruksi output yang mana fungsinya menambah nilai akumulasi ketika terjadi perubahan false ke true dan kemudian memicu sebuah kejadian setelah jumlah yang dihitung terpenuhi.

Pada gambar 5-80 menunjukan program dan diagram waktu untuk sebuah up-counter. Aplikasi kontrol ini dirancang untuk menyalakan lampu merah dan mematikan lampu hijau setelah nilai akumulasi mencapai 7. Operasi dari program dapat disimpulkan sebagai berikut :

  • Tombol tekan PB1 akan menghasilkan pulsa transisi off ke on yang akan dihitung oleh counter.
  • Nilai preset counter adalah 7
  • Setiap transisi dari false ke true pada rung 1, nilai akumulasi ditambah dengan 1.
  • Setelah 7 pulsa, jika nilai preset sama dengan nilai akumulasi, output DN bekerja.
  • Hasilnya, rung 2 menjadi true dan output O:2/0 bekerja untuk menyalakan lampu merah.
  • Pada waktu yang bersamaan, rung 3 menjadi false dan output O:2/1 tidak aktif sehingga lampu hijau menjadi mati.
  • Counter di reset dengan menekan tombol PB2, yang membuat rung 4 menjadi true dan me-reset nilai akumulasi menjadi 0.
  • Perhitungan bisa bekerja lagi jika rung 4 menjadi false.

Gambar 5-80 Program up-counter dan timing diagram

 

Pada gambar 5-81 menunjukan program counter digunakan untuk menghentikan motor setelah running selama 10 kali. Operasi program dapat disimpulkan sebagai berikut :

  • Up-counter C5:0 menghitung jumlah operasi on/off motor.
  • Nilai preset counter
  • Instruksi counter done bit examine-off (NC) dihubungkan seri dengan output motor.
  • Output motor examine-on (NO) digunakan untuk menambahkan nilai akumulasi setiap operasi on/off.
  • Setelah perhitungan mencapai 10, instruksi done bit menjadi false mencegah motor agar tidak bisa di start.
  • Jika tombol reset tertutup akan me-reset nilai akumulasi menjadi 0

Gambar 5-81 Program menggunakan counter untuk menghentikan motor setelah 10 kali operasi

 

Program PLC conveyor motor pada gambar 5-82 mengilustrasikan aplikasi menggunakan up-counter bersamaan dengan instruksi kontak transisi (OSR). Counter menghitung jumlah box yang keluar dari conveyor. Ketika jumlah mencapai 50, conveyor akan berhenti secara otomatis. Truk pengangkut hanya bisa mengangkut 50 box untuk jenis produk ini, tetapi hitungan dapat diubah sesuai dengan produk lainnya. Operasi dari program dapat disimpulkan sebagai berikut :

  • Tombol start ditekan untuk menjalankan motor conveyor.
  • Box yang keluar lewat dideteksi oleh proximity switch.
  • Jika box melewati proximity switch, nilai akumulasi akan bertambah.
  • Setelah perhitungan mencapai 50, done bit merubah status untuk menghentikan conveyor secara otomatis dan nilai akumulasi ter-reset menjadi 0.
  • Conveyor dapat dijalankan dan dihentikan secara manual kapanpun tanpa menghilangkan nilai akumulasi.
  • Nilai akumulasi dapat di-reset secara manual kapanpun dengan menekan tombol reset.

Gambar 5-82 Program menghitung box

 

5.8.1.2 Down-Counter

Instruksi down-counter akan menghitung turun atau dikurangi dengan 1 setiap penghitungan aktif. Output counter (done bit) akan bekerja jika nilai akumulasi sama dengan atau lebih besar dari nilai preset. Gambar 5-83 menunujukan contoh instruksi down-counter(CTD) dalam format block. Instruksi down-Counter membutuhkan instruksi RES untuk me-reset nilai akumlasi dan status bit.

Gambar 5-83 Instruksi down-counter

 

Secara normal down-counter digunakan bersamaan dengan up-counter untuk membentuk up/down-counter.

Pada gambar 5-84 menunjukan program dan timing diagram untuk format blok up/down-counter. Operasi program dapat disimpulkan sebagai berikut :

  • Input untuk pertambahan dan pengurang disediakan terpisah.
  • Asumsikan nilai preset counter adalah 3 dan nilai akumulasi 0, Jika tombol PB1 ditekan 3 kali akan mengaktifkan ouput lampu menyala.
  • Counter ini tetap melacak jumlah perhitungan yang diterima melebihi nilai preset. Hasilnya, tambahan 3 pulsa dari input PB1 menghasilkan nilai akumulasi menjadi 6 tapi output tidak berubah.
  • Jika input PB2 ditekan 4 kali, nilai akumulasi berkurang menjadi 2 (6 – 4). Hasilnya, nilai akumulasi turun dibawah nilai preset dan output lampu akan mati.
  • Jika input reset PB3 ditekan sewaktu-waktu akan me-reset nilai akumulasi menjadi 0 dan output lampu akan mati.

Gambar 5-84 Program up/down counter dan diagram waktu

 

Tidak semua counter menghitung dengan cara yang sama. Beberapa up-counter menghitung hanya sesuai dengan nilai preset-nya dan pulsa tambahan akan diabaikan. Up-counter lainnya tetap melacak jumlah pulsa yang diterima walaupun melebihi nilai preset. Sebaliknya, beberapa down-counter hanya akan menghitung sampai 0. Down-counter lainnya bisa menghitung sampai dibawah 0 dan mulai penghitungan lagi dari nilai preset terbesar. Sebagai contoh, up/down counter mempunyai nilai preset maksimum 999 bisa menghitung 997, 998, 999, 000, 001, 002 dan seterusnya. Counter tersebut juga akan menghitung turun 002, 001, 000, 999, 998, 997 dan seterusnya.

Sebuah aplikasi untuk up/down counter untuk tetap melacak jumlah kendaraan yang masuk dan keluar adalah garasi parkir. Gambar 5-85 menunjukan program PLC yang umum untuk mengimplementasikan aplikasi ini. Operasi program dapat disimpulkan sebagai berikut :

  • Untuk mendeteksi kendaraan yang masuk, enter switch memicu instruksi up-counter dan nilai akumulasi bertambah 1.
  • Untuk mendeteksi kendaraan yang keluar, exit switch memicu instruksi down-counter dan nilai akumulasi berkurang 1.
  • Karena up-counter dan down-counter memiliki alamat yang sama C5:1, nilai akumulasi dan nilai preset akan sama juga untuk kedua counter tersebut.
  • Ketika nilai akumulasi mencapai 150 sama dengan nilai preset 150, output counter bekerja dan lampu tanda Lot Full
  • Tombol reset disediakan untuk me-reset nilai akumulasi.

Gambar 5-85 Program parkir garasi

 

Kecepatan maksimum dari transisi yang dapat dihitung ditentukan oleh program scan time. Untuk perhitungan yang akurat , sinyal input counter harus lebih lambat dari satu scan time. Jika input berubah lebih cepat dari satu scan time, nilai perhitungan akan menjadi tidak akurat karena ada perhitungan yang terlewat. Ketika situasi ini terjadi, anda harus menggunakan high-speed counter.

 

5.8.1.3 Cascading Counter

Pada aplikasi tertentu, mungkin akan dibutuhkan perhitungan yang melebihi jumlah maksimum yang ditentukan oleh instruksi counter. Salah satu cara untuk menyelesaikan perhitungan ini yaitu dengan menginterkoneksi dua counter. Program pada gambar 5-86 mengilustrasikan aplikasi untuk teknik ini. Operasi program dapt disimpulkan sebagai berikut :

  • Output dari counter pertama diprogram menjadi input counter
  • Status bit untuk kedua counter diprogram secara seri untuk menghasilkan output.
  • Kedua counter tersebut memungkinkan untuk melakukan perhitungan dua kali lebih banyak untuk dihitung.

Gambar 5-86 Menghitung melebihi jumlah maksimum

 

Aplikasi lain dalam penggunaan cascading counter ketika ingin menghitung jumlah yang sangat besar. Sebagai contoh, anda ingin menggunakan counter untuk menghitung sampai dengan 250.000, untuk meyelesaikan kasus ini anda harus menggunakan dua counter. Gambar 5-87 menunjukan dua counter yang akan diprogram untuk tujuan ini. Operasi program dapat disimpulkan sebagai berikut :

  • Counter C5:1 mempunyai nilai preset 500 dan counter C5:2 mempunyai nilai preset 500 juga.
  • Ketika counter C5:1 mencapai 500, output counter me-reset counter C5:1 dan menambah counter C5:2 dengan 1.
  • Ketika done bit counter C5:1 telah mengeluarkan pulsa sebanyak 500 kali, output lampu akan menyala. Karenanya, output lampu kan menyala setelah 500 x 500 atau 250.000 perubahan input counter C5:1.

Gambar 5-87 Cascading counter untuk perhitungan yang sangat besar

 

5.8.2    Counter Siemens S7

Processor S7-300/400/1200/1500 mempunyai tiga set instruksi counter yang sesuai dengan IEC. Nama dan deskripsi untuk counter sebagai berikut :

Description                                    S7-1200/1500                   S7-300/400                     S7-300/400 IEC

Up-Counter                                       CTU                                        S_CU                                     CTU

Down-Counter                                  CTD                                        S_CD                                    CTD

Up/Down Counter                           CTUD                                     S_CUD                                 CTUD

Counter untuk processor S7-1200/1500 sama dengan S7-300/400 IEC-compatible block. Disini kita akan membahas counterIEC-compatible.

Instruksi counter IEC S7-300/400/1200/1500 adalah system function block (SFB). Setiap counter harus mempunyai instance data block yang menyimpan nilai akumulator counter. Status dan nilai akumulator dapat diakses melalui nama data block dan nama koneksinya. Sebagai contoh, output “Q” pada counter CTU data block yang diberi nama “Counter1” dapat diakses sebagai “Counter1”.Q.

Ada beberapa perbedaan instruksi counter antara Step7 Portal dan Step7 Classic. Perbedaan utamanya adalah :

  • Dalam Step7 Classic, IEC counter S7-300/400 mempunyai koneksi EN dan ENO seperti yang ditentukan dalam standar 61131-3. Pada Step7 Portal koneksi tersebut tidak ada.
  • Tag yang dihubungkan ke output ditampilkan berbeda.
  • Jenis data instance DB yang berhubungan dengan counter

Pada Step7 Classic, input EN harus aktif agar counter dieksekusi. Output ENO diambil dari input EN dan akan aktif jika EN aktif dan eksekusi counter tidak ada kesalahan. Output ENO dapat dihubungkan ke kontak, coil atau input EN block lain.

Jenis instance DB yang berhubungan dengan instruksi counter berbeda untuk S7-1200/1500 dan untuk S7-300/400 dalam Step7 Portal dan Classic.

Block                     S7-1200/1500 Portal                     S7-300/400 Portal                        S7-300/400 Classic

CTU                        IEC_COUNTER                                   CTU_SFB                                              SFB0

CTD                        IEC_COUNTER                                   CTD_SFB                                              SFB1

CTUD                     IEC_COUNTER                                   CTUD_SFB                                           SFB2

 

5.8.2.1 Up-Counter

Up-Counter dapat ditampilkan dalam dua cara, seperti yang ditunjukan pada gambar 5-88. CTU menghitung perubahan sinyal. Akulumator counter (CV) bertambah 1 setip perubahan off ke on pada input up-counter. Ketika CV ≥ PV, maka output Q menjadi aktif. Ketika input reset (R) aktif, CV di reset menjadi 0. Counter dapat menghitung melebihi nilai PV, tapi tidak bisa lebih dari 32,767 untuk S7-300/400, lebih dari maksimum DINT untuk S7-1200 atau lebih dari maksimum LINT untuk S7-1500. Nama atau alamat dari instance data block untuk counter ditampilkan diatas instruksi counter.

Gambar 5-88 Siemens S7 up-counter (a) Step7 Portal     (b) Step7 Classic

 

Contoh aplikasi yang mengimplementasikan setiap jenis up-counter ditunjukan pada gambar 5-89a-b dan diagram waktu nya ditunjukan pada gambar 5-89c. Operasi counter dapat disimpulkan sebagai berikut :

  • Selama All_Reset aktif, akumulator counter di reset menjadi 0.
  • Ketika All_Reset tidak aktif, setiap perubahan off ke on pad PROX_2, nilai akumulator counter bertambah 1.
  • Ketika akumulator sama dengan atau lebih dari 3, coil Advance_Cyl menjadi aktif.
  • Ketika Advance_Cyl sudah aktif, perubahan positif pada PROX_2 menyebabkan nilai akumulator berubah dan Advance_Cyl tetap aktif.

Gambar 5-89 Contoh up-counter S7 (a) Step7 Portal  (b) Step7 Classic  (c) Diagram waktu

 

5.8.2.2 Down-counter

Down-Counter dapat ditampilkan dalam dua cara, seperti yang ditunjukan pada gambar 5-90. CTD menghitung perubahan sinyal. Nilai akumulator counter berkurang 1 setiap perubahan off ke on pada input down-counter. Ketika input LOAD (LD) aktif, nilai CV di set ke nilai PV. Perilaku output Q dan rentang CV bervariasi tergantung processor :

 

Processor            Q aktif                  Rentang CV

S7-300/400          CV = 0                    -32,767 sampai 32,767

S7-1200/1500       CV ≤ 0                   Konsisten terhadap jenis data CV

Nama atau alamat dari instance data block untuk counter ditampilkan diatas instruksi counter.

Gambar 5-90 Siemens S7 down-counter (a) Step7 Portal  (b) Step7 Classic

 

Contoh apiikasi dan diagram waktu down-counter diimplementasikan dengan Step7 Portal ditunjukan pada gambar 5-91. Operasi counter dapat disimpulkan sebagai berikut :

  • Ketika Prox3_CtLd berubah dari on ke off, akumulator di set dengan nilai PV yaitu 4.
  • Setiap perubahan off ke on pada PROX_3, akumulator berkurang 1.
  • Output Q aktif ketika akumulator sama dengan atau kurang dari 0.

Gambar 5-91 Contoh down-counter S7 (a) Step7 Portal  (b) Diagram waktu

 

5.8.2.3 Up/Down-Counter

Up/down-counter dapat ditampilkan dalam dua cara, seperti yang ditunjukan pada gambar 5-92. Pada dasarnya instruksi CTUD adalah kombinasi dari up-counter dan down-counter. Akumulator counter (CV) bertambah 1 untuk setiap perubahan off ke on pada input count-up (CU) dan CV berkurang 1 untuk setiap perubahan off ke on pada input count-down (CD). Ketika CV = PV lalu output QU aktif. Ketika CV ≤ 0, maka output QD aktif. Ketika input reset (R) aktif, CV di reset menjadi 0. Ketika input load (LD) aktif, nilai CV di set ke nilai PV. Jika R dan LD aktif bersamaan, input R mempunyai prioritas lebih tinggi dan me–reset CV menjadi 0. Counter dapat menghitung diatas nilai preset dan dibawah 0.

Gambar 5-92 Siemens S7 up/down-counter (a) Step7 Portal  (b) Step7 Classic

 

Contoh apiikasi dan diagram waktu up/down-counter diimplementasikan dengan Step7 Portal ditunjukan pada gambar 5-93. Operasi counter dapat disimpulkan sebagai berikut :

  • Ketika All_Reset dan Boxes_Ld tidak aktif, setiap perubahan off ke on pada Box_in, CV bertambah 1.
  • Ketika All_Reset dan Boxes_Ld tidak aktif, setiap perubahan off ke on pada Box_Out, CV berkurang 1.
  • Ketika CV sama dengan atau lebih besar dari 3 (nilai PV), coil Remove_Box menjadi aktif.
  • Ketika CV sama dengan atau lebih kecil dari 0, coil No_Box menjadi aktif.
  • Ketika All_Reset aktif, CV di reset menjadi 0.
  • Ketika Boxes_Load aktif, Niai CV di set menjadi nilai PV (3).

Gambar 5-93 Contoh up/down-counter S7 (a) Step7 Portal  (b) Diagram waktu

 

5.8.3    Counter Allan Bradley CompactLogix dan ControlLogix

Ada dua jenis counter dasar yaitu count-up (CTU) dan count-down (CTD). Toolbar Instruksi pemilihan counter ditunjukan pada gambar 5-94. Ketika kita ingin menggunakan counter kita harus membuat tag jenis COUNTER dan memasukan nilai preset dan akumulator. Ketika mamasukan instruksi, tag ini harus didefinisikan sebelum nilai preset dan akumulator dimasukan. Instruksi reset RES harus mempunyai tag yang sama dengan counter, digunakan unutk me-reset nilai akumulasi menjadi 0.

Gambar 5-94 Toolbar pemilihan counter

 

Semua nilai akumulasi counter bersifat retentive walaupun ketika daya mati, sampai di-reset. Status seperti done, overflow dan underflow juga retentive. Parameter counter dan bit status ditunjukan pada gambar 5-95 dan dapat disimpukan sebagai berikut :

  • Preset (PRE) Value – menentukan nilai yang harus dicapai oleh counter sebelum bit done.
  • Accumulated (ACC) Value – nilai perubahan off ke on pada counter. ACC di reset ke 0 ketika instruksi reset (RES) dengan alamat yang sama dengan counter di eksekusi.
  • CU (Count-up Enable Bit)bit yang mengindikasikan instruksi CTU aktif.
  • CD (Count-down Enable Bit)bit yang mengindikasikan instruksi CTD aktif.
  • DN (Count Done Bit) – aktif jika nilai ACC sama dengan atau lebih besar dari nilai PRE.
  • OV (Overflow Bit)bit overflow mengindikasikan bahwa counter melebihi batas maksimum. Di set ketika nilai ACC lebih besar dari +2,147,483,647 dan di reset ketika instruksi reset di eksekusi. Nilai akumulasi tetap menghitung walaupun nilai ACC sama dengan nilai PRE.
  • UN (Underflow Bit) – mengindikasikan counter melebihi batas minimum -2,147,483,648.

Gambar 5-95 Parameter counter dan bit status

 

5.8.3.1 Counter Count-Up (CTU)

Counter count-up akan menyebabkan nilai akumulasi bertambah 1 setiap kali ada perubahan off ke on pada counter. Instruksi counter count-up serta properties tag nya ditunjkan pada gambar 5-96. Nama tag, description, tag type (jenis base sering digunakan) dan scope dipilih untuk menyelesaikan validasi.

Gambar 5-96 Instruksi counter count-up dan validasi tag

 

Contoh aplikasi program counter count-up digunakan untuk menghitung botol ditunjukan pada gambar 5-97. Operasi dari program dapat disimpulkan sebagai berikut :

  • Setiap perubahan off ke on pada proximity switch Bottle_Sensor menyebabkan counter bertambah 1.
  • Lampu Increment_PL dikendalikan oleh bit status Package_Counter.CU yang akan menyala atau mati berdasarkan botol yang lewat untuk menandakan counter
  • Ketika nilai akumulasi counter = 24, bit DN menjadi aktif dan menyalakan lampu Preset_Reached_PL.
  • Counter di reset dengan menekan tombol Reset_Button.

Gambar 5-97 Program counter count-up digunakan untuk menghitung botol

 

Program yang ditunjukan pada gambar 5-98 menggunakan dua instruksi CTU untuk mengeluarkan 5 kontainer dari setiap 11 kontainer dari jalur conveyor menggunakan katup solenoid. Operasi program dapat disimpulkan sebagai berikut :

  • Preset untuk counter Container_Counter_Counts di set 6 dan counter Container_Counter_Max di set 11.
  • Ketika kontainer terdeteksi nilai akumulasi kedua counter akan bertambah 1.
  • Ketika kontainer ke 6 tiba, counter Container_Counter_Counts akan mengaktifkan bit done nya, dengan demikian memungkinkan solenoid untuk bekerja untuk setiap kontainer setelah kontainer ke 5.
  • Counter Container_Counter_Max akan terus melanjutkan perhitungan sampai kontainer ke 11 terdeteksi dan kedua counter akan di reset.

Gambar 5-98 Program CTU untuk mengeluarkan kontainer dari jalur conveyor

 

5.8.3.2 Counter Count-Down

Counter count-down (CTD) bekerja secara berlawanan dengan counter count-up (CTU). Counter CTD akan menyebabkan nilai akumulasi berkurang 1 setiap kali ada perubahan off ke on pada counter. Instruksi CTD ditunjukan pada gambar 5-99. Kolom keterangan dan referensi tag sama dengan CTU.

Gambar 5-99 Instruksi counter count-down

 

Program aplikasi yang ditunjukan pada gambar 5-100 digunakan untuk membatasi jumlah barang yang dapat disimpan dalam penyimpanan sementara yaitu 50. Counter CTU dan CTD digunakan bersama dengan alamat yang sama untuk membentuk counter up/down. Operasi program dapat disimpulkan sebagai berikut :

  • Tombol Restart_Button ditekan untuk me-reset nilai akumulasi menjadi 0.
  • Conveyor membawa barang ke zona penyimpanan.
  • Setiap kali bawang masuk ke zona penyimpanan, Enter_Limit_Sw bekerja dan Counter_1 bertambah 1.
  • Setiap kali barang meninggalkan zona penyimpanan, Exit_Limit_Sw bekerja dan Counter_1 berkurang 1.
  • Jika nilai akumulasi mencapai atau lebih besar dari 50 maka Conveyor_Contactor akan mati secara otomatis menghentikan barang yang masuk sampai nilai akumulasi turun dibawah 50 atau tombol Restart_Button ditekan.

Gambar 5-100 Counter CTU dan CTD diganakan bersama untuk membentuk up/down counter

 

5.8.4    Counter Modicon

Perangkat lunak Modicon Unity untuk processor Modicon mempunyai 3 jenis counter dasar. Nama dan keterangan counter tersebut sebagai berikut :

Jenis Counter                   Deskripsi

CTU                                        Up-counter

CTD                                        Down-counter

CTUD                                     Up/down-counter

Function block counter adalah function block dasar (EFB). Setiap counter mempunyai instance yang menyimpan akumulator counter. Selain itu, ketiga counter dapat diberi akhiran jenis data integer (sebagai contoh, CTU_DINT) sebagai pengembangan dari standar IEC 61131-3. Status dan nilai akumulator dapat diakses melalui nama counter dan nama koneksi. Sebagai contoh, output Q pada counter TON dengan nama “Counter1” dapat diakses sebagai “Counter1.Q”. Operasi dari setiap counter akan di jelaskan dan diilustrasikan.

 

5.8.4.1 Up-Counter

Function block counter CTU ditunjukan pada gambar 5-101. Function block counter ini Ada dua versi : tanpa koneksi EN/ENO (gambar 5-101a) dan dengan koneksi EN/ENO (gambar 5-101b). Jika EN/ENO dikonfigurasi, input EN harus on agar block dieksekusi. Output ENO akan aktif jika input EN aktif dan eksekusi counter tidak ada kesalahan. Jika koneksi EN/ENO tidak dikonfigurasi, block akan dieksekusi setiap scan.

Gambar 5-101 Counter CTU Modicon (a) Tanpa EN/ENO  (b) Dengan EN/ENO

 

Akumulator counter (CV) bertambah 1 untuk setiap kali perubahan off ke on pada input count-up (CU). Ketika CV ≥ PV, maka output Q akan aktif. Ketika input reset (R) aktif, CV di reset menjadi 0. Jenis data CV dan PV keduanya INT. Counter dapat menghitung melebihi nilai PV.

Sebagai pengembangan standar IEC 61131-3, jenis data PV dan CV yang lain dapat diatasi dengan memberikan akhiran pada nama function block, seperti :

Function Block Name                              PV and CV Data Type

CTU_INT                                                           INT

CTU_DINT                                                        DINT

CTU_UINT                                                        UINT

CTU_UDINT                                                     UDINT

Contoh aplikasi untuk counter CTU ditunjukan pada gambar 5-102a dan diagram waktunya gambar 5-102b. Operasi counter dapat disimpulkan sebagai berikut :

  • Selama All_Reset aktif, CV ditahan pada nilai 0.
  • Ketika All_Reset tidak aktif, setiap perubahan off ke on pada PROX_2, CV bertambah 1.
  • Ketika CV sama dengan atau lebih besar dari 3 (nilai PV), coil Advance_Cyl akan aktif.
  • Ketika coil Advance_Cyl sudah aktif, perubahan positif pada PROX_2 menyebabkan nilai CV berubah dan Advance_Cyl tetap aktif.

Gambar 5-102 Contoh Counter CTU Modicon (a) Ladder  (b) Diagram waktu

 

5.8.4.2 Down-Counter

Function block counter CTD ditunjukan pada gambar 5-103. Nilai akumulasi (CV) berkurang 1 untuk setiap perubahan off ke on pada input count down (CD). Ketika CV ≤ 0, maka output Q akan aktif. Ketika input load (LD) aktif, nilai CV di set ke nilai PV. Counter dapat menghitung dibawah 0.

Sebagai pengembangan standar IEC 61131-3, jenis data PV dan CV yang lain dapat diatasi dengan memberikan akhiran pada nama function block sama seperti CTU.

Gambar 5-103 Counter CTD Modicon (a) Tanpa EN/ENO  (b) Dengan EN/ENO

 

Contoh aplikasi untuk CTD ditunjukan pada gambar 5-104a dan diagram waktunya ditunjukan pada gambar 5-104b. Operasi counter dapat disimpulkan sebagai berikut :

  • Ketika Prox3_CtLd aktif, akumulator di set dengan nilai PV yaitu 4.
  • Ketika Prox3_CtLd tidak aktif, Setiap perubahan off ke on pada PROX_3, akumulator berkurang 1.
  • Coil Prox3_Zero aktif ketika akumulator sama dengan atau kurang dari 0.
  • Ketika coil Prox3_Zero sudah aktif, perubahan positif pada PROX_3 menyebabkan nilai CV berubah dan Prox3_Zero tetap aktif.

 

Gambar 5-104 Contoh Counter CTD Modicon (a) Ladder  (b) Diagram waktu

 

5.8.4.3 Up/down-Counter

Function block up/down-counter ditunjukan pada gambar 5-105. Pada dasarnya counter ini adalah kombinasi dari CTU dan CTD. Akumulator counter (CV) bertambah 1 untuk setiap perubahan off ke on pada input count-up (CU) dan CV berkurang 1 untuk setiap perubahan off ke on pada input count-down (CD). Ketika CV = PV lalu output QU aktif. Ketika CV ≤ 0, maka output QD aktif. Ketika input reset (R) aktif, CV di reset menjadi 0. Ketika input load (LD) aktif, nilai CV di set ke nilai PV. Jika R dan LD aktif bersamaan, input R mempunyai prioritas lebih tinggi dan me–reset CV menjadi 0. Counter dapat menghitung diatas nilai preset dan dibawah 0. Sebagai pengembangan standar IEC 61131-3, jenis data PV dan CV yang lain dapat diatasi dengan memberikan akhiran pada nama function block sama seperti CTU.

Gambar 5-105 Counter CTUD Modicon (a) Tanpa EN/ENO  (b) Dengan EN/ENO

 

Contoh aplikasi untuk CTUD ditunjukan pada gamabr 5-106a dan diagram waktunya pada gamabr 5-106b. Operasi counter dapat disimpulkan sebagai berikut :

  • Ketika All_Reset dan Boxes_Ld tidak aktif, setiap perubahan off ke on pada Box_in, CV bertambah 1.
  • Ketika All_Reset dan Boxes_Ld tidak aktif, setiap perubahan off ke on pada Box_Out, CV berkurang 1.
  • Ketika CV sama dengan atau lebih besar dari 3 (nilai PV), coil Remove_Box menjadi aktif.
  • Ketika CV sama dengan atau lebih kecil dari 0, coil No_Box menjadi aktif.
  • Ketika All_Reset aktif, CV di reset menjadi 0.
  • Ketika Boxes_Load aktif, Niai CV di set menjadi nilai PV (3).

Gambar 5-106 Contoh counter CTUD Modicon  (a) Ladder  (b) Diagram waktu

 

5.9 Kombinasi Counter dan Timer

Banyak aplikasi PLC yang menggunakan counter dan timer. Gambar 5-107 mengilustrasikan sebuah program penyusunan otomatis yang membutuhkan timer dan counter. Dalam proses ini, conveyor M1 digunakan untuk menyusun plat besi ke conveyor M2. Photo electric sensor menghasikan pulsa input ke counter ketika plat besi dijatuhkan dari conveyor M1 ke M2. Ketika penyusunan plat telah mencapai 15, conveyor M2 aktif selama 5 s menggunakan timer. Operasi program dapat disimpulkan sebagai berikut :

  • Ketika tombol start ditekan, conveyor M1 mulai bekerja.
  • Setelah 15 plat besi tersusun, conveyor M1 berhenti dan conveyor M2 mulai bekerja.
  • Setelah conveyor M2 jalan selama 5 s lalu berhenti dan mulai lagi dari awal.
  • Done bit timer me-reset timer dan counter dan menghasilkan pulsa untuk menjalankan kembali conveyor M1 secara otomatis.

Gambar 5-107 Program penyusunan otomatis

 

Aplikasi lain yang mengkombinasikan counter dan timer yaitu untuk laju aliran produk seperti yang diilustrasikan pada gambar 5-108. Program ini dirancang untuk mengindikasikan berapa banyak produk yang lewat selama 1 menit. Operasi program dapat disimpulkan sebagai berikut :

  • Ketika saklar start tertutup, timer dan counter keduanya aktif.
  • Counter menghitung produk yang melewati sensor.
  • Perhitungan dimulai dan timer mulai menghitung waktu sampai interval 1 menit
  • Setelah mencapai 1 menit, done bit timer menyebabkan rung counter menjadi false.
  • Input pulsa sensor tetap berlanjut tapi counter tidak menghitungnya.
  • Jumlah produk untuk 1 menit direpresentasikan oleh nilai akumulasi counter.
  • Nilai akumulasi di-reset ketika saklar start terbuka.

Gambar 5-108 Program laju aliran produk

 

Referensi :

  • Programmable Logic Controller – Fifth Edition, Frank D Petruzella
  • Programmable Logic Controllers : An Emphasis on Design and Application – Third Edition, Kevin T Erickson
  • SLC Instruction Set Reference Manual – Rockwell Automation
  • Logix 5000 Controllers General Instruction Reference manual – Rockwell Automation
  • Unity Pro Program Language and Structure Reference Manual – Schneider Electric
  • Unity Pro Standard Block Library – Schneider Electric
  • Ladder Logic (LAD) for S7-300 and S7-400 Programming reference Manual – Siemens
  • System Software for S7-300/400 System and Standard Function Vol 1 – Siemens
  • Step 7 Proffesional V15: Reference Manual – Siemens AG

Leave a Comment

Your email address will not be published. Required fields are marked *