вопрос по MDB

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

вопрос по MDB

Сообщение Гость » Ср июн 10, 2009 2:04 pm

мы делаем вендинговый автомат. подскажите пожалуйста по MDB протоколу.

подключаем купюроприемник
инициализируем его командой BILL TYPE
он принимает купюры в соответствии с BILL TYPE
потом даем команду POLL, купюрник шлет 06h,09h,ack и ни какого намека на тип и кол-во
принятых купюр
по команде STACKER возвращает кол-во купюр в кэш боксе.

Что не так? Как получить данные о том что он принял?
Гость
 

Re: вопрос по MDB

Сообщение autovending » Ср июн 10, 2009 2:04 pm

Трудно по этой информации определить в чем проблема, но дам несколько
вариантов проверки.
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 ОБЯЗАТЕЛЬНО должен соблюдать тайминг
опроса. В случае использования в качестве VMC PC Windows это у Вас
вероятнее всего не получится.
autovending
Site Admin
 
Сообщения: 132
Зарегистрирован: Пн окт 11, 2004 1:00 pm

Re: вопрос по MDB

Сообщение autovending » Ср июн 10, 2009 2:05 pm

Добрый день, Юрий.
Ваш адрес мне дал Слепичко Валерий. Если не сложно прошу помочь разобраться с
купюроприемником DBV-301-SU.
Управление от микроконтроллера, все тайминги выдерживаются по Вашим рекомендациям. 9-й
бит формирую маркем и контролирую так же. Инициализация в рекомендованном Вами порядке.
На POLL получаю 0x06 0x09.
В SETUP scalling factor равен 1000, непонятно как можно 10 р. нацело поделить на 1000.
Это правильно?
EXPANSION IDENTIFICATION (Level 01+) не использую.
STACKER считывает общее количество купюр.
Зачем 2 раза подряд давать команду BILL TYPE?
После инициализации Вы рекомендуете порядок:
BILL TYPE
BILL STACKER
POLL и в завмсисмости от режима ESCROW выполнять, если нужно, укладку купюры.
Вот это не понятно. В TYPE я всегда указываю типы 1 и 2, т.е. 10 и 50 р. Если какой-то
тип не указать, то его сразу выбросит.
STACKER опять покажет общее количество.
На все команды POLL получается неизменный ответ 0x06 0x09 без ESCROW или 0х06 0х0A c
ESCROW. Т.е. никой полезной информации. Понимаю, что что-то не так. Но что?

Непонятно как определить номинал купюры находящейся в аппарате и еще не помещенной в
stacker???

Пробую в команде BILL TYPE 0x00 0x03 0x00 0x01, т.е. маскирую для команды ESCROW 1 тип
купюр. Потом даю ESCROW 0x00. Вставляю 10 р., они фиксируются(удерживаются) в устройстве.
Если вставить 50 р. - принимаются устройством. Далее командой STACKER проверяю общее
количество купюр. При использовании комбинаций этих команд, к сожалению, не получается
добиться правильной фильтрации по номиналам.
Что делать?
Может есть типовая методика, последовательность действий, пример реализации?
Каждый производитель микроконтроллера дает различные примеры использования, так
называемые applications, appnotes и т.д. На купюрники есть что-нибудь подобное?
В общем, прошу помочь чем можете.

С уважением.
Слободчиков Александр.
autovending
Site Admin
 
Сообщения: 132
Зарегистрирован: Пн окт 11, 2004 1:00 pm

Re: вопрос по MDB

Сообщение autovending » Ср июн 10, 2009 2:07 pm

Определить проблему через переписку в Вашем случае мне не
представляется возможным. Надо искать самому. Дам по тексту
комментарии. См. ниже по тексту.

Юрий.
Wednesday, June 10, 2009, 9:31:07 AM, you wrote:

a> Добрый день, Юрий.
a> Ваш адрес мне дал Слепичко Валерий. Если не сложно прошу помочь
a> разобраться с купюроприемником 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> номиналам.
a> Что делать?
Следовать инструкции, указанной в предыдущем письме.
a> Может есть типовая методика, последовательность действий, пример реализации?
a> Каждый производитель микроконтроллера дает различные примеры
a> использования, так называемые applications, appnotes и т.д. На
a> купюрники есть что-нибудь подобное?
Мне неизвестны такие программы.
a> В общем, прошу помочь чем можете.
autovending
Site Admin
 
