Страница 1 из 2

Монетоприемник ICT MCA-32X

Добавлено: 10 авг 2007, 10:21
fRutty
Никак не могу додуматься как мне отсылать команды монетнику. Что только не делал, никак не могу понять как надо сформировать строку  ???. Есть полное описание протокола. Все вроде бы легко, но просто я в этом не силен. Если кто знает Delphi то помогите пожалуйста!

Код: Выделить всё

3.Message Format

  SYNC  LNG  CMD   DATA  EXT  CHECKSUM

  SYNC     1     byte : Message transmission start code[90h] fixed
  LNG      1     byte : Data Length (Total number of bytes from SYNC to checksum)
  CMD      1     byte : Command status
  DATA   0 ~ 255 byte : Data necessary for command(omitted by CMD)
  EXT      1     byte : 03H End of Message byte
  CHECKSUM 1     byte : check code by SUM result method without carry
============================================================================
4.Transmission, reception message format
  Transmission and reception message format is divided into the fllow five type.

(1) Polling format (CONTROLLER=>ACCEPTOR)

  SYNC   LNG   CMD   EXT    CHECK

     SYNC  : [90H]
     LNG   : Length
     CMD   : [11H]
     EXT   : [03H]
     CHECK : Check code by SUM method

(2) ACK format (CONTROLLER=>ACCEPTOR/ACCEPTOR=>CONTROLLER)

  SYNC   LNG   CMD   EXT    CHECK

     SYNC  : [90H]
     LNG   : Length
     CMD   : [50H]
     EXT   : [03H]
     CHECK : Check code by SUM method

(2) NAK format (CONTROLLER=>ACCEPTOR/ACCEPTOR=>CONTROLLER)

  SYNC   LNG   CMD   EXT    CHECK

     SYNC  : [90H]
     LNG   : Length
     CMD   : [4BH]
     EXT   : [03H]
     CHECK : Check code by SUM method

(3) Command format (CONTROLLER=>ACCEPTOR)

  SYNC   LNG   CMD   DATA   EXT  CHECK

     SYNC  : [90H]
     LNG   : Length
     CMD   : Command
     DATA  : Data necessary for command (Omitted by CMD)
     EXT   : [03H]
     CHECK : Check code by SUM method

(4) Response format I (ACCEPTOR=>CONTROLLER)

  SYNC   LNG    SST   EXT    CHECK

     SYNC  : [90H]
     LNG   : Length
     CMD   : Command
     EXT   : [03H]
     CHECK : Check code by SUM method

(5) Response Format II (ACCEPTOR=>CONTROLLER)

  SYNC   LNG   CMD  DATA  EXT  CHECK

     SYNC  : [90H]
     LNG   : Length
     CMD   : Command
     DATA  : Data necessary for command (Omitted by CMD)
     EXT   : [03H]
     CHECK : Check code by SUM method

============================================================================
5.PROTOCOL CONTENT
 1.>RESET

  CONTROLLER => ACCEPTOR         ACCEPTOR => CONTROLLER

  90H+05H+40H+03H+D8H            ACK             90H+05H+50H+03H+E8H
                                 OR
                                 INVALID COMMAND 90H+05H+4BH+03H+E3H

 2.>COIN TYPE

  CONTROLLER => ACCEPTOR         ACCEPTOR => CONTROLLER

  90H+05H+90H                    ACK             90H+05H+50H+03H+E8H
  +DATA0~DATA15+03H+CHECKSUM     OR
                                 INVALID COMMAND 90H+05H+4BH+03H+E3H

 3.>STATUS REQUEST

  CONTROLLER => ACCEPTOR         ACCEPTOR => CONTROLLER

  90H+05H+11H+03H+A9H            IDILING         90H+05H+11H+03H+A9H
                                 ACCEPT          90H+06H+12H+COIN CHANNEL
                                                    +03H+AAH
                                 REJECT          90H+05H+13H+03H+ABH
                                 DISABLE         90H+05H+14H+03H+ACH
                                 COIN JAMED      90H+05H+15H+03H+ADH
                                 SENSOR PROBLEM  90H+06H+16H+sensor no
                                                    +03H+checksum
                                 FISHING         90H+05H+17H+03H+AEH
                                 CHECKSUM ERROR  90H+05H+18H+03H+AFH
                                 INTO LEARN MODE 90H+05H+19H+03H+B0H

 4.>COIN VALUE

  CONTROLLER => ACCEPTOR         ACCEPTOR => CONTROLLER

  90H+05H+80H+03H+18H            COIN VALUE 90H+06~134H+80H+
                                            DATA1~128+03H+checksum
 5.>VERSION REQUEST

  CONTROLLER => ACCEPTOR         ACCEPTOR => CONTROLLER

  90H+05H+81H+03H+19H            S/W VERSION 90H+11H+81H+
                                             DATA1~8+03H+checksum

