Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 7

SERİ HABERLEŞME NEDİR

?
   Endüstri geliştikçe elektronik cihazlarda bilgi transferi daha önemli hale geldi.
Bu haberleşmenin hardware ve software açısından

kolay,

hızlı

güvenli

olmak üzere üç sıfatı vardır.

Bu bölümde hardware özelliklerinden bahsedeceğiz.

Seri haberleşme bir datanın bir cihazdan başka bir cihaza seri yöntem ile bilgi
transferidir.

Bunu bir örnekle açıklamaya çalışalım.

Karşılıklı iki evde bulunan iki insan birbirleri ile evde bulunan bir lamba üzerinden
haberleşmek istiyorlar. Mors alfabesi kullanabilirler, Ancak biz seri haberleşme
kullanacağız.

Her iki kişide bir sistem üzerinde anlaştılar,


Sistem çok basit. Her bir saniye birim zaman kabul edildi.
Ve bu periyoda göre 0 veya 1
yani lamba kapalı ve açık sinyallerini topluyorlar. (0 1 0 0 0 0  1 1)

bu örnekte gördüğünüz gibi haberleşme başladıktan sonra lamba 2.,7. ve 8.


periyod’da lamba yandı diğerlerinde kapalı kaldı.

Alıcı tarafta bu bilgiyi kaydetti. Alınan bu bilginin ne olduğu konusunda anlaştıkları


hususta ASCII tabloyu kullanmaktı.

Bilgiyi alan kişi ilk olarak bu bilgiden bir sayı sonrada ASCI tablosundaki
karekteri bulmalıdır.

İlk önce sayıyı bulalım.

Binary sayı sisteminde tüm bitler 0 olursa üretilen sayıda 0 olur en sağdaki bit 1
olduğunda sayı bir sağdan ikinci bit 1 olduğunda sayı 2 sağdan 1 ve 2. bitler bir
olursa sayı 3 sağdan 3. bir olur diğerleri 0 olursa sayı 4 şeklinde bir sayı sistemidir.
Aslında 8 değişkenli permütasyondan başka bir şey değil.

Örnekte ifade edilen sayı bu sisteme göre 70’dir.


İkinci aşama ASCII tablosunda bu sayıya karşılık gelen ifadeyi bulmaktır. Hemen
Tabloya bakıp ifade edilen sayının “F” karekteri olduğunu öğreniyoruz. Gönderen
kişi bilgi göndermeye devam ediyor lambayı yakıp söndürüyor. Gönderdiği diğer
bilgiler aşağıdaki gibidir.

(0 1 0 1 0 1 0 1) (0 1 0 0 1 1 0 0) (0 1 0 1 0 1 0 0) (0 1 0 0 0 1 0 1) (0 1 0 0 1 0 1 1)
85 = U                 76 = L                  84 = T                  69 = E                  75 = K

       Gönderenin başka bilgi gönderip göndermeyeceğini anlaştığımız sürenin 1,5 katı


kadar daha bekleyip göndermediği taktirde bilginin bittiğini anlıyor ve topladığımız
bilgileri ilk önce sayıyı sonrada ASCII tablosundan karekteri bulup birleştiriyoruz.

Sonuç = FULTEK .

Tek taraflı olarak bir bilgi transferi yaptık aynı işlem karşılıklı devam edip duruyor.
Bu örnekte bir çok seri haberleşme komutu size aktarıldı.

İlk olarak anlaştığımız süre Baudrate’dir. Bilginin bittiğini anladığımız anlaştığımız


sürenin 1,5 stop bittir. Bu sistem bu haliyle son derece güvensizdir. Bir çok sebepten
dolayı yanlış anlamalar olabilir. Daha sonraki bölümlerde yanlış anlamaları ortadan
kaldıracak sistemler anlatılacaktır.
SERİ HABERLEŞME PROTOKOL NEDİR?

Seri haberleşme nedir ?. Bu bölümde ise seri haberleşme software özellikleri


hakkında bilgi vermeye çalışacağım. Örnekte bilginin transferini gerçekleştirmiştik
fakat bilgi bir çok sebepten dolayı yanlış anlaşılabilir yani güvensiz durumdadır. Bu
bilgiyi yanlış anlamalara mahal vermeden transfer etmeliyiz.

Örneğimizi biraz daha komplike hale getirelim. Artık adamları ortadan kaldırıp
bunlara cihaz diyelim.

Her iki cihaz haberleşme haricinde işler yapıyor.

A cihazı bilgi gönderirken B cihazı hazır olmayabilir. Bu arada başka bir işle
meşguldür ve gönderilen bilgileri yarısından itibaren toplayabilir.

