shape
SERİ HABERLEŞME NEDİR?
       Endüstri geliştikçe elektronik cihazlarda bilgi transferi daha önemli hale geldi. Bu haberleşmenin donanım ve software açısından kolay,hızlı ve 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 ASCII 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.


shape
SERİ HABERLEŞME PROTOKOL NEDİR?
       Seri haberleşme nedir ? Bölümünde hardware özellikleri hakkında bilgi vermiştik. 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,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. Not: yaklaşık 15 sene önce böyle bir uygulama yapmıştım bilgiler tam doğru olmayabilir amacım sistemin işleyişini anlatmak 3964 protokolünü öğretmek değildir. Zira bu protokol eskidi ve ihtiyaçları karşılamıyor,Bu sebeple artık kullanılmıyor.Bunun 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.Bir sonraki bölümde Modbus Rtu nedir? ele alınacaktır.


shape
MODBUS RTU NEDİR?
       İlk olarak Rtu nedir bunu cevaplayalım. Modbus iki farklı sistemde çalışır. ASCII mod ve 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 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. Bir sonraki bölümde Modbus rtu protokolü ele alınacaktır. 


shape
MODBUS RTU İLE HABERLEŞME NASIL YAPILIR?
       Konumuz git gide daha komplike hale geliyor. Bu noktadan itibaren bir çok dala ayrılması gerekiyor.  Plc’de nasıl yapılır,Bilgisayarda nasıl yapılır, Chip ile nasıl yapılır konunun ana başlıklarıdır. Biz örnek bir modbus stringi oluşturma ve sitemin genel işleyişi hakkında bilgi vermekle yetineceğiz. 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.










shape
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.




Scada
Scada
Ladder Türk
Op Türk
Plc
Plc
Plc
Similator
Operator Panel
Modbus ActiveX
Modbus Software
Rtu ActiveX
Rtu Software
Modbus Server
Rtu Server
Modbus Remote
Modbus Slave
Modbus Master
Modbus .Net
Modbus Vb.
Modbus VisualBasic
Modbus Visual Basic
Modbus ActiveX
Seri Haberleşme
Seri port
Oransal kart
Oransal Valf
Serial Port
Oransal valf kalibrasyonu
Destek 1