Selasa, 07 Februari 2012

Ladder logic






Ladder logic is a programming language that represents a program by a graphical diagram based on the circuit diagrams of relay logic hardware. It is primarily used to develop software for programmable logic controllers (PLCs) used in industrial control applications. The name is based on the observation that programs in this language resemble ladders, with two vertical rails and a series of horizontal rungs between them.

Overview

An argument that aided the initial adoption of ladder logic was that a wide variety of engineers and technicians would be able to understand and use it without much additional training, because of the resemblance to familiar hardware systems. This argument has become less relevant given that most ladder logic programmers have a software background in more conventional programming languages, and in practice implementations of ladder logic have characteristics, such as sequential execution and support for control flow features, that make the analogy to hardware somewhat inaccurate.
Ladder logic is widely used to program PLCs, where sequential control of a process or manufacturing operation is required. Ladder logic is useful for simple but critical control systems or for reworking old hardwired relay circuits. As programmable logic controllers became more sophisticated it has also been used in very complex automation systems. Often the ladder logic program is used in conjunction with an HMI program operating on a computer workstation.
Manufacturers of programmable logic controllers generally also provide associated ladder logic programming systems. Typically the ladder logic languages from two manufacturers will not be completely compatible; ladder logic is better thought of as a set of closely related programming languages rather than one language. (The IEC 61131-3 standard has helped to reduce unnecessary differences, but translating programs between systems still requires significant work.) Even different models of programmable controllers within the same family may have different ladder notation such that programs cannot be seamlessly interchanged between models.
Ladder logic can be thought of as a rule-based language rather than a procedural language. A "rung" in the ladder represents a rule. When implemented with relays and other electromechanical devices, the various rules "execute" simultaneously and immediately. When implemented in a programmable logic controller, the rules are typically executed sequentially by software, in a continuous loop (scan). By executing the loop fast enough, typically many times per second, the effect of simultaneous and immediate execution is relatively achieved to within the tolerance of the time required to execute every rung in the "loop" (the "scan time"). It is somewhat similar to other rule-based languages, like spreadsheets or SQL. However, proper use of programmable controllers requires understanding the limitations of the execution order of rungs.

 

Example of a simple ladder logic program

The language itself can be seen as a set of connections between logical checkers (contacts) and actuators (coils). If a path can be traced between the left side of the rung and the output, through asserted (true or "closed") contacts, the rung is true and the output coil storage bit is asserted (1) or true. If no path can be traced, then the output is false (0) and the "coil" by analogy to electro-mechanical relays is considered "de-energized". The analogy between logical propositions and relay contact status is due to Claude Shannon.
Ladder logic has contacts that make or break circuits to control coils. Each coil or contact corresponds to the status of a single bit in the programmable controller's memory. Unlike electromechanical relays, a ladder program can refer any number of times to the status of a single bit, equivalent to a relay with an indefinitely large number of contacts.
So-called "contacts" may refer to physical ("hard") inputs to the programmable controller from physical devices such as pushbuttons and limit switches via an integrated or external input module, or may represent the status of internal storage bits which may be generated elsewhere in the program.
Each rung of ladder language typically has one coil at the far right. Some manufacturers may allow more than one output coil on a rung.
·        —( )— A regular coil, energized whenever its rung is closed.
·        —(\)— A "not" coil, energized whenever its rung is open.
·        —[ ]— A regular contact, closed whenever its corresponding coil or an input which controls it is energized.
·        —[\]— A "not" contact, open whenever its corresponding coil or an input which controls it is energized.
The "coil" (output of a rung) may represent a physical output which operates some device connected to the programmable controller, or may represent an internal storage bit for use elsewhere in the program.

 

Examples

Here is an example of what one rung in a ladder logic program might look like. In real world applications, there may be hundreds or thousands of rungs.
For example:
 
 1. ----[ ]---------|--[ ]--|------( )
         X          |   Y   |       S
                    |       |
                    |--[ ]--|
                        Z
The above realizes the function: S = X AND ( Y OR Z )
Typically, complex ladder logic is 'read' left to right and top to bottom. As each of the lines (or rungs) are evaluated the output coil of a rung may feed into the next stage of the ladder as an input. In a complex system there will be many "rungs" on a ladder, which are numbered in order of evaluation.
 
 1. ----[ ]-----------|---[ ]---|----( )
         X            |    Y    |     S
                      |         |
                      |---[ ]---|
                           Z
 2. ----[ ]----[ ]-------------------( )
         S      X                     T 
2. T = S AND X
This represents a slightly more complex system for rung 2. After the first line has been evaluated, the output coil (S) is fed into rung 2, which is then evaluated and the output coil T could be fed into an output device (buzzer, light etc..) or into rung 3 on the ladder. (Note that the contact X on the second rung serves no useful purpose, as X is already defined in the 'AND' function of S from the 1st rung.)
This system allows very complex logic designs to be broken down and evaluated.
For more practical examples see below:

 ------[ ]--------------[ ]----------------( )
  Key Switch 1      Key Switch 2       Door Motor
This circuit shows two key switches that security guards might use to activate an electric motor on a bank vault door. When the normally open contacts of both switches close, electricity is able to flow to the motor which opens the door. This is a logical AND.
                             +-------+    
 ----------------------------+       +----
                             +-------+      
                          Remote Receiver
 
 --|-------[ ]-------+-----------------( )
   |                 | 
   |-------[ ]-------|
      Interior Unlock
This circuit shows the two things that can trigger a car's power door locks. The remote receiver is always powered. The lock solenoid gets power when either set of contacts is closed. This is a logical OR.
Often we have a little green "start" button to turn on a motor, and we want to turn it off with a big red "stop" button. The stop button itself is wired as a normally closed switch. This means that when the stop button is in its normal state (not pushed), the PLC input will be true. When the stop button is pushed, the input will go false. This will make the rung false and stop the "run" output. A normally-open contact must be used in the ladder diagram, since this input is normally turned on through the normally closed pushbutton contact, and turns off when the button is pressed.
 --+----[ ]--+----[ ]----( )
   |   start |    stop   run   
   |         |                 
   +----[ ]--+                 
        run                    
                               
 -------[ ]--------------( )
        run             motor  
This latch configuration is a common idiom in ladder logic. In ladder logic it is referred to as seal-in logic. The key to understanding the latch is in recognizing that "start" switch is a momentary switch (once the user releases the button, the switch is open again). As soon as the "run" solenoid engages, it closes the "run" switch, which latches the solenoid on. The "start" switch opening up then has no effect.

 

Additional functionality

Additional functionality can be added to a ladder logic implementation by the PLC manufacturer as a special block. When the special block is powered, it executes code on predetermined arguments. These arguments may be displayed within the special block.
                             +-------+    
 -----[ ]--------------------+  A    +----
  Remote Unlock              +-------+      
                          Remote Counter  
                                          
                             +-------+    
 -----[ ]--------------------+  B    +----
  Interior Unlock            +-------+      
                         Interior Counter 
                                            
                     +--------+           
 --------------------+ A + B  +-----------
                     + into C +             
                     +--------+             
                        Adder              
In this example, the system will count the number of times that the interior and remote unlock buttons are pressed. This information will be stored in memory locations A and B. Memory location C will hold the total number of times that the door has been unlocked electronically.
PLCs have many types of special blocks. They include timers, arithmetic operators and comparisons, table lookups, text processing, PID control, and filtering functions. More powerful PLCs can operate on a group of internal memory locations and execute an operation on a range of addresses, for example,to simulate a physical sequential drum controller or a finite state machine. In some cases, users can define their own special blocks, which effectively are subroutines or macros. The large library of special blocks along with high speed execution has allowed use of PLCs to implement very complex automation systems.

Limitations and successor languages

Ladder notation is best suited to control problems where only binary variables are required and where interlocking and sequencing of binary is the primary control problem. Since execution of rungs is sequential within a program and may be undefined or obscure within a rung, some logic race conditions are possible which may produce unexpected results; complex rungs are best broken into several simpler steps to avoid this problem. Some manufacturers, e.g. Omron, avoid this problem by explicitly and completely defining the execution order of a rung, however programmers may still have problems fully grasping the resulting complex semantics.
Analog quantities and arithmetical operations are clumsy to express in ladder logic and each manufacturer has different ways of extending the notation for these problems. There is usually limited support for arrays and loops, often resulting in duplication of code to express cases which in other languages would call for use of indexed variables.
As microprocessors have become more powerful, notations such as sequential function charts and function block diagrams can replace ladder logic for some limited applications. Very large programmable controllers may have all or part of the programming carried out in a dialect that resembles BASIC or C or other programming language with bindings appropriate for a real-time application environment.

