Протокол взаимодействия трк с устройствами управления icon

Протокол взаимодействия трк с устройствами управления



НазваниеПротокол взаимодействия трк с устройствами управления
Дата конвертации25.11.2013
Размер212.93 Kb.
ТипПротокол
скачать >>>

Протокол взаимодействия ТРК с устройствами управления



Редакция 06.08.03


© T&T ®, 2002,2003

All rights reserved


Изменения протокола, произведенные в последней редакции помечены цветом.

Физический уровень.



На физическом уровне интерфейс представляет собой 2-х проводную реализацию интерфейса RS-485, асинхронный полудуплексный канал, скорость передачи 9600 бод без контроля четности.

Канальный уровень.



Описываемый протокол связи предполагает информационный обмен между двумя устройствами. Первое из них, управляющее устройство, всегда является инициатором обмена и далее называется “ВЕДУЩИМ”. Второе устройство (ТРК) является подчинённым (далее ВЕДОМОЕ).

Информационный обмен между ВЕДУЩИМ и ВЕДОМЫМ устройством осуществляется пакетами байт, формат пакета см. ниже.

Пакет, посылаемый ВЕДУЩИМ устройством, всегда является командой ВЕДОМОМУ.

Успешный приём команды вызывает внутри ВЕДОМОГО устройства соответствующую операцию и передачу ВЕДУЩЕМУ устройству пакета, содержащего ответ.

Все передаваемые байты определяют служебные и информационные символы. Для разграничения в буфере приёма любой из сторон служебных и информационных символов используется байт DLE (значение – 10h). Первый байт DLE, встретившийся в информационном потоке, открывает DLE-цикл, а любой последующий байт потока закрывает DLE-цикл. Двумя байтами DLE-цикла всегда кодируется один служебный символ, значение которого определяется закрывающим байтом. После закрытия DLE-цикла согласно описанному выше алгоритму может быть открыт новый DLE-цикл. Все байты вне DLE-цикла считаются информационными символами.

DLE-циклы используются в данном протоколе для определения начала и конца пакета а также для установки информационных символов со значением, совпадающим со значением DLE. Список допустимых значений для байт, завершающих DLE-циклы, представлен ниже:

02h (STX) – устанавливает признак начала пакета;

03h (ETX) – устанавливает признак конца пакета;

10h (DLE) – устанавливает информационный символ с этим же значением.

Наличие в информационном потоке DLE-циклов с недопустимыми значениями завершающих байт может расцениваться принимающей стороной как сбои связи.


Формат пакета:

<DLE> - 1 байт

<STX> - 1 байт

<ADDR> Адрес ведомого устройства - 1 байт

<DATA> Данные - от 1 до 128 байт

<CRC> Контрольная сумма - 2 байта

<DLE> - 1 байт

<ETX> - 1 байт


Информационное поле ADDR представляет собой адрес ВЕДОМОГО устройства. Адрес ВЕДОМОГО устройства может быть в диапазоне (31 - FF)h, (00)-широковещательный.

Информационное поле CRC содержит два байта, которые определяет контрольную сумму пакета.

И еще раз:

Если в информационных полях <DATA>, <CRC> встречается служебный символ <DLE>(10h) он должен быть дополнен парным символом <DLE>, кот. при подсчете котрольной суммы игнорируется.


Контрольная сумма пакета подсчитывается по всем входящим в пакет информационным полям (исключая CRC) (ADDR, DATA).

При проверке CRC можно использовать то, что вычисленное CRC по полям (ADDR, DATA, CRC) будет равно 0.

Алгоритм вычисления контрольной суммы - алгоритм CRC16 с полиномом

x^16 + x^15 + x^2 + 1. Перед вычислением, начальное значение CRC = 0.

Примеры подпрораммы вычисления контрольной суммы в Приложении 1.


Младший байт контрольной суммы передается первым.


При подсчёте суммируются только информационные символы, это означает, что служебные префиксы DLE при подсчёте контрольной суммы игнорируются.


ВЕДУЩЕЕ и ВЕДОМОЕ устройства должны следовать правилам, представленным ниже:

ВЕДОМОЕ устройство не начинает передачу ответа до приёма корректного пакета с командой, адресованной ему. Это означает, что контрольная сумма в принятом пакете с командой должна соответствовать его содержанию.

ВЕДОМОЕ устройство должно корректно отвечать на каждый пакет, адресованный ему.

ВЕДОМОЕ устройство должно выдержать задержку Td не менее 3 мсек. перед началом передачи ответа ВЕДУЩЕМУ. Время Td измеряется с момента получения ETX при приёме пакета с командой.

