Форум TRACE MODE: техническая поддержка Послать новую тему / Post New Topic  Послать ответ / Post A Reply
мой профиль / my profile авторизация / login | регистрация / register | поиск / search | часто задаваемые вопросы / faq | начало / forum home

  Следующая старая тема / next oldest topic   Следующая новая тема / next newest topic
» Форум TRACE MODE: техническая поддержка » ТЕХНИЧЕСКАЯ ПОДДЕРЖКА / TECHNICAL SUPPORT TRACE MODE 6 » TRACE MODE 6 бесплатная Базовая версия / TRACE MODE 6 free Base version » Разработка драйвера

   
Автор / Author Тема / Topic: Разработка драйвера
Anastasiya
Junior Member / Новичок
Участник № / Member № 2136


Icon 1 отправлено / posted      Профиль для / Profile for Anastasiya           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Помогите, пожалуйста, начинающему. Нужно через com-порт связаться с модемом. При использовании стандартного API COM-порта мне подойдет драйвер t11. Простейший пользовательский драйвер t11s30я написала, а загрузить его не получется. В helpe сказано: При старте МРВ загружает драйверы исходя из наличия каналов с соответствующими дополнениями к подтипу. Что именно и где именно мне необходимо задать, чтобы загрузить драйвер?
Сообщения / Posts 20 | Из / From: Беларусь  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
M@V
Forum Professor / Завсегдатай форума
Участник № / Member № 1800