See also

·        Digital circuit
·        IEC 61131

Senin, 30 Januari 2012

Motor Stepper dan Rangkaian Interfacenya (Bagian 2)


Rangkaian kontrol untuk setiap tipe motor stepper mempunyai kemiripan yaitu dalam hal aktivasinya. Namun yang paling membedakan adalah dalam hal urutan pemberian data aktivasi setiap lilitan pada motor stepper.

Motor stepper merupakan motor listrik yang tidak mempunyai komutator, di mana semua lilitannya merupakan bagian dari stator. Dan pada rotornya hanya merupakan magnet permanen. Semua komutasi setiap lilitan harus di kontrol secara eksternal sehingga motor stepper ini dapat dikontrol sehingga dapat berhenti pada posisi yang diinginkan atau bahkan berputar ke arah yang berlawanan.

Pada bagaian ini akan dibahas mengenai bagaian terakhir dari rangkaian penggerak motor stepper. Rangkaian ini pada dasarnya hanya merupakan rangkaian switching arus yang mengaliri lilitan pada motor stepper. Urutan pemberian data pada motor stepper ini dapat mengontrol arah putaran dari motor stepper ini. Penambahan kecepatan pada motor stepper dapat dilakukan dengan cara meningkatkan frekuensi pemberian data pada rangkaian switching arus.

Rangkaian kontrol ini nantinya terhubung langsung dengan lilitan pada motor, rangkaian power supplai, dan rangkaian yang dikontrol secara digital yang pada akhirnya menentukan kapan lilitan yang diinginkan dalam kondisi off atau on. Selain hanya menggunakan transistor switching ar, saat ini sudah tersedia driver motor yang memang diperuntukkan bagi motor stepper, yang lebih dikenal dengan H-Bridge. Komponen ini biasanya digunakan pada motor stepper tipe bipolar, walaupun demikian tidak menutup kemungkinan digunakan pada motor stepper tipe yang lain.


Rangkaian Driver Variabel Reluctance Motor

terdapat sebuah 3 blok dimana masing-masing mengatur sebuah kumparan motor stepper. Blok tersebut terdiri dari saklar arus yang dikontrol secara digital. Blok ini berperan penting di dalam pengontrolan arus yang akan melewati kumparan motor tertentu. Pengontrollan blok ini dapat dilakukan oleh sebuah rangkaian digital sederhana atau bahkan sebuah komputer melalui printer port. Dengan menggunakan komputer maka diperlukan perangkat lunak yang nantinya akan mengatur pemberian data dengan suatu urut-urutan tertentu kepada komponen saklar di dalam blok.

Kumparan pada motor stepper mempunyai karakteristik yang sama dengan karakteristik beban induktif lainnya. Oleh sebab itu ketika terdapat arus yang melalui kumparan motor, tidak dapat dimatikan dengan seketika tanpa menghasilkan tegangan transien yang sangat tinggi. Kondisi ini biasanya nampak dengan timbulnya percikan bunga api (ketika menggunakan motor DC dengan daya yang besar). Hal ini sangat tidak diinginkan karena dapat merusak saklar sehingga perlu diberikan rangkaian tambahan untuk membatasi tegangan transien yang muncul. Sebaliknya ketika saklar tertutup maka terdapat arus yang mengalir ke kumparan motor dan akan menghasilkan kenaikan tegangan secara perlahan.

Untuk membatasi tegangan spike yang muncul maka ada dua alternatif penyelesaiannya yaitu dengan memparalel pada kumparan motor dengan dioda dan alternatif yang kedua adalah dengan menggunakan kapasitor yang dipasang paralel dengan kumparan motor stepper.

Diode yang yang terpasang paralel tersebut harus mampu melewatkan arus balik yang terjadi ketika saklar terbuka. Dioda yang digunakan dapat berupa dioda yang umum dipakai seperti 1N4001 atau 1N4002. Jika digunakan dioda yang mempunyai karakteristik ‘fast switch’ maka perlu diberikan penambahan kapasitor yang dipasang secara paralel pada dioda.

Pemasangan kapasitor paralel dengan kumparan motor dapat menyebabkan spike yang ditimbulkan akan menyebabkan kapasitor tersebut charge sehingga tegangan spike yang terjadi tidak akan keluar tetapi diredam oleh kapasitor ini. Tetapi yang paling penting adalah kapasitor ini harus mampu menahan surge current pada saat terjadi spike. Surge current adalah arus tiba-tiba yang sangat besar yang muncul bersamaan dengan tegangan spike. Nilai kapasitor harus dipilih pada kondisi dimana nilai induktansi dari kumparan motor stepper paling besar. Inilah karakteristik motor stepper dengan tipe variabel reluctance dimana nilai induktansinya berubah-ubah tergantung dari sudut putaran pada poros rotor. Penambahan kapasitor sehingga tepat akan membentuk sebuah rangkaian resonansi yang dapat menyebabkan peningkatan torsi pada motor dengan tipe ini.

Rangkaian Driver Unipolar Permanent Magnet and Hybrid Motor

Diode yang yang terpasang paralel tersebut harus mampu melewatkan arus balik yang terjadi ketika saklar terbuka. Dioda yang digunakan dapat berupa dioda yang umum dipakai seperti 1N4001 atau 1N4002. Jika digunakan dioda yang mempunyai karakteristik ‘fast switch’ maka perlu diberikan penambahan kapasitor yang dipasang secara paralel pada dioda.

Pemasangan kapasitor paralel dengan kumparan motor dapat menyebabkan spike yang ditimbulkan akan menyebabkan kapasitor tersebut charge sehingga tegangan spike yang terjadi tidak akan keluar tetapi diredam oleh kapasitor ini. Tetapi yang paling penting adalah kapasitor ini harus mampu menahan surge current pada saat terjadi spike. Surge current adalah arus tiba-tiba yang sangat besar yang muncul bersamaan dengan tegangan spike. Nilai kapasitor harus dipilih pada kondisi dimana nilai induktansi dari kumparan motor stepper paling besar. Inilah karakteristik motor stepper dengan tipe variabel reluctance dimana nilai induktansinya berubah-ubah tergantung dari sudut putaran pada poros rotor. Penambahan kapasitor sehingga tepat akan membentuk sebuah rangkaian resonansi yang dapat menyebabkan peningkatan torsi pada motor dengan tipe ini.

Rangkaian Driver Unipolar Permanent Magnet and Hybrid Motor

Rangkaian kontrol untuk mengendalikan motor stepper dengan tipe unipolar ini hampira sama dengan rangkaian kontrol pada motor tipe variabel reluctance. Perbedaanya hanya pada struktur kumparan motornya saja.

Walaupun demikian karena bebanya merupakan beban induktif maka selalu ada tegangan spike yang muncul ketika saklar terbuka. Oleh sebab itu perlu penambahan dioda yang terpasang paralel dengan kumparan motor stepper seperti terlihat pada gambar 4.

Dua buah dioda tambahan diperlukan karena kumparan motor bukanlah kumparan yang independen tetapi sebuah kumparan yang mempunyai tap di tengah-tengah kumparan seperti struktur pada autotransformer. Ketika salah satu saklar dibuka maka tegangan spike muncul di kedua ujung kumparan motor tersebut dan di clamp oleh dua buah dioda ke supplay motor. Tetapi jika salah satu ujung kumparan motor tersebut tidak floating terhadap supplai motor maka tegangan spike ini akan lebih negatif daripada referensi ground. Jika saklar yang digunakan berupa relay, kondisi ini bukan menjadi masalah. Kondisi ini baru menjadi masalah ketika saklar yang digunakan adalah saklar semikonduktor seperti transistor atau FET.

Untuk membatasi level tegangan spike dapat pula digunakan kapasitor yang terpasang


