Привет. Под рукой нет какого либо ADAM-4000, но хочу попробовать поработать с их протоколом обмена. Можно ли настроить параметры СОМ-порта так, что бы я мог посылать ответы модулей от ADAM-4000 вручную с другого компъютера?
Заранее благодарю.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Только если скорость Вашей печати символов на клавиатуре достигает скорости 9600 Бод/сек!
Реально - если Вы "дружите" с каким-либо языком программирования, то можно попробовать написать небольшой эмулятор устройства ADAM4000, который будет отвечать на запросы по СОМ-порту по протоколу ADAM4000. Или поискать в Интернет уже готовые программы-эмуляторы такого рода устройств.
Posted by Савинцев Евгений (Участник № / Member № 611) on :
Эмулятор у меня был написан, испытал я его на Advantech-ком GeniDAQ, но с TRACE MODE не вышло. Попробовал покопаться с таймаутами - не получилось. Я подозреваю, что не понял какие надо выполнить настройки для обеспечения обмена .
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Минимальные действия: 1) В параметрах узла в бланке настройки СОМ-портов указать для СОМ-порта, адрес, прерывание и таймайт. Скорость и контроль выставить в соответсвие настройкам устройства. 2) В узле создать канал для обмена подтипа DCS с соответствующими настройками. Обращаю Ваше внимание, что настройка канала RS - задает логический номер СОМ-порта, а он на единицу меньше физического (СОМ1 - 0, СОМ2 - 1 и т.д.) 3) Запустить проект.
При запуске, работе и останове проекта сервер матобработки в инструментальной системе создает лог-файл в диретории проекта с именем проекта и расширением TXT. Если возникают какие-либо ошибки смотрите этот лог-файл.
Posted by Савинцев Евгений (Участник № / Member № 611) on :
Привет. Попробовал сделать все в соответствии с вашими рекомендациями - обмен есть, а данные в канал непоступают (проивожу кусок из log-файла). #00@M = 4 //запрос данных от ТМ >00@M = 4 //ответ от "adam" RS:COM 1 check error // ??? Создал канал с подтипом Диагностика DCS, в нем постоянно "сидит" значение 9 (таймауты я при этом изменял примерно от 10 до 3000 мс)?????? Заранее благодарю.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
1) Эмуляцию какого модуля Вы реализуете в программе-эмуляторе? 2) Какой канал в ТМ Вы создали? Интересуют: подтип, дополнение к подтипу, настройки, а также параметры настройки СОМ-порта в настройках узла.
Posted by Савинцев Евгений (Участник № / Member № 611) on :
объясню предысторию - я занялся этим вопросом потому, что: 1 - у меня скоро будет проект со сбором данных с модулей ADAM 4012 2 - на данный момент есть прибор в котором надо реализовать работу по RS485, я решил сделать его совместимым с ADAM ----------------------------------------------- Параметры канала и порта. 1. Эмулирую модуль 4012. 2. Порт COM1, назначение связь с контроллером , базовый адрес 3f8, скорость 4800, контроль 8-1-n, таймаут 300 (его я пробовал менять), прерывание 4, упр. перед. нет. Таймаут RS-передача 300(его я пробовал менять). 3. Канал - тип I, вид F, подтип DCS AI #RS-0 ADDR-00 CH-0000 SLOT-0 FSC-нет, период 1 сек.
Кажется все
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
1) Таймаут "RS передача" Вам вообще трогать не нужно. Достаточно тех настроек, которые Вы уже сделали. 2) Судя по приведенной Вами части лога - сервер принял в порт то же самое, что и послал. Вы уверены, что эмулятор устройства работает правильно? Например, без модуля запрос выглядит так: #00 = 4 = 0 RS:COM1 check error (new-xx00-0001) 4 - Означает, сколько байт было передано. 0 - означает, что ноль байт принято. Соответственно, COM1 check error - означает ошибку чтения данных после запроса - ответа от модуля нет. В соответствии с протоколом АДАМ4000 - модуль никак не может ответить двумя нулями! Рекомендую проверить программу эмулятора!
Posted by Савинцев Евгений (Участник № / Member № 611) on :
СПАСИБО ЗА ПОМОЩЬ!!!!!!!!!!!!ВСЕ ЗАРАБОТАЛО При подготовке данных для ответа я допустил ошибку. После того как я ее исправил обмен данными состоялся. Но у меня возник один вопрос. Модуль ADAM 4012 может быть сконфигурирован на передачу данных в системный компьютер в одном из следующих форматов: - физические единицы (ответ имеет вид >+5.8222<cr>), - процент шкалы диапазона (ответ имеет вид >+100.00<cr>), - шеснадцатиричный код (ответ имеет вид >7FFF<cr>), - размерность Ом (ответ имеет вид >+060.60<cr>). Вопрос - ТМ может работать со всеми этими форматами? Просто я попробовал шестнадцатиричный код, а он не прошел. Может я снова ошибся ?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Если не ошибаюсь - для того чтобы получить ответ в формате дополнительного кода HEX необходимо посылать специальный запрос. Размерность Ом поддерживает только АДАМ4013. В остальном - в канал попадает то, что ответил модуль - физические единицы.