FSoE (Fail Safe over EtherCAT) bağlantısı, küçük deterministik bir durum makinesi tarafından yönetilir. Hem master hem de slave makinenin kendi kopyasını çalıştırır ve iki kopya, her Safety PDU’da doğru FSoE komutunu değiştirerek adım adım birlikte ilerler. Açılıştan sonra veya bir iletişim hatası algılandığında bağlantı Reset durumuna geri döner ve baştan başlar.
Aşağıdaki diyagram, tüm durumları ve tüm geçişleri tek bir dikey görünümde gösterir. Her durum FSoE komutlarından birine karşılık gelir ve üç geçiş etiketi — OK, STAY ve NOT_OK — alınan komutun, makinenin o anda beklediği durumla nasıl karşılaştırıldığını açıklar.
Diyagram nasıl okunur
Üç geçiş türü, eşin Safety PDU’sunda alınan komuttan değerlendirilir:
| Geçiş | Anlam | Sonuç |
|---|---|---|
| OK | Alınan komut bir sonraki beklenen durumdur. | Merdivende bir basamak aşağı ilerler (Data’ya ulaşıldığında Data’da kalır). |
| STAY | Alınan komut mevcut durumla aynıdır. | Mevcut durumda kalır ve bekler. |
| NOT_OK | Alınan komut beklenmediktir veya bir CRC/watchdog hatası oluşmuştur. | Hemen Reset’e döner. |
Her durum ayrıca giden PDU’da kendi komutunu gönderir, böylece iki eş birlikte ilerler. Örneğin, master Session durumundayken Session komutunu gönderir ve slave’in ilerlemek için Connection (OK), beklemek için Session (STAY) veya Reset’e dönmek için başka herhangi bir şeyle (NOT_OK) yanıt vermesini bekler.
Beş durum
1. Reset
Bu, açılıştan sonra, yeniden başlatmadan sonra (“reset connection”) veya bir FSoE iletişim hatası algılandığında girilen durumdur. Reset’te kullanıcı safety data’sı değiştirilmez; PDU Reset komutunu ve hatanın kaynaklandığı tarafta bir baytlık hata kodunu taşır. Sıra numarası ve miras alınan CRC girişte sıfırlanır. Kesin bayt düzeni ve hata kodu tablosu için FSoE Reset State PDU: Master ve Slave Yapısı yazısına bakın.
2. Session
Master önce Session komutunu göndererek Reset’ten çıkar. Slave, geçerli bir Session PDU’su aldığında onu izler. Bu durumda iki eş bağlantı kimliklerini değiştirir ve FSoE slave adresinin doğru olduğunu doğrular. Eşten gelen bir Connection komutu, makineyi bir sonraki duruma taşıyan OK sinyalidir.
3. Connection
Connection durumunda eşler temel iletişim parametrelerini belirler: safety data uzunluğu, watchdog zamanlaması ve Conn_Id. OK geçişi Parameter komutunun alınmasıyla tetiklenir. İki taraf hâlâ Connection’dayken Connection göndermeye devam eder ve makine STAY yapar.
4. Parameter
Burada Parameter komutu, safety uygulamasını yapılandıran SafeParameter verisini taşır (örn. uygulamaya özel parametre setleri). Data komutunun alınması, son çalışma durumuna girmek için OK sinyalidir. Parametre alışverişi başarısız olursa veya çok uzun sürerse bağlantı NOT_OK ile Reset’e döner.
5. Data
Bu normal çalışma durumudur. Kullanıcı safety data’sı her Safety PDU’da değiştirilir ve iki eş de Data komutunu gönderir. OK kendi kendine döngüsü, iletişim sağlıklı olduğu sürece bağlantının Data’da kaldığı anlamına gelir. STAY kendi kendine döngüsü Data’da normalde görülmez (beklenecek daha yüksek bir durum yoktur), ancak durum makinesi yine de tekrarlanan bir Data komutunu “Data’da kal” olarak değerlendirir. Beklenmedik herhangi bir komut veya CRC/watchdog hatası makineyi Reset’e döndürür.
Özet
FSoE durum makinesi beş durumlu doğrusal bir merdivendir: Reset → Session → Connection → Parameter → Data. Yeşil bir OK geçişi makineyi merdivende bir basamak aşağı taşır, gri bir STAY geçişi onu olduğu yerde tutar ve kırmızı bir NOT_OK geçişi onu tamamen Reset’e düşürür. Hem master hem de slave aynı makineyi uyguladığından, iki taraftan biri bir sorun gördüğünde tüm bağlantı güvenli bir şekilde yeniden başlar.
Kaynaklar
- ETG.5100 S (D) V1.2.0 — bu durumları ve geçişleri tanımlayan FSoE spesifikasyonu.
İlgili yazılar
Genel bakış ve temeller
- FSoE kısaltması aslında ne anlama geliyor? — FSoE kısaltmasının açılımı
- Örneklerle FSoE çerçeve yapısı — genel Safety PDU düzeni
- FSoE: Safety PDU komut tablosu — FSoE komutlarının tam listesi
Duruma göre PDU yapıları
- FSoE Reset State PDU: Master ve Slave Yapısı — Reset durumu için PDU düzeni ve hata kodları
- FSoE Session PDU: Master ve Slave Yapısı — Session durumu için PDU düzeni
- FSoE Connection PDU: Master ve Slave Yapısı — Connection durumu için PDU düzeni
- FSoE Parameter PDU: Master ve Slave Yapısı — Parameter durumu için PDU düzeni
- FSoE Data PDU: Master ve Slave Yapısı — Data durumu için PDU düzeni
- FSoE Reset PDU: Master ve Slave Yapısı — tüm safety-data uzunlukları için bayt düzenleri
CRC
- FSoE CRC: Hangi polinomu kullanır? — FSoE CRC’sinin arkasındaki 17 bitlik polinom
- FSoE CRC tabloları nasıl oluşturulur? — CRC arama tablolarının nasıl üretildiği
- FSoE: CRC mirası nasıl çalışır? — CRC zincirinin ardışık PDU’ları nasıl bağladığı
- FSoE PDU’ları için CRC sağlama toplamı nasıl hesaplanır? — bayt bayt CRC hesaplama algoritması
Hata kodları ve veri biçimi
- FSoE: Tüm iletişim hata kodları listesi — tüm FSoE iletişim hata kodları
- FSoE: Veri little-endian mı big-endian mı iletilir? — çok baytlık alanların bayt sırası