Первые три байта ответного пакета должны быть переданы ВЕДОМЫМ устройством не позже чем через Ts = 50 мсек. после получения байта ETX при приёме пакета с командой.

ВЕДУЩЕЕ устройство ожидает ответный пакет в течение времени Ts = 50 мсек. после окончания передачи команды.

Если ВЕДУЩЕЕ устройство не приняло как минимум два любых байта в течение первичного времени ожидания ответа Ts = 50 мсек. начиная от конца передачи пакета с командой, оно может начать передачу команды, адресованной следующему ВЕДОМОМУ устройству.

После приёма корректного ответа от ВЕДОМОГО устройства, которому адресовалась предыдущая команда, ВЕДУЩЕЕ устройство должно выдержать задержку Td = 3 мсек. перед началом передачи следующей команды. Время Td измеряется с момента получения байта ETX при приёме пакета с ответом.

^

Уровень приложений.



На уровне приложений, ВЕДУЩЕЕ и ВЕДОМОЕ устройство формирует поле <DATA> пакета. Первый байт поля <DATA> будет называться кодом команды (для ВЕДУЩЕГО) и кодом ответа (для ВЕДОМОГО). Формат последующих байтов определяется в соответствии с кодом команды или ответа.

Команды




^

Команда запроса состояния (StatusRequest).



Код команды: S’ или 53h

Данные: отсутствуют


Назначение: ВЕДУЩЕЕ устройство передаёт эту команду всякий раз, когда оно нуждается в информации о состоянии ВЕДОМОГО устройства, а также для поддержки непрерывности обмена с ним пакетами.

Ответ:

В качестве ответа может быть переданы:

StatusResponse

NozzleReport – при снятом пистолете

AmountInfo – при отпуске

TransactionInfo – при завершенной транзакции

TotalInfo – (см. примечание к TotalRequest).


^

Команда разрешения отпуска (Autorize)



Код команды: A’ или 41h


Данные: последовательность ASCII символов, расположенных в следующем порядке:

1 десятичная ASCII цифра – номер пистолета (от “1” до “6”);

1 ASCII символ L(4Ch)-по обему P(50h)-по предоплате

6 десятичных ASCII символа - Заказ в денежных единицах (копейках) или объемных (10 мл) .

4 десятичных ASCII символа – Цена 1 литра в копейках.


Числа представленные десятичными ASCII символами передаются так, что символ соответсвующий старшему разряду передается первым, а младшему - последний.


Назначение: Разрешает отпуск для пистолета, заданного командой;


Ответ:

То же, что и ответ на команду StatusRequest.


Примечание:

Команда разрешена при состоянии ТРК "3".


^

Команда принудительного останова (Halt)



Код команды: H’ или 48h


Данные: отсутствуют


Назначение: Немедленный останов отпуска нефтепродуктов.

Может передаваться с широковещательном адресом (0) без ответа.


Ответ:

То же, что и ответ на команду StatusRequest.


^

Команда подтверждения (закрытия) транзакции (Close)



Код команды: C’ или 43h


Данные:

2 десятичных ASCII символа - номер транзакции;


Числа представленные десятичными ASCII символами передаются так, что символ соответсвующий старшему разряду передается первым, а младшему - последний.


Назначение:

Закрывает транзакцию.

Номер транзакции должен соответствовать номеру транзакции из ответа TransactionInfo.


Ответный фрейм включает:

То же, что и ответ на команду StatusRequest.

^

Команда запроса данных электронного суммарника (TotalRequest)



Код команды: T’ или 54h


Данные: последовательность ASCII символов, расположенных в следующем порядке:

1 десятичная ASCII цифра – номер пистолета (от “1” до “6”);


Назначение: Запрос данных электронного суммарника для указанного пистолета;


Ответный фрейм включает:

См. ответ "Данные электронного суммарника".


Примечание:

В случае, если ТРК сразу не может сразу выслать ответ "TotalInfo", допускается на команду "TotalRequest" выдать ответ "StatusInfo", а при следующих запросах статуса ("StatusRequest") выдать "TotalInfo".


^ Команда запроса данных последней транзакции (TransInfoRequest).


Код команды: s’ или 73h

Данные: отсутствуют


Назначение: ВЕДУЩЕЕ устройство передаёт эту команду , когда оно нуждается в

информации о последней трансакции ВЕДОМОГО устройства.

Ответ: TransactionInfo.


Ответы

^

Ответ статуса (StatusResponse)



Код ответа: S’ или 53h


Данные: Две ASCII цифры в следующем порядке

