This is topic Драйвер Т12 in forum TRACE MODE 6 бесплатная Базовая версия / TRACE MODE 6 free Base version at Форум TRACE MODE: техническая поддержка.


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

Posted by Serge (Участник № / Member № 3180) on :
 
Можно ли от службы поддержки получить пример пользовательского драйвера типа t12 для работы с com-портом в TM6 для разработки своего драйвера на его основе?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Такого примера у нас нет.
 
Posted by Serge (Участник № / Member № 3180) on :
 
Жаль
 
Posted by Serge (Участник № / Member № 3180) on :
 
А вообще какой-нибудь проект драйвера на VC++ в качестве образца можно получить, а то из help не очень понятно? Вот из примеров выдернули, скомпилировали... Ничего не происходит. Как его отлаживать, почему может не работать и т.д. В руководстве написано, что для TCOM6 нужно экспортировать 7 функций, видно, например, в ОВЕНе только 6. B т.д.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Отправлено.
 
Posted by Serge (Участник № / Member № 3180) on :
 
Не хватает файла tm_drv.h Можно его получить?
 
Posted by Serge (Участник № / Member № 3180) on :
 
И вероятно функций и типов данных, которые в нем описаны.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
отправлено
 
Posted by Serge (Участник № / Member № 3180) on :
 
Спасибо за помощь.
 
Posted by Serge (Участник № / Member № 3180) on :
 
Tm6.05.01. Есть 5 каналов, которые по всем признакам должны объединиться в блоковый запрос. При вызове get_yyy, q_rec=4. Это правильно? Почему через RSDATA не получается присвоить значение 5 каналу?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
При формировании индивидуального запроса q_rec=0.
При формировании группового запроса для 5 каналов q_rec=4. Это правильно.
После получения ответа на групповой запрос МРВ пробегает базу каналов в поисках каналов-участников этого запроса - начиная от канала-инициатора запроса до конца базы (с увеличением ID каналов). При этом передаваемый в драйвер параметр count будет меняться от 0 до q_rec.
Если ID какого либо из этих каналов меньше ID канала-инициатора запроса, то этот канал своего значения не получит.
В остальных случаях групповой запрос должен полностью разбирать структуру RSDATA.
 
Posted by Serge (Участник № / Member № 3180) on :
 
Как правильно раскидать данные полученные при блоковом запросе в RSDATA, а то каналы объединились в группу в порядке создания их в TM6, а не в порядке следования их в запросе к устройству?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Порядок заполнения RSDATA не имеет значения. Важно правильно оттуда выбирать.
Когда Вы распаковываете ответ в структуру RSDATA, Вы знаете, какому удаленному адресу соответствует какой ответ и в какую ячейку RSDATA Вы его кладете.
При выборке из RSDATA Вы должны возвращать соответствующий указатель на ячейку RSDATA.
 
Posted by Serge (Участник № / Member № 3180) on :
 
Новые сложности
Вот текст функции ReadMedia
{
SerialPort& CommPort = g_Map[ia.c[0]-1];
_mbsnbset((unsigned char* )rbuf,0,100);
CommPort.read((BYTE *)rbuf,100,(DWORD &)actual_count,500);
return 0;
}
Все складываем в rbuf, а в функции Check_yyy в rbuf уже какой то мусор. С чем это связано? Вообще очень странно, что в ReadMedia адрес rbuf равен адресу sbuf в WriteMedia, а в Check_yyy rbuf имеет совсем другой адрес.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Вы правы. В интерфейсе TCOM 6 имеется ошибка: в функции ReadMedia реально подставляется адрес не rbuf, а sbuf. Мы исправим ее в ближайшем релизе.

Пока, если у Вас нет возможности ожидать выхода релиза (возможно, около 2 недель), можно рекомендовать 1 из двух вариантов обхода:
- в Вашем драйвере запомнить эти адреса и соответственно осуществить подмену,
- если Вас удовлетворяет интерфейс TCOM5, то надо исключить из драйвера функцию void zzTM6Stub().
 
Posted by arido (Участник № / Member № 2961) on :
 
Пожалуйста, пришлите пример по адресу: yyyyy@zzzzzzz.ru
Спасибо.

[ 01.04.2011, 19:14: Сообщение отредактировал / Message edited by AdAstra Technical Support ]
 
Posted by Алекс К (Участник № / Member № 1337) on :
 
Ув техподдержка, тоже очень прошу все высланное выше.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Отправлено.
 
Posted by Алекс К (Участник № / Member № 1337) on :
 
v6.062 prof
Вроде все делаю по описанию универсального драйвера.doc - но в portmone пусто.
Может в узле проекта надо создавать COMпорт?
И еще в строке ports.txt 0 - 2400, 8, 2, n, 500 что такое "2"?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Нет, создавать COM-порт не надо.

2 - это кол-во стоп-битов.

Есть ли ошибки по вызову драйвера в протоколе профайлера?
 
Posted by Алекс К (Участник № / Member № 1337) on :
 
Нет ошибок.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Вам нужно ввести внутреннюю диагностику в драйвере. Других способов проверки нет.
 
Posted by Алекс К (Участник № / Member № 1337) on :
 
Как это сделать?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Рассмотрение и написание исходных текстов программ не входит в рамки технической поддержки.
 
Posted by Dak (Участник № / Member № 3189) on :
 
Здравствуйте! В проекте параллельно (RS-485) соединены 4 СЭТ-4ТМ.03 и через MOXA-5450 (485-Ithernet) опрашиваются компьютером (виртуальный СОМ-порт). Обмен со штатной программой "Конфигуратор СЭТ" - без замечаний. ТМ "видит" только 2 из 4 приборов (обмен через драйвер СЭТ-4ТМ). Пример лога:
для неудачного обмена:
09:43:15.327 Write to COM11 (10 bytes): 9F 01 30 30 30 30 30 30 47 08
09:43:15.358 Read from COM11 (4 bytes): 9F 00 68 40
09:43:15.374 Error - can't connect to device 159 on port 11
для удачного обмена:
10:17:17.687 Write to COM11 (10 bytes): 64 01 30 30 30 30 30 30 09 FF
10:17:17.718 Read from COM11 (4 bytes): 64 00 2B 70
10:17:17.733 Write to COM11 (5 bytes): 64 08 05 F7 DC
Т.е. в обоих случаях счетчики отвечают одинакого правильно (в тч CRC). Почему для ТМ в одном случае ошибка, а в другом нет?
 
Posted by Dak (Участник № / Member № 3189) on :
 
Вопрос снимаю - драйвер принимает адрес до 127 включительно
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Напишите письмо на адрес hotline@adastra.ru с описанием проблемы, и мы вышлем обновленный драйвер, где это проблема исправлена.
 
Posted by Kostyan1988 (Участник № / Member № 4420) on :
 
Пожалуйста, пришлите проект драйвера t12 по адресу: xxxxxxxxxxxxx@mail.ru
Спасибо.

[ 01.04.2011, 19:12: Сообщение отредактировал / Message edited by AdAstra Technical Support ]
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Отправлено.
Топик закрывается.
 


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



Powered by Infopop Corporation
UBB.classic™ 6.7.2