EtherCAT / Metodoloji

EtherCAT'te Gecikmeyi Nasıl Ölçüyoruz

Tezgâh künyesi, ölçümün tanımı ve sonuçların sınırları

Spikedge Mühendislik26 Temmuz 20269
EtherCAT'te Gecikmeyi Nasıl Ölçüyoruz
oscilloscope-verified

Bu Kanıtta Ne Çözüldü

Bir EtherCAT hattında "gecikme" tek bir sayı değildir. Bu yazıda kendi tezgâhımızda (TI Sitara AM572x + TI-RTOS + Acontis EC-Master, TMS320F28388D slave) neyi tam olarak ölçtüğümüzü, iletim gecikmesi ile yazılım dahil toplam gecikmenin neden ayrı raporlandığını, jitter'ın min–max aralığıyla neden karıştırılmaması gerektiğini ve hangi koşullarda paket kaybı gördüğümüzü anlatıyoruz. Ölçüm tablolarının tamamı ve sonucun neye göre değişeceği yazının içinde.

Bu yazı, Spikedge mühendislik ekibinin saha deneyimleri ve teknik değerlendirmeleri temel alınarak hazırlanmıştır.

Bir EtherCAT hattı için "gecikme şu kadar" demek tek başına bir şey ifade etmez. Neyin neresinden neresine ölçüldüğü, yazılımın payının dahil olup olmadığı ve hangi kurulumda alındığı söylenmediği sürece o sayı karşılaştırılabilir değildir. Bu yazı, EtherCAT vaka analizimizde yayınladığımız rakamların tam olarak neyi ölçtüğünü anlatır.

Tezgâh

Ölçümler tek bir kurulumda alınmıştır:

Bileşen Detay
Master cihazı TI Sitara AM572x IDK (PRU-ICSS çıkışı)
Master işletim sistemi TI-RTOS — Processor SDK RTOS AM572x 06.03.02.08
Master stack Acontis EC-Master v3.2 (Class B)
Slave cihazı TI Delfino TMS320F28388D (entegre ESC)
Slave stack Beckhoff SSC v5.13
Hat hızı 100 Mb/s full duplex
Geliştirme ortamı Code Composer Studio v12.8.1, Blackhawk XDS560v2

Master cihazı olarak PRU-ICSS çıkışı olan bir kart seçilmesinin sebebi, hattaki gecikmenin düşmesi ve kararlılığın artmasıdır. Slave tarafında ise ESC donanımı bulunması zorunludur — "on the fly" işleme yazılımla yapılamaz.

Ölçüm master üzerinde alınır

Testler master cihazı üzerinde yapılır ve elde edilen sonuçlar tüm hattı dolaşan çerçevenin sonuçlarıdır. Yani 1 master ve 5 slave'den oluşan, her slave'in 64 byte alıp 64 byte gönderdiği bir hatta veri boyutu 640 byte'tır: giriş (64 × 5) + çıkış (64 × 5).

İki ayrı gecikme sayısı raporluyoruz

Bunları ayırmak önemli, çünkü ikisi farklı soruya cevap verir.

İletim gecikmesi (min / ortalama / maks): master çerçeveyi göndermeye başladığı andan çerçevenin tamamının geri dönmesine — son baytın alınmasına — kadar geçen süre. Bu, verinin hat üzerindeki süresidir; master yazılımının veriyi işleme süresini içermez.

Toplam gecikme: ortalama iletim gecikmesine ortalama master yazılımı çalışma süresi eklenerek hesaplanır. Uygulamanın pratikte gördüğü süre budur.

Sitede manşete koyduğumuz 19,2 µs birincisidir; 25,5 µs ikincisidir. İkisini tek sayıya indirip "gecikmemiz 19,2 µs" demek, yazılım payını gizlemek olurdu.

Jitter, min–max aralığı değildir

Tablolarda her satırın bir en düşük ve bir en yüksek değeri var. Aradaki fark bazı satırlarda 10 µs'yi geçiyor. Bu jitter değildir — çerçeve gidiş-dönüş süresinin ölçüm boyunca gördüğü dağılımdır.

Jitter dediğimiz şey slave senkron hatasıdır ve tezgâhımızda en fazla 1 µs'dir. İki sayıyı aynı satıra koymak yaygın bir hatadır; biz ayrı raporluyoruz.

Paket kaybı ve tek istisnası

Testlerin tamamına yakınında paket kaybı gözlenmedi — bu yüzden sonuç tablolarında ayrı bir paket kaybı sütunu yok.

Tek istisna, çift yönlü verinin tek bir EtherCAT çerçevesinin sınırını aştığı durumlardır. Tek bir EtherCAT çerçevesi en fazla 1.498 byte veri taşır. 1 slave ile 1024 byte çift yönlü iletimde toplam 2048 byte'a çıkılır; veri iki çerçeveye bölünür ve 10 kHz bu iki çerçeveyi de göndermek için fazla dar bir aralıktır. Bu noktada tüm paketler kaybolur. Frekans 6,6 kHz'e (150 µs) düşürüldüğünde iletim stabil hale gelir. Aynı durum 2 slave / 512 byte testinde de yaşandı; orada frekans 5 kHz'e çekildi.

