Всем здравствуйте. Начал разбираться с программированием модуля MVI56-ADM. Скачал с оф сайта документацию, примеры и т.д., в общем все что у них есть по этому модулю.
Зашил пример MVI56-SerialIn в модуль, снял Setup Jumper. Отклика ноль (как минимум, судя по коду, должны поморгать некоторые диоды на модуле).
Решил попробовать переписать код. В лит-ре указано что поддерживаемые компиляторы - Digital Mars 8.49 и Borland C++ 5.02. Поскольку Digital Mars платный, решил использовать борланд. Открыл пример, попробовал скомпилировать. Компилятор выдал кучу ошибок. Не знаю что теперь делать.
Если кто сталкивался с похожими проблемами просьба указать путь к решению, или поделиться уже готовыми прошивками (исходным кодом).
Во-первых, нужно убедиться, что загруженный пример вызывается в autoexec.
Во-вторых, куча ошибок компиляции как правило означает, что компилятор не может найти ссылочные файлы, которые используются в проекте (*.h, *.lib, они присутствуют в SDK), поэтому нужно убедиться, что они лежат в местах, известных компилятору.
Так, с комплилятором разобрался. Возникла новая проблема. Формирую строку запроса, отправляю устройству (хочу считать дату и время, в каких регистрах они хранятся мне известно). Отправляется запрос без проблем, но устройство в ответ ничего не посылает! Команда чтения выдает ошибку превышения таймаута. Если выставить в команде MVIsp_Gets таймаут на TIMEOUT_FOREVER то программа дальше нее не идет (соотвественно не может ничего получить).
Есть настроенный MCM модуль, который без проблем считывает из этого устройства все что надо, так что прибор рабочий.
Решил посмотреть какую строку запроса формирует MCM. Подключаю порт MCM напрямую к порту ADM (для этого использую два соедительных кабеля RJ-45 с одной стороны и разъем COM папа на другой, COM разъемов соединены клеммы 1-1, 8-8, 5-5). Пытаюсь считать сисвол с порта ADM командой MVIsp_Getch. Картина та же. На MCM порт моргает - следовательно что то передает. На ADM - мертво.
Формирую строку запроса, отправляю устройству (хочу считать дату и время, в каких регистрах они хранятся мне известно). Отправляется запрос без проблем, но устройство в ответ ничего не посылает!
Ну если MCM опрашивает нормально, значит в устройстве протокол ModBus и было бы не плохо уточнить какой именно (RTU или ASCII)
В любом случае протокол ModBus накладывает строгие требования к запросам и ответам. Если с проводами и параметрами передачи (номер порта, скорость, четность, стоповые биты) всё на 100% проверено, то отсутствие ответа от устройства означает одно - неправильно сформирован или неправильно послан запрос!
Ещё имеет смысл проверить установку джамперов для режима работы портов (RS232/422/485).
Также не следует забывать, что в режиме работы по RS232 интерфейсу с устройством необходимо соединяться ноль-модемным кабелем.
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
Smart Solutions VDT GmbH | Friedrich-List-Allee 38, D-41844 Wegberg-Wildenrath, Germany Tel.: +49 2432 933 57 83 | e-Mail: office@vdt-solutions.de Все товарные знаки и торговые марки являются собственностью их владельцев.
При использовании материалов сайта ссылка на данный сайт обязательна. Открытие страницы: 0.133 секунды