|
[ На главную ] -- [ Список участников ] -- [ Правила форума ] -- [ Зарегистрироваться ] |
On-line: |
Телемеханика и связь в энергетике / Модемы и протоколы ТМ / Протокол FDST |
Страницы: 1 |
Автор | Сообщение |
Ben Группа: Участники Сообщений: 1 |
Добавлено: 06-08-2008 16:07 |
Всем привет! Народ, кто знает где качнуть описание протокола FDST (как я понял в этом протоколе РДУ данные ТМ ловит). Или хотя-бы скажите что это за абревиатура такая? |
|
pro_vokator Группа: Участники Сообщений: 3 |
Добавлено: 09-02-2012 16:58 |
Протокол для обмена информацией между ОИКами, с РДУ логичнее в 104 | |
Andrew аксакал Группа: Участники Сообщений: 568 |
Добавлено: 10-02-2012 08:28 |
Описание протокола FDST В этой главе приводятся материалы по спецификации протокола межмашинного обмена ( ММО) с ОИК ЦДУ ЕЭС России по передаче телемеханической информации. Передача производится по цифровому каналу связи с использованием в качестве транспорта протокола ТСР/IP. Документ подготовлен на основе материалов, предоставленных зам.начальника службы вычислительной техники ЦДУ ЕЭС России Купцовым А.Н. телефон: (095) 220-61-42 факс : (095) 220-65-42 E-mail : kan@cdu.elektra.ru Протокол FDST Передача данных производится пакетами. Структура пакета имеет следующий вид: "Заголовок" + "Хвост1" + "Хвост2". Заголовок Заголовок определяется следующей структурой, размер полей которой определяется размерами типов данных языка С. Формат следования байт в словах заголовка, такой как в процессорах MOTOROLA, RISC и т.д. (Старший разряд в младшем адресе. Противоположно INTEL): struct FDST { unsigned short int state; // состояние обмена и код возврата unsigned short int whom; // номер ЭВМ - адресата unsigned short int owner; // номер ЭВМ - отправителя unsigned ch ar code; // код приказа unsigned ch ar ident; // частный идентификатор диалога unsigned short int lng_req; // длина пользовательского запроса "Хвост1" unsigned short int lng; // длина пользовательского буфера данных "Хвост2" }; Предлагаемый формат определяется тем, что протокол передачи телемеханической информации является подмножеством протоколов семейства FDST, который используется для широкого спектра сервисов (как информационных, так и управляющих), используемых в системах SCADA, а также функционирует с различными средами передач данных и транспортными протоколами. Поле STATE – комбинация битовых масок приведенных ниже: #define ACT_FDST 0x8000 // FDST активен #define ERR_FDST 0x4000 // Обмен закончен с ошибкой #define WRN_FDST 0x2000 // Обмен закончен с предупреждением #define LNG_FDST 0x1000 // Сохранить запрос #define BST_FDST 0x0800 // Формат адресации в слове в хвостах Не INTEL #define OWN_FDST 0x0400 // Признак внутреннего обращения #define RET_FDST 0x0200 // Признак Абортирования / рестарта FDST #define CONT_FDST 0x0100 // Признак не закрытия FDST #define SEN_FDST 0x0080 // Передача #define REC_FDST 0x0040 // Прием #define PARTNER_FDST 0x0020 // FDST к партнеру #define NOCOPY_FDST 0x0010 // Запрет распространения FDST #define PRIORITY_MASK 0x000F // Маска для приоритета Поле CODE – комбинация битовых масок приведенных ниже: / * возможные дизъюнктивные состояния поля code - код пpиказа: */ #define FDS_WRITE 0x40 // запись #define FDS_DAT 0x80 // данные Если (HEAD.code&FDS_DAT)!=0, остальные позиции HEAD.code таковы: #define FDS_NTR 0x20 // запрет перекодировки #define FDS_LO 0x10 // необходимость линейки ответов #define TB_TF 0x08 // задание времени в формате: TB,TF,STEP(18 байт) #define FDS_DTM4 0x04 // задание времени в формате: T (6 байт) #define FDS_DTM0 0x00 // компонента набора содержит LNM (2 байта) #define FDS_DTM1 0x01 // комп. набора содержит LNM,OFSET,LONG (6 байт) #define FDS_DTM2 0x02 // комп. набора содержит LNM,LNE (4 байта) #define FDS_DTM3 0x03 // комп. наб. содержит LNM,LNE,OFF,LENGTH (8 байт) Если (HEAD.code&FDS_DAT)==0, остальные позиции HEAD.code таковы: #define FDS_WRITE 0x40 // запись #define FDS_NTR 0x20 // запрет перекодировки #define FDS_VM 0x10 // Запрос от calVM #define FDS_NB 0x11 // Запрос от calNAB #define FDS_CHANAL 0x0F // Запрос к Pr052 #define FDS_KIO_SERVER 0x1F // Запрос к KIO-servery #define FDS_SYND 0x0E // Cинхро - демон #define FDS_SCADA 0x30 // Связь со SCADA в протоколе 1 #define FDS_SCADA_URAL 0x31 // Связь со SCADA в протоколе URAL #define FDS_SCADA_TM 0x33 // Связь со SCADA в протоколе ТМ #define FDS_FILE 0x1E // Запуск FILE #define FDS_CDU 0x02 // Код Пок Шифр Об Реализация протокола ТМ на базе FDST на стороне передатчика Передача ТИ и ТС осуществляется посредством протокола FDST, используя сервис (код приказа - поле CODE) FDS_SCADA_TM. Таким образом, поле CODE имеет вид FDS_SCADA_TM|FDS_WRITE. Для поля STATE актуальными являются следующие маски:  ACT_FDST – обязательно,  SEN_FDST - обязательно,  REC_FDST – если требуется квитанция о результате передачи и разбора. Также используется для синхронизации приемника и передатчика (чтобы передатчик не валил все в кучу),  BST_FDST – определяет формат данных длиной больше 1 байта,  CONT_FDST - признак оптимизации соединения на транспортном уровне, если протокол умеет поддерживать это. Поле IDENT в данном случае используется как индикатор ТИ или ТС:  Для ТИ – IDENT = 2,  Для ТС – IDENT = 9,  Для набора - IDENT = 142. #define VAR_TS 0x09 / *передача изменившихся ТС*/ #define VAR_TI 0x02 / *передача изменившихся ТИ*/ #define VAR_TS_TI 0x0B / *передача изменившихся ТС и ТИ*/ #define NABOR_BLOCK_WRITE 142 / * Передача макета ( набора ) */ Поле WHOM по умолчанию = 1. Поле OWNER по умолчанию = 0. Формат "Хвост1" "Хвост1" идентифицирует передаваемые данные в двоичном формате. Структура такова: Время (6 байт) + Байт качества передаваемого Параметра 0 (unsigned ch ar) + Идентификатор передаваемого Параметра 0 (unsigned short) + Байт качества передаваемого Параметра 1 + Идентификатор передаваемого Параметра 1 +…………………………………...……………………………………………………….+ Байт качества передаваемого Параметра L + Идентификатор передаваемого Параметра L. Сервис FDST для передачи ТИ: - запрос - 3 байта на элемент: байт качества и номер элемента, - информация - 2 или 4 байта на элемент, для ТС - значение в байте качества. Структура байта качества передаваемого параметра приведена ниже.  Тип (Длина) элемента данных #define SC_BIT_MASK 0x06 #define SC_WORD_MASK 0x01 #define SC_INT_MASK 0x02 #define SC_LONG_MASK 0x03 #define SC_FLOAT_MASK 0x04 #define SC_BYTE_MASK 0x05  Тип набора #define SC_type 0x1c  Характеристики качества #define NDTM_MASK 0x80 / *недостоверность*/ #define SUBST_MASK 0x40 / *ручной*/ #define VOSST_MASK 0x20 / *восстановленный*/ #define SC_BIT_VAL 0x20 / *значение ТС*/ Формат "Хвост2" "Хвост2" содержит передаваемые данные в двоичном формате. Количество и длина каждого параметра определяется описанием параметра, содержащимся в "Хвосте 1". Передача макетированной информации Любая информация, не являющая телеметрией, передается в виде плотного блока данных, состав которых известен с обеих сторон (то есть, отправитель и получатель договариваются о составе блока данных и порядке следования данных). Данный блок называется набором. Для передачи нескольких наборов вводится понятие идентификатора набора, который определяется верхним уровнем Диспетчерского управления. Текущая реализация поддерживает передачу только одного набора в сеансе (блоке FDST). При этом в поле ident указывается значение 142 (признак макета). "Хвост1" имеет следующий формат: "Хвост1" = 6 байт времени + 2 байта идентификатора набора. Порядок байт в словах определяется признаком формата BST_FDST (сейчас поддерживается только он). Соответственно длина равна 8 байтам (FDST.LNG_REC=8). "Хвост2" содержит плотно упакованное содержимое этого набора. Порядок байт в словах определяется признаком формата BST_FDST (сейчас поддерживается только он). Длина Хвоста2 равна длине блока передаваемого набора FDST.LNG=длина набора. Остальные поля такие же, как и при передачи телеметрии. • Передача по TCP/IP Прием/передача пакетов осуществляется по соединению, использующему следующие атрибуты:  Тип сокета - AF_INET,  протокол ТСP ( SOCK_STREAM ),  Порт коммуникаций 5005. При установлении связи посылается контрольный маркер, состоящий из 4 байт следующего вида: 0x05070123, если передача происходит в комплекс "Диспетчер" версии 5.0 и старше (в ЦДУ ЕЭС работает версия 5.0). Если приемная сторона использует более ранние версии системы "Диспетчер", то маркер не передается и используется порт коммуникаций 5000. |
|
curkul редкий гость Группа: Участники Сообщений: 15 |
Добавлено: 26-10-2012 08:32 |
Подскажите пожалуйста как вычисляется номер набора для межмашинного обмена в ОИК-2003. |
Страницы: 1 |
Телемеханика и связь в энергетике / Модемы и протоколы ТМ / Протокол FDST |