2.2 Описание запросов
Приведенные ниже запросы и ответы, представлены в базовом формате. Правила перехода к расширенному формату описаны в п. 2.3.
Обмен с тепловычислителем должен начинаться процедурой установления сеанса связи. Для этого внешнее устройство должно передать тепловычислителю стартовую последовательность не менее чем из шестнадцати байтов 0хFF. Далее должен быть передан запрос вида:
Где: CH - код канала СПТ943, по которому будут выполняться последующие процедуры чтения архивов (2.2.4), ввода параметров настроечной базы данных (2.2.5) и т.п. Процедуры непосредственной работы с памятью тепловычислителя - чтение FLASH-памяти (2.2.2), чтение ОЗУ (2.2.3) безразличны к значению байта CH.
В СПТ943 принята следующая кодировка каналов: 0 - канал ОБЩ; 1 и 2 - каналы ТВ1 и ТВ2 соответственно.
Ответ СПТ943:
Где: 0x54 0x2B - код прибора СПТ943;
Байт VX - идентификатор версии внутреннего программного обеспечения прибора.
Если номер NT в запросе не совпадает с номером NT тепловычислителя и не равен 255 (безадресный запрос), тепловычислитель прекращает прием и обработку дальнейший информации вплоть до получения следующей стартовой последовательности 0xFF. Таким образом, при работе с группой СПТ943, после установки сеанса связи с запрашиваемым тепловычислителем, дальнейший обмен информацией будет возможен только с ним. Все остальные приборы группы будут игнорировать последующие запросы внешнего устройства.
Внимание!
Все тепловычислители, объединенные в группу, должны иметь различные сетевые номера. При установлении сеанса связи важно выполнять требования к временным характеристикам обмена, описанным в разделе 2.4.
Процедура установления сеанса должна выполняться на скорости 2400 бит/с.
2.2.2 Чтение FLASH-памяти
Запрос чтения FLASH-памяти:
Где: N1, N0 - соответственно младший и старший байты номера первой считываемой страницы 64 байта; К - количество считываемых страниц.
Количество считываемых одним запросом страниц - 1...64.
Ответ СПТ943:
Каждая страница FLASH заключается в один кадр. Количество кадров в ответе СПТ943 соответствует количеству запрашиваемых страниц.
2.2.3 Чтение ОЗУ
Запрос чтения ОЗУ:
Где: А1, А0 - соответственно младший и старший байты адреса первого считываемого байта ОЗУ; КБ - количество считываемых байтов ОЗУ. КБ должно находиться в пределах 1...64.
Ответ СПТ943:
Список доступных для чтения параметров ОЗУ приведен в приложении 1.
2.2.4 Запросы для работы с архивами
СПТ943 поддерживает ряд запросов, позволяющих выводить накопленные им архивные данные.
Структура архивных данных, накапливаемых по каналам ТВ1 и ТВ2 одинакова. Возвращаемые тепловычислителем данные будут относиться к каналу, код которого был предварительно передан ему в запросе сеанса связи (2.2.1).
Запрос поиска записи в часовом архиве:
Где: гг-мм-дд-чч - заголовок искомой записи (год, месяц, день, час соответственно).
Диапазон допускаемых значений байта чч - 0...23. Запись, датированная нулем часов, будет относиться интервалу 23 - 24 час предыдущих суток; запись, датированная 23 часами - к интервалу 22 - 23 часа конца суток. Для всех запросов архивных записей значение байта "гг" вычисляется по формуле:
гг = (год - 2000) + 100
Например, заголовок часовой записи, сформированной в 20 часов 01 суток 02 месяца 2005 года, будет выглядеть следующим образом:
гг-мм-дд-чч = 105-2-1-20.
Ответ СПТ943:
Аналогичным образом строятся запросы суточных и месячных записей.
Запрос поиска записи в суточном архиве:
Запрос поиска записи в месячном архиве:
При отсутствии в архиве искомой записи СПТ943 возвращает ответ с кодом ошибки 0x03 (см.2.3).
Структура архивных данных, выводимых в ответах СПТ943, приведена в приложении 2.
2.2.5 Ввод параметров настроечной базы данных тепловычислителя
Запрос ввода параметра БД:
Где: N1, N0 - соответственно младший и старший байты номера параметра.
Ввод параметра настроечной БД тепловычислителя возможен при выключенном переключателе ЗАЩИТА или, при включенном переключателе - если параметр является оперативным. Если ввод параметра разрешен, СПТ943 формирует подтверждение:
В противном случае будет сформирован ответ с кодом ошибки 0x01 - "Защита от ввода параметра" (2.3).
При подтверждении ввода тепловычислителю должен быть передан блок данных, содержащий значение параметра:
Структура передаваемого блока данных:
Где: В0.. .В7 - ASCII код значения параметра. При этом В0 - старший разряд значения параметра или знак, если значение параметра отрицательное; 0/* - признак "оперативный параметр".
ASCII символ "*" в позиции 0/* устанавливает принадлежность вводимого параметра к списку оперативных. Ноль (0х00) в указанной позиции исключает параметр из списка оперативных. При любом другом значении байта 0/* отношение параметра к списку оперативных не модифицируется.
Если значение параметра содержит менее восьми значащих цифр, неиспользуемые младшие байты значения должны быть заполнены кодом 0x20. Примеры вводимых данных показаны в таблице 2.1. После приема и обработки блока информации формируется подтверждение:
В случае некорректности вводимых данных тепловычислитель формирует ответ с кодом ошибки 0x02 - "Недопустимые значения параметров запроса" (2.3). Запись параметра в БД при этом не выполняется.
Чтение параметров БД в их внутреннем представлении может быть выполнено с помощью запроса чтения FLASH-памяти. Формат хранения параметров описан в приложении 3.
Таблица 2.1 - Примеры вводимых данных
2.2.6 Вывод отчетов на печать
Вывод квитанций СПТ943 на принтер осуществляется с помощью адаптера АПС45.
Символьный образ квитанции формируется в памяти тепловычислителя. Адаптер АПС45 с помощью описанных ниже запросов считывает сформированную квитанцию и транслирует ее на принтер.
АПС45 ведет периодический опрос состояния очереди печати СПТ943. Для этого применяется запрос вида:
Ответ СПТ943:
Где: N1, N0 - номер квитанции в очереди СПТ943, готовой к выводу на печать (младший и старший байты соответственно); С1, С0 - количество блоков 64 байта, содержащихся в квитанции. При отсутствии квитанций в очереди печати тепловычислитель возвращает ответ с С1 = С0 = 0. Готовые к распечатке квитанции поблочно считываются адаптером.
Запрос чтения блока квитанции:
Где: N1, N0 - номер квитанции в очереди СПТ943; B1, B0 - номер запрашиваемого блока. Нумерация блоков начинается с нуля.
Ответ СПТ943:
Поблочное чтение выполняется до тех пор, пока не будет считано полное количество блоков квитанции, переданное тепловычислителем в ответе на запрос состояния очереди печати. При успешном завершении печати АПС45 удаляет распечатанную квитанцию из очереди СПТ943.
Запрос удаления квитанции из очереди печати:
Ответ:
2.2.7 Запросы управления счетом
Запросы предназначены для выполнения пуска/останова счета и сброса архивов. Действие запросов распространяется на канал, выбранный при установлении сеанса связи с вычислителем.
Общий вид запроса:
Где: КОП - код операции: 0 - останов счета; 1 - пуск счета; 0хFF - сброс архивов.
Подтверждение:
Внимание!
Обработка запроса производится только при выключенном переключателе ЗАЩИТА. При включенном переключателе будет сформирован ответ с кодом ошибки 0х01. Обработка запроса может занимать значительное время (см. параметр t5 п. 2.3).
2.2.8 Выбор скорости обмена
Обмен с тепловычислителем может вестись скоростях 2400, 4800, 9600 и 19200 бит/с.
Установление скорости обмена осуществляется по запросу внешнего устройства. При этом начальная скорость обмена, т.е. скорость на этапе установления сеанса связи с тепловычислителем, всегда равна 2400 бит/с.
Запрос выбора скорости обмена:
Где: байт S - код скорости обмена.
Значение 0х00 соответствует скорости 2400 бит/с; 0х01 - 4800 бит/с; 0х02 - 9600 бит/с; 0х03 - 19200 бит/с.
Подтверждение СПТ943:
Подтверждение передается тепловычислителем на неизменной скорости, после чего вступает в силу ее новое значение. При отсутствии обмена в течение 10 с тепловычислитель автоматически перестраивает свой интерфейс на исходную скорость обмена 2400 бит/с.
|