10 GigE Kameralar ile Baumer GAPI SDK [AN201802]

10 GigE Arayüzlü Baumer Kameralar

Bu uygulama notu, olası temel nedenleri açıklamakta, sorun giderme yöntemlerini sunmakta ve Baumer GAPI SDK ile 10 GigE kameraların kullanımına yönelik Baumer tarafından test edilmiş PC sistemlerini tanıtmaktadır.

Baumer GAPI SDK

Baumer GAPI SDK, 2.9.0 sürümünden itibaren IEEE802.3an (10GBase-T Bakır) ve IEEE802.3ae (Fiber Optik) standartlarına uygun 10 GigE arayüzlü kameraları desteklemektedir.

Ancak, kullanılan PC sistemi 10 GigE arayüzünün artan bant genişliğini desteklemelidir. PC sistemi bu artan bant genişliğini destekleyemiyorsa, paket kayıpları ve bozuk görüntüler oluşabilir.

Önerilen PC Sistemleri ve Konfigürasyonu

Baumer GAPI SDK, maksimum bant genişliğinde çalışan iki 10 GigE kamera ve Baumer Filter Driver kullanılarak test edilmiştir. Alınan görüntüler, Camera Explorer tarafından görüntülenir. Görüntüleme dışında, PC üzerinde herhangi bir arka plan işlemi, üçüncü parti yazılım, antivirüs yazılımı veya kullanıcı etkileşimi gerçekleştirilmez.

Not:

Windows sistemlerinde optimal performans için Baumer Filter Driver kullanılması şiddetle tavsiye edilir.

Donanım

Baumer, bu testler için kullanılan donanımı minimum önerilen yapılandırma olarak kabul etmektedir:

CPU Intel® Core™ i7-7820X (8 Cores, 3,6 GHz)
RAM 2 x 16 GB RAM (Dual-Channel)
NIC Intel(R) Ethernet Converged Network Adapter X550-T2

Yukarıda belirtilen PC sisteminde gerçekleştirilen test, yaklaşık %15 yük oluşturmaktadır.

Görüntü alımı ve görüntüleme işlemlerine ek olarak, çalışan uygulamada görüntü işleme süreçlerinin de gerçekleştirilmesi gerektiğinden, önemli ölçüde daha güçlü bir sistem gerekebilir.

İşletim Sistemi

Baumer, en son yamalar dahil olmak üzere 64 bit işletim sistemleri olarak Windows 7 (min. SP1) ve Windows 10 (min. V1607) ile tüm modern Linux sürümlerini (örn. Ubuntu 16.4, Debian 9.3, Fedora 27) önermektedir.

Önerilen Sistem Yapılandırması

Görüntü alım süreci, parametreleme ve paralel çalışan süreçlere bağlıdır. Bozuk görüntüler oluşursa, aşağıdaki yapılandırma parametrelerini kontrol edin:

Camera Explorer Görüntü ve Paket İstatistikleri Görünümü

Camera Explorer, bilgi görünümünde istatistik bilgileri sağlar. Bu görünümü, görüntü akışının stabilitesini kontrol etmek için kullanabilirsiniz.

Camera Explorer Ağ İstatistikleri Bilgi Görünümü

Paket Kaybının Olası Nedenleri

Tipik bir kamera sisteminde, ağda hiçbir paketin kaybolmaması gerekir çünkü görüntüleme ağları genellikle oldukça küçük ve ayrılmıştır. Ağda paketler kayboluyorsa, sorunun giderilmesi için sistemi yeniden gözden geçirmenizi öneririz. Böyle bir ağı, makine görüşü uygulamaları için uygun bulmuyoruz.

Paket kaybının en yaygın nedeni, Ethernet yığını tarafından doğru bir şekilde alınan paketlerin, yazılım tarafından yeterince hızlı bir şekilde alınmadıkları için mevcut paket kuyruklarını doldurmasıdır. Bir paket kuyruğu dolduğunda, tüm gelen paketler Ethernet yığını tarafından reddedilmelidir.

Paket kuyrukları uzun süre dolu kalıyorsa, PC sisteminin verilen uygulama için yeterince güçlü olmadığı muhtemeldir.

Ancak, çok güçlü bir PC sisteminde bile, alınan uygulamada kısa bir kesinti paket kuyruklarını doldurabilir ve paketlerin düşmesine (kaybolmasına) neden olabilir. Bu durumlarda, yeniden gönderme algoritması gerekli paketleri geri almak için yardımcı olabilir.