Re: Монетоприемник ICT MCA-32X

Добавлено: 10 авг 2007, 14:27
Diktator
Тока мануал могу выслать, а зачем тебе отправлять ему команды?

Re: Монетоприемник ICT MCA-32X

Добавлено: 13 авг 2007, 11:13
fRutty
да мне не команды отправлять надо, а получать от него данные о брошенных монетах. Если не сложно, то мануалку вышли на pantifeek_песик_ya.ru

Re: Монетоприемник ICT MCA-32X

Добавлено: 13 авг 2007, 11:15
fRutty
общаться с ним я научился, но только вот он не реагирует на монетки. В чем может быть загвоздка?

Re: Монетоприемник ICT MCA-32X

Добавлено: 20 авг 2007, 10:06
fRutty
кто-нибудь пользовался? что-нибудь может сказать?

Re: Монетоприемник ICT MCA-32X

Добавлено: 27 авг 2007, 08:42
fRutty
Неужели никто не пользовался этими монетниками? :-\

Re: Монетоприемник ICT MCA-32X

Добавлено: 27 авг 2007, 15:41
polyhedron
видимо, нет
там случаем нигде не надо выставлять инхибит

Re: Монетоприемник ICT MCA-32X

Добавлено: 28 авг 2007, 08:08
fRutty
выставляю, но монеты всеравно не принимает  :-\ горит оранжевым. Вобщем вот копия письма, которую я послал в стиль-авс:
Здравствуйте, Петр.

Отсылаю Вам еще раз последовательность моих действий:

1. Dip Switch в положении 0-1-1-0.
2. Подключаю монетоприемник к компьютеру.
3. Включаю питание на монетоприемнике (сначало горит зеленым, спустя
2-3 сек загорается ораньжевый).
4. Отсылаю команду 90H+05H+40H+03H+D8H (RESET).
  - Приходит ответ от монетоприемника 90H+05H+50H+03H+E8H (ACK).
  - После происходит, по видимому, перезагрузка монетоприемника (диод
  гаснет, потом загорается зеленый, а спустя 2-3 сек опять
  ораньжевый).
5. Посылаю команду 90H+05H+11H+03H+A9H (STATUS REQUEST).
  - Приходит ответ от монетоприемника 90H+05H+14H+03H+ACH (DISABLE)
6. Посылаю команду 90H+05H+81H+03H+19H (VERSION REQUEST).
  - Приходит ответ от монетоприемника CABWD322

При попытки принять монету монетоприемник ее не принемает (выкидывает
со стороны магнитной катушки), и не отсылает никаких данных на
компьютер.

Может надо как-нибудь активировать прием? Может я что-то не так
подсоеденил (делал по инструкции)? Опишите полностью все действия,
чтобы манетоприемник начал принимать монеты.

Re: Монетоприемник ICT MCA-32X

Добавлено: 28 авг 2007, 08:17
AR_Favorit
А там разве не надо поллинг организовывать?

Re: Монетоприемник ICT MCA-32X

Добавлено: 28 авг 2007, 08:53
fRutty
поллинг? это что такое?

Re: Монетоприемник ICT MCA-32X

