Mustafa Sarı

Mustafa Sarı hakkında

(Samsun, 26.03.1973, ,İTÜ, Elektronik ve Haberleşme Mühendisliği, Yazılım)

Ford PVS Programı

(a freeware opensource utility to get string data from Ford (FoMoCo) PVS line and inserts it to SQL database by calling a stored procedure. Stored procedure can easily configure which fields will filled up)

Ford Otosan PVS sistemi, üretim hattında belirli bölgelerden geçen araçlara ait bilgilerin seri porttan iletilmesi sistemidir. Araç hattan geçerken, araca özgü kontroller yapılmak istendiğinde, aracın Vin numarası başta olmak üzere, bu VIN ile ilişkilendirlimiş her türlü ayrıntısına ulaşılabilir.

Her ne kadar seri port kullanımı, son zamanlarda gözden düşmüş olsa da, hala en basit ve en hatasız iletişim protokolüdür. Ford Otosan içinde yer yer 100 m. ye kadar uzunlukta PVS hatları mevcuttur. Altyapı birçok yerde fiberdir. Sık karşılaşılan problemler, çok yüksek gerilim ya da alan etkisinden kaynaklanabilen bozulmalardır. Seri port için USB converter kullanılması da pek tavsiye edilmez.

Mavis olarak, Ford Otosan için gerçekleştirdiğimiz projelerde kullanılmak üzere, jenerik ve bağımsız bir utility şeklinde çalışan PVSListener programını geliştirdik. Program seri portu dinler ve PVS datası alınırsa bunu veritabanına kaydeder.

