Ошибка передачи начала кадра сообщения

Ошибка передачи начала кадра сообщения

andi

Сообщения: 3
Зарегистрирован: 10 июн 2018, 15:43

Ошибка передачи начала кадра сообщения

При добавлении устройства в ККМ через USB ( а именно Атол 11ф, винда 10) у меня появляются порты атол 5 и 6,
которые я соответственно прописываю в ККМ, но при сохранении выходит ошибка «Не подключена: ККМ не подключена! (Ошибка передачи начала кадра сообщения)». Регистратор по факту включен. В чем может быть причина ?


Audim

Администратор
Сообщения: 2283
Зарегистрирован: 17 мар 2015, 18:36

Re: Ошибка передачи начала кадра сообщения

Сообщение

Audim » 14 июн 2018, 19:28

Одни порт для подачи команд, 2-рой для связи с ОФД.

Вы какие порты где указываете?


andi

Сообщения: 3
Зарегистрирован: 10 июн 2018, 15:43

Re: Ошибка передачи начала кадра сообщения

Сообщение

andi » 14 июн 2018, 20:27

5 порт для данных, 6 порт для ОФД
Поменял порты местами — удалось распечатать первый чек.
А спустя пару часов опять ККМ потерял кассу, все теже порты 5 и 6 менял несколько раз,
результат опять «Не подключена: ККМ не подключена! (Ошибка передачи начала кадра сообщения)»


Audim

Администратор
Сообщения: 2283
Зарегистрирован: 17 мар 2015, 18:36

Re: Ошибка передачи начала кадра сообщения

Сообщение

Audim » 15 июн 2018, 00:23

При подборе портов отключите сначала порт EoU — он его довольно долго отключает.
А потом перебором портов нащупайте правильный.
А уж потом выбирайте другой для EoU.

ЗЫ: Атол иногда сам меняет номера портов или они меняются местами сами….


Audim

Администратор
Сообщения: 2283
Зарегистрирован: 17 мар 2015, 18:36

Re: Ошибка передачи начала кадра сообщения

Сообщение

Audim » 15 июн 2018, 00:24

И проверьте что другая программа не блокирует порты.


andi

Сообщения: 3
Зарегистрирован: 10 июн 2018, 15:43

Re: Ошибка передачи начала кадра сообщения

Сообщение

andi » 15 июн 2018, 14:23

Audim писал(а):При подборе портов отключите сначала порт EoU — он его довольно долго отключает.
А потом перебором портов нащупайте правильный.
А уж потом выбирайте другой для EoU.

ЗЫ: Атол иногда сам меняет номера портов или они меняются местами сами….

получилось, благодарю


Ошибка передачи начала кадра сообщения

andi

Сообщения: 3
Зарегистрирован: 10 июн 2018, 15:43

Ошибка передачи начала кадра сообщения

При добавлении устройства в ККМ через USB ( а именно Атол 11ф, винда 10) у меня появляются порты атол 5 и 6,
которые я соответственно прописываю в ККМ, но при сохранении выходит ошибка «Не подключена: ККМ не подключена! (Ошибка передачи начала кадра сообщения)». Регистратор по факту включен. В чем может быть причина ?


Audim

Администратор
Сообщения: 2230
Зарегистрирован: 17 мар 2015, 18:36

Re: Ошибка передачи начала кадра сообщения

Сообщение

Audim » 14 июн 2018, 19:28

Одни порт для подачи команд, 2-рой для связи с ОФД.

Вы какие порты где указываете?


andi

Сообщения: 3
Зарегистрирован: 10 июн 2018, 15:43

Re: Ошибка передачи начала кадра сообщения

Сообщение

andi » 14 июн 2018, 20:27

5 порт для данных, 6 порт для ОФД
Поменял порты местами — удалось распечатать первый чек.
А спустя пару часов опять ККМ потерял кассу, все теже порты 5 и 6 менял несколько раз,
результат опять «Не подключена: ККМ не подключена! (Ошибка передачи начала кадра сообщения)»


Audim

Администратор
Сообщения: 2230
Зарегистрирован: 17 мар 2015, 18:36

Re: Ошибка передачи начала кадра сообщения

Сообщение

Audim » 15 июн 2018, 00:23

При подборе портов отключите сначала порт EoU — он его довольно долго отключает.
А потом перебором портов нащупайте правильный.
А уж потом выбирайте другой для EoU.

ЗЫ: Атол иногда сам меняет номера портов или они меняются местами сами….


Audim

Администратор
Сообщения: 2230
Зарегистрирован: 17 мар 2015, 18:36

Re: Ошибка передачи начала кадра сообщения

Сообщение

Audim » 15 июн 2018, 00:24

И проверьте что другая программа не блокирует порты.


andi

Сообщения: 3
Зарегистрирован: 10 июн 2018, 15:43

Re: Ошибка передачи начала кадра сообщения

Сообщение

andi » 15 июн 2018, 14:23

Audim писал(а):При подборе портов отключите сначала порт EoU — он его довольно долго отключает.
А потом перебором портов нащупайте правильный.
А уж потом выбирайте другой для EoU.

ЗЫ: Атол иногда сам меняет номера портов или они меняются местами сами….

получилось, благодарю


Протокол CAN. Описание, формат кадра, контроль ошибок.

Приветствую всех на нашем сайте! Сегодняшняя статья будет целиком и полностью посвящена обзору протокола CAN. А в одной из следующих статей мы реализуем обмен данными по CAN на практике. Но не буду забегать вперед…

CAN (Controller Area Network) — это промышленный стандарт, позволяющий осуществить объединение в единую сеть различных узлов, механизмов, датчиков и т. п. Протокол является широковещательным, это значит, что все устройства в CAN-сети принимают все передаваемые по шине сигналы. Режим передачи данных — последовательный, при этом байты сообщений формируют кадры определенного вида. Структуру этих кадров данных мы также обязательно разберем в этой статье.

Основные характеристики протокола CAN:

  • очень высокая надежность и защищенность
  • каждое сообщение имеет свой собственный приоритет
  • реализован механизм обнаружения ошибок
  • автоматическая повторная отправка сообщений, которые были доставлены с ошибкой
  • уже упомянутый широковещательный характер передачи данных
  • возможность присутствия нескольких ведущих (master) устройств в одной сети
  • широкий диапазон скоростей работы
  • высокая устойчивость интерфейса к помехам
  • кроме того, есть механизм обнаружения «сбойных» узлов с последующим удалением таких узлов из сети.

Первоначально стандарт был разработан для автомобильной промышленности. И занималась этим компания Bosch в 1980-х годах. Основная идея заключалась в том, чтобы уйти от использования огромного количества проводов, соединяющих многочисленные узлы автомобиля. И протокол CAN позволил этого достичь! С тех пор CAN является основным механизмом соединения устройств, узлов и датчиков автомобиля между собой. Помимо этого, интерфейс CAN активно используется в промышленной автоматизации, а также в системах «умного дома».

Давайте перейдем к физическому уровню протокола. В интернете можно найти много противоречивой информации на этот счет, но истина тут одна 🙂 Стандарт CAN компании Bosch не регламентирует физический уровень передачи данных, поэтому могут использоваться абсолютно разные варианты, например, оптоволокно. На практике же чаще всего используется соединение посредством двухпроводной дифференциальной линии (витой пары). Ориентировочная максимальная длина линии для разных скоростей передачи данных составляет:

Скорость Длина линии
1 Мбит/с 50 м
500 кбит/с 100 м
125 кбит/с 500 м
10 кбит/с 5 км

Важным условием работоспособности шины является наличие на концах витой пары согласующих резисторов, которые также называют терминаторами, с сопротивлением 120 Ом:

В отличие от многих других протоколов в CAN не рекомендуется описание битов данных как «логического нуля» и «логической единицы». Здесь используются понятия доминантный и рецессивный бит.

Важнейшим свойством является то, что если один из узлов сети хочет выставить на линии рецессивный бит, а другой доминантный, то в итоге на линии окажется доминантный бит. В общем-то отсюда и следует его название, от слова «доминировать» 🙂 Очень хорошо этот процесс иллюстрирует пример с оптоволоконной линией. Как вы помните, в оптоволокне для передачи данных используется «свет», либо он есть (единица), либо его нет (ноль). При использовании в CAN-сети «свет» — доминантный бит, соответственно, отсутствие света или «темнота» — рецессивный. Вспоминаем про важнейшее свойство передачи данных в сети…

Пусть один узел выставляет на линии рецессивный бит, то есть «темноту». Второй узел, напротив, выставляет доминантный бит — «свет». В итоге на линии будет «свет», то есть доминантный бит, что в точности соответствует требованиям сети!

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

Это свойство используется для арбитража в сети CAN. Пусть несколько устройств хотят передать данные. Каждый из этих передатчиков сравнивает значение, которое он передает, со значением, фактически присутствующим на линии. В том случае, если передаваемое значение совпадает со считанным, устройство продолжает высылать свои данные. Если значения совпали у нескольких устройств, то все они продолжают передачу как ни в чем не бывало.

Продолжается это до того момента, когда значения станут различными. Если несколько устройств хотят передать рецессивный бит, а одно — доминантный, то в соответствии с правилом, которое мы обсудили выше, на линии окажется доминантный бит. В таком случае отправленные и считанные значения для устройств, пытающихся выдать на линию рецессивное состояние, не совпадут. В этом случае они должны прекратить передачу. А тот узел, который в этот момент передавал доминантный бит, продолжит свою работу. Доминирование в чистом виде 🙂

Сигналы, которые передаются по витой паре, получили название CAN_H и CAN_L (High и Low). Доминантное состояние соответствует случаю, когда потенциал сигнала CAN_H выше потенциала CAN_L. Рецессивное — когда потенциалы равны (разница потенциалов не превышает допустимого отклонения, 0.5 В).

С этим вроде бы разобрались, давайте двигаться дальше!

Пришло время определить, как биты объединяются в кадры. Протокол CAN определяет 4 вида кадров:

  • Кадр данных (data frame)
  • Кадр удаленного запроса (remote frame)
  • Кадр перегрузки (overload frame)
  • Кадр ошибки (error frame)

Для кадра данных возможны два варианта — базовый формат и расширенный. Вот так выглядит структура базового формата:

Поле Длина Описание
Начало кадра (SOF) 1 бит Начало передачи кадра
Идентификатор (ID) 11 бит Идентификатор сообщения
Запрос на передачу (RTR) 1 бит Доминантный бит
Бит расширения идентификатора (IDE) 1 бит Бит определяет длину идентификатора, для базового формата — доминантный бит
Зарезервированный бит 1 бит Зарезервировано
Длина данных (DLC) 4 бита Количество байт данных
Данные 0 — 8 байт Данные
Контрольная сумма (CRC) 15 бит Контрольная сумма
Разграничитель контрольной суммы 1 бит Рецессивный бит
Промежуток подтверждения (ACK) 1 бит Для приемника — доминантный бит, для передатчика — рецессивный
Разграничитель подтверждения 1 бит Рецессивный бит
Конец кадра (EOF) 7 бит Все биты рецессивные

А это структура расширенного:

Поле Длина Описание
Начало кадра (SOF) 1 бит Начало передачи кадра
Идентификатор A (ID A) 11 бит Первая часть идентификатора
Подмена запроса на передачу (SRR) 1 бит Рецессивный бит
Бит расширения идентификатора (IDE) 1 бит Бит определяет длину идентификатора, для расширенного формата — рецессивный бит
Идентификатор B (ID B) 18 бит Вторая часть идентификатора
Запрос на передачу (RTR) 1 бит Доминантный бит
Зарезервированные биты 2 бита Зарезервировано
Длина данных (DLC) 4 бита Количество байт данных
Данные 0 — 8 байт Данные
Контрольная сумма (CRC) 15 бит Контрольная сумма
Разграничитель контрольной суммы 1 бит Рецессивный бит
Промежуток подтверждения (ACK) 1 бит Для приемника — доминантный бит, для передатчика — рецессивный
Разграничитель подтверждения 1 бит Рецессивный бит
Конец кадра (EOF) 7 бит Все биты рецессивные

Результирующий идентификатор получается в результате объединения полей «Идентификатор A» и «Идентификатор B«.

Кадр удаленного запроса (remote frame) представляет из себя кадр данных, описанный выше, но без поля данных и с рецессивным битом RTR. Он используется в случае, когда один узел хочет запросить данные у другого узла.

Кадр ошибки (error frame) передает устройство, обнаружившее ошибку в сети. Фрейм ошибки имеет наивысший приоритет и принимается всеми устройствами сети в обязательном порядке.

Кадр перегрузки (overload frame) используется очень редко… Его идея и назначение заключается в том, что с его помощью устройство, которое в данный момент не может принять данные, запрашивает повторную передачу этих же данных.

А давайте вернемся чуть назад, к арбитражу данных, и рассмотрим, что это может означать на практике! Итак, несколько устройств начинают передачу сообщения, а точнее кадра данных. Передается бит начала кадра и затем начинается передача идентификатора сообщения. Как вы помните, приоритет будет у того устройства, которое будет передавать доминантный бит, в тот момент, когда все остальные будут передавать рецессивный. То есть чем «позже» среди битов идентификатора появится «рецессивный бит», тем выше будет его приоритет! Другими словами: более высокий приоритет при использовании интерфейса CAN имеют сообщения с меньшим значением идентификатора.

Первые два типа кадров — кадр данных и кадр удаленного запроса — отделяются от других кадров специальным межкадровым промежутком (паузой). А для фреймов ошибки и перегрузки предусмотрена передача без пауз, чтобы обеспечить их скорейшую обработку узлами сети.

Итак, что у нас на очереди теперь? Конечно же контроль ошибок — важнейший аспект работы протокола CAN! Стандарт предусматривает несколько механизмов контроля ошибок.

  • Во-первых, это контроль передачи битов — уровень сигнала в сети сравнивается с передаваемым для каждого бита.
  • Второй механизм заключается в использовании дополнительных битов (stuffing bit). После передачи любых пяти одинаковых битов автоматически добавляется передача бита противоположного значения. Таким образом, при передаче шести одинаковых битов диагностируется ошибка stuffing’а. Этот механизм используется для кодирования всех полей фреймов данных и запроса. Исключением являются только поля промежутка подтверждения, разграничителя контрольной суммы и EOF.
  • Стандартная процедура проверки контрольной суммы. Передатчик вычисляет контрольную сумму для текущего кадра и передает ее в линию. В свою очередь, приемник также вычисляет контрольную сумму для принимаемых данных и сравнивает ее с тем значением, которое было отправлено передатчиком. В случае не совпадения значений диагностируется ошибка CRC.
  • Также выполняется контроль битов фрейма, которые должны иметь заранее определенное значение. В случае, если реальное значение не совпадает с тем, которое ожидается, возникает ошибка.

Благодаря всем этим механизмам, вероятность необнаружения ошибки является очень низкой, что, конечно же, не может не радовать 🙂

Кроме того, если один из узлов обнаружил ошибку в сообщении, он сообщает об этом в сеть CAN при помощи фрейма ошибки. А поскольку сеть у нас широковещательная, то о возникновении ошибки становится известно всем участникам коммуникации. И если в сообщении была обнаружена ошибка, его передача будет осуществлена еще раз.

И на этом еще не все! Каждый узел может находиться в одном из трех состояний:

  • Error Active
  • Error Passive
  • Bus Off

Протокол CAN предусматривает, что изначально, после старта, узел находится в первом из этих состояний — Error Active. Каждое устройство имеет два счетчика ошибок:

  • Счетчик ошибок передачи
  • Счетчик ошибок приема

Существуют определенные правила обслуживания этих счетчиков, которые сводятся к следующему. Передатчик, обнаруживший ошибку, увеличивает свой счетчик ошибок передачи быстрее, чем приемники увеличивают свои счетчики ошибок приема. Это связано с предположением, что при ошибке, вероятность того, что сбой произошел именно в передатчике, а не в приемнике, достаточно велика. На практике ошибка передачи увеличивает соответствующий счетчик на 8, а ошибка приема лишь на 1. При приеме или передаче корректного сообщения как счетчик ошибок передачи, так и счетчики ошибок приема уменьшаются на 1.

Если значение любого из этих двух счетчиков узла превысит значение 127, то узел переходит в состояние Error Passive. А если величина одного из счетчиков превысит 255, то узел перейдет в состояние Bus Off.

Разница между этими состояниями заключается в действиях узла при диагностировании ошибки:

  • Узел в состоянии Error Active при обнаружении ошибки передает в шину Active Error Flags — 6 доминантных бит. Поскольку биты доминантные, то это сообщение нарушает обычную работу шины и поэтому все устройства сети также фиксируют возникновение ошибки.
  • Узел в состоянии Error Passive при обнаружении ошибки передает в шину Passive Error Flags — 6 рецессивных бит, которые игнорируются всеми другими участниками обмена. Поэтому увеличивается только величина счетчика ошибок одного конкретного узла.
  • И, наконец, узел в состоянии Bus Off ничего не передает в сеть — ни фреймы ошибок, ни фреймы данных, никакие другие.

Как видите, протокол CAN крайне интересен для изучения, надежен, безопасен, и удобен в использовании 🙂

И на этой позитивной ноте на сегодня заканчиваем, скоро займемся практической реализацией протокола, также поговорим о микросхемах и устройствах, обеспечивающих работу с CAN. Так что подписывайтесь на обновления, буду рад снова видеть вас на нашем сайте!

Источник

В Берляндском государственном университете локальная сеть между серверами не всегда работает без ошибок. При передаче двух одинаковых сообщений подряд возможна ошибка, в результате которой эти два сообщения сливаются в одно. При таком слиянии конец первого сообщения совмещается с началом второго. Конечно, совмещение может происходить только по одинаковым символам. Длина совмещения должна быть положительным числом, меньшим длины текста сообщения.

Например, при передаче двух сообщений «abrakadabra» подряд возможно, что оно будет передано с ошибкой описанного вида, и тогда будет получено сообщение вида «abrakadabrabrakadabra» или «abrakadabrakadabra» (в первом случае совмещение произошло по одному символу, а во втором — по четырем).

По полученному сообщению t определите, возможно ли, что это результат ошибки описанного вида работы локальной сети, и если возможно, определите возможное значение s.

Не следует считать ошибкой ситуацию полного наложения друга на друга двух сообщений. К примеру, если получено сообщение «abcd», следует считать, что в нём ошибки нет. Аналогично, простое дописывание одного сообщения вслед за другим не является признаком ошибки. Например, если получено сообщение «abcabc», следует считать, что в нём ошибки нет.

Входные данные
В единственной строке выходных данных следует непустая строка t, состоящая из строчных букв латинского алфавита. Длина строки t не превосходит 100 символов.

Выходные данные
Если сообщение t не может содержать ошибки, выведите «NO» (без кавычек) в единственную строку выходных данных.

В противном случае в первой строке выведите «YES» (без кавычек), а в следующей строке выведите строку s — возможное сообщение, которое могло привести к ошибке. Если возможных ответов несколько, разрешается вывести любой из них.

Примеры

входные данные
abrakadabrabrakadabra
выходные данные
YES
abrakadabra

входные данные
acacacaca
выходные данные
YES
acaca

входные данные
abcabc
выходные данные
NO

входные данные
abababab
выходные данные
YES
ababab

входные данные
tatbt
выходные данные
NO

