BAB 2 LANDASAN TEORI
2.1
Komunikasi Menurut Schweber (1998, p1), tujuan komunikasi adalah untuk mengirim pesan dari satu titik ke titik lainnya dan untuk meyakinkan bahwa pesan tersebut diterima secara langsung dan dapat dimengerti. Pada umumnya, sistem komunikasi terbagi ke dalam 3 macam bentuk transmisi, yaitu: Simplex, Half-Duplex, dan FullDuplex. Komunikasi Simplex adalah bentuk komunikasi satu arah dimana salah satu alat hanya dapat mengirimkan pesan, sementara alat lain hanya dapat menerima pesan tersebut tanpa bisa mengirimkan balik. Pada komunikasi jenis ini, salah satu bertindak sebagai transmitter yang memancarkan pesan dan yang lainnya bertindak sebagai receiver yang menerima pesan tersebut. Contoh komunikasi jenis ini adalah pada radio FM/AM dan televisi. Komunikasi Half-Duplex adalah bentuk komunikasi yang sudah dua arah, yaitu satu alat dapat memancarkan pesan sekaligus menerima pesan, namun proses transmisi data terjadi secara bergantian atau tidak dalam waktu yang bersamaan. Contoh komunikasi jenis ini adalah pada HT (Handy Talkie). Komunikasi Full-Duplex adalah bentuk komunikasi dua arah dimana hubungan antar alat komunikasi memungkinkan untuk terjadinya transmisi data dua arah pada waktu bersamaan (simultaneously). Hal ini dapat terjadi karena pada setiap ujung transmitter saling berhubungan dengan receiver, sehingga memungkinkan
7
8 keduanya untuk dapat memancarkan sekaligus menerima pesan dalam waktu yang bersamaan. Contoh penggunaannya adalah pada telepon. Dalam dunia komputer elektronik modern, untuk dapat menghubungkan 2 device yang berbeda dibutuhkan suatu bentuk komunikasi sehingga keduanya bisa saling mengirimkan data. Untuk itu dikembangkan suatu protokol atau interface (antarmuka) antara 2 device. Berdasarkan metode transmisi data yang digunakan, sistem komunikasi tersebut terbagi dalam 2 golongan besar, yaitu komunikasi secara serial dan komunikasi secara parallel. Perbedaan yang mendasar di antara keduanya selain metode pengiriman data yang digunakan adalah jarak maksimal yang dapat dijangkau dan kecepatan transfer data. Komunikasi secara serial dapat menjangkau jarak yang relatif lebih jauh daripada komunikasi secara paralel, namun dengan kecepatan pengiriman data yang cenderung lebih lambat daripada komunikasi secara parallel. Namun, perkembangan teknologi menciptakan komunikasi serial yang lebih cepat daripada RS-232 dengan adanya USB dan IEEE 1394 serial port (Derenzo, 2003, p18). Sistem EMC menggunakan komunikasi paralel karena kemudahan akses protokol yang dibutuhkan.
2.1.1
Komunikasi Paralel Interface parallel merupakan salah satu jenis terminal atau port yang
digunakan sebagai jalur transfer data atau sebagai I/O Port pada sebuah PC sederhana. Kelebihan interface parallel adalah akses data yang cepat dimana data dapat diterima dan diolah secara serentak. Jenis port ini memungkinkan input sampai dengan 9 bit atau output sampai dengan 12 bit secara serentak, dan
9 dengan kebutuhan rangkaian sirkuit eksternal yang relatif minim untuk implementasi fungsi-fungsi khusus sesuai kebutuhan pengguna. Port parallel terdiri dari 4 jalur kontrol, 5 jalur status dan 8 jalur data. Jalur kontrol memiliki alamat register yang mengatur mode operasi dan memberitahukan informasi untuk menerima input dari luar atau mengirimkan output keluar. Jalur status berfungsi untuk memberikan input ke PC mengenai status komunikasi siap atau tidaknya hubungan antar 2 device, siap atau tidaknya untuk memulai transmisi, dan telah berakhirnya transmisi data. Jalur data merupakan isi data yang akan ditransmisikan (Derenzo, 2003, p18). Jenis baru dari Parallel Port telah distandardisasi sejak tahun 1994 dengan standard IEEE 1284. Tujuannya untuk mendesain driver dan device baru yang saling kompatibel satu sama lainnya dan tetap kompatibel dengan Standar Parallel Port (SPP). Standard IEEE 1284 tersebut mendefinisikan 5 mode operasi parallel port sebagai berikut : 1. Compatibility Mode. 2. Nibble Mode. 3. Byte Mode. 4. EPP Mode (Enhanced Parallel Port). 5. ECP Mode (Extended Capabilities Port). Mode Compatibility, Nibble dan Byte menggunakan hardware standar yang terdapat pada original parallel port card. Sementara mode EPP dan ECP membutuhkan hardware tambahan dan lebih cepat dibandingkan mode lainnya, namun tetap kompatibel dengan standar parallel port sebelumnya.
10 Standardisasi IEEE 1284 ini kemudian berkembang lagi sehingga Parallel Port terbagi menjadi 3 kelompok. Pertama, 1284 Type A yang merupakan DType Connector 25 pin. Tipe pin ini dapat ditemukan pada motherboard Desktop PC sebagai konektor female LPT1. DB-25 Connector Chart #1 (Female)
Chart #2 (Male)
13 <------- 1 _____________________________ \ o o o o o o o o o o o o o/ \ o o o o o o o o o o o o / ------------------------25 <----- 14
1 -------> 13 _____________________________ \ . . . . . . . . . . . . ./ \ . . . . . . . . . . . . / ------------------------14 -----> 25
Gambar 2.1 Konektor D-Type 25 Female & Male Pin (http://www.infonewsindia.com/pinout/)
Tipe kedua adalah 1284 Type B, yaitu 36 pin Centronics Connector. Tipe ini merupakan konektor LPT1 yang terdapat pada beberapa printer dengan LPT1 port. Yang ketiga, 1284 Type C, sebenarnya merupakan 36 pin conductor connector yang menyerupai Centronics, namun berukuran lebih kecil.
11
Gambar 2.2 Konektor D-Type 25 Male Pin (http://www.epanorama.net/circuits/parallel_output.html)
Secara garis besar, tipe A dan B memiliki fungsi pin-pin yang tidak terlalu berbeda jauh, selain memang memiliki fungsi yang sama yaitu sebagai konektor LPT1. Konfigurasi pin kedua tipe tersebut dapat dilihat lebih jelas pada tabel dibawah ini. Pin No
Pin No
(D-Type 25)
(Centronics)
1
1
Control
Out
STROBE
C0
2
2
Data
Out
Data 0
D0
3
3
Data
Out
Data 1
D1
4
4
Data
Out
Data 2
D2
5
5
Data
Out
Data 3
D3
Direction Register
Hardware SPP Signal
Symbol
In/Out
Inverted Yes
12 6
6
Data
Out
Data 4
D4
7
7
Data
Out
Data 5
D5
8
8
Data
Out
Data 6
D6
9
9
Data
Out
Data 7
D7
10
10
Status
In
nACK
S6
11
11
Status
In
BUSY
S7
12
12
Status
In
PE(Paper End)
S5
13
13
Status
In
SELECT
S4
14
14
Control
Out
AUTOFEED
C1
15
32
Status
In
ERROR
S3
16
31
Control
Out
INIT
C2
17
36
Control
Out
SELECT-IN
C3
18-25
19-30
Yes
Yes
Yes
Ground
Tabel 2.1 Perbandingan Konfigurasi Pin pada Parallel Port D-Type 25 dan Centronics Type
Untuk dapat mengakses port paralel pada PC biasanya digunakan alamat sebagai berikut :
13 LPT 1
LPT2
LPT3
Data
378h
3BCh
278h
Status
379h
3BDh
279h
Kontrol
37Ah
3Beh
27Ah
Tabel 2.2 Alamat Memori dari Parallel Port (Buku Pedoman Praktikum Aplikasi Mikroprosesor dan Interfacing)
2.2
Motor Stepper Motor stepper adalah alat yang dapat mengubah data atau sinyal pulsa elektrik menjadi pergerakan mekanik. Motor stepper dapat berputar secara diskrit dengan derajat perubahan posisi yang tetap. Dimana setiap pulsa elektris yang diterima, akan menghasilkan satu langkah putaran pada Shaft tersebut.
Motor
stepper dapat berotasi searah jarum jam (clock wise) atau berlawanan arah jarum jam (counter clock wise) tergantung dari sinyal yang diberikan. Motor stepper digunakan untuk menentukan pergerakan posisi dari suatu alat yang akurat tanpa memerlukan sistem umpan balik yang rumit ( lebih mengarah ke sistem lup terbuka ) sehingga memudahkan dalam pengontrolannya. Pada kecepatan rendah, motor stepper menghasilkan torsi yang lebih besar bila dibandingkan dengan motor DC. Motor stepper memiliki karakteristik holding torque (torsi menahan) yang berfungsi untuk mempertahankan posisinya dengan kuat pada saat berhenti.
14 Formula yang dapat digunakan untuk menghitung torsi pada motor stepper adalah sebagai berikut: T = 2 x I0(ω'/t) x (πφ/180) x (1/24) dimana: T = torsi I0 = beban inertia (lb-in.2) π = 3.1416 φ = perubahan sudut setiap step (derajat) ω' = step rate (steps per detik) t = waktu (detik) Pada umumnya, motor stepper dibagi menjadi dua jenis yaitu Permanent Magnet dan Variable Reluctance. Motor stepper bergerak per langkah, dimana setiap langkah mempunyai derajat pergerakan yang sama tergantung dari resolusi dari motor tersebut. Motor stepper yang mempunyai resolusi pergerakan yang kecil, pergerakannya lebih baik dibandingkan resolusi yang besar. Hal ini disebabkan karena pergerakan yang besar akan menghasilkan gerakan yang lebih kasar dibandingkan dengan motor yang memiliki resolusi kecil. Motor stepper dapat dikendalikan secara full step dan half step. Pengendalian secara half step lebih baik daripada pengendalian secara full step karena dengan pengendalian half step pergerakan dari motor lebih halus daripada menggunakan pengendalian dengan pengendalian full step.
15 2.2.1
Half Step Half Step adalah cara mengendalikan motor stepper sehingga
menghasilkan pergerakan motor yang lebih halus. Karena pergerakan rotor dalam motor stepper yang bergerak dengan sudut sebesar ½ derajat dari besar sudut antara 2 buah kutub (coil) yang berdekatan, sehingga pergerakan yang dihasilkan lebih halus. Untuk lebih jelas, konfigurasi Motor Stepper dengan pengendalian Half Step untuk setiap pergerakan motor adalah sebagai berikut : Step
Coil 4
Coil 3
Coil 2
Coil 1
1
1
0
0
0
2
1
1
0
0
3
0
1
0
0
4
0
1
1
0
Pergerakan Motor
16
5
0
0
1
0
6
0
0
1
1
7
0
0
0
1
8
1
0
0
1
Tabel 2.3 Pergerakan Half Step
Pada setiap pergerakan motor sesuai tabel diatas, terdapat perubahan sinyal digital yang dapat diamati sebagai bahan acuan.
Gambar 2.3 Sinyal Half Step
17 2.2.2
Full Step Full step adalah cara mengendalikan motor stepper sehingga dihasilkan
pergerakan motor namun tidak sehalus pergerakkan Half Step. Hal ini disebabkan karena pergerakan rotor dalam motor stepper yang bergerak per 1 buah kutub (coil). Untuk lebih jelas, konfigurasi Motor Stepper dengan pengendalian Full step untuk setiap pergerakan motor adalah sebagai berikut : Step
Coil 4
Coil 3
Coil 2
Coil 1
1
1
0
0
0
2
0
1
0
0
3
0
0
1
0
4
0
0
0
1
Pergerakan Motor
Tabel 2.4 Pergerakan Full Step
18 Pada setiap pergerakan motor sesuai tabel diatas, terdapat perubahan sinyal digital yang dapat diamati sebagai bahan acuan.
Gambar 2.4 Sinyal Full Step
2.3
Sistem Operasi Linux Linux merupakan sistem operasi yang dikembangkan pertama kali oleh Linus Benedict Torvalds sebagai sistem operasi open-source. Dengan sistem dimana source code program terbuka untuk umum diharapkan sistem ini dapat dikembangkan lebih jauh oleh masyarakat programmer secara online melalui jasa internet. Untuk dapat memahami sistem ini dibutuhkan pengetahuan dan wawasan mengenai bahasa programming yang tidak mudah untuk masyarakat awam. Inilah mengapa sistem ini tidak dengan mudah diterima masyarakat luas seperti misalnya Microsoft Windows. Namun, dengan kemampuan open-source-nya sistem ini dapat dengan mudah berkembang untuk dapat di aplikasikan untuk banyak tugas-tugas yang sulit untuk diikuti oleh sebuah sistem operasi seperti Microsoft Windows.
19 2.3.1
Linux Debian Debian merupakan salah satu proyek pengembangan sistem operasi open-
source dengan basis pemrograman Linux. Proyek ini dipelopori oleh Ian Murdock pada tanggal 16 Agustus 1993. Dengan semangat yang sama seperti para pengembang Linux, Debian dikembangkan secara bersama-sama di seluruh dunia dengan tujuan membuat sebuah sistem operasi yang benar-benar gratis. Menurut Garbee, Bdale et al. (2006), Sistem Debian ini di kembangkan di atas kernel GNU/Linux dengan banyak aplikasi prepackaged. Sistem tersebut telah di implementasikan pada banyak prosesor mulai dari produk Intel mulai i386 ke atas, Alpha, ARM, Intel IA-64, Motorola 68k, MIPS, PA-RISC, PowerPC,Sparc dan UltraSparc, IBM S/390 dan Hitachi SuperH. Pada saat dimulai, proyek Debian merupakan satu-satunya sistem pendistribusian yang terbuka bagi developer dan pengguna untuk ikut bekerja sama mengembangkan produk tersebut. Debian juga merupakan salah satu distributor Linux yang tidak komersial dan merupakan proyek besar yang terorganisir, dengan dukungan konstitusi, kontrak sosial dan kekuatan hukum lainnya. Sistem distribusinya juga melampirkan informasi detail mengenai produk untuk menjaga tingkat konsistensi meskipun telah di-upgrade.
2.4
CNC (Computer Numerical Control) Pada sebuah industri, terdapat beberapa mesin besar yang tidak mudah untuk di kontrol oleh operator manusia. Dan karena tingkat kesulitan pekerjaan tersebut, menyebabkan sulit untuk membuat suatu standarisasi kesuksesan pekerjaan.
20 Kesulitan ini lah yang coba di atasi untuk meningkatkan tingkat efektivitas dan produktifitas kerja. CNC dikembangkan untuk dapat menjawab tantangan tersebut. CNC merupakan suatu sistem kontrol dengan basis komputer yang bekerja untuk menggerakan motor yang terdapat pada mesin-mesin berat. Berdasarkan penjelasan The EMC team writers (2000), sistem CNC menggunakan komputer dan motormotor
untuk
menggantikan
pekerjaan
operator
manusia,
misalnya
untuk
memindahkan mesin potong (cutting tools) atau menggerakkan suatu mesin berat (turning cranks). Tujuan pengembangan CNC adalah untuk dapat mengerjakan pengontrolan mesin-mesin berat secara independen tanpa campur tangan manusia pada pekerjaan-pekerjaan dengan tingkat kesulitan yang tinggi. Untuk mencapai tujuan tersebut, CNC di aplikasikan mulai dari sistem-sistem dengan skala lebih kecil terlebih dahulu. Berikut ini adalah beberapa bahasa pemrograman yang digunakan pada sistem CNC : 1.
APT (Automatically Programmed Tool)
2.
EIA RS-274
3.
AUTOSPOT
4.
COMPACT/COMPACT II
5.
EXAPT
6.
ADAPT (Adaptation of APT)
7.
MAPT
8.
UNIAPT Untuk nomor 1 dan nomor 2 contoh standarisasi pada pemrograman CNC.
21 Dari pengembangan CNC tersebut, lahir banyak sistem kontrol yang lebih canggih dan lebih spesifik, seperti contohnya EMC.
2.5
EMC (Enhanced Machine Control) Menurut The EMC team writers (2000), EMC merupakan salah satu bentuk pengembangan dalam sistem kontrol secara real-time yang dikembangkan oleh Intelligent Systems Division di National Institute of Standard and Technology (NIST). Dengan bekerja sama dengan beberapa badan lainnya, NIST berhasil menyederhanakan sistemnya menjadi sistem yang dikenal dewasa ini dengan nama EMC.
Gambar 2.5 Sistem EMC
Software EMC ditulis dengan bahasa C dan C++ dan telah berhasil dihubungkan dengan PC dengan sistem operasi Linux, Windows NT dan Sun Solaris. Namun, penggunaannya masih sering mengalami kendala kesulitan. Untuk
22 kemudahan pengoperasian kontrol oleh EMC, ketika menjalankan peralatan, digunakan sistem operasi Linux Debian. Biasanya EMC digunakan pada PC dengan sistem operasi Linux untuk kemudahan penggunaan. Pada dasarnya, EMC terbagi dalam 4 komponen utama: 1. EMCMOT : Pengontrol gerak yang berfungsi untuk sampling posisi dari sumbu (axes) yang akan dikontrol, menghitung posisi selanjutnya pada lintasan yang diberikan dan memperhitungkan output yang diberikan pada motor. 2. EMCIO : Pengontrol Input/Output secara diskrit , 3. EMCTASK : Intepreter G-code yang diberikan pada sistem. 4. Antarmuka pengguna: Antar muka bagi pemakai EMC (Graphical User Interface), misalnya: Tkemc, Xemc dan lain-lain. EMC adalah sistem software yang digunakan pada komputer yang mengontrol mesin-mesin misalnya mesin bubut, mesin potong, lengan robot dan lain lain. EMC adalah free software yang open source. Salah satu fitur EMC adalah dapat menginterpretasikan standarisasi bahasa pemrograman mesin RS-247NGC yang lebih dikenal dengan nama G-Code, menjadi sinyal-sinyal digital sehingga dapat menggerakkan aktuator, misalnya motor stepper, melalui port parallel pada PC. Gambar 2.6 menjelaskan urutan kerja software EMC pada PC. G-Code dimasukan oleh user melalui GUI (Graphical User Interface) EMC misal: Xemc, Tkemc dan lain-lain. EMC akan menginterpretasikan input tersebut berdasarkan routine-routine yang mengatur pergerakan dari axis kedalam sinyal digital. Sinyal tersebut akan dikirim melalui port parallel pada PC atau servo card kepada driver dari motor (stepper atau servo). Motor akan menggerakan batangan berulir yang merupakan axis dari sistem XY-Table.
23
Gambar 2.6 Proses yang dijalankan oleh EMC Didalam penelitian ini, digunakan BDI (Brain Dead Install) installer yang berisi Linux Debian sekaligus software EMC yang telah terintegrasi didalamnya yang memudahkan dalam proses installasi. Ada 3 mode operasi untuk memasukan input saat menjalankan software EMC, yaitu : 1. Mode Manual Mode operasi yang menggunakan Control Button yang ada pada software yang dikontrol melalui mouse dan sebagian tombol pada keyboard sebagai input software EMC. 2. Mode MDI Mode operasi yang menggunakan 1 buah “Block” bahasa pemrograman G-Code sebagai input software EMC pada bagian MDI textfield.
24 3. Mode Auto Mode operasi yang menggunakan file berekstension .ngc yang berisi kumpulan “block” bahasa pemrograman G-Code sebagai input software EMC.
2.5.1
Koneksi pada Port Parallel untuk Integrasi EMC Sofware EMC mendukung pengontrolan 2-bit untuk motor stepper. 1 bit
berfungsi untuk mengontrol step atau clock dari stepper dan bit lainnya berfungsi untuk pengontrolan arah (searah jarum jam atau berlawanan). Pengontrolan dilakukan melalui port parallel pada PC yang memiliki 12 bit output dan 5 bit input. 12 bit output pada port parallel tersebut dapat mengontrol 6 buah motor stepper. 5 bit input digunakan untuk mendeteksi limit atau switch yang digunakan sebagai indikasi posisi home. Berikut ini adalah konfigurasi port parallel pada PC untuk integrasi EMC : Pin Port Parallel
Fungsi
D0, Pin 2
Arah untuk sumbu X
D1, Pin 3
Clock untuk sumbu X
D2, Pin 4
Arah untuk sumbu Y
D3, Pin 5
Clock untuk sumbu Y
D4, Pin 6
Arah untuk sumbu Z
D5, Pin 7
Clock untuk sumbu Z
D6, Pin 8
Arah untuk sumbu A
D7, Pin 9
Clock untuk sumbu A
C0, Pin 1
Arah untuk sumbu B
25 C1, Pin 14
Clock untuk sumbu B
C2, Pin 16
Arah untuk sumbu C
C3, Pin 17
Clock untuk sumbu C
S3, Pin 15
Limit sensor sumbu X, Y ,Z positif
S4, Pin 13
Limit sensor sumbu X, Y ,Z negative
S5, Pin 12
Home sensor sumbu X, Y, Z
S6, Pin 11
Probe
S7, Pin 10
Spare Tabel 2.5 Pemetaan port parallel pada pc
2.5.2
INI File Menurut The EMC team writers (2000), INI File adalah file teks yang
berisi informasi tentang konfigurasi-konfigurasi peralatan dari mesin misalnya mesin XY Table yang digunakan. Berikut ini adalah bagian dari INI File yang perlu diperhatikan untuk menjalankan XY Table yang menggunakan motor stepper: 1. [EMC] SECTION • VERSION Bagian ini berisi versi dari INI file • MACHINE Bagian ini berisi nama sistem yang akan ditampilkan apabila perangkat lunak EMC dijalankan.
26 • NML_FILE Bagian ini berisi nama file NML. • DEBUG Bagian ini berisi pilihan mode penampilan pesan debugging yang akan tampil pada text console. • RS274NGC_STARTUP_CODE Bagian ini berisi perintah g-code yang akan dieksekusi pada saat perangkat lunak EMC dijalankan. 2. [DISPLAY] SECTION • PLAT • DISPLAY Bagian ini berisi Graphical User Interface (GUI) yang digunakan • CYCLE_TIME Bagian ini berisi nilai periode (detik) dari update tampilan perangkat lunak EMC. • HELP_FILE Bagian ini berisi lokasi dan nama dari file “help” yang digunakan saat tombol GUI HELP ditekan. • POSITION_OFFSET Bagian ini berisi tentang pengaturan display awal tentang posisi, RELATIVE atau MACHINE. • POSITION_FEEDBACK
27 Bagian ini berisi tentang pengaturan display awal tentang posisi, ACTUAL atau COMMANDED. • MAX_FEED_OVERIDE Bagian ini berisi tentang nilai maksimum dari FEED OVERRIDE yaitu prosentase dari kecepatan yang digunakan. Nilai 1.0 berarti 100% dari kecepatan. • PROGRAM_PREFIX Bagian ini berisi tentang prefix yang akan ditambahkan pada NC (Numerical Control) Program sebelum di-load. • INTRO_GRAPHIC Bagian ini berisi nama file gambar yang akan ditampilkan pada saat EMC dijalankan. • INTRO_TIME Bagian ini berisi durasi waktu penampilan file gambar intro. • BALLOON_HELP Bagian ini berisi tentang penampilan popup ballon help pada interface yang berbasiskan grafik (GUI). • LINEAR_UNITS Bagian ini berisi tentang satuan yang dipakai pada sumbu linear. AUTO, INCH, MM atau CM adalah nilai yang dapat dipilih. • ANGULAR_UNITS Bagian ini berisi tentang satuan yang dipakai pada sumbu rotary. AUTO, DEG, RAD atau GRAD adalah nilai yang dapat dipilih.
28 3. [TASK] SECTION • PLAT Hanya ada satu pilihan pada bagian ini yaitu NONREALTIME. • TASK Nama dari program task controller yang akan berkorespondensi dengan program I/O controller. 4. [EMCMOT] SECTION • PLAT Hanya ada satu pilihan pada bagian ini yaitu REALTIME. • EMCMOT Bagian ini berisi nama modul motion control yang digunakan. • IO_BASE_ADDRESS Bagian ini berisi alamat dari parallel port atau motion control card • PERIOD Bagian ini berisi nilai periode dari pulse yang dikeluarkan melalui parallel port jika menggunakan “freqmod.o” motion control pada bagian EMCMOT. 5. [TRAJ] SECTION • AXES Bagian ini berisi nilai dari banyaknya sumbu (axes) yang dikontrol. • COORDINATES Bagian ini berisi nama dari sumbu (axes) yang dikontrol.
29 • HOME Bagian ini berisi nilai dari posisi yang telah di-homekan (homed position) untuk tiap – tiap sumbu (axes). • LINEAR_UNITS Bagian ini berisi dari nilai linear units per millimeter. Jika satuan yang digunakan adalah inch maka bagian ini berisi “0.03937007874016”, namun jika satuan yang digunakan adalah millimeter maka bagian ini berisi “1”. • ANGULAR_UNITS Bagian ini berisi dari nilai angular units per degree. Jika system menggunakan radian maka bagian ini berisi “0.01745329252167”, default bernilai 1. • DEFAULT_VELOCITY Bagian ini berisi nilai awal dari kecepatan sumbu (axes) yang dikontrol (units per second). • MAX_VELOCITY Bagian ini berisi dari nilai maksimal dari kecepatan sumbu (axes) yang dikontrol (units per second). • DEFAULT_ACCELERATION Bagian ini berisi nilai awal dari percepatan sumbu (axes) yang dikontrol (units per second2).
30 • MAX_ACCELERATION Bagian ini berisi nilai maksimum dari percepatan sumbu (axes) yang dikontrol (units per second2). 6.
[AXIS_#] SECTION • TYPE Bagian ini berisi dari tipe dari sumbu (linear atau angular) yang digunakan. • UNITS Bagian ini berisi dari nilai linear units per millimeter. Jika satuan yang digunakan adalah inch maka bagian ini berisi “0.03937007874016”, namun jika satuan yang digunakan adalah millimeter maka bagian ini berisi “1”. •P Bagian ini berisi nilai dari proportional gain jika menggunakan motor servo untuk sumbunya. •I Bagian ini berisi nilai dari integral gain jika menggunakan motor servo untuk sumbunya. •D Bagian ini berisi nilai dari derivative gain jika menggunakan motor servo untuk sumbunya. • INPUT_SCALE
31 Bagian ini berisi nilai dari perbandingan jumlah step pada motor stepper dengan pergerakan baut (mm) jika mur berputar 1 putaran penuh atau 360 derajat. • OUTPUT_SCALE Nilai pada bagian ini disarankan sama dengan nilai pada bagian INPUT_SCALE • MIN_LIMIT Bagian ini berisi nilai minimum dari jarak tempuh sumbu (axes). • MAX_LIMIT Bagian ini berisi nilai maksimum dari jarak tempuh sumbu (axes). • MIN_LIMIT_SWITCH_POLARITY Bagian ini berisi dari nilai kodisi (0 atau 1) switch yang aktif jika sumbu (axes) telah sampai ke jarak tempuh minimalnya. • MAX_LIMIT_SWITCH_POLARITY Bagian ini berisi dari nilai kodisi (0 atau 1) switch yang aktif jika sumbu (axes) telah sampai ke jarak tempuh maksimalnya. • HOME_SWITCH_POLARITY Bagian ini berisi dari nilai kodisi (0 atau 1) switch yang aktif jika sumbu (axes) telah sampai ke posisi home. • HOMING_POLARITY Bagian ini berisi dari arah pergerakan homing diinisialisasikan, “1” berarti kearah sumbu positive sedangkan “0” berarti arah pergerakan menuju arah sumbu negative.
32 7. [EMCIO] SECTION • EMCIO Bagian ini berisi nama program I/O controller. • IO_BASE_ADDRESS Bagian ini berisi alamat dari port yang digunakan untuk mengontrol motor.
2.6
RS-274NGC atau G-Code Pada tahun 1960 EIA (Electronic Industry Association) mengembangkan standarisasi RS-274 yang merupakan dasar dari Numeric Control Programs untuk pengaturan mesin-mesin CNC, misalnya mesin yang digunakan untuk pembuatan PCB yang dikontrol secara numerik. Pada Februari 1980 revisi dari RS-274D (ISO 6983) atau Gerber format ditetapkan, yang terdiri dari beberapa bagian (http://www.artwork.com/gerber/appl2.htm) :
G-Code
D-Code
M-Code Salah satu extension atau pengembangan dari RS-274D yaitu RS-274NGC
atau G-Code yang spesifikasinya ditetapkan pada tanggal 24 Agustus 1992 dengan judul ”RS274/NGC for the LOW END CONTROLLER - First Draft”. Untuk menuliskan perintah dalam pemrograman G-Code biasanya diawali dengan huruf G.
33 2.6.1
Block Unit dasar dalam pemrograman NC (numerical control) disebut Block.
Block terdiri dari sebuah baris yang dapat berisi satu atau beberapa kata atau Word. Sebuah kata atau Word berisi huruf yang mendeskripsikan fungsi – fungsi yang akan dilakukan dan dikuti dengan field angka yang menjelaskan nilai dari fungsi tersebut. 1 buah baris dapat diisi maksimum sebanyak 256 karakter. Dalam sebuah Block boleh terdapat spasi, spasi tersebut akan dihiraukan. Misal ”N02 G00 X20 Z20” sama dengan ”N 02G00X2 0Z 20”. Dalam sebuah listing program dibolehkan adanya baris kosong, baris kosong tersebut akan dihiraukan oleh EMC. Penulisan program bersifat case insensitive. Berikut ini adalah sebuah contoh dari 1 buah Block perintah: N02 G00 X20 Z20 Perintah tersebut dapat diterjemahkan sebagai berikut, N02 berarti baris perintah nomor 2, bergerak dengan kecepatan maksimum ke posisi X = 20 dan Z = 20.
2.6.2
Word Word atau kata yang digunakan dalam pemrograman NC pada EMC
adalah sebuah huruf yang diikuti oleh bilangan real. Konfigurasi huruf G dan angka yang dapat diterima oleh EMC ditampilkan pada Tabel 2.6.
34 G Code List G0 rapid positioning
G56 use preset work coordinate system 3
G1 linear interpolation
G57 use preset work coordinate system 4
G2 circular/helical interpolation (clockwise)
G80 cancel motion mode (includes canned)
G3 circular/helical interpolation (c-clockwise)
G81 drilling canned cycle
G4 dwell
G82 drilling with dwell canned cycle
G10 coordinate system origin setting
G83 chip-breaking drilling canned cycle
G17 xy plane selection
G84 right hand tapping canned cycle
G18 xz plane selection
G85 boring, no dwell, feed out canned cycle
G19 yz plane selection
G86 boring, spindle stop, rapid out canned
G20 inch system selection
G87 back boring canned cycle
G21 millimeter system selection
G88 boring, spindle stop, manual out canned
G40 cancel cutter diameter compensation
G89 boring, dwell, feed out canned cycle
G41 start cutter diameter compensation left
G90 absolute distance mode
G42 start cutter diameter compensation right
G91 incremental distance mode
G43 tool length offset (plus)
G92 offset coordinate systems
G49 cancel tool length offset
G92.2 cancel offset coordinate systems
G53 motion in machine coordinate system
G93 inverse time feed mode
G54 use preset work coordinate system 1
G94 feed per minute mode
G55 use preset work coordinate system 2
G98 initial level return in canned cycles
Tabel 2.6 Daftar Instruksi G-Code
Selain menggunakan awalan huruf G, terdapat juga huruf-huruf lain yang dapat dikolaborasikan dalam penulisan perintah pada EMC: X position
Z position
Y position
M code
35 F feed rate
T tool selection
S spindle speed
I arc data X axis
N line number
J arc data Y axis
R radius
K arc data Z axis
Untuk bagian yang bergaris miring diisi angka dari nilai yang diinginkan.
2.6.3
Perintah-perintah Pergerakan Dasar G-Code Perintah-perintah dasar G-Code yang dibutuhkan untuk mengambar
objek-objek sederhana pada Sistem XY-Table ini adalah sebagai berikut.
2.6.3.1
Perintah G0 Perintah “G0” berfungsi untuk menggerakan pointer ke posisi
yang diinginkan dengan membentuk garis lurus dengan kecepatan maksimum. Misalnya perintah “N01 G0 X10.00 Y5.00” ini berarti mengerakan pointer ke posisi X=10mm Y=5mm dengan kecepatan maksimum.
Gambar 2.7 Arah pergerakan perintah G0
2.6.3.2
Perintah G1 Perintah “G1” berfungsi untuk menggerakan pointer ke posisi
yang diinginkan dengan membentuk garis lurus. Kelebihan perintah G1
36 dibanding dengan G0 adalah kecepatan yang dapat diprogram. Misalnya perintah “N02 G1 X12 F8.0” ini berarti menggerakan pointer ke posisi X=12mm dengan feedrate sebesar 8mm/menit.
Gambar 2.8 Arah pergerakan perintah G1
2.6.3.3
Perintah G2 Perintah “G2” berfungsi untuk menggerakan pointer ke posisi
yang diinginkan dengan membentuk busur (arc) dengan titik pusat dan kecepatan yang ditentukan searah jarum jam. I adalah nilai penambah (incremental distance) pada sumbu X yang menetukan posisi titik pusat. Sedangkan J adalah nilai penambah (incremental distance) pada sumbu Y yang menentukan posisi titik pusat. Misalnya pointer saat ini berada pada posisi X=0mm dan Y=1mm, kemudian diberikan perintah “G2 X1.0 Y0.0 I0.0 J-1.0 F5.0” ini berarti gerakan pointer ke posisi X=1mm dan Y=0mm dengan membentuk busur dengan titik pusat (0,0) dengan kecepatan 5mm/menit. Penentuan titik pusat pada sumbu X menggunakan rumus Xpusat = Xawal + I, dan pada sumbu Y menggunakan rumus Ypusat = Yawal + J. R (Radius) juga dapat digunakan untuk penentuan titik pusat. Misalnya posisi awal pointer berada di X=0 dan Y=1 kemudian diberikan perintah “G2 X1.0 Y0.0 R=1.0 F5.0” ini berarti gerakan
37 pointer ke posisi X=1 dan Y=0 membentuk busur searah jarum jam dengan radius sebesar 1mm dan feedrate 5mm/menit.
Gambar 2.9 Arah pergerakan perintah G2
2.6.3.4
Perintah G3 Perintah “G3” hampir sama dengan perintah G2 hanya saja
gerakan yang dibentuk berlawanan dengan arah jarum jam.
Gambar 2.10 Arah pergerakan perintah G3
2.6.3.5
Perintah G4 Perintah “G4” berfungsi untuk menahan gerakan pointer selama
periode yang telah ditetapkan dalam detik. Misalnya diberikan perintah “G4 P4” yang berarti tahan gerakan pointer selama periode 4 detik.
38 2.6.3.6
Perintah G17 Perintah ”G17” berfungsi untuk menyatakan bidang kerja yang
dipilih adalah bidang XY.
2.6.3.7
Perintah G18 Perintah ”G18” berfungsi untuk menyatakan bidang kerja yang
dipilih adalah bidang XZ.
2.6.3.8
Perintah G19 Perintah ”G19” berfungsi untuk menyatakan bidang kerja yang
dipilih adalah bidang YZ.
2.6.3.9
Perintah G20 Perintah ”G20” berfungsi untuk menyatakan satuan yang
digunakan adalah inch.
2.6.3.10 Perintah G21 Perintah ”G21” berfungsi untuk menyatakan satuan yang digunakan adalah milimeter.
2.7
L297 IC ini digunakan untuk aplikasi modul driver motor stepper. Modul ini menerima sinyal input dari PC atau modul kontroller (misalnya mikrokontroller) dan menghasilkan output yang ditujukan kepada motor stepper sesuai dengan input yang
39 diterima. L297 yang dikonfigurasikan dengan L298 dapat mengontrol 2-Phase bipolar stepper, 4-Phase unipolar Stepper dan 4-Phase variable reluctances motor. Menggunakan modul ini mempunyai keuntungan diantaranya adalah pemakaian komponen-komponen yang sedikit sehingga dapat menghemat biaya dan tempat, pengembangan piranti lunak yang lebih mudah dan kehandalan yang baik.
Gambar 2.11 Konfigurasi pin-pin L297
NO
NAMA PIN
1
SYNC
2
GND
3
HOME
4
A
5 6 7
B C
8
INH2
FUNGSI Sinkronisasi clock jika menggunakan L297 lebih dari satu Ground Pin yang mengindikasikan keadaan awal dari motor stepper Output sinyal A Aktif 0, berfungsi untuk menghalangi sinyal A dan B jika dihubungkan dengan L398 pin EAa. Output sinyal B Output sinyal C Aktif 0, berfungsi untuk menghalangi sinyal C dan D jika dihubungkan dengan L398 pin
40
9
D
10
ENABLE
11 12
CONTROL Vs
13
14 15 16 17 18 19 20
EAb. Output sinyal D Enable Chip, bila bernilai 0 maka A,B,C,D dan Pin INH 1,2 akan bernilai 0.
Tegangan Supply 5 volt Pin input untuk memonitor besar arus atau tegangan yang dialirkan ke C dan D pada SENS2 motor stepper. Jika melewati batas maka INH2 bernilai 0. Pin input untuk memonitor besar arus atau tegangan yang dialirkan ke A dan B pada SENS1 motor stepper. Jika melewati batas maka INH1 bernilai 0. Vref Tegangan referensi OSC Input pin osilator Menentukan arah gerakan motor. Jika bernilai 1, maka stepper akan bergerak searah jarum jam. CLOCK Menentukan clock untuk tiap langkah stepper Menentukan metode pergerakan stepper. Jika HALF/FULL diberi nilai 1 maka metode pergerakan yang dipakai adalah Half Step RESET Pin Reset Tabel 2.7 Fungsi pin-pin L297
2.8
L298 L298 merupakan integrated circuit yang dapat men-drive tegangan dan arus yang tinggi, IC ini di rancang untuk menerima input standar TTL logic level (5vollt) untuk menjalankan beban induktif misalnya relay, solenoid, DC dan stepper motor. Seperti pada gambar dibawah ini dua buah pin enabel berfungsi untuk mengaktifkan dan me-nonaktifkan output sinyal dari sistem secara independent. Output tegangan pin sense dari L298 dapat mengkontrol besarnya arus dengan mengubah logic input dari pin enable menjadi low dengan tujuan menjaga agar modul atau alat yang akan dikontrol dari tegangan dan arus yang terlalu tinggi.
41
Gambar 2.12 Konfigurasi pin-pin L298
MW pin 1;15
Pin SO 2;19
2;3
4;5
4
6
5;7 6;11
7;9 8;14
8 9
1,10,11,20 12
10;12 13;14
13;15 16;17
-
3;18
NAMA SenseA SenseB
KETERANGAN Antara pin ini dan Gound terhubung sense resistor untuk mengatur arus yang menuju device Out1 ; Out2 Pin output1 dan 2 yang terhubung ke device Vs Tegangan Supply untuk output/device Input1 ; Input2 Pin Input 1 dan 2 (5volt) EnableA;EnableB Pin enable A dan B (aktif jika diberikan logic high/5volt) GND Ground Vss Tegangan Supply untuk mengaktifkan L298 Input3 ; Input4 Input A dan B (5volt TTL logic) Out3 ; Out4 Pin output3 dan 4 yang terhubung ke device NC Tidak terhubung Tabel 2.8 Fungsi pin-pin L298