Добавлено: 28 авг 2007, 10:06
AR_Favorit
Постоянный запрос состояния устройства, путем посылки STATUS REQUEST, даже когда оно не нужно - что то вроде
Комп->Устройство   "RESET"
Устройство->Комп "ОК" и перезагружается
Комп->Устройство   "Как дела"
Комп->Устройство   "Как дела"
Комп->Устройство   "Как дела"
Комп->Устройство   "Как дела"
Устройство->Комп   "Я отключено" Комп теперь знает, что оно перезагрузилось, но при этом оно в отключке
Комп->Устройство   "Enable"
Устройство->Комп "ОК"
Комп->Устройство   "Как дела"
Устройство->Комп "Простаиваю"
Комп->Устройство   "Как дела"
Устройство->Комп "Простаиваю"
Комп->Устройство   "Как дела"
Устройство->Комп "Простаиваю"
...
Комп->Устройство   "Как дела"
Устройство->Комп "Простаиваю"
тут кидается монетка
Комп->Устройство   "Как дела"
Устройство->Комп "Есть монета такая-то"
Комп->устройство "принимай"
Устройство->Комп "ОК"
Комп->Устройство   "Как дела"
Устройство->Комп "Принимаю монету"
Комп->Устройство   "Как дела"
Устройство->Комп "Принимаю монету"
Комп->Устройство   "Как дела"
Устройство->Комп "Принимаю монету"
Комп->Устройство   "Как дела"
Устройство->Комп "Простаиваю"  - теперь комп знает, что монета прошла.
Комп->Устройство   "Как дела"
Устройство->Комп "Простаиваю"
Комп->Устройство   "Как дела"
Устройство->Комп "Простаиваю"

и т.д.

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

В любом случае
fRutty писал(а): 5. Посылаю команду 90H+05H+11H+03H+A9H (STATUS REQUEST).
   - Приходит ответ от монетоприемника 90H+05H+14H+03H+ACH (DISABLE)
Если он говорит в ответ на запрос состояния DISABLE - он не должен брать монету, он же  DISABLE :) . Надо как-то его ENABLE, какой-то соответствующей командой...

Re: Монетоприемник ICT MCA-32X

Добавлено: 28 авг 2007, 10:30
Style-AVS
а у Вас 3 переключатель (INHIBIT) таки в ON или OFF ?
если он включён, устройство принимать ничего не будет.

Re: Монетоприемник ICT MCA-32X

Добавлено: 29 авг 2007, 10:03
fRutty
Конечно включен, вы ... мне целый месяц мозг ... нихрена не знаете как он должен работать ... в сервисе мне сказали что ИНХИБИТ должен быть включен если работа осуществляется по протоколу. А если он не включен, то от меня устройство вообще никакие команды не принимает, даже тотже РЕСЕТ. Нахрена спрашивается надо продавать товар, если вы сами не знаете как его и с чем "кушать"!

Re: Монетоприемник ICT MCA-32X

Добавлено: 29 авг 2007, 10:13
AR_Favorit
Тихо-тихо-тихо, не надо так ругаться))) Их дело продавать, а наше - суметь использовать))). Киньте мне на мыло доки по нему, что есть - гляну...

Re: Монетоприемник ICT MCA-32X

Добавлено: 29 авг 2007, 10:31
Style-AVS
любезнейший, я не техник, просто пытаюсь помочь, так что не стоит...
программа для тестрования пришла, сейчас мы её опробуем на работоспособность (ну в общем смотрите почту, иам всё написано).

Re: Монетоприемник ICT MCA-32X

Добавлено: 29 авг 2007, 10:51
fRutty
AR_Favorit писал(а): Тихо-тихо-тихо, не надо так ругаться))) Их дело продавать, а наше - суметь использовать))). Киньте мне на мыло доки по нему, что есть - гляну...
доки кинул
Style-AVS писал(а): любезнейший, я не техник, просто пытаюсь помочь, так что не стоит...
программа для тестрования пришла, сейчас мы её опробуем на работоспособность (ну в общем смотрите почту, иам всё написано).
надеюсь...

Re: Монетоприемник ICT MCA-32X

Добавлено: 29 авг 2007, 11:00
AR_Favorit
fRutty писал(а): доки кинул
Что-то пока ничего нету...