Icon 1 отправлено / posted      Профиль для / Profile for M@V           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Добрый день. Необходимо выполнить следующие шаги:
1- В узле проекта создать группу COM-порты.
2- В группе COM-порты создать компонент COM-порт.
3- Вызвать компонент на редактирование и настроить его параметры.
4- В группе Источникаи/Приемники создать группу Пользовательские_драйверы.
5- В группе Пользовательские_драйверы создать группу TYPE11(для драйверов типа t11.
6- В группе TYPE11 создать компонент UniversalPLC_typeN где N-подтип вашего драйвера(для t11s30 -это 4).
7- компонент вызвать на редактирование и настроить параметры.
Загрузку драйвера можно наблюдать в файле с расширением txt в скомпилированной директории Вашего узла.
Далее тонкости обмена с устройством....
Успехов.

Сообщения / Posts 167 | Из / From: УКРАИНА  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Anastasiya
Junior Member / Новичок
Участник № / Member № 2136


Icon 1 отправлено / posted      Профиль для / Profile for Anastasiya           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Спасибо, я так и делала. Но пока безуспешно. Я впервые столкнулась с такой задачей. Что-то не то с драйвером видимо написала. Пробую хотя бы получить в TraceMode данные из сom-порта1, вводя данные в Гипертерминале в com-порт2 (они соединены между собой). Но ничего получить не могу. Помогите дельным советом. Что должно быть указано в драйвере?
Сообщения / Posts 20 | Из / From: Беларусь  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
M@V
Forum Professor / Завсегдатай форума
Участник № / Member № 1800


Icon 1 отправлено / posted      Профиль для / Profile for M@V           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Добрый день. Продолжим...
Скорее всего необходимо обзавестись утилитой PortMonitor (для наблюдения, что-же творится в порту).
Два важных момента:
- все функции и процедуры dll драйвера должны быть с вызовом CDECL.
- местоположение функций и процедур в dll драйвера строго индексировано:
//zReadAny_xxx index 6 name 'zReadAny_xxx',
zCompare_xxx index 5 name 'zCompare_xxx',
Set_xxx index 4 name 'Set_xxx',
Prepare_xxx index 3 name 'Prepare_xxx',
Get_xxx index 2 name 'Get_xxx',
Check_xxx index 1 name 'Check_xxx';
(ТМ вызывает их по порядковому номеру).

В dll драйвера можно организовать запись в лог-файл (ведь не так просто произвести отладку любой dll) и таким образом проследить последовательность вызова процедур и при необходимости параметры вызова.
Довольно муторная работа для первого раза.
Удачи.

Сообщения / Posts 167 | Из / From: УКРАИНА  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Anastasiya
Junior Member / Новичок
Участник № / Member № 2136


Icon 1 отправлено / posted      Профиль для / Profile for Anastasiya           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Здравствуйте. Большое спасибо, ваши советы очень помогли. И PortMonitor - полезная программа. dll писала в Visual C++ и с помощью def-файла установила индексацию функций. Посылка в com-порт работает. Но возникла новая проблема: не могу передать значение канала в сom-порт. Как можно передать значение канала, которое мы задаем. Вот моя функция Set_xxx:

void Set_xxx(IA &ia, unsigned int &max_send, unsigned int &max_rec, int &q_rec, RSDATA *p,char *sbuf)
{
p[0].F.fmt[0]=0x40;
p[0].F.fmt[3]=1;
sbuf[0]=p[0].V.i[0];
max_send=2;
max_rec=0;
return;
}
Подскажите, что не так?

Сообщения / Posts 20 | Из / From: Беларусь  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
M@V
Forum Professor / Завсегдатай форума
Участник № / Member № 1800


Icon 1 отправлено / posted      Профиль для / Profile for M@V           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Здравствуйте. Тут трудно ответить не видя всей картины. Адастра тоже не очень хочет отвечать владельцам бесплатной версии по проблемам с драйверами ТМ. Попробуйте к ним обратиться при помощи свистка(Report Post). Если они согласятся, то попросят Вас отослать проект на адрес hotline@adastra.ru. Кстати у них спецы по Visual C++. Удачи.
Сообщения / Posts 167 | Из / From: УКРАИНА  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Anastasiya
Junior Member / Новичок
Участник № / Member № 2136


Icon 1 отправлено / posted      Профиль для / Profile for Anastasiya           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Добрый день. Некоторое время работала над другой задачей, а теперь снова возвращаюсь в теме. К Адастре так и не обращалась, самостоятельно разобралась с этим вопросом и другими возникающими. Но вот снова стою перед задачей: в Get_xxx задаю type_cnv=12(для записи блока данных в архив для одного канала). А в архив и в каналы Trace Mode вообще ничего не передается. По helpу в канал, инициировавший запрос, должно записываться значение q_rec. В Get_xxx у меня q_rec=6, а в канале значение =0 и не изменяется при посылке.
Помогите, пожалуйста, дельным советом.

Сообщения / Posts 20 | Из / From: Беларусь  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Anastasiya
Junior Member / Новичок
Участник № / Member № 2136


Icon 1 отправлено / posted      Профиль для / Profile for Anastasiya           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Всё, в архив записывается. Но вот в канал значение q_rec всё равно не передаётся. Там 0 как установиться при запуске профайлера, так и не измеяется. Разбираюсь.
Может вы сталкивались с подобным: посылаю значения с временными метками из com-порта в канал; значения посылаю один раз, а записываются в архив они три раза с одним и тем же временем! Причем это не зависимо от количества каналов в Traсe Mode, в которые передаются значения.
Заранее спасибо.

Сообщения / Posts 20 | Из / From: Беларусь  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
arido
Forum Haunter / Завсегдатай форума
Участник № / Member № 2961


Icon 1 отправлено / posted      Профиль для / Profile for arido           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Здравствуйте, Anastasiya.
Если не жалко, пожалуйста, вышлите исходник Вашего драйвера. Использовала все советы - но пока не работает. Адрес: radnf@tomskcable.ru.

Заранее спасибо.

Сообщения / Posts 104 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
   

Quick Reply
Сообщение / Message:

HTML код не разрешен. / HTML is not enabled.
UBB код разрешен. / UBB Code is enabled.

Значки Graemlins / Instant Graemlins
   


Послать новую тему / Post New Topic  Послать ответ / Post A Reply Закрыть тему / Close Topic   Feature Topic   Переместить топик / Move Topic   Удалить топик / Delete Topic Следующая старая тема / next oldest topic   Следующая новая тема / next newest topic
 - Printer-friendly view of this topic
Перейти к / Hop To


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



Powered by Infopop Corporation
UBB.classic™ 6.7.2