Giriş Çıkış modülünü test edebileceğiniz Mavis DIOMaster test programı buradan indirilebilir.
Mavis Digital IO, hem USB hem de seri port üzerinden kullanılabilmektedir. Gerek USB, gerek seri port, kendine özgü avantajlara sahiptir. IO modül için
USB avantajları,
- Her tür bilgisayarda standart olması
- USB 2.0 için 2.5W güç sunması (USB 3.0 da 4.5W)
- Çok hızlı olması
- USB kablolarının hemen her yerde bulunabilir ve standart olması
gibi özellikler sayılabilir.
Seri Port kullanan IO modülün avantajları ise
- Endüstriyel ortamlarda kopma, veri kaybı vb. sorun yaşanmaması
- USB ye göre çok daha uzun mesafelere çıkabilmesi
- Driver vb. bir şeye ihtiyaç duymaması
- Port bir defa açıldıktan sonra, kapatılana kadar cihazda olan kopmalar vb. problemlerden, bilgisayar tarafındaki yazılımın etkilenmemesi
gibi maddeler sayılabilir. Gerçekte, her uygulamanın kendi dinamikleri olacaktır ve seri port ya da USB kullanımı uygulamanın ihtiyacına göre değişkenlik gösterecektir. Yaptığımız kurulumlarda, daha kolay uygulanabilir olduğu için, ilk olarak USB ile bağlantıyı deniyoruz. Herhangi bir problem çıkması durumunda alternatif olarak seri port kullanımına geçiyoruz. Mavis digital giriş çıkış modülü IO Master, hem seri hem de USB ile bağlantı kurularak çalışabilmektedir.
IOMaster Cihazının Üstten Görünüşü (Elektriksel)
Mavis IOMaster cihazını, Seri Port üzerinden kullanmak için;
1. Port Bağlantıları
A. Seri Port Bağlantısı
Seri modda iletişim sağlanacak ise, USB kablosu çıkartılmalıdır. Seri portun hemen yanındaki girişte, 12V ile besleme yapmak gerekir. (USB modda besleme bilgisayardan alınmaktayken, Seri port modunda bilgisayardan besleme alınmamaktadır. Bu yüzden harici olarak 12V DC ile IOMaster kartını beslemek gerekmektedir.) Eğer seri port değil de USB ile bağlantı yapılacaksa, o zaman 12V beslemesi mutlaka kaldırılmalıdır.
B. USB Bağlantısı
Seri port yerine USB ile bağlantı kurulacaksa, varsa seri port kablosu çıkartılmalı, ve varsa 12V. seri port beslemesi kaldırılmalıdır. USB, bilgisayardan 2.5W güç çeker ve bu 2.5W, modülün içindeki mikroişlemciyi çalıştırmaya yeter. Dolayısıyla modülü çalıştırmak için beslemeye gerek kalmayacaktır. (Not : Çıkış rölelerini veya transistörlerini çalıştırabilmek için, çıkışa 24V. besleme uygulamak gerekecektir)
2. Dijital Giriş Uygulama
IO Master, 8 dijital girişin herhangi birinde bir değişiklik olduğunda seri port üzerinden girişlerin son halini bilgisayara iletecektir. Dijital girişler 9 pinlik taraftan yapılır. En sondaki pin ortak uç (COM-) diğerleri ise, 5-24V arası sinyalin uygulanacağı uçlardır. Herhangi bir dijital giriş uygulandığında hemen önündeki led yanacaktır.
Uygulamada, tetik sinyali olarak adlandırdığımız giriş işareti, 5-24V arası gerilim taşıyan 2 uçlu bir kablo şeklinde olacaktır. İşareti uygulamadan önce ölçü aletiyle ölçüm yapılır. 5-24 V arası uygun bir DC gerilim ise, bir ucu COM- ucuna, diğeri 8 giriş noktasından herhangi birine bağlanmak suretiyle giriş işareti uygulanmış olur.
3. Çıkış Verilmesi (Röle ya da NPN)
IO Master kullanarak, 8 çıkış rölesi ya da tranzistörü SET edilebilir. Tranzistörler – (eksi) çıkış verirler.
Burada dikkat edilmesi gereken önemli nokta, çıkış röle/NPN set edebilmek için, çıkış rölelerinin 24V DC gerilim ile beslenmesi zorunluluğudur. Girişler ve çıkışlar optik izolasyonlu olduğundan dolayı, kart üzerindeki giriş ve çıkışlar bağımsız olarak çalışmaktadırlar.
4. USB Haberleşme Protokolü
Cihaz ile USB üzerinden haberleşebilmek için, mavis tarafından geliştirilmiş C# uygulamaları kullanılabilir.
Mavis DIOMaster test programı buradan indirilebilir.
Open Source (açık kaynka kodlu) mavis uygulamaları, her türlü ihtiyacı giderecek örnekler sunmaktadır.
5. Seri Haberleşme Protokolü
Seri Port, 19200 ya da 9600 bps hızında, DataBits : 8, Parity : None, Stop Bits : 1, Handshaking : None şeklinde konfigüre edilmelidir.
PC ile IO Master kartı arasındaki haberleşme protokolü son derece yalındır. Bu kadar yalın bir protokol seçmedeki amaç, olabildiğince en hızlı ve olabildiğince bekleme olmaksızın haberleşme sağlamaktı. (Aksi halde paketlerin tamamının geldiğinden emin olunamaması durumunda, geniş bekleme süreleri konulacaktı ki, tüm bunlar performans açısından iyi oolmayacaktı)
IO Master, Seri Port ile bilgisayara bağlandıktan sonra, herhangi bir seri port haberleşme programı ile tüm fonksiyonlar test edilebilir. (Hyperterminal vb. programlar kullanılabilir. Benim kullandığım programı buradan indirebilirsiniz)
Seri Port ile kullanılabilecek Fonksiyonlar
Öncelikle; cihazın girişlerinde herhangi bir değişim olması durumunda, cihaz otomatik olarak bu bilgiyi tek 1 Byte olarak bilgisayara gönderecektir.
Bunun dışında, istenildiği anda Sorgulama ve Set etme işlemleri yapılabilir. Her işlem için cihaza 2 byte gönderilir.
Sorgulama için ilk byte 100 (ascii d harfine denk gelir)
Set etmek için ilk byte 200 dür.
aşağıdaki örnekler net olarak açıklamaktadırç
3.1. Cihazın Adını (Varlığını) Sorgulama : N komutu
Gönderilecek Komut : (byte)100 + “N”
String olarak : dN
Bu komut düzgün olarak iletilirse, cihaz
Mavis USB/Serial IO 8×8
bilgisini geri iletecektir. (Kendi kullandığım Terminal programının ekran görüntüsü)
Bu genellikle, en başta, tüm sistemin çalışırlığını test eden komuttur. Ekranda Mavis USB/Serial IO 8×8 yazısını görmüşseniz, IO Master düzgün olarak çalışıyor ve bağlantılar sağlam demektir.
3.2. Giriş Değerlerini (Dijital Inputları) Sorgulama : G komutu
Gönderilecek Komut : (byte)100 + “G”
String olarak : dG
Seri porttan dG ifadesi gönderilirse, tek byte lık cevap alınır. Alınan cevap girişteki input değeridir. 8 girişten, işaret uygulanmış olanlar bit 0, işaret uygulanmamış olanlar bit 1 ile byte oluşturulur. (Diğer bir deyişle, girişte alınan byte değerini 255 ten çıkartarak salt giriş bitleri de elde edilebilir. Tümleyenini alma işlemi)
yukarıdaki örnekte, 3. pine işaret uygulanmış ve 251 değeri sorgulanmış.
3. pin = 2 üzeri 2 (0 dan başlarsak) = 4
255-251 = 4
değeri değerlendirilir.
3.3. Çıkış Değerlerini (Dijital Output) Set Etme : 200 komutu
Gönderilecek Komut : (byte)200 + Set Edilecek Byte
3. pin i set etmeye yarayan örnek gönderim :
byte b = 4;
byte[] hdr = { 200, b };
serialPort.Write(hdr, 0, 2);
Eğer, sistemin bilmediği bir komut iletilirse Error bilgisi ile birlikte, iletilen komutu geri döndürür.
3.4. Anlık Değişen Giriş Değerlerini Okuma
serialPort1_DataReceived
event’inde seri port taki byte okunarak, giriş değeri elde edilebilir.
Ek :
Terminal programını kullanarak byte gönderme