Anda di halaman 1dari 50

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 (address)

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 function (Exclusive OR)

XOR function merupakan sebuah jaringan NOC dan NCC yang harus dirangkai seperti
ditunjukkan pada gambar berikut:

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 “ON”dan 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.

—(R) Reset Coil


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”.

—(S) Set Coil

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 Reset-Set Flip Flop


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 ke”1″ sebagai
penguraian diatasnya. Jika MCR “off”, keadaan bit <address> tidak diubah bagaimana pun
keadaan input.

SR Set-Reset Flip Flop

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 ke”0″ sebagai penguraian diatasnya. Jika MCR
“off”, keadaan bit <address> tidak diubah bagaimana pun keadaan input.

—(N)— Negative RLO Edge Detection

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>.

—(P)— Positive RLO Edge Detection

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) Save RLO into BR Memory

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.

NEG Address Negative Edge Detection

NEG (Address Negative Edge Detection) membandingkan keadaan signal dari <address1>
dengan keadaan signal dari pengamatan sebelumnya, yang disimpan dalam <address2>. Jika
keadaan RLO sekarang bernilai “1” dan keadaan sebelumnya adalah “0”, bit RLO akan menjadi
bernilai “1” setelah instruksi ini.
POS Address Positive Edge Detection

POS (Address Positive Edge Detection) membandingkan keadaan signal dari <address1> dengan
keadaan signal dari pengamatan sebelumnya, yang disimpan 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.

CMP?D Compare Double Integer


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 operasi logika

OR.

Conversion Instructions

Instruksi konversi membaca isi dari parameter IN dan meng-konvertnya atau mengubah
tandanya. Hasilnya dapat diragukan pada parameter OUT. Berikut ini adalah beberapa type
instruksi konversi:

BCD_I BCD to Integer

BCD_I (mengkonversi sistem bilangan BCD ke integer) membaca isi parameter IN sebanyak 3
digit (angka kode BCD +/- 999) dan mengkonversinya ke bilangan integer 16 bit. Hasilnya
dikeluarkan oleh parameter OUT. ENO selalu mempunyai keadaan signal yang sama seperti EN.

I_BCD Integer to BCD


I_BCD (mengkonversi system bilangan Integer ke BCD) membaca isi parameter IN sebagai nilai
integer 16 bit dan mengkonversinya ke bilangan BCD (+/- 999). Hasilnya dikeluarkan melalui
parameter OUT. Jika terjadi overflow, nilai ENO akan menjadi bernilai “0”.

I_DINT Integer to Double Integer

I_DINT (mengkonversi system bilangan Integer ke double integer) membaca isi parameter IN
sebagai nilai bilangan integer 16 bit dan mengkonversinya ke double integer 32 bit. Hasilnya
dikeluarkan melalui parameter Out. ENO selalu mempunyai keadaan signal yang sama seperti
EN.

BCD_DI BCD to Double Integer


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 Double Integer to BCD

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 Double Integer to Floating Point


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_I Ones Complement Integer

INV_I (Ones complement integer) membaca isi parameter IN dan mengoperasikannnya sebagai
fungsi Boolean XOR dengan mask hexadecimal W#16#FFFF. Instruksi ini mengubah setiap bit
kedalam keadaan sebaliknya. ENO selalu mempunyai keadaan signal yang sama seperti EN.

INV_DI Ones Complement Double Integer


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_I Twos Complement Integer

NEG_I (twos complement 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_DI Twos Complement Double Integer


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 Number

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

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 Part

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.

—(SC) Set Counter Value


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

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

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

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

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


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

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

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


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.

Floating Point Math Instructions

Bilangan floating-point 32 bit termasuk kedalam type bilangan REAL. Instruksi ini memakai bit
status word CC1, CC0, OV, dan OS Berikut ini adalah beberapa floating-point math instruction:

ADD_R Add Real


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


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 Establish Square

SQR membangkitkan nilai kuadrat dari sistem bilangan floating point yang dimasukkan dan
hasilnya dikeluarkan melalui parameter OUT.

SQRT Established the Square Root

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 Establish the Sine Value


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).

Program Control Instruction

—(Call) Call FC SFC from Coil


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.

CALL_FB Call FB from Box

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.

CALL_FC Call FC from Box

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.

CALL_SFB Call SFB from Box


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.

CALL_SFC Call SFC from Box

Instruksi CALL_SFC digunakan untuk memanggil sistem function (SFC). Instruksi hanya hanya
dijalankan ketika input EN bernilai “1”. Jika CALL_SFC 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 system function dibuat

Setelah proses diatas, program melanjutkan pemrosesan dalam pemanggilan function block.
Call Multiple Instance

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 dengan”0″. ENO dan EN mempunyai keadaan
signal yang sama.

SHR_DI Shift Right Double Integer

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 dengan”0″. ENO dan EN
mempunyai keadaan signal yang sama.

SHR_W Shift Right Word

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 dengan”0″. 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 dengan”0″. ENO dan EN mempunyai keadaan
signal yang sama.

SHL_DW (Shift Left DoubleWord)

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 dengan”0″. 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 dengan”0″. 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 dengan”0″. ENO dan EN mempunyai keadaan
signal yang sama.

ROR_DW Rotate Right Double Word

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 dengan”0″. 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:

S_PULSE Pulse S5 Timer


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.

S_PEXT Extended Pulse S5 Timer


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.

S_ODT On-Delay S5 Timer


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.

S_ODTS Retentive On-Delay S5 Timer


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.

S_OFFDT Off-Delay S5 Timer


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.

Anda mungkin juga menyukai