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.