Rangkaian Praktis Pengendali Motor Stepper

Jika rangkaian kontrol yang mengendalikan rangakaian motor driver ini berupa mikrokontroller atau komponen digital maka ada baiknya agar setiap port yang mengontrol rangkaian driver motor stepper ini diberi buffer terlebih dahulu agar tidak membebani port mikrokontroller yang digunakan. Seperti pada gambar 3, pin control_0, control_1, control_2 dan control_3 ini dapat dikontrol secara digital dengan menggunakan mikrokontroller dengan memberi komponen yang berfungsi sebagai buffer

Ada dua alternatif yaitu dengan menggunakan buffer terlebuh dahulu atau menggunakan FET, yang mempunyai impedansi input yang sangat tinggi, sebagai komponen saklarnya. Tegangan Vmotor tidaklah harus selalu sama dengan tegangan VCC pada mikrokontroller. Oleh sebab itu digunakan sebuah komponen buffer yang mempunyai output open collector sehingga outputnya dapat di pull-up ke tegangan yang diinginkan.

Untuk dasar pemilihan transistornya adalah pada karakteristik IC (arus kolektor). Transistor ini harus merupakan transistor power yang mampu melewatkan arus sesuai dengan arus yang diperlukan oleh kumparan motor stepper ini. Jika arus yang ditarik oleh kumparan motor stepper ternyata lebih besar daripada kemampuan transistor maka transistor akan cepat panas dan dapat menyebabkan rusaknya transistor tersebut.

R pull-up sebesar 470 akan memberikan arus sebesar 10 mA ke basis transistor Q1. Jika Q1 mempunyai gain sebesar 1000 maka arus yang dapat diliewatkan adalah sekitar beberapa ampere, tergantung dari besar arus yang ditarik oleh kumparan motor stepper tersebut. Arus ini harus lebih kecil dari arus IC yang diperbolehkan.

Untuk komponen FET dapat digunakan komponen IRL540 yang dapat mengalirkan arus sampai 20 A dan mampu menahan tegangan balik sampai 100V. Hal ini disebabkan oleh karena FET ini mampu menyerap tegangan spike tanpa perlindungan dioda. Tetapi komponen ini memerlukan heat sink yang besar dan harus cukup baik dalam hal penyerapan panasnya. Ada baiknya jika digunakan kapasitor untuk menekan level tegangan spike yang ditimbulkan dari transisi saklar dari on ke off

Motor Stepper dan Rangkaian Interfacenya (Bagian 1)

Stepper motor bukanlah barang baru di dalam dunia komputer. Bahkan hampir sebagian besar disk drive atau CDROM menggunakan stepper motor untuk memutar disk. Penggunaannya juga cukup sederhana dan mudah digunakan untuk aplikasi-aplikasi tertentu yang tidak terlalu membutuhkan torsi yang besar.

Motor stepper banyak digunakan untuk aplikasi-aplikasi yang biasanya cukup menggunakan torsi yang kecil, seperti untuk penggerak piringan disket atau piringan CD. Dalam hal kecepatan, kecepatan motor stepper cukup cepat jika dibandingkan dengan motor DC. Motor stepper merupakan motor DC yang tidak memiliki komutator. Pada umumnya motor stepper hanya mempunyai kumparan pada statornya sedangkan pada bagian rotornya merupakan permanen magnet. Dengan model motor seperti ini maka motor stepper dapat diatur posisinya pada posisi tertentu dan/atau berputar ke arah yang diinginkan, csearah jarum jam atau sebaliknya.

Kecepatan motor stepper pada dasarnya ditentukan oleh kecepatan pemberian data pada komutatornya. Semakin cepat data yang diberikan maka motor stepper akan semakin cepat pula berputarnya. Pada kebanyakan motor stepper kecepatannya dapat diatur dalam daerah frekuensi audio dan akan menghasilkan putaran yang cukup cepat.

Tipe Motor Stepper

Motor stepper dibedakan menjadi dua macam berdasarkan magnet yang digunakan, yaitu tipe permanen magnet dan variabel reluktansi. Pada umumnya motor stepper saat ini yang digunakan adalah motor stepper yang mempunyai variabel relukatansi. Cara yang paling mudah untuk membedakan antara tip motor stepper di atas adalah dengan cara memutar rotor dengan tangan ketika tidak dihubungkan ke suplai.

Pada motor stepper yang mempunyai permanen magnet maka ketika diputar dengan tangan akan terasa lebih tersendat karena adanya gaya yang ditimbulkan oleh permanen magnet. Tetapi ketika menggunakan motor dengan variabel reluktansi maka ketika diputar akan lebih halus karena sisa reluktansinya cukup kecil.

Variabel Reluktansi Motor

Pada motor stepper yang mempunyai variabel reluktansi maka terdapat 3 buah lilitan yang pada ujungnya dijadikan satu pada sebuah pin common. Untuk dapat menggerakkan motor ini maka aktivasi tiap-tiap lilitan harus sesuai urutannya.

Gambar 1 merupakan gambar struktur dari motor dengan variabel reluktansi dimana tiap stepnya adalah 30°. Mempunyai 4 buah kutub pada rotor dan 6 buah kutub pada statornya yang terletak saling berseberangan.

Jika lilitan 1 dilewati oleh arus, lilitan 2 mati dan lilitan 3 juga mati maka kumparan 1 akan menghasilkan gaya tolakan kepada rotor dan rotor akan berputar sejauh 30° searah jarum jam sehingga kutub rotor dengan label Y sejajar dengan kutub dengan label 2.

Jika kondisi seperti ini berulang terus menerus secara berurutan, lilitan 2 dilewati arus kemudian lilitan 3 maka motor akan berputar secara terus menerus. Maka agar dapat berputar sebanyak 21 step maka perlu diberikan data dengan urutan seperti pada gambar 2.

Unipolar Motor Stepper

Motor stepper dengan tipe unipolar adalah motor stepper yang mempunyai 2 buah lilitan yang masing-masing lilitan ditengah-tengahnya diberikan sebuah tap seperti tampak pada gambar 3.

Motor ini mempunyai step tiap 30° dan mempunyai dua buah liliatan yang didistribusikan berseberangan 180° di antara kutub pada stator. Sedangkan pada rotonya menggunakan magnet permanen yang berbentuk silinder dengan mempunyai 6 buah kutub, 3 kutub selatan dan 3 buah kutub utara. Sehingga dengan konstrusi seperti ini maka jika dibutuhkan ke presisian dari motor stepper yang lebih tinggi dibutuhkan pula kutub-kutub pada stator dan rotor yang semakin banyak pula. Pada gambar 3, motor tersebut akan bergerak setiap step sebesar 30° dengan 4 bit urutan data (terdapat dua buah lilitan dengan tap, total lilitan menjadi 4 lilitan).

Ketelitian dari magnet permanen di rotor dapat sampai 1.8° untuk tiap stepnya. Ketika arus mengalir melalui tap tengah pada lilitan pertama akan menyebabkan kutub pada stator bagian atas menjadi kutub utara sedangkan kutub stator pada bagian bawah menjadi kutub selatan. Kondisi akan menyebabkan rotor mendapat gaya tarik menuju kutub-kutub ini. Dan ketika arus yang melalui lilitan 1 dihentikan dan lilitan 2 diberi arus maka rotor akan mengerak lagi menuju kutub-kutub ini. Sampai di sini rotor sudah berputar sampai 30° atau 1 step.

Untuk meningkatkan torsi yang tidak terlalu besar maka dapat digunakan urutan pemberian data seperti pada gambar 5. Dimana terdapat dua buah lilitan yang di beri arus pada suatu waktu. Dengan pemberian urutan data seperti ini akan menghasilkan torsi yang lebih besar dan tentunya membutuhkan daya yang lebih besar.

Dengan urutan data baik pada gambar 4 atau gambar 5 akan menyebabkan motor berputar sebanyak 24 step atau 4 putaran.

Bipolar Motor Stepper

Motor dengan tipe bipolar ini mempunyai konstruksi yang hampir sama dengan motor stepper tipe unipolar namun tidak terdapat tap pada lilitannya, seperti tampak pada gambar 6.