1 десятичная ASCII цифра - 0 до 6 номер активного пистолета 0 - пистолеты повешены.

1 десятичная ASCII цифра - 0....F состояние контроллера


0” - Контроллер не активен (заблокирован или включено местное управление)

1” - Пистолет повешен (режим ожидания).

3” - Пистолет снят, ожидание разрешения отпуска.

4” - Отпуск разрешён, идёт тест индикатора.

5” - Пуск.

В остоянии отпуска контроллер отвечает AmountInfo.

6 “ - Транзакция завершена нормально, ожидание повешенного пистолета.

7” - Транзакция завершена аварийно, ожидание повешенного пистолета.

(аварийный останов, задание не выполнено).

8” …”F” - Состояние ошибки.


Назначение: Передаёт состояние ВЕДОМОГО устройства. ВЕДОМОЕ устройство может передавать этот ответ в качестве подтверждения любой из команд.


Примечание:



  • Статус "5" может не передаваться, вместо него может передаваться "AmountInfo" (зависит от разработчика ПО ТРК).

  • Статус "6" или "7" передается в то время, когда ТРК закончив отпуск топлива ожидает повешения пистолета. Допускается вместо этих статусов передача "TransactionInfo" (зависит от разработчика ПО ТРК).

  • Значения статусов "8" - "F" выбираются разработчиком ПО ТРК для индикации ошибки со стороны системы управления, напр. "Сбой ТРК". Конкретное значение может быть использовано только разработчиком ПО ТРК в целях отладки.



^ Отчет о текущем отпуске (AmountInfo)


Код ответа: A’ или 41h


Данные::

2 десятичных ASCII символа - номер транзакции;

1 десятичная ASCII цифра – номер пистолета (от “1” до “6”);

6 десятичных ASCII символа – Отпущено в денежных единицах (копейках) .

6 десятичных ASCII символа – Отпущено в объемных единицах (10 мл).

(Удалено поле с 11.01.03 -Цена 1 литра в копейках-).


Числа представленные десятичными ASCII символами передаются так, что символ соответсвующий старшему разряду передается первым, а младшему - последний.


Назначение:

Информирование ВЕДУЩЕГО устройства о текущем отпуске топлива.


^ Отчет о проведенной транзакции (TransactionInfo)


Код ответа: 'T' или 54h


Данные:

2 десятичных ASCII символа - номер транзакции;

1 десятичная ASCII цифра – номер пистолета (от “1” до “6”);

6 десятичных ASCII символа – Отпущено в денежных единицах (копейках) .

6 десятичных ASCII символа – Отпущено в объемных единицах (10 мл).

4 десятичных ASCII символа – Цена 1 литра в копейках.


Числа представленные десятичными ASCII символами передаются так, что символ соответсвующий старшему разряду передается первым, а младшему - последний.


Назначение:

Извещает ВЕДУЩЕЕ устройство об окончании транзакции. Данное сообщение может быть переслано ВЕДОМЫМ устройством как ответ на любую из описанных выше команд.

ВЕДОМОЕ устройство повторяет данный отчет до тех пор, пока от ВЕДУЩЕГО не поступит команда Close с тем же номером транзакции, что и в ответе TransactionInfo (см. описание команды Close). Повтор отчета TransactionInfo будет продолжаться даже после выключения и включения питания раздаточного устройства вплоть до получения команды Close.


^ Данные электронного суммарника (TotalInfo)


Код ответа: ‘С’ или 43h


Данные::

2 десятичных ASCII символа - номер транзакции;

1 десятичная ASCII цифра – номер пистолета (от “1” до “6”);

10 десятичных ASCII символа – Отпущено в денежных единицах (копейках) .

10 десятичных ASCII символа – Отпущено в объемных единицах (10 мл).


Числа представленные десятичными ASCII символами передаются так, что символ соответсвующий старшему разряду передается первым, а младшему - последний.


Назначение:

Информирование ВЕДУЩЕГО устройства о суммарном объеме отпущенного топлива за период эксплуатации.

Приложение1


Пример подпрограммы вычисления CRC:


На C:

1)


typedef unsigned short WORD;

typedef unsigned char byte;


#define MAKE_TABS 0 /* Builds tables below */

#define FAST_CRC 1 /* If fast CRC should be used */


#if FAST_CRC & !MAKE_TABS


