westforever
Aug 1 2013, 23:03
Добрый день. Стоит следующая задача:
Перенаправить данные, полученные от сканера 2D кодов, через ПК (Windows 7)в логический контроллер без залазания в сами данные.
Подскажите, пожалуйста, как это можно реализовать.
Во вложении схема.
нечитатель
Aug 2 2013, 05:06
"виртуальный кабель +com -audio"
--> сразу видно, что по-иностранному оно же "Virtual Null Modem".
MrYuran
Aug 2 2013, 05:13
copy COM1 COM2
Сергей Борщ
Aug 2 2013, 09:26
com0com - это не то, что нужно автору ветки? Правда в постановке задачи не сказано - должен ли ПК также иметь доступ к этим данным?
westforever
Aug 2 2013, 09:32
Цитата(Сергей Борщ @ Aug 2 2013, 13:26)

com0com - это не то, что нужно автору ветки? Правда в постановке задачи не сказано - должен ли ПК также иметь доступ к этим данным?
Да, ПК должен иметь доступ к этим данным.
Сейчас настроено так, что ПК распознает эти данные, кладет их в базу данных. Потом ПК посылает эти данные в шестнадцатеричном формате через COM-2 RS-232 котроллеру. Но контроллеру что-то не нравится. Поэтому ищу способ передать данные через COM-2 RS-232 котроллеру не в шестнадцатеричном формате, а если можно выразиться на уровне ниже (т.е исходный сигнал). Надеюсь, понятно выразился.
MrYuran
Aug 2 2013, 09:51
А контроллер умеет общаться напрямую с вашим сканером?
А то ведь может получиться, что он вообще без понятия.
Есть такая штука, как протоколы обмена
westforever
Aug 2 2013, 10:01
Цитата(MrYuran @ Aug 2 2013, 13:51)

А контроллер умеет общаться напрямую с вашим сканером?
А то ведь может получиться, что он вообще без понятия.
Есть такая штука, как протоколы обмена
Да умеет. Дело в том, что я как раз врезаю ПК между сканером и контроллером, чтобы положить в БД данные со сканера. А сканер с контроллером должны продолжать общаться, ПК должен гнать эти данные насквозь грубо говоря. Документацию на сканер не нашли. Знаем только модель. Это DESCO GRSK 504 YNP.
Контроллер Moxa nport 5210
http://www.moxa.ru/images/items/17107/file...s_manual_v6.pdf
а чем плох вариант соединить напрямую сканер с контроллером, а на вход ПК ответвить выход сканера?
westforever
Aug 2 2013, 10:10
Цитата(ZASADA @ Aug 2 2013, 14:08)

а чем плох вариант соединить напрямую сканер с контроллером, а на вход ПК ответвить выход сканера?
В сканере только один порт. Вы имеете ввиду какой-то разветвлитель?
тупо в кабеле лишний проводок отпаралелить.
т.е. просто нестандартный кабель. или переходник между сканером и стандартным кабелем.
вот картинку нарыл
MrYuran
Aug 2 2013, 10:52
Цитата(westforever @ Aug 2 2013, 13:01)

Это никакой не контроллер, а просто мост RS-xxx - Ethernet.
Или удаленный СОМ-порт, если хотите. И он не сам по себе, а управляется по сети с компьютера. И вот на том удаленном компьютере логичнее было бы вести вашу базу.
Вообще, если вы уже перехватили поток от сканера, что мешает выдать его в другой порт в первозданном виде?
И что вы заносите в базу, не зная протокол?
В общем, пока ничего не понятно.
westforever
Aug 2 2013, 12:35
К удаленному компьютеру мы доступа не имеем. Поэтому нам и приходится делать "врезку" между ним и сканером.
Данные, которые идут от сканера, мы распарсивать умеем. У них есть заголовок, тело и "стоп"-байт. После того, как мы полностью получили данные от сканера, мы их в первозданном виде отправляем через другой порт на удаленный комп. После этого удаленный комп должен прислать нам ответ. Но он либо не отвечает, либо приходит нечто невразумительное.
Есть подозрение. что мосту RS-xxx - Ethernet чего-то не хватает в общении с нашим компом. Вопрос - чего и как это диагностировать?
Т.е. первозданная связка "Сканер - удаленый комп" работает. После "врезки" связка "Сканер - наш комп" работает, а связка "Наш комп - удаленныей комп" - нет. Настройки ком-портов идентичны. Программа, которая стоит на нашем компе и отвечает за работу с СОМ-портами до этого работала с другими устройствами (р/модемы, GPS) и обмен данными всегда шел нормально.
Вот пипец проблема.
Простейшая схема из любого микропроцессора с тремя USART портами - и передавай-принимай в любом направлении.
На компьютере такая программа пишется за 15 минут.
Цитата(westforever @ Aug 2 2013, 16:35)