Penggunaan motor dengan tipe bipolar ini membutuhkan rangkaian yang sedikit lebih rumit untuk mengatur agar motor ini dapat berputar dalam dua arah. Biasanya untuk menggerakkan motor stepper jenis ini membutuhkan sebuah driver motor yang sering dikenal sebagai H Bridge. Rangkaian ini akan menontrol tiap-tiap lilitan secara independen termasuk dengan polaritasnya untuk tiap-tiap lilitan.

Untuk mengontrol agar motor ini dapat berputar satu step maka perlu diberikan arus untuk tiap-tiap lilitan dengan polaritas tertentu pula. Urutan datanya dapat dilihat pada gambar 7.

Paradigma Pemrograman


Paradigma adalah sudut pandang tertentu yang digunakan terhadap suatu problem, realitas, keadaan dan sebagainya. Paradigma membatasi dan mengkondisikan jalan berpikir seseorang, mengarahkannya terhadap beberapa atribut dan mengabaikan atribut lain, sehingga paradigma hanya memberikan pandangan yang terbatas terhadap sebuah realitas.

Dalam pemrograman dikenal beberapa paradigma, yaitu:

1. Paradigma Pemrograman Prosedural atau Imperatif

Paradigma ini didasari oleh konsep mesin Von Newman (stored program concept) sekelompok tempat penyimpanan (memori), yang dibedakan menjadi memori instruksi dan memori data, masing-masing memori tersebut dapat diberi nama dan nilai, selanjutnya instruksi akan dieksekusi satu persatu secara sekuensial oleh sebuah proses tunggal.

Program dalam paradigma ini berdasarkan pada struktur informasi di dalam memori dan manipulasi dari informasi yang disimpan tersebut. Kata kunci yang sering digunakan dalam paradigma ini adalah:

Algoritma + Struktur Data = Program

Kelebihan dari paradigma ini adalah efisiensi eksekusi karena lebih dekat dengan konsep mesin, kekurangannya adalah batasan yang sangat mengikat sehingga terkadang menyulitkan programmer yang tidak terbiasa.

Contoh bahasa pemrogaman yang menggunakan paradigma prosedural atau imperatif adalah: Algol, Pascal, Fortran, Basic, Cobol, C, dsb…

2. Paradigma Pemrograman Fungsional

Paradigma ini didasari oleh konsep pemetaan dan fungsi pada matematika, fungsi dapat berupa fungsi ”primitif”, atau komposisi dari fungsi-fungsi lain yang telah terdefinisi. Dalam paradigma ini, diasumsikan bahwa akan selalu ada fungsi-fungsi dasar yang dapat digunakan, sehingga penyelesaian masalah berdasarkan pada fungsi-fungsi yang telah tersedia tersebut. Jadi dasar pemecahan masalah adalah transformasional, semua kelakuan program adalah suatu rantai transformasi dari sebuah keadaan awal menuju ke suatu rantai keadaan akhir, yang mungkin melalui keadaan antara, melalui aplikasi fungsi.

Paradigma fungsional tidak mempermasalahkan memorisasi dan struktur data, tidak ada pemilahan antara data dan program, tidak ada lagi pengertian tentang ”variabel”. Programmer tidak perlu tahu bagaimana mesin mengeksekusi atau bagaimana informasi disimpan dalam memori, setiap fungsi seperti ”kotak hitam”, yang perlu diperhatikan hanya keadaan awal dan akhir, sebuah program besar dihasilkan dengan menggabungkan fungsi-fungsi yang telah tersedia. Program yang dihasilkan dengan bahasa pemrograman yang menggunakan paradigma ini biasanya membutuhkan waktu pemrosesan yang lebih lama dibandingkan dengan yang menggunakan paradigma prosedural karena dibutuhkan waktu lebih untuk memproses fungsi-fungsi yang digunakan dalam membuat program.

Contoh bahasa pemrograman yang menggunakan paradigma fungsional adalah LOGO, APL dan LISP.

3. Paradigma Pemrograman Deklaratif, Predikatif atau Lojik