Not

Bu kesintilerin en yaygın nedeni, işletim sistemi zamanlayıcılarının görevler arasında geçiş yapmak için minimum süreye sahip olmasıdır. Windows® sistemlerinde iki görev arasındaki geçiş yaklaşık 15 ms sürer. Bu süre, sistemin paket kuyruklarını doldurmak ve bu nedenle paketlerin düşmesine veya kaybolmasına neden olmak için yeterli olabilir.

Yeniden Gönderme Algoritması – Ağ Tavsiyesi

Teorik olarak, 10 GigE maksimum 10 Gbit/sn bant genişliğine sahiptir. GigE Vision Standardı, gerekli paket yeniden gönderme için kapasite ayırmadan, mevcut ağ bant genişliğinin %100’ünü kullanmaya izin veren UDP protokolünü kullanır.

Gerekli olabilecek herhangi bir paket yeniden gönderme işlemi için, Baumer GAPI’nin kullanılabilir bant genişliğine ihtiyacı vardır. Özellikle paket kaybının daha büyük bir sorun olduğu geniş ağ yapılandırmalarında, sistem ve kamera yapılandırması için maksimum bant genişliğinin %90’ından fazlasının kullanılmaması önerilir, böylece paket yeniden gönderme için yeterli kapasite kalır.

Bant genişliği sorunları genellikle bozuk görüntülerle kendini gösterir. Bant genişliğini azaltmak için birkaç yapılandırma seçeneği vardır:

  • Kare hızını (fps) azaltın (örn. AcquisitionFrameRate, AcquisitionFrameRateEnable).
  • Çerçeve boyutunu azaltın (örn. ROI’yi azaltın, binning vb.), benzer bant genişliğinde daha yüksek kare hızları elde etmek için.
  • Daha küçük bir piksel formatı seçin, örneğin Mono8 yerine Mono12 kullanarak benzer bant genişliğinde daha yüksek kare hızları elde edin.

Paketler arasında küçük boşluklar oluşturmak için GevSCPD ile bir paket gecikmesi ayarlamak da iyi bir fikirdir (aşağıdaki şekle bakınız). Bu, bir görüntünün verilerini yayar ve sistemin verileri daha yavaş ancak sürekli bir hızda işlemesine yardımcı olabilir.

Paket Gecikmesi (GevSCPD) Ayarlanmış ve Ayarlanmamış Paket Akışı

Not

Hesaplama Örneği, Paket Gecikmesi

Bir 10 GigE ağ, 10 Gbit/sn bant genişliği sağlar, bu da 10 bit/ns anlamına gelir. Paket boyutu 9000 Bayt (72000 bit) olarak ayarlandığında, bir paketin gönderilmesi yaklaşık 7200 ns sürer.

Her paket arasında %10’luk bir boşluk oluşturmak için GevSCPD bu nedenle 720 ns olarak ayarlanmalıdır.

Dikkat: Farklı kameralar GevSCPD parametresi için farklı birimler kullanabilir. Daha fazla bilgi için Teknik Veri Sayfasına başvurunuz.

Yeniden Gönderme Algoritması – Yapılandırma

Baumer yeniden gönderme algoritması, doğru alınamayan paketlerin yeniden transfer edilmesinden sorumludur. Genellikle, sistem işlem etkinliğinde ani bir artış olduğunda, paketleri gerekli hızda işleyemediğinde paketler düşer. Algoritmayı yapılandırmak için birkaç parametre vardır, ideal değerler genel sistem ve performansına bağlıdır. Tüm parametreler bsysgige.xml dosyasında yapılandırılabilir.

Gerekli Minimum Paket Kuyruğu

Yukarıdaki diyagram, sistemin bir veya iki zamanlayıcı (scheduler) geçişi sırasında gelen yeterli sayıda paketi geçici olarak depolayabilmesi için 1 GigE ve 10 GigE için gerekli minimum paket kuyruğu derinliğini göstermektedir. Zamanlayıcı, alıcı iş parçacığını yeniden etkinleştirdiğinde, bu paketler güvenli bir şekilde alınabilir. ResendRetryThreshold ve MaxResendsPerPacket çarpımı çizginin altına düşerse, verilen durumda paketler kaybolur.