Bu ve bunun gibi bir çok sebepten dolayı Haberleşme protokollerine ihtiyaç duyulur.

Bunun ilk örnekleri 3964 protokolüdür. ASCII tablosunda sayı değeri 20’nin altında
olan karekterler komut olarak işlenir.

Bu protokol gönderen cihaz alıcıya STX (sayı değeri “2”) göndererek haberleşmeyi
başlatır alıcı cihaz hazır olduğunda DLL ile cevap verir.

Artık haberleşme hatasız olarak başlayabilir.

Gönderen cihaz göndermek istediği bilgilerden bir string (bilgi kümesi) yapar ve
topluca sevk eder.

Bu bilgi kümesinin başında ve sonunda STX, DLL (Dynamic Link Library), ETX gibi
ASCII tablosunda sayı değeri 20’den küçük olan karakterler kullanır.

Böylece alan cihaz aldığı bilginin başını ve sonunu kaçırmaz. Ayrıca gönderediği byte
sayısı’da bir byte olarak iletilir alan cihaz aldığı byte’lar ile byte sayısını karşılaştırır ve
doğru ise DLL göndererek bilgiyi doğru aldığını bildirir. Böylece karşılıklı haberleşme
sürüp gider.

seri haberleşme protokolü Profibus ve Modbus kullanılır. İki sistemin temel farklılığı
Modbus standart seri port RS232 veya RS 485 profibus ise yalnız RS485 ve kendine
has chip ile çalışmasıdır. Ayrıca profibus hattından bilgi okumak ve bilgi yazmak son
derece zor bir iştir.

Modbus’ta ise özel donanımlara ihtiyaç yoktur. Basit, Güvenli, ve yeterince hızlıdır.
En yaygın haberleşme sistemidir. Neredeyse her cihazda mevcuttur. İlave bir
bedelde talep edilmez.
MODBUS RTU NEDİR?
Modbus iki farklı sistemde çalışır.

ASCII mod

RTU mod.

ASCII mod

her karekter bir byte’dır.

Örneğin 12345 sayısını ASCII mod’da göndermek için “1”,”2”,”3”,”4”,”5” şeklinde 5


byte’lık bilgi göndermelisiniz. Bu bilginin başında ve sonunda modbus protokolünün
gereği olan diğer bilgileride eklediğinizde bu bilgi için 14 byte bilgi göndermeniz
gerekir

RTU MOD

.Rtu mod ise byte yarım yarım kullanır ve iki kat daha fazla veriyi veya aynı veriyi iki
kat daha hızlı taşır.

Örneğin 12345 sayısını Rtu mod ile taşımak için bu sayıyı 2 byte olarak hesaplar

Formül

1.byte = 12345 / 256

2.byte= 12345-(1.byte x 256)

Bu formüle göre 1.byte = 48

2.byte = 57 dir.

Bilgiyi alan cihaz ise sonuç=(1.byte x 256)+2.byte = (48x256)+57 = 12345 

Göndermek istediğiniz string büyüdükçe rtu’nun avantajıda artmaktadır. Hiçbir

dez avantajı bulunmadığından dolayı tüm firmalar RTU’yı tercih etmektedirler.

MODBUS RTU İLE HABERLEŞME NASIL YAPILIR?

örnek bir modbus stringi oluşturma ve sistemin genel işleyişi hakkında bilgi

Sistem bir master ve isteğe bağlı bir veya daha çok slave modülden oluşur. Master
slave modüllere sorgu gönderir ve sorguyu alan modüllerden adresi uyan(sadece bir
modüldür.)
modül sorgunun gereği olan işi yapar ve cevabı master’a gönderir.
Master sırayla tüm slave modülleri tarar ve benzer operasyonlar yürütür.
Örnek bir strink oluşturalım. 10 adet slave ve bir masterdan oluşan
networkümüz olduğunu varsayalım.

İlk olarak registers adresleri hakkında bilgi verelim.

Her slave cihaz masterın sorgusuna karşı eylem gerçekleştireceği hafıza alanına
sahiptir.

Örneğin elektrik sayacımız registers

40001 adresinde anlık akım,

40002 adresinde anlık güç,

40003 adresinde toplam güç olsun.

Master bu cihaza erişip 40001 registers’ındaki bilgiyi gönder diyecek cihazda bunu
göndericek, başka bir sorguda farklı bir registers’dan bilgi okumak isteyebilir veya
yazmak isteyebilir. Tüm bunları örneğimizde anlatacağız. 

Master bilgi okumak için oluşturduğu string:

Slave cihaz adresi…………………..01   1.byte Her cihazın farklı bir adresi vardır ve
master’ın adresi olmaz.

Fonksiyon kodu……………………..03   Bilgi okumak için 03. Sonraki bölümlerde


daha fazla bilgi bulabilirsiniz.

Registers başlangıç adresi…….. 0000   2.byte (Registers adresi “30001” + ofset”-


30001” = 0)

Okunacak registers sayısı……… 0001   2.byte

Crc 16……………………………. FA4E   2.byte Gönderilen tüm datalar belli bir


formülden geçirilir ve sonucu string’e eklenir.

Slave cihaz aldığı stringi aynı formülden geçirir ve sonuç aynı olursa bilgiyi işler aksi
taktirde işlemez.Böylece hatalı bilgi gönderilmesinin önüne geçilmiş olur.teroik olarak
%100 olmasada pratikte %100 etkilidir.
Yukarıdaki sorguyu alan adresi 1 olan cihaz aşağıdaki cevabı verecektir.
Networkdeki diğer cihazlar ise bekleyecektir.

Slave’in gönderdiği cevap:

Slave cihaz adresi…………………….01        1 byte


Fonksiyon kodu……………………….03        1 byte
Gönderdiği byte sayısı……………….02        1 byte
Data………………………………...0000        2 byte ilk byte yüksek değerli 2.byte
düşük değerli sonuç = (1.byte x 256) + 2.byte
Crc 16……………………………...B844
En çok kullanılan fonksiyon kodları:
3 = bilgileri okuma
6 = 1 registers(word) bilgi yazma. Master Slave yazıyor.
16 = 1’den fazla registers(word) bilgi yazma. Master Slave yazıyor.
Genelde tüm cihazlar bu kodları destekler ancak fonksiyon kodları aslında daha
çoktur. Fakat çok gerekli olmadığından bir çok cihaz bunları desteklemez.
Crc 16 hesaplama:
       Crc hesaplama başlı başına bir iştir. ASCII ve RTU’da farklı formüller kullanıldığı
gibi 8 bit ,16 bit ve 32 bit hesaplamada kullanılır. En yaygın olanı RTU ve 16 bit’tir.
Sistem gönderdiği tüm byteları CRC 16 formülünden geçirir ve sonucunda 2 byte’lık
hex bir değer üretir. Bu değeride gönderdiği stringin sonunda alıcı cihaza gönderiri
alıcı cihaz aldığı tüm byteları aynı formülden geçirir ve kendi crc’sini oluşturur. Her iki
crc’yi karşılaştırır ve sonuç aynı ise bilgiyi doğru şekilde aldığını anlar ve gerekeni
yapar. Endüstriyel ortamda elektrik gürültüleri sebebiyle seri haberleşme hattında
bilgi bozulmaları sık sık olur bu yöntem bu hatadan dolayı sistemde istenmeyen
durumlar oluşmasını önler. Yinede basit uygulamalarda sabit crc kullanabilirsiniz.
Örneğin belli cihazlara hep aynı sorguyu gönderiyorsanız her cihaz için bir crc
oluşturup her seferinde aynı crc’yi gönderirsiniz. Bilgi aldığınızdada son iki byte
bakmayıp crc fonksiyonunu devre dışı bırakabilirsiniz. Bunu yaptığınızda bilgi
bozulmalarından dolayı çıkacak sorunlarada hazır olmalısınız.
       High level(yüksek düzey) programcı iseniz crc hesaplama ile uğraşmanıza gerek
yok zaten yazdığınız arayüzde modbus wizard mevcuttur ve crc’yi kendisi
oluşturacaktır. High level programlama aslında düşük seviyedir. Yani low level
Assembly’dır , bir üstü proton,picC,Hitech,Microcode ve benzeri chip programları ve
C,VB gibi bilgisayar programlarıdır, Daha üstü(high level) Plc softwareları, Scada
şeklinde gitmektedir. Fultek Modbus Rtu Server ile bunların hiçbiriyle uğraşmadan
tüm Modbus Rtu cihazlardan bilgi toplayıp yaza bilirsiniz. Yapmanız gereken sadece
registers adreslerini girmektir.

ORANSAL VALF KALİBRASYONU NASIL YAPILIR?

ORANSAL VALF KALİBRASYONU NASIL YAPILIR?


