Ошибка передачи начала кадра сообщения
-
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.
С чего начинать подскажите пожалуйста.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
-
Формат сообщения CAN
Каждое сообщение, передаваемое по шине, состоит из 7 частей. CANПоддержка протоколаЕдинственная разница между двумя форматами сообщенийидентификаторДлина (ID) другая, стандартный формат 11 бит, расширенный формат 29 бит.
В стандартном форматеПакетыНачальный бит называется началом кадра (SOF), за которым следует поле арбитража, состоящее из 11-битного идентификатора и бита запроса удаленной передачи (RTR). Бит RTR указывает даФрейм данныхЭто все еще кадр запроса, и в кадре запроса нет байтов данных.
Поле управления включает в себя бит расширения идентификатора (IDE), указывающий, является ли это стандартным форматом или расширенным форматом. Он также включает зарезервированный бит (ro) для будущего расширения. Последние четыре бита используются для указания длины данных в поле данных (DLC). Диапазон полей данных составляет от 0 до 8 байтов.Циклическая проверка избыточности(CRC)。
Поле подтверждения (ACK) состоит из битов подтверждения и разделителей подтверждения. Два бита, отправленные отправляющей станцией, являются рецессивными уровнями (логика 1). В это время принимающая станция, которая правильно отправляет сообщение, получает главный уровень (логика 0) для его покрытия. Таким образом, отправляющая станция может гарантировать, что по крайней мере одна станция в сети сможет правильно принять сообщение.
ПакетыХвост отмечен концом кадра. Между двумя соседними сообщениями существует короткий интервал: если в это время ни одна станция не обращается к шине, она будет свободна.
Как показано на фиг.11, конкретная цифра или цифры будут подробно описаны ниже.
Рисунок 11 Структура сообщения по шине CAN
-
Фрейм данных
Кадр данных является наиболее часто используемым и состоит из 7 сегментов в структуре, среди которых, согласно длине кода идентификатора арбитражного сегмента, он делится на стандартный кадр (CAN2.0A) и расширенный кадр (CAN2.0B).
Кадр данных состоит из: начала кадра, арбитражного прерывания, конца управления, сегмента данных, сегмента CRC, сегмента ACK и конца кадра.
Как показано на рисунке 21 (конкретная структура кадра будет подробно описана ниже).
Рисунок 2–1 Тип и структура фрейма данных
-
Начало кадра и конец кадра
Начало кадра: состоит из одного доминирующего бита. Когда шина не используется, отправляющий узел отправляет начало кадра, а другие принимающие узлы синхронизируются с началом кадра.
Конец кадра: состоит из 7 последовательных невидимых битов.
(Примечание. Доминирующий и рецессивный уровни — это дифференциальные уровни сигналов относительно CAN_H и CAN_L, а не высокие и низкие уровни на уровне TTL, что требует внимания.) См. Рисунок 2-2.
Рисунок 2–2 Начало и конец кадра
-
Арбитражный раздел
Как CAN-шина решает проблему, связанную с тем, что несколько узлов отправляют данные одновременно, то есть конкуренция по шине? На вопрос ответил арбитражный отдел.
CAN-шина не определяет приоритет узла, но указывает приоритет кадра данных через идентификатор кадра сегмента арбитража. Согласно различным версиям стандарта CAN2.0, идентификатор кадра делится на 11 и 29 бит. Как показано на рисунке 23
Рисунок 2–3 Структура фрейма данных
Как показано на фиг.24, контроллер CAN контролирует, является ли уровень линии данных таким же, как соответствующий уровень передаваемых данных, во время передачи данных. Если он отличается, он прекращает передачу и выполняет другую обработку.
Рисунок 2–4 Арбитраж
Предположим, что все узлы A, B и C отправляют кадры одного и того же формата и типа, такие как кадры данных стандартного формата. Процесс состязания за шину показан на рисунке 16:
Рисунок 2-5 Арбитражный механизм
Из этого процесса анализа сделан вывод, что чем меньше значение идентификатора кадра, тем выше приоритет;
То же самое относится к случаю того же кадра данных расширенного формата, удаленного кадра стандартного формата и удаленного кадра расширенного формата.
-
Контрольная секция
Секция управления состоит из 6 битов. Секция управления стандартного кадра состоит из IDE флага расширенного кадра, зарезервированного бита r0 и кода DLC длины данных. Секция управления расширенного кадра состоит из IDE, r1, r0 и DLC, как показано на рисунке 17.
Рисунок 2–6 Структура фрейма данных
-
Сегмент данных
Объем данных, передаваемых в одном фрейме данных, составляет 0–8 байт. Такая структура короткого фрейма делает шину CAN в режиме реального времени, что очень подходит для автомобильных и промышленных приложений управления, как показано на рисунке 27.
Рисунок 2–7 Сегмент данных
Небольшой объем данных, короткое время отправки и получения, высокая производительность в реальном времени, низкая вероятность помех и сильные возможности предотвращения помех.
-
CRC сегмент
CAN-шина использует проверку CRC для обнаружения ошибок данных. Значение проверки CRC сохраняется в сегменте CRC. Раздел проверки CRC состоит из 15-битного значения CRC и 1-битного ограничителя CRC, как показано на рисунке 28.
Рисунок 2–8 Сегмент CRC
-
ACK сегмент
Когда содержимое между началом кадра, полученного принимающим узлом, и сегментом CRC не содержит ошибок, он отправит доминирующий уровень в сегменте ACK, как показано на рисунке 29.
Рисунок 2–9 Сегмент ACK
-
Дистанционная рамка
По сравнению с фреймом данных в структуре удаленного фрейма нет сегмента данных, который состоит из 6 сегментов. Аналогично, он делится на стандартный формат и расширенный формат, а бит RTR равен 1 (рецессивный уровень), как показано на рисунке 31.
Рисунок 3–1 Структура удаленного кадра
Как показано на рисунке ниже, поскольку бит RTR кадра данных является доминирующим, бит RTR удаленного кадра является рецессивным.
Поэтому, когда формат кадра и идентификатор кадра одинаковы, приоритет кадра данных выше, чем у удаленного кадра, как показано на рисунке 32:
Рисунок 3–2 Механизм передачи данных между кадрами и удаленными кадрами
Рисунок 3–3 Сравнение удаленных кадров данных кадров
Разница между фреймом данных и удаленным фреймом показана на рисунке 33.
-
Ошибка кадра
Хотя CAN-шина является высоконадежной шиной, ошибки все же могут возникать, существует пять типов ошибок CAN-шины (см. Рисунок 41).
Рисунок 4–1 Тип ошибки кадра
При возникновении одного из пяти типов ошибок отправляющий или получающий узел отправляет кадр ошибки. Структура кадра ошибки следующая, где идентификация ошибки делится на активную идентификацию ошибки и пассивную идентификацию ошибки, как показано на фиг.
Рисунок 4–2 Структура уровня кадра ошибки
Чтобы предотвратить узлы, которые не могут нормально принимать данные по каким-либо причинам, они всегда отправляют кадры ошибок и создают помехи для связи с другими узлами. CAN-шина определяет три состояния узлов и их поведение, как показано на рисунке 43.
Рисунок 4–3 Механизм обработки ошибок
(Примечание: эти механизмы обработки ошибок выполняются аппаратно автономно. Цель этого состоит в том, чтобы гарантировать, что CAN должен быть корректным, пока данные получены).
-
Перегрузка кадра и интервала кадра
-
Рамка перегрузки
Когда принимающий узел не готов принять следующий кадр данных, он отправит кадр перегрузки для уведомления отправляющего узла, причем кадр перегрузки состоит из флага перегрузки и разделителя кадра перегрузки, как показано на рисунке 51.
Рисунок 5–1 Структура перегрузочной рамы
Из-за одновременной перегрузки нескольких узлов и разницы во времени между передачей кадров перегрузки, явление, когда флаг перегрузки превышает 6 бит, может выглядеть так, как показано на рисунке 52.
Рисунок 5–2. Специфическая структура рамы перегрузки
-
Интервал кадра
Интервал кадра используется для отделения данных или удаленных кадров от их предыдущих кадров, но интервал кадра не вставляется до кадров перегрузки и ошибок.
По истечении интервала кадра, если ни один узел не отправляет кадр, шина переходит в режим ожидания.
По истечении интервала кадра, если узел пассивной ошибки хочет отправить кадр, он сначала отправит 8 задержек передачи из-за рецессивного уровня перед отправкой кадра.
-
Общий процесс передачи по шине CAN
Процесс обработки данных на канальном уровне шины CAN показан на рисунке 61:
Рисунок 6–1 Общий процесс шины CAN
-
справочный материал
«Базовое учебное пособие по полевой шине 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 для канального уровня, выделить сообщения из потока бит, которые приходят по среде передачи данных.
Формирование кадра
Например, есть два ноутбука Хост 1 и Хост 2. И на картинке ниже есть три уровня, сетевой, канальный и физический.
Канальный уровень получает информацию от сетевого и добавляет к нему заголовок и концевик. И именно это сообщение, выделенное красным, заголовок канального уровня, пакет с сетевого уровня и концевик канального уровня и является фреймом. Такое сообщение отправляется через физический уровень по среде передачи данных и поступает на канальный уровень принимающего уровня.
Принимающее устройство читает заголовок и концевик, извлекает пакет сетевого уровня и передает вышестоящему сетевому уровню для последующей обработки.
Методы выделения кадров
Чтобы определить, где в потоке бит начинаются и заканчиваются отдельные 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.
С чего начинать подскажите пожалуйста.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
-
Формат сообщения CAN
Каждое сообщение, передаваемое по шине, состоит из 7 частей. CANПоддержка протоколаЕдинственная разница между двумя форматами сообщенийидентификаторДлина (ID) другая, стандартный формат 11 бит, расширенный формат 29 бит.
В стандартном форматеПакетыНачальный бит называется началом кадра (SOF), за которым следует поле арбитража, состоящее из 11-битного идентификатора и бита запроса удаленной передачи (RTR). Бит RTR указывает даФрейм данныхЭто все еще кадр запроса, и в кадре запроса нет байтов данных.
Поле управления включает в себя бит расширения идентификатора (IDE), указывающий, является ли это стандартным форматом или расширенным форматом. Он также включает зарезервированный бит (ro) для будущего расширения. Последние четыре бита используются для указания длины данных в поле данных (DLC). Диапазон полей данных составляет от 0 до 8 байтов.Циклическая проверка избыточности(CRC)。
Поле подтверждения (ACK) состоит из битов подтверждения и разделителей подтверждения. Два бита, отправленные отправляющей станцией, являются рецессивными уровнями (логика 1). В это время принимающая станция, которая правильно отправляет сообщение, получает главный уровень (логика 0) для его покрытия. Таким образом, отправляющая станция может гарантировать, что по крайней мере одна станция в сети сможет правильно принять сообщение.
ПакетыХвост отмечен концом кадра. Между двумя соседними сообщениями существует короткий интервал: если в это время ни одна станция не обращается к шине, она будет свободна.
Как показано на фиг.11, конкретная цифра или цифры будут подробно описаны ниже.
Рисунок 11 Структура сообщения по шине CAN
-
Фрейм данных
Кадр данных является наиболее часто используемым и состоит из 7 сегментов в структуре, среди которых, согласно длине кода идентификатора арбитражного сегмента, он делится на стандартный кадр (CAN2.0A) и расширенный кадр (CAN2.0B).
Кадр данных состоит из: начала кадра, арбитражного прерывания, конца управления, сегмента данных, сегмента CRC, сегмента ACK и конца кадра.
Как показано на рисунке 21 (конкретная структура кадра будет подробно описана ниже).
Рисунок 2–1 Тип и структура фрейма данных
-
Начало кадра и конец кадра
Начало кадра: состоит из одного доминирующего бита. Когда шина не используется, отправляющий узел отправляет начало кадра, а другие принимающие узлы синхронизируются с началом кадра.
Конец кадра: состоит из 7 последовательных невидимых битов.
(Примечание. Доминирующий и рецессивный уровни — это дифференциальные уровни сигналов относительно CAN_H и CAN_L, а не высокие и низкие уровни на уровне TTL, что требует внимания.) См. Рисунок 2-2.
Рисунок 2–2 Начало и конец кадра
-
Арбитражный раздел
Как CAN-шина решает проблему, связанную с тем, что несколько узлов отправляют данные одновременно, то есть конкуренция по шине? На вопрос ответил арбитражный отдел.
CAN-шина не определяет приоритет узла, но указывает приоритет кадра данных через идентификатор кадра сегмента арбитража. Согласно различным версиям стандарта CAN2.0, идентификатор кадра делится на 11 и 29 бит. Как показано на рисунке 23
Рисунок 2–3 Структура фрейма данных
Как показано на фиг.24, контроллер CAN контролирует, является ли уровень линии данных таким же, как соответствующий уровень передаваемых данных, во время передачи данных. Если он отличается, он прекращает передачу и выполняет другую обработку.
Рисунок 2–4 Арбитраж
Предположим, что все узлы A, B и C отправляют кадры одного и того же формата и типа, такие как кадры данных стандартного формата. Процесс состязания за шину показан на рисунке 16:
Рисунок 2-5 Арбитражный механизм
Из этого процесса анализа сделан вывод, что чем меньше значение идентификатора кадра, тем выше приоритет;
То же самое относится к случаю того же кадра данных расширенного формата, удаленного кадра стандартного формата и удаленного кадра расширенного формата.
-
Контрольная секция
Секция управления состоит из 6 битов. Секция управления стандартного кадра состоит из IDE флага расширенного кадра, зарезервированного бита r0 и кода DLC длины данных. Секция управления расширенного кадра состоит из IDE, r1, r0 и DLC, как показано на рисунке 17.
Рисунок 2–6 Структура фрейма данных
-
Сегмент данных
Объем данных, передаваемых в одном фрейме данных, составляет 0–8 байт. Такая структура короткого фрейма делает шину CAN в режиме реального времени, что очень подходит для автомобильных и промышленных приложений управления, как показано на рисунке 27.
Рисунок 2–7 Сегмент данных
Небольшой объем данных, короткое время отправки и получения, высокая производительность в реальном времени, низкая вероятность помех и сильные возможности предотвращения помех.
-
CRC сегмент
CAN-шина использует проверку CRC для обнаружения ошибок данных. Значение проверки CRC сохраняется в сегменте CRC. Раздел проверки CRC состоит из 15-битного значения CRC и 1-битного ограничителя CRC, как показано на рисунке 28.
Рисунок 2–8 Сегмент CRC
-
ACK сегмент
Когда содержимое между началом кадра, полученного принимающим узлом, и сегментом CRC не содержит ошибок, он отправит доминирующий уровень в сегменте ACK, как показано на рисунке 29.
Рисунок 2–9 Сегмент ACK
-
Дистанционная рамка
По сравнению с фреймом данных в структуре удаленного фрейма нет сегмента данных, который состоит из 6 сегментов. Аналогично, он делится на стандартный формат и расширенный формат, а бит RTR равен 1 (рецессивный уровень), как показано на рисунке 31.
Рисунок 3–1 Структура удаленного кадра
Как показано на рисунке ниже, поскольку бит RTR кадра данных является доминирующим, бит RTR удаленного кадра является рецессивным.
Поэтому, когда формат кадра и идентификатор кадра одинаковы, приоритет кадра данных выше, чем у удаленного кадра, как показано на рисунке 32:
Рисунок 3–2 Механизм передачи данных между кадрами и удаленными кадрами
Рисунок 3–3 Сравнение удаленных кадров данных кадров
Разница между фреймом данных и удаленным фреймом показана на рисунке 33.
-
Ошибка кадра
Хотя CAN-шина является высоконадежной шиной, ошибки все же могут возникать, существует пять типов ошибок CAN-шины (см. Рисунок 41).
Рисунок 4–1 Тип ошибки кадра
При возникновении одного из пяти типов ошибок отправляющий или получающий узел отправляет кадр ошибки. Структура кадра ошибки следующая, где идентификация ошибки делится на активную идентификацию ошибки и пассивную идентификацию ошибки, как показано на фиг.
Рисунок 4–2 Структура уровня кадра ошибки
Чтобы предотвратить узлы, которые не могут нормально принимать данные по каким-либо причинам, они всегда отправляют кадры ошибок и создают помехи для связи с другими узлами. CAN-шина определяет три состояния узлов и их поведение, как показано на рисунке 43.
Рисунок 4–3 Механизм обработки ошибок
(Примечание: эти механизмы обработки ошибок выполняются аппаратно автономно. Цель этого состоит в том, чтобы гарантировать, что CAN должен быть корректным, пока данные получены).
-
Перегрузка кадра и интервала кадра
-
Рамка перегрузки
Когда принимающий узел не готов принять следующий кадр данных, он отправит кадр перегрузки для уведомления отправляющего узла, причем кадр перегрузки состоит из флага перегрузки и разделителя кадра перегрузки, как показано на рисунке 51.
Рисунок 5–1 Структура перегрузочной рамы
Из-за одновременной перегрузки нескольких узлов и разницы во времени между передачей кадров перегрузки, явление, когда флаг перегрузки превышает 6 бит, может выглядеть так, как показано на рисунке 52.
Рисунок 5–2. Специфическая структура рамы перегрузки
-
Интервал кадра
Интервал кадра используется для отделения данных или удаленных кадров от их предыдущих кадров, но интервал кадра не вставляется до кадров перегрузки и ошибок.
По истечении интервала кадра, если ни один узел не отправляет кадр, шина переходит в режим ожидания.
По истечении интервала кадра, если узел пассивной ошибки хочет отправить кадр, он сначала отправит 8 задержек передачи из-за рецессивного уровня перед отправкой кадра.
-
Общий процесс передачи по шине CAN
Процесс обработки данных на канальном уровне шины CAN показан на рисунке 61:
Рисунок 6–1 Общий процесс шины CAN
-
справочный материал
«Базовое учебное пособие по полевой шине 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 для канального уровня, выделить сообщения из потока бит, которые приходят по среде передачи данных.
Формирование кадра
Например, есть два ноутбука Хост 1 и Хост 2. И на картинке ниже есть три уровня, сетевой, канальный и физический.
Канальный уровень получает информацию от сетевого и добавляет к нему заголовок и концевик. И именно это сообщение, выделенное красным, заголовок канального уровня, пакет с сетевого уровня и концевик канального уровня и является фреймом. Такое сообщение отправляется через физический уровень по среде передачи данных и поступает на канальный уровень принимающего уровня.
Принимающее устройство читает заголовок и концевик, извлекает пакет сетевого уровня и передает вышестоящему сетевому уровню для последующей обработки.
Методы выделения кадров
Чтобы определить, где в потоке бит начинаются и заканчиваются отдельные 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
Ожидание команды продолжения печати
Подать команду продолжения печати