Bu, protokolün bir kusuru değil, çerçeve limitinin doğal sonucudur — ve tam da bu yüzden yayınlıyoruz: hangi koşulda ne olduğunu bilmeden bir sayıyı kullanmak yanıltıcı olur.

Sonuçlar

Döngü frekansının etkisi (1 slave, 64 B çift yönlü)

Frekans / döngü En düşük Ortalama En yüksek Toplam Bant genişliği
1 kHz (1000 µs) 19,1 19,7 28,5 26,1 0,823 Mb/s
2 kHz (500 µs) 18,6 19,4 29,3 25,7 1,646 Mb/s
5 kHz (200 µs) 18,5 19,2 28,7 25,5 4,115 Mb/s
10 kHz (100 µs) 18,5 19,2 30,9 25,5 8,23 Mb/s

Frekans arttıkça gecikme bir miktar düşüyor, ama bu düşüş ihmal edilebilir. Pratikte anlamı şu: kontrol döngüsünü hızlandırmanın gecikme tarafında bir bedeli yok.

Veri boyutunun etkisi (1 slave, 10 kHz)

Veri boyutu En düşük Ortalama En yüksek Toplam Bant genişliği
32 B 17,40 18,00 27,70 24,30 5,798 Mb/s
64 B 18,50 19,20 29,10 25,50 8,23 Mb/s
128 B 20,40 21,20 32,10 27,30 13,122 Mb/s
512 B 33,20 34,10 43,40 40,30 42,419 Mb/s

Veri boyutu, gecikme üzerindeki en etkili kriterdir. İletişimde geçen sürenin çoğunluğu veri iletiminde geçer. Daha düşük gecikme isteniyorsa yapılacak ilk şey PDO haritasını sadeleştirmek, ikincisi daha hızlı bir arayüze geçmektir: test sisteminde 100 Mb/s kullanılıyor ve slave ESC'si de 100 Mb/s ile sınırlı. 1 Gb/s bir arayüzle teorik olarak 10 kata varan bir iyileşme mümkündür, ancak bant genişliği dışında etkenler de olduğundan pratikte 10 kat elde edilemez.

Slave sayısının etkisi (2 slave, 10 kHz, slave başına veri)

Slave başına veri En düşük Ortalama En yüksek Toplam Bant genişliği
2 × 32 B 18,50 19,30 33,30 25,50 8,23 Mb/s
2 × 64 B 20,40 21,20 35,10 27,40 13,122 Mb/s
2 × 128 B 24,50 25,50 40,00 31,80 22,888 Mb/s

Bu tabloyu bir önceki tabloyla karşılaştırırken toplam veri yükünü eşitlemek gerekir. 2 slave × 32 B testinde hatta giden toplam veri, 1 slave × 64 B testiyle aynıdır. Ortalama gecikme 19,2 µs'den 19,3 µs'ye çıkıyor: ikinci slave'in maliyeti 0,1 µs.

Acontis, hatta eklenen her slave'in toplam veri iletim gecikmesine yaklaşık 1 µs eklediğini belirtiyor. Bizim ölçümlerimizde bu değerin daha da düşük olduğu görüldü.

Yayınlamadığımız şeyler

Dağıtılmış saat (DC) senkron rakamı yayınlamıyoruz. Kullanılan master stack EC-Master v3.2 Class B'dir ve DC kullanmaz. DC'siz bir kurulumda "DC senkron hatası şu kadar" demek mümkün değildir. Bu ayrımı yapmadan yayınlanan nanosaniye mertebesindeki senkron iddialarına temkinli yaklaşmanızı öneririz.

Standart Ethernet karşılaştırması bizim ölçümümüz değildir. Vaka sayfasındaki karşılaştırma tablosunda EtherCAT sütunu ölçülmüştür; Ethernet sütunu protokolün yapısal davranışını tarif eder ve orada da böyle etiketlenmiştir.

Sonuçların sınırı

Verilen performans sonuçları nihai değildir; kullanılan sisteme, çalışan koda ve cihaza göre değişiklik gösterir. Aynı ölçümü farklı bir master kartında, farklı bir stack sürümüyle veya farklı bir PDO haritasıyla tekrarlarsanız farklı sayılar elde edersiniz. Yayınladığımız şey bir üst sınır ya da garanti değil, belirli bir kurulumun karakterizasyonudur.

Keşfetmeye Devam Et

EtherCATÖlçüm MetodolojisiTI SitaraTI-RTOSEC-Master

Spikedge Mühendislik Ekibi

Bu teknolojiyi kendi sisteminizde kullanıyor musunuz?

Spikedge mühendisleriyle birebir teknik analiz planlayın. Platformunuzu, darboğazınızı ve hedeflerinizi konuşalım.

Mimari Denetim Talebi