Сообщения: 132
Зарегистрирован: Пн окт 11, 2004 1:00 pm

Re: вопрос по MDB

Сообщение Alex » Чт июн 11, 2009 11:57 am

Сделал по вашим рекомендациям, купюры определяются. Но непонятно зачем другие команды. Для чего и как используется команда ESCROW? Для чего и как используется команда SECURITY?
Alex
 
Сообщения: 1
Зарегистрирован: Ср июн 10, 2009 4:45 pm

Re: вопрос по MDB

Сообщение autovending » Чт июн 11, 2009 12:02 pm

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

Юрий.
autovending
Site Admin
 
Сообщения: 132
Зарегистрирован: Пн окт 11, 2004 1:00 pm

Re: вопрос по MDB

Сообщение autovending » Чт июн 11, 2009 12:15 pm

Команда SECURITY указывает купюрнику необходимость использовать уровень секретности "high" для распознавания банкноты, если соответствующий бит установлен в "1".
Способен ли купюрник поддерживать два уровня секретности определяется из ответа на команду STATUS.

Юрий.
autovending
Site Admin
 
Сообщения: 132
Зарегистрирован: Пн окт 11, 2004 1:00 pm

Re: вопрос по MDB

Сообщение voyt » Вт июн 16, 2009 4:14 pm

Здравствуйте.
Подскажите пожалуйста.
Почему на купюры одного достоинства купюроприемник отвечает разными кодами? Но я заметил, что на каждую купюру всего по два кода.
Например: 10 рублей - 0x80 и 0x89. 50 рублей - 0x81 и 0x8A.
Первый код - понятно, т.к. в описании протокола написано, что код ответа имеет формат: 1yyyxxxx, где xxxx - код купюры. 0x0 - для 10 рублей, 0x1 - для 50. А вот 0x9 и 0xA?
Может это код для "подозрительных" купюр?
Заранее спасибо за ответ.
voyt
 
Сообщения: 2
Зарегистрирован: Вт июн 16, 2009 1:18 pm

Re: вопрос по MDB

Сообщение autovending » Вт июн 16, 2009 5:21 pm

Это может быть в случае настройки разных каналов на купюры одинакового достоинства, но разных годов выпуска (дизайна). Во всяком случае соответствие номеров каналов типу купюры определяет купюрник.
Например, для украинских купюр в купюрнике NV9 сделано так, что разные купюры (разного дизайна) одного номинала настроены на один и тот же канал. Но может быть и по другому. Можно настроить какую либо купюру на определенный канал и присвоить ему ту же стоимость, что и купюры, принимаемые по другому каналу. Тогда будет именно такая ситуация, когда одному номиналу купюр будут соответствовать два канала и соответственно два кода POLL.

Юрий.
autovending
Site Admin
 
Сообщения: 132
Зарегистрирован: Пн окт 11, 2004 1:00 pm

Re: вопрос по MDB

Сообщение voyt » Вт июн 16, 2009 7:56 pm

Юрий, спасибо вам за ответ.
Столкнулся с таким "феноменом". Феномен, потому что результат, который я получаю в протоколе не описан.
Есть монетоприемник. Проинициализрован по рекомендациям стандарта 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.

Может сталкивались с таким?
Или я что-то не так делаю...
voyt
 
Сообщения: 2
Зарегистрирован: Вт июн 16, 2009 1:18 pm

Re: вопрос по MDB

Сообщение autovending » Вт июн 16, 2009 9:19 pm

Ответ на POLL в монетоприемние состоит из двух байт. Второй байт - это число мнет в тубе. Если Вы не выделяете первый и второй байт или неправильно их воспринимаете, то видите число, увеличивающееся каждый раз на 1. Ищите ошибку в этом направлении.

Юрий.
autovending
Site Admin
 
Сообщения: 132
Зарегистрирован: Пн окт 11, 2004 1:00 pm


Вернуться в Интерфейсы и протоколы

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron