Sabtu, 17 Desember 2011

Komunikasi PLC dan Microcontroller ATMEGA

Gambar 1

Perhatikan rangkaian gambar 2 dibawah ini, apabila SW 1 ditekan maka led 1 juga akan menyala.bersamaan dengan itu mikrocontroler mengirimkan data perintah ke PLC megisikan nilai "1" pada HR1 (holding relay 1), holding relay pada PLC berfungsi sebagai memori penyimpan, yang apabila PLC dimatikan (power suplay Mati) maka data yang ada di memory HR tidak akan berubah tetap seperti terahir nilai yang ada. atau bisa dikatakan HR adalah memory relay PLC seperti pada penyimpanan EEPROM.


 Gambar 2
Listring Program BASCOM untuk micro sebagai berikut atau dalam .BAS dan .HEX download disini
'-----------------------------------------------------------------------------------------
'name                     : writeHR.bas
'copyright                : (c) 2011, BELAJARPLCPLUS
'purpose                  : Komunikasi PLC dan Microcontrol
'micro                    : Mega16
'-----------------------------------------------------------------------------------------
'$sim
$regfile = "m16def.dat"                                     ' specify the used micro
$crystal = 12000000                                          ' used crystal frequency
$baud = 9600                                                ' use baud rate
$hwstack = 32                                               ' default use 32 for the hardware stack
$swstack = 10                                               ' default use 10 for the SW stack
$framesize = 40
Config Com1 = Dummy , Synchrone = 0 , Parity = Even , Stopbits = 2 , Databits = 7 , Clockpol = 0
Config Portb = Input
Config Portc = Output
Set Portb.0
Set Portb.1

    Dim R As Byte
    Dim Length As Byte
    Dim I As Integer
    Dim K As String * 1
    Dim Txt As String * 20
Mulai:
Txt = "00SC03"
Gosub Send
Do
Debounce Pinb.0 , 0 , Set_plc , Sub                         ' Deteksi Sw 1
Debounce Pinb.1 , 0 , Reset_plc , Sub                       ' Deteksi SW 2
Loop

Set_plc:
Set Portc.0                                                 'nyalakan led 1
Reset Portc.1                                               'matikan led 2
Txt = "00WH00010001"
Gosub Send
Return

Reset_plc:
Set Portc.1                                                 'nyalakan led 2
Reset Portc.0                                               'matikan led 1
Txt = "00WH00010002"
Gosub Send
Return

Send:                                                       'kirim perintah
Length = Len(txt)
    R = Asc( "@")
    For I = 1 To Length
        K = Mid(txt , I , 1)
        R = R Xor Asc(k)
    Next
Print "@" ; Txt ; Hex(r) ; "*" ; Chr(13)
Return

End

Hasil pengiriman data dari micro ke PLC perhatikan pada gambar 3 dibawah ini, apabila kita mengirimkan data HR1=1 maka pada program PLC diolah pada perintah " =(300)" (compare) yaitu apabila HR1=1 maka Output 1.00 akan menyala, begitu juga apabila SW2 pada microcontrol kita tekan, maka data yang dikirim ke PLC adalah nilai HR1=2 maka output 1.01 pada PLC akan ganti yang menyala. program plc dapat di download dini

Gambar 3

Selamat mencoba semoga berhasil.

3 komentar:

  1. wah keren mas, ini tutorial yg membantu sy sekali
    salam programmer PLC
    http://plctutor.wordpress.com/

    BalasHapus
  2. Menarik sekali tutorialnya semua berdasar dari latihan sendiri untuk dibagi.
    Saya sedang belajar plc omron dan saya hobby di micro.
    Ada pertanyaan pada project ini. Kalau konfigurasi seperti project ini downloadnya program PLC lewat mana mas? Masih lewat serial port atau harus ke port peripheral?
    Salam hobby
    http://www.henelautomation.blogspot.com

    BalasHapus
  3. Dr contoh diatas write to plc... Utk read from plc listingnya gmn

    BalasHapus