Paradigma ini didasari atas pendefinisian relasi antar individu yang dinyatakan sebagai predikat. Sebuah program lojik adalah kumpulan aksioma (Fakta dan aturan deduksi.

Dalam paradigma ini, programmer menguraikan sekumpulan fakta dan aturan-aturan (inference rules). Ketika program dieksekusi, pemakai akan mengajukan pertanyaan, selanjutnya program akan menggunakan aturan deduksi dan mencocokkan pertanyaan dengan fakta-fakta yang ada untuk menjawab pertanyaan.

Contoh bahasa pemrograman yang menggunakan paradigma ini adalah: Prolog.

4. Paradigma Berorientasi Object (Object Oriented)

Paradigma ini menggunakan konsep class dan object, object adalah instansiasi dari class, setiap object akan mempunyai attribute dan method, masing-masing object dapat berinteraksi dengan object lainnya meskipun berasal dari class yang berbeda.

mempunyai hirarki artinya sebuah class dapat diturunkan menjadi sebuah class baru yang juga memiliki attribut dan method class diatasnya. Dengan begitu dalam paradigma ini dikenal konsep modularitas, penggunaan kembali (reuse) serta kemudahan modifikasi.

Contoh bahasa pemrograman yang menggunakan paradigma ini adalah: Smalltalk, Eifel, Delphi, Java.

5. Paradigma Konkuren

Paradigma ini didasari oleah kenyataan bahwa dalam keadaan nyata, sebuah sistem komputer harus menangani beberapa program (task) yang harus dieksekusi secara bersamaan dalam sebuah lingkungan baik mono ataupun multi processor. Dalam paradigma ini programmer tidak lagi berpikir sekuensial, melainkan harus menangani komunikasi dan sikronisasi antar task.

Masing-masing paradigma tersebut mempunyai strategi analisa yang khusus untuk memecahkan persoalan. Setiap paradigma mempunyai kekurangan dan kelebihan sehingga tidak semua persoalan dapat dipecahkan dengan satu jenis paradigma, sehingga diperlukan analisis secara menyeluruh terhadap persoalan yang akan diselesaikan sebelum menentukan paradigma pemrograman seperti apa yang akan digunakan untuk menyelesaikan persoalan tersebut.

Komponen PLC,

Komponen PLC, PLC

Selain komponen dasar yang telah dibahas pada topik sebelumnya, PLC juga memiliki komponen tambahan yang dapat membuat fungsi maupun kinerjanya menjadi semakin optimal. Hal tersebut karena sebuah PLC tersusun dari ratusan bahkan ribuan relay, counter, timer dan juga memori.


Berikut komponen-komponen tambahan pada PLC:

1. Input relay atau kontaktor

Komponen ini dihubungkan ke dunia luar (antarmuka) PLC, dan secara fisik komponen ini ada serta menerima sinyal dari source, sensor dan lain sebagainya.

2. Internal, utility relay

Internal Relay tidak dapat diakses secara langsung untuk digunakan sebagai input maupun output. Komponen ini merupakan relay semu yang merupakan bit digital (0/1) yang disimpan pada internal image register. Dilihat dari sudut pandang pemrograman, semua internal relay mempunyai satu coil dan mempunyai sebanyak contact sesuai yang diinginkan oleh programer. Semua Iternal relay dimiliki oleh semua jenis maupun merk PLC, namun cara penomeran dan jumlah maksimum yang diperbolehkan masing-masing berbeda. Bagi kebanyakan programer, Internal Relay memberikan kebebasan untuk melaksanakan operasi internal yang lebih rumit tanpa memerlukan penggunaan biaya mahal untuk beberapa output relay. Dalam contoh pemrograman Internal Relay dapat disimbolkan dengan IR.

3. Counters

Counter sama dengan input relay yang secara fisik tidak ada. Komponen ini merupakan simulasi counter dan dapat diprogram untuk menghitung banyak pulsa, dapat menghitung naik atau turun atau keduanya naik dan turun. Selama waktu simulasi dapat dibatasi kecepatan hitungnya. Beberapa perusahaan membuat counter berkecepatan tinggi dengan bantuan tambahan hardware.

4. Timers

Timer juga merupakan komponen maya yang secara fisik tidak dapat ditemui. Komponen ini dibuat dengan banyak ragam dan yang paling umum adalah tipe tunda saat ON (on delay) dan tunda saat OFF (off delay) dan dua tipe yang dapat menyimpan data atau tidak dapat menyimpan data (retentive dan nen-retentive type), variasi jenaikan 1 ms sampai dengan 1s.

5. Output relays (Kumparan)

Output relay merupakan komponen tambahan yang dihubungkan dengan dunia luar, memiliki bentuk fisik dan melaksanakan tugas mengirimkan sinyal ON/OFF ke solenoid, lampu dan komponen keluaran lain. Wujud dari output relay ini dapat berupa transistor, relay atau triac tergantung pada model yang dipilih pengguna.

6. Data storage

Data storage merupakan suatu register untuk menyederhanakan penyimpanan. Biasanya difungsikan sebagai alat penyimpanan data.

PLC SIMULATOR


PLC SIMULATOR V1.0

Program simulator sederhana PLC Omron seri CPM atau Sysmac. Nama program tersebut adalah PLC Simulator versi 1.0 karya Tang Tung Yan, sebagaimana ditunjukkan pada gambar V.27 dan dengan spesifikasi:
• Model PLC yang didukung: seri CPM;
• Hanya menerima masukan kode-kode tangga atau mnemonik saja
• Kode-kode tangga yang didukung: LD, NOT, AND, OR, BLK, TIM, CNT, DIFU dan SIFT;
• Jangkauan masukan: 00 hingga 15 (16 masukan);
• Jangkauan keluaran: 1000 hingga 1015 (16 keluaran);
• Jumlah dan Jangkauan timer 00 hingga 07 (0,1 detik hingga 60 menit);
• Jumlah dan Jangkauan pencacah: 00 hingga 07 (0 hingga 9999);
• Relai internal: 0000 hingga 2000
Perangkat lunak PLC Simulator ini memiliki kelemahan tidak adanya pembuatan atau penyurtingan diagram tangga sebagaimana dijumpai paca Syswin. Dengan demikian, jika kita ingin melakukan simulasi dari diagram tangga yang dibuat menggunakan Software Syswin, maka harus kita lihat kode mnemonik-nya (statement list) dengan cara memilih jaringan atau blok yang terkait dan menekan Ctrl+F8, sehingga akan ditampilkan jendela seperti ditunjukkan pada gambar V.27.

Jangan lupa juga mengakhiri programnya dengan perintah END. PLC Simulator v1.0 ini akan digunakan dalam pembahasan contoh-contoh aplikasi, berkas simulator juga disediakan dalam CDROM sehingga Anda tidak perlu mengetikkan lagi. PLC Simulator ini mendukung beberapa kode tangga seperti: LD, OR, AND,
CNT, TIM, BLK, DIFU dan SIFT, dengan demikian kombinasi kode tangga yang dimungkinkan antara lain:
• LD, LD NOT;
• LD TIM, LD NOT TIM;
• LD CNT, LD NOT CNT;
• OR, OR BLK, OR TIM, OR CNT;
• OR NOT, OR NOT BLK, OR NOT TIM, OR NOT CNT;
• AND, AND BLK, AND TIM, AND CNT;
• AND NOT, AND BLK, AND NOT TIM, AND NOT CNT;
• OUT, OUT NOT, DIFU dan SFT;
Beberapa perintah, seperti DIFD, sama sekali tidak dikenal, sehingga beberapa aplikasi yang dibahas harus dilakukan modifikasi agar dapat dijalankan dengan PLC Simulator ini. Selain itu perintah BLK hanya khusus pada PLC Simulator, digunakan untuk antisipasi blok yang menggunakan bit TR (lihat kembali pembahasan
pada pasal 111.1.8). Perintah SIFT perilakunya agak berbeda dengan SIFT pada PLC yang sesungguhnya (akan dibahas lebih lanjut pada Bab VII). Berikut ini keterangan singkat tentang DIFU dan SIFT pada perangkat lunak PLC Simulator: DIFU digunakan jika diinginkan bentuk pulsa (ON hanya sesaat), misalnya:
LD 00000
OUT 01000
Pada potongan program tersebut, jika masukan 000.00 diaktifkan, maka keluaran 010.00 akan diaktifkan selama masukan 000.00 aktif. Bandingkan dengan potongan program berikut:
LD 00000 DIFU 01000


Potongan program kedua ini memiliki perilaku berbeda, jika masukan 000.00 diaktifkan, maka keluaran 010.00 akan aktif untuk satu waktu scan saja, kemudian setelah itu akan non-aktif (OFF) walaupun masukan 000.00 tetap aktif.
Perintah SFT digunakan untuk melakukan penggeseran logika. SFT membutuhkan tiga masukan: masukan data logika, sinyal detak dan reset, perhatikan contoh berikut:
LD 00000 ; masukan sinyal detak DIFU 2000
LD 00001 ; masukan data logik fungsi SFT LD 02000
LD 00002 ; masukan RESET
SFT 01008 01005 ; geser dari 01008 hingga 01005
Catatan: pemrogram bertanggung-jawab untuk memastikan bahwa sinyal detak hanya mengandung satu pulsa saja. Jika masukannya berupa ON kontinyu, maka proses penggeseran akan berlangsung terus menerus. Berbeda dengan PLC Sysmac yang hanya tepicu saat transisi OFF ke ON saja, selama ON tidak dilakukan penggeseran bit.
Saat proses penggeseran terjadi, maka logika pada 010.00 akan digeser ke 010.01, sedangkan yang ada di 010.01 akan digeser ke 010.02, demikian seterusnya. Program tersebut akan melakukan penggeseran bit dari kid ke kanan, jika diinginkan sebaliknya tuliskan kebalikannya, misalnya SFT 01005 01000. Aplikasi PLC CPM1A/CPM2A (Sysmac) Dasar.
Berikut ini akan diberikan contoh-contoh aplikasi PLC Omron seri CPM1 A atau CPM2A dasar berikut dengan pembahasannya. Aplikasi dasar yang dimaksudhkan disini adalah aplikasi-aplikasi contoh penggunaan beberapa fungsi yang dimiliki PLC CPM1 atau CPM2.
Sedangkan aplikasi nyata-nya akan dibahas pada pasal VI1.2. Diagram tangga atau aplikasi-aplikasi yang akan dibahas berikut ini sudah diuji-coba menggunakan seri CPM2A dan PLC Simulator v1.0.
ON OFF Dua Tombol atau Saklar (Interlock)

DESKRIPSI APLIKASI
PLC Omron akan digunakan untuk membuat sebuah aplikasi sangat scderhana, yaitu menghidupkan dan mematikan suatu alat dengan dua tombol, satu tombol picuan untuk START dan satu lagi untuk STOP. Rangkaian ini juga mengandung sifat interlockatau penguncian internal.

DIAGRAM TANGGA
Berkas: onoff . swp
KETERANGAN DIAGRAM TANGGA
Keluaran harus tetap ON hanya dengan sekali picuan dari tombol START (000.00), sehingga harus ada cara menyimpan status ON tersebut, yaitu dengan meng- OR-kan dengan status keluaran 010.00 itu sendiri (baris-1 dan 2), kemudiar. di-AND NOT-kan dengan tombol STOP, agar saat tombol STOP ON (walau hanya sesaat), akan memutuskan status keluaran maupun tombol START (baris-3 dan 4).
Untuk simulasinya digunakan berkas onoff .plc, buka dengan PLC Simulator versi 1.0, sebagaimana ditunjukkan pada gambar VI1.2. Lakukan percobaan dengan mengklik masukan 000.00 (START) kemudian amati keluaran (010.00) dan klik pada masukan 000.01 (STOP) dan amati keluarannya (010.00).
Penundaan ON Keluaran (ON Delay) DESKRIPSI


APLIKASI
PLC Omron akan digunakan untuk membuat sebuah aplikasi sangat sederhana lainnya, yaitu menghidupkan suatu alat setelah 5 detik tombol START ditekan dan akan menahan status keluaran tetap ON selama tombol START juga ON.
Untuk lebih jelasnya silahkan download PLC Simulatornya disini
Atau bila anda ingin simulasi ladder diagram dan contoh kasus, download disini
Semua file dalam bentuk WinRar, apabila dikomputer anda belum terinstall aplikasi WinRar silahkan download aplikasi WinRar disini
Selamat Mencoba......

Kekurangan PLC


Menyambung pada artikel sebelumnya, PLC tak hanya memiliki kelebihan. Sebagai hasil ciptaan manusia, tentunya PLC masih mempunyai kelemahan yang pada setiap generasinya dilakukan koreksi dan penyempurnaan. PLC pada perannya sebagai sistem kendali memiliki kelemahan yang cukup mendasar dan masih terus ditekan agar dapat diperoleh hasil yang mendekati kesempurnaan dan harapan yang ada, baik oleh vendor maupun oleh pengguna tentunya. Adapun kelemahan yang terdapat pada PLC dapat dijelaskan sebagai berikut:

1. Teknologi Masih Baru

Pengubahan sistem lama yang mempergunakan relay ke dalam konsep komputer PLC masih dianggap baru bagi sebagian orang. Tentunya hal ini menjadikan suatu tantangan besar bagi vendor PLC untuk meningkatkan pengenalan PLC ke dalam masyarakat umum maupun masyarakat teknologi (khususnya). Sementara ini, PLC banyak digunakan pada level industri saja, belum banyak merambah dunia yang lebih luas yaitu masyarakat. Meskipun tak terlalu mempengaruhi pasar industri, dengan mengenal sistem PLC orang akan dapat memiliki ketertarikan tersendiri untuk mengasah ilmu khususnya dalam bidang kendali dengan PLC dan membuat implementasinya dalam kehidupan sehari-hari.

2. Aplikasi Program PLC Buruk untuk Aplikasi Statis (Tetap)

Aplikasi-aplikasi PLC dapat mencakup beberapa fungsi sekaligus. Di lain sisi, beberapa aplikasi merupakan aplikasu dengan satu fungsi. Jarang sekali dilakukan perubahan bahkan tidak sama sekali atau statis. Hal tersebut membuat penggunaan PLC pada aplikasi dengan satu fungsi dinilai tidak efektif bahkan dapat menghabiskan biaya yang besar alias boros. Oleh sebab itu, penggunaan PLC pada aplikasi kecil tidak direkomendasikan oleh para ahli sistem kendali.

3. Operasi dengan Ragkaian yang Statis (Tetap)

Kinerja PLC menjadi tidak optimal dan efektif bahkan memboroskan biaya jika rangkaian pada sebuah operasi tidak dilakukan perubahan secara menyeluruh. Proses justru akan menjadi lambat dan membuat sistem terganggu, mempengaruhi pada hasil produksi dan keluaran.

4. PLC Rentan terhadap Perubahan Suhu dan Keadaan Lingkungan

Menjadikan sebuah pertimbangan ketika suatu perangkat yang akan dipergunakan memiliki kelemahan yang cukup mengkhawatirkan. Dalam suatu kalang proses industri, lingkungan akan memiliki perubahan suhu dan keadaan yang tidak dapat diduga, seringkali pemanasan yang sangat luar biasa terjadi, vibrasi yang berhubungan langsung dengan alat-alat elektronik di dalam PLC dan keadaan lingkungan maupun lapangan yang tidak dapat dipungkiri dapat menyebabkan debu yang mengotori perangkat PLC. Apabila hal-hal tersebut terjadi secara terus menerus, kinerja pada sistem PLC akan terganggu dan tidak dapat berjalan secara maksimal. Hal-hal tersebut banyak terjadi khususnya pada PLC generasi lama. Untuk PLC generasi baru kekeurangan ini mulai dapat dikendalikan dan dikurangi secara perlahan oleh vendor.

Kelebihan PLC

Penggunaan PLC di dalam kehidupan sehari-hari dan dalam industri sudah menjadi suatu kebutuhan, terutama untuk menggantikan sistem pengkabelan (wiring) yang masih dipergunakan pada sistem sebelumnya. Para pengguna mulai mengalihkan perhatian kepada PLC karena banyak kelebihan maupun keuntujngan yang ditawarkan oleh sistem yang dapat diprogram kembali ini. Adapun kelebihan maupun keuntungan tersebut antara lain:

1. Fleksibel

Dahulu, penggunaan perangkat sistem kendali membutuhkan banyak sistem pengolahan untuk masing-masing perangkat saja. Misalnya jika terdapat lima mesin maka dibutuhkan lima pengendali. Hal tersebut kini teratasi dengan menggunakan PLC. Cukup menggunakan sebuah PLC saja, banyak perangkat yang dapat dijalankan dengan programnya masing-masing. Sistem pengkabelan mulai dibenahi dan direduksi, semakin sedikit kabel yang digunakan dan ringkat/ sederhana. Tak perlu banyak ruang untuk menempatkannya.

2. Harganya Lebih Murah

Jika kita melihat kembali kepada sisi fleksibilitasnya tentunya sudah menjadi jawaban, dimana harga yang dikeluarkan jauh lebih sedikit (murah) jika dibandingkan dengan menggunakan sistem sebelumnya. Ketika sistem lama (relay) masih banyak menggunakan pengkabelan yang memakan banyak biaya, PLC menawarkan pengkabelan yang sederhana. Pengkabelan dapat dilakukan dengan jumlah yang banyak hanya dengan sebuah PLC, karena PLC mencakup relay, timer, counter, sequencer, dan beberapa fungsi yang dapat disesuaikan sesuai dengan kebutuhan.

3. Jumlah Kontak yang Banyak

Banyaknya kontak yang dimiliki sebuah PLC memberikan banyak kemudahan kepada pengguna. Tidak hanya dari segi finansial, tetapi juga sisi instalasi. Akan jauh lebih sederhana dan mudah jika dibandingkan dengan relay. Misalnya saja pada PLC-5, sebuah PLC keluaran Allen Bradley dengan jumlah kontak minimal 16-32 kontak, sementara itu relay menyediakan kontak sejumlah 4-8 kontak.

4. Dapat Melakukan Pemrograman, Pemrograman Ulang dan Koreksi dengan Mudah

PLC memiliki kelebihan dimana sistemnya dapat diprogram ulang secara cepat, proses produksi yang bercampurpun dapat diselesaikan dengan cepat. Bahkan ketika sistem sedang dijalankan. Bila salah satu sistem akan diubah atau dikoreksi, pengubahannya hanya dilakukan pada program yang terdapat di komputer, dengan waktu yang relatif singkat, setelah itu baru didownload ke PLC. Jika dengan relay, diperlukan pengubahan pada pengkabelannya, waktunya akan sangat lama dan beresiko tinggi sehingga harus mematikan sistem yang sedang berjalan.

5. Metode Pemrograman Mudah dan Bermacam-macam

Banyak metode untuk membuat suatu program pada PLC. Seperti pada penjelasan pemrograman pada PLC, disebutkan bahwa terdapat banyak metode yang ditawarkan untuk membuat suatu program pada PLC, di antaranya Ladder Logic Diagram, Mneumonic dan Function Block Diagram. Setiap programer dapat memiih metode sesuai dengan kebutuhan dan kemampuan.

6. Menyederhanakan Komponen-Komponen Sistem Kendali

Dalam PLC juga terdapat timer, counter, relay dan komponen lainnya, sehingga tak lagi membutuhkan komponen-komponen tersebut sebagai tambahan. Penggunaan relay membutuhkan counter, timer atau komponen lain untuk perangkat tambahan.

7. Keamanan Terjamin

Jika dilihat dari sisi keamanan, PLC tergolong perangkat yang luar biasa aman, dari segi dokumentasi, perangkat dan hal-hal mengenai program. PLC mempunyai sistem penguncian (lock), sehingga mengurangi dan dapat menghindarkan dari adanya pecurian dalam bentuk apapun.

8. Adanya Record Data dan Interface yang Memudahkan Pengguna

PLC dirancang untuk mampu menyimpan data-data yang diperlukan sesuai dengan kebutuhan dan program. Dimudahka dengan adanya interface yang dapat menampilkan proses, data maupun perbandingan ke dalam suatu perangkat komputer (PC) yang terhubung dengan PLC.

9. Sistem Terbaru dengan Wireless

Sistem terbaru dari PLC yaitu dengan menawarkan siste yang wireless dan dapat diakses oleh penggunanya dengan mudah dan jarak jauh. Tak harus masuk ke dalam kantor atau ruangan khusus.

10. Upgrade Sistem dan Komponen Lebih Cepat

Pengguna dapat Menambahkan komponen-komponen kendali setiap saat dan tanpa memerlukan tenaga juga biaya yang besar seperti pada pengendali konvensional (relay). Dimudahkan juga dengan komponen yang tersedia dalam bentuk paket modul, pemasangan dapat dilakukan dengan cepat dan mudah.

Dasar - Dasar Pemrograman PLC (Bagian 4)


Lanjutan dari bagian 3.............

F. Oscillator

Pada contoh sebelumnya, sedikit tidak didiskusikan bagaimana cara membuat operasi scan atau pewaktu (timing). Kita selalu mengasumsikan bahwa setiap menjumpai kondisi coil yang ter-energize (mendapat power) berarti sistem telah bekerja. Padahal kita harus mengetahui prosedur yang digunakan oleh controller dalam menyelesaikan ladder logic diagram. Sebagai contoh untuk mengetahui proses scanning dapat memberi manfaat ke kita sebagai programmer, mari kita kembangkan pembuatan oscilator. Dalam program PLC, oscilator adalah coil yang dapat di nyalakan dan dimatikan ( ON – OFF ) secara bergantian pada setiap periode scan. Oscilator dapat digunakan untuk mengendalikan sesuatu seperti fungsi mathematic, fungsi manipulasi data, yang dikontrol dengan transitional contact. Transitional contact adalah perpindahan contact dari close ke open atau dari open ke close. Sebagai contoh fungsi mathematic pada beberapa controller yang hanya melakukan proses yang ditugaskan padanya pada sekali scan ketika control logic di switch dari open ke close. Sepanjang control logic hanya close atau open saja, maka fungsi tidak akan dijalankan. Untuk meng-enable fungsi supaya terjadi dan berkelanjutan maka transitional contact ini harus diletakkan dalam control logic. Hal ini akan megakibatkan fungsi akan bekerja pada setiap scan karena transitional contact dari oscilator akan selalu switch dari open ke close pada setiap siklus scan.

Contact dan coil mempunyai nama yang sama, oleh karena itu jika coil ter-energize maka contact akan open dan sebaliknya jika coil de-energize maka contact akan close. Begitulah fungsi dari konfigurasi ini sebagai penyedia transitional contact.

Sesuatu yang pertama kali dilaksankan oleh controller dalam beroperasi adalah Update I/O, dalam hal ini pada ladder diagram Update I/O tidak ada karena tidak ada contact maupun coil yang dapat diakses dari luar PLC (tidak ada untuk input maupun output). Setelah Update I/O controller berpindah ke control logic pada rung pertama, dalam kasus ini adalah N/C contact CR1. Control Logic akan diselesaikan jika coil yang berhubungan dengan rung tersebut ter-energize atau de-energize. Jika controller mulai beroperasi semua coil dalam kondisi de-energize. Hal ini mengakibatkan N/C contact CR1 menjadi closed, selama N/C contact CR1 dalam keadaan closed, coil CR1 akan ter-energize. Karena dalam ladder hanya terdapat sebuah rung saja, maka setelah rung ini selesai dikerjakan selanjutnya controller akan berpindah untuk melaksanakan Update I/O yang lain. Setelah selesai Update, controller akan berpindah lagi ke rung yang pertama (hanya ada satu rung saja) dan kemudian menyelesaikannya. Lagi, disini ada N/C contact CR1, bagaimanapun, sekarang coil CR1 ter-energize akibat scan sebelumnya sehingga akan mengakibatkan N/C contact CR1 akan open. Hal ini akan mengakibatkan controller melakukan de-energize terhadap coil CR1. Setelah penyelesaian ladder diagram ini selesai dikerjakan, controller akan melaksanakan Update I/O yang lain. Setelah Update I/O ini akan kembali lagi untuk menyelesaikan lagi ladder logic pada rung yang pertama dan hasilnya akan mengindikasikan bahwa N/C contact CR1 dalam scan ini akan close karena coil CR1 terjadi de-energized pada scan sebelumnya. Selama N/C contact keadannya close akan mengaikibatkan coil CR1 ter-energized. Hal ini akan terus terjadi bergantian …ON-OFF-ON-OFF-ON… berurutan selamanya selama controller beroperasi. Coil akan ON untuk satu scan dan kemudian akan OFF untuk scan berikutnya. Tak peduli berapa banyak jumlah rung dalam ladder, untuk setiap scan coil CR1 secara berurutan ON dalam satu scan, OFF dalam satu scan, ON dalam satu scan dan seterusnya. Fungsi ini hanya akan terjadi pada saat perpindahan contact (contact transition) OFF-to-ON. Transisi berikutnya akan terjadi pada setiap scan yang lain. Ini adalah salah satu contoh metoda untuk membuat transitional contact.

Kita sekarang menambahkan kontak tambahan pada rung oscilator dengan sebuah contact gate untuk oscilator seperti gambar dibawah. Kontak tambahan didalam rung adalah N/O IN1 contact. Jika IN1 adalah OFF pada saat Update I/O, untuk scan ini N/O IN1 akan open dan begitu pula sebaliknya. Ini menyajikan ke kita tentang metode mengendalikan operasi coil CR1. jika kita menginginkan CR1 untuk menyediakan transitional (oscilating) contact, kita harus mengaktifkan IN1 ( 1 ), dan bila kita menginginkan CR1 tidak aktif maka IN1 harus di OFF kan ( 0 ).

Contact Logic pada gambar diatas terdiri dari tiga contact, dua N/O dan satu N/C. N/O contact IN1 didefinisikan sebagai ON switch untuk rangkaian ini dan N/C contact IN2 digunakan sebagai OFF switch. Ketika IN1 di aktifkan maka N/O contact IN1 akan close dan IN2 masih belum aktif sehingga N/C contact IN2 masih close sehingga coil CR1 akan ter-energize. Setelah CR1 ter-energize, jika IN1 dimatikan (N/O contact IN1 adalah open) coil CR1 akan tetap ter-energize untuk scan berikutnya karena N/O contact CR1 akan close. Coil CR1 akan tetap ter-energize sampai akhirnya N/C contact IN2 open dengan cara mengaktifkan IN2 ON. Jika IN2 ON maka CR1 akan de-energize karena N/C contact IN2 open. Jika kemudian IN2 OFF lagi coil CR1 akan tetap de-energize karena solusi untuk contact logic ini akan “False” selama N/O contact IN1 dan N/O contact CR1 keduanya open. N/O contact CR1 disini disebut sebagai holding contact. Oleh karena itu operasi dari rung logic ini adalah sebagai berikut : jika switch ON (IN1) ditekan sebentar, coil CR1 akan ter-energize dan tetap akan ter-energize sampai switch OFF (IN2) ditekan sebentar.

H. Always – ON and Always – OFF Contact

Ketika program dikembangkan, ada kalanya suatu kontak diinginkan untuk selalu ON. Pada PLC keluaran terbaru pada umumnya suatu coil bisa diset untuk keperluan ini. Bagaimanapun pada beberapa kejadian programmer harus menggunakan contact ini didalam ladder diagram. Untuk kejadian, seperti contact akan digunakan untuk level-triggered operasi aritmatik yang akan dilaksanakan pada setiap scan. Kebanyakan PLC membutuhkan minimal satu contact pada setiap rung. Untuk memenuhi kebutuhan ini dan harus selalu mempunyai logika benar, suatu contact harus diletakkan dalam suatu rung yang selalu berlogika berlogika benar. Ada dua cara untuk membuat contact ini:

Membuat coil yang selalu de-energized dan menggunakan N/C contact dari coil tersebut.

Membuat coil yang selalu ter-energized dan menggunakan N/O contact dari coil tersebut.

Meletakkan rung ini di bagian atas program akan mengijinkan programmmer untuk menggunakan N/C contact untuk kesuluruhan ladder kapan saja sepanjang contact diinginkan untuk selalu ON. Coil CR1 akan selalu de-energized karena N/O contact CR1 AND N/C contact CR1 tidak akan pernah bernilai benar (false).

Penyelesaian logika untuk rung ini adalah akan selalu bernilai benar karena N/C contact CR1 OR N/O contact CR1 selalu bernilai benar. Hal ini akan menyebabkan coil CR1 selalu ter-energize. Rung ini harus selalu diletakkan pada setiap awal ladder untuk menyediakan coil yang selalu ter-energize pada scan pertama.

Dasar - Dasar Pemrograman PLC (Bagian 3)


Lanjutan dari Bagian 2


B. Example Problem – Lighting Control

Akan dibuat suatu sistem lighting control dengan 4 buah switch, SWITCH1, SWITCH2, SWITCH3, SWITCH4. Switch ini akan mengontrol lampu dalam ruangan berdasarkan ketentuan sebagai berikut:

Tiga switch ( SWITCH1, SWITCH2, SWITCH3) jika dinyalakan ( = ON = 1 ) salah satu dapat menyalakan lampu, switch tersebut juga bisa digunakan untuk mematikan lampu dengan mematikan ( = OFF = 1 ) salah satu switch tersebut.

Switch ke 4 SWITCH4 adalah master control switch. Jika switch ini pada posisi ON lampu akan mati, dan ketiga switch lainnya tidak akan bisa memberikan efek kontrol ke lampu.

Permasalahan :
  • Tentukan wiring diagram koneksi dengan kontroller ( PLC Wiring Diagram )
  • Tentukan input dan output
  • Tentukan ladder diagram yang memenuhi ketentuan diatas.

Penyelesaian :

Tugas pertama yaitu menggambar PLC Wiring Diagram, untuk mengerjakan ini hubungkan semua switch ke input dan lighting ke output, nomer input dan output berhubungan dengan nomer koneksi terminal.

Keempat switch ditunjukkan dengan normally open selector switch, dan output dihubungkan dengan relay coil CR1. digunakan relay CR1 untuk mengoperasikan lampu karena pada umumnya arus yang digunakan untuk menyalakan lampu ruangan lebih besar ketimbang arus keluaran PLC. Mencoba berusaha mengoperasikan lampu ruangan secara langsung dengan output PLC hampir bisa dipastikan akan merusak PLC.

Untuk konfigurasi ini, masing – masing input dan output didefinisikan sebagai berikut

INPUT IN1 = SWITCH1

INPUT IN2 = SWITCH2

INPUT IN3 = SWITCH3

INPUT IN4 = SWITCH4 (Master Control Relay)

OUTPUT OUT1 = Light control relay coil CR1

Program ini mensyaratkan jika SWITC4 ON, Lampu harus mati ( = OFF ), untuk melakukan ini dibutuhkan N/C SWITC4, dan jika salah satu SWITCH1 atau SWITCH2 atau SWITCH3 adalah ON maka lampu akan nyala ( = ON = 1 ).

Sebagai catatan Normally Close Contact untuk IN4 merepresentasikan sebagai pembalik dari keadaan yang sebenarnya. SWITCH4 didefinisikan sebagai IN4, ingat SWITCH4 harus dalam kondisi OFF agar ketiga Switch yang lain dapat melakukan kontrol terhadap lampu.

C. Internal Relay

Internal Relay adalah general purpose relay yang ada didalam PLC yang tidak dapat diakses secara langsung untuk digunakan sebagai input maupun output. Seperti yang terdapat pada program component, internal relay adalah relay semu, yang merupakan bit digital yang disimpan pada internal image register. Dari sudut pandang pemrograman, semua internal relay mempunyai satu coil, dan mempunyai sebanyak N/O atau N/C contact sesuai yang diinginkan programmer. Semua PLC mempunyai internal relay, akan tetapi skema penomeran dan jumlah maksimum yang diperbolehkan untuk internal relay tergantung dari merk dan model. Oleh karena itu programmer harus mengacu pada technical manual untuk masing – masing PLC untuk menentukan bagaimana internal relay mereferensi dalam suatu program dan jumlah maksimum yang tersedia. Internal Relay adalah tool pemrograman yang sangat berharga, internal relay memberi keleluasaan pada programmer untuk melaksanakan operasi internal lebih rumit tanpa memerlukan penggunaan biaya mahal untuk beberapa output relay. Dalam contoh pemrograman internal relay dinyatakan dengan “CR” yang diikuti dengan nomor urut (e.g., CR1, CR2, etc).

D. Disagreement Circuit

Adakalanya suatu program diperlukan untuk menghasilkan output ketika dua signal “disagree” (sebuah signal berlogika 1 dan yang lain berlogika 0). Sebagai contoh, asumsikan kita mempunyai dua signal A dan B, kita menginginkan sinyal ketiga C sebagai hasil untuk kondisi A = 0, B = 1, atau A = 1, B = 0. Hal ini sangat familiar sekali kita kenal dalam logika digital sebagai gerbang exclusive OR dengan formulasi  . Hal ini dapat juga diimplementasikan dalam ladder logic, asumsikan kita mempunyai dua signal input IN1 dan IN2, dan hasilnya adl OUT1

Untuk program ini OUT1 akan OFF (berlogika 0) ketika IN1 dan IN2 mempunyai nilai yang sama, dan OUT1 akan ON (berlogikan 1) jika IN1 dan IN2 mempunyai nilai yang berbeda.

E. Majority Circuit

Majority Circuit adalah keadaan dimana PLC harus membuat keputusan yang berdasar pada hasil mayoritas masukan. Sebagai contoh, asumsikan PLC memonitor 5 tanki berisi cairan, dan PLC harus memberikan warning kepada operator ketika 3 diantara tanki tersebut kosong. Dengan menggunakan koefisien binomial ada sepuluh kombinasi kemungkinan dari tiga tanki yang kosong. Kemungkinan yang lain juga bisa terjadi untuk kombinasi empat tanki yang kosong dan lima tanki yang kosong, tetapi kita akan melihat kasus ini yang secara otomatis dari empat tanki dan lima tanki kosong akan dimasukkan ketika kita mendesain sistem tiga tanki kosong.

Adalah sangat penting dalam mendesain majority circuit untuk mendesain sistem voting terbanyak mayoritas yang akan diterima. Sebagai contoh asumsikan lima tanki mempunyai label A, B, C, D dan E, dan ketika input dari tanki adalah ON ini mengindikasikan bahwa tanki adalah kosong. Sebuah kombinasi tiga tanki kosong adalah tanki A, B, C, sedangkan D, E tidak kosong. Jika diekspresikan dalam fungsi boolean akan menjadi  . Bagaimanapun fungsi ini tidak akan bernilai benar jika A, B, C, dan D bernilai ON ( = 1 ), maupun juga semua input bernilai ON. Oleh karena itu akan diringkas kedalam ekspresi ABC yang tetap bisa mengcover kondisi  . Hal ini bisa mengcover semua kondisi dari tiga tanki yang kosong. Dan setiap ekspresi yang ditulis hanya menggunakan tiga input yang bisa mengcover lima kombinasi dari empat tanki yang kosong dan satu kombinasi untuk lima tanki yang kosong.

Untuk mencari kemungkinan kombinasi tiga tanki yang kosong dari lima tanki, akan dimulai dengan menyusun tabel bilangan biner dari kemungkinan 5 bit nomer. Dimulai dengan 00000 dan diakhiri dengan 11111. ditambahkan lagi satu kolom disebelah kanan yang merupakan kolom yang menunjukkan jumlah tanki yang kosong (1)

Dengan mereferensi ke tabel, temukan setiap baris yang mempunyai jumlah tanki kosong sebanyak tiga, untuk setiap baris ini kita temukan sebanyak sepuluh kombinasi dari tiga tanki yang kosong, yaitu : CDE, BDE, BCE, BCD, ADE, ACE, ACD, ABE, ABD, dan ABC.

Ketika menulis program untuk masalah ini kita dapat menghemat jumlah relay contact yang akan digunakan, karena kita tahu bahwa penyederhanaan dari struktur relay yang kompleks ini akan disimpan dalam memory PLC. Tetapai bagaimanapun juga bila penyederhanaan ini menjadikan program sulit untuk dibaca dan dimengerti oleh programmer lain, maka program ini boleh untuk tidak disederhanakan. Kita akan menyederhanakan dengan beberapa faktor sehingga program ladder diagram ini menjadi mudah untuk dimengerti dan dibaca