static WORD crc_16_tab[] = {

0x0000, 0xc0c1, 0xc181, 0x0140, 0xc301, 0x03c0, 0x0280, 0xc241,

0xc601, 0x06c0, 0x0780, 0xc741, 0x0500, 0xc5c1, 0xc481, 0x0440,

0xcc01, 0x0cc0, 0x0d80, 0xcd41, 0x0f00, 0xcfc1, 0xce81, 0x0e40,

0x0a00, 0xcac1, 0xcb81, 0x0b40, 0xc901, 0x09c0, 0x0880, 0xc841,

0xd801, 0x18c0, 0x1980, 0xd941, 0x1b00, 0xdbc1, 0xda81, 0x1a40,

0x1e00, 0xdec1, 0xdf81, 0x1f40, 0xdd01, 0x1dc0, 0x1c80, 0xdc41,

0x1400, 0xd4c1, 0xd581, 0x1540, 0xd701, 0x17c0, 0x1680, 0xd641,

0xd201, 0x12c0, 0x1380, 0xd341, 0x1100, 0xd1c1, 0xd081, 0x1040,

0xf001, 0x30c0, 0x3180, 0xf141, 0x3300, 0xf3c1, 0xf281, 0x3240,

0x3600, 0xf6c1, 0xf781, 0x3740, 0xf501, 0x35c0, 0x3480, 0xf441,

0x3c00, 0xfcc1, 0xfd81, 0x3d40, 0xff01, 0x3fc0, 0x3e80, 0xfe41,

0xfa01, 0x3ac0, 0x3b80, 0xfb41, 0x3900, 0xf9c1, 0xf881, 0x3840,

0x2800, 0xe8c1, 0xe981, 0x2940, 0xeb01, 0x2bc0, 0x2a80, 0xea41,

0xee01, 0x2ec0, 0x2f80, 0xef41, 0x2d00, 0xedc1, 0xec81, 0x2c40,

0xe401, 0x24c0, 0x2580, 0xe541, 0x2700, 0xe7c1, 0xe681, 0x2640,

0x2200, 0xe2c1, 0xe381, 0x2340, 0xe101, 0x21c0, 0x2080, 0xe041,

0xa001, 0x60c0, 0x6180, 0xa141, 0x6300, 0xa3c1, 0xa281, 0x6240,

0x6600, 0xa6c1, 0xa781, 0x6740, 0xa501, 0x65c0, 0x6480, 0xa441,

0x6c00, 0xacc1, 0xad81, 0x6d40, 0xaf01, 0x6fc0, 0x6e80, 0xae41,

0xaa01, 0x6ac0, 0x6b80, 0xab41, 0x6900, 0xa9c1, 0xa881, 0x6840,

0x7800, 0xb8c1, 0xb981, 0x7940, 0xbb01, 0x7bc0, 0x7a80, 0xba41,

0xbe01, 0x7ec0, 0x7f80, 0xbf41, 0x7d00, 0xbdc1, 0xbc81, 0x7c40,

0xb401, 0x74c0, 0x7580, 0xb541, 0x7700, 0xb7c1, 0xb681, 0x7640,

0x7200, 0xb2c1, 0xb381, 0x7340, 0xb101, 0x71c0, 0x7080, 0xb041,

0x5000, 0x90c1, 0x9181, 0x5140, 0x9301, 0x53c0, 0x5280, 0x9241,

0x9601, 0x56c0, 0x5780, 0x9741, 0x5500, 0x95c1, 0x9481, 0x5440,

0x9c01, 0x5cc0, 0x5d80, 0x9d41, 0x5f00, 0x9fc1, 0x9e81, 0x5e40,

0x5a00, 0x9ac1, 0x9b81, 0x5b40, 0x9901, 0x59c0, 0x5880, 0x9841,

0x8801, 0x48c0, 0x4980, 0x8941, 0x4b00, 0x8bc1, 0x8a81, 0x4a40,

0x4e00, 0x8ec1, 0x8f81, 0x4f40, 0x8d01, 0x4dc0, 0x4c80, 0x8c41,

0x4400, 0x84c1, 0x8581, 0x4540, 0x8701, 0x47c0, 0x4680, 0x8641,

0x8201, 0x42c0, 0x4380, 0x8341, 0x4100, 0x81c1, 0x8081, 0x4040

};

#endif


/* CRC-16 is based on the polynomial x^16 + x^15 + x^2 + 1. Bits are */

/* sent LSB to MSB. */

WORD get_crc_16( WORD crc, byte *buf, int size )

{

#if !(FAST_CRC & !MAKE_TABS)

register int i;

register int ch;

#endif


while (size--) {

#if FAST_CRC & !MAKE_TABS

crc = (crc >> 8) ^ crc_16_tab[ (crc ^ *buf++) & 0xff ];

#else

ch = *buf++;

for (i = 0; i < 8; i++) {

if ((crc ^ ch) & 1)

crc = (crc >> 1) ^ 0xa001;

else

crc >>= 1;

ch >>= 1;

}

#endif

}

return crc;

}


