FSoE: усі стани скінченного автомата

З’єднання FSoE (Fail Safe over EtherCAT) керується невеликим детермінованим скінченним автоматом. І Master, і Slave виконують власну копію автомата, і обидві копії просуваються синхронно, обмінюючись правильною командою FSoE у кожному Safety PDU. Після вмикання живлення або щоразу, коли виявляється помилка зв’язку, з’єднання повертається до стану Reset і починає все спочатку.

На діаграмі нижче показано всі стани та переходи в одному вертикальному поданні. Кожен стан відповідає одній із команд FSoE, а три мітки переходів — OK, STAY і NOT_OK — описують, як отримана команда співвідноситься зі станом, який автомат очікує на даний момент.

Діаграма скінченного автомата FSoEВертикальний скінченний автомат із п'ятьма станами: Reset, Session, Connection, Parameter і Data. OK просуває вниз, STAY утримує поточний стан, а NOT_OK повертає до Reset.ResetSessionConnectionParameterDataOKOKOKOKOKSTAYSTAYSTAYSTAYSTAYNOT_OKNOT_OKNOT_OKNOT_OKNOT_OK

Як читати діаграму

Три типи переходів визначаються за командою, отриманою в Safety PDU від вузла-співрозмовника:

ПерехідЗначенняРезультат
OKОтримана команда є наступним очікуваним станом.Перехід на один крок вниз по драбині (або утримання в Data після досягнення цього стану).
STAYОтримана команда збігається з поточним станом.Залишання в поточному стані та очікування.
NOT_OKОтримана команда неочікувана або сталася помилка CRC/watchdog.Негайне повернення до Reset.

Кожен стан також надсилає власну команду у вихідному PDU, тож обидва вузли просуваються разом. Наприклад, коли Master перебуває в стані Session, він надсилає команду Session і очікує від Slave відповіді Connection (OK) для продовження, Session (STAY) для очікування або будь-якої іншої команди (NOT_OK) для повернення до Reset.

П’ять станів

1. Reset

Це вхідний стан після вмикання живлення, після перезапуску («reset connection») або щоразу, коли виявляється помилка зв’язку FSoE. У Reset не передаються жодні користувацькі safety-дані; PDU містить команду Reset і, на боці, що спричинила помилку, однобайтовий код помилки. Порядковий номер і успадкований CRC обидва очищуються при вході. Див. FSoE Reset State PDU: Master and Slave Structure щодо точного байтового розташування та таблиці кодів помилок.

2. Session

Master першим залишає Reset, надсилаючи команду Session. Slave приєднується, щойно отримує коректний Session PDU. У цьому стані два вузли обмінюються ідентифікаторами з’єднань і перевіряють, що адреса FSoE Slave є правильною. Команда Connection від співрозмовника є сигналом OK, який переводить автомат у наступний стан.

3. Connection

У стані Connection вузли встановлюють базові параметри зв’язку: довжину safety-даних, таймінги watchdog і Conn_Id. Перехід OK ініціюється отриманням команди Parameter. Поки обидві сторони ще перебувають у Connection, вони продовжують надсилати Connection, і автомат залишається в стані STAY.

4. Parameter

Тут команда Parameter переносить дані SafeParameter, які налаштовують safety-застосунок (наприклад, специфічні для застосунку набори параметрів). Отримання команди Data є сигналом OK для входу в фінальний робочий стан. Якщо обмін параметрами завершується невдало або триває занадто довго, з’єднання повертається до Reset через NOT_OK.

5. Data

Це нормальний робочий стан. Користувацькі safety-дані обмінюються в кожному Safety PDU, і обидва вузли надсилають команду Data. Самопетля OK означає, що з’єднання залишається в Data, доки зв’язок здоровий. Самопетля STAY у Data зазвичай не спостерігається (немає вищого стану для очікування), але автомат все одно трактує повторну команду Data як «залишитися в Data». Будь-яка неочікувана команда або помилка CRC/watchdog повертає автомат у Reset.

Підсумок

Скінченний автомат FSoE — це лінійна драбина з п’яти станів: Reset → Session → Connection → Parameter → Data. Зелений перехід OK просуває автомат на один крок вниз по драбині, сірий перехід STAY утримує його на місці, а червоний перехід NOT_OK скидає його повністю до Reset. Оскільки і Master, і Slave реалізують один і той самий автомат, усе з’єднання безпечно перезапускається, щойно будь-яка зі сторін помічає щось неправильне.

Посилання на стандарт

  • ETG.5100 S (D) V1.2.0, специфікація FSoE, яка визначає ці стани та переходи.

Пов’язані статті

Огляд та основи

Структури PDU за станами

CRC

Коди помилок та формат даних


Дивіться схожі статті за категоріями: FSoE EtherCAT Safety