ResendRetryThreshold: Sistemin işleyebilmesi için sırada bekleyen bir paket kuyruğu olabilir. İstenen yeniden gönderim paketi sıranın sonuna eklenir ve hemen alındığı doğrulanamaz. Bu parametre, sistemin yeniden talepte bulunmadan veya tamamen vazgeçmeden önce kaç paket beklemesi gerektiğini ayarlar. Genellikle, sistemi toparlanması için biraz beklemek ve ardından yeniden gönderim talep etmek iyi bir fikirdir.

Not:

Her kameranın bellekte tutulabilecek paket ve/veya görüntü sayısı için bir sınırı vardır. Bu nedenle, çok yüksek bir ResendRetryThreshold değeri kameranın istenen paketi sağlayamaması anlamına gelebilir.

MaxResendsPerPacket: Bu parametre, bir paketin yeniden gönderilmesi için kaç kez talepte bulunulabileceğini belirler. Yüksek bir değer, bir paketin kurtarılma şansını artırır ancak kaybolan paketlerin tekrar tekrar istenmesi sistem yükünü artırabilir.

Sistem eksik görüntüler üretirse, ResendRetryThreshold değeri artırılabilir ve eksik görüntüler alınmazsa MaxResendsPerPacket değeri artırılabilir, bu da kararlı bir transfer sağlanıp sağlanmadığını görmek için denenebilir.

Not:

ResendRetryThreshold ve MaxResendsPerPacket çarpımı, paket kuyruğundan daima daha küçük olmalıdır. Bu nedenle FilterDriverBufferCount ve StreamSocketSize değerlerini buna göre ayarlamanız gerekir.

Hesaplama Örneği, Yeniden Gönderme Parametreleri

Bir zamanlayıcı geçişi sırasında kaç paket oluşturulur?

  • 1 GBit/s = 125 kByte/ms, MTU boyutu 9000 kByte olduğunda, bu 13,888 Paket/ms anlamına gelir.
    → 15,6 ms zamanlayıcı geçişi sırasında 216 paket oluşturulur.
  • 10 GBit/s = 1,25 Mbyte/ms, MTU boyutu 9000 kByte olduğunda, bu 138,88 Paket/ms anlamına gelir.
    → 15,6 ms zamanlayıcı geçişi sırasında 2167 paket oluşturulur.

Gerekli paket kuyruğu derinliğine bağlı olarak yeniden gönderim parametrelerinin hesaplanması:

PQD = MRPP * RRT

PQD = PacketQueueDepth – Paket kuyruğunun derinliği

MRPP = MaxResendPerPacket – Bir paketin yeniden gönderilebileceği maksimum sayıyı ayarlar, artırılması ek ağ yükü oluşturabilir.

RRT = ResendRetryThreshold – İlk yeniden gönderim talebine kadar geçen süreyi ayarlar, artırılması görüntülerin alınmasında gecikmelere yol açabilir.

Ek Yapılandırma ve Optimizasyon

Aşağıda, sistem performansını ve kararlılığını artırmak için alınması gereken bazı önlemleri topladık.

Windows

  • Görev Yöneticisi’nde çalışan süreçleri kontrol edin, gereksiz olanları devre dışı bırakmaya veya durdurmaya çalışın. Bir süreç şu anda boşta olsa bile, bir olay veya planlanmış bir zamanda ani bir etkinlik üretebilir ve bu da sistemin performansını azaltabilir.
  • Görev Yöneticisi’nde çalışan hizmetleri kontrol edin ve yine gereksiz olanları devre dışı bırakmaya veya durdurmaya çalışın.
  • Özellikle anti-virüs yazılımı veya indeksleme sistemleri, bir Windows sisteminin genel performansını azaltabilir.

Genel Ağ Optimizasyonu

  • 10GigE adaptörünün Baumer uyumluluk listesinde olup olmadığını kontrol edin (diğerleri de çalışabilir ancak olası sorunlar için test edilmemiş olabilir).
  • Henüz yapmadıysanız, en son Baumer Filter Driver’ını yükleyin.
  • 10GigE ağ adaptöründe Baumer Filter Driver’ın seçili olup olmadığını kontrol edin.
  • 10GigE ağ adaptörünü kontrol edin ve gerek duyulmayan diğer Protokolleri veya Hizmetleri kaldırın.

İlgili Konular

Genel GigE yapılandırma önerileri için lütfen Baumer Uygulama Notuna başvurun: