-
Telegram & VK
Самое интересное публикуем в Телеграм-канале. Подписывайтесь!
Общаться ОНЛАЙН можно тут Телеграм-ЧАТ или тут VK сообщество
-
Постов
37 -
Зарегистрирован
Достижения Aleksandr-Zh
-
включили пауза в 1500ms - чтобы запустились все периферийные устройства. программный сброс опрос купюрника через Poll - если есть x06x09 - купюрник в системе, можно продолжать, если нет - ошибку на дисплей + СМС/интернет уведомление персоналу/сервер далее инициализация купюрника согласно стандарту, далее инициализация монетника согласно стандарту. основная программа: опрос купюрника, опрос монетника, Есть деньги? - приём денег и анализ суммы. Выбрали товар, нажали "продажа" -> Далее продажа
-
не понял вопроса. Оба устройства параллельно на шине. И я по очереди их опрашиваю.
-
упс! а зачем два массива? я всё в один принимаю. Ведь пока не запросишь - устройство данных не выдаёт, на все 100% знаешь кто выдал информацию...
-
а другое устройство, подключенное вместо этого купюрника, верно отвечает? может опять у вас в коде проблемы? что показывает осциллограф\логгер?
-
капиризны почти все новые, где прямо указано: MDB 4. Их встречал в новых кофемашинах.
-
и на ваши команды КП отвечает правильно? http://savepic.net/9479057.htm всё верно он делает... он же пишет: "получаю ответ ACK"
-
9й бит нормально отправляете и принимаете? всё точно? смотрели логгером или осциллографом? по питанию не проседает в момент выключения двигателей?
-
чем вы управляете купюрником? самодельная плата или какой-то конвертер?
-
Посылать команду RESET (30H) не обязательно, т.к. после подачи питания платежки сами аппаратно сбрасываются. В теории - да. А на практике, есть модели (как старые, так и новые), которые требуют полное соблюдение Протокола. при чем даже бывает и так: кто-то требует задавать EXPANSION COMMAND, а некоторые модели начинают работать уже после BILL TYPE. Я уже дважды помучился подгонять своё ПО под конкретные модели купюрников (а про монетники вообще молчу!). Потому принял решение о полном соблюдении Протокола. Кстати, если до версии 3 купюрники были "терпимее", то от 4 и выше - нет: пока не задашь все уровни и параметры - нет инициализации и готовности
-
сперва Сброс шины (аппаратно, у меня импульс 150mS) потом программный сброс каждого устройства (купюрник, монетник) купюрник: H30, H30 пауза больше 1500ms (у меня 2000mS) цикл: (лимит 20 секунд, этого точно для всех типов купюрноков хватает) шлём POLL ждём H06, выходим из цикла потом пошел сам процесс настройки: Poll Setup Stacker Type
-
уже это "POLL, ответ 2 байта 0x06, 0x06" показывает что купюрник не готов. неверная инициализация.
-
с какой частотой отправляете ему Poll? пригодится: мы делаем вендинговый автомат. подскажите пожалуйста по MDB протоколу. подключаем купюроприемник инициализируем его командой BILL TYPE он принимает купюры в соответствии с BILL TYPE потом даем команду POLL, купюрник шлет 06h,09h,ack и ни какого намека на тип и кол-во принятых купюр по команде STACKER возвращает кол-во купюр в кэш боксе. 1. Вы должны выдерживать 50 - 200 мс паузу отправки на валидатор любой команды. Я использую тайминг 100 - 200 мс. Все опросы должны уложиться в этот интервал. 2. Вы должны ОБЯЗАТЕЛЬНО контролировать 5 мс паузу задержки ответа валидатора на любую команду и ACK VMC. 3. Вы должны соблюдать процедуру инициализации Валидатора: RESET POLL пока не получите ответ JUST RESET (09H) SETUP EXPANSION IDENTIFICATION (Level 01+) (можно не выполнять) STACKER BILL TYPE 4. После процедуры инициализации Вы должны выполнять цикл BILL TYPE BILL STACKER POLL и в зависимости от режима ESCROW выполнять, если нужно, укладку купюры В вашем случае Вы принимаете ответ о сбросе Валидатора (06H или 09H) Естественно, Вы, надеюсь правильно формируете и контролируете байт контрольной суммы и 9 Бит. Ваш VMC ОБЯЗАТЕЛЬНО должен соблюдать тайминг опроса. прошу помочь разобраться с купюроприемником DBV-301-SU. Модель купюрника не имеет значения. a> Управление от микроконтроллера, все тайминги выдерживаются по a> Вашим рекомендациям. 9-й бит формирую маркем и контролирую так же. a> Инициализация в рекомендованном Вами порядке. a> На POLL получаю 0x06 0x09. Здесь уже что-то не так. После RESET Вы действительно получите Just RESET (09H) и сразу должны перейти на инициализационную последовательность. В последующем цикле опросов POLL Вы должны получать либо код 1yyyxxxxB либо ACK либо 0xxxxxxxB (но не 06h и 09h) в случае неисправности. Если неисправностей нет, Вы будете получать только ACK либо 1yyyxxxxB. a> В SETUP scalling factor равен 1000, непонятно как можно 10 р. a> нацело поделить на 1000. Это правильно? scaling factor - это стоимость наменьшей денежной единицы. Credit = N * Scalling / Decimal, где N - цена купюры (сумма их) a> EXPANSION IDENTIFICATION (Level 01+) не использую. Полезная информация. Узнаете об Level MDB a> STACKER считывает общее количество купюр. a> Зачем 2 раза подряд давать команду BILL TYPE? Не два раза. Первый и единственный раз при инициализации, а потом в цикле. После нарушения тайминга инициализация повторяется. a> После инициализации Вы рекомендуете порядок: a> BILL TYPE a> BILL STACKER a> POLL и в зависимости от режима ESCROW выполнять, если нужно, укладку купюры. a> Вот это не понятно. В TYPE я всегда указываю типы 1 и 2, т.е. a> 10 и 50 р. Если какой-то тип не указать, то его сразу выбросит. BILL TYPE нужно выполнять в цикле для того, чтобы запретить или разрешить прием банкнот в зависимости от заполненности кешбокса или запрета VMC. a> STACKER опять покажет общее количество. a> На все команды POLL получается неизменный ответ 0x06 0x09 без a> ESCROW или 0х06 0х0A c ESCROW. Т.е. никой полезной информации. a> Понимаю, что что-то не так. Но что? Команду ESCROW нужно давать только в случае нахождения купюры в кешбоксе. Ответ OAh как раз и говорит, что вы дали команду ESCROW в момент, кода купюры в ESCROW нет. a> Непонятно как определить номинал купюры находящейся в аппарате a> и еще не помещенной в stacker??? Только по ответам 1yyyxxxxB на POLL a> Пробую в команде BILL TYPE 0x00 0x03 0x00 0x01, т.е. маскирую a> для команды ESCROW 1 тип купюр. Потом даю ESCROW 0x00. Вставляю 10 Неверно. Команда ESCROW не может идти сразу после BILL TYPE. Я указывал ранее последовательность циклов опроса. a> р., они фиксируются(удерживаются) в устройстве. Если вставить 50 р. a> - принимаются устройством. Далее командой STACKER проверяю общее a> количество купюр. При использовании комбинаций этих команд, к a> сожалению, не получается добиться правильной фильтрации по a> номиналам. Сделал по вашим рекомендациям, купюры определяются. Но непонятно зачем другие команды. Для чего и как используется команда ESCROW? Для чего и как используется команда SECURITY? Команда ESCROW используется когда Вы выбираете режим ESCROW для купюрника и предназначена для указания купюрнику действия с купюрой, помещенной в положение ESCROW: вернуть назад или положить в кешбокс. Команда SECURITY указывает купюрнику необходимость использовать уровень секретности "high" для распознавания банкноты, если соответствующий бит установлен в "1". Способен ли купюрник поддерживать два уровня секретности определяется из ответа на команду STATUS. Почему на купюры одного достоинства купюроприемник отвечает разными кодами? Но я заметил, что на каждую купюру всего по два кода. Например: 50 рублей - 0x81 и 0x8A. Первый код - понятно, т.к. в описании протокола написано, что код ответа имеет формат: 1yyyxxxx, где xxxx - код купюры. 0x0 - для 10 рублей, 0x1 - для 50. А вот 0x9 и 0xA? Это может быть в случае настройки разных каналов на купюры одинакового достоинства, но разных годов выпуска. соответствие номеров каналов типу купюры определяет купюрник. Например, разные купюры одного номинала настроены на один канал… Тогда будет именно ситуация, когда одному номиналу будут соответствовать два канала и два кода POLL. Есть монетоприемник. Проинициализрован по рекомендациям стандарта MDB/ICP ver 3.0 (аналогично купюроприемнику). Цикл опроса: пауза 200 ms COIN TYPE TUBE STATUS пауза 100 ms POLL пауза 100 ms Он правильно выдает код для первой монеты. А если кидать потом вторую монету такого же достоинства - он прибавляет 1 к коду и выдает эту сумму. Допустим кидаю 1 руб. Выдает 0x51. Кидаю 1 руб - выдает 0х52. Кидаю 1 руб - выдает 0х53. Кидаю 1 руб - выдает 0х54. Кидаю 5 руб - выдает 0х53. Кидаю 5 руб - выдает 0х54. Кидаю 1 руб - выдает 0х55. Ответ на POLL в монетоприемние состоит из двух байт. Второй байт - это число мнет в тубе. Если Вы не выделяете первый и второй байт или неправильно их воспринимаете, то видите число, увеличивающееся каждый раз на 1. Ищите ошибку в этом направлении. С какой целью устанавливается Mode-бит в последнем байте данных от Slave? Чтобы master понял, что это последний байт пакета. Каков смысл наличия двух вариантов сброса Slave: сигнала Bus Reset и команды Reset? Reset - это программный адресный сброс Bus Reset - это аппаратный сброс всех slave устройств. >При получении VMC пакета с неверным байтом CHK, VMC может ответить или NAK или RET. Любым из этих сигналов. >В чём разница между этими ответами? После ответа RET slave обязан повторить последний пакет ответа. После NACK - slave ожидает любую адресную команду.
-
не отправили купюрнику команды инициализации в соответствии с его уровнем