Форум » » Cчитать данные через СОМ порт процессора » Ответить

Cчитать данные через СОМ порт процессора

Pavel777: Пытаюсь считать данные с тепловодосчетчика, имеющего порт RS-232, с помощью контролера МС3, используя один из СОМ портов. До этого, все известные мне устройства подключались к этому порту используя стандартное 3-х проводное подключения. Счетчик же требует сигнал готовнось к передаче данных ( контакт 6 DB9) у себя на порту. Выдаст ли этот сигнал COM порт МС3 и как заставить последний это сделать?

Ответов - 11

gosha: Судя по спецификации, RS-323 у MC3 полный, так что должно работать.

Игорь K.: Попробуйте дать туда высокий уровень от выводов 1 или 4 или 7 или 8, где его обнаружите.

gosha: Вообще-то странновато, там точно DSR используется???


Вячеслав: Да и вообще было бы удивительно увидеть на счетчике протокол RS232. Там разъем может и DB9 но шина 485 и протокол типа MODBUS и т.п.

p.vladi: Мне однажды встретился китайский HDMI свитч с RS232, который был просто TX/RX/G - но требовал еще и DTR ;-))

Pavel777: Вячеслав, протокол действительно MODBUS, но порт RS-232. Подключаю к ПК через USB-RS-232, все подключается. На счетчике зажигается индикатор, подтверждающий соединение, а когда подключаю к МС3 -тишина. Пробовал подавать на шестой контакт единицу (5,5в) -ничего не происходит. (От адаптера USB-RS-232 идет на шестой контакт 6,5в). Похоже, дело в самом протоколе. Использовал стандартные модули Modbus Analog Holding Register Poll and Control v3 из базы данных. наверное что-то делаю не так. Может у кого есть пример программы с использованием указанных модулей?

Вячеслав: 1.Вероятно, индикатор загорается после какого то служебного обмена, а не просто по наличию сигнала. Попробуйте перехватить команды дебагером, пропустив COM порт через MC3. (если не понятно как сделать спросите, расскажу чуть подробнее) 2.Мой коллега в офисе намучался с данфосовским частотным регулятором скорости. Модули для modbus тоже сразу не заработали, оказалось требовалась специальная подготовительная команда, для того чтобы устройство принимало значения переменных (было выяснено по аналогии с другим устройством из форумов). Но вроде считывали нормально известные регистры. Без манула на счетчик с перечнем регистров дело вообще гиблое. 3.Может я и не правильно понял, но похоже высокий уровень на 6 контакте (DSR) должен выдавать как раз счетчик (DCE), в ответ на сигнал запроса готовности DTR (4 контакт) со стороны процессора(DTE). 4.Коллеги а MODBUS разве бывает по 232 протоколу? У нас вроде адаптер на 485 двухпроводный так как DIN-AP2 да и МС3 на борту только 232.

Pavel777: Вячеслав пишет: Да, вы правы, DSR (6 контакт) выдает счетчик после поступления на него команды запроса от ПК. ПК принимает сигнал, и реагирует последующим соединением со счетчиком. Сможет ли MC3 отреагировать на DSR от DTE? В подсказке на Two-Way Serial Driver нет ни слова об этом или СОМ -порт МС3 делает это автоматически?

Вячеслав: А как он должен реагировать? По мне так в этом случае DTE это процессор, а DCE это счетчик. Процессор должен выдать высокий уровень (запрос готовности) на DTR(4), на который счетчик подтвердит высоким уровнем на DSR(6) (готов) Вероятно это и сопровождается свечением индикатора. Зато есть вход [rts] в serial driver можете попробовать подавать на него 1 или поставить в авторежим выбрав в настройках порта HW:RTS/CTS Может мы не там ищем, а надо просто RX и ТX местами поменять? )) Тестером проверили, что у вас напряжение на обоих контактах 2,3 присутствует? (на RX и TX относительно земли 5). Если напряжение выдается встречное с обеих сторон на один и тот же контакт, то поменяйте местами RX TX с одной стороны.

Pavel777: Удалось открыть порт. В настройках Handshaking COM порта МС3 надо выставить CTS/RTS и при обращении к порту надо подавать единицу на вход enable COM порта. Ну и на 6 пин счетчика нужно подавать единицу. Вообщем, данные туда уходят и приходят ответы. С Modbus пока разобраться не удалось. Может у кого есть опыт использования Modbus Holding Analog Register модуля из базы данных? В описании на устройство, указано, что для чтения используется функция 3 протокола Modbus, именно эту функцию и выполняет вышеупомянутый модуль, или надо другой модуль использовать? Буду благодарен за помощь

Вячеслав: В проекте использовали "Modbus Analog Holding Register Poll and Control v3(cm)" чтение запись "Modbus Single Discrete Input Poll v3" чтение Ну и конечно это все через "Modbus Processsor v31". Коллега правда утверждает что процессор немного допиливал. Еще в настройках Serial Driver Parity везде стоит E(вместо привычного N)поэтому проверьте требования счетчика.



полная версия страницы