Примечание
Во втором примере подходящим ответом также является строка acacaca.
С чего начинать подскажите пожалуйста.

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь

  1. Формат сообщения CAN

    Каждое сообщение, передаваемое по шине, состоит из 7 частей. CANПоддержка протоколаЕдинственная разница между двумя форматами сообщенийидентификаторДлина (ID) другая, стандартный формат 11 бит, расширенный формат 29 бит.

    В стандартном форматеПакетыНачальный бит называется началом кадра (SOF), за которым следует поле арбитража, состоящее из 11-битного идентификатора и бита запроса удаленной передачи (RTR). Бит RTR указывает даФрейм данныхЭто все еще кадр запроса, и в кадре запроса нет байтов данных.

    Поле управления включает в себя бит расширения идентификатора (IDE), указывающий, является ли это стандартным форматом или расширенным форматом. Он также включает зарезервированный бит (ro) для будущего расширения. Последние четыре бита используются для указания длины данных в поле данных (DLC). Диапазон полей данных составляет от 0 до 8 байтов.Циклическая проверка избыточности(CRC)。

    Поле подтверждения (ACK) состоит из битов подтверждения и разделителей подтверждения. Два бита, отправленные отправляющей станцией, являются рецессивными уровнями (логика 1). В это время принимающая станция, которая правильно отправляет сообщение, получает главный уровень (логика 0) для его покрытия. Таким образом, отправляющая станция может гарантировать, что по крайней мере одна станция в сети сможет правильно принять сообщение.

    ПакетыХвост отмечен концом кадра. Между двумя соседними сообщениями существует короткий интервал: если в это время ни одна станция не обращается к шине, она будет свободна.

    Как показано на фиг.11, конкретная цифра или цифры будут подробно описаны ниже.

    Рисунок 11 Структура сообщения по шине CAN

  2. Фрейм данных

    Кадр данных является наиболее часто используемым и состоит из 7 сегментов в структуре, среди которых, согласно длине кода идентификатора арбитражного сегмента, он делится на стандартный кадр (CAN2.0A) и расширенный кадр (CAN2.0B).

    Кадр данных состоит из: начала кадра, арбитражного прерывания, конца управления, сегмента данных, сегмента CRC, сегмента ACK и конца кадра.

    Как показано на рисунке 21 (конкретная структура кадра будет подробно описана ниже).

    Рисунок 2–1 Тип и структура фрейма данных

  3. Начало кадра и конец кадра

    Начало кадра: состоит из одного доминирующего бита. Когда шина не используется, отправляющий узел отправляет начало кадра, а другие принимающие узлы синхронизируются с началом кадра.

    Конец кадра: состоит из 7 последовательных невидимых битов.

    (Примечание. Доминирующий и рецессивный уровни — это дифференциальные уровни сигналов относительно CAN_H и CAN_L, а не высокие и низкие уровни на уровне TTL, что требует внимания.) См. Рисунок 2-2.

    Рисунок 2–2 Начало и конец кадра

  4. Арбитражный раздел

    Как CAN-шина решает проблему, связанную с тем, что несколько узлов отправляют данные одновременно, то есть конкуренция по шине? На вопрос ответил арбитражный отдел.

    CAN-шина не определяет приоритет узла, но указывает приоритет кадра данных через идентификатор кадра сегмента арбитража. Согласно различным версиям стандарта CAN2.0, идентификатор кадра делится на 11 и 29 бит. Как показано на рисунке 23

    Рисунок 2–3 Структура фрейма данных

    Как показано на фиг.24, контроллер CAN контролирует, является ли уровень линии данных таким же, как соответствующий уровень передаваемых данных, во время передачи данных. Если он отличается, он прекращает передачу и выполняет другую обработку.

    Рисунок 2–4 Арбитраж

    Предположим, что все узлы A, B и C отправляют кадры одного и того же формата и типа, такие как кадры данных стандартного формата. Процесс состязания за шину показан на рисунке 16:

    Рисунок 2-5 Арбитражный механизм

    Из этого процесса анализа сделан вывод, что чем меньше значение идентификатора кадра, тем выше приоритет;

    То же самое относится к случаю того же кадра данных расширенного формата, удаленного кадра стандартного формата и удаленного кадра расширенного формата.

  5. Контрольная секция

    Секция управления состоит из 6 битов. Секция управления стандартного кадра состоит из IDE флага расширенного кадра, зарезервированного бита r0 и кода DLC длины данных. Секция управления расширенного кадра состоит из IDE, r1, r0 и DLC, как показано на рисунке 17.

    Рисунок 2–6 Структура фрейма данных

  6. Сегмент данных

    Объем данных, передаваемых в одном фрейме данных, составляет 0–8 байт. Такая структура короткого фрейма делает шину CAN в режиме реального времени, что очень подходит для автомобильных и промышленных приложений управления, как показано на рисунке 27.

    Рисунок 2–7 Сегмент данных

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

  7. CRC сегмент

    CAN-шина использует проверку CRC для обнаружения ошибок данных. Значение проверки CRC сохраняется в сегменте CRC. Раздел проверки CRC состоит из 15-битного значения CRC и 1-битного ограничителя CRC, как показано на рисунке 28.

    Рисунок 2–8 Сегмент CRC

  8. ACK сегмент

    Когда содержимое между началом кадра, полученного принимающим узлом, и сегментом CRC не содержит ошибок, он отправит доминирующий уровень в сегменте ACK, как показано на рисунке 29.

    Рисунок 2–9 Сегмент ACK

  9. Дистанционная рамка

    По сравнению с фреймом данных в структуре удаленного фрейма нет сегмента данных, который состоит из 6 сегментов. Аналогично, он делится на стандартный формат и расширенный формат, а бит RTR равен 1 (рецессивный уровень), как показано на рисунке 31.

    Рисунок 3–1 Структура удаленного кадра

    Как показано на рисунке ниже, поскольку бит RTR кадра данных является доминирующим, бит RTR удаленного кадра является рецессивным.

    Поэтому, когда формат кадра и идентификатор кадра одинаковы, приоритет кадра данных выше, чем у удаленного кадра, как показано на рисунке 32:

    Рисунок 3–2 Механизм передачи данных между кадрами и удаленными кадрами

    Рисунок 3–3 Сравнение удаленных кадров данных кадров

    Разница между фреймом данных и удаленным фреймом показана на рисунке 33.

  10. Ошибка кадра

    Хотя CAN-шина является высоконадежной шиной, ошибки все же могут возникать, существует пять типов ошибок CAN-шины (см. Рисунок 41).

    Рисунок 4–1 Тип ошибки кадра

    При возникновении одного из пяти типов ошибок отправляющий или получающий узел отправляет кадр ошибки. Структура кадра ошибки следующая, где идентификация ошибки делится на активную идентификацию ошибки и пассивную идентификацию ошибки, как показано на фиг.

    Рисунок 4–2 Структура уровня кадра ошибки

    Чтобы предотвратить узлы, которые не могут нормально принимать данные по каким-либо причинам, они всегда отправляют кадры ошибок и создают помехи для связи с другими узлами. CAN-шина определяет три состояния узлов и их поведение, как показано на рисунке 43.

    Рисунок 4–3 Механизм обработки ошибок

    (Примечание: эти механизмы обработки ошибок выполняются аппаратно автономно. Цель этого состоит в том, чтобы гарантировать, что CAN должен быть корректным, пока данные получены).

  11. Перегрузка кадра и интервала кадра

  12. Рамка перегрузки

    Когда принимающий узел не готов принять следующий кадр данных, он отправит кадр перегрузки для уведомления отправляющего узла, причем кадр перегрузки состоит из флага перегрузки и разделителя кадра перегрузки, как показано на рисунке 51.

    Рисунок 5–1 Структура перегрузочной рамы

    Из-за одновременной перегрузки нескольких узлов и разницы во времени между передачей кадров перегрузки, явление, когда флаг перегрузки превышает 6 бит, может выглядеть так, как показано на рисунке 52.

    Рисунок 5–2. Специфическая структура рамы перегрузки

  13. Интервал кадра

    Интервал кадра используется для отделения данных или удаленных кадров от их предыдущих кадров, но интервал кадра не вставляется до кадров перегрузки и ошибок.

    По истечении интервала кадра, если ни один узел не отправляет кадр, шина переходит в режим ожидания.

    По истечении интервала кадра, если узел пассивной ошибки хочет отправить кадр, он сначала отправит 8 задержек передачи из-за рецессивного уровня перед отправкой кадра.

  14. Общий процесс передачи по шине CAN

    Процесс обработки данных на канальном уровне шины CAN показан на рисунке 61:

    Рисунок 6–1 Общий процесс шины CAN

  15. справочный материал

    «Базовое учебное пособие по полевой шине CAN-BUS на основе проекта — Чжоу Лигун, Хуан Сяоцин».

    «Технология Fieldbus и ее применение, второе издание, издательство Tsinghua University Press».

Содержание

  • 1 Работа с кадрами 
    • 1.1 Формирование кадра
  • 2 Методы выделения кадров
    • 2.1 Указатель количества байт
    • 2.2 Вставка byte и bit
    • 2.3 Средства физического уровня
  • 3 Обнаружение и исправление ошибок
  • 4 Множественный доступ к каналам
  • 5 Подуровни канального уровня
    • 5.1 Услуги подуровня LLC
  • 6 Множественный доступ к каналу связи

Основная задача канального уровня — передача кадров (frame) по каналам связи. На этом уровне и определяется, где в потоке бит начало сообщения, где конец. 

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

Дополнительные задачи канального уровня: 

  1. Адресация — если в канале связи (КС) есть несколько устройств, необходимо определить, к какому именно устройству адресовано передаваемое сообщение;
  2. Согласованный доступ к каналу. Если все гаджеты одновременно начнут передавать информацию, то данные в КС искажаются и не смогут быть приняты. 

Работа с кадрами 

Физический уровень предназначен для передачи потока бит по КС. А на канальном уровне необходимо передавать не отдельные биты, а целые сообщения. Задача №1 для канального уровня, выделить сообщения из потока бит, которые приходят по среде передачи данных. 

Работа с кадрами в модели OSI

Формирование кадра

Например, есть два ноутбука Хост 1 и Хост 2. И на картинке ниже есть три уровня, сетевой, канальный и физический. 

Формирование кадра в OSI

Канальный уровень получает информацию от сетевого и добавляет к нему заголовок и концевик. И именно это сообщение, выделенное красным, заголовок канального уровня, пакет с сетевого уровня и концевик  канального уровня и является фреймом. Такое сообщение отправляется через физический уровень по среде передачи данных и поступает на канальный уровень принимающего уровня. 

Принимающее устройство читает заголовок и концевик, извлекает пакет сетевого уровня и передает вышестоящему сетевому уровню для последующей обработки. 

Методы выделения кадров

Чтобы определить, где в потоке бит начинаются и заканчиваются отдельные frame, были придуманы следующие методы: 

  • Указание количества байт; 
  • Вставка байтов (byte stuffing) и битов (bit stuffing);
  • Средства физического уровня. 

Указатель количества байт

Наипростейший способ определить, где начинается и заканчивается кадр — добавлять длину этого кадра в начало кадра. Например, на картинке ниже показано 3 кадра выделенных разным цветом. В начале каждого кадра указано количество байт. Синим цветом — 6, желтым — 8, зеленым — 4. 

Указатель количества байт

Этот метод прост в реализации,  но есть недостаток, искажение данных при передаче по сети. Например, при передаче первого кадра появилось искажение и вместо длины кадра шесть байт,  получатель получил семь байт. 

Длина кадра

Получатель посчитает, что семь это длина кадра. Далее идет длина следующего кадра. Здесь она два байта, затем длина следующего кадра семь. Если у нас произошла хоть одна ошибка, то будет нарушена последовательность чтений. Следовательно такой метод на практике не годится к  применению. 

Вставка byte и bit

Чтобы определить начало и конец кадра, в начале и конце каждого кадра используют специальные последовательности байт или бит. Вставка байтов применялась в протоколах BSC компании IBM, в котором отправлялись обычные текстовые символы. 

Перед передачей каждого фрейма добавлялись байты DLE STX (start of text), а после окончания передачи фрейма DLE ETX (end of text). Проблема может возникнуть в том, что в данных тоже может встретиться точно такая же последовательность. 

Чтобы отличать последовательность, которая встречается в данных от управляющих символов используются Escape последовательности. В протоколе BSC это тоже последовательность символов DLE (data link escape). Если какая-то последовательность управляющих символов встречается в данных перед ними добавляются escape последовательности DLE, чтобы протокол понимал, что в реальности это данные, а не управляющие символы. 

Вставка битов применяется в более современных протоколах, таких как HDLC и PPP. Здесь перед началом и концом каждого кадра добавляется последовательность бит состоящая из 01111110. Может возникнуть проблема, если в данных встречаются подряд идущие 6 или более единиц. Чтобы решить эту задачу в данные, после каждых пяти последовательно идущих 1 добавляется 0. Затем, как получатель прочитал 5 последовательно идущих 1 и встретил 0, то он, этот 0 игнорирует. 

Средства физического уровня

Другой вид определения начала и конца кадра, это использование средств физического уровня и он применяется в технологии Ethernet. В первом варианте технологии ethernet использовалась преамбула — это последовательность данных, которая передается перед началом каждого кадра. Она состоит из 8 байт. Первые семь байт состоят из чередующихся 0 и 1: 10101010. Последний байт содержит чередующиеся 0 и 1, кроме двух последних бит в котором две единицы. И именно такая последовательность говорит, что начинается новый кадр. 

В более старых версиях используется избыточное кодирование, позволяющее определить ошибки, но при этом не все символы являются значащими. В технологии Fast Ethernet применили эту особенность кода и используют символы, которые не применяются для представления данных в качестве сигналов о начале и конце кадра. 

Перед отправкой каждого кадра передаются символы J (11000) и K (10001), а после окончания отправки кадра передается символ T (01101).

Обнаружение и исправление ошибок

Самый простой способ это обнаружить ошибку. Например, с помощью контрольной суммы или какого-либо другого алгоритма. Если у нас технология канального уровня использует обнаружение технических ошибок, то кадр в котором произошла ошибка, просто отбрасывается. Попыток восстановить данные не производится. 

Более сложный механизм — это исправление ошибок. Чтобы иметь возможность исправить ошибку, нужно добавить к данным дополнительную информацию, с помощью которой мы сможем обнаружить ошибки и восстановить правильные данные. Для этого используются специальные коды исправляющие ошибки. 

Другой вариант исправление ошибок при передаче данных — это повторная отправка тех кадров в которых произошла ошибка. Он используется совместно с обнаружением ошибок, когда отправитель передает данные получателю, получатель обнаруживает ошибку в данных, но вместо того чтобы исправить ошибку в передаваемых данных, отправитель передает эти данные еще раз. 

Давайте рассмотрим, как реализуется повторная отправка сообщений. Предположим, что у нас есть отправитель и получатель и отправитель передал получателю некоторое сообщение. Получатель получил это сообщение проверил его на корректность убедился, что данные переданы правильно и после этого передает отправителю подтверждение о получении. Отправитель передает следующее сообщение предположим, что здесь произошла ошибка, получатель эту ошибку обнаружил или сообщение вообще не дошло до получателя, поэтому получатель не может передать подтверждение о получении этого сообщения. 

Ошибка в получении сообщения

Отправитель, после того как, отправил сообщение запустил таймер ожидания подтверждения. По истечению времени ожидания  подтверждение не пришло, отправитель понял, что при передаче сообщения произошла проблема и нужно повторно передать то же самое сообщение.

Повторная отправка сообщения

В этот раз сообщение успешно дошло до получателя и он снова передает подтверждение. После этого отправитель может передавать следующий кадр. 

Успешная передача сообщения

Есть два варианта метода повторной отправки сообщения. Схему которую мы рассмотрели называется с остановкой и ожиданием. Отправитель передает фрейм и останавливается ожидая подтверждение. Следующий кадр передается только после того, как пришло подтверждение о получении предыдущего сообщения. Такой метод используются в технологии канального уровня Wi-Fi. 

Другой вариант метода повторной отправки это скользящее окно. В этом случае отправитель передает ни одно сообщение, а сразу несколько сообщений и количество сообщений, которые можно передать не дожидаясь подтверждения называется размером окна. Здесь получатель передает подтверждение не для каждого отдельного сообщения, а для последнего полученного сообщения. Такой метод лучше работает на высокоскоростных каналах связи. Сейчас нет технологии канального уровня, которая использует этот метод, но он используется на транспортном уровне в протоколе TCP. 

У нас есть несколько вариантов, что можно делать с ошибками. Можно их обнаруживать, исправлять с помощью кодов исправления ошибок, либо с помощью повторной доставки сообщений. Также мы можем исправлять и обнаруживать ошибки на канальном уровне, либо на вышестоящих уровнях. 

Множественный доступ к каналам

Как это лучше делать? Практика показала, что на каналах где ошибки возникают редко, например, если данные передаются по проводам, то на канальном уровне лучше использовать простое обнаружение ошибок. А если ошибки в среде передачи данных происходят часто, например как это происходит в wifi? где используются электромагнитное излучение и много помех, то ошибки эффективнее обнаруживать и исправлять прямо на канальном уровне. Модель взаимодействия открытых систем разрабатывалась, когда на практике использовались только каналы связи “точка-точка” — это были последовательные линии связи, которые объединяли большие компьютеры. 

Затем появились другие технологии канального уровня, на основе разделяемых каналов связи, когда к одной и той же среде передачи данных подключено несколько устройств. В таких каналах появились новые задачи, которые не были учтены в модели взаимодействия открытых систем, поэтому пришлось поменять эту модель и разделить канальный уровень на два подуровня. 

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

Подуровни канального уровня

Подуровень №1 — управление логическим каналом (logical link control) LLC, а подуровень №2 — управление доступом к среде (media access control) MAC. 

Подуровень LLC отвечает за передачу данных, формирование кадров, обработку ошибок и тому подобное. LLC общий уровень для различных технологий канального уровня.

Подуровень MAC используется, если технология канального уровня с разделяемым доступом. Если технология канального уровня используют соединение “точка-точка”, то подуровень MAC не нужен.  

Во-первых если у нас есть несколько устройств, которые подключены к одному и тому же каналу связи, то при передаче данных мы должны явно указать, к какому устройству эти данные предназначены. Для этого используются адресация канального уровня, также необходимо обеспечить корректное, совместное использование разделяемой среды передачи данных. 

Подуровень MAC особенный для разных технологий канального уровня, он зависит от того, какая среда передачи данных используется. 

Услуги подуровня LLC

Мультиплексирование — передача данных через одну технологию канального уровня, нескольких типов протоколов вышестоящего уровня. Управление потоком, если в сети устройства, которые работают с разной скоростью, то более мощное устройство, может начать передавать данные очень быстро, так что более слабые устройства не успевают их принимать. В компьютерных сетях это называется “затопление” и некоторые технологии канального уровня обеспечивают защиту от затопления медленного получателя быстрым отправителем. 

Множественный доступ к каналу связи

Предположим, есть какая-то общая среда передачи данных, к которой подключены несколько компьютеров и они начали передавать данные одновременно. Но так как среда передачи данных одна, то данные искажаются и не могут быть прочитаны из среды. Это называется коллизия. Подуровень MAC обеспечивает управление доступом, к разделяемой среде. В один и тот же момент времени, канал связи для передачи данных должен использовать только один отправитель. В противном случае произойдет коллизия и данные искажаются. 

Методы управления доступом: 

  • Рандомизированный метод. Предположим, к среде подключено N устройств в этом случае для передачи данных случайным образом выбирается одно из этих устройств с вероятностью 1/N. Такой подход применяется в технологиях канального уровня изернет и вай-фай. 
  • Определение правил использования среды, например, в технологии Token Ring, данные может передавать только одно устройство, у которого сейчас находится токен. После того как это устройство передало данные, оно передает токен следующему устройству и следующее устройство может передавать данные. Хотя такой подход обеспечивает более эффективное использование полосы пропускания канала связи, но он требует более дорогого оборудования. Поэтому на практике получил распространение рандомизированный подход. 

Раньше было очень много технологий канального уровня, каждая из которых обладала теми или иными преимуществами и недостатками. Однако сейчас в процессе развития остались только две популярные технологии это ethernet и вай-фай. 

Мы рассмотрели канальный уровень, его основные задачи. Выяснили, что канальный уровень может обнаруживать и исправлять ошибки. Спасибо за прочтение статьи, надеемся она была для Вас полезной. 

Системные требования

  • Операционная система: Windows 7, Windows 8, Windows 8.1, Windows 10;
  • Версия .NET Framework 4.8 (скорее всего он у вас уже установлен);
  • Прочие требования предъявляемые ККТ к системе.

Информация о каналах обмена

ККТ ‘Штрих-М’ может быть подключен через следующие интерфейсы (типы соединений):

Ehternet/WiFi: сеть (Предпочтительный способ подключения)

USB (протокол RNDIS): эмуляция Ehternet интерфейса через USB

USB-to-COM: эмуляция СОМ порта через USB

COM порт: через СОМ порт ПК

По ‘COM порт’ и ‘USB-to-COM’ работать СТРОГО не рекомендуется — в этом режиме ККТ не имеет связи с ОФД и через непродолжительное время заблокируется из за не передачи документов в ОФД.

‘Ehternet’ и ‘COM порт’ работают всегда

Из ‘USB(протокол RNDIS)’ и ‘USB-to-COM’ работает кто-то один — возможно программное переключение.

При включении интерфейса ‘USB(протокол RNDIS)’ необходимо убедится что в ККТ задан постоянный IP, Шлюз, Маска сети и отключен dhcp.

По умолчанию IP = 192.168.137.111, Маска сети = 255.255.255.0, Шлюз = 192.168.137.1

При работе через ‘Ehternet/WiFi’ рекомендуется включить dhcp.

Инструкция по программированию различных интерфейсов на ККТ Штрих-М доступна по ссылке: https://disk.yandex.ru/i/wpAbdvK2rRIk1w

Проверка и настройка канала обмена

Узнать какой канал сейчас включен на ККТ ‘Штрих-М’ можно так:

1. Наберите в строке поиска windows «Диспетчер устройств» и запустите.

2. В диспетчере разверните ветку «Порты (СОМ и USB)»

3. Наберите в строке поиска windows «Центр управления сетями и общий доступ» и запустите.

4. Выключите/включите ККТ и обратите внимание где и какое устройство пропадет и появится:

Если устройство пропадает и появляется в «СОМ-портах то надо переключить ККТ в режим RNDIS», смотрите ниже на странице инструкцию «Настройка и добавление устройства в kkmserver».

Настройка RNDIS

1. Наберите в строке поиска Windows «Центр управления сетями и общим доступом» и запустите.

В окне «Центра» должны показаться как минимум два Ethernet устройства: Одно штатное и одно от ККТ — RNDIS

2. Нажмите на ссылку Ethernet порта ККТ (не перепутайте со штатным портом)

3. В открывшемся окне состояния нажмите кнопку «Свойства»

4. В открывшемся окне свойств порта выберите «IP Версии 4 (TCP/IPv4)»

5. Нажмите кнопку «Свойства»

6. В открывшемся окне свойств IPv4 в поле «IP адрес» укажите «192.168.137.1»

7. Сохраните установки

Настройка маршрутизации «интерфейса» RNDIS в интернет

1. Наберите в строке поиска windows «Центр управления сетями и общий доступ» и запустите.

В окне «Центра» должны показатся как минимум два Ethernet устройства: Одно штатное и одно от ККТ — RNDIS

2. Нажмите на ссылку Ethernet порта, по которому ПК выходит в интернет (не перепутайте с портом Штрих-М)

3. В открывшемся окне состояния нажмите кнопку «Свойства»

4. В открывшемся окне свойств порта выберите закладку «Доступ»

5. Включите все и выберите интерфейс ККТ Штрих-М «Свойства»

ВНИМАНИЕ! В windows есть ошибка — она периодически «забывает» об этой настройке.

Если документы перестали передаваться в ОФД выключите маршрутизацию, сохранитесь, и затем включите вновь.

После этого выключите/включите ККТ

Установка драйвера kkmserver

1. Скачайте последнюю версию ккм сервера с сайта разработчика, по ссылке: https://kkmserver.ru/Donload/Setup_KkmServer.exe.

2. После загрузки дистрибутива нужно запустить его на выполнение, пример в Google Chrome:

3. Если система защиты Windows спросит о разрешении на запуск, необходимо разрешить запуск программы, пример в Windows 10: 

4. Далее следуйте указаниям установщика дистрибутива. При установке может потребоваться установка дополнительных компонент, например .NET Framework 4.8. Установите компоненту. 

Настройка и добавление устройства в kkmserver

1. Запустите программу KkmServer, установите тип запуска «Автозапуск: Свернутое в Трей’» и откройте Настройки.

2. Сбоку в меню выберите «Настройка оборудования» 

3. Под меню выберите «Добавить устройство» 

4. На открывшейся странице выберите «Фискальный регистратор» и «Штрих-М: ККТ с передачей данных в ОФД (54-ФЗ)»

5. Нажмите на кнопку «Добавить устройство»

6. На открывшейся странице настроек устройства, в поле «Тип соединения» выберите Ethernet или COM порт в зависимости зависимости от канала обмена ККТ

7. Если «Тип соединения» — СОМ порт то: 

  • В поле «COM порт» указать Сом-порт ККТ
  • Нажмите кнопку «Сохранить настройки».
  • После перезагрузки страницы должно появится имя модели ККТ.
  • В поле «Канал обмена с ОФД» выбрать «USB to Ethernet (протокол RNDIS)»
  • Нажмите кнопку «Сохранить настройки»

На некоторых версиях Windows драйвер RNDIS не сразу установится — windows его скачает из интернета и установит.

Т.е. в системе новый Ethernet порт может появится не сразу.

8. Если «Тип соединения» — Ethernet то:

  • В поле «IP адрес/имя хоста» введите «192.168.137.111», IP может отличаться в зависимости от ваших настроек RNDIS и ККТ
  • В поле «IP порт« введите «7778», gjhможет отличаться в зависимости от ваших настроек RNDIS и ККТ 
  • В поле «Канал обмена с ОФД» выбрать «USB to Ethernet (протокол RNDIS)»
  • Нажмите кнопку «Сохранить настройки». 
  • после перезагрузки страницы появится наименование модели ККТ

9. Нажмите кнопку «Сохранить настройки».  

Настройка в ЛК Руководителя

1. Войдите в ЛК Руководителя: https://manager.multi-point.net, перейдите на страницу «Настройки» –> «Отделения» 

2. Нажмите на кнопку редактирования отделения

3. Перейдите на вкладку «Данные» 

4. Установите для опции «Использовать ККМ» значение «Да».

5. Установите для опции «Драйвер ККМ» значение «ККМ-сервер (kkmserver.ru)»

6. При необходимости выберите «Секцию» 

7. При необходимости заполните «ФИО кассира» который будет использоваться в качестве кассира по умолчанию для данного отделения. Если не установить эту опцию, на чек будет передаваться ФИО оператора авторизованного в личном кабинете.

8. При необходимости заполните «ИНН кассира» который будет использоваться в качестве значения по умолчанию для данного отделения. Если не установить эту опцию, на чек будет передаваться ИНН оператора авторизованного в личном кабинете, если для оператора был установлен ИНН.

9. «Количество копий чека», по умолчанию 0, копии не печатаются, установите 1 если необходимо печатать 1 копию чека.

10. «Автоматический эквайринг», установите значение «ДА», если планируется интегрировать банковский терминал

11. «Включить корзину заказов», установите значение «ДА», эта настройка включает возможность проводить несколько заказов в одном чеке

12. Нажмите кнопку «Сохранить» в верху страницы

13. Перейдите на страницу «Настройки» –> «Поставщики» 

14. Нажмите на кнопку «Настройки» (кнопка с шестерёнкой)

15. Введите «Юридическое название» поставщика

16. Введите «Телефон» поставщика

16. Введите «ИНН» поставщика

16. Установите для опции «Использовать ККМ» значение «Да»

17. Установите для опции «Признак агента» значение «Да», в тест драйвера ККТ, в разделе «Регистрация ККТ» должен быть установлен признак агента «Агент» (подробнее об установке признака агента читайте в инструкции «Установка признака Агент в ККТ Атол»)

18. Выберите для опции «СНО» вашу систему налогообложения

19. Выберите для опции  «Предмет расчёта» значение «Услуга», установлено по умолчанию

э

20. Нажмите кнопку «Сохранить» в верху страницы

Дополнительный сведения

Для тестирования пробития чека, нужно войти в личный кабинет оператора https://operator.multi-point.net

Данная статья основана на инструкции разработчика драйвера: https://kkmserver.ru/WiKi/SettingAtol

Программа KKM Server является условно-бесплатной. Ею можно пользоваться бесплатно для тестирования и обучения. При этом на чеках иногда будет отображается информация о том что программа не лицензирована. Также иногда сумма чека будет не совпадать с указанной. Для полноценной работы, необходимо приобрести лицензию на kkmserver. Подробнее о драйвере и оплате можно узнать на сайте разработчика: https://kkmserver.ru

Видео урок по настройке kkmserver

0

Ошибок нет

–1

Нет связи

  • Интерфейсный кабель не подключен или неисправен.
  • Скорость порта ПК не соответствует установленной скорости в ККМ
  • Проверить кабель.
  • Обратиться в сервисную службу

–3

Порт недоступен

  • Порт занят другим приложением.
  • Данный порт отсутсвует в ПК

–4

Ключ защиты не найден

Драйвер не смог найти ключ защиты

Установить ключ защиты

–5

Работа драйвера прервана пользователем

–6

Недопустимое значение

При попытке установить значение в свойство (подробнее см. «Приложение 4. Ошибки параметров»)

Свойство не может принимать устанавливаемое значение

–7

Невозможно добавить устройство

Количесво ЛУ превышает допустимое значение

Удалить лишние ЛУ

–8

Невозможно удалить устройство

При попытке удалить последнее ЛУ

–9

Логическое устройство не найдено

При попытке выбрать ЛУ с несуществующим номером

Выбрать ЛУ с существующим номером

–10

Неверная последовательность команд

При выполнении методов требующих определенной последовательности нарушена последовательность

Проверить последовательность вызываемых методов

–11

Устройство не включено

Установить DeviceEnabled равным TRUE

–12

Не поддерживается в данной версии оборудования

Вызываемый метод нельзя выполнить на данной ККМ

–13

Драйвер не смог загрузить необходимые модули

Зарегистрировать используемые модули

–14

Порт занят приложением: (<имя ПК><описание приложения–клиента><описание драйвера>)

Если драйвер определил, что порт занят одним из драйверов семейства «АТОЛ: Драйверы торгового оборудования», то возвращается данная ошибка (<имя ПК> – имя ПК, на котором запущено клиентское приложение, <описание драйвера> – описание драйвера, занявшего порт)

  • Воспользоваться поиском оборудования для определения порта, к которому подключена ККМ.
  • Установить другой порт

–15

Некорректные данные от устройства

Ошибка обмена с ККМ на нижнем уровне

Повторить команду

–16

Не поддерживается в данном режиме устройства

Вызываемый метод не может быть выполнен в данном режиме

Перейти в нужный режим

–17

Нет больше элементов отчета

При снятии отчетов закончились элементы отчета

–19

Нет доступа к ключу реестра

Изменить права доступа к соответствующему ключу реестра

–199

Описание ошибки недоступно

При возникновении ошибки, не имеющей описания, или ошибки оборудования

–3800

В ККМ нет денег для выплаты

Недостаточно денег при выплате

Выполнить внесение

–3801

Чек закрыт – операция невозможна

При выполнении операции требующей предварительного открытия чека

Открыть чек

–3802

Чек открыт – операция невозможна

При выполнении операции требующей предварительного закрытия чека

Закрыть чек

–3803

Неверная цена (сумма)

Сумма регистрации превышает максимально возможное значение

Проверить значение свойства Price и Quantity

–3804

Неверное количество

В ККМ передано неверное количество

–3805

Нулевая цена

В ККМ передано неверная цена

–3807

Нет бумаги

В ККМ закончилась бумага

Вставить бумагу

–3808

Процесс ввода пароля

В ККМ находится в режиме ввода пароля

  • Ввести пароль.
  • Выйти из режима ввода пароля

–3809

Недопустимый ИНН

Введенный ИНН неверен

Ввести правильный ИНН

–3810

Накопление меньше суммы возврата или аннулирования

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

  • Произвести возврат или аннулирование без контроля наличности.
  • Произвести внесение

–3811

Производится печать

Подождать пока печать не закончится

–3813

Неверная величина скидки/надбавки

Установить правильное значение скидки

–3814

Операция после скидки/надбавки невозможна

При попытке вызова метода после начисленной скидки/надбавки на чек

Отменить скидку/надбавку

–3815

Неверная секция

В ККМ передано неверный номер секции

Указать правильный номер секции

–3816

Неверный вид оплаты

В ККМ передан неверный тип оплаты

Установить правильный номер оплаты

–3817

Переполнение при умножении

При перемножении количества на цену происходит переполнение

–3818

Операция запрещена в таблице настроек

Разрешить операцию в таблице настроек

–3819

Переполнение итога чека

–3820

Переполнение контрольной ленты

Снять контрольную ленту

–3821

Открыт чек возврата – операция невозможна

При выполнении некоторых недопустимых методов при открытом чеке возврата

Закрыть чек

–3822

Смена превысила 24 часа

Открытая смена превысила 24 часа

Закрыть смену

–3823

Скидка запрещена в таблице

Разрешить скидку в таблице настроек

–3824

Аннулирование и возврат в одном чеке

При попытке произвести аннулирование в чеке возврата или наоборот

Отменить чек

–3825

Неверный пароль

Введен неверный пароль

Ввести верный пароль

–3826

Не переполнен буфер контрольной ленты

При попытке снятия контрольной ленты до момента ее переполнения

–3827

Идет печать контрольной ленты

Подождать, пока печать КЛ не закончится

–3828

Смена закрыта — операция невозможна

При попытке снятия повторного отчета с гашением

–3829

Идет печать отчета

Подождать, пока не закончится снятие отчета

–3830

Неверная дата

При установке неверной даты

Установить верную дату

–3831

Неверное время

При установке неверного времени

Установить верное время

–3832

Сумма чека меньше суммы сторно

При регистрации сторно на сумму, больше суммы чека

–3833

Контрольная лента обработана без ошибок

–3834

Недопустимый РНМ

Введенный РНМ неверен

Ввести правильный РНМ

–3835

Вносимая сумма меньше суммы чека

Сумма оплаты меньше суммы чека

Внести сумму больше или равную сумме чека

–3836

Начисление сдачи невозможно

На данный тип оплаты начисление сдачи невозможно

–3837

Смена открыта, операция невозможна

При вызове метода, требующего закрытой смены

Закрыть смену

–3838

Отчет закончен

–3839

Неверный номер таблицы

Указать верный номер таблицы

–3840

Неверный номер ряда

Указать верный номер ряда

–3841

Неверный номер поля

Указать верный номер поля

–3842

ККМ заблокирована. Необходимо вызвать фискальный отчет или выполнить вход в режим доступа к ФП с указанием правильного пароля администратора

Выполнить вход в режим доступа к ФП с указанием правильного пароля администратора

–3843

Заводской номер уже задан

При повторном вводе заводского номера

–3844

Исчерпан лимит перерегистраций

Ошибка при попытке перерегистрации ККМ после четырех перерегистраций

–3845

Ошибка фискальной памяти

Обратитесь в сервисную службу

–3846

Запись фискальной памяти повреждена

Обратитесь в сервисную службу

–3847

Неверная смена

Неверный номер смены в диапазоне при снятии фискальных отчетов

Произвести запрос диапазонов и указать верные значения

–3848

Неверный тип отчета

Указать верный номер типа отчета

–3850

Недопустимый заводской номер ККМ

Обратитесь в сервисную службу

–3851

ККМ не фискализирована

Обратитесь в сервисную службу

–3852

Не задан заводской номер

Обратитесь в сервисную службу

–3853

Нет отчетов

–3854

Режим не активизирован

–3855

Нет указанного чека в КЛ

Указать верный номер чека

–3857

Некорректный код или номер кода защиты

При вводе кода защиты

Обратитесь в сервисную службу

–3859

Код защиты не введен

Обратитесь в сервисную службу

–3860

Режим не поддерживается

Попытка перейти в неподдерживаемый данной ККМ режим

–3862

Повторная скидка/надбавка на операцию невозможна

Попытка начислить повторно скидку/надбавку

–3863

Скидка/надбавка на предыдущую операцию невозможна

При начислении скидки/надбавки на сторно

–3864

Открыт чек аннулирования – операция невозможна

Вызываемая операция не может быть выполнена при открытом чеке аннулирования

  • Закрыть чек.
  • Отменить чек

–3865

Открыт чек продажи – операция невозможна

Вызываемая операция не может быть выполнена при открытом чеке продажи

  • Закрыть чек.
  • Отменить чек

–3866

Требуется выполнение общего гашения

Выполнить общее гашение

–3867

Нет устройства, обрабатывающего данную команду

–3868

Нет связи с внешним устройством

–3869

Неверный диапазон записей

Значение в свойстве LastRecord меньше чем в FirstRecord

Установить верные значения свойств LastRecord и FirstRecord

–3870

Команда не разрешена введенными кодами защиты

Ввести код защиты

–3871

Невозможна отмена скидки/надбавки.

–3872

Невозможно закрыть чек данным типом оплаты (в чеке присутствуют операции без контроля наличных)

  • Закрыть чек типом оплаты «Наличные»
  • Отменить чек

–3873

Нет связи с принтером чеков

Обратитесь в сервисную службу

–3877

Неверный номер маршрута

Указать верны номер маршрута

–3878

Неверный номер начальной зоны

Указать верный номер начальной зоны

–3879

Неверный номер конечной зоны

Указать верный номер конечной зоны

–3880

Неверный тип тарифа

Указать верный тип тарифа

–3881

Неверный тариф

Указать верный тариф

–3882

Нет заказа с таким номером

Указать верный номер заказа

–3883

Снятие отчета прервалось

Возобновить снятие отчета

–3887

Неверный штрихкод товара

Указать/считать верный ШК

–3892

ККМ заблокирована после попытки ввода даты, меньшей чем дата последней записи в ФП

Если введена дата меньше даты последней записи в ФП

Ввести дату больше даты последней записи в ФП

–3893

Требуется подтверждение ввода даты

Подтвердить ввод даты

–3894

Отчет с гашением прерван. Вход в режим невозможен

Снять отчет с гашением

–3895

Неверная длина

При выполнении команды по нижнему уровню

Проверить написание команды

–3896

Сумма не наличных оплат превышает сумму чека

При оплате чека.

Оплата не наличными типами оплаты не должна превышать сумму чека

–3897

Чек оплачен не полностью

Оплатить чек

–3898

Неверный номер картинки/штрихкода

  • При удалении.
  • При печати и др.

Запросить массив картинок/штрихкодов и ввести правильный номер картинки/штрихкода

–3899

Невозможно открыть файл или формат некорректный

  • При добавлении картинки из файла.
  • При печати картинки из файла

Возможно печать только растровых монохромных картинок

–3900

Сумма сторно больше, чем было получено данным типом оплаты

При сторнировании оплаты сумма оплаты превышает сумму платежей

Проверить правильность ввода суммы сторно оплаты

–3901

Неверный номер регистра

Указан неверный номер регистра при запросе регистра

Ввести верный номер регистра

–3902

Недопустимое целевое устройство

Устройство, указанное в свойстве UnitType отсутствует в подключенной модели ККМ

–3903

Неверный параметр регистра

При запросе регистра неверно указаны его параметры

Проверить параметры ввода запрашиваемого регистра

–3904

Недостаточно памяти

В ККМ недостаточно свободной памяти для загрузки картинки

–3905

Неверный формат или значение

Проверить формат вводимых значений

–3906

Переполнение суммы платежей

Уменьшите значение свойства Summ

–3907

Ошибка обмена с фискальным модулем

Обратитесь в сервисную службу

–3908

Переполнение ФП

Обратитесь в сервисную службу

–3909

Ошибка печатающего устройства

Обратитесь в сервисную службу

–3910

Ошибка интерфейса ЭКЛЗ/ФН

Обратитесь в сервисную службу

–3911

Ошибка формата передачи параметров ЭКЛЗ/ФН

Обратитесь в сервисную службу

–3912

Неверное состояние ЭКЛЗ/ФН

Обратитесь в сервисную службу

–3913

Неисправимая ошибка ЭКЛЗ/ФН

Обратитесь в сервисную службу

–3914

Авария крипто–процессора ЭКЛЗ/ФН

Обратитесь в сервисную службу

–3915

Исчерпан временной ресурс ЭКЛЗ/ФН

Обратитесь в сервисную службу

–3916

ЭКЛЗ/ФН переполнено

Обратитесь в сервисную службу

–3917

В ЭКЛЗ/ФН переданы неверная дата или время

Ввести верные дату и время

–3918

В ЭКЛЗ/ФН нет запрошенных данных

–3919

Переполнение итога чека в ЭКЛЗ/ФН

Обратитесь в сервисную службу

–3920

Исчерпан лимит активизаций ЭКЛЗ/ФН

Обратитесь в сервисную службу

–3921

Проверьте дату и время

Обратитесь в сервисную службу

–3922

Дата и/или время в ККМ меньше чем в ЭКЛЗ/ФН/ФП

Обратитесь в сервисную службу

–3923

Невозможно закрыть архив ЭКЛЗ/ФН

Обратитесь в сервисную службу

–3924

Необходимо провести профилактические работы

Обратитесь в сервисную службу

–3925

Неверный номер ЭКЛЗ/ФН

Указать верный номер

–3926

Предыдущая операция не завершена

Завершить предыдущую операцию

–3927

Переполнение сменного итога

–3928

Активизация данной ЭКЛЗ/ФН в составе данной ККМ невозможна

Обратитесь в сервисную службу для установки и последующей активизации нового экзкмпляра ЭКЛЗ

–3929

Переполнение счетчика наличности

–3930

Переполнение буфера чека

–3931

Размер картинки слишком большой.

Картинка не помещается на ленте.

Изменить параметры картинки

–3932

Неверный тип чека

Указать верный тип чека

–3933

Вход в режим заблокирован

Обратитесь в сервисную службу

–3934

Неверные номера смен в ККМ и ЭКЛЗ/ФН

Обратитесь в сервисную службу

–3935

ЭКЛЗ/ФН отсутствует

Обратитесь в сервисную службу

–3936

Итоги чека ККМ и ЭКЛЗ/ФН не совпадают

Обратитесь в сервисную службу

–3937

ККМ находится в режиме ввода даты или времени

Остановка часов

Установить дату и время

–3938

Переполнение буфера отложенного документа

–3939

Невозможно напечатать второй фискальный оттиск

–3940

Буфер переполнен’

–3941

Требуется гашение ЭЖ

Выполнить гашение ЭЖ

–3942

Перегрев головки принтера

Отключить ККТ

–3943

Ошибка отрезчика

Обратиться в сервисную службу

–3944

Буфер принтера ПД пустой

–3945

Буфер принтера ПД переполнен

–3946

Карта физически отсутствует в картоприемнике

Установить карту в картоприемник

–3947

Неверный PIN код

Ввести верный PIN-код

–3948

Ячейка защищена от записи

–3949

Невозможно сторно последней операции

–3950

Сторно по коду невозможно

–3951

Невозможен повтор последней операции

–3952

Неверный код товара

Ввести верный код товара

–3953

Нет подтверждения или отмены продажи

Выполнить подтверждение продажи или отменить продажу

–3954

Отключение контроля наличности невозможно (не настроены необходимые типы оплаты)

Настроить типы оплаты и повторно отключить контроль наличности

–3955

Товар не найден

–3956

Весовой штрих-код с количеством ≠ 1.000

–3957

Переполнение буфера чека

–3958

Недостаточное количество товара

Указать верное количество

–3959

Сторнируемое количество больше проданного

Указать верное количество операции сторно

–3960

Заблокированный товар не найден в буфере чека

–3961

Данный товар не продавался в чеке, сторно невозможно

–3962

Memo Plus 3 заблокировано с ПК

–3963

Ошибка контрольной суммы таблицы настроек Memo Plus 3

–3964

Идет обработка контрольной ленты

–3965

Недопустимый пароль

Ввести верный пароль

–3966

Ошибочное состояние ТРК

–3967

Невозможно напечатать вторую фискальную копию

–3968

Ошибка питания

Ошибка возникает в автономных ККМ при недостаточности питания

Зарядить аккумулятор

–3969

Сумма налога больше суммы регистраций по чеку и/или итога

Указать верную сумму налога

–3970

Начисление налога на последнюю операцию невозможно

–3971

Операция невозможна, недостаточно питания

Зарядить аккумулятор

–3972

Недопустимый порядок реквизитов чека

Указать реквизиты в правильном порядке

–3973

Недопустимый идентификатор накопителя фискальной памяти

–3974

Ошибка записи в накопитель фискальной памяти

–3975

Накопитель фискальной памяти не пуст

–3976

Данные в накопителе фискальной памяти разрушены

Обратиться в сервисную службу для замены накопителя фискальной памяти

–3977

Команда в режиме принтера игнорируется

–3978

Отсутствует код оператора

Ввести код оператора

–3979

Не определен тип документа

–3980

Несовпадение заводского номера ПФП/ККМ

–3981

Данные заводской регистрации ККМ в накопителе фискальной памяти разрушены

Обратиться в сервисную службу для замены накопителя фискальной памяти

–3982

Слишком много товара в чеке

Отменить последнюю позицию и закрыть чек или отменить весь чек

–3983

Неверный формат документа

–3984

Перезапись текста документа

–3985

Слишком много параметров документа

–3986

Недопустимый параметр документа

Ввести верный параметр документа

–3987

Недопустимое значение параметра документа

Вввести верное значение параметра документа

–3988

Описание несуществующего объекта

–3989

Документ не был завершен

Завершить документ

–3990

Описание товара или операции не полно

Дополнить описание товара и завершить действие

–3991

Вложенные прерывания

–3992

Неверный байт подтверждения приема данных

–3993

Несовпадение контрольной суммы ОЗУ

–3994

Несовпадение контрольной суммы накопителя фискальной памяти

–3995

Порт данных неисправен

Обратиться в сервисную службу

–3996

Нулевые координаты для обязательного реквизита

–3997

Недопустимая длина запроса

Подать запрос верной длины

–3998

Разрядность числа больше допустимой

Указать число с верной разрядностью

–3999

Переполнение

–4000

Нет числа

Ввести число

–4002

Ошибка передачи

Проверить интерфейс обмена, устранить неполадку и повторить передачу

–4003

Не все параметры ККМ запрограммированы

Запрограммировать недостающие параметры ККТ

–4004

Сбой памяти

Обратиться в сервисную службу

–4005

Принтер выключен

Включить принтер

–4006

Превышено время ожидания готовности принтера

Проверить подключение и исправность принтера, при обнаружении неполадки устранить ее

–4007

Данные учтены в ЭКЛЗ/ФН и ФП, но возникли проблемы печати документа при завершении чека

Обратиться в сервисную службу

–4008

Требуется повторить последнюю команду

Повторно выполнить последнюю команду

–4009

ФР ожидает готовности (ПУ), код 247

–4010

SD карта не готова

Дождаться готовности карты, при обнаружении ее поломки, заменить SD карту

–4011

Требуется пароль доступа

Не указан пароль доступа, требующийся для работы ККМ

Указать пароль доступа

–4012

Достигнут конец каталога

Ошибка возникает при чтении SD-карты

–4013

Ошибка GSM модуля

Обратиться в сервисную службу

–4014

Нет данных в буфере ККТ

–4015

Некорректное значение параметров команды ФН

Повторно подать команду с верными параметрами ФН

–4016

Превышение размеров TLV данных ФН

–4017

Нет транспортного соединения ФН

Настроить соединение с ФН

–4018

Исчерпан ресурс КС ФН

Обратиться в сервисную службу для замены ФН

–4019

Исчерпан ресурс хранения ФН

Обратиться в сервисную службу для замены ФН

–4020

Сообщение от ОФД не может быть принято ФН

Сбой связи с ОФД

Настроить интерфейс обмена с ОФД.

Сбой в работе сервера ОФД

После устрания неполадок сервера ОФД повторно запустить работу по обмену данными ККТ–ОФД

Поврежден фискальный накопитель

Обратиться в сервисную службу для замены ФН

–4021

В ФН есть неотправленные ФД

Проверить параметры связи с ОФД, дождать отправки документов ОФД

–4022

В текущем состоянии документа команда не допустима

–4023

Нет документа для повтора

–4024

Ожидание команды продолжения печати

Подать команду продолжения печати

Ошибка передачи начала кадра сообщения

andi

Сообщения: 3
Зарегистрирован: 10 июн 2018, 15:43

Ошибка передачи начала кадра сообщения

При добавлении устройства в ККМ через USB ( а именно Атол 11ф, винда 10) у меня появляются порты атол 5 и 6,
которые я соответственно прописываю в ККМ, но при сохранении выходит ошибка «Не подключена: ККМ не подключена! (Ошибка передачи начала кадра сообщения)». Регистратор по факту включен. В чем может быть причина ?


Audim

Администратор
Сообщения: 2230
Зарегистрирован: 17 мар 2015, 18:36

Re: Ошибка передачи начала кадра сообщения

Сообщение

Audim » 14 июн 2018, 19:28

Одни порт для подачи команд, 2-рой для связи с ОФД.

Вы какие порты где указываете?


andi

Сообщения: 3
Зарегистрирован: 10 июн 2018, 15:43

Re: Ошибка передачи начала кадра сообщения

Сообщение

andi » 14 июн 2018, 20:27

5 порт для данных, 6 порт для ОФД
Поменял порты местами — удалось распечатать первый чек.
А спустя пару часов опять ККМ потерял кассу, все теже порты 5 и 6 менял несколько раз,
результат опять «Не подключена: ККМ не подключена! (Ошибка передачи начала кадра сообщения)»


Audim

Администратор
Сообщения: 2230
Зарегистрирован: 17 мар 2015, 18:36

Re: Ошибка передачи начала кадра сообщения

Сообщение

Audim » 15 июн 2018, 00:23

При подборе портов отключите сначала порт EoU — он его довольно долго отключает.
А потом перебором портов нащупайте правильный.
А уж потом выбирайте другой для EoU.

ЗЫ: Атол иногда сам меняет номера портов или они меняются местами сами….


Audim

Администратор
Сообщения: 2230
Зарегистрирован: 17 мар 2015, 18:36

Re: Ошибка передачи начала кадра сообщения

Сообщение

Audim » 15 июн 2018, 00:24

И проверьте что другая программа не блокирует порты.


andi

Сообщения: 3
Зарегистрирован: 10 июн 2018, 15:43

Re: Ошибка передачи начала кадра сообщения

Сообщение

andi » 15 июн 2018, 14:23

Audim писал(а):При подборе портов отключите сначала порт EoU — он его довольно долго отключает.
А потом перебором портов нащупайте правильный.
А уж потом выбирайте другой для EoU.

ЗЫ: Атол иногда сам меняет номера портов или они меняются местами сами….

получилось, благодарю


Протокол CAN. Описание, формат кадра, контроль ошибок.

Приветствую всех на нашем сайте! Сегодняшняя статья будет целиком и полностью посвящена обзору протокола CAN. А в одной из следующих статей мы реализуем обмен данными по CAN на практике. Но не буду забегать вперед…

CAN (Controller Area Network) — это промышленный стандарт, позволяющий осуществить объединение в единую сеть различных узлов, механизмов, датчиков и т. п. Протокол является широковещательным, это значит, что все устройства в CAN-сети принимают все передаваемые по шине сигналы. Режим передачи данных — последовательный, при этом байты сообщений формируют кадры определенного вида. Структуру этих кадров данных мы также обязательно разберем в этой статье.

Основные характеристики протокола CAN:

  • очень высокая надежность и защищенность
  • каждое сообщение имеет свой собственный приоритет
  • реализован механизм обнаружения ошибок
  • автоматическая повторная отправка сообщений, которые были доставлены с ошибкой
  • уже упомянутый широковещательный характер передачи данных
  • возможность присутствия нескольких ведущих (master) устройств в одной сети
  • широкий диапазон скоростей работы
  • высокая устойчивость интерфейса к помехам
  • кроме того, есть механизм обнаружения «сбойных» узлов с последующим удалением таких узлов из сети.

Первоначально стандарт был разработан для автомобильной промышленности. И занималась этим компания Bosch в 1980-х годах. Основная идея заключалась в том, чтобы уйти от использования огромного количества проводов, соединяющих многочисленные узлы автомобиля. И протокол CAN позволил этого достичь! С тех пор CAN является основным механизмом соединения устройств, узлов и датчиков автомобиля между собой. Помимо этого, интерфейс CAN активно используется в промышленной автоматизации, а также в системах «умного дома».

Давайте перейдем к физическому уровню протокола. В интернете можно найти много противоречивой информации на этот счет, но истина тут одна 🙂 Стандарт CAN компании Bosch не регламентирует физический уровень передачи данных, поэтому могут использоваться абсолютно разные варианты, например, оптоволокно. На практике же чаще всего используется соединение посредством двухпроводной дифференциальной линии (витой пары). Ориентировочная максимальная длина линии для разных скоростей передачи данных составляет:

Скорость Длина линии
1 Мбит/с 50 м
500 кбит/с 100 м
125 кбит/с 500 м
10 кбит/с 5 км

Важным условием работоспособности шины является наличие на концах витой пары согласующих резисторов, которые также называют терминаторами, с сопротивлением 120 Ом:

В отличие от многих других протоколов в CAN не рекомендуется описание битов данных как «логического нуля» и «логической единицы». Здесь используются понятия доминантный и рецессивный бит.

Важнейшим свойством является то, что если один из узлов сети хочет выставить на линии рецессивный бит, а другой доминантный, то в итоге на линии окажется доминантный бит. В общем-то отсюда и следует его название, от слова «доминировать» 🙂 Очень хорошо этот процесс иллюстрирует пример с оптоволоконной линией. Как вы помните, в оптоволокне для передачи данных используется «свет», либо он есть (единица), либо его нет (ноль). При использовании в CAN-сети «свет» — доминантный бит, соответственно, отсутствие света или «темнота» — рецессивный. Вспоминаем про важнейшее свойство передачи данных в сети…

Пусть один узел выставляет на линии рецессивный бит, то есть «темноту». Второй узел, напротив, выставляет доминантный бит — «свет». В итоге на линии будет «свет», то есть доминантный бит, что в точности соответствует требованиям сети!

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

Это свойство используется для арбитража в сети CAN. Пусть несколько устройств хотят передать данные. Каждый из этих передатчиков сравнивает значение, которое он передает, со значением, фактически присутствующим на линии. В том случае, если передаваемое значение совпадает со считанным, устройство продолжает высылать свои данные. Если значения совпали у нескольких устройств, то все они продолжают передачу как ни в чем не бывало.

Продолжается это до того момента, когда значения станут различными. Если несколько устройств хотят передать рецессивный бит, а одно — доминантный, то в соответствии с правилом, которое мы обсудили выше, на линии окажется доминантный бит. В таком случае отправленные и считанные значения для устройств, пытающихся выдать на линию рецессивное состояние, не совпадут. В этом случае они должны прекратить передачу. А тот узел, который в этот момент передавал доминантный бит, продолжит свою работу. Доминирование в чистом виде 🙂

Сигналы, которые передаются по витой паре, получили название CAN_H и CAN_L (High и Low). Доминантное состояние соответствует случаю, когда потенциал сигнала CAN_H выше потенциала CAN_L. Рецессивное — когда потенциалы равны (разница потенциалов не превышает допустимого отклонения, 0.5 В).

С этим вроде бы разобрались, давайте двигаться дальше!

Пришло время определить, как биты объединяются в кадры. Протокол CAN определяет 4 вида кадров:

  • Кадр данных (data frame)
  • Кадр удаленного запроса (remote frame)
  • Кадр перегрузки (overload frame)
  • Кадр ошибки (error frame)

Для кадра данных возможны два варианта — базовый формат и расширенный. Вот так выглядит структура базового формата:

Поле Длина Описание
Начало кадра (SOF) 1 бит Начало передачи кадра
Идентификатор (ID) 11 бит Идентификатор сообщения
Запрос на передачу (RTR) 1 бит Доминантный бит
Бит расширения идентификатора (IDE) 1 бит Бит определяет длину идентификатора, для базового формата — доминантный бит
Зарезервированный бит 1 бит Зарезервировано
Длина данных (DLC) 4 бита Количество байт данных
Данные 0 — 8 байт Данные
Контрольная сумма (CRC) 15 бит Контрольная сумма
Разграничитель контрольной суммы 1 бит Рецессивный бит
Промежуток подтверждения (ACK) 1 бит Для приемника — доминантный бит, для передатчика — рецессивный
Разграничитель подтверждения 1 бит Рецессивный бит
Конец кадра (EOF) 7 бит Все биты рецессивные

А это структура расширенного:

Поле Длина Описание
Начало кадра (SOF) 1 бит Начало передачи кадра
Идентификатор A (ID A) 11 бит Первая часть идентификатора
Подмена запроса на передачу (SRR) 1 бит Рецессивный бит
Бит расширения идентификатора (IDE) 1 бит Бит определяет длину идентификатора, для расширенного формата — рецессивный бит
Идентификатор B (ID B) 18 бит Вторая часть идентификатора
Запрос на передачу (RTR) 1 бит Доминантный бит
Зарезервированные биты 2 бита Зарезервировано
Длина данных (DLC) 4 бита Количество байт данных
Данные 0 — 8 байт Данные
Контрольная сумма (CRC) 15 бит Контрольная сумма
Разграничитель контрольной суммы 1 бит Рецессивный бит
Промежуток подтверждения (ACK) 1 бит Для приемника — доминантный бит, для передатчика — рецессивный
Разграничитель подтверждения 1 бит Рецессивный бит
Конец кадра (EOF) 7 бит Все биты рецессивные

Результирующий идентификатор получается в результате объединения полей «Идентификатор A» и «Идентификатор B«.

Кадр удаленного запроса (remote frame) представляет из себя кадр данных, описанный выше, но без поля данных и с рецессивным битом RTR. Он используется в случае, когда один узел хочет запросить данные у другого узла.

Кадр ошибки (error frame) передает устройство, обнаружившее ошибку в сети. Фрейм ошибки имеет наивысший приоритет и принимается всеми устройствами сети в обязательном порядке.

Кадр перегрузки (overload frame) используется очень редко… Его идея и назначение заключается в том, что с его помощью устройство, которое в данный момент не может принять данные, запрашивает повторную передачу этих же данных.

А давайте вернемся чуть назад, к арбитражу данных, и рассмотрим, что это может означать на практике! Итак, несколько устройств начинают передачу сообщения, а точнее кадра данных. Передается бит начала кадра и затем начинается передача идентификатора сообщения. Как вы помните, приоритет будет у того устройства, которое будет передавать доминантный бит, в тот момент, когда все остальные будут передавать рецессивный. То есть чем «позже» среди битов идентификатора появится «рецессивный бит», тем выше будет его приоритет! Другими словами: более высокий приоритет при использовании интерфейса CAN имеют сообщения с меньшим значением идентификатора.

Первые два типа кадров — кадр данных и кадр удаленного запроса — отделяются от других кадров специальным межкадровым промежутком (паузой). А для фреймов ошибки и перегрузки предусмотрена передача без пауз, чтобы обеспечить их скорейшую обработку узлами сети.

Итак, что у нас на очереди теперь? Конечно же контроль ошибок — важнейший аспект работы протокола CAN! Стандарт предусматривает несколько механизмов контроля ошибок.

  • Во-первых, это контроль передачи битов — уровень сигнала в сети сравнивается с передаваемым для каждого бита.
  • Второй механизм заключается в использовании дополнительных битов (stuffing bit). После передачи любых пяти одинаковых битов автоматически добавляется передача бита противоположного значения. Таким образом, при передаче шести одинаковых битов диагностируется ошибка stuffing’а. Этот механизм используется для кодирования всех полей фреймов данных и запроса. Исключением являются только поля промежутка подтверждения, разграничителя контрольной суммы и EOF.
  • Стандартная процедура проверки контрольной суммы. Передатчик вычисляет контрольную сумму для текущего кадра и передает ее в линию. В свою очередь, приемник также вычисляет контрольную сумму для принимаемых данных и сравнивает ее с тем значением, которое было отправлено передатчиком. В случае не совпадения значений диагностируется ошибка CRC.
  • Также выполняется контроль битов фрейма, которые должны иметь заранее определенное значение. В случае, если реальное значение не совпадает с тем, которое ожидается, возникает ошибка.

Благодаря всем этим механизмам, вероятность необнаружения ошибки является очень низкой, что, конечно же, не может не радовать 🙂

Кроме того, если один из узлов обнаружил ошибку в сообщении, он сообщает об этом в сеть CAN при помощи фрейма ошибки. А поскольку сеть у нас широковещательная, то о возникновении ошибки становится известно всем участникам коммуникации. И если в сообщении была обнаружена ошибка, его передача будет осуществлена еще раз.

И на этом еще не все! Каждый узел может находиться в одном из трех состояний:

  • Error Active
  • Error Passive
  • Bus Off

Протокол CAN предусматривает, что изначально, после старта, узел находится в первом из этих состояний — Error Active. Каждое устройство имеет два счетчика ошибок:

  • Счетчик ошибок передачи
  • Счетчик ошибок приема

Существуют определенные правила обслуживания этих счетчиков, которые сводятся к следующему. Передатчик, обнаруживший ошибку, увеличивает свой счетчик ошибок передачи быстрее, чем приемники увеличивают свои счетчики ошибок приема. Это связано с предположением, что при ошибке, вероятность того, что сбой произошел именно в передатчике, а не в приемнике, достаточно велика. На практике ошибка передачи увеличивает соответствующий счетчик на 8, а ошибка приема лишь на 1. При приеме или передаче корректного сообщения как счетчик ошибок передачи, так и счетчики ошибок приема уменьшаются на 1.

Если значение любого из этих двух счетчиков узла превысит значение 127, то узел переходит в состояние Error Passive. А если величина одного из счетчиков превысит 255, то узел перейдет в состояние Bus Off.

Разница между этими состояниями заключается в действиях узла при диагностировании ошибки:

  • Узел в состоянии Error Active при обнаружении ошибки передает в шину Active Error Flags — 6 доминантных бит. Поскольку биты доминантные, то это сообщение нарушает обычную работу шины и поэтому все устройства сети также фиксируют возникновение ошибки.
  • Узел в состоянии Error Passive при обнаружении ошибки передает в шину Passive Error Flags — 6 рецессивных бит, которые игнорируются всеми другими участниками обмена. Поэтому увеличивается только величина счетчика ошибок одного конкретного узла.
  • И, наконец, узел в состоянии Bus Off ничего не передает в сеть — ни фреймы ошибок, ни фреймы данных, никакие другие.

Как видите, протокол CAN крайне интересен для изучения, надежен, безопасен, и удобен в использовании 🙂

И на этой позитивной ноте на сегодня заканчиваем, скоро займемся практической реализацией протокола, также поговорим о микросхемах и устройствах, обеспечивающих работу с CAN. Так что подписывайтесь на обновления, буду рад снова видеть вас на нашем сайте!

Источник

В Берляндском государственном университете локальная сеть между серверами не всегда работает без ошибок. При передаче двух одинаковых сообщений подряд возможна ошибка, в результате которой эти два сообщения сливаются в одно. При таком слиянии конец первого сообщения совмещается с началом второго. Конечно, совмещение может происходить только по одинаковым символам. Длина совмещения должна быть положительным числом, меньшим длины текста сообщения.

Например, при передаче двух сообщений «abrakadabra» подряд возможно, что оно будет передано с ошибкой описанного вида, и тогда будет получено сообщение вида «abrakadabrabrakadabra» или «abrakadabrakadabra» (в первом случае совмещение произошло по одному символу, а во втором — по четырем).

По полученному сообщению t определите, возможно ли, что это результат ошибки описанного вида работы локальной сети, и если возможно, определите возможное значение s.

Не следует считать ошибкой ситуацию полного наложения друга на друга двух сообщений. К примеру, если получено сообщение «abcd», следует считать, что в нём ошибки нет. Аналогично, простое дописывание одного сообщения вслед за другим не является признаком ошибки. Например, если получено сообщение «abcabc», следует считать, что в нём ошибки нет.

Входные данные
В единственной строке выходных данных следует непустая строка t, состоящая из строчных букв латинского алфавита. Длина строки t не превосходит 100 символов.

Выходные данные
Если сообщение t не может содержать ошибки, выведите «NO» (без кавычек) в единственную строку выходных данных.

В противном случае в первой строке выведите «YES» (без кавычек), а в следующей строке выведите строку s — возможное сообщение, которое могло привести к ошибке. Если возможных ответов несколько, разрешается вывести любой из них.

Примеры

входные данные
abrakadabrabrakadabra
выходные данные
YES
abrakadabra

входные данные
acacacaca
выходные данные
YES
acaca

входные данные
abcabc
выходные данные
NO

входные данные
abababab
выходные данные
YES
ababab

входные данные
tatbt
выходные данные
NO

Примечание
Во втором примере подходящим ответом также является строка acacaca.
С чего начинать подскажите пожалуйста.

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь

  1. Формат сообщения CAN

    Каждое сообщение, передаваемое по шине, состоит из 7 частей. CANПоддержка протоколаЕдинственная разница между двумя форматами сообщенийидентификаторДлина (ID) другая, стандартный формат 11 бит, расширенный формат 29 бит.

    В стандартном форматеПакетыНачальный бит называется началом кадра (SOF), за которым следует поле арбитража, состоящее из 11-битного идентификатора и бита запроса удаленной передачи (RTR). Бит RTR указывает даФрейм данныхЭто все еще кадр запроса, и в кадре запроса нет байтов данных.

    Поле управления включает в себя бит расширения идентификатора (IDE), указывающий, является ли это стандартным форматом или расширенным форматом. Он также включает зарезервированный бит (ro) для будущего расширения. Последние четыре бита используются для указания длины данных в поле данных (DLC). Диапазон полей данных составляет от 0 до 8 байтов.Циклическая проверка избыточности(CRC)。

    Поле подтверждения (ACK) состоит из битов подтверждения и разделителей подтверждения. Два бита, отправленные отправляющей станцией, являются рецессивными уровнями (логика 1). В это время принимающая станция, которая правильно отправляет сообщение, получает главный уровень (логика 0) для его покрытия. Таким образом, отправляющая станция может гарантировать, что по крайней мере одна станция в сети сможет правильно принять сообщение.

    ПакетыХвост отмечен концом кадра. Между двумя соседними сообщениями существует короткий интервал: если в это время ни одна станция не обращается к шине, она будет свободна.

    Как показано на фиг.11, конкретная цифра или цифры будут подробно описаны ниже.

    Рисунок 11 Структура сообщения по шине CAN

  2. Фрейм данных

    Кадр данных является наиболее часто используемым и состоит из 7 сегментов в структуре, среди которых, согласно длине кода идентификатора арбитражного сегмента, он делится на стандартный кадр (CAN2.0A) и расширенный кадр (CAN2.0B).

    Кадр данных состоит из: начала кадра, арбитражного прерывания, конца управления, сегмента данных, сегмента CRC, сегмента ACK и конца кадра.

    Как показано на рисунке 21 (конкретная структура кадра будет подробно описана ниже).

    Рисунок 2–1 Тип и структура фрейма данных

  3. Начало кадра и конец кадра

    Начало кадра: состоит из одного доминирующего бита. Когда шина не используется, отправляющий узел отправляет начало кадра, а другие принимающие узлы синхронизируются с началом кадра.

    Конец кадра: состоит из 7 последовательных невидимых битов.

    (Примечание. Доминирующий и рецессивный уровни — это дифференциальные уровни сигналов относительно CAN_H и CAN_L, а не высокие и низкие уровни на уровне TTL, что требует внимания.) См. Рисунок 2-2.

    Рисунок 2–2 Начало и конец кадра

  4. Арбитражный раздел

    Как CAN-шина решает проблему, связанную с тем, что несколько узлов отправляют данные одновременно, то есть конкуренция по шине? На вопрос ответил арбитражный отдел.

    CAN-шина не определяет приоритет узла, но указывает приоритет кадра данных через идентификатор кадра сегмента арбитража. Согласно различным версиям стандарта CAN2.0, идентификатор кадра делится на 11 и 29 бит. Как показано на рисунке 23

    Рисунок 2–3 Структура фрейма данных

    Как показано на фиг.24, контроллер CAN контролирует, является ли уровень линии данных таким же, как соответствующий уровень передаваемых данных, во время передачи данных. Если он отличается, он прекращает передачу и выполняет другую обработку.

    Рисунок 2–4 Арбитраж

    Предположим, что все узлы A, B и C отправляют кадры одного и того же формата и типа, такие как кадры данных стандартного формата. Процесс состязания за шину показан на рисунке 16:

    Рисунок 2-5 Арбитражный механизм

    Из этого процесса анализа сделан вывод, что чем меньше значение идентификатора кадра, тем выше приоритет;

    То же самое относится к случаю того же кадра данных расширенного формата, удаленного кадра стандартного формата и удаленного кадра расширенного формата.

  5. Контрольная секция

    Секция управления состоит из 6 битов. Секция управления стандартного кадра состоит из IDE флага расширенного кадра, зарезервированного бита r0 и кода DLC длины данных. Секция управления расширенного кадра состоит из IDE, r1, r0 и DLC, как показано на рисунке 17.

    Рисунок 2–6 Структура фрейма данных

  6. Сегмент данных

    Объем данных, передаваемых в одном фрейме данных, составляет 0–8 байт. Такая структура короткого фрейма делает шину CAN в режиме реального времени, что очень подходит для автомобильных и промышленных приложений управления, как показано на рисунке 27.

    Рисунок 2–7 Сегмент данных

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

  7. CRC сегмент

    CAN-шина использует проверку CRC для обнаружения ошибок данных. Значение проверки CRC сохраняется в сегменте CRC. Раздел проверки CRC состоит из 15-битного значения CRC и 1-битного ограничителя CRC, как показано на рисунке 28.

    Рисунок 2–8 Сегмент CRC

  8. ACK сегмент

    Когда содержимое между началом кадра, полученного принимающим узлом, и сегментом CRC не содержит ошибок, он отправит доминирующий уровень в сегменте ACK, как показано на рисунке 29.

    Рисунок 2–9 Сегмент ACK

  9. Дистанционная рамка

    По сравнению с фреймом данных в структуре удаленного фрейма нет сегмента данных, который состоит из 6 сегментов. Аналогично, он делится на стандартный формат и расширенный формат, а бит RTR равен 1 (рецессивный уровень), как показано на рисунке 31.

    Рисунок 3–1 Структура удаленного кадра

    Как показано на рисунке ниже, поскольку бит RTR кадра данных является доминирующим, бит RTR удаленного кадра является рецессивным.

    Поэтому, когда формат кадра и идентификатор кадра одинаковы, приоритет кадра данных выше, чем у удаленного кадра, как показано на рисунке 32:

    Рисунок 3–2 Механизм передачи данных между кадрами и удаленными кадрами

    Рисунок 3–3 Сравнение удаленных кадров данных кадров

    Разница между фреймом данных и удаленным фреймом показана на рисунке 33.

  10. Ошибка кадра

    Хотя CAN-шина является высоконадежной шиной, ошибки все же могут возникать, существует пять типов ошибок CAN-шины (см. Рисунок 41).

    Рисунок 4–1 Тип ошибки кадра

    При возникновении одного из пяти типов ошибок отправляющий или получающий узел отправляет кадр ошибки. Структура кадра ошибки следующая, где идентификация ошибки делится на активную идентификацию ошибки и пассивную идентификацию ошибки, как показано на фиг.

    Рисунок 4–2 Структура уровня кадра ошибки

    Чтобы предотвратить узлы, которые не могут нормально принимать данные по каким-либо причинам, они всегда отправляют кадры ошибок и создают помехи для связи с другими узлами. CAN-шина определяет три состояния узлов и их поведение, как показано на рисунке 43.

    Рисунок 4–3 Механизм обработки ошибок

    (Примечание: эти механизмы обработки ошибок выполняются аппаратно автономно. Цель этого состоит в том, чтобы гарантировать, что CAN должен быть корректным, пока данные получены).

  11. Перегрузка кадра и интервала кадра

  12. Рамка перегрузки

    Когда принимающий узел не готов принять следующий кадр данных, он отправит кадр перегрузки для уведомления отправляющего узла, причем кадр перегрузки состоит из флага перегрузки и разделителя кадра перегрузки, как показано на рисунке 51.

    Рисунок 5–1 Структура перегрузочной рамы

    Из-за одновременной перегрузки нескольких узлов и разницы во времени между передачей кадров перегрузки, явление, когда флаг перегрузки превышает 6 бит, может выглядеть так, как показано на рисунке 52.

    Рисунок 5–2. Специфическая структура рамы перегрузки

  13. Интервал кадра

    Интервал кадра используется для отделения данных или удаленных кадров от их предыдущих кадров, но интервал кадра не вставляется до кадров перегрузки и ошибок.

    По истечении интервала кадра, если ни один узел не отправляет кадр, шина переходит в режим ожидания.

    По истечении интервала кадра, если узел пассивной ошибки хочет отправить кадр, он сначала отправит 8 задержек передачи из-за рецессивного уровня перед отправкой кадра.

  14. Общий процесс передачи по шине CAN

    Процесс обработки данных на канальном уровне шины CAN показан на рисунке 61:

    Рисунок 6–1 Общий процесс шины CAN

  15. справочный материал

    «Базовое учебное пособие по полевой шине CAN-BUS на основе проекта — Чжоу Лигун, Хуан Сяоцин».

    «Технология Fieldbus и ее применение, второе издание, издательство Tsinghua University Press».

Содержание

  • 1 Работа с кадрами 
    • 1.1 Формирование кадра
  • 2 Методы выделения кадров
    • 2.1 Указатель количества байт
    • 2.2 Вставка byte и bit
    • 2.3 Средства физического уровня
  • 3 Обнаружение и исправление ошибок
  • 4 Множественный доступ к каналам
  • 5 Подуровни канального уровня
    • 5.1 Услуги подуровня LLC
  • 6 Множественный доступ к каналу связи

Основная задача канального уровня — передача кадров (frame) по каналам связи. На этом уровне и определяется, где в потоке бит начало сообщения, где конец. 

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

Дополнительные задачи канального уровня: 

  1. Адресация — если в канале связи (КС) есть несколько устройств, необходимо определить, к какому именно устройству адресовано передаваемое сообщение;
  2. Согласованный доступ к каналу. Если все гаджеты одновременно начнут передавать информацию, то данные в КС искажаются и не смогут быть приняты. 

Работа с кадрами 

Физический уровень предназначен для передачи потока бит по КС. А на канальном уровне необходимо передавать не отдельные биты, а целые сообщения. Задача №1 для канального уровня, выделить сообщения из потока бит, которые приходят по среде передачи данных. 

Работа с кадрами в модели OSI

Формирование кадра

Например, есть два ноутбука Хост 1 и Хост 2. И на картинке ниже есть три уровня, сетевой, канальный и физический. 

Формирование кадра в OSI

Канальный уровень получает информацию от сетевого и добавляет к нему заголовок и концевик. И именно это сообщение, выделенное красным, заголовок канального уровня, пакет с сетевого уровня и концевик  канального уровня и является фреймом. Такое сообщение отправляется через физический уровень по среде передачи данных и поступает на канальный уровень принимающего уровня. 

Принимающее устройство читает заголовок и концевик, извлекает пакет сетевого уровня и передает вышестоящему сетевому уровню для последующей обработки. 

Методы выделения кадров

Чтобы определить, где в потоке бит начинаются и заканчиваются отдельные frame, были придуманы следующие методы: 

  • Указание количества байт; 
  • Вставка байтов (byte stuffing) и битов (bit stuffing);
  • Средства физического уровня. 

Указатель количества байт

Наипростейший способ определить, где начинается и заканчивается кадр — добавлять длину этого кадра в начало кадра. Например, на картинке ниже показано 3 кадра выделенных разным цветом. В начале каждого кадра указано количество байт. Синим цветом — 6, желтым — 8, зеленым — 4. 

Указатель количества байт

Этот метод прост в реализации,  но есть недостаток, искажение данных при передаче по сети. Например, при передаче первого кадра появилось искажение и вместо длины кадра шесть байт,  получатель получил семь байт. 

Длина кадра

Получатель посчитает, что семь это длина кадра. Далее идет длина следующего кадра. Здесь она два байта, затем длина следующего кадра семь. Если у нас произошла хоть одна ошибка, то будет нарушена последовательность чтений. Следовательно такой метод на практике не годится к  применению. 

Вставка byte и bit

Чтобы определить начало и конец кадра, в начале и конце каждого кадра используют специальные последовательности байт или бит. Вставка байтов применялась в протоколах BSC компании IBM, в котором отправлялись обычные текстовые символы. 

Перед передачей каждого фрейма добавлялись байты DLE STX (start of text), а после окончания передачи фрейма DLE ETX (end of text). Проблема может возникнуть в том, что в данных тоже может встретиться точно такая же последовательность. 

Чтобы отличать последовательность, которая встречается в данных от управляющих символов используются Escape последовательности. В протоколе BSC это тоже последовательность символов DLE (data link escape). Если какая-то последовательность управляющих символов встречается в данных перед ними добавляются escape последовательности DLE, чтобы протокол понимал, что в реальности это данные, а не управляющие символы. 

Вставка битов применяется в более современных протоколах, таких как HDLC и PPP. Здесь перед началом и концом каждого кадра добавляется последовательность бит состоящая из 01111110. Может возникнуть проблема, если в данных встречаются подряд идущие 6 или более единиц. Чтобы решить эту задачу в данные, после каждых пяти последовательно идущих 1 добавляется 0. Затем, как получатель прочитал 5 последовательно идущих 1 и встретил 0, то он, этот 0 игнорирует. 

Средства физического уровня

Другой вид определения начала и конца кадра, это использование средств физического уровня и он применяется в технологии Ethernet. В первом варианте технологии ethernet использовалась преамбула — это последовательность данных, которая передается перед началом каждого кадра. Она состоит из 8 байт. Первые семь байт состоят из чередующихся 0 и 1: 10101010. Последний байт содержит чередующиеся 0 и 1, кроме двух последних бит в котором две единицы. И именно такая последовательность говорит, что начинается новый кадр. 

В более старых версиях используется избыточное кодирование, позволяющее определить ошибки, но при этом не все символы являются значащими. В технологии Fast Ethernet применили эту особенность кода и используют символы, которые не применяются для представления данных в качестве сигналов о начале и конце кадра. 

Перед отправкой каждого кадра передаются символы J (11000) и K (10001), а после окончания отправки кадра передается символ T (01101).

Обнаружение и исправление ошибок

Самый простой способ это обнаружить ошибку. Например, с помощью контрольной суммы или какого-либо другого алгоритма. Если у нас технология канального уровня использует обнаружение технических ошибок, то кадр в котором произошла ошибка, просто отбрасывается. Попыток восстановить данные не производится. 

Более сложный механизм — это исправление ошибок. Чтобы иметь возможность исправить ошибку, нужно добавить к данным дополнительную информацию, с помощью которой мы сможем обнаружить ошибки и восстановить правильные данные. Для этого используются специальные коды исправляющие ошибки. 

Другой вариант исправление ошибок при передаче данных — это повторная отправка тех кадров в которых произошла ошибка. Он используется совместно с обнаружением ошибок, когда отправитель передает данные получателю, получатель обнаруживает ошибку в данных, но вместо того чтобы исправить ошибку в передаваемых данных, отправитель передает эти данные еще раз. 

Давайте рассмотрим, как реализуется повторная отправка сообщений. Предположим, что у нас есть отправитель и получатель и отправитель передал получателю некоторое сообщение. Получатель получил это сообщение проверил его на корректность убедился, что данные переданы правильно и после этого передает отправителю подтверждение о получении. Отправитель передает следующее сообщение предположим, что здесь произошла ошибка, получатель эту ошибку обнаружил или сообщение вообще не дошло до получателя, поэтому получатель не может передать подтверждение о получении этого сообщения. 

Ошибка в получении сообщения

Отправитель, после того как, отправил сообщение запустил таймер ожидания подтверждения. По истечению времени ожидания  подтверждение не пришло, отправитель понял, что при передаче сообщения произошла проблема и нужно повторно передать то же самое сообщение.

Повторная отправка сообщения

В этот раз сообщение успешно дошло до получателя и он снова передает подтверждение. После этого отправитель может передавать следующий кадр. 

Успешная передача сообщения

Есть два варианта метода повторной отправки сообщения. Схему которую мы рассмотрели называется с остановкой и ожиданием. Отправитель передает фрейм и останавливается ожидая подтверждение. Следующий кадр передается только после того, как пришло подтверждение о получении предыдущего сообщения. Такой метод используются в технологии канального уровня Wi-Fi. 

Другой вариант метода повторной отправки это скользящее окно. В этом случае отправитель передает ни одно сообщение, а сразу несколько сообщений и количество сообщений, которые можно передать не дожидаясь подтверждения называется размером окна. Здесь получатель передает подтверждение не для каждого отдельного сообщения, а для последнего полученного сообщения. Такой метод лучше работает на высокоскоростных каналах связи. Сейчас нет технологии канального уровня, которая использует этот метод, но он используется на транспортном уровне в протоколе TCP. 

У нас есть несколько вариантов, что можно делать с ошибками. Можно их обнаруживать, исправлять с помощью кодов исправления ошибок, либо с помощью повторной доставки сообщений. Также мы можем исправлять и обнаруживать ошибки на канальном уровне, либо на вышестоящих уровнях. 

Множественный доступ к каналам

Как это лучше делать? Практика показала, что на каналах где ошибки возникают редко, например, если данные передаются по проводам, то на канальном уровне лучше использовать простое обнаружение ошибок. А если ошибки в среде передачи данных происходят часто, например как это происходит в wifi? где используются электромагнитное излучение и много помех, то ошибки эффективнее обнаруживать и исправлять прямо на канальном уровне. Модель взаимодействия открытых систем разрабатывалась, когда на практике использовались только каналы связи “точка-точка” — это были последовательные линии связи, которые объединяли большие компьютеры. 

Затем появились другие технологии канального уровня, на основе разделяемых каналов связи, когда к одной и той же среде передачи данных подключено несколько устройств. В таких каналах появились новые задачи, которые не были учтены в модели взаимодействия открытых систем, поэтому пришлось поменять эту модель и разделить канальный уровень на два подуровня. 

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

Подуровни канального уровня

Подуровень №1 — управление логическим каналом (logical link control) LLC, а подуровень №2 — управление доступом к среде (media access control) MAC. 

Подуровень LLC отвечает за передачу данных, формирование кадров, обработку ошибок и тому подобное. LLC общий уровень для различных технологий канального уровня.

Подуровень MAC используется, если технология канального уровня с разделяемым доступом. Если технология канального уровня используют соединение “точка-точка”, то подуровень MAC не нужен.  

Во-первых если у нас есть несколько устройств, которые подключены к одному и тому же каналу связи, то при передаче данных мы должны явно указать, к какому устройству эти данные предназначены. Для этого используются адресация канального уровня, также необходимо обеспечить корректное, совместное использование разделяемой среды передачи данных. 

Подуровень MAC особенный для разных технологий канального уровня, он зависит от того, какая среда передачи данных используется. 

Услуги подуровня LLC

Мультиплексирование — передача данных через одну технологию канального уровня, нескольких типов протоколов вышестоящего уровня. Управление потоком, если в сети устройства, которые работают с разной скоростью, то более мощное устройство, может начать передавать данные очень быстро, так что более слабые устройства не успевают их принимать. В компьютерных сетях это называется “затопление” и некоторые технологии канального уровня обеспечивают защиту от затопления медленного получателя быстрым отправителем. 

Множественный доступ к каналу связи

Предположим, есть какая-то общая среда передачи данных, к которой подключены несколько компьютеров и они начали передавать данные одновременно. Но так как среда передачи данных одна, то данные искажаются и не могут быть прочитаны из среды. Это называется коллизия. Подуровень MAC обеспечивает управление доступом, к разделяемой среде. В один и тот же момент времени, канал связи для передачи данных должен использовать только один отправитель. В противном случае произойдет коллизия и данные искажаются. 

Методы управления доступом: 

  • Рандомизированный метод. Предположим, к среде подключено N устройств в этом случае для передачи данных случайным образом выбирается одно из этих устройств с вероятностью 1/N. Такой подход применяется в технологиях канального уровня изернет и вай-фай. 
  • Определение правил использования среды, например, в технологии Token Ring, данные может передавать только одно устройство, у которого сейчас находится токен. После того как это устройство передало данные, оно передает токен следующему устройству и следующее устройство может передавать данные. Хотя такой подход обеспечивает более эффективное использование полосы пропускания канала связи, но он требует более дорогого оборудования. Поэтому на практике получил распространение рандомизированный подход. 

Раньше было очень много технологий канального уровня, каждая из которых обладала теми или иными преимуществами и недостатками. Однако сейчас в процессе развития остались только две популярные технологии это ethernet и вай-фай. 

Мы рассмотрели канальный уровень, его основные задачи. Выяснили, что канальный уровень может обнаруживать и исправлять ошибки. Спасибо за прочтение статьи, надеемся она была для Вас полезной. 

  • Установка драйвера АТОЛ
  • Настройка драйвера АТОЛ при подключении по USB
  • Просмотр/изменение канала обмена на фискальном регистраторе АТОЛ
  • Установка/обновление ККМ-сервера
  • Включение автозапуска для ККМ-сервера
  • Настройка поселения для приложения «Онлайн-касса 54-ФЗ»
  • Настройка приложения «Онлайн-касса 54-ФЗ» для соединения с ККМ-сервером
  • Настройка ККМ-сервера для соединения с сайтом/приложением «Онлайн-касса 54-ФЗ»
  • Добавление и настройка фискального регистратора на ККМ-сервере
  • Перевод фискального регистратора в тестовый режим (эмуляция)
  • Регистрация онлайн-кассы в ФНС
  • Информация о настроенных фискальных регистраторах, настройка адреса отправителя чека
  • Настройка кассиров
  • Настройка работы ККТ со сменами
  • Настройка работы ККТ с разными способами оплаты
  • Настройка признаков расчета для позиций чека
  • Лог команд
  • Чистка логов команд
  • Изменение в интерфейсе страницы просмотра заказа в Shop-Script
  • Ручная регистрация чека продажи и возврата в Shop-Script
  • Ручное управление фискальными регистраторами
  • Ручное составление и регистрация чека
  • Настройка уведомления о регистрации чека
  • Настройка дата и времени на ККТ
  • Прочие настройки
  • Работа с маркировкой «Честный знак»
  • Пример вывода списка чеков на странице заказа

Установка драйвера АТОЛ

Если вы используете фискальный регистратор «АТОЛ», то необходимо скачать драйвер торгового оборудования последней версии 10.x с официального сайта компании «АТОЛ». Либо то же самое можно сделать внизу этой страницы, в блоке «Документы». Драйвер нужно установить на компьютер, к которому будет подключен фискальный регистратор.





Процесс установки драйвера:

  • запустите файл установки драйвера;
  • нажимайте кнопки «Далее», «Установить», «Готово»;
  • драйвер установлен

Настройка драйвера АТОЛ при подключении по USB

Если вы установили драйвер «АТОЛ», подключили фискальный регистратор по USB, а в «Диспетчере устройств» COM-порты онлайн-кассы называются «Устройство с последовательным интерфейсом USB», то мы рекомендуем обновить драйверы для устройств.

На изображении вы можете увидеть процесс обновления драйверов для устройств: COM3 — через автоматический поиск, в COM4 — через ручной выбор драйвера. Если в списке устройств в разделе «Порты (COM и LPT)» вы не видите двух COM-портов вашего фискального регистратора, то проверьте/измените канал обмена в настройках фискального регистратора.

Просмотр/изменение канала обмена на фискальном регистраторе АТОЛ

Для просмотра или изменения текущего канала обмена на фискальном регистраторе «АТОЛ» необходимы следующие действия:

  • выключите устройство, если оно включено;
  • нажмите и не отпускайте кнопку протяжки чековой ленты;
  • включите устройство;
  • дождитесь, когда прозвучит сигнал и погаснет индикатор ошибки;
  • считайте количество коротких сигналов, которые будут издаваться примерно раз в 1-2 секунды;
  • после четвертого сигнала отпустите кнопку протяжки чековой ленты;
  • если вы всё сделали верно, то появится чек с меню сервисного режима (первый блок на изображении), иначе повторите попытку с самого начала;
  • в напечатанном меню найдите пункт «Канал обмена» и нажмите на кнопку протяжки ленты то количество раз, которое соответствует номеру пункта (на изображении – 2);
  • на чековую ленту будет выведено мену раздела «Канал обмена» (второй блок на изображении), в заголовке которого будет отражен текущий канал связи (на изображении – BLUETOOTH);
  • нажмите на кнопку протяжки ленты то количество раз, которое соответствует номеру пункта «USB» (на изображении – 3);
  • на ленту будет выведено сообщение «USB включен», а затем – меню сервисного режима;
  • нажмите на кнопку протяжки ленты то количество раз, которое соответствует номеру пункта «Выход» (на изображении – 1);
  • дождитесь появления на ленте информационного сообщения о готовности кассы.

Пример работы в сервисном режиме на фискальном регистраторе «АТОЛ» вы можете посмотреть в видео по ссылке

Установка/обновление ККМ-сервера


Скачайте свежую версию приложения на сайте разработчика. Так как приложение не подписано сертификатом Authenticode, то появится предупреждение «Система Windows защитила ваш компьютер». Нажмите «Подробнее», а затем – на появившуюся кнопку «Выполнить в любом случае».



Нажимайте кнопки «Далее», «Установить», «Завершить». ККМ-сервер установлен.

Включение автозапуска для ККМ-сервера

Для того, чтобы ККМ-сервер автоматически запускался при перезагрузке/включении компьютера, необходимо:

  • запустить ККМ-сервер;
  • открыть в главном меню пункт «Установить тип запуска» и выбрать «Автозапуск свернутое в трей» или «Зарегистрировать windows service»

Настройка поселения для приложения «Онлайн-касса 54-ФЗ»



Для соединения ККМ-сервера с приложением «Онлайн-касса 54-ФЗ» необходимо, чтобы на сайте было настроено скрытое поселение.

При установке приложения поселение создаётся автоматически, но если вы выключали или удаляли приложение, то поселение может быть удалено. Если поселение отсутствует, то нажмите на ссылку «Новое правило» и настройте по образцу, приведенному на изображениях, или для автоматического добавления поселения перейдите в раздел «ККМ-серверы» и нажмите на ссылку «Добавить поселение».

Настройка приложения «Онлайн-касса 54-ФЗ» для соединения с ККМ-сервером

Перед тем, как настраивать ККМ-сервер для соединения с сайтом, необходимо:

  • перейти в раздел «ККМ-серверы»;
  • открыть в любом браузере адрес из поля «Адрес для доступа ККМ-серверов»;
  • ввести логин и пароль из таблицы;
  • если вы не увидели сообщение «Ок», то в корневой папке сайта в файле .htaccess добавьте запись следующего вида (добавляемая строчка выделена жирным) и попробуйте снова открыть страницу.

    <ifModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule .* — [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

  • если ничего не помогло, то установите галочку «Открытая авторизация под логином kkmserver», чтобы любое неавторизованное устройство, обратившееся по адресу доступа, авторизовывалось под логином kkmserver (к сожалению, в этом случае возможны ситуации, когда какие-то задания на регистрацию чека будут получены не вашим ККМ-сервером, а каким-нибудь ботом)

Настройка ККМ-сервера для соединения с сайтом/приложением «Онлайн-касса 54-ФЗ»




Для настройки соединения ККМ-сервера с приложением «Онлайн-касса 54-ФЗ»:

  • откройте приложение ККМ-сервер;
  • нажмите на «Настройки» или откройте адрес, по которому доступен ККМ-сервер, по умолчанию – http://localhost:5893;
  • если вы не авторизованы на ККМ-сервере, то для входа введите логин и пароль, по умолчанию – логин admin, без пароля;
  • перейдите на странице «Настройки сервера»;
  • включите использование обратного вызова;
  • выберите тип обратного вызова «HTTP/HTTPS POST»;
  • задайте интервал (от 10 секунд), с которым ККМ-сервер будет выходить на связь с вашим сайтом;
  • нажмите кнопку «Сохранить настройки»;
  • нажмите кнопку «Список вызовов»;
  • нажмите кнопку «Добавить строку»;
  • введите адрес, логин и пароль, полученные при настройке приложения «Онлайн-касса 54-ФЗ» для соединения с ККМ-сервером;
  • нажмите кнопку «Сохранить строку»;

Если соединение настроено верно, то, обновив страницу «ККМ-серверы», в столбце «Время последней авторизации» вы увидите время, близкое к текущему.

Добавление и настройка фискального регистратора на ККМ-сервере

Добавление фискального регистратора на ККМ-сервере на примере АТОЛ 11Ф по USB включает в себя следующие шаги:

  • в настройках ККМ-сервера перейдите на страницу «Настройка оборудования»;
  • нажмите на ссылку «Добавить устройство» внизу левого меню ККМ-сервера;
  • в форме добавления устройства укажите «Номер устройства»;
  • в типе устройства выберите «Фискальный регистратор»;
  • в списке протоколов устройств выберите «Atol: ККТ с передачей данных в ОФД (54-ФЗ)»;
  • нажмите кнопку «Добавить устройство».

Настройка фискального регистратора на ККМ-сервере на примере АТОЛ 11Ф по USB включает в себя следующие шаги:

  • в настройках ККМ-сервера перейдите на страницу «Настройка оборудования»;
  • в списке оборудования внизу левого меню ККМ-сервера выберите добавленный фискальный регистратор;
  • в типе соединения укажите «COM-порт»;
  • в поле «COM-порт» выберите один из COM-портов вашего фискального регистратора;
  • нажмите кнопку «Сохранить настройки»;
  • если статус поменялся на «В работе», то переходите к следующему шагу, иначе попробуйте выбрать другой порт фискального регистратора;
  • для того, чтобы чеки отправлялись в ОФД в канале обмена с ОФД, выберите «PPP Ethernet Over USB»;
  • в поле «COM-порт PPP Ethernet Over USB» выберите COM-порт фискального регистратора, но это не должен быть порт, который был указан ранее в поле «COM-порт»;
  • нажмите кнопку «Сохранить настройки».

Перевод фискального регистратора в тестовый режим (эмуляция)

Для того, чтобы перевести фискальный регистратор в тестовый режим:

  • в настройках ККМ-сервера перейдите на страницу «Настройка оборудования»;
  • в списке оборудования внизу левого меню ККМ-сервера выберите фискальный регистратор;
  • в поле «Фискальный/Не-фискальный чек» выберите значение «Печатать Не-фискальный чек (Эмуляция)»;
  • нажмите кнопку «Добавить устройство».

В режиме эмуляции команды на печать фискальных чеков будут подменяться на команды печати нефискальных слипов. Данные слипы не являются фискальными чеками и могут применяться только для отладки и тестирования работы программного обеспечения!

Регистрация онлайн-кассы в ФНС

Если вы еще не зарегистрировали свою онлайн-кассу в ФНС, то перед дальнейшей настройкой пройдите регистрацию. Ниже мы размещены ссылки на статьи, которые могут оказаться полезными для данной процедуры.

  • Как зарегистрировать онлайн кассу в налоговой: пошаговая инструкция
  • Фискализация кассы на примере ККТ Атол
  • Регистрация ККТ производства Штрих-М для работы с ОФД через Интернет
  • Настройка параметров ОФД и регистрация ККМ Штрих-М

Информация о настроенных фискальных регистраторах, настройка адреса отправителя чека

На странице «Фискальные регистраторы» отражена актуальная информация о всех фискальных регистраторах, подключенных к вашим ККМ-серверам. По умолчанию текущее состояние ККТ сайт запрашивает у ККМ-сервера при каждом запросе. При этом, получение текущего состояния фискального регистратора – достаточно длительный запрос по сравнению с другими запросами. Если к вашему ККМ-серверу подключено несколько сайтов, то мы рекомендуем установить интервал в несколько минут между запросами статуса ККТ. Активные фискальные регистраторы отмечены зеленым кружочком, а неактивные – красным. Кликнув по плюсику/крестику, можно открыть/закрыть дополнительную информацию.

По умолчанию (когда email выделен красным цветом) в поле «Email отправителя чека» используется электронный адрес администратора интернет-магазина, при необходимости вы можете указать любой другой email.

Настройка кассиров

На странице «Кассиры» вы можете добавить или удалить ФИО и ИНН кассиров, Эти данные отображаются на вашем сайте при регистрации чеков, в настройках смен и способов оплаты. Для добавления кассира, необходимо ввести его ФИО и ИНН и нажать на плюсик.

Настройка работы ККТ со сменами

На странице «Смены» можно настроить (для конкретного фискального регистратора или по умолчанию) следующие данные:

  • кассир, который отображается при открытии и закрытии смены;
  • момент закрытия смены: вручную, в заданное время или по истечении смены (после 24 часов);
  • момент открытия смены: при первом чеке или в заданное время, если смена закрыта;
  • печатать или не печатать чек открытия/закрытия смены на ленте (не все ККТ поддерживают возможность не печатать чек).

Настройка работы ККТ с разными способами оплаты

На странице «Способы оплаты» для всех способов оплаты и для заказов, в которых не выбран ни один способ оплаты, можно настроить:

  • выбор ККТ: не применять, по заводскому номеру ККТ или по ИНН, если у вас подключено несколько фискальных регистраторов и вы хотели бы распределять чеки по ним автоматически;
  • кассира, который отображается для данного типа оплаты (кассира с наименованием «Системный администратор» допустимо указывать только на ФФД 1.0 или в случае, если кассир с ИНН указан в системных настройках вашего фискального регистратора);
  • тип оплаты, соответствующий данному способу оплаты: наличные, электронная оплата, предоплата (зачет аванса), постоплата (в кредит), встречным представлением (тарой);
  • признак способа расчета, соответствующий данному способу оплаты: предоплата 100%, предоплата, аванс, полный расчет, частичный расчет и кредит, передача в кредит, оплата кредита;
  • печать чека при переводе заказа в статус «Оплачено»: только вручную (не печатать автоматически), автоматически с печатью на ленте, автоматически без печати на ленте (если в заказе не будет указан ни email, ни мобильный телефон, то чек, безусловно, будет напечатан на ленте).

Настройка признаков расчета для позиций чека

На странице «Типы позиций чека» для разных типов товаров, услуг и способов доставки можно настроить соответствующий признак предмета расчета: товар, подакцизный товар, работа, услуга, ставка азартной игры, выигрыш азартной игры, лотерейный билет, выигрыш лотереи, предоставление РИД (результаты интеллектуальной деятельности), платеж, агентское вознаграждение, составной предмет расчета, иной предмет расчета.

Лог команд

На странице «Лог команд» хранятся все запросы, отправляемые с сайта на ККМ-сервер, а также ответы, полученные в результате выполнения запроса. Кликнув на плюcик/крестик вы можете открыть/закрыть подробную информацию о команде и полученном ответе.

В конце строчки вы можете увидеть:

  • индикатор текущего состояния команды: красный — ошибка выполнения, желтый — неизвестное состояние, зеленый — выполнено;
  • если команда отправлена вручную, то появится ссылка на профиль сотрудника, который её отправил;
  • если команда является фискальным документом (чеком) и отправлен из Shop-Script, то доступна ссылка на страницу заказа;
  • если команда является фискальным документом (чеком), то доступна ссылка на отправку команды печати дубликата фискального документа (дубликат можно напечатать только до смены фискального накопителя на котором был зарегистрирован оригинал чека);
  • если команда является фискальным документом (чеком), то доступна ссылка на просмотр его на сайте ОФД (только для Платформа ОФД, Яндекс ОФД, Контур ОФД, OFD.RU).

Чистка логов команд

На странице «Чистка логов» вы можете удалить всю историю команд (или за исключением команд, хранящих информацию о зарегистрированных чеках), отправленных с сайта на ККМ-серверы.

Изменение в интерфейсе страницы просмотра заказа в Shop-Script

После установки и настройки приложения «Онлайн-касса 54-ФЗ» на странице заказа в административной части в правом меню появится ссылка «Печатать чек» для ручной регистрации чеков по заказу. А в основной части страницы, если по заказу отправлялись команды на регистрацию чеков, появится блок «Чеки». В этом блоке можно узнать основную информацию по чекам: номер смены, фискального документа, фискального накопителя, фискальный признак документа, тип, сумму, статус. Также можно отправить команду на печать дубликата чека и перейти на страницу с чеком на сайте ОФД (только для Платформа ОФД, Яндекс ОФД, Контур ОФД, OFD.RU).

Ручная регистрация чека продажи и возврата в Shop-Script

Для регистрации чека на основе заказа в Shop-Script необходимо перейти на страницу заказа и нажать на ссылку «Печатать чек» в правом меню.

В появившейся форме регистрации чека доступны следующие возможности:

  • выбрать используемую ККТ и систему налогообложения;
  • выбрать кассира;
  • выбрать тип чека: продажа/приход, расход, возврат продажи/прихода, возврат расхода;
  • телефон или email клиента (из заказа)
  • печатать чек не ленту или нет;
  • указать сумму оплаты разными способами;
  • для каждой позиции чека:
    • включить или исключить из чека;
    • изменить наименование;
    • изменить цену (например, для частичного возврата при браке);
    • изменить количество;
    • указать отдел;
    • выбрать применяемую ставку НДС;
    • выбрать способ и предмер расчета.

Сумма оплат должна совпадать с итоговой суммой чека. При этом допускается в поле «Наличные» указывать сумму больше суммы чека. В этом случае в бумажном/электронном чеке появится позиция «Сдача», в которой будет указана сумма сдачи наличными средствами.

После того, как вы внимательно проверили, что в форме регистрации чека указаны требуемые данные, нажмите кнопку «Отправить» – чек будет отправлен в кассу на регистрацию.

Ручное управление фискальными регистраторами

В разделе «Онлайн-касса» имеются следующие возможности по управлению фискальным регистратором:

  • выбрать используемый фискальный регистратор;
  • открыть смену, если она закрыта;
  • напечатать X-отчет или закрыть смену (Z-отчет), если смена открыта или истекла;
  • посмотреть количество непереданных в ОФД документов/чеков;
  • провести диагностику связи с ОФД;
  • посмотреть сумму наличных денежных средств в памяти фискального регистратора;
  • открыть денежный ящик, подключенный к фискальному регистратору;
  • внести или изъять деньги (инкассация) из памяти фискального регистратора;
  • напечатать последний (или по указанному номеру) документ/чек из фискального накопителя;
  • вручную составить фискальный или нефискальный чек.

Ручное составление и регистрация чека

В разделе «Онлайн-касса» при ручном составлении и регистрации чека имеются следующие возможности:

  • выбрать используемый фискальный регистратор;
  • выбрать, является чек фискальным или нет;
  • выбрать тип фискального чека: продажа/приход, расход, возврат продажи/прихода, возврат расхода, коррекция продажи/прихода, коррекция расхода;
  • печатать чек на ленте или нет;
  • указать телефон или email клиента;
  • выбрать систему налогообложения, если фискальный регистратор зарегистрирован на несколько систем;
  • внести или изъять деньги (инкассация) из памяти фискального регистратора;
  • добавить/удалить текстовые строки, штрих-коды, изображения и фискальные строки (для регистрации фискального чека необходимо наличие в форме хотя бы одной фискальной строки);
  • указать сумму оплаты, принятую одним или несколькими из доступных способов: наличными, электронной оплатой, авансом, в кредит, встречным предоставлением.

После того, как вы указали необходимые параметры и добавили строки, нажмите на кнопку «Отправить», чтобы отправить чек на регистрацию/печать в фискальный регистратор.

Настройка уведомления о регистрации чека


По умолчанию отправку электронного чека покупателю по email или СМС производит оператор фискальных данных. Помимо этого, для события «Зарегистрирован чек в Онлайн-кассе» (момент поступления данных о чеке из ККМ-сервера на сайт) вы можете настроить уведомление. Пример текста сообщения для уведомления (только для Платформа ОФД, Яндекс ОФД, Контур ОФД, OFD.RU) вы можете скачать на нашем сайте.

Если вы разбираетесь в программировании и хотите составить шаблон по своему желанию, то посмотреть список всех доступных параметров чека можно, добавив код <pre>{$e = $action_data.receipt|@print_r}</pre> в текст сообщения.

Настройка дата и времени на ККТ АТОЛ

  • Обязательно закрываем смену в учетной системе;
  • Запускаем приложение «Тест «Драйвер ККМ», ставим галку напротив пункта меню «Устройство включено», последовательно нажимаем кнопки «Дата/время из ПК», «Установить дату», «Установить время», «Состояние»;
  • В поле «Результат» дожидаемся сообщения «(0) Ошибок нет», после чего закрываем приложение «Тест «Драйвер ККМ», нажав на кнопку «Закрыть» — время на чеке актуализировано.

Настройка дата и времени на ККТ Штрих-М

  • Обязательно закрываем смену в учетной системе;
  • Запускаем приложение «Тест драйвера FR», выбираем пункт меню «08. Сервис»/Дата и время;
  • Последовательно нажимаем кнопки «Текущая дата», «Текущее время», «Установить текущие дату и время»;
  • В поле «Результат» дожидаемся сообщения о том, что ошибок нет, после чего закрываем приложение «Тест драйвера FR» — время откорректировано.

Прочие настройки

На странице «Прочие настройки» вы можете:

  • отключить уведомления об успешной отправке команды на ККМ-сервер (если они мешают);
  • изменить приоритет контактных данных клиента, отправляемых в чек и ОФД (если хотите, чтобы при указании телефона уходила именно СМС);
  • включить сохранение выбора кассира в форме отправки чека из заказа (каждый оператор на своём компьютере может выбрать/изменить своё значение кассира и оно автоматически будет подставляться в дальнейшем).

Работа с маркировкой «Честный знак»

Приложение совместимо с плагином «Честный знак». Ниже описаны основные тезисы по работе с маркировкой/плагином «Честный знак»:

  • информация по маркировке передается только в чеки/позиции с признаками «Полный расчет»;
  • проверяйте, что плагин «Честного знака» и наше приложение верно отображают GTIN и серийный номер в своих формах (это не критично, так как мы передаём полный код из поля «Честного знака», но лучше давать обратную связь разработчикам);
  • в форме ручной регистрации чека, позиции разбиваются поштучно — это сделано не только для того, чтобы вы могли убрать галочку с конкретной позиции (в чек маркированные позиции также должны передаваться поштучно);
  • мы никак не контролируем наличие маркировки в заказе и не оповещаем об её отсутствии, если её нет, то это на вашей ответственности.

Пример вывода списка чеков на странице заказа

В редактировании шаблона откройте файл my.order.html и в нужном месте вставьте код из примера:

{$wa->kkm}
{$receipts = kkmShop::getReceipts($order.id)}
{if !empty($receipts)}
   <h3>Чеки</h3>
   {foreach $receipts as $receipt}
       {if !empty($receipt['json_answer']['URL'])}
            <p><a href="{$receipt['json_answer']['URL']}" target="_blank">Смена {$receipt['json_answer']['SessionNumber']} <b>Чек {$receipt['json_answer']['CheckNumber']}</b></a></p>
       {/if}
   {/foreach}
{/if}

Протокол CAN. Описание, формат кадра, контроль ошибок.

Приветствую всех на нашем сайте! Сегодняшняя статья будет целиком и полностью посвящена обзору протокола CAN. А в одной из следующих статей мы реализуем обмен данными по CAN на практике. Но не буду забегать вперед…

CAN (Controller Area Network) — это промышленный стандарт, позволяющий осуществить объединение в единую сеть различных узлов, механизмов, датчиков и т. п. Протокол является широковещательным, это значит, что все устройства в CAN-сети принимают все передаваемые по шине сигналы. Режим передачи данных — последовательный, при этом байты сообщений формируют кадры определенного вида. Структуру этих кадров данных мы также обязательно разберем в этой статье.

Основные характеристики протокола CAN:

  • очень высокая надежность и защищенность
  • каждое сообщение имеет свой собственный приоритет
  • реализован механизм обнаружения ошибок
  • автоматическая повторная отправка сообщений, которые были доставлены с ошибкой
  • уже упомянутый широковещательный характер передачи данных
  • возможность присутствия нескольких ведущих (master) устройств в одной сети
  • широкий диапазон скоростей работы
  • высокая устойчивость интерфейса к помехам
  • кроме того, есть механизм обнаружения «сбойных» узлов с последующим удалением таких узлов из сети.

Первоначально стандарт был разработан для автомобильной промышленности. И занималась этим компания Bosch в 1980-х годах. Основная идея заключалась в том, чтобы уйти от использования огромного количества проводов, соединяющих многочисленные узлы автомобиля. И протокол CAN позволил этого достичь! С тех пор CAN является основным механизмом соединения устройств, узлов и датчиков автомобиля между собой. Помимо этого, интерфейс CAN активно используется в промышленной автоматизации, а также в системах «умного дома».

Давайте перейдем к физическому уровню протокола. В интернете можно найти много противоречивой информации на этот счет, но истина тут одна 🙂 Стандарт CAN компании Bosch не регламентирует физический уровень передачи данных, поэтому могут использоваться абсолютно разные варианты, например, оптоволокно. На практике же чаще всего используется соединение посредством двухпроводной дифференциальной линии (витой пары). Ориентировочная максимальная длина линии для разных скоростей передачи данных составляет:

Скорость Длина линии
1 Мбит/с 50 м
500 кбит/с 100 м
125 кбит/с 500 м
10 кбит/с 5 км

Важным условием работоспособности шины является наличие на концах витой пары согласующих резисторов, которые также называют терминаторами, с сопротивлением 120 Ом:

В отличие от многих других протоколов в CAN не рекомендуется описание битов данных как «логического нуля» и «логической единицы». Здесь используются понятия доминантный и рецессивный бит.

Важнейшим свойством является то, что если один из узлов сети хочет выставить на линии рецессивный бит, а другой доминантный, то в итоге на линии окажется доминантный бит. В общем-то отсюда и следует его название, от слова «доминировать» 🙂 Очень хорошо этот процесс иллюстрирует пример с оптоволоконной линией. Как вы помните, в оптоволокне для передачи данных используется «свет», либо он есть (единица), либо его нет (ноль). При использовании в CAN-сети «свет» — доминантный бит, соответственно, отсутствие света или «темнота» — рецессивный. Вспоминаем про важнейшее свойство передачи данных в сети…

Пусть один узел выставляет на линии рецессивный бит, то есть «темноту». Второй узел, напротив, выставляет доминантный бит — «свет». В итоге на линии будет «свет», то есть доминантный бит, что в точности соответствует требованиям сети!

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

Это свойство используется для арбитража в сети CAN. Пусть несколько устройств хотят передать данные. Каждый из этих передатчиков сравнивает значение, которое он передает, со значением, фактически присутствующим на линии. В том случае, если передаваемое значение совпадает со считанным, устройство продолжает высылать свои данные. Если значения совпали у нескольких устройств, то все они продолжают передачу как ни в чем не бывало.

Продолжается это до того момента, когда значения станут различными. Если несколько устройств хотят передать рецессивный бит, а одно — доминантный, то в соответствии с правилом, которое мы обсудили выше, на линии окажется доминантный бит. В таком случае отправленные и считанные значения для устройств, пытающихся выдать на линию рецессивное состояние, не совпадут. В этом случае они должны прекратить передачу. А тот узел, который в этот момент передавал доминантный бит, продолжит свою работу. Доминирование в чистом виде 🙂

Сигналы, которые передаются по витой паре, получили название CAN_H и CAN_L (High и Low). Доминантное состояние соответствует случаю, когда потенциал сигнала CAN_H выше потенциала CAN_L. Рецессивное — когда потенциалы равны (разница потенциалов не превышает допустимого отклонения, 0.5 В).

С этим вроде бы разобрались, давайте двигаться дальше!

Пришло время определить, как биты объединяются в кадры. Протокол CAN определяет 4 вида кадров:

  • Кадр данных (data frame)
  • Кадр удаленного запроса (remote frame)
  • Кадр перегрузки (overload frame)
  • Кадр ошибки (error frame)

Для кадра данных возможны два варианта — базовый формат и расширенный. Вот так выглядит структура базового формата:

Поле Длина Описание
Начало кадра (SOF) 1 бит Начало передачи кадра
Идентификатор (ID) 11 бит Идентификатор сообщения
Запрос на передачу (RTR) 1 бит Доминантный бит
Бит расширения идентификатора (IDE) 1 бит Бит определяет длину идентификатора, для базового формата — доминантный бит
Зарезервированный бит 1 бит Зарезервировано
Длина данных (DLC) 4 бита Количество байт данных
Данные 0 — 8 байт Данные
Контрольная сумма (CRC) 15 бит Контрольная сумма
Разграничитель контрольной суммы 1 бит Рецессивный бит
Промежуток подтверждения (ACK) 1 бит Для приемника — доминантный бит, для передатчика — рецессивный
Разграничитель подтверждения 1 бит Рецессивный бит
Конец кадра (EOF) 7 бит Все биты рецессивные

А это структура расширенного:

Поле Длина Описание
Начало кадра (SOF) 1 бит Начало передачи кадра
Идентификатор A (ID A) 11 бит Первая часть идентификатора
Подмена запроса на передачу (SRR) 1 бит Рецессивный бит
Бит расширения идентификатора (IDE) 1 бит Бит определяет длину идентификатора, для расширенного формата — рецессивный бит
Идентификатор B (ID B) 18 бит Вторая часть идентификатора
Запрос на передачу (RTR) 1 бит Доминантный бит
Зарезервированные биты 2 бита Зарезервировано
Длина данных (DLC) 4 бита Количество байт данных
Данные 0 — 8 байт Данные
Контрольная сумма (CRC) 15 бит Контрольная сумма
Разграничитель контрольной суммы 1 бит Рецессивный бит
Промежуток подтверждения (ACK) 1 бит Для приемника — доминантный бит, для передатчика — рецессивный
Разграничитель подтверждения 1 бит Рецессивный бит
Конец кадра (EOF) 7 бит Все биты рецессивные

Результирующий идентификатор получается в результате объединения полей «Идентификатор A» и «Идентификатор B«.

Кадр удаленного запроса (remote frame) представляет из себя кадр данных, описанный выше, но без поля данных и с рецессивным битом RTR. Он используется в случае, когда один узел хочет запросить данные у другого узла.

Кадр ошибки (error frame) передает устройство, обнаружившее ошибку в сети. Фрейм ошибки имеет наивысший приоритет и принимается всеми устройствами сети в обязательном порядке.

Кадр перегрузки (overload frame) используется очень редко… Его идея и назначение заключается в том, что с его помощью устройство, которое в данный момент не может принять данные, запрашивает повторную передачу этих же данных.

А давайте вернемся чуть назад, к арбитражу данных, и рассмотрим, что это может означать на практике! Итак, несколько устройств начинают передачу сообщения, а точнее кадра данных. Передается бит начала кадра и затем начинается передача идентификатора сообщения. Как вы помните, приоритет будет у того устройства, которое будет передавать доминантный бит, в тот момент, когда все остальные будут передавать рецессивный. То есть чем «позже» среди битов идентификатора появится «рецессивный бит», тем выше будет его приоритет! Другими словами: более высокий приоритет при использовании интерфейса CAN имеют сообщения с меньшим значением идентификатора.

Первые два типа кадров — кадр данных и кадр удаленного запроса — отделяются от других кадров специальным межкадровым промежутком (паузой). А для фреймов ошибки и перегрузки предусмотрена передача без пауз, чтобы обеспечить их скорейшую обработку узлами сети.

Итак, что у нас на очереди теперь? Конечно же контроль ошибок — важнейший аспект работы протокола CAN! Стандарт предусматривает несколько механизмов контроля ошибок.

  • Во-первых, это контроль передачи битов — уровень сигнала в сети сравнивается с передаваемым для каждого бита.
  • Второй механизм заключается в использовании дополнительных битов (stuffing bit). После передачи любых пяти одинаковых битов автоматически добавляется передача бита противоположного значения. Таким образом, при передаче шести одинаковых битов диагностируется ошибка stuffing’а. Этот механизм используется для кодирования всех полей фреймов данных и запроса. Исключением являются только поля промежутка подтверждения, разграничителя контрольной суммы и EOF.
  • Стандартная процедура проверки контрольной суммы. Передатчик вычисляет контрольную сумму для текущего кадра и передает ее в линию. В свою очередь, приемник также вычисляет контрольную сумму для принимаемых данных и сравнивает ее с тем значением, которое было отправлено передатчиком. В случае не совпадения значений диагностируется ошибка CRC.
  • Также выполняется контроль битов фрейма, которые должны иметь заранее определенное значение. В случае, если реальное значение не совпадает с тем, которое ожидается, возникает ошибка.

Благодаря всем этим механизмам, вероятность необнаружения ошибки является очень низкой, что, конечно же, не может не радовать 🙂

Кроме того, если один из узлов обнаружил ошибку в сообщении, он сообщает об этом в сеть CAN при помощи фрейма ошибки. А поскольку сеть у нас широковещательная, то о возникновении ошибки становится известно всем участникам коммуникации. И если в сообщении была обнаружена ошибка, его передача будет осуществлена еще раз.

И на этом еще не все! Каждый узел может находиться в одном из трех состояний:

  • Error Active
  • Error Passive
  • Bus Off

Протокол CAN предусматривает, что изначально, после старта, узел находится в первом из этих состояний — Error Active. Каждое устройство имеет два счетчика ошибок:

  • Счетчик ошибок передачи
  • Счетчик ошибок приема

Существуют определенные правила обслуживания этих счетчиков, которые сводятся к следующему. Передатчик, обнаруживший ошибку, увеличивает свой счетчик ошибок передачи быстрее, чем приемники увеличивают свои счетчики ошибок приема. Это связано с предположением, что при ошибке, вероятность того, что сбой произошел именно в передатчике, а не в приемнике, достаточно велика. На практике ошибка передачи увеличивает соответствующий счетчик на 8, а ошибка приема лишь на 1. При приеме или передаче корректного сообщения как счетчик ошибок передачи, так и счетчики ошибок приема уменьшаются на 1.

Если значение любого из этих двух счетчиков узла превысит значение 127, то узел переходит в состояние Error Passive. А если величина одного из счетчиков превысит 255, то узел перейдет в состояние Bus Off.

Разница между этими состояниями заключается в действиях узла при диагностировании ошибки:

  • Узел в состоянии Error Active при обнаружении ошибки передает в шину Active Error Flags — 6 доминантных бит. Поскольку биты доминантные, то это сообщение нарушает обычную работу шины и поэтому все устройства сети также фиксируют возникновение ошибки.
  • Узел в состоянии Error Passive при обнаружении ошибки передает в шину Passive Error Flags — 6 рецессивных бит, которые игнорируются всеми другими участниками обмена. Поэтому увеличивается только величина счетчика ошибок одного конкретного узла.
  • И, наконец, узел в состоянии Bus Off ничего не передает в сеть — ни фреймы ошибок, ни фреймы данных, никакие другие.

Как видите, протокол CAN крайне интересен для изучения, надежен, безопасен, и удобен в использовании 🙂

И на этой позитивной ноте на сегодня заканчиваем, скоро займемся практической реализацией протокола, также поговорим о микросхемах и устройствах, обеспечивающих работу с CAN. Так что подписывайтесь на обновления, буду рад снова видеть вас на нашем сайте!

Источник

0

Ошибок нет

–1

Нет связи

  • Интерфейсный кабель не подключен или неисправен.
  • Скорость порта ПК не соответствует установленной скорости в ККМ
  • Проверить кабель.
  • Обратиться в сервисную службу

–3

Порт недоступен

  • Порт занят другим приложением.
  • Данный порт отсутсвует в ПК

–4

Ключ защиты не найден

Драйвер не смог найти ключ защиты

Установить ключ защиты

–5

Работа драйвера прервана пользователем

–6

Недопустимое значение

При попытке установить значение в свойство (подробнее см. «Приложение 4. Ошибки параметров»)

Свойство не может принимать устанавливаемое значение

–7

Невозможно добавить устройство

Количесво ЛУ превышает допустимое значение

Удалить лишние ЛУ

–8

Невозможно удалить устройство

При попытке удалить последнее ЛУ

–9

Логическое устройство не найдено

При попытке выбрать ЛУ с несуществующим номером

Выбрать ЛУ с существующим номером

–10

Неверная последовательность команд

При выполнении методов требующих определенной последовательности нарушена последовательность

Проверить последовательность вызываемых методов

–11

Устройство не включено

Установить DeviceEnabled равным TRUE

–12

Не поддерживается в данной версии оборудования

Вызываемый метод нельзя выполнить на данной ККМ

–13

Драйвер не смог загрузить необходимые модули

Зарегистрировать используемые модули

–14

Порт занят приложением: (\<имя ПК><описание приложения–клиента><описание драйвера>)

Если драйвер определил, что порт занят одним из драйверов семейства «АТОЛ: Драйверы торгового оборудования», то возвращается данная ошибка (<имя ПК> – имя ПК, на котором запущено клиентское приложение, <описание драйвера> – описание драйвера, занявшего порт)

  • Воспользоваться поиском оборудования для определения порта, к которому подключена ККМ.
  • Установить другой порт

–15

Некорректные данные от устройства

Ошибка обмена с ККМ на нижнем уровне

Повторить команду

–16

Не поддерживается в данном режиме устройства

Вызываемый метод не может быть выполнен в данном режиме

Перейти в нужный режим

–17

Нет больше элементов отчета

При снятии отчетов закончились элементы отчета

–19

Нет доступа к ключу реестра

Изменить права доступа к соответствующему ключу реестра

–199

Описание ошибки недоступно

При возникновении ошибки, не имеющей описания, или ошибки оборудования

–3800

В ККМ нет денег для выплаты

Недостаточно денег при выплате

Выполнить внесение

–3801

Чек закрыт – операция невозможна

При выполнении операции требующей предварительного открытия чека

Открыть чек

–3802

Чек открыт – операция невозможна

При выполнении операции требующей предварительного закрытия чека

Закрыть чек

–3803

Неверная цена (сумма)

Сумма регистрации превышает максимально возможное значение

Проверить значение свойства Price и Quantity

–3804

Неверное количество

В ККМ передано неверное количество

–3805

Нулевая цена

В ККМ передано неверная цена

–3807

Нет бумаги

В ККМ закончилась бумага

Вставить бумагу

–3808

Процесс ввода пароля

В ККМ находится в режиме ввода пароля

  • Ввести пароль.
  • Выйти из режима ввода пароля

–3809

Недопустимый ИНН

Введенный ИНН неверен

Ввести правильный ИНН

–3810

Накопление меньше суммы возврата или аннулирования

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

  • Произвести возврат или аннулирование без контроля наличности.
  • Произвести внесение

–3811

Производится печать

Подождать пока печать не закончится

–3813

Неверная величина скидки/надбавки

Установить правильное значение скидки

–3814

Операция после скидки/надбавки невозможна

При попытке вызова метода после начисленной скидки/надбавки на чек

Отменить скидку/надбавку

–3815

Неверная секция

В ККМ передано неверный номер секции

Указать правильный номер секции

–3816

Неверный вид оплаты

В ККМ передан неверный тип оплаты

Установить правильный номер оплаты

–3817

Переполнение при умножении

При перемножении количества на цену происходит переполнение

–3818

Операция запрещена в таблице настроек

Разрешить операцию в таблице настроек

–3819

Переполнение итога чека

–3820

Переполнение контрольной ленты

Снять контрольную ленту

–3821

Открыт чек возврата – операция невозможна

При выполнении некоторых недопустимых методов при открытом чеке возврата

Закрыть чек

–3822

Смена превысила 24 часа

Открытая смена превысила 24 часа

Закрыть смену

–3823

Скидка запрещена в таблице

Разрешить скидку в таблице настроек

–3824

Аннулирование и возврат в одном чеке

При попытке произвести аннулирование в чеке возврата или наоборот

Отменить чек

–3825

Неверный пароль

Введен неверный пароль

Ввести верный пароль

–3826

Не переполнен буфер контрольной ленты

При попытке снятия контрольной ленты до момента ее переполнения

–3827

Идет печать контрольной ленты

Подождать, пока печать КЛ не закончится

–3828

Смена закрыта — операция невозможна

При попытке снятия повторного отчета с гашением

–3829

Идет печать отчета

Подождать, пока не закончится снятие отчета

–3830

Неверная дата

При установке неверной даты

Установить верную дату

–3831

Неверное время

При установке неверного времени

Установить верное время

–3832

Сумма чека меньше суммы сторно

При регистрации сторно на сумму, больше суммы чека

–3833

Контрольная лента обработана без ошибок

–3834

Недопустимый РНМ

Введенный РНМ неверен

Ввести правильный РНМ

–3835

Вносимая сумма меньше суммы чека

Сумма оплаты меньше суммы чека

Внести сумму больше или равную сумме чека

–3836

Начисление сдачи невозможно

На данный тип оплаты начисление сдачи невозможно

–3837

Смена открыта, операция невозможна

При вызове метода, требующего закрытой смены

Закрыть смену

–3838

Отчет закончен

–3839

Неверный номер таблицы

Указать верный номер таблицы

–3840

Неверный номер ряда

Указать верный номер ряда

–3841

Неверный номер поля

Указать верный номер поля

–3842

ККМ заблокирована. Необходимо вызвать фискальный отчет или выполнить вход в режим доступа к ФП с указанием правильного пароля администратора

Выполнить вход в режим доступа к ФП с указанием правильного пароля администратора

–3843

Заводской номер уже задан

При повторном вводе заводского номера

–3844

Исчерпан лимит перерегистраций

Ошибка при попытке перерегистрации ККМ после четырех перерегистраций

–3845

Ошибка фискальной памяти

Обратитесь в сервисную службу

–3846

Запись фискальной памяти повреждена

Обратитесь в сервисную службу

–3847

Неверная смена

Неверный номер смены в диапазоне при снятии фискальных отчетов

Произвести запрос диапазонов и указать верные значения

–3848

Неверный тип отчета

Указать верный номер типа отчета

–3850

Недопустимый заводской номер ККМ

Обратитесь в сервисную службу

–3851

ККМ не фискализирована

Обратитесь в сервисную службу

–3852

Не задан заводской номер

Обратитесь в сервисную службу

–3853

Нет отчетов

–3854

Режим не активизирован

–3855

Нет указанного чека в КЛ

Указать верный номер чека

–3857

Некорректный код или номер кода защиты

При вводе кода защиты

Обратитесь в сервисную службу

–3859

Код защиты не введен

Обратитесь в сервисную службу

–3860

Режим не поддерживается

Попытка перейти в неподдерживаемый данной ККМ режим

–3862

Повторная скидка/надбавка на операцию невозможна

Попытка начислить повторно скидку/надбавку

–3863

Скидка/надбавка на предыдущую операцию невозможна

При начислении скидки/надбавки на сторно

–3864

Открыт чек аннулирования – операция невозможна

Вызываемая операция не может быть выполнена при открытом чеке аннулирования

  • Закрыть чек.
  • Отменить чек

–3865

Открыт чек продажи – операция невозможна

Вызываемая операция не может быть выполнена при открытом чеке продажи

  • Закрыть чек.
  • Отменить чек

–3866

Требуется выполнение общего гашения

Выполнить общее гашение

–3867

Нет устройства, обрабатывающего данную команду

–3868

Нет связи с внешним устройством

–3869

Неверный диапазон записей

Значение в свойстве LastRecord меньше чем в FirstRecord

Установить верные значения свойств LastRecord и FirstRecord

–3870

Команда не разрешена введенными кодами защиты

Ввести код защиты

–3871

Невозможна отмена скидки/надбавки.

–3872

Невозможно закрыть чек данным типом оплаты (в чеке присутствуют операции без контроля наличных)

  • Закрыть чек типом оплаты «Наличные»
  • Отменить чек

–3873

Нет связи с принтером чеков

Обратитесь в сервисную службу

–3877

Неверный номер маршрута

Указать верны номер маршрута

–3878

Неверный номер начальной зоны

Указать верный номер начальной зоны

–3879

Неверный номер конечной зоны

Указать верный номер конечной зоны

–3880

Неверный тип тарифа

Указать верный тип тарифа

–3881

Неверный тариф

Указать верный тариф

–3882

Нет заказа с таким номером

Указать верный номер заказа

–3883

Снятие отчета прервалось

Возобновить снятие отчета

–3887

Неверный штрихкод товара

Указать/считать верный ШК

–3892

ККМ заблокирована после попытки ввода даты, меньшей чем дата последней записи в ФП

Если введена дата меньше даты последней записи в ФП

Ввести дату больше даты последней записи в ФП

–3893

Требуется подтверждение ввода даты

Подтвердить ввод даты

–3894

Отчет с гашением прерван. Вход в режим невозможен

Снять отчет с гашением

–3895

Неверная длина

При выполнении команды по нижнему уровню

Проверить написание команды

–3896

Сумма не наличных оплат превышает сумму чека

При оплате чека.

Оплата не наличными типами оплаты не должна превышать сумму чека

–3897

Чек оплачен не полностью

Оплатить чек

–3898

Неверный номер картинки/штрихкода

  • При удалении.
  • При печати и др.

Запросить массив картинок/штрихкодов и ввести правильный номер картинки/штрихкода

–3899

Невозможно открыть файл или формат некорректный

  • При добавлении картинки из файла.
  • При печати картинки из файла

Возможно печать только растровых монохромных картинок

–3900

Сумма сторно больше, чем было получено данным типом оплаты

При сторнировании оплаты сумма оплаты превышает сумму платежей

Проверить правильность ввода суммы сторно оплаты

–3901

Неверный номер регистра

Указан неверный номер регистра при запросе регистра

Ввести верный номер регистра

–3902

Недопустимое целевое устройство

Устройство, указанное в свойстве UnitType отсутствует в подключенной модели ККМ

–3903

Неверный параметр регистра

При запросе регистра неверно указаны его параметры

Проверить параметры ввода запрашиваемого регистра

–3904

Недостаточно памяти

В ККМ недостаточно свободной памяти для загрузки картинки

–3905

Неверный формат или значение

Проверить формат вводимых значений

–3906

Переполнение суммы платежей

Уменьшите значение свойства Summ

–3907

Ошибка обмена с фискальным модулем

Обратитесь в сервисную службу

–3908

Переполнение ФП

Обратитесь в сервисную службу

–3909

Ошибка печатающего устройства

Обратитесь в сервисную службу

–3910

Ошибка интерфейса ЭКЛЗ/ФН

Обратитесь в сервисную службу

–3911

Ошибка формата передачи параметров ЭКЛЗ/ФН

Обратитесь в сервисную службу

–3912

Неверное состояние ЭКЛЗ/ФН

Обратитесь в сервисную службу

–3913

Неисправимая ошибка ЭКЛЗ/ФН

Обратитесь в сервисную службу

–3914

Авария крипто–процессора ЭКЛЗ/ФН

Обратитесь в сервисную службу

–3915

Исчерпан временной ресурс ЭКЛЗ/ФН

Обратитесь в сервисную службу

–3916

ЭКЛЗ/ФН переполнено

Обратитесь в сервисную службу

–3917

В ЭКЛЗ/ФН переданы неверная дата или время

Ввести верные дату и время

–3918

В ЭКЛЗ/ФН нет запрошенных данных

–3919

Переполнение итога чека в ЭКЛЗ/ФН

Обратитесь в сервисную службу

–3920

Исчерпан лимит активизаций ЭКЛЗ/ФН

Обратитесь в сервисную службу

–3921

Проверьте дату и время

Обратитесь в сервисную службу

–3922

Дата и/или время в ККМ меньше чем в ЭКЛЗ/ФН/ФП

Обратитесь в сервисную службу

–3923

Невозможно закрыть архив ЭКЛЗ/ФН

Обратитесь в сервисную службу

–3924

Необходимо провести профилактические работы

Обратитесь в сервисную службу

–3925

Неверный номер ЭКЛЗ/ФН

Указать верный номер

–3926

Предыдущая операция не завершена

Завершить предыдущую операцию

–3927

Переполнение сменного итога

–3928

Активизация данной ЭКЛЗ/ФН в составе данной ККМ невозможна

Обратитесь в сервисную службу для установки и последующей активизации нового экзкмпляра ЭКЛЗ

–3929

Переполнение счетчика наличности

–3930

Переполнение буфера чека

–3931

Размер картинки слишком большой.

Картинка не помещается на ленте.

Изменить параметры картинки

–3932

Неверный тип чека

Указать верный тип чека

–3933

Вход в режим заблокирован

Обратитесь в сервисную службу

–3934

Неверные номера смен в ККМ и ЭКЛЗ/ФН

Обратитесь в сервисную службу

–3935

ЭКЛЗ/ФН отсутствует

Обратитесь в сервисную службу

–3936

Итоги чека ККМ и ЭКЛЗ/ФН не совпадают

Обратитесь в сервисную службу

–3937

ККМ находится в режиме ввода даты или времени

Остановка часов

Установить дату и время

–3938

Переполнение буфера отложенного документа

–3939

Невозможно напечатать второй фискальный оттиск

–3940

Буфер переполнен’

–3941

Требуется гашение ЭЖ

Выполнить гашение ЭЖ

–3942

Перегрев головки принтера

Отключить ККТ

–3943

Ошибка отрезчика

Обратиться в сервисную службу

–3944

Буфер принтера ПД пустой

–3945

Буфер принтера ПД переполнен

–3946

Карта физически отсутствует в картоприемнике

Установить карту в картоприемник

–3947

Неверный PIN код

Ввести верный PIN-код

–3948

Ячейка защищена от записи

–3949

Невозможно сторно последней операции

–3950

Сторно по коду невозможно

–3951

Невозможен повтор последней операции

–3952

Неверный код товара

Ввести верный код товара

–3953

Нет подтверждения или отмены продажи

Выполнить подтверждение продажи или отменить продажу

–3954

Отключение контроля наличности невозможно (не настроены необходимые типы оплаты)

Настроить типы оплаты и повторно отключить контроль наличности

–3955

Товар не найден

–3956

Весовой штрих-код с количеством ≠ 1.000

–3957

Переполнение буфера чека

–3958

Недостаточное количество товара

Указать верное количество

–3959

Сторнируемое количество больше проданного

Указать верное количество операции сторно

–3960

Заблокированный товар не найден в буфере чека

–3961

Данный товар не продавался в чеке, сторно невозможно

–3962

Memo Plus 3 заблокировано с ПК

–3963

Ошибка контрольной суммы таблицы настроек Memo Plus 3

–3964

Идет обработка контрольной ленты

–3965

Недопустимый пароль

Ввести верный пароль

–3966

Ошибочное состояние ТРК

–3967

Невозможно напечатать вторую фискальную копию

–3968

Ошибка питания

Ошибка возникает в автономных ККМ при недостаточности питания

Зарядить аккумулятор

–3969

Сумма налога больше суммы регистраций по чеку и/или итога

Указать верную сумму налога

–3970

Начисление налога на последнюю операцию невозможно

–3971

Операция невозможна, недостаточно питания

Зарядить аккумулятор

–3972

Недопустимый порядок реквизитов чека

Указать реквизиты в правильном порядке

–3973

Недопустимый идентификатор накопителя фискальной памяти

–3974

Ошибка записи в накопитель фискальной памяти

–3975

Накопитель фискальной памяти не пуст

–3976

Данные в накопителе фискальной памяти разрушены

Обратиться в сервисную службу для замены накопителя фискальной памяти

–3977

Команда в режиме принтера игнорируется

–3978

Отсутствует код оператора

Ввести код оператора

–3979

Не определен тип документа

–3980

Несовпадение заводского номера ПФП/ККМ

–3981

Данные заводской регистрации ККМ в накопителе фискальной памяти разрушены

Обратиться в сервисную службу для замены накопителя фискальной памяти

–3982

Слишком много товара в чеке

Отменить последнюю позицию и закрыть чек или отменить весь чек

–3983

Неверный формат документа

–3984

Перезапись текста документа

–3985

Слишком много параметров документа

–3986

Недопустимый параметр документа

Ввести верный параметр документа

–3987

Недопустимое значение параметра документа

Вввести верное значение параметра документа

–3988

Описание несуществующего объекта

–3989

Документ не был завершен

Завершить документ

–3990

Описание товара или операции не полно

Дополнить описание товара и завершить действие

–3991

Вложенные прерывания

–3992

Неверный байт подтверждения приема данных

–3993

Несовпадение контрольной суммы ОЗУ

–3994

Несовпадение контрольной суммы накопителя фискальной памяти

–3995

Порт данных неисправен

Обратиться в сервисную службу

–3996

Нулевые координаты для обязательного реквизита

–3997

Недопустимая длина запроса

Подать запрос верной длины

–3998

Разрядность числа больше допустимой

Указать число с верной разрядностью

–3999

Переполнение

–4000

Нет числа

Ввести число

–4002

Ошибка передачи

Проверить интерфейс обмена, устранить неполадку и повторить передачу

–4003

Не все параметры ККМ запрограммированы

Запрограммировать недостающие параметры ККТ

–4004

Сбой памяти

Обратиться в сервисную службу

–4005

Принтер выключен

Включить принтер

–4006

Превышено время ожидания готовности принтера

Проверить подключение и исправность принтера, при обнаружении неполадки устранить ее

–4007

Данные учтены в ЭКЛЗ/ФН и ФП, но возникли проблемы печати документа при завершении чека

Обратиться в сервисную службу

–4008

Требуется повторить последнюю команду

Повторно выполнить последнюю команду

–4009

ФР ожидает готовности (ПУ), код 247

–4010

SD карта не готова

Дождаться готовности карты, при обнаружении ее поломки, заменить SD карту

–4011

Требуется пароль доступа

Не указан пароль доступа, требующийся для работы ККМ

Указать пароль доступа

–4012

Достигнут конец каталога

Ошибка возникает при чтении SD-карты

–4013

Ошибка GSM модуля

Обратиться в сервисную службу

–4014

Нет данных в буфере ККТ

–4015

Некорректное значение параметров команды ФН

Повторно подать команду с верными параметрами ФН

–4016

Превышение размеров TLV данных ФН

–4017

Нет транспортного соединения ФН

Настроить соединение с ФН

–4018

Исчерпан ресурс КС ФН

Обратиться в сервисную службу для замены ФН

–4019

Исчерпан ресурс хранения ФН

Обратиться в сервисную службу для замены ФН

–4020

Сообщение от ОФД не может быть принято ФН

Сбой связи с ОФД

Настроить интерфейс обмена с ОФД.

Сбой в работе сервера ОФД

После устрания неполадок сервера ОФД повторно запустить работу по обмену данными ККТ–ОФД

Поврежден фискальный накопитель

Обратиться в сервисную службу для замены ФН

–4021

В ФН есть неотправленные ФД

Проверить параметры связи с ОФД, дождать отправки документов ОФД

–4022

В текущем состоянии документа команда не допустима

–4023

Нет документа для повтора

–4024

Ожидание команды продолжения печати

Подать команду продолжения печати

  • Ошибка переименования файла brackets
  • Ошибка передачи мутабельного значения
  • Ошибка перезагрузки зоны зона заблокирована
  • Ошибка передачи марки 160
  • Ошибка переднего парктроника тигуан