Есть подозрение. что мосту RS-xxx - Ethernet чего-то не хватает в общении с нашим компом. Вопрос - чего и как это диагностировать?
Что-то в протоколе обмена вы нарушаете. Может, даже только тайминги, но этого хватает.
Из сказанного на данный момент прямой вывод - вам нужно сделать/купить упоминавшийся RS-232 разветвитель. Он, во-первых, вроде как полностью решает вашу задачу по простому параллельному сбору данных со сканера (по крайней мере, ни о чем другом не заявлено); а во-вторых, дает вам возможность подсмотреть оригинальный протокол обмена (и сравнить со своим случаем). Только нужно сделать отводы и от TX, и от RX. Это если "решение на коленке" устраивает (остается вопрос взаимного упорядочивания сообщений, правда). Есть решения для RS-232 сниффинга в виде коробочек (как раз на основе микроконтроллеров, очевидно; и они не должны быть шибко дорогими по идее).
пояснения к моей картинке (она просто выдрана с инета)-
слева-сканер DESCO GRSK 504 YNP
справа вверху- ПК с вин7
справа внизу - Контроллер Moxa nport 5210
westforever
Aug 6 2013, 17:42
Проанализировал поведение сигналов CTS, DSR, и DCD.
Сигналы RTS, DTR "своего" порта всегда выставлял в 1. Управление потоком - "нет".
При коннекте со сканером сигналы CTS, DSR устанавливались в 1 - т.е. сканер готов работать (DCD всегда 0, но похоже, сканер им не управляет в принципе.)
При коннекте с мостом RS-xxx - Ethernet сигналы CTS, DSR, DCD просто "бесятся" - то выставляются, то сбрасываются. Причем меняют состояние по нескольку раз в милисекунду. Похоже, мост со мной не коннектится. Вот фрагмент лога:
06.08.2013 13:20:06.204 ;FRTS;1;FDTR;1;FCTS;0;FDSR;0;FDCD;0;FRing;0;
06.08.2013 13:20:06.204 ;FRTS;1;FDTR;1;FCTS;1;FDSR;1;FDCD;1;FRing;0;
06.08.2013 13:20:06.204 ;FRTS;1;FDTR;1;FCTS;0;FDSR;0;FDCD;0;FRing;0;
06.08.2013 13:20:06.204 ;FRTS;1;FDTR;1;FCTS;0;FDSR;0;FDCD;0;FRing;0;
06.08.2013 13:20:06.204 ;FRTS;1;FDTR;1;FCTS;0;FDSR;0;FDCD;0;FRing;0;
06.08.2013 13:20:06.204 ;FRTS;1;FDTR;1;FCTS;1;FDSR;1;FDCD;1;FRing;0;
06.08.2013 13:20:06.204 ;FRTS;1;FDTR;1;FCTS;0;FDSR;0;FDCD;0;FRing;0;
06.08.2013 13:20:06.205 ;FRTS;1;FDTR;1;FCTS;0;FDSR;0;FDCD;1;FRing;0;
06.08.2013 13:20:06.205 ;FRTS;1;FDTR;1;FCTS;1;FDSR;1;FDCD;1;FRing;0;
06.08.2013 13:20:06.205 ;FRTS;1;FDTR;1;FCTS;0;FDSR;0;FDCD;0;FRing;0;
06.08.2013 13:20:06.205 ;FRTS;1;FDTR;1;FCTS;1;FDSR;1;FDCD;1;FRing;0;
06.08.2013 13:20:06.205 ;FRTS;1;FDTR;1;FCTS;1;FDSR;1;FDCD;1;FRing;0;
06.08.2013 13:20:06.205 ;FRTS;1;FDTR;1;FCTS;0;FDSR;0;FDCD;0;FRing;0;
06.08.2013 13:20:06.205 ;FRTS;1;FDTR;1;FCTS;0;FDSR;0;FDCD;0;FRing;0;
06.08.2013 13:20:06.205 ;FRTS;1;FDTR;1;FCTS;1;FDSR;1;FDCD;1;FRing;0;
06.08.2013 13:20:06.205 ;FRTS;1;FDTR;1;FCTS;0;FDSR;0;FDCD;0;FRing;0;
06.08.2013 13:20:06.206 ;FRTS;1;FDTR;1;FCTS;0;FDSR;0;FDCD;1;FRing;0;
06.08.2013 13:20:06.206 ;FRTS;1;FDTR;1;FCTS;1;FDSR;1;FDCD;1;FRing;0;
06.08.2013 13:20:06.206 ;FRTS;1;FDTR;1;FCTS;0;FDSR;0;FDCD;0;FRing;0;
06.08.2013 13:20:06.206 ;FRTS;1;FDTR;1;FCTS;1;FDSR;0;FDCD;1;FRing;0;
06.08.2013 13:20:06.206 ;FRTS;1;FDTR;1;FCTS;0;FDSR;0;FDCD;0;FRing;0;
06.08.2013 13:20:06.206 ;FRTS;1;FDTR;1;FCTS;0;FDSR;0;FDCD;1;FRing;0;
06.08.2013 13:20:06.206 ;FRTS;1;FDTR;1;FCTS;0;FDSR;0;FDCD;1;FRing;0;
06.08.2013 13:20:06.206 ;FRTS;1;FDTR;1;FCTS;0;FDSR;0;FDCD;0;FRing;0;
06.08.2013 13:20:06.206 ;FRTS;1;FDTR;1;FCTS;0;FDSR;0;FDCD;0;FRing;0;
06.08.2013 13:20:06.206 ;FRTS;1;FDTR;1;FCTS;0;FDSR;0;FDCD;0;FRing;0;
06.08.2013 13:20:06.206 ;FRTS;1;FDTR;1;FCTS;1;FDSR;1;FDCD;1;FRing;0;
06.08.2013 13:20:06.207 ;FRTS;1;FDTR;1;FCTS;0;FDSR;0;FDCD;0;FRing;0;
06.08.2013 13:20:06.207 ;FRTS;1;FDTR;1;FCTS;0;FDSR;0;FDCD;1;FRing;0;
Вот настройки портов, которые прописаны в документации и которые я выставлю у себя:
Daudrate 9600, Databits 8, Stopbits 1, Parity None, FIFO enable, Flowctrl none, Inerface RS-232.
Может мост вообще как-то по другому настроен или с другим интерфейсом?
Уточнение:
1) ваш компьютер при общении с RS/Ethernet мостом какую роль разыгрывает - DCE или DTE? Из того, что вы описали, следует, что сканер себя считает DCE. Значит, его визави должен быть DTE (и компьютер себя по-умолчанию именно таковым и считает, насколько я знаю). И у вас все работает в такой связке как будто. Также это означает, что мост тоже отлично выполняет роль DTE (раз уж он работает со сканером без проблем). Но связка DTE-DTE (комп - мост) нормально будет работать только через нуль-модемный кабель. У вас так? Заранее прошу прощения, если спросил об очевидном для вас, но надо расставить точки над i.
2) Если вышесказанное не актуально, то что насчет задействованности этих входных сигналов? Они в воздухе не болтаются, собирая наводки?
westforever
Aug 8 2013, 05:21
Похоже, Вы, Raven, правы. Я совсем забыл, что RS/Ethernet мост надо рассматривать как выход другого компьютера.
Дело в том, что сканер с мостом соединены через переходник "Папа-папа":
[ разъем сканера "мама" ] - [ переходник "папа-папа" ] - [ разъем RS/Ethernet моста "мама" ].
Соответственно, я сканер с моим компом соединил СОМ-удлинителем.
Кабель от RS/Ethernet моста также присоединил к своему компу - "купился" на то, что разъем подходит.
Правда, тогда не понятно, почему я вообще что-то получал от RS/Ethernet моста?
Вообщем, если будет такая возможность, обязательно проверю с нуль-модемным кабелем.
Вчера решили эту задачу, сделав "ответвление" от кабеля между сканером и RS/Ethernet мостом примерно по той схеме, что предложил уважаемый ZASADA.
Что интересно, после подключения ответвления к нашему компьютеру сканер и RS/Ethernet мост перестали "дружить". Все заработало только после заземления корпуса нашего компа.
Всем спасибо за помощь.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.