Kalibrasyon açıklama basınç valf örneği ile:
Elimizde sınır değerlerini bilmediğimiz bir basınç emniyet valfi olduğunu varsayalım.
Rampa ayarını sıfırlayınız. Analog giriş değerinin 0 olduğuna emin olun. Sistem
basıncını manometreden takip edin.
Okunan basınç sıfırdan büyükse A sıfırsa B.
A) Basınç sıfır oluncaya değin sıfır potunu sola doğru çevirin. Bu işlemi yavaş yavaş
yapın. Hızlı yaparsanız sıfır noktasından fazla aşağı inebilirsiniz. Zira hidrolik sistem
çok hızlı cevap vermiyor olabilir.
B) Sıfır pot ayarının sıfırın çok altında olup olmadığını test etmemiz gerekli. Bunun
için pot’u sağa doğru çevirin basınç yükseldiğinde A şıkkını yapın.
Analog giriş değerini(0-10v) kademeli olarak artırın. Ve Manometreden sistemdeki
basıncı izleyin.Hidrolik sisteminizde   olması gereken maksimum basıncın 100 bar
olduğunu kabul edelim. Ve analog giriş değeri 8 volt’ta iken manometrede 100 bar’ı
gördünüz C. Diğer ihtimal analog giriş değeri 10 volt’a erişti fakat sistem basıncı 100
bar’a erişmedi D.
C) Kazancınız yüksek kazanç potunu sola doğru çevirin. Basınç düşecektir. Bir miktar
çevirdikten sonra analog giriş voltajını artırın örneğin 8.5 volt ve 100 bar oluştu bu
işlemi tekrar edin. Taki 10 volt giriş voltajı ve 100 bar sistem basıncı tutturulana kadar
bu işlemi tekrar edin.
D) Kazancınız düşük kazanç pot’unu sağa doğru çevirin taki sistem basıncında 100
barı görene kadar.
Kalibrasyon açıklama Debi valf örneği ile:
Elimizde sınır değerlerini bilmediğimiz bir debi valfi olduğunu ve pistonu çalıştığını
varsayalım.Rampa ayarını sıfırlayınız.
Analog giriş değerinin 0 olduğuna emin olun. Piston’a hareket butonuna basın.
Piston hareket ettiyse E etmediyse F
E) Piston duruncaya değin sıfır potunu sola doğru çevirin. Bu işlemi yavaş yavaş
yapın. Hızlı yaparsanız sıfır noktasından fazla aşağı inebilirsiniz. Zira hidrolik sistem
çok hızlı cevap vermiyor olabilir.
F) Sıfır pot ayarının sıfırın çok altında olup olmadığını test etmemiz gerekli. Bunun
için pot’u sağa doğru çevirin pistonun hareket ettiğini görün ve E şıkkını uygulayın.
Analog giriş değerini(0-10v) kademeli olarak artırın. Ve piston hareketini izleyin. Bir
noktadan sonra Analog giriş değerini  artırdığınız halde piston hızı artmıyorsa G.
Diğer ihtimal analog giriş değeri 10 volt’a eriştiği halde piston hızı artmaya devam
ediyorsa H.
G) Kazancınız yüksek kazanç potunu sola doğru çevirin. Aynı işlemi tekrarlayın. Taki
10 volt giriş voltajında ve maksimum hızda olduğunuza emin oluncaya değin.
H) Kazancınız düşük kazanç pot’unu sağa doğru çevirin taki 10 volt giriş voltajında ve
maksimum hızda olduğunuza emin oluncaya değin.
Kalibrasyon genel açıklama:
Sıfır ve kazanç ayarları birbirlerini etkilemektedir. Yani kazanç ayarını artırdığınız
taktirde sıfır ayarınız yükselecek düşürdüğünüz taktirde düşecektir. Aynı şekilde sıfır
ayarını değiştirdiğinizde kazanç ayarıda değişecektir. Bu nedenle bu ayarlardan birini
değiştirdiğinizde diğerinide kontrol etmelisiniz. Bu kontroller her iki ayarında doğru
olduğuna emin oluncaya dek devam etmelidir. Zira her müdehalede diğer ayar biraz
değişecektir. Ancak hata gitgide küçülüp nihayetinde son bulacaktır. Tecrübeniz
artıkça bu ayarı daha hızlı yapabilirsiniz. Örneğin kazanç ayarını artırdık biliyoruzki
sıfır yükseldi ve onu düşürmemiz gerekli yine biliyoruzki sıfırı düşürdüğümüzde
kazançta düşücek bu sebeple kazancı artırırken biraz fazla artırıp sıfırı
düşürdüğümüzde ideal seviyeye gelmesini sağlayabiliriz.
Sıfır ve kazanç ayarlarından emin olduktan sonra rampa ayarını yapabilirsiniz.
Rampa ayarı sıfır ve kazanç ayarınızı etkilemeyecektir.

You might also like