Program, veritabanına PVS bilgisini orijinal haliyle kaydeder. İlaveten, çalıştırdığı stored procedure ile, bilgiyi istenilen şekilde parse ederek, programcının ihtiyacına uygun tüm alanlara göre uygun biçimde dağıtır. Program, halihazırda çalışmaktadır ve basit yapısı ile tüm projelere uygulanabilir. Mavis tarafından geliştirilen freeware bu uygulama (C# ile geliştirilmiştir) için bizimle iletişime geçmeniz yeterlidir. (info@mavis.com.tr)

 

 

 

 

 

 

 

 

 

 

Ford PVS to DB utility, listens ford PVS serial (com) line and inserts an SQL record when PVS string is ready in line. Program completes whole communication process between Ford PVS main computer and client computer (RK512) Program uses a stored procedure to parse PVS string to data table fields, so programmers can easily acces their own fields.

Program is a freeware by MaVis (Machine vision Software Ltd.) and open source (written in C#) . Please feel free to contact us (info@mavis.com.tr) to get complete solution.

Dikiş Varlık Kontrolü

Dynamic Threshold ve Shock Filter Kullanımı

Yakın zamanda yaptığımız bir projede, yapılacak kontrollerden biri kumaşın desenini algılamaktı. Texture olarak bilinen bu çalışma, görüntü işlemenin en zor yanlarından biridir. Her ne kadar HALCON texture algılama üzerine bol miktarda fonksiyon barındırsa da, texture gibi genel bir konuda, her hangi bir fonksiyondan sihirli bir işlev beklenemez. Yapılması gereken, projeye özgü kodlamada bulunmak…

Projede, kumaşın deseni kadar, kenarında dikiş olup olmadığının da kontrol edilmesi gerekiyordu.

Resimdeki orijinal resimde göründüğü gibi, araba koltuk başlığının yan tarafında dikiş olup olmadığının belirlenmesi gerekiyordu. İlk başta kolay gibi görünen bazı uygulamalar, iplik renginin değişmesi, kumaş renginin / deseninin değişmesi vb. faktörlerden dolayı hiç hata vermeden çalışacak bir yapıda olmalıydı. aşağıdaki kod, dikiş izini hatasız olarak tesbit edebilen bir HALCON kodudur. (Denemek için bu resmi alarak kaydedebilirsiniz.)

 

sonuç görüntü :

HALCON kodu

 

read_image (Image, 'K.bmp')
bin_threshold (Image, Region) 
reduce_domain (Image, Region, ImageReduced)
shock_filter(ImageReduced, SharpenedImage, 0.5, 10, 'canny', 1)
gray_opening_shape(SharpenedImage, ImageOpening, 25, 25, 'octagon')
gray_closing_shape(SharpenedImage, ImageClosing, 25, 25, 'octagon')
dyn_threshold (ImageOpening, ImageClosing, RegionDynThresh, 50, 'not_equal')
dilation_circle(RegionDynThresh, RegionDilation, 5)
connection(RegionDilation, ConnectedRegions)
select_shape(ConnectedRegions, SelectedRegions, 'area', 'and', 1000, 99999)
count_obj(SelectedRegions, Number)
if (Number > 0)
    skeleton(SelectedRegions, Skeleton)
    dev_set_line_width(2)    
    *set_line_style (3600, [20,10])
    dev_display(Image)
    dev_display(Skeleton)
endif

Burada asıl işi yapan dynamic_threshold kullanımıdır. shock_filter alınan görüntüde, kenarları belirginleştirmeye yarar. (Datamatrix, karekod, barkod okuma vb. işlemlerde önerilir) Kodda comment edilmiş set_line_style (3600, [20,10]) kodunu da açıp çalıştırırsanız, bulanan dikiş çizgisinin, kesikli olarak gösterildiğini göreceksiniz. set_line_style, HALCON çizgi gösterim biçimini formatlama fonksiyonudur.

HALCON ile OCR Temelleri

OCR projeleri, diğer görüntü işleme uygulamalarına daha fazla zorluklar içermektedir. HALCON 10, OCR ile ilgili gayet gelişmiş fonksiyonlar sunmakla birlikte (get_text_*) çoğu kez iş, kod yazma ile çözülmektedir.

OCR uygulamalarındaki zorluklar

  • Tüm karakterler düzgün olarak seçilebilmelidir. Homojen olmayan aydınlatmalar, parlayan kısmi yerler sıradan bir görüntü işleme uygulamasında kolaylıkla üzerinden gelinebilen sorunlar iken, OCR uygulamalarında baş belası olabilmektedir.
  • Birbirine çok yakın karakterleri ayırt edebilmek (B, 8, D, 0 vb…) çoğu kez sorun olabilmektedir
  • Değişken font yükseklikleri, genişlikleri, iç içe geçmiş karakterler vb. sorun yaratabilmektedirÖzetle, bu liste uzar gider. Tüm bu zorluklarına rağmen, kişisel olarak en çok zevk aldığım uygulamalar, genelde OCR uygulamaları olagelmiştir.

Bu makalede, baştan sonra bir OCR uygulamasını, temel bileşenleri ile açıklamak istiyorum. Yeni başlayanlar için, -başlıkta belirtildiği gibi- “temel” ya da başlangıç olabilmesi açısından…

OCR uygulamasının anatomisi

Elimizde üzerinde yazılan karakterleri okuyacağımız bir resim var diyelim. İlk düşünmemiz gereken şey, HALCON açık zemin üzerinde koyu karakterler bekler (tıpkı gerçek dünyadaki dokümanlar gibi) eğer elimizdeki resim bunun tersi ise, en kolayından invert_image ile açık-koyu renkleri yer değiştirmeliyiz.

Sonra düşünmemiz gereken, HALCON ile yüklü gelen OCR karakterlerini mi kullanacağız, yoksa kendi karakterlerimizi mi öğreteceğiz? Hazır olanları kullanmak tabii ki en kolayıdır. Hem öğretmeye ihtiyaç olmaz, hem de her tür yükseklik, genişlik için çalışırlar. HALCON standart olarak gayet güzel fontlar ile birlikte gelir, buna rağmen bu fontlar her zaman isteyen sonuçları vermeyebilir. Bazen son derece net olarak görebildiğiniz bir karakter, HALCON tarafından hatalı yorumlanır. Bu gibi ilginç durumlarla sık sık karşılaşıyorsanız, kendi karakter setinizi öğretmenin vakti gelmiş demektir. (Bunu da ayrı bir makalede anlatmayı düşünüyorum)

Son olarak, OCR edip okutacağımız yazının bir kuralını biliyor muyuz? 3 rakam, arkasından 2 digit, sonra XYZ karakterleri geliyor… gibi. Ya da bir checksum içeriyor mu? (barkodlarda olduğu gibi, son karakter, öncekilerin toplamının bir sayıya bölünmesinden kalan vb. gibi) Ya da, okutacağımız yazı, belirli bir listenin üyesi mi? (mesela, türkiyenin bir ili ise, bir yere tüm iller girilir ve lexicon kullanımı ile bu listeden arattırılır) vb. İşimn güzel yanlarından biri, HALCON her bir karakteri hangi kalitede okuduğunu bize söyler. Eğer emin değilsek, yeniden resim alıp, yeniden denetme gibi işlemlere girilebilir. Tabii zamanımız yeterli ise …

(Yakın zamanda, en basitten en detaylıya kadar, bol miktarda özgün örnek uygulama vereceğim, ileride bu sayfayı tekrar ziyaret etmenizi öneririm, şimdilik yeni makalelere geçiyorum)

HALCON 10 Eğitimi

Ülkemizin köklü kuruluşlarından Eti bünyesinde yer alan Eti Makine Sanayi A.Ş. Eskişehir tesislerinde, 4 günlük HALCON eğitiminin ilk kısmı başarıyla tamamlandı. Eti Makine A.Ş. teknik personeli, teknolojiye olan yatkınlığı ve teknolojiyi kendi bünyesine dahil etme istekliliği gibi özellikleriyle zaten farklılaşmış (ve bir anlamda zoru seçmiş) bir ekip. Böyle bir ekipten oldukça profesyonel HALCON uygulamaları bekliyoruz. (Mavis olarak bizden sadece eğitim alan ve bir süre sonra bu eğitimleri kendi sektörlerine (Cam, Medikal, Gıda, vb..) başarıyla uygulayan çalışma arkadaşlarımızı ve onların projelerini gördükçe mutlu oluyoruz. Hatta ilerleyen günlerde izin verirlerse projelerini bu blog sayfalarında anlatmayı düşünüyorum. Bir anlamda alınan eğitim ile nerelere vardıklarının bir ifadesi olacaktır)

Eti Makine A.Ş. de verilen Eğitim

İlk Gün :

HALCON Foundation
HDevelop, Thresholding, segmentation, selection, filtering, acquisition, ROI Operations

İkinci Gün :

Matcing, OCR, Measuring

Planlanan Üçüncü ve Dördüncü GÜn Eğitimleri ise

C# ile Baştan sona gerçek bir HALCON Uygulaması,
Giriş Çıkış İşlemleri (Sinyalizasyon)
Ueye kameralar ile Eti Makine A.Ş. Potansiyel Uygulamalar üzerine örnekler (Gelişmiş Matching teknikleri ile hatalı paket/ürün ayıklama)

 

Mavis Dijital IO-1 Kullanımı

Tetik sinyalinin alınması ve kuru kontak vermek suretiyle çıkış sinyali üretilmesi için Mavis dijital IO, pratik bir kullanım sunmaktadır.

USB kablosu ile bilgisayara bağlanan modül, beslemesini buradan alır. Başka bir besleme kaynağına ihtiyaç duymaz. Girişe uygulanan 5-24 V. arası sinyali bilgisayara aktarır.

Modülün Visual Studio C# içinden kullanımı için aşağıdaki 2 örnek yeterlidir. (Örnekler ftp sitemizden kaldırılmış ise bizimle – info@mavis.com.tr iletişime geçiniz)

Başlangıç Örneği : DIO_Simple.rar

Gelişmiş Örnek : MDI_IO.rar

Gelişmiş Örneğin ekran görüntüsü

 

Akıllı Şekil Tamamlama

Bazen alınan görüntüde eksik kalan yerlerin tamamlanması gerekebilir. Aşağıdaki örnek kod, tamamlama işini akıllı bir biçimde yapmaktadır.

Yukarıda görüldüğü gibi parçalar arasındaki boşluk, olabildiğince gerçeğe yakın bir şekilde birleştirilmiştir. Birçok yerde kullanılabilecek olan, prosedürel olarak yazılmış HALCON kodu :

read_image (Image, 'C:/Users/Mustafa/Desktop/aa.png')
bin_threshold (Image, Region)
connection (Region, ConnectedRegions)
CombineSplittedRegions (ConnectedRegions, RegionCount)
dev_set_draw ('fill')
dev_display(Image)
dev_display(RegionCount)

Burada asıl işi yapan CombineSplittedRegions prosedürü ise

count_obj(ConnectedRegions, Number)
if (Number > 1)
    while (Number > 1)
        select_obj (ConnectedRegions, Obj1, 1)
        select_obj (ConnectedRegions, Obj2, 2)
        inner_circle(Obj1, Row, Column, Radius1)
        inner_circle(Obj2, Row, Column, Radius2)
        minR := Radius1
        if (Radius2 < Radius1)
            minR := Radius2
        endif
        distance_rr_min(Obj1, Obj2, MinDistance, Row1, Column1, Row2, Column2)
        gen_region_line (RegionLines, Row1, Column1, Row2, Column2)
        dilation_circle(RegionLines, RegionDilation, minR)
        union2(ConnectedRegions, RegionDilation, RegionUnion)
        union1(RegionUnion, RegionCombine)
        connection(RegionCombine, ConnectedRegions)
        count_obj(ConnectedRegions, Number)
    endwhile
else
    copy_obj(ConnectedRegions, RegionCombine, 1, -1)
endif
inner_circle(RegionCombine, Row, Column, Radius)
rank_region(RegionCombine, RegionCount, Radius, Radius, 50)
return ()

programda kullanılan orijinal resim aşağıdadır. Programı denemek için bunu kullanabilirsiniz.

OCR Öncesi Resmi Döndürme

HALCON ile OCR işlemine başlamadan önce, resmin üzerindeki yazının yatay eksene paralel olacak şekilde döndürülmesi gerekmektedir.

resmi döndürdükten sonra ise,

haline gelecektir. Burada, sadece resmi değil, resimle birlikte Region da döndürmek gerekeceğinden, rotate_image komutu yerine transformation komutları (HomMat2DRotate) kullanmak gerekecektir.

Region ile birlikte döndürme yapan HALCON kodu :

 

read_image (Image, 'C:/Users/Mustafa/Desktop/RenPics/142856.bmp')
*Region bulalım
var_threshold(Image, Region, 460, 240, 0.2, 2, 'light')
closing_circle(Region, RegionClosing, 15)
opening_circle(RegionClosing, RegionOpening, 45)
fill_up(RegionOpening, RegionFillUp)
connection(RegionFillUp, ConnectedRegions)
select_shape (ConnectedRegions, SelectedRegions, ['area','inner_radius'], 'and', [700000, 200], [2000000, 280])
*
shape_trans(SelectedRegions, RegionTrans, 'convex')

*Resim ve Region birlikte Rotate Edelim
area_center(RegionTrans, Area, Row, Column)
text_line_orientation (RegionTrans, Image, 180, -0.523599, 0.523599, OrientationAngle)
hom_mat2d_identity (HomMat2DIdentity)
hom_mat2d_rotate (HomMat2DIdentity, -OrientationAngle, Row, Column, HomMat2DRotate)
affine_trans_image (Image, ImageRotate, HomMat2DRotate, 'constant', 'false')
affine_trans_region(RegionTrans, RegionAffineTrans, HomMat2DRotate, 'false')

Programın çalışmasını test etmek için kullanılabilecek 2 adet resmi buradan indirebilirsiniz

USB/Seri Port Üzerinden Mavis IO Kullanımı

 

 

 

 

 

 

 

 

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

Mavis ADC (Analog Digital Converter)

Mavis olarak geliştirdiğimiz elektronik cihazlara bir yenisini ekledik : Analog Digital Converter. Kameralı kontrol projelerimizde, çeşitli analog sensörlerden gelen verilerin toplanması gündeme geldiğinde, piyasadan ihtiyacımıza uygun ürün bulmakta zorluk çekmemiz sonucu, kendi 8 ve 10 bit analog sayısal dönüştürücülerimizi geliştirdik.

Kullanımı çok pratik olan ADC, 12 volt besleme gerilimi ile çalışmaktadır. Analog işaret, 2 uca girildikten sonra, sonucu seri port ya da usb den bilgisayara sayısala dönüştürülmüş olarak göndermektedir. gönderim sürekli ya da istenildiğinde (soruya cevap) şeklinde olabilmektedir.

Piyasada var olan ADC ler, kullanımı zor, yazılıma uyarlaması zahmetli olan modellerdi. Mavis ADC, tak-çalıştır kolaylığında, herhangi bir kütüphane yüklemeye ihtiyaç duymayan, oldukça yalın ve basit yapıdadır.

0-10V giriş gerilimini, 0-255 arası bir değer (byte) olarak iletmektedir. Aşağıdaki resimde, ADC seri port üzerinden verileri göndermektedir. (Bir usb dönüştürücü ile bilgisayara takılmıştır) Direk usb üzerinden veri gönderen modeli de mevcuttur.

Yeni Digital Input Output Arabirimi : IO Master-2

 

Yeni çoklu digital giriş çıkış modülümüz test edildi ve kullanıma hazır hale getirildi. Son derece gelişmiş özelliklere sahip olan yeni modülde hem yazılım (sürücü) hem de donanım olarak yeni geliştirmeler yapıldı.

Donanımsal Yenilikler

  • 8 Optik İzolasyonlu (5-25V. digital) Giriş
  • 8 Optik İzolasyonlu Röleli (Kuru Kontak) Çıkış
  • 8 Tranzistör (NPN) Çıkışı
  • USB 2.0 girişi
  • Seri Giriş (Yüksek hızlarda çalışabilen)
  • Bağımsız 12 – 24 V. Çıkış Beslemesi
  • İzolasyonlu Metalik Kasa
  • 20 MHz iç çalışma frekansı
  • Çakışma, sinyal gönderememe, usb kopması gibi durumları otomatik algılayan ve led ile uyaran akıllı mekanizma

Yazılımsal Yenilikler

  • Daha sade ve gelişmiş USB sürücü modeli (filestream modelinden memorystream modeline geçiş)
  • Thread desteği (çok yüksek hızda anlık okuma / yazma)
  • Hem USB hem Seri port ile aynı anda çalışabilme
  • giriş işaretini 1/4 ms. gibi çok yüksek hızda algılayabilme
  • Tüm giriş çıkış bilgilerini ve sistem mesajlarını loglayabilme
  • USB kopması veya yeniden takılması gibi durumlarda, kendini toparlayan akıllı sürücü modeli (OnDeviceRemoved, OnDeviceConnected, OnDeviceChanged Yöntemleri)

Sonuç olarak, gerek 5-24 V digital işaretin algılanması, gerek dış ortama sinyal verilebilmesi için, gereken tüm fonksiyonaliteyi tek bir üründe sunduğumuz yeni IO modülümüz IO Master, başarılı geçen oldukça yoğun test işlemlerinin sonunda kullanıma alındı. Gürültü kirliliği olan ortamlarda, çok yüksek hızda erişim yapılması gereken projelerde alternatiflerine göre avantaj sağlayacaktır.

Cihazın donanım ve yazılımı Mavis bünyesinde yapıldığından, her türlü fonksiyon ilavesi veya değişiklikler tarafımızdan kolaylıkla yapılabilmektedir. Şimdilik 3.1 versiyonuna ulaşmış olan modülümüz, piyasa ihtiyaçları doğrultusunda geliştirilebilir özelliktedir.

Modülü Delphi, C#, Visual Basic  programlama dillerinden kullanmak mümkündür. Gerekli kütüphane opensource (açık kaynak kodlu) olarak verildiğinden, herhangi bir dll, activex, vb. araya sokmadan en hızlı erişim yapılması sağlanmıştır.

Eski kullanıcılarımız, ya da modüle sahip olmak isteyen yeni kullanıcılar için, örnek modül ve kütüphane (yazılım) desteği için bize ulaşabilirsiniz. (info@mavis.com.tr)