Mengenal PLC Siemens "SIMATIC Controllers"

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.
Dari gambar blok diagram diatas dapat dijelaskan sebagai berikut:
  • Input interface (masukan) : berupa sinyal dari peralatan lain seperti photoelektrik, microswitch, pushbutton, dan masih banyak lagi, baik dalam bentuk analog maupun digital yang digunakan sebagai signal instruksi dalam program.
  • Output interface (keluaran) : hasil dari eksekusi suatu program yang terhubung dengan peralatan lain seperti relay, lampu indicator dan lain-lainnya. Output ini bisa berupa analog maupun digital dan AC ataupun DC.
  • Power Supply (catu daya): merupakan unit yang menyediakan daya untuk kebutuhan PLC.
  • Central Processing Unit (CPU): suatu perangkat yang mampu untuk menyimpan data dan program. Didalam PLC digunakan untuk memproses program, sinyal I/O serta berkomunikasi dengan peralatan lain.
  • Memory: tempat menyimpan program dan data aplikasi yang ada pada PLC.

Simatic Controller sebagai PLC conventional Siemens dapat dihubungkan ke semua jaringan via integrated interface atau communication processor yang meliputi sistem dibawah ini:
  • Industrial Ethernet (IEEE 802.3 dan 802.3u)
  • PROFINET
  • PROFIBUS (IEC 61158/EN 50170)
  • AS-Interface
  • KNX (EN 50090, ANSI EIA 776)
  • Point-to-Point Connection (PPI), dengan special protocol RK 512, 3964(R), dan ASCII
  • Multipoint-enabled Interface (MPI)
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):
    • Digital Input Modules:
      • 24 VDC
      • 120/230 VAC
    • Digital Output Modules:
      • 24 DC
      • Relay
    • Analog Input Modules:
      • Tegangan
      • Arus
      • Resistant
      • Thermocouple
    • Analog Output Modules:
      • Tegangan
      • Arus
  • Communication Processors (CP):
    • AS-Interface via CP
    • Profibus via CP dan DP slave
    • MPI sebagai MPI slave
Berikut ini adalah penjelasan dari masing-masing block diatas:
  • Mode Selector : digunakan untuk pemilihan mode manual, yaitu stop, term, dan run. Mode stop digunakan apabila program tidak dieksekusi, mode term bila program dieksekusi yang memungkinkan peaksesan read/write dari PG, dan mode run yang hanya memungkinkan program PLC hanya bisa dibaca PG.
  • 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), S7-SCL (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) :
    • Digital Input Modules:
      • 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), S7-SCL (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) :
    • Digital Input Modules:
      • 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
  • 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.
Berikut ini adalah penjelasan dari masing-masing blok diatas yaitu:
  • Fault LEDs, LED untuk status dan kesalahan (fault) pada CPU, baik eksternal maupun internal.
  • Slot for memory card digunakan untuk memasukkan RAM atau Flash memory card sebagai load memory eksternal.
  • Mode Selector,
    • MRES, memory reset function (Modul RESet)
    • STOP, mode stop mengindikasikan bahwa tidak ada program yang dieksekusi dan disable output.
    • RUN, mode dimana program sedang dieksekusi yang mana hanya memungkinkan pembacaan program melalui PG.
    • RUN-P, mode dimana program sedang dieksekusi yang mana masih memungkinkan pengaksesan Read/Write melalui PG.
  • MPI/DP Interface, yang biasa digunakan untuk membangun koneksi online ke device programming, menghubungkan dengan distributed peripheral (DP), atau untuk pertukaran data dengan station yang lain (S7 Communication).
  • External battery supply, socket tambahan baterai eksternal 5VDC sampai 15 VDC untuk membackup RAM ketika power supply dimatikan.
Struktur Pemrograman PLC

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



Sumber: http://tanotocentre.wordpress.com

9 komentar:

  1. Terima kasih Pak Guru postingannya sangat membantu

    BalasHapus
  2. Tentang software SimaticManager, pak.
    Mulai install sampai menjalankan, gimana ya.
    Mohon bimbingannya.
    Terimakasih banyak sebelumnya

    BalasHapus
  3. Pak, itu instruksi instruksi untuk pembuatan Ladder diagram sudah lengkap betul.
    Tinggal install software nya,pak.
    He..he..he..

    BalasHapus
  4. Terima kasih atas materinya pak, semoga semakin cepat dapat diaplikasi
    kan...Salam

    BalasHapus
  5. Titanium-Art - T-Shirt - T-Shirt - T-Shirt
    T-Shirt designed by T-Shirt. Featuring a titan metal unique titanium undertaker “Ironing T-Shirt” design, this Ironing ceramic vs titanium flat iron T-Shirt 2020 edge titanium provides a unique, timeless titanium engine block looking  Rating: 5 · ‎13 reviews

    BalasHapus
  6. ditunggu untuk pembahasan FBD dan STL nya pak, sukses selalu

    BalasHapus
  7. Komentar ini telah dihapus oleh pengarang.

    BalasHapus
  8. Komentar ini telah dihapus oleh pengarang.

    BalasHapus