|
Вопрос по ADAM-5510 |
|
Использую COM4 контроллера ADAM-5510 для управления частотниками Danfoss по RS485 (COM2 занят под другую сеть RS485). Сеть работает в тяжелых условиях. Посылка сообщения состоит из 16 байт (FC телеграмма), последний байт - контрольная сумма. При обмене иногда происходит изменение какого-либо бита в сообщении и соответственно - затем это обнаруживается в несовпадении контрольной суммы. Испульзую библиотечные функции Advantech для работы с COM4. Но никакой реакции на прием ошибочного байта нет, и в библиотеке нет функций контроля статуса порта. Ведь в этом случае должна возникать ошибка паритета (9600,even,1stop) и в UART устанавливаться соответствующий бит регистра состояния. Дело, конечно,
в помехе и с этим еще нужно работать. Но ведь ПО должно это отлавливать. Коллеги, посоветуйте что-нибудь дельное. Заранее большое спасибо. |
|
![]() |
|
|
По собственному опыту знаю, что анализ контрольной суммы зачастую не делается. Да, она расписывается в документации, но, на приеме ее устройство не смотрит. Кстати, то же и с паритетом. А под win анализ паритета вообще отдельная радость. И в некоторых сочетаниях наличия паритета у передатчика и приемника спокойненько все пропускается при несовпадении. Совет один - смотреть принятые данные на достоверность : число принятых символов должно быть в вилке правильного ответа. Плавающие числа должны быть плавающими. Поля ответов должны иметь приемлемую длину и в них не должно быть лишних (не ожидаемых) символов. Это все для символьных протоколов и когда есть возможность самому после приема посмотреть что же там пришло.
|
|
|
При экспериментах ни один чайник не пострадал
----------- Плохому системному интегратору всегда OPC сервер мешает. ______________ Пишу на C++ за еду |
|
![]() |
|
|
Vald, спасибо за ответ. Может кто встречал более полное
описание архитектуры ADAM-5510? В стандартной доке есть только базовые адреса СОМ1 и СОМ2, а СОМ4? Здесь http://forum.cta.ru/forum_posts.asp?TID=2360&PN=0&TPN=2 видел в листинге адрес DIP-пеключателя (138h). Значит где-то же такая информация есть. То, что искаженный байт функция com_232_485_rx() возвращает без какого-либо уведомления, этого конечно быть не должно. Хотя-бы она его игнорировала. |
|
![]() |
|
|
Я тоже хотел бы узнать адреса для СОМ4...
Буду очень благодарен, если у кого есть такая информация |
|
![]() |
|
|
Доброе время суток! Адреса Com портов контроллера Адам 5510 COM1 - 0x03F8 COM2 - 0x02F8 COM_PGM - 0xFF80 COM4 - 0x03E8 Микросхемы приемопередатчиков для Com1, Com2 и Com4 одинаковые эта UART 16550 А порт COM_PGM (Com3) является частью центрального контроллера R8800. В свае время мне надоел гавно код стандартной библиотеки, и я разработал сваю библиотеку, которая работает с com портами контроллера Адам 5510. |
|
![]() |
|
|
Добрый день! Может кто сталкивался с подобным или что-нибудь подскажет. Имеется блок ADAM-5050, 8 выходов которого (с 0 по 7й) сконфигурированы как входные, а другие 8 - на выход. Проблема в том, что последние продолжают работать только на вход. При подаче на них сигнала принимают значение 1цы, но напряжения на выходе не коммутируется. Если подключить к какому либо выходному каналу внешнюю нагрузку, то он также принимает значение 1цы... Что скажете, товарищи спецы? Блок "умер"?
|
|
![]() |
|
|
Poison !!!
Большое спасибо за информацию !!! |
|
![]() |
|
Есть возможность использовать CAN? Там аппаратная реализация проверки ошибок. |
|
![]() |
|
Ответить
|
| Переход на форум | Права доступа на форуме ![]() Вы не можете публиковать новые темы в этом форуме Вы не можете отвечать на сообщения в этом форуме Вы не можете удалять Ваши сообщения на этом форуме Вы не можете редактировать Ваши сообщения на этом форуме Вы не можете создавать голосования на этом форуме Вы не можете выражать своё мнение в голосованиях на этом форуме |