Updated: пришло. Посмотрим...

Re: Монетоприемник ICT MCA-32X

Добавлено: 29 авг 2007, 11:31
AR_Favorit
Ну как я и говорил - там английским по белому:

This specification describes specification at the data level of
  interfacing between the ACCEPTOR and CONTROLLER.In Coin Acceptor
  reset after default is disable. - после ресета прием ВСЕХ монет отключен

    Except controller send coin type enable. - за исключением тех, которые контроллер разрешил принимать командами COIN TYPE

    If controller in 3 second no polling coin acceptor The coin
  acceptor automatic disable waiting controller send "RESET" command
  continute active. Если в течение трех секунд от контроллера не было команд и запросов - монетоприемник переходит в состояние "DISABLED", и находится в таком состоянии до команды RESET.

В общем, должен идти непрерывный поток запросов STATUS REQUEST от контроллера к монетоприемнику. То есть в начале работы шлем RESET, затем шлем STATUS REQUEST до тех пор, пока не получим ответ. Затем шлем COIN TYPE с теми типами монет, которые должны приниматься. Затем непрерывно (например, раз в 250 миллисекунд) шлем STATUS REQUEST - и по ответу монетоприемника понимаем, что с ним происходит:

IDILING        90H+05H+11H+03H+A9H
Монетоприемник простаивает - обычное состояние

ACCEPT          90H+06H+12H+COIN CHANNEL
                                                    +03H+AAH
Принята монета, COIN CHANNEL - какая именно

REJECT          90H+05H+13H+03H+ABH
Была заброшена монета, но монетоприемник ее не принял (не опознана, или опознана, но данный канал отключен)

DISABLE        90H+05H+14H+03H+ACH
Монетоприемник отключен

COIN JAMED      90H+05H+15H+03H+ADH
монета застряла в монетоприемнике

SENSOR PROBLEM  90H+06H+16H+sensor no
                                                    +03H+checksum
обнаружена неисправность монетоприемника

FISHING        90H+05H+17H+03H+AEH
обнаружена попытка извлечения вброшенной монеты обратно

CHECKSUM ERROR  90H+05H+18H+03H+AFH
ошибка контрольной суммы (как я понимаю, в принятом запросе STATUS REQUEST)

INTO LEARN MODE 90H+05H+19H+03H+B0H
Монетоприемник находится в "режиме обучения".

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

Re: Монетоприемник ICT MCA-32X

Добавлено: 29 авг 2007, 12:42
fRutty
А где я должен узнать тип монет? Вот что описано в протоколе:

(2)COIN TYPE

  CONTROLLER => ACCEPTOR        ACCEPTOR => CONTROLLER

  90H+05H+90H                    ACK            90H+05H+50H+03H+E8H
  +DATA0~DATA15+03H+CHECKSUM    OR
                                INVALID COMMAND 90H+05H+4BH+03H+E3H

  Details, DATA0 - bit 7 : Coin Channel  1 (1: Accepting, 0:Inhibit)
                  bit 6 : Coin Channel  2 (1: Accepting, 0:Inhibit)
                  bit 5 : Coin Channel  3 (1: Accepting, 0:Inhibit)
                  bit 4 : Coin Channel  4 (1: Accepting, 0:Inhibit)
                  bit 3 : Coin Channel  5 (1: Accepting, 0:Inhibit)
                  bit 2 : Coin Channel  6 (1: Accepting, 0:Inhibit)
                  bit 1 : Coin Channel  7 (1: Accepting, 0:Inhibit)
                  bit 0 : Coin Channel  8 (1: Accepting, 0:Inhibit)

          DATA1 - bit 7 : Coin Channel  9 (1: Accepting, 0:Inhibit)
                  bit 6 : Coin Channel 10 (1: Accepting, 0:Inhibit)
                  bit 5 : Coin Channel 11 (1: Accepting, 0:Inhibit)
                  bit 4 : Coin Channel 12 (1: Accepting, 0:Inhibit)
                  bit 3 : Coin Channel 13 (1: Accepting, 0:Inhibit)
                  bit 2 : Coin Channel 14 (1: Accepting, 0:Inhibit)
                  bit 1 : Coin Channel 15 (1: Accepting, 0:Inhibit)
                  bit 0 : Coin Channel 16 (1: Accepting, 0:Inhibit)

          DATA2 ~ DATA15: Coin Channel 17 ~ Channel 256

  Example:
    a) If 1~8 channels are all accepting coins, controller shall send the following command MCA
      Controller : 90H+06H+90H+FFH+03H+CHECKSUM (Format-2, FFH = 1111 1111)
      MCA        : return ACK or NAK

    b) If 2~8 channels are accepting but channel 1 inhibit, controller shall send the following command MCA
      Controller : 90H+06H+90H+7FH+03H+CHECKSUM (Format-2, 7FH = 0111 1111)
      MCA        : return ACK or NAK

    c) If 1~7 channels are accepting but channel 8 inhibit, controller shall send the following command MCA
      Controller : 90H+06H+90H+FEH+03H+CHECKSUM (Format-2, FEH = 1111 1110)
      MCA        : return ACK or NAK

