сегментов есть стадия подготовки, когда клиент и сервер готовятся к обмену. Если
требуется передать обьект размером до 4х байт, то обмен может быть произведён ещё на
стадии инициализации. Этот механизм называется ускоренный трансферт(expedited
transfer).
Дополнительно, SDO может передаваться как набор блоков, каждый размером до 127
сегментов, каждый из которых вмещает данные и порядковый номер сегмента в блоке. В
стадии подготовки к передаче блока клиент и сервер оговаривают количество сегментов
на которые разбит блок. После передачи блока есть завершающая фаза, во время которой
клиент и сервер могут дополнительно проверить корректность произведённого обмена,
путём проверки контрольных сумм . Описанный тип называется блок-трансферт(block
transfer), и является для больших объёмов информации более быстрым типом обмена, по
сравнению с чисто сегментным способом передачи(так как квитируется не каждый
сегмент, а блок).
При выгрузке SDO блока может оказаться, что размер набора данных мал и не
оправдывает его передачу блок-трансфертом из за издержек протокола. В таком случае на
стадии инициализации перекачки может быть подключена поддержка автоматического
перехода к сегментному или даже ускоренному трансферту, в зависимости от размера
данных. Поскольку размер набора данных, при котором блочная передача
предпочтительней сегментной или ускоренной, зависит от многих факторов, то клиент на
стадии инициализации указывает серверу границу предпочтимости в байтах.
При блок-трансферте для подтверждения корректности передачи каждого блока,
используется схема Go-Back-N ARQ (Автоматический запрос повторной передачи с
откатом на N).
После загрузки блока на сервер, он сообщает клиенту последний успешно
принятый сегмент в этом блок-трансферте, передавая ему порядковый номер этого
сегмента. Делая это, сервер по умолчанию квитирует все сегменты предшествующие
этому сегменту. Клиент начнёт следующий блок-трансферт с повторной передачи всех
непроквитированных сегментов. Дополнительно к этому сервер должен указать
количество сегментов в блоке для следующего блок-трансферта.
После выгрузки блока с сервера, клиент указывает последний успешно принятый
сегмент в этом блок-трансферте, передавая ему порядковый номер этого сегмента. Делая
это, клиент по умолчанию квитирует все сегменты предшествующие этому сегменту
.
Дополнительно к этому клиент должен указать количество сегментов в блоке для
следующего блок-трансферта. (Тот кто получает информацию, тот и указывает
сколько нужно получить сегментов, логично так как имеются физические
ограничения на размер буфера приёма.)
Для всех типов трансфертов клиент является инициатором начала обмена.
Владелец Обьектного словаря, к которому
осуществляется доступ, называется сервер
SDO. И клиент и сервер могут быть инициаторами аварийного завершения передачи.
Посредством SDO, между двумя устройствами устанавливается одноранговый
(точка-точка) канал связи. Устройство может поддерживать более чем один SDO. Один
SDO-сервер(SSDO) поддерживается всегда, он называется SDO по умолчанию (Default
SDO).
SDO описывается параметром связи SDO(тип описан в элементе с индексом 22h).
Структура этого типа данных расписана в пункте 9.5.4. В двух словах, параметр связи
SDO описывает коммуникационные настройки SDO, для SDO-сервера(SSDO) и SDO-
клиента (CSDO) индексы доступа вычисляются по формулам:
• Индекс SSDO параметра связи = 1200h + НомерSSDO – 1
• Индекс CSDO параметра связи = 1280h + НомерCSDO – 1