< Previous 139 RTU atau ASCII. Karakteristik pemakai diatur pada setiap alat rancangan/device dan tidak dapat dirubah ketika sistem sedang berjalan. Protokol Modbus menyediakan kerangka untuk transmisi pesan antara tuan dan pekerja. Informasi pada pesan adalah alamat tujuan penerima, apa yang harus dilakukan oleh penerima, data yang dibutuhkan untuk melakukan aksi dan arti dari pengecekan Kesalahan. ‘Pekerja’ membaca pesan, dan jika tidak terdapat Kesalahan maka ia akan melakukan tugasnya dan mengirimkan kembali respon kepada ‘tuan’nya. Informasi pada pesan respon adalah alamat pekerja, tindakan yang ditampilkan, hasil dari tindakan serta hasil pengecekan Kesalahan. Jika pesan awal adalah tipe penyiaran, maka tidak akan tampil respon apapun dari ‘pekerja’. Secara normal, ’tuan’ dapat mengirimkan permintaan lain segera setelah ia menerima pesan respon. Fungsi jeda akan memastikan bahwa sistem tetap berfungsi saat permintaan tidak diterima secara benar. Data dapat dipertukarkan dalam dua mode transmisi: 1) ASCII – dapat dibaca (readable), penggunaan misalnya untuk testing 2) RTU – padat dan lebih cepat, penggunaan untuk operasi normal The RTU mode (seringkali disebut sebagai Modbus-B untuk Modbus Biner) adalah mode Modbus yang umum dipilih dan akan didiskusikan pada bagian ini. Transmisi mode ASCII memiliki pesan khas yang panjangnya kira-kira dua kali ekuivalen panjang pesan RTU. Modbus juga menampilkan pengujian Kesalahan pada transmisi dan Kesalahan komunikasi. Kesalahan komunikasi dideteksi oleh kerangka karakter, sebuah uji parity dan sebuah uji kekosongan kerja/redundancy check. Penutupnya bergantung pada apakah mode transmisi RTU atau ASCII yang digunakan. ¾ Fungsi-fungsi Modbus Seluruh fungsi yang didukung oleh protokol Modbus diidentifikasi dengan nomor index. Mereka dirancang sebagai perintah kontrol untuk bidang instrumentasi dan pengaktualisasi sebagai berikut: 140 Perintah kontrol spiral (Coil control commands) untuk membaca dan mengatur sebuah spiral/coil tunggal atau sekelompok spiral/coils. Perintah kontrol masukan (Input control commands) untuk membaca status masukan atau sekelompok masukan. Perintah kontrol register (Register control commands) untuk membaca dan mengatur satu atau lebih aset register, yang meliputi: x Tes Diagnostik dan fungsi pelaporan. x Fungsi-fungsi Program. x Fungski kontrol Polling/survei. x Pengaturan ulang/Reset ¾ Protokol Spesifik Bagian ini mengulas secara detil protokol Modbus dan membaginya kedalam bagian-bagian berikut: 1) Format Pesan (Message Format) 2) Penyelarasan (Synchronisation) 3) Notasi memori (Memory Notation) 4) Kode-kode Fungsi (Function Codes) 5) Respon-respon pengecualian (Exception Responses) 1) Format Pesan (Message Format) Sebuah transaksi terdiri dari sebuah permintaan tunggal dari penyelenggara/host kepada sebuah alat rancangan/device sekunder spesifik dan sebuah respon tunggal dari alat rancangan/device tersebut kembali kepada penyelenggara/host. Kedua pesan ini diformat sebagai kerangka pesan Modbus. Setiap kerangka pesan terdiri dari serangkaian bytes yang dikelompokkan dalam empat bidang sebagaimana digambarkan dalam paragraph berikut. Catat bahwa masing-masing byte yang ditampilkan disini adalah format hex (bukan ASCII), dan Format Kerangka Pesan Modbus sebagai berikut: 141 Bidang pertama dalam setiap kerangka pesan adalah bidang alamat yang terdiri dari sebuah byte tunggal dari informasi. Dalam kerangka permintaan, byte ini mengidentifikasi pengendali mengenai ke mana permintaan diarahkan. Hasil kerangka respon dimulai dengan alamat dari alat rancangan/device yang merespon. Setiap ‘pekerja’ dapat memiliiki bidang alamat antara 1 dan 247;; meskipun secara praktek terdapat batasan yang akan membatasi jumlah maksimal dari pekerja. Sebuah instalasi modbus umum akan mempunyai satu tuan dan dua atau tiga pekerja. Bidang kedua dari tiap pesan adalah bidang fungsi yang juga terdiri dari sebuah byte tunggal informasi. Atas permintaan penyelenggara/host, byte ini mengidentifikasi fungsi yang akan dilakukan oleh PLC target. Jika PLC target mampu menampilkan fungsi yang diminta, bidang fungsi dari respon tersebut akan mengulangi permintaan asli. Cara lain adalah bidang fungsi dari permintaan akan diulangi dengan bit yang paling signifikan diatur pada satu, serta memberi sinyal respon pengecualian. Tabel 4.1 merangkum fungsi yang khas digunakan. Bidang ketiga pada sebuah kerangka pesan adalah bidang data, yang beragam dalam panjang tergantung pada fungsi apa yang diminta pada bidang fungsi. Atas permintaan dari penyelenggara/host, bidang ini berisi informasi yang mungkin dibutuhkan oleh PLC untuk melengkapi fungsi yang diminta. Pada respon PLC bidang ini berisi semua data yang diminta oleh penyelenggara/host. Dua byte terakhir pada sebuah kerangka pesan berisi bidang pengecekan Kesalahan. Nilai numerik pada bidang ini diukur dengan melakukan sebuah uji pengulangan kekosongan kerja/ Cyclic Redundancy Check (CRC-16) pada kerangka pesan. Pengecekan Kesalahan ini memastikan bahwa alat rancangan/devices tidak bereaksi terhadap pesan yang mungkin telah berubah selama transmisi. 142 2) Penyelarasan (Synchronisation) Untuk dapat mencapai komunikasi yang terpercaya, penerimaan sebuah pesan harus diselaraskan dengan transmisinya. Dengan kata lain, device penerima harus dapat mengidentifikasi dimulainya sebuah kerangka pesan baru. Dibawah protokol Modbus TRU, kerangka penyelarasan dibangun dengan membatasi waktu jeda/idle time antara karakter selanjutnya dalam sebuah kerangka pesan. Jika tiga karakter waktu (kira-kira 3 milisecond) dilalui tanpa terdeteksi adanya sebuah karakter baru oleh device penerima, maka pesan yang ditunda akan menyala. Byte berikutnya kemudian akan menerjemahkan sebagai bidang alamat pada lintasan pesan baru. 3) Notasi Memori (Memory Notation) Notasi memori memungkinkan komunikasi data yang terdiri dari empat tipe data yang berbeda: spiral/coils, masukan terpisah/discrete inputs, register masukan/input registers dan register aset/holding registers. Variabel register berisi dua byte, sementara spiral/coils dan masukan terpisah/discrete inputs merupakan byte tunggal. Masing-masing fungsi mengacu hanya pada satu jenis data. Hal ini memungkinkan referensi memori kerangka pesan ditampilkan sebagai offset relatif terhadap kemungkinan alamat terendah untuk tipe data itu. Misalnya register aset/holding register 40001 direferensikan sebagai 0000. 143 Gambar 4.3. Ilustrasikan tipe data Modbus Gambar 4.3 merupakan ilustrasi jaringan komunikasi data Modbus, pengendali sistem berada pada tuan (master) dan operasi benda pada pekerja (slave). Pada pekerja terdapat 3 buah obyek kendali (output) yang terdiri dari 1 kendali relai, saklar on/off dan keluaran analog melalui DAC. 4) Kode-kode fungsi (Function Codes) Setiap kerangka permintaan berisi sebuah kode fungsi yang menentukan aksi yang diharapkan untuk pengendali target. Arti dari bidang permintaan data adalah tanggungan/dependent pada kode fungsi yang ditentukan. Tabel berikut menentukan dan menggambarkan kode-kode fungsi dukungan akses. Pada contoh berikut, isi dari bidang kerangka pesan ditampilkan dalam heksadesimal bytes. Contoh-contoh dari isi lahan kerangka pesan ditunjukkan dalam heksadesimal bytes. Tabel 4.1. Kode Fungsi Modbus Tipe Data Alamat Absolut Alamat Relatif Kode-kode Fungsi Keterangan Coils 00001 to 09999 0 to 9998 01 Baca benturan Coil Coils 00001 to 09999 0 to 9998 05 Kekuatan coil 144 tunggal Coils 00001 to 09999 0 to 9998 15 Kekuatan multipel Coils Discrete Input 10001 to 19999 0 to 9998 02 Baca status masukan Input Register 30001 to 39999 0 to 9998 04 Baca register masukan Holding Register 40001 to 49999 0 to 9998 03 Baca Register aset Holding Register 40001 to 49999 0 to 9998 06 Pengaturan awal register tunggal Holding Register 40001 to 49999 0 to 9998 16 Pengaturan awal register multipel - - - 07 Baca status pengecualian - - - 08 Tes diagnosa lintasan balik/Loopback (Modicon Data Types Supported) 4.2 OPERASI UART a. Universal Asynchronous Receiver/Transmitter (UART) Komunikasi data melalui UART dilakukan dengan mengikuti protokol tertentu, dimana ‘Start, ‘Stop dan Parity bit yang digunakan pada sistem transmisi tak selaras umumnya secara fisik dihasilkan oleh sebuah standard integrasi sirkuit/Integrated Circuit (IC). Sedangkan chip tersebut merupakan bagian dari sirkuit interface antara bus dalam microprocessor dan lintasan pengemudi (atau penerima), yang merupakan hubungan komunikasi. Tipe IC ini disebut UART (Universal Asynchronous ReceiveriTransmitter) atau disebut juga ACE (Asynchronous 145 Communications Element). Berbagai bentuk dari UART juga digunakan pada komunikasi data selaras, disebut USRT. Secara umum biasa disebut USART. Keluaran dari sebuah UART tidak dirancang untuk secara langsung menjadi interface hubungan komunikasi. Devais tambahan dipasang untuk dapat dikoneksi dengan devais luar yang disebut line driver, yaituterdiri dari bagian penerima (Rx) dan bagian pengirim (Tx) dan bagian ini harus mampu mengeluarkan dan menerima tegangan yang sesuai untuk hubungan komunikasi. Tipe IC 8240, 16450, 16550 adalah contoh dari UARTs dan 8251 untuk sebuah USART. Gambar 4.4. Koneksi eksternal UART melalui Line Driver Tujuan utama dari UART adalah melakukan proses konversi data paralel untuk ditransmisikan secara serial, dan menerima data secara serial untuk dibaca prosesor secara paralel, diaman pengiriman dan penerimaan data serial tidak dilakukan sinkronisasi. Saat transmisi, UART melakukan aktivitas: x Mengatur tingkat Baud; x Menerima karakter bits dari microprocessor sebagai suatu grup parallel; x Memunculkan sebuah bit mulai/start bit; x Menambahkan data bits pada grup serial; 146 x Menentukan parity dan menambahkan sebuah parity bit (jika dibutuhkan); x Mengakhiri transmisi dengan sebuah bit akhir/Stop bit (kadang 2 stop bits); x Memberi tanda pada microprocessor bahwa telah siap untuk karakter berikunya; x Mengkoordinir pertemuan/handshaking jika dibutuhkan. UART memiliki jalur sinyal terpisah untuk pengirim/transmit (TX) dan sebuah untuk penerima/Receive (RX) sehingga dapat beroperasi dalam mode rangkap penuh atau mode separuh rangkap. Hubungan lain pada UART menyediakan sinyal perangkat keras untuk pertemuan/handshaking, metode untuk menyajikan beberapa bentuk dari penguncian/ “interlocking” antara dua devices pada akhir sebuah hubungan komunikasi data. Saat menerimadata, UART melakukan aktivitas: Mengatur tingkat Baud pada penerima; x Mengenali bit mulai/start bit; x Membaca data bits pada grup serial; x Membaca parity bit dan mengecek parity; x Mengenali bit akhir/Stop bit(s); x Mentransfer karakter sebagai sebuah grup parallel pada microprocessor untuk pemrosesan lebih lanjut; x Mengkoordinir handshaking jika dibutuhkan; x Meneliti Kesalahan data dan menandai Kesalahan bit bit pada status register. UART dapat mendeteksi tiga tipe Kesalahan: x Kesalahanparity (parity error) x Kesalahanoverrun (overrun error) x Kesalahan kerangka (framing error) 147 Dalam sistem UART protokol tersebut di atas dilakukan secara algoritma logika standar UART, artinyakomunikasi data serial secara sederhana dilakukan dengan menulis/membaca bytes untuk/dari UART. Fungsi koneksi data serial secara internal oleh UART digambarkan dalam diagram blok berikut. Gambar 4.5. Diagram Blok Internal UART ¾ Proses PengirimData Melalui UART Data format dekoder berfungsi sebagai pembentuk format data yang akan dikirimkan, masukan diberikan melalui masukan data bit, stop bit, select dan pariti dan hasilnya dikirim ke SDU. Sementara itu data dari mikroprosesor (data bus) diletakan dalam register (Transmister Holding Register), dan format data dalam register ini disusun berdasarkan formasi dalam SDU. Format data telah diselesaikan dan diletakan pada register TSR (Transmister Shift Register). Artinya Bits yang akan dikirimkan dibebankan kedalam sebuah register geser/shift register, kemudian dikirimkan pada transisi negatif dari waktu pengiriman data dan pengiriman mengikuti pengaturan Baud rate. 148 Ketika semua bits telah dikirimkan dari register geser ke jalurpengirim TxD, maka paket berikutnya akan dilakukan dan proses yang sama atau berulang. Gambar 4.6. Ilustrasi pengiriman data pada UART. Pada komunikasi rangkap penuh, perangkat lunak (software) hanya diperlukan untuk menguji nilai dari bendera cadangan kosong pengirim/Transmitter Buffer Empty (TBE), untuk memutuskan apakah perlu untuk menulis sebuah byte pada UART. Pada komunikasi separuh rangkap, modem harus bertukar antara kondisi pengirim dan penerima. Oleh karenanya, perangkat lunak harus menguji kondisi cadangan data pengirim dan register geser/shift registerpengirimapakah masih tersisa data didalamnya. ¾ Proses Penerima Data Melalui UART Penerima UART secara berkesinambungan memonitor jalur serial yang menunggu masuk untuk start bit. Ketika start bit diterima, jalur penerima akan memonitor pada tingkat Baud yang dipilih dan bits selanjutnya ditempatkan pada register geser/shift register penerima. Hal ini akan terjadi sesuai Next >