Re: Монетоприемник ICT MCA-32X

Добавлено: 29 авг 2007, 12:48
AR_Favorit
А вы для начала разрешите ВООБЩЕ ВСЕ каналы, когда добъетесь хоть какого-то приема - будете кидать монеты и видеть, в каком канале какая прописана :)

то бишь все байты DATA равны 0xFF -

от контроллера:
90H+15H+90H +DATA0+DATA1...+ DATA15+03H+CHECKSUM

15H - длина команды в байтах, включая контрольную сумму

от монетоприемника в ответ:
ACK             90H+05H+50H+03H+E8H  - "понял"
или
INVALID COMMAND 90H+05H+4BH+03H+E3H - "не понял"

Re: Монетоприемник ICT MCA-32X

Добавлено: 29 авг 2007, 13:06
AR_Favorit
Или еще вариант: обучить монетоприемник монетам самостоятельно, прописав их в первые восемь каналов, и разрешить только их - тогда команда будет как в первом примере -
90H+06H+90H+FFH+03H+CHECKSUM

Re: Монетоприемник ICT MCA-32X

Добавлено: 29 авг 2007, 13:18
Style-AVS
если понадобится обучающая программа - сбросьте запрос на мэйл, но она у Вас , если мне память не изменяет, есть.

Re: Монетоприемник ICT MCA-32X

Добавлено: 29 авг 2007, 13:26
fRutty
Так, монеты принимаю, при закидывании рубля возвращает 1, 2->2, 5->3, как мне ограничиться 5-ками? насколько я помню МСА помнит 6 типов монет, т.е. мне надо отослать 001000 (08Н), так чтоли?

90H+06H+90H+FFH+03H+CHECKSUM - на эту команду мне отвечает Инвалидом!

Re: Монетоприемник ICT MCA-32X

Добавлено: 29 авг 2007, 15:35
AR_Favorit
По идее должно быть

90H+06H+90H+08H+03H+CHECKSUM, получается, чтоб принимать только пятачки

а какой командой разрешили прием? или по умолчанию стал принимать?
fRutty писал(а): 90H+06H+90H+FFH+03H+CHECKSUM - на эту команду мне отвечает Инвалидом!
Хм... может это из-за того, что не все 8 каналов настроены на какие-то монеты? Типа, нельзя разрешать ненастроенные каналы?

90H+06H+90H+FCH+03H+CHECKSUM (разрешить первые шесть каналов) или
90H+06H+90H+С0H+03H+CHECKSUM (разрешить первые три канала - рубли, двушки и пятачки) - тоже не проходят?

Re: Монетоприемник ICT MCA-32X

Добавлено: 29 авг 2007, 16:00
fRutty
все, понял, спутал с байтами, чтоб принимать только пятачки, надо отправить 90H+06H+90H+20H+03H+CHECKSUM, гуд, прога пашет. А я добивался этого у стиля целый месяц. Большое спасибо AR_Favorit 8)