This is topic Эмуляция ADAM-4000 in forum TRACE MODE 5 бесплатная версия / TRACE MODE 5 Free version at Форум TRACE MODE: техническая поддержка.


To visit this topic, use this URL:
http://forum.adastra.ru/ultimatebb.php/ubb/get_topic/f/18/t/000044.html

Posted by Савинцев Евгений (Участник № / Member № 611) on :
 
Привет.
Под рукой нет какого либо ADAM-4000, но хочу попробовать поработать с их протоколом обмена. Можно ли настроить параметры СОМ-порта так, что бы я мог посылать ответы модулей от ADAM-4000 вручную с другого компъютера?

Заранее благодарю.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Только если скорость Вашей печати символов на клавиатуре достигает скорости 9600 Бод/сек! [Усмешка / Big Grin]

Реально - если Вы "дружите" с каким-либо языком программирования, то можно попробовать написать небольшой эмулятор устройства ADAM4000, который будет отвечать на запросы по СОМ-порту по протоколу ADAM4000. Или поискать в Интернет уже готовые программы-эмуляторы такого рода устройств.
 
Posted by Савинцев Евгений (Участник № / Member № 611) on :
 
Эмулятор у меня был написан, испытал я его на Advantech-ком GeniDAQ, но с TRACE MODE не вышло.
Попробовал покопаться с таймаутами - не получилось.
Я подозреваю, что не понял какие надо выполнить настройки для обеспечения обмена [Недоумение / Confused] .
 
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 // [Недоумение / Confused] ???
Создал канал с подтипом Диагностика 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 сек.

Кажется все [Улыбка / Smile]
 
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>).
Вопрос - ТМ может работать со всеми этими форматами? Просто я попробовал шестнадцатиричный код, а он не прошел. Может я снова ошибся [Улыбка / Smile] ?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Если не ошибаюсь - для того чтобы получить ответ в формате дополнительного кода HEX необходимо посылать специальный запрос.
Размерность Ом поддерживает только АДАМ4013.
В остальном - в канал попадает то, что ответил модуль - физические единицы.
 


Новости АСУ ТП / News | SCADA / HMI | Обучение / Trainings | Свяжитесь с нами / Contact Us



Powered by Infopop Corporation
UBB.classic™ 6.7.2