Mengenal PLC Siemens
Mengenal PLC Siemens
Programmable logic controller (PLC) adalah suatu system control yang terdiri dari
peralatan elektronik yang digunakan untuk mengontrol proses tertentu (baca artikel
sebelumnya disini). PLC merupakan bagian system control yang terhubung dengan
komponen control seperti switch, solenoid, dan sensor-sensor lainnya. PLC yang
merupakan bagian control system terhubung langsung dengan proses control yang
dilakukan sesuai dengan program yang ada pada memori. PLC akan menerima data
sinyal masukan, memprosesnya dan menghasilkan keluaran sebagai data
keluarannya.
AS-Interface
KNX (EN 50090, ANSI EIA 776)
Point-to-Point Connection (PPI), dengan special protocol RK 512, 3964(R), dan
ASCII
SIMATIC S7-200 TM
Berikut ini adalah feature yang dimiliki oleh S7-200 antara lain adalah sebagai berikut:
Onboard CPU memory hingga 8 KB dan telah terintegrasi 8-40 I/O
Memiliki area address I/O sampai maksimal 128/120 digital dan 30/15 analog
Tersedia CPU dengan versi supply tegangan 24VDC atau 120VAc-230 VAC
Dapat diprogram dengan menggunakan bahasa pemrograman PLC seperti LAD,
FBD, dan STL.
Dapat di ekspansi sampai 7 Expansion Module (EM) tergantung pada CPU-nya
Expansion Modules(EM):
o
o
o
o
o
o
o
o
o
Status indicators (LEDs): LED yang bisa menunjukkan PLC dalam keadaan
internal CPU fault (SF, LED nyala merah), berada pada mode run (RUN, LED nyala
warna hijau), atau PLC berada pada mode stop (STOP, LED nyala warna kuning).
Memory Card: slot memory card, sebuah memory card dapat menyimpan
program tanpa membutuhkan baterai.
PPI Connection: digunakan untuk menghubungkan device programming, teks
display atau CPU yang lain.
SIMATIC S7-300 TM
Berikut ini adalah feature yang dimiliki yang dimiliki oleh S7-300 antara lain adalah
sebagai berikut:
Memory, memiliki main memory 1400KB (CPU319), Micro Memory Card
8MB,dan backup data dan program dapat dilakukanmelaui MMC.
Dapat diekspand sampai 32 modul
Memiliki area address I/O hingga 8192 bytes
Language programming, KOP(LD), FUP (FBD), AWL (IL), S7-Graph (SFC), S7SCL (ST) S7-HiGraph, dan CFC
Comunication
MPI
PtP via CP
AS-Interface via CP
Profibus via CP
Profinet via CP
Industrial Ethernet
Berikut ini adalah penjelasan dari masing-masing block diatas:
Signal Module (SM) :
o
o
o
o
o
o
24 VDC
120/230 VAC
Digital Output Modules:
24 DC
Relay
Analog Input Modules:
Tegangan
Arus
Resistant
Thermocouple
Analog Output Modules:
Tegangan
Arus
Interface Module (IM), IM 360/IM361 dan IM365 memungkinkan untuk membuat
konfigurasi bertingkat. Bus dari interface module akan membentuk loop antara tingkat
yang satu dengan tingkat berikutnya.
Dummy Module (DM), menyediakan slot untuk signal module yang mana
parameternya belum pernah ditetapkan, atau bias juga digunakan untuk menyediakan
slot untuk instalasi interface module.
Function Module (FM), memainkan fungsi special seperti counting, posisioning,
dan close-loop control.
Communication Processor (CP), menyediakan fasilitas jaringan seperti PPI
connection, profibus, dan industrial Ethernet.
SIMATIC S7-400 TM
Berikut ini adalah feature yang dimiliki oleh Simatic S7-400 antara lain :
Memory, memiliki main memory 30MB (CPU 417), memory card 64MB, backup
data atau program oleh baterai backup atau Flash EPROM
Memiliki area address I/O hingga 16384 bytes
Language programming, KOP(LD), FUP (FBD), AWL (IL), S7-Graph (SFC), S7SCL (ST) S7-HiGraph, dan CFC
Comunication
MPI
PtP via CP
AS-Interface via CP
Profibus via CP
Profinet via CP
Industrial Ethernet
o
o
o
o
24 VDC
120/230 VAC
Digital Output Modules:
24 DC
Relay
Analog Input Modules:
Tegangan
Arus
Resistant
Thermocouple
Analog Output Modules:
Tegangan
Arus
Interface Module (IM), IM 360/IM361 dan IM365 memungkinkan untuk membuat
konfigurasi bertingkat. Bus dari interface module akan membentuk loop antara tingkat
yang satu dengan tingkat berikutnya. Interface module menyediakan beberapa koneksi
antara berbagai variasi rack, antara lain:
UR1 (Universal Rack), yang dapat dikoneksikan sampai 18 modul
UR2 (Universal Rack), yang dapat dikoneksikan sampai 9 modul
ER1 (Expansion Rack), yang dapat dikoneksikan sampai 18 modul
ER2 (Expansion Rack), yang dapat dikoneksikan sampai 9 modul
o
o
o
o
Dummy Module (DM), menyediakan slot untuk signal module yang mana
parameternya belum pernah ditetapkan, atau bias juga digunakan untuk menyediakan
slot untuk instalasi interface module.
Function Module (FM), memainkan fungsi special seperti counting, posisioning,
dan close-loop control.
Communication Processor (CP), menyediakan fasilitas jaringan seperti PPI
connection, profibus, dan industrial Ethernet.
Programmable logic controller menyediakan berbagai macam type block yang mana
user program berhubungan dengan data yang dapat disimpan. Tergantung pada
keperluan proses, program dapat disusun didalam block-block yang berbeda. Berikut ini
adalah type dari program block:
Organization Block (OB) adalah bentuk interface diantara operating system dan
user program. Seluruh program dapat disimpan didalam OB1 yang secara siklis dikenal
oleh operating system (program linear) atau program dapat dipisah dan disimpan dalam
beberapa block (program terstruktur). Itulah sebabnya organization block dikenal
sebagai operating system.
Function (FC) berisi actual user program yang fungsional. Itulah yang
memungkinkan untuk membuat program fungsi yang kompleks sehingga dengan begitu
dapat ditugaskan oleh parameter. Sebagai hasilnya, fungsi juga cocok untuk
pemrograman terulang, pemrograman fungsional yang komplek seperti kalkulasi.
Sistem function (SFC) adalah integrasi fungsi parameter-assignable didalam
operating system CPU.
Function block (FB).Secara mendasar function block (FB) menawarkan
kemampuan yang sama seperti fungsi. Sebagai tambahan, function block mempunyai
area memory tersendiri dalam bentuk data block. Function block cocok untuk
pemrograman terulang dan pemrograman fungsional yang komplek seperti closed-loop
control.
System function block (SFB) adalah integrasi fungsi parameter-assignable
didalam operating system CPU. Fungsi dan kemampuannya telah ditetapkan.
Data block (DB) adalah area data dari user program dimana data user diatur
secara terstruktur.
Ada beberapa pilihan bahasa pemrograman yang dapat digunakan didalam STEP 7
yaitu:
Ladder Diagram (LAD), yaitu bahasa pemrograman yang mirip dengan diagram
rangkaian. Bahasa pemrograman ini sering menjadi daya tarik bagi pemrogram yang
mempunyai background sebagai drafting dan electrical, karena menggunakan symbolsymbol seperti coil, contact,dll.
Statment List (STL), yang terdiri dari kumpulan statment instruksi STEP 7.
Bahasa pemrograman ini lebih disukai oleh programer yang familiar menggunakan
berbagai bahasa pemrograman.
Function Block Diagram (FBD), yaitu bahasa pemrograman yang menggunakan
box-box fungsi. FBD memberi keuntungan dapat digunakan oleh non-programmer
karena setiap box-box telah mengindikasikan fungsi tertentu seperti opersai fungsi
logika.
Berikut ini akan dibahas struktur pemrograman PLC menggunakan ladder diagram
(LAD).
Bit Logic Instructions
Instruksi bit logic bekerja dalam dua digit (0 dan 1), yang merupakan bentuk sistem
bilangan biner. Bit 1 mengindikasikan keadaan aktif (energize) dan bit 0
mengindikasikan
keadaan
tidak
aktif
(deenergize).
Instruksi
bit
logic
menginterpretasikan keadaan signal 1 dan 0 dan kombinasinya menurut aljabar
boolean. Hasil kombinasinya juga menghasilkan 1 dan 0 yang disebut RLO (result of
logic operation). Operasi logic yang ditriger oleh bit logic memainkan berbagai fungsi.
Ada beberapa intruksi bit logic yang memainkan fungsi-fungsi berikut ini:
| |Normally Open Contact (Address)
Normally Open Contact ditutup ketika nilai bit yang tersimpan pada alamat yang telah
ditetapkan oleh <address> sama dengan 1. Ketika contact ditutup, aliran daya
mengalir tepat melewati contact dan RLO bernilai 1. Sebaliknya, ketika keadaan signal
yang dispesifikasikan oleh <address> adalah 0, contact terbuka. Ketika contact
terbuka, daya tidak mengalir melewati contact dan RLO bernilai 0. Ketika dirangkai
seri, NOC dihubungkan ke bit RLO oleh logika AND. Sebaliknya bila dirangkai parallel,
NOC dihubungkan ke bit RLO oleh logika OR.
Normally Closed Contact ditutup ketika nilai bit yang tersimpan pada alamat yang telah
ditetapkan oleh <address> sama dengan 0. Ketika contact ditutup, aliran daya
mengalir tepat melewati contact dan RLO bernilai 1. Sebaliknya, ketika keadaan signal
yang dispesifikasikan oleh <address> adalah 1, contact terbuka. Ketika contact
terbuka, daya tidak mengalir melewati contact dan RLO bernilai 0. Ketika dirangkai
seri, NCC dihubungkan ke bit RLO oleh logika AND. Sebaliknya bila dirankai parallel,
NCC dihubungkan ke bit RLO oleh logika OR.
XOR (bit exclusive OR) membuat RLO bernilai 1 jika keadaan signal jika 2 bit yang
ditetapkan mempunyai nilai yang
berbeda.
|NOT|Invert Power flow
Invert power flow yang menegasi bit RLO. Bila keadaan signal input adalah 1 maka
keadaan signal output adalah 0, begitu juga sebaliknya jika keadaan signal input
adalah 0 maka keadaan signal output adalah 1.
( ) Output Coil
Output coil bekerja seperti coil dalam diagram logic relay. Jika ada aliran daya menuju
coil (RLO = 1), bit lokasi <address> diset 1. Jika tidak ada aliran daya ke coil (RLO =
0), bit lokasi <address> diset 0. Output coil hanya dapat diletakkan pada ladder
sebelah kanan paling akhir. Multiple element output dimungkingkan (maksimum 16
element output). MCR (Master Control Relay) dependency diaktifkan hanya jika output
coil ditempatkan disebelah zona MCR aktif. Sampai aktifnya zona MCR , MCR ONdan
ada aliran daya ke output coil, dan bit alamat diset status aktif dari power flow. Jika
MCR off, logic 0 ditulis ke alamat yang telah dispesifikasikan tidak peduli apapun
status aliran daya.
( # )Midline Output
Midline output adalah sebuah penugasan intermediate element yang mana menyimpan
bit RLO (status power flow) ke alamat yang ditetapkan <address>. Element midline
output menyimpan hasil operasi logika dari element percabangan terdahulu. Bila
dirangkai seri dengan contact, midline output dimasukkan seperti contact. Element
midline output mungkin tidak pernah dihubungkan dengan ke power rail atau langsung
setelah koneksi percabangan atau pada akhir setelah percabangan. Negasi midline
output dapat dibuat menggunakan invert power flow.
Reset coil hanya dieksekusi jika RLO (aliran daya ke coil) dari instruksi terdahulu
bernilai 1. Jika aliran daya ke coil (RLO = 1), alamat yang telah ditetapkan
<address> dari element direset ke 0. Jika tidak ada aliran daya ke coil (RLO =0)
tidak mempunyai effect dan keadaan element tidak diubah. <address> mungkin juga
menjadi timer/counter yang mana nilai timer/counternya direset 0.
Set coil hanya dieksekusi jika RLO (aliran daya ke coil) dari instruksi terdahulu bernilai
1. Jika RLO bernilai 1, <address> dari element diset 1. RLO tidak mempunyai
effect apapun jika bernilai 0 dan keadaan <address> dari element tidak diubah.
RS flip flop direset jika keadaan signal bernilai 1 pada R input, dan bernilai 0 pada S
input. Sebaliknya, jika keadaan signal bernilai 0 pada R input dan keadaan signal
bernilai 1 pada S input maka flip flop akan diset. Jika RLO pada kedua input bernilai
1, perintah pada kepentingan pertama. RS flip flop pertama mengeksekusi instruksi
reset kemudian instruksi set pada <address>, sehingga address ini tetap mengeset
untuk pengingat scanning program. Instruksi set dan reset hanya diekskusi ketika RLO
bernilai 1. Jika RLO bernilai 0 maka instruksi ini tidak mempunyai efect dan keadaan
signal <address> tidak diubah. MCR dependency diaktifkan hanya jika RS flip flop
ditempatkan disebelah zona aktif MCR. Didalam zona aktif MCR, Jika MCR on bit
<address> direset ke 0 atau diset ke1 sebagai penguraian diatasnya. Jika MCR off,
keadaan bit <address> tidak diubah bagaimana pun keadaan input.
SR flip flop diset jika keadaan signal bernilai 1 pada S input, dan bernilai 0 pada R
input. Sebaliknya, jika keadaan signal bernilai 0 pada S input dan keadaan signal
bernilai 1 pada R input maka flip flop akan diset. Jika RLO pada kedua input bernilai
1, perintah pada kepentingan pertama. SR flip flop pertama mengeksekusi instruksi
set kemudian instruksi reset pada <address>, sehingga address ini tetap mereset untuk
pengingat scanning program. Instruksi set dan reset hanya diekskusi ketika RLO
bernilai 1. Jika RLO bernilai 0 maka instruksi ini tidak mempunyai efect dan keadaan
signal <address> tidak diubah. MCR dependency diaktifkan hanya jika RS flip flop
ditempatkan disebelah zona aktif MCR. Didalam zona aktif MCR, Jika MCR on bit
<address> diset ke 1 atau direset ke0 sebagai penguraian diatasnya. Jika MCR off,
keadaan bit <address> tidak diubah bagaimana pun keadaan input.
Negative RLO edge detection mendeteksi perubahan signal dari 1 ke 0 pada bit
alamat <address> dan memperlihatkannya sebagai RLO= 1 setelah instruksi.
Keadaan signal sekarang pada RLO dibandingkan dengan keadaan signal dari bit
alamat <address>, bit edge memory. Jika keadaan signal dari bit alamat <address>
bernilai 1 dan RLO sebelum instruksi bernilai 0, maka RLO akan menjadi bernilai 1
setelah instruksi ini. RLO lebih dahulu disimpan kedalam bit alamat <address>.
Positive RLO edge detection mendeteksi perubahan signal dari 0 ke 1 pada bit
alamat <address> dan memperlihatkannya sebagai RLO= 1 setelah instruksi.
Keadaan signal sekarang pada RLO dibandingkan dengan keadaan signal dari bit
alamat <address>, bit edge memory. Jika keadaan signal dari bit alamat <address>
bernilai 1 dan RLO sebelum instruksi bernilai 1, maka RLO akan menjadi bernilai 1
setelah instruksi ini. RLO lebih dahulu disimpan kedalam bit alamat <address>.
Save RLO into BR Memory menyimpan kedalam bit BR (binary result) dari status word.
Pertama kali mengecheck bit/FC tidak direset. Untuk alasan ini, status dari bit BR
dimasukkan operasi logika AND pada network berikutnya. Instruksi save tidak
direkomendasikan untuk digunakan karena bit BR dapat dimodifikasi oleh beberapa
instruksi. Sebaiknya menggunakan instruksi save sebelum meninggalkan suatu block,
karena ENO output (=BR bit) kemudian diset ke nilai bit RLO dan kemudian mengecek
error pada block.
dalam <address2>. Jika keadaan RLO sekarang bernilai 1 dan keadaan sebelumnya
adalah 0, bit RLO akan menjadi bernilai 1 setelah instruksi ini.
Comparison Instructions
CMP?I Compare Integer
Compare integer dapat digunakan seperti sebuah contact biasa. Dia dapat dilokasikan
di posisi mana saja dimana contact dapat diletakkan. IN1 dan IN2 dibandingkan
menurut type perbandingan (==,<>,<,>,<=,>=) yang dipilih. Jika perbandingan benar,
RLO dari fungsi bernilai 1. Jika box dirangkai seri, maka box dihubungkan ke RLO
oleh operasi logika AND, sedangkan jika box dirangkai paralel maka box dihubungkan
ke RLO oleh operasi logika OR.
Compare double integer dapat digunakan seperti sebuah contact biasa. Dia dapat
dilokasikan di posisi mana saja dimana contact dapat diletakkan. IN1 dan IN2
dibandingkan menurut type perbandingan (==,<>,<,>,<=,>=) yang dipilih. Jika
perbandingan benar, RLO dari fungsi bernilai 1. Jika box dirangkai seri, maka box
dihubungkan ke RLO oleh operasi logika AND, sedangkan jika box dirangkai paralel
maka box dihubungkan ke RLO oleh operasi logika
OR.
CMP?R Compare Real
Compare real dapat digunakan seperti sebuah contact biasa. Dia dapat dilokasikan di
posisi mana saja dimana contact dapat diletakkan. IN1 dan IN2 dibandingkan menurut
type perbandingan (==,<>,<,>,<=,>=) yang dipilih. Jika perbandingan benar, RLO dari
fungsi bernilai 1. Jika box dirangkai seri, maka box dihubungkan ke RLO oleh operasi
logika AND, sedangkan jika box dirangkai paralel maka box dihubungkan ke RLO oleh
BCD_DI (mengkonversi system bilangan BCD ke double integer) membaca isi dari
parameter IN sebagai bilangan BCD 7 digit (+/- 9999999) dan mengkonversikannya
kedalam bilangan double integer (32 bit). Hasilnya dikeluarkan melalui parameter OUT.
ENO selalu mempunyai keadaan signal yang sama seperti EN.
DI_BCD (mengkonversi system bilangan double integer ke BCD) membaca isi dari
parameter IN sebagai bilangan double integer 32 bit dan mengkonversikannya ke
dalam bilangan BCD 7 digit (+/- 9999999). Hasilnya dikeluarkan melalui parameter
OUT. Jika terjadi overflow, ENO akan bernilai 0.
DI_REAL (mengkonversi system bilangan double integer ke floating point) membaca isi
dari parameter IN sebagai bilangan double integer dan mengkonversikannya kedalam
system bilangan real. Hasilnya dikeluarkan melalui parameter OUT. ENO selalu
mempunyai keadaan signal yang seperti EN.
INV_DI (Ones complement double integer) membaca isi dari parameter IN dan
mengoperasikannya sebagai fungsi Boolean XOR dengan mask hexadecimal
W#16#FFFFFFFF. Instruksi ini mengubah setiap bit kedalam keadaan sebaliknya. ENO
selalu mempunyai keadaan signal yang sama seperti EN.
NEG_DI (Twos Complement Double Integer) membaca isi dari parameter IN dan
mengoperasikannya sebagai instruksi twos complement. Instruksi twos complement
sama dengan perkalian oleh -1 dan mengubah tandanya (contohnya bilangan positif
menjadi bilangan negative). ENO selalu mempunyai keadaan signal seperti EN dengan
pengecualian jika EN=1 dan terjadi overflow, maka keadaan signal ENO = 0.
NEG_R (negate floating point) membaca isi dari parameter IN dan mengubah tandanya.
Instruksinya sama dengan perkalian oleh (-1) dan mengubah tandanya misalnya dari
nilai positif menjadi nilai negative. ENO selalu mempunyai keadaan signal seperti EN.
ROUND (round to double integer) membaca isi dari parameter IN sebagai bilangan real
dan mengkonversikannya kedalam bilangan double integer 32 bit. Hasilnya dibulatkan
kedalam bilangan integer terdekat. Jika bilangan real berada diantara dua bilangan
integer, bilangan genap dikembalikan. Hasilnya dikeluarkan melalui parameter OUT.
Jika terjadi overflow, Eno akan bernilai 0.
TRUNC (truncate double integer) membaca isi dari parameter IN sebagai bilangan real
dan mengkonversikannya ke dalam bilangan double integer 32 bit. Hasilnya double
integer pembulatan ke nol dikeluarkan melalui parameter OUT. Jika terjadi overflow,
ENO akan bernilai 0.
CEIL Ceiling
CEIL (Ceiling) membaca isi dari parameter IN sebagai bialangan real dan
mengkonversikannya ke dalam bilangan double integer 32 bit. Hasilnya adalah bilangan
integer terendah yang mana lebih besar dari bilangan real (pembulatan ke + ). Jika
terjadi overflow, ENO akan bernilai 0.
FLOOR Floor
FLOOR (Floor) membaca isi dari parameter sebagai bilangan real dan
mengkonversikannya ke dalam double integer 32 bit. Hasilnya adalah komponen
bilangan real tertinggi yang mana lebih rendah dari bilangan real (pembulatan ke ).
Jika terjadi overflow, ENO akan bernilai 0.
Counter Instruction
Counter mempunyai area cadangan di dalam memory CPU. Untuk tiap address counter
mempunyai area memory satu word (16 bit). Set instruksi logika ladder mendukung
sampai 256 counter. Instruksi counter hanyalah fungsi yang mempunyai akses ke area
memory counter. Bit 0 sampai 9 dari word counter berisi nilai perhitungan dalam kode
biner.. Nilai perhitungan dipindahkan ke word counter ketika counter diset. Counter
memiliki nilai range perhitungan mulai dari 0 sampai 999. Berikut ini adalah berbagai
instruksi counter:
S_CUD Up-Down Counter
S_CUD (up-down counter) ditetapkan lebih dahulu nilainya oleh input PV jika ada
positive edge pada input S (keadaan input signal S berubah dari 0 ke 1). Jika input R
bernilai 1, counter direset dan perhitungan diset ke nol. Counter dinaikan satu nilainya
(CV bertambah 1) jika keadaan signal pada input CU berubah dari 0 ke 1 sampai
nilainya kurang dari 999. Counter nilainya diturunkan 1 (CV berkurang 1) jika ada
positive edge pada input CD (keadaan input signal CD berubah dari 0 ke 1) sampai
nilainya masih lebih besar dari nol. Jika kedua input count keduanya mengalami
positive edge, maka kedua intruksi (up and down counter) akan dieksekusi sehingga
nilai perhitungan tidak berubah (CV tetap). Keadaan signal output Q akan bernilai 1
jika perhitungan lebih besar dari nol dan akan bernilai 0 jika perhitungan sama dengan
nol.
S_CU Up Counter
S_CU (up counter) ditetapkan lebih dahulu nilainya oleh PV jika ada positive edge
(keadaan signal berubah dari 0 ke 1) pada input S. Counter direset jika input R
bernilai 1 dan CV diset ke nol. Counter dinaikan satu nilainya (CV bertambah 1) jika
keadaan signal input CU berubah dari 0 ke 1 sampai nilainya kurang dari 999.
Keadaan signal output Q akan bernilai 1 jika perhitungan lebih besar dari nol dan akan
bernilai 0 jika perhitungan sama dengan nol.
S_CD Down Counter
S_CD (down counter) ditetapkan lebih dahulu nilainya oleh PV jika ada positive edge
(keadaan signal berubah dari 0 ke 1) pada input S. Counter direset jika input R
bernilai 1 dan CV diset ke nol. Counter diturunkan satu nilainya (CV berkurang 1) jika
keadaan signal input CU berubah dari 0 ke 1 sampai nilainya masih lebih besar dari
0. Keadaan signal output Q akan bernilai 1 jika perhitungan lebih besar dari nol dan
akan bernilai 0 jika perhitungan sama dengan nol.
Set Counter Value mengeksekusi hanya jika ada positive edge pada RLO (RLO
berubah nilainya dari 0 ke 1). Pada saat itu, preset value (PV) mentransfer kedalam
specified counter.
(CU) Up Counter Coil
Up Counter Coil menaikkan satu nilai dari specified counter jika ada positive edge pada
RLO sampai nilai counter tidak lebih dari 999. Jikatidak ada positif edge pada RLO atau
nilai counter sudah mencapai nilai 999 maka nilai counter tidak akan berubah.
(CD) Down Counter Coil
Down Counter Coil menurunkan satu nilai dari specified counter jika ada positive edge
pada RLO sampai nilai counter masih lebih besar dari nol. Jikatidak ada positif edge
pada RLO atau nilai counter bernilai nol maka nilai counter tidak akan berubah.
Logic Control Instructions
Logic control logic dapat digunakan disemua block logika, baik organization block (OB),
function block (FB), maupun function (FC). Label adalah pengalamatan dari instruksi
jump. Label maksimum terdiri dari empat karakter, karakter pertama harus huruf
sedangkan karakter yang lainnya bisa huruf/angka. Label jump mengindikasikan tujuan
kemana program akan melompat. Berikut ini adalah beberapa logic control instruction:
(JMP) Unconditional Jump
(JMP) adalah fungsi seperti absolute jump ketika tidak ada element ladder lain antara
sebelah kiri power rail dan instruksi. Tujuan instruksi jump (label) juga harus exist untuk
setiap intruksi (JMP). Semua instruksi diantara instruksi jump dan label tidak akan
dieksekusi.
(JMP) Conditional Jump
(JMP) adalah fungsi sebagai conditional jump ketika RLO dari operasi logika
sebelumnya bernilai 1. Tujuan instruksi jump (label) juga harus exist untuk setiap
intruksi (JMP). Semua instruksi diantara instruksi jump dan label tidak akan
dieksekusi. Ketika conditional jump tidak dieksekusi, RLO berubah menjadi 1 setelah
instruksi jump.
(JMPN) Jump if Not
(JMPN) adalah fungsi jump yang mana akan dijalankan ketika RLO bernilai 0. Label
juga harus exist untuk setiap intruksi (JMPN). Semua instruksi diantara instruksi jump
dan label tidak akan dieksekusi. Ketika conditional jump tidak dieksekusi, RLO berubah
menjadi 1 setelah instruksi jump.
Integer Math Instructions
Instruksi bit matematika memakai bit status word CC1, CC0, OV, dan OS.
ADD_I Add Integer
ADD_I (Add Integer) diaktifkan oleh logika 1 pada Enable Input (EN). IN1 dan IN2
adalah masukan bilangan integer yang akan ditambahkan. Hasil dari operasi add
dikeluarkan melalui parameter out. Jika Range keluaran yang dihasilkan adalah
integer16 bit, maka bit OV dan OS akan bernilai 1 dan ENO bernilai 0.
SUB_I (Subtract Integer) diaktifkan jika pada Enable Input bernilai 1. IN1 dikurangi
dengan IN2 dan hasilnya ditempatkan pada parameter OUT. Jika hasilnya berada pada
range bilangan integer 16 bit, bit OV dan OS bernilai 1 dan ENO bernilai 0, sehingga
fungsi lain setelah box matematika ini yang dihubungkan dengan ENO tidak akan
dijalankan.
MUL_I (Multiply Integer) diaktifkan oleh logic 0 pada Enable Input (EN). IN1 dan IN2
dikalikan dan hasilnya ditempatkan pada parameter OUT. Jika hasilnya berada pada
range bilangan integer 16 bit, bit OV dan OS akan bernilai 1 dan ENO akan berlogika
0, sehingga fungsi lain setelah box matematika ini yang dihubungkan dengan ENO
tidak akan dijalankan.
DIV_I (Divide integer) diaktifkan oleh logic 0 pada Enable Input (EN). IN1 dibagi
dengan IN2 dan hasilnya ditempatkan pada parameter OUT. Jika hasilnya berada pada
range bilangan integer 16 bit, bit OV dan OS akan bernilai 1 dan ENO akan berlogika
0, sehingga fungsi lain setelah box matematika ini yang dihubungkan dengan ENO
tidak akan dijalankan.
ADD_DI (Add Double Integer) diaktifkan oleh logic 0 pada Enable Input (EN). IN1 dan
IN2 ditambahkan dan hasilnya ditempatkan pada parameter OUT. Jika hasilnya berada
pada range bilangan double integer 32 bit, bit OV dan OS akan bernilai 1 dan ENO
akan berlogika 0, sehingga fungsi lain setelah box matematika ini yang dihubungkan
dengan ENO tidak akan dijalankan.
SUB_DI (Subtract Double Integer) diaktifkan oleh logic 0 pada Enable Input (EN). IN1
dikurangi dengan IN2 dan hasilnya ditempatkan pada parameter OUT. Jika hasilnya
berada pada range bilangan double integer 32 bit, bit OV dan OS akan bernilai 1 dan
ENO akan berlogika 0, sehingga fungsi lain setelah box matematika ini yang
dihubungkan dengan ENO tidak akan dijalankan.
MUL_DI (Multiply Double Integer) diaktifkan oleh logic 0 pada Enable Input (EN). IN1
dan IN2 dikalikan dan hasilnya ditempatkan pada parameter OUT. Jika hasilnya berada
pada range bilangan double integer 32 bit, bit OV dan OS akan bernilai 1 dan ENO
akan berlogika 0, sehingga fungsi lain setelah box matematika ini yang dihubungkan
dengan ENO tidak akan dijalankan.
DIV_DI (Divide Double Integer) diaktifkan oleh logic 0 pada Enable Input (EN). IN1
dibagi dengan IN2 dan hasilnya ditempatkan pada parameter OUT. Jika hasilnya
berada pada range bilangan double integer 32 bit, bit OV dan OS akan bernilai 1 dan
ENO akan berlogika 0, sehingga fungsi lain setelah box matematika ini yang
dihubungkan dengan ENO tidak akan dijalankan.
MOD_DI (Return Fraction Double Integer) diaktifkan oleh logic 0 pada Enable Input
(EN). IN1 dibagi dengan IN2 dan sisa hasil baginya ditempatkan pada parameter OUT.
Jika hasilnya berada pada range bilangan double integer 32 bit, bit OV dan OS akan
bernilai 1 dan ENO akan berlogika 0, sehingga fungsi lain setelah box matematika ini
yang dihubungkan dengan ENO tidak akan dijalankan.
ADD_R (Add Real) diaktifkan oleh logic 0 pada Enable Input (EN). IN1 dan IN2
ditambahkan dan hasilnya ditempatkan pada parameter OUT. Jika hasilnya masih
berada pada range bilangan floating-point (overflow atau underflow), bit OV dan OS
akan bernilai 1 dan ENO akan berlogika 0, sehingga fungsi lain setelah box
matematika ini yang dihubungkan dengan ENO tidak akan dijalankan.
SUB_R Subtract Real
SUB_R (Subtract Real) diaktifkan oleh logic 0 pada Enable Input (EN). IN1 dikurangi
dengan IN2 dan hasilnya ditempatkan pada parameter OUT. Jika hasilnya masih
berada pada range bilangan floating-point (overflow atau underflow), bit OV dan OS
akan bernilai 1 dan ENO akan berlogika 0, sehingga fungsi lain setelah box
matematika ini yang dihubungkan dengan ENO tidak akan dijalankan.
MUL_R (Multiply Real) diaktifkan oleh logic 0 pada Enable Input (EN). IN1 dan IN2
dikalikan dan hasilnya ditempatkan pada parameter OUT. Jika hasilnya masih berada
pada range bilangan floating-point (overflow atau underflow), bit OV dan OS akan
bernilai 1 dan ENO akan berlogika 0, sehingga fungsi lain setelah box matematika ini
yang dihubungkan dengan ENO tidak akan dijalankan.
DIV_R Divide Real
DIV_R (Divide Real) diaktifkan oleh logic 0 pada Enable Input (EN). IN1 dibagi dengan
IN2 dan hasilnya ditempatkan pada parameter OUT. Jika hasilnya masih berada pada
range bilangan floating-point (overflow atau underflow), bit OV dan OS akan bernilai 1
dan ENO akan berlogika 0, sehingga fungsi lain setelah box matematika ini yang
dihubungkan dengan ENO tidak akan dijalankan.
ABS Establish the Absolute Value of Floating-point Number
ABS membangkitkan nilai absolute dari sistem bilangan floating-point yang dimasukkan,
kemudian hasilnya dikeluarkan pada parameter OUT.
SQR membangkitkan nilai kuadrat dari sistem bilangan floating point yang dimasukkan
dan hasilnya dikeluarkan melalui parameter OUT.
SQRT membangkitkan nilai akar kuadrat dari sistem bilangan floating point yang
dimasukkan dan hasil positif dari nilai akar kuadratnya dikeluarkan melalui parameter
OUT.
EXP Establish the Exponential Value
EXP membangkitkan nilai eksponential dari sistem bilangan floating point. Hasil
keluarannya ditempatkan pada parameter OUT.
LN Establish the Natural Logarithm
LN membangkitkan nilai logaritma natural dari sistem bilangan floating point. Hasil
keluarannya ditempatkan pada parameter OUT.
SIN membangkitkan nilai trigonometri sinus dari sistem bilangan floating point yang
merepresentasikan sudut dalam satuan radian. Hasil keluarannya ditempatkan pada
parameter OUT.
COS Establish the Cosine Value
COS membangkitkan nilai trigonometri cosinus dari sistem bilangan floating point yang
merepresentasikan sudut dalam satuan radian. Hasil keluarannya ditempatkan pada
parameter OUT.
TAN Establish the Tangent Value
SIN membangkitkan nilai trigonometri tangent dari sistem bilangan floating point yang
merepresentasikan sudut dalam satuan radian. Hasil keluarannya ditempatkan pada
parameter OUT.
ASIN Establish the Arc Sine Value
ASIN membangkitkan nilai Arc sinus dari sistem bilangan floating point yang rentangnya
telah didefinisikan antara -1 sampai 1. Hasil keluarannya merepresentasikan sudut
dalam radian dalam rentang -/2 sampai /2 (=3,14215.) dan ditempatkan pada
parameter OUT.
ACOS Establish the Arc Cosine Value
ACOS membangkitkan nilai Arc cosinus dari sistem bilangan floating point yang
rentangnya telah didefinisikan antara -1 sampai 1. Hasil keluarannya
merepresentasikan sudut dalam radian dalam rentang -/2 sampai /2 (=3,14215.)
dan ditempatkan pada parameter OUT.
ATAN Establish the Arc Tangent Value
ATAN membangkitkan nilai Arc tangent dari sistem bilangan floating point. Hasil
keluarannya merepresentasikan sudut dalam radian dalam rentang -/2 sampai /2
(=3,14215.) dan ditempatkan pada parameter OUT.
Move Instruction
Instruksi move diaktifkan oleh Enable Input (EN). Nilai sumber IN input dicopy ke alamat
yang telah ditetapkan pada parameter OUT. ENO mempunyai keadaan logika yang
sama seperti EN. MOVE hanya dapat mencopy object data BYTE, WORD, atau
DWORD. Type data seperti aray atau struktur harus dicopy dengan system function
BLKMOVE (SFC 20).
o
o
o
o
o
o
o
o
o
Instruksi ini digunakan untuk memanggil sebuah fungsi FC atau SFC yang belum
mempunyai parameter yang belum terlewatkan. Instruksi call hanya dijalankan ketika
RLO bernilai 1 pada coil. Jika coil dijalankan maka:
Alamat kembali dari calling block disimpan
Area local data sebelumnya diganti dengan area local data yang baru
Bit MA (bit MCR aktif) digeser ke B stack
Area local data baru yang digunakan untuk memanggil fungsi dibuat
Setelah proses diatas, program melanjutkan pemrosesan dalam pemanggilan FC atau
SFC.
Instruksi CALL_FB digunakan untuk memanggil function block (FB). Instruksi hanya
hanya dijalankan ketika input EN bernilai 1. Jika CALL_FB dijalankan maka:
Alamat kembali dari calling block disimpan
Memilih data untuk 2 data block sekarang (DB dan instance DB) disimpan
Area local data sebelumnya diganti dengan area local data yang baru
Bit MA (bit MCR aktif) digeser ke B stack
Area local data baru yang digunakan untuk memanggil fungsi block dibuat
Setelah proses diatas, pemrosesan program melanjutkan dalam pemanggilan function
block.
o
o
o
o
o
o
o
o
o
Instruksi CALL_FC digunakan untuk memanggil function (FC). Instruksi ini hanya
dijalankan ketika input EN bernilai 1. Jika CALL_FC dijalankan maka:
Alamat kembali dari calling block disimpan
Area local data sebelumnya diganti dengan area local data yang baru
Bit MA (bit MCR aktif) digeser ke B stack
Area local data baru yang digunakan untuk memanggil fungsi dibuat
Setelah proses diatas, pemrosesan program kemudian melanjutkan dalam pemanggilan
function. Ketika pemanggilan function, actual parameter harus diassign ke formal
parameter pada lokasi call.
Instruksi CALL_SFB digunakan untuk memanggil sistem function block (SFB). Instruksi
hanya hanya dijalankan ketika input EN bernilai 1. Jika CALL_SFB dijalankan maka:
Alamat kembali dari calling block disimpan
Memilih data untuk 2 data block sekarang (DB dan instance DB) disimpan
Area local data sebelumnya diganti dengan area local data yang baru
Bit MA (bit MCR aktif) digeser ke B stack
Area local data baru yang digunakan untuk memanggil system function
block dibuat
Setelah proses diatas, program melanjutkan pemrosesan dalam pemanggilan function
block.
o
o
o
o
Sebuah multiple instance dibuat sewaktu pendeklarasian statik variabel dengan type
data function block. Hanya multiple instance yang telah dideklarasikan yang
dimasukkan kedalam element catalog program.Symbol untuk berbagai multiple instance
bergantung pada type parameter dan berapa banyak parameter yang ada sekarang.
EN, ENO dan nama variabel adalah parameter parameter yang selalu ada.
(RET) Return
Instruksi ini digunakan untuk keluar dari suatu block dengan kondisi tertentu. Intruksi
return akan dieksekusi ketika RLO bernilai 1.
Shift Instruction
SHR_I Shift Right Integer
SHR_I (Shift Right Integer) diaktifkan oleh input Enable (EN). Instruksi SHR_I
digunakan untuk menggeser bit 0 sampai 15 dari input IN perbit ke kanan. Input N
menentukan jumlah bit yang akan bergeser. Hasil dari instruksi ini dapat dilihat pada
parameter OUT. Bit CC0 dan OV akan diset 0 oleh SHR_I jika N tidak sama
dengan0. ENO dan EN mempunyai keadaan signal yang sama.
SHR_DI (Shift Right Double Integer) diaktifkan oleh input Enable (EN). Instruksi
SHR_DI digunakan untuk menggeser bit 0 sampai 31 dari input IN perbit ke kanan.
Input N menentukan jumlah bit yang akan bergeser. Hasil dari instruksi ini dapat dilihat
pada parameter OUT. Bit CC0 dan OV akan diset 0 oleh SHR_DI jika N tidak sama
dengan0. ENO dan EN mempunyai keadaan signal yang sama.
SHR_W (Shift Right Word) diaktifkan oleh input Enable (EN). Instruksi SHR_W
digunakan untuk menggeser bit 0 sampai 15 dari input IN perbit ke kanan. Input N
menentukan jumlah bit yang akan bergeser. Hasil dari instruksi ini dapat dilihat pada
parameter OUT. Bit CC0 dan OV akan diset 0 oleh SHR_I jika N tidak sama
dengan0. ENO dan EN mempunyai keadaan signal yang sama.
SHL_W (Shift Left Word)
SHL_W (Shift Left Word) diaktifkan oleh input Enable (EN). Instruksi SHL_W digunakan
untuk menggeser bit 0 sampai 15 dari input IN perbit ke kiri. Input N menentukan jumlah
bit yang akan bergeser. Hasil dari instruksi ini dapat dilihat pada parameter OUT. Bit
CC0 dan OV akan diset 0 oleh SHL_W jika N tidak sama dengan0. ENO dan EN
mempunyai keadaan signal yang sama.
SHL_DW (Shift Left Double Word) diaktifkan oleh input Enable (EN). Instruksi SHL_DW
digunakan untuk menggeser bit 0 sampai 31 dari input IN perbit ke kiri. Input N
menentukan jumlah bit yang akan bergeser. Hasil dari instruksi ini dapat dilihat pada
parameter OUT. Bit CC0 dan OV akan diset 0 oleh SHL_DW jika N tidak sama
dengan0. ENO dan EN mempunyai keadaan signal yang sama.
SHR_DW (Shift Right DoubleWord)
SHR_DW (Shift Right Double Word) diaktifkan oleh input Enable (EN). Instruksi
SHL_DW digunakan untuk menggeser bit 0 sampai 31 dari input IN perbit ke kanan.
Input N menentukan jumlah bit yang akan bergeser. Hasil dari instruksi ini dapat dilihat
pada parameter OUT. Bit CC0 dan OV akan diset 0 oleh SHR_DW jika N tidak sama
dengan0. ENO dan EN mempunyai keadaan signal yang sama.
Rotate Instructions
ROL_DW Rotate Left Double Word
ROL_DW (Rotate Left Double Word) diaktifkan oleh input Enable (EN). Instruksi
ROL_DW digunakan untuk memutar keseluruhan isi bit dari input IN perbit ke kiri. Input
N menentukan jumlah bit yang akan diputar. Jika N lebih besar dari 32, Double word IN
diputar per ((N-1)modulo32) + 1 posisi. Posisi bit paling kanan akan terisi oleh keadaan
logic bit paling kiri (bit yang keluar putaran).Hasil dari instruksi ini dapat dilihat pada
parameter OUT. Bit CC0 dan OV akan diset 0 oleh ROL_DW jika N tidak sama
dengan0. ENO dan EN mempunyai keadaan signal yang sama.
ROR_DW (Rotate Right Double Word) diaktifkan oleh input Enable (EN). Instruksi
ROL_DW digunakan untuk memutar keseluruhan isi bit dari input IN perbit ke kanan.
Input N menentukan jumlah bit yang akan diputar. Jika N lebih besar dari 32, Double
word IN diputar per ((N-1)modulo32) + 1 posisi. Posisi bit paling kiri akan terisi oleh
keadaan logic bit paling kanan (bit yang keluar putaran).Hasil dari instruksi ini dapat
dilihat pada parameter OUT. Bit CC0 dan OV akan diset 0 oleh ROR_DW jika N tidak
sama dengan0. ENO dan EN mempunyai keadaan signal yang sama.
Timer Instructions
Timer mempunyai area memory didalam CPU. Area memory ini mempunyai bit address
16-bit (1 word) untuk setiap timer. Set intruksi ladderlogic dapat mendukung sampai 256
timer. Fungsi yang dapat mengakses area memory timer adalah timer instruction dan
peng-update-an word timer oleh timing clock. Bit 0 sampai 9 timer word berisi timer
value dalam kode biner. Time value menspesifikasikan sejumlah unit.Time value dapat
dimasukan kedalam low word dari accumulator dalam format biner, hexadecimal, atau
BCD. Bit 12 dan 13 dari timer berisi time base dalam kode biner. Time base ini
mendefinisikan interval dimana time value dikurangkan 1 unit. Berikut ini adalah tabel
dari nilai time base dan nilai resolusi yang dimiliki.
Ketika timer distart, isi dari timer cell digunakan sebagai time value. Bit 0 sampai 11 dari
timer cell berisi time value dalam kode BCD. Bit 12 dan 13 berisi time base dalam kode
biner. Berikut ini adalah gambaran tentang isi dari timer cell yang diisi dengan timer
value 127 dan time base 1 second:
Pulse S5 timer memulai menspesified timer jika ada positive edge pada start input.
Timer run selama keadaan signal input adalah 1, dengan periode terpanjang adalah
nilai time value pada input TV. Keadaan signal pada output Q adalah 1 selama timer
running. Jika ada perubahan dari 1 ke 0 pada input S sebelum time interval
terlewatkan, maka timer akan dihentikan. Hal ini menyebabkan keadaan signal output Q
bernilai 0. Timer direset ketika input timer reset (R) berubah dari 0 ke 1 saat timer
running. Time current dan time base juga diset nol. Logika 1 pada input timer reset (R)
tidak mempunyai effect jika timer tidak dalam kondisi running.Nilai dari time current
dapat ditampilkan pada output BI dan BCD, BI dalam kode biner dan BCD dalam kode
BCD. Nilai time current adalah nilai TV awal dikurangi time ellapse sejak timer distart.
Extended Pulse S5 timer memulai menspesified timer jika ada positive edge pada start
input. Timer run selama keadaan signal input adalah 1, dengan periode terpanjang
adalah nilai time value pada input TV. Keadaan signal pada output Q adalah 1 selama
timer running. Jika ada perubahan dari 1 ke 0 pada input S sebelum time interval
terlewatkan, maka timer akan dihentikan. Hal ini menyebabkan keadaan signal output Q
bernilai 0. Timer direset ketika input timer reset (R) berubah dari 0 ke 1 saat timer
running. Time current dan time base juga diset nol. Logika 1 pada input timer reset (R)
tidak mempunyai effect jika timer tidak dalam kondisi running.Nilai dari time current
dapat ditampilkan pada output BI dan BCD, BI dalam kode biner dan BCD dalam kode
BCD. Nilai time current adalah nilai TV awal dikurangi time ellapse sejak timer distart.
On-Delay S5 timer memulai menspesified timer jika ada positive edge pada start input.
Timer run selama keadaan signal input adalah 1, dengan periode terpanjang adalah
nilai time value pada input TV. Keadaan signal pada output Q adalah 1 selama timer
running. Jika ada perubahan dari 1 ke 0 pada input S sebelum time interval
terlewatkan, maka timer akan dihentikan. Hal ini menyebabkan keadaan signal output Q
bernilai 0. Timer direset ketika input timer reset (R) berubah dari 0 ke 1 saat timer
running. Time current dan time base juga diset nol. Logika 1 pada input timer reset (R)
tidak mempunyai effect jika timer tidak dalam kondisi running.Nilai dari time current
dapat ditampilkan pada output BI dan BCD, BI dalam kode biner dan BCD dalam kode
BCD. Nilai time current adalah nilai TV awal dikurangi time ellapse sejak timer distart.
Retentive On-Delay S5 timer memulai menspesified timer jika ada positive edge pada
start input. Timer run selama keadaan signal input adalah 1, dengan periode
terpanjang adalah nilai time value pada input TV. Keadaan signal pada output Q adalah
1 selama timer running. Jika ada perubahan dari 1 ke 0 pada input S sebelum time
interval terlewatkan, maka timer akan dihentikan. Hal ini menyebabkan keadaan signal
output Q bernilai 0. Timer direset ketika input timer reset (R) berubah dari 0 ke 1
saat timer running. Time current dan time base juga diset nol. Logika 1 pada input
timer reset (R) tidak mempunyai effect jika timer tidak dalam kondisi running.Nilai dari
time current dapat ditampilkan pada output BI dan BCD, BI dalam kode biner dan BCD
dalam kode BCD. Nilai time current adalah nilai TV awal dikurangi time ellapse sejak
timer distart.
Off-Delay S5 timer memulai menspesified timer jika ada negative edge pada start input.
Timer run selama keadaan signal input adalah 1, dengan periode terpanjang adalah
nilai time value pada input TV. Keadaan signal pada output Q adalah 1 selama timer
running. Jika ada perubahan dari 0 ke 1 pada input S sebelum time interval
terlewatkan, maka timer akan dihentikan. Hal ini menyebabkan keadaan signal output Q
bernilai 0. Timer direset ketika input timer reset (R) berubah dari 0 ke 1 saat timer
running. Time current dan time base juga diset nol. Logika 1 pada input timer reset (R)
tidak mempunyai effect jika timer tidak dalam kondisi running.Nilai dari time current
dapat ditampilkan pada output BI dan BCD, BI dalam kode biner dan BCD dalam kode
BCD. Nilai time current adalah nilai TV awal dikurangi time ellapse sejak timer distart.