Salam otomasi.
Gambar 1. Cara kerja sistem
Kesempatan kali ini saya akan berusaha menjelaskan bagaimana cara membuat interface PLC omron dengan menggunakan komunikasi serial. Plc yang saya gunakan adalah CJ1M ada beberapa setting serial property yang harus anda lakukan agar interface anda dapat berkomunikasi dengan baik.
- Baudrate :9600
- Data Bits :7
- Parity: Even
- stop bit: 2
oke... kali ini interface yang saya gunakan adalah Visual Studio 2013 dengan menggunakan Bahasa pemrograman Visual Basic. jika di tanya kenapa saya memilih visual basic? ya saya jawab aja "suka-suka saya" hehehe, kalau menggunakan visual basic itu bahasanya lebih muda kemudian passing data antar form juga lebih mudah. dan manggil class / sub program sangat mudah. kalau dibandingkan dengan bahasa pemrograman lain. sekarang saya akan menjelaskan proses pembuatan dari program interface
Gambar 2. Main Form Interface SCADA
1. pembacaan serial port dan property
untuk mengetahui com yang digunakan secara langsung dapat menggunakan instruksi
Gambar 2. Main Form property Interface SCADA
myPort = IO.Ports.SerialPort.GetPortNames() ‘variable myport digunakan untuk menampung Com Serial yang terbaca
menudian tambahkan instruksi pada combo box sesuai gambar di atas dengan instruksi
cmbbaudrate.Items.Add(9600)
dan untuk menampung data com yang terbuka dengan menggunakan instruksi
For i = 0 To UBound(myPort)
cmbcom.Items.Add(myPort(i)) ‘menambahkan nama Com serial Pada item Combobox
cmbcom.Text = myPort(i) 'Set cmbPort text to the first COM port detected
Next
2. kemudin pada sub button_connect kita harus mengatur bebera parameter untuk komunikasi serial
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
On Error GoTo error_code
If cmb_unit_plc.Text <> "" Then
If dataopen = True Then
SerialPort1.ParityReplace = &H3B ‘defaul
SerialPort1.PortName = com ‘mengambil nama pada item Cmb_combobox
SerialPort1.BaudRate = CInt(baudrate
If parity = "None" Then
SerialPort1.Parity = IO.Ports.Parity.None
ElseIf parity = "Even" Then
SerialPort1.Parity = IO.Ports.Parity.Even
ElseIf parity = "Odd" Then
SerialPort1.Parity = IO.Ports.Parity.Odd
End If
If stopbit = 1 Then
SerialPort1.StopBits = IO.Ports.StopBits.One
ElseIf stopbit = 1.5 Then
SerialPort1.StopBits = IO.Ports.StopBits.OnePointFive
ElseIf stopbit = 2 Then
SerialPort1.StopBits = IO.Ports.StopBits.Two
End If
SerialPort1.RtsEnable = False
SerialPort1.Handshake = IO.Ports.Handshake.None
SerialPort1.DataBits = databit
SerialPort1.ReceivedBytesThreshold = 1
SerialPort1.NewLine = vbCr
SerialPort1.ReadTimeout = 10000
SerialPort1.Open()
comOpen = SerialPort1.IsOpen
Else
MsgBox("set your serial property")
End If
Else
MsgBox("set your plc unit")
End If
Exit Sub
error_code:
MsgBox("Serial error")
End sub
3. Kemudian untuk mengirim data serial dengan menggunakan instruksi
If SerialPort1.IsOpen = True Then SerialPort1.WriteLine(data_kirim) ‘instruksi digunakan untuk mengirim data serial
end if
4. Kemudian untuk menerima data serial dengan menggunakan instruksi
Private Sub SerialPort1_DataReceived(ByVal sender As System.Object, _ ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) _ Handles SerialPort1.DataReceived
If comOpen Then
Try
byteEnd = SerialPort1.NewLine.ToCharArray
' get number off bytes in buffer
Bytenumber = SerialPort1.BytesToRead
' read entire string until .Newline
readBuffer = SerialPort1.ReadLine()
'data to UI thread
Me.Invoke(New EventHandler(AddressOf DoUpdate))
Catch ex As Exception
MsgBox("read " & ex.Message)
End Try
End If
End Sub
Public Sub DoUpdate(ByVal sender As Object, ByVal e As System.EventArgs)
Dim header As String
txtinputdata.Text = readBuffer ‘digunakan untuk menampilkan data serial yang masuk
End Sub
- Oke selanjutnya saya akan membahas hal terpenting pula dalam proses komunikai data antara PLC dengan Visual yaitu pengkodean FCS
- Bagaimna cara mendapatkan kode FCS plc secara otomatis terhadap string yang akan dikirim???, oke.. langsung saja ini caranya:
data_olah = @02RW00010001 ‘data olah digunakan untuk menampung data yang akan dikirim ke plc
panjang_data = Len(data_olah) ‘digunakan untuk mengetahui panjang data string pada variable data _olah
a = 0
For I = 1 To panjang_data
parsing = Mid(data_olah, I, 1)
B = Asc(parsing)
a = Asc(parsing) Xor a
Next I
Fcs = Hex(a)
If Len(Fcs) = 1 Then
Fcs = "0" + Fcs
End If
protokol_kirim = data_olah + Fcs + "*" ‘protokol_kirim adalah variable yang berfungsi penggabungan data yang akan dikirim ke PLC
suatu misal data yang akan dikirim adalah @02RW00010001 maka dengan rumus FCS diatas akan didapatkan nilai FCS=47 jadi pada variable protokol kirim adalah
data_olah + Fcs + "*" ==> @02RW0001000147*
Untuk contoh detail aplikasinya disa anda download disini , sekalian dengan penjelasan instruksi dasar C-Mode Command untuk Omron CJ1M.
Semoga Bermanfaat.
▷ Online casino | €100 + 50 FS Welcome Bonus + 25 Free
ReplyDeletePlay online casino games for free, no registration required. Learn how you can 온라인 카지노 먹튀 win with the No Deposit Bonus and discover bonuses and more.