На асемблере 8051:

....

crc: ds 2

....

polin: ;in - a - next byte

xrl a,crc

mov crc,crc+1

mov crc+1,a

mov c,p

jnc li0

xrl crc,#01h

li0:

rrc a

jnc li1

xrl crc,#40h

li1:

mov c,acc.7

xrl a,crc+1

rrc a

mov crc+1,a

jnc li2

xrl crc,#80h

li2:

ret

Приложение2


Список изменений (Changelog):

06.08.03

  • Добавлены уточняющие коментарии.


15.01.03

  • Изменена адресация ведомых контроллеров (0...ffh -> 31h...ffh).

  • Добавлен широковещательный адрес (0).

  • В команду Autorize добавлена команда варианта заправки и удалено 6 дублирующих байт.

  • Переработана команда StatusResponse ,контроллер обрабатывает только один активный пистолет.

  • Удален отчет NozzleReport вся необходимая информация содержится в StatusResponse.

  • В отчет о текущем отпуске (AmountInfo) удалена информация о цене для укорочения информационного потока.

  • 8. Добавлена команда запроса состояния последней заправки (TransInfoRequest).


26.12.02

  • Изменен алгоритм вычисления CRC.

  • Добавлена команда TotalRequest с ответом TotalInfo



Похожие:

Протокол взаимодействия трк с устройствами управления iconДополнения к Протоколу взаимодействия трк с устройствами управления
Дополнения применяются для трк с панелью преднабора, и предназначаются для возможности управления отпуском гсм со стороны трк
Протокол взаимодействия трк с устройствами управления iconРішення №1366 11. 10. 2007 м. Київ Протокол №36 Про ознаки порушення виборчого законодавства тов трк „Клас, м. Київ (нр №1380 від 31. 12. 2003)
України тов трк „Клас”, м. Київ, нр №1380 від 31. 12. 2003 (вид мовлення – ефірне (РМ)), керуючись статтею 13 Закону України „Про...
Протокол взаимодействия трк с устройствами управления iconНастройка интернета (wi-fi) для Windows Vista, 7
Войдите в Пуск – панель управления – сеть и интернет – центр управления сетями и общим доступом – управление сетевыми подключениями....
Протокол взаимодействия трк с устройствами управления iconНастройка интернета в общежитиях нгу для Windows Vista, 7
Войдите в Пуск – панель управления – сеть и интернет – центр управления сетями и общим доступом – управление сетевыми подключениями....
Протокол взаимодействия трк с устройствами управления iconАнализ внешней среды и выработка стратегии взаимодействия
Методы анализа внешней среды и выработка стратегии взаимодействия организации с ее элементами. 19
Протокол взаимодействия трк с устройствами управления iconЧетко выстроенная схема взаимодействия всех заинтересованных сторон. Сквозное нормативно-правовое обеспечение
Факторы, способствующие охвату программой 100% учреждений образования г. Севастополя четко выстроенная схема взаимодействия всех...
Протокол взаимодействия трк с устройствами управления iconМесто механизма управления в системе управления маркетингом персонала предприятия

Протокол взаимодействия трк с устройствами управления iconПол вацлавик джанет бивин дон джексон прагматика человеческих коммуникаций изучение паттернов, патологий и парадоксов взаимодействия «апрель-пресс»
В 12 Прагматика человеческих коммуникаций: Изучение пат­тернов, патологий и парадоксов взаимодействия. / Пер с англ. А. Суворовой....
Протокол взаимодействия трк с устройствами управления iconРішення №1363 11. 10. 2007 м. Київ Протокол №36 Про ознаки порушення виборчого законодавства тов „трк „мтв-плюс, м. Мелітополь Запорізької обл
Закону України „Про телебачення і радіомовлення”, статтями 13 і 21 Закону України „Про Національну раду України з питань телебачення...
Протокол взаимодействия трк с устройствами управления iconРішення №1360 11. 10. 2007 м. Київ Протокол №36 Про ознаки порушення виборчого законодавства тов „трк „Вікка, м. Черкаси (нр №1742 від 15. 07. 2004)
Закону України „Про телебачення і радіомовлення”, статтями 13 і 21 Закону України „Про Національну раду України з питань телебачення...
Разместите кнопку на своём сайте:
Документы


База данных защищена авторским правом ©gua.convdocs.org 2000-2015
При копировании материала обязательно указание активной ссылки открытой для индексации.
обратиться к администрации
Документы

Разработка сайта — Веб студия Адаманов