Reset durumu, her FSoE (Fail Safe over EtherCAT) bağlantısının giriş noktasıdır. Bağlantı bu duruma açılıştan sonra, yeniden başlatmadan sonra (reset connection) veya bir FSoE iletişim hatası tespit edildiğinde girer. Bağlantı bu durumdayken kullanıcı safety data’sı alışverişi yapılmaz — Safety PDU’ları Reset komutunu ve karşı tarafa bağlantının neden sıfırlandığını söyleyen tek baytlık bir hata kodunu taşımak için yeniden amaçlandırılır.
Bu makale, ETG.5100 S (D) V1.2.0 §8.2.2.2’de tanımlanan üç Reset durumu PDU’sunu, spesifikasyonun standart örneği olan 4 oktetlik safety data ile inceler. Tam 2/4/6/8 oktet düzenleri için bkz. FSoE Reset PDU: Master ve Slave Yapısı.
Not — safety data bayt sayısı yön başına sabittir. Her FSoE bağlantısının sabit bir safety data uzunluğu vardır (master→slave ve slave→master) ve her iki düğümde de aynı şekilde yapılandırılır. İzin verilen uzunluklar 1, 2, 4, 6 veya 8 oktettir. Belirli bir bağlantının gerçek uzunluğu FSoE slave cihazına bağlıdır ve slave’in dokümantasyonundan veya cihaz tanım dosyasından (ESI/EEPROM) alınmalıdır. Aşağıdaki örnekler spesifikasyondaki gibi 4 oktet kullanır; diğer uzunluklar için bayt düzeni FSoE Reset PDU: Master ve Slave Yapısı yazısında gösterilmiştir.
Not — tek ilgili veri baytı hata kodudur. Her Reset durumu PDU’sunda
SafeData[0](oktet 1), anlam taşıyan tek safety data baytıdır:
0x00— kasıtlı sıfırlama (açılış, yeniden başlatma / reset connection) veya slave’in bir master Reset’e onayı.- Sıfır olmayan — sıfırlamayı tetikleyen FSoE iletişim hata kodu (aşağıdaki Tablo 28’e bakın).
Diğer tüm SafeData oktetleri kullanılmaz ve 0’a ayarlanmalıdır. Conn_Id alanı da aynı şekilde kullanılmaz (0’a ayarlanır) — yalnızca bağlantı kurulduktan sonra kontrol edilir. CRC alanları yine de iletilir ve doğrulanması gerekir, ancak sıra numarası ve miras alınan CRC Reset’e girişte temizlendiği için sıfırlanmış başlangıç durumundan hesaplanır (bkz. FSoE: CRC mirası nasıl çalışır? ve FSoE PDU’ları için CRC sağlama toplamı nasıl hesaplanır?).
Reset durumuna ne zaman girilir ve çıkılır?
Reset durumu, açılıştan veya bir iletişim hatasından sonra FSoE bağlantısını yeniden başlatır. Girişte iki şey sıfırlanır:
- sıra numarası ve
- CRC hesaplamasında kullanılan son telgrafın CRC’si (yani CRC miras zinciri kırılır).
Durum geçişleri, master/slave rollerini yansıtacak şekilde asimetriktir:
| Yön | Koşul |
|---|---|
| Master Reset’ten çıkar | Slave’e Session komutlu bir Safety Master PDU gönderir. |
| Slave Reset’ten çıkar | Geçerli bir Session komutlu Safety Master PDU alır. |
Başka bir deyişle, master Session komutunu vererek Reset’ten çıkar ve slave o Session PDU’sunu kabul eder etmez Reset’ten çıkar. İki taraf hâlâ Reset’teyken, aşağıda gösterildiği gibi Reset komutunu taşıyan Safety PDU’ları değiş tokuş ederler.
Master Reset PDU (FSoE Master → Slave)
Master bu PDU’yu bir yeniden başlatmadan veya bir FSoE iletişim hatası tespit ettikten sonra gönderir. Aşağıdaki örnek, 4 oktetlik safety data için ETG.5100 S (D) V1.2.0’ın Tablo 10’udur.
| Command | SafeData[0] | SafeData[1] | CRC_0 | SafeData[2] | SafeData[3] | CRC_1 | Conn_Id | |||
|---|---|---|---|---|---|---|---|---|---|---|
| Reset Oktet 0 | hata kodu Oktet 1 — yeniden başlatmada 0 | 0 Oktet 2 — kullanılmaz | CRC_0_Lo Oktet 3 | CRC_0_Hi Oktet 4 | 0 Oktet 5 — kullanılmaz | 0 Oktet 6 — kullanılmaz | CRC_1_Lo Oktet 7 | CRC_1_Hi Oktet 8 | 0 Oktet 9 — kullanılmaz | 0 Oktet 10 — kullanılmaz |
Önemli noktalar:
- Command (oktet 0)
Reset‘tir. - SafeData[0] (oktet 1) hata kodunu taşır (bit 0–7).
0x00değeri düz bir yeniden başlatma / reset connection demektir; sıfır olmayan herhangi bir değer, sıfırlamayı tetikleyen iletişim hatasını tanımlar (aşağıdaki tabloya bakın). - Diğer tüm SafeData oktetleri kullanılmaz ve 0’a ayarlanır.
- CRC_0 ve CRC_1 yine 16 bitlik little-endian değerler olarak iletilir, ancak sıra numarası ve miras alınan CRC girişte sıfırlandığı için önceki çerçeveden zincirlenmez — sıfırlanmış başlangıç durumundan hesaplanırlar.
- Conn_Id, Reset durumunda kullanılmaz ve 0’a ayarlanır. Connection ID yalnızca bağlantı kurulduktan sonra kontrol edilir.
Slave Reset PDU — bir master Reset’e onay (FSoE Slave → Master)
Slave, master’dan geçerli bir Reset komutu aldığında, Reset komutlu ve tüm SafeData oktetleri 0’a ayarlanmış — hata kodu konumu dahil — bir Safety Slave PDU göndererek onaylar. Bu, ETG.5100 S (D) V1.2.0’ın Tablo 11’idir.
| Command | SafeData[0] | SafeData[1] | CRC_0 | SafeData[2] | SafeData[3] | CRC_1 | Conn_Id | |||
|---|---|---|---|---|---|---|---|---|---|---|
| Reset Oktet 0 | 0 Oktet 1 — onay | 0 Oktet 2 | CRC_0_Lo Oktet 3 | CRC_0_Hi Oktet 4 | 0 Oktet 5 | 0 Oktet 6 | CRC_1_Lo Oktet 7 | CRC_1_Hi Oktet 8 | 0 Oktet 9 — kullanılmaz | 0 Oktet 10 — kullanılmaz |
Master Reset PDU’sundan tek farkı SafeData[0]‘ın her zaman 0 olmasıdır — slave onaylarken bir hata kodu yansıtmaz. Bu konumdaki sıfır hata kodu tam olarak master’ın onayı tanımak için kullandığı şeydir.
Slave Reset PDU — slave başlatmalı sıfırlama (FSoE Slave → Master)
Slave kendisi de bir Reset başlatabilir; ya yeniden başlatma sırasında (reset connection) ya da yerel olarak tespit ettiği bir hata durumunda. Bu durumda master Reset PDU’suyla yapısal olarak aynı bir Safety Slave PDU gönderir: Reset komutu ayarlıdır ve SafeData[0] slave’in kendi hata kodunu taşır (düz yeniden başlatmada 0x00). Bu, ETG.5100 S (D) V1.2.0’ın Tablo 12’sidir.
| Command | SafeData[0] | SafeData[1] | CRC_0 | SafeData[2] | SafeData[3] | CRC_1 | Conn_Id | |||
|---|---|---|---|---|---|---|---|---|---|---|
| Reset Oktet 0 | hata kodu Oktet 1 — yeniden başlatmada 0 | 0 Oktet 2 — kullanılmaz | CRC_0_Lo Oktet 3 | CRC_0_Hi Oktet 4 | 0 Oktet 5 — kullanılmaz | 0 Oktet 6 — kullanılmaz | CRC_1_Lo Oktet 7 | CRC_1_Hi Oktet 8 | 0 Oktet 9 — kullanılmaz | 0 Oktet 10 — kullanılmaz |
Master, bu slave başlatmalı Reset’i başka bir Reset PDU göndererek değil, Reset durumundan çıkarak onaylar: Session komutlu bir Safety Master PDU gönderir ve bu, iki tarafın da Reset’ten çıkması için sinyaldir.
Bir araya getirelim: Reset durumu alışverişi
Yukarıdaki üç PDU, sıfırlamayı kimin başlattığına bağlı küçük bir el sıkışma oluşturur:
- Master başlatmalı sıfırlama: Master Reset gönderir (hata koduyla) → Slave Reset ile onaylar (SafeData = 0) → Master Reset’ten çıkmak için Session gönderir.
- Slave başlatmalı sıfırlama: Slave Reset gönderir (hata koduyla) → Master Reset’ten çıkmak için Session gönderir (bu, master’ın onayıdır).
Her iki durumda da bağlantı yalnızca master Session komutunu verdiğinde Reset durumundan çıkar; o zamana kadar hattaki her PDU Reset komutunu taşır, Conn_Id alanı 0’dır ve anlamlı tek yük SafeData[0]‘daki tek baytlık hata kodudur.
FSoE iletişim hata kodları (Tablo 28)
Bir Reset PDU’sunun SafeData[0]‘ında taşınan hata kodu aşağıdaki tablodan gelir. 0x00 değeri “hata yok” demektir — yani yerel bir sıfırlama veya bir Reset komutunun onayı. 1–11 kodları standartta tanımlıdır; 0x80–0xFF cihaza özel SafePara hataları için ayrılmıştır.
| Hata Kodu | Açıklama |
|---|---|
| 0 | Yerel sıfırlama veya bir RESET komutunun onayı |
| 1 | Beklenmeyen komut (INVALID_CMD) |
| 2 | Bilinmeyen komut (UNKNOWN_CMD) |
| 3 | Geçersiz connection ID (INVALID_CONNID) |
| 4 | CRC hatası (INVALID_CRC) |
| 5 | Watchdog süresi doldu (WD_EXPIRED) |
| 6 | Geçersiz FSoE Slave Adresi (INVALID_ADDRESS) |
| 7 | Geçersiz safety data (INVALID_DATA) |
| 8 | Geçersiz iletişim parametre uzunluğu (INVALID_COMMPARALEN) |
| 9 | Geçersiz iletişim parametre verisi (INVALID_COMPARA) |
| 10 | Geçersiz uygulama parametre uzunluğu (INVALID_USERPARALEN) |
| 11 | Geçersiz uygulama parametre verisi (INVALID_USERPARA) |
| 0x80–0xFF | Geçersiz SafePara (cihaza özel) |
Özet
Reset durumunda FSoE Safety PDU fiilen tek baytlık bir tanı zarfıdır: Command alanı Reset‘tir, SafeData[0] hata kodunu taşır (veya onaylarken 0), diğer tüm SafeData oktetleri ve Conn_Id alanı 0’dır ve sıra numarası ile miras alınan CRC’nin ikisi de girişte temizlendiği için CRC’ler sıfırlanmış başlangıç durumundan yeniden hesaplanır. Bağlantı yalnızca master Session komutunu gönderdiğinde Reset’ten çıkar — slave asla Session göndermez, yalnızca SafeData’sını sıfırlayarak Reset’i onaylar.
Kaynaklar
- ETG.5100 S (D) V1.2.0, §8.2.2.2 Reset state, Tablo 10–12 ve Tablo 28.
İ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 durum makinesinin tüm durumları — beş FSoE durumu ve geçişleri
- FSoE: Safety PDU komut tablosu — FSoE komutlarının tam listesi
Duruma göre PDU yapıları
- 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ı